From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.20; helo=mga02.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 BB830211C6067 for ; Fri, 1 Feb 2019 03:04:01 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Feb 2019 03:04:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,548,1539673200"; d="scan'208";a="271717520" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga004.jf.intel.com with ESMTP; 01 Feb 2019 03:04:00 -0800 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 1 Feb 2019 03:04:00 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 1 Feb 2019 03:03:59 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.102]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.110]) with mapi id 14.03.0415.000; Fri, 1 Feb 2019 19:03:57 +0800 From: "Wu, Hao A" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Zeng, Star" Thread-Topic: [edk2] [PATCH v3 11/12] MdeModulePkg/SmmLockBoxLib: Support LockBox enlarge in UpdateLockBox() Thread-Index: AQHUufGzTwvjBhUKEUOFpzM0INavZKXKKhsAgACbUVA= Date: Fri, 1 Feb 2019 11:03:56 +0000 Message-ID: References: <20190201054728.8612-1-hao.a.wu@intel.com> <20190201054728.8612-12-hao.a.wu@intel.com> <1847a0dd-0012-ff73-78e1-7df46929e400@redhat.com> In-Reply-To: <1847a0dd-0012-ff73-78e1-7df46929e400@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v3 11/12] MdeModulePkg/SmmLockBoxLib: Support LockBox enlarge in UpdateLockBox() 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: Fri, 01 Feb 2019 11:04:02 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAwMSwgMjAxOSA1 OjQwIFBNDQo+IFRvOiBXdSwgSGFvIEE7IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBa ZW5nLCBTdGFyDQo+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIHYzIDExLzEyXSBNZGVNb2R1 bGVQa2cvU21tTG9ja0JveExpYjogU3VwcG9ydA0KPiBMb2NrQm94IGVubGFyZ2UgaW4gVXBkYXRl TG9ja0JveCgpDQo+IA0KPiBIaSBIYW8sDQo+IA0KPiBPbiAwMi8wMS8xOSAwNjo0NywgSGFvIFd1 IHdyb3RlOg0KPiA+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcu Y2dpP2lkPTE0MDkNCj4gPg0KPiA+IFRoaXMgY29tbWl0IHdpbGwgYWRkIHRoZSBzdXBwb3J0IHRv IGVubGFyZ2UgYSBMb2NrQm94IHdoZW4gdXNpbmcgdGhlDQo+ID4gTG9ja0JveExpYiBBUEkgVXBk YXRlTG9ja0JveCgpLg0KPiA+DQo+ID4gUGxlYXNlIG5vdGUgdGhhdCB0aGUgbmV3IHN1cHBvcnQg d2lsbCBPTkxZIHdvcmsgZm9yIExvY2tCb3ggd2l0aCBhdHRyaWJ1dGUNCj4gPiBMT0NLX0JPWF9B VFRSSUJVVEVfUkVTVE9SRV9JTl9TM19PTkxZIHNldC4NCj4gPg0KPiA+IFRoZSBmdW5jdGlvbmFs IHVuaS10ZXN0IGZvciB0aGUgY29tbWl0IGlzIGF2YWlsYWJsZSBhdDoNCj4gPiBodHRwczovL2dp dGh1Yi5jb20vaHd1MjUvZWRrMi90cmVlL2xvY2tib3hfdW5pdGVzdA0KPiA+DQo+ID4gQ2M6IEpp YW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gQ2M6IFJheSBOaSA8cmF5Lm5p QGludGVsLmNvbT4NCj4gPiBDYzogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiA+ IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjEN Cj4gPiBTaWduZWQtb2ZmLWJ5OiBIYW8gV3UgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gPiAtLS0N Cj4gPiAgTWRlTW9kdWxlUGtnL0luY2x1ZGUvTGlicmFyeS9Mb2NrQm94TGliLmggICAgICAgICAg ICAgfCAgNyArLQ0KPiA+ICBNZGVNb2R1bGVQa2cvTGlicmFyeS9Mb2NrQm94TnVsbExpYi9Mb2Nr Qm94TnVsbExpYi5jICB8ICA3ICstDQo+ID4gIE1kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbUxvY2tC b3hMaWIvU21tTG9ja0JveER4ZUxpYi5jIHwgIDUgKy0NCj4gPiAgTWRlTW9kdWxlUGtnL0xpYnJh cnkvU21tTG9ja0JveExpYi9TbW1Mb2NrQm94UGVpTGliLmMgfCAgNSArLQ0KPiA+ICBNZGVNb2R1 bGVQa2cvTGlicmFyeS9TbW1Mb2NrQm94TGliL1NtbUxvY2tCb3hTbW1MaWIuYyB8IDcyDQo+ICsr KysrKysrKysrKysrKysrKy0tDQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygr KSwgMTAgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0lu Y2x1ZGUvTGlicmFyeS9Mb2NrQm94TGliLmgNCj4gYi9NZGVNb2R1bGVQa2cvSW5jbHVkZS9MaWJy YXJ5L0xvY2tCb3hMaWIuaA0KPiA+IGluZGV4IDU5MjE3MzE0MTkuLmFkZGNlM2JkNGEgMTAwNjQ0 DQo+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0luY2x1ZGUvTGlicmFyeS9Mb2NrQm94TGliLmgNCj4g PiArKysgYi9NZGVNb2R1bGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0xvY2tCb3hMaWIuaA0KPiA+IEBA IC0yLDcgKzIsNyBAQA0KPiA+ICAgIFRoaXMgbGlicmFyeSBpcyBvbmx5IGludGVuZGVkIHRvIGJl IHVzZWQgYnkgRFhFIG1vZHVsZXMgdGhhdCBuZWVkIHNhdmUNCj4gPiAgICBjb25maWRlbnRpYWwg aW5mb3JtYXRpb24gdG8gTG9ja0JveCBhbmQgZ2V0IGl0IGJ5IFBFSSBtb2R1bGVzIGluIFMzIHBo YXNlLg0KPiA+DQo+ID4gLUNvcHlyaWdodCAoYykgMjAxMCAtIDIwMTgsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiArQ29weXJpZ2h0IChjKSAyMDEwIC0g MjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ ID4gIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiAgYXJl IGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMNCj4gPiBAQCAtODUsNyArODUsMTAgQEAgU2V0TG9ja0JveEF0dHJpYnV0ZXMgKA0KPiA+ICAg IEByZXR2YWwgUkVUVVJOX1NVQ0NFU1MgICAgICAgICAgICB0aGUgaW5mb3JtYXRpb24gaXMgc2F2 ZWQgc3VjY2Vzc2Z1bGx5Lg0KPiA+ICAgIEByZXR2YWwgUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVS ICB0aGUgR3VpZCBpcyBOVUxMLCBvciBCdWZmZXIgaXMgTlVMTCwNCj4gb3IgTGVuZ3RoIGlzIDAu DQo+ID4gICAgQHJldHZhbCBSRVRVUk5fTk9UX0ZPVU5EICAgICAgICAgIHRoZSByZXF1ZXN0ZWQg R1VJRCBub3QgZm91bmQuDQo+ID4gLSAgQHJldHZhbCBSRVRVUk5fQlVGRkVSX1RPT19TTUFMTCAg IHRoZSBvcmlnaW5hbCBidWZmZXIgdG8gdG9vIHNtYWxsIHRvDQo+IGhvbGQgbmV3IGluZm9ybWF0 aW9uLg0KPiA+ICsgIEByZXR2YWwgUkVUVVJOX0JVRkZFUl9UT09fU01BTEwgICBmb3IgbG9ja2Jv eCB3aXRoIGF0dHJpYnV0ZQ0KPiBMT0NLX0JPWF9BVFRSSUJVVEVfUkVTVE9SRV9JTl9QTEFDRSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9yaWdpbmFsIGJ1 ZmZlciB0byB0b28gc21hbGwgdG8gaG9sZCBuZXcNCj4gaW5mb3JtYXRpb24uDQo+ID4gKyAgQHJl dHZhbCBSRVRVUk5fT1VUX09GX1JFU09VUkNFUyAgIGZvciBsb2NrYm94IHdpdGggYXR0cmlidXRl DQo+IExPQ0tfQk9YX0FUVFJJQlVURV9SRVNUT1JFX0lOX1MzX09OTFksDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vIGVub3VnaCByZXNvdXJjZSB0byBzYXZlIHRo ZSBpbmZvcm1hdGlvbi4NCj4gPiAgICBAcmV0dmFsIFJFVFVSTl9BQ0NFU1NfREVOSUVEICAgICAg aXQgaXMgdG9vIGxhdGUgdG8gaW52b2tlIHRoaXMgaW50ZXJmYWNlDQo+ID4gICAgQHJldHZhbCBS RVRVUk5fTk9UX1NUQVJURUQgICAgICAgIGl0IGlzIHRvbyBlYXJseSB0byBpbnZva2UgdGhpcyBp bnRlcmZhY2UNCj4gPiAgICBAcmV0dmFsIFJFVFVSTl9VTlNVUFBPUlRFRCAgICAgICAgdGhlIHNl cnZpY2UgaXMgbm90IHN1cHBvcnRlZCBieQ0KPiBpbXBsZW1lbnRhaW9uLg0KPiA+IGRpZmYgLS1n aXQgYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9Mb2NrQm94TnVsbExpYi9Mb2NrQm94TnVsbExpYi5j DQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvTG9ja0JveE51bGxMaWIvTG9ja0JveE51bGxMaWIu Yw0KPiA+IGluZGV4IGM0MGRmZWEzOTguLjBhZGRhMWUyYTkgMTAwNjQ0DQo+ID4gLS0tIGEvTWRl TW9kdWxlUGtnL0xpYnJhcnkvTG9ja0JveE51bGxMaWIvTG9ja0JveE51bGxMaWIuYw0KPiA+ICsr KyBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0xvY2tCb3hOdWxsTGliL0xvY2tCb3hOdWxsTGliLmMN Cj4gPiBAQCAtMSw2ICsxLDYgQEANCj4gPiAgLyoqIEBmaWxlDQo+ID4NCj4gPiAtQ29weXJpZ2h0 IChjKSAyMDEwIC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiA+ICtDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4NCj4gPiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUg YWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+ICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxh YmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucw0KPiA+IEBAIC03Niw3ICs3NiwxMCBA QCBTZXRMb2NrQm94QXR0cmlidXRlcyAoDQo+ID4gICAgQHJldHZhbCBSRVRVUk5fU1VDQ0VTUyAg ICAgICAgICAgIHRoZSBpbmZvcm1hdGlvbiBpcyBzYXZlZCBzdWNjZXNzZnVsbHkuDQo+ID4gICAg QHJldHZhbCBSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIgIHRoZSBHdWlkIGlzIE5VTEwsIG9yIEJ1 ZmZlciBpcyBOVUxMLA0KPiBvciBMZW5ndGggaXMgMC4NCj4gPiAgICBAcmV0dmFsIFJFVFVSTl9O T1RfRk9VTkQgICAgICAgICAgdGhlIHJlcXVlc3RlZCBHVUlEIG5vdCBmb3VuZC4NCj4gPiAtICBA cmV0dmFsIFJFVFVSTl9CVUZGRVJfVE9PX1NNQUxMICAgdGhlIG9yaWdpbmFsIGJ1ZmZlciB0byB0 b28gc21hbGwgdG8NCj4gaG9sZCBuZXcgaW5mb3JtYXRpb24uDQo+ID4gKyAgQHJldHZhbCBSRVRV Uk5fQlVGRkVSX1RPT19TTUFMTCAgIGZvciBsb2NrYm94IHdpdGggYXR0cmlidXRlDQo+IExPQ0tf Qk9YX0FUVFJJQlVURV9SRVNUT1JFX0lOX1BMQUNFLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aGUgb3JpZ2luYWwgYnVmZmVyIHRvIHRvbyBzbWFsbCB0byBob2xk IG5ldw0KPiBpbmZvcm1hdGlvbi4NCj4gPiArICBAcmV0dmFsIFJFVFVSTl9PVVRfT0ZfUkVTT1VS Q0VTICAgZm9yIGxvY2tib3ggd2l0aCBhdHRyaWJ1dGUNCj4gTE9DS19CT1hfQVRUUklCVVRFX1JF U1RPUkVfSU5fUzNfT05MWSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbm8gZW5vdWdoIHJlc291cmNlIHRvIHNhdmUgdGhlIGluZm9ybWF0aW9uLg0KPiA+ICAgIEBy ZXR2YWwgUkVUVVJOX0FDQ0VTU19ERU5JRUQgICAgICBpdCBpcyB0b28gbGF0ZSB0byBpbnZva2Ug dGhpcyBpbnRlcmZhY2UNCj4gPiAgICBAcmV0dmFsIFJFVFVSTl9OT1RfU1RBUlRFRCAgICAgICAg aXQgaXMgdG9vIGVhcmx5IHRvIGludm9rZSB0aGlzIGludGVyZmFjZQ0KPiA+ICAgIEByZXR2YWwg UkVUVVJOX1VOU1VQUE9SVEVEICAgICAgICB0aGUgc2VydmljZSBpcyBub3Qgc3VwcG9ydGVkIGJ5 DQo+IGltcGxlbWVudGFpb24uDQo+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5 L1NtbUxvY2tCb3hMaWIvU21tTG9ja0JveER4ZUxpYi5jDQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJh cnkvU21tTG9ja0JveExpYi9TbW1Mb2NrQm94RHhlTGliLmMNCj4gPiBpbmRleCAwNDI4ZGVjYmFj Li41ZWU1NjNiNzFmIDEwMDY0NA0KPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1NtbUxv Y2tCb3hMaWIvU21tTG9ja0JveER4ZUxpYi5jDQo+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0xpYnJh cnkvU21tTG9ja0JveExpYi9TbW1Mb2NrQm94RHhlTGliLmMNCj4gPiBAQCAtMzAwLDcgKzMwMCwx MCBAQCBTZXRMb2NrQm94QXR0cmlidXRlcyAoDQo+ID4gICAgQHJldHZhbCBSRVRVUk5fU1VDQ0VT UyAgICAgICAgICAgIHRoZSBpbmZvcm1hdGlvbiBpcyBzYXZlZCBzdWNjZXNzZnVsbHkuDQo+ID4g ICAgQHJldHZhbCBSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIgIHRoZSBHdWlkIGlzIE5VTEwsIG9y IEJ1ZmZlciBpcyBOVUxMLA0KPiBvciBMZW5ndGggaXMgMC4NCj4gPiAgICBAcmV0dmFsIFJFVFVS Tl9OT1RfRk9VTkQgICAgICAgICAgdGhlIHJlcXVlc3RlZCBHVUlEIG5vdCBmb3VuZC4NCj4gPiAt ICBAcmV0dmFsIFJFVFVSTl9CVUZGRVJfVE9PX1NNQUxMICAgdGhlIG9yaWdpbmFsIGJ1ZmZlciB0 byB0b28gc21hbGwgdG8NCj4gaG9sZCBuZXcgaW5mb3JtYXRpb24uDQo+ID4gKyAgQHJldHZhbCBS RVRVUk5fQlVGRkVSX1RPT19TTUFMTCAgIGZvciBsb2NrYm94IHdpdGggYXR0cmlidXRlDQo+IExP Q0tfQk9YX0FUVFJJQlVURV9SRVNUT1JFX0lOX1BMQUNFLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aGUgb3JpZ2luYWwgYnVmZmVyIHRvIHRvbyBzbWFsbCB0byBo b2xkIG5ldw0KPiBpbmZvcm1hdGlvbi4NCj4gPiArICBAcmV0dmFsIFJFVFVSTl9PVVRfT0ZfUkVT T1VSQ0VTICAgZm9yIGxvY2tib3ggd2l0aCBhdHRyaWJ1dGUNCj4gTE9DS19CT1hfQVRUUklCVVRF X1JFU1RPUkVfSU5fUzNfT05MWSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbm8gZW5vdWdoIHJlc291cmNlIHRvIHNhdmUgdGhlIGluZm9ybWF0aW9uLg0KPiA+ICAg IEByZXR2YWwgUkVUVVJOX0FDQ0VTU19ERU5JRUQgICAgICBpdCBpcyB0b28gbGF0ZSB0byBpbnZv a2UgdGhpcyBpbnRlcmZhY2UNCj4gPiAgICBAcmV0dmFsIFJFVFVSTl9OT1RfU1RBUlRFRCAgICAg ICAgaXQgaXMgdG9vIGVhcmx5IHRvIGludm9rZSB0aGlzIGludGVyZmFjZQ0KPiA+ICAgIEByZXR2 YWwgUkVUVVJOX1VOU1VQUE9SVEVEICAgICAgICB0aGUgc2VydmljZSBpcyBub3Qgc3VwcG9ydGVk IGJ5DQo+IGltcGxlbWVudGFpb24uDQo+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9MaWJy YXJ5L1NtbUxvY2tCb3hMaWIvU21tTG9ja0JveFBlaUxpYi5jDQo+IGIvTWRlTW9kdWxlUGtnL0xp YnJhcnkvU21tTG9ja0JveExpYi9TbW1Mb2NrQm94UGVpTGliLmMNCj4gPiBpbmRleCA4YzNlNjVi Yzk2Li4xOWZkZDk5NWM2IDEwMDY0NA0KPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1Nt bUxvY2tCb3hMaWIvU21tTG9ja0JveFBlaUxpYi5jDQo+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0xp YnJhcnkvU21tTG9ja0JveExpYi9TbW1Mb2NrQm94UGVpTGliLmMNCj4gPiBAQCAtNDc3LDcgKzQ3 NywxMCBAQCBTZXRMb2NrQm94QXR0cmlidXRlcyAoDQo+ID4gICAgQHJldHZhbCBSRVRVUk5fU1VD Q0VTUyAgICAgICAgICAgIHRoZSBpbmZvcm1hdGlvbiBpcyBzYXZlZCBzdWNjZXNzZnVsbHkuDQo+ ID4gICAgQHJldHZhbCBSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIgIHRoZSBHdWlkIGlzIE5VTEws IG9yIEJ1ZmZlciBpcyBOVUxMLA0KPiBvciBMZW5ndGggaXMgMC4NCj4gPiAgICBAcmV0dmFsIFJF VFVSTl9OT1RfRk9VTkQgICAgICAgICAgdGhlIHJlcXVlc3RlZCBHVUlEIG5vdCBmb3VuZC4NCj4g PiAtICBAcmV0dmFsIFJFVFVSTl9CVUZGRVJfVE9PX1NNQUxMICAgdGhlIG9yaWdpbmFsIGJ1ZmZl ciB0byB0b28gc21hbGwgdG8NCj4gaG9sZCBuZXcgaW5mb3JtYXRpb24uDQo+ID4gKyAgQHJldHZh bCBSRVRVUk5fQlVGRkVSX1RPT19TTUFMTCAgIGZvciBsb2NrYm94IHdpdGggYXR0cmlidXRlDQo+ IExPQ0tfQk9YX0FUVFJJQlVURV9SRVNUT1JFX0lOX1BMQUNFLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3JpZ2luYWwgYnVmZmVyIHRvIHRvbyBzbWFsbCB0 byBob2xkIG5ldw0KPiBpbmZvcm1hdGlvbi4NCj4gPiArICBAcmV0dmFsIFJFVFVSTl9PVVRfT0Zf UkVTT1VSQ0VTICAgZm9yIGxvY2tib3ggd2l0aCBhdHRyaWJ1dGUNCj4gTE9DS19CT1hfQVRUUklC VVRFX1JFU1RPUkVfSU5fUzNfT05MWSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbm8gZW5vdWdoIHJlc291cmNlIHRvIHNhdmUgdGhlIGluZm9ybWF0aW9uLg0KPiA+ ICAgIEByZXR2YWwgUkVUVVJOX0FDQ0VTU19ERU5JRUQgICAgICBpdCBpcyB0b28gbGF0ZSB0byBp bnZva2UgdGhpcyBpbnRlcmZhY2UNCj4gPiAgICBAcmV0dmFsIFJFVFVSTl9OT1RfU1RBUlRFRCAg ICAgICAgaXQgaXMgdG9vIGVhcmx5IHRvIGludm9rZSB0aGlzIGludGVyZmFjZQ0KPiA+ICAgIEBy ZXR2YWwgUkVUVVJOX1VOU1VQUE9SVEVEICAgICAgICB0aGUgc2VydmljZSBpcyBub3Qgc3VwcG9y dGVkIGJ5DQo+IGltcGxlbWVudGFpb24uDQo+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9M aWJyYXJ5L1NtbUxvY2tCb3hMaWIvU21tTG9ja0JveFNtbUxpYi5jDQo+IGIvTWRlTW9kdWxlUGtn L0xpYnJhcnkvU21tTG9ja0JveExpYi9TbW1Mb2NrQm94U21tTGliLmMNCj4gPiBpbmRleCBjOTEy ZDE4N2E0Li5kMWNmZjk3YmExIDEwMDY0NA0KPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5 L1NtbUxvY2tCb3hMaWIvU21tTG9ja0JveFNtbUxpYi5jDQo+ID4gKysrIGIvTWRlTW9kdWxlUGtn L0xpYnJhcnkvU21tTG9ja0JveExpYi9TbW1Mb2NrQm94U21tTGliLmMNCj4gPiBAQCAtNjA0LDcg KzYwNCwxMCBAQCBTZXRMb2NrQm94QXR0cmlidXRlcyAoDQo+ID4gICAgQHJldHZhbCBSRVRVUk5f U1VDQ0VTUyAgICAgICAgICAgIHRoZSBpbmZvcm1hdGlvbiBpcyBzYXZlZCBzdWNjZXNzZnVsbHku DQo+ID4gICAgQHJldHZhbCBSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIgIHRoZSBHdWlkIGlzIE5V TEwsIG9yIEJ1ZmZlciBpcyBOVUxMLA0KPiBvciBMZW5ndGggaXMgMC4NCj4gPiAgICBAcmV0dmFs IFJFVFVSTl9OT1RfRk9VTkQgICAgICAgICAgdGhlIHJlcXVlc3RlZCBHVUlEIG5vdCBmb3VuZC4N Cj4gPiAtICBAcmV0dmFsIFJFVFVSTl9CVUZGRVJfVE9PX1NNQUxMICAgdGhlIG9yaWdpbmFsIGJ1 ZmZlciB0byB0b28gc21hbGwgdG8NCj4gaG9sZCBuZXcgaW5mb3JtYXRpb24uDQo+ID4gKyAgQHJl dHZhbCBSRVRVUk5fQlVGRkVSX1RPT19TTUFMTCAgIGZvciBsb2NrYm94IHdpdGggYXR0cmlidXRl DQo+IExPQ0tfQk9YX0FUVFJJQlVURV9SRVNUT1JFX0lOX1BMQUNFLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3JpZ2luYWwgYnVmZmVyIHRvIHRvbyBzbWFs bCB0byBob2xkIG5ldw0KPiBpbmZvcm1hdGlvbi4NCj4gPiArICBAcmV0dmFsIFJFVFVSTl9PVVRf T0ZfUkVTT1VSQ0VTICAgZm9yIGxvY2tib3ggd2l0aCBhdHRyaWJ1dGUNCj4gTE9DS19CT1hfQVRU UklCVVRFX1JFU1RPUkVfSU5fUzNfT05MWSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbm8gZW5vdWdoIHJlc291cmNlIHRvIHNhdmUgdGhlIGluZm9ybWF0aW9uLg0K PiA+ICAgIEByZXR2YWwgUkVUVVJOX0FDQ0VTU19ERU5JRUQgICAgICBpdCBpcyB0b28gbGF0ZSB0 byBpbnZva2UgdGhpcyBpbnRlcmZhY2UNCj4gPiAgICBAcmV0dmFsIFJFVFVSTl9OT1RfU1RBUlRF RCAgICAgICAgaXQgaXMgdG9vIGVhcmx5IHRvIGludm9rZSB0aGlzIGludGVyZmFjZQ0KPiA+ICAg IEByZXR2YWwgUkVUVVJOX1VOU1VQUE9SVEVEICAgICAgICB0aGUgc2VydmljZSBpcyBub3Qgc3Vw cG9ydGVkIGJ5DQo+IGltcGxlbWVudGFpb24uDQo+ID4gQEAgLTYxOSwxMyArNjIyLDE2IEBAIFVw ZGF0ZUxvY2tCb3ggKA0KPiA+ICAgICkNCj4gPiAgew0KPiA+ICAgIFNNTV9MT0NLX0JPWF9EQVRB ICAgICAgICAgICAgICpMb2NrQm94Ow0KPiA+ICsgIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAg ICAgIFNtcmFtQnVmZmVyOw0KPiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgIFN0 YXR1czsNCj4gPg0KPiA+ICAgIERFQlVHICgoREVCVUdfSU5GTywgIlNtbUxvY2tCb3hTbW1MaWIg VXBkYXRlTG9ja0JveCAtIEVudGVyXG4iKSk7DQo+ID4NCj4gPiAgICAvLw0KPiA+ICAgIC8vIEJh c2ljIGNoZWNrDQo+ID4gICAgLy8NCj4gPiAtICBpZiAoKEd1aWQgPT0gTlVMTCkgfHwgKEJ1ZmZl ciA9PSBOVUxMKSB8fCAoTGVuZ3RoID09IDApKSB7DQo+ID4gKyAgaWYgKChHdWlkID09IE5VTEwp IHx8IChCdWZmZXIgPT0gTlVMTCkgfHwgKExlbmd0aCA9PSAwKSB8fA0KPiA+ICsgICAgICAoTGVu Z3RoID4gTUFYX1VJTlROIC0gT2Zmc2V0KSkgew0KPiA+ICAgICAgREVCVUcgKChERUJVR19JTkZP LCAiU21tTG9ja0JveFNtbUxpYiBVcGRhdGVMb2NrQm94IC0gRXhpdCAoJXIpXG4iLA0KPiBFRklf SU5WQUxJRF9QQVJBTUVURVIpKTsNCj4gPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVU RVI7DQo+ID4gICAgfQ0KPiA+IEBAIC02NDMsOCArNjQ5LDY2IEBAIFVwZGF0ZUxvY2tCb3ggKA0K PiA+ICAgIC8vIFVwZGF0ZSBkYXRhDQo+ID4gICAgLy8NCj4gPiAgICBpZiAoTG9ja0JveC0+TGVu Z3RoIDwgT2Zmc2V0ICsgTGVuZ3RoKSB7DQo+ID4gLSAgICBERUJVRyAoKERFQlVHX0lORk8sICJT bW1Mb2NrQm94U21tTGliIFVwZGF0ZUxvY2tCb3ggLSBFeGl0DQo+ICglcilcbiIsIEVGSV9CVUZG RVJfVE9PX1NNQUxMKSk7DQo+ID4gLSAgICByZXR1cm4gRUZJX0JVRkZFUl9UT09fU01BTEw7DQo+ ID4gKyAgICBpZiAoKExvY2tCb3gtPkF0dHJpYnV0ZXMgJg0KPiBMT0NLX0JPWF9BVFRSSUJVVEVf UkVTVE9SRV9JTl9TM19PTkxZKSAhPSAwKSB7DQo+ID4gKyAgICAgIC8vDQo+ID4gKyAgICAgIC8v IElmICdMT0NLX0JPWF9BVFRSSUJVVEVfUkVTVE9SRV9JTl9TM19PTkxZJyBhdHRyaWJ1dGUgaXMg c2V0LA0KPiBlbmxhcmdlIHRoZQ0KPiA+ICsgICAgICAvLyBMb2NrQm94Lg0KPiA+ICsgICAgICAv Lw0KPiA+ICsgICAgICBERUJVRyAoKA0KPiA+ICsgICAgICAgIERFQlVHX0lORk8sDQo+ID4gKyAg ICAgICAgIlNtbUxvY2tCb3hTbW1MaWIgVXBkYXRlTG9ja0JveCAtIE9yaWdpbiBMb2NrQm94IHRv byBzbWFsbCwNCj4gZW5sYXJnZS5cbiINCj4gPiArICAgICAgICApKTsNCj4gPiArDQo+ID4gKyAg ICAgIGlmIChFRklfUEFHRVNfVE9fU0laRSAoRUZJX1NJWkVfVE9fUEFHRVMgKExvY2tCb3gtPkxl bmd0aCkpIDwgT2Zmc2V0DQo+ICsgTGVuZ3RoKSB7DQo+ID4gKyAgICAgICAgLy8NCj4gPiArICAg ICAgICAvLyBJbiBTYXZlTG9ja0JveCgpLCB0aGUgU01SQU0gYnVmZmVyIGFsbG9jYXRlZCBmb3Ig TG9ja0JveCBpcyBvZiBwYWdlDQo+ID4gKyAgICAgICAgLy8gZ3JhbnVsYXJpdHkuIEhlcmUsIGlm IHRoZSByZXF1aXJlZCBzaXplIGlzIGxhcmdlciB0aGFuIHRoZSBvcmlnaW4gc2l6ZQ0KPiA+ICsg ICAgICAgIC8vIG9mIHRoZSBwYWdlcywgYWxsb2NhdGUgbmV3IGJ1ZmZlciBmcm9tIFNNUkFNIHRv IGVubGFyZ2UgdGhlDQo+IExvY2tCb3guDQo+ID4gKyAgICAgICAgLy8NCj4gPiArICAgICAgICBE RUJVRyAoKA0KPiA+ICsgICAgICAgICAgREVCVUdfSU5GTywNCj4gPiArICAgICAgICAgICJTbW1M b2NrQm94U21tTGliIFVwZGF0ZUxvY2tCb3ggLSBBbGxvY2F0ZSBuZXcgYnVmZmVyIHRvDQo+IGVu bGFyZ2UuXG4iDQo+ID4gKyAgICAgICAgICApKTsNCj4gPiArICAgICAgICBTdGF0dXMgPSBnU21z dC0+U21tQWxsb2NhdGVQYWdlcyAoDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgQWxs b2NhdGVBbnlQYWdlcywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBFZmlSdW50aW1l U2VydmljZXNEYXRhLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9TSVpFX1RP X1BBR0VTIChPZmZzZXQgKyBMZW5ndGgpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICZTbXJhbUJ1ZmZlcg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQo+ID4gKyAg ICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAgICAgICAgREVCVUcgKChE RUJVR19JTkZPLCAiU21tTG9ja0JveFNtbUxpYiBVcGRhdGVMb2NrQm94IC0gRXhpdA0KPiAoJXIp XG4iLCBFRklfT1VUX09GX1JFU09VUkNFUykpOw0KPiA+ICsgICAgICAgICAgcmV0dXJuIEVGSV9P VVRfT0ZfUkVTT1VSQ0VTOw0KPiA+ICsgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgLy8N Cj4gPiArICAgICAgICAvLyBDb3B5IG9yaWdpbiBkYXRhIHRvIHRoZSBuZXcgU01SQU0gYnVmZmVy IGFuZCB3aXBlIHRoZSBjb250ZW50IGluDQo+IHRoZQ0KPiA+ICsgICAgICAgIC8vIG9yaWdpbiBT TVJBTSBidWZmZXIuDQo+ID4gKyAgICAgICAgLy8NCj4gPiArICAgICAgICBDb3B5TWVtICgoVk9J RCAqKShVSU5UTilTbXJhbUJ1ZmZlciwgKFZPSUQgKikoVUlOVE4pTG9ja0JveC0NCj4gPlNtcmFt QnVmZmVyLCAoVUlOVE4pTG9ja0JveC0+TGVuZ3RoKTsNCj4gPiArICAgICAgICBaZXJvTWVtICgo Vk9JRCAqKShVSU5UTilMb2NrQm94LT5TbXJhbUJ1ZmZlciwgKFVJTlROKUxvY2tCb3gtDQo+ID5M ZW5ndGgpOw0KPiA+ICsgICAgICAgIGdTbXN0LT5TbW1GcmVlUGFnZXMgKExvY2tCb3gtPlNtcmFt QnVmZmVyLCBFRklfU0laRV9UT19QQUdFUw0KPiAoKFVJTlROKUxvY2tCb3gtPkxlbmd0aCkpOw0K PiA+ICsNCj4gPiArICAgICAgICBMb2NrQm94LT5TbXJhbUJ1ZmZlciA9IFNtcmFtQnVmZmVyOw0K PiA+ICsgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAvLw0KPiA+ICsgICAgICAvLyBIYW5kbGUg cG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgY29udGVudCBpbiB0aGUgTG9ja0JveC4NCj4gPiArICAg ICAgLy8NCj4gPiArICAgICAgaWYgKE9mZnNldCA+IExvY2tCb3gtPkxlbmd0aCkgew0KPiA+ICsg ICAgICAgIFplcm9NZW0gKA0KPiA+ICsgICAgICAgICAgKFZPSUQgKikoKFVJTlROKUxvY2tCb3gt PlNtcmFtQnVmZmVyICsgKFVJTlROKUxvY2tCb3gtPkxlbmd0aCksDQo+ID4gKyAgICAgICAgICBP ZmZzZXQgLSAoVUlOVE4pTG9ja0JveC0+TGVuZ3RoDQo+ID4gKyAgICAgICAgICApOw0KPiA+ICsg ICAgICB9DQo+ID4gKyAgICAgIExvY2tCb3gtPkxlbmd0aCA9IE9mZnNldCArIExlbmd0aDsNCj4g PiArICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgIC8vDQo+ID4gKyAgICAgIC8vIElmICdMT0NLX0JP WF9BVFRSSUJVVEVfUkVTVE9SRV9JTl9TM19PTkxZJyBhdHRyaWJ1dGUgaXMgTk9UDQo+IHNldCwg cmV0dXJuDQo+ID4gKyAgICAgIC8vIEVGSV9CVUZGRVJfVE9PX1NNQUxMIGRpcmVjdGx5Lg0KPiA+ ICsgICAgICAvLw0KPiA+ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJTbW1Mb2NrQm94U21t TGliIFVwZGF0ZUxvY2tCb3ggLSBFeGl0DQo+ICglcilcbiIsIEVGSV9CVUZGRVJfVE9PX1NNQUxM KSk7DQo+ID4gKyAgICAgIHJldHVybiBFRklfQlVGRkVSX1RPT19TTUFMTDsNCj4gPiArICAgIH0N Cj4gPiAgICB9DQo+ID4gICAgQVNTRVJUICgoVUlOVE4pTG9ja0JveC0+U21yYW1CdWZmZXIgPD0g KE1BWF9BRERSRVNTIC0gT2Zmc2V0KSk7DQo+ID4gICAgQ29weU1lbSAoKFZPSUQgKikoKFVJTlRO KUxvY2tCb3gtPlNtcmFtQnVmZmVyICsgT2Zmc2V0KSwgQnVmZmVyLA0KPiBMZW5ndGgpOw0KPiA+ DQo+IA0KPiAoMSkgVGhlIGNoYW5nZSBpcyBhIG5vLW9wIGlmIExPQ0tfQk9YX0FUVFJJQlVURV9S RVNUT1JFX0lOX1MzX09OTFkgaXMNCj4gbm90IHNldC4NCj4gDQo+IEFzIGZhciBhcyBJIGNhbiBz ZWUsIG9ubHkgdGhlICJTZWN1cml0eVBrZy9UY2cvT3BhbC9PcGFsUGFzc3dvcmQiIGRyaXZlcg0K PiBzZXRzIHRoaXMgYXR0cmlidXRlIChib3RoIGJlZm9yZSwgYW5kIGFmdGVyLCBwYXRjaCB2MyAx Mi8xMiBpbiB0aGlzDQo+IHNlcmllcykuIFNvIHRoYXQncyBmaW5lIHdpdGggbWU7IE9WTUYgZG9l cyBub3QgaW5jbHVkZSBPcGFsUGFzc3dvcmQsDQo+IHRoZXJlZm9yZSB0aGlzIHBhdGNoIGlzIGEg bm8tb3AgZXZlbiBmb3IgdGhlIFNNTV9SRVFVSVJFIGJ1aWxkIG9mIE9WTUYuDQo+IA0KPiBBY2tl ZC1ieTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gDQo+IA0KPiAoMikgSW4g dGhpcyBwYXRjaCwgeW91IG1vZGlmeSB0aGUgbGlicmFyeSBjbGFzcyBoZWFkZXIsIGFuZCB0aGVu IHlvdQ0KPiB1cGRhdGUgc29tZSBsb2NrYm94IGxpYnJhcnkgaW5zdGFuY2VzIGFzIHdlbGwgLS0g anVzdCB0aGUgZG9jdW1lbnRhdGlvbg0KPiAtLSB3aG9zZSBiZWhhdmlvciBkb2Vzbid0IGNoYW5n ZS4gRm9yIGV4YW1wbGUsIHRoZSBOdWxsIGluc3RhbmNlICh3aGVyZQ0KPiBubyBsb2NrYm94IGV4 aXN0cyBhY3R1YWxseSksIGFuZCBhbHNvIHRoZSBsaWIgaW5zdGFuY2VzIGZvciBQRUlNcyBhbmQN Cj4gRFhFKyBkcml2ZXJzIHdoZW4gdGhlIGxvY2tib3ggZXhpc3RzIGluIFNNUkFNLg0KPiANCj4g VGhhdCdzIGdyZWF0LiBIb3dldmVyLCB0aGUgZWRrMiB0cmVlIGNvbnRhaW5zIHRocmVlIG1vcmUg TG9ja0JveExpYg0KPiBpbnN0YW5jZXM6DQo+IA0KPiAgIE92bWZQa2cvTGlicmFyeS9Mb2NrQm94 TGliL0xvY2tCb3hCYXNlTGliLmluZg0KPiAgIE92bWZQa2cvTGlicmFyeS9Mb2NrQm94TGliL0xv Y2tCb3hEeGVMaWIuaW5mDQo+ICAgVmx2MlRibHREZXZpY2VQa2cvTGlicmFyeS9JMkNMaWJQZWkv STJDTGliUGVpLmluZg0KPiANCj4gQ2FuIHlvdSBwbGVhc2UgZG8gdHdvIG1vcmUgc3RlcHM6DQo+ IA0KPiAoYSkgZXh0ZW5kIHRoZSBVcGRhdGVMb2NrQm94KCkgY29tbWVudHMgaW4NCj4gIk92bWZQ a2cvTGlicmFyeS9Mb2NrQm94TGliL0xvY2tCb3hMaWIuYyIsIGluIGEgc3BlYXJhdGUgcGF0Y2gu IEl0IGNhbg0KPiBiZSBwb3N0ZWQgc2VwYXJhdGVseTsgbm8gbmVlZCB0byBob2xkIHVwIHRoaXMg c2VyaWVzIGp1c3QgYmVjYXVzZSBvZg0KPiB0aGF0Lg0KDQpPSy4gSWYgdGhpcyBzZXJpZXMgZ29l cyB0byB2NCwgSSB3aWxsIGFkZCBhbm90aGVyIHBhdGNoIHRvIGFkZHJlc3MgdGhpcy4NCk90aGVy d2lzZSwgSSB3aWxsIHNlbmQgYSBzZXBhcmF0ZSBwYXRjaCBmb3IgdGhpcy4NCg0KPiANCj4gKGIp IHRoZSBMSUJSQVJZX0NMQVNTIGluDQo+ICJWbHYyVGJsdERldmljZVBrZy9MaWJyYXJ5L0kyQ0xp YlBlaS9JMkNMaWJQZWkuaW5mIiBpcyBpbiBmYWN0IGJvZ3VzLg0KPiBUaGUgbGliIGluc3RhbmNl IGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGxvY2tib3guIENhbiB5b3UgcGxlYXNlIHBvc3QN Cj4gYSBwYXRjaCBmb3IgZml4aW5nIHRoYXQgZGVmaW5lLCBvciBlbHNlIGZpbGUgYSBCWiBzbyB0 aGF0IHRoZQ0KPiBtYWludGFpbmVycyBmaXggaXQ/DQoNCkJaIGZpbGVkIGZpcnN0Og0KaHR0cHM6 Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3DQoNCj4gDQo+IA0K PiBNeSBhcG9sb2dpZXMgdGhhdCBJJ20gb25seSBjb21tZW50aW5nIG9uIHYzIC0tIEkgaGF2ZW4n dCBub3RpY2VkIHRoZQ0KPiBzZXJpZXMgZWFybGllci4gSW4gdGhlIGZ1dHVyZSwgcGxlYXNlIEND IG1lIG9uIHBhdGNoZXMgdGhhdCBhcmUgc29tZWhvdw0KPiByZWxhdGVkIHRvIFNNTS4NCg0KU3Vy ZS4gU29ycnkgZm9yIG1pc3NpbmcgeW91IGluIHRoZSBDQyBsaXN0Lg0KDQpCZXN0IFJlZ2FyZHMs DQpIYW8gV3UNCg0KPiANCj4gVGhhbmtzIQ0KPiBMYXN6bG8NCg==