Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp770673pxu; Wed, 2 Dec 2020 03:01:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJxZuwUyOa15nscFBToXSC6IUb3lMPnqQXcR7XgWWOtRiT16MMAjKIUg01C2jU5/u1/NTUm0 X-Received: by 2002:a17:906:4881:: with SMTP id v1mr1647378ejq.465.1606906904611; Wed, 02 Dec 2020 03:01:44 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1606906904; cv=pass; d=google.com; s=arc-20160816; b=xp6ymLx1VQscFGFTeMITwuaOBfFopMUN0LpiqgoOiZoALdEYNAosTdGiOSIwLbYMWu oY4T4RU0YEewG/LedRd9M3znc5Pp0NtsfnYqE/AsA4MtaerxAh/AtwaafwqMMronj66Z iyxKMBs/gHlQqmU1x/GzCXk04Y0SAQ+R92GxP7syjWcr5MKIfILkns7FGgz01DiPQ0oc m5CLFaiqHasbfRfTtUZ52rqm3u5MRXXBjG3t6YETP7MHkoUyZlLV0ZmSUhAUJU5Kh7bc UenJKpcIYre5bo8ZCwRksWclb1LNFzx5ECs1xpJlOUrLoYQbEQuaU+QLdKxRH65lfy+x GsiA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=AOVKtiodQTHkDQ31hjhbQfP9pepnIcmC+KJZEijoHQ4=; b=eLfpoBGPNZj+piae4bvKlj9DAwNKaRtcpaoR1ThrrnFLB9dSyBlY8vGreHf6A+NxcV kn3FOzvdnhi5sWhruumBk0cWUswcrHUqyuESHfsT0ysjHd+kfuzVEFeWB04ZVg8r6Nbw ASX949zk1PurX0bR0sCTe34CetQdyFn3eZQ0MPiAVAHcTJsgsoKyfDCUgNS3MxfPSIsr dvjez0c+w+WGie0rZhjkB5VZ0zXQ7WVwHmBBWdBuQlblZlWxHeg4WWq4qHltGgejgkVd mHp5TnSovKON2JFMUMCcjwaziU29nOIs5ene4AQk+QwuwVVsqo/auEZb34QDAZ4KPbXn I7cA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@leica-geosystems.com header.s=selector1 header.b=D3+G66pS; arc=pass (i=1 spf=pass spfdomain=leica-geosystems.com dkim=pass dkdomain=leica-geosystems.com dmarc=pass fromdomain=leica-geosystems.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=leica-geosystems.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dq8si593328ejc.750.2020.12.02.03.01.20; Wed, 02 Dec 2020 03:01:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@leica-geosystems.com header.s=selector1 header.b=D3+G66pS; arc=pass (i=1 spf=pass spfdomain=leica-geosystems.com dkim=pass dkdomain=leica-geosystems.com dmarc=pass fromdomain=leica-geosystems.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=leica-geosystems.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388408AbgLBK5e (ORCPT + 99 others); Wed, 2 Dec 2020 05:57:34 -0500 Received: from mail-eopbgr30128.outbound.protection.outlook.com ([40.107.3.128]:39589 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726498AbgLBK5d (ORCPT ); Wed, 2 Dec 2020 05:57:33 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eNrvUPn1Fdp8jx1Sol8Ve+WMYjEWLMMEtIwbKrOKhoCJKEohBg5Lan7KsKwbjUD7nqq9HV59kN2p9VJmPrTjeCOTXf9QZ7B2i5Tq82IM1g++Oaeo4FaEQGs+Ex+RqWw+9voCY/HvJimUQpx+W7PbK6PO+YQqO22kgSHDPtZuwY5yJE0So8CMhCMsR4MhnvxwoLhAi7OL5Djx4IoJvLuRx4+jf7vG8BEPq/LqRjf0ucr2vuCzZCiVRpkvrc6IvE/ekGykhWwZPCBsMsvNap9//3r15R2vFubkr3Zg3V4TrP5yXnYfDKvRsMYIp816ssK1UYjQyw/q6Pcskf7rM1t3YA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AOVKtiodQTHkDQ31hjhbQfP9pepnIcmC+KJZEijoHQ4=; b=bYKQYDEzDfymyOeZJeL3Kx7iY8CrVZQIIAzc1OGdtLwtiUZrWb+0ChQgNqSS+tPPS2kOf5tpwYFcZ3EVVLIwCRh+Owqvi7Vjg7A4jR01n4QlreBmAY7E2CCUQsSwAM5DGjqfx+E9ubPEkJzGDdn1TtudWbnUU7DBdmuRk4RlJRGH6p5+QX/bekjSTOHa0KmBQX0jMQGD/+QndWTl50kMxlqhi2jPLbTlcyB1sZ5EfYFLsUHSZnoY4/u4wdoy0ddSpqJLaIadttegwaIan3nwo86bM8BlCWwQOr/y7wHhAtR5VbPUah36kcCO7/Oi16YeY10AwlP/Crx1FEwOAvIkVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=leica-geosystems.com; dmarc=pass action=none header.from=leica-geosystems.com; dkim=pass header.d=leica-geosystems.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AOVKtiodQTHkDQ31hjhbQfP9pepnIcmC+KJZEijoHQ4=; b=D3+G66pSz0bOxhE811HI/vCYkPUIOUZw0Fz6eaFz48fOL6lIsH1hk2TLqkCKHnkKHscGAWTM51MBJ9KwDIAFRd6Lmm4EV7mCAMlUOfcsPSHSNsdQErrpy3fCVUethlXkHkoatJvngQ0zU0XtddircsegyYmLIJjXSRWiWjKGkf0= Received: from AM6PR06MB4691.eurprd06.prod.outlook.com (2603:10a6:20b:37::25) by AM6PR06MB6293.eurprd06.prod.outlook.com (2603:10a6:20b:fa::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17; Wed, 2 Dec 2020 10:56:43 +0000 Received: from AM6PR06MB4691.eurprd06.prod.outlook.com ([fe80::b073:9747:410c:12c6]) by AM6PR06MB4691.eurprd06.prod.outlook.com ([fe80::b073:9747:410c:12c6%6]) with mapi id 15.20.3632.017; Wed, 2 Dec 2020 10:56:43 +0000 From: ZHIZHIKIN Andrey To: Jens Wiklander CC: "op-tee@lists.trustedfirmware.org" , Linux Kernel Mailing List , "stable@vger.kernel.org" Subject: RE: [PATCH] optee: extend normal memory check to also write-through Thread-Topic: [PATCH] optee: extend normal memory check to also write-through Thread-Index: AQHWyIIaOP0stwp640Sm7x6DToya26njeFpQgAAmqQCAAAFgoA== Date: Wed, 2 Dec 2020 10:56:43 +0000 Message-ID: References: <20201202071057.4877-1-andrey.zhizhikin@leica-geosystems.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=leica-geosystems.com; x-originating-ip: [193.8.40.112] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 16b8117c-2727-4504-93cc-08d896b0f4a3 x-ms-traffictypediagnostic: AM6PR06MB6293: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: K/7RpUXj24DkJiVFQaQF0xZXZGgCiMlWIN9ehGMiU9S4q1DEfKTpdVHxQK/+oLTSDbVoCoFhy5lGdGxozR96eT+krwkr3/lYKqO7OaBtAMSzevy1QhH3MyOA2emTygbWi3VMKEWdIY3j/qsGdotCBKLj//5tLexLeaCojjAqf/haJ/cGgZiSL6G21HxwmZsaqReYFXOuyxIUGaivSEE8vZRFBBtjhbZS/qXvL3T/RoEdOTZGspW1nE4xplcJCFXfAnoXh+oA1017YK3xlJzjcH7t+uAGNSHCdqqRDybMbftWl0Picc6/Cz44nJefh0vPD17OKh53YCCBRaEtL0fGrCt+bgowpm1gPfFLXSj3ycu2O8aVSnWeFdEDjOEeEznf1mPpuOFevW1oA4hhrFvcow== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR06MB4691.eurprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(366004)(346002)(376002)(396003)(39860400002)(8936002)(45080400002)(8676002)(478600001)(55016002)(6506007)(26005)(186003)(83380400001)(7696005)(33656002)(86362001)(54906003)(316002)(71200400001)(52536014)(5660300002)(966005)(53546011)(4326008)(9686003)(64756008)(66556008)(66446008)(76116006)(66946007)(2906002)(6916009)(66476007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?aC96VGNUKzU1TVlIMVJlSWpDbWJFTUV2UCs3OWtUOUJ1V3hlMngrWDhKWDJF?= =?utf-8?B?V0VCOVNrK1ZtdUNtWUJvakdFY2dEV2RLUlY2bVNvdFY4bHhEdzJMeDBxTGd6?= =?utf-8?B?MkJodkIrVVpxbCthVHF0VDdCMHBmb3JWcitQbGUrd0pTWGhJd3JoVk5NQlRD?= =?utf-8?B?d1RHckoyd29MZVA2QmordDZPWnF4VlpuYkhTaEZRWFBGUSs0eForL2puYXF3?= =?utf-8?B?ZFRRSTBCSlVaOWxLcHQvbm1mQURhZSs2Yitzd3ZCd2FHY2txaStRbEM0TXdI?= =?utf-8?B?d0hKZDZQOWhORjJjOXhOUkNXam5COFFiZVZkbzVSWTNIQmM2TXJOTVY3K29j?= =?utf-8?B?clpVbG51ZE1pc0lhR3F2OUJHeGVSb1lmbG5vcWFXSFA1Wk1ZSnZ2TFBHa3Bv?= =?utf-8?B?Qk5NK3dVUDVndnk4QVdxUEFNU0dabHNXa1E2Z01TK2ptblpIWWVZVGo1d3I0?= =?utf-8?B?bmtiZG9xSDdZRVg0RWUvbTh6clV2SzQzcGRJSHRGZmJKQlA1RHE3M1RYQ3hh?= =?utf-8?B?K2J2UHZDU3RQd3ZFdGdHWUNIUi9SeHFqOEJCOHMrSmptNFIvS0pUajJWWFhn?= =?utf-8?B?WGNxNEJ6bDM0dDlwTStRTndtTWJsSnNkUXhTY0lQc2pxQ2JpanNoNDlHdjJQ?= =?utf-8?B?ZzBPc0ZrT1RUUSt2ZUpxYjNFZ0ZzRThUcmNWZmpMeHJVR0l4MHhTUUJvOGFi?= =?utf-8?B?REQwaEpNdG9wdzBLUlNSMGRnazdiL1lQaXhjNVFsakVHb1F5SXM5MHN3VzNQ?= =?utf-8?B?elpYWm15NVNWdXFtUlF2L2JBdjBRSS92MHRaTS9qVGYyNXc4UkgvY3pOMzQw?= =?utf-8?B?SGJHQVhsaURBNW12SXUzQUk3OTRYU2ZEZmZoU1UycVIyd1dlTXZHT1RzWFhM?= =?utf-8?B?RlREUTAxUmQvTDk0UVVRTWZKemFjSG5RdmhWNVA3UEVvYmMyOVJGS3lkUGFn?= =?utf-8?B?cEVnZUx0dmNjeW5BT0VCQUJacXFYemVpUFhvZG00TC81VVRCNkx2eVdTa3VM?= =?utf-8?B?OTdGNG02VjNnay92ZmlVM3FpdkxrYU1KVGlBSDRDRFpGZ2N2Sm9OcGNsUFVO?= =?utf-8?B?QmNMV2Y4VFFNUlRKZ3FTSG5TbGNSZXZiUGh5YjVpbnlYaUFTRmNTRXpDa3NR?= =?utf-8?B?WWZBWkJhbEc0UHV5eE9JVUdwZ2VyOTJwaXZWVUpLWFU1SiszNURpek5RNm9w?= =?utf-8?B?T2oyMWd4OFoya2Z6b0gxbGVudlJIR0Zxc0FwVU5Mc1dYTE10eHR6M2JuUnBH?= =?utf-8?B?aUc1RkV6bWg0bXBaYWtSeFE4UlRrYnpjYWVpT0dGLzlWeFdHRUhuRGtLWmtR?= =?utf-8?Q?6IidJcBU3fDko=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM6PR06MB4691.eurprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16b8117c-2727-4504-93cc-08d896b0f4a3 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2020 10:56:43.4117 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sQZpU1Kzhs1baDLo+fJHu4HIj3Ry5b+R10gbSNy2X2+YuNSFZbLLkOpAlgxnkLXx9fYeLEAYPgP061SbEzi8QgbcxktDpMIeNeW07YbpXugj9rMV4sBp9V3fk9RMmpvv X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR06MB6293 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGVsbG8gSmVucywNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKZW5z IFdpa2xhbmRlciA8amVucy53aWtsYW5kZXJAbGluYXJvLm9yZz4NCj4gU2VudDogV2VkbmVzZGF5 LCBEZWNlbWJlciAyLCAyMDIwIDExOjQ0IEFNDQo+IFRvOiBaSElaSElLSU4gQW5kcmV5IDxhbmRy ZXkuemhpemhpa2luQGxlaWNhLWdlb3N5c3RlbXMuY29tPg0KPiBDYzogb3AtdGVlQGxpc3RzLnRy dXN0ZWRmaXJtd2FyZS5vcmc7IExpbnV4IEtlcm5lbCBNYWlsaW5nIExpc3QgPGxpbnV4LQ0KPiBr ZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgc3RhYmxlQHZnZXIua2VybmVsLm9yZw0KPiBTdWJqZWN0 OiBSZTogW1BBVENIXSBvcHRlZTogZXh0ZW5kIG5vcm1hbCBtZW1vcnkgY2hlY2sgdG8gYWxzbyB3 cml0ZS10aHJvdWdoDQo+IA0KPiANCj4gT24gV2VkLCBEZWMgMiwgMjAyMCBhdCAxMDo0MSBBTSBa SElaSElLSU4gQW5kcmV5IDxhbmRyZXkuemhpemhpa2luQGxlaWNhLQ0KPiBnZW9zeXN0ZW1zLmNv bT4gd3JvdGU6DQo+ID4NCj4gPiBIZWxsbyBKZW5zLA0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogSmVucyBXaWtsYW5kZXIgPGplbnMud2lrbGFuZGVy QGxpbmFyby5vcmc+DQo+ID4gPiBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDIsIDIwMjAgOTow NyBBTQ0KPiA+ID4gVG86IFpISVpISUtJTiBBbmRyZXkgPGFuZHJleS56aGl6aGlraW5AbGVpY2Et Z2Vvc3lzdGVtcy5jb20+DQo+ID4gPiBDYzogb3AtdGVlQGxpc3RzLnRydXN0ZWRmaXJtd2FyZS5v cmc7IExpbnV4IEtlcm5lbCBNYWlsaW5nIExpc3QNCj4gPiA+IDxsaW51eC0ga2VybmVsQHZnZXIu a2VybmVsLm9yZz47IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcNCj4gPiA+IFN1YmplY3Q6IFJlOiBb UEFUQ0hdIG9wdGVlOiBleHRlbmQgbm9ybWFsIG1lbW9yeSBjaGVjayB0byBhbHNvDQo+ID4gPiB3 cml0ZS10aHJvdWdoDQo+ID4gPg0KPiA+ID4gVGhpcyBlbWFpbCBpcyBub3QgZnJvbSBIZXhhZ29u 4oCZcyBPZmZpY2UgMzY1IGluc3RhbmNlLiBQbGVhc2UgYmUNCj4gPiA+IGNhcmVmdWwgd2hpbGUg Y2xpY2tpbmcgbGlua3MsIG9wZW5pbmcgYXR0YWNobWVudHMsIG9yIHJlcGx5aW5nIHRvIHRoaXMg ZW1haWwuDQo+ID4gPg0KPiA+ID4NCj4gPiA+IEhpIEFuZHJleSwNCj4gPiA+DQo+ID4gPiBPbiBX ZWQsIERlYyAyLCAyMDIwIGF0IDg6MTEgQU0gQW5kcmV5IFpoaXpoaWtpbg0KPiA+ID4gPGFuZHJl eS56aGl6aGlraW5AbGVpY2EtIGdlb3N5c3RlbXMuY29tPiB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ ID4gQVJNdjcgQXJjaGl0ZWN0dXJlIFJlZmVyZW5jZSBNYW51YWwgWzFdIHNlY3Rpb24gQTMuNS41 IGRldGFpbHMNCj4gPiA+ID4gTm9ybWFsIG1lbW9yeSB0eXBlLCB0b2dldGhlciB3aXRoIGNhY2hl YWJpbGl0eSBhdHRyaWJ1dGVzIHRoYXQNCj4gPiA+ID4gY291bGQgYmUgYXBwbGllZCB0byBtZW1v cnkgcmVnaW9ucyBkZWZpbmVkIGFzICJOb3JtYWwgbWVtb3J5Ii4NCj4gPiA+ID4NCj4gPiA+ID4g U2VjdGlvbiBCMi4xLjIgb2YgdGhlIEFyY2hpdGVjdHVyZSBSZWZlcmVuY2UgTWFudWFsIFsxXSBh bHNvDQo+ID4gPiA+IHByb3ZpZGVzIGRldGFpbHMgcmVnYXJkaW5nIHRoZSBNZW1vcnkgYXR0cmli dXRlcyB0aGF0IGNvdWxkIGJlDQo+ID4gPiA+IGFzc2lnbmVkIHRvIHBhcnRpY3VsYXIgbWVtb3J5 IHJlZ2lvbnMsIHdoaWNoIGluY2x1ZGVzIHRoZQ0KPiA+ID4gPiBkZXNjcnB0aW9uIG9mIGNhY2hl YWJpbGl0eSBhdHRyaWJ1dGVzIGFuZCBjYWNoZSBhbGxvY2F0aW9uIGhpbnRzLg0KPiA+ID4gPg0K PiA+ID4gPiBNZW1vcnkgdHlwZSBhbmQgY2FjaGVhYmlsaXR5IGF0dHJpYnV0ZXMgZm9ybXMgMiBz ZXBhcmF0ZQ0KPiA+ID4gPiBkZWZpbml0aW9ucywgd2hlcmUgY2FjaGVhYmlsaXR5IGF0dHJpYnV0 ZXMgZGVmaW5lcyBhIG1lY2hhbmlzbSBvZg0KPiA+ID4gPiBjb2hlcmVuY3kgY29udHJvbCByYXRo ZXIgdGhhbiB0aGUgdHlwZSBvZiBtZW1vcnkgaXRzZWxmLg0KPiA+ID4gPg0KPiA+ID4gPiBJbiBv dGhlciB3b3JkczogTm9ybWFsIG1lbW9yeSB0eXBlIGNhbiBiZSBjb25maWd1cmVkIHdpdGggc2V2 ZXJhbA0KPiA+ID4gPiBjb21iaW5hdGlvbiBvZiBjYWNoZWFiaWxpdHkgYXR0cmlidXRlcywgbmFt ZWx5Og0KPiA+ID4gPiAtIFdyaXRlLVRocm91Z2ggKFdUKQ0KPiA+ID4gPiAtIFdyaXRlLUJhY2sg KFdCKSBmb2xsb3dlZCBieSBjYWNoZSBhbGxvY2F0aW9uIGhpbnQ6DQo+ID4gPiA+ICAgLSBXcml0 ZS1BbGxvY2F0ZQ0KPiA+ID4gPiAgIC0gTm8gV3JpdGUtQWxsb2NhdGUgKGFsc28ga25vd24gYXMg UmVhZC1BbGxvY2F0ZSkNCj4gPiA+ID4NCj4gPiA+ID4gVGhvc2UgdHlwZXMgYXJlIG1hcHBlZCBp biB0aGUga2VybmVsIHRvIGNvcnJlc3BvbmRpbmcgbWFjcm9zOg0KPiA+ID4gPiAtIFdyaXRlLVRo cm91Z2g6IExfUFRFX01UX1dSSVRFVEhST1VHSA0KPiA+ID4gPiAtIFdyaXRlLUJhY2sgV3JpdGUt QWxsb2NhdGU6IExfUFRFX01UX1dSSVRFQUxMT0MNCj4gPiA+ID4gLSBXcml0ZS1CYWNrIFJlYWQt QWxsb2NhdGU6IExfUFRFX01UX1dSSVRFQkFDSw0KPiA+ID4gPg0KPiA+ID4gPiBDdXJyZW50IGlt cGxlbWVudGF0aW9uIG9mIHRoZSBvcC10ZWUgZHJpdmVyIHRha2VzIGluIGFjY291bnQgb25seQ0K PiA+ID4gPiAyIGxhc3QgbWVtb3J5IHJlZ2lvbiB0eXBlcywgd2hpbGUgcGVyZm9ybWluZyBhIGNo ZWNrIGlmIHRoZSBtZW1vcnkNCj4gPiA+ID4gYmxvY2sgaXMgYWxsb2NhdGVkIGFzICJOb3JtYWwg bWVtb3J5IiwgbGVhdmluZyBXcml0ZS1UaHJvdWdoDQo+ID4gPiA+IGFsbG9jYXRpb25zIHRvIGJl IG5vdCBjb25zaWRlcmVkLg0KPiA+ID4gPg0KPiA+ID4gPiBFeHRlbmQgdmVyaWZpY2F0aW9uIG1l Y2hhbmlzbSB0byBpbmNsdWRlIGFsc28gTm9ybWFsIG1lbW9yeQ0KPiA+ID4gPiByZWdpb3MsIHdo aWNoIGFyZSBkZXNpZ25hdGVkIHdpdGggV3JpdGUtVGhyb3VnaCBjYWNoZWFiaWxpdHkgYXR0cmli dXRlcy4NCj4gPiA+DQo+ID4gPiBBcmUgeW91IHRyeWluZyB0byBmaXggYSByZWFsIGVycm9yIHdp dGggdGhpcyBvciBhcmUgeW91IGp1c3QgdHJ5aW5nDQo+ID4gPiB0byBjb3ZlciBhbGwgY2FzZXM/ IEkgc3VzcGVjdCB0aGUgbGF0dGVyIHNpbmNlIHlvdSdkIGxpa2VseSBoYXZlDQo+ID4gPiBjb2hl cmVuY3kgcHJvYmxlbXMgd2l0aCBPUC1URUUgaW4gU2VjdXJlIHdvcmxkIGlmIHlvdSB1c2VkIFdy aXRlLVRocm91Z2gNCj4gaW5zdGVhZC4NCj4gPg0KPiA+IFllcywgdGhpcyBhaW1zIHRvIHByb3Zp ZGUgY29uc2lzdGVuY3kgaW4gZGV0ZWN0aW9uIHdoaWNoIG1lbW9yeSBibG9ja3MNCj4gPiBjYW4g YmUgaWRlbnRpZmllZCBhcyBOb3JtYWwgbWVtb3J5IGluIEFSTXY3IGFyY2hpdGVjdHVyZS4NCj4g DQo+IEkgdGhpbmsgeW91J3JlIG1pc3NpbmcgdGhlIHB1cnBvc2Ugb2YgdGhpcyBpbnRlcm5hbCBm dW5jdGlvbi4gSXQncyB0aGVyZSB0byBjaGVjayB0aGF0DQo+IHRoZSBtZW1vcnkgaXMgbWFwcGVk IGluIGEgd2F5IGNvbXBhdGlibGUgd2l0aCB3aGF0IE9QLVRFRSBpcyB1c2luZyBpbiBTZWN1cmUN Cj4gd29ybGQuDQoNCk9LLCBub3cgaXQncyBjbGVhciEgVGhlbiBpdCBpcyBtb3JlIGEgbWF0dGVy IG9mIGlzX25vcm1hbF9tZW1vcnkoKSBmdW5jdGlvbiBuYW1lLCB3aGljaA0KaXMgbWlzLWxlYWRp bmcuIEkgd2FzIHVuZGVyIGltcHJlc3Npb24gdGhhdCB0aGlzIGZ1bmN0aW9uIChhdCBsZWFzdCBm cm9tIGl0cyBuYW1lKSBpcw0KdmVyaWZ5aW5nIHRoYXQgdGhlIG1lbW9yeSBibG9jayBpcyBjb25z aWRlcmVkIGFzIE5vcm1hbCBtZW1vcnkgaW4gdGVybXMgb2YgQVJNdjcNCmFyY2hpdGVjdHVyZSwg YnV0IGl0IGlzIHJhdGhlciBhIGNoZWNrIGlmIHRoZSBtZW1vcnkgYmxvY2sgaXMgKnVzYWJsZSog Zm9yIHRoZSBPUC1URUUNCnB1cnBvc2VzLg0KDQpJZiB0aGF0IGlzIHRoZSBjYXNlIC0geW91IGNh biBkcm9wIHRoaXMgcGF0Y2ggYWx0b2dldGhlciwgYnV0IEkgYmVsaWV2ZSB0aGF0IHRoZSBmdW5j dGlvbg0KbmFtZSBzaG91bGQgYmUgY2hhbmdlZCB0byByZWZsZWN0IHRoZSBhY3R1YWwgcHVycG9z ZSB0byBhdm9pZCBmdXR1cmUgY29uZnVzaW9ucy4NCg0KRG9lcyB0aGF0IHNvdW5kIHJlYXNvbmFi bGU/DQoNCj4gDQo+ID4NCj4gPiBXVCBjb2hlcmVuY3kgY29udHJvbCBhbmQgKGVzcGVjaWFsbHkp IG9ic2VydmFiaWxpdHkgYmVoYXZpb3IgaXMNCj4gPiBkZXNjcmliZWQgaW4gc2VjdGlvbiBBMy41 LjUgb2YgdGhlDQo+ID4gQVJNdjcgUmVmTWFuLCB3aGVyZSBpdCBpcyBzdGF0ZWQgdGhhdCB3cml0 ZSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbiBXVA0KPiA+IG1lbW9yeSBsb2NhdGlvbnMgYXJlIGd1 YXJhbnRlZWQgdG8gYmUgdmlzaWJsZSB0byBhbGwgb2JzZXJ2ZXJzIGluc2lkZSBhbmQNCj4gb3V0 c2lkZSBvZiBjYWNoZSBsZXZlbC4NCj4gPg0KPiA+IEFzIHRoZSBXcml0ZS1UaHJvdWdoIChXVCkg cHJvdmlkZXMgYSBiZXR0ZXIgY29oZXJlbmN5IGNvbnRyb2wsIGl0IGRvZXMNCj4gPiBtYWtlIHNl bnNlIHRvIGluY2x1ZGUgaXQgaW50byB0aGUgdmVyaWZpY2F0aW9uIHBlcmZvcm1lZCBieQ0KPiA+ IGlzX25vcm1hbF9tZW1vcnkoKSBpbiBvcmRlciB0byBwcm92aWRlIGEgcG9zc2liaWxpdHkgZm9y IGZ1dHVyZQ0KPiA+IGltcGxlbWVudGF0aW9ucyB0byBtaXRpZ2F0ZSBpc3N1ZXMgYW5kIHNlbGVj dCBhcHByb3ByaWF0ZSBjYWNoZSBhbGxvY2F0aW9uDQo+IGF0dHJpYnV0ZXMgZm9yIG1lbW9yeSBi bG9ja3MgdXNlZC4NCj4gPg0KPiA+ID4gQ29ycmVjdCBtZSBpZiBJJ20gd3JvbmcsIGJ1dCAiV3Jp dGUtQmFjayBXcml0ZS1BbGxvY2F0ZSIgYW5kICJXcml0ZS1CYWNrDQo+IFJlYWQtQWxsb2NhdGUi DQo+ID4gPiBhcmUgYm90aCBjb21wYXRpYmxlIHdpdGggZWFjaCBvdGhlciBhcyB0aGUgIkFsbG9j YXRlIiBwYXJ0IGlzIGp1c3QgYSBoaW50Lg0KPiA+DQo+ID4gQ29ycmVjdCwgIkFsbG9jYXRlIiBq dXN0IGRlc2lnbmF0ZXMgdGhlIGNhY2hlIGFsbG9jYXRpb24gaGludC4NCj4gPiAiV3JpdGUtQmFj ayBSZWFkLUFsbG9jYXRlIiBzaG91bGQgYWN0dWFsbHkgYmUgcmVhZCBhcyAiV3JpdGUtQmFjayBu bw0KPiA+IFdyaXRlLUFsbG9jYXRlIiwgd2l0aCAiIFdyaXRlLUFsbG9jYXRlIiBiZWluZyBhIGhp bnQuIEJ1dCBzaW5jZSB0aGlzDQo+ID4gaXMgY29udHJvbGxlZCBieSBhIFRFWFswXSAtIHRoaXMg aGludCBpcyBoYW5kbGVkIHNlcGFyYXRlbHkgYnkNCj4gTF9QVEVfTVRfV1JJVEVCQUNLIGFuZCBM X1BURV9NVF9XUklURUFMTE9DIG1hY3Jvcy4NCj4gDQo+IEIzLjExLjMgaW4gdGhlIHNwZWMgcmVx dWlyZXMgY2FjaGUgbWFpbnRlbmFuY2Ugd2hlbiBjaGFuZ2luZyBmcm9tIFdyaXRlLUJhY2sNCj4g dG8gV3JpdGUtVGhyb3VnaCBhbmQgdmljZSB2ZXJzYSwgYW5kIHdlIGNhbid0IGRvIHRoYXQgaW4g dGhpcyBkZXNpZ24uDQoNCkNvcnJlY3QuIE15IGV4cGVjdGF0aW9uIGhlcmUgd291bGQgYmUgdGhh dCB0aGUgY2FjaGUgYWxsb2NhdGlvbiBwb2xpY3kgY2hhbmdlIHNob3VsZA0KYmUgYWNjb21wYW5p ZXMgYnkgZXhwbGljaXQgY2FjaGUgbWFpbnRlbmFuY2Ugb3BlcmF0aW9uICpiZWZvcmUqIGl0IGlz IHN1Ym1pdHRlZCB0bw0KdGhlIGRyaXZlciwgYnV0IHRoYXQgbWlnaHQgbm90IGJlIGhvdyBpdCBp cyBkZXNpZ25lZC4NCg0KPiANCj4gQ2hlZXJzLA0KPiBKZW5zDQo+IA0KPiA+DQo+ID4gPg0KPiA+ ID4gQ2hlZXJzLA0KPiA+ID4gSmVucw0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gTGluazogWzFd Og0KPiA+ID4gPiBodHRwczovL2V1cjAyLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29t Lz91cmw9aHR0cHMlM0ElMkYlMkYNCj4gPiA+ID4gZGV2ZQ0KPiA+ID4gPg0KPiA+ID4NCj4gbG9w ZXIuYXJtLmNvbSUyRmRvY3VtZW50YXRpb24lMkZkZGkwNDA2JTJGY2QmYW1wO2RhdGE9MDQlN0Mw MSU3QyU3DQo+ID4gPiBDYTQwDQo+ID4gPiA+DQo+ID4gPg0KPiBmZmQzNTkxMmY0ZmUzZDk3MzA4 ZDg5Njk5M2I4NyU3QzFiMTZhYjNlYjhmNjRmZTM5ZjNlMmRiN2ZlNTQ5ZjZhJTdDMA0KPiA+ID4g JQ0KPiA+ID4gNw0KPiA+ID4gPg0KPiA+ID4NCj4gQzElN0M2Mzc0MjQ5MzIxNjkwNzQ2NTQlN0NV bmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBdw0KPiA+ID4gTURBaUxDDQo+ID4g PiA+DQo+ID4gPg0KPiBKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUz RCU3QzMwMDAmYW1wO3NkYXRhPWMwaksyZw0KPiA+ID4gVA0KPiA+ID4gbQ0KPiA+ID4gPiBxckF5 bzAlMkZmcjA3dCUyRmc1TmJQZG00ZGg3Umw3YWxOV2xhUWMlM0QmYW1wO3Jlc2VydmVkPTANCj4g PiA+ID4gRml4ZXM6IDg1MzczNWU0MDQyNCAoIm9wdGVlOiBhZGQgd3JpdGViYWNrIHRvIHZhbGlk IG1lbW9yeSB0eXBlIikNCj4gPiA+ID4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcNCj4gPiA+ ID4gU2lnbmVkLW9mZi1ieTogQW5kcmV5IFpoaXpoaWtpbg0KPiA+ID4gPiA8YW5kcmV5LnpoaXpo aWtpbkBsZWljYS1nZW9zeXN0ZW1zLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBkcml2ZXJz L3RlZS9vcHRlZS9jYWxsLmMgfCAzICsrLQ0KPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy90ZWUvb3B0ZWUvY2FsbC5jIGIvZHJpdmVycy90ZWUvb3B0ZWUvY2FsbC5jDQo+ID4g PiA+IGluZGV4DQo+ID4gPiA+IGM5ODE3NTdiYTBkNC4uOGRhMjdkMDJhMmQ2IDEwMDY0NA0KPiA+ ID4gPiAtLS0gYS9kcml2ZXJzL3RlZS9vcHRlZS9jYWxsLmMNCj4gPiA+ID4gKysrIGIvZHJpdmVy cy90ZWUvb3B0ZWUvY2FsbC5jDQo+ID4gPiA+IEBAIC01MzUsNyArNTM1LDggQEAgc3RhdGljIGJv b2wgaXNfbm9ybWFsX21lbW9yeShwZ3Byb3RfdCBwKSAgew0KPiA+ID4gPiAjaWYNCj4gPiA+ID4g ZGVmaW5lZChDT05GSUdfQVJNKQ0KPiA+ID4gPiAgICAgICAgIHJldHVybiAoKChwZ3Byb3RfdmFs KHApICYgTF9QVEVfTVRfTUFTSykgPT0NCj4gPiA+ID4gTF9QVEVfTVRfV1JJVEVBTExPQykNCj4g PiA+IHx8DQo+ID4gPiA+IC0gICAgICAgICAgICAgICAoKHBncHJvdF92YWwocCkgJiBMX1BURV9N VF9NQVNLKSA9PSBMX1BURV9NVF9XUklURUJBQ0spKTsNCj4gPiA+ID4gKyAgICAgICAgICAgICAg ICgocGdwcm90X3ZhbChwKSAmIExfUFRFX01UX01BU0spID09IExfUFRFX01UX1dSSVRFQkFDSykN Cj4gfHwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICgocGdwcm90X3ZhbChwKSAmIExfUFRFX01U X01BU0spID09DQo+ID4gPiA+ICsgTF9QVEVfTVRfV1JJVEVUSFJPVUdIKSk7DQo+ID4gPiA+ICAj ZWxpZiBkZWZpbmVkKENPTkZJR19BUk02NCkNCj4gPiA+ID4gICAgICAgICByZXR1cm4gKHBncHJv dF92YWwocCkgJiBQVEVfQVRUUklORFhfTUFTSykgPT0NCj4gPiA+ID4gUFRFX0FUVFJJTkRYKE1U X05PUk1BTCk7ICAjZWxzZQ0KPiA+ID4gPiAtLQ0KPiA+ID4gPiAyLjE3LjENCj4gPiA+ID4NCj4g Pg0KPiA+IFJlZ2FyZHMsDQo+ID4gQW5kcmV5DQoNClJlZ2FyZHMsDQpBbmRyZXkNCg==