From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (EUR04-DB3-obe.outbound.protection.outlook.com [40.92.74.103]) by mx.groups.io with SMTP id smtpd.web10.1438.1583264312983678678 for ; Tue, 03 Mar 2020 11:38:33 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: outlook.de, ip: 40.92.74.103, mailfrom: mhaeuser@outlook.de) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VmXZMqVdlI9ovZjoQklmgYdfxuH5H9YjTHhIdvd8CDFutLxDUB4Hqx1wIqZg5FD0VpGslICNKtWjiorXGLZhSdtsDx3TzMSt7DjOFMpdwYVZMEh//oV7WlgmOY/u2tZcb4F8u8cOvcroQlwBLSuheQhMdP5aBsNIW/olt0oYddGugF02DtxSPULV/CBKv1ircKGW6K1ElaTMi08YTmA/8MgWSg0WQOr6j6NSpw2qoYRCrdgA2Lp+5OkNeHn/izj+ijW8Wu5zTTnTOE6ilGizLESbKqR4uOEIbGxcXThHK0uTonp9hwT5ohlKsWL3LEENkNRcb8uBNdGAnPtBxn3TxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VM9mz5aRKVmoWlk32uarv3kgvib5tRp/lGn4NjvbqI0=; b=V6VI1yIJ4ZY/RpX8sPVRlC5m5nBIa+ApLG6hVDAZBZGHhG7WAWRkU+7lzJwMUetS/L8s9zk85+U/nQINwXA4X4gAvXE5K26q09hIg909T3Qjj3F+CXsbpYpSm63l2JzwL4PogHaJm+zHZNrwtmAE4PJoi4zhHvMrOeihvBzalrtK0WgJ6+AdqQhe5R+WKyQkbN8x15JYAoEzLWEhtk5K0RcsIoMY6bA+DO8DufqwHP+ClWXwmk00Znmftf1pQMxUqDaNVQloNFnC7IPlwXhUgH6hRTt/vPHuxFnLYMcAVFi6fMqPuTl2WAjJCBLKUYcW4qRxSMkfxD+iqDLDJdcu6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from VI1EUR04FT041.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0e::37) by VI1EUR04HT182.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0e::202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.15; Tue, 3 Mar 2020 19:38:30 +0000 Received: from AM0P195MB0452.EURP195.PROD.OUTLOOK.COM (10.152.28.57) by VI1EUR04FT041.mail.protection.outlook.com (10.152.29.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.18 via Frontend Transport; Tue, 3 Mar 2020 19:38:30 +0000 Received: from AM0P195MB0452.EURP195.PROD.OUTLOOK.COM ([fe80::c1f8:7fdc:e412:3939]) by AM0P195MB0452.EURP195.PROD.OUTLOOK.COM ([fe80::c1f8:7fdc:e412:3939%3]) with mapi id 15.20.2772.019; Tue, 3 Mar 2020 19:38:30 +0000 Received: from [192.168.1.234] (95.89.14.251) by AM3PR05CA0092.eurprd05.prod.outlook.com (2603:10a6:207:1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.15 via Frontend Transport; Tue, 3 Mar 2020 19:38:29 +0000 From: =?UTF-8?B?TWFydmluIEjDpHVzZXI=?= To: Andrew Fish , "devel@edk2.groups.io" CC: Mike Kinney , vit9696 , "Gao, Liming" , "Gao, Zhichao" , Laszlo Ersek Subject: Re: [edk2-devel] [PATCH v3 0/1] Add PCD to disable safe string constraint assertions Thread-Topic: [edk2-devel] [PATCH v3 0/1] Add PCD to disable safe string constraint assertions Thread-Index: AQHVwlkNIfzmFi0UlEORchDoajoAgafd+XGAgAAESQCAAwDRAIAdakGAgBYYdwCABlUnAIAAVWUAgAAKeYCAAFd1AIAAFAEAgAA6XgCAADEGAIAA3TSAgAGwOQCAALivgIAEKA6AgACuJQCAE3h/AA== Date: Tue, 3 Mar 2020 19:38:30 +0000 Message-ID: References: <20200103171242.63839-1-vit9696@protonmail.com> <2719704F-6DB4-444F-97FE-DBF71D39B698@apple.com> <3D7EB7E9-9B94-40AD-A0E9-BFDEB787F6DA@apple.com> In-Reply-To: Accept-Language: de-DE, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM3PR05CA0092.eurprd05.prod.outlook.com (2603:10a6:207:1::18) To AM0P195MB0452.EURP195.PROD.OUTLOOK.COM (2603:10a6:208:ae::12) x-incomingtopheadermarker: OriginalChecksum:28D7042C2E24D235CAE84193322279F67FDCA98289CDD8C72A423C1993A87363;UpperCasedChecksum:34E826B3A35E67B7D28840CAFB2E0221080382D1C5A521FCFFF4E2FB3FF70BF6;SizeAsReceived:8892;Count:50 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [WsStuVW/k+Nq/BRzabzv+a+UqZSSf5mb] x-microsoft-original-message-id: <327e7b54-0bee-75e4-8017-56a9fe39c3c5@outlook.de> x-ms-publictraffictype: Email x-incomingheadercount: 50 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: aabd2e03-a312-4802-b298-08d7bfaa7378 x-ms-traffictypediagnostic: VI1EUR04HT182: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pPoZbYYT0ndKPiG4wpG+ZMM1N36SdEce4eXnlv7i0cDL4u5zy7yP8VEtMClRnJxuh5M3ZAQcalU5Lmzt4ec0K6096pWVO7yNdbNHaeJFNhNbyqzmp2eCgR1Io+Y5GskWoYjwKDLvQCif3wEg7PWxpg8kzo7sCVsxozU2xSxSKiBP0zSWy62gCDBjaJqLkecwoPIZNX9pJCVTyzPPX/OAaOsxjiggR5N8t0YKfJJKGOc= x-ms-exchange-antispam-messagedata: xK8wvNsZLUMFO0ssqBdwCkAmDW8/HLFtYtvfzndd65ix3YzrndZlrK/428AFgyIfsMUCvRxwwaT+Jnuc2enNnYdAlx2KKz41adjpmlcJhS9A2kdeqT3fdhO2hYUQ/f/65ZhS4k/Sw3WgRuErDdARvw== x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: aabd2e03-a312-4802-b298-08d7bfaa7378 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2020 19:38:30.6265 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1EUR04HT182 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <224F6B97E760F9429A85182CD94F2DDC@EURP195.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 R29vZCBkYXksDQoNClVuZm9ydHVuYXRlbHksIHRoaXMgZGlzY3Vzc2lvbiBoYXMgZGllZCBhZ2Fp bi4gVGhpcyBpcyBmaW5lIGJ5IG1lLCBJJ20gDQphbHNvIGZpbmUgd2l0aCB0aGUgYWxyZWFkeSBw cm9wb3NlZCBwYXRjaCBhbmQgbW9zdGx5IHNoYXJlZCBkaWZmZXJlbnQgDQphcHByb2FjaGVzIGJh c2VkIG9uIHRoZSB2YXN0bHkgZGl2ZXJnaW5nIGZlZWRiYWNrLCBidXQgaXQgd29ya3MgZm9yIHVz IA0KZWl0aGVyIHdheS4NCg0KQ2FuIHRoZSBwYXRjaCBwbGVhc2UgYmUgcmV2aWV3ZWQgYW5kIGFj Y2VwdGVkIGZvciB0aGUgbmV4dCBzdGFibGUgdGFnPyANClRoYW5rcyENCg0KQmVzdCByZWdhcmRz LA0KTWFydmluDQoNCkFtIDIwLjAyLjIwMjAgdW0gMTE6MTggc2NocmllYiBNYXJ2aW4gSMOkdXNl cjoNCj4gSGV5IEFuZHJldywNCj4gDQo+IFRoYW5rcyBvbmNlIGFnYWluIGZvciB5b3VyIGNvbW1l bnRzLCBtaW5lIGFyZSBpbmxpbmUuDQo+IA0KPiBCZXN0IHJlZ2FyZHMsDQo+IE1hcnZpbg0KPiAN Cj4gQW0gMjAuMDIuMjAyMCB1bSAwMDo1NSBzY2hyaWViIEFuZHJldyBGaXNoOg0KPj4NCj4+DQo+ Pj4gT24gRmViIDE3LCAyMDIwLCBhdCAxMjoyNiBBTSwgTWFydmluIEjDpHVzZXIgPG1oYWV1c2Vy QG91dGxvb2suZGUNCj4+PiA8bWFpbHRvOm1oYWV1c2VyQG91dGxvb2suZGU+PiB3cm90ZToNCj4+ Pg0KPj4+IEdvb2QgZGF5IEFuZHJldywNCj4+Pg0KPj4+IEZpcnN0IG9mIGFsbCwgdGhhbmsgeW91 IHZlcnkgbXVjaCBmb3IgcHV0dGluZyB0aGlzIGFtb3VudCBvZiB0aG91Z2h0DQo+Pj4gaW50byB0 aGUgc2l0dWF0aW9uLiBJIGRlZmluaXRlbHkgYWdyZWUgd2l0aCB0aGUgcHJvYmxlbSB5b3Ugc2Vl LCBidXQgSQ0KPj4+IGNvdWxkIGFsc28gbGl2ZSB3aXRoIFZpdGFseSdzIHByb3Bvc2FsLiBIb3dl dmVyLCBJIHRoaW5rIHlvdSBhcmUNCj4+PiBvdmVyY29tcGxpY2F0aW5nIHRoZSBzaXR1YXRpb24g YSBsaXR0bGUuIFNvLCB3ZSBkbyBhZ3JlZSB0aGUgY2FsbGVyDQo+Pj4gbmVlZHMgY29udHJvbCBv ZiB0aGUgYmVoYXZpb3VyLCBob3dldmVyIHlvdXIgcHJvcG9zYWwgbmVlZHMgInN1cHBvcnQiDQo+ Pj4gZnJvbSBib3RoIHRoZSBjYWxsZXIgKGNob29zZSB0aGUgaGFuZGxlcikgYW5kIHRoZSBjYWxs ZWUgKGNhbGwgdGhlDQo+Pj4gaGFuZGxlcikgYW5kIGlzIG5laXRoZXIgdGhyZWFkLXNhZmUgbm9y IGV2ZW50LXNhZmUgYXMgVml0YWx5IGFscmVhZHkNCj4+PiBwb2ludGVkIG91dC4gRml4aW5nIHRo ZXNlIHByb2JsZW1zIHdvdWxkIG9ubHkgd29yc2VuIHRoZSBjb21wbGV4aXR5DQo+Pj4gc2l0dWF0 aW9uIGluIG15IG9waW5pb24uDQo+Pg0KPj4gV2VsbCBFRkkgZG9lcyBub3QgaGF2ZSBUaHJlYWRz IGJ1dCBpdCBkb2VzIGhhdmUgRXZlbnRzLiBJIGFncmVlIGlmIGFuDQo+IA0KPiBTb3JyeSwgd2Ug d2VyZSByZWZlcmluZyB0byB0aGUgVUVGSSBNdWx0aS1Qcm9jZXNzb3Igc2VydmljZXMsIHNvIHRo cmVhZHMNCj4gaW4gYSBwaHlzaWNhbCBzZW5zZS4gSSB0aGluayB2ZXJ5IHNpbWlsYXIgY29uY2Vy bnMgYXBwbHkgcmVnYXJkaW5nIHRoZXNlDQo+IHNlcnZpY2VzIGFzIHdpdGggc29mdHdhcmUgbXVs dGl0aHJlYWRpbmcgaW4gdGhpcyBjb250ZXh0LCBwbGVhc2UgY29ycmVjdA0KPiBtZSBpZiBJJ20g d3JvbmcuDQo+IA0KPj4gRXZlbnQgaGFuZGxlciBjaGFuZ2VzIHRoZSBjb25zdHJhaW50IGhhbmRs ZXIgaXQgd291bGQgbmVlZCB0byByZXN0b3JlIGl0DQo+PiBzbyBteSBwcm9wb3NhbCBpcyBtaXNz aW5nIGFuIEFQSS4NCj4+DQo+PiBDT05TVFJBSU5UX0hBTkRMRVIgKg0KPj4gR2V0Q29uc3RyYWlu dEhhbmRsZXIgKA0KPj4gICDCoCBWT0lEDQo+PiAgIMKgICkNCj4+IHsNCj4+ICAgwqAgcmV0dXJu IGdBY3RpdmVDb25zdHJhaW50SGFuZGxlcjsNCj4+IH0NCj4+DQo+PiBZb3UgYW4gYWx3YXlzIHVz ZSB0aGUgc3RhbmRhcmQgRUZJDQo+Pg0KPj4gSXQgaXMgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRo YXQgYWxsIHRoZSBFRkkgaW1hZ2VzDQo+PiAoZHJpdmVycy9hcHBsaWNhdGlvbnMpIGFyZSBzdGF0 aWNhbGx5IGxpbmtlZCBhbmQgdGhleSBjYXJyeSBhIHVuaXF1ZQ0KPj4gaW5zdGFuY2Ugb2YgdGhl IERlYnVnIChvciBuZXcgQ29uc3RyYWludCkgbGliLiBTbyBpbiB5b3VyIGRyaXZlciBvciBBcHAN Cj4+IGlzIHZlcnkgc2VsZiBjb250YWluZWQuIEFsc28gYSBsb3Qgb2YgdGhlIGV2ZW50cyBhcmUg cGhhc2UgcmVsYXRlZA0KPj4gY2FsbGJhY2tzLCBhbmQgc2luY2UgdGhlcmUgYXJlIG5vIHRocmVh ZHMgeW91ciBkcml2ZXJzIG1haW4gdGhyZWFkIGlzDQo+PiBvbmx5IHJlYWxseSBydW5uaW5nIHdo ZW4geW91ciBkcml2ZXIsIG9yIGFwcCwgZGlzcGF0Y2hlcy4gQSBsb3Qgb2YgdGhlDQo+PiBjYWxs YmFja3MgYXJlIHZpYSBwcm90b2NvbHMgeW91ciBkcml2ZXIgcHVibGlzaGVzLCBidXQgdGhleSBo YXZlIHN0cmljdA0KPj4gVFBMIHJ1bGVzIHNvIHlvdSBjYW4gcHJldmVudCByZWVudHJhbmN5IGlu IGdlbmVyYWwuIFNvIHRoZXJlIGlzIGEgbG90DQo+PiBtb3JlIGRldGVybWluaXNtIGluIEVGSSB2 cy4gZ2VuZXJpYyB0aHJlYWRlZCBjb2RpbmcuDQo+IA0KPiBUaGlzIGlzIHRydWUsIGJ1dCB5ZXQg YWxsIGVkZ2UtY2FzZXMgc2hvdWxkIGJlIGNvdmVyZWQgKGV2ZW50DQo+ICJpbnRlcnJ1cHRpb24i LCBhY3R1YWwgKHByb2Nlc3NvcikgaW50ZXJydXB0cywgTXVsdGktUHJvY2Vzc29yDQo+IGV4ZWN1 dGlvbiksIHNvIGRldmVsb3BlcnMgZG8gbm90IHJ1biBpbnRvIHVuZXhwZWN0ZWQgKHNlZW1pbmds eSkNCj4gdW5kZXRlcm1pbmlzdGljIGJlaGF2aW91ci4gSG93ZXZlciwgSSBhZ3JlZSBpdCBpcyBl YXNpZXIgdG8gZW5zdXJlIGZvcg0KPiBzb21ldGhpbmcgbGlrZSBVRUZJIHRoYW4gZm9yIGEgZnVs bC1mbGVkZ2VkIE9TIG9mIGNvdXJzZS4NCj4gDQo+Pg0KPj4+DQo+Pj4gRGl2ZXJnaW5nIGZyb20g Ym90aCBvZiB5b3VyIGNvbmNlcHRzIGVudGlyZWx5IGFuZCBrZWVwaW5nIGl0IHZlcnkNCj4+PiBz aW1wbGUsIHdoYXQga2VlcHMgdXMgZnJvbSBzaW1wbHkgQVNTRVJUaW5nIGJhc2VkIG9uIHJldHVy biB2YWx1ZT8gV2UNCj4+PiBjb3VsZCBpbnRyb2R1Y2UgYSBDT05TVFJBSU5UX0FTU0VSVCBvciBz aW1pbGFyLCBidXQgaXQgd291bGQgYmUNCj4+PiBjb21wbGV0ZWx5IGRpZmZlcmVudCBmcm9tIFZp dGFseSdzIHByb3Bvc2FsLiBJdCB3b3VsZCBiZSBhIGNhbGxlciBtYWNybw0KPj4+IHRvIEFTU0VS VCBiYXNlZCBvbiBhIHByZS1kZWZpbmVkIGxpc3Qgb2YgcmV0dXJuIHN0YXR1c2VzLg0KPj4+IFRv IGFjaGlldmUgdGhpcywgd2Ugd291bGQgb3JkZXIgYWxsIHN0YXR1c2VzIGJ5IHR5cGVzIChjbGFz c2VzKS4gQXQgdGhlDQo+Pj4gbW9tZW50LCBJIGNhbiBvbmx5IHRoaW5rIG9mIHR3bzogImVudmly b25tZW50YWwiIGFuZCAiY29uc3RyYWludCIuIEZvcg0KPj4+IGV4YW1wbGUsICJPdXQgT2YgUmVz b3VyY2VzIiB3b3VsZCBiZSBlbnZpcm9ubWVudGFsIGFuZCAiSW52YWxpZA0KPj4+IFBhcmFtZXRl ciIgd291bGQgYmUgY29uc3RyYWludC4gV2UgY291bGQgZGVmaW5lIGVudmlyb25tZW50IHN0YXR1 c2VzDQo+Pj4gZXhwbGljaXRseSAoYXMgaXQgaXMgbGVzcyBsaWtlbHkgbmV3IGVudmlyb25tZW50 IHN0YXR1c2VzIGFyZQ0KPj4+IGludHJvZHVjZWQpIGFuZCBkZWZpbmUgY29uc3RyYWludCBzdGF0 dXNlcyBhcyAibm90IGVudmlyb25tZW50YWwiICh0bw0KPj4+IHNpbGVudGx5IHN1cHBvcnQgbmV3 IGNvbnN0cmFpbnQgc3RhdHVzZXMsIGhvd2V2ZXIgb2YgY291cnNlIGl0IGlzIGENCj4+PiBsaXR0 bGUgZXJyb3ItcHJvbmUgd2l0aCBmb3J3YXJkcy1jb21wYXRpYmlsaXR5KS4gQXMgYSBib251cywg aXQgZm9yY2VzDQo+Pj4gZGV2ZWxvcGVycyB0byB1c2UgdHJ1bHkgYXBwcm9waWF0ZSBlcnJvciBj b2RlcyBhbmQgY29ycmVjdGx5IHByb3BhZ2F0ZQ0KPj4+IHRoZW0gZnJvbSBjYWxsZWVzIGZvciB0 aGlzIHRvIHdvcmsuIDopDQo+Pj4gVGhpcyBzb2x1dGlvbiB3b3VsZCBiZSBiYWNrd2FyZHMtY29t cGF0aWJsZSBpbiBhIGNvbXBpbGF0aW9uIHNlbnNlIGFzIGl0DQo+Pj4gY2FuIHNpbXBseSBiZSBh IG5ldyBtYWNybywgaG93ZXZlciBmb3IgaXRzIHBvc3NpYmxlIGNvbXBsZXhpdHkgKHN3aXRjaA0K Pj4+IGNhc2VzKSBJIG1pZ2h0IGFjdHVhbGx5IHByZWZlciBhIGZ1bmN0aW9uLiBCdXQgaXQgd291 bGQgbm90IGJlDQo+Pj4gYmFja3dhcmRzLWNvbXBhdGlibGUgd2l0aCB0aGUgY3VycmVudCBmdW5j dGlvbmFsaXR5LCB3aGljaCBub25lIG9mIHRoZQ0KPj4+ICJjYWxsZXItYmFzZWQiIGNvbmNlcHRz IGNhbiBiZSBhbnl3YXkgKHRoZSBjYWxsZXIgbmVlZHMgZXhwbGljaXQgY29kZSkuDQo+Pj4NCj4+ DQo+PiBJdCBpcyBhbiBpbnRlcmVzdGluZyBpZGVhIHRvIGFkZCBncmFudWxhcml0eSwgYnV0IGF0 IHRoZSBlbmQgb2YgdGhlDQo+PiBrbm93bGVkZ2Ugb2YgdGhlIGNvcnJlY3QgYmVoYXZpb3Igb2Yg dGhlIGxvd2VyIGxldmVsIGxpYnJhcnkgY29kZSByZWFsbHkNCj4+IGxpdmVzIGluIGNvZGUgdGhh dCBjYWxscyB0aGlzLiBJIHdpbGwgYWRtaXQgSSBjYW4gc2VlIHNvbWUgdmFsdWUgdG8NCj4+IG1h a2luZ8KgUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSIGRpZmZlcmVudCB0aGFuwqBSRVRVUk5fQlVG RkVSX1RPT19TTUFMTC4NCj4gDQo+IFNvIGZhciwgSSBwcmVmZXIgdGhpcyBpZGVhIGFzIHRoZSBv bmx5IHJlcXVpcmVtZW50IGlzIHRoYXQgZnVuY3Rpb24NCj4gY29udHJhY3RzIGFyZSB3ZWxsLWRl c2lnbmVkIChpLmUuIHJlZmxlY3QgZW52aXJvbm1lbnRhbCB2cyBjb25zdHJhaW50DQo+IGVycm9y cyBieSB1c2luZyBzZW5zaWNhbCByZXR1cm4gdmFsdWVzKS4NCj4gDQo+Pg0KPj4gSSBraW5kIG9m IHdlbnQgZG93biB0aGUgQzExIHBhdGggKHRoYW5rcyBmb3IgbWVudGlvbmluZyB0aGUgZXZlbnQg aXNzdWUpDQo+PiBidXQgdGhlcmUgYXJlIG90aGVyIHdheXMgdG8gZW1wb3dlciB0aGUgY2FsbGVy Lg0KPiANCj4gSXQncyBkZWZpbml0ZWx5IGFsd2F5cyBhIGdvb2QgaWRlYSB0byBzdGljayB0byBz dGFuZGFyZHMgYW5kDQo+IGNvbnZlbnRpb25zLiBJdCBhcHBlYXJzIG15IHByb3Bvc2FsIGlzIG5v dCBjb252ZW50aW9uYWwgYXQgYWxsLiBIb3dldmVyLA0KPiBJIGFsc28gYmVsaWV2ZSB0aGVyZSBz b21ldGltZXMgaXMgYSBtb3JlIHByYWdtYXRpYyBhcHByb2FjaCB0byB0aGluZ3MNCj4gd2l0aG91 dCBpbXBvc2luZyBzaWduaWZpY2FudCBkaXNhZHZhbnRhZ2VzLCBlc3BlY2lhbGx5IGJ5IGxpbWl0 aW5nIHRoZQ0KPiBzY29wZS4NCj4gDQo+IFRvIGJlIGhvbmVzdCwgSSdtIG5vdyBpbnRlcmVzdGVk IGZvciB3aGljaCBjYXNlcyB0aGUgQzExIHBhdGggaXMNCj4gYWR2YW50YWdvdXMgb3ZlciBteSBh cHByb2FjaCwgZXhjZXB0IHRoYXQgc2V0dGluZyB0aGUgY29uc3RyYWludCBoYW5kbGVyDQo+IGlz IGEgb25lLXRpbWUgdGhpbmcgaWYgaXQgcmVtYWlucyBjb25zaXN0ZW50IHRocm91Z2hvdXQgZXhl Y3V0aW9uLiBJJ2QNCj4gaW1hZ2luZSBmb3Igc29tZSBtb3JlIGNvbXBsZXggaGFuZGxpbmcgbG9n aWMgSSBjYW5ub3QgdGhpbmsgb2YgYW4NCj4gZXhhbXBsZSBvZiAoYWxsIHdlIHJlYWxseSB3YW50 IHRvIGRvIGlzIEFTU0VSVCBjb25kaXRpb25hbGx5IGFmdGVyYWxsKSwNCj4gYW5kIEkgaG9wZSB0 aGlzIGlzIG5vdCBzb21ldGhpbmcgZWRrMiB3b3VsZCBldmVyIHJ1biBpbnRvIC0ga2VlcCBpdA0K PiBzaW1wbGUgaW4gbXkgb3Bpbmlvbi4NCj4gDQo+Pg0KPj4gV2UgY291bGQgbGV0IHRoZSBjYWxs ZXIgZGVjaWRlIHRoZSBiZWhhdmlvci4gVGhhdCBpbXBsaWVzIHBhc3NpbmcNCj4+IENIRUNLX0RF RkFVTFQgKFBDRCksIENIRUNLX0FTU0VSVCwgb3IgQ0hFQ0tfTlVMTC4NCj4+DQo+PiBUaGVuIGtl ZXAgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4NCj4+ICNkZWZpbmUgU3RyQ3B5UyhEZXN0aW5hdGlv bixEZXN0TWF4LFNvdXJjZSlTdHJDcHVTQyhEZXN0aW5hdGlvbiwNCj4+IERlc3RNYXgsIFNvdXJj ZSwgQ0hFQ0tfREVGQVVMVCkNCj4+DQo+PiBCdXQgdGhhdCBzZWVtcyBsaWtlIGEgbG90IG9mIHRo cmFzaCB0byB0aGUgQmFzZUxpYiBhbmQgYSBsb3Qgb2YgbmV3DQo+PiBtYWdpYyB0byB0ZWFjaCBk ZXZlbG9wZXJzLg0KPiANCj4gRnVsbHkgYWdyZWVkIHdpdGggdGhlIGxhc3Qgc2VudGVuY2UuIFRo YXQgd2FzIG9uZSBvZiB0aGUgYXBwcm9hY2hlcyBJDQo+IG1lbnRpb25lZCBiZWZvcmUgbXkgcHJv cG9zYWwsIGJ1dCBJIGluY2x1ZGVkIGl0IG9ubHkgZm9yIGNvbXBsZXRlbmVzcycNCj4gc2FrZSBz byB3ZSBoYXZlIGEgZnVsbCBvdmVydmlldy4gVGhpcyByZXF1aXJlcyBwcm90b3R5cGUgYWRhcHRp b24gZm9yDQo+IGxpdGVyYWxseSBldmVyeSBmdW5jdGlvbiB0aGF0IG1heSBiZSB1c2VkIGluIHN1 Y2ggYSB3YXkgKHdoaWNoIHNjb3Blcw0KPiBiZXlvbmQganVzdCBCYXNlTGliKSwgdWdseSBtYWNy b3MgYW5kIG1vcmUuIFBsZWFzZSBkb24ndCBkbyB0aGF0LiA6KQ0KPiANCj4+DQo+PiBJIHdvdWxk IGd1ZXNzIHRoYXQgdGhlIG1vc3QgY29tbW9uIHVzYWdlIG9mIG15IGxpYnJhcnkgd291bGQgYmUg dG8gdHVybg0KPj4gQ29uc3RyYWludCBDaGVja2luZyBvZmYgaW4gdGhlIGVudGlyZSBkcml2ZXIg b3IgYXBwIGFuZCB0aGVuIGhhbmRsZSB0aGUNCj4+IGVycm9ycyBtYW51YWxseS4NCj4gDQo+IEkn bSBhZnJhaWQgdGhhdCdzIHdoYXQgbW9zdCBwbGF0Zm9ybXMgd2lsbCBlbmQgdXAgd2l0aC4gT3Vy IG1haW4gY29uY2Vybg0KPiB3YXMgd2UgbWF5IG5vdCBhbGxvdyBzdWNoIGNvbnN0cmFpbnQgdmlv bGF0aW9ucyB0byBBU1NFUlQsIHRoYXQgaXMgb3VyDQo+IG1haW4gb2JqZWN0aXZlLiBIb3dldmVy LCBpZiBpdCBjYW4gYmUgbWFkZSBhZHZhbnRhZ2VvdXMgdG8gZnV0dXJlIGNvZGluZw0KPiBwcmFj dGljZSwgaXQgd291bGQgYmUgbmljZSB0byBoYXZlIGEgZGVjZW50IHNvbHV0aW9uIGZvciB0aGUg Y2FsbGVyIHRvDQo+IGhhdmUgc29tZSBmcmVlZG9tLiBNb3JlIGFib3V0IHRoYXQgYmVsb3cuDQo+ IA0KPj4NCj4+IE9uIGRyaXZlci9hcHAgZW50cnkgZG86DQo+Pg0KPj4gU2V0Q29uc3RyYWludEhh bmRsZXIgKElnbm9yZUNvbnN0cmFpbnRIYW5kbGVyKTsNCj4+DQo+PiBUaGVuIGhhbmRsZSB0aGUg ZXJyb3JzIHlvdSBjYXJlIGFib3V0Lg0KPj4NCj4+IFN0YXR1cyA9IFN0ckNweVMgKERlc3RpbmF0 aW9uLERlc3RNYXgsU291cmNlKTsNCj4+IGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4+IEFT U0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+PiByZXR1cm4gU3RhdHVzOw0KPj4gfQ0KPj4NCj4+ IG9yDQo+Pg0KPj4gU3RhdHVzID0gU3RyQ3B5UyAoRGVzdGluYXRpb24sRGVzdE1heCxTb3VyY2Up Ow0KPj4gaWYgKFN0YXR1cyA9PSBSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIpIHsNCj4+IEFTU0VS VF9FRklfRVJST1IgKFN0YXR1cyk7DQo+PiByZXR1cm4gU3RhdHVzOw0KPj4gfQ0KPj4NCj4+IEF0 IHRoZSBlbmQgb2YgdGhlIGRheSBJJ3ZlIGNvZGUgbXkgZHJpdmVyIGFuZCBJIGtub3cgdGhlIHJ1 bGVzIEkgY29kZWQNCj4+IHRvIGFuZCBJIHdhbnQgcHJlZGljdGFibGUgYmVoYXZpb3IuDQo+IA0K PiBZZXMsIGFncmVlZC4gV2Ugd2FudCBwcmVkaWN0YWJsZSBiZWhhdmlvdXIgb2YgIm5vdCBBU1NF UlRpbmciIGZvcg0KPiB1bnRydXN0ZWQgaW5wdXQsIGJlY2F1c2Ugd2UgKmtub3cqIGl0IGlzIHVu dHJ1c3RlZCBhbmQgdGhlIGZ1bmN0aW9uDQo+ICpjYW4qIChhbmQgc2hvdWxkIGJlIGFibGUgdG8p IGhhbmRsZSBpdCAtIGl0IGlzIHNpbXBseSBub3QgYSBwcmVjb25kaXRpb24uDQo+IA0KPj4NCj4+ IEkgY2FuIHNlZSBhIFNpIHZlbmRvciBkZXZlbG9waW5nIHdpdGggQVNTRVJUIENvbnN0cmFpbnQg b2ZmIGFuZCB0aGVuDQo+PiB3aGVuIHRoZSBjdXN0b21lciB0dXJucyBpdCBvbiBzdHVmZiBzdGFy dHMgcmFuZG9tbHkgYnJlYWtpbmcuDQo+IA0KPiBBIGxvdCBvZiBTaSBhbmQgY29yZSAoRHhlQ29y ZSwgUGVpQ29yZSwgcmVsYXRlZCBsaWJyYXJpZXMpIGNvZGUgc2VlbXMgdG8NCj4gQVNTRVJUIChm cmVxdWVudGx5ICpvbmx5KiBBU1NFUlQgd2l0aCBubyBhY3R1YWwgaGFuZGxpbmcsIGVzcGVjaWFs bHkgZm9yDQo+IEFsbG9jYXRlUG9vbCgpID09IE5VTEwpIHdoZW4gdGhlcmUgYXJlIHZhbGlkIGVy cm9yIHNpdHVhdGlvbnMgcG9zc2libGUsDQo+IHNvIEkgaG9wZSB0aGlzIGFwcHJvYWNoIHdvdWxk IGJlIGEgaGFuZHkgdG9vbCB0byBzYXRpc2Z5IHRoZWlyIG5lZWRzDQo+IHdpdGhvdXQgdGhpcyBh YnNvbHV0ZWx5IHRlcnJpYmxlIHByYWN0aWNlLiA6KQ0KPiANCj4gDQo+IA0KPiBJIHRoaW5rIEkg dW5kZXJzdG9vZCBhbGwgeW91ciBjb21tZW50IGluZGl2aWR1YWxseSwgYnV0IEknbSBhZnJhaWQg SSdtDQo+IG5vdCBzdXJlIHdoYXQgeW91ciBzdWdnZXN0ZWQgc29sdXRpb24gaXMgcmlnaHQgbm93 LiBZb3UgY29tbWVudGVkDQo+IHNlbWktcG9zaXRpdmVseSBvbiBteSBwcm9wb3NhbCwgeW91IGRp ZCBub3QgcmV2b2tlIHlvdXIgQzExIHBhdGgsIGFuZA0KPiB5b3UgZnVydGhlcm1vcmUgaW50cm9k dWNlZCBDSEVDS18qIC0gdGhpcyBpcyBicmFpbnN0b3JtaW5nLCBhbmQgSSB0aGluaw0KPiBpdCdz IGEgZ3JlYXQgdGhpbmcsIGJ1dCBJJ20gc2ltcGx5IG5vdCBzdXJlIHdoYXQgeW91ciBleGFjdCBn b2FsIG9yDQo+IHByZWZlcmVkIHJvdXRlIGlzIHJpZ2h0IG5vdy4NCj4gDQo+IE15IHByb3Bvc2Fs IGlzIGEgYml0IHVuY29udmVudGlvbmFsIGFuZCBJIGFncmVlIGl0IHNvdW5kcyBoYWNreSwgYnV0 IHNvDQo+IGZhciBJJ20gbm90IGNvbnZpbmNlZCBpdCB3b3VsZCBiZSBiYWQgcHJhY3RpY2UgYXQg YWxsLiBJdCBib2lscyBkb3duIHRvDQo+IHNlbnNlZnVsbHkgdXNpbmcgdGhlIGluZm9ybWF0aW9u IGEgZnVuY3Rpb24gcmV0dXJucy4gVGhpcyByZXF1aXJlcw0KPiBub3RoaW5nIGJ1dCB0aGUgZnVu Y3Rpb24gdG8gcmV0dXJuIHNlbnNpY2FsIGluZm9ybWF0aW9uLCB3aGljaCBldmVyeQ0KPiBmdW5j dGlvbiBzaG91bGQgYW55d2F5Lg0KPiANCj4gWW91ciBwcm9wb3NhbCBpcyBjbG9zZSB0byB0aGUg QyBzdGFuZGFyZCwgYW5kIHRoYXQgaXMgYSBnb29kIHRoaW5nIGZpcnN0DQo+IG9mIGFsbC4gSG93 ZXZlciwgd2l0aCB0aGUgcmVzdCBvZiBlZGsyIG5vdCBiZWluZyB2ZXJ5IGNvbXBsaWFudCwgSSBk b24ndA0KPiB0aGluayBpdCdzIGFuIGluc3RhbnQgd2luIGFzIGluICJ3ZSBqdXN0IGNvbXBseSB0 byBzdGFuZGFyZHMiIGJlY2F1c2UNCj4gdGhpcyBjaG9pY2UgZG9lcyBub3Qgc3VkZGVubHkgbWFr ZSBwb3J0aW5nIGV4aXN0aW5nIGNvZGUgc2lnbmlmaWNhbnRseQ0KPiBlYXNpZXIgY29tcGFyZWQg dG8gdGhlIHRvdGFsIGxhY2sgb2Ygc3RhbmRhcmQgbGlicmFyeSBzdXBwb3J0IGZvcg0KPiBhbnl0 aGluZyBidXQgU2hlbGwgYXBwcy4NCj4gUHJhZ21hdGljYWxseSwgSSB0aGluayBpdCBzb2x2ZXMg dGhlIHNhbWUgcHJvYmxlbSBlcXVhbGx5IHdlbGwsIGJ1dCBhdCBhDQo+IGhpZ2hlciBjb3N0IChl bnN1cmluZyB0aGUgaW1wbGVtZW50YXRpb24gaXMgc2FmZSBhbmQsIHN0cmljdGx5IHNwZWFraW5n LA0KPiBhbiBldmVyLXNvLXNsaWdodCBydW50aW1lIG92ZXJoZWFkKS4NCj4gDQo+Pg0KPj4+IEhv d2V2ZXIsIENPTlNUUkFJTlRfQVNTRVJUIG1pZ2h0IGFjdHVhbGx5IGJlIHRvbyBzcGVjaWZpYy4g TWF5YmUgd2Ugd2FudA0KPj4+IHNvbWV0aGluZyBsaWtlICJBU1NFUlRfUkVUVVJOIiBhbmQgaGF2 ZSB0aGUgY2xhc3NlcyAiQVNTRVJUX0NPTlNUUkFJTlQiDQo+Pj4gYW5kICJBU1NFUlRfRU5WSVJP Tk1FTlQiIChiaXRmaWVsZCwgbGlrZSB3aXRoIERFQlVHKS4gVGhlIHJlYXNvbiBmb3INCj4+PiB0 aGlzIGlzIGVtYmVkZGVkIHN5c3RlbXMgd2hlcmUgdGhlIGVudmlyb25tZW50IGlzIHRydXN0ZWQv a25vd24gYW5kIHRoZQ0KPj4+IGZpcm13YXJlIGlzIHN1cHBvc2VkIHRvIGJlIHdlbGwtbWF0Y2hl ZC4gVGhpbmsgb2YgYSBTb0Mgd2l0aCBzb2xkZXJlZA0KPj4+IFJBTSAtIHRoZSBmaXJtd2FyZSBj YW4gdmVyeSB3ZWxsIG1ha2UgYXNzdW1wdGlvbiBhYm91dCBtZW1vcnkgY2FwYWNpdHkNCj4+PiAo Y29uc2lkZXJpbmcgdXNhZ2UgYWNyb3NzIGFsbCBtb2R1bGVzIGluIHRoZSB3b3JzdCBjYXNlKSBh bmQgbWlnaHQNCj4+PiBhY3R1YWxseSB3YW50IEFTU0VSVHMgb24gc29tZXRoaW5nIGxpa2UgIk91 dCBPZiBSZXNvdXJjZXMiIGJlY2F1c2UgaXQncw0KPj4+IHN1cHBvc2VkIHRvIGJlIGltcG9zc2li bGUgd2l0aGluIHRoZSBib3VuZHMgb2YgdGhpcyBzcGVjaWZpYyBkZXNpZ24uDQo+Pj4gSXQncyBw b3NzaWJsZSB0aGlzIHdvdWxkIG5lZWQgYSBuZXcgUENEJ3MgaW52b2x2ZW1lbnQsIGZvciBleGFt cGxlIHRvDQo+Pj4gdGVsbCBEeGVDb3JlIHdoZXRoZXIgdG8gQVNTRVJUIG9uIGVudmlyb25tZW50 YWwgYXNwZWN0cyB0b28uIFRoZXJlIGNvdWxkDQo+Pj4gYmUgYW4gYXJndW1lbnQtbGVzcyBtYWNy byB0aGF0IHVzZXMgUENEIGNvbmZpZyBhcyBiYXNlLCBhbmQgYW4NCj4+PiBhcmd1bWVudC1iYXNl ZCBtYWNybyB0aGF0IHVzZXMgb25seSB0aGUgcGFyYW1ldGVycy4gT2YgY291cnNlIHRoaXMNCj4+ PiBjYW5ub3QgY292ZXIgZXZlcnlvbmUncyB2ZXJ5IHNwZWNpZmljIHByZWZlcmVuY2VzIGFzIGl0 J3MgYSBwZXItbW9kdWxlDQo+Pj4gc3dpdGNoLCBidXQgaXQncyB0aGUgYmVzdCBJIGNhbiB0aGlu ayBvZiByaWdodCBub3cuDQo+Pj4NCj4+PiBTb21ldGhpbmcgYSBiaXQgdW5yZWxhdGVkIG5vdywg YnV0IGl0IHdvdWxkIG1ha2UgdGhpcyBlYXNpZXIuIFlvdQ0KPj4+IG1lbnRpb25lZCBQZUNvZmZM aWIgYXMgZXhhbXBsZSwgYW5kIEkgdGhpbmsgaXQncyBhIGdvb2Qgb25lLCBob3dldmVyIGl0DQo+ Pj4gaGFzIGl0cyBvd24gcmV0dXJuIHN0YXR1cyB0eXBlIHdpdGhpbiB0aGUgY29udGV4dFsxXSB3 aGljaCBJIHdpbGwgbW9zdA0KPj4+IGRlZmluaXRlbHkgYmUgZ2V0dGluZyByaWQgb2YgYXMgcGFy dCBvZiBteSB1cGNvbWluZyAoaW4gdGhlIGZhci1pc2gNCj4+PiBmdXR1cmUgOikgKSBSRkMuIENv dWxkIHdlIGV4cGFuZCBSRVRVUk5fU1RBVFVTIHRvIGhhdmUgKHZlcnkgaGlnaD8pDQo+Pj4gcmVz ZXJ2ZWQgdmFsdWVzIGZvciBjYWxsZXItZGVmaW5lZCBlcnJvciBjb2RlcyB0byBoYXZlIGFsbCBS RVRVUk5fU1RBVFVTDQo+Pj4gbWFjcm9zIGFwcGx5IHRvIHRob3NlIHNwZWNpYWwgcmV0dXJuIHZh bHVlcyB0b28/IFdlJ2QgbmVlZCB0byBkZWZpbmUNCj4+PiB0aGVtIGNhdGVnb3JpY2FsbHkgYXMg ImNvbnN0cmFpbnQgc3RhdHVzIiwgYnV0IEkgZG9uJ3Qgc2VlIGhvdyBhIGxpYnJhcnkNCj4+PiB3 b3VsZCBkZWNsYXJlIGEgbmV3IGVudmlyb25tZW50IHN0YXR1cyBhbnl3YXkuDQo+Pj4NCj4+PiBS ZWdhcmRpbmcgTWRlUGtnQ29tcGF0YWJpbGl0eS5kc2MuaW5jLCBJIHRoaW5rIG9uZSBjYW4gb3Zl cnJpZGUgbGlicmFyeQ0KPj4+IGNsYXNzZXMgZnJvbSB0aGUgaW5jIGJ5IGRlY2xhcmluZyB0aGVt IGFmdGVyIHRoZSAhaW5jbHVkZSBzdGF0ZW1lbnQsDQo+Pj4gcGxlYXNlIGNvcnJlY3QgbWUgaWYg SSdtIHdyb25nLiBJZiBzbywgSSBzdHJvbmdseSBhZ3JlZSBhbmQgdGhpbmsgaXQNCj4+PiBzaG91 bGQgYmUgdGhlIGNhc2UgZm9yIGFsbCBwYWNrYWdlcywgc28gb25lIG9ubHkgb3ZlcnJpZGVzIHRo ZSBkZWZhdWx0cw0KPj4+IHdoZW4gc29tZXRoaW5nIHNwZWNpZmljIChkZWJ1Z2dpbmcsIHBlcmZv cm1hbmNlLW9wdGltaXplZCB2ZXJzaW9ucywgLi4uKQ0KPj4+IGlzIHJlcXVpcmVkIC0gZWFzaWVy IHRvIHJlYWQsIGVhc2llciB0byBtYWludGFpbi4gVGhlIGNvbnRlbnQgaXMNCj4+PiBuZWVkZWQv dGhlcmUgYW55d2F5IGFzIHRoZSBsaWJyYXJpZXMgYXJlIGRlY2xhcmVkIGluIHRoZSBwYWNrYWdl J3Mgb3duDQo+Pj4gRFNDLg0KPj4+DQo+Pg0KPj4gWWVzIGl0IHRoZSBuZXcgLmluYyBEU0MgZmls ZSBjb3VsZCBiZSBvdmVycmlkZGVuIGJ5IHRoZSBwbGF0Zm9ybSBEU0MNCj4+IHRoYXQgaW5jbHVk ZXMgaXQuDQo+Pg0KPj4gSSB0aGluayB0aGlzIGlzIGEgbW9yZSBnZW5lcmFsIGlkZWEgdGhhbiBz b21ldGhpbmcgZm9yIHRoaXMgZ2l2ZW4gcGF0Y2guDQo+PiBJdCBpcyBzb21ldGhpbmcgd2UgY291 bGQgbWFrZSBzdXJlIHdlIHVwZGF0ZSBldmVyeSBzdGFibGUgdGFnIG9yIHNvLCBidXQNCj4+IEkg Z3Vlc3Mgc29tZW9uZSBoYXMgdG8gZ28gMXN0IDopLiBJdCB3b3VsZCBtYWtlIGl0IGVhc2llciBv biBwbGF0Zm9ybXMNCj4+IHdoZW4gdGhleSB1cGRhdGUgdGhlIGVkazIgdmVyc2lvbi4NCj4gDQo+ IEFncmVlZC4NCj4gDQo+Pg0KPj4NCj4+DQo+Pg0KPj4+IEl0IHdvdWxkIGJlIG5pY2UgaWYgeW91 IGhhZCBjb21tZW50cyByZWdhcmRpbmcgZXZlcnkgYXNwZWN0IEkganVzdA0KPj4+IG1lbnRpb25l ZCwgaXQgd2FzIGp1c3Qgc29tZXRoaW5nIGNvbWluZyB0byBteSBtaW5kIHRoaXMgbW9ybmluZy4g VGhhbmtzDQo+Pj4gZm9yIHRoZSBpbnB1dCBzbyBmYXIsIGl0J3MgbmljZSB0byBzZWUgc29tZSBt b3ZlbWVudCBub3chDQo+Pj4NCj4+DQo+PiBTb3JyeSBmb3IgdGhlIGRlbGF5DQo+IA0KPiBTdXJl LCB0aGFua3MgZm9yIHRha2luZyB0aW1lIHRvIHJlc3BvbmQhDQo+IA0KPj4NCj4+IFRoYW5rcywN Cj4+DQo+PiBBbmRyZXcgRmlzaA0KPj4NCj4+PiBCZXN0IHJlZ2FyZHMsDQo+Pj4gTWFydmluDQo+ Pj4NCj4+PiBbMV0NCj4+PiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYmxvYi9m MWQ3OGM0ODlhMzk5NzFiNWFhYzVkMmZjOGEzOWJmYTkyNWMzYzVkL01kZVBrZy9JbmNsdWRlL0xp YnJhcnkvUGVDb2ZmTGliLmgjTDIwLUwzMQ0KPj4+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2Nv cmUvZWRrMi9ibG9iL2YxZDc4YzQ4OWEzOTk3MWI1YWFjNWQyZmM4YTM5YmZhOTI1YzNjNWQvTWRl UGtnL0luY2x1ZGUvTGlicmFyeS9QZUNvZmZMaWIuaCNMMTU5DQo+Pj4NCj4+PiBBbSAxNi4wMi4y MDIwIHVtIDIyOjI1IHNjaHJpZWIgQW5kcmV3IEZpc2ggdmlhIEdyb3Vwcy5JbzoNCj4+Pj4gTWlr ZSwNCj4+Pj4NCj4+Pj4gU29ycnkgSSBkb24ndCB0aGluayBJIHRvdGFsbHkgdW5kZXJzdG9vZCB3 aGF0IGZlbHQgd3JvbmcgdG8gbWUsIHNvIEkgZGlkDQo+Pj4+IGEgYmFkIGpvYiBleHBsYWluaW5n IG15IGNvbmNlcm5zLiBBbHNvIEkgZG9uJ3QgdGhpbmsgSSB3YXMgdGhpbmtpbmcNCj4+Pj4gZW5v dWdoIGluIHRoZSBjb250ZXh0IG9mIHRoZSBDMTEgU3RkTGliLg0KPj4+Pg0KPj4+PiBJIHRoaW5r IG15IGNvbmNlcm4gaXMgc3RpbGwgdGhlIGdsb2JhbCBzY29wZSBvZiB0aGUgY29uc3RyYWludCwg ZXZlbiBpZg0KPj4+PiB3ZSB0dW5lIGl0IHBlciBtb2R1bGUuIEZvciBleGFtcGxlIHRoZSBEWEUg Q29yZSBjYW4gaW50ZXJhY3Qgd2l0aA0KPj4+PiBQRS9DT0ZGIGltYWdlcyBhbmQgb3RoZXIgZGF0 YSB0aGF0IGNvdWxkIGhhdmUgaW5kaXJlY3RseSBjb21lIGZyb20gdGhlDQo+Pj4+IGRpc2suIFNv IGNvbmNlcHR1YWxseSB5b3UgbWF5IHdhbnQgdG8gQVNTRVJUIG9uIHNvbWUgY29uc3RyYWludHMg YW5kIG5vdA0KPj4+PiBvbiBvdGhlcnMuIEkgdGhpbmsgdGhhdCBpcyB3aHkgSSByYXRob2xlZCBv biBleHBhbmRpbmcgdGhlIGVycm9yDQo+Pj4+IGhhbmRsaW5nIG1hY3JvcyBhcyB0aGF0IHdhcyBt b3JlIGluIHRoZSB2ZWluIG9mIGhhdmluZyB0aGUgY2FsbGVyIGRlYWwNCj4+Pj4gd2l0aCBpdCwg c28gdGhhdCBpcyBraW5kIG9mIGxpa2Ugd2hhdCB5b3Ugd291bGQgZG8gcHJlIEMxMS4gQWxzbyB0 aGUNCj4+Pj4gRGVidWdMaWIgaXMgcHJvYmFibHkgb25lIG9mIHRoZSBNZGVQa2cgTGlicyB0aGF0 IGhhcyB0aGUgbW9zdCBpbnN0YW5jZXMNCj4+Pj4gZmxvYXRpbmcgYXJvdW5kLCBzbyBJIHRoaW5r IHdlIHNob3VsZCBjaGFuZ2UgaXQgaW4gYSBub24gYmFja3dhcmRzIHdheQ0KPj4+PiB2ZXJ5IGNh cmVmdWxseS4NCj4+Pj4NCj4+Pj4gU28gYWZ0ZXIgcmVhZGluZyB1cCBvbiB0aGUgQzExIGltcGxl bWVudGF0aW9uIG9mIENvbnN0cmFpbnRzIEkgdGhpbmsgbXkNCj4+Pj4gYWx0ZXJuYXRlIHByb3Bv c2FsIGlzIGZvciB1cyB0byBhZGQgYSBDb25zdHJhaW50TGliIG1vZGVsZWQgYWZ0ZXIgQzExDQo+ Pj4+IHZzLiB1cGRhdGluZyB0aGUgRGVidWdMaWIuIFRoaXMgd291bGQgc29sdmUgdGhlIDIgdGhp bmdzIHRoYXQgbWFkZSBtZQ0KPj4+PiB1bmNvbWZvcnRhYmxlOiAxKSBFeHRlbmRpbmcgdGhlIERl YnVnTGliIEFQSTsgMikgR2l2aW5nIHRoZSBjYWxsZXINCj4+Pj4gY29udHJvbCBvZiB0aGUgQVNT RVJUIGJlaGF2aW9yLiBJdCB3b3VsZCBzdGlsbCBoYXZlIHRoZSBkb3duIHNpZGUgb2YNCj4+Pj4g YnJlYWtpbmcgYnVpbGRzIGFzIHRoZSBCYXNlTGliIHdvdWxkIGdldCBhIG5ldyBkZXBlbmRlbmN5 LCBzbyB3ZSBjb3VsZA0KPj4+PiB0YWxrIGFib3V0IGFkZGluZyB0aGVzZSBmdW5jdGlvbnMgdG8g dGhlIERlYnVnTGliIGFzIHRoZSBjb3N0IG9mDQo+Pj4+IHJlcGxpY2F0aW5nIGNvZGUuDQo+Pj4+ DQo+Pj4+IEMxMSBkZWZpbmVzwqBjb25zdHJhaW50X2hhbmRsZXJfdCBhbmTCoHNldF9jb25zdHJh aW50X2hhbmRsZXJfcyBhcyBhIHdheQ0KPj4+PiBmb3IgdGhlIGNhbGxlciB0byBjb25maWd1cmUg dGhlIGJlaGF2aW9yIGZvciBib3VuZHMgY2hlY2tlZCBmdW5jdGlvbnMuIEkNCj4+Pj4gdGhpbmsg dGhhdCBpcyB0aGUgYmVoYXZpb3IgSSBwcmVmZXIuIFNvIGlmIHdlIGFyZSBnb2luZyB0byBtYWtl IGEgY2hhbmdlDQo+Pj4+IHRoYXQgaW1wYWN0cyBEZWJ1Z0xpYiBjb21wYXRpYmlsaXR5IEkganVz dCB3YW50IHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIGENCj4+Pj4gY29udmVyc2F0aW9uIGFib3V0IGFs bCB0aGUgb3B0aW9ucy4gTXkgcHJpbWFyeSBnb2FsIGlzIHdlIGhhdmUgdGhlDQo+Pj4+IGNvbnZl cnNhdGlvbiwgYW5kIGlmIGZvbGtzIGRvbid0IGFncmVlIHdpdGggbWUgdGhhdCBpcyBmaW5lIGF0 IGxlYXN0IHdlDQo+Pj4+IHRhbGtlZCBhYm91dCBpdC4NCj4+Pj4NCj4+Pj4gV2hhdCBJJ20gdGhp bmtpbmcgYWJvdXQgaXMgYXMgc2ltcGx5IGV4cG9zaW5nIGFuIEFQSSB0byBjb250cm9sIHRoZQ0K Pj4+PiBDb25zdHJhaW50IGhhbmRsZXIgbGlrZSBDMTEuIFRoaXMgY291bGQgYmUgZG9uZSB2aWEg YW4gQ29uc3RyYWluTGliIG9yDQo+Pj4+IGV4dGVuZGluZyB0aGUgRGVidWdMaWIuDQo+Pj4+DQo+ Pj4+IFRoZSBiYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbGliIHdvdWxkIGxvb2sgbGlrZToN Cj4+Pj4NCj4+Pj4gdHlwZWRlZg0KPj4+PiBWT0lEDQo+Pj4+IChFRklBUEkgKkNPTlNUUkFJTlRf SEFORExFUikgKA0KPj4+PiBJTiBDT05TVCBDSEFSOCDCoCpGaWxlTmFtZSwNCj4+Pj4gSU4gVUlO VE4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgTGluZU51bWJlciwNCj4+Pj4gSU4gQ09OU1QgQ0hB UjggwqAqRGVzY3JpcHRpb24sDQo+Pj4+IElOIEVGSV9TVEFUVVMgwqAgwqAgwqBTdGF0dXMNCj4+ Pj4gKTsNCj4+Pj4NCj4+Pj4NCj4+Pj4gLy8gRGVmYXVsdCB0byBBc3NlcnRDb25zdHJhaW50SGFu ZGxlciB0byBtYWtlIGl0IGVhc2llciB0byBpbXBsZW1lbnQNCj4+Pj4gQmFzZSBhbmQgWElQIGxp YnMuDQo+Pj4+IC8vIFdlIGNvdWxkIGhhdmUgYSBQQ0QgdGhhdCBhbHNvIHNldHMgdGhlIGRlZmF1 bHQgaGFuZGxlciBpbiBhIExpYg0KPj4+PiBDb25zdHJ1Y3Rvci4gVGhlIGRlZmF1bHQgaGFuZGxl ciBpcyBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGluIEMxMS4NCj4+Pj4gQ09OU1RSQUlOVF9IQU5E TEVSIGdEZWZhdWx0Q29uc3RyYWludEhhbmRsZXIgPcKgQXNzZXJ0Q29uc3RyYWludEhhbmRsZXI7 DQo+Pj4+IENPTlNUUkFJTlRfSEFORExFUiBnQWN0aXZlQ29uc3RyYWludEhhbmRsZXIgPcKgZ0Rl ZmF1bHRDb25zdHJhaW50SGFuZGxlcjsNCj4+Pj4NCj4+Pj4gQk9PTEVBTg0KPj4+PiBFRklBUEkN Cj4+Pj4gQ29uc3RyYWludEFzc2VydEVuYWJsZWQgKA0KPj4+PiBWT0lEDQo+Pj4+ICkNCj4+Pj4g ew0KPj4+PiAgwqDCoHJldHVybiAoQk9PTEVBTikgKChQY2RHZXQ4KFBjZERlYnVnUHJvcGVydHlN YXNrKSAmDQo+Pj4+IERFQlVHX1BST1BFUlRZX0RFQlVHX0NPTlNUUkFJTlRfRU5BQkxFRCkgIT0g MCk7DQo+Pj4+IH0NCj4+Pj4NCj4+Pj4gRUZJX1NUQVRVUw0KPj4+PiBFRklBUEkNCj4+Pj4gU2V0 Q29uc3RyYWludEhhbmRsZXIgKA0KPj4+PiBJTiBDT05TVFJBSU5UX0hBTkRMRVIgSGFuZGxlcg0K Pj4+PiApDQo+Pj4+IHsNCj4+Pj4gaWYgKEhhbmRsZXIgPT0gTlVMTCkgew0KPj4+PiBnQWN0aXZl Q29uc3RyYWludEhhbmRsZXIgPcKgZ0RlZmF1bHRDb25zdHJhaW50SGFuZGxlcjsNCj4+Pj4gfSBl bHNlIHsNCj4+Pj4gZ0FjdGl2ZUNvbnN0cmFpbnRIYW5kbGVyID0gSGFuZGxlcjsNCj4+Pj4gfQ0K Pj4+PiB9DQo+Pj4+DQo+Pj4+IFZPSUQNCj4+Pj4gQXNzZXJ0Q29uc3RyYWludEhhbmRsZXIgKA0K Pj4+PiBJTiBDT05TVCBDSEFSOCDCoCpGaWxlTmFtZSwNCj4+Pj4gSU4gVUlOVE4gwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgTGluZU51bWJlciwNCj4+Pj4gSU4gQ09OU1QgQ0hBUjggwqAqRGVzY3Jp cHRpb24sDQo+Pj4+IElOIEVGSV9TVEFUVVMgwqAgwqAgwqBTdGF0dXMNCj4+Pj4gKQ0KPj4+PiB7 DQo+Pj4+ICDCoMKgaWYgKENvbnN0cmFpbnRBc3NlcnRFbmFibGVkICgpKSB7DQo+Pj4+ICDCoCDC oCDCoERFQlVHICgoRUZJX0RfRVJST1IsICJcQ29uc3RyYWludCBBU1NFUlQgKFN0YXR1cyA9ICVy KTogIiwgU3RhdHVzKSk7DQo+Pj4+ICDCoCDCoMKgwqBEZWJ1Z0Fzc2VydCAoRmlsZU5hbWUswqBM aW5lTnVtYmVyLCBEZXNjcmlwdGlvbikNCj4+Pj4gfQ0KPj4+Pg0KPj4+PiAgwqByZXR1cm47DQo+ Pj4+IH0NCj4+Pj4NCj4+Pj4gVk9JRA0KPj4+PiBJZ25vcmVDb25zdHJhaW50SGFuZGxlciAoDQo+ Pj4+IElOIENPTlNUIENIQVI4IMKgKkZpbGVOYW1lLA0KPj4+PiBJTiBVSU5UTiDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBMaW5lTnVtYmVyLA0KPj4+PiBJTiBDT05TVCBDSEFSOCDCoCpEZXNjcmlw dGlvbiwNCj4+Pj4gSU4gRUZJX1NUQVRVUyDCoCDCoCDCoFN0YXR1cw0KPj4+PiApDQo+Pj4+IHsN Cj4+Pj4gcmV0dXJuOw0KPj4+PiB9DQo+Pj4+DQo+Pj4+IFdlIGNvdWxkIGFkZCBtYWNyb3MgZm9y IHRoZSBjb2RlIGluIHRoZSBsaWIgdG8gY2FsbDoNCj4+Pj4NCj4+Pj4gI2RlZmluZSBDT05TVFJB SU5UX0NIRUNLKEV4cHJlc3Npb24sIFN0YXR1cykgwqBcDQo+Pj4+IGRvIHsgXA0KPj4+PiBpZiAo IShFeHByZXNzaW9uKSkgeyBcDQo+Pj4+IGdBY3RpdmVDb25zdHJhaW50SGFuZGxlcsKgKF9fRklM RV9fLCBfX0xJTkVfXywgRXhwcmVzc2lvbiwgU3RhdHVzKTsgXA0KPj4+PiByZXR1cm4gU3RhdHVz OyBcDQo+Pj4+IH0gXA0KPj4+PiB9IHdoaWxlIChGQUxTRSkNCj4+Pj4NCj4+Pj4gI2RlZmluZSBD T05TVFJBSU5UX1JFUVVJUkUoRXhwcmVzc2lvbiwgU3RhdHVzLCBMYWJlbCkgwqBcDQo+Pj4+IGRv IHsgXA0KPj4+PiBpZiAoIShFeHByZXNzaW9uKSkgeyBcDQo+Pj4+IGdBY3RpdmVDb25zdHJhaW50 SGFuZGxlcsKgKF9fRklMRV9fLCBfX0xJTkVfXywgRXhwcmVzc2lvbiwgU3RhdHVzKTsgXA0KPj4+ PiBnb3RvwqBMYWJlbDsgXA0KPj4+PiB9IFwNCj4+Pj4gfSB3aGlsZSAoRkFMU0UpDQo+Pj4+DQo+ Pj4+DQo+Pj4+IEFzIGEgY2FsbGVyIHdlIGhhdmUgbm93IGhhdmUgY29udHJvbDoNCj4+Pj4gRUZJ X1NUQVRVUyBTdGF0dXM7DQo+Pj4+IENIQVIxNiDCoCDCoCDCoCDCoERzdFsyXTsNCj4+Pj4NCj4+ Pj4gU2V0Q29uc3RyYWludEhhbmRsZXIgKElnbm9yZUNvbnN0cmFpbnRIYW5kbGVyKTsNCj4+Pj4g U3RhdHVzID0gU3RyQ3B5UyAoRHN0LCBzaXplb2YgKERzdCksIEwiVG9vIExvbmciKTsNCj4+Pj4g UHJpbnQgKEwiRHN0ID0lcyAoJXIpXG4iLCDCoERzdCwgU3RhdHVzKTsNCj4+Pj4NCj4+Pj4gU2V0 Q29uc3RyYWludEhhbmRsZXIgKEFzc2VydENvbnN0cmFpbnRIYW5kbGVyKTsNCj4+Pj4gU3RyQ3B5 UyAoRHN0LCBzaXplb2YgKERzdCksIEwiVG9vIExvbmciKTsNCj4+Pj4NCj4+Pj4gVGhhbmtzLA0K Pj4+Pg0KPj4+PiBBbmRyZXcgRmlzaA0KPj4+Pg0KPj4+PiBQUyBTaW5jZSBJJ20gb24gYSBjcmF6 eSBpZGVhIHJvbGwgYW5vdGhlciBpZGVhIHdvdWxkIGJlIHRvIGFkZCBhDQo+Pj4+IE1kZVBrZ0Nv bXBhdGFiaWxpdHkuZHNjLmluYyBmaWxlIHRoYXQgY291bGQgYmUgdXNlZCB0byBmdXR1cmUgcHJv b2YNCj4+Pj4gYWRkaW5nIGRlcGVuZGVudCBsaWJzIHRvIGV4aXN0aW5nIE1kZVBrZyBsaWJzLiBT byBhIHBsYXRmb3JtIGNvdWxkDQo+Pj4+IGluY2x1ZGUgdGhpcyAuRFNDIGFuZCB0aGF0IHdvdWxk IGdpdmUgdGhlbSB0aGUgZGVmYXVsdCBsaWJyYXJ5IG1hcHBpbmcNCj4+Pj4gdG8ga2VlcCBjb2Rl IGNvbXBpbGluZy4gSXQgd2lsbCBvbmx5IHdvcmsgYWZ0ZXIgb3RoZXIgcGxhdGZvcm1zIHN0YXJ0 DQo+Pj4+IGluY2x1ZGluZyBpdCwgYnV0IGFmdGVyIHRoYXQgaXQgd291bGQgZ2l2ZSBkZWZhdWx0 IG1hcHBpbmdzIGZvcg0KPj4+PiBkZXBlbmRlbnQgbGlicy4NCj4+Pj4NCj4+Pj4gSW4gb3VyIGFi b3ZlIGV4YW1wbGUgd2UgY291bGQgaGF2ZSBhZGRlZCB0aGlzIGFuZCB0aGVuIGV4aXN0aW5nIGJ1 aWxkcw0KPj4+PiB0aGF0IGluY2x1ZGVkIE1kZVBrZ0NvbXBhdGFiaWxpdHkuZHNjLmluYyB3b3Vs ZCBrZWVwIGNvbXBpbGluZy4NCj4+Pj4NCj4+Pj4gIMKgW0xpYnJhcnlDbGFzc2VzXQ0KPj4+Pg0K Pj4+PiBEZWJ1Z0NvbnN0cmFpbnRMaWJ8TWRlUGtnL0xpYnJhcnkvRGVidWdDb25zdHJhaW50TGli L0RlYnVnQ29uc3RyYWludExpYi5pbmYNCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4+IE9uIEZlYiAx NSwgMjAyMCwgYXQgMTE6MzggQU0sIE1pY2hhZWwgRCBLaW5uZXkNCj4+Pj4+IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbQ0KPj4+Pj4gPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT48bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj4NCj4+Pj4+IHdyb3RlOg0KPj4+ Pj4NCj4+Pj4+IEFuZHJldywNCj4+Pj4+IEkgZG8gbm90IHRoaW5rIG9mIHRoaXMgYXMgYSBnbG9i YWxseSBzY29wZWQgUENELkl0IGNhbiBiZSBzZXQgaW4NCj4+Pj4+IGdsb2JhbCBzY29wZSBpbiBE U0MuQnV0IGlzIGNhbiBhbHNvIGJlIHNldCB0byB2YWx1ZXMgYmFzZWQgb24gbW9kdWxlDQo+Pj4+ PiB0eXBlIG9yIGZvciBzcGVjaWZpYyBtb2R1bGVzLkluIHRoZSBjYXNlIG9mIHRoZSBzYWZlIHN0 cmluZyBmdW5jdGlvbnMsDQo+Pj4+PiBJIHRoaW5rIHRoZXJlIGlzIGEgZGVzaXJlIHRvIGRpc2Fi bGUgdGhlIGNvbnN0cmFpbnQgYXNzZXJ0cyB3aGVuDQo+Pj4+PiBidWlsZGluZyBhIFVFRkkgQXBw IG9yIFVFRkkgRHJpdmVyIGFuZCBpbXBsZW1lbnQgdGhvc2UgbW9kdWxlcyB0bw0KPj4+Pj4gaGFu ZGxlIHRoZSBlcnJvciByZXR1cm4gdmFsdWVzLkVuYWJsaW5nIHRoZSBjb25zdHJhaW50IGFzc2Vy dHMgZm9yIFBFSQ0KPj4+Pj4gQ29yZSwgRFhFIENvcmUsIFNNTS9NTSBDb3JlLCBQRUlNLCBEWEUs IFNNTS9NTSBtb2R1bGVzIG1ha2VzIHNlbnNlIHRvDQo+Pj4+PiBmaW5kIGluY29ycmVjdCBpbnB1 dCB0byB0aGVzZSBmdW5jdGlvbnMgZnJvbSBtb2R1bGVzIHRoYXQgY2FuDQo+Pj4+PiBndWFyYW50 ZWUgdGhlIGlucHV0cyB3b3VsZCBuZXZlciByZXR1cm4gYW4gZXJyb3IgYW5kIGNhdGNoIHRoZXNl IGFzDQo+Pj4+PiBwYXJ0IG9mIGRldi9kZWJ1Zy92YWxpZGF0aW9uIGJ1aWxkcy4NCj4+Pj4+IEkg d291bGQgbm90IGV4cGVjdCBkaXNhYmxpbmcgb24gYSBtb2R1bGUgYnkgbW9kdWxlIGJhc2lzIHRv IGJlIGNvbW1vbi4NCj4+Pj4+IEkgdGhpbmsgdGhlIHJ1bGUgZm9yIEFQSSBpbXBsZW1lbnRhdGlv bnMgaXMgdG8gb25seSB1c2UNCj4+Pj4+IENPTlNUUkFJTlRfQVNTRVJUKCkgZm9yIGNvbmRpdGlv bnMgdGhhdCBhcmUgYWxzbyBjaGVja2VkIGFuZCByZXR1cm4gYW4NCj4+Pj4+IGVycm9yIG9yIGZh aWwgd2l0aCBwcmVkaWNhYmxlIGJlaGF2aW9yIHRoYXQgYWxsb3dzIHRoZSBzeXN0ZW0gdG8NCj4+ Pj4+IGNvbnRpbnVlIHRvIGZ1bmN0aW9uLkFTU0VSVCgpIGlzIGZvciBjb25kaXRpb25zIHRoYXQg dGhlIHN5c3RlbWNhbg0KPj4+Pj4gbm90Y29udGludWUuDQo+Pj4+PiBCZXN0IHJlZ2FyZHMsDQo+ Pj4+PiBNaWtlDQo+Pj4+PiAqRnJvbToqYWZpc2hAYXBwbGUuY29tDQo+Pj4+PiA8bWFpbHRvOmFm aXNoQGFwcGxlLmNvbT48bWFpbHRvOmFmaXNoQGFwcGxlLmNvbT48YWZpc2hAYXBwbGUuY29tDQo+ Pj4+PiA8bWFpbHRvOmFmaXNoQGFwcGxlLmNvbT4NCj4+Pj4+IDxtYWlsdG86YWZpc2hAYXBwbGUu Y29tPj4NCj4+Pj4+ICpTZW50OipGcmlkYXksIEZlYnJ1YXJ5IDE0LCAyMDIwIDEwOjI3IFBNDQo+ Pj4+PiAqVG86KnZpdDk2OTYgPHZpdDk2OTZAcHJvdG9ubWFpbC5jb20NCj4+Pj4+IDxtYWlsdG86 dml0OTY5NkBwcm90b25tYWlsLmNvbT48bWFpbHRvOnZpdDk2OTZAcHJvdG9ubWFpbC5jb20+Pg0K Pj4+Pj4gKkNjOipkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPj4+Pj4gPG1haWx0bzpkZXZlbEBlZGsy Lmdyb3Vwcy5pbz48bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjsgS2lubmV5LA0KPj4+Pj4g TWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbQ0KPj4+Pj4gPG1haWx0bzptaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4+Pj4+IDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+PjsgR2FvLCBMaW1pbmcNCj4+Pj4+IDxsaW1pbmcuZ2FvQGludGVsLmNvbQ0KPj4+ Pj4gPG1haWx0bzpsaW1pbmcuZ2FvQGludGVsLmNvbT48bWFpbHRvOmxpbWluZy5nYW9AaW50ZWwu Y29tPj47IEdhbywNCj4+Pj4+IFpoaWNoYW8NCj4+Pj4+IDx6aGljaGFvLmdhb0BpbnRlbC5jb20N Cj4+Pj4+IDxtYWlsdG86emhpY2hhby5nYW9AaW50ZWwuY29tPjxtYWlsdG86emhpY2hhby5nYW9A aW50ZWwuY29tPj47DQo+Pj4+PiBNYXJ2aW4gSMOkdXNlcg0KPj4+Pj4gPG1hcnZpbi5oYWV1c2Vy QG91dGxvb2suY29tDQo+Pj4+PiA8bWFpbHRvOm1hcnZpbi5oYWV1c2VyQG91dGxvb2suY29tPjxt YWlsdG86bWFydmluLmhhZXVzZXJAb3V0bG9vay5jb20+PjsNCj4+Pj4+IExhc3psbyBFcnNlayA8 bGVyc2VrQHJlZGhhdC5jb20NCj4+Pj4+IDxtYWlsdG86bGVyc2VrQHJlZGhhdC5jb20+PG1haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbT4+DQo+Pj4+PiAqU3ViamVjdDoqUmU6IFtlZGsyLWRldmVsXSBb UEFUQ0ggdjMgMC8xXSBBZGQgUENEIHRvIGRpc2FibGUgc2FmZQ0KPj4+Pj4gc3RyaW5nIGNvbnN0 cmFpbnQgYXNzZXJ0aW9ucw0KPj4+Pj4gVml0YWx5LA0KPj4+Pj4gU29ycnkgYWZ0ZXIgSSBzZW50 IHRoZSBtYWlsIEkgcmVhbGl6ZWQgaXQgbWF5IGNvbWUgwqBhY3Jvc3MgYXMgbWUNCj4+Pj4+IGFz a2luZyB5b3UgdG8gZG8gd29yayBhbmQgdGhhdCB3YXMgbm90IG15IGludGVudC4NCj4+Pj4+IEkg d2lsbCBwb2ludCBvdXQgdGhvdWdoIHRoYXQgYSBub24gYmFja3dhcmQgY29tcGF0aWJsZSBjaGFu Z2UgdG8NCj4+Pj4+IHNvbWV0aGluZyBhcyBmdW5kYW1lbnRhbCBhcyB0aGUgRGVidWdMaWIgaXMg YSB2ZXJ5IGJpZyBkZWFsLiBJJ3ZlIGdvdA0KPj4+Pj4gYSBmZXcgZGlmZmVyZW50IGN1c3RvbSBp bXBsZW1lbnRhdGlvbnMgdGhhdCB3b3VsZCBicmVhayB3aXRoIHRoaXMNCj4+Pj4+IGNoYW5nZSBh cyBNaWtlIHByb3Bvc2VkLiBHaXZlbiBicmVha2luZyBldmVyeSBvbmUncyBkZWJ1ZyBsaWIgaXMg c3VjaA0KPj4+Pj4gYSBiaWcgZGVhbCBtYXliZSBpdCBpcyBzb21ldGhpbmcgdGhhdCB3ZSBzaG91 bGQgZG8gYXMgYSBsb25nIHRlcm0gcGxhbg0KPj4+Pj4gdnMuIHNvbWUgaW5jcmVtZW50YWwgZml4 LiBTbyBteSBpbnRlbnQgd2FzIHRvIHN0YXJ0IGEgY29udmVyc2F0aW9uDQo+Pj4+PiBhYm91dCB3 aGF0IGVsc2Ugd2UgbWlnaHQgd2FudCB0byBjaGFuZ2UgaWYgd2UgYXJlIGdvaW5nIHRvIGJyZWFr IHRoZQ0KPj4+Pj4gd29ybGQuIFRoZSBvbmx5IHRoaW5rIHdvcnNlIHRoYW4gYnJlYWtpbmcgdGhl IHdvcmxkIGlzIGJyZWFraW5nIHRoZQ0KPj4+Pj4gd29ybGQgZnJlcXVlbnRseS4NCj4+Pj4+IEkn bSBhbHNvIGEgbGl0dGxlIHdvcnJpZWQgdGhhdCB3ZSBhcmUgdGFraW5nIHRoaW5ncyB0aGF0IGFy ZSB0b2RheQ0KPj4+Pj4gbG9jYWxseSBzY29wZWQgbGlrZcKgU0FGRV9TVFJJTkdfQ09OU1RSQUlO VF9DSEVDSyBhbmQNCj4+Pj4+IFNBRkVfUFJJTlRfQ09OU1RSQUlOVF9DSEVDSyBhbmQgbWFraW5n IHRoZW0gZ2xvYmFsIGNvbnN0cnVjdHMuIEkgdGhpbmsNCj4+Pj4+IHRoZSB3YXkgb3RoZXJzIGhh dmUgZGVhbHQgd2l0aCB0aGluZ3MgbGlrZSB0aGlzIGlzIHRvIG1ha2UgdGhlbSBiZQ0KPj4+Pj4g REVCVUcgcHJpbnRzIHZzLiBBU1NFUlRzLiBBbHNvIGV2ZW4gc29tZXRoaW5nIGFzIHNpbXBsZSBh cw0KPj4+Pj4gU0FGRV9TVFJJTkdfQ09OU1RSQUlOVF9DSEVDSyBjb3VsZCBiZSBjYWxsZWQgZnJv bSBjb2RlIHRoYXQgd2FudHMNCj4+Pj4+IEFTU0VSVCBhbmQgQ09OU1RSQUlOVF9BU1NFUlQgYmVo YXZpb3IuIEl0IGlzIG5vdCBjbGVhciB0byBtZSB0aGF0IHRoZQ0KPj4+Pj4gbG93IGxldmVsIGNv ZGUga25vd3MgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGluIGEgZ2xvYmFsIHNlbnNlIGV2ZW4gaWYN Cj4+Pj4+IHRoZXJlIGlzIGEgUENELiDCoEl0IGFsbW9zdCBzZWVtcyBsaWtlIHdlIHNob3VsZCBo YXZlIHdyYXBwZXJzIGZvciB0aGUNCj4+Pj4+IFNhZmUgc3RyaW5nIGZ1bmN0aW9ucyB0aGF0IGlt cGxlbWVudCB0aGUgYmVoYXZpb3IgeW91IHdhbnQgYXMgYQ0KPj4+Pj4gY2FsbGVyLiBJJ20gbm90 IHN1cmUgYWJvdXQgdGhhdCwgYnV0IGl0IHNlZW1zIGxpa2UgaXQgaXMgd29ydGggdGFsa2luZw0K Pj4+Pj4gYWJvdXQ/DQo+Pj4+PiBUaGFua3MsDQo+Pj4+PiBBbmRyZXcgRmlzaA0KPj4+Pj4NCj4+ Pj4+DQo+Pj4+PiAgwqDCoMKgT24gRmViIDE0LCAyMDIwLCBhdCA3OjMxIFBNLCB2aXQ5Njk2IDx2 aXQ5Njk2QHByb3Rvbm1haWwuY29tDQo+Pj4+PiA8bWFpbHRvOnZpdDk2OTZAcHJvdG9ubWFpbC5j b20+DQo+Pj4+PiAgwqDCoMKgPG1haWx0bzp2aXQ5Njk2QHByb3Rvbm1haWwuY29tPj4gd3JvdGU6 DQo+Pj4+PiAgwqDCoMKgSGkgQW5kcmV3LA0KPj4+Pj4gIMKgwqDCoFdoaWxlIHlvdXIgc3VnZ2Vz dGlvbnMgbG9vayBpbnRlcmVzdGluZyzCoEkgYW0gYWZyYWlkIHRoZXkgYXJlIG5vdA0KPj4+Pj4g IMKgwqDCoHBhcnRpY3VsYXJsecKgd2hhdCB3ZSB3YW50IHRvIGNvdmVywqB3aXRoIHRoaXMgZGlz Y3Vzc2lvbiBhdCB0aGUNCj4+Pj4+IG1vbWVudC4NCj4+Pj4+ICDCoMKgwqBNYWtpbmcgYXNzZXJ0 aW9ucyBnbyB0aHJvdWdoIERFQlVHIHByaW50aW5nIGZ1bmN0aW9ucy9tYWNyb3PCoGlzDQo+Pj4+ PiAgwqDCoMKgd2hhdCB3ZSBoYXZlIHRvIHN0cm9uZ2x5IGRpc2FncmVlIGFib3V0LiBBc3NlcnRp b25zIGFuZCBkZWJ1Zw0KPj4+Pj4gIMKgwqDCoHByaW50cyBhcmUgc2VwYXJhdGUgdGhpbmdzwqBj b25maWd1cmFibGUgYnkgc2VwYXJhdGUgUENEcy7CoFdlDQo+Pj4+PiAgwqDCoMKgc2hvdWxkIG5v dCBtaXggdGhlbS4gSW50cm9kdWNpbmcgY29uc3RyYWludCBhc3NlcnRpb25zIGlzIGENCj4+Pj4+ ICDCoMKgwqBsb2dpY2FsIHN0ZXAgZm9yd2FyZCBpbiB1bmRlcnN0YW5kaW5nIHRoYXQgZGlmZmVy ZW50IHNvZnR3YXJlDQo+Pj4+PiAgwqDCoMKgd29ya3MgaW4gZGlmZmVyZW50IGVudmlyb25tZW50 cy4NCj4+Pj4+DQo+Pj4+PiAgwqDCoMKgwqDCoCogVGhlcmUgYXJlIG5vcm1hbCwgb3IsIGFzIEkg Y2FsbCB0aGVtLCBpbnZhcmlhbnQNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoGFzc2VydGlvbnPCoChl LmcuIHByZWNvbmRpdGlvbnMpLCBmb3IgcGxhY2VzIHdoZXJlIHRoZSBmdW5jdGlvbg0KPj4+Pj4g IMKgwqDCoMKgwqDCoMKgY2Fubm90IHdvcmsgdW5sZXNzIHRoZSBhc3NlcnRpb24gaXMgc2F0aXNm aWVkLiBUaGlzIGlzIHdoZXJlDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqB3ZSBBU1NFUlQuDQo+Pj4+ PiAgwqDCoMKgwqDCoCogVGhlcmUgYXJlIGNvbnN0cmFpbnQgYXNzZXJ0aW9ucywgd2hpY2ggc2ln bmFsaXNlIHRoYXQgYmFkIGRhdGENCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoGNhbWUgdGhyb3VnaCB0 aGUgZnVuY3Rpb24sIGV2ZW4gdGhvdWdoIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkDQo+Pj4+PiAg wqDCoMKgwqDCoMKgwqBmcm9tIGEgdHJ1c3RlZCBzb3VyY2UuIFRoaXMgaXMgd2hlcmUgd2UgY2Fs bCBDT05TVFJBSU5UX0FTU0VSVC4NCj4+Pj4+DQo+Pj4+PiAgwqDCoMKgVGhlIHRoaW5nIHdlIG5l ZWQgaXMgdG8gaGF2ZSB0aGUgbGF0dGVyIHNlcGFyYWJsZQ0KPj4+Pj4gIMKgwqDCoGFuZMKgY29u ZmlndXJhYmxlLCBiZWNhdXNlIG5vdCBldmVyeSBwaWVjZSBvZsKgc29mdHdhcmUgd29ya3MgaW4g YQ0KPj4+Pj4gIMKgwqDCoHRydXN0ZWQgZW52aXJvbm1lbnQuIE90aGVyIHRoYW4gdGhhdCwgY29u c3RyYWludCBhc3NlcnRpb25zLCB3aGVuDQo+Pj4+PiAgwqDCoMKgZW5hYmxlZCwgYXJlIG5vdCBh bnlob3cgZGlmZmVyZW50IGZyb20gbm9ybWFsIGFzc2VydGlvbnMgaW4gdGhlDQo+Pj4+PiAgwqDC oMKgc2Vuc2Ugb2YgYWN0aW9uIHRha2VuLiBBc3NlcnRpb25zIGhhdmUgY29uZmlndXJhYmxlIGJy ZWFrcG9pbnRzDQo+Pj4+PiAgwqDCoMKgYW5kIGRlYWRsb29wcywgYW5kwqBERUJVRyBwcmludHMg Z28gdGhyb3VnaCBhIGRpZmZlcmVudCByb3V0ZSBpbg0KPj4+Pj4gIMKgwqDCoERlYnVnTGliIHRo YXTCoG1heSBjYXVzZcKgZW50aXJlbHnCoGRpZmZlcmVudCBlZmZlY3RzLiBGb3IgZXhhbXBsZSwN Cj4+Pj4+ICDCoMKgwqB3ZSBoYWx0IGV4ZWN1dGlvbiB1cG9uIHByaW50aW5nIHRvIERFQlVHX0VS Uk9SIGluIG91ciBEZWJ1Z0xpYg0KPj4+Pj4gIMKgwqDCoGV2ZW4gaW4gcmVsZWFzZSBidWlsZHMu DQo+Pj4+Pg0KPj4+Pj4gIMKgwqDCoD1UbyBtYWtlIGl0IGNsZWFyLCBjdXJyZW50bHkgSSBwbGFu IHRvIGFkZCB0aGUgZm9sbG93aW5nIGludGVyZmFjZToNCj4+Pj4+ICDCoMKgwqAjZGVmaW5lIENP TlNUUkFJTlRfQVNTRVJUKEV4cHJlc3Npb24pIFwNCj4+Pj4+ICDCoMKgwqBkbyB7IFwNCj4+Pj4+ ICDCoMKgwqBpZiAoRGVidWdDb25zdHJhaW50QXNzZXJ0RW5hYmxlZCAoKSkgeyBcDQo+Pj4+PiAg wqDCoMKgaWYgKCEoRXhwcmVzc2lvbikpIHsgXA0KPj4+Pj4gIMKgwqDCoF9BU1NFUlQgKEV4cHJl c3Npb24pOyBcDQo+Pj4+PiAgwqDCoMKgQU5BTFlaRVJfVU5SRUFDSEFCTEUgKCk7IFwNCj4+Pj4+ ICDCoMKgwqB9IFwNCj4+Pj4+ICDCoMKgwqB9IFwNCj4+Pj4+ICDCoMKgwqB9IHdoaWxlIChGQUxT RSkNCj4+Pj4+ICDCoMKgwqB3aXRoIERlYnVnQ29uc3RyYWludEFzc2VydEVuYWJsZWQgaW1wbGVt ZW50ZWQgYXMNCj4+Pj4+ICDCoMKgwqAoQk9PTEVBTikgKChQY2RHZXQ4KFBjZERlYnVnUHJvcGVy dHlNYXNrKSAmDQo+Pj4+PiAgwqDCoMKgREVCVUdfUFJPUEVSVFlfREVCVUdfQVNTRVJUX0VOQUJM RUQgfA0KPj4+Pj4gIMKgwqDCoERFQlVHX1BST1BFUlRZX0NPTlRSQUlOVF9BU1NFUlRfRElTQUJM RUQpID09DQo+Pj4+PiAgwqDCoMKgREVCVUdfUFJPUEVSVFlfREVCVUdfQVNTRVJUX0VOQUJMRUQp DQo+Pj4+PiAgwqDCoMKgWW91ciBzdWdnZXN0aW9uIHdpdGggcmVxdWlyZSBtYWNyb3MgbG9va3Mg aW50ZXJlc3RpbmcgaW5kZWVkLCBidXQNCj4+Pj4+ICDCoMKgwqBJIGJlbGlldmUgaXQgaXMgaW4g ZmFjdCBwYXJhbGxlbCB0byB0aGlzIGRpc2N1c3Npb24uIFRoZSBjaGFuZ2Ugd2UNCj4+Pj4+ICDC oMKgwqBkaXNjdXNzIGludHJvZHVjZXMgYSBuZXcgYXNzZXJ0aW9uIHByaW1pdGl2ZSDigJQgY29u c3RyYWludA0KPj4+Pj4gIMKgwqDCoGFzc2VydGlvbnMsIHdoaWxlIFJFUVVJUkUgbWFjcm9zIGFy ZSBtb3N0bHkgYWJvdXQgYWR2YW5jZWQgc3ludGF4DQo+Pj4+PiAgwqDCoMKgc3VnYXIgYW5kIGhp Z2hlciBsZXZlbCBhc3NlcnRpb24gcHJpbWl0aXZlcyBvbiB0b3Agb2YgZXhpc3RpbmcNCj4+Pj4+ ICDCoMKgwqBvbmVzLiBQZXJoYXBzIHdlIGNhbiBoYXZlIHRoaXMgYW5kIG1ha2UgYSBnb29kIHVz ZSBvZiBpdCwNCj4+Pj4+ICDCoMKgwqBlc3BlY2lhbGx5IGdpdmVuIHRoYXQgaXQgYnJvdWdodCBz b21lIHByYWN0aWNhbCBiZW5lZml0IGluIEFwcGxlLA0KPj4+Pj4gIMKgwqDCoGJ1dCBJIHdvdWxk IHJhdGhlciBkaXNjdXNzIHRoaXMgbGF0ZXIgb25jZSBjb25zdHJhaW50IGFzc2VydGlvbnMNCj4+ Pj4+ICDCoMKgwqBhcmUgbWVyZ2VkIGludG8gRURLIElJIHRyZWUuDQo+Pj4+PiAgwqDCoMKgQmVz dCB3aXNoZXMsDQo+Pj4+PiAgwqDCoMKgVml0YWx5DQo+Pj4+PiAgwqDCoMKgT24gU2F0LCBGZWIg MTUsIDIwMjAgYXQgMDM6MDIsIEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20NCj4+Pj4+IDxt YWlsdG86YWZpc2hAYXBwbGUuY29tPg0KPj4+Pj4gIMKgwqDCoDxtYWlsdG86YWZpc2hAYXBwbGUu Y29tPj4gd3JvdGU6DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoE9uIEZlYiAxNCwgMjAyMCwgYXQgMjo1MCBQTSwgTWljaGFlbCBEIEtpbm5leQ0KPj4+ Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20NCj4+ Pj4+IDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+Pj4+PiAgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+PiB3cm90ZToN Cj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgSGkgVml0YWx5LA0KPj4+Pj4gIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBJIGFncmVlIHRoYXQgdGhpcyBwcm9wb3NhbCBtYWtlcyBhIGxvdCBvZiBz ZW5zZS4gV2UNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVjZW50bHkgYWRkZWQgYSBu ZXcgYXNzZXJ0IHR5cGUgY2FsbGVkIFNUQVRJQ19BU1NFUlQoKQ0KPj4+Pj4gIMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBmb3IgYXNzZXJ0IGNvbmRpdGlvbnMgdGhhdCBjYW4gYmUgdGVzdGVkIGF0IGJ1 aWxkIHRpbWUuDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEEgbmV3IGFzc2VydCB0eXBl IGZvciBjaGVja3MgdGhhdCBjYW4gYmUgcmVtb3ZlZCBhbmQgdGhlDQo+Pj4+PiAgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoEFQSSBzdGlsbCBndWFyYW50ZWVzIHRoYXQgaXQgZmFpbHMgZ3JhY2VmdWxs eSB3aXRoIGENCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJvcGVyIHJldHVybiBjb2Rl IGlzIGEgZ29vZCBpZGVhLiBHaXZlbiB3ZSBoYXZlDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFNUQVRJQ19BU1NFUlQoKSwgaG93IGFib3V0IG5hbWluZyB0aGUgbmV3IG1hY3JvDQo+Pj4+ PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoENPTlNUUkFJTlRfQVNTRVJUKCk/DQo+Pj4+PiAgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoFdlIGFsc28gd2FudCB0aGUgZGVmYXVsdCB0byBiZSBlbmFibGVk LiBUaGUgY3VycmVudCB1c2Ugb2YNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYml0IDB4 NDAgaW5QY2REZWJ1Z1Byb3BlcnR5TWFzayBpcyBhbHdheXMgY2xlYXIsIHNvIHdlDQo+Pj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHdhbnQgdGhlIGFzc2VydHMgZW5hYmxlZCB3aGVuIDB4NDAg aXMgY2xlYXIuIFdlIGNhbiBjaGFuZ2UNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGhl IG5hbWUgb2YgdGhlIGRlZmluZSBiaXQgdG8NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg REVCVUdfUFJPUEVSVFlfQ09OVFJBSU5UX0FTU0VSVF9ESVNBQkxFRCBzbyBiaXQgMHg0MCBuZWVk cw0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0byBiZSBzZXQgaW5QY2REZWJ1Z1Byb3Bl cnR5TWFza3RvIGRpc2FibGUgdGhlc2UgdHlwZXMgb2YNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgYXNzZXJ0cy4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgVGhpcyBhcHByb2Fj aCBkb2VzIHJlcXVpcmUgYWxsIHRoZURlYnVnTGliaW1wbGVtZW50YXRpb25zDQo+Pj4+PiAgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHRvIGJlIHVwZGF0ZWQgd2l0aCB0aGUgbmV3RGVidWdDb25zdHJh aW50QXNzZXJ0RGlzYWJsZWQoKQ0KPj4+Pj4gQVBJLg0KPj4+Pj4NCj4+Pj4+ICDCoMKgwqDCoMKg wqDCoE1pa2UsDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBJZiB5b3Ugd2FudGVkIHRvIGJlIGJhY2t3 YXJkIGNvbXBhdGlibGUgeW91IGNvdWxkIGp1c3QNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoHVzZcKg RGVidWdBc3NlcnRFbmFibGVkICgpIGJ1dCBpbiBwbGFjZSBvZiBfQVNTRVJUKCkgdXNlDQo+Pj4+ PiAgwqDCoMKgwqDCoMKgwqBfQ09OU1RSQUlOVF9BU1NFUlQNCj4+Pj4+ICDCoMKgwqDCoMKgwqDC oCNkZWZpbmUgX0FTU0VSVChFeHByZXNzaW9uKSDCoERlYnVnQXNzZXJ0IChfX0ZJTEVfXywgX19M SU5FX18sDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqAjRXhwcmVzc2lvbikNCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoCNkZWZpbmXCoF9DT05TVFJBSU5UX0FTU0VSVChFeHByZXNzaW9uKSDCoERlYnVnUHJp bnQNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoChERUJVR19FUlJPUiwgwqAiQVNTRVJUICVhKCVkKTog JWFcbiIsLCBfX0ZJTEVfXywgX19MSU5FX18sDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqAjRXhwcmVz c2lvbikNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoE5vdCBhcyBlbGVnYW50IGFzIHRoZSBub24gYmFj a3dhcmQgY29tcGF0aWJsZSBjaGFuZ2UsIGJ1dCBJDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqB0aG91 Z2h0IEknZCB0aHJvdyBpdCBvdXQgdGhlcmUuDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBUaGVyZSBh cmUgc29tZSBhbmNpZW50IEFwcGxlIEMgQVNTRVJUIG1hY3JvcyBbQXNzZXJ0TWFjcm9zLmhdDQo+ Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoHRoYXQgYWxzbyBoYXZlIHRoZSBjb25jZXB0IG9mIHJlcXVp cmUuIFJlcXVpcmUgaW5jbHVkZXMgYW4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoGV4Y2VwdGlvbiBs YWJlbCAoZ290b8KgbGFiZWwpLiBJdCBpcyBsaWtlIGEgQ09OU1RSQUlOVF9BU1NFUlQoKQ0KPj4+ Pj4gIMKgwqDCoMKgwqDCoMKgYnV0IHdpdGggdGhlIGxhYmVsLiBPbiByZWxlYXNlIGJ1aWxkcyB0 aGUgREVCVUcgcHJpbnRzIGFyZQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgc2tpcHBlZC4NCj4+Pj4+ ICDCoMKgwqDCoMKgwqDCoFNvIHdlIGNvdWxkIGRvIHNvbWV0aGluZyBsaWtlOg0KPj4+Pj4gIMKg wqDCoMKgwqDCoMKgwqAgRUZJX1NUQVRVUyBTdGF0dXMgPSDCoEVGSV9JTlZBTElEX1BBUkFNRVRF UjsNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgIFJFUVVJUkUoQXJnMSAhPSBOVUxMLCBFcnJvckV4 aXQpOw0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAgUkVRVUlSRShBcmcyICE9IE5VTEwsIEVycm9y RXhpdCk7DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoCBSRVFVSVJFKEFyZzMgIT0gTlVMTCwgRXJy b3JFeGl0KTsNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoEVycm9yRXhpdDoNCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgIHJldHVybiBTdGF0dXM7DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBUaGVyZSBpcyBh bm90aGVyIGZvcm0gdGhhdCBhbGxvd3MgYW4gQUNUSU9OIChhIHN0YXRlbWVudCB0bw0KPj4+Pj4g IMKgwqDCoMKgwqDCoMKgZXhlY3V0ZS4gU28geW91IGNvdWxkIGhhdmU6DQo+Pj4+PiAgwqDCoMKg wqDCoMKgwqDCoCBFRklfU1RBVFVTIFN0YXR1czsNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgIFJF UVVJUkVfQUNUSU9OKEFyZzEgIT0gTlVMTCwgRXJyb3JFeGl0LCBTdGF0dXMgPQ0KPj4+Pj4gIMKg wqDCoMKgwqDCoMKgRUZJX0lOVkFMSURfUEFSQU1FVEVSKTsNCj4+Pj4+ICDCoMKgwqDCoMKgwqDC oMKgIFJFUVVJUkVfQUNUSU9OKEFyZzIgIT0gTlVMTCwgRXJyb3JFeGl0LCBTdGF0dXMgPQ0KPj4+ Pj4gIMKgwqDCoMKgwqDCoMKgRUZJX0lOVkFMSURfUEFSQU1FVEVSKTsNCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgIFJFUVVJUkVfQUNUSU9OKEFyZzMgIT0gTlVMTCwgRXJyb3JFeGl0LCBTdGF0dXMg PQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgRUZJX0lOVkFMSURfUEFSQU1FVEVSKTsNCj4+Pj4+ICDC oMKgwqDCoMKgwqDCoEVycm9yRXhpdDoNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBT dGF0dXM7DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBJZiB5b3UgdXNlIENPTlNUUkFJTlRfQVNTRVJU KCk7DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoCBpZiAoQXJnMSA9PSBOVUxMIHx8IEFyZzIgPT0g TlVMTCB8fCBBcmczID09IE5VTEwpIHsNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgIMKgQ09OU1RS QUlOVF9BU1NFUlQgKEFyZzEgIT0gTlVMTCk7DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoCDCoENP TlNUUkFJTlRfQVNTRVJUIChBcmcyICE9IE5VTEwpOw0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAg wqBDT05TVFJBSU5UX0FTU0VSVCAoQXJnMyAhPSBOVUxMKTsNCj4+Pj4+ICDCoMKgwqDCoMKgwqDC oMKgIMKgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4+Pj4+ICDCoMKgwqDCoMKgwqDC oMKgfQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgSSdkIG5vdGUgZXJyb3IgcHJvY2Vzc2luZyBhcmdz IG9uIGVudHJ5IGlzIHRoZSBzaW1wbGVzdCBjYXNlLg0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqBJ biBhIG1vcmUgY29tcGxleCBjYXNlIHdoZW4gY2xlYW51cCBpcyByZXF1aXJlZCB0aGUgZ290bw0K Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgbGFiZWwgaXMgbW9yZSB1c2VmdWwuDQo+Pj4+PiAgwqDCoMKg wqDCoMKgwqBJIGd1ZXNzIHdlIGNvdWxkIGFyZ3VlIGZvciBsZXNzIHR5cGluZyBhbmQgbW9yZSBz eW1tZXRyeSBhbmQNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoHNheSB1c2UgQVNTRVJULCBDT05TVFJB SU5ULCBhbmQgUkVRVUlSRS4gSSBndWVzcyB5b3UgY291bGQgYWRkDQo+Pj4+PiAgwqDCoMKgwqDC oMKgwqBhbiBBU1NFUlRfQUNUSU9OIHRvby4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoFRoZSBBc3Nl cnRNYWNyb3MuaCB2ZXJzaW9ucyBhbHNvIHN1cHBvcnQgX3F1aWV0IChza2lwIHRoZQ0KPj4+Pj4g IMKgwqDCoMKgwqDCoMKgcHJpbnQpIGFuZCBfc3RyaW5nIChhZGQgYSBzdHJpbmcgdG8gdGhlIHBy aW50KSBzbyB5b3UgZW5kIHVwDQo+Pj4+PiB3aXRoOg0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgUkVR VUlSRQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgUkVRVUlSRV9TVFJJTkcNCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoFJFUVVJUkVfUVVJRVQNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoFJFUVVJUkVfQUNUSU9O DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBSRVFVSVJFX0FDVElPTl9TVFJJTkcNCj4+Pj4+ICDCoMKg wqDCoMKgwqDCoFJFUVVJUkVfQUNUSU9OX1FVSUVUDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBXZSBj b3VsZCBhbHNvIGVuZCB1cCB3aXRoDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBDT05TVFJBSU5UDQo+ Pj4+PiAgwqDCoMKgwqDCoMKgwqBDT05TVFJBSU5UX1NUUklORw0KPj4+Pj4gIMKgwqDCoMKgwqDC oMKgQ09OU1RSQUlOVF9RVUlFVA0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgSSB0aGluayB0aGUgbWFp biBpZGVhIGJlaGluZCBfUVVJRVQgaXMgeW91IGNhbiBzaWxlbmNlIHRoaW5ncw0KPj4+Pj4gIMKg wqDCoMKgwqDCoMKgdGhhdCBhcmUgdG9vIG5vaXN5LCBhbmQgeW91IGNhbiBlYXNpbHkgbWFrZSBu b2lzZSB0aGluZ3Mgc2hvdw0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgdXAgYnkgcmVtb3ZpbmcgdGhl IF9RVUlFVCB0byBkZWJ1Zy4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoEknZCB0aG91Z2h0IEkgdGhy b3cgb3V0IHRoZSBvdGhlciBmb3JtcyBmb3IgZm9sa3MgdG8gdGhpbmsNCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoGFib3V0LiBJJ20gcHJvYmFibHkgYmlhc2VkIGFzIEkgdXNlZCB0byBsb29raW5nIGF0 IGNvZGUgYW5kDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBzZWVpbmcgdGhpbmdzIGxpa2UgcmVxdWly ZV9hY3Rpb25fc3RyaW5nKEFyZzEgIT0gTlVMTCwNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoEVycm9y RXhpdCwgU3RhdHVzID0gRUZJX0lOVkFMSURfUEFSQU1FVEVSLCAiMXN0IEFyZzEgY2hlY2siKTsN Cj4+Pj4+ICDCoMKgwqDCoMKgwqDCoFRoYW5rcywNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoEFuZHJl dyBGaXNoDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBQUyBUaGUgb2xkIGRlYnVnIG1hY3JvcyBoYWQg MiB2ZXJzaW9ucyBvZiBDT05TVFJBSU5UIGNoZWNrIGFuZA0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKg dmVyaWZ5LiBUaGUgY2hlY2sgdmVyc2lvbiB3YXMgY29tcGlsZWQgb3V0IG9uIGEgcmVsZWFzZSBi dWlsZCwNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoHRoZSB2ZXJpZnkgdmVyc2lvbiBhbHdheXMgZG9l cyB0aGUgY2hlY2sgYW5kIGp1c3Qgc2tpcHMgdGhlDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqBERUJV RyBwcmludC4NCj4+Pj4+DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoE1pa2UNCj4+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKkZyb206KnZpdDk2OTYgPHZpdDk2OTZAcHJvdG9ubWFp bC5jb20NCj4+Pj4+IDxtYWlsdG86dml0OTY5NkBwcm90b25tYWlsLmNvbT4NCj4+Pj4+ICDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgPG1haWx0bzp2aXQ5Njk2QHByb3Rvbm1haWwuY29tPj4NCj4+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKlNlbnQ6KkZyaWRheSwgRmVicnVhcnkgMTQsIDIwMjAg OTozOCBBTQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqVG86Kktpbm5leSwgTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbQ0KPj4+Pj4gPG1haWx0bzptaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPG1haWx0bzpt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCpDYzoqZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4+Pj4+IDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+PG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz47DQo+Pj4+PiAgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbQ0KPj4+Pj4gPG1haWx0 bzpsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPG1h aWx0bzpsaW1pbmcuZ2FvQGludGVsLmNvbT4+OyBHYW8sIFpoaWNoYW8NCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgPHpoaWNoYW8uZ2FvQGludGVsLmNvbQ0KPj4+Pj4gPG1haWx0bzp6aGlj aGFvLmdhb0BpbnRlbC5jb20+PG1haWx0bzp6aGljaGFvLmdhb0BpbnRlbC5jb20+PjsNCj4+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgTWFydmluIEjDpHVzZXIgPG1hcnZpbi5oYWV1c2VyQG91 dGxvb2suY29tDQo+Pj4+PiA8bWFpbHRvOm1hcnZpbi5oYWV1c2VyQG91dGxvb2suY29tPg0KPj4+ Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA8bWFpbHRvOm1hcnZpbi5oYWV1c2VyQG91dGxvb2su Y29tPj47IExhc3psbyBFcnNlaw0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA8bGVyc2Vr QHJlZGhhdC5jb20NCj4+Pj4+IDxtYWlsdG86bGVyc2VrQHJlZGhhdC5jb20+PG1haWx0bzpsZXJz ZWtAcmVkaGF0LmNvbT4+DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCpTdWJqZWN0OipS ZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MyAwLzFdIEFkZCBQQ0QgdG8NCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZGlzYWJsZSBzYWZlIHN0cmluZyBjb25zdHJhaW50IGFzc2VydGlvbnMN Cj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgTWljaGFlbCwNCj4+Pj4+ICDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgR2VuZXJhbGlzaW5nIHRoZSBhcHByb2FjaCBtYWtlcyBnb29kIHNlbnNlIHRv IG1lLCBidXQgd2UNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbmVlZCB0byBtYWtlIGFu IG9idmlvdXMgZGlzdGluZ3Vpc2hhYmxlIGRpZmZlcmVuY2UgYmV0d2VlbjoNCj4+Pj4+ICDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgLSBwcmVjb25kaXRpb24gYW5kIGludmFyaWFudCBhc3NlcnRpb25z IChpLmUuIGFzc2VydGlvbnMsDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHdoZXJlIGZ1 bmN0aW9uIHdpbGwgTk9UIHdvcmsgaWYgdGhleSBhcmUgdmlvbGF0ZWQpDQo+Pj4+PiAgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoC0gY29uc3RyYWludCBhc3NlcnRzIChpLmUuIGFzc2VydGlvbnMsIHdo aWNoIGFsbG93IHVzIHRvDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNwb3QgdW5pbnRl bnRpb25hbCBiZWhhdmlvdXIgd2hlbiBwYXJzaW5nIHVudHJ1c3RlZCBkYXRhLA0KPj4+Pj4gIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBidXQgd2hpY2ggZG8gbm90IGJyZWFrIGZ1bmN0aW9uIGJlaGF2 aW91cikuDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEFzIHdlIHdhbnQgdG8gdXNlIHRo aXMgb3V0c2lkZSBvZiBTYWZlU3RyaW5nLMKgwqBJIHN1Z2dlc3QNCj4+Pj4+ICDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgdGhlIGZvbGxvd2luZzoNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg LSBJbnRyb2R1Y2UgREVCVUdfUFJPUEVSVFlfQVNTRVJUX0NPTlNUUkFJTlRfRU5BQkxFRCAweDQw DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJpdCBmb3IgUGNkRGVidWdQcm9wZXJ0eU1h c2vCoGluc3RlYWQNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgb2bCoFBjZEFzc2VydE9u U2FmZVN0cmluZ0NvbnN0cmFpbnRzLg0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAtIElu dHJvZHVjZSBEZWJ1Z0Fzc2VydENvbnN0cmFpbnRFbmFibGVkIERlYnVnTGliIGZ1bmN0aW9uDQo+ Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRvIGNoZWNrIGZvcsKgREVCVUdfUFJPUEVSVFlf QVNTRVJUX0NPTlNUUkFJTlRfRU5BQkxFRC4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg LSBJbnRyb2R1Y2UgQVNTRVJUX0NPTlNUUkFJTlQgbWFjcm8sIHRoYXQgd2lsbCBhc3NlcnQgb25s eQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZsKgRGVidWdDb25zdHJhaW50QXNzZXJ0 RW5hYmxlZMKgcmV0dXJucyB0cnVlLg0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAtIENo YW5nZSBTYWZlU3RyaW5nIEFTU0VSVFMNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW7C oFNBRkVfU1RSSU5HX0NPTlNUUkFJTlRfQ0hFQ0sgdG/CoEFTU0VSVF9DT05TVFJBSU5Ucy4NCj4+ Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLSBVc2XCoEFTU0VSVF9DT05TVFJBSU5UwqBpbiBv dGhlciBwbGFjZXMgd2hlcmUgbmVjZXNzYXJ5Lg0KPj4+Pj4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgSSBiZWxpZXZlIHRoaXMgd2F5IGxpbmVzIGJlc3Qgd2l0aCBFREsgSUkgZGVzaWdu LiBJZiB0aGVyZQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhcmUgbm8gb2JqZWN0aW9u cywgSSBjYW4gc3VibWl0IHRoZSBwYXRjaCBpbiB0aGUgYmVnaW5uaW5nDQo+Pj4+PiAgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoG9mIG5leHQgd2Vlay4NCj4+Pj4+DQo+Pj4+PiAgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoEJlc3Qgd2lzaGVzLA0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBWaXRh bHkNCj4+Pj4+DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMTQg0YTQtdCy 0YAuIDIwMjAg0LMuLCDQsiAyMDowMCwgS2lubmV5LCBNaWNoYWVsIEQNCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20NCj4+Pj4+ IDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+Pj4+PiAgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+INC9 0LDQv9C40YHQsNC7KNCwKToNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBW aXRhbHksDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgSSB3YW50IHRvIG1h a2Ugc3VyZSBhIGZlYXR1cmUgUENEIGNhbiBiZSB1c2VkIHRvDQo+Pj4+PiAgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgZGlzYWJsZSBBU1NFUlQoKSBiZWhhdmlvciBpbiBtb3JlIHRoYW4g anVzdCBzYWZlDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RyaW5nIGZ1 bmN0aW9ucyBpbkJhc2VMaWIuDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Q2FuIHdlIGNvbnNpZGVyIGNoYW5naW5nIHRoZSBuYW1lIGFuZCBkZXNjcmlwdGlvbg0KPj4+Pj4g IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG9mUGNkQXNzZXJ0T25TYWZlU3RyaW5nQ29u c3RyYWludHN0byBiZSBtb3JlIGdlbmVyaWMsDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgc28gaWYgd2UgZmluZCBvdGhlciBsaWIgQVBJcywgdGhlIG5hbWUgd2lsbCBtYWtl IHNlbnNlPw0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoE1heWJlIHNvbWV0 aGluZyBsaWtlOlBjZEVuYWJsZUxpYnJhcnlBc3NlcnRDaGVja3M/DQo+Pj4+PiAgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgRGVmYXVsdCBpcyBUUlVFLiBDYW4gc2V0IHRvIEZBTFNFIGlu IERTQyBmaWxlIHRvDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGlzYWJs ZSBBU1NFUlQoKSBjaGVja3MuDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg VGhhbmtzLA0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoE1pa2UNCj4+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqRnJvbToqZGV2ZWxAZWRrMi5ncm91cHMu aW8gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqA8bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjxkZXZlbEBlZGsyLmdy b3Vwcy5pbw0KPj4+Pj4gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4NCj4+Pj4+ICDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA8bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPj4q T24gQmVoYWxmIE9mKlZpdGFseQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oENoZXB0c292IHZpYSBHcm91cHMuSW8NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAqU2VudDoqRnJpZGF5LCBGZWJydWFyeSAxNCwgMjAyMCAzOjU1IEFNDQo+Pj4+PiAgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKlRvOipLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20NCj4+Pj4+IDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPG1haWx0bzptaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4+OyBHYW8sIExpbWluZw0KPj4+Pj4gIMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoDxsaW1pbmcuZ2FvQGludGVsLmNvbQ0KPj4+Pj4gPG1haWx0bzps aW1pbmcuZ2FvQGludGVsLmNvbT48bWFpbHRvOmxpbWluZy5nYW9AaW50ZWwuY29tPj47DQo+Pj4+ PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdh b0BpbnRlbC5jb20NCj4+Pj4+IDxtYWlsdG86emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPj4+Pj4g IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxtYWlsdG86emhpY2hhby5nYW9AaW50ZWwu Y29tPj47ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4+Pj4+IDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPG1haWx0bzpkZXZl bEBlZGsyLmdyb3Vwcy5pbz4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAq Q2M6Kk1hcnZpbiBIw6R1c2VyIDxtYXJ2aW4uaGFldXNlckBvdXRsb29rLmNvbQ0KPj4+Pj4gPG1h aWx0bzptYXJ2aW4uaGFldXNlckBvdXRsb29rLmNvbT4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqA8bWFpbHRvOm1hcnZpbi5oYWV1c2VyQG91dGxvb2suY29tPj47IExhc3ps byBFcnNlaw0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxsZXJzZWtAcmVk aGF0LmNvbQ0KPj4+Pj4gPG1haWx0bzpsZXJzZWtAcmVkaGF0LmNvbT48bWFpbHRvOmxlcnNla0By ZWRoYXQuY29tPj4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqU3ViamVj dDoqUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjMgMC8xXSBBZGQgUENEIHRvDQo+Pj4+PiAgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGlzYWJsZSBzYWZlIHN0cmluZyBjb25zdHJhaW50 IGFzc2VydGlvbnMNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBSZXBseWlu ZyBhcyBwZXIgTGltaW5nJ3MgcmVxdWVzdCBmb3IgdGhpcyB0byBiZSBtZXJnZWQNCj4+Pj4+ICDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnRvIGVkazItc3RhYmxlMjAyMDAyLg0KPj4+ Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoE9uIE1vbiwgRmViIDEwLCAyMDIwIGF0 IDE0OjEyLCB2aXQ5Njk2DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPHZp dDk2OTZAcHJvdG9ubWFpbC5jb20gPG1haWx0bzp2aXQ5Njk2QHByb3Rvbm1haWwuY29tPg0KPj4+ Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxtYWlsdG86dml0OTY5NkBwcm90b25t YWlsLmNvbT4+IHdyb3RlOg0KPj4+Pj4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoEhlbGxvLA0KPj4+Pj4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoEl0IGhhcyBiZWVuIHF1aXRlIHNvbWUgdGltZSBzaW5jZSB3ZSBzdWJt aXR0ZWQgdGhlDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBw YXRjaCB3aXRoIHNvIGZhciBubyBuZWdhdGl2ZSByZXNwb25zZS4gQXMgSQ0KPj4+Pj4gIMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWVudGlvbmVkIHByZXZpb3VzbHksIG15 IHRlYW0gd2lsbCBzdHJvbmdseQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgYmVuZWZpdCBmcm9tIGl0cyBsYW5kaW5nIGluIEVESyBJSSBtYWlubGluZS4gU2lu Y2UNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGl0IGRvZXMg bm90IGFkZCBhbnkgcmVncmVzc2lvbnMgYW5kIGNhbiBiZSB2aWV3ZWQNCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzIGEgZmVhdHVyZSBpbXBsZW1lbnRhdGlv biBmb3IgdGhlIHJlc3Qgb2YgRURLIElJDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqB1c2VycywgSSByZXF1ZXN0IHRoaXMgdG8gYmUgbWVyZ2VkIHVwc3RyZWFt IGluDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlZGsyLXN0 YWJsZTIwMjAwMi4NCj4+Pj4+DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBCZXN0IHdpc2hlcywNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFZpdGFseQ0KPj4+Pj4NCj4+Pj4+PiAyNyDRj9C90LIuIDIwMjAg0LMuLCDQsiAx Mjo0Nywgdml0OTY5Ng0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgPHZpdDk2OTZAcHJvdG9ubWFpbC5jb20NCj4+Pj4+IDxtYWlsdG86dml0OTY5NkBwcm90b25t YWlsLmNvbT4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxt YWlsdG86dml0OTY5NkBwcm90b25tYWlsLmNvbT4+INC90LDQv9C40YHQsNC7KNCwKToNCj4+Pj4+ Pg0KPj4+Pj4+DQo+Pj4+Pj4gSGkgTWlrZSwNCj4+Pj4+Pg0KPj4+Pj4+IEFueSBwcm9ncmVzcyB3 aXRoIHRoaXM/IFdlIHdvdWxkIHJlYWxseSBiZW5lZml0DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmcm9tIHRoaXMgbGFuZGluZyBpbiB0aGUgbmV4dCBzdGFi bGUgcmVsZWFzZS4NCj4+Pj4+Pg0KPj4+Pj4+IEJlc3QsDQo+Pj4+Pj4gVml0YWx5DQo+Pj4+Pj4N Cj4+Pj4+Pj4gOCDRj9C90LIuIDIwMjAg0LMuLCDQsiAxOTozNSwgS2lubmV5LCBNaWNoYWVsIEQN Cj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbQ0KPj4+Pj4gPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxtYWlsdG86 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+PiDQvdCw0L/QuNGB0LDQuyjQsCk6DQo+Pj4+Pj4+ DQo+Pj4+Pj4+DQo+Pj4+Pj4+IEhpIFZpdGFseSwNCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhhbmtzIGZv ciB0aGUgYWRkaXRpb25hbCBiYWNrZ3JvdW5kLiBJIHdvdWxkIGxpa2UNCj4+Pj4+Pj4gYSBjb3Vw bGUgZXh0cmEgZGF5IHRvIHJldmlldyB0aGUgUENEIG5hbWUgYW5kDQo+Pj4+PiAgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0aGUgcGxhY2VzDQo+Pj4+Pj4+IHRoZSBQQ0Qg bWlnaHQgcG90ZW50aWFsbHkgYmUgdXNlZC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gSWYgd2UgZmluZCBv dGhlciBBUElzIHdoZXJlIEFTU0VSVCgpIGJlaGF2aW9yDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpcyBvbmx5DQo+Pj4+Pj4+IHZhbHVhYmxlIGR1cmluZyBk ZXYvZGVidWcgdG8gcXVpY2tseSBpZGVudGlmeQ0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgbWlzdXNlDQo+Pj4+Pj4+IHdpdGggdHJ1c3RlZCBkYXRhIGFuZCB0 aGUgQVBJIHByb3ZpZGVzIHByZWRpY2FibGUNCj4+Pj4+Pj4gcmV0dXJuIGJlaGF2aW9yIHdoZW4g QVNTRVJUKCkgaXMgZGlzYWJsZWQsIHRoZW4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoEkgd291bGQNCj4+Pj4+Pj4gbGlrZSB0byBoYXZlIGEgcGF0dGVybiB3 ZSBjYW4gcG90ZW50aWFsbHkgYXBwbHkNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHRvIGFsbA0KPj4+Pj4+PiB0aGVzZSBBUElzIGFjcm9zcyBhbGwgcGFja2Fn ZXMuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IFRoYW5rcywNCj4+Pj4+Pj4NCj4+Pj4+Pj4gTWlrZQ0KPj4+ Pj4+Pg0KPj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+Pj4+IEZyb206 ZGV2ZWxAZWRrMi5ncm91cHMuaW8gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4NCj4+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxtYWlsdG86ZGV2ZWxAZWRr Mi5ncm91cHMuaW8+PGRldmVsQGVkazIuZ3JvdXBzLmlvIDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+DQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA8bWFp bHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPj4gT24NCj4+Pj4+Pj4+IEJlaGFsZiBPZiBWaXRhbHkg Q2hlcHRzb3YgdmlhIEdyb3Vwcy5Jbw0KPj4+Pj4+Pj4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDYs IDIwMjAgMTA6NDQgQU0NCj4+Pj4+Pj4+IFRvOiBLaW5uZXksIE1pY2hhZWwgRA0KPj4+Pj4gIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tDQo+Pj4+PiA8bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPj4+Pj4g IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPG1haWx0bzptaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4+DQo+Pj4+Pj4+PiBDYzpkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8bWFp bHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPg0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4NCj4+Pj4+Pj4+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYzIDAvMV0gQWRkDQo+Pj4+PiAgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQQ0QgdG8NCj4+Pj4+Pj4+IGRpc2FibGUg c2FmZSBzdHJpbmcgY29uc3RyYWludCBhc3NlcnRpb25zDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gSGkg TWlrZSwNCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBZZXMsIHRoZSBwcmltYXJ5IHVzZSBjYXNlIGlzIGZv ciBVRUZJDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBBcHBs aWNhdGlvbnMuIFdlDQo+Pj4+Pj4+PiBkbyBub3Qgd2FudCB0byBkaXNhYmxlIEFTU0VSVOKAmXMg Y29tcGxldGVseSwgYXMNCj4+Pj4+Pj4+IGFzc2VydGlvbnMgdGhhdCBtYWtlIHNlbnNlLCBpLmUu IHRoZSBvbmVzDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBz aWduYWxpc2luZw0KPj4+Pj4+Pj4gYWJvdXQgaW50ZXJmYWNlIG1pc3VzZSwgYXJlIGhlbHBmdWwg Zm9yIGRlYnVnZ2luZy4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBJIGhhdmUgYWxyZWFkeSBleHBsYWlu ZWQgaW4gdGhlIEJaIHRoYXQNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGJhc2ljYWxseSBhbGwNCj4+Pj4+Pj4+IHNhZmUgc3RyaW5nIGNvbnN0cmFpbnQgYXNz ZXJ0aW9ucyBtYWtlIG5vDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBzZW5zZSBmb3INCj4+Pj4+Pj4+IGhhbmRsaW5nIHVudHJ1c3RlZCBkYXRhLiBXZSBmaW5k IHRoaXMgdXNlIGNhc2UNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHZlcnkNCj4+Pj4+Pj4+IGxvZ2ljYWwsIGFzIHRoZXNlIGZ1bmN0aW9ucyBiZWhhdmUgcHJv cGVybHkgd2l0aA0KPj4+Pj4+Pj4gYXNzZXJ0aW9ucyBkaXNhYmxlZCBhbmQgY292ZXIgYWxsIHRo ZXNlIGVycm9yDQo+Pj4+Pj4+PiBjb25kaXRpb25zIGJ5IHRoZSByZXR1cm4gc3RhdHVzZXMuIElu IHN1Y2gNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNpdHVh dGlvbiBpcw0KPj4+Pj4+Pj4gbm90IHVzZWZ1bCBmb3IgdGhlc2UgZnVuY3Rpb25zIHRvIGFzc2Vy dCwgYXMNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHdlIGVu ZCB1cA0KPj4+Pj4+Pj4gaW5lZmZpY2llbnRseSByZWltcGxlbWVudGluZyB0aGUgbG9naWMuIEkN Cj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHdvdWxkIGhhdmUN Cj4+Pj4+Pj4+IGxpa2VkIHRoZSBhcHByb2FjaCBvZiBkaXNjdXNzaW5nIHRoZSBpbnRlcmZhY2Vz DQo+Pj4+Pj4+PiBpbmRpdmlkdWFsbHksIGJ1dCBJIHN0cnVnZ2xlIHRvIGZpbmQgYW55IHRoYXQN Cj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1ha2VzDQo+Pj4+ Pj4+PiBzZW5zZSBmcm9tIHRoaXMgcG9pbnQgb2Ygdmlldy4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBB c2NpaVN0clRvR3VpZCB3aWxsIEFTU0VSVCB3aGVuIHRoZSBsZW5ndGggb2YgdGhlDQo+Pj4+Pj4+ PiBwYXNzZWQgc3RyaW5nIGlzIG9kZC4gRnVuY3Rpb25zIHRoYXQgY2Fubm90LCBhaGVtLA0KPj4+ Pj4+Pj4gcGFyc2UsIGZvciB1cyBhcmUgcHJldHR5IG11Y2ggdXNlbGVzcy4NCj4+Pj4+Pj4+IEFz Y2lpU3RyQ2F0UyB3aWxsIEFTU0VSVCB3aGVuIHRoZSBhcHBlbmRlZA0KPj4+Pj4gIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RyaW5nIGRvZXMNCj4+Pj4+Pj4+IG5vdCBm aXQgdGhlIGJ1ZmZlci4gRm9yIHVzIHRoaXMgbG9naWMgbWFrZXMgdGhpcw0KPj4+Pj4+Pj4gZnVu Y3Rpb24gcHJldHR5IG11Y2ggZXF1aXZhbGVudCB0byBkZXByZWNhdGVkDQo+Pj4+PiAgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhbmQgdGh1cw0KPj4+Pj4+Pj4gdW5hdmFp bGFibGUgQXNjaWlTdHJDYXQsIGV4Y2VwdCBpdCBpcyBhbHNvIHNsb3dlci4NCj4+Pj4+Pj4+DQo+ Pj4+Pj4+PiBNeSBvcmlnaW5hbCBzdWdnZXN0aW9uIHdhcyB0byByZW1vdmUgdGhlDQo+Pj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhc3NlcnRpb25zDQo+Pj4+Pj4+ PiBlbnRpcmVseSwgYnV0IHNldmVyYWwgcGVvcGxlIGhlcmUgc2FpZCB0aGF0DQo+Pj4+PiAgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0aGV5IHVzZQ0KPj4+Pj4+Pj4gdGhl bSB0byB2ZXJpZnkgdXNhZ2UgZXJyb3JzIHdoZW4gaGFuZGxpbmcNCj4+Pj4+ICDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRydXN0ZWQgZGF0YS4NCj4+Pj4+Pj4+IFRoaXMg bWFrZXMgZ29vZCBzZW5zZSB0byBtZSwgc28gd2Ugc3VnZ2VzdCB0bw0KPj4+Pj4gIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3VwcG9ydA0KPj4+Pj4+Pj4gYm90aCBjYXNl cyBieSBpbnRyb2R1Y2luZyBhIFBDRCBpbiB0aGlzIHBhdGNoLg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+ IEJlc3Qgd2lzaGVzLA0KPj4+Pj4+Pj4gVml0YWx5DQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IDYg0Y/Q vdCyLiAyMDIwINCzLiwg0LIgMjE6MjgsIEtpbm5leSwgTWljaGFlbCBEDQo+Pj4+Pj4+PiA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20gPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxtYWlsdG86 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+PiDQvdCw0L/QuNGB0LDQuyjQsCk6DQo+Pj4+Pj4+ Pj4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IEhpIFZpdGFseSwNCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+ IElzIHRoZSB1c2UgY2FzZSBmb3IgVUVGSSBBcHBsaWNhdGlvbnM/DQo+Pj4+Pj4+Pj4NCj4+Pj4+ Pj4+PiBUaGVyZSBpcyBhIGRpZmZlcmVudCBtZWNoYW5pc20gdG8gZGlzYWJsZSBhbGwNCj4+Pj4+ Pj4+IEFTU0VSVCgpDQo+Pj4+Pj4+Pj4gc3RhdGVtZW50cyB3aXRoaW4gYSBVRUZJIEFwcGxpY2F0 aW9uLg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gSWYgYSBjb21wb25lbnQgaXMgY29uc3VtaW5nIGRh dGEgZnJvbSBhbg0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg dW50cnVzdGVkDQo+Pj4+Pj4+PiBzb3VyY2UsDQo+Pj4+Pj4+Pj4gdGhlbiB0aGF0IGNvbXBvbmVu dCBpcyByZXF1aXJlZCB0byB2ZXJpZnkgdGhlDQo+Pj4+Pj4+PiB1bnRydXN0ZWQNCj4+Pj4+Pj4+ PiBkYXRhIGJlZm9yZSBwYXNzaW5nIGl0IHRvIGEgZnVuY3Rpb24gdGhhdCBjbGVhcmx5DQo+Pj4+ Pj4+PiBkb2N1bWVudHMNCj4+Pj4+Pj4+PiBpcyBpbnB1dCByZXF1aXJlbWVudHMuIElmIHRoaXMg YXBwcm9hY2ggaXMNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGZvbGxvd2VkLA0KPj4+Pj4+Pj4gdGhlbg0KPj4+Pj4+Pj4+IHRoZSBCYXNlTGliIGZ1bmN0aW9u cyBjYW4gYmUgdXNlZCAiYXMgaXMiIGFzDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBsb25nIGFzDQo+Pj4+Pj4+PiB0aGUNCj4+Pj4+Pj4+PiBBU1NFUlQoKSBj b25kaXRpb25zIGFyZSB2ZXJpZmllZCBiZWZvcmUgY2FsbGluZy4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+ Pj4+IElmIHRoZXJlIGFyZSBzb21lIEFQSXMgdGhhdCBjdXJyZW50bHkNCj4+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRvY3VtZW50IHRoZWlyDQo+Pj4+Pj4+PiBB U1NFUlQoKQ0KPj4+Pj4+Pj4+IGJlaGF2aW9yIGFuZCB3ZSB0aGluayB0aGF0IEFTU0VSVCgpIGJl aGF2aW9yIGlzDQo+Pj4+Pj4+PiBpbmNvcnJlY3QgYW5kDQo+Pj4+Pj4+Pj4gc2hvdWxkIGJlIGhh bmRsZWQgYnkgYW4gZXhpc3RpbmcgZXJyb3IgcmV0dXJuDQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB2YWx1ZSwNCj4+Pj4+Pj4+IHRoZW4gd2UNCj4+Pj4+Pj4+ PiBzaG91bGQgZGlzY3VzcyBlYWNoIG9mIHRob3NlIEFQSXMgaW5kaXZpZHVhbGx5Lg0KPj4+Pj4+ Pj4+DQo+Pj4+Pj4+Pj4gTWlrZQ0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+Pj4+Pj4gRnJvbTpkZXZlbEBlZGsyLmdyb3Vw cy5pbyA8bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPg0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz48ZGV2 ZWxAZWRrMi5ncm91cHMuaW8gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4NCj4+Pj4+ICDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxtYWlsdG86ZGV2ZWxAZWRrMi5n cm91cHMuaW8+PiBPbg0KPj4+Pj4+Pj4+PiBCZWhhbGYgT2YgVml0YWx5IENoZXB0c292IHZpYSBH cm91cHMuSW8NCj4+Pj4+Pj4+Pj4gU2VudDogRnJpZGF5LCBKYW51YXJ5IDMsIDIwMjAgOToxMyBB TQ0KPj4+Pj4+Pj4+PiBUbzpkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8bWFpbHRvOmRldmVsQGVkazIu Z3JvdXBzLmlvPg0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg PG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4NCj4+Pj4+Pj4+Pj4gU3ViamVjdDogW2VkazIt ZGV2ZWxdIFtQQVRDSCB2MyAwLzFdIEFkZCBQQ0QgdG8NCj4+Pj4+Pj4+IGRpc2FibGUNCj4+Pj4+ Pj4+Pj4gc2FmZSBzdHJpbmcgY29uc3RyYWludCBhc3NlcnRpb25zDQo+Pj4+Pj4+Pj4+DQo+Pj4+ Pj4+Pj4+IFJFRjoNCj4+Pj4+Pj4+Pj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3No b3dfYnVnLmNnaT9pZD0yMDU0DQo+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+IFJlcXVlc3RpbmcgZm9y IG1lcmdlIGluIGVkazItc3RhYmxlMjAyMDAyLg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBDaGFu Z2VzIHNpbmNlIFYxOg0KPj4+Pj4+Pj4+PiAtIEVuYWJsZSBhc3NlcnRpb25zIGJ5IGRlZmF1bHQg dG8gcHJlc2VydmUgdGhlDQo+Pj4+Pj4+PiBvcmlnaW5hbA0KPj4+Pj4+Pj4+PiBiZWhhdmlvdXIN Cj4+Pj4+Pj4+Pj4gLSBGaXggYnVnemlsbGEgcmVmZXJlbmNlIGxpbmsNCj4+Pj4+Pj4+Pj4gLSBV cGRhdGUgZG9jdW1lbnRhdGlvbiBpbiBCYXNlTGliLmgNCj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4g Vml0YWx5IENoZXB0c292ICgxKToNCj4+Pj4+Pj4+Pj4gTWRlUGtnOiBBZGQgUENEIHRvIGRpc2Fi bGUgc2FmZSBzdHJpbmcNCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGNvbnN0cmFpbnQNCj4+Pj4+Pj4+Pj4gYXNzZXJ0aW9ucw0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+ Pj4+PiBNZGVQa2cvTWRlUGtnLmRlYyB8IDYgKysNCj4+Pj4+Pj4+Pj4gTWRlUGtnL0xpYnJhcnkv QmFzZUxpYi9CYXNlTGliLmluZiB8IDExICstLQ0KPj4+Pj4+Pj4+PiBNZGVQa2cvSW5jbHVkZS9M aWJyYXJ5L0Jhc2VMaWIuaCB8IDc0DQo+Pj4+Pj4+Pj4+ICsrKysrKysrKysrKystLS0tLS0tDQo+ Pj4+Pj4+Pj4+IE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvU2FmZVN0cmluZy5jIHwgNCArLQ0KPj4+ Pj4+Pj4+PiBNZGVQa2cvTWRlUGtnLnVuaSB8IDYgKysNCj4+Pj4+Pj4+Pj4gNSBmaWxlcyBjaGFu Z2VkLCA3MSBpbnNlcnRpb25zKCspLCAzMA0KPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZGVsZXRpb25zKC0pDQo+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+IC0tDQo+ Pj4+Pj4+Pj4+IDIuMjEuMCAoQXBwbGUgR2l0LTEyMi4yKQ0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+ Pg0KPj4+Pj4+Pj4+PiAtPS09LT0tPS09LT0NCj4+Pj4+Pj4+Pj4gR3JvdXBzLmlvIDxodHRwOi8v Z3JvdXBzLmlvLz48aHR0cDovL2dyb3Vwcy5pby8+TGlua3M6IFlvdQ0KPj4+Pj4gIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2VudCB0 bw0KPj4+Pj4+Pj4gdGhpcw0KPj4+Pj4+Pj4+PiBncm91cC4NCj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+ Pj4gVmlldy9SZXBseSBPbmxpbmUgKCM1MjgzNyk6DQo+Pj4+Pj4+Pj4+IGh0dHBzOi8vZWRrMi5n cm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzUyODM3DQo+Pj4+Pj4+Pj4+IE11dGUgVGhpcyBUb3Bp YzoNCj4+Pj4+Pj4+IGh0dHBzOi8vZ3JvdXBzLmlvL210LzY5NDAxOTQ4LzE2NDM0OTYNCj4+Pj4+ Pj4+Pj4gR3JvdXAgT3duZXI6ZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8NCj4+Pj4+Pj4+Pj4g PG1haWx0bzpkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbz4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDxtYWlsdG86ZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMu aW8+DQo+Pj4+Pj4+Pj4+IFVuc3Vic2NyaWJlOmh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZl bC91bnN1Yg0KPj4+Pj4+Pj4+PiBbbWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20gPG1haWx0bzpt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+XQ0KPj4+ Pj4+Pj4+PiAtPS09LT0tPS09LT0NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+DQo+Pj4+ Pj4+Pg0KPj4+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+DQo+Pj4gDQo+Pg0K