From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: marc.w.chen@intel.com) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by groups.io with SMTP; Tue, 06 Aug 2019 02:02:32 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Aug 2019 01:56:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,353,1559545200"; d="scan'208";a="176571913" Received: from kmsmsx156.gar.corp.intel.com ([172.21.138.133]) by orsmga003.jf.intel.com with ESMTP; 06 Aug 2019 01:56:42 -0700 Received: from pgsmsx108.gar.corp.intel.com ([169.254.8.190]) by KMSMSX156.gar.corp.intel.com ([169.254.1.127]) with mapi id 14.03.0439.000; Tue, 6 Aug 2019 16:56:41 +0800 From: "Marc W Chen" To: "devel@edk2.groups.io" , "lersek@redhat.com" , "Ni, Ray" , "Gao, Liming" CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH] MdePkg: Add MmAccess and MmControl definition. Thread-Topic: [edk2-devel] [PATCH] MdePkg: Add MmAccess and MmControl definition. Thread-Index: AQHVRcW+GtoEOJCyfEeiP4XpSc+qX6bl/g2wgAABaiCAAAEfIP//jrCAgACIAdCAAIb4AIAHP2sA Date: Tue, 6 Aug 2019 08:56:41 +0000 Message-ID: References: <20190729042556.17692-1-marc.w.chen@intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4C7400@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C267BB4@SHSMSX104.ccr.corp.intel.com> <211b95ba-703d-4561-c2bc-891e02d0ec2b@redhat.com> In-Reply-To: <211b95ba-703d-4561-c2bc-891e02d0ec2b@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjVmYzRiNGMtYTJmMS00MGRiLWFlNWMtNzY2ZmFiZmMyYzRlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoicFFsRDVFMEloUzhwSW5iTnVoNlh1ZXV3NTJYK01Ydk96dUU5ck1sajVyR0YySDZ2OXc3dE5TUFk4Q3d4YlBmNSJ9 x-originating-ip: [172.30.20.205] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nIGFuZCBSYXkNCg0KRG8geW91IGFsc28gYWdyZWU/DQoNClRoYW5rcywNCk1hcmMN Cg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBMYXN6bG8NCj4gRXJzZWsN Cj4gU2VudDogRnJpZGF5LCBBdWd1c3QgMiwgMjAxOSAxMDoxNCBBTQ0KPiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IENoZW4sIE1hcmMgVyA8bWFyYy53LmNoZW5AaW50ZWwuY29tPjsgTmksIFJh eQ0KPiA8cmF5Lm5pQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNv bT4NCj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4N Cj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZVBrZzogQWRkIE1tQWNjZXNz IGFuZCBNbUNvbnRyb2wNCj4gZGVmaW5pdGlvbi4NCj4gDQo+IE9uIDA4LzAxLzE5IDEyOjE1LCBN YXJjIFcgQ2hlbiB3cm90ZToNCj4gPiBZZXMsIG15IHB1cnBvc2UgaXMgdG8gYXZvaWQgcGxhdGZv cm0gY29kZSB1cGRhdGUgaWYgdGhlIHBhY2thZ2UgaXMgYWxsb3dlZA0KPiB0byB1c2UgTWRlTW9k dWxlUGtnIGxpa2UgT3ZtZlBrZy4NCj4gPiBGb3IgdGhvc2UgcGFja2FnZXMgdGhhdCBjYW5ub3Qg ZGVwZW5kIG9uIE1kZU1vZHVsZVBrZyBtdXN0IGNoYW5nZSB0bw0KPiB1c2UgbmV3IGRlZmluaXRp b24uDQo+IA0KPiBBZ3JlZWQuDQo+IA0KPiBUaGFua3MhDQo+IExhc3psbw0KPiANCj4gPj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogTmksIFJheQ0KPiA+PiBTZW50OiBU aHVyc2RheSwgQXVndXN0IDEsIDIwMTkgNjowNCBQTQ0KPiA+PiBUbzogQ2hlbiwgTWFyYyBXIDxt YXJjLncuY2hlbkBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA+PiA8bGltaW5nLmdhb0BpbnRl bC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+PiBDYzogS2lubmV5LCBNaWNoYWVsIEQg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2 ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kDQo+IE1tQ29udHJvbA0KPiA+PiBk ZWZpbml0aW9uLg0KPiA+Pg0KPiA+PiBNYXJjLA0KPiA+PiBJcyB0aGUgcHVycG9zZSB0byBhdm9p ZCBwbGF0Zm9ybSBjb2RlIHVwZGF0ZSB3aXRoIHRoZSB3cmFwcGVyIGhlYWRlcg0KPiBmaWxlIGlu DQo+ID4+IE1kZU1vZHVsZVBrZz8NCj4gPj4gQ2VydGFpbiBwbGF0Zm9ybXMgdGhleSBtYXkgcmVx dWlyZSB0byBub3QgZGVwZW5kIG9uIE1kZU1vZHVsZVBrZyBidXQNCj4gPj4ganVzdCBkZXBlbmQg b24gTWRlUGtnLg0KPiA+PiBIYXZpbmcgU21tQWNjZXNzLmggaW4gTWRlTW9kdWxlUGtnIGRvZXNu J3QgaGVscC4NCj4gPj4NCj4gPj4gSXQgYWxzbyBicmluZyBjb25mdXNpbmcuDQo+ID4+DQo+ID4+ IFRoYW5rcywNCj4gPj4gUmF5DQo+ID4+DQo+ID4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+Pj4gRnJvbTogQ2hlbiwgTWFyYyBXDQo+ID4+PiBTZW50OiBUaHVyc2RheSwgQXVndXN0 IDEsIDIwMTkgNDo1MyBQTQ0KPiA+Pj4gVG86IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVs LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+PiBDYzogS2lubmV5LCBNaWNoYWVsIEQg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA+Pj4gPHJheS5uaUBpbnRl bC5jb20+DQo+ID4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBB ZGQgTW1BY2Nlc3MgYW5kDQo+IE1tQ29udHJvbA0KPiA+Pj4gZGVmaW5pdGlvbi4NCj4gPj4+DQo+ ID4+PiBIaSBMaW1pbmcNCj4gPj4+DQo+ID4+PiBBbm90aGVyIHRob3VnaHQsIGRvIHlvdSB0aGlu ayBpdCBpcyBvayB0byBrZWVwIFNtbUFjY2Vzcy5oIGluDQo+ID4+PiBNZGVNb2R1bGVQa2c/IFdl IGNhbiB1c2UgI2RlZmluZSBhbmQgdHlwZWRlZiB0byBjb252ZXJ0IE1tQWNjZXNzDQo+IHRvDQo+ ID4+PiBTbW1BY2Nlc3MsIGp1c3QgbGlrZSBjdXJyZW50IFNtbUFjY2VzcyBQcm90b2NvbCBpbiBN ZGVQa2cuDQo+ID4+Pg0KPiA+Pj4gVGhhbmtzLA0KPiA+Pj4gTWFyYw0KPiA+Pj4NCj4gPj4+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IENoZW4sIE1hcmMgVw0KPiA+ Pj4+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMSwgMjAxOSA0OjQ4IFBNDQo+ID4+Pj4gVG86IEdh bywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ ID4+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47 IE5pLCBSYXkNCj4gPj4+PiA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSRTog W2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kDQo+ID4+PiBNbUNv bnRyb2wNCj4gPj4+PiBkZWZpbml0aW9uLg0KPiA+Pj4+DQo+ID4+Pj4gSGkgTGltaW5nDQo+ID4+ Pj4NCj4gPj4+PiBTaW5jZSB0aGVyZSBhcmUgbXVsdGlwbGUgcGFja2FnZXMgYXJlIHN0aWxsIHVz aW5nIFNtbUFjY2Vzcy5oLCB3ZSBuZWVkDQo+ID4+Pj4gdG8gY2hhbmdlIGFsbCBwYWNrYWdlcyB0 byB1c2UgTW1BY2Nlc3MuaCBpbnN0ZWFkIG9mIFNtbUFjY2Vzcy5oIGZpcnN0LA0KPiA+Pj4+IHRo ZW4gY2xlYW4gdXAgU21tQWNjZXNzLmggZnJvbSBNZGVNb2R1bGVQa2cgd2lsbCBiZSB0aGUgbGFz dCBzdGVwLg0KPiA+Pj4+IEJlbG93IGFyZSB0aGUgcGFja2FnZXMgdGhhdCBoYXMgImluY2x1ZGUg PFBwaS9TbW1BY2Nlc3MuaD4iIGZvciB5b3VyDQo+ID4+Pj4gcmVmZXJlbmNlLg0KPiA+Pj4+ICoJ RWRrMiByZXBvOg0KPiA+Pj4+IG8JTWRlTW9kdWxlUGtnDQo+ID4+Pj4gbwlPdm1mUGtnDQo+ID4+ Pj4gbwlVZWZpQ3B1UGtnDQo+ID4+Pj4gKglFZGsyUGxhdGZvcm0gcmVwbzoNCj4gPj4+PiBvCU1p blBsYXRmb3JtUGtnDQo+ID4+Pj4gbwlRdWFya1NvY1BrZw0KPiA+Pj4+DQo+ID4+Pj4gVGhhbmtz LA0KPiA+Pj4+IE1hcmMNCj4gPj4+Pg0KPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+Pj4+PiBGcm9tOiBHYW8sIExpbWluZw0KPiA+Pj4+PiBTZW50OiBUaHVyc2RheSwgQXVn dXN0IDEsIDIwMTkgNDo0MiBQTQ0KPiA+Pj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IENo ZW4sIE1hcmMgVyA8bWFyYy53LmNoZW5AaW50ZWwuY29tPg0KPiA+Pj4+PiBDYzogS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA+Pj4+PiA8 cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+Pj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFU Q0hdIE1kZVBrZzogQWRkIE1tQWNjZXNzIGFuZA0KPiA+Pj4gTW1Db250cm9sDQo+ID4+Pj4+IGRl ZmluaXRpb24uDQo+ID4+Pj4+DQo+ID4+Pj4+IE1hcmM6DQo+ID4+Pj4+ICAgVGhlIGNoYW5nZSBp cyBnb29kLiBSZXZpZXdlZC1ieTogTGltaW5nIEdhbw0KPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+ DQo+ID4+Pj4+DQo+ID4+Pj4+ICAgQmVzaWRlcywgSSBzZWUgQlogYWxzbyBtZW50aW9uIHRvIHJl bW92ZSB0aGUgb25lIGluIE1kZU1vZHVsZVBrZy4NCj4gPj4+Pj4gSGF2ZSB5b3UgdGhlIGZvbGxv d2luZyBwYXRjaGVzIGZvciB0aGUgY2hhbmdlIGluIE1kZU1vZHVsZVBrZz8NCj4gPj4+Pj4NCj4g Pj4+Pj4gVGhhbmtzDQo+ID4+Pj4+IExpbWluZw0KPiA+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPj4+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIFttYWlsdG86ZGV2 ZWxAZWRrMi5ncm91cHMuaW9dIE9uDQo+ID4+IEJlaGFsZg0KPiA+Pj4+Pj4gT2YgTWFyYyBXIENo ZW4NCj4gPj4+Pj4+IFNlbnQ6IE1vbmRheSwgSnVseSAyOSwgMjAxOSAxMjoyNiBQTQ0KPiA+Pj4+ Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+Pj4+PiBDYzogS2lubmV5LCBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPj4+Pj4+IDxs aW1pbmcuZ2FvQGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4+Pj4+ PiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVQa2c6IEFkZCBNbUFjY2VzcyBhbmQN Cj4gPj4gTW1Db250cm9sDQo+ID4+Pj4+PiBkZWZpbml0aW9uLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ IEVGSSBNbUFjY2VzcyBhbmQgTW1Db250cm9sIFBQSXMgYXJlIGRlZmluZWQgaW4gdGhlIFBJIDEu NQ0KPiA+Pj4gc3BlY2lmaWNhdGlvbi4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBDYzogTWljaGFlbCBE IEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4+Pj4+PiBDYzogTGltaW5n IEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4+Pj4+PiBDYzogUmF5IE5pIDxyYXkubmlA aW50ZWwuY29tPg0KPiA+Pj4+Pj4gUmVmOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcv c2hvd19idWcuY2dpP2lkPTIwMjMNCj4gPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE1hcmMgVyBDaGVu IDxtYXJjLncuY2hlbkBpbnRlbC5jb20+DQo+ID4+Pj4+PiAtLS0NCj4gPj4+Pj4+IE1kZVBrZy9J bmNsdWRlL1BwaS9NbUFjY2Vzcy5oICB8IDE1NQ0KPiA+Pj4+Pj4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gPj4+Pj4+IE1kZVBrZy9JbmNsdWRlL1BwaS9NbUNv bnRyb2wuaCB8ICA5MA0KPiA+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4+Pj4+PiBN ZGVQa2cvTWRlUGtnLmRlYyAgICAgICAgICAgICAgfCAgIDYgKysNCj4gPj4+Pj4+IDMgZmlsZXMg Y2hhbmdlZCwgMjUxIGluc2VydGlvbnMoKykgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4+Pj4+PiBN ZGVQa2cvSW5jbHVkZS9QcGkvTW1BY2Nlc3MuaCBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4+ IE1kZVBrZy9JbmNsdWRlL1BwaS9NbUNvbnRyb2wuaA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IGRpZmYg LS1naXQgYS9NZGVQa2cvSW5jbHVkZS9QcGkvTW1BY2Nlc3MuaA0KPiA+Pj4+Pj4gYi9NZGVQa2cv SW5jbHVkZS9QcGkvTW1BY2Nlc3MuaCBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0KPiA+Pj4+ Pj4gMDAwMDAwMDAwMC4uNjM2ZTcyODhhMA0KPiA+Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPiA+Pj4+ Pj4gKysrIGIvTWRlUGtnL0luY2x1ZGUvUHBpL01tQWNjZXNzLmgNCj4gPj4+Pj4+IEBAIC0wLDAg KzEsMTU1IEBADQo+ID4+Pj4+PiArLyoqIEBmaWxlDQo+ID4+Pj4+PiArICBFRkkgTU0gQWNjZXNz IFBQSSBkZWZpbml0aW9uLg0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gKyAgVGhpcyBQUEkgaXMgdXNl ZCB0byBjb250cm9sIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBNTVJBTSBvbiB0aGUNCj4gPj4+IHBs YXRmb3JtLg0KPiA+Pj4+Pj4gKyAgVGhlIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSBhYnN0cmFjdHMg dGhlIGxvY2F0aW9uIGFuZA0KPiA+Pj4+Pj4gKyBjaGFyYWN0ZXJpc3RpY3MNCj4gPj4+PiBvZg0K PiA+Pj4+Pj4gTU1SQU0uIFRoZQ0KPiA+Pj4+Pj4gKyAgcHJpbmNpcGFsIGZ1bmN0aW9uYWxpdHkg Zm91bmQgaW4gdGhlIG1lbW9yeSBjb250cm9sbGVyIGluY2x1ZGVzDQo+ID4+Pj4+PiArIHRoZQ0K PiA+Pj4+PiBmb2xsb3dpbmc6DQo+ID4+Pj4+PiArICAtIEV4cG9zaW5nIHRoZSBNTVJBTSB0byBh bGwgbm9uLU1NIGFnZW50cywgb3IgdGhlICJvcGVuIiBzdGF0ZQ0KPiA+Pj4+Pj4gKyAgLSBTaHJv dWRpbmcgdGhlIE1NUkFNIHRvIGFsbCBidXQgdGhlIE1NIGFnZW50cywgb3IgdGhlICJjbG9zZWQi DQo+ID4+Pj4+PiArIHN0YXRlDQo+ID4+Pj4+PiArICAtIFByZXNlcnZpbmcgdGhlIHN5c3RlbSBp bnRlZ3JpdHksIG9yICJsb2NraW5nIiB0aGUgTU1SQU0sIHN1Y2gNCj4gPj4+Pj4+ICsgdGhhdA0K PiA+Pj4+IHRoZQ0KPiA+Pj4+Pj4gc2V0dGluZ3MgY2Fubm90IGJlDQo+ID4+Pj4+PiArICAgIHBl cnR1cmJlZCBieSBlaXRoZXIgYm9vdCBzZXJ2aWNlIG9yIHJ1bnRpbWUgYWdlbnRzDQo+ID4+Pj4+ PiArDQo+ID4+Pj4+PiArICBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4+Pj4+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiArICBAcGFyIFJl dmlzaW9uIFJlZmVyZW5jZToNCj4gPj4+Pj4+ICsgIFRoaXMgUFBJIGlzIGludHJvZHVjZWQgaW4g UEkgVmVyc2lvbiAxLjUuDQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiArKiovDQo+ID4+Pj4+PiArDQo+ ID4+Pj4+PiArI2lmbmRlZiBfTU1fQUNDRVNTX1BQSV9IXw0KPiA+Pj4+Pj4gKyNkZWZpbmUgX01N X0FDQ0VTU19QUElfSF8NCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsjZGVmaW5lIEVGSV9QRUlfTU1f QUNDRVNTX1BQSV9HVUlEIFwNCj4gPj4+Pj4+ICsgIHsgMHgyNjhmMzNhOSwgMHhjY2NkLCAweDQ4 YmUsIHsgMHg4OCwgMHgxNywgMHg4NiwgMHg1LCAweDNhLA0KPiA+Pj4+Pj4gKzB4YzMsIDB4MmUs DQo+ID4+Pj4+PiAweGQ2IH19DQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiArdHlwZWRlZiBzdHJ1Y3Qg X0VGSV9QRUlfTU1fQUNDRVNTX1BQSSAgRUZJX1BFSV9NTV9BQ0NFU1NfUFBJOw0KPiA+Pj4+Pj4g Kw0KPiA+Pj4+Pj4gKy8qKg0KPiA+Pj4+Pj4gKyAgT3BlbnMgdGhlIE1NUkFNIGFyZWEgdG8gYmUg YWNjZXNzaWJsZSBieSBhIFBFSU0uDQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiArICBUaGlzIGZ1bmN0 aW9uICJvcGVucyIgTU1SQU0gc28gdGhhdCBpdCBpcyB2aXNpYmxlIHdoaWxlIG5vdA0KPiA+Pj4+ Pj4gKyBpbnNpZGUgb2YNCj4gPj4+PiBNTS4NCj4gPj4+Pj4+IFRoZSBmdW5jdGlvbiBzaG91bGQN Cj4gPj4+Pj4+ICsgIHJldHVybiBFRklfVU5TVVBQT1JURUQgaWYgdGhlIGhhcmR3YXJlIGRvZXMg bm90IHN1cHBvcnQgaGlkaW5nDQo+ID4+Pj4+PiArIG9mDQo+ID4+Pj4+PiBNTVJBTS4gVGhlIGZ1 bmN0aW9uDQo+ID4+Pj4+PiArICBzaG91bGQgcmV0dXJuIEVGSV9ERVZJQ0VfRVJST1IgaWYgdGhl IE1NUkFNIGNvbmZpZ3VyYXRpb24gaXMNCj4gPj4+IGxvY2tlZC4NCj4gPj4+Pj4+ICsNCj4gPj4+ Pj4+ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBpbmRpcmVjdCBwb2ludGVy IHRvIHRoZSBQRUkgU2VydmljZXMNCj4gPj4+IFRhYmxlDQo+ID4+Pj4+PiBwdWJsaXNoZWQgYnkg dGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+Pj4+Pj4gKyAgQHBhcmFtICBUaGlzICAgICAgICAgICAg ICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19QUEkgaW5zdGFuY2UuDQo+ID4+Pj4+PiArICBA cGFyYW0gIERlc2NyaXB0b3JJbmRleCAgICAgICAgVGhlIHJlZ2lvbiBvZiBNTVJBTSB0byBPcGVu Lg0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAg IFRoZSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuDQo+ID4+Pj4+PiArICBAcmV0dmFsIEVGSV9V TlNVUFBPUlRFRCAgICAgICAgVGhlIHN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0DQo+ID4+IG9wZW5p bmcNCj4gPj4+Pj4gYW5kDQo+ID4+Pj4+PiBjbG9zaW5nIG9mIE1NUkFNLg0KPiA+Pj4+Pj4gKyAg QHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgIE1NUkFNIGNhbm5vdCBiZSBvcGVuZWQsDQo+ ID4+IHBlcmhhcHMNCj4gPj4+Pj4+IGJlY2F1c2UgaXQgaXMgbG9ja2VkLg0KPiA+Pj4+Pj4gKw0K PiA+Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4gK3R5cGVkZWYNCj4gPj4+Pj4+ICtFRklfU1RBVFVTDQo+ ID4+Pj4+PiArKEVGSUFQSSAqRUZJX1BFSV9NTV9PUEVOKSgNCj4gPj4+Pj4+ICsgIElOIEVGSV9Q RUlfU0VSVklDRVMgICAgICAgICAgICAgICAgKipQZWlTZXJ2aWNlcywNCj4gPj4+Pj4+ICsgIElO IEVGSV9QRUlfTU1fQUNDRVNTX1BQSSAgICAgICAgICAgKlRoaXMsDQo+ID4+Pj4+PiArICBJTiBV SU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0b3JJbmRleA0KPiA+Pj4+Pj4g KyAgKTsNCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsvKioNCj4gPj4+Pj4+ICsgIEluaGliaXRzIGFj Y2VzcyB0byB0aGUgTU1SQU0uDQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiArICBUaGlzIGZ1bmN0aW9u ICJjbG9zZXMiIE1NUkFNIHNvIHRoYXQgaXQgaXMgbm90IHZpc2libGUgd2hpbGUNCj4gPj4+Pj4+ ICsgb3V0c2lkZSBvZg0KPiA+Pj4+PiBNTS4NCj4gPj4+Pj4+IFRoZSBmdW5jdGlvbiBzaG91bGQN Cj4gPj4+Pj4+ICsgIHJldHVybiBFRklfVU5TVVBQT1JURUQgaWYgdGhlIGhhcmR3YXJlIGRvZXMg bm90IHN1cHBvcnQgaGlkaW5nDQo+ID4+Pj4+PiArIG9mDQo+ID4+Pj4+PiBNTVJBTS4NCj4gPj4+ Pj4+ICsNCj4gPj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBpbmRp cmVjdCBwb2ludGVyIHRvIHRoZSBQRUkgU2VydmljZXMNCj4gPj4+IFRhYmxlDQo+ID4+Pj4+PiBw dWJsaXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+Pj4+Pj4gKyAgQHBhcmFtICBUaGlz ICAgICAgICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19QUEkgaW5zdGFuY2UuDQo+ ID4+Pj4+PiArICBAcGFyYW0gIERlc2NyaXB0b3JJbmRleCAgICAgICAgVGhlIHJlZ2lvbiBvZiBN TVJBTSB0byBDbG9zZS4NCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX1NVQ0NF U1MgICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLg0KPiA+Pj4+Pj4gKyAg QHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAgICAgIFRoZSBzeXN0ZW0gZG9lcyBub3Qgc3VwcG9y dA0KPiA+PiBvcGVuaW5nDQo+ID4+Pj4+IGFuZA0KPiA+Pj4+Pj4gY2xvc2luZyBvZiBNTVJBTS4N Cj4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgICBNTVJBTSBjYW5ub3Qg YmUgY2xvc2VkLg0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4gK3R5cGVkZWYN Cj4gPj4+Pj4+ICtFRklfU1RBVFVTDQo+ID4+Pj4+PiArKEVGSUFQSSAqRUZJX1BFSV9NTV9DTE9T RSkoDQo+ID4+Pj4+PiArICBJTiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAgICAgICoqUGVp U2VydmljZXMsDQo+ID4+Pj4+PiArICBJTiBFRklfUEVJX01NX0FDQ0VTU19QUEkgICAgICAgICAg ICpUaGlzLA0KPiA+Pj4+Pj4gKyAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICBE ZXNjcmlwdG9ySW5kZXgNCj4gPj4+Pj4+ICsgICk7DQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiArLyoq DQo+ID4+Pj4+PiArICBUaGlzIGZ1bmN0aW9uIHByb2hpYml0cyBhY2Nlc3MgdG8gdGhlIE1NUkFN IHJlZ2lvbi4gVGhpcw0KPiA+Pj4+Pj4gK2Z1bmN0aW9uIGlzDQo+ID4+Pj4+IHVzdWFsbHkNCj4g Pj4+Pj4+IGltcGxlbWVudGVkIHN1Y2gNCj4gPj4+Pj4+ICsgIHRoYXQgaXQgaXMgYSB3cml0ZS1v bmNlIG9wZXJhdGlvbi4NCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2Vydmlj ZXMgICAgICAgICAgICBBbiBpbmRpcmVjdCBwb2ludGVyIHRvIHRoZSBQRUkgU2VydmljZXMNCj4g Pj4+IFRhYmxlDQo+ID4+Pj4+PiBwdWJsaXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+ Pj4+Pj4gKyAgQHBhcmFtICBUaGlzICAgICAgICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FD Q0VTU19QUEkgaW5zdGFuY2UuDQo+ID4+Pj4+PiArICBAcGFyYW0gIERlc2NyaXB0b3JJbmRleCAg ICAgICAgVGhlIHJlZ2lvbiBvZiBNTVJBTSB0byBMb2NrLg0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4g KyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSBvcGVyYXRpb24gd2FzIHN1Y2Nl c3NmdWwuDQo+ID4+Pj4+PiArICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgVGhlIHN5 c3RlbSBkb2VzIG5vdCBzdXBwb3J0DQo+ID4+IG9wZW5pbmcNCj4gPj4+Pj4gYW5kDQo+ID4+Pj4+ PiBjbG9zaW5nIG9mIE1NUkFNLg0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4g K3R5cGVkZWYNCj4gPj4+Pj4+ICtFRklfU1RBVFVTDQo+ID4+Pj4+PiArKEVGSUFQSSAqRUZJX1BF SV9NTV9MT0NLKSgNCj4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAgICAg ICAgKipQZWlTZXJ2aWNlcywNCj4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSAg ICAgICAgICAgKlRoaXMsDQo+ID4+Pj4+PiArICBJTiBVSU5UTiAgICAgICAgICAgICAgICAgICAg ICAgICAgIERlc2NyaXB0b3JJbmRleA0KPiA+Pj4+Pj4gKyAgKTsNCj4gPj4+Pj4+ICsNCj4gPj4+ Pj4+ICsvKioNCj4gPj4+Pj4+ICsgIFF1ZXJpZXMgdGhlIG1lbW9yeSBjb250cm9sbGVyIGZvciB0 aGUgcG9zc2libGUgcmVnaW9ucyB0aGF0IHdpbGwNCj4gPj4+Pj4+ICtzdXBwb3J0DQo+ID4+Pj4+ PiBNTVJBTS4NCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsgIFRoaXMgZnVuY3Rpb24gZGVzY3JpYmVz IHRoZSBNTVJBTSByZWdpb25zLg0KPiA+Pj4+Pj4gKyAgVGhpcyBkYXRhIHN0cnVjdHVyZSBmb3Jt cyB0aGUgY29udHJhY3QgYmV0d2VlbiB0aGUgTU1fQUNDRVNTDQo+ID4+IGFuZA0KPiA+Pj4+Pj4g TU1fSVBMIGRyaXZlcnMuIFRoZXJlIGlzIGFuDQo+ID4+Pj4+PiArICBhbWJpZ3VpdHkgd2hlbiBh bnkgTU1SQU0gcmVnaW9uIGlzIHJlbWFwcGVkLiBGb3IgZXhhbXBsZSwgb24NCj4gPj4+PiBzb21l DQo+ID4+Pj4+PiBjaGlwc2V0cywgc29tZSBNTVJBTQ0KPiA+Pj4+Pj4gKyAgcmVnaW9ucyBjYW4g YmUgaW5pdGlhbGl6ZWQgYXQgb25lIHBoeXNpY2FsIGFkZHJlc3MgYnV0IGlzIGxhdGVyDQo+ID4+ Pj4+PiArIGFjY2Vzc2VkIGF0DQo+ID4+Pj4+PiBhbm90aGVyIHByb2Nlc3NvciBhZGRyZXNzLg0K PiA+Pj4+Pj4gKyAgVGhlcmUgaXMgY3VycmVudGx5IG5vIHdheSBmb3IgdGhlIE1NIElQTCBkcml2 ZXIgdG8ga25vdyB0aGF0IGl0DQo+ID4+Pj4+PiArIG11c3QgdXNlDQo+ID4+Pj4+PiB0d28gZGlm ZmVyZW50IGFkZHJlc3Nlcw0KPiA+Pj4+Pj4gKyAgZGVwZW5kaW5nIG9uIHdoYXQgaXQgaXMgdHJ5 aW5nIHRvIGRvLiBBcyBhIHJlc3VsdCwgaW5pdGlhbA0KPiA+Pj4+Pj4gKyBjb25maWd1cmF0aW9u IGFuZA0KPiA+Pj4+Pj4gbG9hZGluZyBjYW4gdXNlIHRoZQ0KPiA+Pj4+Pj4gKyAgcGh5c2ljYWwg YWRkcmVzcyBQaHlzaWNhbFN0YXJ0IHdoaWxlIE1NUkFNIGlzIG9wZW4uIEhvd2V2ZXIsDQo+ID4+ Pj4+PiArIG9uY2UNCj4gPj4+PiB0aGUNCj4gPj4+Pj4+IHJlZ2lvbiBoYXMgYmVlbg0KPiA+Pj4+ Pj4gKyAgY2xvc2VkIGFuZCBuZWVkcyB0byBiZSBhY2Nlc3NlZCBieSBhZ2VudHMgaW4gTU0sIHRo ZSBDcHVTdGFydA0KPiA+Pj4+Pj4gKyBhZGRyZXNzDQo+ID4+Pj4+PiBtdXN0IGJlIHVzZWQuDQo+ ID4+Pj4+PiArICBUaGlzIFBQSSBwdWJsaXNoZXMgdGhlIGF2YWlsYWJsZSBtZW1vcnkgdGhhdCB0 aGUgY2hpcHNldCBjYW4NCj4gPj4+Pj4+ICsgc2hyb3VkIGZvcg0KPiA+Pj4+PiB0aGUNCj4gPj4+ Pj4+IHVzZSBvZiBpbnN0YWxsaW5nIGNvZGUuDQo+ID4+Pj4+PiArICBUaGVzZSByZWdpb25zIHNl cnZlIHRoZSBkdWFsIHB1cnBvc2Ugb2YgZGVzY3JpYmluZyB3aGljaCByZWdpb25zDQo+ID4+Pj4+ PiArIGhhdmUNCj4gPj4+Pj4+IGJlZW4gb3BlbiwgY2xvc2VkLCBvciBsb2NrZWQuDQo+ID4+Pj4+ PiArICBJbiBhZGRpdGlvbiwgdGhlc2UgcmVnaW9ucyBtYXkgaW5jbHVkZSBvdmVybGFwcGluZyBt ZW1vcnkNCj4gPj4+Pj4+ICsgcmFuZ2VzLA0KPiA+Pj4+Pj4gZGVwZW5kaW5nIG9uIHRoZSBjaGlw c2V0DQo+ID4+Pj4+PiArICBpbXBsZW1lbnRhdGlvbi4gVGhlIGxhdHRlciBtaWdodCBpbmNsdWRl IGEgY2hpcHNldCB0aGF0IHN1cHBvcnRzDQo+ID4+Pj4+PiArIFQtU0VHLA0KPiA+Pj4+Pj4gd2hl cmUgbWVtb3J5IG5lYXIgdGhlIHRvcA0KPiA+Pj4+Pj4gKyAgb2YgdGhlIHBoeXNpY2FsIERSQU0g Y2FuIGJlIGFsbG9jYXRlZCBmb3IgTU1SQU0gdG9vLg0KPiA+Pj4+Pj4gKyAgVGhlIGtleSB0aGlu ZyB0byBub3RlIGlzIHRoYXQgdGhlIHJlZ2lvbnMgdGhhdCBhcmUgZGVzY3JpYmVkIGJ5DQo+ID4+ Pj4+PiArIHRoZSBQUEkNCj4gPj4+PiBhcmUNCj4gPj4+Pj4gYQ0KPiA+Pj4+Pj4gc3Vic2V0IG9m IHRoZSBjYXBhYmlsaXRpZXMNCj4gPj4+Pj4+ICsgIG9mIHRoZSBoYXJkd2FyZS4NCj4gPj4+Pj4+ ICsNCj4gPj4+Pj4+ICsgIEBwYXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBpbmRpcmVj dCBwb2ludGVyIHRvIHRoZSBQRUkgU2VydmljZXMNCj4gPj4+IFRhYmxlDQo+ID4+Pj4+PiBwdWJs aXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPiA+Pj4+Pj4gKyAgQHBhcmFtICBUaGlzICAg ICAgICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19QUEkgaW5zdGFuY2UuDQo+ID4+ Pj4+PiArICBAcGFyYW0gIE1tcmFtTWFwU2l6ZSAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZSBz aXplLCBpbiBieXRlcywgb2YNCj4gPj4gdGhlDQo+ID4+Pj4+PiBNbXJhbU1lbW9yeU1hcCBidWZm ZXIuIE9uIGlucHV0LCB0aGlzIHZhbHVlIGlzDQo+ID4+Pj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciB0aGF0IGlzDQo+ID4+Pj4+PiAr IGFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLiBPbg0KPiA+Pj4+Pj4gb3V0cHV0LCBpdCBpcyB0aGUg c2l6ZSBvZiB0aGUNCj4gPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi dWZmZXIgdGhhdCB3YXMgcmV0dXJuZWQgYnkgdGhlDQo+ID4+Pj4+PiArIGZpcm13YXJlIGlmIHRo ZSBidWZmZXINCj4gPj4+Pj4gd2FzDQo+ID4+Pj4+PiBsYXJnZSBlbm91Z2gsIG9yLCBpZiB0aGUN Cj4gPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIgd2FzIHRv byBzbWFsbCwgdGhlIHNpemUgb2YNCj4gPj4+Pj4+ICsgdGhlIGJ1ZmZlciB0aGF0IGlzDQo+ID4+ Pj4+IG5lZWRlZCB0bw0KPiA+Pj4+Pj4gY29udGFpbiB0aGUgbWFwLg0KPiA+Pj4+Pj4gKyAgQHBh cmFtIE1tcmFtTWFwICAgICAgICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUgYnVmZmVyIGluIHdo aWNoDQo+ID4+PiBmaXJtd2FyZQ0KPiA+Pj4+Pj4gcGxhY2VzIHRoZSBjdXJyZW50IG1lbW9yeSBt YXAuIFRoZSBtYXAgaXMNCj4gPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhbiBhcnJheSBvZiBFRklfTU1SQU1fREVTQ1JJUFRPUnMNCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgY2hpcHNldCBzdXBwb3J0ZWQg dGhlIGdpdmVuDQo+ID4+IHJlc291cmNlLg0KPiA+Pj4+Pj4gKyAgQHJldHZhbCBFRklfQlVGRkVS X1RPT19TTUFMTCAgIFRoZSBNbXJhbU1hcCBwYXJhbWV0ZXINCj4gd2FzDQo+ID4+PiB0b28NCj4g Pj4+Pj4+IHNtYWxsLiBUaGUgY3VycmVudA0KPiA+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJ1ZmZlciBzaXplIG5lZWRlZCB0byBob2xkIHRoZQ0KPiA+Pj4+Pj4gKyBt ZW1vcnkgbWFwIGlzDQo+ID4+Pj4gcmV0dXJuZWQNCj4gPj4+Pj4gaW4NCj4gPj4+Pj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNbXJhbU1hcFNpemUuDQo+ID4+Pj4+PiArDQo+ ID4+Pj4+PiArKiovDQo+ID4+Pj4+PiArdHlwZWRlZg0KPiA+Pj4+Pj4gK0VGSV9TVEFUVVMNCj4g Pj4+Pj4+ICsoRUZJQVBJICpFRklfUEVJX01NX0NBUEFCSUxJVElFUykoDQo+ID4+Pj4+PiArICBJ TiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAgICAgICoqUGVpU2VydmljZXMsDQo+ID4+Pj4+ PiArICBJTiBFRklfUEVJX01NX0FDQ0VTU19QUEkgICAgICAgICAgICpUaGlzLA0KPiA+Pj4+Pj4g KyAgSU4gT1VUIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAqTW1yYW1NYXBTaXplLA0KPiA+ Pj4+Pj4gKyAgSU4gT1VUIEVGSV9NTVJBTV9ERVNDUklQVE9SICAgICAgICAqTW1yYW1NYXANCj4g Pj4+Pj4+ICsgICk7DQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiArLy8vDQo+ID4+Pj4+PiArLy8vICBF RkkgTU0gQWNjZXNzIFBQSSBpcyB1c2VkIHRvIGNvbnRyb2wgdGhlIHZpc2liaWxpdHkgb2YgdGhl DQo+ID4+Pj4+PiArTU1SQU0gb24NCj4gPj4+Pj4gdGhlDQo+ID4+Pj4+PiBwbGF0Zm9ybS4NCj4g Pj4+Pj4+ICsvLy8gIEl0IGFic3RyYWN0cyB0aGUgbG9jYXRpb24gYW5kIGNoYXJhY3RlcmlzdGlj cyBvZiBNTVJBTS4gVGhlDQo+ID4+Pj4+PiArcGxhdGZvcm0NCj4gPj4+Pj4+IHNob3VsZCByZXBv cnQNCj4gPj4+Pj4+ICsvLy8gIGFsbCBNTVJBTSB2aWEgRUZJX1BFSV9NTV9BQ0NFU1NfUFBJLiBU aGUgZXhwZWN0YXRpb24gaXMNCj4gdGhhdA0KPiA+Pj4+Pj4gK3RoZQ0KPiA+Pj4+Pj4gbm9ydGgg YnJpZGdlIG9yDQo+ID4+Pj4+PiArLy8vICBtZW1vcnkgY29udHJvbGxlciB3b3VsZCBwdWJsaXNo IHRoaXMgUFBJLg0KPiA+Pj4+Pj4gKy8vLw0KPiA+Pj4+Pj4gK3N0cnVjdCBfRUZJX1BFSV9NTV9B Q0NFU1NfUFBJIHsNCj4gPj4+Pj4+ICsgIEVGSV9QRUlfTU1fT1BFTiAgICAgICAgICBPcGVuOw0K PiA+Pj4+Pj4gKyAgRUZJX1BFSV9NTV9DTE9TRSAgICAgICAgIENsb3NlOw0KPiA+Pj4+Pj4gKyAg RUZJX1BFSV9NTV9MT0NLICAgICAgICAgIExvY2s7DQo+ID4+Pj4+PiArICBFRklfUEVJX01NX0NB UEFCSUxJVElFUyAgR2V0Q2FwYWJpbGl0aWVzOw0KPiA+Pj4+Pj4gKyAgQk9PTEVBTiAgICAgICAg ICAgICAgICAgIExvY2tTdGF0ZTsNCj4gPj4+Pj4+ICsgIEJPT0xFQU4gICAgICAgICAgICAgICAg ICBPcGVuU3RhdGU7DQo+ID4+Pj4+PiArfTsNCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICtleHRlcm4g RUZJX0dVSUQgZ0VmaVBlaU1tQWNjZXNzUHBpR3VpZDsNCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsj ZW5kaWYNCj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9QcGkvTW1Db250cm9s LmgNCj4gPj4+Pj4+IGIvTWRlUGtnL0luY2x1ZGUvUHBpL01tQ29udHJvbC5oIG5ldyBmaWxlIG1v ZGUgMTAwNjQ0IGluZGV4DQo+ID4+Pj4+PiAwMDAwMDAwMDAwLi45ODNlZDk1Y2Q1DQo+ID4+Pj4+ PiAtLS0gL2Rldi9udWxsDQo+ID4+Pj4+PiArKysgYi9NZGVQa2cvSW5jbHVkZS9QcGkvTW1Db250 cm9sLmgNCj4gPj4+Pj4+IEBAIC0wLDAgKzEsOTAgQEANCj4gPj4+Pj4+ICsvKiogQGZpbGUNCj4g Pj4+Pj4+ICsgIEVGSSBNTSBDb250cm9sIFBQSSBkZWZpbml0aW9uLg0KPiA+Pj4+Pj4gKw0KPiA+ Pj4+Pj4gKyAgVGhpcyBQUEkgaXMgdXNlZCBpbml0aWF0ZSBzeW5jaHJvbm91cyBNTUkgYWN0aXZh dGlvbnMuIFRoaXMgUFBJDQo+ID4+Pj4+PiArIGNvdWxkIGJlDQo+ID4+Pj4+PiBwdWJsaXNoZWQg YnkgYSBwcm9jZXNzb3INCj4gPj4+Pj4+ICsgIGRyaXZlciB0byBhYnN0cmFjdCB0aGUgTU1JIElQ SSBvciBhIGRyaXZlciB3aGljaCBhYnN0cmFjdHMgdGhlDQo+ID4+Pj4+PiArIEFTSUMgdGhhdA0K PiA+Pj4+IGlzDQo+ID4+Pj4+PiBzdXBwb3J0aW5nIHRoZSBBUE0gcG9ydC4NCj4gPj4+Pj4+ICsg IEJlY2F1c2Ugb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHBlcmZvcm1pbmcgTU1JIElQSSB0cmFuc2Fj dGlvbnMsDQo+ID4+Pj4+PiArIHRoZSBhYmlsaXR5DQo+ID4+Pj4+IHRvDQo+ID4+Pj4+PiBnZW5l cmF0ZSB0aGlzIGV2ZW50DQo+ID4+Pj4+PiArICBmcm9tIGEgcGxhdGZvcm0gY2hpcHNldCBhZ2Vu dCBpcyBhbiBvcHRpb25hbCBjYXBhYmlsaXR5IGZvciBib3RoDQo+ID4+Pj4+PiArIElBLTMyDQo+ ID4+Pj4gYW5kDQo+ID4+Pj4+PiB4NjQtYmFzZWQgc3lzdGVtcy4NCj4gPj4+Pj4+ICsNCj4gPj4+ Pj4+ICsgIENvcHlyaWdodCAoYykgMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiA+Pj4+Pj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsgIEBwYXIgUmV2aXNpb24gUmVm ZXJlbmNlOg0KPiA+Pj4+Pj4gKyAgVGhpcyBQUEkgaXMgaW50cm9kdWNlZCBpbiBQSSBWZXJzaW9u IDEuNS4NCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsqKi8NCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsN Cj4gPj4+Pj4+ICsjaWZuZGVmIF9NTV9DT05UUk9MX1BQSV9IXw0KPiA+Pj4+Pj4gKyNkZWZpbmUg X01NX0NPTlRST0xfUFBJX0hfDQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiArI2RlZmluZSBFRklfUEVJ X01NX0NPTlRST0xfUFBJX0dVSUQgXA0KPiA+Pj4+Pj4gKyAgeyAweDYxYzY4NzAyLCAweDRkN2Us IDB4NGY0MywgMHg4ZCwgMHhlZiwgMHhhNywgMHg0MywgMHg1LCAweGNlLA0KPiA+Pj4+Pj4gKzB4 NzQsDQo+ID4+Pj4+IDB4YzUgfQ0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gK3R5cGVkZWYgc3RydWN0 IF9FRklfUEVJX01NX0NPTlRST0xfUFBJDQo+ID4+PiBFRklfUEVJX01NX0NPTlRST0xfUFBJOw0K PiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gKy8qKg0KPiA+Pj4+Pj4gKyAgSW52b2tlcyBQUEkgYWN0aXZh dGlvbiBmcm9tIHRoZSBQSSBQRUkgZW52aXJvbm1lbnQuDQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiAr ICBAcGFyYW0gIFBlaVNlcnZpY2VzICAgICAgICAgICBBbiBpbmRpcmVjdCBwb2ludGVyIHRvIHRo ZSBQRUkgU2VydmljZXMNCj4gPj4gVGFibGUNCj4gPj4+Pj4+IHB1Ymxpc2hlZCBieSB0aGUgUEVJ IEZvdW5kYXRpb24uDQo+ID4+Pj4+PiArICBAcGFyYW0gIFRoaXMgICAgICAgICAgICAgICAgICBU aGUgUEVJX01NX0NPTlRST0xfUFBJIGluc3RhbmNlLg0KPiA+Pj4+Pj4gKyAgQHBhcmFtICBBcmd1 bWVudEJ1ZmZlciAgICAgICAgVGhlIHZhbHVlIHBhc3NlZCB0byB0aGUgTU1JDQo+IGhhbmRsZXIu DQo+ID4+Pj4gVGhpcw0KPiA+Pj4+Pj4gdmFsdWUgY29ycmVzcG9uZHMgdG8gdGhlDQo+ID4+Pj4+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd01taUlucHV0VmFsdWUgaW4gdGhl DQo+ID4+Pj4+PiArIFJlZ2lzdGVyQ29udGV4dCBwYXJhbWV0ZXINCj4gPj4+PiBmb3INCj4gPj4+ Pj4gdGhlDQo+ID4+Pj4+PiBSZWdpc3RlcigpDQo+ID4+Pj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmdW5jdGlvbiBpbiB0aGUNCj4gPj4+Pj4+ICsgRUZJX01NX1NXX0RJU1BB VENIX1BST1RPQ09MDQo+ID4+Pj4gYW5kDQo+ID4+Pj4+IGluDQo+ID4+Pj4+PiB0aGUgQ29udGV4 dCBwYXJhbWV0ZXINCj4gPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu IHRoZSBjYWxsIHRvIHRoZSBEaXNwYXRjaEZ1bmN0aW9uDQo+ID4+Pj4+PiArICBAcGFyYW0gIEFy Z3VtZW50QnVmZmVyU2l6ZSAgICBUaGUgc2l6ZSBvZiB0aGUgZGF0YSBwYXNzZWQgaW4NCj4gPj4+ Pj4+IEFyZ3VtZW50QnVmZmVyIG9yIE5VTEwgaWYgQXJndW1lbnRCdWZmZXIgaXMgTlVMTC4NCj4g Pj4+Pj4+ICsgIEBwYXJhbSAgUGVyaW9kaWMgICAgICAgICAgICAgIEFuIG9wdGlvbmFsIG1lY2hh bmlzbSB0byBwZXJpb2RpY2FsbHkNCj4gPj4gcmVwZWF0DQo+ID4+Pj4+PiBhY3RpdmF0aW9uLg0K PiA+Pj4+Pj4gKyAgQHBhcmFtICBBY3RpdmF0aW9uSW50ZXJ2YWwgICAgQW4gb3B0aW9uYWwgcGFy YW1ldGVyIHRvIHJlcGVhdCBhdA0KPiA+PiB0aGlzDQo+ID4+Pj4+IHBlcmlvZA0KPiA+Pj4+Pj4g b25lDQo+ID4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIG9yLCBp ZiB0aGUgUGVyaW9kaWMgQm9vbGVhbiBpcyBzZXQsIHBlcmlvZGljYWxseS4NCj4gPj4+Pj4+ICsN Cj4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBNTUkgaGFzIGJl ZW4gZW5nZW5kZXJlZC4NCj4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAg IFRoZSB0aW1pbmcgaXMgdW5zdXBwb3J0ZWQuDQo+ID4+Pj4+PiArICBAcmV0dmFsIEVGSV9JTlZB TElEX1BBUkFNRVRFUiBUaGUgYWN0aXZhdGlvbiBwZXJpb2QgaXMNCj4gPj4+IHVuc3VwcG9ydGVk Lg0KPiA+Pj4+Pj4gKyAgQHJldHZhbCBFRklfTk9UX1NUQVJURUQgICAgICAgVGhlIE1NIGJhc2Ug c2VydmljZSBoYXMgbm90IGJlZW4NCj4gPj4+Pj4gaW5pdGlhbGl6ZWQuDQo+ID4+Pj4+PiArDQo+ ID4+Pj4+PiArKiovDQo+ID4+Pj4+PiArdHlwZWRlZg0KPiA+Pj4+Pj4gK0VGSV9TVEFUVVMNCj4g Pj4+Pj4+ICsoRUZJQVBJICpFRklfUEVJX01NX0FDVElWQVRFKSAoDQo+ID4+Pj4+PiArICBJTiBF RklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKlBlaVNlcnZp Y2VzLA0KPiA+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9NTV9DT05UUk9MX1BQSSAgICAgICAgICAgICAg ICAgICAgICAgICAgKiBUaGlzLA0KPiA+Pj4+Pj4gKyAgSU4gT1VUIElOVDggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKkFyZ3VtZW50QnVmZmVyIE9QVElPTkFMLA0KPiA+ Pj4+Pj4gKyAgSU4gT1VUIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKkFyZ3VtZW50QnVmZmVyU2l6ZQ0KPiBPUFRJT05BTCwNCj4gPj4+Pj4+ICsgIElOIEJPT0xF QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcmlvZGljIE9QVElP TkFMLA0KPiA+Pj4+Pj4gKyAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWN0aXZhdGlvbkludGVydmFsIE9QVElPTkFMDQo+ID4+Pj4+PiArICApOw0K PiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gKy8qKg0KPiA+Pj4+Pj4gKyAgQ2xlYXJzIGFueSBzeXN0ZW0g c3RhdGUgdGhhdCB3YXMgY3JlYXRlZCBpbiByZXNwb25zZSB0byB0aGUNCj4gVHJpZ2dlcigpDQo+ ID4+PiBjYWxsLg0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gKyAgQHBhcmFtICBQZWlTZXJ2aWNlcyAg ICAgICAgICAgR2VuZXJhbCBwdXJwb3NlIHNlcnZpY2VzIGF2YWlsYWJsZSB0bw0KPiA+PiBldmVy eQ0KPiA+Pj4+PiBQRUlNLg0KPiA+Pj4+Pj4gKyAgQHBhcmFtICBUaGlzICAgICAgICAgICAgICAg ICAgVGhlIFBFSV9NTV9DT05UUk9MX1BQSSBpbnN0YW5jZS4NCj4gPj4+Pj4+ICsgIEBwYXJhbSAg UGVyaW9kaWMgICAgICAgICAgICAgIE9wdGlvbmFsIHBhcmFtZXRlciB0byByZXBlYXQgYXQgdGhp cw0KPiA+PiBwZXJpb2QNCj4gPj4+PiBvbmUNCj4gPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpbWUgb3IsIGlmIHRoZSBQZXJpb2RpYyBCb29sZWFuIGlzIHNldCwgcGVy aW9kaWNhbGx5Lg0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAg ICAgICAgICAgVGhlIE1NSSBoYXMgYmVlbiBlbmdlbmRlcmVkLg0KPiA+Pj4+Pj4gKyAgQHJldHZh bCBFRklfREVWSUNFX0VSUk9SICAgICAgVGhlIHNvdXJjZSBjb3VsZCBub3QgYmUgY2xlYXJlZC4N Cj4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIFRoZSBzZXJ2aWNlIGRp ZCBub3Qgc3VwcG9ydCB0aGUNCj4gPj4+Pj4gUGVyaW9kaWMNCj4gPj4+Pj4+IGlucHV0IGFyZ3Vt ZW50Lg0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gKyoqLw0KPiA+Pj4+Pj4gK3R5cGVkZWYNCj4gPj4+ Pj4+ICtFRklfU1RBVFVTDQo+ID4+Pj4+PiArKEVGSUFQSSAqUEVJX01NX0RFQUNUSVZBVEUpICgN Cj4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAgICAgICAgICAgICAgKipQ ZWlTZXJ2aWNlcywNCj4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfTU1fQ09OVFJPTF9QUEkgICAgICAg ICAgICAgICAgKiBUaGlzLA0KPiA+Pj4+Pj4gKyAgSU4gQk9PTEVBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQZXJpb2RpYyBPUFRJT05BTA0KPiA+Pj4+Pj4gKyAgKTsNCj4gPj4+Pj4+ ICsNCj4gPj4+Pj4+ICsvLy8NCj4gPj4+Pj4+ICsvLy8gIFRoZSBFRklfUEVJX01NX0NPTlRST0xf UFBJIGlzIHByb2R1Y2VkIGJ5IGEgUEVJTS4gSXQNCj4gPj4+IHByb3ZpZGVzDQo+ID4+Pj4gYW4N Cj4gPj4+Pj4+IGFic3RyYWN0aW9uIG9mIHRoZQ0KPiA+Pj4+Pj4gKy8vLyAgcGxhdGZvcm0gaGFy ZHdhcmUgdGhhdCBnZW5lcmF0ZXMgYW4gTU1JLiBUaGVyZSBhcmUgb2Z0ZW4gSS9PDQo+ID4+Pj4+ PiArcG9ydHMNCj4gPj4+Pj4+IHRoYXQsIHdoZW4gYWNjZXNzZWQsIHdpbGwNCj4gPj4+Pj4+ICsv Ly8gIGdlbmVyYXRlIHRoZSBNTUkuIEFsc28sIHRoZSBoYXJkd2FyZSBvcHRpb25hbGx5IHN1cHBv cnRzIHRoZQ0KPiA+Pj4+IHBlcmlvZGljDQo+ID4+Pj4+PiBnZW5lcmF0aW9uIG9mIHRoZXNlIHNp Z25hbHMuDQo+ID4+Pj4+PiArLy8vDQo+ID4+Pj4+PiArc3RydWN0IF9QRUlfTU1fQ09OVFJPTF9Q UEkgew0KPiA+Pj4+Pj4gKyAgUEVJX01NX0FDVElWQVRFICAgIFRyaWdnZXI7DQo+ID4+Pj4+PiAr ICBQRUlfTU1fREVBQ1RJVkFURSAgQ2xlYXI7DQo+ID4+Pj4+PiArfTsNCj4gPj4+Pj4+ICsNCj4g Pj4+Pj4+ICtleHRlcm4gRUZJX0dVSUQgZ0VmaVBlaU1tQ29udHJvbFBwaUd1aWQ7DQo+ID4+Pj4+ PiArDQo+ID4+Pj4+PiArI2VuZGlmDQo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL01kZVBr Zy5kZWMgYi9NZGVQa2cvTWRlUGtnLmRlYyBpbmRleA0KPiA+Pj4+Pj4gYjM4MmVmZDU3OC4uMzRl MGYzOTM5NSAxMDA2NDQNCj4gPj4+Pj4+IC0tLSBhL01kZVBrZy9NZGVQa2cuZGVjDQo+ID4+Pj4+ PiArKysgYi9NZGVQa2cvTWRlUGtnLmRlYw0KPiA+Pj4+Pj4gQEAgLTkyNSw2ICs5MjUsMTIgQEAN Cj4gPj4+Pj4+ICAgIyMgSW5jbHVkZS9QcGkvU2VjSG9iRGF0YS5oDQo+ID4+Pj4+PiAgIGdFZmlT ZWNIb2JEYXRhUHBpR3VpZCA9IHsgMHgzZWJkYWYyMCwgMHg2NjY3LCAweDQwZDgsIHsweGI0LA0K PiA+Pj4+Pj4gMHhlZSwNCj4gPj4+PiAweGY1LA0KPiA+Pj4+Pj4gMHg5OSwgMHg5YSwgMHhjMSwg MHhiNywgMHgxZiB9IH0NCj4gPj4+Pj4+DQo+ID4+Pj4+PiArICAjIyBJbmNsdWRlL1BwaS9NbUFj Y2Vzcy5oDQo+ID4+Pj4+PiArICBnRWZpUGVpTW1BY2Nlc3NQcGlHdWlkICAgICAgICAgID0gIHsg MHgyNjhmMzNhOSwgMHhjY2NkLCAweDQ4YmUsDQo+ID4+IHsgMHg4OCwNCj4gPj4+Pj4gMHgxNywN Cj4gPj4+Pj4+IDB4ODYsIDB4NSwgMHgzYSwgMHhjMywgMHgyZSwgMHhkNiB9fQ0KPiA+Pj4+Pj4g Kw0KPiA+Pj4+Pj4gKyAgIyMgSW5jbHVkZS9QcGkvTW1Db250cm9sLmgNCj4gPj4+Pj4+ICsgIGdF ZmlQZWlNbUNvbnRyb2xQcGlHdWlkICAgICAgICAgPSAgeyAweDYxYzY4NzAyLCAweDRkN2UsIDB4 NGY0MywNCj4gPj4geyAweDhkLA0KPiA+Pj4+PiAweGVmLA0KPiA+Pj4+Pj4gMHhhNywgMHg0Mywg MHg1LCAweGNlLCAweDc0LCAweGM1IH19DQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiAgICMNCj4gPj4+ Pj4+ICAgIyBQUElzIGRlZmluZWQgaW4gUEkgMS43Lg0KPiA+Pj4+Pj4gICAjDQo+ID4+Pj4+PiAt LQ0KPiA+Pj4+Pj4gMi4xNi4yLndpbmRvd3MuMQ0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+ Pg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+IA0KPiANCj4gDQoNCg==