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.43; helo=mga05.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (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 61C19222EDCD8 for ; Thu, 4 Jan 2018 16:47:11 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jan 2018 16:52:16 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,316,1511856000"; d="scan'208";a="19129540" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga001.fm.intel.com with ESMTP; 04 Jan 2018 16:52:16 -0800 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 4 Jan 2018 16:52:16 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 4 Jan 2018 16:52:15 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.152]) with mapi id 14.03.0319.002; Fri, 5 Jan 2018 08:52:14 +0800 From: "Wang, Jian J" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" , "Dong, Eric" Thread-Topic: [edk2] [PATCH] UefiCpuPkg/MpInitLib: fix wrong base address set as Stack Guard Thread-Index: AQHTgIBBAhUXNh3QfEei4ASfd+cM3KNh6soAgAD5yACAAAkXYIAACzOQgAAtIwCAAVMaYA== Date: Fri, 5 Jan 2018 00:52:13 +0000 Message-ID: References: <20171229083631.16652-1-jian.j.wang@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzVmZjVkMTctOGUxYS00MmM1LWE4NTUtYTYzMWJkYzFhNzhmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJZakJBeU5mS2FxakVVa3F5QmRCUkJBMVhQYyswcWNCb0JJekxkTjl2UGt3UEhwb0xQc0RuVVNXYWU2R1Fwazk1In0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] UefiCpuPkg/MpInitLib: fix wrong base address set as Stack Guard X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jan 2018 00:47:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSdtIG5vdCBmYW1pbGlhciB3aXRoIEJTUC9BUCBzd2l0Y2ggY29kZSBlaXRoZXIuIEkganVzdCBo YXBwZW4gdG8gc2VlIGNvZGUgY29tbWVudHMNCm1lbnRpb25lZCAgc3dpdGNoaW5nIEJTUC9BUC4g U28gSSB0aGluayBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gaW5pdGlhbGl6ZSBjcHUgMCB0aGUgc2Ft ZSANCndheSBhcyBvdGhlcnMuIE5vIG1hdHRlciB3aGF0LCBhcyB3aGF0IHRoZSBmaWVsZCBuYW1l IGltcGxpZXMsIEFwVG9wT2ZTdGFjayBzaG91bGQNCm5ldmVyIGJlIHVzZWQgdG8gc3RvcmUgc3Rh Y2sgYmFzZSBhZGRyZXNzLg0KDQpJJ2xsIHRyeSB0byBmaW5kIGlmIGFueSB0ZXN0IGNhc2VzIGZv ciB0aGUgQlNQL0FQIHN3aXRjaCB3ZXJlIGRldmVsb3BlZCBiZWZvcmUuIElmIG5vbiwNCkkgdGhp bmsgaXQncyBub3QgZWFzeSBmb3IgbWUgdG8gd3JpdGUgb25lLiBJZiBpdCdzIE9LLCBJIHByZWZl ciB0byBjaGVjayBpbiBjdXJyZW50IGZpeCBhbmQNCnRlc3Qgd2hhdCB5b3UgY29uY2VybiBsYXRl ci4gSSB0aGluayBub2JvZHkgdXNlcyB0aGlzIGZlYXR1cmUuDQoNCkknbGwgc2VuZCB2MyBhcyB3 aGF0IHlvdSBzdWdnZXN0ZWQuIFRoYW5rcyBhIGxvdCBmb3IgYWxsIHlvdXIgY29tbWVudHMuDQoN ClJlZ2FyZHMsDQpKaWFuDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9t OiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogVGh1cnNk YXksIEphbnVhcnkgMDQsIDIwMTggODoyMiBQTQ0KPiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogWWFvLCBKaWV3 ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNv bT4NCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQa2cvTXBJbml0TGliOiBm aXggd3JvbmcgYmFzZSBhZGRyZXNzIHNldA0KPiBhcyBTdGFjayBHdWFyZA0KPiANCj4gT24gMDEv MDQvMTggMDI6NDUsIFdhbmcsIEppYW4gSiB3cm90ZToNCj4gPiBBIGNvcnJlY3Rpb246IGFsdGhv dWdoIEJTUCBkb2Vzbid0IG5lZWQgaXQsIHdlIHN0aWxsIG5lZWQgdG8gaW5pdGlhbGl6ZSBpdHMN Cj4gQXBUb3BPZlN0YWNrDQo+ID4gY29ycmVjdGx5IGJlY2F1c2UgdGhlIE1QIHNlcnZpY2Ugc3Vw cG9ydHMgQlNQL0FQIGV4Y2hhbmdlLiBTbyBJIHRoaW5rIHRoZSBsaW5lDQo+IDE1MDENCj4gPiBz aG91bGQgYmUgY2hhbmdlZCB0bw0KPiA+DQo+ID4gICBJbml0aWFsaXplQXBEYXRhIChDcHVNcERh dGEsIDAsIDAsIENwdU1wRGF0YS0+QnVmZmVyICsgQ3B1TXBEYXRhLQ0KPiA+Q3B1QXBTdGFja1Np emUpOw0KPiA+DQo+ID4gaW5zdGVhZCBvZg0KPiA+DQo+ID4gICBJbml0aWFsaXplQXBEYXRhIChD cHVNcERhdGEsIDAsIDAsIE5VTEwpOw0KPiANCj4gSG1tLi4uIEFsdGhvdWdoIEkgZG9uJ3QgaW1t ZWRpYXRlbHkgc2VlIGFsbCBwb3NzaWJsZSBjb25zZXF1ZW5jZXMgb2YNCj4gc3VjaCBhIGNoYW5n ZSwgaXQgbG9va3MgbGlrZSBhIGNvcnJlY3QgZml4Lg0KPiANCj4gVW5mb3J0dW5hdGVseSwgSSBk b24ndCBrbm93IG9mIGFueSBjb2RlIHRoYXQgYWN0dWFsbHkgZXhlcmNpc2VzIHRoZQ0KPiBCU1Av QVAgZXhjaGFuZ2Ugc2VydmljZS4gSSB0aGluayBJbnRlbCBtdXN0IGhhdmUgYWNjZXNzIHRvIHNv bWUgY2xpZW50DQo+IGNvZGUgbGlrZSB0aGlzLCBiZWNhdXNlIEkgdmFndWVseSByZWNhbGwgc29t ZSBwYXRjaGVzIG92ZXIgdGltZSB0aGF0DQo+IGltcHJvdmVkIEJTUC9BUCBleGNoYW5nZS4NCj4g DQo+IElmIHlvdSBtb2RpZnkgdGhlIEluaXRpYWxpemVBcERhdGEoKSBjYWxsIGluIHF1ZXN0aW9u IGxpa2Ugc3VnZ2VzdGVkDQo+IGFib3ZlLCBjYW4geW91IHBlcmhhcHMgbG9jYXRlIHRoYXQgY2xp ZW50IGNvZGUsIGFuZCB0ZXN0IHRoZSBjaGFuZ2Ugd2l0aCBpdD8NCj4gDQo+IFRoYW5rcyENCj4g TGFzemxvDQo+IA0KPiANCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogV2FuZywgSmlhbiBKDQo+ID4+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDA0LCAyMDE4IDk6 MDkgQU0NCj4gPj4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTGFz emxvIEVyc2VrDQo+IDxsZXJzZWtAcmVkaGF0LmNvbT47DQo+ID4+IGVkazItZGV2ZWxAbGlzdHMu MDEub3JnDQo+ID4+IENjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBEb25n LCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBSRTogW2VkazJdIFtQ QVRDSF0gVWVmaUNwdVBrZy9NcEluaXRMaWI6IGZpeCB3cm9uZyBiYXNlIGFkZHJlc3MNCj4gc2V0 DQo+ID4+IGFzIFN0YWNrIEd1YXJkDQo+ID4+DQo+ID4+IExhc3psbywNCj4gPj4NCj4gPj4gTW9y ZSBleHBsYW5hdGlvbnM6DQo+ID4+DQo+ID4+IFtVZWZpQ3B1UGtnXExpYnJhcnlcTXBJbml0TGli XE1wTGliLmNdDQo+ID4+IEFjY29yZGluZyB0byB0aGUgY29kZSwgdGhlIEJTUCdzIChDcHVJbmZv SW5Ib2JbMF0uQXBUb3BPZlN0YWNrKSBpcw0KPiBpbml0aWFsaXplZA0KPiA+PiB0bw0KPiA+PiB0 aGUgYm90dG9tIG9mIHRoZSBzdGFjayAobGluZSAxNTAxKSBidXQgQVAncyBBcFRvcE9mU3RhY2sg aXMgY29ycmVjdGx5DQo+IGluaXRpYWxpemVkDQo+ID4+IChsaW5lIDU5OCkuIEFsdGhvdWdoIG15 IGNhbGN1bGF0aW9uIGlzIGNvcnJlY3QsIEkgdGhpbmsgaXQnZCBiZSBiZXR0ZXIgdG8gdXNlIEFQ J3MNCj4gPj4gQXBUb3BPZlN0YWNrIGRpcmVjdGx5LiBGcm9tIHRoaXMgcGVyc3BlY3RpdmUsIHlv dSdyZSByaWdodC4NCj4gPj4NCj4gPj4gTWF5YmUgaXQnZCBiZSBiZXR0ZXIgdG8gcGFzcyBhIE5V TEwgcG9pbnRlciBhdCBsaW5lIDE1MDEgYmVjYXVzZSBCU1AgZG9lc24ndA0KPiA+PiBuZWVkDQo+ ID4+IGl0IGFueXdheS4NCj4gPj4NCj4gPj4gUmVnYXJkcywNCj4gPj4gSmlhbg0KPiA+Pg0KPiA+ Pg0KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+IEZyb206IGVkazItZGV2 ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYgT2YN Cj4gPj4gV2FuZywNCj4gPj4+IEppYW4gSg0KPiA+Pj4gU2VudDogVGh1cnNkYXksIEphbnVhcnkg MDQsIDIwMTggODo0MiBBTQ0KPiA+Pj4gVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5j b20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+Pj4gQ2M6IFlhbywgSmlld2VuIDxqaWV3 ZW4ueWFvQGludGVsLmNvbT47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4+ PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSF0gVWVmaUNwdVBrZy9NcEluaXRMaWI6IGZpeCB3 cm9uZyBiYXNlIGFkZHJlc3MNCj4gc2V0DQo+ID4+PiBhcyBTdGFjayBHdWFyZA0KPiA+Pj4NCj4g Pj4+IExhc3psbywNCj4gPj4+DQo+ID4+PiBJIHJldmlzaXRlZCBjb2RlIG9mIE1wSW5pdExpYi4g SSBmb3VuZCB0aGF0IENQVV9JTkZPX0lOX0hPQi5BcFRvcE9mU3RhY2sNCj4gPj4+IHdhcyBhc3Np Z25lZCB0byBDcHVNcERhdGEtPkJ1ZmZlciBpbiBNcEluaXRMaWJJbml0aWFsaXplKCkNCj4gPj4+ DQo+ID4+PiAobGluZTE1MDEpICBJbml0aWFsaXplQXBEYXRhIChDcHVNcERhdGEsIDAsIDAsIENw dU1wRGF0YS0+QnVmZmVyKTsNCj4gPj4+DQo+ID4+PiBidXQgaW4NCj4gPj4+DQo+ID4+PiAobGlu ZTU5OCkgIEFwVG9wT2ZTdGFjayAgPSBDcHVNcERhdGEtPkJ1ZmZlciArIChQcm9jZXNzb3JOdW1i ZXIgKyAxKSAqDQo+ID4+PiBDcHVNcERhdGEtPkNwdUFwU3RhY2tTaXplOw0KPiA+Pj4gKGxpbmU2 MDgpICBJbml0aWFsaXplQXBEYXRhIChDcHVNcERhdGEsIFByb2Nlc3Nvck51bWJlciwgQmlzdERh dGEsDQo+ID4+PiBBcFRvcE9mU3RhY2spOw0KPiA+Pj4NCj4gPj4+IFNpbmNlIEluaXRNcEdsb2Jh bERhdGEoKSBpcyBjYWxsZWQganVzdCBhZnRlciBmaXJzdCBzaXR1YXRpb24sIG15IHBhdGNoIGlz DQo+IGNvcnJlY3QuDQo+ID4+Pg0KPiA+Pj4gSSB0aGluayB0aGUgcHJvYmxlbSBoZXJlIGlzIHRo YXQgQXBUb3BPZlN0YWNrIGluaXRpYWxpemVkIGF0IGxpbmUgMTUwMSBpcyBub3QNCj4gPj4+IGNv cnJlY3QuDQo+ID4+Pg0KPiA+Pj4NCj4gPj4+IFJlZ2FyZHMsDQo+ID4+PiBKaWFuDQo+ID4+Pg0K PiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IExh c3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiA+Pj4+IFNlbnQ6IFRodXJz ZGF5LCBKYW51YXJ5IDA0LCAyMDE4IDE6MzMgQU0NCj4gPj4+PiBUbzogV2FuZywgSmlhbiBKIDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+Pj4+IENj OiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBEb25nLCBFcmljDQo+IDxlcmlj LmRvbmdAaW50ZWwuY29tPjsNCj4gPj4+PiBKZWZmIEZhbiA8dmFuamVmZl85MTlAaG90bWFpbC5j b20+DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQa2cvTXBJbml0 TGliOiBmaXggd3JvbmcgYmFzZSBhZGRyZXNzDQo+ID4+IHNldA0KPiA+Pj4+IGFzIFN0YWNrIEd1 YXJkDQo+ID4+Pj4NCj4gPj4+PiAoQ0MgSmVmZikNCj4gPj4+Pg0KPiA+Pj4+IFNvcnJ5IGFib3V0 IHRoZSBkZWxheS4NCj4gPj4+Pg0KPiA+Pj4+IEkgaGF2ZSBzb21lIGxpZ2h0IGNvbW1lbnRzIGJl bG93OyBJIGV4cGVjdCBhdCBsZWFzdCBhIGZldyBvZiB0aGVtIHRvIGJlDQo+ID4+Pj4gaW5jb3Jy ZWN0IDopDQo+ID4+Pj4NCj4gPj4+PiBPbiAxMi8yOS8xNyAwOTozNiwgSmlhbiBKIFdhbmcgd3Jv dGU6DQo+ID4+Pj4+IFRoZSByZWFzb24gaXMgdGhhdCBEWEUgcGFydCBpbml0aWFsaXphdGlvbiB3 aWxsIHJldXNlIHRoZSBzdGFjayBhbGxvY2F0ZWQNCj4gPj4+Pj4gYXQgUEVJIHBoYXNlLCBpZiBN UCB3YXMgaW5pdGlhbGl6ZWQgYmVmb3JlLiBTb21lIGNvZGUgYWRkZWQgdG8gY2hlY2sgdGhpcw0K PiA+Pj4+PiBzaXR1YXRpb24gYW5kIHVzZSBzdGFjayBiYXNlIGFkZHJlc3Mgc2F2ZWQgaW4gSE9C IHBhc3NlZCBmcm9tIFBFSS4NCj4gPj4+Pj4NCj4gPj4+Pj4gQ2M6IEppZXdlbiBZYW8gPGppZXdl bi55YW9AaW50ZWwuY29tPg0KPiA+Pj4+PiBDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwu Y29tPg0KPiA+Pj4+PiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPj4+ Pj4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEu MQ0KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwu Y29tPg0KPiA+Pj4+PiAtLS0NCj4gPj4+Pj4gIFVlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIv RHhlTXBMaWIuYyB8IDE3ICsrKysrKysrKysrKysrKy0tDQo+ID4+Pj4+ICAxIGZpbGUgY2hhbmdl ZCwgMTUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPj4+Pj4NCj4gPj4+Pj4gZGlm ZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvRHhlTXBMaWIuYw0KPiA+Pj4+ IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9EeGVNcExpYi5jDQo+ID4+Pj4+IGluZGV4 IDQwYzFiZjQwN2EuLjA1NDg0YzlmZjMgMTAwNjQ0DQo+ID4+Pj4+IC0tLSBhL1VlZmlDcHVQa2cv TGlicmFyeS9NcEluaXRMaWIvRHhlTXBMaWIuYw0KPiA+Pj4+PiArKysgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvTXBJbml0TGliL0R4ZU1wTGliLmMNCj4gPj4+Pj4gQEAgLTI5NSw2ICsyOTUsNyBAQCBJ bml0TXBHbG9iYWxEYXRhICgNCj4gPj4+Pj4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXg7DQo+ID4+Pj4+ICAgIEVGSV9HQ0RfTUVNT1JZX1NQQUNFX0RFU0NSSVBU T1IgICAgIE1lbURlc2M7DQo+ID4+Pj4+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0YWNrQmFzZTsNCj4gPj4+Pj4gKyAgQ1BVX0lORk9fSU5fSE9CICAgICAgICAgICAg ICAgICAgICAgKkNwdUluZm9JbkhvYjsNCj4gPj4+Pj4NCj4gPj4+Pj4gICAgU2F2ZUNwdU1wRGF0 YSAoQ3B1TXBEYXRhKTsNCj4gPj4+Pj4NCj4gPj4+Pj4gQEAgLTMxNCw5ICszMTUsMTggQEAgSW5p dE1wR2xvYmFsRGF0YSAoDQo+ID4+Pj4+ICAgICAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPj4+Pj4g ICAgICB9DQo+ID4+Pj4+DQo+ID4+Pj4+IC0gICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQ3B1 TXBEYXRhLT5DcHVDb3VudDsgKytJbmRleCkgew0KPiA+Pj4+PiAtICAgICAgU3RhY2tCYXNlID0g Q3B1TXBEYXRhLT5CdWZmZXIgKyBJbmRleCAqIENwdU1wRGF0YS0NCj4gPj4+IENwdUFwU3RhY2tT aXplOw0KPiA+Pj4+PiArICAgIC8vDQo+ID4+Pj4+ICsgICAgLy8gRFhFIHdpbGwgcmV1c2Ugc3Rh Y2sgYWxsb2NhdGVkIGZvciBBUHMgYXQgUEVJIHBoYXNlIGlmIGl0J3MgYXZhaWxhYmxlLg0KPiA+ Pj4+PiArICAgIC8vIExldCdzIGNoZWNrIGl0IGhlcmUuDQo+ID4+Pj4+ICsgICAgLy8NCj4gPj4+ Pj4gKyAgICBDcHVJbmZvSW5Ib2IgPSAoQ1BVX0lORk9fSU5fSE9CICopKFVJTlROKUNwdU1wRGF0 YS0NCj4gPj4+Pj4gQ3B1SW5mb0luSG9iOw0KPiA+Pj4+PiArICAgIGlmIChDcHVJbmZvSW5Ib2Ig IT0gTlVMTCAmJiBDcHVJbmZvSW5Ib2ItPkFwVG9wT2ZTdGFjayAhPSAwKSB7DQo+ID4+Pj4+ICsg ICAgICBTdGFja0Jhc2UgPSBDcHVJbmZvSW5Ib2ItPkFwVG9wT2ZTdGFjazsNCj4gPj4+Pj4gKyAg ICB9IGVsc2Ugew0KPiA+Pj4+PiArICAgICAgU3RhY2tCYXNlID0gQ3B1TXBEYXRhLT5CdWZmZXI7 DQo+ID4+Pj4+ICsgICAgfQ0KPiA+Pj4+DQo+ID4+Pj4gU28sIGlmIHRoZSBIT0IgaXMgbm90IGZv dW5kLCB0aGVuIFN0YWNrQmFzZSBpcyBzZXQgb2theS4NCj4gPj4+Pg0KPiA+Pj4+IEhvd2V2ZXIs IEknbSB1bnN1cmUgYWJvdXQgdGhlIG90aGVyIGNhc2UuIFRoZQ0KPiA+Pj4+IENQVV9JTkZPX0lO X0hPQi5BcFRvcE9mU3RhY2sgZmllbGQgaWRlbnRpZmllcyB0aGUgKnRvcCogb2YgdGhlIHN0YWNr DQo+ID4+Pj4gKGhpZ2hlc3QgYWRkcmVzcywgYW5kIHRoZSBzdGFjayBncm93cyBkb3duKTsgaG93 ZXZlciB0aGUgbG9vcCBiZWxvdw0KPiA+Pj4+ICppbmNyZW1lbnRzKiBTdGFja0Jhc2UuIEdpdmVu IHRoZSBpbmNyZW1lbnRpbmcgbmF0dXJlIG9mIHRoZSBsb29wLA0KPiA+Pj4+IHNob3VsZG4ndCB3 ZSBmaXJzdCBjYWxjdWxhdGUgdGhlIGFjdHVhbCBiYXNlICg9IGxvd2VzdCBhZGRyZXNzKSBmcm9t IHRoZQ0KPiA+Pj4+IENQVV9JTkZPX0lOX0hPQi5BcFRvcE9mU3RhY2sgZmllbGQ/DQo+ID4+Pj4N Cj4gPj4+PiBBY3R1YWxseS4uLiBJJ20gZXZlbiBtb3JlIGNvbmZ1c2VkLiBUaGUgQ3B1TXBEYXRh LT5DcHVJbmZvSW5Ib2IgZmllbGQNCj4gPj4+PiBwb2ludHMgdG8gYW4gKmFycmF5KiBvZiBDUFVf SU5GT19JTl9IT0Igc3RydWN0dXJlcy4gVGhlcmVmb3JlLCBmb3IgYW55DQo+ID4+Pj4gZ2l2ZW4g cHJvY2Vzc29yICNOLCB3ZSBzaG91bGQgbm90IGNhbGN1bGF0ZSB0aGUgc3RhY2sgYmFzZSBhcw0K PiA+Pj4+DQo+ID4+Pj4gICBDcHVNcERhdGEtPkNwdUluZm9JbkhvYi0+QXBUb3BPZlN0YWNrICsg TiAqIENwdU1wRGF0YS0NCj4gPj4+Pj4gQ3B1QXBTdGFja1NpemUNCj4gPj4+Pg0KPiA+Pj4+IGlu c3RlYWQgd2Ugc2hvdWxkIGNhbGN1bGF0ZSB0aGUgc3RhY2sgYmFzZSBhcyBzb21ldGhpbmcgbGlr ZToNCj4gPj4+Pg0KPiA+Pj4+ICAgQ3B1TXBEYXRhLT5DcHVJbmZvSW5Ib2JbTl0uQXBUb3BPZlN0 YWNrIC0gQ3B1TXBEYXRhLQ0KPiA+Pj4gQ3B1QXBTdGFja1NpemUNCj4gPj4+Pg0KPiA+Pj4+IFNl ZQ0KPiA+Pj4+IC0gdGhlIEluaXRpYWxpemVBcERhdGEoKSBmdW5jdGlvbiwNCj4gPj4+PiAtIGFu ZCBpdHMgY2FsbCBzaXRlIGluIHRoZSBBcFdha2V1cEZ1bmN0aW9uKCkgZnVuY3Rpb24uDQo+ID4+ Pj4NCj4gPj4+PiAoVG8gbXkgc3VycHJpc2UsIEkgcGVyc29uYWxseSBtb2RpZmllZCBJbml0aWFs aXplQXBEYXRhKCkgZWFybGllciwgaW4NCj4gPj4+PiBjb21taXQgZGQzZmEwY2Q3MmRlICgiVWVm aUNwdVBrZy9NcEluaXRMaWI6IHN1cHBvcnQgNjQtYml0IEFQIHN0YWNrDQo+ID4+Pj4gYWRkcmVz c2VzIiwgMjAxNi0xMS0xNykgLS0gSSd2ZSB0b3RhbGx5IGZvcmdvdHRlbiBhYm91dCB0aGF0IGJ5 IG5vdyEpDQo+ID4+Pj4NCj4gPj4+PiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gPj4+Pg0KPiA+Pj4+ Pg0KPiA+Pj4+PiArICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IENwdU1wRGF0YS0+Q3B1Q291 bnQ7ICsrSW5kZXgpIHsNCj4gPj4+Pj4gICAgICAgIFN0YXR1cyA9IGdEUy0+R2V0TWVtb3J5U3Bh Y2VEZXNjcmlwdG9yIChTdGFja0Jhc2UsICZNZW1EZXNjKTsNCj4gPj4+Pj4gICAgICAgIEFTU0VS VF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4+Pj4+DQo+ID4+Pj4+IEBAIC0zMjYsNiArMzM2LDkg QEAgSW5pdE1wR2xvYmFsRGF0YSAoDQo+ID4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgTWVt RGVzYy5BdHRyaWJ1dGVzIHwgRUZJX01FTU9SWV9SUA0KPiA+Pj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICk7DQo+ID4+Pj4+ICAgICAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ Pj4+PiArDQo+ID4+Pj4+ICsgICAgICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICJTdGFjayBHdWFy ZCBzZXQgYXQgJXggW2NwdSVkXSFcbiIsDQo+ID4+Pj4gU3RhY2tCYXNlLCBJbmRleCkpOw0KPiA+ Pj4+DQo+ID4+Pj4gU3RhY2tCYXNlIGhhcyB0eXBlIFVJTlROLCBhbmQgc28gaXQgc2hvdWxkIG5v dCBiZSBwcmludGVkIHdpdGggJXguIEl0DQo+ID4+Pj4gc2hvdWxkIGJlIGNhc3QgdG8gKFVJTlQ2 NCksIGFuZCB0aGVuIHByaW50ZWQgd2l0aCAlTHguDQo+ID4+Pj4NCj4gPj4+PiBTaW1pbGFybHks IEluZGV4IGhhcyB0eXBlIFVJTlROLiBJdCBzaG91bGQgbm90IGJlIHByaW50ZWQgd2l0aCAlZC4g SXQNCj4gPj4+PiBzaG91bGQgYmUgY2FzdCB0byAoVUlOVDY0KSBhbmQgcHJpbnRlZCB3aXRoICVM dS4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4+ICsgICAgICBTdGFja0Jhc2UgKz0gQ3B1TXBEYXRh LT5DcHVBcFN0YWNrU2l6ZTsNCj4gPj4+Pg0KPiA+Pj4+IEFnYWluLCBJIGRvbid0IHRoaW5rIHRo ZSBzaW1wbGUgaW5jcmVtZW50IGFwcGxpZXMgd2hlbiB0aGUNCj4gPj4+PiBDcHVNcERhdGEtPkNw dUluZm9JbkhvYiBhcnJheSBleGlzdHMuDQo+ID4+Pj4NCj4gPj4+Pj4gICAgICB9DQo+ID4+Pj4+ ICAgIH0NCj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IFRoYW5rcywNCj4gPj4+PiBM YXN6bG8NCj4gPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQo+ID4+PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+Pj4gZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmcNCj4gPj4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRr Mi1kZXZlbA0KDQo=