From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2722CA0561; Tue, 21 Apr 2020 08:23:29 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0490B1D6E0; Tue, 21 Apr 2020 08:23:29 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70045.outbound.protection.outlook.com [40.107.7.45]) by dpdk.org (Postfix) with ESMTP id 3B7B51D5D7 for ; Tue, 21 Apr 2020 08:23:27 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GuFUAl/446V6BSZeOQKM19ubWR28lJhffgWpbJhRNLxkw6iwvivjCMQyJ0h3oEUPetwSm6epFnbLoexsc8O2PQGQaV5wwGgdhcKsqSAirgKPg+UW0jlOOF3fIawfaXuw6NVYHXHCp2NX1oRYqQNWUTaWyAcC2uS1fulzcCCpkPiPjEVXHZSHeCq0S4D222WW0GIjWISbMv+owKV0sAiQKhAADhLD13YKdqAHenhFmaR+NDerIsLoW3p/M0TyKuVjB5t+4tecU7T4ZKKFSYudzaKLnZ6WCckQgN2U1e/fFMgzquooxtaUo0YBo9KvdC2IkKFhgW3edBRJp9SpTrkYQg== 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=1Cqumd9OWX8DZtnzl4o9dn4L0UuNdXik8Ti1N5vTBfs=; b=Ey6d8tmBYl0HqzXGWmyb4sp1C4CP68YQtrlPnCEfvvq6cXe83oBJxV9gSAP8DQt03l0apyoA41D0fKrnIPuH2dFUfbMBjI7qMw11XMFuuZS97+F4NGM9aT8qgoAuYHFlDFhCyzx1AT/yxlNeGBj0QUqrGrePqLoRpSA2ieNvHyuMuRePrUyaNmtSgdTZboXlpf+pmRKa8aMOM5kzhM3xto9QeIePb3oGJXyfKbrGXsRed+NFlfbjtNY9M/geFCtso0I26F21l5pUIZNoBv7CP8SOg1wbXmeFi5YY4KGNJ5daKLw6+yXIjLIabC8l6kL8Nx85BzBnc7+J9Q6Jq1T0zA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1Cqumd9OWX8DZtnzl4o9dn4L0UuNdXik8Ti1N5vTBfs=; b=p6eVR1xBw+nJJRxh4Ej5BibDZNfJaiFpgKxtudrxUQ1k2QD6LQg3Z5qwF7UDCchWqd5ONwboebOppHJrXwFYISzZQhUhesncU1SsI9c9bxl+kVDYVKA+NJ9xqswTV718FKGf5PlUM/pJiHknRGuTVdd8zfcCnR4yuYCOQDsv2rE= Received: from AM0PR05MB4209.eurprd05.prod.outlook.com (2603:10a6:208:61::22) by AM0PR05MB6817.eurprd05.prod.outlook.com (2603:10a6:20b:153::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.29; Tue, 21 Apr 2020 06:23:26 +0000 Received: from AM0PR05MB4209.eurprd05.prod.outlook.com ([fe80::51b:725c:50b2:2a88]) by AM0PR05MB4209.eurprd05.prod.outlook.com ([fe80::51b:725c:50b2:2a88%5]) with mapi id 15.20.2921.030; Tue, 21 Apr 2020 06:23:26 +0000 From: Ophir Munk To: Dmitry Kozlyuk , "dev@dpdk.org" CC: "Dmitry Malloy (MESHCHANINOV)" , Narcisa Ana Maria Vasile , Fady Bader , Tal Shnaiderman , Ranjit Menon , Thomas Monjalon Thread-Topic: [dpdk-dev] [PATCH v3 1/1] virt2phys: virtual to physical address translator for Windows Thread-Index: AQHWEpUrKt3dC6GjnUuMJ82aRGKLBqiDIn3g Date: Tue, 21 Apr 2020 06:23:25 +0000 Message-ID: References: <20200410164342.1194634-1-dmitry.kozliuk@gmail.com> <20200414194426.1640704-1-dmitry.kozliuk@gmail.com> <20200414194426.1640704-2-dmitry.kozliuk@gmail.com> In-Reply-To: <20200414194426.1640704-2-dmitry.kozliuk@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=ophirmu@mellanox.com; x-originating-ip: [84.229.97.42] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 69dec40b-76e8-4a53-63cf-08d7e5bc8004 x-ms-traffictypediagnostic: AM0PR05MB6817:|AM0PR05MB6817: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 038002787A x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4209.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(376002)(346002)(366004)(136003)(39860400002)(396003)(2906002)(9686003)(66476007)(33656002)(5660300002)(66946007)(76116006)(19627235002)(186003)(66556008)(66446008)(64756008)(52536014)(55016002)(30864003)(4326008)(86362001)(83080400001)(53546011)(6506007)(7696005)(71200400001)(26005)(8936002)(316002)(81156014)(54906003)(478600001)(110136005)(45080400002)(559001)(579004)(134885004); DIR:OUT; SFP:1101; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dPWG9lED33g8cgPOFhCORcuHPy8uTBAIpFxsWJ8r/gpwozuJS5ZKrbrA90++SrkmPU+EOBei4fJT+LwLRcdyENmYkQZE87DrBPLdNjHztgQnuuwGZOUBxzcIMPsd3lNfOjSPWC7FywQ+bYWvquZxtspBc86ZlzDs2AKEeojeOK5EGpEQFScDe6WcQGfkrOhljoB+Xjs2SiiEeNXVwhNDJR5DKm5efNz6xjT/VB7cVyNtyVcYttA5dakD7HoSgYTI+DvTarvx+7+idm5tC/xlFsV5jgljLpKetxDczWBqaHII+yqgMuucED9gD13HQskh8hYAMQiH3sfooXzi2DsAjmvjdC5HALRHueLNzXVEAeR2tIpgX4oiAQKsTpk/VE96s/drIOsFMZnnkQ9NY4bOQuAezARQtrxDHxzsVxdQNBSbnz91vBWz2P4os5AJikiNU36zdY1z7EfNrOiWWMHDwaj3b6t84/uJbQK/mHJuX+HlzDRT969bhRns5UwUQJveOdRb9HMXFkamMs4I3AqtQrfaYrzo70yjkL9djEwF6epVj7dO9xe2oLLHhO26OyR6 x-ms-exchange-antispam-messagedata: ca6EMHEdEaCKUKq15H3XBPURwj19cWq4+hzPcbo/VKncRdYZqu/1VrxnDlXW0oXCh2zgfzkJknGqL/5gsihlQzdolKnoJvfoodC/XCPt6WmRnqN6aSTBKlwATb096e13aWkzUAlpBROIqpxwCEoENg== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69dec40b-76e8-4a53-63cf-08d7e5bc8004 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Apr 2020 06:23:25.9169 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: iHh5n+1Pv7KHXLtZg0mwLuszx1pMdKdMK5MPY/pdz6+iZGCzN9Rj55YIAfl2t5FCyQ9xePT9CIT6fta0McKalA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB6817 Subject: Re: [dpdk-dev] [PATCH v3 1/1] virt2phys: virtual to physical address translator for Windows X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgRG1pdHJ5LA0KV2hlbiB0cnlpbmcgdG8gdGVzdCB0aGUgc2VyaWVzIHVuZGVyIExpbnV4IChS ZWRIYXQgNy40LCB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYykgSSBnZXQgY29tcGlsYXRpb24g ZXJyb3JzLiBJIGFtIHVzaW5nIG1ha2UuDQpJdCBzZWVtcyB0aGF0IHRoZXJlIGFyZSBjYWxscyBm cm9tIGNvbW1vbiB3aGljaCBhcmUgbm90IGNvbXBpbGVkIHVuZGVyIGxpbnV4Lg0KDQp4ODZfNjQt bmF0aXZlLWxpbnV4YXBwLWdjYy9saWIvbGlicnRlX2VhbC5hKGVhbF9jb21tb25fbWVtb3J5Lm8p OiBJbiBmdW5jdGlvbiBgZWFsX2dldF92aXJ0dWFsX2FyZWEnOg0KZWFsX2NvbW1vbl9tZW1vcnku YzooLnRleHQrMHgyN2UpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBlYWxfbWVtX3Jlc2VydmUn DQoNCltkcGRrLWJyYW5jaGVzXSQgIGZpbmQgbGliIC1uYW1lICcqLmMnIHwgeGFyZ3MgZ3JlcCBl YWxfbWVtX3Jlc2VydmUNCmxpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX21lbW9yeS5j OiAgICAgICAgICAgICAgbWFwcGVkX2FkZHIgPSBlYWxfbWVtX3Jlc2VydmUoDQpsaWIvbGlicnRl X2VhbC93aW5kb3dzL2VhbF9tZW1vcnkuYzplYWxfbWVtX3Jlc2VydmUodm9pZCAqcmVxdWVzdGVk X2FkZHIsIHNpemVfdCBzaXplLA0KbGliL2xpYnJ0ZV9lYWwvdW5peC9lYWxfbWVtb3J5LmM6ZWFs X21lbV9yZXNlcnZlKHZvaWQgKnJlcXVlc3RlZF9hZGRyLCBzaXplX3Qgc2l6ZSwNCg0KRG9lcyBp dCBzdWNjZWVkIGZvciB5b3U/DQpJZiBub3QgLSBjYW4geW91IHBsZWFzZSByZXNlbmQgdGhlIHNl cmllcyBzdWNoIHRoYXQgaXQgY29tcGlsZXMgdW5kZXIgTGludXggd2l0aCBNYWtlZmlsZT8NCg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXYgPGRldi1ib3VuY2VzQGRw ZGsub3JnPiBPbiBCZWhhbGYgT2YgRG1pdHJ5IEtvemx5dWsNCj4gU2VudDogVHVlc2RheSwgQXBy aWwgMTQsIDIwMjAgMTA6NDQgUE0NCj4gVG86IGRldkBkcGRrLm9yZw0KPiBDYzogRG1pdHJ5IE1h bGxveSAoTUVTSENIQU5JTk9WKSA8ZG1pdHJ5bUBtaWNyb3NvZnQuY29tPjsgTmFyY2lzYQ0KPiBB bmEgTWFyaWEgVmFzaWxlIDxOYXJjaXNhLlZhc2lsZUBtaWNyb3NvZnQuY29tPjsgRmFkeSBCYWRl cg0KPiA8ZmFkeUBtZWxsYW5veC5jb20+OyBUYWwgU2huYWlkZXJtYW4gPHRhbHNobkBtZWxsYW5v eC5jb20+OyBEbWl0cnkNCj4gS296bHl1ayA8ZG1pdHJ5LmtvemxpdWtAZ21haWwuY29tPjsgUmFu aml0IE1lbm9uDQo+IDxyYW5qaXQubWVub25AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZHBkay1k ZXZdIFtQQVRDSCB2MyAxLzFdIHZpcnQycGh5czogdmlydHVhbCB0byBwaHlzaWNhbCBhZGRyZXNz DQo+IHRyYW5zbGF0b3IgZm9yIFdpbmRvd3MNCj4gDQo+IFRoaXMgZHJpdmVyIHN1cHBvcnRzIFdp bmRvd3MgRUFMIG1lbW9yeSBtYW5hZ2VtZW50IGJ5IHRyYW5zbGF0aW5nDQo+IGN1cnJlbnQgcHJv Y2VzcyB2aXJ0dWFsIGFkZHJlc3NlcyB0byBwaHlzaWNhbCBhZGRyZXNzZXMgKElPVkEpLg0KPiBT dGFuZGFsb25lIHZpcnQycGh5cyBhbGxvd3MgdXNpbmcgRFBESyB3aXRob3V0IFBNRCBhbmQgcHJv dmlkZXMgYQ0KPiByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24uDQo+IA0KPiBTdWdnZXN0ZWQtYnk6 IFJhbmppdCBNZW5vbiA8cmFuaml0Lm1lbm9uQGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTog RG1pdHJ5IEtvemx5dWsgPGRtaXRyeS5rb3psaXVrQGdtYWlsLmNvbT4NCj4gLS0tDQo+ICB3aW5k b3dzL1JFQURNRS5yc3QgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAzICsrKysrKysrKw0K PiAgd2luZG93cy92aXJ0MnBoeXMvdmlydDJwaHlzLmMgICAgICAgICAgICAgICB8IDEyOSArKysr KysrKysrKw0KPiAgd2luZG93cy92aXJ0MnBoeXMvdmlydDJwaHlzLmggICAgICAgICAgICAgICB8 ICAzNCArKysNCj4gIHdpbmRvd3MvdmlydDJwaHlzL3ZpcnQycGh5cy5pbmYgICAgICAgICAgICAg fCAgNjQgKysrKysrDQo+ICB3aW5kb3dzL3ZpcnQycGh5cy92aXJ0MnBoeXMuc2xuICAgICAgICAg ICAgIHwgIDI3ICsrKw0KPiAgd2luZG93cy92aXJ0MnBoeXMvdmlydDJwaHlzLnZjeHByb2ogICAg ICAgICB8IDIyOCArKysrKysrKysrKysrKysrKysrKw0KPiAgd2luZG93cy92aXJ0MnBoeXMvdmly dDJwaHlzLnZjeHByb2ouZmlsdGVycyB8ICAzNiArKysrDQo+ICA3IGZpbGVzIGNoYW5nZWQsIDYy MSBpbnNlcnRpb25zKCspDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgd2luZG93cy9SRUFETUUucnN0 DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgd2luZG93cy92aXJ0MnBoeXMvdmlydDJwaHlzLmMgIGNy ZWF0ZSBtb2RlIDEwMDY0NA0KPiB3aW5kb3dzL3ZpcnQycGh5cy92aXJ0MnBoeXMuaCAgY3JlYXRl IG1vZGUgMTAwNjQ0DQo+IHdpbmRvd3MvdmlydDJwaHlzL3ZpcnQycGh5cy5pbmYgIGNyZWF0ZSBt b2RlIDEwMDY0NA0KPiB3aW5kb3dzL3ZpcnQycGh5cy92aXJ0MnBoeXMuc2xuICBjcmVhdGUgbW9k ZSAxMDA2NDQNCj4gd2luZG93cy92aXJ0MnBoeXMvdmlydDJwaHlzLnZjeHByb2oNCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCB3aW5kb3dzL3ZpcnQycGh5cy92aXJ0MnBoeXMudmN4cHJvai5maWx0ZXJz DQo+IA0KPiBkaWZmIC0tZ2l0IGEvd2luZG93cy9SRUFETUUucnN0IGIvd2luZG93cy9SRUFETUUu cnN0IG5ldyBmaWxlIG1vZGUNCj4gMTAwNjQ0IGluZGV4IDAwMDAwMDAuLjQ1YTFkODANCj4gLS0t IC9kZXYvbnVsbA0KPiArKysgYi93aW5kb3dzL1JFQURNRS5yc3QNCj4gQEAgLTAsMCArMSwxMDMg QEANCj4gK0RldmVsb3BpbmcgV2luZG93cyBEcml2ZXJzDQo+ICs9PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KPiArDQo+ICtQcmVyZXF1aXNpdGVzDQo+ICstLS0tLS0tLS0tLS0tDQo+ICsNCj4g K0J1aWxkaW5nIFdpbmRvd3MgRHJpdmVycyBpcyBvbmx5IHBvc3NpYmxlIG9uIFdpbmRvd3MuDQo+ ICsNCj4gKzEuIFZpc3VhbCBTdHVkaW8gMjAxOSBDb21tdW5pdHkgb3IgUHJvZmVzc2lvbmFsIEVk aXRpb24gMi4gV2luZG93cw0KPiArRHJpdmVyIEtpdCAoV0RLKSBmb3IgV2luZG93cyAxMCwgdmVy c2lvbiAxOTAzDQo+ICsNCj4gK0ZvbGxvdyB0aGUgb2ZmaWNpYWwgaW5zdHJ1Y3Rpb25zIHRvIG9i dGFpbiBhbGwgb2YgdGhlIGFib3ZlOg0KPiAraHR0cHM6Ly9ldXIwMy5zYWZlbGlua3MucHJvdGVj dGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZG9jcw0KPiAuDQo+ICttaWNyb3Nv ZnQuY29tJTJGZW4tdXMlMkZ3aW5kb3dzLWhhcmR3YXJlJTJGZHJpdmVycyUyRmRvd25sb2FkLQ0K PiB0aGUtd2RrJmENCj4gK21wO2RhdGE9MDIlN0MwMSU3Q29waGlybXUlNDBtZWxsYW5veC5jb20l N0M4NmRhNDMxZjJiOTA0ZGNhMw0KPiBkODIwOGQ3ZTBhYw0KPiArNGNkMCU3Q2E2NTI5NzFjN2Qy ZTRkOWJhNmE0ZDE0OTI1NmY0NjFiJTdDMCU3QzAlN0M2MzcyMjQ5MDINCj4gOTM5NjgwNDc5JmFt DQo+ICtwO3NkYXRhPVJTWlhtbyUyRmV3T3BsOVZDQ2c0QklnWVVGdnByZVp6cVgxWCUyQmNsOXZO UmpVJTNEJmENCj4gbXA7cmVzZXJ2ZWQNCj4gKz0wDQo+ICsNCj4gKw0KPiArQnVpbGQgdGhlIERy aXZlcnMNCj4gKy0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK0J1aWxkIGZyb20gVmlzdWFsIFN0 dWRpbw0KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK09wZW4gYSBzb2x1dGlv biAoYGAqLnNsbmBgKSB3aXRoIFZpc3VhbCBTdHVkaW8gYW5kIGJ1aWxkIGl0IChDdHJsK1NoaWZ0 K0IpLg0KPiArDQo+ICsNCj4gK0J1aWxkIGZyb20gQ29tbWFuZC1MaW5lDQo+ICt+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fg0KPiArDQo+ICtSdW4gKkRldmVsb3BlciBDb21tYW5kIFByb21wdCBmb3Ig VlMgMjAxOSogZnJvbSB0aGUgU3RhcnQgbWVudS4NCj4gKw0KPiArTmF2aWdhdGUgdG8gdGhlIHNv bHV0aW9uIGRpcmVjdG9yeSAod2l0aCBgYCouc2xuYGApLCB0aGVuIHJ1bjoNCj4gKw0KPiArLi4g Y29kZS1ibG9jazo6IGNvbnNvbGUNCj4gKw0KPiArICAgIG1zYnVpbGQNCj4gKw0KPiArVG8gYnVp bGQgYSBwYXJ0aWN1bGFyIGNvbWJpbmF0aW9uIG9mIGNvbmZpZ3VyYXRpb24gYW5kIHBsYXRmb3Jt Og0KPiArDQo+ICsuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0KPiArDQo+ICsgICAgbXNidWlsZCAt cDpDb25maWd1cmF0aW9uPURlYnVnO1BsYXRmb3JtPXg2NA0KPiArDQo+ICsNCj4gK0luc3RhbGwg dGhlIERyaXZlcnMNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArRGlzYWJsZSBEcml2 ZXIgU2lnbmF0dXJlIEVuZm9yY2VtZW50DQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4NCj4gKw0KPiArQnkgZGVmYXVsdCBXaW5kb3dzIHByb2hpYml0cyBpbnN0YWxsaW5n IGFuZCBsb2FkaW5nIGRyaXZlcnMgd2l0aG91dA0KPiArYGRpZ2l0YWwgc2lnbmF0dXJlYF8gb2J0 YWluZWQgZnJvbSBNaWNyb3NvZnQuIEZvciBkZXZlbG9wbWVudCBzaWduYXR1cmUNCj4gK2VuZm9y Y2VtZW50IG1heSBiZSBkaXNhYmxlZCBhcyBmb2xsb3dzLg0KPiArDQo+ICtJbiBFbGV2YXRlZCBD b21tYW5kIFByb21wdCAoZnJvbSB0aGlzIHBvaW50LCBzdWZmaWNpZW50IHByaXZpbGVnZXMgYXJl DQo+ICthc3N1bWVkKToNCj4gKw0KPiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gKw0KPiAr ICAgIGJjZGVkaXQgLXNldCBsb2Fkb3B0aW9ucyBESVNBQkxFX0lOVEVHUklUWV9DSEVDS1MNCj4g KyAgICBiY2RlZGl0IC1zZXQgVEVTVFNJR05JTkcgT04NCj4gKyAgICBzaHV0ZG93biAtciAtdCAw DQo+ICsNCj4gK1Vwb24gcmVib290LCBhbiBvdmVybGF5IG1lc3NhZ2Ugc2hvdWxkIGFwcGVhciBv biB0aGUgZGVza3RvcCBpbmZvcm1pbmcNCj4gK3RoYXQgV2luZG93cyBpcyBpbiB0ZXN0IG1vZGUs IHdoaWNoIG1lYW5zIGl0IGFsbG93cyBsb2FkaW5nIHVuc2lnbmVkDQo+IGRyaXZlcnMuDQo+ICsN Cj4gKy4uIF9kaWdpdGFsIHNpZ25hdHVyZToNCj4gK2h0dHBzOi8vZXVyMDMuc2FmZWxpbmtzLnBy b3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmRvY3MNCj4gLg0KPiArbWlj cm9zb2Z0LmNvbSUyRmVuLXVzJTJGd2luZG93cy0NCj4gaGFyZHdhcmUlMkZkcml2ZXJzJTJGaW5z dGFsbCUyRmRyaXZlci1zDQo+ICtpZ25pbmcmYW1wO2RhdGE9MDIlN0MwMSU3Q29waGlybXUlNDBt ZWxsYW5veC5jb20lN0M4NmRhNDMxZjJiDQo+IDkwNGRjYTNkODINCj4gKzA4ZDdlMGFjNGNkMCU3 Q2E2NTI5NzFjN2QyZTRkOWJhNmE0ZDE0OTI1NmY0NjFiJTdDMCU3QzAlN0M2Mw0KPiA3MjI0OTAy OTM5Ng0KPiArODU0NzgmYW1wO3NkYXRhPXRMVmRpamlRNTZ4d1NEVzB6VnNWRTNUbklwdU1QVExk OURCdFMzQm5mNFElMw0KPiBEJmFtcDtyZXNlDQo+ICtydmVkPTANCj4gKw0KPiArSW5zdGFsbCwg TGlzdCwgYW5kIFJlbW92ZSBEcml2ZXJzDQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4NCj4gKw0KPiArRHJpdmVyIHBhY2thZ2UgaXMgYnkgZGVmYXVsdCBsb2NhdGVkIGluIGEg c3ViZGlyZWN0b3J5IG9mIGl0cyBzb3VyY2UNCj4gK3RyZWUsIGUuZy4gYGB4NjRcRGVidWdcdmly dDJwaHlzXHZpcnQycGh5c2BgIChub3RlIHR3byBsZXZlbHMgb2YNCj4gYGB2aXJ0MnBoeXNgYCku DQo+ICsNCj4gK1RvIGluc3RhbGwgdGhlIGRyaXZlciBhbmQgYmluZCBhc3NvY2lhdGVkIGRldmlj ZXMgdG8gaXQ6DQo+ICsNCj4gKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlDQo+ICsNCj4gKyAgICBw bnB1dGlsIC9hZGQtZHJpdmVyIHg2NFxEZWJ1Z1x2aXJ0MnBoeXNcdmlydDJwaHlzXHZpcnQycGh5 cy5pbmYNCj4gKyAvaW5zdGFsbA0KPiArDQo+ICtBIGdyYXBoaWNhbCBjb25maXJtYXRpb24gdG8g bG9hZCBhbiB1bnNpZ25lZCBkcml2ZXIgd2lsbCBzdGlsbCBhcHBlYXIuDQo+ICsNCj4gK09uIFdp bmRvd3MgU2VydmVyIGFkZGl0aW9uYWwgc3RlcHMgYXJlIHJlcXVpcmVkIGlmIHRoZSBkcml2ZXIg dXNlcyBhDQo+ICtjdXN0b20gc2V0dXAgY2xhc3M6DQo+ICsNCj4gKzEuIEZyb20gIkRldmljZSBN YW5hZ2VyIiwgIkFjdGlvbiIgbWVudSwgc2VsZWN0ICJBZGQgbGVnYWN5IGhhcmR3YXJlIi4NCj4g KzIuIEl0IHdpbGwgbGF1bmNoIHRoZSAiQWRkIEhhcmR3YXJlIFdpemFyZCIuIENsaWNrICJOZXh0 Ii4NCj4gKzMuIFNlbGVjdCBzZWNvbmQgb3B0aW9uICJJbnN0YWxsIHRoZSBoYXJkd2FyZSB0aGF0 IEkgbWFudWFsbHkgc2VsZWN0DQo+ICsgICBmcm9tIGEgbGlzdCAoQWR2YW5jZWQpIi4NCj4gKzQu IE9uIHRoZSBuZXh0IHNjcmVlbiwgbG9jYXRlIHRoZSBkcml2ZXIgZGV2aWNlIGNsYXNzLg0KPiAr NS4gU2VsZWN0IGl0LCBhbmQgY2xpY2sgIk5leHQiLg0KPiArNi4gVGhlIHByZXZpb3VzbHkgaW5z dGFsbGVkIGRyaXZlcnMgd2lsbCBub3cgYmUgaW5zdGFsbGVkIGZvcg0KPiArICAgdGhlIGFwcHJv cHJpYXRlIGRldmljZXMgKHNvZnR3YXJlIGRldmljZXMgd2lsbCBiZSBjcmVhdGVkKS4NCj4gKw0K PiArVG8gbGlzdCBpbnN0YWxsZWQgZHJpdmVyczoNCj4gKw0KPiArLi4gY29kZS1ibG9jazo6IGNv bnNvbGUNCj4gKw0KPiArICAgIHBucHV0aWwgL2VudW0tZHJpdmVycw0KPiArDQo+ICtUbyByZW1v dmUgdGhlIGRyaXZlciBwYWNrYWdlIGFuZCB0byB1bmluc3RhbGwgaXRzIGRldmljZXM6DQo+ICsN Cj4gKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlDQo+ICsNCj4gKyAgICBwbnB1dGlsIC9kZWxldGUt ZHJpdmVyIG9lbTIuaW5mIC91bmluc3RhbGwNCj4gZGlmZiAtLWdpdCBhL3dpbmRvd3MvdmlydDJw aHlzL3ZpcnQycGh5cy5jIGIvd2luZG93cy92aXJ0MnBoeXMvdmlydDJwaHlzLmMNCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQgaW5kZXggMDAwMDAwMC4uZTE1N2U5Yw0KPiAtLS0gL2Rldi9udWxsDQo+ ICsrKyBiL3dpbmRvd3MvdmlydDJwaHlzL3ZpcnQycGh5cy5jDQo+IEBAIC0wLDAgKzEsMTI5IEBA DQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICsgKiBDb3B5 cmlnaHQoYykgMjAyMCBEbWl0cnkgS296bHl1aw0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlIDxu dGRkay5oPg0KPiArI2luY2x1ZGUgPHdkZi5oPg0KPiArI2luY2x1ZGUgPHdkbXNlYy5oPg0KPiAr I2luY2x1ZGUgPGluaXRndWlkLmg+DQo+ICsNCj4gKyNpbmNsdWRlICJ2aXJ0MnBoeXMuaCINCj4g Kw0KPiArRFJJVkVSX0lOSVRJQUxJWkUgRHJpdmVyRW50cnk7DQo+ICtFVlRfV0RGX0RSSVZFUl9E RVZJQ0VfQUREIHZpcnQycGh5c19kcml2ZXJfRXZ0RGV2aWNlQWRkOw0KPiArRVZUX1dERl9JT19J Tl9DQUxMRVJfQ09OVEVYVA0KPiB2aXJ0MnBoeXNfZGV2aWNlX0V2dElvSW5DYWxsZXJDb250ZXh0 Ow0KPiArDQo+ICtOVFNUQVRVUw0KPiArRHJpdmVyRW50cnkoDQo+ICsJSU4gUERSSVZFUl9PQkpF Q1QgZHJpdmVyX29iamVjdCwgSU4gUFVOSUNPREVfU1RSSU5HDQo+IHJlZ2lzdHJ5X3BhdGgpIHsN Cj4gKwlXREZfRFJJVkVSX0NPTkZJRyBjb25maWc7DQo+ICsJV0RGX09CSkVDVF9BVFRSSUJVVEVT IGF0dHJpYnV0ZXM7DQo+ICsJTlRTVEFUVVMgc3RhdHVzOw0KPiArDQo+ICsJUEFHRURfQ09ERSgp Ow0KPiArDQo+ICsJV0RGX0RSSVZFUl9DT05GSUdfSU5JVCgmY29uZmlnLA0KPiB2aXJ0MnBoeXNf ZHJpdmVyX0V2dERldmljZUFkZCk7DQo+ICsJV0RGX09CSkVDVF9BVFRSSUJVVEVTX0lOSVQoJmF0 dHJpYnV0ZXMpOw0KPiArCXN0YXR1cyA9IFdkZkRyaXZlckNyZWF0ZSgNCj4gKwkJCWRyaXZlcl9v YmplY3QsIHJlZ2lzdHJ5X3BhdGgsDQo+ICsJCQkmYXR0cmlidXRlcywgJmNvbmZpZywgV0RGX05P X0hBTkRMRSk7DQo+ICsJaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpIHsNCj4gKwkJS2RQcmludCgo IldkZkRyaXZlckNyZWF0ZSgpIGZhaWxlZCwgc3RhdHVzPSUwOHhcbiIsIHN0YXR1cykpOw0KPiAr CX0NCj4gKw0KPiArCXJldHVybiBzdGF0dXM7DQo+ICt9DQo+ICsNCj4gK19Vc2VfZGVjbF9hbm5v dGF0aW9uc18NCj4gK05UU1RBVFVTDQo+ICt2aXJ0MnBoeXNfZHJpdmVyX0V2dERldmljZUFkZCgN Cj4gKwlXREZEUklWRVIgZHJpdmVyLCBQV0RGREVWSUNFX0lOSVQgaW5pdCkgew0KPiArCVdERl9P QkpFQ1RfQVRUUklCVVRFUyBhdHRyaWJ1dGVzOw0KPiArCVdERkRFVklDRSBkZXZpY2U7DQo+ICsJ TlRTVEFUVVMgc3RhdHVzOw0KPiArDQo+ICsJVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihkcml2ZXIp Ow0KPiArDQo+ICsJUEFHRURfQ09ERSgpOw0KPiArDQo+ICsJV2RmRGV2aWNlSW5pdFNldElvVHlw ZSgNCj4gKwkJaW5pdCwgV2RmRGV2aWNlSW9OZWl0aGVyKTsNCj4gKwlXZGZEZXZpY2VJbml0U2V0 SW9JbkNhbGxlckNvbnRleHRDYWxsYmFjaygNCj4gKwkJaW5pdCwgdmlydDJwaHlzX2RldmljZV9F dnRJb0luQ2FsbGVyQ29udGV4dCk7DQo+ICsNCj4gKwlXREZfT0JKRUNUX0FUVFJJQlVURVNfSU5J VCgmYXR0cmlidXRlcyk7DQo+ICsNCj4gKwlzdGF0dXMgPSBXZGZEZXZpY2VDcmVhdGUoJmluaXQs ICZhdHRyaWJ1dGVzLCAmZGV2aWNlKTsNCj4gKwlpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkgew0K PiArCQlLZFByaW50KCgiV2RmRGV2aWNlQ3JlYXRlKCkgZmFpbGVkLCBzdGF0dXM9JTA4eFxuIiwg c3RhdHVzKSk7DQo+ICsJCXJldHVybiBzdGF0dXM7DQo+ICsJfQ0KPiArDQo+ICsJc3RhdHVzID0g V2RmRGV2aWNlQ3JlYXRlRGV2aWNlSW50ZXJmYWNlKA0KPiArCQkJZGV2aWNlLCAmR1VJRF9ERVZJ TlRFUkZBQ0VfVklSVDJQSFlTLCBOVUxMKTsNCj4gKwlpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkg ew0KPiArCQlLZFByaW50KCgiV2RmRGV2aWNlQ3JlYXRlRGV2aWNlSW50ZXJmYWNlKCkgZmFpbGVk LCAiDQo+ICsJCQkic3RhdHVzPSUwOHhcbiIsIHN0YXR1cykpOw0KPiArCQlyZXR1cm4gc3RhdHVz Ow0KPiArCX0NCj4gKw0KPiArCXJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiAr X1VzZV9kZWNsX2Fubm90YXRpb25zXw0KPiArVk9JRA0KPiArdmlydDJwaHlzX2RldmljZV9FdnRJ b0luQ2FsbGVyQ29udGV4dCgNCj4gKwlJTiBXREZERVZJQ0UgZGV2aWNlLCBJTiBXREZSRVFVRVNU IHJlcXVlc3QpIHsNCj4gKwlXREZfUkVRVUVTVF9QQVJBTUVURVJTIHBhcmFtczsNCj4gKwlVTE9O RyBjb2RlOw0KPiArCVBWT0lEICp2aXJ0Ow0KPiArCVBIWVNJQ0FMX0FERFJFU1MgKnBoeXM7DQo+ ICsJc2l6ZV90IHNpemU7DQo+ICsJTlRTVEFUVVMgc3RhdHVzOw0KPiArDQo+ICsJVU5SRUZFUkVO Q0VEX1BBUkFNRVRFUihkZXZpY2UpOw0KPiArDQo+ICsJUEFHRURfQ09ERSgpOw0KPiArDQo+ICsJ V0RGX1JFUVVFU1RfUEFSQU1FVEVSU19JTklUKCZwYXJhbXMpOw0KPiArCVdkZlJlcXVlc3RHZXRQ YXJhbWV0ZXJzKHJlcXVlc3QsICZwYXJhbXMpOw0KPiArDQo+ICsJaWYgKHBhcmFtcy5UeXBlICE9 IFdkZlJlcXVlc3RUeXBlRGV2aWNlQ29udHJvbCkgew0KPiArCQlLZFByaW50KCgiYm9ndXMgcmVx dWVzdCB0eXBlPSV1XG4iLCBwYXJhbXMuVHlwZSkpOw0KPiArCQlXZGZSZXF1ZXN0Q29tcGxldGUo cmVxdWVzdCwgU1RBVFVTX05PVF9TVVBQT1JURUQpOw0KPiArCQlyZXR1cm47DQo+ICsJfQ0KPiAr DQo+ICsJY29kZSA9IHBhcmFtcy5QYXJhbWV0ZXJzLkRldmljZUlvQ29udHJvbC5Jb0NvbnRyb2xD b2RlOw0KPiArCWlmIChjb2RlICE9IElPQ1RMX1ZJUlQyUEhZU19UUkFOU0xBVEUpIHsNCj4gKwkJ S2RQcmludCgoImJvZ3VzIElPIGNvbnRyb2wgY29kZT0lbHVcbiIsIGNvZGUpKTsNCj4gKwkJV2Rm UmVxdWVzdENvbXBsZXRlKHJlcXVlc3QsIFNUQVRVU19OT1RfU1VQUE9SVEVEKTsNCj4gKwkJcmV0 dXJuOw0KPiArCX0NCj4gKw0KPiArCXN0YXR1cyA9IFdkZlJlcXVlc3RSZXRyaWV2ZUlucHV0QnVm ZmVyKA0KPiArCQkJcmVxdWVzdCwgc2l6ZW9mKCp2aXJ0KSwgKFBWT0lEICopJnZpcnQsICZzaXpl KTsNCj4gKwlpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkgew0KPiArCQlLZFByaW50KCgiV2RmUmVx dWVzdFJldHJpZXZlSW5wdXRCdWZmZXIoKSBmYWlsZWQsICINCj4gKwkJCSJzdGF0dXM9JTA4eFxu Iiwgc3RhdHVzKSk7DQo+ICsJCVdkZlJlcXVlc3RDb21wbGV0ZShyZXF1ZXN0LCBzdGF0dXMpOw0K PiArCQlyZXR1cm47DQo+ICsJfQ0KPiArDQo+ICsJc3RhdHVzID0gV2RmUmVxdWVzdFJldHJpZXZl T3V0cHV0QnVmZmVyKA0KPiArCQlyZXF1ZXN0LCBzaXplb2YoKnBoeXMpLCAoUFZPSUQgKikmcGh5 cywgJnNpemUpOw0KPiArCWlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKSB7DQo+ICsJCUtkUHJpbnQo KCJXZGZSZXF1ZXN0UmV0cmlldmVPdXRwdXRCdWZmZXIoKSBmYWlsZWQsICINCj4gKwkJCSJzdGF0 dXM9JTA4eFxuIiwgc3RhdHVzKSk7DQo+ICsJCVdkZlJlcXVlc3RDb21wbGV0ZShyZXF1ZXN0LCBz dGF0dXMpOw0KPiArCQlyZXR1cm47DQo+ICsJfQ0KPiArDQo+ICsJKnBoeXMgPSBNbUdldFBoeXNp Y2FsQWRkcmVzcygqdmlydCk7DQo+ICsNCj4gKwlXZGZSZXF1ZXN0Q29tcGxldGVXaXRoSW5mb3Jt YXRpb24oDQo+ICsJCXJlcXVlc3QsIFNUQVRVU19TVUNDRVNTLCBzaXplb2YoKnBoeXMpKTsgfQ0K PiBkaWZmIC0tZ2l0IGEvd2luZG93cy92aXJ0MnBoeXMvdmlydDJwaHlzLmggYi93aW5kb3dzL3Zp cnQycGh5cy92aXJ0MnBoeXMuaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleCAwMDAwMDAw Li40YmIyYjRhDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvd2luZG93cy92aXJ0MnBoeXMvdmly dDJwaHlzLmgNCj4gQEAgLTAsMCArMSwzNCBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0zLUNsYXVzZQ0KPiArICogQ29weXJpZ2h0IChjKSAyMDIwIERtaXRyeSBLb3pseXVr DQo+ICsgKi8NCj4gKw0KPiArLyoqDQo+ICsgKiBAZmlsZSB2aXJ0MnBoeXMgZHJpdmVyIGludGVy ZmFjZQ0KPiArICovDQo+ICsNCj4gKy8qKg0KPiArICogRHJpdmVyIGRldmljZSBpbnRlcmZhY2Ug R1VJRCB7NTM5YzIxMzUtNzkzYS00OTI2LWFmZWMtZDNhMWI2MWJiYzhhfS4NCj4gKyAqLw0KPiAr REVGSU5FX0dVSUQoR1VJRF9ERVZJTlRFUkZBQ0VfVklSVDJQSFlTLA0KPiArCTB4NTM5YzIxMzUs IDB4NzkzYSwgMHg0OTI2LA0KPiArCTB4YWYsIDB4ZWMsIDB4ZDMsIDB4YTEsIDB4YjYsIDB4MWIs IDB4YmMsIDB4OGEpOw0KPiArDQo+ICsvKioNCj4gKyAqIERyaXZlciBkZXZpY2UgdHlwZSBmb3Ig SU8gY29udHJvbCBjb2Rlcy4NCj4gKyAqLw0KPiArI2RlZmluZSBWSVJUMlBIWVNfREVWVFlQRSAw eDgwMDANCj4gKw0KPiArLyoqDQo+ICsgKiBUcmFuc2xhdGUgYSB2YWxpZCBub24tcGFnZWQgdmly dHVhbCBhZGRyZXNzIHRvIGEgcGh5c2ljYWwgYWRkcmVzcy4NCj4gKyAqDQo+ICsgKiBOb3RlOiBB IHBoeXNpY2FsIGFkZHJlc3MgemVybyAoMCkgaXMgcmVwb3J0ZWQgaWYgaW5wdXQgYWRkcmVzcw0K PiArICogaXMgcGFnZWQgb3V0IG9yIG5vdCBtYXBwZWQuIEhvd2V2ZXIsIGlmIGlucHV0IGlzIGEg dmFsaWQgbWFwcGluZw0KPiArICogb2YgSS9PIHBvcnQgMHgwMDAwLCBvdXRwdXQgaXMgYWxzbyB6 ZXJvLiBUaGVyZSBpcyBubyB3YXkNCj4gKyAqIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlc2Ug Y2FzZXMgYnkgcmV0dXJuIHZhbHVlIG9ubHkuDQo+ICsgKg0KPiArICogSW5wdXQ6IGEgbm9uLXBh Z2VkIHZpcnR1YWwgYWRkcmVzcyAoUFZPSUQpLg0KPiArICoNCj4gKyAqIE91dHB1dDogdGhlIGNv cnJlc3BvbmRpbmcgcGh5c2ljYWwgYWRkcmVzcyAoTEFSR0VfSU5URUdFUikuDQo+ICsgKi8NCj4g KyNkZWZpbmUgSU9DVExfVklSVDJQSFlTX1RSQU5TTEFURSBDVExfQ09ERSggXA0KPiArCVZJUlQy UEhZU19ERVZUWVBFLCAweDgwMCwgTUVUSE9EX0JVRkZFUkVELA0KPiBGSUxFX0FOWV9BQ0NFU1Mp DQo+IGRpZmYgLS1naXQgYS93aW5kb3dzL3ZpcnQycGh5cy92aXJ0MnBoeXMuaW5mDQo+IGIvd2lu ZG93cy92aXJ0MnBoeXMvdmlydDJwaHlzLmluZiBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0K PiAwMDAwMDAwLi5lMzU3NjVlDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvd2luZG93cy92aXJ0 MnBoeXMvdmlydDJwaHlzLmluZg0KPiBAQCAtMCwwICsxLDY0IEBADQo+ICs7IFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UgOyBDb3B5cmlnaHQgKGMpIDIwMjAgRG1pdHJ5DQo+ ICtLb3pseXVrDQo+ICsNCj4gK1tWZXJzaW9uXQ0KPiArU2lnbmF0dXJlID0gIiRXSU5ET1dTIE5U JCINCj4gK0NsYXNzID0gJUNsYXNzTmFtZSUNCj4gK0NsYXNzR3VpZCA9IHs3OEExQzM0MS00NTM5 LTExZDMtQjg4RC0wMEMwNEZBRDUxNzF9DQo+ICtQcm92aWRlciA9ICVNYW51ZmFjdHVyZXJOYW1l JQ0KPiArQ2F0YWxvZ0ZpbGUgPSB2aXJ0MnBoeXMuY2F0DQo+ICtEcml2ZXJWZXIgPQ0KPiArDQo+ ICtbRGVzdGluYXRpb25EaXJzXQ0KPiArRGVmYXVsdERlc3REaXIgPSAxMg0KPiArDQo+ICs7ID09 PT09PT09PT09PT09PT09IENsYXNzIHNlY3Rpb24gPT09PT09PT09PT09PT09PT09PT09DQo+ICsN Cj4gK1tDbGFzc0luc3RhbGwzMl0NCj4gK0FkZHJlZyA9IHZpcnQycGh5c19DbGFzc1JlZw0KPiAr DQo+ICtbdmlydDJwaHlzX0NsYXNzUmVnXQ0KPiArSEtSLCwsMCwlQ2xhc3NOYW1lJQ0KPiArSEtS LCxJY29uLCwtNQ0KPiArDQo+ICtbU291cmNlRGlza3NOYW1lc10NCj4gKzEgPSAlRGlza05hbWUl LCwsIiINCj4gKw0KPiArW1NvdXJjZURpc2tzRmlsZXNdDQo+ICt2aXJ0MnBoeXMuc3lzICA9IDEs LA0KPiArDQo+ICs7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4g KzsgSW5zdGFsbCBTZWN0aW9uDQo+ICs7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioNCj4gKw0KPiArW01hbnVmYWN0dXJlcl0NCj4gKyVNYW51ZmFjdHVyZXJOYW1lJT1T dGFuZGFyZCxOVCRBUkNIJA0KPiArDQo+ICtbU3RhbmRhcmQuTlQkQVJDSCRdDQo+ICsldmlydDJw aHlzLkRldmljZURlc2MlPXZpcnQycGh5c19EZXZpY2UsIFJvb3RcdmlydDJwaHlzDQo+ICsNCj4g K1t2aXJ0MnBoeXNfRGV2aWNlLk5UXQ0KPiArQ29weUZpbGVzID0gRHJpdmVyc19EaXINCj4gKw0K PiArW0RyaXZlcnNfRGlyXQ0KPiArdmlydDJwaHlzLnN5cw0KPiArDQo+ICs7LS0tLS0tLS0tLS0t LS0gU2VydmljZSBpbnN0YWxsYXRpb24NCj4gK1t2aXJ0MnBoeXNfRGV2aWNlLk5ULlNlcnZpY2Vz XQ0KPiArQWRkU2VydmljZSA9IHZpcnQycGh5cywlU1BTVkNJTlNUX0FTU09DU0VSVklDRSUsDQo+ IHZpcnQycGh5c19TZXJ2aWNlX0luc3QNCj4gKw0KPiArOyAtLS0tLS0tLS0tLS0tLSB2aXJ0MnBo eXMgZHJpdmVyIGluc3RhbGwgc2VjdGlvbnMNCj4gK1t2aXJ0MnBoeXNfU2VydmljZV9JbnN0XQ0K PiArRGlzcGxheU5hbWUgICAgPSAldmlydDJwaHlzLlNWQ0RFU0MlDQo+ICtTZXJ2aWNlVHlwZSAg ICA9IDEgOyBTRVJWSUNFX0tFUk5FTF9EUklWRVINCj4gK1N0YXJ0VHlwZSAgICAgID0gMyA7IFNF UlZJQ0VfREVNQU5EX1NUQVJUDQo+ICtFcnJvckNvbnRyb2wgICA9IDEgOyBTRVJWSUNFX0VSUk9S X05PUk1BTA0KPiArU2VydmljZUJpbmFyeSAgPSAlMTIlXHZpcnQycGh5cy5zeXMNCj4gKw0KPiAr W1N0cmluZ3NdDQo+ICtTUFNWQ0lOU1RfQVNTT0NTRVJWSUNFID0gMHgwMDAwMDAwMg0KPiArTWFu dWZhY3R1cmVyTmFtZSA9ICJEbWl0cnkgS296bHl1ayINCj4gK0NsYXNzTmFtZSA9ICJLZXJuZWwg YnlwYXNzIg0KPiArRGlza05hbWUgPSAidmlydDJwaHlzIEluc3RhbGxhdGlvbiBEaXNrIg0KPiAr dmlydDJwaHlzLkRldmljZURlc2MgPSAiVmlydHVhbCB0byBwaHlzaWNhbCBhZGRyZXNzIHRyYW5z bGF0b3IiDQo+ICt2aXJ0MnBoeXMuU1ZDREVTQyA9ICJ2aXJ0MnBoeXMgU2VydmljZSINCj4gZGlm ZiAtLWdpdCBhL3dpbmRvd3MvdmlydDJwaHlzL3ZpcnQycGh5cy5zbG4NCj4gYi93aW5kb3dzL3Zp cnQycGh5cy92aXJ0MnBoeXMuc2xuIG5ldyBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4DQo+IDAwMDAw MDAuLjBmNWVjZGMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi93aW5kb3dzL3ZpcnQycGh5cy92 aXJ0MnBoeXMuc2xuDQo+IEBAIC0wLDAgKzEsMjcgQEANCj4gK++7vytNaWNyb3NvZnQgVmlzdWFs IFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMi4wMCsjIFZpc3VhbCBTdHVk aW8NCj4gVmVyc2lvbiAxNitWaXN1YWxTdHVkaW9WZXJzaW9uID0NCj4gMTYuMC4yOTYxMy4xNCtN aW5pbXVtVmlzdWFsU3R1ZGlvVmVyc2lvbiA9DQo+IDEwLjAuNDAyMTkuMStQcm9qZWN0KCJ7OEJD OUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0NCj4gInZpcnQycGh5cyIsICJ2 aXJ0MnBoeXMudmN4cHJvaiIsICJ7MEVFRjgyNkItOTM5MS00M0E4LUE3MjItDQo+IEJERDZGNjEx NTEzN30iK0VuZFByb2plY3QrR2xvYmFsKw0KPiAJR2xvYmFsU2VjdGlvbihTb2x1dGlvbkNvbmZp Z3VyYXRpb25QbGF0Zm9ybXMpID0gcHJlU29sdXRpb24rDQo+IAlEZWJ1Z3x4NjQgPSBEZWJ1Z3x4 NjQrCQlSZWxlYXNlfHg2NCA9IFJlbGVhc2V8eDY0Kw0KPiAJRW5kR2xvYmFsU2VjdGlvbisNCj4g CUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0 aW9uKw0KPiAJezBFRUY4MjZCLTkzOTEtNDNBOC1BNzIyLUJERDZGNjExNTEzN30uRGVidWd8eDY0 LkFjdGl2ZUNmZyA9DQo+IERlYnVnfHg2NCsJCXswRUVGODI2Qi05MzkxLTQzQTgtQTcyMi0NCj4g QkRENkY2MTE1MTM3fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NCsJCXswRUVGODI2Qi0N Cj4gOTM5MS00M0E4LUE3MjItQkRENkY2MTE1MTM3fS5EZWJ1Z3x4NjQuRGVwbG95LjAgPSBEZWJ1 Z3x4NjQrDQo+IAl7MEVFRjgyNkItOTM5MS00M0E4LUE3MjItQkRENkY2MTE1MTM3fS5SZWxlYXNl fHg2NC5BY3RpdmVDZmcNCj4gPSBSZWxlYXNlfHg2NCsJCXswRUVGODI2Qi05MzkxLTQzQTgtQTcy Mi0NCj4gQkRENkY2MTE1MTM3fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQrCQl7 MEVFRjgyNkItDQo+IDkzOTEtNDNBOC1BNzIyLUJERDZGNjExNTEzN30uUmVsZWFzZXx4NjQuRGVw bG95LjAgPSBSZWxlYXNlfHg2NCsNCj4gCUVuZEdsb2JhbFNlY3Rpb24rCUdsb2JhbFNlY3Rpb24o U29sdXRpb25Qcm9wZXJ0aWVzKSA9DQo+IHByZVNvbHV0aW9uKwkJSGlkZVNvbHV0aW9uTm9kZSA9 IEZBTFNFKwlFbmRHbG9iYWxTZWN0aW9uKw0KPiAJR2xvYmFsU2VjdGlvbihFeHRlbnNpYmlsaXR5 R2xvYmFscykgPSBwb3N0U29sdXRpb24rDQo+IAlTb2x1dGlvbkd1aWQgPSB7ODQ1MDEyRkItNDQ3 MS00QTEyLUExQzQtRkY3RTA1QzQwRThFfSsNCj4gCUVuZEdsb2JhbFNlY3Rpb24rRW5kR2xvYmFs ZGlmZiAtLWdpdA0KPiBhL3dpbmRvd3MvdmlydDJwaHlzL3ZpcnQycGh5cy52Y3hwcm9qDQo+IGIv d2luZG93cy92aXJ0MnBoeXMvdmlydDJwaHlzLnZjeHByb2oNCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gaW5kZXggMDAwMDAwMC4uZmE1MTkxNg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3dp bmRvd3MvdmlydDJwaHlzL3ZpcnQycGh5cy52Y3hwcm9qDQo+IEBAIC0wLDAgKzEsMjI4IEBADQo+ ICvvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pis8UHJvamVjdCBEZWZh dWx0VGFyZ2V0cz0iQnVpbGQiDQo+IFRvb2xzVmVyc2lvbj0iMTIuMCINCj4geG1sbnM9Imh0dHBz Oi8vZXVyMDMuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJG JTINCj4gRnNjaGVtYXMubWljcm9zb2Z0LmNvbSUyRmRldmVsb3BlciUyRm1zYnVpbGQlMkYyMDAz JmFtcDtkYXRhPTAyJQ0KPiA3QzAxJTdDb3BoaXJtdSU0MG1lbGxhbm94LmNvbSU3Qzg2ZGE0MzFm MmI5MDRkY2EzZDgyMDhkN2UwYWM0Yw0KPiBkMCU3Q2E2NTI5NzFjN2QyZTRkOWJhNmE0ZDE0OTI1 NmY0NjFiJTdDMCU3QzAlN0M2MzcyMjQ5MDI5MzkNCj4gNjg1NDc4JmFtcDtzZGF0YT1ON0hQRG1h MXFyWFY2c29iT1MwdGJsaHNnYUVVZVBEOGxYcWhueVhEMXNVJQ0KPiAzRCZhbXA7cmVzZXJ2ZWQ9 MCI+KyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4rDQo+IDxQcm9q ZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+Kw0KPiA8Q29uZmlndXJhdGlv bj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4rICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4r DQo+IDwvUHJvamVjdENvbmZpZ3VyYXRpb24+KyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24NCj4g SW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+KyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0Nv bmZpZ3VyYXRpb24+Kw0KPiA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPisgICAgPC9Qcm9qZWN0 Q29uZmlndXJhdGlvbj4rDQo+IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4 NjQiPisNCj4gPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+KyAgICAgIDxQbGF0 Zm9ybT54NjQ8L1BsYXRmb3JtPisNCj4gPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4rICAgIDxQcm9q ZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+Kw0KPiA8Q29uZmlndXJhdGlv bj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4r DQo+IDwvUHJvamVjdENvbmZpZ3VyYXRpb24+KyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5j bHVkZT0iRGVidWd8QVJNIj4rDQo+IDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9u PisgICAgICA8UGxhdGZvcm0+QVJNPC9QbGF0Zm9ybT4rDQo+IDwvUHJvamVjdENvbmZpZ3VyYXRp b24+KyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxBUk0iPisNCj4g PENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4rICAgICAgPFBsYXRmb3JtPkFS TTwvUGxhdGZvcm0+Kw0KPiA8L1Byb2plY3RDb25maWd1cmF0aW9uPisgICAgPFByb2plY3RDb25m aWd1cmF0aW9uDQo+IEluY2x1ZGU9IkRlYnVnfEFSTTY0Ij4rICAgICAgPENvbmZpZ3VyYXRpb24+ RGVidWc8L0NvbmZpZ3VyYXRpb24+Kw0KPiA8UGxhdGZvcm0+QVJNNjQ8L1BsYXRmb3JtPisgICAg PC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4rDQo+IDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRl PSJSZWxlYXNlfEFSTTY0Ij4rDQo+IDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRp b24+Kw0KPiA8UGxhdGZvcm0+QVJNNjQ8L1BsYXRmb3JtPisgICAgPC9Qcm9qZWN0Q29uZmlndXJh dGlvbj4rICA8L0l0ZW1Hcm91cD4rDQo+IDxJdGVtR3JvdXA+KyAgICA8Q2xDb21waWxlIEluY2x1 ZGU9InZpcnQycGh5cy5jIiAvPisgIDwvSXRlbUdyb3VwPisNCj4gPEl0ZW1Hcm91cD4rICAgIDxD bEluY2x1ZGUgSW5jbHVkZT0idmlydDJwaHlzLmgiIC8+KyAgPC9JdGVtR3JvdXA+Kw0KPiA8SXRl bUdyb3VwPisgICAgPEluZiBJbmNsdWRlPSJ2aXJ0MnBoeXMuaW5mIiAvPisgIDwvSXRlbUdyb3Vw PisNCj4gPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPisgICAgPFByb2plY3RHdWlkPnsw RUVGODI2Qi05MzkxLTQzQTgtDQo+IEE3MjItQkRENkY2MTE1MTM3fTwvUHJvamVjdEd1aWQ+KyAg ICA8VGVtcGxhdGVHdWlkPns0OTdlMzFjYi0wNTZiLQ0KPiA0ZjMxLWFiYjgtNDQ3ZmQ1NWVlNWE1 fTwvVGVtcGxhdGVHdWlkPisNCj4gPFRhcmdldEZyYW1ld29ya1ZlcnNpb24+djQuNTwvVGFyZ2V0 RnJhbWV3b3JrVmVyc2lvbj4rDQo+IDxNaW5pbXVtVmlzdWFsU3R1ZGlvVmVyc2lvbj4xMi4wPC9N aW5pbXVtVmlzdWFsU3R1ZGlvVmVyc2lvbj4rDQo+IDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25m aWd1cmF0aW9uPisgICAgPFBsYXRmb3JtDQo+IENvbmRpdGlvbj0iJyQoUGxhdGZvcm0pJyA9PSAn JyI+V2luMzI8L1BsYXRmb3JtPisNCj4gPFJvb3ROYW1lc3BhY2U+dmlydDJwaHlzPC9Sb290TmFt ZXNwYWNlPisgIDwvUHJvcGVydHlHcm91cD4rDQo+IDxJbXBvcnQgUHJvamVjdD0iJChWQ1Rhcmdl dHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+Kw0KPiA8UHJvcGVydHlHcm91 cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy JyINCj4gTGFiZWw9IkNvbmZpZ3VyYXRpb24iPisgICAgPFRhcmdldFZlcnNpb24+V2luZG93czEw PC9UYXJnZXRWZXJzaW9uPisNCj4gPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGli cmFyaWVzPisNCj4gPFBsYXRmb3JtVG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjEwLjA8 L1BsYXRmb3JtVG9vbHNldD4rDQo+IDxDb25maWd1cmF0aW9uVHlwZT5Ecml2ZXI8L0NvbmZpZ3Vy YXRpb25UeXBlPisNCj4gPERyaXZlclR5cGU+S01ERjwvRHJpdmVyVHlwZT4rDQo+IDxEcml2ZXJU YXJnZXRQbGF0Zm9ybT5Vbml2ZXJzYWw8L0RyaXZlclRhcmdldFBsYXRmb3JtPisNCj4gPC9Qcm9w ZXJ0eUdyb3VwPisgIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciDQo+IExhYmVsPSJDb25maWd1cmF0aW9u Ij4rICAgIDxUYXJnZXRWZXJzaW9uPldpbmRvd3MxMDwvVGFyZ2V0VmVyc2lvbj4rDQo+IDxVc2VE ZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+Kw0KPiA8UGxhdGZvcm1Ub29s c2V0PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyMTAuMDwvUGxhdGZvcm1Ub29sc2V0PisNCj4gPENv bmZpZ3VyYXRpb25UeXBlPkRyaXZlcjwvQ29uZmlndXJhdGlvblR5cGU+Kw0KPiA8RHJpdmVyVHlw ZT5LTURGPC9Ecml2ZXJUeXBlPisNCj4gPERyaXZlclRhcmdldFBsYXRmb3JtPlVuaXZlcnNhbDwv RHJpdmVyVGFyZ2V0UGxhdGZvcm0+Kw0KPiA8L1Byb3BlcnR5R3JvdXA+KyAgPFByb3BlcnR5R3Jv dXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4 NjQnIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+KyAgICA8VGFyZ2V0VmVyc2lvbj5XaW5kb3dz MTA8L1RhcmdldFZlcnNpb24+Kw0KPiA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdM aWJyYXJpZXM+Kw0KPiA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyMTAu MDwvUGxhdGZvcm1Ub29sc2V0PisNCj4gPENvbmZpZ3VyYXRpb25UeXBlPkRyaXZlcjwvQ29uZmln dXJhdGlvblR5cGU+Kw0KPiA8RHJpdmVyVHlwZT5LTURGPC9Ecml2ZXJUeXBlPisNCj4gPERyaXZl clRhcmdldFBsYXRmb3JtPlVuaXZlcnNhbDwvRHJpdmVyVGFyZ2V0UGxhdGZvcm0+Kw0KPiA8L1By b3BlcnR5R3JvdXA+KyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0 aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciDQo+IExhYmVsPSJDb25maWd1cmF0aW9u Ij4rICAgIDxUYXJnZXRWZXJzaW9uPldpbmRvd3MxMDwvVGFyZ2V0VmVyc2lvbj4rDQo+IDxVc2VE ZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+Kw0KPiA8UGxhdGZvcm1Ub29s c2V0PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyMTAuMDwvUGxhdGZvcm1Ub29sc2V0PisNCj4gPENv bmZpZ3VyYXRpb25UeXBlPkRyaXZlcjwvQ29uZmlndXJhdGlvblR5cGU+Kw0KPiA8RHJpdmVyVHlw ZT5LTURGPC9Ecml2ZXJUeXBlPisNCj4gPERyaXZlclRhcmdldFBsYXRmb3JtPlVuaXZlcnNhbDwv RHJpdmVyVGFyZ2V0UGxhdGZvcm0+Kw0KPiA8L1Byb3BlcnR5R3JvdXA+KyAgPFByb3BlcnR5R3Jv dXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xB Uk0nIg0KPiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+KyAgICA8VGFyZ2V0VmVyc2lvbj5XaW5kb3dz MTA8L1RhcmdldFZlcnNpb24+Kw0KPiA8VXNlRGVidWdMaWJyYXJpZXM+dHJ1ZTwvVXNlRGVidWdM aWJyYXJpZXM+Kw0KPiA8UGxhdGZvcm1Ub29sc2V0PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyMTAu MDwvUGxhdGZvcm1Ub29sc2V0PisNCj4gPENvbmZpZ3VyYXRpb25UeXBlPkRyaXZlcjwvQ29uZmln dXJhdGlvblR5cGU+Kw0KPiA8RHJpdmVyVHlwZT5LTURGPC9Ecml2ZXJUeXBlPisNCj4gPERyaXZl clRhcmdldFBsYXRmb3JtPlVuaXZlcnNhbDwvRHJpdmVyVGFyZ2V0UGxhdGZvcm0+Kw0KPiA8L1By b3BlcnR5R3JvdXA+KyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0 aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfEFSTSciDQo+IExhYmVsPSJDb25maWd1cmF0aW9u Ij4rICAgIDxUYXJnZXRWZXJzaW9uPldpbmRvd3MxMDwvVGFyZ2V0VmVyc2lvbj4rDQo+IDxVc2VE ZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+Kw0KPiA8UGxhdGZvcm1Ub29s c2V0PldpbmRvd3NLZXJuZWxNb2RlRHJpdmVyMTAuMDwvUGxhdGZvcm1Ub29sc2V0PisNCj4gPENv bmZpZ3VyYXRpb25UeXBlPkRyaXZlcjwvQ29uZmlndXJhdGlvblR5cGU+Kw0KPiA8RHJpdmVyVHlw ZT5LTURGPC9Ecml2ZXJUeXBlPisNCj4gPERyaXZlclRhcmdldFBsYXRmb3JtPlVuaXZlcnNhbDwv RHJpdmVyVGFyZ2V0UGxhdGZvcm0+Kw0KPiA8L1Byb3BlcnR5R3JvdXA+KyAgPFByb3BlcnR5R3Jv dXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xB Uk02NCciDQo+IExhYmVsPSJDb25maWd1cmF0aW9uIj4rICAgIDxUYXJnZXRWZXJzaW9uPldpbmRv d3MxMDwvVGFyZ2V0VmVyc2lvbj4rDQo+IDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1 Z0xpYnJhcmllcz4rDQo+IDxQbGF0Zm9ybVRvb2xzZXQ+V2luZG93c0tlcm5lbE1vZGVEcml2ZXIx MC4wPC9QbGF0Zm9ybVRvb2xzZXQ+Kw0KPiA8Q29uZmlndXJhdGlvblR5cGU+RHJpdmVyPC9Db25m aWd1cmF0aW9uVHlwZT4rDQo+IDxEcml2ZXJUeXBlPktNREY8L0RyaXZlclR5cGU+Kw0KPiA8RHJp dmVyVGFyZ2V0UGxhdGZvcm0+VW5pdmVyc2FsPC9Ecml2ZXJUYXJnZXRQbGF0Zm9ybT4rDQo+IDwv UHJvcGVydHlHcm91cD4rICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3Vy YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8QVJNNjQnIg0KPiBMYWJlbD0iQ29uZmlndXJh dGlvbiI+KyAgICA8VGFyZ2V0VmVyc2lvbj5XaW5kb3dzMTA8L1RhcmdldFZlcnNpb24+Kw0KPiA8 VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPisNCj4gPFBsYXRmb3Jt VG9vbHNldD5XaW5kb3dzS2VybmVsTW9kZURyaXZlcjEwLjA8L1BsYXRmb3JtVG9vbHNldD4rDQo+ IDxDb25maWd1cmF0aW9uVHlwZT5Ecml2ZXI8L0NvbmZpZ3VyYXRpb25UeXBlPisNCj4gPERyaXZl clR5cGU+S01ERjwvRHJpdmVyVHlwZT4rDQo+IDxEcml2ZXJUYXJnZXRQbGF0Zm9ybT5Vbml2ZXJz YWw8L0RyaXZlclRhcmdldFBsYXRmb3JtPisNCj4gPC9Qcm9wZXJ0eUdyb3VwPisgIDxJbXBvcnQN Cj4gUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPisgIDxJ bXBvcnRHcm91cA0KPiBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPisgIDwvSW1wb3J0R3JvdXA+ KyAgPEltcG9ydEdyb3VwDQo+IExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+KyAgICA8SW1wb3J0DQo+ IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5w cm9wcyINCj4gQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAu JChQbGF0Zm9ybSkudXNlci5wcm9wcycpIg0KPiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0i IC8+KyAgPC9JbXBvcnRHcm91cD4rICA8UHJvcGVydHlHcm91cA0KPiBMYWJlbD0iVXNlck1hY3Jv cyIgLz4rICA8UHJvcGVydHlHcm91cCAvPisgIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0i JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4rDQo+IDxEZWJ1 Z2dlckZsYXZvcj5EYmdlbmdLZXJuZWxEZWJ1Z2dlcjwvRGVidWdnZXJGbGF2b3I+Kw0KPiA8L1By b3BlcnR5R3JvdXA+KyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0 aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+Kw0KPiA8RGVidWdnZXJGbGF2b3I+ RGJnZW5nS2VybmVsRGVidWdnZXI8L0RlYnVnZ2VyRmxhdm9yPisNCj4gPC9Qcm9wZXJ0eUdyb3Vw PisgIDxQcm9wZXJ0eUdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0 Zm9ybSknPT0nRGVidWd8eDY0JyI+Kw0KPiA8RGVidWdnZXJGbGF2b3I+RGJnZW5nS2VybmVsRGVi dWdnZXI8L0RlYnVnZ2VyRmxhdm9yPisNCj4gPC9Qcm9wZXJ0eUdyb3VwPisgIDxQcm9wZXJ0eUdy b3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz ZXx4NjQnIj4rDQo+IDxEZWJ1Z2dlckZsYXZvcj5EYmdlbmdLZXJuZWxEZWJ1Z2dlcjwvRGVidWdn ZXJGbGF2b3I+Kw0KPiA8L1Byb3BlcnR5R3JvdXA+KyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0 aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xBUk0nIj4rDQo+IDxE ZWJ1Z2dlckZsYXZvcj5EYmdlbmdLZXJuZWxEZWJ1Z2dlcjwvRGVidWdnZXJGbGF2b3I+Kw0KPiA8 L1Byb3BlcnR5R3JvdXA+KyAgPFByb3BlcnR5R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1 cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfEFSTSciPisNCj4gPERlYnVnZ2VyRmxhdm9y PkRiZ2VuZ0tlcm5lbERlYnVnZ2VyPC9EZWJ1Z2dlckZsYXZvcj4rDQo+IDwvUHJvcGVydHlHcm91 cD4rICA8UHJvcGVydHlHcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh dGZvcm0pJz09J0RlYnVnfEFSTTY0JyI+Kw0KPiA8RGVidWdnZXJGbGF2b3I+RGJnZW5nS2VybmVs RGVidWdnZXI8L0RlYnVnZ2VyRmxhdm9yPisNCj4gPC9Qcm9wZXJ0eUdyb3VwPisgIDxQcm9wZXJ0 eUdyb3VwDQo+IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs ZWFzZXxBUk02NCciPisNCj4gPERlYnVnZ2VyRmxhdm9yPkRiZ2VuZ0tlcm5lbERlYnVnZ2VyPC9E ZWJ1Z2dlckZsYXZvcj4rDQo+IDwvUHJvcGVydHlHcm91cD4rICA8SXRlbURlZmluaXRpb25Hcm91 cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp bjMyJyI+Kw0KPiA8Q2xDb21waWxlPisgICAgICA8V3BwRW5hYmxlZD50cnVlPC9XcHBFbmFibGVk PisNCj4gPFdwcFJlY29yZGVyRW5hYmxlZD50cnVlPC9XcHBSZWNvcmRlckVuYWJsZWQ+Kw0KPiA8 V3BwU2NhbkNvbmZpZ3VyYXRpb25EYXRhDQo+IENvbmRpdGlvbj0iJyUoQ2xDb21waWxlLlNjYW5D b25maWd1cmF0aW9uRGF0YSknID09DQo+ICcnIj50cmFjZS5oPC9XcHBTY2FuQ29uZmlndXJhdGlv bkRhdGE+Kw0KPiA8V3BwS2VybmVsTW9kZT50cnVlPC9XcHBLZXJuZWxNb2RlPisgICAgPC9DbENv bXBpbGU+Kw0KPiA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAN Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp bjMyJyI+Kw0KPiA8Q2xDb21waWxlPisgICAgICA8V3BwRW5hYmxlZD50cnVlPC9XcHBFbmFibGVk PisNCj4gPFdwcFJlY29yZGVyRW5hYmxlZD50cnVlPC9XcHBSZWNvcmRlckVuYWJsZWQ+Kw0KPiA8 V3BwU2NhbkNvbmZpZ3VyYXRpb25EYXRhDQo+IENvbmRpdGlvbj0iJyUoQ2xDb21waWxlLlNjYW5D b25maWd1cmF0aW9uRGF0YSknID09DQo+ICcnIj50cmFjZS5oPC9XcHBTY2FuQ29uZmlndXJhdGlv bkRhdGE+Kw0KPiA8V3BwS2VybmVsTW9kZT50cnVlPC9XcHBLZXJuZWxNb2RlPisgICAgPC9DbENv bXBpbGU+Kw0KPiA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAN Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn Ij4rICAgIDxDbENvbXBpbGU+Kw0KPiA8V3BwRW5hYmxlZD5mYWxzZTwvV3BwRW5hYmxlZD4rDQo+ IDxXcHBSZWNvcmRlckVuYWJsZWQ+dHJ1ZTwvV3BwUmVjb3JkZXJFbmFibGVkPisNCj4gPFdwcFNj YW5Db25maWd1cmF0aW9uRGF0YQ0KPiBDb25kaXRpb249IiclKENsQ29tcGlsZS5TY2FuQ29uZmln dXJhdGlvbkRhdGEpJyA9PQ0KPiAnJyI+dHJhY2UuaDwvV3BwU2NhbkNvbmZpZ3VyYXRpb25EYXRh PisNCj4gPFdwcEtlcm5lbE1vZGU+dHJ1ZTwvV3BwS2VybmVsTW9kZT4rICAgIDwvQ2xDb21waWxl PisgICAgPExpbms+Kw0KPiA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKERES19MSUJfUEFUSCl3 ZG1zZWMubGliOyUoQWRkaXRpb25hbERlcGVuZA0KPiBlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5k ZW5jaWVzPisgICAgPC9MaW5rPisgICAgPEluZj4rDQo+IDxUaW1lU3RhbXA+MC4xPC9UaW1lU3Rh bXA+KyAgICA8L0luZj4rICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Kw0KPiA8SXRlbURlZmluaXRp b25Hcm91cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl bGVhc2V8eDY0JyI+Kw0KPiA8Q2xDb21waWxlPisgICAgICA8V3BwRW5hYmxlZD50cnVlPC9XcHBF bmFibGVkPisNCj4gPFdwcFJlY29yZGVyRW5hYmxlZD50cnVlPC9XcHBSZWNvcmRlckVuYWJsZWQ+ Kw0KPiA8V3BwU2NhbkNvbmZpZ3VyYXRpb25EYXRhDQo+IENvbmRpdGlvbj0iJyUoQ2xDb21waWxl LlNjYW5Db25maWd1cmF0aW9uRGF0YSknID09DQo+ICcnIj50cmFjZS5oPC9XcHBTY2FuQ29uZmln dXJhdGlvbkRhdGE+Kw0KPiA8V3BwS2VybmVsTW9kZT50cnVlPC9XcHBLZXJuZWxNb2RlPisgICAg PC9DbENvbXBpbGU+Kw0KPiA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+KyAgPEl0ZW1EZWZpbml0aW9u R3JvdXANCj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1 Z3xBUk0nIj4rDQo+IDxDbENvbXBpbGU+KyAgICAgIDxXcHBFbmFibGVkPnRydWU8L1dwcEVuYWJs ZWQ+Kw0KPiA8V3BwUmVjb3JkZXJFbmFibGVkPnRydWU8L1dwcFJlY29yZGVyRW5hYmxlZD4rDQo+ IDxXcHBTY2FuQ29uZmlndXJhdGlvbkRhdGENCj4gQ29uZGl0aW9uPSInJShDbENvbXBpbGUuU2Nh bkNvbmZpZ3VyYXRpb25EYXRhKScgPT0NCj4gJyciPnRyYWNlLmg8L1dwcFNjYW5Db25maWd1cmF0 aW9uRGF0YT4rDQo+IDxXcHBLZXJuZWxNb2RlPnRydWU8L1dwcEtlcm5lbE1vZGU+KyAgICA8L0Ns Q29tcGlsZT4rDQo+IDwvSXRlbURlZmluaXRpb25Hcm91cD4rICA8SXRlbURlZmluaXRpb25Hcm91 cA0KPiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8 QVJNJyI+Kw0KPiA8Q2xDb21waWxlPisgICAgICA8V3BwRW5hYmxlZD50cnVlPC9XcHBFbmFibGVk PisNCj4gPFdwcFJlY29yZGVyRW5hYmxlZD50cnVlPC9XcHBSZWNvcmRlckVuYWJsZWQ+Kw0KPiA8 V3BwU2NhbkNvbmZpZ3VyYXRpb25EYXRhDQo+IENvbmRpdGlvbj0iJyUoQ2xDb21waWxlLlNjYW5D b25maWd1cmF0aW9uRGF0YSknID09DQo+ICcnIj50cmFjZS5oPC9XcHBTY2FuQ29uZmlndXJhdGlv bkRhdGE+Kw0KPiA8V3BwS2VybmVsTW9kZT50cnVlPC9XcHBLZXJuZWxNb2RlPisgICAgPC9DbENv bXBpbGU+Kw0KPiA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAN Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfEFS TTY0JyI+Kw0KPiA8Q2xDb21waWxlPisgICAgICA8V3BwRW5hYmxlZD50cnVlPC9XcHBFbmFibGVk PisNCj4gPFdwcFJlY29yZGVyRW5hYmxlZD50cnVlPC9XcHBSZWNvcmRlckVuYWJsZWQ+Kw0KPiA8 V3BwU2NhbkNvbmZpZ3VyYXRpb25EYXRhDQo+IENvbmRpdGlvbj0iJyUoQ2xDb21waWxlLlNjYW5D b25maWd1cmF0aW9uRGF0YSknID09DQo+ICcnIj50cmFjZS5oPC9XcHBTY2FuQ29uZmlndXJhdGlv bkRhdGE+Kw0KPiA8V3BwS2VybmVsTW9kZT50cnVlPC9XcHBLZXJuZWxNb2RlPisgICAgPC9DbENv bXBpbGU+Kw0KPiA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+KyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAN Cj4gQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xBUk02 NCciPisNCj4gPENsQ29tcGlsZT4rICAgICAgPFdwcEVuYWJsZWQ+dHJ1ZTwvV3BwRW5hYmxlZD4r DQo+IDxXcHBSZWNvcmRlckVuYWJsZWQ+dHJ1ZTwvV3BwUmVjb3JkZXJFbmFibGVkPisNCj4gPFdw cFNjYW5Db25maWd1cmF0aW9uRGF0YQ0KPiBDb25kaXRpb249IiclKENsQ29tcGlsZS5TY2FuQ29u ZmlndXJhdGlvbkRhdGEpJyA9PQ0KPiAnJyI+dHJhY2UuaDwvV3BwU2NhbkNvbmZpZ3VyYXRpb25E YXRhPisNCj4gPFdwcEtlcm5lbE1vZGU+dHJ1ZTwvV3BwS2VybmVsTW9kZT4rICAgIDwvQ2xDb21w aWxlPisNCj4gPC9JdGVtRGVmaW5pdGlvbkdyb3VwPisgIDxJdGVtR3JvdXA+KyAgICA8RmlsZXNU b1BhY2thZ2UNCj4gSW5jbHVkZT0iJChUYXJnZXRQYXRoKSIgLz4rICA8L0l0ZW1Hcm91cD4rICA8 SW1wb3J0DQo+IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRz IiAvPisgIDxJbXBvcnRHcm91cA0KPiBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+KyAgPC9JbXBv cnRHcm91cD4rPC9Qcm9qZWN0Pg0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gZGlm ZiAtLWdpdCBhL3dpbmRvd3MvdmlydDJwaHlzL3ZpcnQycGh5cy52Y3hwcm9qLmZpbHRlcnMNCj4g Yi93aW5kb3dzL3ZpcnQycGh5cy92aXJ0MnBoeXMudmN4cHJvai5maWx0ZXJzDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjBmZTY1ZmMNCj4gLS0tIC9kZXYvbnVsbA0K PiArKysgYi93aW5kb3dzL3ZpcnQycGh5cy92aXJ0MnBoeXMudmN4cHJvai5maWx0ZXJzDQo+IEBA IC0wLDAgKzEsMzYgQEANCj4gK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04 Ij8+KzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIg0KPiB4bWxucz0iaHR0cHM6Ly9ldXIwMy5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMg0KPiBGc2No ZW1hcy5taWNyb3NvZnQuY29tJTJGZGV2ZWxvcGVyJTJGbXNidWlsZCUyRjIwMDMmYW1wO2RhdGE9 MDIlDQo+IDdDMDElN0NvcGhpcm11JTQwbWVsbGFub3guY29tJTdDODZkYTQzMWYyYjkwNGRjYTNk ODIwOGQ3ZTBhYzRjDQo+IGQwJTdDYTY1Mjk3MWM3ZDJlNGQ5YmE2YTRkMTQ5MjU2ZjQ2MWIlN0Mw JTdDMCU3QzYzNzIyNDkwMjkzOQ0KPiA2ODU0NzgmYW1wO3NkYXRhPU43SFBEbWExcXJYVjZzb2JP UzB0Ymxoc2dhRVVlUEQ4bFhxaG55WEQxc1UlDQo+IDNEJmFtcDtyZXNlcnZlZD0wIj4rICA8SXRl bUdyb3VwPisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPisNCj4gPFVuaXF1ZUlk ZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LQ0KPiAyQTMyRDc1MkEyRkZ9PC9Vbmlx dWVJZGVudGlmaWVyPisNCj4gPEV4dGVuc2lvbnM+Y3BwO2M7Y2M7Y3h4O2RlZjtvZGw7aWRsO2hw ajtiYXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+Kw0KPiA8L0ZpbHRlcj4rICAgIDxGaWx0ZXIgSW5j bHVkZT0iSGVhZGVyIEZpbGVzIj4rDQo+IDxVbmlxdWVJZGVudGlmaWVyPns5Mzk5NTM4MC04OUJE LTRiMDQtODhFQi0NCj4gNjI1RkJFNTJFQkZCfTwvVW5pcXVlSWRlbnRpZmllcj4rDQo+IDxFeHRl bnNpb25zPmg7aHBwO2h4eDtobTtpbmw7aW5jO3hzZDwvRXh0ZW5zaW9ucz4rICAgIDwvRmlsdGVy PisgICAgPEZpbHRlcg0KPiBJbmNsdWRlPSJSZXNvdXJjZSBGaWxlcyI+KyAgICAgIDxVbmlxdWVJ ZGVudGlmaWVyPns2N0RBNkFCNi1GODAwLTRjMDgtDQo+IDhCN0EtODNCQjEyMUFBRDAxfTwvVW5p cXVlSWRlbnRpZmllcj4rDQo+IDxFeHRlbnNpb25zPnJjO2ljbztjdXI7Ym1wO2RsZztyYzI7cmN0 O2JpbjtyZ3M7Z2lmO2pwZztqcGVnO2pwZTtyZXN4O3RpZmY7dGlmO3BuDQo+IGc7d2F2O21mY3Jp YmJvbi1tczwvRXh0ZW5zaW9ucz4rICAgIDwvRmlsdGVyPisgICAgPEZpbHRlciBJbmNsdWRlPSJE cml2ZXINCj4gRmlsZXMiPisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57OEU0MTIxNEItNjc4NS00 Q0ZFLUI5OTItDQo+IDAzN0Q2ODk0OUExNH08L1VuaXF1ZUlkZW50aWZpZXI+Kw0KPiA8RXh0ZW5z aW9ucz5pbmY7aW52O2lueDttb2Y7bWM7PC9FeHRlbnNpb25zPisgICAgPC9GaWx0ZXI+KyAgPC9J dGVtR3JvdXA+Kw0KPiA8SXRlbUdyb3VwPisgICAgPEluZiBJbmNsdWRlPSJ2aXJ0MnBoeXMuaW5m Ij4rICAgICAgPEZpbHRlcj5Ecml2ZXINCj4gRmlsZXM8L0ZpbHRlcj4rICAgIDwvSW5mPisgIDwv SXRlbUdyb3VwPisgIDxJdGVtR3JvdXA+KyAgICA8Q2xJbmNsdWRlDQo+IEluY2x1ZGU9InZpcnQy cGh5cy5oIj4rICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4rICAgIDwvQ2xJbmNs dWRlPisNCj4gPC9JdGVtR3JvdXA+KyAgPEl0ZW1Hcm91cD4rICAgIDxDbENvbXBpbGUgSW5jbHVk ZT0idmlydDJwaHlzLmMiPisNCj4gPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4rICAgIDwv Q2xDb21waWxlPisgIDwvSXRlbUdyb3VwPis8L1Byb2plY3Q+LS0NCj4gMi4yNS4xDQoNCg==