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=ruiyu.ni@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 C46772112872A for ; Wed, 12 Sep 2018 19:39:04 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Sep 2018 19:39:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,367,1531810800"; d="scan'208";a="91259884" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga002.jf.intel.com with ESMTP; 12 Sep 2018 19:39:03 -0700 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 12 Sep 2018 19:39:03 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 12 Sep 2018 19:39:02 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.143]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.16]) with mapi id 14.03.0319.002; Thu, 13 Sep 2018 10:39:00 +0800 From: "Ni, Ruiyu" To: "Duran, Leo" , Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Dong, Eric" Thread-Topic: [PATCH] UefiCpuPkg/MtrrLib: Add flag to skip disabling MTRRs prior to MTRR change. Thread-Index: AQHUSqvDMSJ/zVwAq0CHHmeHqKuqrqTsaTaAgAAGUICAARAXMA== Date: Thu, 13 Sep 2018 02:39:00 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5BE07168@SHSMSX104.ccr.corp.intel.com> References: <1536680498-6554-1-git-send-email-leo.duran@amd.com> <1536680498-6554-2-git-send-email-leo.duran@amd.com> <17c6d6d1-2655-fe06-a8b9-f48141bfb0d7@redhat.com> <610eaa55-c87b-5e0c-4f87-5c1e79ffc5ba@redhat.com> <12abd990-3b08-9159-e7a9-ffd7eb7282b3@redhat.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] UefiCpuPkg/MtrrLib: Add flag to skip disabling MTRRs prior to MTRR change. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Sep 2018 02:39:05 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGVvLA0KU29ycnkgSSB3YXMgaW4gbGVhdmUgeWVzdGVyZGF5IHNvIGRpZG4ndCBzZWUgdGhlIG1h aWwuDQpXaGljaCBNU1JzIGFyZSBzaGFyZWQ/IE9ubHkgdGhlIE1TUl9JQTMyX01UUlJfREVGX1RZ UEVfUkVHSVNURVI/DQpPciBhbGwgdGhlIE1TUnMgdGhhdCBjb25maWd1cmVzIHRoZSBDUFUgTVRS UiBzZXR0aW5nPw0KDQpJIGFsc28gYWdyZWUgd2l0aCBMYXN6bG8ncyBjb21tZW50cyB0byBmaXgg dGhlIGNhbGxlciBpZiBhbGwgTVNScyByZWxhdGluZyB0byBNVFJSIGFyZSBzaGFyZWQuDQpUaGF0 IHdpbGwgYmUgdG8gZml4IE1wSW5pdExpYiBhbmQgQ3B1RHhlIGRyaXZlci4NCg0KVGhhbmtzL1Jh eQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IER1cmFuLCBMZW8gPGxl by5kdXJhbkBhbWQuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDEzLCAyMDE4IDI6 MjIgQU0NCj4gVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0KPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IE5p LCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIXSBVZWZp Q3B1UGtnL010cnJMaWI6IEFkZCBmbGFnIHRvIHNraXAgZGlzYWJsaW5nIE1UUlJzDQo+IHByaW9y IHRvIE1UUlIgY2hhbmdlLg0KPiANCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gRnJvbTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPiBTZW50 OiBXZWRuZXNkYXksIFNlcHRlbWJlciAxMiwgMjAxOCAxMjo1OSBQTQ0KPiA+IFRvOiBEdXJhbiwg TGVvIDxsZW8uZHVyYW5AYW1kLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gQ2M6 IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT47IFJ1aXl1IE5pIDxydWl5dS5uaUBpbnRl bC5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtQQVRDSF0gVWVmaUNwdVBrZy9NdHJyTGliOiBBZGQg ZmxhZyB0byBza2lwIGRpc2FibGluZw0KPiA+IE1UUlJzIHByaW9yIHRvIE1UUlIgY2hhbmdlLg0K PiA+DQo+ID4gT24gMDkvMTIvMTggMTc6MTcsIER1cmFuLCBMZW8gd3JvdGU6DQo+ID4gPiBMYXN6 bG8sIGV0IGFsLA0KPiA+ID4NCj4gPiA+IFBlcmhhcHMgaXQgd291bGQgYmUgYmVzdCBpZiBJIHBy b3ZpZGUgYW4gZXhhbXBsZSBvZiB0aGUgcHJvYmxlbSBJJ20NCj4gPiA+IHRyeWluZw0KPiA+IHRv IHNvbHZlLCBhbmQgcGVyaGFwcyB3ZSBtYXkgY2hpbWUgaW4gd2l0aCBzdWdnZXN0aW9ucy4NCj4g PiA+DQo+ID4gPiBBZ2FpbiwNCj4gPiA+IFRoZSBmdW5kYW1lbnRhbCBpc3N1ZSBoYXMgdG8gZG8g d2l0aCBzaGFyZWQgTVRSUiBjb250cm9sIGJ5IHNldCBvZg0KPiA+IHRocmVhZHMgd2l0aGluIGEg Y29yZSB3aXRoIFNNVCBlbmFibGVkLg0KPiA+ID4gU28gaWRlYWxseSBvbmx5IG9uZSB0aHJlYWQg KHRoZSBmaXJzdCB0aHJlYWQgdGhhdCB3YWtlcyB1cCkgZnJvbSBhDQo+ID4gPiBzZXQgd291bGQN Cj4gPiBjb25maWd1cmUgdGhlIE1TUiwgYW5kIG90aGVyIHRocmVhZHMgaW4gdGhlIHNldCB3b3Vs ZCBub3QgbmVlZCB0by4NCj4gPiA+DQo+ID4gPiBUaGUgcHJvYmxlbSB3aXRoIHRoZSBleGlzdGlu ZyBjb2RlIGlzIHRoYXQgb25jZSB0aGUgZmlyc3QgdGhyZWFkDQo+ID4gPiBjb25maWd1cmVzDQo+ ID4gdGhlIE1TUiwgYW5vdGhlciB0aHJlYWQgaW4gdGhlIHNldCBmb2xsb3dzIGFuZCBjbGVhcnMg dGhlIEVOQUJMRSBiaXQNCj4gPiBpbiBNdHJyTGliUHJlTXRyckNoYW5nZSgpLg0KPiA+DQo+ID4g UmlnaHQsIEkgdGhpbmsgSSB1bmRlcnN0b29kIHRoYXQuIFdoYXQgSSBkb24ndCB1bmRlcnN0YW5k IGlzOg0KPiA+DQo+ID4gPiAoQmFzaWNhbGx5LCB0aGUgc2Vjb25kIHRocmVhZCBwdWxscyB0aGUg cnVnIGZyb20gdW5kZXIgdGhlIGZpcnN0IHRocmVhZCkuDQo+ID4NCj4gPiB3aHkgaXQgaXMgYSBw cm9ibGVtIHRoYXQsIHdoZW4gdGhlIHNlY29uZCB0aHJlYWQgd2FrZXMgdXAgb24gdGhlIHNhbWUN Cj4gPiBjb3JlLCBpdCByZXBlYXRzIHRoZSB3aG9sZSBNVFJSIGNvbmZpZ3VyYXRpb24/IEl0IGRv ZXMgY2xlYXIgdGhlDQo+ID4gRW5hYmxlIGJpdCB0ZW1wb3JhcmlseSwgeWVzLCBidXQgaW4gdGhl IGVuZCBpdCByZS1zdG9yZXMgdGhlIGV4YWN0DQo+ID4gc2FtZSBNVFJSIGNvbmZpZy4gQW5kIHdo aWxlIHRoaXMgaGFwcGVucywgdGhlIGZpcnN0IHRocmVhZCBvbiB0aGUgY29yZQ0KPiA+IChhbHJl YWR5IHBhc3QgdGhlIE1UUlINCj4gPiBzZXR1cCkgc2hvdWxkbid0IGJlIGRvaW5nIGFueXRoaW5n IGF0IGFsbCwgYmVjYXVzZSBhbGwgbG9naWNhbCBDUFVzDQo+ID4gc2hvdWxkIHNpdCB0aWdodCB1 bnRpbCBhbGwgb2YgdGhlbSBjb21wbGV0ZSB0aGUgTVRSUiBzZXR1cC4NCj4gPg0KPiA+DQo+ID4g Tm93LCBvZiBjb3Vyc2UsIGlmIHRoZSBNVFJSIHNldHVwIHJ1bnMgaW4gcGFyYWxsZWwgb24gYWxs IGxvZ2ljYWwgQ1BVcw0KPiA+IChJIGNhbid0IHJlY2FsbCBvZmYtaGFuZCB3aGV0aGVyIHRoZXkg YXJlIHN0YXJ0ZWQgdXAgaW4gcGFyYWxsZWwgb3INCj4gPiBvbmUtYnktb25lIC0tIEkgdGhpbmsg aXQncyAiZnJlZSBmb3IgYWxsIiB0aG91Z2gpLCBhbmQgb24gdmFyaW91cyBDUFUNCj4gPiBtb2Rl bHMgdGhpcyBtb2RpZmllcyByZXNvdXJjZXMgdGhhdCBhcmUgc2hhcmVkLCB0aGVuIHdlIGhhdmUg YSBtb3JlDQo+ID4gc2VyaW91cyBwcm9ibGVtLiBCZWNhdXNlIHRoZW4gdHdvIHRocmVhZHMgb24g dGhlIHNhbWUgY29yZSBtYXkgbW9kaWZ5DQo+ID4gcGFydHMgb2YgdGhlIHNoYXJlZCBNVFJSIHNl dHRpbmdzICpvdGhlciogdGhhbiBqdXN0IHRoZSBFbmFibGUgYml0Lg0KPiA+DQo+IA0KPiBJIGFs c28gdGhpbmsgaXQncyBhICdmcmVlIGZvciBhbGwiDQo+IChNeSB1bmRlcnN0YW5kaW5nIGlzIHRo YXQgdGhlIEJTUCBpc3N1ZXMgYSBicm9hZGNhc3QgdG8gdGhlIEFQcy4pDQo+IA0KPiBQZXJoYXBz IGlmIHRoZSBzZWNvbmQgdGhyZWFkIHdhaXRzIGZvciB0aGUgZmlyc3QgdGhyZWFkIHRvIGNvbXBs ZXRlIGFuZCBnZXQNCj4gc2FmZWx5IHBhcmtlZCwgdGhlIGZpcnN0IHRocmVhZCBtYXkgYmUgdGhl biBpbW11bmUgdG8gdGhlIHN1YnNlcXVlbnQNCj4gY2hhbmdlcy4NCj4gDQo+ID4gUGVyaGFwcyB0 aGlzIHNob3VsZCBiZSBzb2x2ZWQgYnkgYWRkaW5nIHN1aXRhYmxlIGV4Y2x1c2lvbiwgc28gdGhh dA0KPiA+IG9ubHkgb25lIHRocmVhZCBvbiBlYWNoIGNvcmUgY29uZmlndXJlIHRoZSBNVFJSLiBJ biBvdGhlciB3b3JkcywNCj4gPiBjb250aW51ZSB0byBwZXJtaXQgZnVsbCBwYXJhbGxlbGlzbSBi ZXR3ZWVuIGNvcmVzLCBidXQgcmVzdHJpY3QgZWFjaA0KPiA+IGNvcmUgdG8ganVzdCBvbmUgbG9n aWNhbCB0aHJlYWQsIHdoZW4gZG9pbmcgdGhlIE1UUlIgY2hhbmdlcy4NCj4gPg0KPiANCj4gWWVz LCBhZ3JlZWQhDQo+IFRoYXQgd291bGQgYmUgaWRlYWwgZm9yIHRoZSBjYXNlIHdoZXJlIHRocmVh ZHMgaW4gYSBjb3JlIHNoYXJlIE1UUlINCj4gcmVzb3VyY2VzLg0KPiANCj4gVW5mb3J0dW5hdGVs eSwgTXRyclNldEFsbE10cnJzKCkgZ2V0cyBjYWxsZWQgZnJvbSBxdWl0ZSBhIGZldyBwbGFjZXMs IHNvDQo+IG9yY2hlc3RyYXRpbmcgdGhlICJvbmx5IG9uZSBsb2dpY2FsIHRocmVhZCIgbG9naWMg bWF5IGJlIHF1aXRlIGNvbXBsaWNhdGVkLg0KPiBBZ2FpbiwgSSBwcmVzdW1lIHRoYXQgd2hpbGUg dGhlIHdvcmtlciB0aHJlYWQgbWFrZXMgdGhlIE1UUlIgY2hhbmdlcywgdGhlDQo+IG90aGVyIHRo cmVhZHMgbXVzdCBiZSBzYWZlbHkgcGFya2VkIGFuZCBpbW11bmUgdG8gdG9nZ2xpbmcgb2YgdGhl IEVuYWJsZQ0KPiBiaXQuDQo+IA0KPiA+IEkgd29uZGVyIGlmIHRoZSByaWdodCBhcHByb2FjaCBp cyB0byBkaXNjb3ZlciB0aGUgQ1BVIHRvcG9sb2d5DQo+ID4gdXAtZnJvbnQgKGJhc2VkIG9uIHRo ZSBpbml0aWFsIEFQSUMgSURzIHBlcmhhcHM/KSwgYW5kIHRvIG1vZGlmeSB0aGUNCj4gPiBNVFJS IHNldHVwIGNhbGxiYWNrIGZvciBTdGFydHVwQWxsQVBzIC0tIG9uIHRoZSBhZmZlY3RlZCBDUFUg bW9kZWxzIC0tDQo+ID4gc28gdGhhdCB0aGUgY2FsbGJhY2sgcmV0dXJucyB3aXRob3V0IGRvaW5n IGFueXRoaW5nIG9uIHRoZSBpbml0aWFsbHkNCj4gImJsYWNrbGlzdGVkIg0KPiA+IHRocmVhZHMu DQo+ID4NCj4gPiBCeSB0aGUgdGltZSB3ZSBhcmUgaW4gTXRyckxpYiwgaXQncyBsaWtlbHkgdG9v IGxhdGUgdG8gY2F0Y2ggdGhlDQo+ID4gbm9uLWZhdm9yZWQgdGhlYWRzLg0KPiA+DQo+ID4gKEkn ZCB2ZXJ5IG11Y2ggbGlrZSBvdGhlcnMgdG8gY2hpbWUgaW4gdG9vLikNCj4gPg0KPiA+IFRoYW5r cw0KPiA+IExhc3psbw0KPiA+DQo+ID4gPg0KPiA+ID4gSSBob3BlIHRoYXQgaGVscHMgZXhwbGFp biB3aGF0IEknbSBhZnRlci4NCj4gPiA+IExlby4NCj4gPiA+DQo+ID4gPj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQu Y29tPg0KPiA+ID4+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDEyLCAyMDE4IDQ6NTUgQU0N Cj4gPiA+PiBUbzogRHVyYW4sIExlbyA8bGVvLmR1cmFuQGFtZC5jb20+OyBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZw0KPiA+ID4+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBS dWl5dSBOaSA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiA+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hd IFVlZmlDcHVQa2cvTXRyckxpYjogQWRkIGZsYWcgdG8gc2tpcCBkaXNhYmxpbmcNCj4gPiA+PiBN VFJScyBwcmlvciB0byBNVFJSIGNoYW5nZS4NCj4gPiA+Pg0KPiA+ID4+IE9uIDA5LzExLzE4IDIx OjQ3LCBEdXJhbiwgTGVvIHdyb3RlOg0KPiA+ID4+Pg0KPiA+ID4+Pg0KPiA+ID4+Pj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4+IEZyb206IExhc3psbyBFcnNlayA8bGVyc2Vr QHJlZGhhdC5jb20+DQo+ID4gPj4+PiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTEsIDIwMTgg MTo1MCBQTQ0KPiA+ID4+Pj4gVG86IER1cmFuLCBMZW8gPGxlby5kdXJhbkBhbWQuY29tPjsgZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+Pj4+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0Bp bnRlbC5jb20+OyBSdWl5dSBOaQ0KPiA+ID4+Pj4gPHJ1aXl1Lm5pQGludGVsLmNvbT4NCj4gPiA+ Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIFVlZmlDcHVQa2cvTXRyckxpYjogQWRkIGZsYWcgdG8g c2tpcA0KPiA+ID4+Pj4gZGlzYWJsaW5nIE1UUlJzIHByaW9yIHRvIE1UUlIgY2hhbmdlLg0KPiA+ ID4+Pj4NCj4gPiA+Pj4+IE9uIDA5LzExLzE4IDE3OjQxLCBMZW8gRHVyYW4gd3JvdGU6DQo+ID4g Pj4+Pj4gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gZGlzYWJsZSBNVFJScyBwcmlvciB0byBh biBNVFJSIGNoYW5nZS4NCj4gPiA+Pj4+PiBIb3dldmVyLCBvbiBTTVQgcGxhdGZvcm1zIHdpdGgg c2hhcmVkIENQVSByZXNvdXJjZXMgaXQgbWF5IGJlDQo+ID4gPj4+Pj4gZGVzaXJhYmxlIHRvIHNr aXAgdGhlIGRlZmF1bHQgYmVoYXZpb3IsIGFuZCBsZWF2ZSB0aGUgY3VycmVudA0KPiA+ID4+Pj4+ IHN0YXRlIG9mIHRoZQ0KPiA+ID4+Pj4gRW5hYmxlIGJpdC4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4gPj4+Pj4gQ2M6IExhc3ps byBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gPj4+Pj4gQ29udHJpYnV0ZWQtdW5kZXI6 IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+ID4+Pj4+IFNpZ25lZC1v ZmYtYnk6IExlbyBEdXJhbiA8bGVvLmR1cmFuQGFtZC5jb20+DQo+ID4gPj4+Pj4gLS0tDQo+ID4g Pj4+Pj4gIFVlZmlDcHVQa2cvTGlicmFyeS9NdHJyTGliL010cnJMaWIuYyAgIHwgMTAgKysrKysr Ky0tLQ0KPiA+ID4+Pj4+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXRyckxpYi9NdHJyTGliLmluZiB8 ICAzICsrKw0KPiA+ID4+Pj4+ICBVZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjICAgICAgICAgICAg ICB8ICA3ICsrKysrKysNCj4gPiA+Pj4+PiAgMyBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQ0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gZGlmZiAtLWdpdCBhL1Vl ZmlDcHVQa2cvTGlicmFyeS9NdHJyTGliL010cnJMaWIuYw0KPiA+ID4+Pj4+IGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L010cnJMaWIvTXRyckxpYi5jDQo+ID4gPj4+Pj4gaW5kZXggZGZjZTlhOS4uYmFm OWEwZiAxMDA2NDQNCj4gPiA+Pj4+PiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXRyckxpYi9N dHJyTGliLmMNCj4gPiA+Pj4+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvTXRyckxpYi9NdHJy TGliLmMNCj4gPiA+Pj4+PiBAQCAtNiw2ICs2LDggQEANCj4gPiA+Pj4+PiAgICAgIGV4Y2VwdCBm b3IgTXRyclNldEFsbE10cnJzKCkgd2hpY2ggaXMgdXNlZCB0byBzeW5jIEJTUCdzDQo+ID4gPj4+ Pj4gTVRSUiBzZXR0aW5nIHRvDQo+ID4gPj4+PiBBUHMuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiAg ICBDb3B5cmlnaHQgKGMpIDIwMDggLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cw0KPiA+ID4+Pj4+IHJlc2VydmVkLjxCUj4NCj4gPiA+Pj4+PiArICBDb3B5cmlnaHQgKGMpIDIw MTgsIEFNRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4+Pj4+ICsNCj4gPiA+ Pj4+PiAgICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4g Pj4+Pj4gICAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMg YW5kDQo+ID4gPj4+Pj4gY29uZGl0aW9ucyBvZiB0aGUNCj4gPiA+Pj4+IEJTRCBMaWNlbnNlDQo+ ID4gPj4+Pj4gICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVs bCB0ZXh0IG9mIHRoZQ0KPiA+ID4+Pj4+IGxpY2Vuc2UgbWF5IGJlIGZvdW5kIGF0IEBAIC0zMTAs OSArMzEyLDExIEBADQo+ID4gTXRyckxpYlByZU10cnJDaGFuZ2UNCj4gPiA+PiAoDQo+ID4gPj4+ Pj4gICAgLy8NCj4gPiA+Pj4+PiAgICAvLyBEaXNhYmxlIE1UUlJzDQo+ID4gPj4+Pj4gICAgLy8N Cj4gPiA+Pj4+PiAtICBEZWZUeXBlLlVpbnQ2NCA9IEFzbVJlYWRNc3I2NCAoTVNSX0lBMzJfTVRS Ul9ERUZfVFlQRSk7DQo+ID4gPj4+Pj4gLSAgRGVmVHlwZS5CaXRzLkUgPSAwOw0KPiA+ID4+Pj4+ IC0gIEFzbVdyaXRlTXNyNjQgKE1TUl9JQTMyX01UUlJfREVGX1RZUEUsIERlZlR5cGUuVWludDY0 KTsNCj4gPiA+Pj4+PiArICBpZiAoIVBjZEdldEJvb2wgKFBjZFNraXBEaXNhYmxlTXRycnNPblBy ZU10cnJDaGFuZ2UpKSB7DQo+ID4gPj4+Pj4gKyAgICBEZWZUeXBlLlVpbnQ2NCA9IEFzbVJlYWRN c3I2NCAoTVNSX0lBMzJfTVRSUl9ERUZfVFlQRSk7DQo+ID4gPj4+Pj4gKyAgICBEZWZUeXBlLkJp dHMuRSA9IDA7DQo+ID4gPj4+Pj4gKyAgICBBc21Xcml0ZU1zcjY0IChNU1JfSUEzMl9NVFJSX0RF Rl9UWVBFLA0KPiBEZWZUeXBlLlVpbnQ2NCk7ICB9DQo+ID4gPj4+Pj4gIH0NCj4gPiA+Pj4+Pg0K PiA+ID4+Pj4+ICAvKioNCj4gPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5 L010cnJMaWIvTXRyckxpYi5pbmYNCj4gPiA+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L010cnJM aWIvTXRyckxpYi5pbmYNCj4gPiA+Pj4+PiBpbmRleCBhOTdjYzYxLi4wNmYzM2U4IDEwMDY0NA0K PiA+ID4+Pj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9NdHJyTGliL010cnJMaWIuaW5mDQo+ ID4gPj4+Pj4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L010cnJMaWIvTXRyckxpYi5pbmYNCj4g PiA+Pj4+PiBAQCAtMiw2ICsyLDggQEANCj4gPiA+Pj4+PiAgIyAgTVRSUiBsaWJyYXJ5IHByb3Zp ZGVzIEFQSXMgZm9yIE1UUlIgb3BlcmF0aW9uLg0KPiA+ID4+Pj4+ICAjDQo+ID4gPj4+Pj4gICMg IENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz DQo+ID4gPj4+Pj4gcmVzZXJ2ZWQuPEJSPg0KPiA+ID4+Pj4+ICsjICBDb3B5cmlnaHQgKGMpIDIw MTgsIEFNRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiAjDQo+ID4gPj4+Pj4gICMgIFRo aXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgICMgIGFyZSBsaWNlbnNl ZA0KPiA+ID4+Pj4+IGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRp dGlvbnMgb2YgdGhlDQo+ID4gPj4+PiBCU0QgTGljZW5zZQ0KPiA+ID4+Pj4+ICAjICB3aGljaCBh Y2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlDQo+ID4g Pj4+Pj4gbGljZW5zZSBtYXkgYmUNCj4gPiA+Pj4+IGZvdW5kIGF0DQo+ID4gPj4+Pj4gQEAgLTQz LDQgKzQ1LDUgQEANCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ICBbUGNkXQ0KPiA+ID4+Pj4+DQo+ID4g Pj4gZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RDcHVOdW1iZXJPZlJlc2VydmVkVmFyaWFi bGVNdHJycw0KPiA+ID4+Pj4gIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ID4gPj4+Pj4gKw0KPiA+ IGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkU2tpcERpc2FibGVNdHJyc09uUHJlTXRyckNo YW5nZQ0KPiA+ID4+Pj4gIyMgQ09OU1VNRVMNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IGRpZmYgLS1n aXQgYS9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjDQo+ID4gYi9VZWZpQ3B1UGtnL1VlZmlDcHVQ a2cuZGVjDQo+ID4gPj4+Pj4gaW5kZXggNjlkNzc3YS4uNjRlYzc2MyAxMDA2NDQNCj4gPiA+Pj4+ PiAtLS0gYS9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjDQo+ID4gPj4+Pj4gKysrIGIvVWVmaUNw dVBrZy9VZWZpQ3B1UGtnLmRlYw0KPiA+ID4+Pj4+IEBAIC0yLDYgKzIsNyBAQA0KPiA+ID4+Pj4+ ICAjIFRoaXMgUGFja2FnZSBwcm92aWRlcyBVRUZJIGNvbXBhdGlibGUgQ1BVIG1vZHVsZXMgYW5k IGxpYnJhcmllcy4NCj4gPiA+Pj4+PiAgIw0KPiA+ID4+Pj4+ICAjIENvcHlyaWdodCAoYykgMjAw NyAtIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gPj4+Pj4gcmVzZXJ2 ZWQuPEJSPg0KPiA+ID4+Pj4+ICsjIENvcHlyaWdodCAoYykgMjAxOCwgQU1EIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ID4gPj4+Pj4gICMNCj4gPiA+Pj4+PiAgIyBUaGlzIHByb2dy YW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBsaWNlbnNlZCBhbmQNCj4gPiA+ Pj4+PiBtYWRlDQo+ID4gPj4+PiBhdmFpbGFibGUgdW5kZXINCj4gPiA+Pj4+PiAgIyB0aGUgdGVy bXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIHdoaWNoIGFjY29tcGFuaWVzDQo+ ID4gPj4+Pj4gdGhpcw0KPiA+ID4+Pj4gZGlzdHJpYnV0aW9uLg0KPiA+ID4+Pj4+IEBAIC0yNzMs NiArMjc0LDEyIEBADQo+ID4gPj4+Pj4gICAgIyBAUHJvbXB0IEN1cnJlbnQgYm9vdCBpcyBhIHBv d2VyLW9uIHJlc2V0Lg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+DQo+ID4NCj4gZ1VlZmlD cHVQa2dUb2tlblNwYWNlR3VpZC5QY2RJc1Bvd2VyT25SZXNldHxGQUxTRXxCT09MRUFOfDB4MDAw MA0KPiA+ID4+Pj4gMDAxQg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gKyAgIyMgSW5kaWNhdGVzIGRl c2lyZWQgYmVoYXZpb3IgZm9yIGRpc2FibGluZyBNVFJScyBwcmlvciB0bw0KPiA+ID4+Pj4+ICsg TVRSUg0KPiA+ID4+Pj4gY2hhbmdlLjxCUj48QlI+DQo+ID4gPj4+Pj4gKyAgIyAgIFRSVUUgIC0g U2tpcCBkaXNhYmxpbmcgTVRSUnMgcHJpb3IgdG8gTVRSUiBjaGFuZ2UuPEJSPg0KPiA+ID4+Pj4+ ICsgICMgICBGQUxTRSAtIERpc2FibGUgTVRSUnMgcHJpb3IgdG8gTVRSUiBjaGFuZ2UuPEJSPg0K PiA+ID4+Pj4+ICsgICMgQFByb21wdCBEZXNpcmVkIGJlaGF2aW9yIGZvciBkaXNhYmxpbmcgTVRS UnMgcHJpb3IgdG8gTVRSUg0KPiA+ID4+IGNoYW5nZS4NCj4gPiA+Pj4+PiArDQo+ID4gPj4+Pg0K PiA+ID4+DQo+ID4NCj4gZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RTa2lwRGlzYWJsZU10 cnJzT25QcmVNdHJyQ2hhbmdlfEZBTFNFDQo+ID4gPj4+PiB8Qk9PTEVBTnwweDAwMDAwMDFFDQo+ ID4gPj4+Pj4gKw0KPiA+ID4+Pj4+ICBbUGNkc0R5bmFtaWMsIFBjZHNEeW5hbWljRXhdDQo+ID4g Pj4+Pj4gICAgIyMgQ29udGFpbnMgdGhlIHBvaW50ZXIgdG8gYSBDUFUgUzMgZGF0YSBidWZmZXIg b2Ygc3RydWN0dXJlDQo+ID4gPj4+PiBBQ1BJX0NQVV9EQVRBLg0KPiA+ID4+Pj4+ICAgICMgQFBy b21wdCBUaGUgcG9pbnRlciB0byBhIENQVSBTMyBkYXRhIGJ1ZmZlci4NCj4gPiA+Pj4+Pg0KPiA+ ID4+Pj4NCj4gPiA+Pj4+IFJlY2VudGx5LCBSYXkgaGFzIHdyaXR0ZW4gc2V2ZXJhbCAmIHNpZ25p ZmljYW50IHBhdGNoZXMgZm9yDQo+ID4gPj4+PiBNdHJyTGliOyBJJ20gYWRkaW5nIGhpbS4NCj4g PiA+Pj4+DQo+ID4gPj4+PiBJIGRvbid0IHVuZGVyc3RhbmQgdGhlIG1vdGl2YXRpb24gYmVoaW5k IHRoaXMgcGF0Y2guIEFzIGZhciBhcyBJDQo+ID4gPj4+PiByZW1lbWJlciAod2hpY2ggaXMgYWRt aXR0ZWRseSAicXVpdGUgdmFndWVseSIpLCB0aGUgU0RNIHJlcXVpcmVzDQo+ID4gPj4+PiBhbGwg bG9naWNhbCBwcm9jZXNzb3JzIHRvIHByb2dyYW0gdGhlaXIgTVRSUnMgaWRlbnRpY2FsbHkgaW4g cGFyYWxsZWwuDQo+ID4gPj4+PiBUaGF0IGlzLCB0aGVyZSBzaG91bGQgYmUgYSBzdGFydCBsaW5l IHdoZXJlIGFsbCB0aGUgQ1BVcyB3YWl0IGZvcg0KPiA+ID4+Pj4gZWFjaCBvdGhlciwgdGhlbiB0 aGV5IGFsbCBzZXQgdXAgdGhlaXIgTVRSUnMsIHRoZW4gdGhleSBhbGwgd2FpdA0KPiA+ID4+Pj4g dW50aWwgdGhleSBhbGwgZmluaXNoLCB0aGVuIHRoZXkgYWxsIGdvIHRoZWlyIG1lcnJ5IHdheXMu IEFJVUkNCj4gPiA+Pj4+IHRoZSBDUFUgTVAgUFBJIGFuZCBwcm90b2NvbCBpbXBsZW1lbnQgdGhp cyBhbHJlYWR5LiBJIGRvbid0DQo+ID4gPj4+PiB1bmRlcnN0YW5kIGluIHdoYXQgc2l0dWF0aW9u IHlvdSdkIGhhdmUgb25lIHRocmVhZCBvZiBhIGNvcmUNCj4gPiA+Pj4+IG1hbmlwdWxhdGluZyBN VFJSLCB3aXRoIHRoZSBzaWJsaW5nIHRocmVhZCAqbm90KiBtYW5pcHVsYXRpbmcNCj4gPiA+Pj4+ IE1UUlIgKGkuZS4sIGRvaW5nIHNvbWV0aGluZyBlbHNlKS4gVGhhdCBkb2Vzbid0IHNlZW0gdG8g bWF0Y2gNCj4gPiA+Pj4+IHdoYXQgdGhlIFNETSBkaWN0YXRlcyAob3IsIHdlbGwsIHdoYXQgbXkg bWVtb3JpZXMgb2YgdGhlIFNETQ0KPiBhcmUgOikgKS4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBJIHNl ZSB0aGF0IHRoZSBkZWZhdWx0IGJlaGF2aW9yIGRvZXNuJ3QgY2hhbmdlLCBhbmQgSSdtIG5vdA0K PiA+ID4+Pj4gYWdhaW5zdCB0aGUgcGF0Y2g7IEkganVzdCBzdXNwZWN0IHRoYXQsIGZvciBpbnRy b2R1Y2luZyBhIG5ldw0KPiA+ID4+Pj4gUENELCBtb3JlIGNvbmNyZXRlIC8gcHJhY3RpY2FsIGp1 c3RpZmljYXRpb24gY291bGQgYmUgbmVlZGVkLg0KPiA+ID4+Pj4NCj4gPiA+Pj4NCj4gPiA+Pj4g SW4gb3VyIGNhc2UgbXVsdGlwbGUgcHJvY2Vzc29ycyAodGhyZWFkcykgc2hhcmUgTVRUUiBzZXR0 aW5ncywNCj4gPiA+Pj4gaGVuY2UgdGhlDQo+ID4gPj4gRW5hYmxlIGJpdCBpcyBzaGFyZWQuDQo+ ID4gPj4+DQo+ID4gPj4+PiBNb3JlIHF1ZXN0aW9uczoNCj4gPiA+Pj4+DQo+ID4gPj4+PiAtIERv bid0IHlvdSBuZWVkIGEgc2ltaWxhciAoc3ltbWV0cmljKSBjaGFuZ2UgaW4NCj4gPiA+Pj4+IE10 cnJMaWJQb3N0TXRyckNoYW5nZSgpPyBJZiBub3QsIHdoeSBub3Q/IENhbiB5b3UgYWRkIHRoYXQg dG8gdGhlDQo+ID4gPj4+PiBjb21taXQgbWVzc2FnZT8NCj4gPiA+Pj4NCj4gPiA+Pj4gTm8gbmVl ZC4gVGhlICJQb3N0IiBjb2RlIGp1c3QgcmVzdG9yZXMuDQo+ID4gPj4+IFN1cmUsIEkgY2FuIGFk ZCBhIGNvbW1lbnQuDQo+ID4gPj4NCj4gPiA+PiBTdXJlLCBmdW5jdGlvbmFsbHkgaXQgZG9lc24n dCBodXJ0IEkgZ3Vlc3MsIGJ1dCB5b3UgY291bGQgYXZvaWQgYQ0KPiA+ID4+IFJNVyB0byBNU1Jf SUEzMl9NVFJSX0RFRl9UWVBFLg0KPiA+ID4+DQo+ID4gPj4gT3IgaXMgaXQgbmVjZXNzYXJ5IHRv IHJld3JpdGUgdGhlIEZFIGJpdD8gKEl0IGRvZXNuJ3QgbG9vaw0KPiA+ID4+IG5lY2Vzc2FyeSB0 byBtZSwgYnV0IEkgY291bGQgYmUgd3JvbmcuKQ0KPiA+ID4+DQo+ID4gPj4gT3IgbWF5YmUgeW91 IG5lZWQgdG8gd3JpdGUgdG8gdGhlIE1TUiB0aGUgKmZpcnN0KiB0aW1lIHRoYXQNCj4gPiA+PiBN dHJyTGliUG9zdE10cnJDaGFuZ2UoKSBpcyBjYWxsZWQuLi4NCj4gPiA+Pg0KPiA+ID4+IEFueXdh eSwgSSdtIE9LIHdpdGggdGhlIHBhdGNoLCBJJ2xsIGxldCBFcmljIGFuZCBSYXkgZGVjaWRlLg0K PiA+ID4+DQo+ID4gPj4gQWNrZWQtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+ DQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4+IFRoYW5rcw0KPiA+ID4+IExhc3psbw0KDQo=