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.31; helo=mga06.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (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 3208A210D9796 for ; Sun, 10 Jun 2018 12:01:55 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jun 2018 12:01:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,498,1520924400"; d="scan'208";a="62890598" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga001.fm.intel.com with ESMTP; 10 Jun 2018 12:01:55 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 10 Jun 2018 12:01:54 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 10 Jun 2018 12:01:54 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.223]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.51]) with mapi id 14.03.0319.002; Mon, 11 Jun 2018 03:01:52 +0800 From: "Yao, Jiewen" To: "Kinney, Michael D" , Ard Biesheuvel CC: "edk2-devel@lists.01.org" , "Zeng, Star" , "leif.lindholm@linaro.org" Thread-Topic: [edk2] [PATCH v2 2/5] MdeModulePkg/DxeCapsuleLibFmp: permit ProcessCapsules () to be called once Thread-Index: AQHT/vYbbSADsfB+hEWX7Kwk2kNBmKRWSrdA//98PACAAIb9kIACKYCAgACr9YCAALUdEA== Date: Sun, 10 Jun 2018 19:01:51 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AC3ADC8@shsmsx102.ccr.corp.intel.com> References: <20180608065811.2065-1-ard.biesheuvel@linaro.org> <20180608065811.2065-3-ard.biesheuvel@linaro.org> <74D8A39837DF1E4DA445A8C0B3885C503AC3515B@shsmsx102.ccr.corp.intel.com> <6534F306-C3E7-40D2-84F4-D409BF1F7B68@linaro.org> <74D8A39837DF1E4DA445A8C0B3885C503AC3A387@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTBmOWNmNDYtZDk2Zi00ZDAzLTkyOTEtNzhmZjk0ODA1M2YwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoibXZxcXllTnozREhBSmxGWWlVcXRGb3dLaHRXRFA5SmtZK2JZcnN1SlhYVVEwVGhuUkZtenlNVUFrd2hiWGF6XC8ifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v2 2/5] MdeModulePkg/DxeCapsuleLibFmp: permit ProcessCapsules () to be called once X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2018 19:01:56 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TXkgY29uY2VybiBpcyB0aGF0ICphbHdheXMgYWxsb3dpbmcqIHByb2Nlc3NpbmcgU3lzdGVtQ2Fw c3VsZSBhZnRlciBFbmRPZkR4ZSBoYXMgc2VjdXJpdHkgcmlzay4NCg0KSU1ITywgdGhlIHJpc2sg aXMgbm90ICpwcm9jZXNzKiwgaWYgaXQgaXMgYSBwbGF0Zm9ybSBjaG9pY2UuIEluc3RlYWQsIHRo ZSByaXNrIGlzICphbGxvdyosIGluIHRoZSBjb3JlIGxvZ2ljLg0KDQpJZiB3ZSByZWFsbHkgd2Fu dCB0byBkbyB0aGF0LCBJIGhvcGUgd2UgbmVlZCBhIHdheSB0byBkaXN0aW5ndWlzaCB0aGUgZGlm ZmVyZW5jZSBiZXR3ZWVuIGEgcGxhdGZvcm0gZGlzcGF0Y2hpbmcgU3lzdGVtQ2Fwc3VsZSBhZnRl ciBFbmRPZkR4ZSAqcHVycG9zZWx5KiBhbmQgYSBwbGF0Zm9ybSBkaXNwYXRjaGluZyBTeXN0ZW1D YXBzdWxlIGFmdGVyIEVuZE9mRHhlICpieSBtaXN0YWtlKi4NCg0KTWF5YmUgc29tZSBwb2xpY3kg ZW5mb3JjZW1lbnQgaW4gdGhlIGNvcmUgbG9naWMuIFN0YXRpYyBwb2xpY3ksIGF0IGJ1aWxkIHRp bWUuDQoNClRoYW5rIHlvdQ0KWWFvIEppZXdlbg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+IEZyb206IEtpbm5leSwgTWljaGFlbCBEDQo+IFNlbnQ6IFN1bmRheSwgSnVuZSAxMCwg MjAxOCA4OjU3IEFNDQo+IFRvOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJv Lm9yZz47IFlhbywgSmlld2VuDQo+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEtpbm5leSwgTWlj aGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnOyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsNCj4gbGVpZi5saW5k aG9sbUBsaW5hcm8ub3JnDQo+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIHYyIDIvNV0gTWRl TW9kdWxlUGtnL0R4ZUNhcHN1bGVMaWJGbXA6IHBlcm1pdA0KPiBQcm9jZXNzQ2Fwc3VsZXMgKCkg dG8gYmUgY2FsbGVkIG9uY2UNCj4gDQo+IEFyZCwNCj4gDQo+IEkgYWdyZWUgaXQgc2hvdWxkIGJl IGEgcGxhdGZvcm0gY2hvaWNlIHRvIHByb2Nlc3MgY2Fwc3VsZXMNCj4gYmVmb3JlIG9yIGFmdGVy IEVuZCBvZiBEWEUuICBJdCBpcyBldmVuIGFsbG93ZWQgaW4gdGhlDQo+IFVFRkkgU3BlYyBmb3Ig Y2Fwc3VsZXMgdG8gYmUgcHJvY2Vzc2VkIGltbWVkaWF0ZWx5DQo+IHdoaWNoIHdvdWxkIGluY2x1 ZGUgYXQgT1MgcnVudGltZSBhZnRlciBFeGl0Qm9vdFNlcnZpY2VzLg0KPiANCj4gVGhlcmUgYXJl IDIgaW5wdXRzIHRvIHRoZXNlIGNob2ljZXM6DQo+ICogVGhlIGZsYWdzIHNldCBpbiB0aGUgQ2Fw c3VsZSBpdHNlbGYuICBTZWUgVUVGSSAyLjcgU3BlYw0KPiAgIFRhYmxlIDM4IGZvciB0aGUgNSBh bGxvd2VkIGNvbWJpbmF0aW9ucy4NCj4gKiBQbGF0Zm9ybSBwb2xpY3kgZm9yIGVhY2ggb2YgdGhl c2UgNSBjYXBzdWxlIHR5cGVzIGFuZA0KPiAgIHdoZW4gZWFjaCBvZiB0aGVzZSA1IGNhcHN1bGUg dHlwZXMgYXJlIGFsbG93ZWQgdG8gYmUNCj4gICBwcm9jZXNzZWQuDQo+IA0KPiBKaWV3ZW4ncyBj b21tZW50cyBwb2ludCB0byBzb21lIGFzc3VtcHRpb25zIHRoYXQgaGF2ZSBiZWVuDQo+IG1hZGUg aW4gdGhlIGxvZ2ljLiAgVGhlc2UgYXNzdW1wdGlvbnMgbWF5IGJlIGNvbnNpZGVyZWQgYQ0KPiBz YWZlIGRlZmF1bHQgcGxhdGZvcm0gcG9saWN5LCBidXQgdGhlIGNvZGUgbG9naWMgc2hvdWxkDQo+ IGFsbG93IHRoZSBwbGF0Zm9ybSB0byBlYXNpbHkgc2VsZWN0IGFsdGVybmF0ZSBwb2xpY2llcy4N Cj4gDQo+IEkgdGhpbmsgdGhlIHBhdGNoIHlvdSBoYXZlIHByb3ZpZGVkIGF0dGVtcHRzIHRvIGFk ZCBvbmUNCj4gYWRkaXRpb25hbCBwb2xpY3kuICBQZXJoYXBzIHdlIHNob3VsZCBsb29rIGF0IHRo aXMgZnJvbQ0KPiB0aGUgVUVGSSBTcGVjIHBlcnNwZWN0aXZlIGFuZCBzZWUgaG93IGRpZmZpY3Vs dCBpdCBpcyB0bw0KPiBleHByZXNzIHBvbGljaWVzIGZvciB0aGUgc3VwcG9ydGVkIGNhcHN1bGUg dHlwZXMuDQo+IA0KPiBJIHdpbGwgcmV2aWV3IHlvdXIgcGF0Y2ggaW4gbW9yZSBkZXRhaWwgdG9t b3Jyb3cuDQo+IA0KPiBUaGFua3MsDQo+IA0KPiBNaWtlDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogQXJkIEJpZXNoZXV2ZWwgW21haWx0bzphcmQuYmllc2hl dXZlbEBsaW5hcm8ub3JnXQ0KPiA+IFNlbnQ6IFNhdHVyZGF5LCBKdW5lIDksIDIwMTggMTA6NDIg UE0NCj4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+IENjOiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+OyBaZW5nLCBTdGFyDQo+ID4gPHN0YXIuemVuZ0BpbnRlbC5jb20+ OyBsZWlmLmxpbmRob2xtQGxpbmFyby5vcmcNCj4gPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRD SCB2MiAyLzVdDQo+ID4gTWRlTW9kdWxlUGtnL0R4ZUNhcHN1bGVMaWJGbXA6IHBlcm1pdCBQcm9j ZXNzQ2Fwc3VsZXMNCj4gPiAoKSB0byBiZSBjYWxsZWQgb25jZQ0KPiA+DQo+ID4gT24gMTAgSnVu ZSAyMDE4IGF0IDA3OjM4LCBZYW8sIEppZXdlbg0KPiA+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT4g d3JvdGU6DQo+ID4gPiBIaSBBcmQNCj4gPiA+IEFjY29yZGluZyB0byBQSSBzcGVjLCAiUHJpb3Ig dG8gaW52b2tpbmcgYW55IFVFRkkNCj4gPiBkcml2ZXJzLCBvciBhcHBsaWNhdGlvbnMgdGhhdCBh cmUgbm90IGZyb20gdGhlIHBsYXRmb3JtDQo+ID4gbWFudWZhY3R1cmVyLCBvciBjb25uZWN0aW5n IGNvbnNvbGVzLCB0aGUgcGxhdGZvcm0NCj4gPiBzaG91bGQgc2lnbmFscyB0aGUgZXZlbnQgRUZJ X0VORF9PRl9EWEVfRVZFTlRfR1VJRCINCj4gPiA+DQo+ID4gPiBJbiBicmllZiwgRW5kT2ZEeGUg aXMgc2lnbmFsZWQgYmVmb3JlIDNyZCBwYXJ0IGNvZGUNCj4gPiBydW5uaW5nLg0KPiA+ID4NCj4g PiA+IEFzIHN1Y2gsIGl0IGlzIGxlZ2FsIHRoYXQgYSB0cnVzdGVkIGNvbnNvbGUgaXMNCj4gPiBj b25uZWN0ZWQgYmVmb3JlIEVuZE9mRHhlLg0KPiA+ID4gWW91IGNhbiByZXBvcnQgcHJvZ3Jlc3Mg dG8gdXNlciBiZWZvcmUgRW5kT2ZEeGUuDQo+ID4gPg0KPiA+DQo+ID4gU28gaG93IGRvIEkgY29u bmVjdCBhIHRydXN0ZWQgY29uc29sZSBvbiBhIHN5c3RlbSB3aXRoDQo+ID4gYSBwbHVnaW4gZ3Jh cGhpY3MgY2FyZD8NCj4gPiBIb3cgY2FuIEkgcmVwb3J0IGNhcHN1bGUgdXBkYXRlIHByb2dyZXNz IG9uIHN1Y2ggYQ0KPiA+IHN5c3RlbT8NCj4gPiBPbiBhIHN5c3RlbSBzdWNoIGFzIEFSTSB3aGVy ZSB0aGUgYWN0dWFsIGZsYXNoIHVwZGF0ZQ0KPiA+IGludm9sdmVzIGNhbGxzDQo+ID4gaW50byB0 aGUgc3RhbmRhbG9uZSBNTSBsYXllciwgd2hpY2ggbWFrZXMgdGhlDQo+ID4gZGlzdGluY3Rpb24g dW5uZWNlc3NhcnksDQo+ID4gaG93IGRvIHlvdSByZWNvbW1lbmQgdG8gaGFuZGxlIHRoaXMgaWYg aXQgaXMgbWFuZGF0b3J5DQo+ID4gYWNjb3JkaW5nIHRvDQo+ID4geW91IHRvIHByb2Nlc3MgdGhl IGNhcHN1bGUgYmVmb3JlIEVuZE9mRHhlPw0KPiA+DQo+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IEFyZCBCaWVzaGV1dmVsDQo+ID4gW21haWx0bzph cmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPiA+ID4+IFNlbnQ6IEZyaWRheSwgSnVuZSA4LCAy MDE4IDg6MzggQU0NCj4gPiA+PiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29t Pg0KPiA+ID4+IENjOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgS2lubmV5LCBNaWNoYWVsIEQN Cj4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+ID4+IFplbmcsIFN0YXIgPHN0 YXIuemVuZ0BpbnRlbC5jb20+Ow0KPiA+IGxlaWYubGluZGhvbG1AbGluYXJvLm9yZw0KPiA+ID4+ IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIHYyIDIvNV0NCj4gPiBNZGVNb2R1bGVQa2cvRHhl Q2Fwc3VsZUxpYkZtcDogcGVybWl0DQo+ID4gPj4gUHJvY2Vzc0NhcHN1bGVzICgpIHRvIGJlIGNh bGxlZCBvbmNlDQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4gPiBPbiA4IEp1biAyMDE4 LCBhdCAxNDozNCwgWWFvLCBKaWV3ZW4NCj4gPiA8amlld2VuLnlhb0BpbnRlbC5jb20+IHdyb3Rl Og0KPiA+ID4+ID4NCj4gPiA+PiA+IEhpIEFyZA0KPiA+ID4+ID4gV2UgZG9uJ3QgYWxsb3cgcGxh dGZvcm0gdG8gdXBkYXRlIHN5c3RlbSBmaXJtd2FyZQ0KPiA+ICphZnRlciogRW5kT2ZEeGUuDQo+ ID4gPj4gPg0KPiA+ID4+ID4gQWNjb3JkaW5nIHRvIFBJIHNwZWMsIGFmdGVyIEVuZE9mRHhlLCAz cmQgcGFydA0KPiA+IGNvZGUgc3RhcnQgcnVubmluZy4gSXQgYnJpbmdzDQo+ID4gPj4gc2VjdXJp dHkgcmlzayBpZiB3ZSBhbGxvdyBzeXN0ZW0gZmlybXdhcmUgYWZ0ZXINCj4gPiBFbmRPZkR4ZS4N Cj4gPiA+PiA+DQo+ID4gPj4gPiBJbiBvdXIgWDg2IHN5c3RlbSBkZXNpZ24sIHdlIGxvY2sgZmxh c2ggcGFydA0KPiA+ICpiZWZvcmUqIEVuZE9mRHhlIGluIGFueSBib290DQo+ID4gPj4gbW9kZS4N Cj4gPiA+PiA+IEV2ZW4gaW4gQ2Fwc3VsZVVwZGF0ZSBib290IG1vZGUsIHdlIGFsc28gbG9jaw0K PiA+IGZsYXNoIHBhcnQgYXQgRW5kT2ZEeGUsIGp1c3QgaW4NCj4gPiA+PiBjYXNlIHRoZSBjYXBz dWxlIHVwZGF0ZSBkb2VzIG5vdCBpbmRpY2F0ZSBhIHJlc2V0Lg0KPiA+ID4+ID4NCj4gPiA+PiA+ IFdvdWxkIHlvdSBwbGVhc2Ugc2hhcmUgdGhlIGluZm8sIHdoeSB5b3VyIHBsYXRmb3JtDQo+ID4g bmVlZCB1cGRhdGUgc3lzdGVtDQo+ID4gPj4gZmlybXdhcmUgYWZ0ZXIgRW5kT2ZEeGU/DQo+ID4g Pj4gPiBJcyB0aGF0IHBvc3NpYmxlIHRvIG1ha2UgaXQgZWFybGllcj8NCj4gPiA+PiA+DQo+ID4g Pj4gPg0KPiA+ID4+DQo+ID4gPj4gQmVjYXVzZSB3ZSBuZWVkIHNvbWUga2luZCBvZiBjb25zb2xl IHRvIHJlcG9ydA0KPiA+IHByb2dyZXNzIHRvIHRoZSB1c2VyLg0KPiA+ID4+DQo+ID4gPj4gVGhl IHNlY3VyZSBwbGF0Zm9ybSBleGVjdXRpb24gY29udGV4dCBpcyBjb21wbGV0ZWx5DQo+ID4gc2Vw YXJhdGUgZnJvbSBVRUZJIG9uIEFybSwNCj4gPiA+PiBzbyBmb3IgdXMgdGhlIGRpc3RpbmN0aW9u IGRvZXMgbm90IG1ha2Ugc2Vuc2UuDQo+ID4gPj4NCj4gPiA+PiA+IFRoYW5rIHlvdQ0KPiA+ID4+ ID4gWWFvIEppZXdlbg0KPiA+ID4+ID4NCj4gPiA+PiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+ID4+ID4+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLQ0KPiA+ IGJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYgT2YNCj4gPiA+PiBBcmQNCj4gPiA+PiA+ PiBCaWVzaGV1dmVsDQo+ID4gPj4gPj4gU2VudDogRnJpZGF5LCBKdW5lIDgsIDIwMTggMjo1OCBB TQ0KPiA+ID4+ID4+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4+ID4+IENjOiBL aW5uZXksIE1pY2hhZWwgRA0KPiA+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFlhbywg Smlld2VuDQo+ID4gPj4gPj4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgWmVuZywgU3Rhcg0KPiA+ IDxzdGFyLnplbmdAaW50ZWwuY29tPjsNCj4gPiA+PiA+PiBsZWlmLmxpbmRob2xtQGxpbmFyby5v cmc7IEFyZCBCaWVzaGV1dmVsDQo+ID4gPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ID4g Pj4gPj4gU3ViamVjdDogW2VkazJdIFtQQVRDSCB2MiAyLzVdDQo+ID4gTWRlTW9kdWxlUGtnL0R4 ZUNhcHN1bGVMaWJGbXA6IHBlcm1pdA0KPiA+ID4+ID4+IFByb2Nlc3NDYXBzdWxlcyAoKSB0byBi ZSBjYWxsZWQgb25jZQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gUGVybWl0IFByb2Nlc3NDYXBzdWxl cyAoKSB0byBiZSBjYWxsZWQgb25seSBhDQo+ID4gc2luZ2xlIHRpbWUsIGFmdGVyDQo+ID4gPj4g Pj4gRW5kT2ZEeGUuIFRoaXMgYWxsb3dzIHBsYXRmb3JtcyB0aGF0IGFyZSBhYmxlIHRvDQo+ID4g dXBkYXRlIHN5c3RlbQ0KPiA+ID4+ID4+IGZpcm13YXJlIGFmdGVyIEVuZE9mRHhlIChlLmcuLCBi ZWNhdXNlIHRoZSBmbGFzaA0KPiA+IFJPTSBpcyBub3QgbG9ja2VkDQo+ID4gPj4gPj4gZG93bikg dG8gZG8gc28gYXQgYSB0aW1lIHdoZW4gYSBub24tdHJ1c3RlZA0KPiA+IGNvbnNvbGUgaXMgdXAg YW5kIHJ1bm5pbmcsDQo+ID4gPj4gPj4gYW5kIHByb2dyZXNzIGNhbiBiZSByZXBvcnRlZCB0byB0 aGUgdXNlci4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0Nv cmUgQ29udHJpYnV0aW9uDQo+ID4gQWdyZWVtZW50IDEuMQ0KPiA+ID4+ID4+IFNpZ25lZC1vZmYt Ynk6IEFyZCBCaWVzaGV1dmVsDQo+ID4gPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ID4g Pj4gPj4gLS0tDQo+ID4gPj4gPj4NCj4gPiBNZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVDYXBzdWxl TGliRm1wL0R4ZUNhcHN1bGVQcm9jZXNzDQo+ID4gTGliLmMgfCAxOA0KPiA+ID4+ID4+ICsrKysr KysrKysrKy0tLS0tLQ0KPiA+ID4+ID4+IDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQ0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gZGlmZiAtLWdpdA0KPiA+ID4+ DQo+ID4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVDYXBzdWxlTGliRm1wL0R4ZUNhcHN1bGVQ cm9jZQ0KPiA+IHNzTGliLmMNCj4gPiA+PiA+Pg0KPiA+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkv RHhlQ2Fwc3VsZUxpYkZtcC9EeGVDYXBzdWxlUHJvY2UNCj4gPiBzc0xpYi5jDQo+ID4gPj4gPj4g aW5kZXggMjZjYTRlMjk1ZjIwLi5hZDgzNjYwZjE3MzcgMTAwNjQ0DQo+ID4gPj4gPj4gLS0tDQo+ ID4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVDYXBzdWxlTGliRm1wL0R4ZUNhcHN1bGVQcm9j ZQ0KPiA+IHNzTGliLmMNCj4gPiA+PiA+PiArKysNCj4gPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5 L0R4ZUNhcHN1bGVMaWJGbXAvRHhlQ2Fwc3VsZVByb2NlDQo+ID4gc3NMaWIuYw0KPiA+ID4+ID4+ IEBAIC0xMDAsNiArMTAwLDcgQEAgSXNWYWxpZENhcHN1bGVIZWFkZXIgKA0KPiA+ID4+ID4+DQo+ ID4gPj4gPj4gZXh0ZXJuIEJPT0xFQU4NCj4gPiBtRHhlQ2Fwc3VsZUxpYkVuZE9mRHhlOw0KPiA+ ID4+ID4+IEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgIG1OZWVkUmVzZXQ7DQo+ID4g Pj4gPj4gK0JPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgIG1GaXJzdFJvdW5kID0NCj4g PiBUUlVFOw0KPiA+ID4+ID4+DQo+ID4gPj4gPj4gVk9JRCAgICAgICAgICAgICAgICAgICAgICAg ICoqbUNhcHN1bGVQdHI7DQo+ID4gPj4gPj4gRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICpt Q2Fwc3VsZVN0YXR1c0FycmF5Ow0KPiA+ID4+ID4+IEBAIC0zNjQsOCArMzY1LDExIEBADQo+ID4g UG9wdWxhdGVDYXBzdWxlSW5Db25maWd1cmF0aW9uVGFibGUgKA0KPiA+ID4+ID4+DQo+ID4gPj4g Pj4gICBFYWNoIGluZGl2aWR1YWwgY2Fwc3VsZSByZXN1bHQgaXMgcmVjb3JkZWQgaW4NCj4gPiBj YXBzdWxlIHJlY29yZCB2YXJpYWJsZS4NCj4gPiA+PiA+Pg0KPiA+ID4+ID4+IC0gIEBwYXJhbVtp bl0gIEZpcnN0Um91bmQgICAgICAgICBUUlVFOiAgRmlyc3QNCj4gPiByb3VuZC4gTmVlZCBza2lw IHRoZQ0KPiA+ID4+IEZNUA0KPiA+ID4+ID4+IGNhcHN1bGVzIHdpdGggbm9uIHplcm8gRW1iZWRk ZWREcml2ZXJDb3VudC4NCj4gPiA+PiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRkFMU0U6IFByb2Nlc3MNCj4gPiByZXN0IEZNUCBjYXBzdWxlcy4NCj4gPiA+PiA+PiArICBA cGFyYW1baW5dICBGaXJzdFJvdW5kICAgICAgICAgV2hldGhlciB0aGlzIGlzDQo+ID4gdGhlIGZp cnN0IGludm9jYXRpb24NCj4gPiA+PiA+PiArICBAcGFyYW1baW5dICBMYXN0Um91bmQgICAgICAg ICAgV2hldGhlciB0aGlzIGlzDQo+ID4gdGhlIGxhc3QgaW52b2NhdGlvbg0KPiA+ID4+ID4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRTogIEZpcnN0DQo+ID4gb2YgMiBy b3VuZHMuIE5lZWQgc2tpcA0KPiA+ID4+IHRoZQ0KPiA+ID4+ID4+IEZNUA0KPiA+ID4+ID4+ICsN Cj4gPiBjYXBzdWxlcyB3aXRoIG5vbiB6ZXJvDQo+ID4gPj4gPj4gRW1iZWRkZWREcml2ZXJDb3Vu dC4NCj4gPiA+PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRTogICBQ cm9jZXNzDQo+ID4gcmVzdCBGTVAgY2Fwc3VsZXMuDQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAgIEBy ZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgVGhlcmUgaXMgbm8NCj4gPiBlcnJvciB3aGVu IHByb2Nlc3NpbmcNCj4gPiA+PiA+PiBjYXBzdWxlcy4NCj4gPiA+PiA+PiAgIEByZXR2YWwgRUZJ X09VVF9PRl9SRVNPVVJDRVMgICAgTm8gZW5vdWdoDQo+ID4gcmVzb3VyY2UgdG8gcHJvY2Vzcw0K PiA+ID4+ID4+IGNhcHN1bGVzLg0KPiA+ID4+ID4+IEBAIC0zNzMsNyArMzc3LDggQEANCj4gPiBQ b3B1bGF0ZUNhcHN1bGVJbkNvbmZpZ3VyYXRpb25UYWJsZSAoDQo+ID4gPj4gPj4gKiovDQo+ID4g Pj4gPj4gRUZJX1NUQVRVUw0KPiA+ID4+ID4+IFByb2Nlc3NUaGVzZUNhcHN1bGVzICgNCj4gPiA+ PiA+PiAtICBJTiBCT09MRUFOICBGaXJzdFJvdW5kDQo+ID4gPj4gPj4gKyAgSU4gQk9PTEVBTiAg Rmlyc3RSb3VuZCwNCj4gPiA+PiA+PiArICBJTiBCT09MRUFOICBMYXN0Um91bmQNCj4gPiA+PiA+ PiAgICkNCj4gPiA+PiA+PiB7DQo+ID4gPj4gPj4gICBFRklfU1RBVFVTICAgICAgICAgICAgICAg ICAgU3RhdHVzOw0KPiA+ID4+ID4+IEBAIC00NTMsNyArNDU4LDcgQEAgUHJvY2Vzc1RoZXNlQ2Fw c3VsZXMgKA0KPiA+ID4+ID4+ICAgICAgICAgY29udGludWU7DQo+ID4gPj4gPj4gICAgICAgfQ0K PiA+ID4+ID4+DQo+ID4gPj4gPj4gLSAgICAgIGlmICgoIUZpcnN0Um91bmQpIHx8IChFbWJlZGRl ZERyaXZlckNvdW50DQo+ID4gPT0gMCkpIHsNCj4gPiA+PiA+PiArICAgICAgaWYgKExhc3RSb3Vu ZCB8fCAoRW1iZWRkZWREcml2ZXJDb3VudCA9PQ0KPiA+IDApKSB7DQo+ID4gPj4gPj4gICAgICAg ICBERUJVRygoREVCVUdfSU5GTywgIlByb2Nlc3NDYXBzdWxlSW1hZ2UgLQ0KPiA+IDB4JXhcbiIs DQo+ID4gPj4gPj4gQ2Fwc3VsZUhlYWRlcikpOw0KPiA+ID4+ID4+ICAgICAgICAgU3RhdHVzID0g UHJvY2Vzc0NhcHN1bGVJbWFnZQ0KPiA+IChDYXBzdWxlSGVhZGVyKTsNCj4gPiA+PiA+PiAgICAg ICAgIG1DYXBzdWxlU3RhdHVzQXJyYXkgW0luZGV4XSA9IFN0YXR1czsNCj4gPiA+PiA+PiBAQCAt NTQ2LDcgKzU1MSw3IEBAIFByb2Nlc3NDYXBzdWxlcyAoDQo+ID4gPj4gPj4gICBFRklfU1RBVFVT ICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAgIGlmICgh bUR4ZUNhcHN1bGVMaWJFbmRPZkR4ZSkgew0KPiA+ID4+ID4+IC0gICAgU3RhdHVzID0gUHJvY2Vz c1RoZXNlQ2Fwc3VsZXMoVFJVRSk7DQo+ID4gPj4gPj4gKyAgICBTdGF0dXMgPSBQcm9jZXNzVGhl c2VDYXBzdWxlcyhUUlVFLCBGQUxTRSk7DQo+ID4gPj4gPj4NCj4gPiA+PiA+PiAgICAgLy8NCj4g PiA+PiA+PiAgICAgLy8gUmVib290IFN5c3RlbSBpZiBhbmQgb25seSBpZiBhbGwgY2Fwc3VsZQ0K PiA+IHByb2Nlc3NlZC4NCj4gPiA+PiA+PiBAQCAtNTU1LDggKzU2MCw5IEBAIFByb2Nlc3NDYXBz dWxlcyAoDQo+ID4gPj4gPj4gICAgIGlmIChtTmVlZFJlc2V0ICYmIEFyZUFsbEltYWdlc1Byb2Nl c3NlZCgpKSB7DQo+ID4gPj4gPj4gICAgICAgRG9SZXNldFN5c3RlbSgpOw0KPiA+ID4+ID4+ICAg ICB9DQo+ID4gPj4gPj4gKyAgICBtRmlyc3RSb3VuZCA9IEZBTFNFOw0KPiA+ID4+ID4+ICAgfSBl bHNlIHsNCj4gPiA+PiA+PiAtICAgIFN0YXR1cyA9IFByb2Nlc3NUaGVzZUNhcHN1bGVzKEZBTFNF KTsNCj4gPiA+PiA+PiArICAgIFN0YXR1cyA9IFByb2Nlc3NUaGVzZUNhcHN1bGVzKG1GaXJzdFJv dW5kLA0KPiA+IFRSVUUpOw0KPiA+ID4+ID4+ICAgICAvLw0KPiA+ID4+ID4+ICAgICAvLyBSZWJv b3QgU3lzdGVtIGlmIHJlcXVpcmVkIGFmdGVyIGFsbA0KPiA+IGNhcHN1bGUgcHJvY2Vzc2VkDQo+ ID4gPj4gPj4gICAgIC8vDQo+ID4gPj4gPj4gLS0NCj4gPiA+PiA+PiAyLjE3LjANCj4gPiA+PiA+ Pg0KPiA+ID4+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQo+ID4gPj4gPj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiA+PiA+PiBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4+ID4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4v bGlzdGluZm8vZWRrMi1kZXZlbA0K