From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.115; helo=mga14.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 D3AE62113DA35 for ; Tue, 18 Sep 2018 01:46:52 -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 fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Sep 2018 01:46:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,389,1531810800"; d="scan'208";a="91046848" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga001.fm.intel.com with ESMTP; 18 Sep 2018 01:46:52 -0700 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 18 Sep 2018 01:46:51 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 18 Sep 2018 01:46:50 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.226]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.240]) with mapi id 14.03.0319.002; Tue, 18 Sep 2018 16:46:49 +0800 From: "Zeng, Star" To: "Wang, Jian J" , Laszlo Ersek , "edk2-devel@lists.01.org" CC: Ard Biesheuvel , "Ni, Ruiyu" , "Yao, Jiewen" , "Zeng, Star" Thread-Topic: [PATCH] MdeModulePkg/DxeIpl: support more NX related PCDs Thread-Index: AQHUTu38tfV/C0mzcUuaqCdr9B9vb6T1uIWg Date: Tue, 18 Sep 2018 08:46:48 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103BBBAFDA@shsmsx102.ccr.corp.intel.com> References: <20180914051335.2644-1-jian.j.wang@intel.com> <9d5d297a-4d10-3ffd-3d02-1f369cfe5bda@redhat.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BBBA7A4@shsmsx102.ccr.corp.intel.com> <397ee56b-0c32-09a7-5542-ea6f81e6c211@redhat.com> In-Reply-To: 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] MdeModulePkg/DxeIpl: support more NX related PCDs 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: Tue, 18 Sep 2018 08:46:53 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSB0b3RhbGx5IGFncmVlIGFkZGluZyBtb3JlIGNsZWFyIGRvY3VtZW50YXRpb24gaW4gZGVjIGFu ZCB1bmkuDQpNeSBvbmx5IGNvbmNlcm4gaXMgdGhhdCB0aGUgd2FybmluZyBtZXNzYWdlIChieSBj aGVja2luZyB0aGUgY29tYmluYXRpb25zKSB0byBleHBsYWluIGluIGMgbWF5IGJyaW5nIG1vcmUg Y29uZnVzaW9uLg0KQW55d2F5LCBpZiB3ZSBjYW4gaGF2ZSB0aGUgd2FybmluZyBtZXNzYWdlIHRv IG1ha2UgdGhlIHRoaW5ncyBtb3JlIGNsZWFyLCBJIGRlZmluaXRlbHkgYWdyZWUgaXQuIDopDQoN Cg0KVGhhbmtzLA0KU3Rhcg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFdhbmcs IEppYW4gSiANClNlbnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAxOCwgMjAxOCA5OjIyIEFNDQpUbzog TGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0Bp bnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IEFyZCBCaWVzaGV1dmVsIDxh cmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+ OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQpTdWJqZWN0OiBSRTogW1BBVENI XSBNZGVNb2R1bGVQa2cvRHhlSXBsOiBzdXBwb3J0IG1vcmUgTlggcmVsYXRlZCBQQ0RzDQoNCkkg aGF2ZSBubyBzdHJvbmcgb3BpbmlvbiBmb3IgdGhpcyBwcm9wb3NhbC4gQnV0IGlmIHdlIGRlY2lk ZSB0byBkbyBpdCBmaW5hbGx5LCBJJ2Qgc3VnZ2VzdCB0byBhZGQgc29tZSB3YXJuaW5nIG1lc3Nh Z2VzIGZvciBhbnkgcHJvYmFibHkgc3VycHJpc2luZyBzZXR0aW5nIGNvbWJpbmF0aW9ucy4NCg0K UmVnYXJkcywNCkppYW4NCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiBTZW50OiBNb25kYXks IFNlcHRlbWJlciAxNywgMjAxOCA2OjE0IFBNDQo+IFRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdA aW50ZWwuY29tPjsgV2FuZywgSmlhbiBKIA0KPiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZl bEBsaW5hcm8ub3JnPjsgTmksIFJ1aXl1IA0KPiA8cnVpeXUubmlAaW50ZWwuY29tPjsgWWFvLCBK aWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSBNZGVN b2R1bGVQa2cvRHhlSXBsOiBzdXBwb3J0IG1vcmUgTlggcmVsYXRlZCBQQ0RzDQo+IA0KPiBPbiAw OS8xNy8xOCAwNzo1NywgWmVuZywgU3RhciB3cm90ZToNCj4gPiBIb3cgYWJvdXQgd2Ugc2VlIHRo ZSBwcm9ibGVtIGluIGFub3RoZXIgd2F5Pw0KPiA+DQo+ID4gSWYgbXkgdW5kZXJzdGFuZGluZyBp cyBjb3JyZWN0LCBjdXJyZW50IGRpc2N1c3Npb24gYW5kIHBhdGNoZXMgdGhpbmsgDQo+ID4gRkFM U0UvMA0KPiBtZWFucyBkaXNhYmxlL2NsZWFyIE5YLCBidXQgdGhhdCBpcyBub3QgdGhlIGZhY3Qu DQo+ID4gQWNjb3JkaW5nIHRvIHRoZSBjb2RlIGltcGxlbWVudGF0aW9uLCBGQUxTRS8wIHNlZW1z IG1lYW4gKkFTIElTKiB0byANCj4gPiBkbw0KPiB0aGluZyAobm8gY29kZSB0byBkaXNhYmxlL2Ns ZWFyIE5YKS4NCj4gPg0KPiA+IFBjZFNldE54Rm9yU3RhY2sNCj4gPiBUUlVFOiBTZXQgTlggZm9y IHN0YWNrLg0KPiA+IEZBTFNFOiBObyBjb2RlIHRvIGNsZWFyIE5YIGZvciBzdGFjay4NCj4gPg0K PiA+IFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeQ0KPiA+IEJJVFggMTogU2V0IE5YIGZv ciB0aGF0IG1lbW9yeSB0eXBlLg0KPiA+IEJJVFggMDogTm8gY29kZSB0byBjbGVhciBOWCBmb3Ig dGhhdCBtZW1vcnkgdHlwZS4NCj4gPg0KPiA+IFBjZEltYWdlUHJvdGVjdGlvblBvbGljeQ0KPiA+ IEJJVFggMTogU2V0IE5YIGZvciB0aGUgaW1hZ2UgZGF0YSBzZWN0aW9uLg0KPiA+IEJJVFggMDog Tm90IGNvZGUgdG8gY2xlYXIgTlggZm9yIHRoZSBpbWFnZSBkYXRhIHNlY3Rpb24uDQo+ID4NCj4g PiBTbywgaG93IGFib3V0IHdlIHRoaW5rIG9uZSBQQ0QganVzdCB3b3JrcyBmb3IgaXRzZWxmIGFu ZCBpdCBkb2VzIG5vdCANCj4gPiBpbXBhY3QNCj4gb3RoZXIgUENEcyB0byBwcm90ZWN0Pw0KPiA+ IFRoYXQgbWVhbnMgVFJVRS8xIGlzIHRvIHByb3RlY3QgYW5kIEZBTFNFLzAgaXMgKkFTIElTKiB0 byBkbyBub3RoaW5nLg0KPiA+IFRoZSBkZXNjcmlwdGlvbiBvZiB0aGVzZSBQQ0RzIGNvdWxkIGJl IGVuaGFuY2VtZW50IGlmIHdlIHRoaW5rIGl0IGlzIA0KPiA+IGEgZ29vZA0KPiB3YXkgdG8gc2Vl IHRoZSBwcm9ibGVtLg0KPiANCj4gU3VyZSwgdGhhdCB0b28gY291bGQgd29yayBmb3IgbWUsIGJ1 dCB0aGVuIHRoZSBkb2N1bWVudGF0aW9uIGluIHRoZSANCj4gREVDIC8gVU5JIGZpbGVzIGhhcyB0 byBiZSByZWFsbHkgY2xlYXIuDQo+IA0KPiBUaGUgaW5pdGlhbCB3b3JyeSBmb3IgdGhlIGN1cnJl bnQgZGlzY3Vzc2lvbiB3YXMgdGhhdCBzb21lIHBsYXRmb3JtIA0KPiBtaWdodA0KPiAtIHByb3Rl Y3QgZS5nLiBCb290U2VydmljZXNEYXRhIHR5cGUgbWVtb3J5LA0KPiAtIG5vdCBzZXQgUGNkU2V0 TnhGb3JTdGFjaywNCj4gLSBleHBlY3QgdGhlIHN0YWNrIHRvIHJlbWFpbiBleGVjdXRhYmxlLg0K PiANCj4gVGhlIGFjdHVhbCByZXN1bHRzIG1pZ2h0IHN1cnByaXNlIHRoZSBwbGF0Zm9ybSBvd25l ci4NCj4gDQo+IElmIHRoZSBkb2N1bWVudGF0aW9uIGRpc3BlbGxlZCBhbnkgcG9zc2libGUgbWlz Y29uY2VwdGlvbnMsIEkgdGhpbmsgDQo+IHlvdXIgaWRlYSBjb3VsZCB3b3JrIHRvbyAoYW5kIGl0 IHdvdWxkIGJlIGEgbG90IGVhc2llciB0byBjb2RlKS4NCj4gDQo+IFRoYW5rcw0KPiBMYXN6bG8N Cj4gDQo+IA0KPiA+DQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gU3Rhcg0KPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogV2FuZywgSmlhbiBKDQo+ID4gU2VudDogTW9uZGF5 LCBTZXB0ZW1iZXIgMTcsIDIwMTggMTA6MTEgQU0NCj4gPiBUbzogTGFzemxvIEVyc2VrIDxsZXJz ZWtAcmVkaGF0LmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gQ2M6IFplbmcsIFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbA0KPiA8YXJkLmJpZXNoZXV2 ZWxAbGluYXJvLm9yZz47IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgWWFvLCANCj4g Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW1BBVENIXSBN ZGVNb2R1bGVQa2cvRHhlSXBsOiBzdXBwb3J0IG1vcmUgTlggcmVsYXRlZCANCj4gPiBQQ0RzDQo+ ID4NCj4gPiBMYXN6bG8sDQo+ID4NCj4gPiBUaGFua3MgZm9yIHRoZSBjb21tZW50cy4NCj4gPg0K PiA+IFJlZ2FyZHMsDQo+ID4gSmlhbg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4+IEZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0K PiA+PiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAxNCwgMjAxOCA1OjUxIFBNDQo+ID4+IFRvOiBX YW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnDQo+ID4+IENjOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgQXJkIEJpZXNo ZXV2ZWwgDQo+ID4+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgTmksIFJ1aXl1IDxydWl5 dS5uaUBpbnRlbC5jb20+OyBZYW8sIA0KPiA+PiBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29t Pg0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBNZGVNb2R1bGVQa2cvRHhlSXBsOiBzdXBwb3J0 IG1vcmUgTlggcmVsYXRlZCANCj4gPj4gUENEcw0KPiA+Pg0KPiA+PiBJJ3ZlwqBnb3TCoHNvbWXC oGNvbW1lbnRzwqBvbsKgdGhlwqBjb2RlwqBhc8Kgd2VsbDoNCj4gPj4NCj4gPj4gT27CoDA5LzE0 LzE4wqAwNzoxMyzCoEppYW7CoErCoFdhbmfCoHdyb3RlOg0KPiA+Pj4gwqBCWiMxMTE2OsKgaHR0 cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE2DQo+ID4+Pg0K PiA+Pj4gwqBDdXJyZW50bHnCoElBMzJfRUZFUi5OWEXCoGlzwqBvbmx5wqBzZXTCoGFnYWluc3TC oFBjZFNldE54Rm9yU3RhY2suwqANCj4gPj4+IFRoaXMNCj4gPj4+IMKgY29uZnVzZXPCoGRldmVs b3BlcnPCoGJlY2F1c2XCoGZvbGxvd2luZ8KgdHdvwqBvdGhlcsKgUENEc8KgYWxzb8KgbmVlZMKg DQo+ID4+PiBOWEUNCj4gPj4+IMKgdG/CoGJlwqBzZXQswqBidXTCoGFjdHVhbGx5wqBub3QuDQo+ ID4+Pg0KPiA+Pj4gwqDCoMKgwqDCoFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeQ0KPiA+ Pj4gwqDCoMKgwqDCoFBjZEltYWdlUHJvdGVjdGlvblBvbGljeQ0KPiA+Pj4NCj4gPj4+IMKgVGhp c8KgcGF0Y2jCoHNvbHZlc8KgdGhpc8KgaXNzdWXCoGJ5wqBhZGRpbmfCoGxvZ2ljwqB0b8KgZW5h YmxlwqANCj4gPj4+IElBMzJfRUZFUi5OWEUNCj4gPj4+IMKgaWbCoGFuecKgb2bCoHRob3NlwqBQ Q0RzwqBoYXZlwqBhbnl0aGluZ8KgZW5hYmxlZC4NCj4gPj4+DQo+ID4+PiDCoER1ZcKgdG/CoHRo ZcKgZmFjdMKgdGhhdMKgTljCoG1lbW9yecKgdHlwZcKgb2bCoHN0YWNrwqAoZW5hYmxlZMKgYnkN Cj4gPj4+IFBjZFNldE54Rm9yU3RhY2spDQo+ID4+PiDCoGFuZMKgaW1hZ2XCoGRhdGHCoHNlY3Rp b27CoChlbmFibGVkwqBiecKgUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5KcKgYXJlIA0KPiA+Pj4g YWxzbw0KPiA+Pj4gwqBwYXJ0wqBvZsKgUGNkRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5LMKg dGhpc8KgcGF0Y2jCoGFsc2/CoGFkZMKgbW9yZSANCj4gPj4+IGNoZWNrcw0KPiA+Pj4gwqB0b8Kg d2FybsKgKEFTU0VSVCnCoHVzZXJzwqBhbnnCoHVucmVhc29uYWJsZcKgc2V0dGluZ8KgY29tYmlu YXRpb25zLsKgRm9yIA0KPiA+Pj4gZXhhbXBsZSwNCj4gPj4+DQo+ID4+PiDCoMKgwqDCoMKgUGNk U2V0TnhGb3JTdGFja8KgPT3CoEZBTFNFwqAmJg0KPiA+Pj4gwqDCoMKgwqDCoMKgwqAoUGNkRHhl TnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5wqAmwqAoMcKgDQo+ID4+PiA8PEVmaUJvb3RTZXJ2aWNl c0RhdGEpKSAhPcKgMA0KPiA+Pj4NCj4gPj4+IMKgwqDCoMKgwqBQY2RJbWFnZVByb3RlY3Rpb25Q b2xpY3nCoD09wqAwwqAmJg0KPiA+Pj4gwqDCoMKgwqDCoMKgwqAoUGNkRHhlTnhNZW1vcnlQcm90 ZWN0aW9uUG9saWN5wqAmwqAoMcKgPDwNCj4gPj4+IEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGEpKcKg IT3CoDANCj4gPj4+DQo+ID4+PiDCoMKgwqDCoMKgUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5wqA9 PcKgMMKgJiYNCj4gPj4+IMKgwqDCoMKgwqDCoMKgKFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBv bGljecKgJsKgKDHCoA0KPiA+Pj4gPDxFZmlCb290U2VydmljZXNEYXRhKSkgIT3CoDANCj4gPj4+ DQo+ID4+PiDCoMKgwqDCoMKgUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5wqA9PcKgMMKgJiYNCj4g Pj4+IMKgwqDCoMKgwqDCoMKgKFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljecKgJsKgKDHC oDw8RWZpTG9hZGVyRGF0YSkpwqAhPcKgMA0KPiA+Pj4NCj4gPj4+IMKgSW7CoG90aGVywqB3b3Jk cyzCoFBjZFNldE54Rm9yU3RhY2vCoGFuZMKgUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5wqANCj4g Pj4+IGhhdmUNCj4gPj4+IMKgcHJpb3JpdHnCoG92ZXLCoFBjZER4ZU54TWVtb3J5UHJvdGVjdGlv blBvbGljeS4NCj4gPj4+DQo+ID4+PiDCoENjOsKgU3RhcsKgWmVuZ8KgPHN0YXIuemVuZ0BpbnRl bC5jb20+DQo+ID4+PiDCoENjOsKgTGFzemxvwqBFcnNla8KgPGxlcnNla0ByZWRoYXQuY29tPg0K PiA+Pj4gwqBDYzrCoEFyZMKgQmllc2hldXZlbMKgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+ DQo+ID4+PiDCoENjOsKgUnVpeXXCoE5pwqA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiA+Pj4gwqBD YzrCoEppZXdlbsKgWWFvwqA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4+PiDCoENvbnRyaWJ1 dGVkLXVuZGVyOsKgVGlhbm9Db3JlwqBDb250cmlidXRpb27CoEFncmVlbWVudMKgMS4xDQo+ID4+ PiDCoFNpZ25lZC1vZmYtYnk6wqBKaWFuwqBKwqBXYW5nwqA8amlhbi5qLndhbmdAaW50ZWwuY29t Pg0KPiA+Pj4gwqAtLS0NCj4gPj4+IMKgwqBNZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0R4 ZUlwbC5pbmbCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMsKgKw0KPiA+Pj4gwqDCoE1kZU1vZHVs ZVBrZy9Db3JlL0R4ZUlwbFBlaW0vSWEzMi9EeGVMb2FkRnVuYy5jwqDCoHzCoMKgNMKgKy0NCj4g Pj4+IMKgwqBNZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVtb3J5LmPC oHzCoDU1wqANCj4gPj4+ICsrKysrKysrKysrDQo+ICsrDQo+ID4+ICsrKysrKysrKystDQo+ID4+ PiDCoMKgTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5owqB8 wqAzM8KgDQo+ID4+PiArKysrKysrKysrKw0KPiArKw0KPiA+PiArDQo+ID4+PiDCoMKgNMKgZmls ZXPCoGNoYW5nZWQswqA5McKgaW5zZXJ0aW9ucygrKSzCoDPCoGRlbGV0aW9ucygtKQ0KPiA+Pj4N Cj4gPj4+IMKgZGlmZsKgLS0NCj4gPj4gZ2l0wqBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBl aW0vRHhlSXBsLmluZg0KPiA+PiBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwIGxQZWltL0R4ZUlw bC5pbmYNCj4gPj4+IMKgaW5kZXjCoGZkODI2NTc0MDQuLjA2OGU3MDAwNzTCoDEwMDY0NA0KPiA+ Pj4gwqAtLS3CoGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9EeGVJcGwuaW5mDQo+ID4+ PiDCoCsrK8KgYi9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0R4ZUlwbC5pbmYNCj4gPj4+ IMKgQEDCoC0xMTcsNsKgKzExNyw4wqBAQA0KPiA+Pj4NCj4gPj4+IMKgwqBbUGNkLklBMzIsUGNk Llg2NCxQY2QuQVJNLFBjZC5BQVJDSDY0XQ0KPiA+Pj4gwqDCoMKgwqBnRWZpTWRlTW9kdWxlUGtn VG9rZW5TcGFjZUd1aWQuUGNkU2V0TnhGb3JTdGFja8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoA0KPiA+Pj4gIyMgU09NRVRJTQ0KPiA+PiBFU19DT05TVU1FUw0KPiA+Pj4gwqArwqDCoGdF ZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xp Y3kNCj4gIyMNCj4gPj4gU09NRVRJTUVTX0NPTlNVTUVTDQo+ID4+PiDCoCvCoMKgZ0VmaU1kZU1v ZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEltYWdlUHJvdGVjdGlvblBvbGljecKgwqDCoMKgwqDC oMKgDQo+ID4+PiAjIyBTT01FDQo+ID4+IFRJTUVTX0NPTlNVTUVTDQo+ID4+Pg0KPiA+Pj4gwqDC oFtEZXBleF0NCj4gPj4+IMKgwqDCoMKgZ0VmaVBlaUxvYWRGaWxlUHBpR3VpZMKgQU5EwqBnRWZp UGVpTWFzdGVyQm9vdE1vZGVQcGlHdWlkDQo+ID4+PiDCoGRpZmbCoC0tDQo+ID4+DQo+IGdpdMKg YS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL0lhMzIvRHhlTG9hZEZ1bmMuY8KgYi9NZGVN b2R1bGVQa2cvDQo+ID4+IENvcmUvRHhlSXBsUGVpbS9JYTMyL0R4ZUxvYWRGdW5jLmMNCj4gPj4+ IMKgaW5kZXjCoGQyOGJhYTM2MTUuLjlhOTcyMDVlZjjCoDEwMDY0NA0KPiA+Pj4gwqAtLS3CoGEv TWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9JYTMyL0R4ZUxvYWRGdW5jLmMNCj4gPj4+IMKg KysrwqBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vSWEzMi9EeGVMb2FkRnVuYy5jDQo+ ID4+PiDCoEBAwqAtMjQ1LDfCoCsyNDUsN8KgQEDCoFRvQnVpbGRQYWdlVGFibGXCoCgNCj4gPj4+ IMKgwqDCoMKgwqDCoHJldHVybsKgVFJVRTsNCj4gPj4+IMKgwqDCoMKgfQ0KPiA+Pj4NCj4gPj4+ IMKgLcKgwqBpZsKgKFBjZEdldEJvb2zCoChQY2RTZXROeEZvclN0YWNrKcKgJibCoA0KPiA+Pj4g SXNFeGVjdXRlRGlzYWJsZUJpdEF2YWlsYWJsZQ0KPiA+Pj4gKCkpwqB7DQo+ID4+PiDCoCvCoMKg aWbCoChUb0VuYWJsZUV4ZWN1dGVEaXNhYmxlRmVhdHVyZcKgKCkpwqB7DQo+ID4+PiDCoMKgwqDC oMKgwqByZXR1cm7CoFRSVUU7DQo+ID4+PiDCoMKgwqDCoH0NCj4gPj4+DQo+ID4+PiDCoEBAwqAt NDM2LDfCoCs0MzYsN8KgQEDCoEhhbmRPZmZUb0R4ZUNvcmXCoCgNCj4gPj4+IMKgwqDCoMKgwqDC oEJ1aWxkUGFnZVRhYmxlc0lhMzJQYWXCoD3CoFRvQnVpbGRQYWdlVGFibGXCoCgpOw0KPiA+Pj4g wqDCoMKgwqDCoMKgaWbCoChCdWlsZFBhZ2VUYWJsZXNJYTMyUGFlKcKgew0KPiA+Pj4gwqDCoMKg wqDCoMKgwqDCoFBhZ2VUYWJsZXPCoD3CoENyZWF0ZTRHUGFnZVRhYmxlc0lhMzJQYWXCoChCYXNl T2ZTdGFjaywgDQo+ID4+PiBTVEFDS19TSVpFKTsNCj4gPj4+IMKgLcKgwqDCoMKgwqDCoGlmwqAo SXNFeGVjdXRlRGlzYWJsZUJpdEF2YWlsYWJsZcKgKCkpwqB7DQo+ID4+PiDCoCvCoMKgwqDCoMKg wqBpZsKgKFRvRW5hYmxlRXhlY3V0ZURpc2FibGVGZWF0dXJlwqAoKSnCoHsNCj4gPj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgRW5hYmxlRXhlY3V0ZURpc2FibGVCaXQoKTsNCj4gPj4+IMKgwqDCoMKg wqDCoMKgwqB9DQo+ID4+PiDCoMKgwqDCoMKgwqB9DQo+ID4+PiDCoGRpZmbCoC0tDQo+ID4+DQo+ IGdpdMKgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVtb3J5LmPC oGIvTWRlTW9kdWxlUGtnDQo+ID4+IC9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnku Yw0KPiA+Pj4gwqBpbmRleMKgNDk2ZTIxOTkxMy4uMjUzZmU4NDIyM8KgMTAwNjQ0DQo+ID4+PiDC oC0tLcKgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVtb3J5LmMN Cj4gPj4+IMKgKysrwqBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxN ZW1vcnkuYw0KPiA+Pj4gwqBAQMKgLTEwNiw2wqArMTA2LDU2wqBAQMKgSXNOdWxsRGV0ZWN0aW9u RW5hYmxlZMKgKA0KPiA+Pj4gwqDCoMKgwqByZXR1cm7CoCgoUGNkR2V0OMKgKFBjZE51bGxQb2lu dGVyRGV0ZWN0aW9uUHJvcGVydHlNYXNrKcKgJsKgQklUMCnCoA0KPiA+Pj4gIT0gMCk7DQo+ID4+ PiDCoMKgfQ0KPiA+Pj4NCj4gPj4+IMKgKy8qKg0KPiA+Pj4gwqArwqDCoENoZWNrwqBpZsKgRXhl Y3V0ZcKgRGlzYWJsZcKgQml0wqAoSUEzMl9FRkVSLk5YRSnCoHNob3VsZMKgYmXCoGVuYWJsZWTC oG9ywqBub3QuDQo+ID4+PiDCoCsNCj4gPj4+IMKgK8KgwqBAcmV0dmFswqBUUlVFwqDCoMKgwqBJ QTMyX0VGRVIuTlhFwqBzaG91bGTCoGJlwqBlbmFibGVkLg0KPiA+Pj4gwqArwqDCoEByZXR2YWzC oEZBTFNFwqDCoMKgSUEzMl9FRkVSLk5YRcKgc2hvdWxkwqBub3TCoGJlwqBlbmFibGVkLg0KPiA+ Pj4gwqArDQo+ID4+PiDCoCsqKi8NCj4gPj4+IMKgK0JPT0xFQU4NCj4gPj4+IMKgK1RvRW5hYmxl RXhlY3V0ZURpc2FibGVGZWF0dXJlwqAoDQo+ID4+PiDCoCvCoMKgVk9JRA0KPiA+Pj4gwqArwqDC oCkNCj4gPj4NCj4gPj4gScKgdGhpbmvCoHdlJ3JlwqBvdmVyLWNvbXBsaWNhdGluZ8KgdGhlwqBu YW1lwqBvZsKgdGhpc8KgZnVuY3Rpb24uwqBGaXJzdCzCoCJUbyINCj4gPj4gbG9va3PCoHVubmVj ZXNzYXJ5LsKgU2Vjb25kLMKgIkVuYWJsZcKgRXhlY3V0ZcKgRGlzYWJsZSLCoGlzwqBqdXN0wqBh biANCj4gPj4gZW5naW5lZXInc8Kgd2F5wqB0b8Kgc2F5wqAiRGlzYWJsZcKgRXhlY3V0aW9uIi7C oENhbsKgd2XCoHNhecKgcmlnaHTCoHRoYXQ6DQo+ID4+IERpc2FibGVFeGVjKCk/DQo+ID4+DQo+ ID4+IE9ywqBhdMKgbGVhc3QswqBpZsKgd2XCoGNvbnNpZGVywqAiTlgiwqBhwqB3b3JkwqBpbsKg aXRzwqBvd27CoHJpZ2h0LMKgIkVuYWJsZU5YKCkiPw0KPiA+DQo+ID4gSSBwcmVmZXIgbW9yZSBn ZW5lcmFsIG9uZS4gTGV0J3MgdXNlIERpc2FibGVFeGVjKCkuDQo+ID4NCj4gPj4NCj4gPj4+IMKg K3sNCj4gPj4+IMKgK8KgwqBpZsKgKCFJc0V4ZWN1dGVEaXNhYmxlQml0QXZhaWxhYmxlwqAoKSnC oHsNCj4gPj4+IMKgK8KgwqDCoMKgcmV0dXJuwqBGQUxTRTsNCj4gPj4+IMKgK8KgwqB9DQo+ID4+ PiDCoCsNCj4gPj4+IMKgK8KgwqAvLw0KPiA+Pj4gwqArwqDCoC8vwqBOb3JtYWxsecKgc3RhY2vC oGlzwqB0eXBlwqBvZsKgRWZpQm9vdFNlcnZpY2VzRGF0YS7CoERpc2FibGluZ8KgTlggDQo+ID4+ PiBmb3LCoHN0YWNrDQo+ID4+PiDCoCvCoMKgLy/CoGJ1dMKgZW5hYmxpbmfCoE5YwqBmb3LCoEVm aUJvb3RTZXJ2aWNlc0RhdGHCoGRvZXNuJ3TCoG1ha2XCoGFuecKgc2Vuc2UuDQo+ID4+PiDCoCvC oMKgLy8NCj4gPj4NCj4gPj4gVGhpc8KgY29tbWVudMKgaXPCoGdvb2QuDQo+ID4+DQo+ID4+PiDC oCvCoMKgaWbCoChQY2RHZXRCb29swqAoUGNkU2V0TnhGb3JTdGFjaynCoD09wqBGQUxTRcKgJiYN Cj4gPj4NCj4gPj4gUGxlYXNlwqBkb24ndMKgY29tcGFyZcKgUGNkR2V0Qm9vbCgpwqBhZ2FpbnN0 wqBUUlVFwqBvcsKgRkFMU0UswqBqdXN0wqBzYXkgDQo+ID4+IFBjZEdldEJvb2woKSzCoG9ywqAh UGNkR2V0Qm9vbCgpLg0KPiA+Pg0KPiA+Pj4gwqArwqDCoMKgwqDCoMKgKFBjZEdldDY0wqAoUGNk RHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5KcKgJg0KPiA+Pj4gU1RBQ0tfTUVNT1JZX1RZUEUp DQo+ID4+IMKgIT3CoDApwqB7DQo+ID4+PiDCoCvCoMKgwqDCoERFQlVHwqAoKERFQlVHX0VSUk9S LA0KPiA+Pj4gwqArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIkVSUk9SOsKgTljCoGZvcsKgc3Rh Y2vCoGlzwqBkaXNhYmxlZMKgYnV0wqBOWMKgZm9ywqBpdHPCoA0KPiA+Pj4gbWVtb3J5IHR5cGXC oGlzwqBlbmFibGVkDQo+ID4+ICFcclxuIikpOw0KPiA+Pj4gwqArwqDCoMKgwqBBU1NFUlQoIShQ Y2RHZXRCb29swqAoUGNkU2V0TnhGb3JTdGFjaynCoD09wqBGQUxTRcKgJiYNCj4gPj4+IMKgK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKFBjZEdldDY0wqAoUGNkRHhlTnhNZW1vcnlQcm90ZWN0 aW9uUG9saWN5KcKgJiANCj4gPj4+IFNUQUNLX01FTU9SWV9UDQo+ID4+IFlQRSnCoCE9wqAwKSk7 DQo+ID4+PiDCoCvCoMKgfQ0KPiA+Pg0KPiA+PiBQbGVhc2XCoGRyb3DCoGJvdGjCoHRoZcKgZXhw bGljaXTCoCJpZiIswqBhbmTCoHRoZcKgREVCVUfCoG1lc3NhZ2UuwqBKdXN0wqANCj4gPj4ga2Vl cCB0aGUgY29tbWVudMKgKHdoaWNowqBpc8KgYWxyZWFkecKgZmluZSnCoGFuZMKgdGhlwqBBU1NF UlQoKS7CoFRoZcKgDQo+ID4+IEFTU0VSVCgpIHdpbGzCoHRlbGwgcGVvcGxlwqB3aGVyZcKgdG/C oGxvb2sswqBhbmTCoHRoZcKgY29tbWVudMKgd2lsbMKgDQo+ID4+IGV4cGxhaW7CoHRoZSBhc3Nl cnRpb24uwqBBbHNvLCBpbsKgYcKgUkVMRUFTRcKgYnVpbGQswqB0aGXCoGNoZWNrwqBzaG91bGTC oA0KPiA+PiBiZcKgZWxpbWluYXRlZCBlbnRpcmVseSzCoGJ1dMKgdGhhdCBtaWdodMKgbm90wqB3 b3JrwqBmb3LCoHRoZcKgZXhwbGljaXTCoA0KPiA+PiAiaWYiwqAoZGVwZW5kZW50wqBvbiBjb21w aWxlcnPCoGFuZC9vciBmaXhlZMKgdnMuwqBkeW5hbWljwqBQQ0RzKS4NCj4gPj4NCj4gPj4gRnVy dGhlcm1vcmUswqBrZWVwaW5nwqB0aGXCoGxvZ2ljYWzCoG5lZ2F0aW9uwqBvcGVyYXRvcsKgYXPC oHRoZcKgb3V0ZXJtb3N0IA0KPiA+PiBvcGVyYXRvcsKgbWFrZXPCoHRoZcKgY29kZcKgYcKgbG90 wqBoYXJkZXLCoHRvwqByZWFkLsKgSXQnc8KgbXVjaMKgYmV0dGVywqB0b8KgDQo+ID4+IGp1c3Qg YXNzZXJ0wqB3aGF0wqB3ZcKgYWN0dWFsbHnCoHJlcXVpcmUswqB3aGljaMKgaXM6DQo+ID4+DQo+ ID4+IMKgwqAoRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5wqBjb3ZlcnPCoEJTRCnCoC0tPsKg U2V0TnhGb3JTdGFjaw0KPiA+Pg0KPiA+PiBwdXTCoGRpZmZlcmVudGx5LA0KPiA+Pg0KPiA+PiDC oMKgTk9UKER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljecKgY292ZXJzwqBCU0QpwqBPUsKgU2V0 TnhGb3JTdGFjaw0KPiA+Pg0KPiA+PiBpbsKgQzoNCj4gPj4NCj4gPj4gwqDCoEFTU0VSVMKgKA0K PiA+PiDCoMKgwqDCoChQY2RHZXQ2NMKgKFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeSnC oCbCoFNUQUNLX01FTU9SWV9UWVBFKQ0KPiA9PQ0KPiA+PiAwwqB8fA0KPiA+PiDCoMKgwqDCoFBj ZEdldEJvb2zCoChQY2RTZXROeEZvclN0YWNrKQ0KPiA+PiDCoMKgwqDCoCk7DQo+ID4+DQo+ID4N Cj4gPiBJIGRvbid0IGhhdmUgc3Ryb25nIG9waW5pb25zIG9uIHRoZXNlLiBTbyBsZXQncyBkbyBp dCB5b3VyIHdheS4NCj4gPg0KPiA+Pj4gwqArDQo+ID4+PiDCoCvCoMKgLy8NCj4gPj4+IMKgK8Kg wqAvL8KgSW1hZ2XCoGRhdGHCoHNlY3Rpb27CoGNvdWxkwqBiZcKgdHlwZcKgb2bCoEVmaUxvYWRl ckRhdGEsIA0KPiA+Pj4gRWZpQm9vdFNlcnZpY2VzRGF0YQ0KPiA+Pj4gwqArwqDCoC8vwqBvcsKg RWZpUnVudGltZVNlcnZpY2VzRGF0YS7CoERpc2FibGluZ8KgTljCoGZvcsKgaW1hZ2XCoGRhdGHC oGJ1dCANCj4gPj4+IGVuYWJsaW5nwqBOWA0KPiA+Pj4gwqArwqDCoC8vwqBmb3LCoGFuecKgdGhv c2XCoG1lbW9yecKgdHlwZXPCoGRvZXNuJ3TCoG1ha2XCoGFuecKgc2Vuc2UuDQo+ID4+PiDCoCvC oMKgLy8NCj4gPj4NCj4gPj4gVGhlwqBjb21tZW50wqBpc8KgZ29vZCzCoEnCoGp1c3TCoHN1Z2dl c3TCoGV4dGVuZGluZ8KgaXTCoHdpdGjCoHRoZcKgb3JpZ2luwqBvZiANCj4gPj4gdGhlDQo+ID4+ IGltYWdlOsKgIkRpc2FibGluZ8KgTljCoGZvcsKgaW1hZ2XCoGRhdGHCoChyZWdhcmRsZXNzwqBv ZsKgaW1hZ2XCoG9yaWdpbinCoA0KPiA+PiBmb3IgYW55IHRob3NlwqBtZW1vcnnCoHR5cGVzwqAu Li4iLg0KPiA+Pg0KPiA+DQo+ID4gU3VyZS4gSSdsbCBhZGQgaXQuDQo+ID4NCj4gPj4+IMKgK8Kg wqBpZsKgKFBjZEdldDMywqAoUGNkSW1hZ2VQcm90ZWN0aW9uUG9saWN5KcKgPT3CoDDCoCYmDQo+ ID4+PiDCoCvCoMKgwqDCoMKgwqAoUGNkR2V0NjTCoChQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Q b2xpY3kpwqAmwqANCj4gPj4+IElNQUdFX0RBVEFfTUVNDQo+IE9SDQo+ID4+IFlfVFlQRSnCoCE9 wqAwKcKgew0KPiA+Pj4gwqArwqDCoMKgwqBERUJVR8KgKChERUJVR19FUlJPUiwNCj4gPj4+IMKg K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCJFUlJPUjrCoE5YwqBmb3LCoGltYWdlwqBkYXRhwqBp c8KgZGlzYWJsZWTCoGJ1dMKgTljCoGZvcsKgaXRzIA0KPiA+Pj4gbWVtb3J5wqB0eXBlKHMpwqBp cw0KPiA+PiBlbmFibGVkIVxyXG4iKSk7DQo+ID4+PiDCoCvCoMKgwqDCoEFTU0VSVMKgKCEoUGNk R2V0MzLCoChQY2RJbWFnZVByb3RlY3Rpb25Qb2xpY3kpwqA9PcKgMMKgJiYNCj4gPj4+IMKgK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoUGNkR2V0NjTCoChQY2REeGVOeE1lbW9yeVByb3Rl Y3Rpb25Qb2xpY3kpwqAmIA0KPiA+Pj4gSU1BR0VfREFUQV9NRQ0KPiA+PiBNT1JZX1RZUEUpwqAh PcKgMCkpOw0KPiA+Pj4gwqArwqDCoH0NCj4gPj4NCj4gPj4gU3VtbWFyaXppbmfCoG15wqBwb2lu dHPCoGZyb23CoGJlZm9yZSzCoGhlcmXCoHdlwqBzaG91bGTCoGhhdmU6DQo+ID4+DQo+ID4+IMKg wqBBU1NFUlTCoCgNCj4gPj4gwqDCoMKgwqAoUGNkR2V0NjTCoChQY2REeGVOeE1lbW9yeVByb3Rl Y3Rpb25Qb2xpY3kpwqAmwqBJTUFHRV9EQVRBX01FTU9SWQ0KPiBfVFkNCj4gPj4gUEUpwqA9PcKg MMKgfHwNCj4gPj4gwqDCoMKgwqBQY2RHZXQzMsKgKFBjZEltYWdlUHJvdGVjdGlvblBvbGljeSnC oD09wqAzDQo+ID4+IMKgwqDCoMKgKTsNCj4gPj4NCj4gPj4gVGhhdMKgaXMsDQo+ID4+DQo+ID4+ IC3CoElmwqB3ZcKgZGlzYWJsZcKgRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5wqBmb3LCoGFs bMKgb2bCoA0KPiA+PiBFZmlMb2FkZXJEYXRhLA0KPiA+PiDCoMKgRWZpQm9vdFNlcnZpY2VzRGF0 YSzCoGFuZMKgRWZpUnVudGltZVNlcnZpY2VzRGF0YSzCoHRoZW7CoGFueQ0KPiA+PiDCoMKgSW1h Z2VQcm90ZWN0aW9uUG9saWN5wqBpc8KgZmluZS4NCj4gPj4NCj4gPj4gLcKgSWbCoHdlwqBlbmFi bGXCoMKgRHhlTnhNZW1vcnlQcm90ZWN0aW9uUG9saWN5wqBmb3LCoGFuecKgb2bCoA0KPiA+PiBF ZmlMb2FkZXJEYXRhLA0KPiA+PiDCoMKgRWZpQm9vdFNlcnZpY2VzRGF0YSzCoGFuZMKgRWZpUnVu dGltZVNlcnZpY2VzRGF0YSzCoHRoZW7CoHdlwqByZXF1aXJlwqANCj4gPj4gdGhlDQo+ID4+IMKg wqBwbGF0Zm9ybcKgdG/CoHNldMKgSW1hZ2VQcm90ZWN0aW9uUG9saWN5wqByZWdhcmRsZXNzwqBv ZsKgaW1hZ2XCoG9yaWdpbi4NCj4gPj4NCj4gPj4gVGhhbmtzDQo+ID4+IExhc3psbw0KPiA+Pg0K PiA+DQo+ID4gR29vZCBjYXRjaC4gSSBtaXNzZWQgdGhhdCBwYXJ0LiBUaGFua3MuDQo+ID4NCj4g Pj4+IMKgKw0KPiA+Pj4gwqArwqDCoC8vDQo+ID4+PiDCoCvCoMKgLy/CoFhEwqBmbGFnwqAoQklU NjMpwqBpbsKgcGFnZcKgdGFibGXCoGVudHJ5wqBpc8Kgb25secKgdmFsaWTCoGlmwqBJQTMyX0VG RVIuTlhFwqBpc8Kgc2V0Lg0KPiA+Pj4gwqArwqDCoC8vwqBGZWF0dXJlc8KgY29udHJvbGxlZMKg YnnCoEZvbGxvd2luZ8KgUENEc8KgbmVlZMKgdGhpc8KgZmVhdHVyZcKgdG/CoGJlwqBlbmFibGVk Lg0KPiA+Pj4gwqArwqDCoC8vDQo+ID4+PiDCoCvCoMKgcmV0dXJuwqAoUGNkR2V0Qm9vbMKgKFBj ZFNldE54Rm9yU3RhY2spwqB8fA0KPiA+Pj4gwqArwqDCoMKgwqDCoMKgwqDCoMKgwqBQY2RHZXQ2 NMKgKFBjZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljeSnCoCE9wqAwwqB8fA0KPiA+Pj4gwqAr wqDCoMKgwqDCoMKgwqDCoMKgwqBQY2RHZXQzMsKgKFBjZEltYWdlUHJvdGVjdGlvblBvbGljeSnC oCE9wqAwKTsNCj4gPj4+IMKgK30NCj4gPj4+IMKgKw0KPiA+Pj4gwqDCoC8qKg0KPiA+Pj4gwqDC oMKgwqBFbmFibGXCoEV4ZWN1dGXCoERpc2FibGXCoEJpdC4NCj4gPj4+DQo+ID4+PiDCoEBAwqAt NzU1LDfCoCs4MDUsMTDCoEBAwqBDcmVhdGVJZGVudGl0eU1hcHBpbmdQYWdlVGFibGVzwqAoDQo+ ID4+PiDCoMKgwqDCoC8vDQo+ID4+PiDCoMKgwqDCoEVuYWJsZVBhZ2VUYWJsZVByb3RlY3Rpb27C oCgoVUlOVE4pUGFnZU1hcCzCoFRSVUUpOw0KPiA+Pj4NCj4gPj4+IMKgLcKgwqBpZsKgKFBjZEdl dEJvb2zCoChQY2RTZXROeEZvclN0YWNrKSnCoHsNCj4gPj4+IMKgK8KgwqAvLw0KPiA+Pj4gwqAr wqDCoC8vwqBTZXTCoElBMzJfRUZFUi5OWEXCoGlmwqBuZWNlc3NhcnkuDQo+ID4+PiDCoCvCoMKg Ly8NCj4gPj4+IMKgK8KgwqBpZsKgKFRvRW5hYmxlRXhlY3V0ZURpc2FibGVGZWF0dXJlwqAoKSnC oHsNCj4gPj4+IMKgwqDCoMKgwqDCoEVuYWJsZUV4ZWN1dGVEaXNhYmxlQml0wqAoKTsNCj4gPj4+ IMKgwqDCoMKgfQ0KPiA+Pj4NCj4gPj4+IMKgZGlmZsKgLS0NCj4gPj4NCj4gZ2l0wqBhL01kZU1v ZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuaMKgYi9NZGVNb2R1bGVQ a2cNCj4gPj4gL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5oDQo+ID4+PiDCoGlu ZGV4wqA4NTQ1N2ZmOTM3Li45ZjE1MmU2NTMxwqAxMDA2NDQNCj4gPj4+IMKgLS0twqBhL01kZU1v ZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuaA0KPiA+Pj4gwqArKyvC oGIvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5oDQo+ID4+ PiDCoEBAwqAtMTc5LDbCoCsxNzksMznCoEBAwqB0eXBlZGVmwqBzdHJ1Y3TCoHsNCj4gPj4+IMKg wqDCoMKgVUlOVE7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgRnJlZVBhZ2VzOw0KPiA+Pj4gwqDCoH3C oFBBR0VfVEFCTEVfUE9PTDsNCj4gPj4+DQo+ID4+PiDCoCsvLw0KPiA+Pj4gwqArLy/CoEJpdMKg ZmllbGTCoHJlcHNlbnRhdGlvbnPCoG9mwqBzb21lwqBFRklfTUVNT1JZX1RZUEUswqBmb3LCoHBh Z2XCoA0KPiA+Pj4gdGFibGUgaW5pdGlhbGl6DQo+ID4+IGF0aW9uLg0KPiA+Pj4gwqArLy8NCj4g Pj4+IMKgKyNkZWZpbmXCoFNUQUNLX01FTU9SWV9UWVBFwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCgx wqA8PMKgRWZpQm9vdFNlcnZpY2VzRGF0YSkNCj4gPj4+IC8qwqAweDEwwqAqLw0KPiA+Pj4gwqAr I2RlZmluZcKgSU1BR0VfREFUQV9NRU1PUllfVFlQRcKgwqDCoMKgwqDCoCgoMcKgPDzCoEVmaUxv YWRlckRhdGEpwqDCoMKgwqDCoMKgwqANCj4gPj4+IHwNCj4gPj4+IC8qwqAweDA0DQo+ID4+ICov XA0KPiA+Pj4gwqArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoMcKgPDzCoEVmaUJvb3RTZXJ2aWNlc0RhdGEp wqANCj4gPj4+IHwNCj4gPj4+IC8qwqAweDEwwqAqL1wNCj4gPj4+IMKgK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgKDHCoDw8DQo+ID4+PiBFZmlSdW50aW1lU2VydmljZXNEYXRhKS8qwqAweDQwwqAqL1wNCj4g Pj4+IMKgK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCkNCj4gPj4+IC8qwqAweDU0wqAqLw0KPiA+Pj4gwqArDQo+ ID4+PiDCoCsvKioNCj4gPj4+IMKgK8KgwqBDaGVja8KgaWbCoEV4ZWN1dGXCoERpc2FibGXCoEJp dMKgKElBMzJfRUZFUi5OWEUpwqBzaG91bGTCoGJlwqBlbmFibGVkwqBvcsKgbm90Lg0KPiA+Pj4g wqArDQo+ID4+PiDCoCvCoMKgQHJldHZhbMKgVFJVRcKgwqDCoMKgSUEzMl9FRkVSLk5YRcKgc2hv dWxkwqBiZcKgZW5hYmxlZC4NCj4gPj4+IMKgK8KgwqBAcmV0dmFswqBGQUxTRcKgwqDCoElBMzJf RUZFUi5OWEXCoHNob3VsZMKgbm90wqBiZcKgZW5hYmxlZC4NCj4gPj4+IMKgKw0KPiA+Pj4gwqAr KiovDQo+ID4+PiDCoCtCT09MRUFODQo+ID4+PiDCoCtUb0VuYWJsZUV4ZWN1dGVEaXNhYmxlRmVh dHVyZcKgKA0KPiA+Pj4gwqArwqDCoFZPSUQNCj4gPj4+IMKgK8KgwqApOw0KPiA+Pj4gwqArDQo+ ID4+PiDCoCsvKioNCj4gPj4+IMKgK8KgwqBUaGXCoGZ1bmN0aW9uwqB3aWxswqBjaGVja8KgaWbC oEV4ZWN1dGXCoERpc2FibGXCoEJpdMKgaXPCoGF2YWlsYWJsZS4NCj4gPj4+IMKgKw0KPiA+Pj4g wqArwqDCoEByZXR2YWzCoFRSVUXCoMKgwqDCoMKgwqBFeGVjdXRlwqBEaXNhYmxlwqBCaXTCoGlz wqBhdmFpbGFibGUuDQo+ID4+PiDCoCvCoMKgQHJldHZhbMKgRkFMU0XCoMKgwqDCoMKgRXhlY3V0 ZcKgRGlzYWJsZcKgQml0wqBpc8Kgbm90wqBhdmFpbGFibGUuDQo+ID4+PiDCoCsNCj4gPj4+IMKg KyoqLw0KPiA+Pj4gwqArQk9PTEVBTg0KPiA+Pj4gwqArSXNFeGVjdXRlRGlzYWJsZUJpdEF2YWls YWJsZcKgKA0KPiA+Pj4gwqArwqDCoFZPSUQNCj4gPj4+IMKgK8KgwqApOw0KPiA+Pj4gwqArDQo+ ID4+PiDCoMKgLyoqDQo+ID4+PiDCoMKgwqDCoEVuYWJsZcKgRXhlY3V0ZcKgRGlzYWJsZcKgQml0 Lg0KPiA+Pj4NCj4gPj4+DQoNCg==