From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.2.58; helo=eur01-db5-obe.outbound.protection.outlook.com; envelope-from=meenakshi.aggarwal@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0058.outbound.protection.outlook.com [104.47.2.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 1823720945B97 for ; Sun, 24 Sep 2017 22:44:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=gyVCNbLpwm7nb45dNEreQqEci44YzCnYZR/O7ysl4s8=; b=VxitHbnDwz44f7tR2r2ZZNMkr0z+KmdWkIsYxtplzMeQApJxXV+ODgCiCucXL2PFNsfL07E7TGHTDu8rs536QKAE8PW59XvMZy0v93qlKKtav2rquQWSHbbP+lNX1vvNXddCSCCzik2diC9lrKA3qSO/b652kgkIEnXl8EIYD8U= Received: from DB5PR04MB0998.eurprd04.prod.outlook.com (10.161.199.12) by DB5PR04MB0998.eurprd04.prod.outlook.com (10.161.199.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Mon, 25 Sep 2017 05:47:20 +0000 Received: from DB5PR04MB0998.eurprd04.prod.outlook.com ([fe80::411c:6de2:e600:73c0]) by DB5PR04MB0998.eurprd04.prod.outlook.com ([fe80::411c:6de2:e600:73c0%14]) with mapi id 15.20.0077.011; Mon, 25 Sep 2017 05:47:20 +0000 From: Meenakshi Aggarwal To: Sakar Arora , Ard Biesheuvel CC: "edk2-devel@lists.01.org" , "leif.lindholm@linaro.org" Thread-Topic: [edk2] [PATCH v2] PeiLib : Inform UEFI memory to Linux Thread-Index: AQHTMRKjbGcwtgxR9UqgZQMwGA5liaK72m+AgABOh4CAARiGgIAAELwAgAAeMICAB7AXMA== Date: Mon, 25 Sep 2017 05:47:20 +0000 Message-ID: References: <1505485954-24345-1-git-send-email-meenakshi.aggarwal@nxp.com> <1505824329-32532-1-git-send-email-meenakshi.aggarwal@nxp.com> In-Reply-To: Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=meenakshi.aggarwal@nxp.com; x-originating-ip: [192.88.169.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB5PR04MB0998; 6:62pF2LwywQ1cXHybOGI0KdBP8GKNhh1SXliZZGS2KAsyjzTcS5vcHLC5a0TTQuuMFpDSzfV14ad8y7oaKLmdGaQiWwBWEXru8y9MrcdBwlkXd67Tx3sZ4J8HS/clOBfZY8SDTx9jaOF+SdB62Et40UcJXbOBRyOeEtwgvFWuQW9QyApRV3cGRpXRYAKwzIiPWDEaAZ64D4eJx8WcktSAN9AcwogiiqlbMc1ZIRU/mrsdoOfAJI46wfmY8dUAUKutkmqa65G5NkxI3zTJCpYGP0FvLNE3qmDRnA7dL0tMPQmjOnW1D3yWwm0iTR50IiwCPBHuw82sG0Q9924vDE3a7A==; 5:32V9hLyOylrZGipCdkLNKiMGNvj1DoongiqjRt2IAGfsXoBMvcUz6n2HhP5Kk05aiHIVHMepk9ZW0sHgB1Np3hdTePRi0d1g7HIyoByn2zPccU9w3bks9oKMRVy1NskPRLLfq3d2MqRSauMeqAaChw==; 24:fTAgG11AHczBAOGAPtvyo3fMn81EF9SpFchBbMQKkGIMk6odWUXX97CQK/d/lEmKl7pboMDaOuH4GZbGyAIi3n3R5YpxAsa/nn/SEw2Yaa4=; 7:zOZaGKNCJblXKGfbSptugs2XHHjnZaZ3HWUjUXrQs+Cn1ibFslXDwe9dG5385c1Dv1hvHgQ/RbWA83jzdHAccUr27D6timNQPSqxytiBBTKR++Tagci46OTVM9n3vgAYZ9AnvXTsTSoB3F8Og5AvS5uCyzlgNEQcL5gP8QQFV5AH9CkCazfqmlpgeDn9LjazfiMFtQjdtp9Y6XA5GN1c55zeEMEjlJsmk/kw46HPL0w= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 7003571e-ef82-4cf9-d7e7-08d503d8e34d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:DB5PR04MB0998; x-ms-traffictypediagnostic: DB5PR04MB0998: x-exchange-antispam-report-test: UriScan:(180628864354917)(185117386973197)(162533806227266); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123560025)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR04MB0998; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR04MB0998; x-forefront-prvs: 04410E544A x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(376002)(346002)(377454003)(189002)(53754006)(13464003)(199003)(51914003)(24454002)(7696004)(93886005)(3280700002)(99286003)(229853002)(6306002)(6246003)(106356001)(3846002)(66066001)(105586002)(6116002)(102836003)(5250100002)(9686003)(2950100002)(53936002)(4326008)(5890100001)(25786009)(478600001)(68736007)(86362001)(54356999)(50986999)(76176999)(54906003)(966005)(53546010)(101416001)(81166006)(2906002)(97736004)(110136005)(189998001)(14454004)(3660700001)(55016002)(316002)(5660300001)(33656002)(8936002)(74316002)(6436002)(7736002)(81156014)(305945005)(2900100001)(8676002)(6506006); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR04MB0998; H:DB5PR04MB0998.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Sep 2017 05:47:20.3360 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR04MB0998 Subject: Re: [PATCH v2] PeiLib : Inform UEFI memory to Linux X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Sep 2017 05:44:12 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQWxsLA0KDQoNClBsZWFzZSByZXZpZXcgdGhlIHBhdGNoIGFuZCBzaGFyZSB5b3VyIGNvbW1l bnRzLg0KDQoNClRoYW5rcywNCk1lZW5ha3NoaQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+IEZyb206IFNha2FyIEFyb3JhIFttYWlsdG86U2FrYXIuQXJvcmFAYXJtLmNvbV0NCj4g U2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgMjAsIDIwMTcgMTo1MCBQTQ0KPiBUbzogQXJkIEJp ZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+IENjOiBNZWVuYWtzaGkgQWdn YXJ3YWwgPG1lZW5ha3NoaS5hZ2dhcndhbEBueHAuY29tPjsgZWRrMi0NCj4gZGV2ZWxAbGlzdHMu MDEub3JnOyBsZWlmLmxpbmRob2xtQGxpbmFyby5vcmcNCj4gU3ViamVjdDogUkU6IFtlZGsyXSBb UEFUQ0ggdjJdIFBlaUxpYiA6IEluZm9ybSBVRUZJIG1lbW9yeSB0byBMaW51eA0KPiANCj4gVGhh bmtzIGZvciB0aGUgaW5mb3JtYXRpb24uIFNlZW1zIG15IHVuZGVyc3RhbmRpbmcgd2FzIG5vdCBj b3JyZWN0IGluIHRoaXMNCj4gY29udGV4dC4gSSBoYXZlIG5vIG90aGVyIGRvdWJ0cyBvbiB0aGlz IGNoYW5nZS4NCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFyZCBC aWVzaGV1dmVsIFttYWlsdG86YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10NCj4gU2VudDogV2Vk bmVzZGF5LCBTZXB0ZW1iZXIgMjAsIDIwMTcgMTI6MDIgUE0NCj4gVG86IFNha2FyIEFyb3JhIDxT YWthci5Bcm9yYUBhcm0uY29tPg0KPiBDYzogTWVlbmFrc2hpIEFnZ2Fyd2FsIDxtZWVuYWtzaGku YWdnYXJ3YWxAbnhwLmNvbT47IGVkazItDQo+IGRldmVsQGxpc3RzLjAxLm9yZzsgbGVpZi5saW5k aG9sbUBsaW5hcm8ub3JnDQo+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIHYyXSBQZWlMaWIg OiBJbmZvcm0gVUVGSSBtZW1vcnkgdG8gTGludXgNCj4gDQo+IE9uIDE5IFNlcHRlbWJlciAyMDE3 IGF0IDIyOjMyLCBTYWthciBBcm9yYSA8U2FrYXIuQXJvcmFAYXJtLmNvbT4gd3JvdGU6DQo+ID4g VGhlIERYRSBjb3JlIGRpc3BhdGNoZXIgcmVsaWVzIG9uIHRoZSBhdmFpbGFibGUgbWVtb3J5IHRv IGFsbG9jYXRlIHNwYWNlDQo+IGZvciBsb2FkaW5nIHRoZSByZXN0IG9mIHRoZSBtb2R1bGVzIGZy b20gdGhlIFVFRkkgaW1hZ2UuIElmIHdlIGRlY2xhcmUgdGhlDQo+IFVFRkkgaW1hZ2UgbWVtb3J5 IHNwYWNlIChmcm9tIHdoaWNoIERYRSBkaXNwYXRjaGVyIHJlYWRzIHRoZSBlZmkNCj4gbW9kdWxl cykgb3BlbiB0byBhbGxvY2F0aW9uLCBpdCBtaWdodCBsZWFkIHRvIGRhdGEgY29ycnVwdGlvbiwg ZGVwZW5kaW5nIG9uDQo+IHRoZSBsb2NhdGlvbiBvZiBVRUZJIGltYWdlIGFuZCBjdW11bGF0aXZl IHNpemUgb2YgdW5jb21wcmVzc2VkIEVGSQ0KPiBtb2R1bGVzLg0KPiA+DQo+ID4gQWxzbywgc2lu Y2UgVUVGSSBhbGxvd3MgdW5sb2FkaW5nIGFuZCBsb2FkaW5nIG9mIGRyaXZlcnMgYXQgcnVudGlt ZSwgSU1PLA0KPiB0aGVyZSBpcyBhIG5lZWQgdG8gcHJlc2VydmUgdGhlIFVFRkkgaW1hZ2UgZXZl biBhZnRlciBhbGwgdGhlIG1vZHVsZXMgaGF2ZQ0KPiBiZWVuIGRlY29tcHJlc3NlZCBhbmQgbG9h ZGVkIGluIHRoZSBib290IHNlcXVlbmNlLg0KPiA+DQo+IA0KPiBOb25lIG9mIHRoaXMgaXMgcmVs ZXZhbnQuIFRoZSB1bmNvbXByZXNzZWQgZmlybXdhcmUgdm9sdW1lIGNvbnRhaW5pbmcgRFhFDQo+ IGNvcmUgYW5kIGV2ZXJ5dGhpbmcgZWxzZSBpcyBwcmVzZXJ2ZWQgYXMgYmVmb3JlLiBUaGUgb25s eSB0aGluZyB0aGF0IGdldHMNCj4gZGlzY2FyZGVkIGlzIHRoZSBvdXRlciBGViwgd2hpY2ggb25s eSBjb250YWlucyB0aGUgUHJlUGkgU0VDIG1vZHVsZSwgYW5kIHRoZQ0KPiBjb21wcmVzc2VkIEZW LCBuZWl0aGVyIG9mIHdoaWNoIGlzIGV2ZXIgdG91Y2hlZCBhZ2FpbiBhZnRlciBEWEUgY29yZSBo YXMNCj4gc3RhcnRlZCBleGVjdXRpbmcuIFNvIHdlIHNob3VsZCBub3QgcmVnaXN0ZXIgdGhlIEZW IGluIHRoZSBmaXJzdCBwbGFjZSwgYW5kIG5vdA0KPiByZXNlcnZlIHRoZSBtZW1vcnkgc28gd2Ug ZG9uJ3QgbG9zZSBpdC4NCj4gDQo+IElmIHlvdSBzdGlsbCB0aGluayB0aGlzIG1heSBicmVhayBh bnl0aGluZywgY291bGQgeW91IHBsZWFzZSBlbGFib3JhdGU/DQo+IA0KPiANCj4gDQo+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBBcmQgQmllc2hldXZlbCBbbWFpbHRv OmFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmddDQo+ID4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVy IDE5LCAyMDE3IDY6MTggUE0NCj4gPiBUbzogU2FrYXIgQXJvcmEgPFNha2FyLkFyb3JhQGFybS5j b20+DQo+ID4gQ2M6IE1lZW5ha3NoaSBBZ2dhcndhbCA8bWVlbmFrc2hpLmFnZ2Fyd2FsQG54cC5j b20+Ow0KPiA+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBsZWlmLmxpbmRob2xtQGxpbmFyby5v cmcNCj4gPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCB2Ml0gUGVpTGliIDogSW5mb3JtIFVF RkkgbWVtb3J5IHRvIExpbnV4DQo+ID4NCj4gPiBPbiAxOSBTZXB0ZW1iZXIgMjAxNyBhdCAwMTow NywgU2FrYXIgQXJvcmEgPFNha2FyLkFyb3JhQGFybS5jb20+DQo+IHdyb3RlOg0KPiA+PiBUaGlz IGNoYW5nZSB3aWxsIGNyZWF0ZSB0aGUgcG9zc2liaWxpdHkgZm9yIG1lbW9yeSBzcGFjZSBob2xk aW5nIHRoZSBVRUZJDQo+IGltYWdlIHRvIGJlIG92ZXItd3JpdHRlbiBieSB0aGUgRFhFIGNvcmUg Y29kZSwgc2luY2UgdGhpcyBzcGFjZSB3aWxsIHRoZW4gYmUNCj4gYXZhaWxhYmxlIGZvciBhbGxv Y2F0aW9uLg0KPiA+DQo+ID4gWWVzLiBCdXQgd2h5IGRvZXMgdGhpcyBtYXR0ZXIgYWZ0ZXIgdGhl IGVudGlyZSBwYXlsb2FkIGhhcyBiZWVuDQo+IGRlY29tcHJlc3NlZCBpbnRvIG1lbW9yeSBhbHJl YWR5Pw0KPiA+DQo+ID4NCj4gPj4gQW55IHN1Y2ggY2hhbmdlLCBpZiByZXF1aXJlZCwgc2hvdWxk IGJlIGRvbmUganVzdCBiZWZvcmUgYm9vdGluZyB0aGUgT1MuDQo+ID4+DQo+ID4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRl dmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYNCj4gPj4gT2YgTWVlbmFrc2hpIEFn Z2Fyd2FsDQo+ID4+IFNlbnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAxOSwgMjAxNyA2OjAyIFBNDQo+ ID4+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgbGVpZi5saW5kaG9sbUBsaW5hcm8ub3Jn Ow0KPiA+PiBhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnDQo+ID4+IFN1YmplY3Q6IFtlZGsyXSBb UEFUQ0ggdjJdIFBlaUxpYiA6IEluZm9ybSBVRUZJIG1lbW9yeSB0byBMaW51eA0KPiA+Pg0KPiA+ PiBXaGlsZSBjcmVhdGluZyBIb2IgbGlzdCwgQXJtUGxhdGZvcm1Qa2cgaXMgaGlkaW5nIFVFRkkg bWVtb3J5Lg0KPiA+PiB3aGVyZWFzIHRoaXMgbWVtb3J5IGNhbiBiZSB1c2VkIGJ5IE9TLg0KPiA+ Pg0KPiA+PiBUaGlzIHBhdGNoLCBhbGxvd3MgT1MgdG8gdXNlIFVFRkkgY29kZSBhcmVhLg0KPiA+ Pg0KPiA+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1l bnQgMS4xDQo+ID4+IFNpZ25lZC1vZmYtYnk6IFVkaXQgS3VtYXIgPHVkaXQua3VtYXJAbnhwLmNv bT4NCj4gPj4gU2lnbmVkLW9mZi1ieTogTWVlbmFrc2hpIEFnZ2Fyd2FsIDxtZWVuYWtzaGkuYWdn YXJ3YWxAbnhwLmNvbT4NCj4gPj4gLS0tDQo+ID4+ICBBcm1QbGF0Zm9ybVBrZy9NZW1vcnlJbml0 UGVpL01lbW9yeUluaXRQZWlMaWIuYyB8IDY5DQo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPj4gIDEgZmlsZSBjaGFuZ2VkLCA2OSBkZWxldGlvbnMoLSkNCj4gPj4NCj4gPj4gZGlm ZiAtLWdpdCBhL0FybVBsYXRmb3JtUGtnL01lbW9yeUluaXRQZWkvTWVtb3J5SW5pdFBlaUxpYi5j DQo+ID4+IGIvQXJtUGxhdGZvcm1Qa2cvTWVtb3J5SW5pdFBlaS9NZW1vcnlJbml0UGVpTGliLmMN Cj4gPj4gaW5kZXggMmZlYjExZi4uZDAzMjE0YiAxMDA2NDQNCj4gPj4gLS0tIGEvQXJtUGxhdGZv cm1Qa2cvTWVtb3J5SW5pdFBlaS9NZW1vcnlJbml0UGVpTGliLmMNCj4gPj4gKysrIGIvQXJtUGxh dGZvcm1Qa2cvTWVtb3J5SW5pdFBlaS9NZW1vcnlJbml0UGVpTGliLmMNCj4gPj4gQEAgLTcwLDEx ICs3MCw3IEBAIE1lbW9yeVBlaW0gKA0KPiA+PiAgew0KPiA+PiAgICBBUk1fTUVNT1JZX1JFR0lP Tl9ERVNDUklQVE9SICpNZW1vcnlUYWJsZTsNCj4gPj4gICAgRUZJX1JFU09VUkNFX0FUVFJJQlVU RV9UWVBFICBSZXNvdXJjZUF0dHJpYnV0ZXM7DQo+ID4+IC0gIFVJTlQ2NCAgICAgICAgICAgICAg ICAgICAgICAgUmVzb3VyY2VMZW5ndGg7DQo+ID4+ICAgIEVGSV9QRUlfSE9CX1BPSU5URVJTICAg ICAgICAgTmV4dEhvYjsNCj4gPj4gLSAgRUZJX1BIWVNJQ0FMX0FERFJFU1MgICAgICAgICBGZFRv cDsNCj4gPj4gLSAgRUZJX1BIWVNJQ0FMX0FERFJFU1MgICAgICAgICBTeXN0ZW1NZW1vcnlUb3A7 DQo+ID4+IC0gIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAgICAgUmVzb3VyY2VUb3A7DQo+ID4+ ICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgRm91bmQ7DQo+ID4+DQo+ID4+ICAgIC8v IEdldCBWaXJ0dWFsIE1lbW9yeSBNYXAgZnJvbSB0aGUgUGxhdGZvcm0gTGlicmFyeSBAQCAtMTIx LDcxDQo+ICsxMTcsNiBAQCBNZW1vcnlQZWltICgNCj4gPj4gICAgICApOw0KPiA+PiAgICB9DQo+ ID4+DQo+ID4+IC0gIC8vDQo+ID4+IC0gIC8vIFJlc2VydmVkIHRoZSBtZW1vcnkgc3BhY2Ugb2Nj dXBpZWQgYnkgdGhlIGZpcm13YXJlIHZvbHVtZQ0KPiA+PiAtICAvLw0KPiA+PiAtDQo+ID4+IC0g IFN5c3RlbU1lbW9yeVRvcCA9IChFRklfUEhZU0lDQUxfQUREUkVTUylQY2RHZXQ2NA0KPiA+PiAo UGNkU3lzdGVtTWVtb3J5QmFzZSkgKyAoRUZJX1BIWVNJQ0FMX0FERFJFU1MpUGNkR2V0NjQNCj4g Pj4gKFBjZFN5c3RlbU1lbW9yeVNpemUpOw0KPiA+PiAtICBGZFRvcCA9IChFRklfUEhZU0lDQUxf QUREUkVTUylQY2RHZXQ2NCAoUGNkRmRCYXNlQWRkcmVzcykgKw0KPiA+PiAoRUZJX1BIWVNJQ0FM X0FERFJFU1MpUGNkR2V0MzIgKFBjZEZkU2l6ZSk7DQo+ID4+IC0NCj4gPj4gLSAgLy8gRURLMiBk b2VzIG5vdCBoYXZlIHRoZSBjb25jZXB0IG9mIGJvb3QgZmlybXdhcmUgY29waWVkIGludG8NCj4g Pj4gRFJBTS4gVG8gYXZvaWQgdGhlIERYRQ0KPiA+PiAtICAvLyBjb3JlIHRvIG92ZXJ3cml0ZSB0 aGlzIGFyZWEgd2UgbXVzdCBtYXJrIHRoZSByZWdpb24gd2l0aCB0aGUNCj4gPj4gYXR0cmlidXRl IG5vbi1wcmVzZW50DQo+ID4+IC0gIGlmICgoUGNkR2V0NjQgKFBjZEZkQmFzZUFkZHJlc3MpID49 IFBjZEdldDY0DQo+IChQY2RTeXN0ZW1NZW1vcnlCYXNlKSkgJiYgKEZkVG9wIDw9IFN5c3RlbU1l bW9yeVRvcCkpIHsNCj4gPj4gLSAgICBGb3VuZCA9IEZBTFNFOw0KPiA+PiAtDQo+ID4+IC0gICAg Ly8gU2VhcmNoIGZvciBTeXN0ZW0gTWVtb3J5IEhvYiB0aGF0IGNvbnRhaW5zIHRoZSBmaXJtd2Fy ZQ0KPiA+PiAtICAgIE5leHRIb2IuUmF3ID0gR2V0SG9iTGlzdCAoKTsNCj4gPj4gLSAgICB3aGls ZSAoKE5leHRIb2IuUmF3ID0gR2V0TmV4dEhvYg0KPiAoRUZJX0hPQl9UWVBFX1JFU09VUkNFX0RF U0NSSVBUT1IsIE5leHRIb2IuUmF3KSkgIT0gTlVMTCkgew0KPiA+PiAtICAgICAgaWYgKChOZXh0 SG9iLlJlc291cmNlRGVzY3JpcHRvci0+UmVzb3VyY2VUeXBlID09DQo+IEVGSV9SRVNPVVJDRV9T WVNURU1fTUVNT1JZKSAmJg0KPiA+PiAtICAgICAgICAgIChQY2RHZXQ2NCAoUGNkRmRCYXNlQWRk cmVzcykgPj0gTmV4dEhvYi5SZXNvdXJjZURlc2NyaXB0b3ItDQo+ID5QaHlzaWNhbFN0YXJ0KSAm Jg0KPiA+PiAtICAgICAgICAgIChGZFRvcCA8PSBOZXh0SG9iLlJlc291cmNlRGVzY3JpcHRvci0+ UGh5c2ljYWxTdGFydCArDQo+IE5leHRIb2IuUmVzb3VyY2VEZXNjcmlwdG9yLT5SZXNvdXJjZUxl bmd0aCkpDQo+ID4+IC0gICAgICB7DQo+ID4+IC0gICAgICAgIFJlc291cmNlQXR0cmlidXRlcyA9 IE5leHRIb2IuUmVzb3VyY2VEZXNjcmlwdG9yLQ0KPiA+UmVzb3VyY2VBdHRyaWJ1dGU7DQo+ID4+ IC0gICAgICAgIFJlc291cmNlTGVuZ3RoID0gTmV4dEhvYi5SZXNvdXJjZURlc2NyaXB0b3ItPlJl c291cmNlTGVuZ3RoOw0KPiA+PiAtICAgICAgICBSZXNvdXJjZVRvcCA9IE5leHRIb2IuUmVzb3Vy Y2VEZXNjcmlwdG9yLT5QaHlzaWNhbFN0YXJ0ICsNCj4gUmVzb3VyY2VMZW5ndGg7DQo+ID4+IC0N Cj4gPj4gLSAgICAgICAgaWYgKFBjZEdldDY0IChQY2RGZEJhc2VBZGRyZXNzKSA9PSBOZXh0SG9i LlJlc291cmNlRGVzY3JpcHRvci0NCj4gPlBoeXNpY2FsU3RhcnQpIHsNCj4gPj4gLSAgICAgICAg ICBpZiAoU3lzdGVtTWVtb3J5VG9wID09IEZkVG9wKSB7DQo+ID4+IC0gICAgICAgICAgICBOZXh0 SG9iLlJlc291cmNlRGVzY3JpcHRvci0+UmVzb3VyY2VBdHRyaWJ1dGUgPQ0KPiBSZXNvdXJjZUF0 dHJpYnV0ZXMgJiB+RUZJX1JFU09VUkNFX0FUVFJJQlVURV9QUkVTRU5UOw0KPiA+PiAtICAgICAg ICAgIH0gZWxzZSB7DQo+ID4+IC0gICAgICAgICAgICAvLyBDcmVhdGUgdGhlIFN5c3RlbSBNZW1v cnkgSE9CIGZvciB0aGUgZmlybXdhcmUgd2l0aCB0aGUgbm9uLQ0KPiBwcmVzZW50IGF0dHJpYnV0 ZQ0KPiA+PiAtICAgICAgICAgICAgQnVpbGRSZXNvdXJjZURlc2NyaXB0b3JIb2IgKEVGSV9SRVNP VVJDRV9TWVNURU1fTUVNT1JZLA0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlc291cmNlQXR0cmlidXRlcyAmDQo+IH5FRklfUkVTT1VSQ0VfQVRUUklCVVRF X1BSRVNFTlQsDQo+ID4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UGNkR2V0NjQgKFBjZEZkQmFzZUFkZHJlc3MpLA0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBjZEdldDMyIChQY2RGZFNpemUpKTsNCj4gPj4gLQ0KPiA+PiAt ICAgICAgICAgICAgLy8gVG9wIG9mIHRoZSBGRCBpcyBzeXN0ZW0gbWVtb3J5IGF2YWlsYWJsZSBm b3IgVUVGSQ0KPiA+PiAtICAgICAgICAgICAgTmV4dEhvYi5SZXNvdXJjZURlc2NyaXB0b3ItPlBo eXNpY2FsU3RhcnQgKz0NCj4gUGNkR2V0MzIoUGNkRmRTaXplKTsNCj4gPj4gLSAgICAgICAgICAg IE5leHRIb2IuUmVzb3VyY2VEZXNjcmlwdG9yLT5SZXNvdXJjZUxlbmd0aCAtPQ0KPiBQY2RHZXQz MihQY2RGZFNpemUpOw0KPiA+PiAtICAgICAgICAgIH0NCj4gPj4gLSAgICAgICAgfSBlbHNlIHsN Cj4gPj4gLSAgICAgICAgICAvLyBDcmVhdGUgdGhlIFN5c3RlbSBNZW1vcnkgSE9CIGZvciB0aGUg ZmlybXdhcmUgd2l0aCB0aGUgbm9uLQ0KPiBwcmVzZW50IGF0dHJpYnV0ZQ0KPiA+PiAtICAgICAg ICAgIEJ1aWxkUmVzb3VyY2VEZXNjcmlwdG9ySG9iIChFRklfUkVTT1VSQ0VfU1lTVEVNX01FTU9S WSwNCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VB dHRyaWJ1dGVzICYNCj4gfkVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfUFJFU0VOVCwNCj4gPj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGNkR2V0NjQgKFBjZEZkQmFzZUFk ZHJlc3MpLA0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQY2RH ZXQzMiAoUGNkRmRTaXplKSk7DQo+ID4+IC0NCj4gPj4gLSAgICAgICAgICAvLyBVcGRhdGUgdGhl IEhPQg0KPiA+PiAtICAgICAgICAgIE5leHRIb2IuUmVzb3VyY2VEZXNjcmlwdG9yLT5SZXNvdXJj ZUxlbmd0aCA9IFBjZEdldDY0DQo+IChQY2RGZEJhc2VBZGRyZXNzKSAtIE5leHRIb2IuUmVzb3Vy Y2VEZXNjcmlwdG9yLT5QaHlzaWNhbFN0YXJ0Ow0KPiA+PiAtDQo+ID4+IC0gICAgICAgICAgLy8g SWYgdGhlcmUgaXMgc29tZSBtZW1vcnkgYXZhaWxhYmxlIG9uIHRoZSB0b3Agb2YgdGhlIEZEIHRo ZW4NCj4gY3JlYXRlIGEgSE9CDQo+ID4+IC0gICAgICAgICAgaWYgKEZkVG9wIDwgTmV4dEhvYi5S ZXNvdXJjZURlc2NyaXB0b3ItPlBoeXNpY2FsU3RhcnQgKw0KPiBSZXNvdXJjZUxlbmd0aCkgew0K PiA+PiAtICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBTeXN0ZW0gTWVtb3J5IEhPQiBmb3IgdGhl IHJlbWFpbmluZyByZWdpb24gKHRvcCBvZg0KPiB0aGUgRkQpDQo+ID4+IC0gICAgICAgICAgICBC dWlsZFJlc291cmNlRGVzY3JpcHRvckhvYiAoRUZJX1JFU09VUkNFX1NZU1RFTV9NRU1PUlksDQo+ ID4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VBdHRy aWJ1dGVzLA0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZk VG9wLA0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291 cmNlVG9wIC0gRmRUb3ApOw0KPiA+PiAtICAgICAgICAgIH0NCj4gPj4gLSAgICAgICAgfQ0KPiA+ PiAtICAgICAgICBGb3VuZCA9IFRSVUU7DQo+ID4+IC0gICAgICAgIGJyZWFrOw0KPiA+PiAtICAg ICAgfQ0KPiA+PiAtICAgICAgTmV4dEhvYi5SYXcgPSBHRVRfTkVYVF9IT0IgKE5leHRIb2IpOw0K PiA+PiAtICAgIH0NCj4gPj4gLQ0KPiA+PiAtICAgIEFTU0VSVChGb3VuZCk7DQo+ID4+IC0gIH0N Cj4gPj4gLQ0KPiA+PiAgICAvLyBCdWlsZCBNZW1vcnkgQWxsb2NhdGlvbiBIb2INCj4gPj4gICAg SW5pdE1tdSAoTWVtb3J5VGFibGUpOw0KPiA+Pg0KPiA+PiAtLQ0KPiA+PiAxLjkuMQ0KPiA+Pg0K PiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0K PiA+PiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4g Pj4gSU1QT1JUQU5UIE5PVElDRTogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgYW5kIGFueSBh dHRhY2htZW50cyBhcmUNCj4gY29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2Vk LiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LA0KPiBwbGVhc2Ugbm90aWZ5 IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUgY29udGVudHMg dG8gYW55DQo+IG90aGVyIHBlcnNvbiwgdXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Igc3RvcmUg b3IgY29weSB0aGUgaW5mb3JtYXRpb24gaW4gYW55DQo+IG1lZGl1bS4gVGhhbmsgeW91Lg0KPiA+ IElNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBvZiB0aGlzIGVtYWlsIGFuZCBhbnkgYXR0 YWNobWVudHMgYXJlDQo+IGNvbmZpZGVudGlhbCBhbmQgbWF5IGFsc28gYmUgcHJpdmlsZWdlZC4g SWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwNCj4gcGxlYXNlIG5vdGlmeSB0 aGUgc2VuZGVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhlIGNvbnRlbnRzIHRv IGFueQ0KPiBvdGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55IHB1cnBvc2UsIG9yIHN0b3JlIG9y IGNvcHkgdGhlIGluZm9ybWF0aW9uIGluIGFueQ0KPiBtZWRpdW0uIFRoYW5rIHlvdS4NCj4gSU1Q T1JUQU5UIE5PVElDRTogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgYW5kIGFueSBhdHRhY2ht ZW50cyBhcmUNCj4gY29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5 b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LA0KPiBwbGVhc2Ugbm90aWZ5IHRoZSBz ZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUgY29udGVudHMgdG8gYW55 DQo+IG90aGVyIHBlcnNvbiwgdXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Igc3RvcmUgb3IgY29w eSB0aGUgaW5mb3JtYXRpb24gaW4gYW55DQo+IG1lZGl1bS4gVGhhbmsgeW91Lg0K