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.120; helo=mga04.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (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 2BB7F2236BA83 for ; Thu, 4 Jan 2018 18:52:59 -0800 (PST) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jan 2018 18:58:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,317,1511856000"; d="png'150?scan'150,208,217,150";a="24483330" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga002.jf.intel.com with ESMTP; 04 Jan 2018 18:58:00 -0800 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 4 Jan 2018 18:58:00 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 4 Jan 2018 18:57:59 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.189]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Fri, 5 Jan 2018 10:57:58 +0800 From: "Yao, Jiewen" To: "Wang, Jian J" , Fan Jeff , Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Dong, Eric" Thread-Topic: [edk2] [PATCH] UefiCpuPkg/MpInitLib: fix wrong base address set as Stack Guard Thread-Index: AQHThdCsTneMGUKC0UaSf8BjRopwlaNkljiA Date: Fri, 5 Jan 2018 02:57:57 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AA70D2C@shsmsx102.ccr.corp.intel.com> References: <20171229083631.16652-1-jian.j.wang@intel.com> , , , In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNWE3MTg2MzktODEzMS00MDc1LTkxM2ItNzNiNGViYzBhNDM1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiI3WERLeVNocXIyOWV0VWdcL1I5b0Z2VHBya1ZYOXlRTHRnT3Fwc29FT3lEXC84d2lrRTdvdFlsblJ6c2c1d2JvNDEifQ== 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 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 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 02:52:59 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 R29vZC4gSSBhbHNvIHN1Z2dlc3Qgd2UgcnVuIFBJLVNDVCB0byBtYWtlIHN1cmUgaXQgaXMgd2Vs bCB0ZXN0ZWQuDQoNClRoYW5rIHlvdQ0KWWFvIEppZXdlbg0KDQpGcm9tOiBXYW5nLCBKaWFuIEoN ClNlbnQ6IEZyaWRheSwgSmFudWFyeSA1LCAyMDE4IDEwOjU2IEFNDQpUbzogRmFuIEplZmYgPHZh bmplZmZfOTE5QGhvdG1haWwuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47 IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQpDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBb ZWRrMl0gW1BBVENIXSBVZWZpQ3B1UGtnL01wSW5pdExpYjogZml4IHdyb25nIGJhc2UgYWRkcmVz cyBzZXQgYXMgU3RhY2sgR3VhcmQNCg0KR290IGl0LiBNYW55IHRoYW5rcyENCg0KUmVnYXJkcywN CkppYW4NCg0KRnJvbTogRmFuIEplZmYgW21haWx0bzp2YW5qZWZmXzkxOUBob3RtYWlsLmNvbV0N ClNlbnQ6IEZyaWRheSwgSmFudWFyeSAwNSwgMjAxOCAxMDo1MCBBTQ0KVG86IFdhbmcsIEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+Pjsg TGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbTxtYWlsdG86bGVyc2VrQHJlZGhhdC5jb20+ PjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3Jn Pg0KQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlh b0BpbnRlbC5jb20+PjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJp Yy5kb25nQGludGVsLmNvbT4+DQpTdWJqZWN0OiC08Li0OiBbZWRrMl0gW1BBVENIXSBVZWZpQ3B1 UGtnL01wSW5pdExpYjogZml4IHdyb25nIGJhc2UgYWRkcmVzcyBzZXQgYXMgU3RhY2sgR3VhcmQN Cg0KU29ycnksIER1bXAgdGhlIEFQSUNJRCwgbm90IENQVUlELg0KDQpKZWZmDQoNCreivP7Iyzog RmFuIEplZmY8bWFpbHRvOnZhbmplZmZfOTE5QGhvdG1haWwuY29tPg0Kt6LLzcqxvOQ6IDIwMTjE 6jHUwjXI1SAxMDo0OA0KytW8/sjLOiBXYW5nLCBKaWFuIEo8bWFpbHRvOmppYW4uai53YW5nQGlu dGVsLmNvbT47IExhc3psbyBFcnNlazxtYWlsdG86bGVyc2VrQHJlZGhhdC5jb20+OyBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQqzrcvNOiBZ YW8sIEppZXdlbjxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+OyBEb25nLCBFcmljPG1haWx0 bzplcmljLmRvbmdAaW50ZWwuY29tPg0K1vfM4jogtPC4tDogW2VkazJdIFtQQVRDSF0gVWVmaUNw dVBrZy9NcEluaXRMaWI6IGZpeCB3cm9uZyBiYXNlIGFkZHJlc3Mgc2V0IGFzIFN0YWNrIEd1YXJk DQoNCllvdSBtYXkgdXNlIE1QLT5Td2l0Y2hCU1AoKSB0byBkbyBCU1Agc3dpdGNoIGFuZCB0aGVu IGR1bXAgQlNQoa9zIENQVUlEIHRvIGtub3cgaWYgdGhlIHN3aXRjaCBpcyBzdWNjZXNzZnVsbHku DQoNCkplZmYNCg0KDQpGcm9tOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbTxt YWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj4NClNlbnQ6IEZyaWRheSwgSmFudWFyeSA1LCAy MDE4IDk6NTc6MzEgQU0NClRvOiBGYW4gSmVmZjsgTGFzemxvIEVyc2VrOyBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQpDYzogWWFvLCBKaWV3 ZW47IERvbmcsIEVyaWMNClN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIXSBVZWZpQ3B1UGtnL01w SW5pdExpYjogZml4IHdyb25nIGJhc2UgYWRkcmVzcyBzZXQgYXMgU3RhY2sgR3VhcmQNCg0KSGkg SmVmZiwNCg0KRG8geW91IHRoaW5rIHRoZSBjaGFuZ2UgaXMgT0s/IERvIHlvdSBrbm93IGhvdyB0 byB0ZXN0IHN3aXRjaGluZyBCU1A/DQoNClJlZ2FyZHMsDQpKaWFuDQoNCkZyb206IEZhbiBKZWZm IFttYWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb21dDQpTZW50OiBGcmlkYXksIEphbnVhcnkg MDUsIDIwMTggOTo0MCBBTQ0KVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb208bWFp bHRvOmxlcnNla0ByZWRoYXQuY29tPj47IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwu Y29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+PjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KQ2M6IFlhbywgSmlld2VuIDxqaWV3 ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+PjsgRG9uZywgRXJp YyA8ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+DQpTdWJq ZWN0OiC08Li0OiBbZWRrMl0gW1BBVENIXSBVZWZpQ3B1UGtnL01wSW5pdExpYjogZml4IHdyb25n IGJhc2UgYWRkcmVzcyBzZXQgYXMgU3RhY2sgR3VhcmQNCg0KTGFzemxvLA0KDQpGaXJzdGx5LCBT d2l0Y2hCU1AoKSBpcyBvbmUgc2VydmljZSBvZiBNUCBkZWZpbmVkIGluIFBJIHNwZWMuDQoNCkZv ciByZWFsIGNhc2UsIEkgdGhpbmsgbXVsdGlwbGUgc29ja2V0IHN5c3RlbSh3aXRoIGRpZmZlcmVu dCBwcm9jZXNzb3Igc3RlcHBpbmcpIG1heSB1c2UgdGhpcyBzZXJ2aWNlIGZvciBwdXJwb3NlLg0K DQpUaGFua3MhDQpKZWZmDQoNCreivP7IyzogTGFzemxvIEVyc2VrPG1haWx0bzpsZXJzZWtAcmVk aGF0LmNvbT4NCreiy83KsbzkOiAyMDE4xOox1MI0yNUgMjA6MjENCsrVvP7IyzogV2FuZywgSmlh biBKPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9y ZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQqzrcvNOiBZYW8sIEppZXdlbjxtYWls dG86amlld2VuLnlhb0BpbnRlbC5jb20+OyBEb25nLCBFcmljPG1haWx0bzplcmljLmRvbmdAaW50 ZWwuY29tPg0K1vfM4jogUmU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQa2cvTXBJbml0TGliOiBm aXggd3JvbmcgYmFzZSBhZGRyZXNzIHNldCBhcyBTdGFjayBHdWFyZA0KDQpPbiAwMS8wNC8xOCAw Mjo0NSwgV2FuZywgSmlhbiBKIHdyb3RlOg0KPiBBIGNvcnJlY3Rpb246IGFsdGhvdWdoIEJTUCBk b2Vzbid0IG5lZWQgaXQsIHdlIHN0aWxsIG5lZWQgdG8gaW5pdGlhbGl6ZSBpdHMgQXBUb3BPZlN0 YWNrDQo+IGNvcnJlY3RseSBiZWNhdXNlIHRoZSBNUCBzZXJ2aWNlIHN1cHBvcnRzIEJTUC9BUCBl eGNoYW5nZS4gU28gSSB0aGluayB0aGUgbGluZSAxNTAxDQo+IHNob3VsZCBiZSBjaGFuZ2VkIHRv DQo+DQo+ICAgSW5pdGlhbGl6ZUFwRGF0YSAoQ3B1TXBEYXRhLCAwLCAwLCBDcHVNcERhdGEtPkJ1 ZmZlciArIENwdU1wRGF0YS0+Q3B1QXBTdGFja1NpemUpOw0KPg0KPiBpbnN0ZWFkIG9mDQo+DQo+ ICAgSW5pdGlhbGl6ZUFwRGF0YSAoQ3B1TXBEYXRhLCAwLCAwLCBOVUxMKTsNCg0KSG1tLi4uIEFs dGhvdWdoIEkgZG9uJ3QgaW1tZWRpYXRlbHkgc2VlIGFsbCBwb3NzaWJsZSBjb25zZXF1ZW5jZXMg b2YNCnN1Y2ggYSBjaGFuZ2UsIGl0IGxvb2tzIGxpa2UgYSBjb3JyZWN0IGZpeC4NCg0KVW5mb3J0 dW5hdGVseSwgSSBkb24ndCBrbm93IG9mIGFueSBjb2RlIHRoYXQgYWN0dWFsbHkgZXhlcmNpc2Vz IHRoZQ0KQlNQL0FQIGV4Y2hhbmdlIHNlcnZpY2UuIEkgdGhpbmsgSW50ZWwgbXVzdCBoYXZlIGFj Y2VzcyB0byBzb21lIGNsaWVudA0KY29kZSBsaWtlIHRoaXMsIGJlY2F1c2UgSSB2YWd1ZWx5IHJl Y2FsbCBzb21lIHBhdGNoZXMgb3ZlciB0aW1lIHRoYXQNCmltcHJvdmVkIEJTUC9BUCBleGNoYW5n ZS4NCg0KSWYgeW91IG1vZGlmeSB0aGUgSW5pdGlhbGl6ZUFwRGF0YSgpIGNhbGwgaW4gcXVlc3Rp b24gbGlrZSBzdWdnZXN0ZWQNCmFib3ZlLCBjYW4geW91IHBlcmhhcHMgbG9jYXRlIHRoYXQgY2xp ZW50IGNvZGUsIGFuZCB0ZXN0IHRoZSBjaGFuZ2Ugd2l0aCBpdD8NCg0KVGhhbmtzIQ0KTGFzemxv DQoNCg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+IEZyb206IFdhbmcsIEppYW4g Sg0KPj4gU2VudDogVGh1cnNkYXksIEphbnVhcnkgMDQsIDIwMTggOTowOSBBTQ0KPj4gVG86IFdh bmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRl bC5jb20+PjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbTxtYWlsdG86bGVyc2VrQHJl ZGhhdC5jb20+PjsNCj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVs QGxpc3RzLjAxLm9yZz4NCj4+IENjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb208 bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRl bC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+Pg0KPj4gU3ViamVjdDogUkU6IFtlZGsy XSBbUEFUQ0hdIFVlZmlDcHVQa2cvTXBJbml0TGliOiBmaXggd3JvbmcgYmFzZSBhZGRyZXNzIHNl dA0KPj4gYXMgU3RhY2sgR3VhcmQNCj4+DQo+PiBMYXN6bG8sDQo+Pg0KPj4gTW9yZSBleHBsYW5h dGlvbnM6DQo+Pg0KPj4gW1VlZmlDcHVQa2dcTGlicmFyeVxNcEluaXRMaWJcTXBMaWIuY10NCj4+ IEFjY29yZGluZyB0byB0aGUgY29kZSwgdGhlIEJTUCdzIChDcHVJbmZvSW5Ib2JbMF0uQXBUb3BP ZlN0YWNrKSBpcyBpbml0aWFsaXplZA0KPj4gdG8NCj4+IHRoZSBib3R0b20gb2YgdGhlIHN0YWNr IChsaW5lIDE1MDEpIGJ1dCBBUCdzIEFwVG9wT2ZTdGFjayBpcyBjb3JyZWN0bHkgaW5pdGlhbGl6 ZWQNCj4+IChsaW5lIDU5OCkuIEFsdGhvdWdoIG15IGNhbGN1bGF0aW9uIGlzIGNvcnJlY3QsIEkg dGhpbmsgaXQnZCBiZSBiZXR0ZXIgdG8gdXNlIEFQJ3MNCj4+IEFwVG9wT2ZTdGFjayBkaXJlY3Rs eS4gRnJvbSB0aGlzIHBlcnNwZWN0aXZlLCB5b3UncmUgcmlnaHQuDQo+Pg0KPj4gTWF5YmUgaXQn ZCBiZSBiZXR0ZXIgdG8gcGFzcyBhIE5VTEwgcG9pbnRlciBhdCBsaW5lIDE1MDEgYmVjYXVzZSBC U1AgZG9lc24ndA0KPj4gbmVlZA0KPj4gaXQgYW55d2F5Lg0KPj4NCj4+IFJlZ2FyZHMsDQo+PiBK aWFuDQo+Pg0KPj4NCj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+IEZyb206IGVk azItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhh bGYgT2YNCj4+IFdhbmcsDQo+Pj4gSmlhbiBKDQo+Pj4gU2VudDogVGh1cnNkYXksIEphbnVhcnkg MDQsIDIwMTggODo0MiBBTQ0KPj4+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t PG1haWx0bzpsZXJzZWtAcmVkaGF0LmNvbT4+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWls dG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQo+Pj4gQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4u eWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+PjsgRG9uZywgRXJpYyA8 ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+DQo+Pj4gU3Vi amVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIFVlZmlDcHVQa2cvTXBJbml0TGliOiBmaXggd3Jvbmcg YmFzZSBhZGRyZXNzIHNldA0KPj4+IGFzIFN0YWNrIEd1YXJkDQo+Pj4NCj4+PiBMYXN6bG8sDQo+ Pj4NCj4+PiBJIHJldmlzaXRlZCBjb2RlIG9mIE1wSW5pdExpYi4gSSBmb3VuZCB0aGF0IENQVV9J TkZPX0lOX0hPQi5BcFRvcE9mU3RhY2sNCj4+PiB3YXMgYXNzaWduZWQgdG8gQ3B1TXBEYXRhLT5C dWZmZXIgaW4gTXBJbml0TGliSW5pdGlhbGl6ZSgpDQo+Pj4NCj4+PiAobGluZTE1MDEpICBJbml0 aWFsaXplQXBEYXRhIChDcHVNcERhdGEsIDAsIDAsIENwdU1wRGF0YS0+QnVmZmVyKTsNCj4+Pg0K Pj4+IGJ1dCBpbg0KPj4+DQo+Pj4gKGxpbmU1OTgpICBBcFRvcE9mU3RhY2sgID0gQ3B1TXBEYXRh LT5CdWZmZXIgKyAoUHJvY2Vzc29yTnVtYmVyICsgMSkgKg0KPj4+IENwdU1wRGF0YS0+Q3B1QXBT dGFja1NpemU7DQo+Pj4gKGxpbmU2MDgpICBJbml0aWFsaXplQXBEYXRhIChDcHVNcERhdGEsIFBy b2Nlc3Nvck51bWJlciwgQmlzdERhdGEsDQo+Pj4gQXBUb3BPZlN0YWNrKTsNCj4+Pg0KPj4+IFNp bmNlIEluaXRNcEdsb2JhbERhdGEoKSBpcyBjYWxsZWQganVzdCBhZnRlciBmaXJzdCBzaXR1YXRp b24sIG15IHBhdGNoIGlzIGNvcnJlY3QuDQo+Pj4NCj4+PiBJIHRoaW5rIHRoZSBwcm9ibGVtIGhl cmUgaXMgdGhhdCBBcFRvcE9mU3RhY2sgaW5pdGlhbGl6ZWQgYXQgbGluZSAxNTAxIGlzIG5vdA0K Pj4+IGNvcnJlY3QuDQo+Pj4NCj4+Pg0KPj4+IFJlZ2FyZHMsDQo+Pj4gSmlhbg0KPj4+DQo+Pj4N Cj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4gRnJvbTogTGFzemxvIEVyc2Vr IFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+Pj4+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5 IDA0LCAyMDE4IDE6MzMgQU0NCj4+Pj4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50 ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+PjsgZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KPj4+PiBDYzogWWFvLCBKaWV3 ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+OyBE b25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29t Pj47DQo+Pj4+IEplZmYgRmFuIDx2YW5qZWZmXzkxOUBob3RtYWlsLmNvbTxtYWlsdG86dmFuamVm Zl85MTlAaG90bWFpbC5jb20+Pg0KPj4+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSF0gVWVm aUNwdVBrZy9NcEluaXRMaWI6IGZpeCB3cm9uZyBiYXNlIGFkZHJlc3MNCj4+IHNldA0KPj4+PiBh cyBTdGFjayBHdWFyZA0KPj4+Pg0KPj4+PiAoQ0MgSmVmZikNCj4+Pj4NCj4+Pj4gU29ycnkgYWJv dXQgdGhlIGRlbGF5Lg0KPj4+Pg0KPj4+PiBJIGhhdmUgc29tZSBsaWdodCBjb21tZW50cyBiZWxv dzsgSSBleHBlY3QgYXQgbGVhc3QgYSBmZXcgb2YgdGhlbSB0byBiZQ0KPj4+PiBpbmNvcnJlY3Qg OikNCj4+Pj4NCj4+Pj4gT24gMTIvMjkvMTcgMDk6MzYsIEppYW4gSiBXYW5nIHdyb3RlOg0KPj4+ Pj4gVGhlIHJlYXNvbiBpcyB0aGF0IERYRSBwYXJ0IGluaXRpYWxpemF0aW9uIHdpbGwgcmV1c2Ug dGhlIHN0YWNrIGFsbG9jYXRlZA0KPj4+Pj4gYXQgUEVJIHBoYXNlLCBpZiBNUCB3YXMgaW5pdGlh bGl6ZWQgYmVmb3JlLiBTb21lIGNvZGUgYWRkZWQgdG8gY2hlY2sgdGhpcw0KPj4+Pj4gc2l0dWF0 aW9uIGFuZCB1c2Ugc3RhY2sgYmFzZSBhZGRyZXNzIHNhdmVkIGluIEhPQiBwYXNzZWQgZnJvbSBQ RUkuDQo+Pj4+Pg0KPj4+Pj4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPG1h aWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+DQo+Pj4+PiBDYzogRXJpYyBEb25nIDxlcmljLmRv bmdAaW50ZWwuY29tPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPj4NCj4+Pj4+IENjOiBMYXN6 bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPG1haWx0bzpsZXJzZWtAcmVkaGF0LmNvbT4+DQo+ Pj4+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQg MS4xDQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwu Y29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+Pg0KPj4+Pj4gLS0tDQo+Pj4+PiAgVWVm aUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9EeGVNcExpYi5jIHwgMTcgKysrKysrKysrKysrKysr LS0NCj4+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkNCj4+Pj4+DQo+Pj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExp Yi9EeGVNcExpYi5jDQo+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9EeGVNcExp Yi5jDQo+Pj4+PiBpbmRleCA0MGMxYmY0MDdhLi4wNTQ4NGM5ZmYzIDEwMDY0NA0KPj4+Pj4gLS0t IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9EeGVNcExpYi5jDQo+Pj4+PiArKysgYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wTGliLmMNCj4+Pj4+IEBAIC0yOTUsNiAr Mjk1LDcgQEAgSW5pdE1wR2xvYmFsRGF0YSAoDQo+Pj4+PiAgICBVSU5UTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleDsNCj4+Pj4+ICAgIEVGSV9HQ0RfTUVNT1JZX1NQQUNFX0RF U0NSSVBUT1IgICAgIE1lbURlc2M7DQo+Pj4+PiAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdGFja0Jhc2U7DQo+Pj4+PiArICBDUFVfSU5GT19JTl9IT0IgICAgICAgICAg ICAgICAgICAgICAqQ3B1SW5mb0luSG9iOw0KPj4+Pj4NCj4+Pj4+ICAgIFNhdmVDcHVNcERhdGEg KENwdU1wRGF0YSk7DQo+Pj4+Pg0KPj4+Pj4gQEAgLTMxNCw5ICszMTUsMTggQEAgSW5pdE1wR2xv YmFsRGF0YSAoDQo+Pj4+PiAgICAgICAgQVNTRVJUIChGQUxTRSk7DQo+Pj4+PiAgICAgIH0NCj4+ Pj4+DQo+Pj4+PiAtICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IENwdU1wRGF0YS0+Q3B1Q291 bnQ7ICsrSW5kZXgpIHsNCj4+Pj4+IC0gICAgICBTdGFja0Jhc2UgPSBDcHVNcERhdGEtPkJ1ZmZl ciArIEluZGV4ICogQ3B1TXBEYXRhLQ0KPj4+IENwdUFwU3RhY2tTaXplOw0KPj4+Pj4gKyAgICAv Lw0KPj4+Pj4gKyAgICAvLyBEWEUgd2lsbCByZXVzZSBzdGFjayBhbGxvY2F0ZWQgZm9yIEFQcyBh dCBQRUkgcGhhc2UgaWYgaXQncyBhdmFpbGFibGUuDQo+Pj4+PiArICAgIC8vIExldCdzIGNoZWNr IGl0IGhlcmUuDQo+Pj4+PiArICAgIC8vDQo+Pj4+PiArICAgIENwdUluZm9JbkhvYiA9IChDUFVf SU5GT19JTl9IT0IgKikoVUlOVE4pQ3B1TXBEYXRhLQ0KPj4+Pj4gQ3B1SW5mb0luSG9iOw0KPj4+ Pj4gKyAgICBpZiAoQ3B1SW5mb0luSG9iICE9IE5VTEwgJiYgQ3B1SW5mb0luSG9iLT5BcFRvcE9m U3RhY2sgIT0gMCkgew0KPj4+Pj4gKyAgICAgIFN0YWNrQmFzZSA9IENwdUluZm9JbkhvYi0+QXBU b3BPZlN0YWNrOw0KPj4+Pj4gKyAgICB9IGVsc2Ugew0KPj4+Pj4gKyAgICAgIFN0YWNrQmFzZSA9 IENwdU1wRGF0YS0+QnVmZmVyOw0KPj4+Pj4gKyAgICB9DQo+Pj4+DQo+Pj4+IFNvLCBpZiB0aGUg SE9CIGlzIG5vdCBmb3VuZCwgdGhlbiBTdGFja0Jhc2UgaXMgc2V0IG9rYXkuDQo+Pj4+DQo+Pj4+ IEhvd2V2ZXIsIEknbSB1bnN1cmUgYWJvdXQgdGhlIG90aGVyIGNhc2UuIFRoZQ0KPj4+PiBDUFVf SU5GT19JTl9IT0IuQXBUb3BPZlN0YWNrIGZpZWxkIGlkZW50aWZpZXMgdGhlICp0b3AqIG9mIHRo ZSBzdGFjaw0KPj4+PiAoaGlnaGVzdCBhZGRyZXNzLCBhbmQgdGhlIHN0YWNrIGdyb3dzIGRvd24p OyBob3dldmVyIHRoZSBsb29wIGJlbG93DQo+Pj4+ICppbmNyZW1lbnRzKiBTdGFja0Jhc2UuIEdp dmVuIHRoZSBpbmNyZW1lbnRpbmcgbmF0dXJlIG9mIHRoZSBsb29wLA0KPj4+PiBzaG91bGRuJ3Qg d2UgZmlyc3QgY2FsY3VsYXRlIHRoZSBhY3R1YWwgYmFzZSAoPSBsb3dlc3QgYWRkcmVzcykgZnJv bSB0aGUNCj4+Pj4gQ1BVX0lORk9fSU5fSE9CLkFwVG9wT2ZTdGFjayBmaWVsZD8NCj4+Pj4NCj4+ Pj4gQWN0dWFsbHkuLi4gSSdtIGV2ZW4gbW9yZSBjb25mdXNlZC4gVGhlIENwdU1wRGF0YS0+Q3B1 SW5mb0luSG9iIGZpZWxkDQo+Pj4+IHBvaW50cyB0byBhbiAqYXJyYXkqIG9mIENQVV9JTkZPX0lO X0hPQiBzdHJ1Y3R1cmVzLiBUaGVyZWZvcmUsIGZvciBhbnkNCj4+Pj4gZ2l2ZW4gcHJvY2Vzc29y ICNOLCB3ZSBzaG91bGQgbm90IGNhbGN1bGF0ZSB0aGUgc3RhY2sgYmFzZSBhcw0KPj4+Pg0KPj4+ PiAgIENwdU1wRGF0YS0+Q3B1SW5mb0luSG9iLT5BcFRvcE9mU3RhY2sgKyBOICogQ3B1TXBEYXRh LQ0KPj4+Pj4gQ3B1QXBTdGFja1NpemUNCj4+Pj4NCj4+Pj4gaW5zdGVhZCB3ZSBzaG91bGQgY2Fs Y3VsYXRlIHRoZSBzdGFjayBiYXNlIGFzIHNvbWV0aGluZyBsaWtlOg0KPj4+Pg0KPj4+PiAgIENw dU1wRGF0YS0+Q3B1SW5mb0luSG9iW05dLkFwVG9wT2ZTdGFjayAtIENwdU1wRGF0YS0NCj4+PiBD cHVBcFN0YWNrU2l6ZQ0KPj4+Pg0KPj4+PiBTZWUNCj4+Pj4gLSB0aGUgSW5pdGlhbGl6ZUFwRGF0 YSgpIGZ1bmN0aW9uLA0KPj4+PiAtIGFuZCBpdHMgY2FsbCBzaXRlIGluIHRoZSBBcFdha2V1cEZ1 bmN0aW9uKCkgZnVuY3Rpb24uDQo+Pj4+DQo+Pj4+IChUbyBteSBzdXJwcmlzZSwgSSBwZXJzb25h bGx5IG1vZGlmaWVkIEluaXRpYWxpemVBcERhdGEoKSBlYXJsaWVyLCBpbg0KPj4+PiBjb21taXQg ZGQzZmEwY2Q3MmRlICgiVWVmaUNwdVBrZy9NcEluaXRMaWI6IHN1cHBvcnQgNjQtYml0IEFQIHN0 YWNrDQo+Pj4+IGFkZHJlc3NlcyIsIDIwMTYtMTEtMTcpIC0tIEkndmUgdG90YWxseSBmb3Jnb3R0 ZW4gYWJvdXQgdGhhdCBieSBub3chKQ0KPj4+Pg0KPj4+PiBXaGF0IGRvIHlvdSB0aGluaz8NCj4+ Pj4NCj4+Pj4+DQo+Pj4+PiArICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IENwdU1wRGF0YS0+ Q3B1Q291bnQ7ICsrSW5kZXgpIHsNCj4+Pj4+ICAgICAgICBTdGF0dXMgPSBnRFMtPkdldE1lbW9y eVNwYWNlRGVzY3JpcHRvciAoU3RhY2tCYXNlLCAmTWVtRGVzYyk7DQo+Pj4+PiAgICAgICAgQVNT RVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4+Pj4+DQo+Pj4+PiBAQCAtMzI2LDYgKzMzNiw5IEBA IEluaXRNcEdsb2JhbERhdGEgKA0KPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICBNZW1EZXNj LkF0dHJpYnV0ZXMgfCBFRklfTUVNT1JZX1JQDQo+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAg ICk7DQo+Pj4+PiAgICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4+Pj4+ICsNCj4+ Pj4+ICsgICAgICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICJTdGFjayBHdWFyZCBzZXQgYXQgJXgg W2NwdSVkXSFcbiIsDQo+Pj4+IFN0YWNrQmFzZSwgSW5kZXgpKTsNCj4+Pj4NCj4+Pj4gU3RhY2tC YXNlIGhhcyB0eXBlIFVJTlROLCBhbmQgc28gaXQgc2hvdWxkIG5vdCBiZSBwcmludGVkIHdpdGgg JXguIEl0DQo+Pj4+IHNob3VsZCBiZSBjYXN0IHRvIChVSU5UNjQpLCBhbmQgdGhlbiBwcmludGVk IHdpdGggJUx4Lg0KPj4+Pg0KPj4+PiBTaW1pbGFybHksIEluZGV4IGhhcyB0eXBlIFVJTlROLiBJ dCBzaG91bGQgbm90IGJlIHByaW50ZWQgd2l0aCAlZC4gSXQNCj4+Pj4gc2hvdWxkIGJlIGNhc3Qg dG8gKFVJTlQ2NCkgYW5kIHByaW50ZWQgd2l0aCAlTHUuDQo+Pj4+DQo+Pj4+DQo+Pj4+PiArICAg ICAgU3RhY2tCYXNlICs9IENwdU1wRGF0YS0+Q3B1QXBTdGFja1NpemU7DQo+Pj4+DQo+Pj4+IEFn YWluLCBJIGRvbid0IHRoaW5rIHRoZSBzaW1wbGUgaW5jcmVtZW50IGFwcGxpZXMgd2hlbiB0aGUN Cj4+Pj4gQ3B1TXBEYXRhLT5DcHVJbmZvSW5Ib2IgYXJyYXkgZXhpc3RzLg0KPj4+Pg0KPj4+Pj4g ICAgICB9DQo+Pj4+PiAgICB9DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4NCj4+Pj4gVGhhbmtzLA0KPj4+ PiBMYXN6bG8NCj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPj4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+Pj4gZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KPj4+IGh0dHBzOi8vbGlzdHMu MDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KDQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCmVk azItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCmh0 dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KDQoNCg==