From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web12.10835.1593398552198519745 for ; Sun, 28 Jun 2020 19:42:32 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: ray.ni@intel.com) IronPort-SDR: Wxz5oMlZDEgoES6ZxFmGihPoK+rKyCBVqi5o2tsCzUJXS1VTXNSJCL19rQJLFx0obJLbe2pBaH SzmUEHRedIIw== X-IronPort-AV: E=McAfee;i="6000,8403,9666"; a="133327743" X-IronPort-AV: E=Sophos;i="5.75,293,1589266800"; d="scan'208";a="133327743" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2020 19:42:30 -0700 IronPort-SDR: NCZK/N8pE0ylVmbYjRfDBhwhfGvzmkeWBeEPM5diwSop3KS9UTG2OSf0aStQg+Mx+vzewE3tPB NHIC/XW3b2Lg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,293,1589266800"; d="scan'208";a="312906245" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga002.fm.intel.com with ESMTP; 28 Jun 2020 19:42:30 -0700 Received: from shsmsx107.ccr.corp.intel.com (10.239.4.96) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 28 Jun 2020 19:42:30 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.161]) by SHSMSX107.ccr.corp.intel.com ([169.254.9.25]) with mapi id 14.03.0439.000; Mon, 29 Jun 2020 10:42:27 +0800 From: "Ni, Ray" To: "Gao, Zhichao" , Laszlo Ersek , "devel@edk2.groups.io" CC: "Wu, Hao A" , "Wang, Jian J" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/PartitionDxe: Seperate the Udf handler Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg/PartitionDxe: Seperate the Udf handler Thread-Index: AQHWSew7PLCnQJWhREa5iLSmiIY1Kqjnb68g//+zqQCAAVTUYIAADIGAgAXP0gCAAJSHMA== Date: Mon, 29 Jun 2020 02:42:26 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C5D5560@SHSMSX104.ccr.corp.intel.com> References: <20200624055610.13984-1-zhichao.gao@intel.com> <734D49CCEBEEF84792F5B80ED585239D5C5D1BBB@SHSMSX104.ccr.corp.intel.com> <2f85dc90-41ae-0b51-4512-d65dbdd143b5@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5C5D2639@SHSMSX104.ccr.corp.intel.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 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2FvLCBaaGljaGFvIDx6 aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+IFNlbnQ6IE1vbmRheSwgSnVuZSAyOSwgMjAyMCA5OjQ3 IEFNDQo+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgTmksIFJheSA8cmF5 Lm5pQGludGVsLmNvbT47DQo+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBXdSwgSGFvIEEg PGhhby5hLnd1QGludGVsLmNvbT47IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29t PjsNCj4gR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTog W2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlTW9kdWxlUGtnL1BhcnRpdGlvbkR4ZTogU2VwZXJhdGUg dGhlDQo+IFVkZiBoYW5kbGVyDQo+IA0KPiBIaSBMYXN6bG8sDQo+IA0KPiBTb3JyeSwgSSBkaWRu J3QgcHV0IHRoZSBkZXRhaWwgaW5mbyBhYm91dCB0aGUgaXNzdWUuIExldCBtZSBkZXNjcmlwdCBo ZXJlLg0KPiANCj4gVGhlIGlzc3VlIGlzIG5vdCBvbmx5IGZvciBSZWQgSGF0LiBJIGZvdW5kIGl0 IHdpdGggdWJ1bnR1IDE4LjAyIGFtZDY0IGFuZA0KPiBGZWRvcmEtMjAteDg2XzY0IElTTyBpbWFn ZSBhcyB3ZWxsLiBJIGRpZG4ndCB2aWV3IGFsbCB0aGUgbGludXggaXNvIGltYWdlcy4NCj4gDQo+ IEhlcmUgaXMgdGhlIGlzc3VlOg0KPiBVc2luZyBVU0IgQ0QgUk9NIHdpdGggdGhlIGxpbnV4IElT TyBEVkQuIFJ1biB0aGUgcGxhdGZvcm0gYW5kIGVudGVyIFVFRkkNCj4gc2hlbGwgLT4gcGx1ZyB0 aGUgVVNCIENEIFJPTSB3aXRoIHRoZSBJU08gRFZEIC0+IHJ1biAibWFwIC1yIi4gVGhlIENEJ3Mg ZmlsZQ0KPiBzeXN0ZW0gZGlkbid0IHNob3cuDQo+IA0KPiBJdCB3b3JrcyBmaW5lIHdpdGggdGhl IG5vcm1hbCBib290IChzdWNoIGFzIEYyLCBGNyBhbmQgYXV0byBib290KSBiZWNhdXNlIGl0DQo+ IHdvdWxkIHJ1biB0aGUgKmNvbm5lY3QgYWxsKiBvcGVyYXRpb24uIFRoYXQgd291bGQgcnVuIHRo ZSBwYXJ0aXRpb24gZHJpdmVyDQo+IHNlcnZhbCB0aW1lcy4gRmlyc3QgdGltZSB0aGUgcGFydGl0 aW9uIGRyaXZlciB3b3VsZCBpbnN0YWxsIE1CUiBwYXJ0aXRpb24gaW5mbw0KPiBwcm90b2NvbCB3 aXRoIHRoZSBkZXZpY2UgaGFuZGxlIGFuZCBza2lwIHRoZSBVREYgY2hlY2suIFRoZSBzZWNvbmQg dGltZSwgaXQNCj4gd291bGQgZmFpbCB0aGUgTUJSIGNoZWNrIHdpdGggKmFscmVhZHkgc3RhcnRl ZCogYW5kIHJ1biBVREYgY2hlY2sgbmV4dC4gVGhhdA0KPiBtZWFucyBmb3Igc3VjaCBJU08gdGhl IFVFRkkgd291bGQgaW5zdGFsbCB0d28gcGFydGl0aW9uIHByb3RvY29sLCBib3RoIE1CUiBhbmQN Cj4gVURGLg0KWmhpY2hhbywNCkl0IHNvdW5kcyBsaWtlIGEgYnVnIGluIHBhcnRpdGlvbiBkcml2 ZXIgdGhhdCB0aGUgc2Vjb25kIFVERiBjaGVjayBzdWNjZWVkcy4NCg0KDQo+IA0KPiBCdXQgZm9y IHNoZWxsIGVudmlyb25tZW50LCB0aGUgVVNCIGhvdCBwbHVnIGhhbmRsZSB3b3VsZCBjb25uZWN0 IHRoZSBVU0INCj4gZGV2aWNlIG9ubHkgb25jZSBhbmQgbWlzc2luZyB0aGUgVURGIGNoZWNrLg0K PiANCj4gSSBkb24ndCBrbm93IHdoeSBsaW51eCBuZWVkIHRoZSBNQlIgaW5mby4gTWF5YmUgZm9y IGxlZ2FjeSBjb21wYXRpYmxlDQo+IHRoaW5raW5nIChteSBvcGluaW9uLCBtYXkgYmUgd3Jvbmcp Lg0KPiANCj4gSWYgdGhlIEdQVCwgTUJSIGFuZCBVREYgYXJlIGNvbmZsaWN0LCB0aGVuIHRoZSBv cmlnaW5hbCBsb2dpYyBpcyBmaW5lLiBCdXQgaW4gZmFjdCwNCj4gR1BUIGFuZCBNQlIgYXJlIGNv bmZsaWN0IGFuZCBHUFQvTUJSIGFuZCBVREYgYXJlIG5vdCBjb25mbGljdC4NCj4gDQo+IFRoYW5r cywNCj4gWmhpY2hhbw0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZy b206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gU2VudDogVGh1cnNkYXks IEp1bmUgMjUsIDIwMjAgNTowMiBQTQ0KPiA+IFRvOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29t PjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgWmhpY2hhbw0KPiA+IDx6aGljaGFvLmdhb0Bp bnRlbC5jb20+DQo+ID4gQ2M6IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgV2FuZywg SmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+Ow0KPiA+IEdhbywgTGltaW5nIDxsaW1pbmcu Z2FvQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRl TW9kdWxlUGtnL1BhcnRpdGlvbkR4ZTogU2VwZXJhdGUgdGhlDQo+IFVkZg0KPiA+IGhhbmRsZXIN Cj4gPg0KPiA+IE9uIDA2LzI1LzIwIDAyOjIxLCBOaSwgUmF5IHdyb3RlOg0KPiA+ID4gTGFzemxv LA0KPiA+ID4gWW91IGFyZSBzdXJwcmlzZWQgYmVjYXVzZSB0aGUgaXNzdWUgaXMgcmVsYXRlZCB0 byBSZWRoYXQsIG9yIGJlY2F1c2UNCj4gPiA+IHRoZSB3b3JkICJSZWRoYXQiIHNob3VsZCBub3Qg YmUgbWVudGlvbmVkIGluIHRoZSBCdWd6aWxsYT8NCj4gPg0KPiA+IEl0J3MgdG90YWxseSBmaW5l IHRvIG1lbnRpb24gUmVkIEhhdCAod2l0aCBjb3JyZWN0IHNwZWxsaW5nKSBpbiB0aGUgaXNzdWUN Cj4gZGVzY3JpcHRpb24uDQo+ID4gVGhlIG1vcmUgZGV0YWlscywgdGhlIGJldHRlci4NCj4gPg0K PiA+IEknbSBzdXJwcmlzZWQgdGhhdCB0aGUgaXNzdWUgKnNlZW1zKiBzcGVjaWZpYyB0byBSZWQg SGF0LiBFYXJsaWVyIEkgaGFkIGxvb2tlZA0KPiBvbi0NCj4gPiBhbmQtb2ZmIG9uIHRoZSBzY3Jp cHRzIHRoYXQgZ2VuZXJhdGUgKGZvciBleGFtcGxlKSB0aGUgRmVkb3JhIElTTyBpbWFnZXMgKHNv DQo+IHRoYXQNCj4gPiB0aGV5IGJlIGJvdGggQklPUy1ib290YWJsZSBhbmQgVUVGSS1ib290YWJs ZSksIGFuZCBJIGRvbid0IHJlY2FsbCBhbnkNCj4gcGFydGljdWxhcg0KPiA+IHRyaWNrcyB0aGF0 IHdvdWxkIGV4cGxvaXQgZ3JheSBhcmVhcyBpbiBzcGVjcyBvciBzby4NCj4gPg0KPiA+IEl0J3Mg cG9zc2libGUgdGhhdCB0aGUgKnRvb2xzKiB0aGUgc2NyaXB0cyB1c2UgZm9yIGZvcm1hdHRpbmcg dGhlIElTT3MgaGF2ZSBzb21lDQo+ID4gYnVncyBvciBxdWlya3MsIG9mIGNvdXJzZS4gKEJ1dCB0 aGVuIEknbSBhZ2FpbiBhIGJpdCBzdXJwcmlzZWQgZm9yIHRob3NlIGlzc3Vlcw0KPiBvcg0KPiA+ IHF1aXJrcyB0byBiZSBSSC1zcGVjaWZpYyAtLSBJIGp1c3QgZG9uJ3Qgc2VlIGEgcmVhc29uIGZv ciB1cyB0byBkaXZlcmdlIGZyb20gdGhlDQo+ID4gcmVzcGVjdGl2ZSB1cHN0cmVhbSBjb2RlIGJh c2VzIG9mIHRob3NlIHRvb2xzLikNCj4gPg0KPiA+ID4gaHR0cDovL21hbnBhZ2VzLnVidW50dS5j b20vbWFucGFnZXMvYmlvbmljL21hbjgvbWt1ZGZmcy44Lmh0bWwNCj4gPiA+IGlzIGEgdG9vbCB0 aGF0IGNyZWF0ZXMgVURGIGZpbGUgc3lzdGVtIHdpdGggYSBjb21wYXRpYmxlIE1CUiB0YWJsZSBp bg0KPiA+ID4gdGhlIHRvcCAzMktCIHNwZWNpYWxseSBmb3IgV2luZG93cy4NCj4gPiA+DQo+ID4g PiBTZWFyY2ggIiBXSE9MRSBESVNLIFZTIFBBUlRJVElPTiIgaW4gdGhlIHdlYiBwYWdlLg0KPiA+ DQo+ID4gVGhhbmtzIC0tIGFuZCwgaW5kZWVkLCB0aGlzIGNvbmZpcm1zIG15IHBvaW50LiBUaGUg aXNzdWUgKG9yIHVuZXhwZWN0ZWQNCj4gYmVoYXZpb3INCj4gPiBhdCBsZWFzdCkgaXMgbm90IHNw ZWNpZmljIHRvIFJlZCBIYXQsIGl0IGlzIHBhcnQgb2YgdGhlIChtb3N0DQo+ID4gbGlrZWx5OiB1 cHN0cmVhbSkgbWt1ZGZmcyB0b29sLiAoQ2FzZSBpbiBwb2ludCwgdGhlIG1hbnVhbCBwYWdlIHlv dSdyZSBxdW90aW5nDQo+IGlzDQo+ID4gZnJvbSBhbiBVYnVudHUgZGlzdHJvLikNCj4gPg0KPiA+ IEkgdGhpbmsgYSBtaW5pbWFsIHJlcHJvZHVjZXIgdXNpbmcgdGhlIG1rdWRmZnMgY29tbWFuZCAo YW5kIG1heWJlIG1vcmUNCj4gPiBjb21tYW5kcykgd291bGQgYmUgbmljZSBpbiB0aGUgVGlhbm9D b3JlIEJaLg0KPiA+DQo+ID4gQW55d2F5LCBsb29raW5nIGF0IHRoZSBtYW51YWwgeW91J3ZlIGlk ZW50aWZpZWQsIGl0IGRvZXMgc2VlbSBsaWtlIGEgZ3JheQ0KPiBhcmVhLg0KPiA+IEl0J3MgYSBj b25mbGljdCBiZXR3ZWVuIHR3byBzcGVjaWZpY2F0aW9ucywgYXBwYXJlbnRseS4gT3IgcGVyaGFw cyBtb3JlDQo+IHByZWNpc2VseSwNCj4gPiBhIGJ1ZyBpbiB0aGUgVURGIHNwZWMuIChJdCBzZWVt cyByZWFsbHkgc3RyYW5nZSB0aGF0IGEgZmlsZXN5c3RlbSBpbnNpc3RzIG9uDQo+IGJlaW5nDQo+ ID4gaW5zdGFsbGVkIG9uIGEgY29tcGxldGUgYmxvY2sgZGV2aWNlLCBhbmQgbm90IG9uIGEgcGFy dGl0aW9uIGRlc2NyaWJlZCBpbiBhDQo+ID4gc3RhbmRhcmQgcGFydGl0aW9uIHRhYmxlLikNCj4g Pg0KPiA+IFRoZSB3b3JrYXJvdW5kIGRlc2NyaWJlZCBpbiB0aGUgbWFudWFsIGlzIHByZXNlbnRl ZCBhcyBhIHdvcmthcm91bmQgImZvcg0KPiA+IFdpbmRvd3MnIHNha2UiLiBJIGRvbid0IHRoaW5r IHRoYXQncyBmYWlyOyBpbiBteSAodW5lZHVjYXRlZD8pIG9waW5pb24NCj4gPiAqYW55KiBmaWxl IHN5c3RlbSBzaG91bGQgYmUgaGFwcHkgdG8gbGl2ZSBpbnNpZGUgYSBwYXJ0aXRpb24uIEkgd291 bGRuJ3QNCj4gImJsYW1lIg0KPiA+IFdpbmRvd3MgZm9yIG1ha2luZyBhbiBhc3N1bXB0aW9uIGxp a2UgdGhpcy4NCj4gPg0KPiA+IEZ1cnRoZXJtb3JlLCB0aGUgdGVjaG5pY2FsIGRldGFpbHMgb2Yg dGhlIHdvcmthcm91bmQgYXJlIHJlYWxseSBhbm5veWluZzoNCj4gPg0KPiA+ICAgICBTbyAgdGhl ICB3aG9sZSAgZGlzayBkZXZpY2UgIGFuZCAgYWxzbyBmaXJzdCBwYXJ0aXRpb24gb24gZGlzaw0K PiA+ICAgICBwb2ludHMgdG8gc2FtZSBzZWN0b3JzLg0KPiA+DQo+ID4gVGhpcyBtZWFucyB0aGF0 IHRoZSBmaXJzdCBwYXJ0aXRpb24gcmVjdXJzaXZlbHkgaW5jbHVkZXMgaXRzZWxmIC0tIGluIG90 aGVyIHdvcmRzLA0KPiBpdA0KPiA+IGluY2x1ZGVzIHRoZSBwYXJ0aXRpb24gKnRhYmxlKiB0aGF0 IGRlc2NyaWJlcyBpdHNlbGYuIDovDQo+ID4NCj4gPiBUaGUgbWFudWFsIHRoZW4gc2F5cywNCj4g Pg0KPiA+ICAgICBta3VkZmZzICBvcHRpb24gLS1ib290YXJlYT1tYnIgcHV0IHN1Y2ggTUJSIHRh YmxlIGZvciBjb21wYXRpYmlsaXR5DQo+ID4gICAgIHdpdGggTWljcm9zb2Z0IFdpbmRvd3Mgc3lz dGVtcyBpbnRvIGRpc2sgd2hlbiBmb3JtYXR0aW5nLg0KPiA+DQo+ID4gU28gbWF5YmUgdGhlcmUg KmlzKiBhIGJ1ZyBpbiB0aGUgUmVkIEhhdCBJU08gZ2VuZXJhdG9yIHNjcmlwdHM7IEknbSBub3Qg c3VyZS4NCj4gSQ0KPiA+IGRvbid0IHNlZSBhIHJlYXNvbiB3aHkgIi0tYm9vdGFyZWE9bWJyIiBz aG91bGQgZXZlciBiZSB1c2VkIHdpdGgNCj4gPiAqcmVtb3ZhYmxlKiBtZWRpYSAoc3VjaCBhcyBh biBJU08gaW1hZ2UpLiBUaGUgbWt1ZGZmcyBtYW51YWwgc3RhdGVzIHRoYXQNCj4gdGhpcw0KPiA+ IHRyaWNrZXJ5IGlzIHVzZWZ1bCBvbmx5IGZvciBub24tcmVtb3ZhYmxlIG1lZGlhIGV2ZW4gb24g V2luZG93czoNCj4gPg0KPiA+ICAgICBNaWNyb3NvZnQgV2luZG93cyBzeXN0ZW1zIGFyZSB1bmFi bGUgdG8gZGV0ZWN0IG5vbi1yZW1vdmFibGUgaGFyZA0KPiA+ICAgICBkaXNrcyB3aXRob3V0IE1C UiBvciBHUFQgcGFydGl0aW9uIHRhYmxlLiAgUmVtb3ZhYmxlIGRpc2tzIGRvIG5vdA0KPiA+ICAg ICBoYXZlIHRoaXMgcmVzdHJpY3Rpb24uDQo+ID4NCj4gPiAoUGVyc29uYWxseSBJJ3ZlIGJlZW4g dXNpbmcgYW4gVURGLWZvcm1hdHRlZCBVU0IgcGVuZHJpdmUgZm9yIGEgbG9uZyB0aW1lDQo+IG5v dywNCj4gPiBiZWNhdXNlIGl0IHN1cHBvcnRzIDRHKyBmaWxlcywgYW5kIGlzIGNvbXBhdGlibGUg d2l0aCBib3RoIExpbnV4IGFuZCBXaW5kb3dzLg0KPiA+IFRoZXJlJ3Mgbm8gcGFydGl0aW9uIHRh YmxlIG9uIGl0OyBJIGZvcm1hdHRlZCB0aGUgcGVuZHJpdmUgbXlzZWxmLCBhbmQgSSB1c2VkDQo+ ID4gbmVpdGhlciBhIHBhcnRpdGlvbiB0YWJsZSBub3IgdGhlICItLWJvb3RhcmVhPW1icicgZmxh Zy4pDQo+ID4NCj4gPiBZZXQgZnVydGhlciwgSSBhbHNvIGRvbid0IHVuZGVyc3RhbmQgd2h5IHRo aXMgaXNzdWUgaXMgYmVpbmcgcmVwb3J0ZWQgb25seSBub3csDQo+ID4gYW5kIG5vdCBiZWZvcmUu IFRpYW5vQ29yZSMyODIzIGRvZXMgbm90IGV4cGxhaW4gd2hhdCBpdCBpcyBleGFjdGx5IHRoYXQg ZmFpbHMsDQo+ID4gd2l0aCBSSCBJU09zLiBJJ3ZlIGJvb3RlZCBhIHdob2xlIGxvdCBvZiBzdWNo IElTT3Mgb3ZlciB0aW1lICh1c2luZyBPVk1GKS4NCj4gPg0KPiA+IFNvIGlzIHRoaXMgLS0gdGhh dCBpcywgdGhlIGFzc3VtZWQgdXNlIG9mICItLWJvb3RhcmVhPW1iciIgLS0gYSByZWNlbnQgaXNz dWU/DQo+ID4NCj4gPiBJcyBpdCBhIHJlZ3Jlc3Npb24gd2l0aCB0aGUgSVNPcz8NCj4gPg0KPiA+ IFdoYXQgaXMgdGhlIGJhZCBzeW1wdG9tICpwcmVjaXNlbHkqLCB3aGVuIHRoZSBJU08gaW1hZ2Ug aXMgZm9ybWF0dGVkIHdpdGgNCj4gIi0tDQo+ID4gYm9vdGFyZWE9bWJyIj8NCj4gPg0KPiA+IFRo ZSBwcm9ibGVtIGRlc2NyaXB0aW9uIGlzIHZlcnkgbGFja2luZy4NCj4gPg0KPiA+IFRoYW5rcywN Cj4gPiBMYXN6bG8NCj4gPg0KPiA+DQo+ID4gPiBJIHRoaW5rIG1heWJlIGVkazIgTWJyIGxvZ2lj IHNob3VsZCAoYnV0IGRvZXNuJ3QpIHNraXAgTUJSIHdob3NlDQo+ID4gPiBwYXJ0aXRpb24gc3Rh cnRzIGZyb20gTEJBICMwIChpbmNsdWRlcyBNQlIgaXRzZWxmKS4NCj4gPiA+DQo+ID4gPj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNl a0ByZWRoYXQuY29tPg0KPiA+ID4+IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSAyNCwgMjAyMCA3OjU4 IFBNDQo+ID4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBOaSwgUmF5IDxyYXkubmlAaW50 ZWwuY29tPjsgR2FvLCBaaGljaGFvDQo+ID4gPj4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4g PiA+PiBDYzogV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEoNCj4g PiA+PiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50 ZWwuY29tPg0KPiA+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1 bGVQa2cvUGFydGl0aW9uRHhlOiBTZXBlcmF0ZQ0KPiA+ID4+IHRoZSBVZGYgaGFuZGxlcg0KPiA+ ID4+DQo+ID4gPj4gT24gMDYvMjQvMjAgMTA6MzIsIE5pLCBSYXkgd3JvdGU6DQo+ID4gPj4+IFpo aWNoYW8sDQo+ID4gPj4+IFdpbGwgdHdvIEJsb2NrSW8gY2hpbGQgZGV2aWNlcyBjb3ZlciB0aGUg c2FtZSByYW5nZSBpbiB0aGUgSVNPIGFmdGVyIHlvdXINCj4gPiBwYXRjaD8NCj4gPiA+Pj4NCj4g PiA+Pj4gSSBkb24ndCB0aGluayB0aGF0J3MgYSB2YWxpZCBiZWhhdmlvci4NCj4gPiA+Pg0KPiA+ ID4+IFJpZ2h0OyBJJ20gc3VycHJpc2VkIHRvIGZpbmQgdGhlIFJlZCBIYXQgcmVmZXJlbmNlIGlu IGJvdGggdGhlIGNvbW1pdA0KPiA+ID4+IG1lc3NhZ2UgYW5kIHRoZSBCWi4NCj4gPiA+Pg0KPiA+ ID4+IEkgY2FuJ3Qgc2F5IEkgdW5kZXJzdGFuZCB0aGUgaXNzdWUgYXQgaGFuZCwgYnV0IGFyZSB3 ZSBzdXJlIHRoaXMNCj4gPiA+PiBpc24ndCBhIGJ1ZyAtLSBhIHN0YW5kYXJkcyBjb25mb3JtYW5j ZSBwcm9ibGVtIC0tIHdpdGggdGhlIElTTyBpbiBxdWVzdGlvbj8NCj4gPiA+Pg0KPiA+ID4+IFpo aWNoYW8sIGRvIHlvdSBoYXZlIGEgbGluayB0byBhbiBJU08gaW1hZ2UgdGhhdCB0cmlnZ2VycyB0 aGUNCj4gPiA+PiBwcm9ibGVtLCBhbmQgY2FuIHlvdSBwcm92aWRlIGEgaGV4ZHVtcCBvZiB0aGUg cGFydCBvZiB0aGUgaW1hZ2UgdGhhdA0KPiA+ID4+IGlzIGVpdGhlciBidWdneSwgb3IgdHJpZ2dl cnMgdGhlIHByb2JsZW0gaW4gZWRrMj8gV2l0aCBhIG1vcmUNCj4gPiA+PiBzcGVjaWZpYyBpc3N1 ZSBkZXNjcmlwdGlvbiwgSSBtaWdodCBiZSBhYmxlIHRvIGZpbmQgc29tZW9uZSBhdCBSZWQNCj4g PiA+PiBIYXQgd2hvIGNvdWxkIGNvbW1lbnQgd2l0aCBtb3JlIGluc2lnaHQgdGhhbiBteXNlbGYu DQo+ID4gPj4NCj4gPiA+PiBUaGFua3MhDQo+ID4gPj4gTGFzemxvDQo+ID4gPj4NCj4gPiA+Pj4N Cj4gPiA+Pj4gVGhhbmtzLA0KPiA+ID4+PiBSYXkNCj4gPiA+Pj4NCj4gPiA+Pj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+PiBGcm9tOiBHYW8sIFpoaWNoYW8gPHpoaWNoYW8u Z2FvQGludGVsLmNvbT4NCj4gPiA+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSAyNCwgMjAyMCAx OjU2IFBNDQo+ID4gPj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+Pj4+IENjOiBX dSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+ Ow0KPiA+ID4+Pj4gV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBHYW8sIExp bWluZw0KPiA+ID4+Pj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiA+ID4+Pj4gU3ViamVjdDog W1BBVENIXSBNZGVNb2R1bGVQa2cvUGFydGl0aW9uRHhlOiBTZXBlcmF0ZSB0aGUgVWRmDQo+ID4g Pj4+PiBoYW5kbGVyDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRp YW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjMNCj4gPiA+Pj4+DQo+ID4gPj4+PiBTb21l IGxpbnV4IGlzbyBsaWtlIFJlZGhhdCB3b3VsZCBjb250YWluIGJvdGggTUJSIGluZm8gaW4gdGhl IGZpcnN0DQo+ID4gPj4+PiA1MTIgYnl0ZXMgYW5kIHZvbHVtZSBpbmZvIGF0IHRoZSBiZWdpbm5p bmcgb2YgMzJLQiBvZmZzZXQuDQo+ID4gPj4+PiBCdXQgdGhlIHBhcnRpdGlvbiBkcml2ZXIgd291 bGQgb25seSBjaG9vc2Ugb25lIG9mIHRoZSBHUFQsIE1CUiwgYW5kDQo+ID4gPj4+PiBVREYoZWwg dG9yaXRvIGNvbXBhdGlibGUpIHRvIGluc3RhbGwgdGhlIHBhcnRpdGlvbi4gVGhhdCB3b3VsZCBs b3NlDQo+ID4gPj4+PiBvbmUgaW5mbyBmb3Igc3VjaCBsaW51eCBJU08gZHVyaW5nIG9uZSBjb25u ZWN0LiBBbmQgVURGKGVsIHRvcml0bw0KPiA+ID4+Pj4gY29tcGF0aWJsZSkgaXMgbm90IGNvbmZs aWN0ZWQgd2l0aCBNQlIvR1BULiBTbyBwYXJ0aXRpb24gZHJpdmVyDQo+ID4gPj4+PiBzaG91bGQg Y2hlY2sgVURGIGFuZCBNQlIvR1BUIHNlcGFyYXRlbHkuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gQ2M6 IEhhbyBBIFd1IDxoYW8uYS53dUBpbnRlbC5jb20+DQo+ID4gPj4+PiBDYzogUmF5IE5pIDxyYXku bmlAaW50ZWwuY29tPg0KPiA+ID4+Pj4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRl bC5jb20+DQo+ID4gPj4+PiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ ID4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBaaGljaGFvIEdhbyA8emhpY2hhby5nYW9AaW50ZWwuY29t Pg0KPiA+ID4+Pj4gLS0tDQo+ID4gPj4+PiAgLi4uL1VuaXZlcnNhbC9EaXNrL1BhcnRpdGlvbkR4 ZS9QYXJ0aXRpb24uYyAgIHwgNTIgKysrKysrKysrKysrKy0tLS0tLQ0KPiA+ID4+Pj4gIDEgZmls ZSBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkNCj4gPiA+Pj4+DQo+ ID4gPj4+PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL1BhcnRpdGlv bkR4ZS9QYXJ0aXRpb24uYw0KPiA+ID4+Pj4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Rpc2sv UGFydGl0aW9uRHhlL1BhcnRpdGlvbi5jDQo+ID4gPj4+PiBpbmRleCBkMWM4NzhhZDJlLi41NjI0 OTBkYjRmIDEwMDY0NA0KPiA+ID4+Pj4gLS0tIGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNr L1BhcnRpdGlvbkR4ZS9QYXJ0aXRpb24uYw0KPiA+ID4+Pj4gKysrIGIvTWRlTW9kdWxlUGtnL1Vu aXZlcnNhbC9EaXNrL1BhcnRpdGlvbkR4ZS9QYXJ0aXRpb24uYw0KPiA+ID4+Pj4gQEAgLTUsNyAr NSw3IEBADQo+ID4gPj4+PiAgICBNQlIsIGFuZCBHUFQgcGFydGl0aW9uIHNjaGVtZXMgYXJlIHN1 cHBvcnRlZC4NCj4gPiA+Pj4+DQo+ID4gPj4+PiAgQ29weXJpZ2h0IChjKSAyMDE4IFF1YWxjb21t IERhdGFjZW50ZXIgVGVjaG5vbG9naWVzLCBJbmMuDQo+ID4gPj4+PiAtQ29weXJpZ2h0IChjKSAy MDA2IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+Pj4+IHJlc2Vy dmVkLjxCUj4NCj4gPiA+Pj4+ICtDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDIwLCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4+Pj4gK3Jlc2VydmVkLjxCUj4NCj4gPiA+Pj4+ICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4+Pj4NCj4g PiA+Pj4+ICAqKi8NCj4gPiA+Pj4+IEBAIC0zOSw3ICszOSw2IEBAIEVGSV9EUklWRVJfQklORElO R19QUk9UT0NPTA0KPiA+ID4+Pj4gZ1BhcnRpdGlvbkRyaXZlckJpbmRpbmcgPSB7ICBQQVJUSVRJ T05fREVURUNUX1JPVVRJTkUNCj4gPiBtUGFydGl0aW9uRGV0ZWN0Um91dGluZVRhYmxlW10gPSB7 DQo+ID4gPj4+PiAgICBQYXJ0aXRpb25JbnN0YWxsR3B0Q2hpbGRIYW5kbGVzLA0KPiA+ID4+Pj4g ICAgUGFydGl0aW9uSW5zdGFsbE1ickNoaWxkSGFuZGxlcywNCj4gPiA+Pj4+IC0gIFBhcnRpdGlv bkluc3RhbGxVZGZDaGlsZEhhbmRsZXMsDQo+ID4gPj4+PiAgICBOVUxMDQo+ID4gPj4+PiAgfTsN Cj4gPiA+Pj4+DQo+ID4gPj4+PiBAQCAtMTg5LDYgKzE4OCw4IEBAIFBhcnRpdGlvbkRyaXZlckJp bmRpbmdTdGFydCAoICB7DQo+ID4gPj4+PiAgICBFRklfU1RBVFVTICAgICAgICAgICAgICAgIFN0 YXR1czsNCj4gPiA+Pj4+ICAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgT3BlblN0YXR1czsN Cj4gPiA+Pj4+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgVWRmU3RhdHVzOw0KPiA+ID4+ Pj4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICBHcHRNYnJTdGF0dXM7DQo+ID4gPj4+PiAg ICBFRklfQkxPQ0tfSU9fUFJPVE9DT0wgICAgICpCbG9ja0lvOw0KPiA+ID4+Pj4gICAgRUZJX0JM T0NLX0lPMl9QUk9UT0NPTCAgICAqQmxvY2tJbzI7DQo+ID4gPj4+PiAgICBFRklfRElTS19JT19Q Uk9UT0NPTCAgICAgICpEaXNrSW87DQo+ID4gPj4+PiBAQCAtMzAwLDI2ICszMDEsNDcgQEAgUGFy dGl0aW9uRHJpdmVyQmluZGluZ1N0YXJ0ICgNCj4gPiA+Pj4+ICAgIGlmIChCbG9ja0lvLT5NZWRp YS0+TWVkaWFQcmVzZW50IHx8DQo+ID4gPj4+PiAgICAgICAgKEJsb2NrSW8tPk1lZGlhLT5SZW1v dmFibGVNZWRpYSAmJiAhQmxvY2tJby0+TWVkaWEtDQo+ID4gPkxvZ2ljYWxQYXJ0aXRpb24pKSB7 DQo+ID4gPj4+PiAgICAgIC8vDQo+ID4gPj4+PiAtICAgIC8vIFRyeSBmb3IgR1BULCB0aGVuIGxl Z2FjeSBNQlIgcGFydGl0aW9uIHR5cGVzLCBhbmQgdGhlbiBVREYgYW5kIEVsDQo+ID4gVG9yaXRv Lg0KPiA+ID4+Pj4gLSAgICAvLyBJZiB0aGUgbWVkaWEgc3VwcG9ydHMgYSBnaXZlbiBwYXJ0aXRp b24gdHlwZSBpbnN0YWxsIGNoaWxkIGhhbmRsZXMgdG8NCj4gPiA+Pj4+IC0gICAgLy8gcmVwcmVz ZW50IHRoZSBwYXJ0aXRpb25zIGRlc2NyaWJlZCBieSB0aGUgbWVkaWEuDQo+ID4gPj4+PiArICAg IC8vIFRyeSBmb3IgVURGIChFbCBUT3JpdG8gY29tcGF0aWJsZSkgYW5kIEdQVC9NQlIgcGFydGl0 aW9uIHR5cGVzLg0KPiA+ID4+Pj4gKyAgICAvLyBJZiB0aGUgbWVkaWEgc3VwcG9ydHMgYSBnaXZl biBwYXJ0aXRpb24gdHlwZSwgaXQgd291bGQgaW5zdGFsbCBjaGlsZA0KPiA+IGhhbmRsZXMNCj4g PiA+Pj4+ICsgICAgLy8gdG8gcmVwcmVzZW50IHRoZSBwYXJ0aXRpb25zIGRlc2NyaWJlZCBieSB0 aGUgbWVkaWEuDQo+ID4gPj4+PiArICAgIC8vIE5vdGVzOiBHUFQgaXMgY29uZmxpY3RlZCB3aXRo IE1CUi4gSXQgd291bGQgb25seSBpbnN0YWxsIG9uZSBvZg0KPiB0aGVtIHRvDQo+ID4gZGVzY3Jp YmUNCj4gPiA+Pj4+ICsgICAgLy8gdGhlIHBhcnRpdGlvbi4gVURGIChvciBFbCBUb3JpdG8pIGNh biBleGlzdCB3aXRoIE1CUiwgc28gbmVlZCB0bw0KPiBjaGVjaw0KPiA+IGl0IGFsb25nIHdpdGgN Cj4gPiA+Pj4+ICsgICAgLy8gR1BUL01CUi4NCj4gPiA+Pj4+ICAgICAgLy8NCj4gPiA+Pj4+ICsg ICAgVWRmU3RhdHVzID0gUGFydGl0aW9uSW5zdGFsbFVkZkNoaWxkSGFuZGxlcyAoDQo+ID4gPj4+ PiArICAgICAgICAgICAgICAgICAgVGhpcywNCj4gPiA+Pj4+ICsgICAgICAgICAgICAgICAgICBD b250cm9sbGVySGFuZGxlLA0KPiA+ID4+Pj4gKyAgICAgICAgICAgICAgICAgIERpc2tJbywNCj4g PiA+Pj4+ICsgICAgICAgICAgICAgICAgICBEaXNrSW8yLA0KPiA+ID4+Pj4gKyAgICAgICAgICAg ICAgICAgIEJsb2NrSW8sDQo+ID4gPj4+PiArICAgICAgICAgICAgICAgICAgQmxvY2tJbzIsDQo+ ID4gPj4+PiArICAgICAgICAgICAgICAgICAgUGFyZW50RGV2aWNlUGF0aA0KPiA+ID4+Pj4gKyAg ICAgICAgICAgICAgICAgICk7DQo+ID4gPj4+PiArDQo+ID4gPj4+PiAgICAgIFJvdXRpbmUgPSAm bVBhcnRpdGlvbkRldGVjdFJvdXRpbmVUYWJsZVswXTsNCj4gPiA+Pj4+ICAgICAgd2hpbGUgKCpS b3V0aW5lICE9IE5VTEwpIHsNCj4gPiA+Pj4+IC0gICAgICBTdGF0dXMgPSAoKlJvdXRpbmUpICgN Cj4gPiA+Pj4+IC0gICAgICAgICAgICAgICAgICAgVGhpcywNCj4gPiA+Pj4+IC0gICAgICAgICAg ICAgICAgICAgQ29udHJvbGxlckhhbmRsZSwNCj4gPiA+Pj4+IC0gICAgICAgICAgICAgICAgICAg RGlza0lvLA0KPiA+ID4+Pj4gLSAgICAgICAgICAgICAgICAgICBEaXNrSW8yLA0KPiA+ID4+Pj4g LSAgICAgICAgICAgICAgICAgICBCbG9ja0lvLA0KPiA+ID4+Pj4gLSAgICAgICAgICAgICAgICAg ICBCbG9ja0lvMiwNCj4gPiA+Pj4+IC0gICAgICAgICAgICAgICAgICAgUGFyZW50RGV2aWNlUGF0 aA0KPiA+ID4+Pj4gLSAgICAgICAgICAgICAgICAgICApOw0KPiA+ID4+Pj4gLSAgICAgIGlmICgh RUZJX0VSUk9SIChTdGF0dXMpIHx8IFN0YXR1cyA9PSBFRklfTUVESUFfQ0hBTkdFRCB8fCBTdGF0 dXMNCj4gPT0NCj4gPiBFRklfTk9fTUVESUEpIHsNCj4gPiA+Pj4+ICsgICAgICBHcHRNYnJTdGF0 dXMgPSAoKlJvdXRpbmUpICgNCj4gPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBUaGlz LA0KPiA+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXJIYW5kbGUsDQo+ ID4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgRGlza0lvLA0KPiA+ID4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIERpc2tJbzIsDQo+ID4gPj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgQmxvY2tJbywNCj4gPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBCbG9ja0lv MiwNCj4gPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBQYXJlbnREZXZpY2VQYXRoDQo+ ID4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiA+Pj4+ICsgICAgICBpZiAo IUVGSV9FUlJPUiAoR3B0TWJyU3RhdHVzKSB8fCBHcHRNYnJTdGF0dXMgPT0NCj4gPiA+Pj4+ICsg RUZJX01FRElBX0NIQU5HRUQgfHwgR3B0TWJyU3RhdHVzID09IEVGSV9OT19NRURJQSkgew0KPiA+ ID4+Pj4gICAgICAgICAgYnJlYWs7DQo+ID4gPj4+PiAgICAgICAgfQ0KPiA+ID4+Pj4gICAgICAg IFJvdXRpbmUrKzsNCj4gPiA+Pj4+ICAgICAgfQ0KPiA+ID4+Pj4gKw0KPiA+ID4+Pj4gKyAgICBp ZiAoIUVGSV9FUlJPUiAoVWRmU3RhdHVzKSB8fCAhRUZJX0VSUk9SIChHcHRNYnJTdGF0dXMpKSB7 DQo+ID4gPj4+PiArICAgICAgU3RhdHVzID0gRUZJX1NVQ0NFU1M7DQo+ID4gPj4+PiArICAgIH0g ZWxzZSBpZiAoVWRmU3RhdHVzID09IEVGSV9NRURJQV9DSEFOR0VEIHx8IEdwdE1iclN0YXR1cyA9 PQ0KPiA+IEVGSV9NRURJQV9DSEFOR0VEKSB7DQo+ID4gPj4+PiArICAgICAgU3RhdHVzID0gRUZJ X01FRElBX0NIQU5HRUQ7DQo+ID4gPj4+PiArICAgIH0gZWxzZSBpZiAoVWRmU3RhdHVzID09IEVG SV9OT19NRURJQSB8fCBHcHRNYnJTdGF0dXMgPT0NCj4gPiBFRklfTk9fTUVESUEpIHsNCj4gPiA+ Pj4+ICsgICAgICBTdGF0dXMgPSBFRklfTk9fTUVESUE7DQo+ID4gPj4+PiArICAgIH0NCj4gPiA+ Pj4+ICAgIH0NCj4gPiA+Pj4+ICAgIC8vDQo+ID4gPj4+PiAgICAvLyBJbiB0aGUgY2FzZSB0aGF0 IHRoZSBkcml2ZXIgaXMgYWxyZWFkeSBzdGFydGVkIChPcGVuU3RhdHVzID09DQo+ID4gPj4+PiBF RklfQUxSRUFEWV9TVEFSVEVEKSwNCj4gPiA+Pj4+IC0tDQo+ID4gPj4+PiAyLjIxLjAud2luZG93 cy4xDQo+ID4gPj4+DQo+ID4gPj4+DQo+ID4gPj4+IA0KPiA+ID4+Pg0KPiA+ID4NCj4gDQoNCg==