From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 91672210D7F4B for ; Wed, 6 Jun 2018 18:33:04 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Jun 2018 18:33:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,485,1520924400"; d="scan'208";a="61933579" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga001.fm.intel.com with ESMTP; 06 Jun 2018 18:33:03 -0700 Received: from fmsmsx115.amr.corp.intel.com (10.18.116.19) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 6 Jun 2018 18:32:58 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx115.amr.corp.intel.com (10.18.116.19) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 6 Jun 2018 18:32:57 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.87]) by shsmsx102.ccr.corp.intel.com ([169.254.2.223]) with mapi id 14.03.0319.002; Thu, 7 Jun 2018 09:32:20 +0800 From: "Gao, Liming" To: Zenith432 , "edk2-devel@lists.01.org" Thread-Topic: [PATCH] BaseTools/GenFw: Add X64 GOTPCREL Support to GenFw Thread-Index: AQHT/cBcr9AWZiSGU0OH2lMLbJ/XdKRUAvLg Date: Thu, 7 Jun 2018 01:32:20 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E293CF7@SHSMSX104.ccr.corp.intel.com> References: <1821667922.1236806.1528308060822.ref@mail.yahoo.com> <1821667922.1236806.1528308060822@mail.yahoo.com> In-Reply-To: <1821667922.1236806.1528308060822@mail.yahoo.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMDQ0YjYwMTQtMjBkMC00YTViLTk2Y2UtMDJmZWQ4MzlmZDgxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVmJ2RktNdmtPaXhqTFJiTmlEOFBFVmNcL2djZlJJTDhFU015a0lvTlk1RTFUcHFhc21nOUlpSmVhVlBLdml6cXAifQ== dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] BaseTools/GenFw: Add X64 GOTPCREL Support to GenFw X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jun 2018 01:33:04 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 V2hhdCdzIHB1cnBvc2UgdG8gc3VwcG9ydCBHT1RQQ1JFTCBpbiBHZW5Gdz8gQ291bGQgeW91IGlu dHJvZHVjZSB5b3VyIHVzYWdlIG1vZGVsPw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+IEZyb206IFplbml0aDQzMiBbbWFpbHRvOnplbml0aDQzMkB1c2Vycy5zb3VyY2Vmb3JnZS5u ZXRdDQo+IFNlbnQ6IFRodXJzZGF5LCBKdW5lIDcsIDIwMTggMjowMSBBTQ0KPiBUbzogZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IFNoaSwgU3RldmVuIDxzdGV2ZW4uc2hpQGludGVsLmNv bT47IFpodSwgWW9uZ2hvbmcgPHlvbmdob25nLnpodUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8 bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSF0gQmFzZVRvb2xzL0dlbkZ3 OiBBZGQgWDY0IEdPVFBDUkVMIFN1cHBvcnQgdG8gR2VuRncNCj4gDQo+IEFkZHMgc3VwcG9ydCBm b3IgdGhlIGZvbGxvd2luZyBYNjQgRUxGIHJlbG9jYXRpb25zIHRvIEdlbkZ3DQo+ICAgUl9YODZf NjRfR09UUENSRUwNCj4gICBSX1g4Nl82NF9HT1RQQ1JFTFgNCj4gICBSX1g4Nl82NF9SRVhfR09U UENSRUxYDQo+IA0KPiBDQzogU2hpIFN0ZXZlbiA8c3RldmVuLnNoaUBpbnRlbC5jb20+DQo+IEND OiBZb25naG9uZyBaaHUgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQo+IENDOiBMaW1pbmcgR2Fv IDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBD b250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiBTaWduZWQtb2ZmLWJ5OiBaZW5pdGg0MzIgPHpl bml0aDQzMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+DQo+IC0tLQ0KPiAgQmFzZVRvb2xzL1NvdXJj ZS9DL0dlbkZ3L0VsZjY0Q29udmVydC5jIHwgMTY2ICsrKysrKysrKysrKysrKysrKysrKysrLQ0K PiAgQmFzZVRvb2xzL1NvdXJjZS9DL0dlbkZ3L2VsZl9jb21tb24uaCAgIHwgIDIzICsrKysNCj4g IDIgZmlsZXMgY2hhbmdlZCwgMTg4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gDQo+ IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL0MvR2VuRncvRWxmNjRDb252ZXJ0LmMgYi9C YXNlVG9vbHMvU291cmNlL0MvR2VuRncvRWxmNjRDb252ZXJ0LmMNCj4gaW5kZXggYzM5YmRmZjAu LmQyZjliYjQ2IDEwMDY0NA0KPiAtLS0gYS9CYXNlVG9vbHMvU291cmNlL0MvR2VuRncvRWxmNjRD b252ZXJ0LmMNCj4gKysrIGIvQmFzZVRvb2xzL1NvdXJjZS9DL0dlbkZ3L0VsZjY0Q29udmVydC5j DQo+IEBAIC05NCw2ICs5NCwxNSBAQCBTVEFUSUMgRWxmX0VoZHIgKm1FaGRyOw0KPiAgU1RBVElD IEVsZl9TaGRyICptU2hkckJhc2U7DQo+ICBTVEFUSUMgRWxmX1BoZHIgKm1QaGRyQmFzZTsNCj4g DQo+ICsvLw0KPiArLy8gR09UIGluZm9ybWF0aW9uDQo+ICsvLw0KPiArU1RBVElDIEVsZl9TaGRy ICptR09UU2hkciA9IE5VTEw7DQo+ICtTVEFUSUMgVUlOVDMyICAgbUdPVFNoaW5kZXggPSAwOw0K PiArU1RBVElDIFVJTlQzMiAgICptR09UQ29mZkVudHJpZXMgPSBOVUxMOw0KPiArU1RBVElDIFVJ TlQzMiAgIG1HT1RNYXhDb2ZmRW50cmllcyA9IDA7DQo+ICtTVEFUSUMgVUlOVDMyICAgbUdPVE51 bUNvZmZFbnRyaWVzID0gMDsNCj4gKw0KPiAgLy8NCj4gIC8vIENvZmYgaW5mb3JtYXRpb24NCj4g IC8vDQo+IEBAIC0zMjIsNiArMzMxLDExNyBAQCBHZXRTeW1OYW1lICgNCj4gICAgcmV0dXJuIFN0 cnRhYkNvbnRlbnRzICsgU3ltLT5zdF9uYW1lOw0KPiAgfQ0KPiANCj4gKy8vDQo+ICsvLyBGaW5k IHRoZSBFTEYgc2VjdGlvbiBob3N0aW5nIHRoZSBHT1QgZnJvbSBhbiBFTEYgUnZhDQo+ICsvLyAg IG9mIGEgc2luZ2xlIEdPVCBlbnRyeS4gIE5vcm1hbGx5LCBHT1QgaXMgcGxhY2VkIGluDQo+ICsv LyAgIEVMRiAudGV4dCBzZWN0aW9uLCBzbyBhc3N1bWUgb25jZSB3ZSBmaW5kIGluIHdoaWNoDQo+ ICsvLyAgIHNlY3Rpb24gdGhlIEdPVCBpcywgYWxsIEdPVCBlbnRyaWVzIGFyZSB0aGVyZSwgYW5k DQo+ICsvLyAgIGp1c3QgdmVyaWZ5IHRoaXMuDQo+ICsvLw0KPiArU1RBVElDDQo+ICtWT0lEDQo+ ICtGaW5kRWxmR09UU2VjdGlvbkZyb21HT1RFbnRyeUVsZlJ2YSAoDQo+ICsgIEVsZjY0X0FkZHIg R09URW50cnlFbGZSdmENCj4gKyAgKQ0KPiArew0KPiArICBVSU5UMzIgaTsNCj4gKyAgaWYgKG1H T1RTaGRyICE9IE5VTEwpIHsNCj4gKyAgICBpZiAoR09URW50cnlFbGZSdmEgPj0gbUdPVFNoZHIt PnNoX2FkZHIgJiYNCj4gKyAgICAgICAgR09URW50cnlFbGZSdmEgPCAgbUdPVFNoZHItPnNoX2Fk ZHIgKyBtR09UU2hkci0+c2hfc2l6ZSkNCj4gKyAgICAgIHJldHVybjsNCj4gKyAgICBFcnJvciAo TlVMTCwgMCwgMzAwMCwgIlVuc3VwcG9ydGVkIiwgIkZpbmRFbGZHT1RTZWN0aW9uRnJvbUdPVEVu dHJ5RWxmUnZhOiBHT1QgZW50cmllcyBmb3VuZCBpbiBtdWx0aXBsZSBzZWN0aW9ucy4iKTsNCj4g KyAgICBleGl0KEVYSVRfRkFJTFVSRSk7DQo+ICsgIH0NCj4gKyAgZm9yIChpID0gMDsgaSA8IG1F aGRyLT5lX3NobnVtOyBpKyspIHsNCj4gKyAgICBFbGZfU2hkciAqc2hkciA9IEdldFNoZHJCeUlu ZGV4KGkpOw0KPiArICAgIGlmIChHT1RFbnRyeUVsZlJ2YSA+PSBzaGRyLT5zaF9hZGRyICYmDQo+ ICsgICAgICAgIEdPVEVudHJ5RWxmUnZhIDwgIHNoZHItPnNoX2FkZHIgKyBzaGRyLT5zaF9zaXpl KSB7DQo+ICsgICAgICBtR09UU2hkciA9IHNoZHI7DQo+ICsgICAgICBtR09UU2hpbmRleCA9IGk7 DQo+ICsgICAgICByZXR1cm47DQo+ICsgICAgfQ0KPiArICB9DQo+ICsgIEVycm9yIChOVUxMLCAw LCAzMDAwLCAiSW52YWxpZCIsICJGaW5kRWxmR09UU2VjdGlvbkZyb21HT1RFbnRyeUVsZlJ2YTog RWxmUnZhIDB4JTAxNkxYIGZvciBHT1QgZW50cnkgbm90IGZvdW5kIGluIGFueSBzZWN0aW9uLiIs DQo+IEdPVEVudHJ5RWxmUnZhKTsNCj4gKyAgZXhpdChFWElUX0ZBSUxVUkUpOw0KPiArfQ0KPiAr DQo+ICsvLw0KPiArLy8gU3RvcmVzIGxvY2F0aW9ucyBvZiBHT1QgZW50cmllcyBpbiBDT0ZGIGlt YWdlLg0KPiArLy8gICBSZXR1cm5zIFRSVUUgaWYgR09UIGVudHJ5IGlzIG5ldy4NCj4gKy8vICAg U2ltcGxlIGltcGxlbWVudGF0aW9uIGFzIG51bWJlciBvZiBHT1QNCj4gKy8vICAgZW50cmllcyBp cyBleHBlY3RlZCB0byBiZSBsb3cuDQo+ICsvLw0KPiArDQo+ICtTVEFUSUMNCj4gK0JPT0xFQU4N Cj4gK0FjY3VtdWxhdGVDb2ZmR09URW50cmllcyAoDQo+ICsgIFVJTlQzMiBHT1RDb2ZmRW50cnkN Cj4gKyAgKQ0KPiArew0KPiArICBVSU5UMzIgaTsNCj4gKyAgaWYgKG1HT1RDb2ZmRW50cmllcyAh PSBOVUxMKSB7DQo+ICsgICAgZm9yIChpID0gMDsgaSA8IG1HT1ROdW1Db2ZmRW50cmllczsgaSsr KQ0KPiArICAgICAgaWYgKG1HT1RDb2ZmRW50cmllc1tpXSA9PSBHT1RDb2ZmRW50cnkpDQo+ICsg ICAgICAgIHJldHVybiBGQUxTRTsNCj4gKyAgfQ0KPiArICBpZiAobUdPVENvZmZFbnRyaWVzID09 IE5VTEwpIHsNCj4gKyAgICBtR09UQ29mZkVudHJpZXMgPSAoVUlOVDMyKiltYWxsb2MoNSAqIHNp emVvZiAqbUdPVENvZmZFbnRyaWVzKTsNCj4gKyAgICBpZiAobUdPVENvZmZFbnRyaWVzID09IE5V TEwpIHsNCj4gKyAgICAgIEVycm9yIChOVUxMLCAwLCA0MDAxLCAiUmVzb3VyY2UiLCAibWVtb3J5 IGNhbm5vdCBiZSBhbGxvY2F0ZWQhIik7DQo+ICsgICAgfQ0KPiArICAgIGFzc2VydCAobUdPVENv ZmZFbnRyaWVzICE9IE5VTEwpOw0KPiArICAgIG1HT1RNYXhDb2ZmRW50cmllcyA9IDU7DQo+ICsg ICAgbUdPVE51bUNvZmZFbnRyaWVzID0gMDsNCj4gKyAgfSBlbHNlIGlmIChtR09UTnVtQ29mZkVu dHJpZXMgPT0gbUdPVE1heENvZmZFbnRyaWVzKSB7DQo+ICsgICAgbUdPVENvZmZFbnRyaWVzID0g KFVJTlQzMiopcmVhbGxvYyhtR09UQ29mZkVudHJpZXMsIDIgKiBtR09UTWF4Q29mZkVudHJpZXMg KiBzaXplb2YgKm1HT1RDb2ZmRW50cmllcyk7DQo+ICsgICAgaWYgKG1HT1RDb2ZmRW50cmllcyA9 PSBOVUxMKSB7DQo+ICsgICAgICBFcnJvciAoTlVMTCwgMCwgNDAwMSwgIlJlc291cmNlIiwgIm1l bW9yeSBjYW5ub3QgYmUgYWxsb2NhdGVkISIpOw0KPiArICAgIH0NCj4gKyAgICBhc3NlcnQgKG1H T1RDb2ZmRW50cmllcyAhPSBOVUxMKTsNCj4gKyAgICBtR09UTWF4Q29mZkVudHJpZXMgKz0gbUdP VE1heENvZmZFbnRyaWVzOw0KPiArICB9DQo+ICsgIG1HT1RDb2ZmRW50cmllc1ttR09UTnVtQ29m ZkVudHJpZXMrK10gPSBHT1RDb2ZmRW50cnk7DQo+ICsgIHJldHVybiBUUlVFOw0KPiArfQ0KPiAr DQo+ICtTVEFUSUMNCj4gK2ludA0KPiArX19jb21wYXJhdG9yICgNCj4gKyAgY29uc3Qgdm9pZCog bGhzLA0KPiArICBjb25zdCB2b2lkKiByaHMNCj4gKyAgKQ0KPiArew0KPiArICBpZiAoKihjb25z dCBVSU5UMzIqKWxocyA8ICooY29uc3QgVUlOVDMyKilyaHMpDQo+ICsgICAgcmV0dXJuIC0xOw0K PiArICByZXR1cm4gKihjb25zdCBVSU5UMzIqKWxocyA+ICooY29uc3QgVUlOVDMyKilyaHM7DQo+ ICt9DQo+ICsNCj4gK1NUQVRJQw0KPiArVk9JRA0KPiArRW1pdEdPVFJlbG9jYXRpb25zICgNCj4g KyAgVk9JRA0KPiArICApDQo+ICt7DQo+ICsgIFVJTlQzMiBpOw0KPiArICBpZiAobUdPVENvZmZF bnRyaWVzID09IE5VTEwpDQo+ICsgICAgcmV0dXJuOw0KPiArICBxc29ydCgNCj4gKyAgICBtR09U Q29mZkVudHJpZXMsDQo+ICsgICAgbUdPVE51bUNvZmZFbnRyaWVzLA0KPiArICAgIHNpemVvZiAq bUdPVENvZmZFbnRyaWVzLA0KPiArICAgIF9fY29tcGFyYXRvcik7DQo+ICsgIGZvciAoaSA9IDA7 IGkgPCBtR09UTnVtQ29mZkVudHJpZXM7IGkrKykgew0KPiArICAgIFZlcmJvc2VNc2cgKCJFRklf SU1BR0VfUkVMX0JBU0VEX0RJUjY0IE9mZnNldDogMHglMDhYIiwgbUdPVENvZmZFbnRyaWVzW2ld KTsNCj4gKyAgICBDb2ZmQWRkRml4dXAoDQo+ICsgICAgICBtR09UQ29mZkVudHJpZXNbaV0sDQo+ ICsgICAgICBFRklfSU1BR0VfUkVMX0JBU0VEX0RJUjY0KTsNCj4gKyAgfQ0KPiArICBmcmVlKG1H T1RDb2ZmRW50cmllcyk7DQo+ICsgIG1HT1RDb2ZmRW50cmllcyA9IE5VTEw7DQo+ICsgIG1HT1RN YXhDb2ZmRW50cmllcyA9IDA7DQo+ICsgIG1HT1ROdW1Db2ZmRW50cmllcyA9IDA7DQo+ICt9DQo+ ICsNCj4gIC8vDQo+ICAvLyBFbGYgZnVuY3Rpb25zIGludGVyZmFjZSBpbXBsZW1lbnRhdGlvbg0K PiAgLy8NCj4gQEAgLTY5OCw3ICs4MTgsNyBAQCBXcml0ZVNlY3Rpb25zNjQgKA0KPiAgICAgIC8v IHNlY3Rpb24gdGhhdCBhcHBsaWVzIHRvIHRoZSBlbnRpcmUgYmluYXJ5LCBhbmQgd2hpY2ggd2ls bCBoYXZlIGl0cyBzZWN0aW9uDQo+ICAgICAgLy8gaW5kZXggc2V0IHRvICMwICh3aGljaCBpcyBh IE5VTEwgc2VjdGlvbiB3aXRoIHRoZSBTSEZfQUxMT0MgYml0IGNsZWFyZWQpLg0KPiAgICAgIC8v DQo+IC0gICAgLy8gSW4gdGhlIGFic2VuY2Ugb2YgR09UIGJhc2VkIHJlbG9jYXRpb25zICh3aGlj aCB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCksDQo+ICsgICAgLy8gSW4gdGhlIGFic2VuY2Ug b2YgR09UIGJhc2VkIHJlbG9jYXRpb25zLA0KPiAgICAgIC8vIHRoaXMgUkVMQSBzZWN0aW9uIHdp bGwgY29udGFpbiByZWR1bmRhbnQgUl94eHhfUkVMQVRJVkUgcmVsb2NhdGlvbnMsIG9uZQ0KPiAg ICAgIC8vIGZvciBldmVyeSBSX3h4eF94eDY0IHJlbG9jYXRpb24gYXBwZWFyaW5nIGluIHRoZSBw ZXItc2VjdGlvbiBSRUxBIHNlY3Rpb25zLg0KPiAgICAgIC8vIChpLmUuLCAucmVsYS50ZXh0IGFu ZCAucmVsYS5kYXRhKQ0KPiBAQCAtNzgwLDYgKzkwMCw3IEBAIFdyaXRlU2VjdGlvbnM2NCAoDQo+ ICAgICAgICAgIC8vIERldGVybWluZSBob3cgdG8gaGFuZGxlIGVhY2ggcmVsb2NhdGlvbiB0eXBl IGJhc2VkIG9uIHRoZSBtYWNoaW5lIHR5cGUuDQo+ICAgICAgICAgIC8vDQo+ICAgICAgICAgIGlm IChtRWhkci0+ZV9tYWNoaW5lID09IEVNX1g4Nl82NCkgew0KPiArICAgICAgICAgIEVsZjY0X0Fk ZHIgR09URW50cnlSdmE7DQo+ICAgICAgICAgICAgc3dpdGNoIChFTEZfUl9UWVBFKFJlbC0+cl9p bmZvKSkgew0KPiAgICAgICAgICAgIGNhc2UgUl9YODZfNjRfTk9ORToNCj4gICAgICAgICAgICAg IGJyZWFrOw0KPiBAQCAtODM0LDYgKzk1NSwzMiBAQCBXcml0ZVNlY3Rpb25zNjQgKA0KPiAgICAg ICAgICAgICAgICAtIChTZWNPZmZzZXQgLSBTZWNTaGRyLT5zaF9hZGRyKSk7DQo+ICAgICAgICAg ICAgICBWZXJib3NlTXNnICgiUmVsb2NhdGlvbjogIDB4JTA4WCIsICooVUlOVDMyICopVGFyZyk7 DQo+ICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgICBjYXNlIFJfWDg2XzY0X0dPVFBD UkVMOg0KPiArICAgICAgICAgIGNhc2UgUl9YODZfNjRfR09UUENSRUxYOg0KPiArICAgICAgICAg IGNhc2UgUl9YODZfNjRfUkVYX0dPVFBDUkVMWDoNCj4gKyAgICAgICAgICAgIFZlcmJvc2VNc2cg KCJSX1g4Nl82NF9HT1RQQ1JFTCBmYW1pbHkiKTsNCj4gKyAgICAgICAgICAgIFZlcmJvc2VNc2cg KCJPZmZzZXQ6IDB4JTA4WCwgQWRkZW5kOiAweCUwOFgiLA0KPiArICAgICAgICAgICAgICAoVUlO VDMyKShTZWNPZmZzZXQgKyAoUmVsLT5yX29mZnNldCAtIFNlY1NoZHItPnNoX2FkZHIpKSwNCj4g KyAgICAgICAgICAgICAgKihVSU5UMzIgKilUYXJnKTsNCj4gKyAgICAgICAgICAgIEdPVEVudHJ5 UnZhID0gUmVsLT5yX29mZnNldCAtIFJlbC0+cl9hZGRlbmQgKyAqKFVJTlQzMiAqKVRhcmc7DQo+ ICsgICAgICAgICAgICBGaW5kRWxmR09UU2VjdGlvbkZyb21HT1RFbnRyeUVsZlJ2YShHT1RFbnRy eVJ2YSk7DQo+ICsgICAgICAgICAgICAqKFVJTlQzMiAqKVRhcmcgPSAoVUlOVDMyKSAoKihVSU5U MzIgKilUYXJnDQo+ICsgICAgICAgICAgICAgICsgKG1Db2ZmU2VjdGlvbnNPZmZzZXRbbUdPVFNo aW5kZXhdIC0gbUdPVFNoZHItPnNoX2FkZHIpDQo+ICsgICAgICAgICAgICAgIC0gKFNlY09mZnNl dCAtIFNlY1NoZHItPnNoX2FkZHIpKTsNCj4gKyAgICAgICAgICAgIFZlcmJvc2VNc2cgKCJSZWxv Y2F0aW9uOiAgMHglMDhYIiwgKihVSU5UMzIgKilUYXJnKTsNCj4gKyAgICAgICAgICAgIEdPVEVu dHJ5UnZhICs9IChtQ29mZlNlY3Rpb25zT2Zmc2V0W21HT1RTaGluZGV4XSAtIG1HT1RTaGRyLT5z aF9hZGRyKTsgIC8vIEVMRiBSdmEgLT4gQ09GRiBSdmENCj4gKyAgICAgICAgICAgIGlmIChBY2N1 bXVsYXRlQ29mZkdPVEVudHJpZXMoKFVJTlQzMilHT1RFbnRyeVJ2YSkpIHsNCj4gKyAgICAgICAg ICAgICAgLy8NCj4gKyAgICAgICAgICAgICAgLy8gUmVsb2NhdGUgR09UIGVudHJ5IGlmIGl0J3Mg dGhlIGZpcnN0IHRpbWUgd2UgcnVuIGludG8gaXQNCj4gKyAgICAgICAgICAgICAgLy8NCj4gKyAg ICAgICAgICAgICAgVGFyZyA9IG1Db2ZmRmlsZSArIEdPVEVudHJ5UnZhOw0KPiArICAgICAgICAg ICAgICBWZXJib3NlTXNnICgiT2Zmc2V0OiAweCUwOFgsIEFkZGVuZDogMHglMDE2TFgiLA0KPiAr ICAgICAgICAgICAgICAgIChVSU5UMzIpR09URW50cnlSdmEsDQo+ICsgICAgICAgICAgICAgICAg KihVSU5UNjQgKilUYXJnKTsNCj4gKyAgICAgICAgICAgICAgKihVSU5UNjQgKilUYXJnID0gKihV SU5UNjQgKilUYXJnIC0gU3ltU2hkci0+c2hfYWRkciArIG1Db2ZmU2VjdGlvbnNPZmZzZXRbU3lt LT5zdF9zaG5keF07DQo+ICsgICAgICAgICAgICAgIFZlcmJvc2VNc2cgKCJSZWxvY2F0aW9uOiAg MHglMDE2TFgiLCAqKFVJTlQ2NCopVGFyZyk7DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAg ICAgICBicmVhazsNCj4gICAgICAgICAgICBkZWZhdWx0Og0KPiAgICAgICAgICAgICAgRXJyb3Ig KE5VTEwsIDAsIDMwMDAsICJJbnZhbGlkIiwgIiVzIHVuc3VwcG9ydGVkIEVMRiBFTV9YODZfNjQg cmVsb2NhdGlvbiAweCV4LiIsIG1JbkltYWdlTmFtZSwgKHVuc2lnbmVkKQ0KPiBFTEZfUl9UWVBF KFJlbC0+cl9pbmZvKSk7DQo+ICAgICAgICAgICAgfQ0KPiBAQCAtOTcyLDYgKzExMTksOSBAQCBX cml0ZVJlbG9jYXRpb25zNjQgKA0KPiAgICAgICAgICAgICAgY2FzZSBSX1g4Nl82NF9OT05FOg0K PiAgICAgICAgICAgICAgY2FzZSBSX1g4Nl82NF9QQzMyOg0KPiAgICAgICAgICAgICAgY2FzZSBS X1g4Nl82NF9QTFQzMjoNCj4gKyAgICAgICAgICAgIGNhc2UgUl9YODZfNjRfR09UUENSRUw6DQo+ ICsgICAgICAgICAgICBjYXNlIFJfWDg2XzY0X0dPVFBDUkVMWDoNCj4gKyAgICAgICAgICAgIGNh c2UgUl9YODZfNjRfUkVYX0dPVFBDUkVMWDoNCj4gICAgICAgICAgICAgICAgYnJlYWs7DQo+ICAg ICAgICAgICAgICBjYXNlIFJfWDg2XzY0XzY0Og0KPiAgICAgICAgICAgICAgICBWZXJib3NlTXNn ICgiRUZJX0lNQUdFX1JFTF9CQVNFRF9ESVI2NCBPZmZzZXQ6IDB4JTA4WCIsDQo+IEBAIC0xMDQw LDEwICsxMTkwLDI0IEBAIFdyaXRlUmVsb2NhdGlvbnM2NCAoDQo+ICAgICAgICAgICAgICBFcnJv ciAoTlVMTCwgMCwgMzAwMCwgIk5vdCBTdXBwb3J0ZWQiLCAiVGhpcyB0b29sIGRvZXMgbm90IHN1 cHBvcnQgcmVsb2NhdGlvbnMgZm9yIEVMRiB3aXRoIGVfbWFjaGluZSAldSAocHJvY2Vzc29yDQo+ IHR5cGUpLiIsICh1bnNpZ25lZCkgbUVoZHItPmVfbWFjaGluZSk7DQo+ICAgICAgICAgICAgfQ0K PiAgICAgICAgICB9DQo+ICsgICAgICAgIGlmIChtRWhkci0+ZV9tYWNoaW5lID09IEVNX1g4Nl82 NCAmJiBSZWxTaGRyLT5zaF9pbmZvID09IG1HT1RTaGluZGV4KSB7DQo+ICsgICAgICAgICAgLy8N Cj4gKyAgICAgICAgICAvLyBUYWNrIHJlbG9jYXRpb25zIGZvciBHT1QgZW50cmllcyBhZnRlciBv dGhlciByZWxvY2F0aW9ucyBmb3INCj4gKyAgICAgICAgICAvLyAgIHRoZSBzZWN0aW9uIHRoZSBH T1QgaXMgaW4sIGFzIGl0J3MgdXN1YWxseSBmb3VuZCBhdCB0aGUgZW5kDQo+ICsgICAgICAgICAg Ly8gICBvZiB0aGUgc2VjdGlvbi4NCj4gKyAgICAgICAgICAvLw0KPiArICAgICAgICAgIEVtaXRH T1RSZWxvY2F0aW9ucygpOw0KPiArICAgICAgICB9DQo+ICAgICAgICB9DQo+ICAgICAgfQ0KPiAg ICB9DQo+IA0KPiArICBpZiAobUVoZHItPmVfbWFjaGluZSA9PSBFTV9YODZfNjQpIHsNCj4gKyAg ICAvLw0KPiArICAgIC8vIEp1c3QgaW4gY2FzZSBHT1QgaXMgaW4gYSBzZWN0aW9uIHdpdGggbm8g b3RoZXIgcmVsb2NhdGlvbnMNCj4gKyAgICAvLw0KPiArICAgIEVtaXRHT1RSZWxvY2F0aW9ucygp Ow0KPiArICB9DQo+ICAgIC8vDQo+ICAgIC8vIFBhZCBieSBhZGRpbmcgZW1wdHkgZW50cmllcy4N Cj4gICAgLy8NCj4gZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9Tb3VyY2UvQy9HZW5Gdy9lbGZfY29t bW9uLmggYi9CYXNlVG9vbHMvU291cmNlL0MvR2VuRncvZWxmX2NvbW1vbi5oDQo+IGluZGV4IDc2 NmQwZTQyLi41MGI0ZTFmMiAxMDA2NDQNCj4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9DL0dlbkZ3 L2VsZl9jb21tb24uaA0KPiArKysgYi9CYXNlVG9vbHMvU291cmNlL0MvR2VuRncvZWxmX2NvbW1v bi5oDQo+IEBAIC01NDQsNiArNTQ0LDEyIEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gICNkZWZpbmUJ Ul8zODZfVExTX0RUUE1PRDMyCTM1CS8qIEdPVCBlbnRyeSBjb250YWluaW5nIFRMUyBpbmRleCAq Lw0KPiAgI2RlZmluZQlSXzM4Nl9UTFNfRFRQT0ZGMzIJMzYJLyogR09UIGVudHJ5IGNvbnRhaW5p bmcgVExTIG9mZnNldCAqLw0KPiAgI2RlZmluZQlSXzM4Nl9UTFNfVFBPRkYzMgkzNwkvKiBHT1Qg ZW50cnkgb2YgLXZlIHN0YXRpYyBUTFMgb2Zmc2V0ICovDQo+ICsjZGVmaW5lCVJfMzg2X1NJWkUz MgkJMzgJLyogMzItYml0IHN5bWJvbCBzaXplICovDQo+ICsjZGVmaW5lCVJfMzg2X1RMU19HT1RE RVNDCTM5CS8qIEdPVCBvZmZzZXQgZm9yIFRMUyBkZXNjcmlwdG9yLiAqLw0KPiArI2RlZmluZQlS XzM4Nl9UTFNfREVTQ19DQUxMCTQwCS8qIE1hcmtlciBvZiBjYWxsIHRocm91Z2ggVExTIGRlc2Ny aXB0b3IgZm9yIHJlbGF4YXRpb24uICovDQo+ICsjZGVmaW5lCVJfMzg2X1RMU19ERVNDCQk0MQkv KiBUTFMgZGVzY3JpcHRvciBjb250YWluaW5nIHBvaW50ZXIgdG8gY29kZSBhbmQgdG8gYXJndW1l bnQsIHJldHVybmluZyB0aGUgVExTIG9mZnNldCBmb3IgdGhlDQo+IHN5bWJvbC4gKi8NCj4gKyNk ZWZpbmUJUl8zODZfSVJFTEFUSVZFCQk0MgkvKiBBZGp1c3QgaW5kaXJlY3RseSBieSBwcm9ncmFt IGJhc2UgKi8NCj4gKyNkZWZpbmUJUl8zODZfR09UMzJYCQk0MwkvKiBMb2FkIGZyb20gMzIgYml0 IEdPVCBlbnRyeSwgcmVsYXhhYmxlLiAqLw0KPiANCj4gIC8qIE51bGwgcmVsb2NhdGlvbiAqLw0K PiAgI2RlZmluZQlSX0FBUkNINjRfTk9ORQkJCQkyNTYJLyogTm8gcmVsb2NhdGlvbiAqLw0KPiBA QCAtMTA1Miw2ICsxMDU4LDIzIEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gICNkZWZpbmUJUl9YODZf NjRfRFRQT0ZGMzIJMjEJLyogT2Zmc2V0IGluIFRMUyBibG9jayAqLw0KPiAgI2RlZmluZQlSX1g4 Nl82NF9HT1RUUE9GRgkyMgkvKiBQQyByZWxhdGl2ZSBvZmZzZXQgdG8gSUUgR09UIGVudHJ5ICov DQo+ICAjZGVmaW5lCVJfWDg2XzY0X1RQT0ZGMzIJMjMJLyogT2Zmc2V0IGluIHN0YXRpYyBUTFMg YmxvY2sgKi8NCj4gKyNkZWZpbmUJUl9YODZfNjRfUEM2NAkJMjQJLyogUEMgcmVsYXRpdmUgNjQg Yml0ICovDQo+ICsjZGVmaW5lCVJfWDg2XzY0X0dPVE9GRjY0CTI1CS8qIDY0IGJpdCBvZmZzZXQg dG8gR09UICovDQo+ICsjZGVmaW5lCVJfWDg2XzY0X0dPVFBDMzIJMjYJLyogMzIgYml0IHNpZ25l ZCBwYyByZWxhdGl2ZSBvZmZzZXQgdG8gR09UICovDQo+ICsjZGVmaW5lCVJfWDg2XzY0X0dPVDY0 CQkyNwkvKiA2NC1iaXQgR09UIGVudHJ5IG9mZnNldCAqLw0KPiArI2RlZmluZQlSX1g4Nl82NF9H T1RQQ1JFTDY0CTI4CS8qIDY0LWJpdCBQQyByZWxhdGl2ZSBvZmZzZXQgdG8gR09UIGVudHJ5ICov DQo+ICsjZGVmaW5lCVJfWDg2XzY0X0dPVFBDNjQJMjkJLyogNjQtYml0IFBDIHJlbGF0aXZlIG9m ZnNldCB0byBHT1QgKi8NCj4gKyNkZWZpbmUJUl9YODZfNjRfR09UUExUNjQJMzAJLyogbGlrZSBH T1Q2NCwgc2F5cyBQTFQgZW50cnkgbmVlZGVkICovDQo+ICsjZGVmaW5lCVJfWDg2XzY0X1BMVE9G RjY0CTMxCS8qIDY0LWJpdCBHT1QgcmVsYXRpdmUgb2Zmc2V0IHRvIFBMVCBlbnRyeSAqLw0KPiAr I2RlZmluZQlSX1g4Nl82NF9TSVpFMzIJCTMyCS8qIFNpemUgb2Ygc3ltYm9sIHBsdXMgMzItYml0 IGFkZGVuZCAqLw0KPiArI2RlZmluZQlSX1g4Nl82NF9TSVpFNjQJCTMzCS8qIFNpemUgb2Ygc3lt Ym9sIHBsdXMgNjQtYml0IGFkZGVuZCAqLw0KPiArI2RlZmluZQlSX1g4Nl82NF9HT1RQQzMyX1RM U0RFU0MJMzQJLyogR09UIG9mZnNldCBmb3IgVExTIGRlc2NyaXB0b3IuICovDQo+ICsjZGVmaW5l CVJfWDg2XzY0X1RMU0RFU0NfQ0FMTAkzNQkvKiBNYXJrZXIgZm9yIGNhbGwgdGhyb3VnaCBUTFMg ZGVzY3JpcHRvci4gKi8NCj4gKyNkZWZpbmUJUl9YODZfNjRfVExTREVTQwkzNgkvKiBUTFMgZGVz Y3JpcHRvci4gKi8NCj4gKyNkZWZpbmUJUl9YODZfNjRfSVJFTEFUSVZFCTM3CS8qIEFkanVzdCBp bmRpcmVjdGx5IGJ5IHByb2dyYW0gYmFzZSAqLw0KPiArI2RlZmluZQlSX1g4Nl82NF9SRUxBVElW RTY0CTM4CS8qIDY0LWJpdCBhZGp1c3QgYnkgcHJvZ3JhbSBiYXNlICovDQo+ICsjZGVmaW5lCVJf WDg2XzY0X0dPVFBDUkVMWAk0MQkvKiBMb2FkIGZyb20gMzIgYml0IHNpZ25lZCBwYyByZWxhdGl2 ZSBvZmZzZXQgdG8gR09UIGVudHJ5IHdpdGhvdXQgUkVYIHByZWZpeCwgcmVsYXhhYmxlLiAqLw0K PiArI2RlZmluZQlSX1g4Nl82NF9SRVhfR09UUENSRUxYCTQyCS8qIExvYWQgZnJvbSAzMiBiaXQg c2lnbmVkIHBjIHJlbGF0aXZlIG9mZnNldCB0byBHT1QgZW50cnkgd2l0aCBSRVggcHJlZml4LCBy ZWxheGFibGUuICovDQo+IA0KPiANCj4gICNlbmRpZiAvKiAhX1NZU19FTEZfQ09NTU9OX0hfICov DQo+IC0tDQo+IDIuMTcuMQ0KDQo=