From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: kondal.r.purma@intel.com) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by groups.io with SMTP; Tue, 11 Jun 2019 11:40:10 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Jun 2019 11:40:09 -0700 X-ExtLoop1: 1 Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by fmsmga005.fm.intel.com with ESMTP; 11 Jun 2019 11:40:09 -0700 Received: from orsmsx108.amr.corp.intel.com ([169.254.2.211]) by ORSMSX105.amr.corp.intel.com ([169.254.2.111]) with mapi id 14.03.0415.000; Tue, 11 Jun 2019 11:40:08 -0700 From: kondal.r.purma@intel.com To: "devel@edk2.groups.io" , "Kinney, Michael D" , Laszlo Ersek , "sean.brogan@microsoft.com" Subject: Re: [edk2-devel] RFC for Edk2-Library Thread-Topic: [edk2-devel] RFC for Edk2-Library Thread-Index: AQHVBR1gzyAh0v7/oEeSRuZO3ilWVqZhc3aAgAGit7CAAMmKAP//mb8QgAXjxoCAAAFWgIAAoXkAgA4RMVCAHuuiYA== Date: Tue, 11 Jun 2019 18:40:08 +0000 Message-ID: References: <24030.1557264917803034398@groups.io> <46700279-e217-0a45-8637-9c24cb5cc4eb@redhat.com> <7412bfb8-ff72-5b2e-8389-f2c9cbea71d1@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmI4YTYyMDItMDhiZi00ZmI2LThlY2ItOGUwMGI3N2QyNzk3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiSFdzbWRcLzROc2FYZEZBaW8rOVlzUCtYZUhvTzZ5djF4dVJxWkxsWGl2VWYzQTBcL2I3RnFlNStTaG9VVW1KQjdaIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgU2VhbiAsDQoNCkl0cyBncmVhdCB0aGF0IGFsbCBweXRob24gZmlsZXMgbXVzdCBwYXNzIGZs YWtlOCBQeXRob24gU3R5bGUuIEkgcmVtZW1iZXIgZmxha2U4IGRvZXMgbm90IHNob3cgZXJyb3Jz IGZvciB1bmRlZmluZWQgbWVtYmVyIHZhcmlhYmxlcyBvciBpbnN0YW5jZXMgLiANCg0KSSBmZWVs IHRoaXMgaXMgb25lIG9mIG1vc3QgY29tbW9uIHVzZSBjYXNlcyBvZiBjb2RlIGZhaWx1cmVzLCBk dWUgdG8gdHlwaW5nIGVycm9ycyBhbmQgd29uJ3QgYmUgdmlzaWJsZSB1bmxlc3MgIHRlc3QgdGhh dCB1c2UgY2FzZS4NCg0KQXJlIHdlIHBsYW5uaW5nIHRvIHVzZSBhbnkgZmxha2U4IHBsdWctaW5z IHRvIGNvdmVyIHRoaXMgb3IgaXMgaXQgZ29vZCBpZGVhIHRvIHVzZSBQeWxpbnQgKG9ubHkgdG8g Y292ZXIgZmVhdHVyZXMgbm90IGNvdmVyZWQgYnkgZmFsa2U4KW9uIHRvcCBvZiBmbGFrZTguDQoN ClRoYW5rcywNCktvbmRhbC4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFs ZiBPZiBNaWNoYWVsIEQgS2lubmV5DQpTZW50OiBXZWRuZXNkYXksIE1heSAyMiwgMjAxOSA3OjMy IFBNDQpUbzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IGRldmVsQGVkazIuZ3Jv dXBzLmlvOyBzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tOyBLaW5uZXksIE1pY2hhZWwgRCA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFJGQyBm b3IgRWRrMi1MaWJyYXJ5DQoNCkhpIFNlYW4sDQoNCkNhbiB5b3Ugc2VuZCBhbiBSRkMgVjIgdGhh dCBtYWtlcyB0aGUgZm9sbG93aW5nIGNoYW5nZXM6DQoNCjEpIEFkZCB1c2Ugb2YgcHl0aG9uIHZp cnR1YWwgZW52aXJvbm1lbnRzDQoyKSBVcGRhdGUgUmVwb3NpdG9yeSBuYW1lOiBlZGsyLXRvb2xz LWxpYnJhcnkNCjMpIFByb3ZpZGUgYSBzdW1tYXJ5IG9mIHRoZSBBUElzL1NlcnZpY2VzIHRoYXQg dGhpcyBQSVAgbW9kdWxlIA0KICAgcHJvdmlkZXMgYW5kIHRoZSBBUElzL1NlcnZpY2VzIGZyb20g dGhlIGVkazIgcmVwbyB0aGF0IHRoaXMNCiAgIFBJUCBtb2R1bGUgZGVwZW5kcyBvbi4NCjQpIENv bnRyaWJ1dGlvbiBwcm9jZXNzLiAgQWRkIHJlY29tbWVuZGF0aW9uIHRoYXQgUFJzIGJlIGZvY3Vz ZWQNCiAgIG9uIGNoYW5nZXMgdGhhdCBtYWtlIHNlbnNlIHRvIGJlIHNxdWFzaGVkLiAgU3VibWl0 IGEgZGlmZmVyZW50DQogICBQUiBmb3IgYSBkaWZmZXJlbnQgZmVhdHVyZS9pc3N1ZS4gIEJyZWFr IHVwIGEgY29tcGxleCBQUiBpbnRvDQogICBtdWx0aXBsZSBQUnMuDQo1KSBSZW1vdmUgdGhlIGZv bGxvd2luZyBidWxsZXQ6DQoNCiAgICIqIFBvdGVudGlhbGx5IG1vdmUgY29udGVudCBmcm9tIGJh c2V0b29scy9zb3VyY2UvcHl0aG9uL2NvbW1vbi8qIg0KDQogICBXZSBjYW4gZGlzY3VzcyB0aGlz IGNvbmNlcHQgYWZ0ZXIgVGlhbm9Db3JlIHBsYXRmb3JtcyBhcmUNCiAgIHN1Y2Nlc3NmdWxseSB1 c2luZyB0aGVzZSBuZXcgZmVhdHVyZXMgYW5kIHRoZSBvdmVybGFwIGJldHdlZW4NCiAgIHRoZSBl ZGsyIHJlcG8gYW5kIGVkazItdG9vbHMtbGlicmFyeSByZXBvIGlzIGNsZWFybHkgdW5kZXJzdG9v ZC4NCg0KQSBmb2xsb3cgb24gdGFzayBzaG91bGQgZXZhbHVhdGUgR2l0SHViIFBSIG9wdGlvbnMg Zm9yIHN1Ym1pdHRpbmcgYW5kIHByZXNlcnZpbmcgYSBwYXRjaCBzZXJpZXMuDQoNClRoYW5rcywN Cg0KTWlrZQ0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFzemxv IEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IE1vbmRheSwgTWF5IDEz LCAyMDE5IDE6MjkgUE0NCj4gVG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47IA0KPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgc2Vhbi5icm9nYW5AbWljcm9z b2Z0LmNvbQ0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFJGQyBmb3IgRWRrMi1MaWJyYXJ5 DQo+IA0KPiBPbiAwNS8xMy8xOSAyMDoyMCwgS2lubmV5LCBNaWNoYWVsIEQgd3JvdGU6DQo+ID4g TGFzemxvLA0KPiA+DQo+ID4gT24gV2luZG93cyBidWlsZCBzeXN0ZW1zLCB3ZSBoYXZlIHRvIGlu c3RhbGwgT3BlblNTTA0KPiBjb21tYW5kIGxpbmUNCj4gPiB1dGlsaXRpZXMuICBGb3IgYWxsIGhv c3Qgc3lzdGVtcywgdGhlIE9wZW5TU0wgY29tbWFuZA0KPiBsaW5lDQo+ID4gdXRpbGl0aWVzIG5l ZWQgdG8gYmUgaW4gdGhlIHN5c3RlbSBwYXRoLiAgTXkgcG9pbnQgaXMNCj4gdGhhdCB0aGlzDQo+ ID4gaXMgc2ltaWxhciB0byBvdGhlciBkZXBlbmRlbmNpZXMgbGlrZSBpQVNMIGFuZCBOQVNNLg0K PiANCj4gT0suIEkgdGhpbmsgSSBtdXN0IGhhdmUgbWlzdW5kZXJzdG9vZCB5b3UgYXQgc29tZSBw b2ludC4NCj4gU29ycnkgYWJvdXQgdGhhdC4NCj4gDQo+ID4gRm9yIHRoZSBwYXRjaCBkaXNjdXNz aW9uLCBJIGRpZCBub3QgbWVhbiB0byBjb25mdXNlDQo+IHRoaW5ncy4gIEZyb20NCj4gPiBvbmUg cGVyc3BlY3RpdmUsIHRoZXJlIGFyZSB0d28gdHlwZXMgb2YgcGF0Y2gNCj4gc3VibWlzc2lvbnMu ICBTaW5nbGUNCj4gPiBjb21taXQgKG5vIHNlcmllcykgYW5kIG11bHRpcGxlIGNvbW1pdHMgKHBh dGNoIHNlcmllcykuDQo+IFRoZSBzcXVhc2gNCj4gPiBtZXJnZSBvZiBhIFBSIHdvcmtzIGp1c3Qg ZmluZSBmb3IgdGhlIHNpbmdsZSBjb21taXQgKG5vDQo+IHNlcmllcykgdHlwZS4NCj4gPiBUaGVy ZSBtYXkgYmUgZmVlZGJhY2svY29tbWVudHMgdGhhdCByZXF1aXJlIGNvZGUNCj4gY2hhbmdlcyBh bmQgb25jZSB0aGUNCj4gPiBQUiBpcyBhY2NlcHRlZCwgdGhlIGhpc3RvcnkgaW4gdGhlIHJlcG9z aXRvcnkgc2hvd3MgYQ0KPiBzaW5nbGUgY29tbWl0Lg0KPiA+IEFzIHRoZSBQUiBldm9sdmVzLCBj b21taXRzIGFyZSBtYWRlIG9uIHRoZSBQUiB0bw0KPiBhZGRyZXNzIGVhY2ggcGllY2UNCj4gPiBv ZiBmZWVkYmFjay4gIFNxdWFzaGluZyBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgYXQgdGhlDQo+IHRp bWUgdGhlIFBSIGlzDQo+ID4gYWNjZXB0ZWQgaXMgdGhlIGNvcnJlY3QgYWN0aW9uIGFuZCBtYXRj aGVzIHdoYXQgd2UgZG8NCj4gdGhlIGZvciBlbWFpbA0KPiA+IGJhc2VkIHJldmlldyBwcm9jZXNz LiAgVGhlIGZpbmFsIHJlc3VsdCBmb3IgYm90aCBQUiBhbmQNCj4gZW1haWwgaXMgYQ0KPiA+IHNp bmdsZSBjb21taXQgd2l0aCBhIGNsZWFuZWQgdXAgY29tbWl0IG1lc3NhZ2UuDQo+IA0KPiBPSy4N Cj4gDQo+ID4gWW91IG1heSBjb25zaWRlciB0aGUgc2luZ2xlIGNvbW1pdCAobm8gc2VyaWVzKSB0 eXBlDQo+IG1vcmUgcmFyZSB0aGFuIHRoZQ0KPiA+IG11bHRpcGxlIGNvbW1pdCAocGF0Y2ggc2Vy aWVzKSB0eXBlLiAgSG93ZXZlciwgdGhlcmUNCj4gbWF5IGJlIGNhc2VzIHdoZXJlDQo+ID4gYSBt dWx0aXBsZSBjb21taXQgKHBhdGNoIHNlcmllcykgd2FzIHVzZWQgd2hlcmUgdGhlDQo+IGNoYW5n ZXMgY291bGQgaGF2ZQ0KPiA+IGJlZW4gc3VibWl0dGVkIGFzIGEgc2V0IG9mIHNpbmdsZSBjb21t aXQgKG5vIHNlcmllcykNCj4gY2hhbmdlcy4NCj4gDQo+IE9LLg0KPiANCj4gVGhhbmtzDQo+IExh c3psbw0KPiANCj4gPg0KPiA+IEJlc3QgcmVnYXJkcywNCj4gPg0KPiA+IE1pa2UNCj4gPg0KPiA+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KPiBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvXQ0KPiA+PiBPbiBCZWhhbGYgT2Yg TGFzemxvIEVyc2VrDQo+ID4+IFNlbnQ6IE1vbmRheSwgTWF5IDEzLCAyMDE5IDM6NDYgQU0NCj4g Pj4gVG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IA0K PiA+PiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgc2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbQ0KPiA+ PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFJGQyBmb3IgRWRrMi1MaWJyYXJ5DQo+ID4+DQo+ ID4+IE9uIDA1LzEwLzE5IDAyOjAxLCBLaW5uZXksIE1pY2hhZWwgRCB3cm90ZToNCj4gPj4+IExh c3psbywNCj4gPj4+DQo+ID4+PiAxKSBXZSBhbHNvIHVzZSBPcGVuU1NMIGNvbW1hbmQgbGluZSB0 b29sIHRvIGxvY2FsbHkNCj4gPj4gc2lnbg0KPiA+Pj4gICAgY2Fwc3VsZXMgYW5kIHJlY292ZXJ5 IGltYWdlcyBmb3IgbG9jYWwgdGVzdGluZy4NCj4gU28NCj4gPj4gYm90aA0KPiA+Pj4gICAgdG9v bCBkZXBlbmRlbmN5IGFuZCBzb3VyY2UgZGVwZW5kZW5jeSBhcHBseSB0byB0aGUNCj4gPj4gT3Bl blNTTA0KPiA+Pj4gICAgY29udGVudC4NCj4gPj4NCj4gPj4gSSBoYXZlbid0IHVzZWQgdGhlIHRv b2xzIHlldCB0aGF0IHlvdSByZWZlciB0bywgc28gSSdtIHVuc3VyZSBob3cgDQo+ID4+IGV4YWN0 bHkgdGhleSBpbnZva2UgdGhlICJvcGVuc3NsIiB1dGlsaXR5LiBJZiB0aGV5DQo+IGp1c3QNCj4g Pj4gcmVseSBvbiB0aGUgUEFUSA0KPiA+PiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlbiB3aGF0 IHRoZXkgaW52b2tlIGNvbWVzIGZyb20gdGhlIA0KPiA+PiBzeXN0ZW0td2lkZSBvcGVuc3NsIHBh Y2thZ2UuDQo+ID4+DQo+ID4+Pg0KPiA+Pj4gMikgSWYgYSBkZXYgc3VibWl0cyBhIFBSLCBhbmQg dGhlcmUgYXJlIG1hbnkgcmV2aWV3DQo+ID4+IGNvbW1lbnRzDQo+ID4+PiAgICB0aGF0IHJlcXVp cmUgY29kZSBjaGFuZ2VzLCB0aGVuIHRob3NlIGNvZGUgY2hhbmdlcw0KPiA+PiBhcmUNCj4gPj4+ ICAgIGFkZGVkIHRvIHRoYXQgUFIgdW50aWwgYWxsIGZlZWRiYWNrIGlzIGFkZHJlc3NlZC4NCj4g Pj4NCj4gPj4gSSBkb24ndCB1bmRlcnN0YW5kIGhvdy4gTGV0J3Mgc2F5IHRoZSBwdWxsIHJlcXVl c3QNCj4gcmVmZXJzDQo+ID4+IHRvIGEgYnJhbmNoDQo+ID4+IHdpdGggdGhyZWUgY29tbWl0cywg YW5kIHRoZSBtYWpvcml0eSBvZiB0aGUgcmV2aWV3IGNvbW1lbnRzIHJlcXVlc3QgDQo+ID4+IHVw ZGF0ZXMgZm9yIHBhdGNoICMyIChpLmUuLCBpbiB0aGUgbWlkZGxlKS4gSG93IGNhbg0KPiB0aGUN Cj4gPj4gc3VibWl0dGVyICJhZGQNCj4gPj4gY2hhbmdlcyB0byB0aGUgUFIiPyBJdCBpcyBwYXRj aCAjMiB0aGF0IG5lZWRzIHRvIGJlIHJld29ya2VkLCB3aGljaCANCj4gPj4gd2lsbCByZXF1aXJl IHJlYmFzZXMsIGFuZCBzbyB0aGUgaGFzaCBvZiB0aGUgSEVBRCBjb21taXQgb2YgdGhlIA0KPiA+ PiB0b3BpYyBicmFuY2ggKHBhdGNoICMzKSB3aWxsIGNoYW5nZSBhcyB3ZWxsLg0KPiA+Pg0KPiA+ Pj4gICAgQXQgdGhhdA0KPiA+Pj4gICAgcG9pbnQsIGlmIHRoZSBjaGFuZ2UgaXMgc29tZXRoaW5n IHRoYXQgc2hvdWxkIGJlDQo+IGluDQo+ID4+IGEgc2luZ2xlDQo+ID4+PiAgICBjb21taXQsIHRo ZW4gZG9pbmcgYSBzcXVhc2ggbWVyZ2Ugd2l0aCBhIGNsZWFuZWQNCj4gdXANCj4gPj4gY29tbWl0 DQo+ID4+PiAgICBtZXNzYWdlIHdvdWxkIGJlIGFwcHJvcHJpYXRlLg0KPiA+Pg0KPiA+PiBJIGRv bid0IHVuZGVyc3RhbmQgLS0gd2UgbW9kaWZ5IG9ubHkgcGF0Y2ggIzIsIHllcywgdG8gYWRkcmVz cyANCj4gPj4gcmV2aWV3IGNvbW1lbnRzLCBidXQgd2h5IGRvZXMgdGhhdCBqdXN0aWZ5IHNxdWFz aGluZyAjMQ0KPiB0aHJvdWdoDQo+ID4+ICMzIGludG8gYQ0KPiA+PiBzaW5nbGUgY29tbWl0Pw0K PiA+Pg0KPiA+Pj4gICAgQW5kIHRoZSBoaXN0b3J5IG9mIGFsbCB0aGUNCj4gPj4+ICAgIHJldmll dyBmZWVkYmFjayBwcmVzZXJ2ZWQgaW4gdGhlIFBSLg0KPiA+Pg0KPiA+PiBUaGF0J3MgZ29vZCAo YnV0IGl0IGNvdWxkIGJlIGJldHRlciAtLSBzZWUgdGhlIGxhY2tpbmcgZW1haWwgDQo+ID4+IGlu dGVncmF0aW9uLiBBbnl3YXkgdGhpcyBpcyBub3Qgc3RyaWN0bHkgdGllZCB0byBteSBjb25jZXJu IHdpdGggDQo+ID4+IHNxdWFzaC1vbi1tZXJnZSkuDQo+ID4+DQo+ID4+Pg0KPiA+Pj4gICAgSWYg d2UgY3JlYXRlIGEgMm5kIFBSIHdpdGggdGhlIGNsZWFuZWQgdXAgY29udGVudCwNCj4gPj4gdGhl biB0aGUNCj4gPj4+ICAgIGNvbm5lY3Rpb24gdG8gdGhlIDFzdCBQUiBmZWVkYmFjayBtYXkgYmUg bG9zdC4gIEkNCj4gPj4gYWdyZWUgdGhpcw0KPiA+Pj4gICAgbWF0Y2hlcyB3aGF0IHdlIGRvIGlu IGVtYWlsIHJldmlld3MgdG8gY3JlYXRlIGEgVjINCj4gPj4gcGF0Y2ggc2VyaWVzLg0KPiA+Pj4g ICAgVGhlIFYxIGFuZCBWMiB0aHJlYWRzIGFyZSBpbiB0aGUgZW1haWwgYXJjaGl2ZS4NCj4gPj4N Cj4gPj4gSW5kZWVkLiBBbmQgdGhlIGJsdXJiIGZvciBib3RoIHRocmVhZHMgcmVmZXJlbmNlIHRo ZSBidWd6aWxsYSwgYW5kIA0KPiA+PiB0aGUgYnVnemlsbGEgaGFzIChpZiB0aGUgc3VibWl0dGVy IGlzIGNhcmVmdWwpIGNvbW1lbnRzIGxpbmtpbmcgdGhlIA0KPiA+PiB2MSBhbmQNCj4gPj4gdjIg dGhyZWFkcyBmcm9tIHRoZSBlbWFpbCBhcmNoaXZlLg0KPiA+Pg0KPiA+Pj4gICAgSSB3b25kZXIg aWYNCj4gPj4+ICAgIHRoZXJlIGlzIGEgd2F5IHRvIGxpbmsgYSAybmQgUFIgdG8gdGhlIDFzdCBQ UiBhbmQNCj4gPj4gZ3VhcmFudGVlDQo+ID4+PiAgICB0aGF0IGJvdGggUFJzIGFyZSBwcmVzZXJ2 ZWQ/ICBUaGlzIHdvdWxkIGFsc28NCj4gYWxsb3cNCj4gPj4gdGhlIDJuZA0KPiA+Pj4gICAgY2xl YW5lZCB1cCBQUiB0byBjb250YWluIGEgc2VyaWVzLCBhbmQgaWYgdGhlcmUNCj4gd2FzDQo+ID4+ IGEgd2F5IHRvDQo+ID4+PiAgICBtYWtlIHRoZSBzcXVhc2ggbWVyZ2Ugb3B0aW9uYWwsIHRoZW4g dGhlIGRldmVsb3Blcg0KPiA+PiBjYW4gY2hvb3NlDQo+ID4+PiAgICB0aGUgd2F5IHRoZSBwYXRj aGVzIGFyZSBjb21taXR0ZWQuDQo+ID4+DQo+ID4+IFRoaXMgc291bmRzIGdyZWF0ISBJIHRoaW5r IGJvdGggUFJzIGNhbiByZWZlcmVuY2UgdGhlIGJ1Z3ppbGxhIA0KPiA+PiB0aWNrZXQsIGFuZCB0 aGUgYnVnemlsbGEgdGlja2V0IGNhbiByZWZlcmVuY2UgYm90aCBQUnMgdG9vIChhcyANCj4gPj4g Y29tbWVudHMpLiBUaGUgZmlyc3QgUFIgY2FuIGJlIHJlamVjdGVkICYgY2xvc2VkIHdoZW4gdGhl IHNlY29uZCANCj4gPj4gb25lDQo+IGlzDQo+ID4+IHN1Ym1pdHRlZC4NCj4gPj4NCj4gPj4+ICAg IEp1c3QgYSBmZXcgaWRlYXMgdG8gZXhwbG9yZS4uLlBlcmhhcHMgU2VhbiBjYW4NCj4gPj4gcHJv dmlkZSBzb21lDQo+ID4+PiAgICBhZGRpdGlvbmFsIGlkZWFzIHRvIG1hbmFnZSBjb21wbGV4IGNo YW5nZXMgaW4gUFJzLg0KPiA+Pg0KPiA+PiBUaGFua3MhDQo+ID4+IExhc3psbw0KPiA+Pg0KPiA+ Pj4NCj4gPj4+IEJlc3QgcmVnYXJkcywNCj4gPj4+DQo+ID4+PiBNaWtlDQo+ID4+Pg0KPiA+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogTGFzemxvIEVyc2VrIFtt YWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+ID4+Pj4gU2VudDogVGh1cnNkYXksIE1heSA5LCAy MDE5IDM6NTYgUE0NCj4gPj4+PiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPjsgDQo+ID4+Pj4gZGV2ZWxAZWRrMi5ncm91cHMuaW87IHNlYW4uYnJvZ2Fu QG1pY3Jvc29mdC5jb20NCj4gPj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFJGQyBmb3Ig RWRrMi1MaWJyYXJ5DQo+ID4+Pj4NCj4gPj4+PiBPbiAwNS8wOS8xOSAyMDowNiwgS2lubmV5LCBN aWNoYWVsIEQgd3JvdGU6DQo+ID4+Pj4+IEhlbGxvLA0KPiA+Pj4+Pg0KPiA+Pj4+PiBJdCBpcyBk aWZmaWN1bHQgdG8gdGVsbCBpZiB0aGUgcmVwbyBuYW1lIGVkazItDQo+IGxpYnJhcnkNCj4gPj4+ PiBpcyBmb3IgZmlybXdhcmUNCj4gPj4+Pj4gb3IgdG9vbHMsIHNvIEkgcmVjb21tZW5kIHdlIHdv cmsgb24gYSBuYW1lIHRoYXQNCj4gPj4gY2xlYXJseQ0KPiA+Pj4+IGlkZW50aWZpZXMNCj4gPj4+ Pj4gdGhhdCB0aGlzIHJlcG8gaXMgcmVsYXRlZCB0byB0b29scy4NCj4gPj4+Pg0KPiA+Pj4+IEdv b2QgaWRlYS4NCj4gPj4+Pg0KPiA+Pj4+PiBGb3IgdGhlIHBpcCBkZXBlbmRlbmNpZXMsIGlzIHRo ZSBjb25jZXJuIHRoYXQgYQ0KPiA+Pj4+IHBsYXRmb3JtIHRoYXQgZGVwZW5kcw0KPiA+Pj4+PiBv biB0aGVzZSB0b29scyB3aWxsIG5vdCBiZSBidWlsZGFibGUgd2l0aG91dA0KPiBydW5uaW5nDQo+ ID4+IGENCj4gPj4+PiAicGlwIGluc3RhbGwiDQo+ID4+Pj4+IGNvbW1hbmQgdGhhdCBwdWxscyBj b250ZW50IGZyb20gdGhlIG5ldHdvcms/DQo+ID4+Pj4NCj4gPj4+PiBBbG1vc3QuIE5vdCBleGFj dGx5Lg0KPiA+Pj4+DQo+ID4+Pj4gRmlyc3QsIHRoZSBjb25jZXJuIGlzIG5vdCBzcGVjaWZpYyB0 byBhbnkgZ2l2ZW4NCj4gPj4gcGxhdGZvcm0uDQo+ID4+Pj4gTXkNCj4gPj4+PiB1bmRlcnN0YW5k aW5nIGlzIHRoYXQgdGhlIGV4dHJhY3Rpb24gd291bGQgdGFyZ2V0LA0KPiBpbg0KPiA+PiB0aGUN Cj4gPj4+PiBsb25nZXIgdGVybSwNCj4gPj4+PiBnZW5lcmFsIEJhc2VUb29scyBmdW5jdGlvbmFs aXR5LiBUaGF0IHdvdWxkIGltcGFjdA0KPiBhbGwNCj4gPj4+PiBwbGF0Zm9ybXMgdGhhdA0KPiA+ Pj4+IGNvbnN1bWUgJiBidWlsZCBhZ2FpbnN0IGVkazIuDQo+ID4+Pj4NCj4gPj4+PiBTZWNvbmQs IGl0J3Mgbm90IHRoZSBuZXR3b3JrIGFjY2VzcyB0aGF0J3MNCj4gY29uY2VybmluZw0KPiA+PiBw ZXINCj4gPj4+PiBzZS4gSXQncyB0aGUNCj4gPj4+PiBjb21wYXRpYmlsaXR5IC8gaW50ZXJvcGVy YXRpb24gd2l0aCBhbnkgZ2l2ZW4gTGludXggDQo+ID4+Pj4gZGlzdHJpYnV0aW9uJ3Mgb3duDQo+ ID4+Pj4gKG5hdGl2ZSkgcGFja2FnZSBtYW5hZ2VtZW50IHN5c3RlbS4gU3VjaCBhIHBhY2thZ2Ug bWFuYWdlbWVudCANCj4gPj4+PiBzeXN0ZW0gaXMgZ2VuZXJhbGx5IG5vdCB1c2VkIG9uIFdpbmRv d3MsIHRoZXJlZm9yZSBXaW5kb3dzDQo+IHVzZXJzDQo+ID4+Pj4gYXJlIGFjY3VzdG9tZWQgdG8N Cj4gPj4+PiBpbnN0YWxsaW5nIHNvZnR3YXJlIHBhY2thZ2VzIGZyb20gYSBib2F0bG9hZCBvZg0K PiA+PiB2ZW5kb3JzLg0KPiA+Pj4+IFRoaXMgaXMgbm90IHRoZQ0KPiA+Pj4+IGNhc2Ugb24gTGlu dXggZGlzdHJvcyAtLSB5b3VyIGRpc3RybyB2ZW5kb3Igb2ZmZXJzIGEgY3VyYXRlZCBzZXQgDQo+ ID4+Pj4gb2YgcGFja2FnZXMsIHN1Y2ggdGhhdCBldmVyeXRoaW5nIGludGVyb3BlcmF0ZXMgd2l0 aCBldmVyeXRoaW5nIA0KPiA+Pj4+IChpZGVhbGx5KSwgdGhlcmUgYXJlIG5vIGZpbGUgY29uZmxp Y3RzLCB2ZXJzaW9uIGRlcGVuZGVuY2llcw0KPiBhcmUNCj4gPj4+PiBoYW5kbGVkDQo+ID4+Pj4g YXV0b21hdGljYWxseSAoZS5nLiBpZiB5b3UgaW5zdGFsbCBhIGhpZ2gtbGV2ZWwNCj4gPj4gcGFj a2FnZSwNCj4gPj4+PiBpdHMNCj4gPj4+PiBkZXBlbmRlbmNpZXMgYXJlIHB1bGxlZCBpbiBhdXRv bWF0aWNhbGx5KSwgYW5kIHNvDQo+IG9uLg0KPiA+Pj4+DQo+ID4+Pj4gQ2xlYXJseSB0aGUgZGlz dHJvIHZlbmRvciBkb2VzIG5vdCAqYXV0aG9yKiBhbGwgdGhpcyBzb2Z0d2FyZSANCj4gPj4+PiAo YWx0aG91Z2ggdGhleSBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCB0byBjb250cmlidXRlIHRvIHRo ZSANCj4gPj4+PiB1cHN0cmVhbSBzb2Z0d2FyZSBwcm9qZWN0cyB0aGV5IHBhY2thZ2UgYW5kIHNo aXApLiBUaGUgZGlzdHJvIA0KPiA+Pj4+IHZlbmRvcg0KPiBpcw0KPiA+Pj4+IHJlc3BvbnNpYmxl IGZvcg0KPiA+Pj4+IHRoZSBpbnRlZ3JhdGlvbiBvZiBhbGwgdGhlc2UgcGFja2FnZXMgaW50byBh DQo+ID4+IGNvbnNpc3RlbnQNCj4gPj4+PiBPUywgaW50bw0KPiA+Pj4+IGNvbnNpc3RlbnQgZmVh dHVyZSBzZXRzLCBhbmQgc28gb24uDQo+ID4+Pj4NCj4gPj4+PiAicGlwIiBhbmQgc2ltaWxhciB0 b29scyBhcmUgZ2VuZXJhbGx5IHVuZml0IGZvciB0aGlzIGFwcHJvYWNoLCANCj4gPj4+PiBiZWNh dXNlIHRoZXkgaW1wbGVtZW50IGEgcGFyYWxsZWwgcGFja2FnZSBtYW5hZ2VtZW50IHN5c3RlbSwN Cj4gPj4gdG8NCj4gPj4+PiBteQ0KPiA+Pj4+IHVuZGVyc3RhbmRpbmcuIElmIHRoZXkgYXJlIGNh cmVmdWxseSB1c2VkIGluIGENCj4gdXNlcidzDQo+ID4+Pj4gaG9tZSBkaXJlY3RvcnksDQo+ID4+ Pj4gdGhleSBtaWdodCB3b3JrLiBJZiBwYWNrYWdlcyB3ZXJlIGluc3RhbGxlZCB3aXRoDQo+ICJw aXAiDQo+ID4+Pj4gc3lzdGVtLXdpZGUsIHRoZXkNCj4gPj4+PiB3b3VsZCBhbG1vc3QgY2VydGFp bmx5IGJyZWFrIChjb25mbGljdCB3aXRoKSB0aGUNCj4gPj4gZGlzdHJvLQ0KPiA+Pj4+IHByb3Zp ZGVkDQo+ID4+Pj4gcGFja2FnZXMuDQo+ID4+Pj4NCj4gPj4+PiBUaGVyZWZvcmUsIHdoZW4gdXNl cnMgd291bGQgbGlrZSB0byBnZXQgYSBuZXcgcGllY2UNCj4gb2YNCj4gPj4+PiBzb2Z0d2FyZQ0K PiA+Pj4+IHBhY2thZ2VkLCBvciBhbiBleGlzdGVudCBwYWNrYWdlIHJlZnJlc2hlZCAodG8gYQ0K PiBtb3JlDQo+ID4+Pj4gcmVjZW50IHVwc3RyZWFtDQo+ID4+Pj4gdmVyc2lvbiksIHRoZXkgZmls ZSBhIGZlYXR1cmUgcmVxdXN0IHdpdGggdGhlaXINCj4gZGlzdHJvDQo+ID4+Pj4gdmVuZG9yICh1 bmxlc3MNCj4gPj4+PiB0aGUgZGlzdHJvIHZlbmRvciBhbHJlYWR5IHRyYWNrcyB0aGUgdXBzdHJl YW0NCj4gcHJvamVjdA0KPiA+Pj4+IGNsb3NlbHkgYW5kDQo+ID4+Pj4gcGVyZm9ybXMgcGVyaW9k aWMgcmViYXNlcyBhbnl3YXkpLiBUaGVuIHRoZSBkaXN0cm8NCj4gPj4gdmVuZG9yDQo+ID4+Pj4g c2hpcHMgYSBuZXcNCj4gPj4+PiAob3IgcmVmcmVzaGVkKSBwYWNrYWdlLCBhZ2FpbiBuaWNlbHkg aW50ZWdyYXRlZCB3aXRoDQo+ID4+IHRoZQ0KPiA+Pj4+IHJlc3Qgb2YgdGhlDQo+ID4+Pj4gc3lz dGVtLg0KPiA+Pj4+DQo+ID4+Pj4+IFdlIGFscmVhZHkgaGF2ZSB0byBwdWxsIGNvbnRlbnQgdG8g Z2V0IHRoZSBzb3VyY2VzDQo+ID4+IGFuZA0KPiA+Pj4+IHBvdGVudGlhbGx5DQo+ID4+Pj4+IG90 aGVyIGRlcGVuZGVudCB0b29scyAoTkFTTSwgaUFTTCwgb3BlbnNzbCkuDQo+ID4+Pj4NCj4gPj4+ PiBZZXMsIHRoZXNlIGFyZSBnb29kIGV4YW1wbGVzIHRvIGRlbW9uc3RyYXRlIHRoZSBkaWZmZXJl bmNlLiANCj4gPj4+PiBDb25zaWRlciBOQVNNLiBJZiBhIFdpbmRvd3MgdXNlciB3b3VsZCBsaWtl IHRvIGluc3RhbGwgTkFTTSwNCj4gPj4gdGhleQ0KPiA+Pj4+IGdvb2dsZSAiTkFTTQ0KPiA+Pj4+ IGZvciBXaW5kb3dzIiwgdGhlbiBnbyB0bzoNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+DQo+IGh0dHBz Oi8vd3d3Lm5hc20udXMvcHViL25hc20vcmVsZWFzZWJ1aWxkcy8yLjE0LjAyL3dpbjY0Lw0KPiA+ Pj4+DQo+ID4+Pj4gZG93bmxvYWQgdGhlIFpJUCBmaWxlIG9yIEVYRSBmaWxlLCBhbmQgaW5zdGFs bCBpdC4NCj4gPj4+Pg0KPiA+Pj4+IEluIGNvbXBhcmlzb24sIGEgRmVkb3JhIHVzZXIgcnVucw0K PiA+Pj4+DQo+ID4+Pj4gICBkbmYgaW5zdGFsbCBuYXNtDQo+ID4+Pj4NCj4gPj4+PiBhbmQgdGhl eSBnZXQgdGhlIHBhY2thZ2UgZnJvbSB0aGUgRmVkb3JhIHBhY2thZ2UgcmVwb3NpdG9yeS4gQSAN Cj4gPj4+PiBEZWJpYW4gdXNlciB3b3VsZCBydW4NCj4gPj4+Pg0KPiA+Pj4+ICAgYXB0LWdldCBp bnN0YWxsIG5hc20NCj4gPj4+Pg0KPiA+Pj4+IGFuZCB0aGV5IHdvdWxkIGdldCB0aGUgcGFja2Fn ZSAod2hpY2ggd291bGQgYmUNCj4gPj4gZW50aXJlbHkNCj4gPj4+PiBpbmRlcGVuZGVudCBvZg0K PiA+Pj4+IEZlZG9yYSdzKSBmcm9tIHRoZSBEZWJpYW4gcGFja2FnZSByZXBvc2l0b3J5Lg0KPiA+ Pj4+DQo+ID4+Pj4gVGhlIHZhcmlvdXMgKkJTRHMgd291bGQgcnVuIGEgdmFyaWFudCBvZg0KPiA+ Pj4+DQo+ID4+Pj4gICBwa2dfYWRkIG5hc20NCj4gPj4+Pg0KPiA+Pj4+IEkgYmVsaWV2ZS4NCj4g Pj4+Pg0KPiA+Pj4+IFRoZSBzYW1lIGFwcGxpZXMgdG8gaUFTTC4NCj4gPj4+Pg0KPiA+Pj4+DQo+ ID4+Pj4gT3BlblNTTCBpcyBhIHNwZWNpYWwgY2FzZS4gSXQgaXMgZGlmZmVyZW50IGZyb20gTkFT TQ0KPiA+PiBhbmQNCj4gPj4+PiBpQVNMLiBOQVNNIGFuZA0KPiA+Pj4+IGlBU0wgYXJlIG5hdGl2 ZSAoaG9zdGVkKSBhcHBsaWNhdGlvbnMsIHNvIGFueSBMaW51eCBkaXN0cm8gY2FuIA0KPiA+Pj4+ IGVhc2lseSBidWlsZCB0aGVtIChmb3IgaXRzZWxmKSwgYW5kIHRoZSBiaW5hcmllcyBjYW4gYmUN Cj4gPj4gc2hpcHBlZA0KPiA+Pj4+IHRvIHVzZXJzLCByZWFkeQ0KPiA+Pj4+IHRvIHJ1bi4gQnV0 IGZvciB0aGUgcHVycG9zZXMgb2YgZWRrMiwgT3BlblNTTCBpcyBub3QgbmVlZGVkIGFzIGEgDQo+ ID4+Pj4gbmF0aXZlDQo+ID4+Pj4gKGhvc3RlZCkgdXRpbGl0eSwgbGlrZSBOQVNNIGFuZCBpQVNM IC0tIGl0IGlzIG5lZWRlZA0KPiA+PiBhcyBhDQo+ID4+Pj4gKmNyb3NzLWJ1aWx0Kg0KPiA+Pj4+ IHN0YXRpYyBsaWJyYXJ5LCB0YXJnZXRpbmcgdGhlIGZpcm13YXJlIGFyY2hpdGVjdHVyZQ0KPiA+ PiAobm90DQo+ID4+Pj4gdGhlIGhvc3QNCj4gPj4+PiBhcmNoaXRlY3R1cmUpLiBVbmZvcnR1bmF0 ZWx5LCBPcGVuU1NMICh0aGUgdXBzdHJlYW0NCj4gPj4+PiBwcm9qZWN0KSBkb2VzIG5vdA0KPiA+ Pj4+IGZ1bGx5IHN1cHBvcnQgdGhpcyB1c2UgY2FzZSB5ZXQsIHRoZXJlZm9yZSBMaW51eA0KPiA+ PiBkaXN0cm9zDQo+ID4+Pj4gY2Fubm90IGp1c3QNCj4gPj4+PiBjcm9zcy1jb21waWxlIE9wZW5T U0wgZm9yIGVkazIsIGFuZCBvZmZlciBzdGF0aWMNCj4gPj4gbGlicmFyeQ0KPiA+Pj4+IHBhY2th Z2VzLiBUaGlzDQo+ID4+Pj4gaXMgd2h5IHVwc3RyZWFtIGVkazIgY29uc3VtZXMgT3BlblNTTCB0 aHJvdWdoIGEgZ2l0IHN1Ym1vZHVsZSwgaW4gDQo+ID4+Pj4gc291cmNlIGZvcm0uDQo+ID4+Pj4N Cj4gPj4+PiAqSG93ZXZlcio6IGNvbmNlcHR1YWxseSwgdGhlcmUgaXMgbm8gZGlmZmVyZW5jZS4g SW4gRmVkb3JhIGFuZCANCj4gPj4+PiBSSEVMLCB3ZSBkb24ndCBidWlsZCBPVk1GIGFnYWluc3Qg dXBzdHJlYW0gT3BlblNTTC4gV2UgYnVpbGQNCj4gaXQNCj4gPj4+PiBhZ2FpbnN0IHRoZQ0KPiA+ Pj4+IGRvd25zdHJlYW0gT3BlblNTTCBzb3VyY2UgY29kZS4gU28gdWx0aW1hdGVseSB0aGVyZQ0K PiBpcw0KPiA+PiBubw0KPiA+Pj4+IGRpZmZlcmVuY2UgaW4NCj4gPj4+PiB0aGUgZGlzdHJvIHZl bmRvcidzIGFwcHJvYWNoIC0tIHRoZSBzb3VyY2VzIGFuZCB0aGUgYmluYXJpZXMgY29tZSANCj4g Pj4+PiBmcm9tIHRoZSBkaXN0cm8gdmVuZG9yLg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBTbyB3 aGF0IGZvbGxvd3MgZnJvbSB0aGlzPyBJdCBtZWFucyB0aGF0LCBmb3IgdXNpbmcgQmFzZVRvb2xz IG9uIA0KPiA+Pj4+IGEgTGludXggZGlzdHJvLCB1c2VycyB3aWxsIGhhdmUgdG8gaW5zdGFsbCBz b21lIGV4dHJhIFB5dGhvbiANCj4gPj4+PiBwYWNrYWdlcywgaW4gYWRkaXRpb24gdG8gTkFTTSBh bmQgaUFTTCwgZnJvbSB0aGVpciB2ZW5kb3IncyANCj4gPj4+PiByZXBvc2l0b3J5LiBJbiBvdGhl ciB3b3JkcywgdGhlICJlZGsyLWxpYnJhcnkiIChvciAiZWRrMi10b29scyIpIA0KPiA+Pj4+IHBy b2plY3Qgc2hvdWxkIGRvIHVwc3RyZWFtIHJlbGVhc2VzLCBzbyB0aGF0IExpbnV4IGRpc3Ryb3Mg Y2FuIA0KPiA+Pj4+IHBhY2thZ2UgdGhlbSBpbg0KPiA+PiB0aGVpcg0KPiA+Pj4+IG5hdGl2ZSBw YWNrYWdlDQo+ID4+Pj4gc3lzdGVtcy4gQW5kIHNvbWUgY29sbGFib3JhdGlvbiBiZXR3ZWVuIHVw c3RyZWFtIGFuZCBkb3duc3RyZWFtcyANCj4gPj4+PiBpcyBleHBlY3RlZCBmb3IgdGhpcy4gKEV4 YWN0bHkgYXMgaXQgb2NjdXJzIHdpdGggdGhlDQo+IGlBU0wNCj4gPj4+PiBhbmQgTkFTTSB1cHN0 cmVhbQ0KPiA+Pj4+IHByb2plY3RzLikNCj4gPj4+Pg0KPiA+Pj4+PiBDYW4gd2UgbGltaXQgdGhl IGluaXRpYWwgc2NvcGUgdG8gdG9vbHMgdGhhdCBsYXllcg0KPiBvbg0KPiA+Pj4+IHRvcCBvZiBl ZGsyLCBhbmQNCj4gPj4+Pj4gYSBkaWZmZXJlbnQgZnV0dXJlIFJGQyB3b3VsZCBiZSByZXF1aXJl ZCBpZiB0aGVyZQ0KPiBpcw0KPiA+PiBhDQo+ID4+Pj4gcHJvcG9zYWwgZm9yDQo+ID4+Pj4+IHRo ZSBlZGsyIHJlcG8gdG8gZGVwZW5kIG9uIGFub3RoZXIgcmVwbz8NCj4gPj4+Pg0KPiA+Pj4+IFll cywgdGhhdCB3b3VsZCBiZSB2ZXJ5IG5pY2UuDQo+ID4+Pj4NCj4gPj4+Pj4gSWYgd2UgYWNjZXB0 IHRoaXMgbGltaXRlZCBzY29wZSwgYXJlIHRoZXJlIHN0aWxsDQo+ID4+Pj4gY29uY2VybnMgYWJv dXQNCj4gPj4+Pj4gaW5pdGlhbGx5IHVzaW5nIHNxdWFzaCBjb21taXRzIGZvciBjaGFuZ2VzIHRv IHRoZXNlDQo+ID4+Pj4gdG9vbHMuDQo+ID4+Pj4NCj4gPj4+PiBZZXMsIEkgc3RpbGwgaGF2ZSB0 aGUgc2FtZSBjb25jZXJuIC0tIGFsdGhvdWdoIGl0J3MNCj4gYQ0KPiA+Pj4+IG1pbGRlciBjb25j ZXJuLA0KPiA+Pj4+IGRlcGVuZGVudCBvbiBob3cgbG9uZyBzcXVhc2ggbWVyZ2VzIGFyZSB0b2xl cmF0ZWQuDQo+ID4+Pj4NCj4gPj4+PiBBc3N1bWUgdGhhdCBhIHNlY29uZCwgc2VwYXJhdGUgUkZD IGdldHMgcG9zdGVkIGRvd24NCj4gPj4gdGhlDQo+ID4+Pj4gcm9hZCwgbGV0J3Mgc2F5DQo+ID4+ Pj4gYSB5ZWFyIGluLCB3aGljaCBwcm9wb3NlcyB0byByZXBsYWNlIHRoZSBpbi1saW5lIGNvbXBv bmVudCBGb29CYXIgDQo+ID4+Pj4gb2YgQmFzZVRvb2xzLCB3aXRoIHRoZSBleHRlcm5hbCBwcm9q ZWN0ICJlZGsyLWxpYnJhcnkiDQo+ID4+IChvcg0KPiA+Pj4+ICJlZGsyLXRvb2xzIikuDQo+ID4+ Pj4gQXQgdGhhdCBwb2ludCwgdGhlIGdpdCBoaXN0b3J5IGFjY3J1ZWQgdGh1cyBmYXIsIGluDQo+ ID4+IGVkazItDQo+ID4+Pj4gdG9vbHMsIHdvdWxkDQo+ID4+Pj4gc3VkZGVubHkgYmUgaW5oZXJp dGVkIGJ5IGFsbCBCYXNlVG9vbHMgdXNlcnMuIEFuZA0KPiB0aGF0DQo+ID4+Pj4gaGlzdG9yeSB3 b3VsZG4ndA0KPiA+Pj4+IGJlIHJlYWxseSBoZWxwZnVsLg0KPiA+Pj4+DQo+ID4+Pj4gRm9yIGFu IGV4YW1wbGUsIHdlIG5lZWQgbm90IGxvb2sgcGFzdCB0aGUgZWRrMg0KPiA+PiByZXBvc2l0b3J5 DQo+ID4+Pj4gaXRzZWxmLiBMZXQncw0KPiA+Pj4+IHNheSBJJ2QgbGlrZSB0byBsZWFybiBhYm91 dCB0aGUgaW1wbGVtZW50YXRpb24NCj4gaGlzdG9yeQ0KPiA+PiBvZg0KPiA+Pj4+IHRoZQ0KPiA+ Pj4+IEhhbmRsZVByb3RvY29sKCkgYm9vdCBzZXJ2aWNlLCBpbiBlZGsyLiBTbyBJIHJ1bjoNCj4g Pj4+Pg0KPiA+Pj4+ICQgZ2l0IGJsYW1lIG1hc3RlciAtLQ0KPiA+PiBNZGVNb2R1bGVQa2cvQ29y ZS9EeGUvSGFuZC9IYW5kbGUuYw0KPiA+Pj4+DQo+ID4+Pj4gYW5kIEkgbG9vayB1cCB0aGUgQ29y ZUhhbmRsZVByb3RvY29sKCkgZnVuY3Rpb24sIGFuZA0KPiA+PiBmaW5kDQo+ID4+Pj4gdGhpczoN Cj4gPj4+Pg0KPiA+Pj4+PiAyOGEwMDI5NzE4OWMzIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9IYW5k L2hhbmRsZS5jDQo+ID4+Pj4gKHlzaGFuZzEgICAgICAgICAgMjAwNy0wNy0wNCAxMDo1MTo1NCAr MDAwMCAgOTMxKQ0KPiA+Pj4+IEVGSV9TVEFUVVMNCj4gPj4+Pj4gMjhhMDAyOTcxODljMyBNZGVN b2R1bGVQa2cvQ29yZS9EeGUvSGFuZC9oYW5kbGUuYw0KPiA+Pj4+ICh5c2hhbmcxICAgICAgICAg IDIwMDctMDctMDQgMTA6NTE6NTQgKzAwMDAgIDkzMikNCj4gPj4gRUZJQVBJDQo+ID4+Pj4+IDI4 YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQvaGFuZGxlLmMNCj4gPj4+PiAo eXNoYW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEwOjUxOjU0ICswMDAwICA5MzMpDQo+ID4+Pj4g Q29yZUhhbmRsZVByb3RvY29sICgNCj4gPj4+Pj4gMjhhMDAyOTcxODljMyBNZGVNb2R1bGVQa2cv Q29yZS9EeGUvSGFuZC9oYW5kbGUuYw0KPiA+Pj4+ICh5c2hhbmcxICAgICAgICAgIDIwMDctMDct MDQgMTA6NTE6NTQgKzAwMDAgIDkzNCkNCj4gSU4NCj4gPj4+PiBFRklfSEFORExFICAgICAgIFVz ZXJIYW5kbGUsDQo+ID4+Pj4+IDI4YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hh bmQvaGFuZGxlLmMNCj4gPj4+PiAoeXNoYW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEwOjUxOjU0 ICswMDAwICA5MzUpDQo+IElODQo+ID4+Pj4gRUZJX0dVSUQgICAgICAgICAqUHJvdG9jb2wsDQo+ ID4+Pj4+IDI4YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQvaGFuZGxlLmMN Cj4gPj4+PiAoeXNoYW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEwOjUxOjU0ICswMDAwICA5MzYp DQo+ID4+IE9VVA0KPiA+Pj4+IFZPSUQgICAgICAgICAgICAqKkludGVyZmFjZQ0KPiA+Pj4+PiAy OGEwMDI5NzE4OWMzIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9IYW5kL2hhbmRsZS5jDQo+ID4+Pj4g KHlzaGFuZzEgICAgICAgICAgMjAwNy0wNy0wNCAxMDo1MTo1NCArMDAwMCAgOTM3KQ0KPiApDQo+ ID4+Pj4+IDI4YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQvaGFuZGxlLmMN Cj4gPj4+PiAoeXNoYW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEwOjUxOjU0ICswMDAwICA5Mzgp IHsNCj4gPj4+Pj4gMjhhMDAyOTcxODljMyBNZGVNb2R1bGVQa2cvQ29yZS9EeGUvSGFuZC9oYW5k bGUuYw0KPiA+Pj4+ICh5c2hhbmcxICAgICAgICAgIDIwMDctMDctMDQgMTA6NTE6NTQgKzAwMDAg IDkzOSkNCj4gPj4+PiByZXR1cm4gQ29yZU9wZW5Qcm90b2NvbCAoDQo+ID4+Pj4+IDAyMmM2ZDQ1 ZWY3ODYgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQvSGFuZGxlLmMNCj4gPj4+PiAocWh1YW5n OCAgICAgICAgICAyMDA4LTA3LTI0IDAyOjU0OjQ1ICswMDAwICA5NDApDQo+ID4+Pj4gVXNlckhh bmRsZSwNCj4gPj4+Pj4gMDIyYzZkNDVlZjc4NiBNZGVNb2R1bGVQa2cvQ29yZS9EeGUvSGFuZC9I YW5kbGUuYw0KPiA+Pj4+IChxaHVhbmc4ICAgICAgICAgIDIwMDgtMDctMjQgMDI6NTQ6NDUgKzAw MDAgIDk0MSkNCj4gPj4+PiBQcm90b2NvbCwNCj4gPj4+Pj4gMDIyYzZkNDVlZjc4NiBNZGVNb2R1 bGVQa2cvQ29yZS9EeGUvSGFuZC9IYW5kbGUuYw0KPiA+Pj4+IChxaHVhbmc4ICAgICAgICAgIDIw MDgtMDctMjQgMDI6NTQ6NDUgKzAwMDAgIDk0MikNCj4gPj4+PiBJbnRlcmZhY2UsDQo+ID4+Pj4+ IDAyMmM2ZDQ1ZWY3ODYgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQvSGFuZGxlLmMNCj4gPj4+ PiAocWh1YW5nOCAgICAgICAgICAyMDA4LTA3LTI0IDAyOjU0OjQ1ICswMDAwICA5NDMpDQo+ID4+ Pj4gZ0R4ZUNvcmVJbWFnZUhhbmRsZSwNCj4gPj4+Pj4gMDIyYzZkNDVlZjc4NiBNZGVNb2R1bGVQ a2cvQ29yZS9EeGUvSGFuZC9IYW5kbGUuYw0KPiA+Pj4+IChxaHVhbmc4ICAgICAgICAgIDIwMDgt MDctMjQgMDI6NTQ6NDUgKzAwMDAgIDk0NCkNCj4gPj4+PiBOVUxMLA0KPiA+Pj4+PiAyOGEwMDI5 NzE4OWMzIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9IYW5kL2hhbmRsZS5jDQo+ID4+Pj4gKHlzaGFu ZzEgICAgICAgICAgMjAwNy0wNy0wNCAxMDo1MTo1NCArMDAwMCAgOTQ1KQ0KPiA+Pj4+IEVGSV9P UEVOX1BST1RPQ09MX0JZX0hBTkRMRV9QUk9UT0NPTA0KPiA+Pj4+PiAyOGEwMDI5NzE4OWMzIE1k ZU1vZHVsZVBrZy9Db3JlL0R4ZS9IYW5kL2hhbmRsZS5jDQo+ID4+Pj4gKHlzaGFuZzEgICAgICAg ICAgMjAwNy0wNy0wNCAxMDo1MTo1NCArMDAwMCAgOTQ2KQ0KPiA+Pj4+ICk7DQo+ID4+Pj4+IDI4 YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQvaGFuZGxlLmMNCj4gPj4+PiAo eXNoYW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEwOjUxOjU0ICswMDAwICA5NDcpIH0NCj4gPj4+ Pg0KPiA+Pj4+IEludGVyZXN0aW5nLCBpdCBzZWVtcyBsaWtlIHRoZSBmdW5jdGlvbiB3YXMNCj4g b3JpZ2luYWxseQ0KPiA+Pj4+IGFkZGVkIGluIGNvbW1pdA0KPiA+Pj4+IDI4YTAwMjk3MTg5YzMs IGFuZCB0aGVuIHRoZSBhcmd1bWVudCBsaXN0IHdhcw0KPiBtb2RpZmllZA0KPiA+PiBpbg0KPiA+ Pj4+IGNvbW1pdA0KPiA+Pj4+IDAyMmM2ZDQ1ZWY3ODYsIGEgeWVhciBsYXRlci4gU28gbGV0J3Mg Y2hlY2sgb3V0IHRoZSByYXRpb25hbGUgZm9yIA0KPiA+Pj4+IHRoYXQgYXJndW1lbnQgbGlzdCB1 cGRhdGU6DQo+ID4+Pj4NCj4gPj4+PiAkIGdpdCBzaG93IC0tY29sb3IgMDIyYzZkNDVlZjc4Ng0K PiA+Pj4+DQo+ID4+Pj4gV2VsbC4uLiBUaGUgY29tbWl0IG1lc3NhZ2Ugc2F5cywgIkNvZGUgU2Ny dWIgZm9yIER4ZSBDb3JlIi4gDQo+ID4+Pj4gVGhhdCdzIGFsbC4NCj4gPj4+PiBXZSBhbHNvIGxl YXJuIGl0IGNvbWVzIGZyb20gU1ZOIHJldmlzaW9uIDU1NjAuIEFuZA0KPiB0aGUNCj4gPj4+PiBk aWZmc3RhdCBmb3IgdGhlDQo+ID4+Pj4gcGF0Y2ggaXM6DQo+ID4+Pj4NCj4gPj4+Pj4gIDM4IGZp bGVzIGNoYW5nZWQsIDI0OTkgaW5zZXJ0aW9ucygrKSwgMjUwNA0KPiA+PiBkZWxldGlvbnMoLQ0K PiA+Pj4+ICkNCj4gPj4+Pg0KPiA+Pj4+IEl0IGlzIG5vdCBvdmVybHkgaGVscGZ1bC4NCj4gPj4+ Pg0KPiA+Pj4+IENsZWFybHksIENvcmVIYW5kbGVQcm90b2NvbCgpIGlzIGEgc3VwZXItcm9idXN0 LA0KPiA+PiBzdXBlci0NCj4gPj4+PiBtYXR1cmUgZnVuY3Rpb24sDQo+ID4+Pj4gc28gd2UgZG9u J3QgcmVhbGx5IGNhcmUgZm9yIGl0cyBkZXZlbG9wbWVudCBoaXN0b3J5IHRvZGF5Lg0KPiA+Pj4+ DQo+ID4+Pj4gSSBiZWxpZXZlIHRoZSBzYW1lIHdvdWxkIG5vdCBhcHBseSB0byB0aGUgImVkazIt DQo+ID4+IGxpYnJhcnkiDQo+ID4+Pj4gKG9yDQo+ID4+Pj4gImVkazItdG9vbHMiKSBwcm9qZWN0 LiBXaGVuIGl0IHJlcGxhY2VkIHRoZSBpbi1saW5lIGNvbXBvbmVudCANCj4gPj4+PiBGb29CYXIg b2YgQmFzZVRvb2xzLCBpdCdzIHBsYXVzaWJsZSBpdCB3b3VsZCBiZSBzdWRkZW5seQ0KPiBleHBv c2VkDQo+ID4+IHRvDQo+ID4+Pj4gYSBsYXJnZXINCj4gPj4+PiB1c2VyYmFzZS4gTmV3IGlzc3Vl cyB3b3VsZCBiZSBlbmNvdW50ZXJlZCwgYW5kDQo+IHBlb3BsZQ0KPiA+Pj4+IG1pZ2h0IHdhbnQg dG8gbG9vaw0KPiA+Pj4+IGF0IHRoZSBnaXQgaGlzdG9yeSAtLSBpZiBmb3Igbm90aGluZyBlbHNl LCB0aGVuDQo+ID4+IHJhdGlvbmFsZQ0KPiA+Pj4+IChjb21taXQNCj4gPj4+PiBtZXNzYWdlcykg b24gc21hbGwgcGFydHMgb2YgdGhlIGNvZGUuDQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IEkgY2Fu IGFsc28gbmFtZSBtb3JlIHJlY2VudCBleGFtcGxlcy4gSSdtIG5vdCBhDQo+ID4+IGZyZXF1ZW50 DQo+ID4+Pj4gQmFzZVRvb2xzDQo+ID4+Pj4gY29udHJpYnV0b3IsIGJ1dCBpdCBoYXMgaGFwcGVu ZWQgb2NjYXNpb25hbGx5LiAoSSd2ZQ0KPiA+PiBnb3QNCj4gPj4+PiA0MSBwYXRjaGVzIGluDQo+ ID4+Pj4gdGhlIGVkazIgZ2l0IGhpc3RvcnkgdGhhdCB0b3VjaGVkIEJhc2VUb29scy8sIGFzIG9m IGNvbW1pdA0KPiA+Pj4+IDBhNTA2ZmM3YWI4Yi4pDQo+ID4+Pj4NCj4gPj4+PiAqIEZvcg0KPiA+ Pj4+DQo+IDxodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTE1NDAy NDQ+LA0KPiA+PiBJDQo+ID4+Pj4gcHVzaGVkDQo+ID4+Pj4gICA1KzEgcGF0Y2hlczoNCj4gPj4+ Pg0KPiA+Pj4+ICAgICA2Nzk4MzQ4NGE0NDMgQmFzZVRvb2xzL2Zvb3Rlci5tYWtlZmlsZTogZXhw YW5kIEJVSUxEX0NGTEFHUyANCj4gPj4+PiBsYXN0IGZvciBDIGZpbGVzIHRvbw0KPiA+Pj4+ICAg ICAwMzI1MmFlMjg3YzQgQmFzZVRvb2xzL2hlYWRlci5tYWtlZmlsZTogcmVtb3ZlDQo+ICItDQo+ ID4+IGMiDQo+ID4+Pj4gZnJvbSBCVUlMRF9DRkxBR1MNCj4gPj4+PiAgICAgYjhhNjYxNzAyNjQz IEJhc2VUb29scy9Tb3VyY2UvQzogc3BsaXQgIi1PMiIgdG8gDQo+ID4+Pj4gQlVJTERfT1BURkxB R1MNCj4gPj4+PiAgICAgYjBjYTVkYWU3OGZmIEJhc2VUb29scy9Tb3VyY2UvQzogdGFrZQ0KPiA+ PiBFWFRSQV9PUFRGTEFHUw0KPiA+Pj4+IGZyb20gdGhlIGNhbGxlcg0KPiA+Pj4+ICAgICA4MTUw MmNlZTIwYWMgQmFzZVRvb2xzL1NvdXJjZS9DOiB0YWtlDQo+ID4+IEVYVFJBX0xERkxBR1MNCj4g Pj4+PiBmcm9tIHRoZSBjYWxsZXINCj4gPj4+PiAgICAgKw0KPiA+Pj4+ICAgICBhYTRlMGRmMWYw YzcgQmFzZVRvb2xzL1ZmckNvbXBpbGU6IGhvbm9yIEVYVFJBX0xERkxBR1MNCj4gPj4+Pg0KPiA+ Pj4+ICogRm9yDQo+ID4+Pj4NCj4gPGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MTM3Nz4sDQo+ID4+IEkNCj4gPj4+PiBwdXNoZWQgMjYNCj4gPj4+PiAgIHBh dGNoZXM6DQo+ID4+Pj4NCj4gPj4+PiAgICAgOGZmMTIyMTE5OTQxIEVtdWxhdG9yUGtnOiByZXF1 aXJlIEdDQzQ4IG9yIGxhdGVyDQo+ID4+Pj4gICAgIDhkN2NkZmFlOGNiOCBPdm1mUGtnOiByZXF1 aXJlIEdDQzQ4IG9yIGxhdGVyDQo+ID4+Pj4gICAgIGZkMTU4NDM3ZGNjZSBWbHYyVGJsdERldmlj ZVBrZzogYXNzdW1lIEdDQzQ4IG9yDQo+ID4+IGxhdGVyDQo+ID4+Pj4gICAgIDdhOWRiZjJjOTRk MSBCYXNlVG9vbHMvQ29uZi90b29sc19kZWYudGVtcGxhdGU6DQo+ID4+IGRyb3ANCj4gPj4+PiBB Uk0vQUFSQ0ggc3VwcG9ydCBmcm9tIEdDQzQ2L0dDQzQ3DQo+ID4+Pj4gICAgIDQ4ZTY0NDk4Yzk2 MSBCYXNlVG9vbHMvdG9vbHNfZGVmLnRlbXBsYXRlOiBmaXgNCj4gdXANCj4gPj4gTEYtDQo+ID4+ Pj4gb25seSBsaW5lIHRlcm1pbmF0b3INCj4gPj4+PiAgICAgNzM4MWE2NjI3YTY2IEJhc2VUb29s cy90b29sc19kZWYudGVtcGxhdGU6IHN0cmlwIHRyYWlsaW5nIA0KPiA+Pj4+IHdoaXRlc3BhY2UN Cj4gPj4+PiAgICAgOWJiZjE1NmZhYWFkIEJhc2VUb29scy90b29sc19kZWYudGVtcGxhdGU6DQo+ IHJlbW92ZQ0KPiA+Pj4+IEdDQzQ4X0lBMzJfWDY0X0RMSU5LX0NPTU1PTiBkZWFkLWVuZA0KPiA+ Pj4+ICAgICAzYzU2MTNjNTkzMmMgQmFzZVRvb2xzL3Rvb2xzX2RlZi50ZW1wbGF0ZToNCj4gcmVt b3ZlDQo+ID4+Pj4gR0NDNDcgbGVhZiBkZWZpbml0aW9ucw0KPiA+Pj4+ICAgICBmYzg3YjhkN2Y0 MTEgQmFzZVRvb2xzL3Rvb2xzX2RlZi50ZW1wbGF0ZToNCj4gPj4gcHJvcGFnYXRlDQo+ID4+Pj4g bG9zcyBvZiBHQ0M0NyByZWZlcmVuY2VzDQo+ID4+Pj4gICAgIDkxYTY3ZTBmMTExZSBCYXNlVG9v bHMvdG9vbHNfZGVmLnRlbXBsYXRlOg0KPiByZW1vdmUNCj4gPj4+PiBHQ0M0NyBkb2N1bWVudGF0 aW9uDQo+ID4+Pj4gICAgIDBmMjM0ZmI4YTY2MiBCYXNlVG9vbHMvdG9vbHNfZGVmLnRlbXBsYXRl Og0KPiByZW1vdmUNCj4gPj4+PiBHQ0M0NiBsZWFmIGRlZmluaXRpb25zDQo+ID4+Pj4gICAgIDgz YThmMzEzODg0YSBCYXNlVG9vbHMvdG9vbHNfZGVmLnRlbXBsYXRlOg0KPiA+PiBwcm9wYWdhdGUN Cj4gPj4+PiBsb3NzIG9mIEdDQzQ2IHJlZmVyZW5jZXMNCj4gPj4+PiAgICAgYmUzNTlmYTdjZWVj IEJhc2VUb29scy90b29sc19kZWYudGVtcGxhdGU6DQo+IHJlbW92ZQ0KPiA+Pj4+IEdDQzQ2IGRv Y3VtZW50YXRpb24NCj4gPj4+PiAgICAgMTQ1OGFmMGNiY2UwIEJhc2VUb29scy90b29sc19kZWYu dGVtcGxhdGU6DQo+IHJlbW92ZQ0KPiA+Pj4+IEdDQzQ1IGxlYWYgZGVmaW5pdGlvbnMNCj4gPj4+ PiAgICAgMDI0NTc2ODk2ZDQyIEJhc2VUb29scy90b29sc19kZWYudGVtcGxhdGU6DQo+ID4+IHBy b3BhZ2F0ZQ0KPiA+Pj4+IGxvc3Mgb2YgR0NDNDUgcmVmZXJlbmNlcw0KPiA+Pj4+ICAgICAzZTc3 ZDIwZjVjYjMgQmFzZVRvb2xzL3Rvb2xzX2RlZi50ZW1wbGF0ZToNCj4gcmVtb3ZlDQo+ID4+Pj4g R0NDNDUgZG9jdW1lbnRhdGlvbg0KPiA+Pj4+ICAgICBlMDQ2ZGM2MGZiODkgQmFzZVRvb2xzL3Rv b2xzX2RlZi50ZW1wbGF0ZToNCj4gcmVtb3ZlDQo+ID4+Pj4gR0NDNDQgbGVhZiBkZWZpbml0aW9u cw0KPiA+Pj4+ICAgICAzOGM1NzBlZmVkZTAgQmFzZVRvb2xzL3Rvb2xzX2RlZi50ZW1wbGF0ZToN Cj4gPj4gcHJvcGFnYXRlDQo+ID4+Pj4gbG9zcyBvZiBHQ0M0NCByZWZlcmVuY2VzDQo+ID4+Pj4g ICAgIDM4M2QyOTA5Njg0NiBCYXNlVG9vbHMvdG9vbHNfZGVmLnRlbXBsYXRlOg0KPiByZW5hbWUN Cj4gPj4+PiBHQ0M0NF9BTExfQ0NfRkxBR1MgdG8gR0NDNDhfQUxMX0NDX0ZMQUdTDQo+ID4+Pj4g ICAgIDBkYjkxZGFmNTIyOCBCYXNlVG9vbHMvdG9vbHNfZGVmLnRlbXBsYXRlOg0KPiA+PiBlbGlt aW5hdGUNCj4gPj4+PiBHQ0M0NF9JQTMyX1g2NF9ETElOS19GTEFHUw0KPiA+Pj4+ICAgICA4NGQy MWFiZjRlMzYgQmFzZVRvb2xzL3Rvb2xzX2RlZi50ZW1wbGF0ZToNCj4gcmVuYW1lDQo+ID4+Pj4g R0NDNDRfSUEzMl9YNjRfRExJTktfQ09NTU9OIHRvDQo+ID4+Pj4gR0NDNDhfSUEzMl9YNjRfRExJ TktfQ09NTU9ODQo+ID4+Pj4gICAgIDVjNmNjZDUzMjQ0YiBCYXNlVG9vbHMvdG9vbHNfZGVmLnRl bXBsYXRlOg0KPiByZW1vdmUNCj4gPj4+PiBjb21tZW50IGFib3V0IEdDQzQ0ICsgTHptYUY4NkNv bXByZXNzDQo+ID4+Pj4gICAgIDNiYzY1MzI2ZDZlZCBCYXNlVG9vbHMvdG9vbHNfZGVmLnRlbXBs YXRlOg0KPiByZW1vdmUNCj4gPj4+PiBHQ0M0NCBkb2N1bWVudGF0aW9uDQo+ID4+Pj4gICAgIGY3 MjgyMDIzZTc1OCBBcm1Qa2cvQXJtU29mdEZsb2F0TGliOiBkcm9wIGJ1aWxkDQo+ID4+IGZsYWdz DQo+ID4+Pj4gc3BlY2lmaWMgdG8gR0NDNDYvR0NDNDcNCj4gPj4+PiAgICAgMzAwYjhjNWYxNTBj IENyeXB0b1BrZy9CYXNlQ3J5cHRMaWI6IGRyb3AgYnVpbGQNCj4gPj4gZmxhZ3MNCj4gPj4+PiBz cGVjaWZpYyB0byBHQ0M0NA0KPiA+Pj4+ICAgICA3NDIzYmE5ZDQ5OWIgUmV2ZXJ0ICJNZGVQa2c6 IGF2b2lkDQo+ID4+Pj4gX19idWlsdGluX3VucmVhY2hhYmxlKCkgb24gR0NDIHY0LjQiDQo+ID4+ Pj4NCj4gPj4+PiAgIChOb3RlLCBmcm9tIHRoaXMgbGlzdCwgN2E5ZGJmMmM5NGQxIHdhcyBhdXRo b3JlZA0KPiBieQ0KPiA+Pj4+IEFyZCwgSSBqdXN0DQo+ID4+Pj4gICBpbmNsdWRlZCBpdCBhdCB0 aGUgcmlnaHQgc3BvdC4pDQo+ID4+Pj4NCj4gPj4+PiBBbGwgb2YgdGhlc2UgcGF0Y2ggc2VyaWVz IHdlcmUgY2FyZWZ1bGx5IHN0cnVjdHVyZWQsDQo+ID4+IGFuZA0KPiA+Pj4+IGNhcmVmdWxseQ0K PiA+Pj4+IGRvY3VtZW50ZWQgKGluIHRoZSBjb21taXQgbWVzc2FnZXMpLiBJIHdvdWxkIGhhdmUN Cj4gYmVlbg0KPiA+Pj4+IGRldmFzdGF0ZWQsIGhhZA0KPiA+Pj4+IHRoZXkgYmVlbiBzcXVhc2hl ZC4NCj4gPj4+Pg0KPiA+Pj4+IChBbmQgaXQgd291bGQgaGF2ZSBiZWVuIHF1ZXN0aW9uYWJsZSB0 byBzcXVhc2ggQXJkJ3MgcGF0Y2ggd2l0aCANCj4gPj4+PiBwYXRjaGVzIGF1dGhvcmVkIGJ5IG1l LikNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4+IElzIHRoZXJlIGEgd2F5IGZvciBHaXRIdWIgdG8g c3VwcG9ydCBib3RoIHNxdWFzaA0KPiA+Pj4+IGNvbW1pdHMgZm9yIHNvbWUgUFJzDQo+ID4+Pj4+ IGFuZCBwcmVzZXJ2ZSBhIHBhdGNoIHNlcmllcyBmb3Igb3RoZXIgUFJzPw0KPiA+Pj4+DQo+ID4+ Pj4gSSBkb24ndCBrbm93Lg0KPiA+Pj4+DQo+ID4+Pj4gQnV0IGhvbmVzdGx5LCB3aGF0IGlzIHRo ZSBwdXJwb3NlIG9mIHNxdWFzaCBtZXJnZXM/DQo+ID4+IERvbid0DQo+ID4+Pj4gd2UgZXhwZWN0 DQo+ID4+Pj4gKmFsbCogY29udHJpYnV0aW9ucyBpbiB3ZWxsIHN0cnVjdHVyZWQgcGF0Y2ggc2Vy aWVzPw0KPiA+Pj4+DQo+ID4+Pj4gSWYgcmV2aWV3IGRpc2NvdmVycyBhbiBpc3N1ZSB3aXRoIHRo ZSBzdHJ1Y3R1cmUgb2YNCj4gdGhlDQo+ID4+Pj4gc2VyaWVzIChmb3INCj4gPj4+PiBleGFtcGxl LCBub3QgYnVpbGRhYmxlIGluIHRoZSBtaWRkbGUsIG9yIHRoZSBzdGVwcw0KPiBhcmUNCj4gPj4+ PiBub3QgbG9naWNhbCBpbg0KPiA+Pj4+IHRoYXQgb3JkZXIsIG9yIHNvbWUgcGF0Y2hlcyBkbyB0 b28gbWFueSB0aGluZ3MgYXQNCj4gb25jZQ0KPiA+Pj4+IGFuZCBzaG91bGQgYmUNCj4gPj4+PiBz cGxpdCB1cCwgb3IgYSBwYXRjaCBpbiB0aGUgbWlkZGxlIGhhcyBhIHR5cG8pLCB0aGUNCj4gPj4g Zml4ZXMNCj4gPj4+PiBzaG91bGRuJ3QgYmUNCj4gPj4+PiBqdXN0IGhlYXBlZCBvbiB0b3AuIFRo ZSBzdWJtaXR0ZXIgc2hvdWxkIHJlc3RydWN0dXJlDQo+ID4+Pj4gKHJlYmFzZSkgdGhlDQo+ID4+ Pj4gc2VyaWVzLCBhbmQgc3VibWl0IHRoZSByZXdvcmtlZCBzZXJpZXMgb24gYSBuZXcNCj4gdG9w aWMNCj4gPj4+PiBicmFuY2ggLyBwdWxsDQo+ID4+Pj4gcmVxdWVzdC4NCj4gPj4+Pg0KPiA+Pj4+ IElzbid0IHRoaXMgdGhlIGNvbnRyaWJ1dGlvbiBwYXR0ZXJuIHdlJ2QgbGlrZSB0byBzZWUNCj4g Pj4gaW4NCj4gPj4+PiBhbGwNCj4gPj4+PiBzdWItcHJvamVjdHMsIHdoZXJlIHdlICh0aGUgVGlh bm9Db3JlIGNvbW11bml0eSkNCj4gaGF2ZQ0KPiA+Pj4+IHJldmlld2VyIC8NCj4gPj4+PiBtYWlu dGFpbmVyIHJlc3BvbnNpYmlsaXRpZXM/DQo+ID4+Pj4NCj4gPj4+PiBUaGFua3MsDQo+ID4+Pj4g TGFzemxvDQo+ID4+Pj4NCj4gPj4+Pj4gVGhhbmtzLA0KPiA+Pj4+Pg0KPiA+Pj4+PiBNaWtlDQo+ ID4+Pj4+DQo+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4gRnJv bTogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4+PiBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBz LmlvXQ0KPiA+Pj4+Pj4gT24gQmVoYWxmIE9mIExhc3psbyBFcnNlaw0KPiA+Pj4+Pj4gU2VudDog V2VkbmVzZGF5LCBNYXkgOCwgMjAxOSAyOjU2IEFNDQo+ID4+Pj4+PiBUbzogZGV2ZWxAZWRrMi5n cm91cHMuaW87DQo+IHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20NCj4gPj4+Pj4+IFN1YmplY3Q6 IFJlOiBbZWRrMi1kZXZlbF0gUkZDIGZvciBFZGsyLUxpYnJhcnkNCj4gPj4+Pj4+DQo+ID4+Pj4+ PiBPbiAwNS8wNy8xOSAyMzozNSwgU2VhbiB2aWEgR3JvdXBzLklvIHdyb3RlOg0KPiA+Pj4+Pj4+ IFJGQyAgRWRrMi1MaWJyYXJ5IGNyZWF0aW9uDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBDcmVhdGUg YSBuZXcgdGlhbm9jb3JlIG93bmVkIHJlcG9zaXRvcnkgdG8gaG9zdCBhDQo+ID4+Pj4+PiBweXRo b24gbGlicmFyeQ0KPiA+Pj4+Pj4+IHBhY2thZ2UgaW4gc3VwcG9ydCBvZiBVRUZJIGRldmVsb3Bt ZW50LiAgVGhpcw0KPiA+PiBwYWNrYWdlDQo+ID4+Pj4+PiB3aWxsIGFsbG93IGVhc3kNCj4gPj4+ Pj4+PiBzaGFyaW5nIG9mIHB5dGhvbiBsaWJyYXJ5IGNvZGUgdG8gZmFjaWxpdGF0ZQ0KPiByZXVz ZS4NCj4gPj4+Pj4+IEluY2x1c2lvbiBvZiB0aGlzDQo+ID4+Pj4+Pj4gcGFja2FnZSBhbmQgZGVw ZW5kZW5jeSBtYW5hZ2VtZW50IHNob3VsZCBiZQ0KPiBtYW5hZ2VkDQo+ID4+Pj4+PiB1c2luZyBQ aXAvUHlwaS4gVG8NCj4gPj4+Pj4+PiBzdGFydCB0aGlzIGlzIGEgc3VwcGxlbWVudGFsIHBhY2th Z2UgYW5kIGlzIG5vdA0KPiA+Pj4+Pj4gcmVxdWlyZWQgdG8gYmUgdXNlZA0KPiA+Pj4+Pj4+IGZv ciBlZGsyIGJ1aWxkcy4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBbMV0NCj4gPj4+Pj4+DQo+ID4+Pj4+ Pj4gRXhhbXBsZXMgb2YgY29udGVudCBoZXJlDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAqIEVkazIg ZmlsZSB0eXBlIHBhcnNpbmcNCj4gPj4+Pj4+PiAqIFVFRkkgc3RydWN0dXJlIGVuY29kZS9kZWNv ZGUgaW4gcHl0aG9uDQo+ID4+Pj4+Pj4gKiBQYWNrYWdpbmcgdG9vbHMgKENhcHN1bGVzIGdlbmVy YXRpb24sIHNpZ25pbmcsDQo+ID4+IElORg0KPiA+Pj4+Pj4gZ2VuLCBDYXQgZ2VuKQ0KPiA+Pj4+ Pj4+ICogVFBNIHN1cHBvcnQgY29kZQ0KPiA+Pj4+Pj4+ICogUG90ZW50aWFsbHkgbW92ZSBjb250 ZW50IGZyb20NCj4gPj4+Pj4+IGJhc2V0b29scy9zb3VyY2UvcHl0aG9uL2NvbW1vbi8qDQo+ID4+ Pj4+Pg0KPiA+Pj4+Pj4gWzJdDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+ICogTm8gY29tbWFuZCBsaW5l IHRvb2xzL2ludGVyZmFjZQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gTWFpbnRhaW5lcnMNCj4gPj4+ Pj4+Pg0KPiA+Pj4+Pj4+ICogU2VhbiBCcm9nYW4NCj4gPj4+Pj4+PiAqIEJyZXQgQmFya2VsZXcN Cj4gPj4+Pj4+PiAqIFBsYWNlaG9sZGVyIGZvciBleGlzdGluZyBtYWludGFpbmVyIGZyb20gdGhl DQo+ID4+Pj4+PiBiYXNldG9vbHMNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IExpY2Vuc2UNCj4gPj4+ Pj4+Pg0KPiA+Pj4+Pj4+ICogQlNEICsgUGF0ZW50IChlZGsyIGFsaWduZWQpDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiBDb250cmlidXRpb24gcHJvY2VzcyBhbmQgaXNzdWUgdHJhY2tpbmcNCj4gPj4+ Pj4+Pg0KPiA+Pj4+Pj4+ICogRm9sbG93IEdpdGh1YiBQUiBwcm9jZXNzIGZvciBjb250cmlidXRp b25zIGFuZA0KPiA+Pj4+IGlzc3VlDQo+ID4+Pj4+PiB0cmFja2luZw0KPiA+Pj4+Pj4+ICogQ29u dHJpYnV0b3IgZm9ya3MgcmVwbyBpbiBnaXRodWINCj4gPj4+Pj4+PiAqIENvbnRyaWJ1dG9yIGNy ZWF0ZXMgYnJhbmNoIGZvciB3b3JrDQo+ID4+Pj4+Pj4gKiBDb250cmlidXRvciB1cGRhdGVzIHJl bGVhc2Ugbm90ZXMgdG8gaW5kaWNhdGUNCj4gPj4+PiBjaGFuZ2UNCj4gPj4+Pj4+IChpZiBuZWNl c3NhcnkpDQo+ID4+Pj4+Pj4gKiBDb250cmlidXRvciBzdWJtaXRzIFBSIHRvIG1hc3RlciBicmFu Y2ggb2YNCj4gPj4+Pj4+IHRpYW5vY29yZS9FZGsyLUxpYnJhcnkNCj4gPj4+Pj4+PiAgIHJlcG8N Cj4gPj4+Pj4+PiAqIFJldmlldyBmZWVkYmFjayBpcyBnaXZlbiBpbiBQUg0KPiA+Pj4+Pj4+ICog UHl0aG9uIFRlc3RzIGFyZSBydW4gb24gdGhlIHJlcG8gKG5ldw0KPiA+PiBjb250cmlidXRpb25z DQo+ID4+Pj4+PiBuZWVkIHVuaXQgdGVzdHMpDQo+ID4+Pj4+Pj4gKiBQeXRob24gU3R5bGUgKGZs YWtlOCkgbXVzdCBwYXNzDQo+ID4+Pj4+Pj4gKiBBbGwgcmV2aWV3IGZlZWRiYWNrIG11c3QgYmUg Y29tcGxldGVkLA0KPiA+PiBtYWludGFpbmVycw0KPiA+Pj4+Pj4gYXBwcm92ZWQsIGFuZA0KPiA+ Pj4+Pj4+ICAgdGVzdHMgcnVuIHN1Y2Nlc3NmdWxseSBiZWZvcmUgUFIgaXMgKnNxdWFzaA0KPiA+ PiBtZXJnZWQqDQo+ID4+Pj4+PiBpbnRvIG1hc3Rlcg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoZSBz ZW50ZW5jZXMNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBbMV0gIlRvIHN0YXJ0IHRoaXMgaXMgYSBzdXBw bGVtZW50YWwgcGFja2FnZSBhbmQNCj4gaXMNCj4gPj4+PiBub3QNCj4gPj4+Pj4+IHJlcXVpcmVk IHRvIGJlDQo+ID4+Pj4+PiAgICAgIHVzZWQgZm9yIGVkazIgYnVpbGRzLiINCj4gPj4+Pj4+DQo+ ID4+Pj4+PiBbMl0gIlBvdGVudGlhbGx5IG1vdmUgY29udGVudCBmcm9tIA0KPiA+Pj4+Pj4gYmFz ZXRvb2xzL3NvdXJjZS9weXRob24vY29tbW9uLyoiDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gZm9yZXNo YWRvdyB0aGF0IHN1Y2ggYSBjb2RlIG1vdmVtZW50IG1pZ2h0IGhhcHBlbg0KPiA+PiBkb3duDQo+ ID4+Pj4+PiB0aGUgcm9hZCwgYW5kIHRoZQ0KPiA+Pj4+Pj4gZXh0ZXJuYWwgcGFja2FnZSBjb3Vs ZCBiZWNvbWUgYSByZXF1aXJlbWVudCBmb3INCj4gPj4+PiBidWlsZGluZw0KPiA+Pj4+Pj4gZWRr Mi4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBUaGF0IHN0ZXAgd291bGQgbWVhbiB0aGUgZm9sbG93aW5n Og0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IChhKSBFZGsyIHdvdWxkIG5vdCByZW1haW4gYnVpbGRhYmxl IGZyb20gYSBzaW5nbGUgY29tbWFuZA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICAgICBnaXQgY2xvbmUg LS1yZWN1cnNlLXN1Ym1vZHVsZXMNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAgICAgQnVpbGRpbmcgZWRr MiB3b3VsZCByZXF1aXJlIEdOVS9MaW51eCB1c2VycyB0bw0KPiA+Pj4+IHN0YXJ0DQo+ID4+Pj4+ PiB0cmFja2luZw0KPiA+Pj4+Pj4gICAgIHBhY2thZ2VzIHdpdGggInBpcCIsIHdoaWNoIGlzIGlu ZGVwZW5kZW50IG9mDQo+IGFueQ0KPiA+Pj4+Pj4gZ2l2ZW4gZGlzdHJvJ3Mgb3duDQo+ID4+Pj4+ PiAgICAgcGFja2FnZSBtYW5hZ2VtZW50LCBhbmQgbWF5IGNhdXNlIGNvbmZsaWN0cyBpZg0KPiA+ PiBub3QNCj4gPj4+Pj4+IHVzZWQgY2FyZWZ1bGx5Og0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+ Pj4+Pg0KPiA+Pj4+DQo+ID4+DQo+IGh0dHBzOi8vZGV2ZWxvcGVyLmZlZG9yYXByb2plY3Qub3Jn L3RlY2gvbGFuZ3VhZ2VzL3B5dGhvDQo+ID4+Pj4+PiBuL3B5cGktaW5zdGFsbGF0aW9uLmh0bWwN Cj4gPj4+Pj4+DQo+ID4+Pj4+PiAgICAgVGhpcyByZXF1aXJlbWVudCBvbiAicGlwIiB3b3VsZCBv bmx5IGdvIGF3YXkNCj4gPj4gb25jZQ0KPiA+Pj4+Pj4gdGhlIGV4dGVybmFsDQo+ID4+Pj4+PiAg ICAgcHl0aG9uIGRlcGVuZGVuY2llcyB3ZXJlIHBhY2thZ2VkIGZvciBhdCBsZWFzdA0KPiA+PiB0 aGUNCj4gPj4+Pj4+IGxhcmdlciBHTlUvTGludXgNCj4gPj4+Pj4+ICAgICBkaXN0cm9zLg0KPiA+ Pj4+Pj4NCj4gPj4+Pj4+IChiKSBFZGsyIHVzZXJzIHJ1bm5pbmcgaW50byBidWlsZCBwcm9ibGVt cyByZWxhdGVkDQo+ID4+IHRvDQo+ID4+Pj4+PiB0aGUgZXh0ZXJuYWwNCj4gPj4+Pj4+ICAgICBw eXRob24gZGVwZW5kZW5jaWVzIHdvdWxkIGhhdmUgdG8gY29udHJpYnV0ZQ0KPiA+Pj4+IHRocm91 Z2gNCj4gPj4+Pj4+IGEgZ2l0aHViLW9ubHkNCj4gPj4+Pj4+ICAgICB3b3JrZmxvdy4gVGhhdCdz IG5vdCBhIGRlYWwtYnJlYWtlciBwZXIgc2UgLS0NCj4gaWYNCj4gPj4+PiB3ZQ0KPiA+Pj4+Pj4g d2FudCB0bw0KPiA+Pj4+Pj4gICAgIGNvbnRyaWJ1dGUgdG8gb3RoZXIgZWRrMiBkZXBlbmRlbmNp ZXMsIHN1Y2ggYXMgT3BlblNTTCBvciANCj4gPj4+Pj4+IG5hc20sIHdlDQo+ID4+Pj4+PiAgICAg YWxzbyBoYXZlIHRvIGNvbmZvcm0gdG8gdGhlaXIgc3BlY2lmaWMNCj4gPj4gZGV2ZWxvcG1lbnQN Cj4gPj4+Pj4+IG1vZGVscywgY2xlYXJseS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiAgICAgSG93ZXZl ciwgInNxdWFzaCBtZXJnZSIgaXMgYSBjYXRhc3Ryb3BoaWNhbGx5DQo+ID4+IGJhZA0KPiA+Pj4+ Pj4gZGV2ZWxvcG1lbnQgbW9kZWwsDQo+ID4+Pj4+PiAgICAgYW5kIEknZCBvYmplY3QgdG8gaW50 cm9kdWNpbmcgYSBuZXcgZWRrMiBidWlsZCBkZXBlbmRlbmN5IA0KPiA+Pj4+Pj4gdGhhdA0KPiA+ Pj4+Pj4gICAgIGZvbGxvd2VkIHRoYXQgbW9kZWwuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gICAgIChU aGVyZSBhcmUgb3RoZXIgaXNzdWVzIHdpdGggdGhlIEdpdEh1Yi5jb20gZGV2ZWxvcG1lbnQgDQo+ ID4+Pj4+PiB3b3JrZmxvdywgYXMNCj4gPj4+Pj4+ICAgICBkaXNjdXNzZWQgZWxzZXdoZXJlLCBi dXQgInNxdWFzaCBtZXJnZSIgdGFrZXMNCj4gPj4gdGhlDQo+ID4+Pj4+PiBjYWtlLikNCj4gPj4+ Pj4+DQo+ID4+Pj4+PiBQcm9ibGVtIChhKSB3b3VsZCBiZSBzb2x2YWJsZSBpbiB0aGUgbG9uZyB0 ZXJtDQo+ID4+Pj4gKHRocm91Z2gNCj4gPj4+Pj4+IGNvbGxhYm9yYXRpb24NCj4gPj4+Pj4+IHdp dGggZGlzdHJvIG1haW50YWluZXJzLCBpLmUuIGRvd25zdHJlYW0NCj4gcGFja2FnaW5nKSwNCj4g Pj4+PiBidXQNCj4gPj4+Pj4+IHByb2JsZW0gKGIpDQo+ID4+Pj4+PiB3b3VsZCBub3QgYmUuIFRo dXMgSSdtIGZpbmUgd2l0aCB0aGUgcHJvcG9zYWwsIGluDQo+ID4+IGl0cw0KPiA+Pj4+Pj4gY3Vy cmVudCBmb3JtLCBvbmx5DQo+ID4+Pj4+PiBpZiB0aGUgbmV3IHBhY2thZ2UgaXMgMTAwJSBhbiBh ZGRpdGlvbiBvbiB0b3Agb2YNCj4gPj4gZWRrMiwNCj4gPj4+Pj4+IGV2ZW4gaW4gdGhlIGxvbmcN Cj4gPj4+Pj4+IHRlcm0sIGFuZCBub3QgaW4gYW55IHBhcnQgaW50ZW5kZWQgYXMgYSBmdXR1cmUg cmVwbGFjZW1lbnQgZm9yIA0KPiA+Pj4+Pj4gY3VycmVudA0KPiA+Pj4+Pj4gZWRrMiBmdW5jdGlv bmFsaXR5Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoYW5rcywNCj4gPj4+Pj4+IExhc3psbw0KPiA+ Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiANCj4gPg0K DQoNCg0KDQo=