From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ml01.01.org (Postfix) with ESMTP id 67B0C1A1DFB for ; Sat, 30 Jul 2016 07:09:10 -0700 (PDT) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP; 30 Jul 2016 07:09:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,445,1464678000"; d="scan'208";a="1026784263" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga002.jf.intel.com with ESMTP; 30 Jul 2016 07:09:09 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sat, 30 Jul 2016 07:09:09 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sat, 30 Jul 2016 07:09:08 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.147]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.107]) with mapi id 14.03.0248.002; Sat, 30 Jul 2016 22:09:06 +0800 From: "Shi, Steven" To: Ard Biesheuvel CC: edk2-devel-01 , "Gao, Liming" , "afish@apple.com" , "Justen, Jordan L" , "Kinney, Michael D" Thread-Topic: [PATCH v2 2/7] BaseTools-GenFw:Add new x86_64 Elf relocation types for PIC/PIE code Thread-Index: AQHR2PTIfEgqDmQOXkSZxkGjHzXOZaAwUHcAgADFQ0A= Date: Sat, 30 Jul 2016 14:09:06 +0000 Message-ID: <06C8AB66E78EE34A949939824ABE2B3103381245@shsmsx102.ccr.corp.intel.com> References: <1467967364-11556-1-git-send-email-steven.shi@intel.com> <1467967364-11556-3-git-send-email-steven.shi@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMTAxYWJjZmUtMDRhMC00ZTg4LTk5OGItN2NlYTQ4OTE2NjkyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IlVLTm5kd3A2VlhrNzZiYnp4VWlGZFBxMVprTE5KUlhjK01vNE9EZmpaM1U9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v2 2/7] BaseTools-GenFw:Add new x86_64 Elf relocation types for PIC/PIE code X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jul 2016 14:09:10 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiA+IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMvU291cmNlL0MvR2VuRncvRWxmNjRDb252ZXJ0LmMN Cj4gYi9CYXNlVG9vbHMvU291cmNlL0MvR2VuRncvRWxmNjRDb252ZXJ0LmMNCj4gPiBpbmRleCA3 YzgzOGYzLi5mYzI0MWFiIDEwMDc1NQ0KPiA+IC0tLSBhL0Jhc2VUb29scy9Tb3VyY2UvQy9HZW5G dy9FbGY2NENvbnZlcnQuYw0KPiA+ICsrKyBiL0Jhc2VUb29scy9Tb3VyY2UvQy9HZW5Gdy9FbGY2 NENvbnZlcnQuYw0KPiA+IEBAIC03NTUsNiArNzU1LDExIEBAIFdyaXRlU2VjdGlvbnM2NCAoDQo+ ID4gICAgICAgICAgLy8gRGV0ZXJtaW5lIGhvdyB0byBoYW5kbGUgZWFjaCByZWxvY2F0aW9uIHR5 cGUgYmFzZWQgb24gdGhlDQo+IG1hY2hpbmUgdHlwZS4NCj4gPiAgICAgICAgICAvLw0KPiA+ICAg ICAgICAgIGlmIChtRWhkci0+ZV9tYWNoaW5lID09IEVNX1g4Nl82NCkgew0KPiA+ICsgICAgICAg ICAgLy8NCj4gPiArICAgICAgICAgIC8vIFNlZSBSZWxvY2F0aW9uIFR5cGVzIGRldGFpbHMgc2Vt YW50aWNzIGluIFRhYmxlIDQuOSBvZg0KPiA+ICsgICAgICAgICAgLy8gU3lzdGVtViB4ODZfNjQg YWJpIERyYWZ0IFZlcnNpb24gMC45OS44DQo+ID4gKyAgICAgICAgICAvLyBodHRwczovL2dpdGh1 Yi5jb20vaGpsLXRvb2xzL3g4Ni1wc0FCSS93aWtpL3g4Ni02NC1wc0FCSS0NCj4gc2VjdXJlLnBk Zg0KPiA+ICsgICAgICAgICAgLy8NCj4gPiAgICAgICAgICAgIHN3aXRjaCAoRUxGX1JfVFlQRShS ZWwtPnJfaW5mbykpIHsNCj4gPiAgICAgICAgICAgIGNhc2UgUl9YODZfNjRfTk9ORToNCj4gPiAg ICAgICAgICAgICAgYnJlYWs7DQo+ID4gQEAgLTc2MywyNCArNzY4LDI0IEBAIFdyaXRlU2VjdGlv bnM2NCAoDQo+ID4gICAgICAgICAgICAgIC8vIEFic29sdXRlIHJlbG9jYXRpb24uDQo+ID4gICAg ICAgICAgICAgIC8vDQo+ID4gICAgICAgICAgICAgIFZlcmJvc2VNc2cgKCJSX1g4Nl82NF82NCIp Ow0KPiA+IC0gICAgICAgICAgICBWZXJib3NlTXNnICgiT2Zmc2V0OiAweCUwOFgsIEFkZGVuZDog MHglMDE2TFgiLA0KPiA+IC0gICAgICAgICAgICAgIChVSU5UMzIpKFNlY09mZnNldCArIChSZWwt PnJfb2Zmc2V0IC0gU2VjU2hkci0+c2hfYWRkcikpLA0KPiA+ICsgICAgICAgICAgICBWZXJib3Nl TXNnICgiT2Zmc2V0OiAweCUwOFgsIEFkZGVuZDogMHglMDE2TFgiLA0KPiA+ICsgICAgICAgICAg ICAgIChVSU5UMzIpKFNlY09mZnNldCArIChSZWwtPnJfb2Zmc2V0IC0gU2VjU2hkci0+c2hfYWRk cikpLA0KPiANCj4gTm8gY2hhbmdlPw0KW1N0ZXZlbl06IHJlbW92ZSB0aGUgdW5uZWNlc3Nhcnkg YmxhbmsgYXQgZW5kIG9mIGxpbmUsIHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGNvZGluZyBzdHlsZQ0K DQo+IA0KPiA+ICAgICAgICAgICAgICAgICooVUlOVDY0ICopVGFyZyk7DQo+ID4gICAgICAgICAg ICAgICooVUlOVDY0ICopVGFyZyA9ICooVUlOVDY0ICopVGFyZyAtIFN5bVNoZHItPnNoX2FkZHIg Kw0KPiBtQ29mZlNlY3Rpb25zT2Zmc2V0W1N5bS0+c3Rfc2huZHhdOw0KPiA+ICAgICAgICAgICAg ICBWZXJib3NlTXNnICgiUmVsb2NhdGlvbjogIDB4JTAxNkxYIiwgKihVSU5UNjQqKVRhcmcpOw0K PiA+ICAgICAgICAgICAgICBicmVhazsNCj4gPiAgICAgICAgICAgIGNhc2UgUl9YODZfNjRfMzI6 DQo+ID4gICAgICAgICAgICAgIFZlcmJvc2VNc2cgKCJSX1g4Nl82NF8zMiIpOw0KPiA+IC0gICAg ICAgICAgICBWZXJib3NlTXNnICgiT2Zmc2V0OiAweCUwOFgsIEFkZGVuZDogMHglMDhYIiwNCj4g PiAtICAgICAgICAgICAgICAoVUlOVDMyKShTZWNPZmZzZXQgKyAoUmVsLT5yX29mZnNldCAtIFNl Y1NoZHItPnNoX2FkZHIpKSwNCj4gPiArICAgICAgICAgICAgVmVyYm9zZU1zZyAoIk9mZnNldDog MHglMDhYLCBBZGRlbmQ6IDB4JTA4WCIsDQo+ID4gKyAgICAgICAgICAgICAgKFVJTlQzMikoU2Vj T2Zmc2V0ICsgKFJlbC0+cl9vZmZzZXQgLSBTZWNTaGRyLT5zaF9hZGRyKSksDQo+IA0KPiBhbmQg aGVyZQ0KW1N0ZXZlbl06IHJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgYmxhbmsgYXQgZW5kIG9mIGxp bmUsIHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGNvZGluZyBzdHlsZQ0KDQo+IA0KPiA+ICAgICAgICAg ICAgICAgICooVUlOVDMyICopVGFyZyk7DQo+ID4gICAgICAgICAgICAgICooVUlOVDMyICopVGFy ZyA9IChVSU5UMzIpKChVSU5UNjQpKCooVUlOVDMyICopVGFyZykgLSBTeW1TaGRyLQ0KPiA+c2hf YWRkciArIG1Db2ZmU2VjdGlvbnNPZmZzZXRbU3ltLT5zdF9zaG5keF0pOw0KPiA+ICAgICAgICAg ICAgICBWZXJib3NlTXNnICgiUmVsb2NhdGlvbjogIDB4JTA4WCIsICooVUlOVDMyKilUYXJnKTsN Cj4gPiAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gICAgICAgICAgICBjYXNlIFJfWDg2XzY0XzMy UzoNCj4gPiAgICAgICAgICAgICAgVmVyYm9zZU1zZyAoIlJfWDg2XzY0XzMyUyIpOw0KPiA+IC0g ICAgICAgICAgICBWZXJib3NlTXNnICgiT2Zmc2V0OiAweCUwOFgsIEFkZGVuZDogMHglMDhYIiwN Cj4gPiAtICAgICAgICAgICAgICAoVUlOVDMyKShTZWNPZmZzZXQgKyAoUmVsLT5yX29mZnNldCAt IFNlY1NoZHItPnNoX2FkZHIpKSwNCj4gPiArICAgICAgICAgICAgVmVyYm9zZU1zZyAoIk9mZnNl dDogMHglMDhYLCBBZGRlbmQ6IDB4JTA4WCIsDQo+ID4gKyAgICAgICAgICAgICAgKFVJTlQzMiko U2VjT2Zmc2V0ICsgKFJlbC0+cl9vZmZzZXQgLSBTZWNTaGRyLT5zaF9hZGRyKSksDQo+IA0KPiBh bmQgaGVyZQ0KW1N0ZXZlbl06IHJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgYmxhbmsgYXQgZW5kIG9m IGxpbmUsIHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGNvZGluZyBzdHlsZQ0KDQo+IA0KPiA+ICAgICAg ICAgICAgICAgICooVUlOVDMyICopVGFyZyk7DQo+ID4gICAgICAgICAgICAgICooSU5UMzIgKilU YXJnID0gKElOVDMyKSgoSU5UNjQpKCooSU5UMzIgKilUYXJnKSAtIFN5bVNoZHItDQo+ID5zaF9h ZGRyICsgbUNvZmZTZWN0aW9uc09mZnNldFtTeW0tPnN0X3NobmR4XSk7DQo+ID4gICAgICAgICAg ICAgIFZlcmJvc2VNc2cgKCJSZWxvY2F0aW9uOiAgMHglMDhYIiwgKihVSU5UMzIqKVRhcmcpOw0K PiA+IEBAIC03OTAsMTQgKzc5NSw0NSBAQCBXcml0ZVNlY3Rpb25zNjQgKA0KPiA+ICAgICAgICAg ICAgICAvLyBSZWxhdGl2ZSByZWxvY2F0aW9uOiBTeW1ib2wgLSBJcCArIEFkZGVuZA0KPiA+ICAg ICAgICAgICAgICAvLw0KPiA+ICAgICAgICAgICAgICBWZXJib3NlTXNnICgiUl9YODZfNjRfUEMz MiIpOw0KPiA+IC0gICAgICAgICAgICBWZXJib3NlTXNnICgiT2Zmc2V0OiAweCUwOFgsIEFkZGVu ZDogMHglMDhYIiwNCj4gPiAtICAgICAgICAgICAgICAoVUlOVDMyKShTZWNPZmZzZXQgKyAoUmVs LT5yX29mZnNldCAtIFNlY1NoZHItPnNoX2FkZHIpKSwNCj4gPiArICAgICAgICAgICAgVmVyYm9z ZU1zZyAoIk9mZnNldDogMHglMDhYLCBBZGRlbmQ6IDB4JTA4WCIsDQo+ID4gKyAgICAgICAgICAg ICAgKFVJTlQzMikoU2VjT2Zmc2V0ICsgKFJlbC0+cl9vZmZzZXQgLSBTZWNTaGRyLT5zaF9hZGRy KSksDQo+IA0KPiBhbmQgaGVyZQ0KW1N0ZXZlbl06IHJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgYmxh bmsgYXQgZW5kIG9mIGxpbmUsIHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGNvZGluZyBzdHlsZQ0KDQo+ IA0KPiA+ICAgICAgICAgICAgICAgICooVUlOVDMyICopVGFyZyk7DQo+ID4gICAgICAgICAgICAg ICooVUlOVDMyICopVGFyZyA9IChVSU5UMzIpICgqKFVJTlQzMiAqKVRhcmcNCj4gPiAgICAgICAg ICAgICAgICArIChtQ29mZlNlY3Rpb25zT2Zmc2V0W1N5bS0+c3Rfc2huZHhdIC0gU3ltU2hkci0+ c2hfYWRkcikNCj4gPiAgICAgICAgICAgICAgICAtIChTZWNPZmZzZXQgLSBTZWNTaGRyLT5zaF9h ZGRyKSk7DQo+ID4gICAgICAgICAgICAgIFZlcmJvc2VNc2cgKCJSZWxvY2F0aW9uOiAgMHglMDhY IiwgKihVSU5UMzIgKilUYXJnKTsNCj4gPiAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAg ICAgICBjYXNlIFJfWDg2XzY0X1BMVDMyOg0KPiA+ICsgICAgICAgICAgICAvLw0KPiA+ICsgICAg ICAgICAgICAvLyBSZWxhdGl2ZSByZWxvY2F0aW9uOiBMICsgQSAtIFANCj4gPiArICAgICAgICAg ICAgLy8NCj4gPiArICAgICAgICAgICAgVmVyYm9zZU1zZyAoIlJfWDg2XzY0X1BMVDMyIik7DQo+ ID4gKyAgICAgICAgICAgIFZlcmJvc2VNc2cgKCJPZmZzZXQ6IDB4JTA4WCwgQWRkZW5kOiAweCUw OFgiLA0KPiA+ICsgICAgICAgICAgICAgIChVSU5UMzIpKFNlY09mZnNldCArIChSZWwtPnJfb2Zm c2V0IC0gU2VjU2hkci0+c2hfYWRkcikpLA0KPiA+ICsgICAgICAgICAgICAgICooVUlOVDMyICop VGFyZyk7DQo+ID4gKyAgICAgICAgICAgICooVUlOVDMyICopVGFyZyA9IChVSU5UMzIpICgqKFVJ TlQzMiAqKVRhcmcNCj4gPiArICAgICAgICAgICAgICArIChtQ29mZlNlY3Rpb25zT2Zmc2V0W1N5 bS0+c3Rfc2huZHhdIC0gU3ltU2hkci0+c2hfYWRkcikNCj4gPiArICAgICAgICAgICAgICAtIChT ZWNPZmZzZXQgLSBTZWNTaGRyLT5zaF9hZGRyKSk7DQo+ID4gKyAgICAgICAgICAgIFZlcmJvc2VN c2cgKCJSZWxvY2F0aW9uOiAgMHglMDhYIiwgKihVSU5UMzIgKilUYXJnKTsNCj4gPiArICAgICAg ICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAgICBjYXNlIFJfWDg2XzY0X0dPVFBDUkVMOg0KPiA+ ICsgICAgICAgICAgICAvLw0KPiA+ICsgICAgICAgICAgICAvLyBSZWxhdGl2ZSByZWxvY2F0aW9u OiBHICsgR09UICsgQSAtIFANCj4gPiArICAgICAgICAgICAgLy8NCj4gPiArICAgICAgICAgICAg VmVyYm9zZU1zZyAoIlJfWDg2XzY0X0dPVFBDUkVMIik7DQo+ID4gKyAgICAgICAgICAgIGJyZWFr Ow0KPiA+ICsgICAgICAgICAgY2FzZSBSX1g4Nl82NF9HT1RQQ1JFTFg6DQo+ID4gKyAgICAgICAg ICAgIC8vDQo+ID4gKyAgICAgICAgICAgIC8vIFJlbGF0aXZlIHJlbG9jYXRpb246IEcgKyBHT1Qg KyBBIC0gUA0KPiA+ICsgICAgICAgICAgICAvLw0KPiA+ICsgICAgICAgICAgICBWZXJib3NlTXNn ICgiUl9YODZfNjRfR09UUENSRUxYIik7DQo+ID4gKyAgICAgICAgICAgIGJyZWFrOw0KPiA+ICsg ICAgICAgICAgY2FzZSBSX1g4Nl82NF9SRVhfR09UUENSRUxYOg0KPiA+ICsgICAgICAgICAgICAv Lw0KPiA+ICsgICAgICAgICAgICAvLyBSZWxhdGl2ZSByZWxvY2F0aW9uOiBHICsgR09UICsgQSAt IFANCj4gPiArICAgICAgICAgICAgLy8NCj4gPiArICAgICAgICAgICAgVmVyYm9zZU1zZyAoIlJf WDg2XzY0X1JFWF9HT1RQQ1JFTFgiKTsNCj4gPiArICAgICAgICAgICAgYnJlYWs7DQo+ID4gICAg ICAgICAgICBkZWZhdWx0Og0KPiA+ICAgICAgICAgICAgICBFcnJvciAoTlVMTCwgMCwgMzAwMCwg IkludmFsaWQiLCAiJXMgdW5zdXBwb3J0ZWQgRUxGIEVNX1g4Nl82NA0KPiByZWxvY2F0aW9uIDB4 JXguIiwgbUluSW1hZ2VOYW1lLCAodW5zaWduZWQpIEVMRl9SX1RZUEUoUmVsLT5yX2luZm8pKTsN Cj4gPiAgICAgICAgICAgIH0NCj4gPiBAQCAtODg3LDYgKzkyMywxMiBAQCBXcml0ZVJlbG9jYXRp b25zNjQgKA0KPiA+ICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0K PiA+ICAgIEVGSV9JTUFHRV9PUFRJT05BTF9IRUFERVJfVU5JT04gICpOdEhkcjsNCj4gPiAgICBF RklfSU1BR0VfREFUQV9ESVJFQ1RPUlkgICAgICAgICAqRGlyOw0KPiA+ICsgIFVJTlQ2NCAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdvVFBjUmVsUHRyT2Zmc2V0ID0gMDsNCj4gPiArICBVSU5U NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAqUmlwRGlzcGxhY2VtZW50UHRyOw0KPiA+ICsg IFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICpFbGZGaWxlR29UUGNSZWxQdHI7DQo+ ID4gKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgKkNvZmZGaWxlR29UUGNSZWxQ dHI7DQo+ID4gKyAgRWxmX1NoZHIgICAgICAgICAgICAgICAgICAgICAgICAgKnNoZHI7DQo+ID4g KyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgaTsNCj4gPg0KPiA+ICAgIGZvciAo SW5kZXggPSAwOyBJbmRleCA8IG1FaGRyLT5lX3NobnVtOyBJbmRleCsrKSB7DQo+ID4gICAgICBF bGZfU2hkciAqUmVsU2hkciA9IEdldFNoZHJCeUluZGV4KEluZGV4KTsNCj4gPiBAQCAtOTAyLDYg Kzk0NCw1MyBAQCBXcml0ZVJlbG9jYXRpb25zNjQgKA0KPiA+ICAgICAgICAgICAgICBzd2l0Y2gg KEVMRl9SX1RZUEUoUmVsLT5yX2luZm8pKSB7DQo+ID4gICAgICAgICAgICAgIGNhc2UgUl9YODZf NjRfTk9ORToNCj4gPiAgICAgICAgICAgICAgY2FzZSBSX1g4Nl82NF9QQzMyOg0KPiA+ICsgICAg ICAgICAgICBjYXNlIFJfWDg2XzY0X1BMVDMyOg0KPiA+ICsgICAgICAgICAgICAgIGJyZWFrOw0K PiA+ICsgICAgICAgICAgICBjYXNlIFJfWDg2XzY0X0dPVFBDUkVMOg0KPiA+ICsgICAgICAgICAg ICBjYXNlIFJfWDg2XzY0X0dPVFBDUkVMWDoNCj4gPiArICAgICAgICAgICAgY2FzZSBSX1g4Nl82 NF9SRVhfR09UUENSRUxYOg0KPiA+ICsgICAgICAgICAgICAgIC8vDQo+ID4gKyAgICAgICAgICAg ICAgLy8gbGluayBzY3JpcHQgZm9yY2UgLmdvdCBhbmQgLmdvdC4qIGluIC50ZXh0IHNlY3Rpb24s IHNvIEdvVFBjUmVsDQo+IHBvaW50ZXIgbXVzdCBiZSBpbiAudGV4dCBzZWN0aW9uDQo+ID4gKyAg ICAgICAgICAgICAgLy8gYnV0IGl0cyB2YWx1ZSBtaWdodCBwb2ludCB0byAudGV4dCBvciAuZGF0 YSBzZWN0aW9uDQo+ID4gKyAgICAgICAgICAgICAgLy8NCj4gPiArICAgICAgICAgICAgICBSaXBE aXNwbGFjZW1lbnRQdHIgID0gKFVJTlQ2NCAqKSgoVUlOVDgqKW1FaGRyICsgU2VjU2hkci0NCj4g PnNoX29mZnNldCArIFJlbC0+cl9vZmZzZXQgLSBTZWNTaGRyLT5zaF9hZGRyKTsNCj4gPiArICAg ICAgICAgICAgICBHb1RQY1JlbFB0ck9mZnNldCAgID0gUmVsLT5yX29mZnNldCArIDQgKw0KPiAo SU5UMzIpKCpSaXBEaXNwbGFjZW1lbnRQdHIpIC0gU2VjU2hkci0+c2hfYWRkcjsNCj4gPiArICAg ICAgICAgICAgICBFbGZGaWxlR29UUGNSZWxQdHIgID0gKFVJTlQ2NCAqKSgoVUlOVDgqKW1FaGRy ICsgU2VjU2hkci0NCj4gPnNoX29mZnNldCArIEdvVFBjUmVsUHRyT2Zmc2V0KTsNCj4gPiArICAg ICAgICAgICAgICBDb2ZmRmlsZUdvVFBjUmVsUHRyID0gKFVJTlQ2NCAqKShtQ29mZkZpbGUgKw0K PiBtQ29mZlNlY3Rpb25zT2Zmc2V0W1JlbFNoZHItPnNoX2luZm9dICsgR29UUGNSZWxQdHJPZmZz ZXQpOw0KPiA+ICsgICAgICAgICAgICAgIC8vDQo+ID4gKyAgICAgICAgICAgICAgLy8gQ2hlY2sg d2hpY2ggc2VjdGlvbiB0aGUgR29UUGNSZWwgcG9pbnRlciBwb2ludCB0bywgYW5kDQo+IGNhbGN1 bGF0ZSBFbGYgdG8gQ29mZiBzZWN0aW9ucyBkaXNwbGFjZW1lbnQgYWNjb3JkaW5nbHkNCj4gPiAr ICAgICAgICAgICAgICAvLw0KPiA+ICsgICAgICAgICAgICAgIHNoZHIgPSBOVUxMOw0KPiA+ICsg ICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtRWhkci0+ZV9zaG51bTsgaSsrKSB7DQo+ID4g KyAgICAgICAgICAgICAgICBzaGRyID0gR2V0U2hkckJ5SW5kZXgoaSk7DQo+ID4gKyAgICAgICAg ICAgICAgICBpZiAoKCpFbGZGaWxlR29UUGNSZWxQdHIgPj0gc2hkci0+c2hfYWRkcikgJiYNCj4g PiArICAgICAgICAgICAgICAgICAgICAoKkVsZkZpbGVHb1RQY1JlbFB0ciA8IHNoZHItPnNoX2Fk ZHIgKyBzaGRyLT5zaF9zaXplKSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICBicmVhazsNCj4g PiArICAgICAgICAgICAgICAgIH0NCj4gPiArICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAg ICAgICAgLy8NCj4gPiArICAgICAgICAgICAgICAvLyBGaXggdGhlIEVsZiB0byBDb2ZmIHNlY3Rp b25zIGRpc3BsYWNlbWVudA0KPiA+ICsgICAgICAgICAgICAgIC8vDQo+ID4gKyAgICAgICAgICAg ICAgaWYoSXNEYXRhU2hkcihzaGRyKSkgew0KPiA+ICsgICAgICAgICAgICAgICAgKkNvZmZGaWxl R29UUGNSZWxQdHIgPSAqQ29mZkZpbGVHb1RQY1JlbFB0ciArIG1EYXRhT2Zmc2V0IC0NCj4gc2hk ci0+c2hfYWRkcjsNCj4gPiArICAgICAgICAgICAgICB9ZWxzZSBpZiAoSXNUZXh0U2hkcihTZWNT aGRyKSl7DQo+ID4gKyAgICAgICAgICAgICAgICAqQ29mZkZpbGVHb1RQY1JlbFB0ciA9ICpDb2Zm RmlsZUdvVFBjUmVsUHRyICsgbVRleHRPZmZzZXQgLQ0KPiBzaGRyLT5zaF9hZGRyOw0KPiA+ICsg ICAgICAgICAgICAgIH1lbHNlIHsNCj4gPiArICAgICAgICAgICAgICAgIC8vDQo+ID4gKyAgICAg ICAgICAgICAgICAvLyBsaW5rIHNjcmlwdCBmb3JjZSB0byBtZXJnZSAucm9kYXRhIC5yb2RhdGEu KiwgLmdvdCBhbmQgLmdvdC4qDQo+IGluIC50ZXh0IHNlY3Rpb24sDQo+ID4gKyAgICAgICAgICAg ICAgICAvLyBub3Qgc3VwcG9ydCBHb1RQY1JlbCBwb2ludCB0byBzZWN0aW9uIG90aGVyIHRoYW4g LmRhdGEgb3IgLnRleHQNCj4gPiArICAgICAgICAgICAgICAgIC8vDQo+ID4gKyAgICAgICAgICAg ICAgICBFcnJvciAoTlVMTCwgMCwgMzAwMCwgIkludmFsaWQiLCAiTm90IHN1cHBvcnQgcmVsb2Nh dGUNCj4gUl9YODZfNjRfR09UUENSRUwgYWRkcmVzcyBpbiBzZWN0aW9uIG90aGVyIHRoYW4gLmRh dGEgb3IgLnRleHQiKTsNCj4gPiArICAgICAgICAgICAgICAgIGFzc2VydCAoRkFMU0UpOw0KPiA+ ICsgICAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgVmVyYm9zZU1zZyAo IlJfWDg2XzY0X0dPVFBDUkVMIHRvDQo+IEVGSV9JTUFHRV9SRUxfQkFTRURfRElSNjQgT2Zmc2V0 OiAweCUwOFgiLA0KPiA+ICsgICAgICAgICAgICAgICAgbUNvZmZTZWN0aW9uc09mZnNldFtSZWxT aGRyLT5zaF9pbmZvXSArIEdvVFBjUmVsUHRyT2Zmc2V0KTsNCj4gPiArICAgICAgICAgICAgICBD b2ZmQWRkRml4dXAoDQo+ID4gKyAgICAgICAgICAgICAgICAoVUlOVDMyKShVSU5UTikoKFVJTlQ2 NCkgbUNvZmZTZWN0aW9uc09mZnNldFtSZWxTaGRyLQ0KPiA+c2hfaW5mb10gKyBHb1RQY1JlbFB0 ck9mZnNldCksDQo+ID4gKyAgICAgICAgICAgICAgICBFRklfSU1BR0VfUkVMX0JBU0VEX0RJUjY0 KTsNCj4gDQo+IElzIHRoaXMgbmVjZXNzYXJ5PyBJIHdvdWxkIGV4cGVjdCB0aGUgR09UIGVudHJ5 IGl0c2VsZiB0byBiZSBhbHJlYWR5DQo+IGNvdmVyZWQgYnkgYSBSX1g4Nl82NF82NCByZWxvY2F0 aW9uLCBzbyBJIGRvbid0IHRoaW5rIHRoZXJlIGlzIGEgbmVlZA0KPiB0byBlbWl0IGEgRUZJX0lN QUdFX1JFTF9CQVNFRF9ESVI2NCBQRS9DT0ZGIHJlbG9jIGhlcmUuDQpbU3RldmVuXTogRG8geW91 IGFzayB3aGV0aGVyIGl0IGlzIHN0aWxsIG5lY2Vzc2FyeSB0byBzdXBwb3J0IHRoZSBHT1RQQ1JF TC9HT1RQQ1JFTFgvUkVYX0dPVFBDUkVMWCBuZXcgcmVsb2NhdGlvbiB0eXBlcz8gSSB0aGluayB0 aGV5IGFyZSBuaWNlIHRvIGhhdmUgbm93LCBzaW5jZSBuZXcgdHlwZSBzdXBwb3J0IGhhcyBubyBp bXBhY3QgdG8gb2xkIG9uZXMsIHdlIGNvdWxkIGp1c3QgbGVhdmUgdGhlIGNvZGUgdGhlcmUgZm9y IHJlZmVyZW5jZS4NCg0KVGhhbmtzDQpTdGV2ZW4NCg==