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.115; helo=mga14.intel.com; envelope-from=eric.dong@intel.com; receiver=edk2-devel@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 1F61321BADAB2 for ; Wed, 25 Jul 2018 05:45:21 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jul 2018 05:45:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,401,1526367600"; d="scan'208";a="60558466" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga006.jf.intel.com with ESMTP; 25 Jul 2018 05:45:02 -0700 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 25 Jul 2018 05:45:00 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 25 Jul 2018 05:45:00 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.124]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.81]) with mapi id 14.03.0319.002; Wed, 25 Jul 2018 20:44:58 +0800 From: "Dong, Eric" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" Thread-Topic: [edk2] [Patch v3 3/3] UefiCpuPkg/MpInitLib: Not use disabled AP when call StartAllAPs. Thread-Index: AQHUI+xeJ86Ek8rZvUGiWjckohfSS6SfU0uAgACOBoA= Date: Wed, 25 Jul 2018 12:44:57 +0000 Message-ID: References: <20180725075020.240-1-eric.dong@intel.com> <20180725075020.240-4-eric.dong@intel.com> <80ecf1ce-a189-4a81-abb6-48eba2d3dbd9@redhat.com> In-Reply-To: <80ecf1ce-a189-4a81-abb6-48eba2d3dbd9@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch v3 3/3] UefiCpuPkg/MpInitLib: Not use disabled AP when call StartAllAPs. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jul 2018 12:45:22 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFz emxvIEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwg SnVseSAyNSwgMjAxOCA4OjEyIFBNDQo+IFRvOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwu Y29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlA aW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQYXRjaCB2MyAzLzNdIFVlZmlDcHVQ a2cvTXBJbml0TGliOiBOb3QgdXNlIGRpc2FibGVkIEFQDQo+IHdoZW4gY2FsbCBTdGFydEFsbEFQ cy4NCj4gDQo+IEhpIEVyaWMsDQo+IA0KPiBPbiAwNy8yNS8xOCAwOTo1MCwgRXJpYyBEb25nIHdy b3RlOg0KPiA+IEJhc2Ugb24gVUVGSSBzcGVjIHJlcXVpcmVtZW50LCBTdGFydEFsbEFQcyBmdW5j dGlvbiBzaG91bGQgbm90IHVzZSB0aGUNCj4gPiBBUHMgd2hpY2ggaGFzIGJlZW4gZGlzYWJsZWQg YmVmb3JlLiBUaGlzIHBhdGNoIGp1c3QgY2hhbmdlIGN1cnJlbnQNCj4gPiBjb2RlIHRvIGZvbGxv dyB0aGlzIHJ1bGUuDQo+ID4NCj4gPiBWMyBjaGFuZ2VzOg0KPiA+IE9ubHkgY2FsbGVkIGJ5IFN0 YXJ0VXBBbGxBcHMsIFdha2VVcEFwIHdpbGwgbm90IHdha2UgdXAgdGhlIGRpc2FibGVkDQo+ID4g QVBzLCBpbiBvdGhlciBjYXNlcyBhbHNvIG5lZWQgdG8gaW5jbHVkZSB0aGUgZGlzYWJsZWQgQVBz LCBzdWNoIGFzDQo+ID4gQ3B1RHhlIGRyaXZlciBzdGFydCB1cCBhbmQgQ2hhbmdlQXBMb29wQ2Fs bGJhY2sgZnVuY3Rpb24uDQo+ID4NCj4gPiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0 LmNvbT4NCj4gPiBDYzogUnVpeXUgTmkgPHJ1aXl1Lm5pQGludGVsLmNvbT4NCj4gPiBDb250cmli dXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gU2ln bmVkLW9mZi1ieTogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wTGliLmMgfCAgMiArLQ0KPiA+ICBV ZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmMgICAgfCAyNyArKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0NCj4gPiAgVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5o ICAgIHwgIDQgKysrLQ0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDEy IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9N cEluaXRMaWIvRHhlTXBMaWIuYw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9E eGVNcExpYi5jDQo+ID4gaW5kZXggZDgyZTlhZWE0NS4uYzE3ZGFhMGZjMCAxMDA2NDQNCj4gPiAt LS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wTGliLmMNCj4gPiArKysgYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL0R4ZU1wTGliLmMNCj4gPiBAQCAtMzA2LDcgKzMw Niw3IEBAIE1wSW5pdENoYW5nZUFwTG9vcENhbGxiYWNrICgNCj4gPiAgICBDcHVNcERhdGEtPlBt Q29kZVNlZ21lbnQgPSBHZXRQcm90ZWN0ZWRNb2RlQ1MgKCk7DQo+ID4gICAgQ3B1TXBEYXRhLT5B cExvb3BNb2RlID0gUGNkR2V0OCAoUGNkQ3B1QXBMb29wTW9kZSk7DQo+ID4gICAgbU51bWJlclRv RmluaXNoID0gQ3B1TXBEYXRhLT5DcHVDb3VudCAtIDE7DQo+ID4gLSAgV2FrZVVwQVAgKENwdU1w RGF0YSwgVFJVRSwgMCwgUmVsb2NhdGVBcExvb3AsIE5VTEwpOw0KPiA+ICsgIFdha2VVcEFQIChD cHVNcERhdGEsIFRSVUUsIDAsIFJlbG9jYXRlQXBMb29wLCBOVUxMLCBUUlVFKTsNCj4gPiAgICB3 aGlsZSAobU51bWJlclRvRmluaXNoID4gMCkgew0KPiA+ICAgICAgQ3B1UGF1c2UgKCk7DQo+ID4g ICAgfQ0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGli LmMNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvTXBMaWIuYw0KPiA+IGluZGV4 IDBlNTdjYzg2YmYuLjFhODEwNjJhM2YgMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNwdVBrZy9MaWJy YXJ5L01wSW5pdExpYi9NcExpYi5jDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5p dExpYi9NcExpYi5jDQo+ID4gQEAgLTQ3MCw3ICs0NzAsNyBAQCBDb2xsZWN0UHJvY2Vzc29yQ291 bnQgKA0KPiA+ICAgIC8vDQo+ID4gICAgQ3B1TXBEYXRhLT5Jbml0RmxhZyAgICAgPSBBcEluaXRD b25maWc7DQo+ID4gICAgQ3B1TXBEYXRhLT5YMkFwaWNFbmFibGUgPSBGQUxTRTsNCj4gPiAtICBX YWtlVXBBUCAoQ3B1TXBEYXRhLCBUUlVFLCAwLCBOVUxMLCBOVUxMKTsNCj4gPiArICBXYWtlVXBB UCAoQ3B1TXBEYXRhLCBUUlVFLCAwLCBOVUxMLCBOVUxMLCBUUlVFKTsNCj4gPiAgICBDcHVNcERh dGEtPkluaXRGbGFnID0gQXBJbml0RG9uZTsNCj4gPiAgICBBU1NFUlQgKENwdU1wRGF0YS0+Q3B1 Q291bnQgPD0gUGNkR2V0MzINCj4gKFBjZENwdU1heExvZ2ljYWxQcm9jZXNzb3JOdW1iZXIpKTsN Cj4gPiAgICAvLw0KPiA+IEBAIC00OTEsNyArNDkxLDcgQEAgQ29sbGVjdFByb2Nlc3NvckNvdW50 ICgNCj4gPiAgICAgIC8vDQo+ID4gICAgICAvLyBXYWtldXAgYWxsIEFQcyB0byBlbmFibGUgeDJB UElDIG1vZGUNCj4gPiAgICAgIC8vDQo+ID4gLSAgICBXYWtlVXBBUCAoQ3B1TXBEYXRhLCBUUlVF LCAwLCBBcEZ1bmNFbmFibGVYMkFwaWMsIE5VTEwpOw0KPiA+ICsgICAgV2FrZVVwQVAgKENwdU1w RGF0YSwgVFJVRSwgMCwgQXBGdW5jRW5hYmxlWDJBcGljLCBOVUxMLCBUUlVFKTsNCj4gPiAgICAg IC8vDQo+ID4gICAgICAvLyBXYWl0IGZvciBhbGwga25vd24gQVBzIGZpbmlzaGVkDQo+ID4gICAg ICAvLw0KPiA+IEBAIC05NjksNiArOTY5LDcgQEAgRnJlZVJlc2V0VmVjdG9yICgNCj4gPiAgICBA cGFyYW1baW5dIFByb2Nlc3Nvck51bWJlciAgICBUaGUgaGFuZGxlIG51bWJlciBvZiBzcGVjaWZp ZWQNCj4gcHJvY2Vzc29yDQo+ID4gICAgQHBhcmFtW2luXSBQcm9jZWR1cmUgICAgICAgICAgVGhl IGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYnkgQVANCj4gPiAgICBAcGFyYW1baW5dIFByb2NlZHVy ZUFyZ3VtZW50ICBUaGUgYXJndW1lbnQgdG8gYmUgcGFzc2VkIGludG8gQVANCj4gPiBmdW5jdGlv bg0KPiA+ICsgIEBwYXJhbVtpbl0gV2FrZVVwRGlzYWJsZWRBcHMgIFdoZXRoZXIgbmVlZCB0byB3 YWtlIHVwIGRpc2FibGVkIEFQcw0KPiBpbiBicm9hZGNhc3QgbW9kZS4NCj4gPiAgKiovDQo+ID4g IFZPSUQNCj4gPiAgV2FrZVVwQVAgKA0KPiA+IEBAIC05NzYsNyArOTc3LDggQEAgV2FrZVVwQVAg KA0KPiA+ICAgIElOIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgQnJvYWRjYXN0LA0KPiA+ICAg IElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgUHJvY2Vzc29yTnVtYmVyLA0KPiA+ICAgIElO IEVGSV9BUF9QUk9DRURVUkUgICAgICAgICAgUHJvY2VkdXJlLCAgICAgICAgICAgICAgT1BUSU9O QUwNCj4gPiAtICBJTiBWT0lEICAgICAgICAgICAgICAgICAgICAgICpQcm9jZWR1cmVBcmd1bWVu dCAgICAgIE9QVElPTkFMDQo+ID4gKyAgSU4gVk9JRCAgICAgICAgICAgICAgICAgICAgICAqUHJv Y2VkdXJlQXJndW1lbnQsICAgICBPUFRJT05BTA0KPiA+ICsgIElOIEJPT0xFQU4gICAgICAgICAg ICAgICAgICAgV2FrZVVwRGlzYWJsZWRBcHMNCj4gPiAgICApDQo+ID4gIHsNCj4gPiAgICB2b2xh dGlsZSBNUF9DUFVfRVhDSEFOR0VfSU5GTyAgICAqRXhjaGFuZ2VJbmZvOw0KPiA+IEBAIC0xMDEw LDYgKzEwMTIsMTAgQEAgV2FrZVVwQVAgKA0KPiA+ICAgICAgZm9yIChJbmRleCA9IDA7IEluZGV4 IDwgQ3B1TXBEYXRhLT5DcHVDb3VudDsgSW5kZXgrKykgew0KPiA+ICAgICAgICBpZiAoSW5kZXgg IT0gQ3B1TXBEYXRhLT5Cc3BOdW1iZXIpIHsNCj4gPiAgICAgICAgICBDcHVEYXRhID0gJkNwdU1w RGF0YS0+Q3B1RGF0YVtJbmRleF07DQo+ID4gKyAgICAgICAgaWYgKEdldEFwU3RhdGUgKENwdURh dGEpID09IENwdVN0YXRlRGlzYWJsZWQNCj4gJiYgIVdha2VVcERpc2FibGVkQXBzKSB7DQo+ID4g KyAgICAgICAgICBjb250aW51ZTsNCj4gPiArICAgICAgICB9DQo+ID4gKw0KPiA+ICAgICAgICAg IENwdURhdGEtPkFwRnVuY3Rpb24gICAgICAgICA9IChVSU5UTikgUHJvY2VkdXJlOw0KPiA+ICAg ICAgICAgIENwdURhdGEtPkFwRnVuY3Rpb25Bcmd1bWVudCA9IChVSU5UTikgUHJvY2VkdXJlQXJn dW1lbnQ7DQo+ID4gICAgICAgICAgU2V0QXBTdGF0ZSAoQ3B1RGF0YSwgQ3B1U3RhdGVSZWFkeSk7 DQo+IA0KPiBJIHRoaW5rIHNvbWV0aGluZyAqbWlnaHQqIGJlIG1pc3NpbmcgZnJvbSB0aGUgcGF0 Y2ggaGVyZSwgYnV0IEknbSBub3Qgc3VyZS4NCj4gDQo+IE5hbWVseSwgaXMgaXQgcG9zc2libGUg dGhhdCB3ZSBjYW4gcmVhY2ggV2FrZVVwQVAoKSB3aXRoOg0KPiANCj4gICAoQnJvYWRjYXN0ICYm IFdha2VVcERpc2FibGVkQXBzKQ0KPiANCj4gKmFmdGVyKiBzb21lIEFQcyBoYXZlIGJlZW4gZGlz YWJsZWQ/DQo+IA0KPiBCZWNhdXNlLCBpbiB0aGF0IGNhc2UsIHdlIHNldCB0aGUgQVAgc3RhdGUg ZnJvbSBEaXNhYmxlZCB0byBSZWFkeSAoYW5kIHRoZSBBUA0KPiB3aWxsIHBlcmZvcm0gdGhlIFBy b2NlZHVyZSBhcyBuZWNlc3NhcnkpIC0tIGhvd2V2ZXIsIG9uY2UgdGhlIEFQIGlzIGRvbmUsIHdl DQo+IGRvIG5vdCBzZWVtIHRvIHJlLXNldCBpdHMgc3RhdGUgdG8gRGlzYWJsZWQuDQo+IA0KPiBJ cyB0aGF0IGNvcnJlY3Q/DQoNClllcywgZm9yIGN1cnJlbnQgdXNlIGNhc2VzLCB3ZSBkb24ndCBo YXZlIGEgdmFsaWQgY2FzZSBuZWVkIHRvIHJlLXNldCB0aGUgQVAgdG8gRGlzYWJsZWQgc3RhdGUu DQoNCj4gDQo+IEkgdHJpZWQgdG8gY29sbGVjdCBhbGwgdGhlIFdha2VVcEFwKCkgY2FsbHMgdGhh dCBwYXNzIFRSVUUgZm9yIGJvdGggYm9vbGVhbnMNCj4gbWVudGlvbmVkIGFib3ZlLiBUaGVpciBj YWxsZXJzIGFyZSBhcyBmb2xsb3dzOg0KPiANCj4gLSBNcEluaXRMaWJJbml0aWFsaXplKCkNCj4g LSBDb2xsZWN0UHJvY2Vzc29yQ291bnQoKQ0KPiAtIE1wSW5pdENoYW5nZUFwTG9vcENhbGxiYWNr KCkNCj4gDQo+IEZyb20gdGhlc2UgdGhyZWUsICBNcEluaXRMaWJJbml0aWFsaXplKCkgYW5kIENv bGxlY3RQcm9jZXNzb3JDb3VudCgpIHJ1bg0KPiBiZWZvcmUgdGhlIHByb3RvY29sIG9yIFBQSSB1 c2VyIGhhcyBhbnkgY2hhbmNlIHRvIGRpc2FibGUgYSBDUFUsIHNvIGl0IGxvb2tzDQo+IGltcG9z c2libGUgdG8gcmVhY2ggdGhlIHByb2JsZW1hdGljIGNvZGUgcGF0aCBJJ20gZGVzY3JpYmluZyBm cm9tIHRob3NlDQo+IGZ1bmN0aW9ucy4NCj4gDQo+IFdoYXQgYWJvdXQgTXBJbml0Q2hhbmdlQXBM b29wQ2FsbGJhY2soKT8uLi4gSG0sIHRoYXQgZnVuY3Rpb24gaXMgb25seQ0KPiBjYWxsZWQgYXMg YSBub3RpZmljYXRpb24gZnVuY3Rpb24gZm9yOg0KPiANCj4gLSB0aGUgZXhpdC1ib290LXNlcnZp Y2VzIGV2ZW50LCBhbmQNCj4gLSB0aGUgbGVnYWN5IGJvb3QgZXZlbnQNCj4gDQo+IEFmdGVyIHdo aWNoIHRoZSBNUCBwcm90b2NvbCBpcyB1bnVzYWJsZSBhbnl3YXksIHNvIGl0IGRvZXNuJ3QgbWF0 dGVyIGlmIHdlDQo+IGRvbid0IGZsaXAgdGhlIEFQIHN0YXR1cyBiYWNrIHRvIERpc2FibGVkLg0K PiANCj4gT0ssIHNvIHRoaXMgcGF0Y2ggbG9va3MgY29ycmVjdCB0byBtZTsgY2FuIHlvdSBwbGVh c2UgdXBkYXRlIHRoZSBjb21taXQNCj4gbWVzc2FnZToNCj4gDQo+ICJXYWtlVXBBUCgpIGlzIGNh bGxlZCB3aXRoIChCcm9hZGNhc3QgJiYgV2FrZVVwRGlzYWJsZWRBcHMpIGZyb20NCj4gTXBJbml0 TGliSW5pdGlhbGl6ZSgpLCBDb2xsZWN0UHJvY2Vzc29yQ291bnQoKSBhbmQNCj4gTXBJbml0Q2hh bmdlQXBMb29wQ2FsbGJhY2soKSBvbmx5LiBUaGUgZmlyc3QgdHdvIHJ1biBiZWZvcmUgdGhlIFBQ SSBvcg0KPiBQcm90b2NvbCB1c2VyIGhhcyBhIGNoYW5jZSB0byBkaXNhYmxlIGFueSBBUHMuIFRo ZSBsYXN0IG9uZSBydW5zIGluIHJlc3BvbnNlIHRvDQo+IHRoZSBFeGl0Qm9vdFNlcnZpY2VzIGFu ZCBMZWdhY3lCb290IGV2ZW50cywgYWZ0ZXIgd2hpY2ggdGhlIE1QIHByb3RvY29sIGlzDQo+IHVu dXNhYmxlLiBGb3IgdGhpcyByZWFzb24sIGl0IGRvZXNuJ3QgbWF0dGVyIHRoYXQgYW4gb3JpZ2lu YWxseSBkaXNhYmxlZCBBUCdzDQo+IHN0YXRlIGlzIG5vdCByZXN0b3JlZCB0byBEaXNhYmxlZCwg d2hlbg0KPiBXYWtlVXBBUCgpIGlzIGNhbGxlZCB3aXRoIChCcm9hZGNhc3QgJiYgV2FrZVVwRGlz YWJsZWRBcHMpLiINCj4gDQoNCkdvb2Qgc3VnZ2VzdGlvbiwgd2lsbCBpbmNsdWRlIGl0IGluIHRo ZSBjb21taXQgbWVzc2FnZXMuDQoNCj4gVGhhbmtzIQ0KPiBMYXN6bG8NCj4gDQo+ID4gQEAgLTEy ODksNyArMTI5NSw3IEBAIFJlc2V0UHJvY2Vzc29yVG9JZGxlU3RhdGUgKA0KPiA+ICAgIENwdU1w RGF0YSA9IEdldENwdU1wRGF0YSAoKTsNCj4gPg0KPiA+ICAgIENwdU1wRGF0YS0+SW5pdEZsYWcg PSBBcEluaXRSZWNvbmZpZzsNCj4gPiAtICBXYWtlVXBBUCAoQ3B1TXBEYXRhLCBGQUxTRSwgUHJv Y2Vzc29yTnVtYmVyLCBOVUxMLCBOVUxMKTsNCj4gPiArICBXYWtlVXBBUCAoQ3B1TXBEYXRhLCBG QUxTRSwgUHJvY2Vzc29yTnVtYmVyLCBOVUxMLCBOVUxMLCBUUlVFKTsNCj4gPiAgICB3aGlsZSAo Q3B1TXBEYXRhLT5GaW5pc2hlZENvdW50IDwgMSkgew0KPiA+ICAgICAgQ3B1UGF1c2UgKCk7DQo+ ID4gICAgfQ0KPiA+IEBAIC0xNDM5LDcgKzE0NDUsOCBAQCBDaGVja0FsbEFQcyAoDQo+ID4gICAg ICAgICAgICAgIEZBTFNFLA0KPiA+ICAgICAgICAgICAgICAoVUlOVDMyKSBOZXh0UHJvY2Vzc29y TnVtYmVyLA0KPiA+ICAgICAgICAgICAgICBDcHVNcERhdGEtPlByb2NlZHVyZSwNCj4gPiAtICAg ICAgICAgICAgQ3B1TXBEYXRhLT5Qcm9jQXJndW1lbnRzDQo+ID4gKyAgICAgICAgICAgIENwdU1w RGF0YS0+UHJvY0FyZ3VtZW50cywNCj4gPiArICAgICAgICAgICAgVFJVRQ0KPiA+ICAgICAgICAg ICAgICApOw0KPiA+ICAgICAgICAgICB9DQo+ID4gICAgICAgIH0NCj4gPiBAQCAtMTcxMSw3ICsx NzE4LDcgQEAgTXBJbml0TGliSW5pdGlhbGl6ZSAoDQo+ID4gICAgICAgIC8vDQo+ID4gICAgICAg IC8vIFdha2V1cCBBUHMgdG8gZG8gc29tZSBBUCBpbml0aWFsaXplIHN5bmMNCj4gPiAgICAgICAg Ly8NCj4gPiAtICAgICAgV2FrZVVwQVAgKENwdU1wRGF0YSwgVFJVRSwgMCwgQXBJbml0aWFsaXpl U3luYywgQ3B1TXBEYXRhKTsNCj4gPiArICAgICAgV2FrZVVwQVAgKENwdU1wRGF0YSwgVFJVRSwg MCwgQXBJbml0aWFsaXplU3luYywgQ3B1TXBEYXRhLA0KPiA+ICsgVFJVRSk7DQo+ID4gICAgICAg IC8vDQo+ID4gICAgICAgIC8vIFdhaXQgZm9yIGFsbCBBUHMgZmluaXNoZWQgaW5pdGlhbGl6YXRp b24NCj4gPiAgICAgICAgLy8NCj4gPiBAQCAtMTkwNiw3ICsxOTEzLDcgQEAgU3dpdGNoQlNQV29y a2VyICgNCj4gPiAgICAvLw0KPiA+ICAgIC8vIE5lZWQgdG8gd2FrZVVwIEFQIChmdXR1cmUgQlNQ KS4NCj4gPiAgICAvLw0KPiA+IC0gIFdha2VVcEFQIChDcHVNcERhdGEsIEZBTFNFLCBQcm9jZXNz b3JOdW1iZXIsIEZ1dHVyZUJTUFByb2MsDQo+ID4gQ3B1TXBEYXRhKTsNCj4gPiArICBXYWtlVXBB UCAoQ3B1TXBEYXRhLCBGQUxTRSwgUHJvY2Vzc29yTnVtYmVyLCBGdXR1cmVCU1BQcm9jLA0KPiA+ ICsgQ3B1TXBEYXRhLCBUUlVFKTsNCj4gPg0KPiA+ICAgIEFzbUV4Y2hhbmdlUm9sZSAoJkNwdU1w RGF0YS0+QlNQSW5mbywgJkNwdU1wRGF0YS0+QVBJbmZvKTsNCj4gPg0KPiA+IEBAIC0yMjQwLDE0 ICsyMjQ3LDE0IEBAIFN0YXJ0dXBBbGxBUHNXb3JrZXIgKA0KPiA+ICAgIENwdU1wRGF0YS0+V2Fp dEV2ZW50ICAgICA9IFdhaXRFdmVudDsNCj4gPg0KPiA+ICAgIGlmICghU2luZ2xlVGhyZWFkKSB7 DQo+ID4gLSAgICBXYWtlVXBBUCAoQ3B1TXBEYXRhLCBUUlVFLCAwLCBQcm9jZWR1cmUsIFByb2Nl ZHVyZUFyZ3VtZW50KTsNCj4gPiArICAgIFdha2VVcEFQIChDcHVNcERhdGEsIFRSVUUsIDAsIFBy b2NlZHVyZSwgUHJvY2VkdXJlQXJndW1lbnQsDQo+ID4gKyBGQUxTRSk7DQo+ID4gICAgfSBlbHNl IHsNCj4gPiAgICAgIGZvciAoUHJvY2Vzc29yTnVtYmVyID0gMDsgUHJvY2Vzc29yTnVtYmVyIDwg UHJvY2Vzc29yQ291bnQ7DQo+IFByb2Nlc3Nvck51bWJlcisrKSB7DQo+ID4gICAgICAgIGlmIChQ cm9jZXNzb3JOdW1iZXIgPT0gQ2FsbGVyTnVtYmVyKSB7DQo+ID4gICAgICAgICAgY29udGludWU7 DQo+ID4gICAgICAgIH0NCj4gPiAgICAgICAgaWYgKENwdU1wRGF0YS0+Q3B1RGF0YVtQcm9jZXNz b3JOdW1iZXJdLldhaXRpbmcpIHsNCj4gPiAtICAgICAgICBXYWtlVXBBUCAoQ3B1TXBEYXRhLCBG QUxTRSwgUHJvY2Vzc29yTnVtYmVyLCBQcm9jZWR1cmUsDQo+IFByb2NlZHVyZUFyZ3VtZW50KTsN Cj4gPiArICAgICAgICBXYWtlVXBBUCAoQ3B1TXBEYXRhLCBGQUxTRSwgUHJvY2Vzc29yTnVtYmVy LCBQcm9jZWR1cmUsDQo+ID4gKyBQcm9jZWR1cmVBcmd1bWVudCwgVFJVRSk7DQo+ID4gICAgICAg ICAgYnJlYWs7DQo+ID4gICAgICAgIH0NCj4gPiAgICAgIH0NCj4gPiBAQCAtMjM1OSw3ICsyMzY2 LDcgQEAgU3RhcnR1cFRoaXNBUFdvcmtlciAoDQo+ID4gICAgQ3B1RGF0YS0+RXhwZWN0ZWRUaW1l ID0gQ2FsY3VsYXRlVGltZW91dCAoVGltZW91dEluTWljcm9zZWNvbmRzLA0KPiAmQ3B1RGF0YS0+ Q3VycmVudFRpbWUpOw0KPiA+ICAgIENwdURhdGEtPlRvdGFsVGltZSAgICA9IDA7DQo+ID4NCj4g PiAtICBXYWtlVXBBUCAoQ3B1TXBEYXRhLCBGQUxTRSwgUHJvY2Vzc29yTnVtYmVyLCBQcm9jZWR1 cmUsDQo+ID4gUHJvY2VkdXJlQXJndW1lbnQpOw0KPiA+ICsgIFdha2VVcEFQIChDcHVNcERhdGEs IEZBTFNFLCBQcm9jZXNzb3JOdW1iZXIsIFByb2NlZHVyZSwNCj4gPiArIFByb2NlZHVyZUFyZ3Vt ZW50LCBUUlVFKTsNCj4gPg0KPiA+ICAgIC8vDQo+ID4gICAgLy8gSWYgV2FpdEV2ZW50IGlzIE5V TEwsIGV4ZWN1dGUgaW4gYmxvY2tpbmcgbW9kZS4NCj4gPiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5oDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJ bml0TGliL01wTGliLmgNCj4gPiBpbmRleCA1MDAyYjdlOWMwLi5mZTdhOTE3ZTQ5IDEwMDY0NA0K PiA+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvTXBMaWIuaA0KPiA+ICsrKyBi L1VlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvTXBMaWIuaA0KPiA+IEBAIC0zNzMsNiArMzcz LDcgQEAgR2V0TW9kZVRyYW5zaXRpb25CdWZmZXIgKA0KPiA+ICAgIEBwYXJhbVtpbl0gUHJvY2Vz c29yTnVtYmVyICAgIFRoZSBoYW5kbGUgbnVtYmVyIG9mIHNwZWNpZmllZA0KPiBwcm9jZXNzb3IN Cj4gPiAgICBAcGFyYW1baW5dIFByb2NlZHVyZSAgICAgICAgICBUaGUgZnVuY3Rpb24gdG8gYmUg aW52b2tlZCBieSBBUA0KPiA+ICAgIEBwYXJhbVtpbl0gUHJvY2VkdXJlQXJndW1lbnQgIFRoZSBh cmd1bWVudCB0byBiZSBwYXNzZWQgaW50byBBUA0KPiA+IGZ1bmN0aW9uDQo+ID4gKyAgQHBhcmFt W2luXSBXYWtlVXBEaXNhYmxlZEFwcyAgV2hldGhlciBuZWVkIHRvIHdha2UgdXAgZGlzYWJsZWQg QVBzDQo+IGluIGJyb2FkY2FzdCBtb2RlLg0KPiA+ICAqKi8NCj4gPiAgVk9JRA0KPiA+ICBXYWtl VXBBUCAoDQo+ID4gQEAgLTM4MCw3ICszODEsOCBAQCBXYWtlVXBBUCAoDQo+ID4gICAgSU4gQk9P TEVBTiAgICAgICAgICAgICAgICAgICBCcm9hZGNhc3QsDQo+ID4gICAgSU4gVUlOVE4gICAgICAg ICAgICAgICAgICAgICBQcm9jZXNzb3JOdW1iZXIsDQo+ID4gICAgSU4gRUZJX0FQX1BST0NFRFVS RSAgICAgICAgICBQcm9jZWR1cmUsICAgICAgICAgICAgICBPUFRJT05BTA0KPiA+IC0gIElOIFZP SUQgICAgICAgICAgICAgICAgICAgICAgKlByb2NlZHVyZUFyZ3VtZW50ICAgICAgT1BUSU9OQUwN Cj4gPiArICBJTiBWT0lEICAgICAgICAgICAgICAgICAgICAgICpQcm9jZWR1cmVBcmd1bWVudCwg ICAgIE9QVElPTkFMDQo+ID4gKyAgSU4gQk9PTEVBTiAgICAgICAgICAgICAgICAgICBXYWtlVXBE aXNhYmxlZEFwcyAgICAgICBPUFRJT05BTA0KPiA+ICAgICk7DQo+ID4NCj4gPiAgLyoqDQo+ID4N Cg0K