From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.3351.1571297879735539430 for ; Thu, 17 Oct 2019 00:37:59 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Oct 2019 00:37:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,306,1566889200"; d="scan'208";a="202310217" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by FMSMGA003.fm.intel.com with ESMTP; 17 Oct 2019 00:37:58 -0700 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 17 Oct 2019 00:37:58 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 17 Oct 2019 00:37:58 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.166]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.96]) with mapi id 14.03.0439.000; Thu, 17 Oct 2019 15:37:54 +0800 From: "Ni, Ray" To: "Desimone, Nathaniel L" , "devel@edk2.groups.io" , "Kubacki, Michael A" CC: "Chaganty, Rangasai V" Subject: Re: [edk2-devel] [edk2-platforms][PATCH V1 1/1] IntelSiliconPkg/BootMediaLib: Reduce library API Thread-Topic: [edk2-devel] [edk2-platforms][PATCH V1 1/1] IntelSiliconPkg/BootMediaLib: Reduce library API Thread-Index: AQHVgtYIOTkrtkYpnka2pkFh7v6JB6da6TAggAALuWCAAC6TEIAAv33wgADkFcCAASWpAIAAhpfA Date: Thu, 17 Oct 2019 07:37:53 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C325C0D@SHSMSX104.ccr.corp.intel.com> References: <20191014212616.18376-1-michael.a.kubacki@intel.com> <734D49CCEBEEF84792F5B80ED585239D5C322E81@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C32317E@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C3249F2@SHSMSX104.ccr.corp.intel.com> <02A34F284D1DA44BB705E61F7180EF0AAEF71F42@ORSMSX114.amr.corp.intel.com> In-Reply-To: <02A34F284D1DA44BB705E61F7180EF0AAEF71F42@ORSMSX114.amr.corp.intel.com> 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 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TmF0ZSwNCkkgcmVtZW1iZXIgdGhhdCBJJ3ZlIGFncmVlZCB3aXRoIGN1cnJlbnQgaW1wbGVtZW50 YXRpb24uDQoNCkkgYWdyZWUgd2l0aCB5b3UgdGhlIGxpYnJhcnkgaGVscHMgY2FsbGVyIGluIGEg Y2VydGFpbiB3YXkuIEJ1dCBhbm90aGVyIHByb2JsZW0gd2UgbmVlZCB0byBzb2x2ZSBpcyBob3cg dG8gc2ltcGxpZnkgcGxhdGZvcm0gRFNDIHdpdGggc28gbWFueSBsaWJyYXJ5IGluc3RhbmNlcy4g SSBkb24ndCBzdHJvbmdseSBwcmVmZXIgdG8gbWVyZ2UgdGhlIHR3byBsaWJyYXJ5IGluc3RhbmNl cyBmb3IgdGhpcyBzcGVjaWZpYyBjYXNlLiBCdXQgd2UgbmVlZCB0byBrZWVwIGluIG1pbmQgdGhh dCBhbnkgYWRkaXRpb24gb2YgbGlicmFyeSBBUElzLCBsaWJyYXJ5IGluc3RhbmNlcyBpcyBhY3R1 YWxseSBhIGJ1cmRlbiB0byBwbGF0Zm9ybSBkZXZlbG9wZXJzIGJlY2F1c2UgdGhleSBuZWVkIHRv IG1ha2UgY2hvaWNlcy4gKFRoaXMgaXMgd2h5IEkgbGlrZSBpUGhvbmUgb3ZlciBBbmRyb2lkIGJl Y2F1c2UgQW5kcm9pZCBvcGVucyBzbyBtYW55IHNldHRpbmdzIHRvIGVuZC11c2Vycy4pDQoNClRo YW5rcywNClJheQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IERlc2lt b25lLCBOYXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KPiBTZW50 OiBUaHVyc2RheSwgT2N0b2JlciAxNywgMjAxOSAzOjI3IFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEt1YmFja2ksIE1pY2hhZWwgQQ0K PiA8bWljaGFlbC5hLmt1YmFja2lAaW50ZWwuY29tPg0KPiBDYzogQ2hhZ2FudHksIFJhbmdhc2Fp IFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazIt ZGV2ZWxdIFtlZGsyLXBsYXRmb3Jtc11bUEFUQ0ggVjEgMS8xXQ0KPiBJbnRlbFNpbGljb25Qa2cv Qm9vdE1lZGlhTGliOiBSZWR1Y2UgbGlicmFyeSBBUEkNCj4gDQo+IEhpIFJheSwNCj4gDQo+IFRo aXMgcmVhbGx5IGNvbWVzIGRvd24gdG8gYSBwaGlsb3NvcGhpY2FsIHF1ZXN0aW9uIG9mIGhvdyBt dWNoIGRvIHdlIHdpc2gNCj4gdG8gc2hpZWxkIHRoZSB1c2VyIG9mIHRoZSBCb290TWVkaWFMaWIg YWdhaW5zdCB0aGUgbnVhbmNlcyBvZiB0aGUgbGlicmFyeSdzDQo+IHVuZGVybHlpbmcgaW1wbGVt ZW50YXRpb24uDQo+IA0KPiBUaGUgcHJpbWFyeSBmdW5jdGlvbiBvZiBCb290TWVkaWFMaWIgaXMg cmV0cmlldmFsIG9mIHN0YXRlLiBBbGwgb2YgdGhlIGZ1bmN0aW9ucw0KPiBpbiBCb290TWVkaWFM aWIgYXJlIGFjY2Vzc29yczogQm9vdE1lZGlhSXNTcGkoKSwgR2V0Qm9vdE1lZGlhVHlwZSgpLCBl dGMuDQo+IFNpbmNlIHRoZSBwdXJwb3NlIG9mIHRoZSBsaWJyYXJ5IGlzIHRoZSBtYW5pcHVsYXRp b24gb2Ygc3RhdGVmdWwgZGF0YSwgaXQNCj4gZ2VuZXJhbGx5IGlzIGFzc3VtZWQgYnkgbW9zdCBw cm9ncmFtbWVycyB0aGF0IHRoZSBkYXRhIGFjY2Vzc29ycw0KPiB0aGVtc2VsdmVzIGFyZSBzdGF0 ZWxlc3MuIEluIHNpbXBsZXIgd29yZHMsIG1vc3QgcHJvZ3JhbW1lcnMgZXhwZWN0IHRvIGJlDQo+ IGFibGUgdG8gY2FsbCB0aGUgQm9vdE1lZGlhSXNTcGkoKSBmdW5jdGlvbiB3aXRob3V0IGhhdmlu ZyB0byBjb25zaWRlciB3aGF0DQo+IHRoZSBjdXJyZW50IGVudmlyb25tZW50YWwgY29udGV4dCBp cyBvZiB0aGUgc3lzdGVtLg0KPiANCj4gSW4geW91ciBwcm9wb3NhbCwgdGhlIHByb2dyYW1tZXIg bXVzdCBjb25zaWRlciBpZiB0aGV5IGFyZSB3cml0aW5nIFBFSSwgRFhFLA0KPiBTTU0sIGFuZCBS dW50aW1lRFhFIGNvZGUgd2hlbiB1c2luZyB0aGUgQm9vdE1lZGlhTGliLiBJIGNvbnNpZGVyIGl0 IHZlcnkNCj4gY29uZnVzaW5nIGlmIEkgd2FzIHJlcXVpcmVkIHRvIGNhbGwgQm9vdE1lZGlhSXNT cGkoKSBldmVyeXdoZXJlIGluIFBFSSwgd2hpbGUNCj4gYXQgdGhlIHNhbWUgdGltZSBJIHdhcyBy ZXF1aXJlZCB0byBvbmx5IGNhbGwgQm9vdE1lZGlhSXNTcGkoKSBmcm9tIHRoZSBlbnRyeQ0KPiBw b2ludCBmb3IgU01NIG9yIFJ1bnRpbWVEWEUgZHJpdmVycy4gTWljaGFlbCdzIHNvbHV0aW9uIGFi c3RyYWN0cyBhd2F5IHRoaXMNCj4gY29tcGxleGl0eSBhbmQgYWxsb3dzIGEgc2luZ2xlIHByb2dy YW1taW5nIG1vZGVsIHRvIGJlIHVzZWQgZXZlcnl3aGVyZS4NCj4gDQo+IEkgYWdyZWUgd2l0aCBN aWNoYWVsIHRoYXQgZW5jYXBzdWxhdGlvbiBvZiB0aGUgZW52aXJvbm1lbnRhbCBzdGF0ZSBpcw0K PiBkZXNpcmFibGUgZXNwZWNpYWxseSBmb3IgY29kZSB0aGF0IGlzIHVzZWQgaW4gdGhlIGltcGxl bWVudGF0aW9uIG9mIFVFRkkNCj4gdmFyaWFibGUgc2VydmljZXMuIEFuZCBJIHJlY29tbWVuZCB0 aGF0IHRoZSBjb2RlIGJlIG1lcmdlZCBhcy1pcy4NCj4gDQo+IFJlZ2FyZHMsDQo+IE5hdGUNCj4g DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBz LmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIE5pLCBSYXkNCj4gU2VudDog VHVlc2RheSwgT2N0b2JlciAxNSwgMjAxOSAxMTozMCBQTQ0KPiBUbzogS3ViYWNraSwgTWljaGFl bCBBIDxtaWNoYWVsLmEua3ViYWNraUBpbnRlbC5jb20+Ow0KPiBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPiBDYzogQ2hhZ2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyLXBsYXRmb3Jtc11bUEFUQ0gg VjEgMS8xXQ0KPiBJbnRlbFNpbGljb25Qa2cvQm9vdE1lZGlhTGliOiBSZWR1Y2UgbGlicmFyeSBB UEkNCj4gDQo+ID4gTXkgY29uY2VybnMgd2l0aCB0aGF0IGFwcHJvYWNoOg0KPiA+DQo+ID4gMS4g SW4gZ2VuZXJhbCwgSSBiZWxpZXZlIGl0IGlzIGJldHRlciBpZiB0aGUgbGlicmFyeSByZWFkcyB0 aGUgdmFsdWUNCj4gPiBvbmNlIGFuZCBjYWNoZXMgaXQuIFRoZSBmaXJtd2FyZSBib290IG1lZGlh IGlzIGZpeGVkIGFmdGVyIHBvd2VyLW9uIGJ5DQo+ID4gbmF0dXJlIGFuZCBpbiBzb21lIHBsYXRm b3JtcywgYm9vdCBtZWRpYSBpbmZvcm1hdGlvbiBtYXkgYmUgcHJvdmlkZWQNCj4gPiB0byB0aGUg SUJCIGluIGEgdGVtcG9yYXJ5IFNSQU0gKG9yIG90aGVyIHZvbGF0aWxlIG1lbW9yeSkgZWFybHkg aW4gdGhlDQo+ID4gYm9vdCBmbG93IHRoYXQgaXMgdGVtcG9yYXJ5IChlLmcuIG5vdCBhY2Nlc3Np YmxlIGFmdGVyIG1haW4gbWVtb3J5DQo+ID4gaW5pdGlhbGl6YXRpb24pLiBIZXJlIHRoZSBIT0Ig dG8gZ2xvYmFsIHZhcmlhYmxlIHRyYW5zaXRpb24gaW4gRFhFLA0KPiA+IFJ1bnRpbWUgRFhFLCBT TU0gaXMgYSB0cmFuc3BhcmVudCBtZWNoYW5pc20gdG8gdGhlIGxpYnJhcnkgY29uc3VtZXJzDQo+ ID4gdG8gZ2V0IHRoZSBib290IG1lZGlhIGluZm9ybWF0aW9uIHJlZ2FyZGxlc3Mgb2YgZWFybHkg Ym9vdCBtZW1vcnkNCj4gcHJvcGVydGllcy4NCj4gDQo+IEkganVzdCBmZWVsIHRoYXQgaGF2aW5n IHR3byBsaWJyYXJ5IGluc3RhbmNlcyBpbmNyZWFzZXMgdGhlIGNvbXBsZXhpdHkuDQo+IFRoZXJl IHdlcmUgYWxyZWFkeSBhcmd1bWVudHMgYXJvdW5kIEVES0lJIGxpa2UgdGhlcmUgYXJlIHNvIG1h bnkgaW5zdGFuY2VzDQo+IGZvciBhIGxpYnJhcnkgY2xhc3MgYW5kIHBlb3BsZSBkb24ndCBrbm93 IHdoaWNoIG9uZSBpcyBiZWluZyB1c2VkLg0KPiBCdXQgaWYgeW91IGluc2lzdCwgSSBhbSBvayB3 aXRoIHRoYXQuIFJlbW92aW5nIHVubmVjZXNzYXJ5IEFQSXMgcmVzb2x2ZWQgbW9zdA0KPiBvZiBt eSBjb25jZXJucy4NCj4gDQo+ID4NCj4gPiAyLiBGb3JjaW5nIGxpYnJhcnkgY29uc3VtZXJzIHRv IGNhY2hlIHB1dHMgdW5uZWNlc3NhcnkgYnVyZGVuIG9uIGENCj4gPiBsYXJnZSBudW1iZXIgb2Yg bGlicmFyeSBjb25zdW1lcnMgdG86DQo+ID4gICAxLmEuIFVuZGVyc3RhbmQgdGhlIGxpYnJhcnkg aW1wbGVtZW50YXRpb24gKGxhY2sgb2YgZW5jYXBzdWxhdGlvbikuDQo+IA0KPiBJbiBmYWN0IHRo ZSB2YWx1ZSBvZiBzaW5nbGUgbGlicmFyeSBpbnN0YW5jZSBJIGNhbiBzZWUgaXMgY2FsbGVyIGRv ZXNuJ3QgbmVlZCB0bw0KPiBkaWcgaW50byB0aGUgZGV0YWlscyBvZiB0aGUgbGlicmFyeSBpbXBs ZW1lbnRhdGlvbi4gQWxsIHRoZXkgbmVlZCB0byBrbm93IGlzDQo+IHRoZSBsaWJyYXJ5IGdldHMg dGhlIGluZm8gZnJvbSBIT0IgZXZlcnkgdGltZSB0aGUgQVBJIGlzIGNhbGxlZC4NCj4gV2l0aCB0 aGUgdHdvIGxpYiBpbnN0YW5jZXMsIGNvbnN1bWVycyBuZWVkIHRvIGJlIGF3YXJlIG9mIHRoZSBk aWZmZXJlbnQNCj4gaW1wbGVtZW50YXRpb25zLg0KPiBJIGFtIG5vdCB1c2luZyB0aGlzIHRvIHN1 cHBvcnQgbXkgcG9pbnQuIEp1c3QgcHJvdmlkaW5nIG15IHRob3VnaHQuDQo+IA0KPiA+ICAgMS5i LiBVbmRlcnN0YW5kIHRoZSBudWFuY2VzIG9mIHRoZWlyIGRyaXZlciB0eXBlIGluIHJlbGF0aW9u IHRvIHRoZQ0KPiA+IGxpYnJhcnkgaW1wbGVtZW50YXRpb24uDQo+IA0KPiBJIHRoaW5rIGhhdmlu ZyBhIHNpbmdsZSBpbnN0YW5jZSBhdm9pZHMgRFNDIHdyaXRlcnMgdG8gc3VwcGx5IHR3byBpbnN0 YW5jZXMgZm9yDQo+IGRpZmZlcmVudCBtb2R1bGVzLiBNaWdodCBiZSBkaWZmZXJlbnQgZnJvbSB3 aGF0IHlvdSB0aGlua/CfmIoNCj4gDQo+IA0KPiA+ICAgMS5jLiBQZXJmb3JtIHRoaXMgZXZhbHVh dGlvbiBldmVyeSB0aW1lIHRoZSBsaWJyYXJ5IGlzIHVzZWQuDQo+IA0KPiBBZ3JlZS4NCj4gDQo+ ID4gICAxLmQuIEltcGxlbWVudCBvdmVyaGVhZCB0byBtYW5hZ2UgdGhlIGRhdGEgaW4gYSBnbG9i YWwgdmFyaWFibGUgd2hlbg0KPiA+IHRoaXMgY291bGQgYXV0b21hdGljYWxseSBiZSBsaW5rZWQg YnkgdGhlIGxpYnJhcnkuDQo+IFNvbWUgY2FsbGVycyBtYXkgbm90IGJlIGF3YXJlIG9mIHRoZSBs aWIgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gU28gdGhleQ0KPiBtYXkgc3RpbGwgY2hvb3NlIHRv IGNhY2hlIHRvIGdsb2JhbCB2YXJpYWJsZXMuDQo+IFNvbWUgY2FsbGVycyBtYXkgdXNlIGl0IG9u bHkgb25jZS4gSGF2aW5nIGEgbGliIGdsb2JhbCB2YXJpYWJsZSBpcyBhbHNvIGEgd2FzdGUuDQo+ IA0KPiA+DQo+ID4gMy4gSWYgdGhlIEhPQiBpcyB1c2VkLCBpdCBibHVycyB0aGUgaW1wbGVtZW50 YXRpb24gYmV0d2VlbiB0aGUgSE9CDQo+ID4gcHJvZHVjZXIgcGhhc2UgKFBFSSkgYW5kIEhPQiBj b25zdW1lciBwaGFzZSAoRFhFKS4NCj4gDQo+IERvbid0IHVuZGVyc3RhbmQuDQo+IA0KPiA+DQo+ ID4gV2UgaGF2ZSBtYW55IGxpYnJhcmllcyB3aXRoIHBoYXNlLXNwZWNpZmljIGluc3RhbmNlcy4g V2hlbiBpdCByZWR1Y2VzDQo+ID4gcHJvZ3JhbW1pbmcgbWlzdGFrZXMgYW5kIGVhc2VzIGludGVn cmF0aW9uIEkgYmVsaWV2ZSB0aGlzIGlzDQo+ID4gYmVuZWZpY2lhbC4gSW4gdGhpcyBjYXNlLCBJ IGZlZWwgdGhlIG5ldCByZXN1bHQgZm9yIGxpYnJhcnkgY29uc3VtZXJzDQo+ID4gaXMgYmV0dGVy IGlmIHRoZXkgc2ltcGx5IG1hbmFnZSB0aGUgaW5zdGFuY2UgaW4gdGhlIERTQyBhcyBvcHBvc2Vk IHRvDQo+ID4gbW9kaWZ5aW5nIHNvdXJjZSBpbiBkcml2ZXJzIG9uIGEgY2FzZS1ieS1jYXNlIGJh c2lzIGRlcGVuZGVudCBvbiB0aGUNCj4gbGlicmFyeSBpbXBsZW1lbnRhdGlvbi4NCj4gDQo+IElm IGEgc2luZ2xlIGluc3RhbmNlIGNhbiBzdXBwb3J0IHRoZSByZWFsIG5lZWRzIEkgdGVuZCB0byB1 c2Ugc2luZ2xlIGluc3RhbmNlcy4NCj4gSXQgbWFrZXMgdGhlIGNvZGUgbG9naWMgZWFzeSB0byB0 cmFjZS4gSSBsaWtlIHRoZSBtdWx0aXBsZSBpbnN0YW5jZXMgaWRlYSBidXQNCj4gd2FudCB0byBh dm9pZCBvdmVyLXVzaW5nIHRoZW0uDQo+IA0KPiBBZ2FpbiBJIGFtIGp1c3QgcHJvdmlkaW5nIHdo YXQgSSB0aGluay4gVGhleSBhcmUgbm90IGhlcmUgdG8gc3VwcG9ydCBteSBwb2ludC4NCj4gSSBh bSBvayB3aXRoIGN1cnJlbnQgaW1wbGVtZW50YXRpb24uIPCfmIoNCj4gDQo+ID4NCj4gPiBUaGFu a3MsDQo+ID4gTWljaGFlbA0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+ID4gRnJvbTogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiA+IFNlbnQ6IE1vbmRh eSwgT2N0b2JlciAxNCwgMjAxOSA5OjU5IFBNDQo+ID4gPiBUbzogS3ViYWNraSwgTWljaGFlbCBB IDxtaWNoYWVsLmEua3ViYWNraUBpbnRlbC5jb20+Ow0KPiA+ID4gZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gPiA+IENjOiBDaGFnYW50eSwgUmFuZ2FzYWkgViA8cmFuZ2FzYWkudi5jaGFnYW50eUBp bnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTogW2VkazItcGxhdGZvcm1zXVtQQVRDSCBWMSAx LzFdDQo+IEludGVsU2lsaWNvblBrZy9Cb290TWVkaWFMaWI6DQo+ID4gPiBSZWR1Y2UgbGlicmFy eSBBUEkNCj4gPiA+DQo+ID4gPiBNaWtlLA0KPiA+ID4gSSBkb24ndCB0aGluayB0aGUgbGlicmFy eSBuZWVkcyB0byBjYWNoZSB0aGUgYm9vdCBtZWRpYSB0eXBlIGZvciBSVA0KPiA+ID4gYW5kDQo+ ID4gU01NLg0KPiA+ID4gUlQgYW5kIFNNTSBtb2R1bGVzIGNhbiBoYXZlIGEgbW9kdWxlIGxvY2Fs IHZhcmlhYmxlIHRvIGNhY2hlIHRoZQ0KPiA+ID4gYm9vdCBtZWRpYSB0eXBlLg0KPiA+ID4gSXQg c2ltcGxpZmllcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBsaWJyYXJ5IGFuZCBhbHNvIHRo ZQ0KPiA+ID4gcGxhdGZvcm0gRFNDIGJlY2F1c2UgdGhlcmUgaXMgbm8gbmVlZCB0byBjaG9vc2Ug ZGlmZmVyZW50IGxpYnJhcnkNCj4gPiA+IGluc3RhbmNlcyBmb3IgZGlmZmVyZW50IG1vZHVsZXMu DQo+ID4gPg0KPiA+ID4gSW4gYW5vdGhlciB3b3JkLCBJIHRoaW5rIHlvdSBjYW4ga2VlcCB0aGUg UEVJIHZlcnNpb24gYXMgYSBiYXNlDQo+ID4gPiBsaWJyYXJ5IGluc3RhbmNlcyBhbmQgYWxsIG1v ZHVsZXMgY2FuIHVzZSB0aGF0IGluc3RhbmNlLg0KPiA+ID4NCj4gPiA+IFRoYW5rcywNCj4gPiA+ IFJheQ0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4g RnJvbTogS3ViYWNraSwgTWljaGFlbCBBIDxtaWNoYWVsLmEua3ViYWNraUBpbnRlbC5jb20+DQo+ ID4gPiA+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMTUsIDIwMTkgMTA6MjIgQU0NCj4gPiA+ID4g VG86IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ ID4gPiBDYzogQ2hhZ2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwu Y29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSRTogW2VkazItcGxhdGZvcm1zXVtQQVRDSCBWMSAxLzFd DQo+ID4gSW50ZWxTaWxpY29uUGtnL0Jvb3RNZWRpYUxpYjoNCj4gPiA+ID4gUmVkdWNlIGxpYnJh cnkgQVBJDQo+ID4gPiA+DQo+ID4gPiA+IFRoZSB0d28gbGlicmFyeSBpbnN0YW5jZXMgd29yayB3 aXRoaW4gdGhlIGNvbnN0cmFpbnRzIG9mIFBFSSwgRFhFLA0KPiA+ID4gPiBSdW50aW1lIERYRSwg YW5kIFNNTS4NCj4gPiA+ID4NCj4gPiA+ID4gSSBjYW5ub3QgZmluZCBob3cgYSBzaW5nbGUgaW5z dGFuY2UgY2FuIHN1cHBvcnQgYWxsIHRoZXNlDQo+ID4gPiA+IGVudmlyb25tZW50cyAoaW4gYXMg Y2xlYW4gYSBtYW5uZXIpIGFzIGlzIGRvbmUgd2l0aCB0aGUgdHdvIGluc3RhbmNlcy4NCj4gPiA+ ID4NCj4gPiA+ID4gUmVsZXZhbnQgY29uc3RyYWludHM6DQo+ID4gPiA+ICogUEVJOiBDYW5ub3Qg d3JpdGUgdG8gZ2xvYmFsIHZhcmlhYmxlDQo+ID4gPiA+ICogUnVudGltZSBEWEUgLyBTTU06IEJv b3QgU2VydmljZXMgYXJlIG5vdCBhdmFpbGFibGUgb3V0c2lkZQ0KPiA+ID4gPiBtb2R1bGUgZW50 cnkgcG9pbnQNCj4gPiA+ID4NCj4gPiA+ID4gU29sdXRpb246DQo+ID4gPiA+ICogUEVJIGluc3Rh bmNlOiBBbHdheXMgcmV0cmlldmUgdGhlIHZhbHVlIGZyb20gYSBIT0IgKHVzZSBoZWFwIGZvcg0K PiBSL1cpLg0KPiA+ID4gPiAqIERYRSwgUnVudGltZSBEWEUsIFNNTSBpbnN0YW5jZTogUmV0cmll dmUgdGhlIHZhbHVlIGZyb20gdGhlIEhPQg0KPiA+ID4gPiBpbiB0aGUgZW50cnkgcG9pbnQNCj4g PiA+ID4gKGNvbnN0cnVjdG9yKSB3aGVuIHRoZSBkcml2ZXIgaXMgZGlzcGF0Y2hlZCBhbmQgQm9v dCBTZXJ2aWNlcyBhcmUNCj4gPiA+ID4gYXZhaWxhYmxlIGFuZCBzdG9yZSB0aGUgdmFsdWUgaW4g YSBnbG9iYWwgdmFyaWFibGUgc28gaXQgY2FuIGJlDQo+ID4gPiA+IGFjY2Vzc2VkIGluIFJ1bnRp bWUgRFhFIGFuZCBTTU0uDQo+ID4gPiA+DQo+ID4gPiA+IFR3byBzZXBhcmF0ZSBpbnN0YW5jZXMg cmVzb2x2ZSB0aGVzZSByZXF1aXJlbWVudHMgcXVpdGUgbmF0dXJhbGx5Lg0KPiA+ID4gPg0KPiA+ ID4gPiBIb3cgd291bGQgeW91IHByb3Bvc2UgbWVldGluZyB0aGUgc2FtZSBsZXZlbCBvZiBzdXBw b3J0IHdpdGggb25lDQo+ID4gPiA+IGluc3RhbmNlPw0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3Ms DQo+ID4gPiA+IE1pY2hhZWwNCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4g PiA+ID4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDE0LCAyMDE5IDY6MzAgUE0NCj4gPiA+ID4gPiBU bzogS3ViYWNraSwgTWljaGFlbCBBIDxtaWNoYWVsLmEua3ViYWNraUBpbnRlbC5jb20+Ow0KPiA+ ID4gPiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+ID4gQ2M6IENoYWdhbnR5LCBSYW5n YXNhaSBWIDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gPiA+ID4gPiBTdWJqZWN0 OiBSRTogW2VkazItcGxhdGZvcm1zXVtQQVRDSCBWMSAxLzFdDQo+ID4gPiBJbnRlbFNpbGljb25Q a2cvQm9vdE1lZGlhTGliOg0KPiA+ID4gPiA+IFJlZHVjZSBsaWJyYXJ5IEFQSQ0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gUmV2aWV3ZWQtYnk6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IE1pa2UsDQo+ID4gPiA+ID4gVGhhbmtzIGZvciByZWR1Y2luZyB0aGUg QVBJLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gRm9yIHRoZSBvdGhlciBjb21tZW50cyBJIHJhaXNl ZCAoc2luZ2xlIGxpYnJhcnkgaW5zdGFuY2UgdXNhYmxlDQo+ID4gPiA+ID4gZm9yIFBFSSBhbmQg RFhFKSwgZG8geW91IGhhdmUgYW55IGNvbW1lbnRzPw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBL dWJhY2tpLCBNaWNoYWVsIEEgPG1pY2hhZWwuYS5rdWJhY2tpQGludGVsLmNvbT4NCj4gPiA+ID4g PiA+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMTUsIDIwMTkgNToyNiBBTQ0KPiA+ID4gPiA+ID4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+ID4gPiBDYzogQ2hhZ2FudHksIFJhbmdh c2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPjsgTmksDQo+ID4gPiA+ID4gPiBS YXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBTdWJqZWN0OiBbZWRrMi1wbGF0Zm9y bXNdW1BBVENIIFYxIDEvMV0NCj4gPiBJbnRlbFNpbGljb25Qa2cvQm9vdE1lZGlhTGliOg0KPiA+ ID4gPiA+ID4gUmVkdWNlIGxpYnJhcnkgQVBJDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gUmVt b3ZlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBmcm9tIEZpcm13YXJlQm9vdE1lZGlhTGliLmg6 DQo+ID4gPiA+ID4gPiAgKiBGaXJtd2FyZUJvb3RNZWRpYUlzU3BpICgpDQo+ID4gPiA+ID4gPiAg KiBGaXJtd2FyZUJvb3RNZWRpYUlzVWZzICgpDQo+ID4gPiA+ID4gPiAgKiBGaXJtd2FyZUJvb3RN ZWRpYUlzRW1tYyAoKQ0KPiA+ID4gPiA+ID4gICogRmlybXdhcmVCb290TWVkaWFJc052bWUgKCkN Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJdCBpcyBwcmVmZXJyZWQgdG8gaGF2ZSBhIHNpbmds ZSBtZXRob2QgdG8gcmV0cmlldmUgdGhlDQo+ID4gPiA+ID4gPiBmaXJtd2FyZSBib290DQo+ID4g PiA+ID4gbWVkaWEuDQo+ID4gPiA+ID4gPiBUbyByZWR1Y2Ugb3ZlcmFsbCBtYWludGVuYW5jZSBl ZmZvcnQgb3ZlciB0aW1lLCB0aGUNCj4gPiA+ID4gPiA+IEZpcm13YXJlQm9vdE1lZGlhSXNYeHgg KCkgcGF0dGVybiBpcyByZW1vdmVkIGluIGZhdm9yIG9mDQo+ID4gPiA+ID4gPiByZXR1cm5pbmcg dGhlIGZpcm13YXJlIGJvb3QgbWVkaWEgdHlwZSB2aWENCj4gPiBHZXRGaXJtd2FyZUJvb3RNZWRp YVR5cGUgKCkuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQ2M6IFNhaSBDaGFnYW50eSA8cmFu Z2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBDYzogUmF5IE5pIDxyYXku bmlAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTWljaGFlbCBLdWJhY2tp IDxtaWNoYWVsLmEua3ViYWNraUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPg0KPiA+DQo+IFNpbGlj b24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGliL0R4 ZVNtbUZpcm0NCj4gPiA+ID4gPiA+IHdhcmVCb290TWVkaWFMaWIuaW5mIHwgICAxIC0NCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+IFNpbGljb24vSW50ZWwvSW50ZWxTaWxpY29u UGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGliL1BlaUYNCj4gPiA+ID4gPiBpcg0KPiA+ ID4gPiA+IG13DQo+ID4gPiA+ID4gYXINCj4gPiA+ID4gPiBlQg0KPiA+ID4gPiA+ID4gb290TWVk aWFMaWIuaW5mICAgIHwgICAxIC0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBTaWxpY29uL0lu dGVsL0ludGVsU2lsaWNvblBrZy9JbmNsdWRlL0xpYnJhcnkvRmlybXdhcmVCb290TWVkaQ0KPiA+ ID4gPiA+ID4gYUwNCj4gPiA+ID4gPiA+IGliDQo+ID4gPiA+ID4gPiAuaA0KPiA+ID4gPiA+ID4g fCAgNDggLS0tLS0tLS0tDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiBTaWxp Y29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxpYi9G aXJtDQo+ID4gPiA+ID4gd2ENCj4gPiA+ID4gPiByZQ0KPiA+ID4gPiA+IEJvDQo+ID4gPiA+ID4g bw0KPiA+ID4gPiA+ID4gdE1lZGlhTGliLmMgICAgICAgICB8IDEwOSAtLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiA+ID4gPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTU5IGRlbGV0aW9ucygtKQ0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4N Cj4gPiA+ID4NCj4gPiA+DQo+ID4NCj4gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9M aWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxpYi9EeGVTbW1GaQ0KPiA+ID4gPiA+ID4gcg0KPiA+ ID4gPiA+ID4gbXdhcmVCb290TWVkaWFMaWIuaW5mDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ ID4gPiA+DQo+ID4gPg0KPiA+DQo+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvTGli cmFyeS9QZWlEeGVTbW1Cb290TWVkaWFMaWIvRHhlU21tRmkNCj4gPiA+ID4gPiA+IHINCj4gPiA+ ID4gPiA+IG13YXJlQm9vdE1lZGlhTGliLmluZg0KPiA+ID4gPiA+ID4gaW5kZXggODNlZDVmMDRh Zi4uN2UxMGI1ZjdhNyAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4gPg0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29u UGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGliL0R4ZVNtbUZpDQo+ID4gPiA+ID4gPiBy DQo+ID4gPiA+ID4gPiBtd2FyZUJvb3RNZWRpYUxpYi5pbmYNCj4gPiA+ID4gPiA+ICsrKw0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0xp YnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGliL0R4ZVNtbQ0KPiA+ID4gPiA+ID4gKysrIEZpcm13 YXJlQm9vdE1lZGlhTGliLmluZg0KPiA+ID4gPiA+ID4gQEAgLTI3LDcgKzI3LDYgQEANCj4gPiA+ ID4gPiA+ICAjDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIFtTb3VyY2VzXQ0KPiA+ID4gPiA+ ID4gLSAgRmlybXdhcmVCb290TWVkaWFMaWIuYw0KPiA+ID4gPiA+ID4gICAgRHhlU21tRmlybXdh cmVCb290TWVkaWFMaWIuYw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICBbUGFja2FnZXNdDQo+ ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ID4gPiBhL1NpbGljb24vSW50ZWwvSW50ZWxT aWxpY29uUGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGliLw0KPiA+ID4gPiA+ID4gUGUN Cj4gPiA+ID4gPiA+IGlGDQo+ID4gPiA+ID4gPiBpcg0KPiA+ID4gPiA+ID4gbXcNCj4gPiA+ID4g PiA+IGFyDQo+ID4gPiA+ID4gPiBlQm9vdE1lZGlhTGliLmluZg0KPiA+ID4gPiA+ID4gYi9TaWxp Y29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxpYi8N Cj4gPiA+ID4gPiA+IFBlDQo+ID4gPiA+ID4gPiBpRg0KPiA+ID4gPiA+ID4gaXINCj4gPiA+ID4g PiA+IG13DQo+ID4gPiA+ID4gPiBhcg0KPiA+ID4gPiA+ID4gZUJvb3RNZWRpYUxpYi5pbmYNCj4g PiA+ID4gPiA+IGluZGV4IDA2M2M0MDI3ZDMuLmZmMWRhMzEzODcgMTAwNjQ0DQo+ID4gPiA+ID4g PiAtLS0NCj4gPiA+ID4gPiA+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvTGlicmFy eS9QZWlEeGVTbW1Cb290TWVkaWFMaWIvDQo+ID4gPiA+ID4gPiBQZQ0KPiA+ID4gPiA+ID4gaUYN Cj4gPiA+ID4gPiA+IGlyDQo+ID4gPiA+ID4gPiBtdw0KPiA+ID4gPiA+ID4gYXINCj4gPiA+ID4g PiA+IGVCb290TWVkaWFMaWIuaW5mDQo+ID4gPiA+ID4gPiArKysgYi9TaWxpY29uL0ludGVsL0lu dGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYQ0KPiA+ID4gPiA+ID4gKysr IExpDQo+ID4gPiA+ID4gPiArKysgYi8NCj4gPiA+ID4gPiA+ICsrKyBQZQ0KPiA+ID4gPiA+ID4g KysrIGlGDQo+ID4gPiA+ID4gPiArKysgaXINCj4gPiA+ID4gPiA+ICsrKyBtd2FyZUJvb3RNZWRp YUxpYi5pbmYNCj4gPiA+ID4gPiA+IEBAIC0yMiw3ICsyMiw2IEBADQo+ID4gPiA+ID4gPiAgICBM SUJSQVJZX0NMQVNTICAgICAgICA9IEZpcm13YXJlQm9vdE1lZGlhTGliDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gIFtTb3VyY2VzXQ0KPiA+ID4gPiA+ID4gLSAgRmlybXdhcmVCb290TWVkaWFM aWIuYw0KPiA+ID4gPiA+ID4gICAgUGVpRmlybXdhcmVCb290TWVkaWFMaWIuYw0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ICBbUGFja2FnZXNdDQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4g PiA+ID4gPiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0luY2x1ZGUvTGlicmFyeS9G aXJtd2FyZUJvb3RNZQ0KPiA+ID4gPiA+ID4gZGkNCj4gPiA+ID4gPiA+IGFMDQo+ID4gPiA+ID4g PiBpYg0KPiA+ID4gPiA+ID4gLmgNCj4gPiA+ID4gPiA+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNp bGljb25Qa2cvSW5jbHVkZS9MaWJyYXJ5L0Zpcm13YXJlQm9vdE1lDQo+ID4gPiA+ID4gPiBkaQ0K PiA+ID4gPiA+ID4gYUwNCj4gPiA+ID4gPiA+IGliDQo+ID4gPiA+ID4gPiAuaA0KPiA+ID4gPiA+ ID4gaW5kZXggYWNhOTU5M2E4NC4uYjM2ZWJhY2YzMCAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLQ0K PiA+ID4gPiA+ID4gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9JbmNsdWRlL0xpYnJh cnkvRmlybXdhcmVCb290TWUNCj4gPiA+ID4gPiA+IGRpDQo+ID4gPiA+ID4gPiBhTA0KPiA+ID4g PiA+ID4gaWINCj4gPiA+ID4gPiA+IC5oDQo+ID4gPiA+ID4gPiArKysgYi9TaWxpY29uL0ludGVs L0ludGVsU2lsaWNvblBrZy9JbmNsdWRlL0xpYnJhcnkvRmlybXdhcmVCbw0KPiA+ID4gPiA+ID4g KysrIG90DQo+ID4gPiA+ID4gPiArKysgTWUNCj4gPiA+ID4gPiA+ICsrKyBkaQ0KPiA+ID4gPiA+ ID4gKysrIGFMDQo+ID4gPiA+ID4gPiArKysgaWINCj4gPiA+ID4gPiA+ICsrKyAuaA0KPiA+ID4g PiA+ID4gQEAgLTU1LDUyICs1NSw0IEBAIEZpcm13YXJlQm9vdE1lZGlhSXNLbm93biAoDQo+ID4g PiA+ID4gPiAgICBWT0lEDQo+ID4gPiA+ID4gPiAgICApOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+IC0vKioNCj4gPiA+ID4gPiA+IC0gIERldGVybWluZXMgaWYgdGhlIHBsYXRmb3JtIGZpcm13 YXJlIGlzIGJvb3RpbmcgZnJvbSBTUEkuDQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtICBA cmV0dmFsIFRSVUUgICAgICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBTUEkN Cj4gPiA+ID4gPiA+IC0gIEByZXR2YWwgRkFMU0UgICAgICAgUGxhdGZvcm0gZmlybXdhcmUgaXMg Ym9vdGluZyBmcm9tIGEgbm9uLVNQSQ0KPiA+IGRldmljZQ0KPiA+ID4gb3INCj4gPiA+ID4gPiB0 aGUNCj4gPiA+ID4gPiA+IGJvb3QgbWVkaWEgaXMgdW5rbm93bg0KPiA+ID4gPiA+ID4gLSoqLw0K PiA+ID4gPiA+ID4gLUJPT0xFQU4NCj4gPiA+ID4gPiA+IC1FRklBUEkNCj4gPiA+ID4gPiA+IC1G aXJtd2FyZUJvb3RNZWRpYUlzU3BpICgNCj4gPiA+ID4gPiA+IC0gIFZPSUQNCj4gPiA+ID4gPiA+ IC0gICk7DQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtLyoqDQo+ID4gPiA+ID4gPiAtICBE ZXRlcm1pbmVzIGlmIHRoZSBwbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gVUZTLg0K PiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gLSAgQHJldHZhbCBUUlVFICAgICAgICBQbGF0Zm9y bSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gVUZTDQo+ID4gPiA+ID4gPiAtICBAcmV0dmFsIEZB TFNFICAgICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBhIG5vbi1VRlMNCj4g PiBkZXZpY2UNCj4gPiA+ID4gb3INCj4gPiA+ID4gPiA+IHRoZSBib290IG1lZGlhIGlzIHVua25v d24NCj4gPiA+ID4gPiA+IC0qKi8NCj4gPiA+ID4gPiA+IC1CT09MRUFODQo+ID4gPiA+ID4gPiAt RUZJQVBJDQo+ID4gPiA+ID4gPiAtRmlybXdhcmVCb290TWVkaWFJc1VmcyAoDQo+ID4gPiA+ID4g PiAtICBWT0lEDQo+ID4gPiA+ID4gPiAtICApOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4g LS8qKg0KPiA+ID4gPiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxhdGZvcm0gZmlybXdhcmUg aXMgYm9vdGluZyBmcm9tIGVNTUMuDQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtICBAcmV0 dmFsIFRSVUUgICAgICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBlTU1DDQo+ ID4gPiA+ID4gPiAtICBAcmV0dmFsIEZBTFNFICAgICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJv b3RpbmcgZnJvbSBhIG5vbi1lTU1DDQo+ID4gPiA+IGRldmljZQ0KPiA+ID4gPiA+IG9yDQo+ID4g PiA+ID4gPiB0aGUgYm9vdCBtZWRpYSBpcyB1bmtub3duDQo+ID4gPiA+ID4gPiAtKiovDQo+ID4g PiA+ID4gPiAtQk9PTEVBTg0KPiA+ID4gPiA+ID4gLUVGSUFQSQ0KPiA+ID4gPiA+ID4gLUZpcm13 YXJlQm9vdE1lZGlhSXNFbW1jICgNCj4gPiA+ID4gPiA+IC0gIFZPSUQNCj4gPiA+ID4gPiA+IC0g ICk7DQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtLyoqDQo+ID4gPiA+ID4gPiAtICBEZXRl cm1pbmVzIGlmIHRoZSBwbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gTlZNZS4NCj4g PiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0gIEByZXR2YWwgVFJVRSAgICAgICAgUGxhdGZvcm0g ZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIE5WTWUuDQo+ID4gPiA+ID4gPiAtICBAcmV0dmFsIEZB TFNFICAgICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBhIG5vbi1OVk1lDQo+ ID4gPiA+IGRldmljZQ0KPiA+ID4gPiA+IG9yDQo+ID4gPiA+ID4gPiB0aGUgYm9vdCBtZWRpYSBp cyB1bmtub3duDQo+ID4gPiA+ID4gPiAtKiovDQo+ID4gPiA+ID4gPiAtQk9PTEVBTg0KPiA+ID4g PiA+ID4gLUVGSUFQSQ0KPiA+ID4gPiA+ID4gLUZpcm13YXJlQm9vdE1lZGlhSXNOdm1lICgNCj4g PiA+ID4gPiA+IC0gIFZPSUQNCj4gPiA+ID4gPiA+IC0gICk7DQo+ID4gPiA+ID4gPiAtDQo+ID4g PiA+ID4gPiAgI2VuZGlmDQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ID4gPiBhL1Np bGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGli Lw0KPiA+ID4gPiA+ID4gRmkNCj4gPiA+ID4gPiA+IHJtDQo+ID4gPiA+ID4gPiB3YQ0KPiA+ID4g PiA+ID4gcmUNCj4gPiA+ID4gPiA+IEINCj4gPiA+ID4gPiA+IG9vdE1lZGlhTGliLmMNCj4gPiA+ ID4gPiA+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvTGlicmFyeS9QZWlEeGVTbW1C b290TWVkaWFMaWIvDQo+ID4gPiA+ID4gPiBGaQ0KPiA+ID4gPiA+ID4gcm0NCj4gPiA+ID4gPiA+ IHdhDQo+ID4gPiA+ID4gPiByZQ0KPiA+ID4gPiA+ID4gQg0KPiA+ID4gPiA+ID4gb290TWVkaWFM aWIuYw0KPiA+ID4gPiA+ID4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gPiBp bmRleCAxMWExNGQxNzJkLi4wMDAwMDAwMDAwDQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvTGlicmFyeS9QZWlEeGVTbW1Cb290TWVk aWFMaWIvDQo+ID4gPiA+ID4gPiBGaQ0KPiA+ID4gPiA+ID4gcm0NCj4gPiA+ID4gPiA+IHdhDQo+ ID4gPiA+ID4gPiByZQ0KPiA+ID4gPiA+ID4gQg0KPiA+ID4gPiA+ID4gb290TWVkaWFMaWIuYw0K PiA+ID4gPiA+ID4gKysrIC9kZXYvbnVsbA0KPiA+ID4gPiA+ID4gQEAgLTEsMTA5ICswLDAgQEAN Cj4gPiA+ID4gPiA+IC0vKiogQGZpbGUNCj4gPiA+ID4gPiA+IC0gIFRoaXMgbGlicmFyeSBpZGVu dGlmaWVzIHRoZSBmaXJtd2FyZSBib290IG1lZGlhIGRldmljZS4NCj4gPiA+ID4gPiA+IC0NCj4g PiA+ID4gPiA+IC0gIFRoZSBmaXJtd2FyZSBib290IG1lZGlhIGRldmljZSBpcyB1c2VkIHRvIG1h a2Ugc3lzdGVtDQo+ID4gPiA+ID4gPiBpbml0aWFsaXphdGlvbiBkZWNpc2lvbnMgaW4gdGhlIGJv b3QgZmxvdyBkZXBlbmRlbnQNCj4gPiA+ID4gPiA+IC0gIHVwb24gZmlybXdhcmUgYm9vdCBtZWRp YS4gTm90ZSB0aGF0IHRoZSBmaXJtd2FyZSBib290IG1lZGlhDQo+ID4gPiA+ID4gPiBpcyB0aGUg c3RvcmFnZSBtZWRpYSB0aGF0IHRoZSBib290IGZpcm13YXJlIGlzIHN0b3JlZCBvbi4NCj4gPiA+ ID4gPiA+IC0gIEl0IGlzIG5vdCB0aGUgT1Mgc3RvcmFnZSBtZWRpYSB3aGljaCBtYXkgYmUgc3Rv cmVkIHVwb24gYQ0KPiA+ID4gPiA+ID4gZGlmZmVyZW50DQo+ID4gPiA+ID4gPiBub24tIHZvbGF0 aWxlIHN0b3JhZ2UgZGV2aWNlLg0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gLSAgVGhpcyBm aWxlIGNvbnRhaW5zIGxpYnJhcnkgaW1wbGVtZW50YXRpb24gY29tbW9uIHRvIGFsbCBib290DQo+ IHBoYXNlcy4NCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC1Db3B5cmlnaHQgKGMpIDIwMTks IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gPiA+ID4gPiByZXNlcnZlZC48QlI+ DQo+ID4gPiA+ID4gPiAtU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0qKi8NCj4gPiA+ID4gPiA+IC0NCj4gPiA+ ID4gPiA+IC0jaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4gPiA+ID4gPiAtI2luY2x1 ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4gLSNpbmNsdWRlDQo+ID4gPiA+ID4gPiA8TGlicmFyeS9G aXJtd2FyZUJvb3RNZWRpYUxpYi5oPg0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gLS8qKg0K PiA+ID4gPiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxhdGZvcm0gZmlybXdhcmUgaXMgYm9v dGluZyBmcm9tIFNQSS4NCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0gIEByZXR2YWwgVFJV RSAgICAgICAgUGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIFNQSQ0KPiA+ID4gPiA+ ID4gLSAgQHJldHZhbCBGQUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZy b20gYSBub24tU1BJDQo+ID4gZGV2aWNlDQo+ID4gPiBvcg0KPiA+ID4gPiA+IHRoZQ0KPiA+ID4g PiA+ID4gYm9vdCBtZWRpYSBpcyB1bmtub3duDQo+ID4gPiA+ID4gPiAtKiovDQo+ID4gPiA+ID4g PiAtQk9PTEVBTg0KPiA+ID4gPiA+ID4gLUVGSUFQSQ0KPiA+ID4gPiA+ID4gLUZpcm13YXJlQm9v dE1lZGlhSXNTcGkgKA0KPiA+ID4gPiA+ID4gLSAgVk9JRA0KPiA+ID4gPiA+ID4gLSAgKQ0KPiA+ ID4gPiA+ID4gLXsNCj4gPiA+ID4gPiA+IC0gIEVGSV9TVEFUVVMgICAgICAgICAgU3RhdHVzOw0K PiA+ID4gPiA+ID4gLSAgRldfQk9PVF9NRURJQV9UWVBFICBCb290TWVkaWE7DQo+ID4gPiA+ID4g PiAtDQo+ID4gPiA+ID4gPiAtICBTdGF0dXMgPSBHZXRGaXJtd2FyZUJvb3RNZWRpYVR5cGUgKCZC b290TWVkaWEpOw0KPiA+ID4gPiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSB8fCBCb290 TWVkaWEgIT0gRndCb290TWVkaWFTcGkpIHsNCj4gPiA+ID4gPiA+IC0gICAgcmV0dXJuIEZBTFNF Ow0KPiA+ID4gPiA+ID4gLSAgfSBlbHNlIHsNCj4gPiA+ID4gPiA+IC0gICAgcmV0dXJuIFRSVUU7 DQo+ID4gPiA+ID4gPiAtICB9DQo+ID4gPiA+ID4gPiAtfQ0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4g PiA+ID4gLS8qKg0KPiA+ID4gPiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxhdGZvcm0gZmly bXdhcmUgaXMgYm9vdGluZyBmcm9tIFVGUy4NCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0g IEByZXR2YWwgVFJVRSAgICAgICAgUGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIFVG Uw0KPiA+ID4gPiA+ID4gLSAgQHJldHZhbCBGQUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBp cyBib290aW5nIGZyb20gYSBub24tVUZTDQo+ID4gZGV2aWNlDQo+ID4gPiA+IG9yDQo+ID4gPiA+ ID4gPiB0aGUgYm9vdCBtZWRpYSBpcyB1bmtub3duDQo+ID4gPiA+ID4gPiAtKiovDQo+ID4gPiA+ ID4gPiAtQk9PTEVBTg0KPiA+ID4gPiA+ID4gLUVGSUFQSQ0KPiA+ID4gPiA+ID4gLUZpcm13YXJl Qm9vdE1lZGlhSXNVZnMgKA0KPiA+ID4gPiA+ID4gLSAgVk9JRA0KPiA+ID4gPiA+ID4gLSAgKQ0K PiA+ID4gPiA+ID4gLXsNCj4gPiA+ID4gPiA+IC0gIEVGSV9TVEFUVVMgICAgICAgICAgU3RhdHVz Ow0KPiA+ID4gPiA+ID4gLSAgRldfQk9PVF9NRURJQV9UWVBFICBCb290TWVkaWE7DQo+ID4gPiA+ ID4gPiAtDQo+ID4gPiA+ID4gPiAtICBTdGF0dXMgPSBHZXRGaXJtd2FyZUJvb3RNZWRpYVR5cGUg KCZCb290TWVkaWEpOw0KPiA+ID4gPiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSB8fCBC b290TWVkaWEgIT0gRndCb290TWVkaWFVZnMpIHsNCj4gPiA+ID4gPiA+IC0gICAgcmV0dXJuIEZB TFNFOw0KPiA+ID4gPiA+ID4gLSAgfSBlbHNlIHsNCj4gPiA+ID4gPiA+IC0gICAgcmV0dXJuIFRS VUU7DQo+ID4gPiA+ID4gPiAtICB9DQo+ID4gPiA+ID4gPiAtfQ0KPiA+ID4gPiA+ID4gLQ0KPiA+ ID4gPiA+ID4gLS8qKg0KPiA+ID4gPiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxhdGZvcm0g ZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIGVNTUMuDQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4g PiAtICBAcmV0dmFsIFRSVUUgICAgICAgIFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJv bSBlTU1DDQo+ID4gPiA+ID4gPiAtICBAcmV0dmFsIEZBTFNFICAgICAgIFBsYXRmb3JtIGZpcm13 YXJlIGlzIGJvb3RpbmcgZnJvbSBhIG5vbi1lTU1DDQo+ID4gPiA+IGRldmljZQ0KPiA+ID4gPiA+ IG9yDQo+ID4gPiA+ID4gPiB0aGUgYm9vdCBtZWRpYSBpcyB1bmtub3duDQo+ID4gPiA+ID4gPiAt KiovDQo+ID4gPiA+ID4gPiAtQk9PTEVBTg0KPiA+ID4gPiA+ID4gLUVGSUFQSQ0KPiA+ID4gPiA+ ID4gLUZpcm13YXJlQm9vdE1lZGlhSXNFbW1jICgNCj4gPiA+ID4gPiA+IC0gIFZPSUQNCj4gPiA+ ID4gPiA+IC0gICkNCj4gPiA+ID4gPiA+IC17DQo+ID4gPiA+ID4gPiAtICBFRklfU1RBVFVTICAg ICAgICAgIFN0YXR1czsNCj4gPiA+ID4gPiA+IC0gIEZXX0JPT1RfTUVESUFfVFlQRSAgQm9vdE1l ZGlhOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gLSAgU3RhdHVzID0gR2V0RmlybXdhcmVC b290TWVkaWFUeXBlICgmQm9vdE1lZGlhKTsNCj4gPiA+ID4gPiA+IC0gIGlmIChFRklfRVJST1Ig KFN0YXR1cykgfHwgQm9vdE1lZGlhICE9IEZ3Qm9vdE1lZGlhRW1tYykgew0KPiA+ID4gPiA+ID4g LSAgICByZXR1cm4gRkFMU0U7DQo+ID4gPiA+ID4gPiAtICB9IGVsc2Ugew0KPiA+ID4gPiA+ID4g LSAgICByZXR1cm4gVFJVRTsNCj4gPiA+ID4gPiA+IC0gIH0NCj4gPiA+ID4gPiA+IC19DQo+ID4g PiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtLyoqDQo+ID4gPiA+ID4gPiAtICBEZXRlcm1pbmVzIGlm IHRoZSBwbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gTlZNZS4NCj4gPiA+ID4gPiA+ IC0NCj4gPiA+ID4gPiA+IC0gIEByZXR2YWwgVFJVRSAgICAgICAgUGxhdGZvcm0gZmlybXdhcmUg aXMgYm9vdGluZyBmcm9tIE5WTWUuDQo+ID4gPiA+ID4gPiAtICBAcmV0dmFsIEZBTFNFICAgICAg IFBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBhIG5vbi1OVk1lDQo+ID4gPiA+IGRl dmljZQ0KPiA+ID4gPiA+IG9yDQo+ID4gPiA+ID4gPiB0aGUgYm9vdCBtZWRpYSBpcyB1bmtub3du DQo+ID4gPiA+ID4gPiAtKiovDQo+ID4gPiA+ID4gPiAtQk9PTEVBTg0KPiA+ID4gPiA+ID4gLUVG SUFQSQ0KPiA+ID4gPiA+ID4gLUZpcm13YXJlQm9vdE1lZGlhSXNOdm1lICgNCj4gPiA+ID4gPiA+ IC0gIFZPSUQNCj4gPiA+ID4gPiA+IC0gICkNCj4gPiA+ID4gPiA+IC17DQo+ID4gPiA+ID4gPiAt ICBFRklfU1RBVFVTICAgICAgICAgIFN0YXR1czsNCj4gPiA+ID4gPiA+IC0gIEZXX0JPT1RfTUVE SUFfVFlQRSAgQm9vdE1lZGlhOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gLSAgU3RhdHVz ID0gR2V0RmlybXdhcmVCb290TWVkaWFUeXBlICgmQm9vdE1lZGlhKTsNCj4gPiA+ID4gPiA+IC0g IGlmIChFRklfRVJST1IgKFN0YXR1cykgfHwgQm9vdE1lZGlhICE9IEZ3Qm9vdE1lZGlhTnZtZSkg ew0KPiA+ID4gPiA+ID4gLSAgICByZXR1cm4gRkFMU0U7DQo+ID4gPiA+ID4gPiAtICB9IGVsc2Ug ew0KPiA+ID4gPiA+ID4gLSAgICByZXR1cm4gVFJVRTsNCj4gPiA+ID4gPiA+IC0gIH0NCj4gPiA+ ID4gPiA+IC19DQo+ID4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+ID4gMi4xNi4yLndpbmRvd3MuMQ0K PiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPg0KPiA+DQo+IA0KPiANCj4gDQoNCg==