From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0D25C2BBCA for ; Tue, 25 Jun 2024 18:41:34 +0000 (UTC) Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) by mx.groups.io with SMTP id smtpd.web11.4408.1719340885418775105 for ; Tue, 25 Jun 2024 11:41:26 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: kernel.crashing.org, ip: 63.228.1.57, mailfrom: mark.hatle@kernel.crashing.org) Received: from kernel.crashing.org (70-99-78-136.nuveramail.net [70.99.78.136] (may be forged)) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id 45PIeJJb000658; Tue, 25 Jun 2024 13:40:20 -0500 Received: from [192.168.2.236] ([192.168.2.236]) by kernel.crashing.org (8.14.7/8.14.7) with ESMTP id 45PIeICX029378; Tue, 25 Jun 2024 13:40:19 -0500 Message-ID: Date: Tue, 25 Jun 2024 13:40:18 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [OE-core][PATCH v4 03/10] classes/create-spdx-3.0: Add classes Content-Language: en-US To: Joshua Watt , openembedded-core@lists.openembedded.org References: <20240619221805.3038528-1-JPEWhacker@gmail.com> <20240624193151.1645802-1-JPEWhacker@gmail.com> <20240624193151.1645802-4-JPEWhacker@gmail.com> From: Mark Hatle In-Reply-To: <20240624193151.1645802-4-JPEWhacker@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 25 Jun 2024 18:41:34 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/201143 Q29tbWVudHMgaW5saW5lIGJlbG93DQoNCk9uIDYvMjQvMjQgMjoxMCBQTSwgSm9zaHVhIFdh dHQgd3JvdGU6DQo+IEFkZHMgYSBjbGFzcyB0byBnZW5lcmF0ZSBTUERYIDMuMCBvdXRwdXQg YW5kIGFuIGltYWdlIGNsYXNzIHRoYXQgaXMgdXNlZA0KPiB3aGVuIGdlbmVyYXRpbmcgaW1h Z2VzDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKb3NodWEgV2F0dCA8SlBFV2hhY2tlckBnbWFp bC5jb20+DQo+IC0tLQ0KPiAgIG1ldGEvY2xhc3Nlcy1yZWNpcGUvcGFja2FnZWdyb3VwLmJi Y2xhc3MgICB8ICAgIDIgKw0KPiAgIG1ldGEvY2xhc3Nlcy9jcmVhdGUtc3BkeC0zLjAuYmJj bGFzcyAgICAgICB8IDExNzkgKysrKw0KPiAgIG1ldGEvY2xhc3Nlcy9jcmVhdGUtc3BkeC1p bWFnZS0zLjAuYmJjbGFzcyB8ICAyMjQgKw0KPiAgIG1ldGEvY2xhc3Nlcy9zcGR4LWNvbW1v bi5iYmNsYXNzICAgICAgICAgICB8ICAgIDYgKy0NCj4gICBtZXRhL2xpYi9vZS9zYm9tMzAu cHkgICAgICAgICAgICAgICAgICAgICAgfCAxMTIyICsrKysNCj4gICBtZXRhL2xpYi9vZS9z cGR4MzAucHkgICAgICAgICAgICAgICAgICAgICAgfCA1OTk2ICsrKysrKysrKysrKysrKysr KysrDQo+ICAgNiBmaWxlcyBjaGFuZ2VkLCA4NTI4IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbWV0YS9jbGFzc2VzL2NyZWF0ZS1zcGR4 LTMuMC5iYmNsYXNzDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IG1ldGEvY2xhc3Nlcy9jcmVh dGUtc3BkeC1pbWFnZS0zLjAuYmJjbGFzcw0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBtZXRh L2xpYi9vZS9zYm9tMzAucHkNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbWV0YS9saWIvb2Uv c3BkeDMwLnB5DQo+IA0KPiBkaWZmIC0tZ2l0IGEvbWV0YS9jbGFzc2VzLXJlY2lwZS9wYWNr YWdlZ3JvdXAuYmJjbGFzcyBiL21ldGEvY2xhc3Nlcy1yZWNpcGUvcGFja2FnZWdyb3VwLmJi Y2xhc3MNCj4gaW5kZXggY2Y2ZmMzNTRhODEuLjIwOTljOGIzN2Q2IDEwMDY0NA0KPiAtLS0g YS9tZXRhL2NsYXNzZXMtcmVjaXBlL3BhY2thZ2Vncm91cC5iYmNsYXNzDQo+ICsrKyBiL21l dGEvY2xhc3Nlcy1yZWNpcGUvcGFja2FnZWdyb3VwLmJiY2xhc3MNCj4gQEAgLTU2LDYgKzU2 LDggQEAgZGVsdGFzayBkb19wb3B1bGF0ZV9zeXNyb290DQo+ICAgDQo+ICAgZG9fY3JlYXRl X3J1bnRpbWVfc3BkeFtkZXB0YXNrXSA9ICJkb19jcmVhdGVfc3BkeCINCj4gICBkb19jcmVh dGVfcnVudGltZV9zcGR4W3JkZXB0YXNrXSA9ICIiDQo+ICtkb19jcmVhdGVfcGFja2FnZV9z cGR4W2RlcHRhc2tdID0gImRvX2NyZWF0ZV9zcGR4Ig0KPiArZG9fY3JlYXRlX3BhY2thZ2Vf c3BkeFtyZGVwdGFza10gPSAiIg0KPiAgIA0KPiAgIElOSElCSVRfREVGQVVMVF9ERVBTID0g IjEiDQo+ICAgDQo+IGRpZmYgLS1naXQgYS9tZXRhL2NsYXNzZXMvY3JlYXRlLXNwZHgtMy4w LmJiY2xhc3MgYi9tZXRhL2NsYXNzZXMvY3JlYXRlLXNwZHgtMy4wLmJiY2xhc3MNCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmFjODRiYjBjYTI2DQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvbWV0YS9jbGFzc2VzL2NyZWF0ZS1zcGR4LTMuMC5i YmNsYXNzDQo+IEBAIC0wLDAgKzEsMTE3OSBAQA0KPiArIw0KPiArIyBDb3B5cmlnaHQgT3Bl bkVtYmVkZGVkIENvbnRyaWJ1dG9ycw0KPiArIw0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMC1vbmx5DQo+ICsjDQo+ICsNCj4gK2luaGVyaXQgc3BkeC1jb21tb24N Cj4gKw0KPiArU1BEWF9WRVJTSU9OID0gIjMuMC4wIg0KPiArDQo+ICsjIFRoZSBsaXN0IG9m IFNQRFggcHJvZmlsZXMgZ2VuZXJhdGVkIGRvY3VtZW50cyB3aWxsIGNvbmZvcm0gdG8NCj4g K1NQRFhfUFJPRklMRVMgPz0gImNvcmUgYnVpbGQgc29mdHdhcmUgc2ltcGxlTGljZW5zaW5n IHNlY3VyaXR5Ig0KPiArDQo+ICtTUERYX0lOQ0xVREVfQlVJTERfVkFSSUFCTEVTID8/PSAi MCINCj4gK1NQRFhfSU5DTFVERV9CVUlMRF9WQVJJQUJMRVNbZG9jXSA9ICJJZiBzZXQgdG8g JzEnLCB0aGUgYml0YmFrZSB2YXJpYWJsZXMgZm9yIGEgXA0KPiArICAgIHJlY2lwZSB3aWxs IGJlIGluY2x1ZGVkIGluIHRoZSBCdWlsZCBvYmplY3QiDQo+ICsNCj4gK1NQRFhfSU1QT1JU UyA/Pz0gIiINCj4gK1NQRFhfSU1QT1JUU1tkb2NdID0gIlNQRFhfSU1QT1JUUyBpcyB0aGUg YmFzZSB2YXJpYWJsZSB0aGF0IGRlc2NyaWJlcyBob3cgdG8gXA0KPiArICAgIHJlZmVyZW5j ZSBleHRlcm5hbCBTUERYIGlkcy4gRWFjaCBpbXBvcnQgaXMgZGVmaW5lZCBhcyBhIGtleSBp biB0aGlzIFwNCj4gKyAgICB2YXJpYWJsZSB3aXRoIGEgc3VmZml4IHRvIGRlc2NyaWJlIHRv IGFzIGEgc3VmZml4IHRvIGxvb2sgdXAgbW9yZSBcDQo+ICsgICAgaW5mb3JtYXRpb24gYWJv dXQgdGhlIGltcG9ydC4gRWFjaCBrZXkgY2FuIGhhdmUgdGhlIGZvbGxvd2luZyB2YXJpYWJs ZXM6IFwNCj4gKyAgICAgICAgU1BEWF9JTVBPUlRTXzxrZXk+X3NwZHhpZDogVGhlIEZ1bGx5 IHF1YWxpZmllZCBTUERYIElEIG9mIHRoZSBvYmplY3QgXA0KPiArICAgICAgICBTUERYX0lN UE9SVFNfPGtleT5fdXJpOiBUaGUgVVJJIHdoZXJlIHRoZSBTUERYIERvY3VtZW50IHRoYXQg Y29udGFpbnMgXA0KPiArICAgICAgICAgICAgdGhlIGV4dGVybmFsIG9iamVjdCBjYW4gYmUg Zm91bmQuIE9wdGlvbmFsIGJ1dCByZWNvbW1lbmRlZCBcDQo+ICsgICAgICAgIFNQRFhfSU1Q T1JUU188a2V5Pl9oYXNoXzxoYXNoPjogVGhlIENoZWNrc3VtIG9mIHRoZSBTUERYIERvY3Vt ZW50IHRoYXQgXA0KPiArICAgICAgICAgICAgY29udGFpbnMgdGhlIEV4dGVybmFsIElELiA8 aGFzaD4gbXVzdCBiZSBvbmUgdGhlIHZhbGlkIFNQRFggaGFzaGluZyBcDQo+ICsgICAgICAg ICAgICBhbGdvcml0aG1zLCBhcyBkZXNjcmliZWQgYnkgdGhlIEhhc2hBbGdvcml0aG0gdm9j YWJ1bGFyeSBpbiB0aGVcDQo+ICsgICAgICAgICAgICBTUERYIDMgc3BlYy4gT3B0aW9uYWwg YnV0IHJlY29tbWVuZGVkIFwNCj4gKyINCj4gKw0KPiArIyBBZ2VudHMNCj4gKyMgICBCaXRi YWtlIHZhcmlhYmxlcyBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBhbiBTUERYIEFnZW50IHRo YXQgbWF5IGJlIHVzZWQNCj4gKyMgICBkdXJpbmcgdGhlIGJ1aWxkLiBBbiBBZ2VudCBpcyBz cGVjaWZpZWQgdXNpbmcgYSBzZXQgb2YgdmFyaWFibGVzIHdoaWNoIGFsbA0KPiArIyAgIHN0 YXJ0IHdpdGggc29tZSBjb21tb24gYmFzZSBuYW1lOg0KPiArIw0KPiArIyAgIDxCQVNFPl9u YW1lOiBUaGUgbmFtZSBvZiB0aGUgQWdlbnQgKHJlcXVpcmVkKQ0KPiArIyAgIDxCQVNFPl90 eXBlOiBUaGUgdHlwZSBvZiBBZ2VudC4gTXVzdCBiZSBvbmUgb2YgInBlcnNvbiIsICJvcmdh bml6YXRpb24iLA0KPiArIyAgICAgICAic29mdHdhcmUiLCBvciAiYWdlbnQiICh0aGUgZGVm YXVsdCBpZiBub3Qgc3BlY2lmaWVkKQ0KPiArIyAgIDxCQVNFPl9jb21tZW50OiBUaGUgY29t bWVudCBmb3IgdGhlIEFnZW50IChvcHRpb25hbCkNCj4gKyMgICA8QkFTRT5faWRfPElEPjog QW5kIEV4dGVybmFsIElkZW50aWZpZXIgZm9yIHRoZSBBZ2VudC4gPElEPiBtdXN0IGJlIGEg dmFsaWQNCj4gKyMgICAgICAgRXh0ZXJuYWxJZGVudGlmaWVyVHlwZSBmcm9tIHRoZSBTUERY IDMgc3BlYy4gQ29tbW9ubHksIGFuIEUtbWFpbCBhZGRyZXNzDQo+ICsjICAgICAgIGNhbiBi ZSBzcGVjaWZpZWQgd2l0aCA8QkFTRT5faWRfZW1haWwNCj4gKyMNCj4gKyMgICBBbHRlcm5h dGl2ZWx5LCBhbiBBZ2VudCBjYW4gYmUgYW4gZXh0ZXJuYWwgcmVmZXJlbmNlIGJ5IHJlZmVy ZW5jaW5nIGEga2V5DQo+ICsjICAgaW4gU1BEWF9JTVBPUlRTIGxpa2Ugc286DQo+ICsjDQo+ ICsjICAgPEJBU0U+X2ltcG9ydCA9ICI8a2V5PiINCj4gKyMNCj4gKyMgICBGaW5hbGx5LCB0 aGUgc2FtZSBhZ2VudCBkZXNjcmliZWQgYnkgYW5vdGhlciBzZXQgb2YgYWdlbnQgdmFyaWFi bGVzIGNhbiBiZQ0KPiArIyAgIHJlZmVyZW5jZWQgYnkgc3BlY2lmeWluZyB0aGUgYmFzZW5h bWUgb2YgdGhlIHZhcmlhYmxlIHRoYXQgc2hvdWxkIGJlDQo+ICsjICAgcmVmZXJlbmNlZDoN Cj4gKyMNCj4gKyMgICBTUERYX1BBQ0tBR0VfU1VQUExJRVJfcmVmID0gIlNQRFhfQVVUSE9S U19vcGVuZW1iZWRkZWQiDQo+ICsNCj4gK1NQRFhfQVVUSE9SUyA/Pz0gIm9wZW5lbWJlZGRl ZCINCj4gK1NQRFhfQVVUSE9SU1tkb2NdID0gIkEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2Yg dGhlIGRvY3VtZW50IGF1dGhvcnMuIEVhY2ggaXRlbSBcDQo+ICsgICAgaXMgdXNlZCB0byBu YW1lIGEgYmFzZSB2YXJpYWJsZSBsaWtlIFNQRFhfQVVUSE9SU188QVVUSE9SPiB0aGF0IFwN Cj4gKyAgICBkZXNjcmliZXMgdGhlIGF1dGhvci4iDQo+ICsNCj4gK1NQRFhfQVVUSE9SU19v cGVuZW1iZWRkZWRfbmFtZSA9ICJPcGVuRW1iZWRkZWQiDQo+ICtTUERYX0FVVEhPUlNfb3Bl bmVtYmVkZGVkX3R5cGUgPSAib3JnYW5pemF0aW9uIg0KPiArDQo+ICtTUERYX0JVSUxEX0hP U1RbZG9jXSA9ICJUaGUgYmFzZSB2YXJpYWJsZSBuYW1lIHRvIGRlc2NyaWJlIHRoZSBidWls ZCBob3N0IG9uIFwNCj4gKyAgICB3aGljaCBhIGJ1aWxkIGlzIHJ1bm5pbmcuIE11c3QgYmUg YW4gU1BEWF9JTVBPUlRTIGtleSINCg0KSXMgdGhlcmUgYW55IHNvcnQgb2YgZG9jdW1lbnRh dGlvbiBvciBleHRlcm5hbCByZWZlcmVuY2UgZm9yIHRoZSB2YXJpYWJsZSBhYm92ZSANCihh cyB3ZWxsIGFzIHRoZSBTUERYXyBiZWxvdykgdGhhdCBleHBsYWlucyB3aGF0IHRoZSBTUERY IHN0YW5kYXJkIGlzIGV4cGVjdGluZyANCnRvIGJlIHB1dCBpbiB0aGVyZT8NCg0KSS5lLiBt YWNoaW5lIG5hbWUsIGhvc3QgdHlwZSwgYW4gYXJiaXRyYXJ5IHN0cmluZyB0aGF0IG1lYW5z IHNvbWV0aGluZyB0byB0aGUgDQphZ2VudCBjb25zdHJ1Y3Rpb24gdGhlIFNQRFgsIGV0Yy4g IEkuZS4gaG93IHdvdWxkIEkga25vdyB3aGF0IGlzIHZhbGlkIGluIHRoZXNlIA0KdmFyaW91 cyB0aGluZ3M/DQoNClRoaXMgdGhlbiBsZWFkcyB0byBhIHNlY29uZCBxdWVzdGlvbiwgZGV0 ZXJtaW5pc3RpYyBiZWhhdmlvci9yZXByb2R1Y2liaWxpdHkuICBJIA0KYmVsaWV2ZSB0aGUg cHVycG9zZSBvZiB0aGlzIGlzIHJlcHJvZHVjaWJsZSBidWlsZHMsIGJ1dCB3ZSBzaG91bGQg aGF2ZSBhIG1vcmUgDQpkZXRlcm1pbmlzdGljIGFwcHJvYWNoIGluIHRoZSBZb2N0byBQcm9q ZWN0IHdoZXJlIHdlIHByb3ZpZGUgKGFuZC9vciBjaGVjayBmb3IgDQpob3N0IGNhcGFiaWxp dGllcykgdG8gaGVscCBhbGxvdyB0aGlzIHRvIGJlIGEgbW9yZSBnZW5lcmljLCBtYW55IGRp ZmZlcmVudCBob3N0IA0KcHJvY2Vzcy4NCg0KV2hpY2ggbGVhZHMgdG8gYSB0aGlyZCBxdWVz dGlvbiwgd2hlbiBhIGJ1aWxkIHVzZXMgc3N0YXRlLWNhY2hlLCBlYWNoIGhvc3QgY291bGQg DQpiZSBkaWZmZXJlbnQgdGhlbiB0aGUgYnVpbGQgaG9zdCB0aGF0IGFjdHVhbGx5IGNvbWJp bmVzIHRoZSBidWlsZHMgaW50byBhbiBpbWFnZSANCihTQk9NKS4gIElzIHRoaXMgYSBjb25j ZXJuPw0KDQo+ICtTUERYX0lOVk9LRURfQllbZG9jXSA9ICJUaGUgYmFzZSB2YXJpYWJsZSBu YW1lIHRvIGRlc2NyaWJlIHRoZSBBZ2VudCB0aGF0IFwNCj4gKyAgICBpbnZva2VkIHRoZSBi dWlsZCwgd2hpY2ggYnVpbGRzIHdpbGwgbGluayB0byBpZiBzcGVjaWZpZWQuIg0KPiArDQo+ ICtTUERYX09OX0JFSEFMRl9PRltkb2NdID0gIlRoZSBiYXNlIHZhcmlhYmxlIG5hbWUgdG8g ZGVzY3JpYmUgdGhlIEFnZW50IG9uIHdobydzIFwNCj4gKyAgICBiZWhhbGYgdGhlIGludm9r aW5nIEFnZW50IChTUERYX0lOVk9LRURfQlkpIGlzIHJ1bm5pbmcgdGhlIGJ1aWxkLiINCj4g Kw0KPiArU1BEWF9QQUNLQUdFX1NVUFBMSUVSW2RvY10gPSAiVGhlIGJhc2UgdmFyaWFibGUg bmFtZSB0byBkZXNjcmliZSB0aGUgQWdlbnQgd2hvIGlzIHN1cHBseWluZyBcDQo+ICsgICAg YXJ0aWZhY3RzIHByb2R1Y2VkIGJ5IHRoZSBidWlsZCINCj4gKw0KPiArU1BEWF9QQUNLQUdF X0FERElUSU9OQUxfUFVSUE9TRSA/PSAiIg0KPiArU1BEWF9QQUNLQUdFX0FERElUSU9OQUxf UFVSUE9TRVtkb2NdID0gIlRoZSBsaXN0IG9mIGFkZGl0aW9uYWwgcHVycG9zZXMgdG8gYXNz aWduIHRvIFwNCj4gKyAgICB0aGUgZ2VuZXJhdGVkIHBhY2thZ2VzIGZvciBhIHJlY2lwZS4g VGhlIHByaW1hcnkgcHVycG9zZSBpcyBhbHdheXMgYGluc3RhbGxgLiBcDQo+ICsgICAgUGFj a2FnZXMgb3ZlcnJpZGVzIGFyZSBhbGxvd2VkIHRvIG92ZXJyaWRlIHRoZSBhZGRpdGlvbmFs IHB1cnBvc2VzIGZvciBcDQo+ICsgICAgaW5kaXZpZHVhbCBwYWNrYWdlcy4iDQo+ICsNCj4g K1NQRFhfSU1BR0VfUFVSUE9TRSA/PSAiZmlsZXN5c3RlbUltYWdlIg0KPiArU1BEWF9JTUFH RV9QVVJQT1NFW2RvY10gPSAiVGhlIGxpc3Qgb2YgcHVycG9zZXMgdG8gYXNzaWduIHRvIHRo ZSBnZW5lcmF0ZWQgaW1hZ2VzLiBcDQo+ICsgICAgVGhlIGZpcnN0IGxpc3RlZCBpdGVtIHdp bGwgYmUgdGhlIFByaW1hcnkgUHVycG9zZSBhbmQgYWxsIGFkZGl0aW9uYWwgaXRlbXMgd2ls bCBcDQo+ICsgICAgYmUgYWRkZWQgYXMgYWRkaXRpb25hbCBwdXJwb3NlcyINCj4gKw0KPiAr U1BEWF9TREtfUFVSUE9TRSA/PSAiaW5zdGFsbCINCj4gK1NQRFhfU0RLX1BVUlBPU0VbZG9j XSA9ICJUaGUgbGlzdCBvZiBwdXJwb3NlcyB0byBhc3NpZ24gdG8gdGhlIGdlbmVyYXRlIFNE SyBpbnN0YWxsZXIuIFwNCj4gKyAgICBUaGUgZmlyc3QgbGlzdGVkIGl0ZW0gd2lsbCBiZSB0 aGUgUHJpbWFyeSBQdXJwb3NlIGFuZCBhbGwgYWRkaXRpb25hbCBpdGVtcyB3aWxsIFwNCj4g KyAgICBiZSBhZGRlZCBhcyBhZGRpdGlvbmFsIHB1cnBvc2VzIg0KPiArDQo+ICtTUERYX0lO Q0xVREVfVkVYID8/PSAiY3VycmVudCINCj4gK1NQRFhfSU5DTFVERV9WRVhbZG9jXSA9ICJD b250cm9scyB3aGF0IFZFWCBpbmZvcm1hdGlvbiBpcyBpbiB0aGUgb3V0cHV0LiBTZXQgdG8g XA0KPiArICAgICdub25lJyB0byBkaXNhYmxlIGFsbCBWRVggZGF0YS4gU2V0IHRvICdjdXJy ZW50JyB0byBvbmx5IGluY2x1ZGUgVkVYIGRhdGEgXA0KPiArICAgIGZvciB2dWxuZXJhYmls aXRpZXMgbm90IGFscmVhZHkgZml4ZWQgaW4gdGhlIHVwc3RyZWFtIHNvdXJjZSBjb2RlIFwN Cj4gKyAgICAocmVjb21tZW5kZWQpLiBTZXQgIHRvICdhbGwnIHRvIGdldCBhbGwga25vd24g aGlzdG9yaWNhbCB2dWxuZXJhYmlsaXRpZXMsIFwNCj4gKyAgICBpbmNsdWRpbmcgdGhvc2Ug YWxyZWFkeSBmaXhlZCB1cHN0cmVhbSAod2FybmluZzogVGhpcyBjYW4gYmUgbGFyZ2UgYW5k IFwNCj4gKyAgICBzbG93KS4iDQo+ICsNCj4gK0lNQUdFX0NMQVNTRVM6YXBwZW5kID0gIiBj cmVhdGUtc3BkeC1pbWFnZS0zLjAiDQo+ICsNCj4gK2RlZiBhZGRfbGljZW5zZV9leHByZXNz aW9uKGQsIG9ianNldCwgbGljZW5zZV9leHByZXNzaW9uKToNCj4gKyAgICBmcm9tIHBhdGhs aWIgaW1wb3J0IFBhdGgNCj4gKyAgICBpbXBvcnQgb2Uuc3BkeDMwDQo+ICsgICAgaW1wb3J0 IG9lLnNib20zMA0KPiArDQo+ICsgICAgbGljZW5zZV9kYXRhID0gZC5nZXRWYXIoIlNQRFhf TElDRU5TRV9EQVRBIikNCj4gKyAgICBzaW1wbGVfbGljZW5zZV90ZXh0ID0ge30NCj4gKyAg ICBsaWNlbnNlX3RleHRfbWFwID0ge30NCj4gKyAgICBsaWNlbnNlX3JlZl9pZHggPSAwDQo+ ICsNCj4gKyAgICBkZWYgYWRkX2xpY2Vuc2VfdGV4dChuYW1lKToNCj4gKyAgICAgICAgbm9u bG9jYWwgb2Jqc2V0DQo+ICsgICAgICAgIG5vbmxvY2FsIHNpbXBsZV9saWNlbnNlX3RleHQN Cj4gKw0KPiArICAgICAgICBpZiBuYW1lIGluIHNpbXBsZV9saWNlbnNlX3RleHQ6DQo+ICsg ICAgICAgICAgICByZXR1cm4gc2ltcGxlX2xpY2Vuc2VfdGV4dFtuYW1lXQ0KPiArDQo+ICsg ICAgICAgIGxpYyA9IG9ianNldC5maW5kX2ZpbHRlcigNCj4gKyAgICAgICAgICAgIG9lLnNw ZHgzMC5zaW1wbGVsaWNlbnNpbmdfU2ltcGxlTGljZW5zaW5nVGV4dCwNCj4gKyAgICAgICAg ICAgIG5hbWU9bmFtZSwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGlmIGxpYyBp cyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIHNpbXBsZV9saWNlbnNlX3RleHRbbmFtZV0g PSBsaWMNCj4gKyAgICAgICAgICAgIHJldHVybiBsaWMNCj4gKw0KPiArICAgICAgICBsaWMg PSBvYmpzZXQuYWRkKG9lLnNwZHgzMC5zaW1wbGVsaWNlbnNpbmdfU2ltcGxlTGljZW5zaW5n VGV4dCgNCj4gKyAgICAgICAgICAgIF9pZD1vYmpzZXQubmV3X3NwZHhpZCgibGljZW5zZS10 ZXh0IiwgbmFtZSksDQo+ICsgICAgICAgICAgICBjcmVhdGlvbkluZm89b2Jqc2V0LmRvYy5j cmVhdGlvbkluZm8sDQo+ICsgICAgICAgICAgICBuYW1lPW5hbWUsDQo+ICsgICAgICAgICkp DQo+ICsgICAgICAgIHNpbXBsZV9saWNlbnNlX3RleHRbbmFtZV0gPSBsaWMNCj4gKw0KPiAr ICAgICAgICBpZiBuYW1lID09ICJQRCI6DQo+ICsgICAgICAgICAgICBsaWMuc2ltcGxlbGlj ZW5zaW5nX2xpY2Vuc2VUZXh0ID0gIlNvZnR3YXJlIHJlbGVhc2VkIHRvIHRoZSBwdWJsaWMg ZG9tYWluIg0KPiArICAgICAgICAgICAgcmV0dXJuIGxpYw0KPiArDQo+ICsgICAgICAgICMg U2VhY2ggZm9yIHRoZSBsaWNlbnNlIGluIENPTU1PTl9MSUNFTlNFX0RJUiBhbmQgTElDRU5T RV9QQVRIDQo+ICsgICAgICAgIGZvciBkaXJlY3RvcnkgaW4gW2QuZ2V0VmFyKCdDT01NT05f TElDRU5TRV9ESVInKV0gKyAoZC5nZXRWYXIoJ0xJQ0VOU0VfUEFUSCcpIG9yICcnKS5zcGxp dCgpOg0KPiArICAgICAgICAgICAgdHJ5Og0KPiArICAgICAgICAgICAgICAgIHdpdGggKFBh dGgoZGlyZWN0b3J5KSAvIG5hbWUpLm9wZW4oZXJyb3JzPSJyZXBsYWNlIikgYXMgZjoNCj4g KyAgICAgICAgICAgICAgICAgICAgbGljLnNpbXBsZWxpY2Vuc2luZ19saWNlbnNlVGV4dCA9 IGYucmVhZCgpDQo+ICsgICAgICAgICAgICAgICAgICAgIHJldHVybiBsaWMNCj4gKw0KPiAr ICAgICAgICAgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOg0KPiArICAgICAgICAgICAg ICAgIHBhc3MNCj4gKw0KPiArICAgICAgICAjIElmIGl0J3Mgbm90IFNQRFggb3IgUEQsIHRo ZW4gTk9fR0VORVJJQ19MSUNFTlNFIG11c3QgYmUgc2V0DQo+ICsgICAgICAgIGZpbGVuYW1l ID0gZC5nZXRWYXJGbGFnKCdOT19HRU5FUklDX0xJQ0VOU0UnLCBuYW1lKQ0KPiArICAgICAg ICBpZiBmaWxlbmFtZToNCj4gKyAgICAgICAgICAgIGZpbGVuYW1lID0gZC5leHBhbmQoIiR7 U30vIiArIGZpbGVuYW1lKQ0KPiArICAgICAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCBl cnJvcnM9InJlcGxhY2UiKSBhcyBmOg0KPiArICAgICAgICAgICAgICAgIGxpYy5zaW1wbGVs aWNlbnNpbmdfbGljZW5zZVRleHQgPSBmLnJlYWQoKQ0KPiArICAgICAgICAgICAgICAgIHJl dHVybiBsaWMNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIGJiLmZhdGFsKCJD YW5ub3QgZmluZCBhbnkgdGV4dCBmb3IgbGljZW5zZSAlcyIgJSBuYW1lKQ0KPiArDQo+ICsg ICAgZGVmIGNvbnZlcnQobCk6DQo+ICsgICAgICAgIG5vbmxvY2FsIGxpY2Vuc2VfdGV4dF9t YXANCj4gKyAgICAgICAgbm9ubG9jYWwgbGljZW5zZV9yZWZfaWR4DQo+ICsNCj4gKyAgICAg ICAgaWYgbCA9PSAiKCIgb3IgbCA9PSAiKSI6DQo+ICsgICAgICAgICAgICByZXR1cm4gbA0K PiArDQo+ICsgICAgICAgIGlmIGwgPT0gIiYiOg0KPiArICAgICAgICAgICAgcmV0dXJuICJB TkQiDQo+ICsNCj4gKyAgICAgICAgaWYgbCA9PSAifCI6DQo+ICsgICAgICAgICAgICByZXR1 cm4gIk9SIg0KPiArDQo+ICsgICAgICAgIGlmIGwgPT0gIkNMT1NFRCI6DQo+ICsgICAgICAg ICAgICByZXR1cm4gIk5PTkUiDQo+ICsNCj4gKyAgICAgICAgc3BkeF9saWNlbnNlID0gZC5n ZXRWYXJGbGFnKCJTUERYTElDRU5TRU1BUCIsIGwpIG9yIGwNCj4gKyAgICAgICAgaWYgc3Bk eF9saWNlbnNlIGluIGxpY2Vuc2VfZGF0YVsibGljZW5zZXMiXToNCj4gKyAgICAgICAgICAg IHJldHVybiBzcGR4X2xpY2Vuc2UNCj4gKw0KPiArICAgICAgICBzcGR4X2xpY2Vuc2UgPSAi TGljZW5zZVJlZi0iICsgbA0KPiArICAgICAgICBpZiBzcGR4X2xpY2Vuc2Ugbm90IGluIGxp Y2Vuc2VfdGV4dF9tYXA6DQo+ICsgICAgICAgICAgICBsaWNlbnNlX3RleHRfbWFwW3NwZHhf bGljZW5zZV0gPSBhZGRfbGljZW5zZV90ZXh0KGwpLl9pZA0KPiArDQo+ICsgICAgICAgIHJl dHVybiBzcGR4X2xpY2Vuc2UNCj4gKw0KPiArICAgIGxpY19zcGxpdCA9IGxpY2Vuc2VfZXhw cmVzc2lvbi5yZXBsYWNlKCIoIiwgIiAoICIpLnJlcGxhY2UoIikiLCAiICkgIikucmVwbGFj ZSgifCIsICIgfCAiKS5yZXBsYWNlKCImIiwgIiAmICIpLnNwbGl0KCkNCj4gKyAgICBzcGR4 X2xpY2Vuc2VfZXhwcmVzc2lvbiA9ICcgJy5qb2luKGNvbnZlcnQobCkgZm9yIGwgaW4gbGlj X3NwbGl0KQ0KPiArDQo+ICsgICAgcmV0dXJuIG9ianNldC5uZXdfbGljZW5zZV9leHByZXNz aW9uKHNwZHhfbGljZW5zZV9leHByZXNzaW9uLCBsaWNlbnNlX3RleHRfbWFwKQ0KPiArDQo+ ICsNCj4gK2RlZiBhZGRfcGFja2FnZV9maWxlcyhkLCBvYmpzZXQsIHRvcGRpciwgZ2V0X3Nw ZHhpZCwgZ2V0X3B1cnBvc2VzLCAqLCBhcmNoaXZlPU5vbmUsIGlnbm9yZV9kaXJzPVtdLCBp Z25vcmVfdG9wX2xldmVsX2RpcnM9W10pOg0KPiArICAgIGZyb20gcGF0aGxpYiBpbXBvcnQg UGF0aA0KPiArICAgIGltcG9ydCBvZS5zcGR4MzANCj4gKyAgICBpbXBvcnQgb2Uuc2JvbTMw DQo+ICsNCj4gKyAgICBzb3VyY2VfZGF0ZV9lcG9jaCA9IGQuZ2V0VmFyKCJTT1VSQ0VfREFU RV9FUE9DSCIpDQo+ICsgICAgaWYgc291cmNlX2RhdGVfZXBvY2g6DQo+ICsgICAgICAgIHNv dXJjZV9kYXRlX2Vwb2NoID0gaW50KHNvdXJjZV9kYXRlX2Vwb2NoKQ0KPiArDQo+ICsgICAg c3BkeF9maWxlcyA9IHNldCgpDQo+ICsNCj4gKyAgICBmaWxlX2NvdW50ZXIgPSAxDQo+ICsg ICAgZm9yIHN1YmRpciwgZGlycywgZmlsZXMgaW4gb3Mud2Fsayh0b3BkaXIpOg0KPiArICAg ICAgICBkaXJzWzpdID0gW2QgZm9yIGQgaW4gZGlycyBpZiBkIG5vdCBpbiBpZ25vcmVfZGly c10NCj4gKyAgICAgICAgaWYgc3ViZGlyID09IHN0cih0b3BkaXIpOg0KPiArICAgICAgICAg ICAgZGlyc1s6XSA9IFtkIGZvciBkIGluIGRpcnMgaWYgZCBub3QgaW4gaWdub3JlX3RvcF9s ZXZlbF9kaXJzXQ0KPiArDQo+ICsgICAgICAgIGZvciBmaWxlIGluIGZpbGVzOg0KPiArICAg ICAgICAgICAgZmlsZXBhdGggPSBQYXRoKHN1YmRpcikgLyBmaWxlDQo+ICsgICAgICAgICAg ICBpZiBmaWxlcGF0aC5pc19zeW1saW5rKCkgb3Igbm90IGZpbGVwYXRoLmlzX2ZpbGUoKToN Cj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiArDQo+ICsgICAgICAgICAgICBiYi5k ZWJ1ZygxLCAiQWRkaW5nIGZpbGUgJXMgdG8gJXMiICUgKGZpbGVwYXRoLCBvYmpzZXQuZG9j Ll9pZCkpDQo+ICsNCj4gKyAgICAgICAgICAgIGZpbGVuYW1lID0gc3RyKGZpbGVwYXRoLnJl bGF0aXZlX3RvKHRvcGRpcikpDQo+ICsgICAgICAgICAgICBmaWxlX3B1cnBvc2VzID0gZ2V0 X3B1cnBvc2VzKGZpbGVwYXRoKQ0KPiArDQo+ICsgICAgICAgICAgICBzcGR4X2ZpbGUgPSBv YmpzZXQubmV3X2ZpbGUoDQo+ICsgICAgICAgICAgICAgICAgZ2V0X3NwZHhpZChmaWxlX2Nv dW50ZXIpLA0KPiArICAgICAgICAgICAgICAgIGZpbGVuYW1lLA0KPiArICAgICAgICAgICAg ICAgIGZpbGVwYXRoLA0KPiArICAgICAgICAgICAgICAgIHB1cnBvc2VzPWZpbGVfcHVycG9z ZXMsDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBzcGR4X2ZpbGVzLmFkZChz cGR4X2ZpbGUpDQo+ICsNCj4gKyAgICAgICAgICAgIGlmIG9lLnNwZHgzMC5zb2Z0d2FyZV9T b2Z0d2FyZVB1cnBvc2Uuc291cmNlIGluIGZpbGVfcHVycG9zZXM6DQo+ICsgICAgICAgICAg ICAgICAgb2Jqc2V0LnNjYW5fZGVjbGFyZWRfbGljZW5zZXMoc3BkeF9maWxlLCBmaWxlcGF0 aCkNCj4gKw0KPiArICAgICAgICAgICAgaWYgYXJjaGl2ZSBpcyBub3QgTm9uZToNCj4gKyAg ICAgICAgICAgICAgICB3aXRoIGZpbGVwYXRoLm9wZW4oInJiIikgYXMgZjoNCj4gKyAgICAg ICAgICAgICAgICAgICAgaW5mbyA9IGFyY2hpdmUuZ2V0dGFyaW5mbyhmaWxlb2JqPWYpDQo+ ICsgICAgICAgICAgICAgICAgICAgIGluZm8ubmFtZSA9IGZpbGVuYW1lDQo+ICsgICAgICAg ICAgICAgICAgICAgIGluZm8udWlkID0gMA0KPiArICAgICAgICAgICAgICAgICAgICBpbmZv LmdpZCA9IDANCj4gKyAgICAgICAgICAgICAgICAgICAgaW5mby51bmFtZSA9ICJyb290Ig0K PiArICAgICAgICAgICAgICAgICAgICBpbmZvLmduYW1lID0gInJvb3QiDQo+ICsNCj4gKyAg ICAgICAgICAgICAgICAgICAgaWYgc291cmNlX2RhdGVfZXBvY2ggaXMgbm90IE5vbmUgYW5k IGluZm8ubXRpbWUgPiBzb3VyY2VfZGF0ZV9lcG9jaDoNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGluZm8ubXRpbWUgPSBzb3VyY2VfZGF0ZV9lcG9jaA0KPiArDQo+ICsgICAgICAg ICAgICAgICAgICAgIGFyY2hpdmUuYWRkZmlsZShpbmZvLCBmKQ0KPiArDQo+ICsgICAgICAg ICAgICBmaWxlX2NvdW50ZXIgKz0gMQ0KPiArDQo+ICsgICAgcmV0dXJuIHNwZHhfZmlsZXMN Cj4gKw0KPiArDQo+ICtkZWYgZ2V0X3BhY2thZ2Vfc291cmNlc19mcm9tX2RlYnVnKGQsIHBh Y2thZ2UsIHBhY2thZ2VfZmlsZXMsIHNvdXJjZXMsIHNvdXJjZV9oYXNoX2NhY2hlKToNCj4g KyAgICBmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgNCj4gKyAgICBpbXBvcnQgb2UucGFja2Fn ZWRhdGENCj4gKw0KPiArICAgIGRlZiBmaWxlX3BhdGhfbWF0Y2goZmlsZV9wYXRoLCBwa2df ZmlsZSk6DQo+ICsgICAgICAgIGlmIGZpbGVfcGF0aC5sc3RyaXAoIi8iKSA9PSBwa2dfZmls ZS5uYW1lLmxzdHJpcCgiLyIpOg0KPiArICAgICAgICAgICAgcmV0dXJuIFRydWUNCj4gKw0K PiArICAgICAgICBmb3IgZSBpbiBwa2dfZmlsZS5leHRlbnNpb246DQo+ICsgICAgICAgICAg ICBpZiBpc2luc3RhbmNlKGUsIG9lLnNib20zMC5PRUZpbGVOYW1lQWxpYXNFeHRlbnNpb24p Og0KPiArICAgICAgICAgICAgICAgIGZvciBhIGluIGUuYWxpYXNlczoNCj4gKyAgICAgICAg ICAgICAgICAgICAgaWYgZmlsZV9wYXRoLmxzdHJpcCgiLyIpID09IGEubHN0cmlwKCIvIik6 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQ0KPiArDQo+ICsgICAg ICAgIHJldHVybiBGYWxzZQ0KPiArDQo+ICsgICAgZGVidWdfc2VhcmNoX3BhdGhzID0gWw0K PiArICAgICAgICBQYXRoKGQuZ2V0VmFyKCdQS0dEJykpLA0KPiArICAgICAgICBQYXRoKGQu Z2V0VmFyKCdTVEFHSU5HX0RJUl9UQVJHRVQnKSksDQo+ICsgICAgICAgIFBhdGgoZC5nZXRW YXIoJ1NUQUdJTkdfRElSX05BVElWRScpKSwNCj4gKyAgICAgICAgUGF0aChkLmdldFZhcign U1RBR0lOR19LRVJORUxfRElSJykpLA0KPiArICAgIF0NCj4gKw0KPiArICAgIHBrZ19kYXRh ID0gb2UucGFja2FnZWRhdGEucmVhZF9zdWJwa2dkYXRhX2V4dGVuZGVkKHBhY2thZ2UsIGQp DQo+ICsNCj4gKyAgICBpZiBwa2dfZGF0YSBpcyBOb25lOg0KPiArICAgICAgICByZXR1cm4N Cj4gKw0KPiArICAgIGRlcF9zb3VyY2VfZmlsZXMgPSBzZXQoKQ0KPiArDQo+ICsgICAgZm9y IGZpbGVfcGF0aCwgZmlsZV9kYXRhIGluIHBrZ19kYXRhWyJmaWxlc19pbmZvIl0uaXRlbXMo KToNCj4gKyAgICAgICAgaWYgbm90ICJkZWJ1Z3NyYyIgaW4gZmlsZV9kYXRhOg0KPiArICAg ICAgICAgICAgY29udGludWUNCj4gKw0KPiArICAgICAgICBpZiBub3QgYW55KGZpbGVfcGF0 aF9tYXRjaChmaWxlX3BhdGgsIHBrZ19maWxlKSBmb3IgcGtnX2ZpbGUgaW4gcGFja2FnZV9m aWxlcyk6DQo+ICsgICAgICAgICAgICBiYi5mYXRhbCgiTm8gcGFja2FnZSBmaWxlIGZvdW5k IGZvciAlcyBpbiAlczsgU1BEWCBmb3VuZDogJXMiICUgKHN0cihmaWxlX3BhdGgpLCBwYWNr YWdlLA0KPiArICAgICAgICAgICAgICAgICIgIi5qb2luKHAubmFtZSBmb3IgcCBpbiBwYWNr YWdlX2ZpbGVzKSkpDQo+ICsgICAgICAgICAgICBjb250aW51ZQ0KPiArDQo+ICsgICAgICAg IGZvciBkZWJ1Z3NyYyBpbiBmaWxlX2RhdGFbImRlYnVnc3JjIl06DQo+ICsgICAgICAgICAg ICBmb3Igc2VhcmNoIGluIGRlYnVnX3NlYXJjaF9wYXRoczoNCj4gKyAgICAgICAgICAgICAg ICBpZiBkZWJ1Z3NyYy5zdGFydHN3aXRoKCIvdXNyL3NyYy9rZXJuZWwiKToNCj4gKyAgICAg ICAgICAgICAgICAgICAgZGVidWdzcmNfcGF0aCA9IHNlYXJjaCAvIGRlYnVnc3JjLnJlcGxh Y2UoJy91c3Ivc3JjL2tlcm5lbC8nLCAnJykNCj4gKyAgICAgICAgICAgICAgICBlbHNlOg0K PiArICAgICAgICAgICAgICAgICAgICBkZWJ1Z3NyY19wYXRoID0gc2VhcmNoIC8gZGVidWdz cmMubHN0cmlwKCIvIikNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIGRlYnVnc3JjX3Bh dGggaW4gc291cmNlX2hhc2hfY2FjaGU6DQo+ICsgICAgICAgICAgICAgICAgICAgIGZpbGVf c2hhMjU2ID0gc291cmNlX2hhc2hfY2FjaGVbZGVidWdzcmNfcGF0aF0NCj4gKyAgICAgICAg ICAgICAgICAgICAgaWYgZmlsZV9zaGEyNTYgaXMgTm9uZToNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlDQo+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAg ICAgICAgICAgICAgICAgaWYgbm90IGRlYnVnc3JjX3BhdGguZXhpc3RzKCk6DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaGFzaF9jYWNoZVtkZWJ1Z3NyY19wYXRoXSA9 IE5vbmUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+ICsNCj4gKyAg ICAgICAgICAgICAgICAgICAgZmlsZV9zaGEyNTYgPSBiYi51dGlscy5zaGEyNTZfZmlsZShk ZWJ1Z3NyY19wYXRoKQ0KPiArICAgICAgICAgICAgICAgICAgICBzb3VyY2VfaGFzaF9jYWNo ZVtkZWJ1Z3NyY19wYXRoXSA9IGZpbGVfc2hhMjU2DQo+ICsNCj4gKyAgICAgICAgICAgICAg ICBpZiBmaWxlX3NoYTI1NiBpbiBzb3VyY2VzOg0KPiArICAgICAgICAgICAgICAgICAgICBz b3VyY2VfZmlsZSA9IHNvdXJjZXNbZmlsZV9zaGEyNTZdDQo+ICsgICAgICAgICAgICAgICAg ICAgIGRlcF9zb3VyY2VfZmlsZXMuYWRkKHNvdXJjZV9maWxlKQ0KPiArICAgICAgICAgICAg ICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgICAgIGJiLmRlYnVnKDEsICJEZWJ1ZyBz b3VyY2UgJXMgd2l0aCBTSEEyNTYgJXMgbm90IGZvdW5kIGluIGFueSBkZXBlbmRlbmN5IiAl IChzdHIoZGVidWdzcmNfcGF0aCksIGZpbGVfc2hhMjU2KSkNCj4gKyAgICAgICAgICAgICAg ICBicmVhaw0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBiYi5k ZWJ1ZygxLCAiRGVidWcgc291cmNlICVzIG5vdCBmb3VuZCIgJSBkZWJ1Z3NyYykNCj4gKw0K PiArICAgIHJldHVybiBkZXBfc291cmNlX2ZpbGVzDQo+ICsNCj4gK2dldF9wYWNrYWdlX3Nv dXJjZXNfZnJvbV9kZWJ1Z1t2YXJkZXBzZXhjbHVkZV0gKz0gIlNUQUdJTkdfS0VSTkVMX0RJ UiINCj4gKw0KPiArZGVmIGNvbGxlY3RfZGVwX29ianNldHMoZCwgYnVpbGQpOg0KPiArICAg IGltcG9ydCBqc29uDQo+ICsgICAgZnJvbSBwYXRobGliIGltcG9ydCBQYXRoDQo+ICsgICAg aW1wb3J0IG9lLnNib20zMA0KPiArICAgIGltcG9ydCBvZS5zcGR4MzANCj4gKw0KPiArICAg IGRlcHMgPSBnZXRfc3BkeF9kZXBzKGQpDQo+ICsNCj4gKyAgICBkZXBfb2Jqc2V0cyA9IFtd DQo+ICsgICAgZGVwX2J1aWxkcyA9IHNldCgpDQo+ICsNCj4gKyAgICBkZXBfYnVpbGRfc3Bk eGlkcyA9IHNldCgpDQo+ICsgICAgZm9yIGRlcF9wbiwgXywgaW5fdGFza2hhc2ggIGluIGRl cHM6DQo+ICsgICAgICAgIGJiLmRlYnVnKDEsICJGZXRjaGluZyBTUERYIGZvciBkZXBlbmRl bmN5ICVzIiAlIChkZXBfcG4pKQ0KPiArICAgICAgICBkZXBfYnVpbGQsIGRlcF9vYmpzZXQg PSBvZS5zYm9tMzAuZmluZF9yb290X29ial9pbl9qc29ubGQoZCwgInJlY2lwZXMiLCBkZXBf cG4sIG9lLnNwZHgzMC5idWlsZF9CdWlsZCkNCj4gKyAgICAgICAgIyBJZiB0aGUgZGVwZW5k ZW5jeSBpcyBwYXJ0IG9mIHRoZSB0YXNraGFzaCwgcmV0dXJuIGl0IHRvIGJlIGxpbmtlZA0K PiArICAgICAgICAjIGFnYWluc3QuIE90aGVyd2lzZSwgaXQgY2Fubm90IGJlIGxpbmtlZCBh Z2FpbnN0IGJlY2F1c2UgdGhpcyByZWNpcGUNCj4gKyAgICAgICAgIyB3aWxsIG5vdCByZWJ1 aWx0IGlmIGRlcGVuZGVuY3kgY2hhbmdlcw0KPiArICAgICAgICBpZiBpbl90YXNraGFzaDoN Cj4gKyAgICAgICAgICAgIGRlcF9vYmpzZXRzLmFwcGVuZChkZXBfb2Jqc2V0KQ0KPiArDQo+ ICsgICAgICAgICMgVGhlIGJ1aWxkIF9jYW5fIGJlIGxpbmtlZCBhZ2FpbnN0IChieSBhbGlh cykNCj4gKyAgICAgICAgZGVwX2J1aWxkcy5hZGQoZGVwX2J1aWxkKQ0KPiArDQo+ICsgICAg cmV0dXJuIGRlcF9vYmpzZXRzLCBkZXBfYnVpbGRzDQo+ICsNCj4gK2NvbGxlY3RfZGVwX29i anNldHNbdmFyZGVwc2V4Y2x1ZGVdID0gIlNTVEFURV9BUkNIUyINCj4gKw0KPiArZGVmIGNv bGxlY3RfZGVwX3NvdXJjZXMoZGVwX29ianNldHMpOg0KPiArICAgIGltcG9ydCBvZS5zcGR4 MzANCj4gKyAgICBpbXBvcnQgb2Uuc2JvbTMwDQo+ICsNCj4gKyAgICBzb3VyY2VzID0ge30N Cj4gKyAgICBmb3Igb2Jqc2V0IGluIGRlcF9vYmpzZXRzOg0KPiArICAgICAgICAjIERvbid0 IGNvbGxlY3Qgc291cmNlcyBmcm9tIG5hdGl2ZSByZWNpcGVzIGFzIHRoZXkNCj4gKyAgICAg ICAgIyBtYXRjaCBub24tbmF0aXZlIHNvdXJjZXMgYWxzby4NCj4gKyAgICAgICAgaWYgb2Jq c2V0LmlzX25hdGl2ZSgpOg0KPiArICAgICAgICAgICAgY29udGludWUNCj4gKw0KPiArICAg ICAgICBiYi5kZWJ1ZygxLCAiRmV0Y2hpbmcgU291cmNlcyBmb3IgZGVwZW5kZW5jeSAlcyIg JSAob2Jqc2V0LmRvYy5uYW1lKSkNCj4gKw0KPiArICAgICAgICBkZXBfYnVpbGQgPSBvYmpz ZXQuZmluZF9yb290KG9lLnNwZHgzMC5idWlsZF9CdWlsZCkNCj4gKyAgICAgICAgaWYgbm90 IGRlcF9idWlsZDoNCj4gKyAgICAgICAgICAgIGJiLmZhdGFsKCJVbmFibGUgdG8gZmluZCBh IGJ1aWxkIikNCj4gKw0KPiArICAgICAgICBmb3IgZSBpbiBvYmpzZXQuZm9yZWFjaF90eXBl KG9lLnNwZHgzMC5SZWxhdGlvbnNoaXApOg0KPiArICAgICAgICAgICAgaWYgZGVwX2J1aWxk IGlzIG5vdCBlLmZyb21fOg0KPiArICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+ICsNCj4g KyAgICAgICAgICAgIGlmIGUucmVsYXRpb25zaGlwVHlwZSAhPSBvZS5zcGR4MzAuUmVsYXRp b25zaGlwVHlwZS5oYXNJbnB1dHM6DQo+ICsgICAgICAgICAgICAgICAgY29udGludWUNCj4g Kw0KPiArICAgICAgICAgICAgZm9yIHRvIGluIGUudG86DQo+ICsgICAgICAgICAgICAgICAg aWYgbm90IGlzaW5zdGFuY2UodG8sIG9lLnNwZHgzMC5zb2Z0d2FyZV9GaWxlKToNCj4gKyAg ICAgICAgICAgICAgICAgICAgY29udGludWUNCj4gKw0KPiArICAgICAgICAgICAgICAgIGlm IHRvLnNvZnR3YXJlX3ByaW1hcnlQdXJwb3NlICE9IG9lLnNwZHgzMC5zb2Z0d2FyZV9Tb2Z0 d2FyZVB1cnBvc2Uuc291cmNlOg0KPiArICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0K PiArDQo+ICsgICAgICAgICAgICAgICAgZm9yIHYgaW4gdG8udmVyaWZpZWRVc2luZzoNCj4g KyAgICAgICAgICAgICAgICAgICAgaWYgdi5hbGdvcml0aG0gPT0gb2Uuc3BkeDMwLkhhc2hB bGdvcml0aG0uc2hhMjU2Og0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlc1t2 Lmhhc2hWYWx1ZV0gPSB0bw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsNCj4g KyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBiYi5mYXRh bCgiTm8gU0hBMjU2IGZvdW5kIGZvciAlcyBpbiAlcyIgJSAodG8ubmFtZSwgb2Jqc2V0LmRv Yy5uYW1lKSkNCj4gKw0KPiArICAgIHJldHVybiBzb3VyY2VzDQo+ICsNCj4gK2RlZiBhZGRf ZG93bmxvYWRfZmlsZXMoZCwgb2Jqc2V0KToNCj4gKyAgICBpbXBvcnQgb2UucGF0Y2gNCj4g KyAgICBpbXBvcnQgb2Uuc3BkeDMwDQo+ICsgICAgaW1wb3J0IG9zDQo+ICsNCj4gKyAgICBp bnB1dHMgPSBzZXQoKQ0KPiArDQo+ICsgICAgdXJscyA9IGQuZ2V0VmFyKCJTUkNfVVJJIiku c3BsaXQoKQ0KPiArICAgIGZldGNoID0gYmIuZmV0Y2gyLkZldGNoKHVybHMsIGQpDQo+ICsN Cj4gKyAgICBmb3IgZG93bmxvYWRfaWR4LCBzcmNfdXJpIGluIGVudW1lcmF0ZSh1cmxzKToN Cj4gKyAgICAgICAgZmQgPSBmZXRjaC51ZFtzcmNfdXJpXQ0KPiArDQo+ICsgICAgICAgIGZv ciBuYW1lIGluIGZkLm5hbWVzOg0KPiArICAgICAgICAgICAgZmlsZV9uYW1lID0gb3MucGF0 aC5iYXNlbmFtZShmZXRjaC5sb2NhbHBhdGgoc3JjX3VyaSkpDQo+ICsgICAgICAgICAgICBp ZiBvZS5wYXRjaC5wYXRjaF9wYXRoKHNyY191cmksIGZldGNoLCAnJywgZXhwYW5kPUZhbHNl KToNCj4gKyAgICAgICAgICAgICAgICBwcmltYXJ5X3B1cnBvc2UgPSBvZS5zcGR4MzAuc29m dHdhcmVfU29mdHdhcmVQdXJwb3NlLnBhdGNoDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiAr ICAgICAgICAgICAgICAgIHByaW1hcnlfcHVycG9zZSA9IG9lLnNwZHgzMC5zb2Z0d2FyZV9T b2Z0d2FyZVB1cnBvc2Uuc291cmNlDQo+ICsNCj4gKyAgICAgICAgICAgIGlmIGZkLnR5cGUg PT0gImZpbGUiOg0KPiArICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZmQubG9j YWxwYXRoKToNCj4gKyAgICAgICAgICAgICAgICAgICAgd2Fsa19pZHggPSAxDQo+ICsgICAg ICAgICAgICAgICAgICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKGZkLmxv Y2FscGF0aCk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZiBpbiBmaWxlczoN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3BhdGggPSBvcy5wYXRoLmpvaW4o cm9vdCwgZikNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmlz bGluayhmX3BhdGgpOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRP RE86IFNQRFggZG9lc24ndCBzdXBwb3J0IHN5bWxpbmtzIHlldA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiArDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmlsZSA9IG9ianNldC5uZXdfZmlsZSgNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Jqc2V0Lm5ld19zcGR4aWQoInNvdXJjZSIsIHN0cihkb3du bG9hZF9pZHggKyAxKSwgc3RyKHdhbGtfaWR4KSksDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9zLnBhdGguam9pbihmaWxlX25hbWUsIG9zLnBhdGgucmVscGF0aChm X3BhdGgsIGZkLmxvY2FscGF0aCkpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmX3BhdGgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBv c2VzPVtwcmltYXJ5X3B1cnBvc2VdLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0cy5hZGQoZmls ZSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWxrX2lkeCArPSAxDQo+ICsN Cj4gKyAgICAgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBmaWxl ID0gb2Jqc2V0Lm5ld19maWxlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgb2Jqc2V0 Lm5ld19zcGR4aWQoInNvdXJjZSIsIHN0cihkb3dubG9hZF9pZHggKyAxKSksDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBmaWxlX25hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBmZC5sb2NhbHBhdGgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBwdXJwb3Nl cz1bcHJpbWFyeV9wdXJwb3NlXSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAg ICAgICAgICAgICAgICAgICBpbnB1dHMuYWRkKGZpbGUpDQo+ICsNCj4gKyAgICAgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgdXJpID0gZmQudHlwZQ0KPiArICAgICAgICAg ICAgICAgIHByb3RvID0gZ2V0YXR0cihmZCwgInByb3RvIiwgTm9uZSkNCj4gKyAgICAgICAg ICAgICAgICBpZiBwcm90byBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAg dXJpID0gdXJpICsgIisiICsgcHJvdG8NCj4gKyAgICAgICAgICAgICAgICB1cmkgPSB1cmkg KyAiOi8vIiArIGZkLmhvc3QgKyBmZC5wYXRoDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBp ZiBmZC5tZXRob2Quc3VwcG9ydHNfc3JjcmV2KCk6DQo+ICsgICAgICAgICAgICAgICAgICAg IHVyaSA9IHVyaSArICJAIiArIGZkLnJldmlzaW9uc1tuYW1lXQ0KPiArDQo+ICsgICAgICAg ICAgICAgICAgZGwgPSBvYmpzZXQuYWRkKG9lLnNwZHgzMC5zb2Z0d2FyZV9QYWNrYWdlKA0K PiArICAgICAgICAgICAgICAgICAgICBfaWQ9b2Jqc2V0Lm5ld19zcGR4aWQoInNvdXJjZSIs IHN0cihkb3dubG9hZF9pZHggKyAxKSksDQo+ICsgICAgICAgICAgICAgICAgICAgIGNyZWF0 aW9uSW5mbz1vYmpzZXQuZG9jLmNyZWF0aW9uSW5mbywNCj4gKyAgICAgICAgICAgICAgICAg ICAgbmFtZT1maWxlX25hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAgIHNvZnR3YXJlX3By aW1hcnlQdXJwb3NlPXByaW1hcnlfcHVycG9zZSwNCj4gKyAgICAgICAgICAgICAgICAgICAg c29mdHdhcmVfZG93bmxvYWRMb2NhdGlvbj11cmksDQo+ICsgICAgICAgICAgICAgICAgKSkN Cj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIGZkLm1ldGhvZC5zdXBwb3J0c19jaGVja3N1 bShmZCk6DQo+ICsgICAgICAgICAgICAgICAgICAgICMgVE9ETyBOZWVkIHNvbWV0aGluZyBi ZXR0ZXIgdGhhbiBoYXJkIGNvZGluZyB0aGlzDQo+ICsgICAgICAgICAgICAgICAgICAgIGZv ciBjaGVja3N1bV9pZCBpbiBbInNoYTI1NiIsICJzaGExIl06DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBleHBlY3RlZF9jaGVja3N1bSA9IGdldGF0dHIoZmQsICIlc19leHBlY3Rl ZCIgJSBjaGVja3N1bV9pZCwgTm9uZSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlm IGV4cGVjdGVkX2NoZWNrc3VtIGlzIE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGludWUNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZGwudmVy aWZpZWRVc2luZy5hcHBlbmQoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Uu c3BkeDMwLkhhc2goDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29y aXRobT1nZXRhdHRyKG9lLnNwZHgzMC5IYXNoQWxnb3JpdGhtLCBjaGVja3N1bV9pZCksDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hWYWx1ZT1leHBlY3RlZF9j aGVja3N1bSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpbnB1dHMuYWRk KGRsKQ0KPiArDQo+ICsgICAgcmV0dXJuIGlucHV0cw0KPiArDQo+ICsNCj4gK2RlZiBjb2xs ZWN0X2J1aWxkX3BhY2thZ2VfaW5wdXRzKGQsIG9ianNldCwgYnVpbGQsIHBhY2thZ2VzKToN Cj4gKyAgICBwcm92aWRlcnMgPSBjb2xsZWN0X3BhY2thZ2VfcHJvdmlkZXJzKGQpDQo+ICsN Cj4gKyAgICBidWlsZF9kZXBzID0gc2V0KCkNCj4gKw0KPiArICAgIGZvciBuYW1lIGluIHNv cnRlZChwYWNrYWdlcy5rZXlzKCkpOg0KPiArICAgICAgICBpZiBuYW1lIG5vdCBpbiBwcm92 aWRlcnM6DQo+ICsgICAgICAgICAgICBiYi5mYXRhbCgiVW5hYmxlIHRvIGZpbmQgU1BEWCBw cm92aWRlciBmb3IgJyVzJyIgJSBuYW1lKQ0KPiArDQo+ICsgICAgICAgIHBrZ19uYW1lLCBw a2dfaGFzaGZuID0gcHJvdmlkZXJzW25hbWVdDQo+ICsNCj4gKyAgICAgICAgIyBDb3B5IGFs bCBvZiB0aGUgcGFja2FnZSBTUERYIGZpbGVzIGludG8gdGhlIFNib20gZWxlbWVudHMNCj4g KyAgICAgICAgcGtnX3NwZHgsIF8gPSBvZS5zYm9tMzAuZmluZF9yb290X29ial9pbl9qc29u bGQoDQo+ICsgICAgICAgICAgICBkLA0KPiArICAgICAgICAgICAgInBhY2thZ2VzIiwNCj4g KyAgICAgICAgICAgIHBrZ19uYW1lLA0KPiArICAgICAgICAgICAgb2Uuc3BkeDMwLnNvZnR3 YXJlX1BhY2thZ2UsDQo+ICsgICAgICAgICAgICBzb2Z0d2FyZV9wcmltYXJ5UHVycG9zZT1v ZS5zcGR4MzAuc29mdHdhcmVfU29mdHdhcmVQdXJwb3NlLmluc3RhbGwsDQo+ICsgICAgICAg ICkNCj4gKyAgICAgICAgYnVpbGRfZGVwcy5hZGQocGtnX3NwZHguX2lkKQ0KPiArDQo+ICsg ICAgaWYgYnVpbGRfZGVwczoNCj4gKyAgICAgICAgb2Jqc2V0Lm5ld19zY29wZWRfcmVsYXRp b25zaGlwKA0KPiArICAgICAgICAgICAgW2J1aWxkXSwNCj4gKyAgICAgICAgICAgIG9lLnNw ZHgzMC5SZWxhdGlvbnNoaXBUeXBlLmhhc0lucHV0cywNCj4gKyAgICAgICAgICAgIG9lLnNw ZHgzMC5MaWZlY3ljbGVTY29wZVR5cGUuYnVpbGQsDQo+ICsgICAgICAgICAgICBzb3J0ZWQo bGlzdChidWlsZF9kZXBzKSksDQo+ICsgICAgICAgICkNCj4gKw0KPiArZGVmIHNldF9wdXJw b3NlcyhkLCBlbGVtZW50LCAqdmFyX25hbWVzLCBmb3JjZV9wdXJwb3Nlcz1bXSk6DQo+ICsg ICAgcHVycG9zZXMgPSBmb3JjZV9wdXJwb3Nlc1s6XQ0KPiArDQo+ICsgICAgZm9yIHZhcl9u YW1lIGluIHZhcl9uYW1lczoNCj4gKyAgICAgICAgdmFsID0gZC5nZXRWYXIodmFyX25hbWUp DQo+ICsgICAgICAgIGlmIHZhbDoNCj4gKyAgICAgICAgICAgIHB1cnBvc2VzLmV4dGVuZCh2 YWwuc3BsaXQoKSkNCj4gKyAgICAgICAgICAgIGJyZWFrDQo+ICsNCj4gKyAgICBpZiBub3Qg cHVycG9zZXM6DQo+ICsgICAgICAgIGJiLndhcm4oIk5vIFNQRFggcHVycG9zZXMgZm91bmQg aW4gJXMiICUgIiAiLmpvaW4odmFyX25hbWVzKSkNCj4gKyAgICAgICAgcmV0dXJuDQo+ICsN Cj4gKyAgICBlbGVtZW50LnNvZnR3YXJlX3ByaW1hcnlQdXJwb3NlID0gZ2V0YXR0cihvZS5z cGR4MzAuc29mdHdhcmVfU29mdHdhcmVQdXJwb3NlLCBwdXJwb3Nlc1swXSkNCj4gKyAgICBl bGVtZW50LnNvZnR3YXJlX2FkZGl0aW9uYWxQdXJwb3NlID0gW2dldGF0dHIob2Uuc3BkeDMw LnNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZSwgcCkgZm9yIHAgaW4gcHVycG9zZXNbMTpdXQ0K PiArDQo+ICsNCj4gK3B5dGhvbiBkb19jcmVhdGVfc3BkeCgpIHsNCj4gKyAgICBpbXBvcnQg b2Uuc2JvbTMwDQo+ICsgICAgaW1wb3J0IG9lLnNwZHgzMA0KPiArICAgIGZyb20gcGF0aGxp YiBpbXBvcnQgUGF0aA0KPiArICAgIGZyb20gY29udGV4dGxpYiBpbXBvcnQgY29udGV4dG1h bmFnZXINCj4gKyAgICBpbXBvcnQgb2UuY3ZlX2NoZWNrDQo+ICsgICAgZnJvbSBkYXRldGlt ZSBpbXBvcnQgZGF0ZXRpbWUNCj4gKw0KPiArICAgIGRlZiBzZXRfdmFyX2ZpZWxkKHZhciwg b2JqLCBuYW1lLCBwYWNrYWdlPU5vbmUpOg0KPiArICAgICAgICB2YWwgPSBOb25lDQo+ICsg ICAgICAgIGlmIHBhY2thZ2U6DQo+ICsgICAgICAgICAgICB2YWwgPSBkLmdldFZhcigiJXM6 JXMiICUgKHZhciwgcGFja2FnZSkpDQo+ICsNCj4gKyAgICAgICAgaWYgbm90IHZhbDoNCj4g KyAgICAgICAgICAgIHZhbCA9IGQuZ2V0VmFyKHZhcikNCj4gKw0KPiArICAgICAgICBpZiB2 YWw6DQo+ICsgICAgICAgICAgICBzZXRhdHRyKG9iaiwgbmFtZSwgdmFsKQ0KPiArDQo+ICsg ICAgZGVwbG95ZGlyID0gUGF0aChkLmdldFZhcigiU1BEWERFUExPWSIpKQ0KPiArICAgIGRl cGxveV9kaXJfc3BkeCA9IFBhdGgoZC5nZXRWYXIoIkRFUExPWV9ESVJfU1BEWCIpKQ0KPiAr ICAgIHNwZHhfd29ya2RpciA9IFBhdGgoZC5nZXRWYXIoIlNQRFhXT1JLIikpDQo+ICsgICAg aW5jbHVkZV9zb3VyY2VzID0gZC5nZXRWYXIoIlNQRFhfSU5DTFVERV9TT1VSQ0VTIikgPT0g IjEiDQo+ICsgICAgcGtnX2FyY2ggPSBkLmdldFZhcigiU1NUQVRFX1BLR0FSQ0giKQ0KPiAr ICAgIGlzX25hdGl2ZSA9IGJiLmRhdGEuaW5oZXJpdHNfY2xhc3MoIm5hdGl2ZSIsIGQpIG9y IGJiLmRhdGEuaW5oZXJpdHNfY2xhc3MoImNyb3NzIiwgZCkNCj4gKyAgICBpbmNsdWRlX3Zl eCA9IGQuZ2V0VmFyKCJTUERYX0lOQ0xVREVfVkVYIikNCj4gKyAgICBpZiBub3QgaW5jbHVk ZV92ZXggaW4gKCJub25lIiwgImN1cnJlbnQiLCAiYWxsIik6DQo+ICsgICAgICAgIGJiLmZh dGFsKCJTUERYX0lOQ0xVREVfVkVYIG11c3QgYmUgb25lIG9mICdub25lJywgJ2N1cnJlbnQn LCAnYWxsJyIpDQo+ICsNCj4gKyAgICBidWlsZF9vYmpzZXQgPSBvZS5zYm9tMzAuT2JqZWN0 U2V0Lm5ld19vYmpzZXQoZCwgZC5nZXRWYXIoIlBOIikpDQo+ICsNCj4gKyAgICBidWlsZCA9 IGJ1aWxkX29ianNldC5uZXdfc3ViX2J1aWxkKCJyZWNpcGUiLCAicmVjaXBlIikNCj4gKyAg ICBidWlsZF9vYmpzZXQuZG9jLnJvb3RFbGVtZW50LmFwcGVuZChidWlsZCkNCj4gKw0KPiAr ICAgIGJ1aWxkX29ianNldC5zZXRfaXNfbmF0aXZlKGlzX25hdGl2ZSkNCj4gKw0KPiArICAg IGZvciB2YXIgaW4gKGQuZ2V0VmFyKCdTUERYX0NVU1RPTV9BTk5PVEFUSU9OX1ZBUlMnKSBv ciAiIikuc3BsaXQoKToNCj4gKyAgICAgICAgbmV3X2Fubm90YXRpb24oDQo+ICsgICAgICAg ICAgICBkLA0KPiArICAgICAgICAgICAgYnVpbGRfb2Jqc2V0LA0KPiArICAgICAgICAgICAg YnVpbGQsDQo+ICsgICAgICAgICAgICAiJXM9JXMiICUgKHZhciwgZC5nZXRWYXIodmFyKSks DQo+ICsgICAgICAgICAgICBvZS5zcGR4MzAuQW5ub3RhdGlvblR5cGUub3RoZXINCj4gKyAg ICAgICAgKQ0KPiArDQo+ICsgICAgYnVpbGRfaW5wdXRzID0gc2V0KCkNCj4gKw0KPiArICAg ICMgQWRkIENWRXMNCj4gKyAgICBjdmVfYnlfc3RhdHVzID0ge30NCj4gKyAgICBpZiBpbmNs dWRlX3ZleCAhPSAibm9uZSI6DQo+ICsgICAgICAgIGZvciBjdmUgaW4gKGQuZ2V0VmFyRmxh Z3MoIkNWRV9TVEFUVVMiKSBvciB7fSk6DQo+ICsgICAgICAgICAgICBzdGF0dXMsIGRldGFp bCwgZGVzY3JpcHRpb24gPSBvZS5jdmVfY2hlY2suZGVjb2RlX2N2ZV9zdGF0dXMoZCwgY3Zl KQ0KPiArDQo+ICsgICAgICAgICAgICAjIElmIHRoaXMgQ1ZFIGlzIGZpeGVkIHVwc3RyZWFt LCBza2lwIGl0IHVubGVzcyBhbGwgQ1ZFcyBhcmUNCj4gKyAgICAgICAgICAgICMgc3BlY2lm aWVkLg0KPiArICAgICAgICAgICAgaWYgaW5jbHVkZV92ZXggIT0gImFsbCIgYW5kIGRldGFp bCBpbiAoImZpeGVkLXZlcnNpb24iLCAiY3BlLXN0YWJsZS1iYWNrcG9ydCIpOg0KPiArICAg ICAgICAgICAgICAgIGJiLmRlYnVnKDEsICJTa2lwcGluZyAlcyBzaW5jZSBpdCBpcyBhbHJl YWR5IGZpeGVkIHVwc3RyZWFtIiAlIGN2ZSkNCj4gKyAgICAgICAgICAgICAgICBjb250aW51 ZQ0KPiArDQo+ICsgICAgICAgICAgICBjdmVfYnlfc3RhdHVzLnNldGRlZmF1bHQoc3RhdHVz LCB7fSlbY3ZlXSA9ICgNCj4gKyAgICAgICAgICAgICAgICBidWlsZF9vYmpzZXQubmV3X2N2 ZV92dWxuKGN2ZSksDQo+ICsgICAgICAgICAgICAgICAgZGV0YWlsLA0KPiArICAgICAgICAg ICAgICAgIGRlc2NyaXB0aW9uLA0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgY3Bl X2lkcyA9IG9lLmN2ZV9jaGVjay5nZXRfY3BlX2lkcyhkLmdldFZhcigiQ1ZFX1BST0RVQ1Qi KSwgZC5nZXRWYXIoIkNWRV9WRVJTSU9OIikpDQo+ICsNCj4gKyAgICBzb3VyY2VfZmlsZXMg PSBhZGRfZG93bmxvYWRfZmlsZXMoZCwgYnVpbGRfb2Jqc2V0KQ0KPiArICAgIGJ1aWxkX2lu cHV0cyB8PSBzb3VyY2VfZmlsZXMNCj4gKw0KPiArICAgIHJlY2lwZV9zcGR4X2xpY2Vuc2Ug PSBhZGRfbGljZW5zZV9leHByZXNzaW9uKGQsIGJ1aWxkX29ianNldCwgZC5nZXRWYXIoIkxJ Q0VOU0UiKSkNCj4gKyAgICBidWlsZF9vYmpzZXQubmV3X3JlbGF0aW9uc2hpcCgNCj4gKyAg ICAgICAgc291cmNlX2ZpbGVzLA0KPiArICAgICAgICBvZS5zcGR4MzAuUmVsYXRpb25zaGlw VHlwZS5oYXNDb25jbHVkZWRMaWNlbnNlLA0KPiArICAgICAgICBbcmVjaXBlX3NwZHhfbGlj ZW5zZV0sDQo+ICsgICAgKQ0KPiArDQo+ICsgICAgaWYgcHJvY2Vzc19zb3VyY2VzKGQpIGFu ZCBpbmNsdWRlX3NvdXJjZXM6DQo+ICsgICAgICAgIGJiLmRlYnVnKDEsICJBZGRpbmcgc291 cmNlIGZpbGVzIHRvIFNQRFgiKQ0KPiArICAgICAgICBzcGR4X2dldF9zcmMoZCkNCj4gKw0K PiArICAgICAgICBidWlsZF9pbnB1dHMgfD0gYWRkX3BhY2thZ2VfZmlsZXMoDQo+ICsgICAg ICAgICAgICBkLA0KPiArICAgICAgICAgICAgYnVpbGRfb2Jqc2V0LA0KPiArICAgICAgICAg ICAgc3BkeF93b3JrZGlyLA0KPiArICAgICAgICAgICAgbGFtYmRhIGZpbGVfY291bnRlcjog YnVpbGRfb2Jqc2V0Lm5ld19zcGR4aWQoInNvdXJjZWZpbGUiLCBzdHIoZmlsZV9jb3VudGVy KSksDQo+ICsgICAgICAgICAgICBsYW1iZGEgZmlsZXBhdGg6IFtvZS5zcGR4MzAuc29mdHdh cmVfU29mdHdhcmVQdXJwb3NlLnNvdXJjZV0sDQo+ICsgICAgICAgICAgICBpZ25vcmVfZGly cz1bIi5naXQiXSwNCj4gKyAgICAgICAgICAgIGlnbm9yZV90b3BfbGV2ZWxfZGlycz1bInRl bXAiXSwNCj4gKyAgICAgICAgICAgIGFyY2hpdmU9Tm9uZSwNCj4gKyAgICAgICAgKQ0KPiAr DQo+ICsNCj4gKyAgICBkZXBfb2Jqc2V0cywgZGVwX2J1aWxkcyA9IGNvbGxlY3RfZGVwX29i anNldHMoZCwgYnVpbGQpDQo+ICsgICAgaWYgZGVwX2J1aWxkczoNCj4gKyAgICAgICAgYnVp bGRfb2Jqc2V0Lm5ld19zY29wZWRfcmVsYXRpb25zaGlwKA0KPiArICAgICAgICAgICAgW2J1 aWxkXSwNCj4gKyAgICAgICAgICAgIG9lLnNwZHgzMC5SZWxhdGlvbnNoaXBUeXBlLmRlcGVu ZHNPbiwNCj4gKyAgICAgICAgICAgIG9lLnNwZHgzMC5MaWZlY3ljbGVTY29wZVR5cGUuYnVp bGQsDQo+ICsgICAgICAgICAgICBzb3J0ZWQob2Uuc2JvbTMwLmdldF9lbGVtZW50X2xpbmtf aWQoYikgZm9yIGIgaW4gZGVwX2J1aWxkcyksDQo+ICsgICAgICAgICkNCj4gKw0KPiArICAg IGRlYnVnX3NvdXJjZV9pZHMgPSBzZXQoKQ0KPiArICAgIHNvdXJjZV9oYXNoX2NhY2hlID0g e30NCj4gKw0KPiArICAgICMgV3JpdGUgb3V0IHRoZSBwYWNrYWdlIFNQRFggZGF0YSBub3cu IEl0IGlzIG5vdCBjb21wbGV0ZSBhcyB3ZSBjYW5ub3QNCj4gKyAgICAjIHdyaXRlIHRoZSBy dW50aW1lIGRhdGEsIHNvIHdyaXRlIGl0IHRvIGEgc3RhZ2luZyBhcmVhIGFuZCBhIGxhdGVy IHRhc2sNCj4gKyAgICAjIHdpbGwgd3JpdGUgb3V0IHRoZSBmaW5hbCBjb2xsZWN0aW9uDQo+ ICsNCj4gKyAgICAjIFRPRE86IEhhbmRsZSBuYXRpdmUgcmVjaXBlIG91dHB1dA0KPiArICAg IGlmIG5vdCBpc19uYXRpdmU6DQo+ICsgICAgICAgIGJiLmRlYnVnKDEsICJDb2xsZWN0aW5n IERlcGVuZGVuY3kgc291cmNlcyBmaWxlcyIpDQo+ICsgICAgICAgIHNvdXJjZXMgPSBjb2xs ZWN0X2RlcF9zb3VyY2VzKGRlcF9vYmpzZXRzKQ0KPiArDQo+ICsgICAgICAgIGJiLmJ1aWxk LmV4ZWNfZnVuYygicmVhZF9zdWJwYWNrYWdlX21ldGFkYXRhIiwgZCkNCj4gKw0KPiArICAg ICAgICBwa2dkZXN0ID0gUGF0aChkLmdldFZhcigiUEtHREVTVCIpKQ0KPiArICAgICAgICBm b3IgcGFja2FnZSBpbiBkLmdldFZhcigiUEFDS0FHRVMiKS5zcGxpdCgpOg0KPiArICAgICAg ICAgICAgaWYgbm90IG9lLnBhY2thZ2VkYXRhLnBhY2thZ2VkKHBhY2thZ2UsIGQpOg0KPiAr ICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+ICsNCj4gKyAgICAgICAgICAgIHBrZ19uYW1l ID0gZC5nZXRWYXIoIlBLRzolcyIgJSBwYWNrYWdlKSBvciBwYWNrYWdlDQo+ICsNCj4gKyAg ICAgICAgICAgIGJiLmRlYnVnKDEsICJDcmVhdGluZyBTUERYIGZvciBwYWNrYWdlICVzIiAl IHBrZ19uYW1lKQ0KPiArDQo+ICsgICAgICAgICAgICBwa2dfb2Jqc2V0ID0gb2Uuc2JvbTMw Lk9iamVjdFNldC5uZXdfb2Jqc2V0KGQsIHBrZ19uYW1lKQ0KPiArDQo+ICsgICAgICAgICAg ICBzcGR4X3BhY2thZ2UgPSBwa2dfb2Jqc2V0LmFkZF9yb290KG9lLnNwZHgzMC5zb2Z0d2Fy ZV9QYWNrYWdlKA0KPiArICAgICAgICAgICAgICAgIF9pZD1wa2dfb2Jqc2V0Lm5ld19zcGR4 aWQoInBhY2thZ2UiLCBwa2dfbmFtZSksDQo+ICsgICAgICAgICAgICAgICAgY3JlYXRpb25J bmZvPXBrZ19vYmpzZXQuZG9jLmNyZWF0aW9uSW5mbywNCj4gKyAgICAgICAgICAgICAgICBu YW1lPXBrZ19uYW1lLA0KPiArICAgICAgICAgICAgICAgIHNvZnR3YXJlX3BhY2thZ2VWZXJz aW9uPWQuZ2V0VmFyKCJQViIpLA0KPiArICAgICAgICAgICAgICAgIGJ1aWx0VGltZT1vZS5z Ym9tMzAuc3BkeF9ub3coKSwNCj4gKyAgICAgICAgICAgICkpDQo+ICsNCj4gKyAgICAgICAg ICAgIHNldF9wdXJwb3NlcygNCj4gKyAgICAgICAgICAgICAgICBkLA0KPiArICAgICAgICAg ICAgICAgIHNwZHhfcGFja2FnZSwNCj4gKyAgICAgICAgICAgICAgICAiU1BEWF9QQUNLQUdF X0FERElUSU9OQUxfUFVSUE9TRTolcyIgJSBwYWNrYWdlLA0KPiArICAgICAgICAgICAgICAg ICJTUERYX1BBQ0tBR0VfQURESVRJT05BTF9QVVJQT1NFIiwNCj4gKyAgICAgICAgICAgICAg ICBmb3JjZV9wdXJwb3Nlcz1bImluc3RhbGwiXSwNCj4gKyAgICAgICAgICAgICkNCj4gKw0K PiArDQo+ICsgICAgICAgICAgICBzdXBwbGllciA9IGJ1aWxkX29ianNldC5uZXdfYWdlbnQo IlNQRFhfUEFDS0FHRV9TVVBQTElFUiIpDQo+ICsgICAgICAgICAgICBpZiBzdXBwbGllciBp cyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICBzcGR4X3BhY2thZ2Uuc3VwcGxpZXIg PSBzdXBwbGllciBpZiBpc2luc3RhbmNlKHN1cHBsaWVyLCBzdHIpIGVsc2Ugc3VwcGxpZXIu X2lkDQo+ICsNCj4gKyAgICAgICAgICAgIHNldF92YXJfZmllbGQoIkhPTUVQQUdFIiwgc3Bk eF9wYWNrYWdlLCAic29mdHdhcmVfaG9tZVBhZ2UiLCBwYWNrYWdlPXBhY2thZ2UpDQo+ICsg ICAgICAgICAgICBzZXRfdmFyX2ZpZWxkKCJTVU1NQVJZIiwgc3BkeF9wYWNrYWdlLCAic3Vt bWFyeSIsIHBhY2thZ2U9cGFja2FnZSkNCj4gKyAgICAgICAgICAgIHNldF92YXJfZmllbGQo IkRFU0NSSVBUSU9OIiwgc3BkeF9wYWNrYWdlLCAiZGVzY3JpcHRpb24iLCBwYWNrYWdlPXBh Y2thZ2UpDQo+ICsNCj4gKyAgICAgICAgICAgIHBrZ19vYmpzZXQubmV3X3Njb3BlZF9yZWxh dGlvbnNoaXAoDQo+ICsgICAgICAgICAgICAgICAgW2J1aWxkLl9pZF0sDQo+ICsgICAgICAg ICAgICAgICAgb2Uuc3BkeDMwLlJlbGF0aW9uc2hpcFR5cGUuaGFzT3V0cHV0cywNCj4gKyAg ICAgICAgICAgICAgICBvZS5zcGR4MzAuTGlmZWN5Y2xlU2NvcGVUeXBlLmJ1aWxkLA0KPiAr ICAgICAgICAgICAgICAgIFtzcGR4X3BhY2thZ2VdLA0KPiArICAgICAgICAgICAgKQ0KPiAr DQo+ICsgICAgICAgICAgICBmb3IgY3BlX2lkIGluIGNwZV9pZHM6DQo+ICsgICAgICAgICAg ICAgICAgc3BkeF9wYWNrYWdlLmV4dGVybmFsSWRlbnRpZmllci5hcHBlbmQoDQo+ICsgICAg ICAgICAgICAgICAgICAgIG9lLnNwZHgzMC5FeHRlcm5hbElkZW50aWZpZXIoDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBleHRlcm5hbElkZW50aWZpZXJUeXBlPW9lLnNwZHgzMC5F eHRlcm5hbElkZW50aWZpZXJUeXBlLmNwZTIzLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgaWRlbnRpZmllcj1jcGVfaWQsDQo+ICsgICAgICAgICAgICAgICAgKSkNCj4gKw0KPiAr ICAgICAgICAgICAgIyBUT0RPOiBHZW5lcmF0ZSBhIGZpbGUgZm9yIGVhY2ggYWN0dWFsIElQ Sy9ERUIvUlBNL1RHWiBmaWxlDQo+ICsgICAgICAgICAgICAjIGdlbmVyYXRlZCBhbmQgbGlu ayBpdCB0byB0aGUgcGFja2FnZQ0KPiArICAgICAgICAgICAgI3NwZHhfcGFja2FnZV9maWxl ID0gcGtnX29ianNldC5hZGQob2Uuc3BkeDMwLnNvZnR3YXJlX0ZpbGUoDQo+ICsgICAgICAg ICAgICAjICAgIF9pZD1wa2dfb2Jqc2V0Lm5ld19zcGR4aWQoImRpc3RyaWJ1dGlvbiIsIHBr Z19uYW1lKSwNCj4gKyAgICAgICAgICAgICMgICAgY3JlYXRpb25JbmZvPXBrZ19vYmpzZXQu ZG9jLmNyZWF0aW9uSW5mbywNCj4gKyAgICAgICAgICAgICMgICAgbmFtZT1wa2dfbmFtZSwN Cj4gKyAgICAgICAgICAgICMgICAgYnVpbHRUaW1lPW9lLnNib20zMC5zcGR4X25vdygpLA0K PiArICAgICAgICAgICAgIyAgICBzb2Z0d2FyZV9wcmltYXJ5UHVycG9zZT1zcGR4X3BhY2th Z2Uuc29mdHdhcmVfcHJpbWFyeVB1cnBvc2UsDQo+ICsgICAgICAgICAgICAjICAgIHNvZnR3 YXJlX2FkZGl0aW9uYWxQdXJwb3NlPXNwZHhfcGFja2FnZS5zb2Z0d2FyZV9hZGRpdGlvbmFs UHVycG9zZSwNCj4gKyAgICAgICAgICAgICMpKQ0KPiArDQo+ICsgICAgICAgICAgICAjIyBU T0RPIGFkZCBoYXNoZXMNCj4gKyAgICAgICAgICAgICNwa2dfb2Jqc2V0Lm5ld19yZWxhdGlv bnNoaXAoDQo+ICsgICAgICAgICAgICAjICAgIFtzcGR4X3BhY2thZ2VdLA0KPiArICAgICAg ICAgICAgIyAgICBvZS5zcGR4MzAuUmVsYXRpb25zaGlwVHlwZS5oYXNEaXN0cmlidXRpb25B cnRpZmFjdCwNCj4gKyAgICAgICAgICAgICMgICAgW3NwZHhfcGFja2FnZV9maWxlXSwNCj4g KyAgICAgICAgICAgICMpDQo+ICsNCj4gKyAgICAgICAgICAgICMgTk9URTogbGljZW5zZXMg bGl2ZSBpbiB0aGUgcmVjaXBlIGNvbGxlY3Rpb24gYW5kIGFyZSByZWZlcmVuY2VkDQo+ICsg ICAgICAgICAgICAjIGJ5IElEIGluIHRoZSBwYWNrYWdlIGNvbGxlY3Rpb24ocykuIFRoaXMg aGVscHMgcmVkdWNlIGR1cGxpY2F0aW9uDQo+ICsgICAgICAgICAgICAjIChzaW5jZSBhIGxv dCBvZiBwYWNrYWdlcyB3aWxsIGhhdmUgdGhlIHNhbWUgbGljZW5zZSksIGFuZCBhbHNvDQo+ ICsgICAgICAgICAgICAjIHByZXZlbnRzIGR1cGxpY2F0ZSBsaWNlbnNlIFNQRFggSURzIGlu IHRoZSBwYWNrYWdlcw0KPiArICAgICAgICAgICAgcGFja2FnZV9saWNlbnNlID0gZC5nZXRW YXIoIkxJQ0VOU0U6JXMiICUgcGFja2FnZSkNCj4gKyAgICAgICAgICAgIGlmIHBhY2thZ2Vf bGljZW5zZSBhbmQgcGFja2FnZV9saWNlbnNlICE9IGQuZ2V0VmFyKCJMSUNFTlNFIik6DQo+ ICsgICAgICAgICAgICAgICAgcGFja2FnZV9zcGR4X2xpY2Vuc2UgPSBhZGRfbGljZW5zZV9l eHByZXNzaW9uKGQsIGJ1aWxkX29ianNldCwgcGFja2FnZV9saWNlbnNlKQ0KPiArICAgICAg ICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBwYWNrYWdlX3NwZHhfbGljZW5zZSA9 IHJlY2lwZV9zcGR4X2xpY2Vuc2UNCj4gKw0KPiArICAgICAgICAgICAgcGtnX29ianNldC5u ZXdfcmVsYXRpb25zaGlwKA0KPiArICAgICAgICAgICAgICAgIFtzcGR4X3BhY2thZ2VdLA0K PiArICAgICAgICAgICAgICAgIG9lLnNwZHgzMC5SZWxhdGlvbnNoaXBUeXBlLmhhc0NvbmNs dWRlZExpY2Vuc2UsDQo+ICsgICAgICAgICAgICAgICAgW3BhY2thZ2Vfc3BkeF9saWNlbnNl Ll9pZF0sDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgICMgTk9URTog Q1ZFIEVsZW1lbnRzIGxpdmUgaW4gdGhlIHJlY2lwZSBjb2xsZWN0aW9uDQo+ICsgICAgICAg ICAgICBhbGxfY3ZlcyA9IHNldCgpDQo+ICsgICAgICAgICAgICBmb3Igc3RhdHVzLCBjdmVz IGluIGN2ZV9ieV9zdGF0dXMuaXRlbXMoKToNCj4gKyAgICAgICAgICAgICAgICBmb3IgY3Zl LCBpdGVtcyBpbiBjdmVzLml0ZW1zKCk6DQo+ICsgICAgICAgICAgICAgICAgICAgIHNwZHhf Y3ZlLCBkZXRhaWwsIGRlc2NyaXB0aW9uID0gaXRlbXMNCj4gKw0KPiArICAgICAgICAgICAg ICAgICAgICBhbGxfY3Zlcy5hZGQoc3BkeF9jdmUuX2lkKQ0KPiArDQo+ICsgICAgICAgICAg ICAgICAgICAgIGlmIHN0YXR1cyA9PSAiUGF0Y2hlZCI6DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBwa2dfb2Jqc2V0Lm5ld192ZXhfcGF0Y2hlZF9yZWxhdGlvbnNoaXAoW3NwZHhf Y3ZlLl9pZF0sIFtzcGR4X3BhY2thZ2VdKQ0KPiArICAgICAgICAgICAgICAgICAgICBlbGlm IHN0YXR1cyA9PSAiVW5wYXRjaGVkIjoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHBr Z19vYmpzZXQubmV3X3ZleF91bnBhdGNoZWRfcmVsYXRpb25zaGlwKFtzcGR4X2N2ZS5faWRd LCBbc3BkeF9wYWNrYWdlXSkNCj4gKyAgICAgICAgICAgICAgICAgICAgZWxpZiBzdGF0dXMg PT0gIklnbm9yZWQiOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc3BkeF92ZXggPSBw a2dfb2Jqc2V0Lm5ld192ZXhfaWdub3JlZF9yZWxhdGlvbnNoaXAoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW3NwZHhfY3ZlLl9pZF0sDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgW3NwZHhfcGFja2FnZV0sDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW1wYWN0X3N0YXRlbWVudD1kZXNjcmlwdGlvbiwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgZGV0YWls IGluICgiaWdub3JlZCIsICJjcGUtaW5jb3JyZWN0IiwgImRpc3B1dGVkIiwgInVwc3RyZWFt LXdvbnRmaXgiKToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFZFWCBkb2Vz bid0IGhhdmUganVzdGlmaWNhdGlvbnMgZm9yIHRoaXMNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYXNzDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGRldGFp bCBpbiAoIm5vdC1hcHBsaWNhYmxlLWNvbmZpZyIsICJub3QtYXBwbGljYWJsZS1wbGF0Zm9y bSIpOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB2IGluIHNwZHhfdmV4 Og0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnNlY3VyaXR5X2p1c3Rp ZmljYXRpb25UeXBlID0gb2Uuc3BkeDMwLnNlY3VyaXR5X1ZleEp1c3RpZmljYXRpb25UeXBl LnZ1bG5lcmFibGVDb2RlTm90UHJlc2VudA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYi5mYXRhbChmIlVua25v d24gZGV0YWlsICd7ZGV0YWlsfScgZm9yIGlnbm9yZWQge2N2ZX0iKQ0KPiArICAgICAgICAg ICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgYmIuZmF0YWwo ZiJVbmtub3duIENWRSBzdGF0dXMge3N0YXR1c30iKQ0KPiArDQo+ICsgICAgICAgICAgICBp ZiBhbGxfY3ZlczoNCj4gKyAgICAgICAgICAgICAgICBwa2dfb2Jqc2V0Lm5ld19yZWxhdGlv bnNoaXAoDQo+ICsgICAgICAgICAgICAgICAgICAgIFtzcGR4X3BhY2thZ2VdLA0KPiArICAg ICAgICAgICAgICAgICAgICBvZS5zcGR4MzAuUmVsYXRpb25zaGlwVHlwZS5oYXNBc3NvY2lh dGVkVnVsbmVyYWJpbGl0eSwNCj4gKyAgICAgICAgICAgICAgICAgICAgc29ydGVkKGxpc3Qo YWxsX2N2ZXMpKSwNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAg IGJiLmRlYnVnKDEsICJBZGRpbmcgcGFja2FnZSBmaWxlcyB0byBTUERYIGZvciBwYWNrYWdl ICVzIiAlIHBrZ19uYW1lKQ0KPiArICAgICAgICAgICAgcGFja2FnZV9maWxlcyA9IGFkZF9w YWNrYWdlX2ZpbGVzKA0KPiArICAgICAgICAgICAgICAgIGQsDQo+ICsgICAgICAgICAgICAg ICAgcGtnX29ianNldCwNCj4gKyAgICAgICAgICAgICAgICBwa2dkZXN0IC8gcGFja2FnZSwN Cj4gKyAgICAgICAgICAgICAgICBsYW1iZGEgZmlsZV9jb3VudGVyOiBwa2dfb2Jqc2V0Lm5l d19zcGR4aWQoInBhY2thZ2UiLCBwa2dfbmFtZSwgImZpbGUiLCBzdHIoZmlsZV9jb3VudGVy KSksDQo+ICsgICAgICAgICAgICAgICAgIyBUT0RPOiBDYW4gd2Uga25vdyB0aGUgcHVycG9z ZSBoZXJlPw0KPiArICAgICAgICAgICAgICAgIGxhbWJkYSBmaWxlcGF0aDogW10sDQo+ICsg ICAgICAgICAgICAgICAgaWdub3JlX3RvcF9sZXZlbF9kaXJzPVsnQ09OVFJPTCcsICdERUJJ QU4nXSwNCj4gKyAgICAgICAgICAgICAgICBhcmNoaXZlPU5vbmUsDQo+ICsgICAgICAgICAg ICApDQo+ICsNCj4gKyAgICAgICAgICAgIGlmIHBhY2thZ2VfZmlsZXM6DQo+ICsgICAgICAg ICAgICAgICAgcGtnX29ianNldC5uZXdfcmVsYXRpb25zaGlwKA0KPiArICAgICAgICAgICAg ICAgICAgICBbc3BkeF9wYWNrYWdlXSwNCj4gKyAgICAgICAgICAgICAgICAgICAgb2Uuc3Bk eDMwLlJlbGF0aW9uc2hpcFR5cGUuY29udGFpbnMsDQo+ICsgICAgICAgICAgICAgICAgICAg IHNvcnRlZChsaXN0KHBhY2thZ2VfZmlsZXMpKSwNCj4gKyAgICAgICAgICAgICAgICApDQo+ ICsNCj4gKyAgICAgICAgICAgIGlmIGluY2x1ZGVfc291cmNlczoNCj4gKyAgICAgICAgICAg ICAgICBkZWJ1Z19zb3VyY2VzID0gZ2V0X3BhY2thZ2Vfc291cmNlc19mcm9tX2RlYnVnKGQs IHBhY2thZ2UsIHBhY2thZ2VfZmlsZXMsIHNvdXJjZXMsIHNvdXJjZV9oYXNoX2NhY2hlKQ0K PiArICAgICAgICAgICAgICAgIGRlYnVnX3NvdXJjZV9pZHMgfD0gc2V0KG9lLnNib20zMC5n ZXRfZWxlbWVudF9saW5rX2lkKGQpIGZvciBkIGluIGRlYnVnX3NvdXJjZXMpDQo+ICsNCj4g KyAgICAgICAgICAgIG9lLnNib20zMC53cml0ZV9yZWNpcGVfanNvbmxkX2RvYyhkLCBwa2df b2Jqc2V0LCAicGFja2FnZXMtc3RhZ2luZyIsIGRlcGxveWRpciwgY3JlYXRlX3NwZHhfaWRf bGlua3M9RmFsc2UpDQo+ICsNCj4gKyAgICBpZiBpbmNsdWRlX3NvdXJjZXM6DQo+ICsgICAg ICAgIGJiLmRlYnVnKDEsICJBZGRpbmcgc3lzcm9vdCBmaWxlcyB0byBTUERYIikNCj4gKyAg ICAgICAgc3lzcm9vdF9maWxlcyA9IGFkZF9wYWNrYWdlX2ZpbGVzKA0KPiArICAgICAgICAg ICAgZCwNCj4gKyAgICAgICAgICAgIGJ1aWxkX29ianNldCwNCj4gKyAgICAgICAgICAgIGQu ZXhwYW5kKCIke0NPTVBPTkVOVFNfRElSfS8ke1BBQ0tBR0VfQVJDSH0vJHtQTn0iKSwNCj4g KyAgICAgICAgICAgIGxhbWJkYSBmaWxlX2NvdW50ZXI6IGJ1aWxkX29ianNldC5uZXdfc3Bk eGlkKCJzeXNyb290Iiwgc3RyKGZpbGVfY291bnRlcikpLA0KPiArICAgICAgICAgICAgbGFt YmRhIGZpbGVwYXRoOiBbXSwNCj4gKyAgICAgICAgICAgIGFyY2hpdmU9Tm9uZSwNCj4gKyAg ICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGlmIHN5c3Jvb3RfZmlsZXM6DQo+ICsgICAgICAg ICAgICBidWlsZF9vYmpzZXQubmV3X3Njb3BlZF9yZWxhdGlvbnNoaXAoDQo+ICsgICAgICAg ICAgICAgICAgW2J1aWxkXSwNCj4gKyAgICAgICAgICAgICAgICBvZS5zcGR4MzAuUmVsYXRp b25zaGlwVHlwZS5oYXNPdXRwdXRzLA0KPiArICAgICAgICAgICAgICAgIG9lLnNwZHgzMC5M aWZlY3ljbGVTY29wZVR5cGUuYnVpbGQsDQo+ICsgICAgICAgICAgICAgICAgc29ydGVkKGxp c3Qoc3lzcm9vdF9maWxlcykpLA0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgaWYg YnVpbGRfaW5wdXRzIG9yIGRlYnVnX3NvdXJjZV9pZHM6DQo+ICsgICAgICAgIGJ1aWxkX29i anNldC5uZXdfc2NvcGVkX3JlbGF0aW9uc2hpcCgNCj4gKyAgICAgICAgICAgIFtidWlsZF0s DQo+ICsgICAgICAgICAgICBvZS5zcGR4MzAuUmVsYXRpb25zaGlwVHlwZS5oYXNJbnB1dHMs DQo+ICsgICAgICAgICAgICBvZS5zcGR4MzAuTGlmZWN5Y2xlU2NvcGVUeXBlLmJ1aWxkLA0K PiArICAgICAgICAgICAgc29ydGVkKGxpc3QoYnVpbGRfaW5wdXRzKSkgKyBzb3J0ZWQobGlz dChkZWJ1Z19zb3VyY2VfaWRzKSksDQo+ICsgICAgICAgICkNCj4gKw0KPiArICAgIG9lLnNi b20zMC53cml0ZV9yZWNpcGVfanNvbmxkX2RvYyhkLCBidWlsZF9vYmpzZXQsICJyZWNpcGVz IiwgZGVwbG95ZGlyKQ0KPiArfQ0KPiArZG9fY3JlYXRlX3NwZHhbdmFyZGVwc2V4Y2x1ZGVd ICs9ICJCQl9OVU1CRVJfVEhSRUFEUyINCj4gK2FkZHRhc2sgZG9fY3JlYXRlX3NwZHggYWZ0 ZXIgXA0KPiArICAgIGRvX2NvbGxlY3Rfc3BkeF9kZXBzIFwNCj4gKyAgICBkb19wb3B1bGF0 ZV9zeXNyb290IGRvX3BhY2thZ2UgZG9fcGFja2FnZWRhdGEgXA0KPiArICAgICR7Y3JlYXRl X3NwZHhfc291cmNlX2RlcHMoZCl9IFwNCj4gKyAgICBkb19wYWNrYWdlX3dyaXRlX2lwayBk b19wYWNrYWdlX3dyaXRlX2RlYiBkb19wYWNrYWdlX3dyaXRlX3JwbSBkb19wYWNrYWdlX3dy aXRlX3RhciBcDQo+ICsgICAgYmVmb3JlIGRvX3BvcHVsYXRlX3NkayBkb19wb3B1bGF0ZV9z ZGtfZXh0IGRvX2J1aWxkIGRvX3JtX3dvcmsNCj4gKw0KPiArZGVmIGNyZWF0ZV9zcGR4X3Nv dXJjZV9kZXBzKGQpOg0KPiArICAgIGRlcHMgPSBbXQ0KPiArICAgIGlmIGQuZ2V0VmFyKCJT UERYX0lOQ0xVREVfU09VUkNFUyIpID09ICIxIjoNCj4gKyAgICAgICAgZGVwcy5leHRlbmQo Ww0KPiArICAgICAgICAgICAgIyBkb191bnBhY2sgaXMgYSBoYWNrIGZvciBub3c7IHdlIG9u bHkgbmVlZCBpdCB0byBnZXQgdGhlDQo+ICsgICAgICAgICAgICAjIGRlcGVuZGVuY2llcyBk b191bnBhY2sgYWxyZWFkeSBoYXMgc28gd2UgY2FuIGV4dHJhY3QgdGhlIHNvdXJjZQ0KPiAr ICAgICAgICAgICAgIyBvdXJzZWx2ZXMNCj4gKyAgICAgICAgICAgICJkb191bnBhY2siLA0K PiArICAgICAgICAgICAgIyBGb3Iga2VybmVsIHNvdXJjZSBjb2RlDQo+ICsgICAgICAgICAg ICAiZG9fc2hhcmVkX3dvcmtkaXIiLA0KPiArICAgICAgICBdKQ0KPiArICAgIHJldHVybiAi ICIuam9pbihkZXBzKQ0KPiArDQo+ICtTU1RBVEVUQVNLUyArPSAiZG9fY3JlYXRlX3NwZHgi DQo+ICtkb19jcmVhdGVfc3BkeFtzc3RhdGUtaW5wdXRkaXJzXSA9ICIke1NQRFhERVBMT1l9 Ig0KPiArZG9fY3JlYXRlX3NwZHhbc3N0YXRlLW91dHB1dGRpcnNdID0gIiR7REVQTE9ZX0RJ Ul9TUERYfSINCj4gKw0KPiArcHl0aG9uIGRvX2NyZWF0ZV9zcGR4X3NldHNjZW5lICgpIHsN Cj4gKyAgICBzc3RhdGVfc2V0c2NlbmUoZCkNCj4gK30NCj4gK2FkZHRhc2sgZG9fY3JlYXRl X3NwZHhfc2V0c2NlbmUNCj4gKw0KPiArZG9fY3JlYXRlX3NwZHhbZGlyc10gPSAiJHtTUERY V09SS30iDQo+ICtkb19jcmVhdGVfc3BkeFtjbGVhbmRpcnNdID0gIiR7U1BEWERFUExPWX0g JHtTUERYV09SS30iDQo+ICtkb19jcmVhdGVfc3BkeFtkZXBlbmRzXSArPSAiJHtQQVRDSERF UEVOREVOQ1l9Ig0KPiArDQo+ICtweXRob24gZG9fY3JlYXRlX3BhY2thZ2Vfc3BkeCgpIHsN Cj4gKyAgICBpbXBvcnQgb2Uuc2JvbTMwDQo+ICsgICAgaW1wb3J0IG9lLnNwZHgzMA0KPiAr ICAgIGltcG9ydCBvZS5wYWNrYWdlZGF0YQ0KPiArICAgIGZyb20gcGF0aGxpYiBpbXBvcnQg UGF0aA0KPiArDQo+ICsgICAgZGVwbG95X2Rpcl9zcGR4ID0gUGF0aChkLmdldFZhcigiREVQ TE9ZX0RJUl9TUERYIikpDQo+ICsgICAgZGVwbG95ZGlyID0gUGF0aChkLmdldFZhcigiU1BE WFJVTlRJTUVERVBMT1kiKSkNCj4gKyAgICBpc19uYXRpdmUgPSBiYi5kYXRhLmluaGVyaXRz X2NsYXNzKCJuYXRpdmUiLCBkKSBvciBiYi5kYXRhLmluaGVyaXRzX2NsYXNzKCJjcm9zcyIs IGQpDQo+ICsNCj4gKyAgICBwcm92aWRlcnMgPSBjb2xsZWN0X3BhY2thZ2VfcHJvdmlkZXJz KGQpDQo+ICsgICAgcGtnX2FyY2ggPSBkLmdldFZhcigiU1NUQVRFX1BLR0FSQ0giKQ0KPiAr DQo+ICsgICAgaWYgbm90IGlzX25hdGl2ZToNCj4gKyAgICAgICAgYmIuYnVpbGQuZXhlY19m dW5jKCJyZWFkX3N1YnBhY2thZ2VfbWV0YWRhdGEiLCBkKQ0KPiArDQo+ICsgICAgICAgIGRl cF9wYWNrYWdlX2NhY2hlID0ge30NCj4gKw0KPiArICAgICAgICAjIEFueSBlbGVtZW50IGNv bW1vbiB0byBhbGwgcGFja2FnZXMgdGhhdCBuZWVkIHRvIGJlIHJlZmVyZW5jZWQgYnkgSUQN Cj4gKyAgICAgICAgIyBzaG91bGQgYmUgd3JpdHRlbiBpbnRvIHRoaXMgb2Jqc2V0IHNldA0K PiArICAgICAgICBjb21tb25fb2Jqc2V0ID0gb2Uuc2JvbTMwLk9iamVjdFNldC5uZXdfb2Jq c2V0KGQsICIlcy1wYWNrYWdlLWNvbW1vbiIgJSBkLmdldFZhcigiUE4iKSkNCj4gKw0KPiAr ICAgICAgICBwa2dkZXN0ID0gUGF0aChkLmdldFZhcigiUEtHREVTVCIpKQ0KPiArICAgICAg ICBmb3IgcGFja2FnZSBpbiBkLmdldFZhcigiUEFDS0FHRVMiKS5zcGxpdCgpOg0KPiArICAg ICAgICAgICAgbG9jYWxkYXRhID0gYmIuZGF0YS5jcmVhdGVDb3B5KGQpDQo+ICsgICAgICAg ICAgICBwa2dfbmFtZSA9IGQuZ2V0VmFyKCJQS0c6JXMiICUgcGFja2FnZSkgb3IgcGFja2Fn ZQ0KPiArICAgICAgICAgICAgbG9jYWxkYXRhLnNldFZhcigiUEtHIiwgcGtnX25hbWUpDQo+ ICsgICAgICAgICAgICBsb2NhbGRhdGEuc2V0VmFyKCdPVkVSUklERVMnLCBkLmdldFZhcigi T1ZFUlJJREVTIiwgRmFsc2UpICsgIjoiICsgcGFja2FnZSkNCj4gKw0KPiArICAgICAgICAg ICAgaWYgbm90IG9lLnBhY2thZ2VkYXRhLnBhY2thZ2VkKHBhY2thZ2UsIGxvY2FsZGF0YSk6 DQo+ICsgICAgICAgICAgICAgICAgY29udGludWUNCj4gKw0KPiArICAgICAgICAgICAgc3Bk eF9wYWNrYWdlLCBwa2dfb2Jqc2V0ID0gb2Uuc2JvbTMwLmxvYWRfb2JqX2luX2pzb25sZCgN Cj4gKyAgICAgICAgICAgICAgICBkLA0KPiArICAgICAgICAgICAgICAgIHBrZ19hcmNoLA0K PiArICAgICAgICAgICAgICAgICJwYWNrYWdlcy1zdGFnaW5nIiwNCj4gKyAgICAgICAgICAg ICAgICBwa2dfbmFtZSwNCj4gKyAgICAgICAgICAgICAgICBvZS5zcGR4MzAuc29mdHdhcmVf UGFja2FnZSwNCj4gKyAgICAgICAgICAgICAgICBzb2Z0d2FyZV9wcmltYXJ5UHVycG9zZT1v ZS5zcGR4MzAuc29mdHdhcmVfU29mdHdhcmVQdXJwb3NlLmluc3RhbGwsDQo+ICsgICAgICAg ICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgICMgV2Ugd2lsbCB3cml0ZSBvdXQgYSBuZXcg Y29sbGVjdGlvbiwgc28gbGluayBpdCB0byB0aGUgbmV3DQo+ICsgICAgICAgICAgICAjIGNy ZWF0aW9uIGluZm8gaW4gdGhlIGNvbW1vbiBwYWNrYWdlIGRhdGEuIFRoZSBvbGQgY3JlYXRp b24gaW5mbw0KPiArICAgICAgICAgICAgIyBzaG91bGQgc3RpbGwgZXhpc3QgYW5kIGJlIHJl ZmVyZW5jZWQgYnkgYWxsIHRoZSBleGlzdGluZyBlbGVtZW50cw0KPiArICAgICAgICAgICAg IyBpbiB0aGUgcGFja2FnZQ0KPiArICAgICAgICAgICAgcGtnX29ianNldC5jcmVhdGlvbklu Zm8gPSBwa2dfb2Jqc2V0LmNvcHlfY3JlYXRpb25faW5mbyhjb21tb25fb2Jqc2V0LmRvYy5j cmVhdGlvbkluZm8pDQo+ICsNCj4gKyAgICAgICAgICAgIHJ1bnRpbWVfc3BkeF9kZXBzID0g c2V0KCkNCj4gKw0KPiArICAgICAgICAgICAgZGVwcyA9IGJiLnV0aWxzLmV4cGxvZGVfZGVw X3ZlcnNpb25zMihsb2NhbGRhdGEuZ2V0VmFyKCJSREVQRU5EUyIpIG9yICIiKQ0KPiArICAg ICAgICAgICAgc2Vlbl9kZXBzID0gc2V0KCkNCj4gKyAgICAgICAgICAgIGZvciBkZXAsIF8g aW4gZGVwcy5pdGVtcygpOg0KPiArICAgICAgICAgICAgICAgIGlmIGRlcCBpbiBzZWVuX2Rl cHM6DQo+ICsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICBpZiBkZXAgbm90IGluIHByb3ZpZGVyczoNCj4gKyAgICAgICAgICAgICAgICAg ICAgY29udGludWUNCj4gKw0KPiArICAgICAgICAgICAgICAgIChkZXAsIF8pID0gcHJvdmlk ZXJzW2RlcF0NCj4gKw0KPiArICAgICAgICAgICAgICAgIGlmIG5vdCBvZS5wYWNrYWdlZGF0 YS5wYWNrYWdlZChkZXAsIGxvY2FsZGF0YSk6DQo+ICsgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBkZXBfcGtnX2RhdGEgPSBvZS5wYWNr YWdlZGF0YS5yZWFkX3N1YnBrZ2RhdGFfZGljdChkZXAsIGQpDQo+ICsgICAgICAgICAgICAg ICAgZGVwX3BrZyA9IGRlcF9wa2dfZGF0YVsiUEtHIl0NCj4gKw0KPiArICAgICAgICAgICAg ICAgIGlmIGRlcCBpbiBkZXBfcGFja2FnZV9jYWNoZToNCj4gKyAgICAgICAgICAgICAgICAg ICAgZGVwX3NwZHhfcGFja2FnZSA9IGRlcF9wYWNrYWdlX2NhY2hlW2RlcF0NCj4gKyAgICAg ICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBiYi5kZWJ1ZygxLCAi U2VhcmNoaW5nIGZvciAlcyIgJSBkZXBfcGtnKQ0KPiArICAgICAgICAgICAgICAgICAgICBk ZXBfc3BkeF9wYWNrYWdlLCBfID0gb2Uuc2JvbTMwLmZpbmRfcm9vdF9vYmpfaW5fanNvbmxk KA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZCwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICJwYWNrYWdlcy1zdGFnaW5nIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IGRlcF9wa2csDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBvZS5zcGR4MzAuc29mdHdh cmVfUGFja2FnZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNvZnR3YXJlX3ByaW1h cnlQdXJwb3NlPW9lLnNwZHgzMC5zb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2UuaW5zdGFsbCwN Cj4gKyAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgICAgICAgICBkZXBf cGFja2FnZV9jYWNoZVtkZXBdID0gZGVwX3NwZHhfcGFja2FnZQ0KPiArDQo+ICsgICAgICAg ICAgICAgICAgcnVudGltZV9zcGR4X2RlcHMuYWRkKGRlcF9zcGR4X3BhY2thZ2UpDQo+ICsg ICAgICAgICAgICAgICAgc2Vlbl9kZXBzLmFkZChkZXApDQo+ICsNCj4gKyAgICAgICAgICAg IGlmIHJ1bnRpbWVfc3BkeF9kZXBzOg0KPiArICAgICAgICAgICAgICAgIHBrZ19vYmpzZXQu bmV3X3Njb3BlZF9yZWxhdGlvbnNoaXAoDQo+ICsgICAgICAgICAgICAgICAgICAgIFtzcGR4 X3BhY2thZ2VdLA0KPiArICAgICAgICAgICAgICAgICAgICBvZS5zcGR4MzAuUmVsYXRpb25z aGlwVHlwZS5kZXBlbmRzT24sDQo+ICsgICAgICAgICAgICAgICAgICAgIG9lLnNwZHgzMC5M aWZlY3ljbGVTY29wZVR5cGUucnVudGltZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgW29l LnNib20zMC5nZXRfZWxlbWVudF9saW5rX2lkKGRlcCkgZm9yIGRlcCBpbiBydW50aW1lX3Nw ZHhfZGVwc10sDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgICAgICBv ZS5zYm9tMzAud3JpdGVfcmVjaXBlX2pzb25sZF9kb2MoZCwgcGtnX29ianNldCwgInBhY2th Z2VzIiwgZGVwbG95ZGlyKQ0KPiArDQo+ICsgICAgICAgIG9lLnNib20zMC53cml0ZV9yZWNp cGVfanNvbmxkX2RvYyhkLCBjb21tb25fb2Jqc2V0LCAiY29tbW9uLXBhY2thZ2UiLCBkZXBs b3lkaXIpDQo+ICt9DQo+ICsNCj4gK2RvX2NyZWF0ZV9wYWNrYWdlX3NwZHhbdmFyZGVwc2V4 Y2x1ZGVdICs9ICJPVkVSUklERVMgU1NUQVRFX0FSQ0hTIg0KPiArDQo+ICthZGR0YXNrIGRv X2NyZWF0ZV9wYWNrYWdlX3NwZHggYWZ0ZXIgZG9fY3JlYXRlX3NwZHggYmVmb3JlIGRvX2J1 aWxkIGRvX3JtX3dvcmsNCj4gK1NTVEFURVRBU0tTICs9ICJkb19jcmVhdGVfcGFja2FnZV9z cGR4Ig0KPiArZG9fY3JlYXRlX3BhY2thZ2Vfc3BkeFtzc3RhdGUtaW5wdXRkaXJzXSA9ICIk e1NQRFhSVU5USU1FREVQTE9ZfSINCj4gK2RvX2NyZWF0ZV9wYWNrYWdlX3NwZHhbc3N0YXRl LW91dHB1dGRpcnNdID0gIiR7REVQTE9ZX0RJUl9TUERYfSINCj4gKw0KPiArcHl0aG9uIGRv X2NyZWF0ZV9wYWNrYWdlX3NwZHhfc2V0c2NlbmUgKCkgew0KPiArICAgIHNzdGF0ZV9zZXRz Y2VuZShkKQ0KPiArfQ0KPiArYWRkdGFzayBkb19jcmVhdGVfcGFja2FnZV9zcGR4X3NldHNj ZW5lDQo+ICsNCj4gK2RvX2NyZWF0ZV9wYWNrYWdlX3NwZHhbZGlyc10gPSAiJHtTUERYUlVO VElNRURFUExPWX0iDQo+ICtkb19jcmVhdGVfcGFja2FnZV9zcGR4W2NsZWFuZGlyc10gPSAi JHtTUERYUlVOVElNRURFUExPWX0iDQo+ICtkb19jcmVhdGVfcGFja2FnZV9zcGR4W3JkZXB0 YXNrXSA9ICJkb19jcmVhdGVfc3BkeCINCj4gKw0KPiArZG9fcG9wdWxhdGVfc2RrW3JlY3Jk ZXB0YXNrXSArPSAiZG9fY3JlYXRlX3NwZHggZG9fY3JlYXRlX3BhY2thZ2Vfc3BkeCINCj4g K2RvX3BvcHVsYXRlX3Nka1tjbGVhbmRpcnNdICs9ICIke1NQRFhTREtXT1JLfSINCj4gK2Rv X3BvcHVsYXRlX3Nka1twb3N0ZnVuY3NdICs9ICJzZGtfY3JlYXRlX3Nib20iDQo+ICtQT1BV TEFURV9TREtfUE9TVF9IT1NUX0NPTU1BTkQ6YXBwZW5kOnRhc2stcG9wdWxhdGUtc2RrID0g IiBzZGtfaG9zdF9jcmVhdGVfc3BkeCINCj4gK1BPUFVMQVRFX1NES19QT1NUX1RBUkdFVF9D T01NQU5EOmFwcGVuZDp0YXNrLXBvcHVsYXRlLXNkayA9ICIgc2RrX3RhcmdldF9jcmVhdGVf c3BkeCINCj4gKw0KPiArZG9fcG9wdWxhdGVfc2RrX2V4dFtyZWNyZGVwdGFza10gKz0gImRv X2NyZWF0ZV9zcGR4IGRvX2NyZWF0ZV9wYWNrYWdlX3NwZHgiDQo+ICtkb19wb3B1bGF0ZV9z ZGtfZXh0W2NsZWFuZGlyc10gKz0gIiR7U1BEWFNES0VYVFdPUkt9Ig0KPiArZG9fcG9wdWxh dGVfc2RrX2V4dFtwb3N0ZnVuY3NdICs9ICJzZGtfZXh0X2NyZWF0ZV9zYm9tIg0KPiArUE9Q VUxBVEVfU0RLX1BPU1RfSE9TVF9DT01NQU5EOmFwcGVuZDp0YXNrLXBvcHVsYXRlLXNkay1l eHQgPSAiIHNka19leHRfaG9zdF9jcmVhdGVfc3BkeCINCj4gK1BPUFVMQVRFX1NES19QT1NU X1RBUkdFVF9DT01NQU5EOmFwcGVuZDp0YXNrLXBvcHVsYXRlLXNkay1leHQgPSAiIHNka19l eHRfdGFyZ2V0X2NyZWF0ZV9zcGR4Ig0KPiArDQo+ICtweXRob24gc2RrX2hvc3RfY3JlYXRl X3NwZHgoKSB7DQo+ICsgICAgZnJvbSBwYXRobGliIGltcG9ydCBQYXRoDQo+ICsgICAgc3Bk eF93b3JrX2RpciA9IFBhdGgoZC5nZXRWYXIoJ1NQRFhTREtXT1JLJykpDQo+ICsNCj4gKyAg ICBzZGtfY3JlYXRlX3NwZHgoZCwgImhvc3QiLCBzcGR4X3dvcmtfZGlyLCBkLmdldFZhcigi VE9PTENIQUlOX09VVFBVVE5BTUUiKSkNCj4gK30NCj4gKw0KPiArcHl0aG9uIHNka190YXJn ZXRfY3JlYXRlX3NwZHgoKSB7DQo+ICsgICAgZnJvbSBwYXRobGliIGltcG9ydCBQYXRoDQo+ ICsgICAgc3BkeF93b3JrX2RpciA9IFBhdGgoZC5nZXRWYXIoJ1NQRFhTREtXT1JLJykpDQo+ ICsNCj4gKyAgICBzZGtfY3JlYXRlX3NwZHgoZCwgInRhcmdldCIsIHNwZHhfd29ya19kaXIs IGQuZ2V0VmFyKCJUT09MQ0hBSU5fT1VUUFVUTkFNRSIpKQ0KPiArfQ0KPiArDQo+ICtweXRo b24gc2RrX2V4dF9ob3N0X2NyZWF0ZV9zcGR4KCkgew0KPiArICAgIGZyb20gcGF0aGxpYiBp bXBvcnQgUGF0aA0KPiArICAgIHNwZHhfd29ya19kaXIgPSBQYXRoKGQuZ2V0VmFyKCdTUERY U0RLRVhUV09SSycpKQ0KPiArDQo+ICsgICAgIyBUT0RPOiBUaGlzIGRvZXNuJ3Qgc2VlbSB0 byB3b3JrDQo+ICsgICAgc2RrX2NyZWF0ZV9zcGR4KGQsICJob3N0Iiwgc3BkeF93b3JrX2Rp ciwgZC5nZXRWYXIoIlRPT0xDSEFJTkVYVF9PVVRQVVROQU1FIikpDQo+ICt9DQo+ICsNCj4g K3B5dGhvbiBzZGtfZXh0X3RhcmdldF9jcmVhdGVfc3BkeCgpIHsNCj4gKyAgICBmcm9tIHBh dGhsaWIgaW1wb3J0IFBhdGgNCj4gKyAgICBzcGR4X3dvcmtfZGlyID0gUGF0aChkLmdldFZh cignU1BEWFNES0VYVFdPUksnKSkNCj4gKw0KPiArICAgICMgVE9ETzogVGhpcyBkb2Vzbid0 IHNlZW0gdG8gd29yaw0KPiArICAgIHNka19jcmVhdGVfc3BkeChkLCAidGFyZ2V0Iiwgc3Bk eF93b3JrX2RpciwgZC5nZXRWYXIoIlRPT0xDSEFJTkVYVF9PVVRQVVROQU1FIikpDQo+ICt9 DQo+ICsNCj4gK2RlZiBzZGtfY3JlYXRlX3NwZHgoZCwgc2RrX3R5cGUsIHNwZHhfd29ya19k aXIsIHRvb2xjaGFpbl9vdXRwdXRuYW1lKToNCj4gKyAgICBmcm9tIHBhdGhsaWIgaW1wb3J0 IFBhdGgNCj4gKyAgICBmcm9tIG9lLnNkayBpbXBvcnQgc2RrX2xpc3RfaW5zdGFsbGVkX3Bh Y2thZ2VzDQo+ICsgICAgaW1wb3J0IG9lLnNwZHgzMA0KPiArICAgIGltcG9ydCBvZS5zYm9t MzANCj4gKyAgICBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQ0KPiArDQo+ICsgICAg c2RrX25hbWUgPSB0b29sY2hhaW5fb3V0cHV0bmFtZSArICItIiArIHNka190eXBlDQo+ICsg ICAgc2RrX3BhY2thZ2VzID0gc2RrX2xpc3RfaW5zdGFsbGVkX3BhY2thZ2VzKGQsIHNka190 eXBlID09ICJ0YXJnZXQiKQ0KPiArDQo+ICsgICAgb2Jqc2V0ID0gb2Uuc2JvbTMwLk9iamVj dFNldC5uZXdfb2Jqc2V0KGQsIHNka19uYW1lKQ0KPiArDQo+ICsgICAgc2RrX3Jvb3RmcyA9 IG9ianNldC5hZGRfcm9vdChvZS5zcGR4MzAuc29mdHdhcmVfUGFja2FnZSgNCj4gKyAgICAg ICAgX2lkPW9ianNldC5uZXdfc3BkeGlkKCJzZGstcm9vdGZzIiwgc2RrX25hbWUpLA0KPiAr ICAgICAgICBjcmVhdGlvbkluZm89b2Jqc2V0LmRvYy5jcmVhdGlvbkluZm8sDQo+ICsgICAg ICAgIG5hbWU9c2RrX25hbWUsDQo+ICsgICAgICAgIHNvZnR3YXJlX3ByaW1hcnlQdXJwb3Nl PW9lLnNwZHgzMC5zb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2UuYXJjaGl2ZSwNCj4gKyAgICAg ICAgYnVpbHRUaW1lPW9lLnNib20zMC5zcGR4X25vdygpLA0KPiArICAgICkpDQo+ICsNCj4g KyAgICBzZGtfYnVpbGQgPSBvYmpzZXQuYWRkX3Jvb3Qob2Jqc2V0Lm5ld19zdWJfYnVpbGQo InNkay1yb290ZnMiLCAic2RrLXJvb3RmcyIpKQ0KPiArICAgIHNka19idWlsZC5idWlsZF9i dWlsZEVuZFRpbWUgPSBvZS5zYm9tMzAuc3BkeF9ub3coKQ0KPiArDQo+ICsgICAgb2Jqc2V0 Lm5ld19zY29wZWRfcmVsYXRpb25zaGlwKA0KPiArICAgICAgICBbc2RrX2J1aWxkXSwNCj4g KyAgICAgICAgb2Uuc3BkeDMwLlJlbGF0aW9uc2hpcFR5cGUuaGFzT3V0cHV0cywNCj4gKyAg ICAgICAgb2Uuc3BkeDMwLkxpZmVjeWNsZVNjb3BlVHlwZS5idWlsZCwNCj4gKyAgICAgICAg W3Nka19yb290ZnNdLA0KPiArICAgICkNCj4gKw0KPiArICAgIGNvbGxlY3RfYnVpbGRfcGFj a2FnZV9pbnB1dHMoZCwgb2Jqc2V0LCBzZGtfYnVpbGQsIHNka19wYWNrYWdlcykNCj4gKw0K PiArICAgIG9ianNldC5hZGRfYWxpYXNlcygpDQo+ICsgICAgb2Uuc2JvbTMwLndyaXRlX2pz b25sZF9kb2MoZCwgb2Jqc2V0LCBzcGR4X3dvcmtfZGlyIC8gInNkay1yb290ZnMuc3BkeC5q c29uIikNCj4gKw0KPiArcHl0aG9uIHNka19jcmVhdGVfc2JvbSgpIHsNCj4gKyAgICBmcm9t IHBhdGhsaWIgaW1wb3J0IFBhdGgNCj4gKyAgICBzZGtfZGVwbG95ZGlyID0gUGF0aChkLmdl dFZhcigiU0RLREVQTE9ZRElSIikpDQo+ICsgICAgc3BkeF93b3JrX2RpciA9IFBhdGgoZC5n ZXRWYXIoJ1NQRFhTREtXT1JLJykpDQo+ICsNCj4gKyAgICBjcmVhdGVfc2RrX3Nib20oZCwg c2RrX2RlcGxveWRpciwgc3BkeF93b3JrX2RpciwgZC5nZXRWYXIoIlRPT0xDSEFJTl9PVVRQ VVROQU1FIikpDQo+ICt9DQo+ICsNCj4gK3B5dGhvbiBzZGtfZXh0X2NyZWF0ZV9zYm9tKCkg ew0KPiArICAgIGZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aA0KPiArICAgIHNka19kZXBsb3lk aXIgPSBQYXRoKGQuZ2V0VmFyKCJTREtFWFRERVBMT1lESVIiKSkNCj4gKyAgICBzcGR4X3dv cmtfZGlyID0gUGF0aChkLmdldFZhcignU1BEWFNES0VYVFdPUksnKSkNCj4gKw0KPiArICAg IGNyZWF0ZV9zZGtfc2JvbShkLCBzZGtfZGVwbG95ZGlyLCBzcGR4X3dvcmtfZGlyLCBkLmdl dFZhcigiVE9PTENIQUlORVhUX09VVFBVVE5BTUUiKSkNCj4gK30NCj4gKw0KPiArZGVmIGNy ZWF0ZV9zZGtfc2JvbShkLCBzZGtfZGVwbG95ZGlyLCBzcGR4X3dvcmtfZGlyLCB0b29sY2hh aW5fb3V0cHV0bmFtZSk6DQo+ICsgICAgaW1wb3J0IG9lLnNwZHgzMA0KPiArICAgIGltcG9y dCBvZS5zYm9tMzANCj4gKyAgICBmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgNCj4gKyAgICBm cm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQ0KPiArDQo+ICsgICAgbm93ID0gb2Uuc2Jv bTMwLnNwZHhfbm93KCkNCj4gKw0KPiArICAgICMgTG9hZCB0aGUgZG9jdW1lbnQgd3JpdHRl biBlYXJsaWVyDQo+ICsgICAgcm9vdGZzX29ianNldCA9IG9lLnNib20zMC5sb2FkX2pzb25s ZChkLCBzcGR4X3dvcmtfZGlyIC8gInNkay1yb290ZnMuc3BkeC5qc29uIiwgcmVxdWlyZWQ9 VHJ1ZSkNCj4gKw0KPiArICAgICMgQ3JlYXRlIGEgbmV3IGJ1aWxkIGZvciB0aGUgU0RLIGlu c3RhbGxlcg0KPiArICAgIHNka19idWlsZCA9IHJvb3Rmc19vYmpzZXQubmV3X3N1Yl9idWls ZCgic2RrLXBvcHVsYXRlIiwgInNkay1wb3B1bGF0ZSIpDQo+ICsgICAgc2RrX2J1aWxkLmJ1 aWxkX2J1aWxkRW5kVGltZSA9IG9lLnNib20zMC5zcGR4X25vdygpDQo+ICsNCj4gKyAgICBy b290ZnMgPSByb290ZnNfb2Jqc2V0LmZpbmRfcm9vdChvZS5zcGR4MzAuc29mdHdhcmVfUGFj a2FnZSkNCj4gKyAgICBpZiByb290ZnMgaXMgTm9uZToNCj4gKyAgICAgICAgYmIuZmF0YWwo IlVuYWJsZSB0byBmaW5kIHJvb3RmcyBhcnRpZmFjdCIpDQo+ICsNCj4gKyAgICByb290ZnNf b2Jqc2V0Lm5ld19zY29wZWRfcmVsYXRpb25zaGlwKA0KPiArICAgICAgICBbc2RrX2J1aWxk XSwNCj4gKyAgICAgICAgb2Uuc3BkeDMwLlJlbGF0aW9uc2hpcFR5cGUuaGFzSW5wdXRzLA0K PiArICAgICAgICBvZS5zcGR4MzAuTGlmZWN5Y2xlU2NvcGVUeXBlLmJ1aWxkLA0KPiArICAg ICAgICBbcm9vdGZzXQ0KPiArICAgICkNCj4gKw0KPiArICAgIGZpbGVzID0gc2V0KCkNCj4g KyAgICByb290X2ZpbGVzID0gW10NCj4gKw0KPiArICAgICMgTk9URTogb3Mud2FsaygpIGRv ZXNuJ3QgcmV0dXJuIHN5bWxpbmtzDQo+ICsgICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBm aWxlbmFtZXMgaW4gb3Mud2FsayhzZGtfZGVwbG95ZGlyKToNCj4gKyAgICAgICAgZm9yIGZu IGluIGZpbGVuYW1lczoNCj4gKyAgICAgICAgICAgIGZwYXRoID0gUGF0aChkaXJwYXRoKSAv IGZuDQo+ICsgICAgICAgICAgICBpZiBub3QgZnBhdGguaXNfZmlsZSgpIG9yIGZwYXRoLmlz X3N5bWxpbmsoKToNCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiArDQo+ICsgICAg ICAgICAgICByZWxwYXRoID0gc3RyKGZwYXRoLnJlbGF0aXZlX3RvKHNka19kZXBsb3lkaXIp KQ0KPiArDQo+ICsgICAgICAgICAgICBmID0gcm9vdGZzX29ianNldC5uZXdfZmlsZSgNCj4g KyAgICAgICAgICAgICAgICByb290ZnNfb2Jqc2V0Lm5ld19zcGR4aWQoInNkay1pbnN0YWxs ZXIiLCByZWxwYXRoKSwNCj4gKyAgICAgICAgICAgICAgICByZWxwYXRoLA0KPiArICAgICAg ICAgICAgICAgIGZwYXRoLA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgZi5i dWlsdFRpbWUgPSBub3cNCj4gKw0KPiArICAgICAgICAgICAgaWYgZm4uZW5kc3dpdGgoIi5t YW5pZmVzdCIpOg0KPiArICAgICAgICAgICAgICAgIGYuc29mdHdhcmVfcHJpbWFyeVB1cnBv c2UgPSBvZS5zcGR4MzAuc29mdHdhcmVfU29mdHdhcmVQdXJwb3NlLm1hbmlmZXN0DQo+ICsg ICAgICAgICAgICBlbGlmIGZuLmVuZHN3aXRoKCIudGVzdGRhdGEuanNvbiIpOg0KPiArICAg ICAgICAgICAgICAgIGYuc29mdHdhcmVfcHJpbWFyeVB1cnBvc2UgPSBvZS5zcGR4MzAuc29m dHdhcmVfU29mdHdhcmVQdXJwb3NlLmNvbmZpZ3VyYXRpb24NCj4gKyAgICAgICAgICAgIGVs c2U6DQo+ICsgICAgICAgICAgICAgICAgc2V0X3B1cnBvc2VzKGQsIGYsICJTUERYX1NES19Q VVJQT1NFIikNCj4gKyAgICAgICAgICAgICAgICByb290X2ZpbGVzLmFwcGVuZChmKQ0KPiAr DQo+ICsgICAgICAgICAgICBmaWxlcy5hZGQoZikNCj4gKw0KPiArICAgIGlmIGZpbGVzOg0K PiArICAgICAgICByb290ZnNfb2Jqc2V0Lm5ld19zY29wZWRfcmVsYXRpb25zaGlwKA0KPiAr ICAgICAgICAgICAgW3Nka19idWlsZF0sDQo+ICsgICAgICAgICAgICBvZS5zcGR4MzAuUmVs YXRpb25zaGlwVHlwZS5oYXNPdXRwdXRzLA0KPiArICAgICAgICAgICAgb2Uuc3BkeDMwLkxp ZmVjeWNsZVNjb3BlVHlwZS5idWlsZCwNCj4gKyAgICAgICAgICAgIGZpbGVzLA0KPiArICAg ICAgICApDQo+ICsgICAgZWxzZToNCj4gKyAgICAgICAgYmIud2FybihmIk5vIFNESyBvdXRw dXQgZmlsZXMgZm91bmQgaW4ge3Nka19kZXBsb3lkaXJ9IikNCj4gKw0KPiArICAgIG9ianNl dCwgc2JvbSA9IG9lLnNib20zMC5jcmVhdGVfc2JvbShkLCB0b29sY2hhaW5fb3V0cHV0bmFt ZSwgc29ydGVkKGxpc3QoZmlsZXMpKSwgW3Jvb3Rmc19vYmpzZXRdKQ0KPiArDQo+ICsgICAg b2Uuc2JvbTMwLndyaXRlX2pzb25sZF9kb2MoZCwgb2Jqc2V0LCBzZGtfZGVwbG95ZGlyIC8g KHRvb2xjaGFpbl9vdXRwdXRuYW1lICsgIi5zcGR4Lmpzb24iKSkNCj4gKw0KPiArcHl0aG9u IHNwZHgzMF9idWlsZF9zdGFydGVkX2hhbmRsZXIgKCkgew0KPiArICAgIGltcG9ydCBvZS5z cGR4MzANCj4gKyAgICBpbXBvcnQgb2Uuc2JvbTMwDQo+ICsgICAgaW1wb3J0IG9zDQo+ICsg ICAgZnJvbSBwYXRobGliIGltcG9ydCBQYXRoDQo+ICsNCj4gKyAgICAjIENyZWF0ZSBhIGNv cHkgb2YgdGhlIGRhdGFzdG9yZS4gU2V0IFBOIHRvICJiaXRiYWtlIiBzbyB0aGF0IFNQRFgg SURzIGNhbg0KPiArICAgICMgYmUgZ2VuZXJhdGVkDQo+ICsgICAgZCA9IGUuZGF0YS5jcmVh dGVDb3B5KCkNCj4gKyAgICBkLnNldFZhcigiUE4iLCAiYml0YmFrZSIpDQo+ICsgICAgZC5z ZXRWYXIoIkJCX1RBU0tIQVNIIiwgImJpdGJha2UiKQ0KPiArICAgIGxvYWRfc3BkeF9saWNl bnNlX2RhdGEoZCkNCj4gKw0KPiArICAgIGRlcGxveV9kaXJfc3BkeCA9IFBhdGgoZS5kYXRh LmdldFZhcigiREVQTE9ZX0RJUl9TUERYIikpDQo+ICsNCj4gKyAgICBub25jZSA9IG9zLnVy YW5kb20oMTYpLmhleCgpDQo+ICsNCj4gKyAgICBvYmpzZXQgPSBvZS5zYm9tMzAuT2JqZWN0 U2V0Lm5ld19vYmpzZXQoZCwgImJpdGJha2UiLCBGYWxzZSkNCj4gKw0KPiArICAgIGJ1aWxk ID0gb2Jqc2V0LmFkZF9yb290KG9lLnNwZHgzMC5idWlsZF9CdWlsZCgNCj4gKyAgICAgICAg X2lkPW9ianNldC5uZXdfc3BkeGlkKG5vbmNlLCBpbmNsdWRlX3VuaWhhc2g9RmFsc2UpLA0K PiArICAgICAgICBjcmVhdGlvbkluZm89b2Jqc2V0LmRvYy5jcmVhdGlvbkluZm8sDQo+ICsg ICAgICAgIGJ1aWxkX2J1aWxkVHlwZT1vZS5zYm9tMzAuU1BEWF9CVUlMRF9UWVBFLA0KPiAr ICAgICAgICBidWlsZF9idWlsZFN0YXJ0VGltZT1vZS5zYm9tMzAuc3BkeF9ub3coKQ0KPiAr ICAgICkpDQo+ICsNCj4gKyAgICBob3N0X2ltcG9ydF9rZXkgPSBkLmdldFZhcigiU1BEWF9C VUlMRF9IT1NUIikNCj4gKyAgICBpZiBob3N0X2ltcG9ydF9rZXk6DQo+ICsgICAgICAgIG9i anNldC5uZXdfc2NvcGVkX3JlbGF0aW9uc2hpcCgNCj4gKyAgICAgICAgICAgIFtidWlsZF0s DQo+ICsgICAgICAgICAgICBvZS5zcGR4MzAuUmVsYXRpb25zaGlwVHlwZS5oYXNIb3N0LA0K PiArICAgICAgICAgICAgb2Uuc3BkeDMwLkxpZmVjeWNsZVNjb3BlVHlwZS5idWlsZCwNCj4g KyAgICAgICAgICAgIFtvYmpzZXQubmV3X2ltcG9ydCgiU1BEWF9CVUlMRF9IT1NUIildLA0K PiArICAgICAgICApDQo+ICsNCj4gKyAgICBpbnZva2VkX2J5ID0gb2Jqc2V0Lm5ld19hZ2Vu dCgiU1BEWF9JTlZPS0VEX0JZIikNCj4gKyAgICBpZiBpbnZva2VkX2J5Og0KPiArICAgICAg ICBpbnZva2VkX2J5X3NwZHggPSBvYmpzZXQubmV3X3Njb3BlZF9yZWxhdGlvbnNoaXAoDQo+ ICsgICAgICAgICAgICBbYnVpbGRdLA0KPiArICAgICAgICAgICAgb2Uuc3BkeDMwLlJlbGF0 aW9uc2hpcFR5cGUuaW52b2tlZEJ5LA0KPiArICAgICAgICAgICAgb2Uuc3BkeDMwLkxpZmVj eWNsZVNjb3BlVHlwZS5idWlsZCwNCj4gKyAgICAgICAgICAgIFtpbnZva2VkX2J5XSwNCj4g KyAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIG9uX2JlaGFsZl9vZiA9IG9ianNldC5uZXdf YWdlbnQoIlNQRFhfT05fQkVIQUxGX09GIikNCj4gKyAgICAgICAgaWYgb25fYmVoYWxmX29m Og0KPiArICAgICAgICAgICAgb2Jqc2V0Lm5ld19zY29wZWRfcmVsYXRpb25zaGlwKA0KPiAr ICAgICAgICAgICAgICAgIFtvbl9iZWhhbGZfb2ZdLA0KPiArICAgICAgICAgICAgICAgIG9l LnNwZHgzMC5SZWxhdGlvbnNoaXBUeXBlLmRlbGVnYXRlZFRvLA0KPiArICAgICAgICAgICAg ICAgIG9lLnNwZHgzMC5MaWZlY3ljbGVTY29wZVR5cGUuYnVpbGQsDQo+ICsgICAgICAgICAg ICAgICAgaW52b2tlZF9ieV9zcGR4LA0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAg Zm9yIG9iaiBpbiBvYmpzZXQuZm9yZWFjaF90eXBlKG9lLnNwZHgzMC5FbGVtZW50KToNCj4g KyAgICAgICAgb2JqLmV4dGVuc2lvbi5hcHBlbmQob2Uuc2JvbTMwLk9FTGlua0V4dGVuc2lv bihsaW5rX3NwZHhfaWQ9RmFsc2UpKQ0KPiArICAgICAgICBvYmouZXh0ZW5zaW9uLmFwcGVu ZChvZS5zYm9tMzAuT0VJZEFsaWFzRXh0ZW5zaW9uKCkpDQo+ICsNCj4gKyAgICBvZS5zYm9t MzAud3JpdGVfanNvbmxkX2RvYyhkLCBvYmpzZXQsIGRlcGxveV9kaXJfc3BkeCAvICJiaXRi YWtlLnNwZHguanNvbiIpDQo+ICt9DQo+ICsNCj4gK2FkZGhhbmRsZXIgc3BkeDMwX2J1aWxk X3N0YXJ0ZWRfaGFuZGxlcg0KPiArc3BkeDMwX2J1aWxkX3N0YXJ0ZWRfaGFuZGxlcltldmVu dG1hc2tdID0gImJiLmV2ZW50LkNvbmZpZ1BhcnNlZCINCj4gKw0KPiBkaWZmIC0tZ2l0IGEv bWV0YS9jbGFzc2VzL2NyZWF0ZS1zcGR4LWltYWdlLTMuMC5iYmNsYXNzIGIvbWV0YS9jbGFz c2VzL2NyZWF0ZS1zcGR4LWltYWdlLTMuMC5iYmNsYXNzDQo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi4zMWU2ZjI1ZDI5YQ0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiL21ldGEvY2xhc3Nlcy9jcmVhdGUtc3BkeC1pbWFnZS0zLjAuYmJjbGFzcw0K PiBAQCAtMCwwICsxLDIyNCBAQA0KPiArIw0KPiArIyBDb3B5cmlnaHQgT3BlbkVtYmVkZGVk IENvbnRyaWJ1dG9ycw0KPiArIw0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMC1vbmx5DQo+ICsjDQo+ICsjIFNQRFggaW1hZ2UgdGFza3MNCj4gKw0KPiArU1BEWF9S T09URlNfUEFDS0FHRVMgPSAiJHtTUERYRElSfS9yb290ZnMtcGFja2FnZXMuanNvbiINCj4g K1NQRFhJTUFHRURFUExPWURJUiA9ICIke1NQRFhESVJ9L2ltYWdlLWRlcGxveSINCj4gK1NQ RFhST09URlNERVBMT1kgPSAiJHtTUERYRElSfS9yb290ZnMtZGVwbG95Ig0KPiArDQo+ICtw eXRob24gc3BkeF9jb2xsZWN0X3Jvb3Rmc19wYWNrYWdlcygpIHsNCj4gKyAgICBpbXBvcnQg anNvbg0KPiArICAgIGZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aA0KPiArICAgIGZyb20gb2Uu cm9vdGZzIGltcG9ydCBpbWFnZV9saXN0X2luc3RhbGxlZF9wYWNrYWdlcw0KPiArDQo+ICsg ICAgcm9vdF9wYWNrYWdlc19maWxlID0gUGF0aChkLmdldFZhcigiU1BEWF9ST09URlNfUEFD S0FHRVMiKSkNCj4gKw0KPiArICAgIHBhY2thZ2VzID0gaW1hZ2VfbGlzdF9pbnN0YWxsZWRf cGFja2FnZXMoZCkNCj4gKyAgICBpZiBub3QgcGFja2FnZXM6DQo+ICsgICAgICAgIHBhY2th Z2VzID0ge30NCj4gKw0KPiArICAgIHJvb3RfcGFja2FnZXNfZmlsZS5wYXJlbnQubWtkaXIo cGFyZW50cz1UcnVlLCBleGlzdF9vaz1UcnVlKQ0KPiArICAgIHdpdGggcm9vdF9wYWNrYWdl c19maWxlLm9wZW4oInciKSBhcyBmOg0KPiArICAgICAgICBqc29uLmR1bXAocGFja2FnZXMs IGYpDQo+ICt9DQo+ICtST09URlNfUE9TVFVOSU5TVEFMTF9DT01NQU5EID0rICJzcGR4X2Nv bGxlY3Rfcm9vdGZzX3BhY2thZ2VzIg0KPiArDQo+ICtweXRob24gZG9fY3JlYXRlX3Jvb3Rm c19zcGR4KCkgew0KPiArICAgIGltcG9ydCBqc29uDQo+ICsgICAgZnJvbSBwYXRobGliIGlt cG9ydCBQYXRoDQo+ICsgICAgaW1wb3J0IG9lLnNwZHgzMA0KPiArICAgIGltcG9ydCBvZS5z Ym9tMzANCj4gKyAgICBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQ0KPiArDQo+ICsg ICAgZGVwbG95X2Rpcl9zcGR4ID0gUGF0aChkLmdldFZhcigiREVQTE9ZX0RJUl9TUERYIikp DQo+ICsgICAgZGVwbG95ZGlyID0gUGF0aChkLmdldFZhcigiU1BEWFJPT1RGU0RFUExPWSIp KQ0KPiArICAgIHJvb3RfcGFja2FnZXNfZmlsZSA9IFBhdGgoZC5nZXRWYXIoIlNQRFhfUk9P VEZTX1BBQ0tBR0VTIikpDQo+ICsgICAgaW1hZ2VfYmFzZW5hbWUgPSBkLmdldFZhcigiSU1B R0VfQkFTRU5BTUUiKQ0KPiArICAgIG1hY2hpbmUgPSBkLmdldFZhcigiTUFDSElORSIpDQo+ ICsNCj4gKyAgICB3aXRoIHJvb3RfcGFja2FnZXNfZmlsZS5vcGVuKCJyIikgYXMgZjoNCj4g KyAgICAgICAgcGFja2FnZXMgPSBqc29uLmxvYWQoZikNCj4gKw0KPiArICAgIG9ianNldCA9 IG9lLnNib20zMC5PYmplY3RTZXQubmV3X29ianNldChkLCAiJXMtJXMiICUgKGltYWdlX2Jh c2VuYW1lLCBtYWNoaW5lKSkNCj4gKw0KPiArICAgIHJvb3RmcyA9IG9ianNldC5hZGRfcm9v dChvZS5zcGR4MzAuc29mdHdhcmVfUGFja2FnZSgNCj4gKyAgICAgICAgX2lkPW9ianNldC5u ZXdfc3BkeGlkKCJyb290ZnMiLCBpbWFnZV9iYXNlbmFtZSksDQo+ICsgICAgICAgIGNyZWF0 aW9uSW5mbz1vYmpzZXQuZG9jLmNyZWF0aW9uSW5mbywNCj4gKyAgICAgICAgbmFtZT1pbWFn ZV9iYXNlbmFtZSwNCj4gKyAgICAgICAgc29mdHdhcmVfcHJpbWFyeVB1cnBvc2U9b2Uuc3Bk eDMwLnNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZS5hcmNoaXZlLA0KPiArICAgICAgICBidWls dFRpbWU9b2Uuc2JvbTMwLnNwZHhfbm93KCkNCj4gKyAgICApKQ0KPiArDQo+ICsgICAgcm9v dGZzX2J1aWxkID0gb2Jqc2V0LmFkZF9yb290KG9ianNldC5uZXdfc3ViX2J1aWxkKCJyb290 ZnMiLCAicm9vdGZzIikpDQo+ICsgICAgcm9vdGZzX2J1aWxkLmJ1aWxkX2J1aWxkRW5kVGlt ZSA9IG9lLnNib20zMC5zcGR4X25vdygpDQo+ICsNCj4gKyAgICBvYmpzZXQubmV3X3Njb3Bl ZF9yZWxhdGlvbnNoaXAoDQo+ICsgICAgICAgIFtyb290ZnNfYnVpbGRdLA0KPiArICAgICAg ICBvZS5zcGR4MzAuUmVsYXRpb25zaGlwVHlwZS5oYXNPdXRwdXRzLA0KPiArICAgICAgICBv ZS5zcGR4MzAuTGlmZWN5Y2xlU2NvcGVUeXBlLmJ1aWxkLA0KPiArICAgICAgICBbcm9vdGZz XSwNCj4gKyAgICApDQo+ICsNCj4gKyAgICBjb2xsZWN0X2J1aWxkX3BhY2thZ2VfaW5wdXRz KGQsIG9ianNldCwgcm9vdGZzX2J1aWxkLCBwYWNrYWdlcykNCj4gKw0KPiArICAgIG9lLnNi b20zMC53cml0ZV9yZWNpcGVfanNvbmxkX2RvYyhkLCBvYmpzZXQsICJyb290ZnMiLCBkZXBs b3lkaXIpDQo+ICt9DQo+ICthZGR0YXNrIGRvX2NyZWF0ZV9yb290ZnNfc3BkeCBhZnRlciBk b19yb290ZnMgYmVmb3JlIGRvX2ltYWdlDQo+ICtTU1RBVEVUQVNLUyArPSAiZG9fY3JlYXRl X3Jvb3Rmc19zcGR4Ig0KPiArZG9fY3JlYXRlX3Jvb3Rmc19zcGR4W3NzdGF0ZS1pbnB1dGRp cnNdID0gIiR7U1BEWFJPT1RGU0RFUExPWX0iDQo+ICtkb19jcmVhdGVfcm9vdGZzX3NwZHhb c3N0YXRlLW91dHB1dGRpcnNdID0gIiR7REVQTE9ZX0RJUl9TUERYfSINCj4gK2RvX2NyZWF0 ZV9yb290ZnNfc3BkeFtyZWNyZGVwdGFza10gKz0gImRvX2NyZWF0ZV9zcGR4IGRvX2NyZWF0 ZV9wYWNrYWdlX3NwZHgiDQo+ICtkb19jcmVhdGVfcm9vdGZzX3NwZHhbY2xlYW5kaXJzXSAr PSAiJHtTUERYUk9PVEZTREVQTE9ZfSINCj4gKw0KPiArcHl0aG9uIGRvX2NyZWF0ZV9yb290 ZnNfc3BkeF9zZXRzY2VuZSgpIHsNCj4gKyAgICBzc3RhdGVfc2V0c2NlbmUoZCkNCj4gK30N Cj4gK2FkZHRhc2sgZG9fY3JlYXRlX3Jvb3Rmc19zcGR4X3NldHNjZW5lDQo+ICsNCj4gK3B5 dGhvbiBkb19jcmVhdGVfaW1hZ2Vfc3BkeCgpIHsNCj4gKyAgICBpbXBvcnQgb2Uuc3BkeDMw DQo+ICsgICAgaW1wb3J0IG9lLnNib20zMA0KPiArICAgIGltcG9ydCBqc29uDQo+ICsgICAg ZnJvbSBwYXRobGliIGltcG9ydCBQYXRoDQo+ICsNCj4gKyAgICBpbWFnZV9kZXBsb3lfZGly ID0gUGF0aChkLmdldFZhcignSU1HREVQTE9ZRElSJykpDQo+ICsgICAgbWFuaWZlc3RfcGF0 aCA9IFBhdGgoZC5nZXRWYXIoIklNQUdFX0ZJTEVfTUFOSUZFU1QiKSkNCj4gKyAgICBzcGR4 X3dvcmtfZGlyID0gUGF0aChkLmdldFZhcignU1BEWElNQUdFV09SSycpKQ0KPiArDQo+ICsg ICAgaW1hZ2VfYmFzZW5hbWUgPSBkLmdldFZhcignSU1BR0VfQkFTRU5BTUUnKQ0KPiArICAg IG1hY2hpbmUgPSBkLmdldFZhcigiTUFDSElORSIpDQo+ICsNCj4gKyAgICBvYmpzZXQgPSBv ZS5zYm9tMzAuT2JqZWN0U2V0Lm5ld19vYmpzZXQoZCwgIiVzLSVzIiAlIChpbWFnZV9iYXNl bmFtZSwgbWFjaGluZSkpDQo+ICsNCj4gKyAgICB3aXRoIG1hbmlmZXN0X3BhdGgub3Blbigi ciIpIGFzIGY6DQo+ICsgICAgICAgIG1hbmlmZXN0ID0ganNvbi5sb2FkKGYpDQo+ICsNCj4g KyAgICBidWlsZHMgPSBbXQ0KPiArICAgIGZvciB0YXNrIGluIG1hbmlmZXN0Og0KPiArICAg ICAgICBpbWFnZXR5cGUgPSB0YXNrWyJpbWFnZXR5cGUiXQ0KPiArICAgICAgICB0YXNrbmFt ZSA9IHRhc2tbInRhc2tuYW1lIl0NCj4gKw0KPiArICAgICAgICBpbWFnZV9idWlsZCA9IG9i anNldC5hZGRfcm9vdChvYmpzZXQubmV3X3N1Yl9idWlsZCh0YXNrbmFtZSwgImltYWdlLyVz IiAlIGltYWdldHlwZSkpDQo+ICsgICAgICAgIGltYWdlX2J1aWxkLmJ1aWxkX2J1aWxkRW5k VGltZSA9IG9lLnNib20zMC5zcGR4X25vdygpDQo+ICsgICAgICAgIGJ1aWxkcy5hcHBlbmQo aW1hZ2VfYnVpbGQpDQo+ICsNCj4gKyAgICAgICAgYXJ0aWZhY3RzID0gW10NCj4gKw0KPiAr ICAgICAgICBmb3IgaW1hZ2UgaW4gdGFza1siaW1hZ2VzIl06DQo+ICsgICAgICAgICAgICBp bWFnZV9maWxlbmFtZSA9IGltYWdlWyJmaWxlbmFtZSJdDQo+ICsgICAgICAgICAgICBpbWFn ZV9wYXRoID0gaW1hZ2VfZGVwbG95X2RpciAvIGltYWdlX2ZpbGVuYW1lDQo+ICsgICAgICAg ICAgICBhID0gb2Jqc2V0LmFkZF9yb290KG9lLnNwZHgzMC5zb2Z0d2FyZV9GaWxlKA0KPiAr ICAgICAgICAgICAgICAgIF9pZD1vYmpzZXQubmV3X3NwZHhpZCgiaW1hZ2UiLCBpbWFnZV9m aWxlbmFtZSksDQo+ICsgICAgICAgICAgICAgICAgY3JlYXRpb25JbmZvPW9ianNldC5kb2Mu Y3JlYXRpb25JbmZvLA0KPiArICAgICAgICAgICAgICAgIG5hbWU9aW1hZ2VfZmlsZW5hbWUs DQo+ICsgICAgICAgICAgICAgICAgYnVpbHRUaW1lPW9lLnNib20zMC5zcGR4X25vdygpLA0K PiArICAgICAgICAgICAgICAgIHZlcmlmaWVkVXNpbmc9Ww0KPiArICAgICAgICAgICAgICAg ICAgICBvZS5zcGR4MzAuSGFzaCgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29y aXRobT1vZS5zcGR4MzAuSGFzaEFsZ29yaXRobS5zaGEyNTYsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICBoYXNoVmFsdWU9YmIudXRpbHMuc2hhMjU2X2ZpbGUoaW1hZ2VfcGF0aCks DQo+ICsgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBdDQo+ICsg ICAgICAgICAgICApKQ0KPiArICAgICAgICAgICAgc2V0X3B1cnBvc2VzKGQsIGEsICJTUERY X0lNQUdFX1BVUlBPU0U6JXMiICUgaW1hZ2V0eXBlLCAiU1BEWF9JTUFHRV9QVVJQT1NFIikN Cj4gKw0KPiArICAgICAgICAgICAgYXJ0aWZhY3RzLmFwcGVuZChhKQ0KPiArDQo+ICsgICAg ICAgIGlmIGFydGlmYWN0czoNCj4gKyAgICAgICAgICAgIG9ianNldC5uZXdfc2NvcGVkX3Jl bGF0aW9uc2hpcCgNCj4gKyAgICAgICAgICAgICAgICBbaW1hZ2VfYnVpbGRdLA0KPiArICAg ICAgICAgICAgICAgIG9lLnNwZHgzMC5SZWxhdGlvbnNoaXBUeXBlLmhhc091dHB1dHMsDQo+ ICsgICAgICAgICAgICAgICAgb2Uuc3BkeDMwLkxpZmVjeWNsZVNjb3BlVHlwZS5idWlsZCwN Cj4gKyAgICAgICAgICAgICAgICBhcnRpZmFjdHMsDQo+ICsgICAgICAgICAgICApDQo+ICsN Cj4gKyAgICBpZiBidWlsZHM6DQo+ICsgICAgICAgIHJvb3Rmc19pbWFnZSwgXyA9IG9lLnNi b20zMC5maW5kX3Jvb3Rfb2JqX2luX2pzb25sZCgNCj4gKyAgICAgICAgICAgIGQsDQo+ICsg ICAgICAgICAgICAicm9vdGZzIiwNCj4gKyAgICAgICAgICAgICIlcy0lcyIgJSAoaW1hZ2Vf YmFzZW5hbWUsIG1hY2hpbmUpLA0KPiArICAgICAgICAgICAgb2Uuc3BkeDMwLnNvZnR3YXJl X1BhY2thZ2UsDQo+ICsgICAgICAgICAgICAjIFRPRE86IFNob3VsZCB1c2UgYSBwdXJwb3Nl IHRvIGZpbHRlciBoZXJlPw0KPiArICAgICAgICApDQo+ICsgICAgICAgIG9ianNldC5uZXdf c2NvcGVkX3JlbGF0aW9uc2hpcCgNCj4gKyAgICAgICAgICAgIGJ1aWxkcywNCj4gKyAgICAg ICAgICAgIG9lLnNwZHgzMC5SZWxhdGlvbnNoaXBUeXBlLmhhc0lucHV0cywNCj4gKyAgICAg ICAgICAgIG9lLnNwZHgzMC5MaWZlY3ljbGVTY29wZVR5cGUuYnVpbGQsDQo+ICsgICAgICAg ICAgICBbcm9vdGZzX2ltYWdlLl9pZF0sDQo+ICsgICAgICAgICkNCj4gKw0KPiArICAgIG9i anNldC5hZGRfYWxpYXNlcygpDQo+ICsgICAgb2Jqc2V0LmxpbmsoKQ0KPiArICAgIG9lLnNi b20zMC53cml0ZV9yZWNpcGVfanNvbmxkX2RvYyhkLCBvYmpzZXQsICJpbWFnZSIsIHNwZHhf d29ya19kaXIpDQo+ICt9DQo+ICthZGR0YXNrIGRvX2NyZWF0ZV9pbWFnZV9zcGR4IGFmdGVy IGRvX2ltYWdlX2NvbXBsZXRlIGRvX2NyZWF0ZV9yb290ZnNfc3BkeCBiZWZvcmUgZG9fYnVp bGQNCj4gK1NTVEFURVRBU0tTICs9ICJkb19jcmVhdGVfaW1hZ2Vfc3BkeCINCj4gK1NTVEFU RV9TS0lQX0NSRUFUSU9OOnRhc2stY29tYmluZS1pbWFnZS10eXBlLXNwZHggPSAiMSINCj4g K2RvX2NyZWF0ZV9pbWFnZV9zcGR4W3NzdGF0ZS1pbnB1dGRpcnNdID0gIiR7U1BEWElNQUdF V09SS30iDQo+ICtkb19jcmVhdGVfaW1hZ2Vfc3BkeFtzc3RhdGUtb3V0cHV0ZGlyc10gPSAi JHtERVBMT1lfRElSX1NQRFh9Ig0KPiArZG9fY3JlYXRlX2ltYWdlX3NwZHhbY2xlYW5kaXJz XSA9ICIke1NQRFhJTUFHRVdPUkt9Ig0KPiArZG9fY3JlYXRlX2ltYWdlX3NwZHhbZGlyc10g PSAiJHtTUERYSU1BR0VXT1JLfSINCj4gKw0KPiArcHl0aG9uIGRvX2NyZWF0ZV9pbWFnZV9z cGR4X3NldHNjZW5lKCkgew0KPiArICAgIHNzdGF0ZV9zZXRzY2VuZShkKQ0KPiArfQ0KPiAr YWRkdGFzayBkb19jcmVhdGVfaW1hZ2Vfc3BkeF9zZXRzY2VuZQ0KPiArDQo+ICsNCj4gK3B5 dGhvbiBkb19jcmVhdGVfaW1hZ2Vfc2JvbSgpIHsNCj4gKyAgICBpbXBvcnQgb3MNCj4gKyAg ICBmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgNCj4gKyAgICBpbXBvcnQgb2Uuc3BkeDMwDQo+ ICsgICAgaW1wb3J0IG9lLnNib20zMA0KPiArDQo+ICsgICAgaW1hZ2VfbmFtZSA9IGQuZ2V0 VmFyKCJJTUFHRV9OQU1FIikNCj4gKyAgICBpbWFnZV9iYXNlbmFtZSA9IGQuZ2V0VmFyKCJJ TUFHRV9CQVNFTkFNRSIpDQo+ICsgICAgaW1hZ2VfbGlua19uYW1lID0gZC5nZXRWYXIoIklN QUdFX0xJTktfTkFNRSIpDQo+ICsgICAgaW1nZGVwbG95ZGlyID0gUGF0aChkLmdldFZhcigi U1BEWElNQUdFREVQTE9ZRElSIikpDQo+ICsgICAgbWFjaGluZSA9IGQuZ2V0VmFyKCJNQUNI SU5FIikNCj4gKw0KPiArICAgIHNwZHhfcGF0aCA9IGltZ2RlcGxveWRpciAvIChpbWFnZV9u YW1lICsgIi5zcGR4Lmpzb24iKQ0KPiArDQo+ICsgICAgcm9vdF9lbGVtZW50cyA9IFtdDQo+ ICsNCj4gKyAgICAjIFRPRE86IERvIHdlIG5lZWQgdG8gYWRkIHRoZSByb290ZnMgb3IgYXJl IHRoZSBpbWFnZSBmaWxlcyBzdWZmaWNpZW50Pw0KPiArICAgIHJvb3Rmc19pbWFnZSwgXyA9 IG9lLnNib20zMC5maW5kX3Jvb3Rfb2JqX2luX2pzb25sZCgNCj4gKyAgICAgICAgZCwNCj4g KyAgICAgICAgInJvb3RmcyIsDQo+ICsgICAgICAgICIlcy0lcyIgJSAoaW1hZ2VfYmFzZW5h bWUsIG1hY2hpbmUpLA0KPiArICAgICAgICBvZS5zcGR4MzAuc29mdHdhcmVfUGFja2FnZSwN Cj4gKyAgICAgICAgIyBUT0RPOiBTaG91bGQgdXNlIGEgcHVycG9zZSBoZXJlPw0KPiArICAg ICkNCj4gKyAgICByb290X2VsZW1lbnRzLmFwcGVuZChyb290ZnNfaW1hZ2UuX2lkKQ0KPiAr DQo+ICsgICAgaW1hZ2Vfb2Jqc2V0LCBfID0gb2Uuc2JvbTMwLmZpbmRfanNvbmxkKGQsICJp bWFnZSIsICIlcy0lcyIgJSAoaW1hZ2VfYmFzZW5hbWUsIG1hY2hpbmUpLCByZXF1aXJlZD1U cnVlKQ0KPiArICAgIGZvciBvIGluIGltYWdlX29ianNldC5mb3JlYWNoX3Jvb3Qob2Uuc3Bk eDMwLnNvZnR3YXJlX0ZpbGUpOg0KPiArICAgICAgICByb290X2VsZW1lbnRzLmFwcGVuZChv Ll9pZCkNCj4gKw0KPiArICAgIG9ianNldCwgc2JvbSA9IG9lLnNib20zMC5jcmVhdGVfc2Jv bShkLCBpbWFnZV9uYW1lLCByb290X2VsZW1lbnRzKQ0KPiArDQo+ICsgICAgb2Uuc2JvbTMw LndyaXRlX2pzb25sZF9kb2MoZCwgb2Jqc2V0LCBzcGR4X3BhdGgpDQo+ICsNCj4gKyAgICBk ZWYgbWFrZV9pbWFnZV9saW5rKHRhcmdldF9wYXRoLCBzdWZmaXgpOg0KPiArICAgICAgICBp ZiBpbWFnZV9saW5rX25hbWU6DQo+ICsgICAgICAgICAgICBsaW5rID0gaW1nZGVwbG95ZGly IC8gKGltYWdlX2xpbmtfbmFtZSArIHN1ZmZpeCkNCj4gKyAgICAgICAgICAgIGlmIGxpbmsg IT0gdGFyZ2V0X3BhdGg6DQo+ICsgICAgICAgICAgICAgICAgbGluay5zeW1saW5rX3RvKG9z LnBhdGgucmVscGF0aCh0YXJnZXRfcGF0aCwgbGluay5wYXJlbnQpKQ0KPiArDQo+ICsgICAg bWFrZV9pbWFnZV9saW5rKHNwZHhfcGF0aCwgIi5zcGR4Lmpzb24iKQ0KPiArfQ0KPiArYWRk dGFzayBkb19jcmVhdGVfaW1hZ2Vfc2JvbSBhZnRlciBkb19jcmVhdGVfcm9vdGZzX3NwZHgg ZG9fY3JlYXRlX2ltYWdlX3NwZHggYmVmb3JlIGRvX2J1aWxkDQo+ICtTU1RBVEVUQVNLUyAr PSAiZG9fY3JlYXRlX2ltYWdlX3Nib20iDQo+ICtTU1RBVEVfU0tJUF9DUkVBVElPTjp0YXNr LWNyZWF0ZS1pbWFnZS1zYm9tID0gIjEiDQo+ICtkb19jcmVhdGVfaW1hZ2Vfc2JvbVtzc3Rh dGUtaW5wdXRkaXJzXSA9ICIke1NQRFhJTUFHRURFUExPWURJUn0iDQo+ICtkb19jcmVhdGVf aW1hZ2Vfc2JvbVtzc3RhdGUtb3V0cHV0ZGlyc10gPSAiJHtERVBMT1lfRElSX0lNQUdFfSIN Cj4gK2RvX2NyZWF0ZV9pbWFnZV9zYm9tW3N0YW1wLWV4dHJhLWluZm9dID0gIiR7TUFDSElO RV9BUkNIfSINCj4gK2RvX2NyZWF0ZV9pbWFnZV9zYm9tW2NsZWFuZGlyc10gPSAiJHtTUERY SU1BR0VERVBMT1lESVJ9Ig0KPiArZG9fY3JlYXRlX2ltYWdlX3Nib21bcmVjcmRlcHRhc2td ICs9ICJkb19jcmVhdGVfc3BkeCBkb19jcmVhdGVfcGFja2FnZV9zcGR4Ig0KPiArDQo+ICtw eXRob24gZG9fY3JlYXRlX2ltYWdlX3Nib21fc2V0c2NlbmUoKSB7DQo+ICsgICAgc3N0YXRl X3NldHNjZW5lKGQpDQo+ICt9DQo+ICthZGR0YXNrIGRvX2NyZWF0ZV9pbWFnZV9zYm9tX3Nl dHNjZW5lDQo+IGRpZmYgLS1naXQgYS9tZXRhL2NsYXNzZXMvc3BkeC1jb21tb24uYmJjbGFz cyBiL21ldGEvY2xhc3Nlcy9zcGR4LWNvbW1vbi5iYmNsYXNzDQo+IGluZGV4IDAzZjFkMGNj Mjc4Li45ZGVlMzI1YmE2YiAxMDA2NDQNCj4gLS0tIGEvbWV0YS9jbGFzc2VzL3NwZHgtY29t bW9uLmJiY2xhc3MNCj4gKysrIGIvbWV0YS9jbGFzc2VzL3NwZHgtY29tbW9uLmJiY2xhc3MN Cj4gQEAgLTE3LDYgKzE3LDcgQEAgU1BEWERFUExPWSA9ICIke1NQRFhESVJ9L2RlcGxveSIN Cj4gICBTUERYV09SSyA9ICIke1NQRFhESVJ9L3dvcmsiDQo+ICAgU1BEWElNQUdFV09SSyA9 ICIke1NQRFhESVJ9L2ltYWdlLXdvcmsiDQo+ICAgU1BEWFNES1dPUksgPSAiJHtTUERYRElS fS9zZGstd29yayINCj4gK1NQRFhTREtFWFRXT1JLID0gIiR7U1BEWERJUn0vc2RrLWV4dC13 b3JrIg0KPiAgIFNQRFhERVBTID0gIiR7U1BEWERJUn0vZGVwcy5qc29uIg0KPiAgIA0KPiAg IFNQRFhfVE9PTF9OQU1FID8/PSAib2Utc3BkeC1jcmVhdG9yIg0KPiBAQCAtNjgsNyArNjks NyBAQCBkZWYgZ2V0X2pzb25faW5kZW50KGQpOg0KPiAgICAgICAgICAgcmV0dXJuIDINCj4g ICAgICAgcmV0dXJuIE5vbmUNCj4gICANCj4gLXB5dGhvbigpIHsNCj4gK2RlZiBsb2FkX3Nw ZHhfbGljZW5zZV9kYXRhKGQpOg0KPiAgICAgICBpbXBvcnQganNvbg0KPiAgICAgICBpZiBk LmdldFZhcigiU1BEWF9MSUNFTlNFX0RBVEEiKToNCj4gICAgICAgICAgIHJldHVybg0KPiBA QCAtNzgsNiArNzksOSBAQCBweXRob24oKSB7DQo+ICAgICAgICAgICAjIFRyYW5zZm9ybSB0 aGUgbGljZW5zZSBhcnJheSB0byBhIGRpY3Rpb25hcnkNCj4gICAgICAgICAgIGRhdGFbImxp Y2Vuc2VzIl0gPSB7bFsibGljZW5zZUlkIl06IGwgZm9yIGwgaW4gZGF0YVsibGljZW5zZXMi XX0NCj4gICAgICAgICAgIGQuc2V0VmFyKCJTUERYX0xJQ0VOU0VfREFUQSIsIGRhdGEpDQo+ ICsNCj4gK3B5dGhvbigpIHsNCj4gKyAgICBsb2FkX3NwZHhfbGljZW5zZV9kYXRhKGQpDQo+ ICAgfQ0KPiAgIA0KPiAgIGRlZiBwcm9jZXNzX3NvdXJjZXMoZCk6DQo+IGRpZmYgLS1naXQg YS9tZXRhL2xpYi9vZS9zYm9tMzAucHkgYi9tZXRhL2xpYi9vZS9zYm9tMzAucHkNCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjIxODA0MzhjZTRjDQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvbWV0YS9saWIvb2Uvc2JvbTMwLnB5DQo+IEBAIC0w LDAgKzEsMTEyMiBAQA0KPiArIw0KPiArIyBDb3B5cmlnaHQgT3BlbkVtYmVkZGVkIENvbnRy aWJ1dG9ycw0KPiArIw0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v bmx5DQo+ICsjDQo+ICsNCj4gK2Zyb20gcGF0aGxpYiBpbXBvcnQgUGF0aA0KPiArDQo+ICtp bXBvcnQgb2Uuc3BkeDMwDQo+ICtpbXBvcnQgYmINCj4gK2ltcG9ydCByZQ0KPiAraW1wb3J0 IGhhc2hsaWINCj4gK2ltcG9ydCB1dWlkDQo+ICtpbXBvcnQgb3MNCj4gK2Zyb20gZGF0ZXRp bWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lem9uZQ0KPiArDQo+ICtPRV9TUERYX0JBU0UgPSAi aHR0cHM6Ly9yZGYub3BlbmVtYmVkZGVkLm9yZy9zcGR4LzMuMC8iDQo+ICsNCj4gK1ZFWF9W RVJTSU9OID0gIjEuMC4wIg0KPiArDQo+ICtTUERYX0JVSUxEX1RZUEUgPSAiaHR0cDovL29w ZW5lbWJlZGRlZC5vcmcvYml0YmFrZSINCj4gKw0KPiArDQo+ICtAb2Uuc3BkeDMwLnJlZ2lz dGVyKE9FX1NQRFhfQkFTRSArICJsaW5rLWV4dGVuc2lvbiIpDQo+ICtjbGFzcyBPRUxpbmtF eHRlbnNpb24ob2Uuc3BkeDMwLmV4dGVuc2lvbl9FeHRlbnNpb24pOg0KPiArICAgICIiIg0K PiArICAgIFRoaXMgY3VzdG9tIGV4dGVuc2lvbiBjb250cm9scyBpZiBhbiBFbGVtZW50IGNy ZWF0ZXMgYSBzeW1saW5rIGJhc2VkIG9uDQo+ICsgICAgaXRzIFNQRFggSUQgaW4gdGhlIGRl cGxveSBkaXJlY3RvcnkuIFNvbWUgZWxlbWVudHMgbWF5IG5vdCBiZSBhYmxlIHRvIGJlDQo+ ICsgICAgbGlua2VkIGJlY2F1c2UgdGhleSBhcmUgZHVwbGljYXRlZCBpbiBtdWx0aXBsZSBk b2N1bWVudHMgKGUuZy4gdGhlIGJpdGJha2UNCj4gKyAgICBCdWlsZCBFbGVtZW50KS4gVGhv c2UgZWxlbWVudHMgY2FuIGFkZCB0aGlzIGV4dGVuc2lvbiBhbmQgc2V0IGxpbmtfc3BkeF9p ZA0KPiArICAgIHRvIEZhbHNlDQo+ICsNCj4gKyAgICBJdCBpcyBpbiBpbnRlcm5hbCBleHRl bnNpb24gdGhhdCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHdyaXRpbmcgb3V0IGEgZmluYWwN Cj4gKyAgICBTQm9NDQo+ICsgICAgIiIiDQo+ICsNCj4gKyAgICBDTE9TRUQgPSBUcnVlDQo+ ICsgICAgSU5URVJOQUwgPSBUcnVlDQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAg ICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lz dGVyX3Byb3BzKCkNCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAg ICAgICAibGlua19zcGR4X2lkIiwNCj4gKyAgICAgICAgICAgIG9lLnNwZHgzMC5Cb29sZWFu UHJvcCgpLA0KPiArICAgICAgICAgICAgT0VfU1BEWF9CQVNFICsgImxpbmstc3BkeC1pZCIs DQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAgICAgIG1heF9jb3Vu dD0xLA0KPiArICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgIyBUaGUgc3ltbGlua3Mgd3Jp dHRlbiB0byB0aGUgZGVwbG95IGRpcmVjdG9yeSBhcmUgYmFzZWQgb24gdGhlIGhhc2ggb2YN Cj4gKyAgICAgICAgIyB0aGUgU1BEWCBJRC4gV2hpbGUgdGhpcyBtYWtlcyBpdCBlYXN5IHRv IGxvb2sgdGhlbSB1cCwgaXQgY2FuIGJlDQo+ICsgICAgICAgICMgZGlmZmljdWx0IHRvIHRy YWNlIGEgRWxlbWVudCB0byB0aGUgaGFzaGVkIHN5bWxpbmsgbmFtZS4gQXMgYQ0KPiArICAg ICAgICAjIGRlYnVnZ2luZyBhaWQsIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIHRoZSBiYXNl bmFtZSBvZiB0aGUgc3ltbGluaw0KPiArICAgICAgICAjIHdoZW4gdGhlIHN5bWxpbmsgaXMg Y3JlYXRlZCB0byBtYWtlIGl0IGVhc2llciB0byB0cmFjZQ0KPiArICAgICAgICBjbHMuX2Fk ZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJsaW5rX25hbWUiLA0KPiArICAgICAgICAg ICAgb2Uuc3BkeDMwLlN0cmluZ1Byb3AoKSwNCj4gKyAgICAgICAgICAgIE9FX1NQRFhfQkFT RSArICJsaW5rLW5hbWUiLA0KPiArICAgICAgICAgICAgbWF4X2NvdW50PTEsDQo+ICsgICAg ICAgICkNCj4gKw0KPiArDQo+ICtAb2Uuc3BkeDMwLnJlZ2lzdGVyKE9FX1NQRFhfQkFTRSAr ICJpZC1hbGlhcyIpDQo+ICtjbGFzcyBPRUlkQWxpYXNFeHRlbnNpb24ob2Uuc3BkeDMwLmV4 dGVuc2lvbl9FeHRlbnNpb24pOg0KPiArICAgICIiIg0KPiArICAgIFRoaXMgZXh0ZW5zaW9u IGFsbG93cyBhbiBFbGVtZW50IHRvIHByb3ZpZGUgYW4gaW50ZXJuYWwgYWxpYXMgZm9yIHRo ZSBTUERYDQo+ICsgICAgSUQuIFNpbmNlIFNQRFggcmVxdWlyZXMgdW5pcXVlIFVSSXMgZm9y IGVhY2ggU1BEWCBJRCwgbW9zdCBvZiB0aGUgb2JqZWN0cw0KPiArICAgIGNyZWF0ZWQgaGF2 ZSBhIHVuaXF1ZSBVVUlEIG5hbWVzcGFjZSBhbmQgdGhlIHVuaWhhc2ggb2YgdGhlIHRhc2sg ZW5jb2RlZCBpbg0KPiArICAgIHRoZWlyIFNQRFggSUQuIEhvd2V2ZXIsIHRoaXMgY2F1c2Vz IGEgcHJvYmxlbSBmb3IgcmVmZXJlbmNpbmcgZG9jdW1lbnRzDQo+ICsgICAgYWNyb3NzIHJl Y2lwZXMsIHNpbmNlIHRoZSB0YXNraGFzaCBvZiBhIGRlcGVuZGVuY3kgbWF5IG5vdCBmYWN0 b3IgaW50byB0aGUNCj4gKyAgICB0YXNraGFzaCBvZiB0aGUgY3VycmVudCB0YXNrIGFuZCB0 aHVzIHRoZSBjdXJyZW50IHRhc2sgd29uJ3QgcmVidWlsZCBhbmQNCj4gKyAgICBzZWUgdGhl IG5ldyBTUERYIElEIHdoZW4gdGhlIGRlcGVuZGVuY3kgY2hhbmdlcyAoZS5nLiBBQkkgc2Fm ZSByZWNpcGVzIGFuZA0KPiArICAgIHRhc2tzKS4NCj4gKw0KPiArICAgIFRvIGhlbHAgd29y ayBhcm91bmQgdGhpcywgdGhpcyBleHRlbnNpb24gcHJvdmlkZXMgYSBub24tdW5pcXVlIGFs aWFzIGZvciBhbg0KPiArICAgIEVsZW1lbnQgYnkgd2hpY2ggaXQgY2FuIGJlIHJlZmVyZW5j ZWQgZnJvbSBvdGhlciB0YXNrcy9yZWNpcGVzLiBXaGVuIGENCj4gKyAgICBmaW5hbCBTQm9N IGlzIGNyZWF0ZWQsIHJlZmVyZW5jZXMgdG8gdGhlc2UgYWxpYXNlcyB3aWxsIGJlIHJlcGxh Y2VkIHdpdGgNCj4gKyAgICB0aGUgYWN0dWFsIHVuaXF1ZSBTUERYIElELg0KPiArDQo+ICsg ICAgTW9zdCBFbGVtZW50cyB3aWxsIGF1dG9tYXRpY2FsbHkgZ2V0IGFuIGFsaWFzIGNyZWF0 ZWQgd2hlbiB0aGV5IGFyZSB3cml0dGVuDQo+ICsgICAgb3V0IGlmIHRoZXkgZG8gbm90IGFs cmVhZHkgaGF2ZSBvbmUuIFRvIHN1cHByZXNzIHRoZSBjcmVhdGlvbiBvZiBhbiBhbGlhcywN Cj4gKyAgICBhZGQgYW4gZXh0ZW5zaW9uIHdpdGggYSBibGFuayBgYWxpYXNgIHByb3BlcnR5 Lg0KPiArDQo+ICsNCj4gKyAgICBJdCBpcyBpbiBpbnRlcm5hbCBleHRlbnNpb24gdGhhdCBz aG91bGQgYmUgcmVtb3ZlZCB3aGVuIHdyaXRpbmcgb3V0IGEgZmluYWwNCj4gKyAgICBTQm9N DQo+ICsgICAgIiIiDQo+ICsNCj4gKyAgICBDTE9TRUQgPSBUcnVlDQo+ICsgICAgSU5URVJO QUwgPSBUcnVlDQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lz dGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkN Cj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiYWxpYXMi LA0KPiArICAgICAgICAgICAgb2Uuc3BkeDMwLlN0cmluZ1Byb3AoKSwNCj4gKyAgICAgICAg ICAgIE9FX1NQRFhfQkFTRSArICJhbGlhcyIsDQo+ICsgICAgICAgICAgICBtYXhfY291bnQ9 MSwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0K PiArICAgICAgICAgICAgImxpbmtfbmFtZSIsDQo+ICsgICAgICAgICAgICBvZS5zcGR4MzAu U3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAgICAgT0VfU1BEWF9CQVNFICsgImxpbmstbmFt ZSIsDQo+ICsgICAgICAgICAgICBtYXhfY291bnQ9MSwNCj4gKyAgICAgICAgKQ0KPiArDQo+ ICsNCj4gK0BvZS5zcGR4MzAucmVnaXN0ZXIoT0VfU1BEWF9CQVNFICsgImZpbGUtbmFtZS1h bGlhcyIpDQo+ICtjbGFzcyBPRUZpbGVOYW1lQWxpYXNFeHRlbnNpb24ob2Uuc3BkeDMwLmV4 dGVuc2lvbl9FeHRlbnNpb24pOg0KPiArICAgIENMT1NFRCA9IFRydWUNCj4gKyAgICBJTlRF Uk5BTCA9IFRydWUNCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVn aXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMo KQ0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJhbGlh c2VzIiwNCj4gKyAgICAgICAgICAgIG9lLnNwZHgzMC5MaXN0UHJvcChvZS5zcGR4MzAuU3Ry aW5nUHJvcCgpKSwNCj4gKyAgICAgICAgICAgIE9FX1NQRFhfQkFTRSArICJmaWxlbmFtZS1h bGlhcyIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICtAb2Uuc3BkeDMwLnJlZ2lzdGVy KE9FX1NQRFhfQkFTRSArICJsaWNlbnNlLXNjYW5uZWQiKQ0KPiArY2xhc3MgT0VMaWNlbnNl U2Nhbm5lZEV4dGVuc2lvbihvZS5zcGR4MzAuZXh0ZW5zaW9uX0V4dGVuc2lvbik6DQo+ICsg ICAgIiIiDQo+ICsgICAgVGhlIHByZXNlbmNlIG9mIHRoaXMgZXh0ZW5zaW9uIG1lYW5zIHRo ZSBmaWxlIGhhcyBhbHJlYWR5IGJlZW4gc2Nhbm5lZCBmb3INCj4gKyAgICBsaWNlbnNlIGlu Zm9ybWF0aW9uDQo+ICsgICAgIiIiDQo+ICsNCj4gKyAgICBDTE9TRUQgPSBUcnVlDQo+ICsg ICAgSU5URVJOQUwgPSBUcnVlDQo+ICsNCj4gKw0KPiArQG9lLnNwZHgzMC5yZWdpc3RlcihP RV9TUERYX0JBU0UgKyAiZG9jdW1lbnQtZXh0ZW5zaW9uIikNCj4gK2NsYXNzIE9FRG9jdW1l bnRFeHRlbnNpb24ob2Uuc3BkeDMwLmV4dGVuc2lvbl9FeHRlbnNpb24pOg0KPiArICAgICIi Ig0KPiArICAgIFRoaXMgZXh0ZW5zaW9uIGlzIGFkZGVkIHRvIGEgU3BkeERvY3VtZW50IHRv IGluZGljYXRlIHZhcmlvdXMgdXNlZnVsIGJpdHMNCj4gKyAgICBvZiBpbmZvcm1hdGlvbiBh Ym91dCBpdHMgY29udGVudHMNCj4gKyAgICAiIiINCj4gKw0KPiArICAgIENMT1NFRCA9IFRy dWUNCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJv cHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAg ICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJpc19uYXRpdmUiLA0K PiArICAgICAgICAgICAgb2Uuc3BkeDMwLkJvb2xlYW5Qcm9wKCksDQo+ICsgICAgICAgICAg ICBPRV9TUERYX0JBU0UgKyAiaXMtbmF0aXZlIiwNCj4gKyAgICAgICAgICAgIG1heF9jb3Vu dD0xLA0KPiArICAgICAgICApDQo+ICsNCj4gKw0KPiArZGVmIHNwZHhpZF9oYXNoKCppdGVt cyk6DQo+ICsgICAgaCA9IGhhc2hsaWIubWQ1KCkNCj4gKyAgICBmb3IgaSBpbiBpdGVtczoN Cj4gKyAgICAgICAgaWYgaXNpbnN0YW5jZShpLCBvZS5zcGR4MzAuRWxlbWVudCk6DQo+ICsg ICAgICAgICAgICBoLnVwZGF0ZShpLl9pZC5lbmNvZGUoInV0Zi04IikpDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICBoLnVwZGF0ZShpLmVuY29kZSgidXRmLTgiKSkNCj4g KyAgICByZXR1cm4gaC5oZXhkaWdlc3QoKQ0KPiArDQo+ICsNCj4gK2RlZiBzcGR4X25vdygp Og0KPiArICAgIHJldHVybiBkYXRldGltZS5ub3codGltZXpvbmUudXRjKQ0KPiArDQo+ICsN Cj4gK2RlZiBnZXRfZWxlbWVudF9saW5rX2lkKGUpOg0KPiArICAgICIiIg0KPiArICAgIEdl dCB0aGUgc3RyaW5nIElEIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIGxpbmsgdG8gYW4gRWxl bWVudC4gSWYgdGhlDQo+ICsgICAgZWxlbWVudCBoYXMgYW4gYWxpYXMsIHRoYXQgd2lsbCBi ZSBwcmVmZXJyZWQsIG90aGVyd2lzZSBpdHMgU1BEWCBJRCB3aWxsIGJlDQo+ICsgICAgdXNl ZC4NCj4gKyAgICAiIiINCj4gKyAgICBleHQgPSBnZXRfYWxpYXMoZSkNCj4gKyAgICBpZiBl eHQgaXMgbm90IE5vbmUgYW5kIGV4dC5hbGlhczoNCj4gKyAgICAgICAgcmV0dXJuIGV4dC5h bGlhcw0KPiArICAgIHJldHVybiBlLl9pZA0KPiArDQo+ICsNCj4gK2RlZiBzZXRfYWxpYXMo b2JqLCBhbGlhcyk6DQo+ICsgICAgZm9yIGV4dCBpbiBvYmouZXh0ZW5zaW9uOg0KPiArICAg ICAgICBpZiBub3QgaXNpbnN0YW5jZShleHQsIE9FSWRBbGlhc0V4dGVuc2lvbik6DQo+ICsg ICAgICAgICAgICBjb250aW51ZQ0KPiArICAgICAgICBleHQuYWxpYXMgPSBhbGlhcw0KPiAr ICAgICAgICByZXR1cm4gZXh0DQo+ICsNCj4gKyAgICBleHQgPSBPRUlkQWxpYXNFeHRlbnNp b24oYWxpYXM9YWxpYXMpDQo+ICsgICAgb2JqLmV4dGVuc2lvbi5hcHBlbmQoZXh0KQ0KPiAr ICAgIHJldHVybiBleHQNCj4gKw0KPiArDQo+ICtkZWYgZ2V0X2FsaWFzKG9iaik6DQo+ICsg ICAgZm9yIGV4dCBpbiBvYmouZXh0ZW5zaW9uOg0KPiArICAgICAgICBpZiBub3QgaXNpbnN0 YW5jZShleHQsIE9FSWRBbGlhc0V4dGVuc2lvbik6DQo+ICsgICAgICAgICAgICBjb250aW51 ZQ0KPiArICAgICAgICByZXR1cm4gZXh0DQo+ICsNCj4gKyAgICByZXR1cm4gTm9uZQ0KPiAr DQo+ICsNCj4gK2RlZiBleHRyYWN0X2xpY2Vuc2VzKGZpbGVuYW1lKToNCj4gKyAgICBsaWNf cmVnZXggPSByZS5jb21waWxlKA0KPiArICAgICAgICByYiJeXFcqU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6XHMqKFsgXHdcZC4oKSstXSs/KSg/OlxzK1xXKik/JCIsIHJlLk1VTFRJTElO RQ0KPiArICAgICkNCj4gKw0KPiArICAgIHRyeToNCj4gKyAgICAgICAgd2l0aCBvcGVuKGZp bGVuYW1lLCAicmIiKSBhcyBmOg0KPiArICAgICAgICAgICAgc2l6ZSA9IG1pbigxNTAwMCwg b3Muc3RhdChmaWxlbmFtZSkuc3Rfc2l6ZSkNCj4gKyAgICAgICAgICAgIHR4dCA9IGYucmVh ZChzaXplKQ0KPiArICAgICAgICAgICAgbGljZW5zZXMgPSByZS5maW5kYWxsKGxpY19yZWdl eCwgdHh0KQ0KPiArICAgICAgICAgICAgaWYgbGljZW5zZXM6DQo+ICsgICAgICAgICAgICAg ICAgYXNjaWlfbGljZW5zZXMgPSBbbGljLmRlY29kZSgiYXNjaWkiKSBmb3IgbGljIGluIGxp Y2Vuc2VzXQ0KPiArICAgICAgICAgICAgICAgIHJldHVybiBhc2NpaV9saWNlbnNlcw0KPiAr ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToNCj4gKyAgICAgICAgYmIud2FybihmIkV4Y2Vw dGlvbiByZWFkaW5nIHtmaWxlbmFtZX06IHtlfSIpDQo+ICsgICAgcmV0dXJuIFtdDQo+ICsN Cj4gKw0KPiArZGVmIHRvX2xpc3QobCk6DQo+ICsgICAgaWYgaXNpbnN0YW5jZShsLCBzZXQp Og0KPiArICAgICAgICBsID0gc29ydGVkKGxpc3QobCkpDQo+ICsNCj4gKyAgICBpZiBub3Qg aXNpbnN0YW5jZShsLCAobGlzdCwgdHVwbGUpKToNCj4gKyAgICAgICAgcmFpc2UgVHlwZUVy cm9yKCJNdXN0IGJlIGEgbGlzdCBvciB0dXBsZS4gR290ICVzIiAlIHR5cGUobCkpDQo+ICsN Cj4gKyAgICByZXR1cm4gbA0KPiArDQo+ICsNCj4gK2NsYXNzIE9iamVjdFNldChvZS5zcGR4 MzAuU0hBQ0xPYmplY3RTZXQpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkKToNCj4g KyAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpDQo+ICsgICAgICAgIHNlbGYuZCA9IGQNCj4g Kw0KPiArICAgIGRlZiBjcmVhdGVfaW5kZXgoc2VsZik6DQo+ICsgICAgICAgIHNlbGYuYnlf c2hhMjU2X2hhc2ggPSB7fQ0KPiArICAgICAgICBzdXBlcigpLmNyZWF0ZV9pbmRleCgpDQo+ ICsNCj4gKyAgICBkZWYgYWRkX2luZGV4KHNlbGYsIG9iaik6DQo+ICsgICAgICAgICMgQ2hl Y2sgdGhhdCBhbGwgZWxlbWVudHMgYXJlIGdpdmVuIGFuIElEIGJlZm9yZSBiZWluZyBpbnNl cnRlZA0KPiArICAgICAgICBpZiBpc2luc3RhbmNlKG9iaiwgb2Uuc3BkeDMwLkVsZW1lbnQp Og0KPiArICAgICAgICAgICAgaWYgbm90IG9iai5faWQ6DQo+ICsgICAgICAgICAgICAgICAg cmFpc2UgVmFsdWVFcnJvcigiRWxlbWVudCBtaXNzaW5nIElEIikNCj4gKyAgICAgICAgICAg IGZvciBleHQgaW4gb2JqLmV4dGVuc2lvbjoNCj4gKyAgICAgICAgICAgICAgICBpZiBub3Qg aXNpbnN0YW5jZShleHQsIE9FSWRBbGlhc0V4dGVuc2lvbik6DQo+ICsgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlDQo+ICsgICAgICAgICAgICAgICAgaWYgZXh0LmFsaWFzOg0KPiAr ICAgICAgICAgICAgICAgICAgICBzZWxmLm9ial9ieV9pZFtleHQuYWxpYXNdID0gb2JqDQo+ ICsNCj4gKyAgICAgICAgICAgIGZvciB2IGluIG9iai52ZXJpZmllZFVzaW5nOg0KPiArICAg ICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIG9lLnNwZHgzMC5IYXNoKToNCj4g KyAgICAgICAgICAgICAgICAgICAgY29udGludWUNCj4gKw0KPiArICAgICAgICAgICAgICAg IGlmIHYuYWxnb3JpdGhtID09IG9lLnNwZHgzMC5IYXNoQWxnb3JpdGhtLnNoYTI1NjoNCj4g KyAgICAgICAgICAgICAgICAgICAgY29udGludWUNCj4gKw0KPiArICAgICAgICAgICAgICAg IHNlbGYuYnlfc2hhMjU2X2hhc2guc2V0ZGVmYXVsdCh2Lmhhc2hWYWx1ZSwgc2V0KCkpLmFk ZChvYmopDQo+ICsNCj4gKyAgICAgICAgc3VwZXIoKS5hZGRfaW5kZXgob2JqKQ0KPiArICAg ICAgICBpZiBpc2luc3RhbmNlKG9iaiwgb2Uuc3BkeDMwLlNwZHhEb2N1bWVudCk6DQo+ICsg ICAgICAgICAgICBzZWxmLmRvYyA9IG9iag0KPiArDQo+ICsgICAgZGVmIF9fZmlsdGVyX29i aihzZWxmLCBvYmosIGF0dHJfZmlsdGVyKToNCj4gKyAgICAgICAgcmV0dXJuIGFsbChnZXRh dHRyKG9iaiwgaykgPT0gdiBmb3IgaywgdiBpbiBhdHRyX2ZpbHRlci5pdGVtcygpKQ0KPiAr DQo+ICsgICAgZGVmIGZvcmVhY2hfZmlsdGVyKHNlbGYsIHR5cCwgKiwgbWF0Y2hfc3ViY2xh c3M9VHJ1ZSwgKiphdHRyX2ZpbHRlcik6DQo+ICsgICAgICAgIGZvciBvYmogaW4gc2VsZi5m b3JlYWNoX3R5cGUodHlwLCBtYXRjaF9zdWJjbGFzcz1tYXRjaF9zdWJjbGFzcyk6DQo+ICsg ICAgICAgICAgICBpZiBzZWxmLl9fZmlsdGVyX29iaihvYmosIGF0dHJfZmlsdGVyKToNCj4g KyAgICAgICAgICAgICAgICB5aWVsZCBvYmoNCj4gKw0KPiArICAgIGRlZiBmaW5kX2ZpbHRl cihzZWxmLCB0eXAsICosIG1hdGNoX3N1YmNsYXNzPVRydWUsICoqYXR0cl9maWx0ZXIpOg0K PiArICAgICAgICBmb3Igb2JqIGluIHNlbGYuZm9yZWFjaF9maWx0ZXIoDQo+ICsgICAgICAg ICAgICB0eXAsIG1hdGNoX3N1YmNsYXNzPW1hdGNoX3N1YmNsYXNzLCAqKmF0dHJfZmlsdGVy DQo+ICsgICAgICAgICk6DQo+ICsgICAgICAgICAgICByZXR1cm4gb2JqDQo+ICsgICAgICAg IHJldHVybiBOb25lDQo+ICsNCj4gKyAgICBkZWYgZm9yZWFjaF9yb290KHNlbGYsIHR5cCwg KiphdHRyX2ZpbHRlcik6DQo+ICsgICAgICAgIGZvciBvYmogaW4gc2VsZi5kb2Mucm9vdEVs ZW1lbnQ6DQo+ICsgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIHR5cCk6DQo+ ICsgICAgICAgICAgICAgICAgY29udGludWUNCj4gKw0KPiArICAgICAgICAgICAgaWYgc2Vs Zi5fX2ZpbHRlcl9vYmoob2JqLCBhdHRyX2ZpbHRlcik6DQo+ICsgICAgICAgICAgICAgICAg eWllbGQgb2JqDQo+ICsNCj4gKyAgICBkZWYgZmluZF9yb290KHNlbGYsIHR5cCwgKiphdHRy X2ZpbHRlcik6DQo+ICsgICAgICAgIGZvciBvYmogaW4gc2VsZi5mb3JlYWNoX3Jvb3QodHlw LCAqKmF0dHJfZmlsdGVyKToNCj4gKyAgICAgICAgICAgIHJldHVybiBvYmoNCj4gKyAgICAg ICAgcmV0dXJuIE5vbmUNCj4gKw0KPiArICAgIGRlZiBhZGRfcm9vdChzZWxmLCBvYmopOg0K PiArICAgICAgICBzZWxmLmFkZChvYmopDQo+ICsgICAgICAgIHNlbGYuZG9jLnJvb3RFbGVt ZW50LmFwcGVuZChvYmopDQo+ICsgICAgICAgIHJldHVybiBvYmoNCj4gKw0KPiArICAgIGRl ZiBpc19uYXRpdmUoc2VsZik6DQo+ICsgICAgICAgIGZvciBlIGluIHNlbGYuZG9jLmV4dGVu c2lvbjoNCj4gKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGUsIG9lLnNib20zMC5P RURvY3VtZW50RXh0ZW5zaW9uKToNCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiAr DQo+ICsgICAgICAgICAgICBpZiBlLmlzX25hdGl2ZSBpcyBub3QgTm9uZToNCj4gKyAgICAg ICAgICAgICAgICByZXR1cm4gZS5pc19uYXRpdmUNCj4gKw0KPiArICAgICAgICByZXR1cm4g RmFsc2UNCj4gKw0KPiArICAgIGRlZiBzZXRfaXNfbmF0aXZlKHNlbGYsIGlzX25hdGl2ZSk6 DQo+ICsgICAgICAgIGZvciBlIGluIHNlbGYuZG9jLmV4dGVuc2lvbjoNCj4gKyAgICAgICAg ICAgIGlmIG5vdCBpc2luc3RhbmNlKGUsIG9lLnNib20zMC5PRURvY3VtZW50RXh0ZW5zaW9u KToNCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiArDQo+ICsgICAgICAgICAgICBl LmlzX25hdGl2ZSA9IGlzX25hdGl2ZQ0KPiArICAgICAgICAgICAgcmV0dXJuDQo+ICsNCj4g KyAgICAgICAgaWYgaXNfbmF0aXZlOg0KPiArICAgICAgICAgICAgc2VsZi5kb2MuZXh0ZW5z aW9uLmFwcGVuZChvZS5zYm9tMzAuT0VEb2N1bWVudEV4dGVuc2lvbihpc19uYXRpdmU9VHJ1 ZSkpDQo+ICsNCj4gKyAgICBkZWYgYWRkX2FsaWFzZXMoc2VsZik6DQo+ICsgICAgICAgIGZv ciBvIGluIHNlbGYuZm9yZWFjaF90eXBlKG9lLnNwZHgzMC5FbGVtZW50KToNCj4gKyAgICAg ICAgICAgIGlmIG5vdCBvLl9pZCBvciBvLl9pZC5zdGFydHN3aXRoKCJfOiIpOg0KPiArICAg ICAgICAgICAgICAgIGNvbnRpbnVlDQo+ICsNCj4gKyAgICAgICAgICAgIGFsaWFzX2V4dCA9 IGdldF9hbGlhcyhvKQ0KPiArICAgICAgICAgICAgaWYgYWxpYXNfZXh0IGlzIE5vbmU6DQo+ ICsgICAgICAgICAgICAgICAgdW5paGFzaCA9IHNlbGYuZC5nZXRWYXIoIkJCX1VOSUhBU0gi KQ0KPiArICAgICAgICAgICAgICAgIG5hbWVzcGFjZSA9IHNlbGYuZ2V0X25hbWVzcGFjZSgp DQo+ICsgICAgICAgICAgICAgICAgaWYgdW5paGFzaCBub3QgaW4gby5faWQ6DQo+ICsgICAg ICAgICAgICAgICAgICAgIGJiLndhcm4oZiJVbmloYXNoIHt1bmloYXNofSBub3QgZm91bmQg aW4ge28uX2lkfSIpDQo+ICsgICAgICAgICAgICAgICAgZWxpZiBuYW1lc3BhY2Ugbm90IGlu IG8uX2lkOg0KPiArICAgICAgICAgICAgICAgICAgICBiYi53YXJuKGYiTmFtZXNwYWNlIHtu YW1lc3BhY2V9IG5vdCBmb3VuZCBpbiB7by5faWR9IikNCj4gKyAgICAgICAgICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgICAgICAgICBhbGlhc19leHQgPSBzZXRfYWxpYXMoDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBvLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgby5faWQucmVwbGFjZSh1bmloYXNoLCAiVU5JSEFTSCIpLnJlcGxhY2UoDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlLCBzZWxmLmQuZ2V0VmFyKCJQTiIp DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICApLA0KPiArICAgICAgICAgICAgICAgICAg ICApDQo+ICsNCj4gKyAgICBkZWYgcmVtb3ZlX2ludGVybmFsX2V4dGVuc2lvbnMoc2VsZik6 DQo+ICsgICAgICAgIGRlZiByZW1vdmUobyk6DQo+ICsgICAgICAgICAgICBvLmV4dGVuc2lv biA9IFtlIGZvciBlIGluIG8uZXh0ZW5zaW9uIGlmIG5vdCBnZXRhdHRyKGUsICJJTlRFUk5B TCIsIEZhbHNlKV0NCj4gKw0KPiArICAgICAgICBmb3IgbyBpbiBzZWxmLmZvcmVhY2hfdHlw ZShvZS5zcGR4MzAuRWxlbWVudCk6DQo+ICsgICAgICAgICAgICByZW1vdmUobykNCj4gKw0K PiArICAgICAgICBpZiBzZWxmLmRvYzoNCj4gKyAgICAgICAgICAgIHJlbW92ZShzZWxmLmRv YykNCj4gKw0KPiArICAgIGRlZiBnZXRfbmFtZXNwYWNlKHNlbGYpOg0KPiArICAgICAgICBu YW1lc3BhY2VfdXVpZCA9IHV1aWQudXVpZDUoDQo+ICsgICAgICAgICAgICB1dWlkLk5BTUVT UEFDRV9ETlMsIHNlbGYuZC5nZXRWYXIoIlNQRFhfVVVJRF9OQU1FU1BBQ0UiKQ0KPiArICAg ICAgICApDQo+ICsgICAgICAgIHBuID0gc2VsZi5kLmdldFZhcigiUE4iKQ0KPiArICAgICAg ICByZXR1cm4gIiVzLyVzLSVzIiAlICgNCj4gKyAgICAgICAgICAgIHNlbGYuZC5nZXRWYXIo IlNQRFhfTkFNRVNQQUNFX1BSRUZJWCIpLA0KPiArICAgICAgICAgICAgcG4sDQo+ICsgICAg ICAgICAgICBzdHIodXVpZC51dWlkNShuYW1lc3BhY2VfdXVpZCwgcG4pKSwNCj4gKyAgICAg ICAgKQ0KPiArDQo+ICsgICAgZGVmIG5ld19zcGR4aWQoc2VsZiwgKnN1ZmZpeCwgaW5jbHVk ZV91bmloYXNoPVRydWUpOg0KPiArICAgICAgICBpdGVtcyA9IFtzZWxmLmdldF9uYW1lc3Bh Y2UoKV0NCj4gKyAgICAgICAgaWYgaW5jbHVkZV91bmloYXNoOg0KPiArICAgICAgICAgICAg dW5paGFzaCA9IHNlbGYuZC5nZXRWYXIoIkJCX1VOSUhBU0giKQ0KPiArICAgICAgICAgICAg aXRlbXMuYXBwZW5kKHVuaWhhc2gpDQo+ICsgICAgICAgIGl0ZW1zLmV4dGVuZChyZS5zdWIo ciJbXmEtekEtWjAtOV8tXSIsICJfIiwgcykgZm9yIHMgaW4gc3VmZml4KQ0KPiArICAgICAg ICByZXR1cm4gIi8iLmpvaW4oaXRlbXMpDQo+ICsNCj4gKyAgICBkZWYgbmV3X2ltcG9ydChz ZWxmLCBrZXkpOg0KPiArICAgICAgICBiYXNlID0gZiJTUERYX0lNUE9SVFNfe2tleX0iDQo+ ICsgICAgICAgIHNwZHhpZCA9IHNlbGYuZC5nZXRWYXIoZiJ7YmFzZX1fc3BkeGlkIikNCj4g KyAgICAgICAgaWYgbm90IHNwZHhpZDoNCj4gKyAgICAgICAgICAgIGJiLmZhdGFsKGYie2tl eX0gaXMgbm90IGEgdmFsaWQgU1BEWF9JTVBPUlRTIGtleSIpDQo+ICsNCj4gKyAgICAgICAg Zm9yIGkgaW4gc2VsZi5kb2NzLmltcG9ydHM6DQo+ICsgICAgICAgICAgICBpZiBpLmV4dGVy bmFsU3BkeElkID09IHNwZHhpZDoNCj4gKyAgICAgICAgICAgICAgICAjIEFscmVhZHkgaW1w b3J0ZWQNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gc3BkeGlkDQo+ICsNCj4gKyAgICAg ICAgbSA9IG9lLnNwZHgzMC5FeHRlcm5hbE1hcChleHRlcm5hbFNwZHhJZD1zcGR4aWQpDQo+ ICsNCj4gKyAgICAgICAgdXJpID0gc2VsZi5kLmdldFZhcihmIntiYXNlfV91cmkiKQ0KPiAr ICAgICAgICBpZiB1cmk6DQo+ICsgICAgICAgICAgICBtLmxvY2F0aW9uSGludCA9IHVyaQ0K PiArDQo+ICsgICAgICAgIGZvciBweW5hbWUsIGFsZ29yaXRobSBpbiBvZS5zcGR4MzAuSGFz aEFsZ29yaXRobS5OQU1FRF9JTkRJVklEVUFMUy5pdGVtcygpOg0KPiArICAgICAgICAgICAg dmFsdWUgPSBzZWxmLmQuZ2V0VmFyKGYie2Jhc2V9X2hhc2hfe3B5bmFtZX0iKQ0KPiArICAg ICAgICAgICAgaWYgdmFsdWU6DQo+ICsgICAgICAgICAgICAgICAgbS52ZXJpZmllZFVzaW5n LmFwcGVuZCgNCj4gKyAgICAgICAgICAgICAgICAgICAgb2Uuc3BkeDMwLkhhc2goDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG09YWxnb3JpdGhtLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgaGFzaFZhbHVlPXZhbHVlLA0KPiArICAgICAgICAgICAgICAg ICAgICApDQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIHNlbGYuZG9j LmltcG9ydHMuYXBwZW5kKG0pDQo+ICsgICAgICAgIHJldHVybiBzcGR4aWQNCj4gKw0KPiAr ICAgIGRlZiBuZXdfYWdlbnQoc2VsZiwgdmFybmFtZSwgKiwgY3JlYXRpb25faW5mbz1Ob25l KToNCj4gKyAgICAgICAgcmVmX3Zhcm5hbWUgPSBzZWxmLmQuZ2V0VmFyKGYie3Zhcm5hbWV9 X3JlZiIpDQo+ICsgICAgICAgIGlmIHJlZl92YXJuYW1lOg0KPiArICAgICAgICAgICAgaWYg cmVmX3Zhcm5hbWUgPT0gdmFybmFtZToNCj4gKyAgICAgICAgICAgICAgICBiYi5mYXRhbChm Int2YXJuYW1lfSBjYW5ub3QgcmVmZXJlbmNlIGl0c2VsZiIpDQo+ICsgICAgICAgICAgICBy ZXR1cm4gbmV3X2FnZW50KHZhcm5hbWUsIGNyZWF0aW9uX2luZm89Y3JlYXRpb25faW5mbykN Cj4gKw0KPiArICAgICAgICBpbXBvcnRfa2V5ID0gc2VsZi5kLmdldFZhcihmInt2YXJuYW1l fV9pbXBvcnQiKQ0KPiArICAgICAgICBpZiBpbXBvcnRfa2V5Og0KPiArICAgICAgICAgICAg cmV0dXJuIHNlbGYubmV3X2ltcG9ydChpbXBvcnRfa2V5KQ0KPiArDQo+ICsgICAgICAgIG5h bWUgPSBzZWxmLmQuZ2V0VmFyKGYie3Zhcm5hbWV9X25hbWUiKQ0KPiArICAgICAgICBpZiBu b3QgbmFtZToNCj4gKyAgICAgICAgICAgIHJldHVybiBOb25lDQo+ICsNCj4gKyAgICAgICAg c3BkeGlkID0gc2VsZi5uZXdfc3BkeGlkKCJhZ2VudCIsIG5hbWUpDQo+ICsgICAgICAgIGFn ZW50ID0gc2VsZi5maW5kX2J5X2lkKHNwZHhpZCkNCj4gKyAgICAgICAgaWYgYWdlbnQgaXMg bm90IE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4gYWdlbnQNCj4gKw0KPiArICAgICAg ICBhZ2VudF90eXBlID0gc2VsZi5kLmdldFZhcigiJXNfdHlwZSIgJSB2YXJuYW1lKQ0KPiAr ICAgICAgICBpZiBhZ2VudF90eXBlID09ICJwZXJzb24iOg0KPiArICAgICAgICAgICAgYWdl bnQgPSBvZS5zcGR4MzAuUGVyc29uKCkNCj4gKyAgICAgICAgZWxpZiBhZ2VudF90eXBlID09 ICJzb2Z0d2FyZSI6DQo+ICsgICAgICAgICAgICBhZ2VudCA9IG9lLnNwZHgzMC5Tb2Z0d2Fy ZUFnZW50KCkNCj4gKyAgICAgICAgZWxpZiBhZ2VudF90eXBlID09ICJvcmdhbml6YXRpb24i Og0KPiArICAgICAgICAgICAgYWdlbnQgPSBvZS5zcGR4MzAuT3JnYW5pemF0aW9uKCkNCj4g KyAgICAgICAgZWxpZiBub3QgYWdlbnRfdHlwZSBvciBhZ2VudF90eXBlID09ICJhZ2VudCI6 DQo+ICsgICAgICAgICAgICBhZ2VudCA9IG9lLnNwZHgzMC5BZ2VudCgpDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICBiYi5mYXRhbCgiVW5rbm93biBhZ2VudCB0eXBlICcl cycgaW4gJXNfdHlwZSIgJSAoYWdlbnRfdHlwZSwgdmFybmFtZSkpDQo+ICsNCj4gKyAgICAg ICAgYWdlbnQuX2lkID0gc3BkeGlkDQo+ICsgICAgICAgIGFnZW50LmNyZWF0aW9uSW5mbyA9 IGNyZWF0aW9uX2luZm8gb3Igc2VsZi5kb2MuY3JlYXRpb25JbmZvDQo+ICsgICAgICAgIGFn ZW50Lm5hbWUgPSBuYW1lDQo+ICsNCj4gKyAgICAgICAgY29tbWVudCA9IHNlbGYuZC5nZXRW YXIoIiVzX2NvbW1lbnQiICUgdmFybmFtZSkNCj4gKyAgICAgICAgaWYgY29tbWVudDoNCj4g KyAgICAgICAgICAgIGFnZW50LmNvbW1lbnQgPSBjb21tZW50DQo+ICsNCj4gKyAgICAgICAg Zm9yICgNCj4gKyAgICAgICAgICAgIHB5bmFtZSwNCj4gKyAgICAgICAgICAgIGlkdHlwZSwN Cj4gKyAgICAgICAgKSBpbiBvZS5zcGR4MzAuRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS5OQU1F RF9JTkRJVklEVUFMUy5pdGVtcygpOg0KPiArICAgICAgICAgICAgdmFsdWUgPSBzZWxmLmQu Z2V0VmFyKCIlc19pZF8lcyIgJSAodmFybmFtZSwgcHluYW1lKSkNCj4gKyAgICAgICAgICAg IGlmIHZhbHVlOg0KPiArICAgICAgICAgICAgICAgIGFnZW50LmV4dGVybmFsSWRlbnRpZmll ci5hcHBlbmQoDQo+ICsgICAgICAgICAgICAgICAgICAgIG9lLnNwZHgzMC5FeHRlcm5hbElk ZW50aWZpZXIoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5hbElkZW50aWZp ZXJUeXBlPWlkdHlwZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI9 dmFsdWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICAp DQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuYWRkKGFnZW50KQ0KPiArDQo+ICsgICAg ZGVmIG5ld19jcmVhdGlvbl9pbmZvKHNlbGYpOg0KPiArICAgICAgICBjcmVhdGlvbl9pbmZv ID0gb2Uuc3BkeDMwLkNyZWF0aW9uSW5mbygpDQo+ICsNCj4gKyAgICAgICAgbmFtZSA9ICIl cyAlcyIgJSAoDQo+ICsgICAgICAgICAgICBzZWxmLmQuZ2V0VmFyKCJTUERYX1RPT0xfTkFN RSIpLA0KPiArICAgICAgICAgICAgc2VsZi5kLmdldFZhcigiU1BEWF9UT09MX1ZFUlNJT04i KSwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICB0b29sID0gc2VsZi5hZGQoDQo+ICsgICAg ICAgICAgICBvZS5zcGR4MzAuVG9vbCgNCj4gKyAgICAgICAgICAgICAgICBfaWQ9c2VsZi5u ZXdfc3BkeGlkKCJ0b29sIiwgbmFtZSksDQo+ICsgICAgICAgICAgICAgICAgY3JlYXRpb25J bmZvPWNyZWF0aW9uX2luZm8sDQo+ICsgICAgICAgICAgICAgICAgbmFtZT1uYW1lLA0KPiAr ICAgICAgICAgICAgKQ0KPiArICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgYXV0aG9ycyA9 IFtdDQo+ICsgICAgICAgIGZvciBhIGluIHNlbGYuZC5nZXRWYXIoIlNQRFhfQVVUSE9SUyIp LnNwbGl0KCk6DQo+ICsgICAgICAgICAgICB2YXJuYW1lID0gIlNQRFhfQVVUSE9SU18lcyIg JSBhDQo+ICsgICAgICAgICAgICBhdXRob3IgPSBzZWxmLm5ld19hZ2VudCh2YXJuYW1lLCBj cmVhdGlvbl9pbmZvPWNyZWF0aW9uX2luZm8pDQo+ICsNCj4gKyAgICAgICAgICAgIGlmIG5v dCBhdXRob3I6DQo+ICsgICAgICAgICAgICAgICAgYmIuZmF0YWwoIlVuYWJsZSB0byBmaW5k IG9yIGNyZWF0ZSBhdXRob3IgJXMiICUgYSkNCj4gKw0KPiArICAgICAgICAgICAgYXV0aG9y cy5hcHBlbmQoYXV0aG9yKQ0KPiArDQo+ICsgICAgICAgIGNyZWF0aW9uX2luZm8uY3JlYXRl ZCA9IHNwZHhfbm93KCkNCj4gKyAgICAgICAgY3JlYXRpb25faW5mby5zcGVjVmVyc2lvbiA9 IHNlbGYuZC5nZXRWYXIoIlNQRFhfVkVSU0lPTiIpDQo+ICsgICAgICAgIGNyZWF0aW9uX2lu Zm8uY3JlYXRlZEJ5ID0gYXV0aG9ycw0KPiArICAgICAgICBjcmVhdGlvbl9pbmZvLmNyZWF0 ZWRVc2luZyA9IFt0b29sXQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBjcmVhdGlvbl9pbmZv DQo+ICsNCj4gKyAgICBkZWYgY29weV9jcmVhdGlvbl9pbmZvKHNlbGYsIGNvcHkpOg0KPiAr ICAgICAgICBjID0gb2Uuc3BkeDMwLkNyZWF0aW9uSW5mbygNCj4gKyAgICAgICAgICAgIGNy ZWF0ZWQ9c3BkeF9ub3coKSwNCj4gKyAgICAgICAgICAgIHNwZWNWZXJzaW9uPXNlbGYuZC5n ZXRWYXIoIlNQRFhfVkVSU0lPTiIpLA0KPiArICAgICAgICApDQo+ICsNCj4gKyAgICAgICAg Zm9yIGF1dGhvciBpbiBjb3B5LmNyZWF0ZWRCeToNCj4gKyAgICAgICAgICAgIGlmIGlzaW5z dGFuY2UoYXV0aG9yLCBzdHIpOg0KPiArICAgICAgICAgICAgICAgIGMuY3JlYXRlZEJ5LmFw cGVuZChhdXRob3IpDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAg IGMuY3JlYXRlZEJ5LmFwcGVuZChhdXRob3IuX2lkKQ0KPiArDQo+ICsgICAgICAgIGZvciB0 b29sIGluIGNvcHkuY3JlYXRlZFVzaW5nOg0KPiArICAgICAgICAgICAgaWYgaXNpbnN0YW5j ZSh0b29sLCBzdHIpOg0KPiArICAgICAgICAgICAgICAgIGMuY3JlYXRlZFVzaW5nLmFwcGVu ZCh0b29sKQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBjLmNy ZWF0ZWRVc2luZy5hcHBlbmQodG9vbC5faWQpDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGMN Cj4gKw0KPiArICAgIGRlZiBuZXdfYW5ub3RhdGlvbihzZWxmLCBzdWJqZWN0LCBjb21tZW50 LCB0eXApOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5hZGQoDQo+ICsgICAgICAgICAgICBv ZS5zcGR4MzAuQW5ub3RhdGlvbigNCj4gKyAgICAgICAgICAgICAgICBfaWQ9c2VsZi5uZXdf c3BkeGlkKCJhbm5vdGF0aW9uIiwgc3BkeGlkX2hhc2goY29tbWVudCwgdHlwKSksDQo+ICsg ICAgICAgICAgICAgICAgY3JlYXRpb25JbmZvPXNlbGYuZG9jLmNyZWF0aW9uSW5mbywNCj4g KyAgICAgICAgICAgICAgICBhbm5vdGF0aW9uVHlwZT10eXAsDQo+ICsgICAgICAgICAgICAg ICAgc3ViamVjdD1zdWJqZWN0LA0KPiArICAgICAgICAgICAgICAgIHN0YXRlbWVudD1jb21t ZW50LA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICApDQo+ICsNCj4gKyAgICBkZWYg X25ld19yZWxhdGlvbnNoaXAoDQo+ICsgICAgICAgIHNlbGYsDQo+ICsgICAgICAgIGNscywN Cj4gKyAgICAgICAgZnJvbV8sDQo+ICsgICAgICAgIHR5cCwNCj4gKyAgICAgICAgdG8sDQo+ ICsgICAgICAgICosDQo+ICsgICAgICAgIHNwZHhpZF9uYW1lPSJyZWxhdGlvbnNoaXAiLA0K PiArICAgICAgICAqKnByb3BzLA0KPiArICAgICk6DQo+ICsgICAgICAgIGZyb21fID0gdG9f bGlzdChmcm9tXykNCj4gKyAgICAgICAgdG8gPSB0b19saXN0KHRvKQ0KPiArDQo+ICsgICAg ICAgIGlmIG5vdCBmcm9tXzoNCj4gKyAgICAgICAgICAgIHJldHVybiBbXQ0KPiArDQo+ICsg ICAgICAgIGlmIG5vdCB0bzoNCj4gKyAgICAgICAgICAgICMgVE9ETzogU3dpdGNoIHRvIHRo ZSBjb2RlIGNvbnN0YW50IG9uY2UgU1BEWCAzLjAuMSBpcyByZWxlYXNlZA0KPiArICAgICAg ICAgICAgdG8gPSBbImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvTm9u ZUVsZW1lbnQiXQ0KPiArDQo+ICsgICAgICAgIHJldCA9IFtdDQo+ICsNCj4gKyAgICAgICAg Zm9yIGYgaW4gZnJvbV86DQo+ICsgICAgICAgICAgICBoYXNoX2FyZ3MgPSBbdHlwLCBmXQ0K PiArICAgICAgICAgICAgZm9yIGsgaW4gc29ydGVkKHByb3BzLmtleXMoKSk6DQo+ICsgICAg ICAgICAgICAgICAgaGFzaF9hcmdzLmFwcGVuZChwcm9wc1trXSkNCj4gKyAgICAgICAgICAg IGhhc2hfYXJncy5leHRlbmQodG8pDQo+ICsNCj4gKyAgICAgICAgICAgIHJlbGF0aW9uc2hp cCA9IHNlbGYuYWRkKA0KPiArICAgICAgICAgICAgICAgIGNscygNCj4gKyAgICAgICAgICAg ICAgICAgICAgX2lkPXNlbGYubmV3X3NwZHhpZChzcGR4aWRfbmFtZSwgc3BkeGlkX2hhc2go Kmhhc2hfYXJncykpLA0KPiArICAgICAgICAgICAgICAgICAgICBjcmVhdGlvbkluZm89c2Vs Zi5kb2MuY3JlYXRpb25JbmZvLA0KPiArICAgICAgICAgICAgICAgICAgICBmcm9tXz1mLA0K PiArICAgICAgICAgICAgICAgICAgICByZWxhdGlvbnNoaXBUeXBlPXR5cCwNCj4gKyAgICAg ICAgICAgICAgICAgICAgdG89dG8sDQo+ICsgICAgICAgICAgICAgICAgICAgICoqcHJvcHMs DQo+ICsgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAg ICAgcmV0LmFwcGVuZChyZWxhdGlvbnNoaXApDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIHJl dA0KPiArDQo+ICsgICAgZGVmIG5ld19yZWxhdGlvbnNoaXAoc2VsZiwgZnJvbV8sIHR5cCwg dG8pOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5fbmV3X3JlbGF0aW9uc2hpcChvZS5zcGR4 MzAuUmVsYXRpb25zaGlwLCBmcm9tXywgdHlwLCB0bykNCj4gKw0KPiArICAgIGRlZiBuZXdf c2NvcGVkX3JlbGF0aW9uc2hpcChzZWxmLCBmcm9tXywgdHlwLCBzY29wZSwgdG8pOg0KPiAr ICAgICAgICByZXR1cm4gc2VsZi5fbmV3X3JlbGF0aW9uc2hpcCgNCj4gKyAgICAgICAgICAg IG9lLnNwZHgzMC5MaWZlY3ljbGVTY29wZWRSZWxhdGlvbnNoaXAsDQo+ICsgICAgICAgICAg ICBmcm9tXywNCj4gKyAgICAgICAgICAgIHR5cCwNCj4gKyAgICAgICAgICAgIHRvLA0KPiAr ICAgICAgICAgICAgc2NvcGU9c2NvcGUsDQo+ICsgICAgICAgICkNCj4gKw0KPiArICAgIGRl ZiBuZXdfbGljZW5zZV9leHByZXNzaW9uKHNlbGYsIGxpY2Vuc2VfZXhwcmVzc2lvbiwgbGlj ZW5zZV90ZXh0X21hcD17fSk6DQo+ICsgICAgICAgIGxpY2Vuc2VfbGlzdF92ZXJzaW9uID0g c2VsZi5kLmdldFZhcigiU1BEWF9MSUNFTlNFX0RBVEEiKVsibGljZW5zZUxpc3RWZXJzaW9u Il0NCj4gKyAgICAgICAgIyBTUERYIDMgcmVxdWlyZXMgdGhhdCB0aGUgbGljZW5zZSBsaXN0 IHZlcnNpb24gYmUgYSBzZW12ZXINCj4gKyAgICAgICAgIyBNQUpPUi5NSU5PUi5NSUNSTywg YnV0IHRoZSBhY3R1YWwgbGljZW5zZSB2ZXJzaW9uIGlzIG9ubHkgTUFKT1IuTUlOT1INCj4g KyAgICAgICAgIyAoYXMgb2YgdGhpcyB3cml0aW5nKS4gQXMgc3VjaCwgbWFudWFsbHkgYXBw ZW5kIGEgLjAgbWljcm8gdmVyc2lvbiBpZg0KPiArICAgICAgICAjIGl0cyBtaXNzaW5nIHRv IGtlZXAgU1BEWCBoYXBweQ0KPiArICAgICAgICBpZiBsaWNlbnNlX2xpc3RfdmVyc2lvbi5j b3VudCgiLiIpIDwgMzoNCj4gKyAgICAgICAgICAgIGxpY2Vuc2VfbGlzdF92ZXJzaW9uICs9 ICIuMCINCj4gKw0KPiArICAgICAgICBzcGR4aWQgPSBbDQo+ICsgICAgICAgICAgICAibGlj ZW5zZSIsDQo+ICsgICAgICAgICAgICBsaWNlbnNlX2xpc3RfdmVyc2lvbiwNCj4gKyAgICAg ICAgICAgIHJlLnN1YihyIlteYS16QS1aMC05Xy1dIiwgIl8iLCBsaWNlbnNlX2V4cHJlc3Np b24pLA0KPiArICAgICAgICBdDQo+ICsNCj4gKyAgICAgICAgbGljZW5zZV90ZXh0ID0gKA0K PiArICAgICAgICAgICAgKGssIGxpY2Vuc2VfdGV4dF9tYXBba10pIGZvciBrIGluIHNvcnRl ZChsaWNlbnNlX3RleHRfbWFwLmtleXMoKSkNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsgICAg ICAgIGlmIG5vdCBsaWNlbnNlX3RleHQ6DQo+ICsgICAgICAgICAgICBsaWMgPSBzZWxmLmZp bmRfZmlsdGVyKA0KPiArICAgICAgICAgICAgICAgIG9lLnNwZHgzMC5zaW1wbGVsaWNlbnNp bmdfTGljZW5zZUV4cHJlc3Npb24sDQo+ICsgICAgICAgICAgICAgICAgc2ltcGxlbGljZW5z aW5nX2xpY2Vuc2VFeHByZXNzaW9uPWxpY2Vuc2VfZXhwcmVzc2lvbiwNCj4gKyAgICAgICAg ICAgICAgICBzaW1wbGVsaWNlbnNpbmdfbGljZW5zZUxpc3RWZXJzaW9uPWxpY2Vuc2VfbGlz dF92ZXJzaW9uLA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgaWYgbGljIGlz IG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBsaWMNCj4gKyAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgIHNwZHhpZC5hcHBlbmQoc3BkeGlkX2hhc2goKih2IGZv ciBfLCB2IGluIGxpY2Vuc2VfdGV4dCkpKQ0KPiArICAgICAgICAgICAgbGljID0gc2VsZi5m aW5kX2J5X2lkKHNlbGYubmV3X3NwZHhpZCgqc3BkeGlkKSkNCj4gKyAgICAgICAgICAgIGlm IGxpYyBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gbGljDQo+ICsN Cj4gKyAgICAgICAgbGljID0gc2VsZi5hZGQoDQo+ICsgICAgICAgICAgICBvZS5zcGR4MzAu c2ltcGxlbGljZW5zaW5nX0xpY2Vuc2VFeHByZXNzaW9uKA0KPiArICAgICAgICAgICAgICAg IF9pZD1zZWxmLm5ld19zcGR4aWQoKnNwZHhpZCksDQo+ICsgICAgICAgICAgICAgICAgY3Jl YXRpb25JbmZvPXNlbGYuZG9jLmNyZWF0aW9uSW5mbywNCj4gKyAgICAgICAgICAgICAgICBz aW1wbGVsaWNlbnNpbmdfbGljZW5zZUV4cHJlc3Npb249bGljZW5zZV9leHByZXNzaW9uLA0K PiArICAgICAgICAgICAgICAgIHNpbXBsZWxpY2Vuc2luZ19saWNlbnNlTGlzdFZlcnNpb249 bGljZW5zZV9saXN0X3ZlcnNpb24sDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICkN Cj4gKw0KPiArICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBsaWNlbnNlX3RleHQ6DQo+ICsg ICAgICAgICAgICBsaWMuc2ltcGxlbGljZW5zaW5nX2N1c3RvbUlkVG9VcmkuYXBwZW5kKA0K PiArICAgICAgICAgICAgICAgIG9lLnNwZHgzMC5EaWN0aW9uYXJ5RW50cnkoa2V5PWtleSwg dmFsdWU9dmFsdWUpDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgcmV0dXJu IGxpYw0KPiArDQo+ICsgICAgZGVmIHNjYW5fZGVjbGFyZWRfbGljZW5zZXMoc2VsZiwgc3Bk eF9maWxlLCBmaWxlcGF0aCk6DQo+ICsgICAgICAgIGZvciBlIGluIHNwZHhfZmlsZS5leHRl bnNpb246DQo+ICsgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGUsIE9FTGljZW5zZVNjYW5u ZWRFeHRlbnNpb24pOg0KPiArICAgICAgICAgICAgICAgIHJldHVybg0KPiArDQo+ICsgICAg ICAgIGZpbGVfbGljZW5zZXMgPSBzZXQoKQ0KPiArICAgICAgICBmb3IgZXh0cmFjdGVkX2xp YyBpbiBleHRyYWN0X2xpY2Vuc2VzKGZpbGVwYXRoKToNCj4gKyAgICAgICAgICAgIGZpbGVf bGljZW5zZXMuYWRkKHNlbGYubmV3X2xpY2Vuc2VfZXhwcmVzc2lvbihleHRyYWN0ZWRfbGlj KSkNCj4gKw0KPiArICAgICAgICBzZWxmLm5ld19yZWxhdGlvbnNoaXAoDQo+ICsgICAgICAg ICAgICBbc3BkeF9maWxlXSwNCj4gKyAgICAgICAgICAgIG9lLnNwZHgzMC5SZWxhdGlvbnNo aXBUeXBlLmhhc0RlY2xhcmVkTGljZW5zZSwNCj4gKyAgICAgICAgICAgIGZpbGVfbGljZW5z ZXMsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgc3BkeF9maWxlLmV4dGVuc2lvbi5hcHBl bmQoT0VMaWNlbnNlU2Nhbm5lZEV4dGVuc2lvbigpKQ0KPiArDQo+ICsgICAgZGVmIG5ld19m aWxlKHNlbGYsIF9pZCwgbmFtZSwgcGF0aCwgKiwgcHVycG9zZXM9W10pOg0KPiArICAgICAg ICBzaGEyNTZfaGFzaCA9IGJiLnV0aWxzLnNoYTI1Nl9maWxlKHBhdGgpDQo+ICsNCj4gKyAg ICAgICAgZm9yIGYgaW4gc2VsZi5ieV9zaGEyNTZfaGFzaC5nZXQoc2hhMjU2X2hhc2gsIFtd KToNCj4gKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9lLnNwZHgzMC5zb2Z0d2Fy ZV9GaWxlKToNCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiArDQo+ICsgICAgICAg ICAgICBpZiBwdXJwb3NlczoNCj4gKyAgICAgICAgICAgICAgICBuZXdfcHJpbWFyeSA9IHB1 cnBvc2VzWzBdDQo+ICsgICAgICAgICAgICAgICAgbmV3X2FkZGl0aW9uYWwgPSBbXQ0KPiAr DQo+ICsgICAgICAgICAgICAgICAgaWYgZi5zb2Z0d2FyZV9wcmltYXJ5UHVycG9zZToNCj4g KyAgICAgICAgICAgICAgICAgICAgbmV3X2FkZGl0aW9uYWwuYXBwZW5kKGYuc29mdHdhcmVf cHJpbWFyeVB1cnBvc2UpDQo+ICsgICAgICAgICAgICAgICAgbmV3X2FkZGl0aW9uYWwuZXh0 ZW5kKGYuc29mdHdhcmVfYWRkaXRpb25hbFB1cnBvc2UpDQo+ICsNCj4gKyAgICAgICAgICAg ICAgICBuZXdfYWRkaXRpb25hbCA9IHNvcnRlZCgNCj4gKyAgICAgICAgICAgICAgICAgICAg bGlzdChzZXQocCBmb3IgcCBpbiBuZXdfYWRkaXRpb25hbCBpZiBwICE9IG5ld19wcmltYXJ5 KSkNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgICAgICAgICBmLnNv ZnR3YXJlX3ByaW1hcnlQdXJwb3NlID0gbmV3X3ByaW1hcnkNCj4gKyAgICAgICAgICAgICAg ICBmLnNvZnR3YXJlX2FkZGl0aW9uYWxQdXJwb3NlID0gbmV3X2FkZGl0aW9uYWwNCj4gKw0K PiArICAgICAgICAgICAgaWYgZi5uYW1lICE9IG5hbWU6DQo+ICsgICAgICAgICAgICAgICAg Zm9yIGUgaW4gZi5leHRlbnNpb246DQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5z dGFuY2UoZSwgT0VGaWxlTmFtZUFsaWFzRXh0ZW5zaW9uKToNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGUuYWxpYXNlcy5hcHBlbmQobmFtZSkNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrDQo+ICsgICAgICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAg ICAgICAgICAgZi5leHRlbnNpb24uYXBwZW5kKE9FRmlsZU5hbWVBbGlhc0V4dGVuc2lvbihh bGlhc2VzPVtuYW1lXSkpDQo+ICsNCj4gKyAgICAgICAgICAgIHJldHVybiBmDQo+ICsNCj4g KyAgICAgICAgc3BkeF9maWxlID0gb2Uuc3BkeDMwLnNvZnR3YXJlX0ZpbGUoDQo+ICsgICAg ICAgICAgICBfaWQ9X2lkLA0KPiArICAgICAgICAgICAgY3JlYXRpb25JbmZvPXNlbGYuZG9j LmNyZWF0aW9uSW5mbywNCj4gKyAgICAgICAgICAgIG5hbWU9bmFtZSwNCj4gKyAgICAgICAg KQ0KPiArICAgICAgICBpZiBwdXJwb3NlczoNCj4gKyAgICAgICAgICAgIHNwZHhfZmlsZS5z b2Z0d2FyZV9wcmltYXJ5UHVycG9zZSA9IHB1cnBvc2VzWzBdDQo+ICsgICAgICAgICAgICBz cGR4X2ZpbGUuc29mdHdhcmVfYWRkaXRpb25hbFB1cnBvc2UgPSBwdXJwb3Nlc1sxOl0NCj4g Kw0KPiArICAgICAgICBzcGR4X2ZpbGUudmVyaWZpZWRVc2luZy5hcHBlbmQoDQo+ICsgICAg ICAgICAgICBvZS5zcGR4MzAuSGFzaCgNCj4gKyAgICAgICAgICAgICAgICBhbGdvcml0aG09 b2Uuc3BkeDMwLkhhc2hBbGdvcml0aG0uc2hhMjU2LA0KPiArICAgICAgICAgICAgICAgIGhh c2hWYWx1ZT1zaGEyNTZfaGFzaCwNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgKQ0K PiArDQo+ICsgICAgICAgIHJldHVybiBzZWxmLmFkZChzcGR4X2ZpbGUpDQo+ICsNCj4gKyAg ICBkZWYgbmV3X2N2ZV92dWxuKHNlbGYsIGN2ZSk6DQo+ICsgICAgICAgIHYgPSBvZS5zcGR4 MzAuc2VjdXJpdHlfVnVsbmVyYWJpbGl0eSgpDQo+ICsgICAgICAgIHYuX2lkID0gc2VsZi5u ZXdfc3BkeGlkKCJ2dWxuZXJhYmlsaXR5IiwgY3ZlKQ0KPiArICAgICAgICB2LmNyZWF0aW9u SW5mbyA9IHNlbGYuZG9jLmNyZWF0aW9uSW5mbw0KPiArDQo+ICsgICAgICAgIHYuZXh0ZXJu YWxJZGVudGlmaWVyLmFwcGVuZCgNCj4gKyAgICAgICAgICAgIG9lLnNwZHgzMC5FeHRlcm5h bElkZW50aWZpZXIoDQo+ICsgICAgICAgICAgICAgICAgZXh0ZXJuYWxJZGVudGlmaWVyVHlw ZT1vZS5zcGR4MzAuRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS5jdmUsDQo+ICsgICAgICAgICAg ICAgICAgaWRlbnRpZmllcj1jdmUsDQo+ICsgICAgICAgICAgICAgICAgaWRlbnRpZmllckxv Y2F0b3I9Ww0KPiArICAgICAgICAgICAgICAgICAgICBmImh0dHBzOi8vY3ZlYXdnLm1pdHJl Lm9yZy9hcGkvY3ZlL3tjdmV9IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgZiJodHRwczov L3d3dy5jdmUub3JnL0NWRVJlY29yZD9pZD17Y3ZlfSIsDQo+ICsgICAgICAgICAgICAgICAg XSwNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICByZXR1cm4g c2VsZi5hZGQodikNCj4gKw0KPiArICAgIGRlZiBuZXdfdmV4X3BhdGNoZWRfcmVsYXRpb25z aGlwKHNlbGYsIGZyb21fLCB0byk6DQo+ICsgICAgICAgIHJldHVybiBzZWxmLl9uZXdfcmVs YXRpb25zaGlwKA0KPiArICAgICAgICAgICAgb2Uuc3BkeDMwLnNlY3VyaXR5X1ZleEZpeGVk VnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAsDQo+ICsgICAgICAgICAgICBmcm9tXywNCj4g KyAgICAgICAgICAgIG9lLnNwZHgzMC5SZWxhdGlvbnNoaXBUeXBlLmZpeGVkSW4sDQo+ICsg ICAgICAgICAgICB0bywNCj4gKyAgICAgICAgICAgIHNwZHhpZF9uYW1lPSJ2ZXgtZml4ZWQi LA0KPiArICAgICAgICAgICAgc2VjdXJpdHlfdmV4VmVyc2lvbj1WRVhfVkVSU0lPTiwNCj4g KyAgICAgICAgKQ0KPiArDQo+ICsgICAgZGVmIG5ld192ZXhfdW5wYXRjaGVkX3JlbGF0aW9u c2hpcChzZWxmLCBmcm9tXywgdG8pOg0KPiArICAgICAgICByZXR1cm4gc2VsZi5fbmV3X3Jl bGF0aW9uc2hpcCgNCj4gKyAgICAgICAgICAgIG9lLnNwZHgzMC5zZWN1cml0eV9WZXhBZmZl Y3RlZFZ1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwLA0KPiArICAgICAgICAgICAgZnJvbV8s DQo+ICsgICAgICAgICAgICBvZS5zcGR4MzAuUmVsYXRpb25zaGlwVHlwZS5hZmZlY3RzLA0K PiArICAgICAgICAgICAgdG8sDQo+ICsgICAgICAgICAgICBzcGR4aWRfbmFtZT0idmV4LWFm ZmVjdGVkIiwNCj4gKyAgICAgICAgICAgIHNlY3VyaXR5X3ZleFZlcnNpb249VkVYX1ZFUlNJ T04sDQo+ICsgICAgICAgICkNCj4gKw0KPiArICAgIGRlZiBuZXdfdmV4X2lnbm9yZWRfcmVs YXRpb25zaGlwKHNlbGYsIGZyb21fLCB0bywgKiwgaW1wYWN0X3N0YXRlbWVudCk6DQo+ICsg ICAgICAgIHJldHVybiBzZWxmLl9uZXdfcmVsYXRpb25zaGlwKA0KPiArICAgICAgICAgICAg b2Uuc3BkeDMwLnNlY3VyaXR5X1ZleE5vdEFmZmVjdGVkVnVsbkFzc2Vzc21lbnRSZWxhdGlv bnNoaXAsDQo+ICsgICAgICAgICAgICBmcm9tXywNCj4gKyAgICAgICAgICAgIG9lLnNwZHgz MC5SZWxhdGlvbnNoaXBUeXBlLmRvZXNOb3RBZmZlY3QsDQo+ICsgICAgICAgICAgICB0bywN Cj4gKyAgICAgICAgICAgIHNwZHhpZF9uYW1lPSJ2ZXgtbm90LWFmZmVjdGVkIiwNCj4gKyAg ICAgICAgICAgIHNlY3VyaXR5X3ZleFZlcnNpb249VkVYX1ZFUlNJT04sDQo+ICsgICAgICAg ICAgICBzZWN1cml0eV9pbXBhY3RTdGF0ZW1lbnQ9aW1wYWN0X3N0YXRlbWVudCwNCj4gKyAg ICAgICAgKQ0KPiArDQo+ICsgICAgZGVmIGltcG9ydF9iaXRiYWtlX2J1aWxkKHNlbGYpOg0K PiArICAgICAgICBkZWYgZmluZF9iaXRiYWtlX2J1aWxkKG9ianNldCk6DQo+ICsgICAgICAg ICAgICByZXR1cm4gb2Jqc2V0LmZpbmRfZmlsdGVyKA0KPiArICAgICAgICAgICAgICAgIG9l LnNwZHgzMC5idWlsZF9CdWlsZCwNCj4gKyAgICAgICAgICAgICAgICBidWlsZF9idWlsZFR5 cGU9U1BEWF9CVUlMRF9UWVBFLA0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAg IGJ1aWxkID0gZmluZF9iaXRiYWtlX2J1aWxkKHNlbGYpDQo+ICsgICAgICAgIGlmIGJ1aWxk Og0KPiArICAgICAgICAgICAgcmV0dXJuIGJ1aWxkDQo+ICsNCj4gKyAgICAgICAgZGVwbG95 X2Rpcl9zcGR4ID0gUGF0aChzZWxmLmQuZ2V0VmFyKCJERVBMT1lfRElSX1NQRFgiKSkNCj4g KyAgICAgICAgYmJfb2Jqc2V0ID0gbG9hZF9qc29ubGQoDQo+ICsgICAgICAgICAgICBzZWxm LmQsIGRlcGxveV9kaXJfc3BkeCAvICJiaXRiYWtlLnNwZHguanNvbiIsIHJlcXVpcmVkPVRy dWUNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIGJ1aWxkID0gZmluZF9iaXRiYWtl X2J1aWxkKGJiX29ianNldCkNCj4gKyAgICAgICAgaWYgYnVpbGQgaXMgTm9uZToNCj4gKyAg ICAgICAgICAgIGJiLmZhdGFsKGYiTm8gYnVpbGQgZm91bmQgaW4ge2RlcGxveV9kaXJfc3Bk eH0iKQ0KPiArDQo+ICsgICAgICAgIHNlbGYuZG9jLmltcG9ydHMuZXh0ZW5kKGJiX29ianNl dC5kb2MuaW1wb3J0cykNCj4gKyAgICAgICAgc2VsZi51cGRhdGUoYmJfb2Jqc2V0Lm9iamVj dHMpDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIGJ1aWxkDQo+ICsNCj4gKyAgICBkZWYgbmV3 X3N1Yl9idWlsZChzZWxmLCBuYW1lLCB0eXApOg0KPiArICAgICAgICBidWlsZCA9IHNlbGYu YWRkKA0KPiArICAgICAgICAgICAgb2Uuc3BkeDMwLmJ1aWxkX0J1aWxkKA0KPiArICAgICAg ICAgICAgICAgIF9pZD1zZWxmLm5ld19zcGR4aWQoImJ1aWxkIiwgbmFtZSksDQo+ICsgICAg ICAgICAgICAgICAgY3JlYXRpb25JbmZvPXNlbGYuZG9jLmNyZWF0aW9uSW5mbywNCj4gKyAg ICAgICAgICAgICAgICBuYW1lPSIlcy0lcyIgJSAoc2VsZi5kLmdldFZhcigiUE4iKSwgbmFt ZSksDQo+ICsgICAgICAgICAgICAgICAgYnVpbGRfYnVpbGRUeXBlPSIlcy8lcyIgJSAoU1BE WF9CVUlMRF9UWVBFLCB0eXApLA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICApDQo+ ICsNCj4gKyAgICAgICAgYml0YmFrZV9idWlsZCA9IHNlbGYuaW1wb3J0X2JpdGJha2VfYnVp bGQoKQ0KPiArDQo+ICsgICAgICAgIHNlbGYubmV3X3JlbGF0aW9uc2hpcCgNCj4gKyAgICAg ICAgICAgIFtiaXRiYWtlX2J1aWxkXSwNCj4gKyAgICAgICAgICAgIG9lLnNwZHgzMC5SZWxh dGlvbnNoaXBUeXBlLmFuY2VzdG9yT2YsDQo+ICsgICAgICAgICAgICBbYnVpbGRdLA0KPiAr ICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgaWYgc2VsZi5kLmdldFZhcigiU1BEWF9JTkNM VURFX0JVSUxEX1ZBUklBQkxFUyIpID09ICIxIjoNCj4gKyAgICAgICAgICAgIGZvciB2YXJu YW1lIGluIHNvcnRlZChzZWxmLmQua2V5cygpKToNCj4gKyAgICAgICAgICAgICAgICBpZiB2 YXJuYW1lLnN0YXJ0c3dpdGgoIl9fIik6DQo+ICsgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlDQo+ICsNCj4gKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuZC5nZXRWYXIodmFy bmFtZSwgZXhwYW5kPUZhbHNlKQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgIyBUT0RPOiBE ZWFsIHdpdGggbm9uLXN0cmluZyB2YWx1ZXMNCj4gKyAgICAgICAgICAgICAgICBpZiBub3Qg aXNpbnN0YW5jZSh2YWx1ZSwgc3RyKToNCj4gKyAgICAgICAgICAgICAgICAgICAgY29udGlu dWUNCj4gKw0KPiArICAgICAgICAgICAgICAgIGJ1aWxkLnBhcmFtZXRlcnMuYXBwZW5kKA0K PiArICAgICAgICAgICAgICAgICAgICBvZS5zcGR4MzAuRGljdGlvbmFyeUVudHJ5KGtleT12 YXJuYW1lLCB2YWx1ZT12YWx1ZSkNCj4gKyAgICAgICAgICAgICAgICApDQo+ICsNCj4gKyAg ICAgICAgcmV0dXJuIGJ1aWxkDQo+ICsNCj4gKyAgICBkZWYgbmV3X2FyY2hpdmUoc2VsZiwg YXJjaGl2ZV9uYW1lKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuYWRkKA0KPiArICAgICAg ICAgICAgb2Uuc3BkeDMwLnNvZnR3YXJlX0ZpbGUoDQo+ICsgICAgICAgICAgICAgICAgX2lk PXNlbGYubmV3X3NwZHhpZCgiYXJjaGl2ZSIsIHN0cihhcmNoaXZlX25hbWUpKSwNCj4gKyAg ICAgICAgICAgICAgICBjcmVhdGlvbkluZm89c2VsZi5kb2MuY3JlYXRpb25JbmZvLA0KPiAr ICAgICAgICAgICAgICAgIG5hbWU9c3RyKGFyY2hpdmVfbmFtZSksDQo+ICsgICAgICAgICAg ICAgICAgc29mdHdhcmVfcHJpbWFyeVB1cnBvc2U9b2Uuc3BkeDMwLnNvZnR3YXJlX1NvZnR3 YXJlUHVycG9zZS5hcmNoaXZlLA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICApDQo+ ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgbmV3X29ianNldChjbHMsIGQs IG5hbWUsIGNvcHlfZnJvbV9iaXRiYWtlX2RvYz1UcnVlKToNCj4gKyAgICAgICAgb2Jqc2V0 ID0gY2xzKGQpDQo+ICsNCj4gKyAgICAgICAgZG9jdW1lbnQgPSBvZS5zcGR4MzAuU3BkeERv Y3VtZW50KA0KPiArICAgICAgICAgICAgX2lkPW9ianNldC5uZXdfc3BkeGlkKCJkb2N1bWVu dCIsIG5hbWUpLA0KPiArICAgICAgICAgICAgbmFtZT1uYW1lLA0KPiArICAgICAgICApDQo+ ICsgICAgICAgIGRvY3VtZW50LmV4dGVuc2lvbi5hcHBlbmQoT0VJZEFsaWFzRXh0ZW5zaW9u KCkpDQo+ICsgICAgICAgIGRvY3VtZW50LmV4dGVuc2lvbi5hcHBlbmQoT0VMaW5rRXh0ZW5z aW9uKGxpbmtfc3BkeF9pZD1GYWxzZSkpDQo+ICsgICAgICAgIG9ianNldC5kb2MgPSBkb2N1 bWVudA0KPiArDQo+ICsgICAgICAgIGlmIGNvcHlfZnJvbV9iaXRiYWtlX2RvYzoNCj4gKyAg ICAgICAgICAgIGJ1aWxkID0gb2Jqc2V0LmltcG9ydF9iaXRiYWtlX2J1aWxkKCkNCj4gKyAg ICAgICAgICAgIGRvY3VtZW50LmNyZWF0aW9uSW5mbyA9IG9ianNldC5jb3B5X2NyZWF0aW9u X2luZm8oYnVpbGQuY3JlYXRpb25JbmZvKQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAg ICAgICAgZG9jdW1lbnQuY3JlYXRpb25JbmZvID0gb2Jqc2V0Lm5ld19jcmVhdGlvbl9pbmZv KCkNCj4gKw0KPiArICAgICAgICByZXR1cm4gb2Jqc2V0DQo+ICsNCj4gKyAgICBkZWYgZXhw YW5kX2NvbGxlY3Rpb24oc2VsZiwgKiwgYWRkX29iamVjdHNldHM9W10pOg0KPiArICAgICAg ICAiIiINCj4gKyAgICAgICAgRXhwYW5kcyBhIGNvbGxlY3Rpb24gdG8gcHVsbCBpbiBhbGwg bWlzc2luZyBlbGVtZW50cw0KPiArDQo+ICsgICAgICAgIFJldHVybnMgdGhlIHNldCBvZiBp ZHMgdGhhdCBjb3VsZCBub3QgYmUgZm91bmQgdG8gbGluayBpbnRvIHRoZSBkb2N1bWVudA0K PiArICAgICAgICAiIiINCj4gKyAgICAgICAgbWlzc2luZ19zcGR4aWRzID0gc2V0KCkNCj4g KyAgICAgICAgaW1wb3J0cyA9IHtlLmV4dGVybmFsU3BkeElkOiBlIGZvciBlIGluIHNlbGYu ZG9jLmltcG9ydHN9DQo+ICsNCj4gKyAgICAgICAgZGVmIG1lcmdlX2RvYyhvdGhlcik6DQo+ ICsgICAgICAgICAgICBub25sb2NhbCBpbXBvcnRzDQo+ICsNCj4gKyAgICAgICAgICAgIGZv ciBlIGluIG90aGVyLmRvYy5pbXBvcnRzOg0KPiArICAgICAgICAgICAgICAgIGlmIG5vdCBl LmV4dGVybmFsU3BkeElkIGluIGltcG9ydHM6DQo+ICsgICAgICAgICAgICAgICAgICAgIGlt cG9ydHNbZS5leHRlcm5hbFNwZHhJZF0gPSBlDQo+ICsNCj4gKyAgICAgICAgICAgIHNlbGYu b2JqZWN0cyB8PSBvdGhlci5vYmplY3RzDQo+ICsNCj4gKyAgICAgICAgZm9yIG8gaW4gYWRk X29iamVjdHNldHM6DQo+ICsgICAgICAgICAgICBtZXJnZV9kb2MobykNCj4gKw0KPiArICAg ICAgICBuZWVkZWRfc3BkeGlkcyA9IHNlbGYubGluaygpDQo+ICsgICAgICAgIHByb3ZpZGVk X3NwZHhpZHMgPSBzZXQoc2VsZi5vYmpfYnlfaWQua2V5cygpKQ0KPiArDQo+ICsgICAgICAg IHdoaWxlIFRydWU6DQo+ICsgICAgICAgICAgICBpbXBvcnRfc3BkeGlkcyA9IHNldChpbXBv cnRzLmtleXMoKSkNCj4gKyAgICAgICAgICAgIHNlYXJjaGluZ19zcGR4aWRzID0gKA0KPiAr ICAgICAgICAgICAgICAgIG5lZWRlZF9zcGR4aWRzIC0gcHJvdmlkZWRfc3BkeGlkcyAtIG1p c3Npbmdfc3BkeGlkcyAtIGltcG9ydF9zcGR4aWRzDQo+ICsgICAgICAgICAgICApDQo+ICsg ICAgICAgICAgICBpZiBub3Qgc2VhcmNoaW5nX3NwZHhpZHM6DQo+ICsgICAgICAgICAgICAg ICAgYnJlYWsNCj4gKw0KPiArICAgICAgICAgICAgc3BkeGlkID0gc2VhcmNoaW5nX3NwZHhp ZHMucG9wKCkNCj4gKyAgICAgICAgICAgIGJiLmRlYnVnKA0KPiArICAgICAgICAgICAgICAg IDEsDQo+ICsgICAgICAgICAgICAgICAgZiJTZWFyY2hpbmcgZm9yIHtzcGR4aWR9LiBSZW1h aW5pbmc6IHtsZW4oc2VhcmNoaW5nX3NwZHhpZHMpfSwgVG90YWw6IHtsZW4ocHJvdmlkZWRf c3BkeGlkcyl9LCBNaXNzaW5nOiB7bGVuKG1pc3Npbmdfc3BkeGlkcyl9LCBJbXBvcnRzOiB7 bGVuKGltcG9ydF9zcGR4aWRzKX0iLA0KPiArICAgICAgICAgICAgKQ0KPiArICAgICAgICAg ICAgZGVwX29ianNldCwgZGVwX3BhdGggPSBmaW5kX2J5X3NwZHhpZChzZWxmLmQsIHNwZHhp ZCkNCj4gKw0KPiArICAgICAgICAgICAgaWYgZGVwX29ianNldDoNCj4gKyAgICAgICAgICAg ICAgICBkZXBfcHJvdmlkZWQgPSBzZXQoZGVwX29ianNldC5vYmpfYnlfaWQua2V5cygpKQ0K PiArICAgICAgICAgICAgICAgIGlmIHNwZHhpZCBub3QgaW4gZGVwX3Byb3ZpZGVkOg0KPiAr ICAgICAgICAgICAgICAgICAgICBiYi5mYXRhbChmIntzcGR4aWR9IG5vdCBmb3VuZCBpbiB7 ZGVwX3BhdGh9IikNCj4gKyAgICAgICAgICAgICAgICBwcm92aWRlZF9zcGR4aWRzIHw9IGRl cF9wcm92aWRlZA0KPiArICAgICAgICAgICAgICAgIG5lZWRlZF9zcGR4aWRzIHw9IGRlcF9v YmpzZXQubWlzc2luZ19pZHMNCj4gKyAgICAgICAgICAgICAgICBtZXJnZV9kb2MoZGVwX29i anNldCkNCj4gKyAgICAgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICAgICAgbWlzc2lu Z19zcGR4aWRzLmFkZChzcGR4aWQpDQo+ICsNCj4gKyAgICAgICAgYmIuZGVidWcoMSwgIkxp bmtpbmcuLi4iKQ0KPiArICAgICAgICBtaXNzaW5nID0gc2VsZi5saW5rKCkNCj4gKyAgICAg ICAgaWYgbWlzc2luZyAhPSBtaXNzaW5nX3NwZHhpZHM6DQo+ICsgICAgICAgICAgICBiYi5m YXRhbCgNCj4gKyAgICAgICAgICAgICAgICBmIkxpbmtlZCBkb2N1bWVudCBkb2Vzbid0IG1h dGNoIG1pc3NpbmcgU1BEWCBJRCBsaXN0LiBHb3Q6IHttaXNzaW5nfVxuRXhwZWN0ZWQ6IHtt aXNzaW5nX3NwZHhpZHN9Ig0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgICAgIHNl bGYuZG9jLmltcG9ydHMgPSBzb3J0ZWQoaW1wb3J0cy52YWx1ZXMoKSwga2V5PWxhbWJkYSBl OiBlLmV4dGVybmFsU3BkeElkKQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBtaXNzaW5nX3Nw ZHhpZHMNCj4gKw0KPiArDQo+ICtkZWYgbG9hZF9qc29ubGQoZCwgcGF0aCwgcmVxdWlyZWQ9 RmFsc2UpOg0KPiArICAgIGRlc2VyaWFsaXplciA9IG9lLnNwZHgzMC5KU09OTEREZXNlcmlh bGl6ZXIoKQ0KPiArICAgIG9ianNldCA9IE9iamVjdFNldChkKQ0KPiArICAgIHRyeToNCj4g KyAgICAgICAgd2l0aCBwYXRoLm9wZW4oInJiIikgYXMgZjoNCj4gKyAgICAgICAgICAgIGRl c2VyaWFsaXplci5yZWFkKGYsIG9ianNldCkNCj4gKyAgICBleGNlcHQgRmlsZU5vdEZvdW5k RXJyb3I6DQo+ICsgICAgICAgIGlmIHJlcXVpcmVkOg0KPiArICAgICAgICAgICAgYmIuZmF0 YWwoIk5vIFNQRFggZG9jdW1lbnQgbmFtZWQgJXMgZm91bmQiICUgcGF0aCkNCj4gKyAgICAg ICAgcmV0dXJuIE5vbmUNCj4gKw0KPiArICAgIGlmIG5vdCBvYmpzZXQuZG9jOg0KPiArICAg ICAgICBiYi5mYXRhbCgiU1BEWCBEb2N1bWVudCAlcyBoYXMgbm8gU1BEWERvY3VtZW50IGVs ZW1lbnQiICUgcGF0aCkNCj4gKyAgICAgICAgcmV0dXJuIE5vbmUNCj4gKw0KPiArICAgIG9i anNldC5vYmplY3RzLnJlbW92ZShvYmpzZXQuZG9jKQ0KPiArICAgIHJldHVybiBvYmpzZXQN Cj4gKw0KPiArDQo+ICtkZWYganNvbmxkX2FyY2hfcGF0aChkLCBhcmNoLCBzdWJkaXIsIG5h bWUsIGRlcGxveWRpcj1Ob25lKToNCj4gKyAgICBpZiBkZXBsb3lkaXIgaXMgTm9uZToNCj4g KyAgICAgICAgZGVwbG95ZGlyID0gUGF0aChkLmdldFZhcigiREVQTE9ZX0RJUl9TUERYIikp DQo+ICsgICAgcmV0dXJuIGRlcGxveWRpciAvIGFyY2ggLyBzdWJkaXIgLyAobmFtZSArICIu c3BkeC5qc29uIikNCj4gKw0KPiArDQo+ICtkZWYganNvbmxkX2hhc2hfcGF0aChfaWQpOg0K PiArICAgIGggPSBoYXNobGliLnNoYTI1NihfaWQuZW5jb2RlKCJ1dGYtOCIpKS5oZXhkaWdl c3QoKQ0KPiArDQo+ICsgICAgcmV0dXJuIFBhdGgoImJ5LXNwZHhpZC1oYXNoIikgLyBoWzoy XSwgaA0KPiArDQo+ICsNCj4gK2RlZiBsb2FkX2pzb25sZF9ieV9hcmNoKGQsIGFyY2gsIHN1 YmRpciwgbmFtZSwgKiwgcmVxdWlyZWQ9RmFsc2UpOg0KPiArICAgIHBhdGggPSBqc29ubGRf YXJjaF9wYXRoKGQsIGFyY2gsIHN1YmRpciwgbmFtZSkNCj4gKyAgICBvYmpzZXQgPSBsb2Fk X2pzb25sZChkLCBwYXRoLCByZXF1aXJlZD1yZXF1aXJlZCkNCj4gKyAgICBpZiBvYmpzZXQg aXMgbm90IE5vbmU6DQo+ICsgICAgICAgIHJldHVybiAob2Jqc2V0LCBwYXRoKQ0KPiArICAg IHJldHVybiAoTm9uZSwgTm9uZSkNCj4gKw0KPiArDQo+ICtkZWYgZmluZF9qc29ubGQoZCwg c3ViZGlyLCBuYW1lLCAqLCByZXF1aXJlZD1GYWxzZSk6DQo+ICsgICAgcGFja2FnZV9hcmNo cyA9IGQuZ2V0VmFyKCJTU1RBVEVfQVJDSFMiKS5zcGxpdCgpDQo+ICsgICAgcGFja2FnZV9h cmNocy5yZXZlcnNlKCkNCj4gKw0KPiArICAgIGZvciBhcmNoIGluIHBhY2thZ2VfYXJjaHM6 DQo+ICsgICAgICAgIG9ianNldCwgcGF0aCA9IGxvYWRfanNvbmxkX2J5X2FyY2goZCwgYXJj aCwgc3ViZGlyLCBuYW1lKQ0KPiArICAgICAgICBpZiBvYmpzZXQgaXMgbm90IE5vbmU6DQo+ ICsgICAgICAgICAgICByZXR1cm4gKG9ianNldCwgcGF0aCkNCj4gKw0KPiArICAgIGlmIHJl cXVpcmVkOg0KPiArICAgICAgICBiYi5mYXRhbCgiQ291bGQgbm90IGZpbmQgYSAlcyBTUERY IGRvY3VtZW50IG5hbWVkICVzIiAlIChzdWJkaXIsIG5hbWUpKQ0KPiArDQo+ICsgICAgcmV0 dXJuIChOb25lLCBOb25lKQ0KPiArDQo+ICsNCj4gK2RlZiB3cml0ZV9qc29ubGRfZG9jKGQs IG9ianNldCwgZGVzdCk6DQo+ICsgICAgaWYgbm90IGlzaW5zdGFuY2Uob2Jqc2V0LCBPYmpl Y3RTZXQpOg0KPiArICAgICAgICBiYi5mYXRhbCgiT25seSBhbiBPYmpzZXRTZXQgY2FuIGJl IHNlcmlhbGl6ZWQiKQ0KPiArICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgIGlmIG5vdCBv YmpzZXQuZG9jOg0KPiArICAgICAgICBiYi5mYXRhbCgiT2JqZWN0U2V0IGlzIG1pc3Npbmcg YSBTcGR4RG9jdW1lbnQiKQ0KPiArICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgIG9ianNl dC5kb2Mucm9vdEVsZW1lbnQgPSBzb3J0ZWQobGlzdChzZXQob2Jqc2V0LmRvYy5yb290RWxl bWVudCkpKQ0KPiArICAgIG9ianNldC5kb2MucHJvZmlsZUNvbmZvcm1hbmNlID0gc29ydGVk KA0KPiArICAgICAgICBsaXN0KA0KPiArICAgICAgICAgICAgZ2V0YXR0cihvZS5zcGR4MzAu UHJvZmlsZUlkZW50aWZpZXJUeXBlLCBwKQ0KPiArICAgICAgICAgICAgZm9yIHAgaW4gZC5n ZXRWYXIoIlNQRFhfUFJPRklMRVMiKS5zcGxpdCgpDQo+ICsgICAgICAgICkNCj4gKyAgICAp DQo+ICsNCj4gKyAgICBkZXN0LnBhcmVudC5ta2RpcihleGlzdF9vaz1UcnVlLCBwYXJlbnRz PVRydWUpDQo+ICsNCj4gKyAgICBpZiBkLmdldFZhcigiU1BEWF9QUkVUVFkiKSA9PSAiMSI6 DQo+ICsgICAgICAgIHNlcmlhbGl6ZXIgPSBvZS5zcGR4MzAuSlNPTkxEU2VyaWFsaXplcigN Cj4gKyAgICAgICAgICAgIGluZGVudD0yLA0KPiArICAgICAgICApDQo+ICsgICAgZWxzZToN Cj4gKyAgICAgICAgc2VyaWFsaXplciA9IG9lLnNwZHgzMC5KU09OTERJbmxpbmVTZXJpYWxp emVyKCkNCj4gKw0KPiArICAgIG9ianNldC5vYmplY3RzLmFkZChvYmpzZXQuZG9jKQ0KPiAr ICAgIHdpdGggZGVzdC5vcGVuKCJ3YiIpIGFzIGY6DQo+ICsgICAgICAgIHNlcmlhbGl6ZXIu d3JpdGUob2Jqc2V0LCBmLCBmb3JjZV9hdF9ncmFwaD1UcnVlKQ0KPiArICAgIG9ianNldC5v YmplY3RzLnJlbW92ZShvYmpzZXQuZG9jKQ0KPiArDQo+ICsNCj4gK2RlZiB3cml0ZV9yZWNp cGVfanNvbmxkX2RvYygNCj4gKyAgICBkLA0KPiArICAgIG9ianNldCwNCj4gKyAgICBzdWJk aXIsDQo+ICsgICAgZGVwbG95ZGlyLA0KPiArICAgICosDQo+ICsgICAgY3JlYXRlX3NwZHhf aWRfbGlua3M9VHJ1ZSwNCj4gKyk6DQo+ICsgICAgcGtnX2FyY2ggPSBkLmdldFZhcigiU1NU QVRFX1BLR0FSQ0giKQ0KPiArDQo+ICsgICAgZGVzdCA9IGpzb25sZF9hcmNoX3BhdGgoZCwg cGtnX2FyY2gsIHN1YmRpciwgb2Jqc2V0LmRvYy5uYW1lLCBkZXBsb3lkaXI9ZGVwbG95ZGly KQ0KPiArDQo+ICsgICAgZGVmIGxpbmtfaWQoX2lkKToNCj4gKyAgICAgICAgaGFzaF9wYXRo ID0ganNvbmxkX2hhc2hfcGF0aChfaWQpDQo+ICsNCj4gKyAgICAgICAgbGlua19uYW1lID0g anNvbmxkX2FyY2hfcGF0aCgNCj4gKyAgICAgICAgICAgIGQsDQo+ICsgICAgICAgICAgICBw a2dfYXJjaCwNCj4gKyAgICAgICAgICAgICpoYXNoX3BhdGgsDQo+ICsgICAgICAgICAgICBk ZXBsb3lkaXI9ZGVwbG95ZGlyLA0KPiArICAgICAgICApDQo+ICsgICAgICAgIHRyeToNCj4g KyAgICAgICAgICAgIGxpbmtfbmFtZS5wYXJlbnQubWtkaXIoZXhpc3Rfb2s9VHJ1ZSwgcGFy ZW50cz1UcnVlKQ0KPiArICAgICAgICAgICAgbGlua19uYW1lLnN5bWxpbmtfdG8ob3MucGF0 aC5yZWxwYXRoKGRlc3QsIGxpbmtfbmFtZS5wYXJlbnQpKQ0KPiArICAgICAgICBleGNlcHQ6 DQo+ICsgICAgICAgICAgICB0YXJnZXQgPSBsaW5rX25hbWUucmVhZGxpbmsoKQ0KPiArICAg ICAgICAgICAgYmIud2FybigNCj4gKyAgICAgICAgICAgICAgICBmIlVuYWJsZSB0byBsaW5r IHtfaWR9IGluIHtkZXN0fSBhcyB7bGlua19uYW1lfS4gQWxyZWFkeSBwb2ludHMgdG8ge3Rh cmdldH0iDQo+ICsgICAgICAgICAgICApDQo+ICsgICAgICAgICAgICByYWlzZQ0KPiArDQo+ ICsgICAgICAgIHJldHVybiBoYXNoX3BhdGhbLTFdDQo+ICsNCj4gKyAgICBvYmpzZXQuYWRk X2FsaWFzZXMoKQ0KPiArDQo+ICsgICAgdHJ5Og0KPiArICAgICAgICBpZiBjcmVhdGVfc3Bk eF9pZF9saW5rczoNCj4gKyAgICAgICAgICAgIGZvciBvIGluIG9ianNldC5mb3JlYWNoX3R5 cGUob2Uuc3BkeDMwLkVsZW1lbnQpOg0KPiArICAgICAgICAgICAgICAgIGlmIG5vdCBvLl9p ZCBvciBvLl9pZC5zdGFydHN3aXRoKCJfOiIpOg0KPiArICAgICAgICAgICAgICAgICAgICBj b250aW51ZQ0KPiArDQo+ICsgICAgICAgICAgICAgICAgZXh0ID0gTm9uZQ0KPiArICAgICAg ICAgICAgICAgIGZvciBlIGluIG8uZXh0ZW5zaW9uOg0KPiArICAgICAgICAgICAgICAgICAg ICBpZiBub3QgaXNpbnN0YW5jZShlLCBPRUxpbmtFeHRlbnNpb24pOg0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWUNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICBl eHQgPSBlDQo+ICsgICAgICAgICAgICAgICAgICAgIGJyZWFrDQo+ICsNCj4gKyAgICAgICAg ICAgICAgICBpZiBleHQgaXMgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgZXh0ID0g T0VMaW5rRXh0ZW5zaW9uKGxpbmtfc3BkeF9pZD1UcnVlKQ0KPiArICAgICAgICAgICAgICAg ICAgICBvLmV4dGVuc2lvbi5hcHBlbmQoZXh0KQ0KPiArDQo+ICsgICAgICAgICAgICAgICAg aWYgZXh0Lmxpbmtfc3BkeF9pZDoNCj4gKyAgICAgICAgICAgICAgICAgICAgZXh0Lmxpbmtf bmFtZSA9IGxpbmtfaWQoby5faWQpDQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgYWxp YXNfZXh0ID0gZ2V0X2FsaWFzKG8pDQo+ICsgICAgICAgICAgICAgICAgICAgIGlmIGFsaWFz X2V4dCBpcyBub3QgTm9uZSBhbmQgYWxpYXNfZXh0LmFsaWFzOg0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgYWxpYXNfZXh0LmxpbmtfbmFtZSA9IGxpbmtfaWQoYWxpYXNfZXh0LmFs aWFzKQ0KPiArDQo+ICsgICAgZmluYWxseToNCj4gKyAgICAgICAgIyBJdCBpcyByZWFsbHkg aGVscGZ1bCBmb3IgZGVidWdnaW5nIGlmIHRoZSBKU09OIGRvY3VtZW50IGlzIHdyaXR0ZW4N Cj4gKyAgICAgICAgIyBvdXQsIHNvIGFsd2F5cyBkbyB0aGF0IGV2ZW4gaWYgdGhlcmUgaXMg YW4gZXJyb3IgbWFraW5nIHRoZSBsaW5rcw0KPiArICAgICAgICB3cml0ZV9qc29ubGRfZG9j KGQsIG9ianNldCwgZGVzdCkNCj4gKw0KPiArDQo+ICtkZWYgZmluZF9yb290X29ial9pbl9q c29ubGQoZCwgc3ViZGlyLCBmbl9uYW1lLCBvYmpfdHlwZSwgKiphdHRyX2ZpbHRlcik6DQo+ ICsgICAgb2Jqc2V0LCBmbiA9IGZpbmRfanNvbmxkKGQsIHN1YmRpciwgZm5fbmFtZSwgcmVx dWlyZWQ9VHJ1ZSkNCj4gKw0KPiArICAgIHNwZHhfb2JqID0gb2Jqc2V0LmZpbmRfcm9vdChv YmpfdHlwZSwgKiphdHRyX2ZpbHRlcikNCj4gKyAgICBpZiBub3Qgc3BkeF9vYmo6DQo+ICsg ICAgICAgIGJiLmZhdGFsKCJObyByb290ICVzIGZvdW5kIGluICVzIiAlIChvYmpfdHlwZS5f X25hbWVfXywgZm4pKQ0KPiArDQo+ICsgICAgcmV0dXJuIHNwZHhfb2JqLCBvYmpzZXQNCj4g Kw0KPiArDQo+ICtkZWYgbG9hZF9vYmpfaW5fanNvbmxkKGQsIGFyY2gsIHN1YmRpciwgZm5f bmFtZSwgb2JqX3R5cGUsICoqYXR0cl9maWx0ZXIpOg0KPiArICAgIG9ianNldCwgZm4gPSBs b2FkX2pzb25sZF9ieV9hcmNoKGQsIGFyY2gsIHN1YmRpciwgZm5fbmFtZSwgcmVxdWlyZWQ9 VHJ1ZSkNCj4gKw0KPiArICAgIHNwZHhfb2JqID0gb2Jqc2V0LmZpbmRfZmlsdGVyKG9ial90 eXBlLCAqKmF0dHJfZmlsdGVyKQ0KPiArICAgIGlmIG5vdCBzcGR4X29iajoNCj4gKyAgICAg ICAgYmIuZmF0YWwoIk5vICVzIGZvdW5kIGluICVzIiAlIChvYmpfdHlwZS5fX25hbWVfXywg Zm4pKQ0KPiArDQo+ICsgICAgcmV0dXJuIHNwZHhfb2JqLCBvYmpzZXQNCj4gKw0KPiArDQo+ ICtkZWYgZmluZF9ieV9zcGR4aWQoZCwgc3BkeGlkLCAqLCByZXF1aXJlZD1GYWxzZSk6DQo+ ICsgICAgcmV0dXJuIGZpbmRfanNvbmxkKGQsICpqc29ubGRfaGFzaF9wYXRoKHNwZHhpZCks IHJlcXVpcmVkPXJlcXVpcmVkKQ0KPiArDQo+ICsNCj4gK2RlZiBjcmVhdGVfc2JvbShkLCBu YW1lLCByb290X2VsZW1lbnRzLCBhZGRfb2JqZWN0c2V0cz1bXSk6DQo+ICsgICAgb2Jqc2V0 ID0gT2JqZWN0U2V0Lm5ld19vYmpzZXQoZCwgbmFtZSkNCj4gKw0KPiArICAgIHNib20gPSBv YmpzZXQuYWRkKA0KPiArICAgICAgICBvZS5zcGR4MzAuc29mdHdhcmVfU2JvbSgNCj4gKyAg ICAgICAgICAgIF9pZD1vYmpzZXQubmV3X3NwZHhpZCgic2JvbSIsIG5hbWUpLA0KPiArICAg ICAgICAgICAgbmFtZT1uYW1lLA0KPiArICAgICAgICAgICAgY3JlYXRpb25JbmZvPW9ianNl dC5kb2MuY3JlYXRpb25JbmZvLA0KPiArICAgICAgICAgICAgc29mdHdhcmVfc2JvbVR5cGU9 W29lLnNwZHgzMC5zb2Z0d2FyZV9TYm9tVHlwZS5idWlsZF0sDQo+ICsgICAgICAgICAgICBy b290RWxlbWVudD1yb290X2VsZW1lbnRzLA0KPiArICAgICAgICApDQo+ICsgICAgKQ0KPiAr DQo+ICsgICAgbWlzc2luZ19zcGR4aWRzID0gb2Jqc2V0LmV4cGFuZF9jb2xsZWN0aW9uKGFk ZF9vYmplY3RzZXRzPWFkZF9vYmplY3RzZXRzKQ0KPiArICAgIGlmIG1pc3Npbmdfc3BkeGlk czoNCj4gKyAgICAgICAgYmIud2FybigNCj4gKyAgICAgICAgICAgICJUaGUgZm9sbG93aW5n IFNQRFggSURzIHdlcmUgdW5hYmxlIHRvIGJlIHJlc29sdmVkOlxuICAiDQo+ICsgICAgICAg ICAgICArICJcbiAgIi5qb2luKHNvcnRlZChsaXN0KG1pc3Npbmdfc3BkeGlkcykpKQ0KPiAr ICAgICAgICApDQo+ICsNCj4gKyAgICAjIEZpbHRlciBvdXQgaW50ZXJuYWwgZXh0ZW5zaW9u cyBmcm9tIGZpbmFsIFNCb01zDQo+ICsgICAgb2Jqc2V0LnJlbW92ZV9pbnRlcm5hbF9leHRl bnNpb25zKCkNCj4gKw0KPiArICAgICMgU0JvTSBzaG91bGQgYmUgdGhlIG9ubHkgcm9vdCBl bGVtZW50IG9mIHRoZSBkb2N1bWVudA0KPiArICAgIG9ianNldC5kb2Mucm9vdEVsZW1lbnQg PSBbc2JvbV0NCj4gKw0KPiArICAgICMgRGUtZHVwbGljYXRlIGxpY2Vuc2VzDQo+ICsgICAg dW5pcXVlID0gc2V0KCkNCj4gKyAgICBkZWR1cCA9IHt9DQo+ICsgICAgZm9yIGxpYyBpbiBv YmpzZXQuZm9yZWFjaF90eXBlKG9lLnNwZHgzMC5zaW1wbGVsaWNlbnNpbmdfTGljZW5zZUV4 cHJlc3Npb24pOg0KPiArICAgICAgICBmb3IgdSBpbiB1bmlxdWU6DQo+ICsgICAgICAgICAg ICBpZiAoDQo+ICsgICAgICAgICAgICAgICAgdS5zaW1wbGVsaWNlbnNpbmdfbGljZW5zZUV4 cHJlc3Npb24NCj4gKyAgICAgICAgICAgICAgICA9PSBsaWMuc2ltcGxlbGljZW5zaW5nX2xp Y2Vuc2VFeHByZXNzaW9uDQo+ICsgICAgICAgICAgICAgICAgYW5kIHUuc2ltcGxlbGljZW5z aW5nX2xpY2Vuc2VMaXN0VmVyc2lvbg0KPiArICAgICAgICAgICAgICAgID09IGxpYy5zaW1w bGVsaWNlbnNpbmdfbGljZW5zZUxpc3RWZXJzaW9uDQo+ICsgICAgICAgICAgICApOg0KPiAr ICAgICAgICAgICAgICAgIGRlZHVwW2xpY10gPSB1DQo+ICsgICAgICAgICAgICAgICAgYnJl YWsNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHVuaXF1ZS5hZGQobGljKQ0K PiArDQo+ICsgICAgaWYgZGVkdXA6DQo+ICsgICAgICAgIGZvciByZWwgaW4gb2Jqc2V0LmZv cmVhY2hfZmlsdGVyKA0KPiArICAgICAgICAgICAgb2Uuc3BkeDMwLlJlbGF0aW9uc2hpcCwN Cj4gKyAgICAgICAgICAgIHJlbGF0aW9uc2hpcFR5cGU9b2Uuc3BkeDMwLlJlbGF0aW9uc2hp cFR5cGUuaGFzRGVjbGFyZWRMaWNlbnNlLA0KPiArICAgICAgICApOg0KPiArICAgICAgICAg ICAgcmVsLnRvID0gW2RlZHVwLmdldCh0bywgdG8pIGZvciB0byBpbiByZWwudG9dDQo+ICsN Cj4gKyAgICAgICAgZm9yIHJlbCBpbiBvYmpzZXQuZm9yZWFjaF9maWx0ZXIoDQo+ICsgICAg ICAgICAgICBvZS5zcGR4MzAuUmVsYXRpb25zaGlwLA0KPiArICAgICAgICAgICAgcmVsYXRp b25zaGlwVHlwZT1vZS5zcGR4MzAuUmVsYXRpb25zaGlwVHlwZS5oYXNDb25jbHVkZWRMaWNl bnNlLA0KPiArICAgICAgICApOg0KPiArICAgICAgICAgICAgcmVsLnRvID0gW2RlZHVwLmdl dCh0bywgdG8pIGZvciB0byBpbiByZWwudG9dDQo+ICsNCj4gKyAgICAgICAgZm9yIGssIHYg aW4gZGVkdXAuaXRlbXMoKToNCj4gKyAgICAgICAgICAgIGJiLmRlYnVnKDEsIGYiUmVtb3Zp bmcgZHVwbGljYXRlIExpY2Vuc2Uge2suX2lkfSAtPiB7di5faWR9IikNCj4gKyAgICAgICAg ICAgIG9ianNldC5vYmplY3RzLnJlbW92ZShrKQ0KPiArDQo+ICsgICAgICAgIG9ianNldC5j cmVhdGVfaW5kZXgoKQ0KPiArDQo+ICsgICAgcmV0dXJuIG9ianNldCwgc2JvbQ0KPiBkaWZm IC0tZ2l0IGEvbWV0YS9saWIvb2Uvc3BkeDMwLnB5IGIvbWV0YS9saWIvb2Uvc3BkeDMwLnB5 DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi4zZDI0Njky Zjk2ZQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL21ldGEvbGliL29lL3NwZHgzMC5weQ0K PiBAQCAtMCwwICsxLDU5OTYgQEANCj4gKyMhIC91c3IvYmluL2VudiBweXRob24zDQo+ICsj DQo+ICsjIEdlbmVyYXRlZCBQeXRob24gYmluZGluZ3MgZnJvbSBhIFNIQUNMIG1vZGVsDQo+ ICsjDQo+ICsjIFRoaXMgZmlsZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgc2hh Y2wyY29kZS4gRE8gTk9UIE1BTlVBTExZIE1PRElGWSBJVA0KPiArIw0KPiArIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogTUlUDQo+ICsNCj4gK2ltcG9ydCBmdW5jdG9vbHMNCj4gK2lt cG9ydCBoYXNobGliDQo+ICtpbXBvcnQganNvbg0KPiAraW1wb3J0IHJlDQo+ICtpbXBvcnQg c3lzDQo+ICtpbXBvcnQgdGhyZWFkaW5nDQo+ICtpbXBvcnQgdGltZQ0KPiArZnJvbSBjb250 ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcg0KPiArZnJvbSBkYXRldGltZSBpbXBvcnQg ZGF0ZXRpbWUsIHRpbWV6b25lLCB0aW1lZGVsdGENCj4gK2Zyb20gZW51bSBpbXBvcnQgRW51 bQ0KPiArZnJvbSBhYmMgaW1wb3J0IEFCQywgYWJzdHJhY3RtZXRob2QNCj4gKw0KPiArDQo+ ICtkZWYgY2hlY2tfdHlwZShvYmosIHR5cGVzKToNCj4gKyAgICBpZiBub3QgaXNpbnN0YW5j ZShvYmosIHR5cGVzKToNCj4gKyAgICAgICAgaWYgaXNpbnN0YW5jZSh0eXBlcywgKGxpc3Qs IHR1cGxlKSk6DQo+ICsgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoDQo+ICsgICAgICAg ICAgICAgICAgZiJWYWx1ZSBtdXN0IGJlIG9uZSBvZiB0eXBlOiB7JywgJy5qb2luKHQuX19u YW1lX18gZm9yIHQgaW4gdHlwZXMpfS4gR290IHt0eXBlKG9iail9Ig0KPiArICAgICAgICAg ICAgKQ0KPiArICAgICAgICByYWlzZSBUeXBlRXJyb3IoZiJWYWx1ZSBtdXN0IGJlIG9mIHR5 cGUge3R5cGVzLl9fbmFtZV9ffS4gR290IHt0eXBlKG9iail9IikNCj4gKw0KPiArDQo+ICtj bGFzcyBQcm9wZXJ0eShBQkMpOg0KPiArICAgICIiIg0KPiArICAgIEEgZ2VuZXJpYyBTSEFD TCBvYmplY3QgcHJvcGVydHkuIFRoZSBkaWZmZXJlbnQgdHlwZXMgd2lsbCBkZXJpdmUgZnJv bSB0aGlzDQo+ICsgICAgY2xhc3MNCj4gKyAgICAiIiINCj4gKw0KPiArICAgIGRlZiBfX2lu aXRfXyhzZWxmLCAqLCBwYXR0ZXJuPU5vbmUpOg0KPiArICAgICAgICBzZWxmLnBhdHRlcm4g PSBwYXR0ZXJuDQo+ICsNCj4gKyAgICBkZWYgaW5pdChzZWxmKToNCj4gKyAgICAgICAgcmV0 dXJuIE5vbmUNCj4gKw0KPiArICAgIGRlZiB2YWxpZGF0ZShzZWxmLCB2YWx1ZSk6DQo+ICsg ICAgICAgIGNoZWNrX3R5cGUodmFsdWUsIHNlbGYuVkFMSURfVFlQRVMpDQo+ICsgICAgICAg IGlmIHNlbGYucGF0dGVybiBpcyBub3QgTm9uZSBhbmQgbm90IHJlLnNlYXJjaCgNCj4gKyAg ICAgICAgICAgIHNlbGYucGF0dGVybiwgc2VsZi50b19zdHJpbmcodmFsdWUpDQo+ICsgICAg ICAgICk6DQo+ICsgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKA0KPiArICAgICAgICAg ICAgICAgIGYiVmFsdWUgaXMgbm90IGNvcnJlY3RseSBmb3JtYXR0ZWQuIEdvdCAne3NlbGYu dG9fc3RyaW5nKHZhbHVlKX0nIg0KPiArICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAgZGVm IHNldChzZWxmLCB2YWx1ZSk6DQo+ICsgICAgICAgIHJldHVybiB2YWx1ZQ0KPiArDQo+ICsg ICAgZGVmIGNoZWNrX21pbl9jb3VudChzZWxmLCB2YWx1ZSwgbWluX2NvdW50KToNCj4gKyAg ICAgICAgcmV0dXJuIG1pbl9jb3VudCA9PSAxDQo+ICsNCj4gKyAgICBkZWYgY2hlY2tfbWF4 X2NvdW50KHNlbGYsIHZhbHVlLCBtYXhfY291bnQpOg0KPiArICAgICAgICByZXR1cm4gbWF4 X2NvdW50ID09IDENCj4gKw0KPiArICAgIGRlZiBlbGlkZShzZWxmLCB2YWx1ZSk6DQo+ICsg ICAgICAgIHJldHVybiB2YWx1ZSBpcyBOb25lDQo+ICsNCj4gKyAgICBkZWYgd2FsayhzZWxm LCB2YWx1ZSwgY2FsbGJhY2ssIHBhdGgpOg0KPiArICAgICAgICBjYWxsYmFjayh2YWx1ZSwg cGF0aCkNCj4gKw0KPiArICAgIGRlZiBpdGVyX29iamVjdHMoc2VsZiwgdmFsdWUsIHJlY3Vy c2l2ZSwgdmlzaXRlZCk6DQo+ICsgICAgICAgIHJldHVybiBbXQ0KPiArDQo+ICsgICAgZGVm IGxpbmtfcHJvcChzZWxmLCB2YWx1ZSwgb2JqZWN0c2V0LCBtaXNzaW5nLCB2aXNpdGVkKToN Cj4gKyAgICAgICAgcmV0dXJuIHZhbHVlDQo+ICsNCj4gKyAgICBkZWYgdG9fc3RyaW5nKHNl bGYsIHZhbHVlKToNCj4gKyAgICAgICAgcmV0dXJuIHN0cih2YWx1ZSkNCj4gKw0KPiArICAg IEBhYnN0cmFjdG1ldGhvZA0KPiArICAgIGRlZiBlbmNvZGUoc2VsZiwgZW5jb2RlciwgdmFs dWUsIHN0YXRlKToNCj4gKyAgICAgICAgcGFzcw0KPiArDQo+ICsgICAgQGFic3RyYWN0bWV0 aG9kDQo+ICsgICAgZGVmIGRlY29kZShzZWxmLCBkZWNvZGVyLCAqLCBvYmplY3RzZXQ9Tm9u ZSk6DQo+ICsgICAgICAgIHBhc3MNCj4gKw0KPiArDQo+ICtjbGFzcyBTdHJpbmdQcm9wKFBy b3BlcnR5KToNCj4gKyAgICAiIiINCj4gKyAgICBBIHNjYWxhciBzdHJpbmcgcHJvcGVydHkg Zm9yIGFuIFNIQUNMIG9iamVjdA0KPiArICAgICIiIg0KPiArDQo+ICsgICAgVkFMSURfVFlQ RVMgPSBzdHINCj4gKw0KPiArICAgIGRlZiBzZXQoc2VsZiwgdmFsdWUpOg0KPiArICAgICAg ICByZXR1cm4gc3RyKHZhbHVlKQ0KPiArDQo+ICsgICAgZGVmIGVuY29kZShzZWxmLCBlbmNv ZGVyLCB2YWx1ZSwgc3RhdGUpOg0KPiArICAgICAgICBlbmNvZGVyLndyaXRlX3N0cmluZyh2 YWx1ZSkNCj4gKw0KPiArICAgIGRlZiBkZWNvZGUoc2VsZiwgZGVjb2RlciwgKiwgb2JqZWN0 c2V0PU5vbmUpOg0KPiArICAgICAgICByZXR1cm4gZGVjb2Rlci5yZWFkX3N0cmluZygpDQo+ ICsNCj4gKw0KPiArY2xhc3MgQW55VVJJUHJvcChTdHJpbmdQcm9wKToNCj4gKyAgICBkZWYg ZW5jb2RlKHNlbGYsIGVuY29kZXIsIHZhbHVlLCBzdGF0ZSk6DQo+ICsgICAgICAgIGVuY29k ZXIud3JpdGVfaXJpKHZhbHVlKQ0KPiArDQo+ICsgICAgZGVmIGRlY29kZShzZWxmLCBkZWNv ZGVyLCAqLCBvYmplY3RzZXQ9Tm9uZSk6DQo+ICsgICAgICAgIHJldHVybiBkZWNvZGVyLnJl YWRfaXJpKCkNCj4gKw0KPiArDQo+ICtjbGFzcyBEYXRlVGltZVByb3AoUHJvcGVydHkpOg0K PiArICAgICIiIg0KPiArICAgIEEgRGF0ZS9UaW1lIE9iamVjdCB3aXRoIG9wdGlvbmFsIHRp bWV6b25lDQo+ICsgICAgIiIiDQo+ICsNCj4gKyAgICBWQUxJRF9UWVBFUyA9IGRhdGV0aW1l DQo+ICsgICAgVVRDX0ZPUk1BVF9TVFIgPSAiJVktJW0tJWRUJUg6JU06JVNaIg0KPiArICAg IFJFR0VYID0gciJeXGR7NH0tXGR7Mn0tXGR7Mn1UXGR7Mn06XGR7Mn06XGR7Mn0oWnxbKy1d XGR7Mn06XGR7Mn0pPyQiDQo+ICsNCj4gKyAgICBkZWYgc2V0KHNlbGYsIHZhbHVlKToNCj4g KyAgICAgICAgcmV0dXJuIHNlbGYuX25vcm1hbGl6ZSh2YWx1ZSkNCj4gKw0KPiArICAgIGRl ZiBlbmNvZGUoc2VsZiwgZW5jb2RlciwgdmFsdWUsIHN0YXRlKToNCj4gKyAgICAgICAgZW5j b2Rlci53cml0ZV9kYXRldGltZShzZWxmLnRvX3N0cmluZyh2YWx1ZSkpDQo+ICsNCj4gKyAg ICBkZWYgZGVjb2RlKHNlbGYsIGRlY29kZXIsICosIG9iamVjdHNldD1Ob25lKToNCj4gKyAg ICAgICAgcyA9IGRlY29kZXIucmVhZF9kYXRldGltZSgpDQo+ICsgICAgICAgIGlmIHMgaXMg Tm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBOb25lDQo+ICsgICAgICAgIHYgPSBzZWxm LmZyb21fc3RyaW5nKHMpDQo+ICsgICAgICAgIHJldHVybiBzZWxmLl9ub3JtYWxpemUodikN Cj4gKw0KPiArICAgIGRlZiBfbm9ybWFsaXplKHNlbGYsIHZhbHVlKToNCj4gKyAgICAgICAg aWYgdmFsdWUudXRjb2Zmc2V0KCkgaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHZhbHVlID0g dmFsdWUuYXN0aW1lem9uZSgpDQo+ICsgICAgICAgIG9mZnNldCA9IHZhbHVlLnV0Y29mZnNl dCgpDQo+ICsgICAgICAgIGlmIG9mZnNldCAlIHRpbWVkZWx0YShtaW51dGVzPTEpOg0KPiAr ICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0IC0gKG9mZnNldCAlIHRpbWVkZWx0YShtaW51 dGVzPTEpKQ0KPiArICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHR6aW5mbz10 aW1lem9uZShvZmZzZXQpKQ0KPiArICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UobWlj cm9zZWNvbmQ9MCkNCj4gKyAgICAgICAgcmV0dXJuIHZhbHVlDQo+ICsNCj4gKyAgICBkZWYg dG9fc3RyaW5nKHNlbGYsIHZhbHVlKToNCj4gKyAgICAgICAgdmFsdWUgPSBzZWxmLl9ub3Jt YWxpemUodmFsdWUpDQo+ICsgICAgICAgIGlmIHZhbHVlLnR6aW5mbyA9PSB0aW1lem9uZS51 dGM6DQo+ICsgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3RyZnRpbWUoc2VsZi5VVENfRk9S TUFUX1NUUikNCj4gKyAgICAgICAgcmV0dXJuIHZhbHVlLmlzb2Zvcm1hdCgpDQo+ICsNCj4g KyAgICBkZWYgZnJvbV9zdHJpbmcoc2VsZiwgdmFsdWUpOg0KPiArICAgICAgICBpZiBub3Qg cmUubWF0Y2goc2VsZi5SRUdFWCwgdmFsdWUpOg0KPiArICAgICAgICAgICAgcmFpc2UgVmFs dWVFcnJvcihmIid7dmFsdWV9JyBpcyBub3QgYSBjb3JyZWN0bHkgZm9ybWF0dGVkIGRhdGV0 aW1lIikNCj4gKyAgICAgICAgaWYgIloiIGluIHZhbHVlOg0KPiArICAgICAgICAgICAgZCA9 IGRhdGV0aW1lKA0KPiArICAgICAgICAgICAgICAgICoodGltZS5zdHJwdGltZSh2YWx1ZSwg c2VsZi5VVENfRk9STUFUX1NUUilbMDo2XSksDQo+ICsgICAgICAgICAgICAgICAgdHppbmZv PXRpbWV6b25lLnV0YywNCj4gKyAgICAgICAgICAgICkNCj4gKyAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgIGQgPSBkYXRldGltZS5mcm9taXNvZm9ybWF0KHZhbHVlKQ0KPiArDQo+ ICsgICAgICAgIHJldHVybiBzZWxmLl9ub3JtYWxpemUoZCkNCj4gKw0KPiArDQo+ICtjbGFz cyBEYXRlVGltZVN0YW1wUHJvcChEYXRlVGltZVByb3ApOg0KPiArICAgICIiIg0KPiArICAg IEEgRGF0ZS9UaW1lIE9iamVjdCB3aXRoIHJlcXVpcmVkIHRpbWVzdGFtcA0KPiArICAgICIi Ig0KPiArDQo+ICsgICAgUkVHRVggPSByIl5cZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsy fTpcZHsyfShafFsrLV1cZHsyfTpcZHsyfSkkIg0KPiArDQo+ICsNCj4gK2NsYXNzIEludGVn ZXJQcm9wKFByb3BlcnR5KToNCj4gKyAgICBWQUxJRF9UWVBFUyA9IGludA0KPiArDQo+ICsg ICAgZGVmIHNldChzZWxmLCB2YWx1ZSk6DQo+ICsgICAgICAgIHJldHVybiBpbnQodmFsdWUp DQo+ICsNCj4gKyAgICBkZWYgZW5jb2RlKHNlbGYsIGVuY29kZXIsIHZhbHVlLCBzdGF0ZSk6 DQo+ICsgICAgICAgIGVuY29kZXIud3JpdGVfaW50ZWdlcih2YWx1ZSkNCj4gKw0KPiArICAg IGRlZiBkZWNvZGUoc2VsZiwgZGVjb2RlciwgKiwgb2JqZWN0c2V0PU5vbmUpOg0KPiArICAg ICAgICByZXR1cm4gZGVjb2Rlci5yZWFkX2ludGVnZXIoKQ0KPiArDQo+ICsNCj4gK2NsYXNz IFBvc2l0aXZlSW50ZWdlclByb3AoSW50ZWdlclByb3ApOg0KPiArICAgIGRlZiB2YWxpZGF0 ZShzZWxmLCB2YWx1ZSk6DQo+ICsgICAgICAgIHN1cGVyKCkudmFsaWRhdGUodmFsdWUpDQo+ ICsgICAgICAgIGlmIHZhbHVlIDwgMToNCj4gKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy b3IoZiJWYWx1ZSBtdXN0IGJlID49MS4gR290IHt2YWx1ZX0iKQ0KPiArDQo+ICsNCj4gK2Ns YXNzIE5vbk5lZ2F0aXZlSW50ZWdlclByb3AoSW50ZWdlclByb3ApOg0KPiArICAgIGRlZiB2 YWxpZGF0ZShzZWxmLCB2YWx1ZSk6DQo+ICsgICAgICAgIHN1cGVyKCkudmFsaWRhdGUodmFs dWUpDQo+ICsgICAgICAgIGlmIHZhbHVlIDwgMDoNCj4gKyAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoZiJWYWx1ZSBtdXN0IGJlID49IDAuIEdvdCB7dmFsdWV9IikNCj4gKw0KPiAr DQo+ICtjbGFzcyBCb29sZWFuUHJvcChQcm9wZXJ0eSk6DQo+ICsgICAgVkFMSURfVFlQRVMg PSBib29sDQo+ICsNCj4gKyAgICBkZWYgc2V0KHNlbGYsIHZhbHVlKToNCj4gKyAgICAgICAg cmV0dXJuIGJvb2wodmFsdWUpDQo+ICsNCj4gKyAgICBkZWYgZW5jb2RlKHNlbGYsIGVuY29k ZXIsIHZhbHVlLCBzdGF0ZSk6DQo+ICsgICAgICAgIGVuY29kZXIud3JpdGVfYm9vbCh2YWx1 ZSkNCj4gKw0KPiArICAgIGRlZiBkZWNvZGUoc2VsZiwgZGVjb2RlciwgKiwgb2JqZWN0c2V0 PU5vbmUpOg0KPiArICAgICAgICByZXR1cm4gZGVjb2Rlci5yZWFkX2Jvb2woKQ0KPiArDQo+ ICsNCj4gK2NsYXNzIEZsb2F0UHJvcChQcm9wZXJ0eSk6DQo+ICsgICAgVkFMSURfVFlQRVMg PSAoZmxvYXQsIGludCkNCj4gKw0KPiArICAgIGRlZiBzZXQoc2VsZiwgdmFsdWUpOg0KPiAr ICAgICAgICByZXR1cm4gZmxvYXQodmFsdWUpDQo+ICsNCj4gKyAgICBkZWYgZW5jb2RlKHNl bGYsIGVuY29kZXIsIHZhbHVlLCBzdGF0ZSk6DQo+ICsgICAgICAgIGVuY29kZXIud3JpdGVf ZmxvYXQodmFsdWUpDQo+ICsNCj4gKyAgICBkZWYgZGVjb2RlKHNlbGYsIGRlY29kZXIsICos IG9iamVjdHNldD1Ob25lKToNCj4gKyAgICAgICAgcmV0dXJuIGRlY29kZXIucmVhZF9mbG9h dCgpDQo+ICsNCj4gKw0KPiArY2xhc3MgT2JqZWN0UHJvcChQcm9wZXJ0eSk6DQo+ICsgICAg IiIiDQo+ICsgICAgQSBzY2FsYXIgU0hBQ0wgb2JqZWN0IHByb3BlcnR5IG9mIGEgU0hBQ0wg b2JqZWN0DQo+ICsgICAgIiIiDQo+ICsNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgY2xz LCByZXF1aXJlZCk6DQo+ICsgICAgICAgIHN1cGVyKCkuX19pbml0X18oKQ0KPiArICAgICAg ICBzZWxmLmNscyA9IGNscw0KPiArICAgICAgICBzZWxmLnJlcXVpcmVkID0gcmVxdWlyZWQN Cj4gKw0KPiArICAgIGRlZiBpbml0KHNlbGYpOg0KPiArICAgICAgICBpZiBzZWxmLnJlcXVp cmVkIGFuZCBub3Qgc2VsZi5jbHMuSVNfQUJTVFJBQ1Q6DQo+ICsgICAgICAgICAgICByZXR1 cm4gc2VsZi5jbHMoKQ0KPiArICAgICAgICByZXR1cm4gTm9uZQ0KPiArDQo+ICsgICAgZGVm IHZhbGlkYXRlKHNlbGYsIHZhbHVlKToNCj4gKyAgICAgICAgY2hlY2tfdHlwZSh2YWx1ZSwg KHNlbGYuY2xzLCBzdHIpKQ0KPiArDQo+ICsgICAgZGVmIHdhbGsoc2VsZiwgdmFsdWUsIGNh bGxiYWNrLCBwYXRoKToNCj4gKyAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToNCj4gKyAgICAg ICAgICAgIHJldHVybg0KPiArDQo+ICsgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVl LCBzdHIpOg0KPiArICAgICAgICAgICAgdmFsdWUud2FsayhjYWxsYmFjaywgcGF0aCkNCj4g KyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIGNhbGxiYWNrKHZhbHVlLCBwYXRoKQ0K PiArDQo+ICsgICAgZGVmIGl0ZXJfb2JqZWN0cyhzZWxmLCB2YWx1ZSwgcmVjdXJzaXZlLCB2 aXNpdGVkKToNCj4gKyAgICAgICAgaWYgdmFsdWUgaXMgTm9uZSBvciBpc2luc3RhbmNlKHZh bHVlLCBzdHIpOg0KPiArICAgICAgICAgICAgcmV0dXJuDQo+ICsNCj4gKyAgICAgICAgaWYg dmFsdWUgbm90IGluIHZpc2l0ZWQ6DQo+ICsgICAgICAgICAgICB2aXNpdGVkLmFkZCh2YWx1 ZSkNCj4gKyAgICAgICAgICAgIHlpZWxkIHZhbHVlDQo+ICsNCj4gKyAgICAgICAgICAgIGlm IHJlY3Vyc2l2ZToNCj4gKyAgICAgICAgICAgICAgICBmb3IgYyBpbiB2YWx1ZS5pdGVyX29i amVjdHMocmVjdXJzaXZlPVRydWUsIHZpc2l0ZWQ9dmlzaXRlZCk6DQo+ICsgICAgICAgICAg ICAgICAgICAgIHlpZWxkIGMNCj4gKw0KPiArICAgIGRlZiBlbmNvZGUoc2VsZiwgZW5jb2Rl ciwgdmFsdWUsIHN0YXRlKToNCj4gKyAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToNCj4gKyAg ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk9iamVjdCBjYW5ub3QgYmUgTm9uZSIpDQo+ ICsNCj4gKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKToNCj4gKyAgICAgICAg ICAgIHZhbHVlID0gX05JX0VOQ09ERV9DT05URVhULmdldCh2YWx1ZSwgdmFsdWUpDQo+ICsg ICAgICAgICAgICBlbmNvZGVyLndyaXRlX2lyaSh2YWx1ZSkNCj4gKyAgICAgICAgICAgIHJl dHVybg0KPiArDQo+ICsgICAgICAgIHJldHVybiB2YWx1ZS5lbmNvZGUoZW5jb2Rlciwgc3Rh dGUpDQo+ICsNCj4gKyAgICBkZWYgZGVjb2RlKHNlbGYsIGRlY29kZXIsICosIG9iamVjdHNl dD1Ob25lKToNCj4gKyAgICAgICAgaXJpID0gZGVjb2Rlci5yZWFkX2lyaSgpDQo+ICsgICAg ICAgIGlmIGlyaSBpcyBOb25lOg0KPiArICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2xzLmRl Y29kZShkZWNvZGVyLCBvYmplY3RzZXQ9b2JqZWN0c2V0KQ0KPiArDQo+ICsgICAgICAgIGly aSA9IF9OSV9ERUNPREVfQ09OVEVYVC5nZXQoaXJpLCBpcmkpDQo+ICsNCj4gKyAgICAgICAg aWYgb2JqZWN0c2V0IGlzIE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4gaXJpDQo+ICsN Cj4gKyAgICAgICAgb2JqID0gb2JqZWN0c2V0LmZpbmRfYnlfaWQoaXJpKQ0KPiArICAgICAg ICBpZiBvYmogaXMgTm9uZToNCj4gKyAgICAgICAgICAgIHJldHVybiBpcmkNCj4gKw0KPiAr ICAgICAgICBzZWxmLnZhbGlkYXRlKG9iaikNCj4gKyAgICAgICAgcmV0dXJuIG9iag0KPiAr DQo+ICsgICAgZGVmIGxpbmtfcHJvcChzZWxmLCB2YWx1ZSwgb2JqZWN0c2V0LCBtaXNzaW5n LCB2aXNpdGVkKToNCj4gKyAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToNCj4gKyAgICAgICAg ICAgIHJldHVybiB2YWx1ZQ0KPiArDQo+ICsgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUs IHN0cik6DQo+ICsgICAgICAgICAgICBvID0gb2JqZWN0c2V0LmZpbmRfYnlfaWQodmFsdWUp DQo+ICsgICAgICAgICAgICBpZiBvIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgICAg IHNlbGYudmFsaWRhdGUobykNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gbw0KPiArDQo+ ICsgICAgICAgICAgICBpZiBtaXNzaW5nIGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAg ICAgIG1pc3NpbmcuYWRkKHZhbHVlKQ0KPiArDQo+ICsgICAgICAgICAgICByZXR1cm4gdmFs dWUNCj4gKw0KPiArICAgICAgICAjIERlLWR1cGxpY2F0ZSBJRHMNCj4gKyAgICAgICAgaWYg dmFsdWUuX2lkOg0KPiArICAgICAgICAgICAgdmFsdWUgPSBvYmplY3RzZXQuZmluZF9ieV9p ZCh2YWx1ZS5faWQsIHZhbHVlKQ0KPiArICAgICAgICAgICAgc2VsZi52YWxpZGF0ZSh2YWx1 ZSkNCj4gKw0KPiArICAgICAgICB2YWx1ZS5saW5rX2hlbHBlcihvYmplY3RzZXQsIG1pc3Np bmcsIHZpc2l0ZWQpDQo+ICsgICAgICAgIHJldHVybiB2YWx1ZQ0KPiArDQo+ICsNCj4gK2Ns YXNzIExpc3RQcm94eShvYmplY3QpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9w LCBkYXRhPU5vbmUpOg0KPiArICAgICAgICBpZiBkYXRhIGlzIE5vbmU6DQo+ICsgICAgICAg ICAgICBzZWxmLl9fZGF0YSA9IFtdDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAg ICBzZWxmLl9fZGF0YSA9IGRhdGENCj4gKyAgICAgICAgc2VsZi5fX3Byb3AgPSBwcm9wDQo+ ICsNCj4gKyAgICBkZWYgYXBwZW5kKHNlbGYsIHZhbHVlKToNCj4gKyAgICAgICAgc2VsZi5f X3Byb3AudmFsaWRhdGUodmFsdWUpDQo+ICsgICAgICAgIHNlbGYuX19kYXRhLmFwcGVuZChz ZWxmLl9fcHJvcC5zZXQodmFsdWUpKQ0KPiArDQo+ICsgICAgZGVmIGluc2VydChzZWxmLCBp ZHgsIHZhbHVlKToNCj4gKyAgICAgICAgc2VsZi5fX3Byb3AudmFsaWRhdGUodmFsdWUpDQo+ ICsgICAgICAgIHNlbGYuX19kYXRhLmluc2VydChpZHgsIHNlbGYuX19wcm9wLnNldCh2YWx1 ZSkpDQo+ICsNCj4gKyAgICBkZWYgZXh0ZW5kKHNlbGYsIGl0ZW1zKToNCj4gKyAgICAgICAg Zm9yIGkgaW4gaXRlbXM6DQo+ICsgICAgICAgICAgICBzZWxmLmFwcGVuZChpKQ0KPiArDQo+ ICsgICAgZGVmIHNvcnQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToNCj4gKyAgICAgICAgc2Vs Zi5fX2RhdGEuc29ydCgqYXJncywgKiprd2FyZ3MpDQo+ICsNCj4gKyAgICBkZWYgX19nZXRp dGVtX18oc2VsZiwga2V5KToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYuX19kYXRhW2tleV0N Cj4gKw0KPiArICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToNCj4gKyAg ICAgICAgaWYgaXNpbnN0YW5jZShrZXksIHNsaWNlKToNCj4gKyAgICAgICAgICAgIGZvciB2 IGluIHZhbHVlOg0KPiArICAgICAgICAgICAgICAgIHNlbGYuX19wcm9wLnZhbGlkYXRlKHYp DQo+ICsgICAgICAgICAgICBzZWxmLl9fZGF0YVtrZXldID0gW3NlbGYuX19wcm9wLnNldCh2 KSBmb3IgdiBpbiB2YWx1ZV0NCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHNl bGYuX19wcm9wLnZhbGlkYXRlKHZhbHVlKQ0KPiArICAgICAgICAgICAgc2VsZi5fX2RhdGFb a2V5XSA9IHNlbGYuX19wcm9wLnNldCh2YWx1ZSkNCj4gKw0KPiArICAgIGRlZiBfX2RlbGl0 ZW1fXyhzZWxmLCBrZXkpOg0KPiArICAgICAgICBkZWwgc2VsZi5fX2RhdGFba2V5XQ0KPiAr DQo+ICsgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBpdGVtKToNCj4gKyAgICAgICAgcmV0 dXJuIGl0ZW0gaW4gc2VsZi5fX2RhdGENCj4gKw0KPiArICAgIGRlZiBfX2l0ZXJfXyhzZWxm KToNCj4gKyAgICAgICAgcmV0dXJuIGl0ZXIoc2VsZi5fX2RhdGEpDQo+ICsNCj4gKyAgICBk ZWYgX19sZW5fXyhzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9fZGF0YSkN Cj4gKw0KPiArICAgIGRlZiBfX3N0cl9fKHNlbGYpOg0KPiArICAgICAgICByZXR1cm4gc3Ry KHNlbGYuX19kYXRhKQ0KPiArDQo+ICsgICAgZGVmIF9fcmVwcl9fKHNlbGYpOg0KPiArICAg ICAgICByZXR1cm4gcmVwcihzZWxmLl9fZGF0YSkNCj4gKw0KPiArICAgIGRlZiBfX2VxX18o c2VsZiwgb3RoZXIpOg0KPiArICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCBMaXN0UHJv eHkpOg0KPiArICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19kYXRhID09IG90aGVyLl9fZGF0 YQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBzZWxmLl9fZGF0YSA9PSBvdGhlcg0KPiArDQo+ ICsNCj4gK2NsYXNzIExpc3RQcm9wKFByb3BlcnR5KToNCj4gKyAgICAiIiINCj4gKyAgICBB IGxpc3Qgb2YgU0hBQ0wgcHJvcGVydGllcw0KPiArICAgICIiIg0KPiArDQo+ICsgICAgVkFM SURfVFlQRVMgPSAobGlzdCwgTGlzdFByb3h5KQ0KPiArDQo+ICsgICAgZGVmIF9faW5pdF9f KHNlbGYsIHByb3ApOg0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkNCj4gKyAgICAg ICAgc2VsZi5wcm9wID0gcHJvcA0KPiArDQo+ICsgICAgZGVmIGluaXQoc2VsZik6DQo+ICsg ICAgICAgIHJldHVybiBMaXN0UHJveHkoc2VsZi5wcm9wKQ0KPiArDQo+ICsgICAgZGVmIHZh bGlkYXRlKHNlbGYsIHZhbHVlKToNCj4gKyAgICAgICAgc3VwZXIoKS52YWxpZGF0ZSh2YWx1 ZSkNCj4gKw0KPiArICAgICAgICBmb3IgaSBpbiB2YWx1ZToNCj4gKyAgICAgICAgICAgIHNl bGYucHJvcC52YWxpZGF0ZShpKQ0KPiArDQo+ICsgICAgZGVmIHNldChzZWxmLCB2YWx1ZSk6 DQo+ICsgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIExpc3RQcm94eSk6DQo+ICsgICAg ICAgICAgICByZXR1cm4gdmFsdWUNCj4gKw0KPiArICAgICAgICByZXR1cm4gTGlzdFByb3h5 KHNlbGYucHJvcCwgW3NlbGYucHJvcC5zZXQoZCkgZm9yIGQgaW4gdmFsdWVdKQ0KPiArDQo+ ICsgICAgZGVmIGNoZWNrX21pbl9jb3VudChzZWxmLCB2YWx1ZSwgbWluX2NvdW50KToNCj4g KyAgICAgICAgY2hlY2tfdHlwZSh2YWx1ZSwgTGlzdFByb3h5KQ0KPiArICAgICAgICByZXR1 cm4gbGVuKHZhbHVlKSA+PSBtaW5fY291bnQNCj4gKw0KPiArICAgIGRlZiBjaGVja19tYXhf Y291bnQoc2VsZiwgdmFsdWUsIG1heF9jb3VudCk6DQo+ICsgICAgICAgIGNoZWNrX3R5cGUo dmFsdWUsIExpc3RQcm94eSkNCj4gKyAgICAgICAgcmV0dXJuIGxlbih2YWx1ZSkgPD0gbWF4 X2NvdW50DQo+ICsNCj4gKyAgICBkZWYgZWxpZGUoc2VsZiwgdmFsdWUpOg0KPiArICAgICAg ICBjaGVja190eXBlKHZhbHVlLCBMaXN0UHJveHkpDQo+ICsgICAgICAgIHJldHVybiBsZW4o dmFsdWUpID09IDANCj4gKw0KPiArICAgIGRlZiB3YWxrKHNlbGYsIHZhbHVlLCBjYWxsYmFj aywgcGF0aCk6DQo+ICsgICAgICAgIGNhbGxiYWNrKHZhbHVlLCBwYXRoKQ0KPiArICAgICAg ICBmb3IgaWR4LCB2IGluIGVudW1lcmF0ZSh2YWx1ZSk6DQo+ICsgICAgICAgICAgICBzZWxm LnByb3Aud2Fsayh2LCBjYWxsYmFjaywgcGF0aCArIFtmIlt7aWR4fV0iXSkNCj4gKw0KPiAr ICAgIGRlZiBpdGVyX29iamVjdHMoc2VsZiwgdmFsdWUsIHJlY3Vyc2l2ZSwgdmlzaXRlZCk6 DQo+ICsgICAgICAgIGZvciB2IGluIHZhbHVlOg0KPiArICAgICAgICAgICAgZm9yIGMgaW4g c2VsZi5wcm9wLml0ZXJfb2JqZWN0cyh2LCByZWN1cnNpdmUsIHZpc2l0ZWQpOg0KPiArICAg ICAgICAgICAgICAgIHlpZWxkIGMNCj4gKw0KPiArICAgIGRlZiBsaW5rX3Byb3Aoc2VsZiwg dmFsdWUsIG9iamVjdHNldCwgbWlzc2luZywgdmlzaXRlZCk6DQo+ICsgICAgICAgIGlmIGlz aW5zdGFuY2UodmFsdWUsIExpc3RQcm94eSk6DQo+ICsgICAgICAgICAgICBkYXRhID0gW3Nl bGYucHJvcC5saW5rX3Byb3Aodiwgb2JqZWN0c2V0LCBtaXNzaW5nLCB2aXNpdGVkKSBmb3Ig diBpbiB2YWx1ZV0NCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIGRhdGEgPSBb c2VsZi5wcm9wLmxpbmtfcHJvcCh2LCBvYmplY3RzZXQsIG1pc3NpbmcsIHZpc2l0ZWQpIGZv ciB2IGluIHZhbHVlXQ0KPiArDQo+ICsgICAgICAgIHJldHVybiBMaXN0UHJveHkoc2VsZi5w cm9wLCBkYXRhPWRhdGEpDQo+ICsNCj4gKyAgICBkZWYgZW5jb2RlKHNlbGYsIGVuY29kZXIs IHZhbHVlLCBzdGF0ZSk6DQo+ICsgICAgICAgIGNoZWNrX3R5cGUodmFsdWUsIExpc3RQcm94 eSkNCj4gKw0KPiArICAgICAgICB3aXRoIGVuY29kZXIud3JpdGVfbGlzdCgpIGFzIGxpc3Rf czoNCj4gKyAgICAgICAgICAgIGZvciB2IGluIHZhbHVlOg0KPiArICAgICAgICAgICAgICAg IHdpdGggbGlzdF9zLndyaXRlX2xpc3RfaXRlbSgpIGFzIGl0ZW1fczoNCj4gKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5wcm9wLmVuY29kZShpdGVtX3MsIHYsIHN0YXRlKQ0KPiArDQo+ ICsgICAgZGVmIGRlY29kZShzZWxmLCBkZWNvZGVyLCAqLCBvYmplY3RzZXQ9Tm9uZSk6DQo+ ICsgICAgICAgIGRhdGEgPSBbXQ0KPiArICAgICAgICBmb3IgdmFsX2QgaW4gZGVjb2Rlci5y ZWFkX2xpc3QoKToNCj4gKyAgICAgICAgICAgIHYgPSBzZWxmLnByb3AuZGVjb2RlKHZhbF9k LCBvYmplY3RzZXQ9b2JqZWN0c2V0KQ0KPiArICAgICAgICAgICAgc2VsZi5wcm9wLnZhbGlk YXRlKHYpDQo+ICsgICAgICAgICAgICBkYXRhLmFwcGVuZCh2KQ0KPiArDQo+ICsgICAgICAg IHJldHVybiBMaXN0UHJveHkoc2VsZi5wcm9wLCBkYXRhPWRhdGEpDQo+ICsNCj4gKw0KPiAr Y2xhc3MgRW51bVByb3AoUHJvcGVydHkpOg0KPiArICAgIFZBTElEX1RZUEVTID0gc3RyDQo+ ICsNCj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsdWVzLCAqLCBwYXR0ZXJuPU5vbmUp Og0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhdHRlcm49cGF0dGVybikNCj4gKyAg ICAgICAgc2VsZi52YWx1ZXMgPSB2YWx1ZXMNCj4gKw0KPiArICAgIGRlZiB2YWxpZGF0ZShz ZWxmLCB2YWx1ZSk6DQo+ICsgICAgICAgIHN1cGVyKCkudmFsaWRhdGUodmFsdWUpDQo+ICsN Cj4gKyAgICAgICAgdmFsaWRfdmFsdWVzID0gKGlyaSBmb3IgaXJpLCBfIGluIHNlbGYudmFs dWVzKQ0KPiArICAgICAgICBpZiB2YWx1ZSBub3QgaW4gdmFsaWRfdmFsdWVzOg0KPiArICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigNCj4gKyAgICAgICAgICAgICAgICBmIid7dmFs dWV9JyBpcyBub3QgYSB2YWxpZCB2YWx1ZS4gQ2hvb3NlIG9uZSBvZiB7JyAnLmpvaW4odmFs aWRfdmFsdWVzKX0iDQo+ICsgICAgICAgICAgICApDQo+ICsNCj4gKyAgICBkZWYgZW5jb2Rl KHNlbGYsIGVuY29kZXIsIHZhbHVlLCBzdGF0ZSk6DQo+ICsgICAgICAgIGZvciBpcmksIGNv bXBhY3QgaW4gc2VsZi52YWx1ZXM6DQo+ICsgICAgICAgICAgICBpZiBpcmkgPT0gdmFsdWU6 DQo+ICsgICAgICAgICAgICAgICAgZW5jb2Rlci53cml0ZV9lbnVtKHZhbHVlLCBzZWxmLCBj b21wYWN0KQ0KPiArICAgICAgICAgICAgICAgIHJldHVybg0KPiArDQo+ICsgICAgICAgIGVu Y29kZXIud3JpdGVfZW51bSh2YWx1ZSwgc2VsZikNCj4gKw0KPiArICAgIGRlZiBkZWNvZGUo c2VsZiwgZGVjb2RlciwgKiwgb2JqZWN0c2V0PU5vbmUpOg0KPiArICAgICAgICB2ID0gZGVj b2Rlci5yZWFkX2VudW0oc2VsZikNCj4gKyAgICAgICAgZm9yIGlyaSwgY29tcGFjdCBpbiBz ZWxmLnZhbHVlczoNCj4gKyAgICAgICAgICAgIGlmIHYgPT0gY29tcGFjdDoNCj4gKyAgICAg ICAgICAgICAgICByZXR1cm4gaXJpDQo+ICsgICAgICAgIHJldHVybiB2DQo+ICsNCj4gKw0K PiArY2xhc3MgTm9kZUtpbmQoRW51bSk6DQo+ICsgICAgQmxhbmtOb2RlID0gMQ0KPiArICAg IElSSSA9IDINCj4gKyAgICBCbGFua05vZGVPcklSSSA9IDMNCj4gKw0KPiArDQo+ICtkZWYg aXNfSVJJKHMpOg0KPiArICAgIGlmIG5vdCBpc2luc3RhbmNlKHMsIHN0cik6DQo+ICsgICAg ICAgIHJldHVybiBGYWxzZQ0KPiArICAgIGlmIHMuc3RhcnRzd2l0aCgiXzoiKToNCj4gKyAg ICAgICAgcmV0dXJuIEZhbHNlDQo+ICsgICAgaWYgIjoiIG5vdCBpbiBzOg0KPiArICAgICAg ICByZXR1cm4gRmFsc2UNCj4gKyAgICByZXR1cm4gVHJ1ZQ0KPiArDQo+ICsNCj4gK2RlZiBp c19ibGFua19ub2RlKHMpOg0KPiArICAgIGlmIG5vdCBpc2luc3RhbmNlKHMsIHN0cik6DQo+ ICsgICAgICAgIHJldHVybiBGYWxzZQ0KPiArICAgIGlmIG5vdCBzLnN0YXJ0c3dpdGgoIl86 Iik6DQo+ICsgICAgICAgIHJldHVybiBGYWxzZQ0KPiArICAgIHJldHVybiBUcnVlDQo+ICsN Cj4gKw0KPiArZGVmIHJlZ2lzdGVyKHR5cGVfaXJpLCAqLCBjb21wYWN0X3R5cGU9Tm9uZSwg YWJzdHJhY3Q9RmFsc2UpOg0KPiArICAgIGRlZiBhZGRfY2xhc3Moa2V5LCBjKToNCj4gKyAg ICAgICAgYXNzZXJ0ICgNCj4gKyAgICAgICAgICAgIGtleSBub3QgaW4gU0hBQ0xPYmplY3Qu Q0xBU1NFUw0KPiArICAgICAgICApLCBmIntrZXl9IGFscmVhZHkgcmVnaXN0ZXJlZCB0byB7 U0hBQ0xPYmplY3QuQ0xBU1NFU1trZXldLl9fbmFtZV9ffSINCj4gKyAgICAgICAgU0hBQ0xP YmplY3QuQ0xBU1NFU1trZXldID0gYw0KPiArDQo+ICsgICAgZGVmIGRlY29yYXRvcihjKToN Cj4gKyAgICAgICAgZ2xvYmFsIE5BTUVEX0lORElWSURVQUxTDQo+ICsNCj4gKyAgICAgICAg YXNzZXJ0IGlzc3ViY2xhc3MoDQo+ICsgICAgICAgICAgICBjLCBTSEFDTE9iamVjdA0KPiAr ICAgICAgICApLCBmIntjLl9fbmFtZV9ffSBpcyBub3QgZGVyaXZlZCBmcm9tIFNIQUNMT2Jq ZWN0Ig0KPiArDQo+ICsgICAgICAgIGMuX09CSl9UWVBFID0gdHlwZV9pcmkNCj4gKyAgICAg ICAgYy5JU19BQlNUUkFDVCA9IGFic3RyYWN0DQo+ICsgICAgICAgIGFkZF9jbGFzcyh0eXBl X2lyaSwgYykNCj4gKw0KPiArICAgICAgICBjLl9PQkpfQ09NUEFDVF9UWVBFID0gY29tcGFj dF90eXBlDQo+ICsgICAgICAgIGlmIGNvbXBhY3RfdHlwZToNCj4gKyAgICAgICAgICAgIGFk ZF9jbGFzcyhjb21wYWN0X3R5cGUsIGMpDQo+ICsNCj4gKyAgICAgICAgTkFNRURfSU5ESVZJ RFVBTFMgfD0gc2V0KGMuTkFNRURfSU5ESVZJRFVBTFMudmFsdWVzKCkpDQo+ICsNCj4gKyAg ICAgICAgIyBSZWdpc3RyYXRpb24gaXMgZGVmZXJyZWQgdW50aWwgdGhlIGZpcnN0IGluc3Rh bmNlIG9mIGNsYXNzIGlzIGNyZWF0ZWQNCj4gKyAgICAgICAgIyBzbyB0aGF0IGl0IGhhcyBh Y2Nlc3MgdG8gYW55IG90aGVyIGRlZmluZWQgY2xhc3MNCj4gKyAgICAgICAgYy5fTkVFRFNf UkVHID0gVHJ1ZQ0KPiArICAgICAgICByZXR1cm4gYw0KPiArDQo+ICsgICAgcmV0dXJuIGRl Y29yYXRvcg0KPiArDQo+ICsNCj4gK3JlZ2lzdGVyX2xvY2sgPSB0aHJlYWRpbmcuTG9jaygp DQo+ICtOQU1FRF9JTkRJVklEVUFMUyA9IHNldCgpDQo+ICsNCj4gKw0KPiArQGZ1bmN0b29s cy50b3RhbF9vcmRlcmluZw0KPiArY2xhc3MgU0hBQ0xPYmplY3Qob2JqZWN0KToNCj4gKyAg ICBDTEFTU0VTID0ge30NCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVP cklSSQ0KPiArICAgIElEX0FMSUFTID0gTm9uZQ0KPiArICAgIElTX0FCU1RSQUNUID0gVHJ1 ZQ0KPiArDQo+ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToNCj4gKyAgICAg ICAgaWYgc2VsZi5faXNfYWJzdHJhY3QoKToNCj4gKyAgICAgICAgICAgIHJhaXNlIE5vdElt cGxlbWVudGVkRXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgZiJ7c2VsZi5fX2NsYXNzX18u X19uYW1lX199IGlzIGFic3RyYWN0IGFuZCBjYW5ub3QgYmUgaW1wbGVtZW50ZWQiDQo+ICsg ICAgICAgICAgICApDQo+ICsNCj4gKyAgICAgICAgd2l0aCByZWdpc3Rlcl9sb2NrOg0KPiAr ICAgICAgICAgICAgY2xzID0gc2VsZi5fX2NsYXNzX18NCj4gKyAgICAgICAgICAgIGlmIGNs cy5fTkVFRFNfUkVHOg0KPiArICAgICAgICAgICAgICAgIGNscy5fT0JKX1BST1BFUlRJRVMg PSB7fQ0KPiArICAgICAgICAgICAgICAgIGNscy5fT0JKX0lSSVMgPSB7fQ0KPiArICAgICAg ICAgICAgICAgIGNscy5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAgICAgICAgIGNs cy5fTkVFRFNfUkVHID0gRmFsc2UNCj4gKw0KPiArICAgICAgICBzZWxmLl9fZGljdF9fWyJf b2JqX2RhdGEiXSA9IHt9DQo+ICsgICAgICAgIHNlbGYuX19kaWN0X19bIl9vYmpfbWV0YWRh dGEiXSA9IHt9DQo+ICsNCj4gKyAgICAgICAgZm9yIGlyaSwgcHJvcCwgXywgXywgXywgXyBp biBzZWxmLl9faXRlcl9wcm9wcygpOg0KPiArICAgICAgICAgICAgc2VsZi5fX2RpY3RfX1si X29ial9kYXRhIl1baXJpXSA9IHByb3AuaW5pdCgpDQo+ICsNCj4gKyAgICAgICAgZm9yIGss IHYgaW4ga3dhcmdzLml0ZW1zKCk6DQo+ICsgICAgICAgICAgICBzZXRhdHRyKHNlbGYsIGss IHYpDQo+ICsNCj4gKyAgICBkZWYgX2lzX2Fic3RyYWN0KHNlbGYpOg0KPiArICAgICAgICBy ZXR1cm4gc2VsZi5fX2NsYXNzX18uSVNfQUJTVFJBQ1QNCj4gKw0KPiArICAgIEBjbGFzc21l dGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgY2xz Ll9hZGRfcHJvcGVydHkoIl9pZCIsIFN0cmluZ1Byb3AoKSwgaXJpPSJAaWQiKQ0KPiArDQo+ ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVmIF9hZGRfcHJvcGVydHkoDQo+ICsgICAg ICAgIGNscywNCj4gKyAgICAgICAgcHluYW1lLA0KPiArICAgICAgICBwcm9wLA0KPiArICAg ICAgICBpcmksDQo+ICsgICAgICAgIG1pbl9jb3VudD1Ob25lLA0KPiArICAgICAgICBtYXhf Y291bnQ9Tm9uZSwNCj4gKyAgICAgICAgY29tcGFjdD1Ob25lLA0KPiArICAgICk6DQo+ICsg ICAgICAgIGlmIHB5bmFtZSBpbiBjbHMuX09CSl9JUklTOg0KPiArICAgICAgICAgICAgcmFp c2UgS2V5RXJyb3IoZiIne3B5bmFtZX0nIGlzIGFscmVhZHkgZGVmaW5lZCBmb3IgJ3tjbHMu X19uYW1lX199JyIpDQo+ICsgICAgICAgIGlmIGlyaSBpbiBjbHMuX09CSl9QUk9QRVJUSUVT Og0KPiArICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoZiIne2lyaX0nIGlzIGFscmVhZHkg ZGVmaW5lZCBmb3IgJ3tjbHMuX19uYW1lX199JyIpDQo+ICsNCj4gKyAgICAgICAgd2hpbGUg aGFzYXR0cihjbHMsIHB5bmFtZSk6DQo+ICsgICAgICAgICAgICBweW5hbWUgPSBweW5hbWUg KyAiXyINCj4gKw0KPiArICAgICAgICBweW5hbWUgPSBzeXMuaW50ZXJuKHB5bmFtZSkNCj4g KyAgICAgICAgaXJpID0gc3lzLmludGVybihpcmkpDQo+ICsNCj4gKyAgICAgICAgY2xzLl9P QkpfSVJJU1tweW5hbWVdID0gaXJpDQo+ICsgICAgICAgIGNscy5fT0JKX1BST1BFUlRJRVNb aXJpXSA9IChwcm9wLCBtaW5fY291bnQsIG1heF9jb3VudCwgcHluYW1lLCBjb21wYWN0KQ0K PiArDQo+ICsgICAgZGVmIF9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKToNCj4gKyAg ICAgICAgaWYgbmFtZSA9PSBzZWxmLklEX0FMSUFTOg0KPiArICAgICAgICAgICAgc2VsZlsi QGlkIl0gPSB2YWx1ZQ0KPiArICAgICAgICAgICAgcmV0dXJuDQo+ICsNCj4gKyAgICAgICAg dHJ5Og0KPiArICAgICAgICAgICAgaXJpID0gc2VsZi5fT0JKX0lSSVNbbmFtZV0NCj4gKyAg ICAgICAgICAgIHNlbGZbaXJpXSA9IHZhbHVlDQo+ICsgICAgICAgIGV4Y2VwdCBLZXlFcnJv cjoNCj4gKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKA0KPiArICAgICAgICAg ICAgICAgIGYiJ3tuYW1lfScgaXMgbm90IGEgdmFsaWQgcHJvcGVydHkgb2Yge3NlbGYuX19j bGFzc19fLl9fbmFtZV9ffSINCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgIGRlZiBf X2dldGF0dHJfXyhzZWxmLCBuYW1lKToNCj4gKyAgICAgICAgaWYgbmFtZSBpbiBzZWxmLl9P QkpfSVJJUzoNCj4gKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fZGljdF9fWyJfb2JqX2Rh dGEiXVtzZWxmLl9PQkpfSVJJU1tuYW1lXV0NCj4gKw0KPiArICAgICAgICBpZiBuYW1lID09 IHNlbGYuSURfQUxJQVM6DQo+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2RpY3RfX1si X29ial9kYXRhIl1bIkBpZCJdDQo+ICsNCj4gKyAgICAgICAgaWYgbmFtZSA9PSAiX21ldGFk YXRhIjoNCj4gKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fZGljdF9fWyJfb2JqX21ldGFk YXRhIl0NCj4gKw0KPiArICAgICAgICBpZiBuYW1lID09ICJfSVJJIjoNCj4gKyAgICAgICAg ICAgIHJldHVybiBzZWxmLl9PQkpfSVJJUw0KPiArDQo+ICsgICAgICAgIGlmIG5hbWUgPT0g IlRZUEUiOg0KPiArICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fLl9PQkpfVFlQ RQ0KPiArDQo+ICsgICAgICAgIGlmIG5hbWUgPT0gIkNPTVBBQ1RfVFlQRSI6DQo+ICsgICAg ICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18uX09CSl9DT01QQUNUX1RZUEUNCj4gKw0K PiArICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigNCj4gKyAgICAgICAgICAgIGYiJ3tu YW1lfScgaXMgbm90IGEgdmFsaWQgcHJvcGVydHkgb2Yge3NlbGYuX19jbGFzc19fLl9fbmFt ZV9ffSINCj4gKyAgICAgICAgKQ0KPiArDQo+ICsgICAgZGVmIF9fZGVsYXR0cl9fKHNlbGYs IG5hbWUpOg0KPiArICAgICAgICBpZiBuYW1lID09IHNlbGYuSURfQUxJQVM6DQo+ICsgICAg ICAgICAgICBkZWwgc2VsZlsiQGlkIl0NCj4gKyAgICAgICAgICAgIHJldHVybg0KPiArDQo+ ICsgICAgICAgIHRyeToNCj4gKyAgICAgICAgICAgIGlyaSA9IHNlbGYuX09CSl9JUklTW25h bWVdDQo+ICsgICAgICAgICAgICBkZWwgc2VsZltpcmldDQo+ICsgICAgICAgIGV4Y2VwdCBL ZXlFcnJvcjoNCj4gKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKA0KPiArICAg ICAgICAgICAgICAgIGYiJ3tuYW1lfScgaXMgbm90IGEgdmFsaWQgcHJvcGVydHkgb2Yge3Nl bGYuX19jbGFzc19fLl9fbmFtZV9ffSINCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAg IGRlZiBfX2dldF9wcm9wKHNlbGYsIGlyaSk6DQo+ICsgICAgICAgIGlmIGlyaSBub3QgaW4g c2VsZi5fT0JKX1BST1BFUlRJRVM6DQo+ICsgICAgICAgICAgICByYWlzZSBLZXlFcnJvcigN Cj4gKyAgICAgICAgICAgICAgICBmIid7aXJpfScgaXMgbm90IGEgdmFsaWQgcHJvcGVydHkg b2Yge3NlbGYuX19jbGFzc19fLl9fbmFtZV9ffSINCj4gKyAgICAgICAgICAgICkNCj4gKw0K PiArICAgICAgICByZXR1cm4gc2VsZi5fT0JKX1BST1BFUlRJRVNbaXJpXQ0KPiArDQo+ICsg ICAgZGVmIF9faXRlcl9wcm9wcyhzZWxmKToNCj4gKyAgICAgICAgZm9yIGlyaSwgdiBpbiBz ZWxmLl9PQkpfUFJPUEVSVElFUy5pdGVtcygpOg0KPiArICAgICAgICAgICAgeWllbGQgaXJp LCAqdg0KPiArDQo+ICsgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGlyaSk6DQo+ICsgICAg ICAgIHJldHVybiBzZWxmLl9fZGljdF9fWyJfb2JqX2RhdGEiXVtpcmldDQo+ICsNCj4gKyAg ICBkZWYgX19zZXRpdGVtX18oc2VsZiwgaXJpLCB2YWx1ZSk6DQo+ICsgICAgICAgIGlmIGly aSA9PSAiQGlkIjoNCj4gKyAgICAgICAgICAgIGlmIHNlbGYuTk9ERV9LSU5EID09IE5vZGVL aW5kLkJsYW5rTm9kZToNCj4gKyAgICAgICAgICAgICAgICBpZiBub3QgaXNfYmxhbmtfbm9k ZSh2YWx1ZSk6DQo+ICsgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICBmIntzZWxmLl9fY2xhc3NfXy5fX25hbWVfX30g KHtpZChzZWxmKX0pIGNhbiBvbmx5IGhhdmUgbG9jYWwgcmVmZXJlbmNlLiBQcm9wZXJ0eSAn e2lyaX0nIGNhbm5vdCBiZSBzZXQgdG8gJ3t2YWx1ZX0nIGFuZCBtdXN0IHN0YXJ0IHdpdGgg J186JyINCj4gKyAgICAgICAgICAgICAgICAgICAgKQ0KPiArICAgICAgICAgICAgZWxpZiBz ZWxmLk5PREVfS0lORCA9PSBOb2RlS2luZC5JUkk6DQo+ICsgICAgICAgICAgICAgICAgaWYg bm90IGlzX0lSSSh2YWx1ZSk6DQo+ICsgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmIntzZWxmLl9fY2xhc3NfXy5f X25hbWVfX30gKHtpZChzZWxmKX0pIGNhbiBvbmx5IGhhdmUgYW4gSVJJIHZhbHVlLiBQcm9w ZXJ0eSAne2lyaX0nIGNhbm5vdCBiZSBzZXQgdG8gJ3t2YWx1ZX0nIg0KPiArICAgICAgICAg ICAgICAgICAgICApDQo+ICsgICAgICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgICAg IGlmIG5vdCBpc19ibGFua19ub2RlKHZhbHVlKSBhbmQgbm90IGlzX0lSSSh2YWx1ZSk6DQo+ ICsgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBmIntzZWxmLl9fY2xhc3NfXy5fX25hbWVfX30gKHtpZChzZWxmKX0p IEhhcyBpbnZhbGlkIFByb3BlcnR5ICd7aXJpfScgJ3t2YWx1ZX0nLiBNdXN0IGJlIGEgYmxh bmsgbm9kZSBvciBJUkkiDQo+ICsgICAgICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAg ICAgICBwcm9wLCBfLCBfLCBfLCBfID0gc2VsZi5fX2dldF9wcm9wKGlyaSkNCj4gKyAgICAg ICAgcHJvcC52YWxpZGF0ZSh2YWx1ZSkNCj4gKyAgICAgICAgc2VsZi5fX2RpY3RfX1siX29i al9kYXRhIl1baXJpXSA9IHByb3Auc2V0KHZhbHVlKQ0KPiArDQo+ICsgICAgZGVmIF9fZGVs aXRlbV9fKHNlbGYsIGlyaSk6DQo+ICsgICAgICAgIHByb3AsIF8sIF8sIF8sIF8gPSBzZWxm Ll9fZ2V0X3Byb3AoaXJpKQ0KPiArICAgICAgICBzZWxmLl9fZGljdF9fWyJfb2JqX2RhdGEi XVtpcmldID0gcHJvcC5pbml0KCkNCj4gKw0KPiArICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToN Cj4gKyAgICAgICAgcmV0dXJuIHNlbGYuX09CSl9QUk9QRVJUSUVTLmtleXMoKQ0KPiArDQo+ ICsgICAgZGVmIHdhbGsoc2VsZiwgY2FsbGJhY2ssIHBhdGg9Tm9uZSk6DQo+ICsgICAgICAg ICIiIg0KPiArICAgICAgICBXYWxrIG9iamVjdCB0cmVlLCBpbnZva2luZyB0aGUgY2FsbGJh Y2sgZm9yIGVhY2ggaXRlbQ0KPiArDQo+ICsgICAgICAgIENhbGxiYWNrIGhhcyB0aGUgZm9y bToNCj4gKw0KPiArICAgICAgICBkZWYgY2FsbGJhY2sob2JqZWN0LCBwYXRoKToNCj4gKyAg ICAgICAgIiIiDQo+ICsgICAgICAgIGlmIHBhdGggaXMgTm9uZToNCj4gKyAgICAgICAgICAg IHBhdGggPSBbIi4iXQ0KPiArDQo+ICsgICAgICAgIGlmIGNhbGxiYWNrKHNlbGYsIHBhdGgp Og0KPiArICAgICAgICAgICAgZm9yIGlyaSwgcHJvcCwgXywgXywgXywgXyBpbiBzZWxmLl9f aXRlcl9wcm9wcygpOg0KPiArICAgICAgICAgICAgICAgIHByb3Aud2FsayhzZWxmLl9fZGlj dF9fWyJfb2JqX2RhdGEiXVtpcmldLCBjYWxsYmFjaywgcGF0aCArIFtmIi57aXJpfSJdKQ0K PiArDQo+ICsgICAgZGVmIHByb3BlcnR5X2tleXMoc2VsZik6DQo+ICsgICAgICAgIGZvciBp cmksIF8sIF8sIF8sIHB5bmFtZSwgY29tcGFjdCBpbiBzZWxmLl9faXRlcl9wcm9wcygpOg0K PiArICAgICAgICAgICAgaWYgaXJpID09ICJAaWQiOg0KPiArICAgICAgICAgICAgICAgIGNv bXBhY3QgPSBzZWxmLklEX0FMSUFTDQo+ICsgICAgICAgICAgICB5aWVsZCBweW5hbWUsIGly aSwgY29tcGFjdA0KPiArDQo+ICsgICAgZGVmIGl0ZXJfb2JqZWN0cyhzZWxmLCAqLCByZWN1 cnNpdmU9RmFsc2UsIHZpc2l0ZWQ9Tm9uZSk6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAg ICBJdGVyYXRlIG9mIGFsbCBvYmplY3RzIHRoYXQgYXJlIGEgY2hpbGQgb2YgdGhpcyBvbmUN Cj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIGlmIHZpc2l0ZWQgaXMgTm9uZToNCj4gKyAg ICAgICAgICAgIHZpc2l0ZWQgPSBzZXQoKQ0KPiArDQo+ICsgICAgICAgIGZvciBpcmksIHBy b3AsIF8sIF8sIF8sIF8gaW4gc2VsZi5fX2l0ZXJfcHJvcHMoKToNCj4gKyAgICAgICAgICAg IGZvciBjIGluIHByb3AuaXRlcl9vYmplY3RzKA0KPiArICAgICAgICAgICAgICAgIHNlbGYu X19kaWN0X19bIl9vYmpfZGF0YSJdW2lyaV0sIHJlY3Vyc2l2ZT1yZWN1cnNpdmUsIHZpc2l0 ZWQ9dmlzaXRlZA0KPiArICAgICAgICAgICAgKToNCj4gKyAgICAgICAgICAgICAgICB5aWVs ZCBjDQo+ICsNCj4gKyAgICBkZWYgZW5jb2RlKHNlbGYsIGVuY29kZXIsIHN0YXRlKToNCj4g KyAgICAgICAgaWRuYW1lID0gc2VsZi5JRF9BTElBUyBvciBzZWxmLl9PQkpfSVJJU1siX2lk Il0NCj4gKyAgICAgICAgaWYgbm90IHNlbGYuX2lkIGFuZCBzZWxmLk5PREVfS0lORCA9PSBO b2RlS2luZC5JUkk6DQo+ICsgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKA0KPiArICAg ICAgICAgICAgICAgIGYie3NlbGYuX19jbGFzc19fLl9fbmFtZV9ffSAoe2lkKHNlbGYpfSkg bXVzdCBoYXZlIGEgSVJJIGZvciBwcm9wZXJ0eSAne2lkbmFtZX0nIg0KPiArICAgICAgICAg ICAgKQ0KPiArDQo+ICsgICAgICAgIGlmIHN0YXRlLmlzX3dyaXR0ZW4oc2VsZik6DQo+ICsg ICAgICAgICAgICBlbmNvZGVyLndyaXRlX2lyaShzdGF0ZS5nZXRfb2JqZWN0X2lkKHNlbGYp KQ0KPiArICAgICAgICAgICAgcmV0dXJuDQo+ICsNCj4gKyAgICAgICAgc3RhdGUuYWRkX3dy aXR0ZW4oc2VsZikNCj4gKw0KPiArICAgICAgICB3aXRoIGVuY29kZXIud3JpdGVfb2JqZWN0 KA0KPiArICAgICAgICAgICAgc2VsZiwNCj4gKyAgICAgICAgICAgIHN0YXRlLmdldF9vYmpl Y3RfaWQoc2VsZiksDQo+ICsgICAgICAgICAgICBib29sKHNlbGYuX2lkKSBvciBzdGF0ZS5p c19yZWZlZChzZWxmKSwNCj4gKyAgICAgICAgKSBhcyBvYmpfczoNCj4gKyAgICAgICAgICAg IHNlbGYuX2VuY29kZV9wcm9wZXJ0aWVzKG9ial9zLCBzdGF0ZSkNCj4gKw0KPiArICAgIGRl ZiBfZW5jb2RlX3Byb3BlcnRpZXMoc2VsZiwgZW5jb2Rlciwgc3RhdGUpOg0KPiArICAgICAg ICBmb3IgaXJpLCBwcm9wLCBtaW5fY291bnQsIG1heF9jb3VudCwgcHluYW1lLCBjb21wYWN0 IGluIHNlbGYuX19pdGVyX3Byb3BzKCk6DQo+ICsgICAgICAgICAgICB2YWx1ZSA9IHNlbGYu X19kaWN0X19bIl9vYmpfZGF0YSJdW2lyaV0NCj4gKyAgICAgICAgICAgIGlmIHByb3AuZWxp ZGUodmFsdWUpOg0KPiArICAgICAgICAgICAgICAgIGlmIG1pbl9jb3VudDoNCj4gKyAgICAg ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGYiUHJvcGVydHkgJ3tweW5hbWV9JyBpbiB7c2VsZi5fX2NsYXNzX18uX19uYW1l X199ICh7aWQoc2VsZil9KSBpcyByZXF1aXJlZCAoY3VycmVudGx5IHt2YWx1ZSFyfSkiDQo+ ICsgICAgICAgICAgICAgICAgICAgICkNCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0K PiArDQo+ICsgICAgICAgICAgICBpZiBtaW5fY291bnQgaXMgbm90IE5vbmU6DQo+ICsgICAg ICAgICAgICAgICAgaWYgbm90IHByb3AuY2hlY2tfbWluX2NvdW50KHZhbHVlLCBtaW5fY291 bnQpOg0KPiArICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgZiJQcm9wZXJ0eSAne3B5bmFtZX0nIGluIHtzZWxmLl9f Y2xhc3NfXy5fX25hbWVfX30gKHtpZChzZWxmKX0pIHJlcXVpcmVzIGEgbWluaW11bSBvZiB7 bWluX2NvdW50fSBlbGVtZW50cyINCj4gKyAgICAgICAgICAgICAgICAgICAgKQ0KPiArDQo+ ICsgICAgICAgICAgICBpZiBtYXhfY291bnQgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAg ICAgICAgaWYgbm90IHByb3AuY2hlY2tfbWF4X2NvdW50KHZhbHVlLCBtYXhfY291bnQpOg0K PiArICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgZiJQcm9wZXJ0eSAne3B5bmFtZX0nIGluIHtzZWxmLl9fY2xhc3Nf Xy5fX25hbWVfX30gKHtpZChzZWxmKX0pIHJlcXVpcmVzIGEgbWF4aW11bSBvZiB7bWF4X2Nv dW50fSBlbGVtZW50cyINCj4gKyAgICAgICAgICAgICAgICAgICAgKQ0KPiArDQo+ICsgICAg ICAgICAgICBpZiBpcmkgPT0gc2VsZi5fT0JKX0lSSVNbIl9pZCJdOg0KPiArICAgICAgICAg ICAgICAgIGNvbnRpbnVlDQo+ICsNCj4gKyAgICAgICAgICAgIHdpdGggZW5jb2Rlci53cml0 ZV9wcm9wZXJ0eShpcmksIGNvbXBhY3QpIGFzIHByb3BfczoNCj4gKyAgICAgICAgICAgICAg ICBwcm9wLmVuY29kZShwcm9wX3MsIHZhbHVlLCBzdGF0ZSkNCj4gKw0KPiArICAgIEBjbGFz c21ldGhvZA0KPiArICAgIGRlZiBfbWFrZV9vYmplY3QoY2xzLCB0eXApOg0KPiArICAgICAg ICBpZiB0eXAgbm90IGluIGNscy5DTEFTU0VTOg0KPiArICAgICAgICAgICAgcmFpc2UgVHlw ZUVycm9yKGYiVW5rbm93biB0eXBlIHt0eXB9IikNCj4gKw0KPiArICAgICAgICByZXR1cm4g Y2xzLkNMQVNTRVNbdHlwXSgpDQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBk ZWYgZGVjb2RlKGNscywgZGVjb2RlciwgKiwgb2JqZWN0c2V0PU5vbmUpOg0KPiArICAgICAg ICB0eXAsIG9ial9kID0gZGVjb2Rlci5yZWFkX29iamVjdCgpDQo+ICsgICAgICAgIGlmIHR5 cCBpcyBOb25lOg0KPiArICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJVbmFibGUgdG8g ZGV0ZXJtaW5lIHR5cGUgZm9yIG9iamVjdCIpDQo+ICsNCj4gKyAgICAgICAgb2JqID0gY2xz Ll9tYWtlX29iamVjdCh0eXApDQo+ICsgICAgICAgIGZvciBrZXkgaW4gKG9iai5JRF9BTElB Uywgb2JqLl9PQkpfSVJJU1siX2lkIl0pOg0KPiArICAgICAgICAgICAgd2l0aCBvYmpfZC5y ZWFkX3Byb3BlcnR5KGtleSkgYXMgcHJvcF9kOg0KPiArICAgICAgICAgICAgICAgIGlmIHBy b3BfZCBpcyBOb25lOg0KPiArICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiArDQo+ ICsgICAgICAgICAgICAgICAgX2lkID0gcHJvcF9kLnJlYWRfaXJpKCkNCj4gKyAgICAgICAg ICAgICAgICBpZiBfaWQgaXMgTm9uZToNCj4gKyAgICAgICAgICAgICAgICAgICAgcmFpc2Ug VHlwZUVycm9yKGYiT2JqZWN0IGtleSAne2tleX0nIGlzIHRoZSB3cm9uZyB0eXBlIikNCj4g Kw0KPiArICAgICAgICAgICAgICAgIG9iai5faWQgPSBfaWQNCj4gKyAgICAgICAgICAgICAg ICBicmVhaw0KPiArDQo+ICsgICAgICAgIGlmIG9iai5OT0RFX0tJTkQgPT0gTm9kZUtpbmQu SVJJIGFuZCBub3Qgb2JqLl9pZDoNCj4gKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io Ik9iamVjdCBpcyBtaXNzaW5nIHJlcXVpcmVkIElSSSIpDQo+ICsNCj4gKyAgICAgICAgaWYg b2JqZWN0c2V0IGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgaWYgb2JqLl9pZDoNCj4g KyAgICAgICAgICAgICAgICB2ID0gb2JqZWN0c2V0LmZpbmRfYnlfaWQoX2lkKQ0KPiArICAg ICAgICAgICAgICAgIGlmIHYgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICAgICAgICAg IHJldHVybiB2DQo+ICsNCj4gKyAgICAgICAgb2JqLl9kZWNvZGVfcHJvcGVydGllcyhvYmpf ZCwgb2JqZWN0c2V0PW9iamVjdHNldCkNCj4gKw0KPiArICAgICAgICBpZiBvYmplY3RzZXQg aXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICBvYmplY3RzZXQuYWRkX2luZGV4KG9iaikN Cj4gKyAgICAgICAgcmV0dXJuIG9iag0KPiArDQo+ICsgICAgZGVmIF9kZWNvZGVfcHJvcGVy dGllcyhzZWxmLCBkZWNvZGVyLCBvYmplY3RzZXQ9Tm9uZSk6DQo+ICsgICAgICAgIGZvciBr ZXkgaW4gZGVjb2Rlci5vYmplY3Rfa2V5cygpOg0KPiArICAgICAgICAgICAgaWYgbm90IHNl bGYuX2RlY29kZV9wcm9wKGRlY29kZXIsIGtleSwgb2JqZWN0c2V0PW9iamVjdHNldCk6DQo+ ICsgICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoZiJVbmtub3duIHByb3BlcnR5ICd7 a2V5fSciKQ0KPiArDQo+ICsgICAgZGVmIF9kZWNvZGVfcHJvcChzZWxmLCBkZWNvZGVyLCBr ZXksIG9iamVjdHNldD1Ob25lKToNCj4gKyAgICAgICAgaWYga2V5IGluIChzZWxmLl9PQkpf SVJJU1siX2lkIl0sIHNlbGYuSURfQUxJQVMpOg0KPiArICAgICAgICAgICAgcmV0dXJuIFRy dWUNCj4gKw0KPiArICAgICAgICBmb3IgaXJpLCBwcm9wLCBfLCBfLCBfLCBjb21wYWN0IGlu IHNlbGYuX19pdGVyX3Byb3BzKCk6DQo+ICsgICAgICAgICAgICBpZiBjb21wYWN0ID09IGtl eToNCj4gKyAgICAgICAgICAgICAgICByZWFkX2tleSA9IGNvbXBhY3QNCj4gKyAgICAgICAg ICAgIGVsaWYgaXJpID09IGtleToNCj4gKyAgICAgICAgICAgICAgICByZWFkX2tleSA9IGly aQ0KPiArICAgICAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0K PiArDQo+ICsgICAgICAgICAgICB3aXRoIGRlY29kZXIucmVhZF9wcm9wZXJ0eShyZWFkX2tl eSkgYXMgcHJvcF9kOg0KPiArICAgICAgICAgICAgICAgIHYgPSBwcm9wLmRlY29kZShwcm9w X2QsIG9iamVjdHNldD1vYmplY3RzZXQpDQo+ICsgICAgICAgICAgICAgICAgcHJvcC52YWxp ZGF0ZSh2KQ0KPiArICAgICAgICAgICAgICAgIHNlbGYuX19kaWN0X19bIl9vYmpfZGF0YSJd W2lyaV0gPSB2DQo+ICsgICAgICAgICAgICByZXR1cm4gVHJ1ZQ0KPiArDQo+ICsgICAgICAg IHJldHVybiBGYWxzZQ0KPiArDQo+ICsgICAgZGVmIGxpbmtfaGVscGVyKHNlbGYsIG9iamVj dHNldCwgbWlzc2luZywgdmlzaXRlZCk6DQo+ICsgICAgICAgIGlmIHNlbGYgaW4gdmlzaXRl ZDoNCj4gKyAgICAgICAgICAgIHJldHVybg0KPiArDQo+ICsgICAgICAgIHZpc2l0ZWQuYWRk KHNlbGYpDQo+ICsNCj4gKyAgICAgICAgZm9yIGlyaSwgcHJvcCwgXywgXywgXywgXyBpbiBz ZWxmLl9faXRlcl9wcm9wcygpOg0KPiArICAgICAgICAgICAgc2VsZi5fX2RpY3RfX1siX29i al9kYXRhIl1baXJpXSA9IHByb3AubGlua19wcm9wKA0KPiArICAgICAgICAgICAgICAgIHNl bGYuX19kaWN0X19bIl9vYmpfZGF0YSJdW2lyaV0sDQo+ICsgICAgICAgICAgICAgICAgb2Jq ZWN0c2V0LA0KPiArICAgICAgICAgICAgICAgIG1pc3NpbmcsDQo+ICsgICAgICAgICAgICAg ICAgdmlzaXRlZCwNCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgIGRlZiBfX3N0cl9f KHNlbGYpOg0KPiArICAgICAgICBwYXJ0cyA9IFsNCj4gKyAgICAgICAgICAgIGYie3NlbGYu X19jbGFzc19fLl9fbmFtZV9ffSgiLA0KPiArICAgICAgICBdDQo+ICsgICAgICAgIGlmIHNl bGYuX2lkOg0KPiArICAgICAgICAgICAgcGFydHMuYXBwZW5kKGYiQGlkPSd7c2VsZi5faWR9 JyIpDQo+ICsgICAgICAgIHBhcnRzLmFwcGVuZCgiKSIpDQo+ICsgICAgICAgIHJldHVybiAi Ii5qb2luKHBhcnRzKQ0KPiArDQo+ICsgICAgZGVmIF9faGFzaF9fKHNlbGYpOg0KPiArICAg ICAgICByZXR1cm4gc3VwZXIoKS5fX2hhc2hfXygpDQo+ICsNCj4gKyAgICBkZWYgX19lcV9f KHNlbGYsIG90aGVyKToNCj4gKyAgICAgICAgcmV0dXJuIHN1cGVyKCkuX19lcV9fKG90aGVy KQ0KPiArDQo+ICsgICAgZGVmIF9fbHRfXyhzZWxmLCBvdGhlcik6DQo+ICsgICAgICAgIGRl ZiBzb3J0X2tleShvYmopOg0KPiArICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIHN0 cik6DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIChvYmosICIiLCAiIiwgIiIpDQo+ICsg ICAgICAgICAgICByZXR1cm4gKA0KPiArICAgICAgICAgICAgICAgIG9iai5faWQgb3IgIiIs DQo+ICsgICAgICAgICAgICAgICAgb2JqLlRZUEUsDQo+ICsgICAgICAgICAgICAgICAgZ2V0 YXR0cihvYmosICJuYW1lIiwgTm9uZSkgb3IgIiIsDQo+ICsgICAgICAgICAgICAgICAgaWQo b2JqKSwNCj4gKyAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICByZXR1cm4gc29ydF9r ZXkoc2VsZikgPCBzb3J0X2tleShvdGhlcikNCj4gKw0KPiArDQo+ICtjbGFzcyBTSEFDTEV4 dGVuc2libGVPYmplY3Qob2JqZWN0KToNCj4gKyAgICBDTE9TRUQgPSBGYWxzZQ0KPiArDQo+ ICsgICAgZGVmIF9faW5pdF9fKHNlbGYsIHR5cD1Ob25lLCAqKmt3YXJncyk6DQo+ICsgICAg ICAgIGlmIHR5cDoNCj4gKyAgICAgICAgICAgIHNlbGYuX19kaWN0X19bIl9vYmpfVFlQRSJd ID0gKHR5cCwgTm9uZSkNCj4gKyAgICAgICAgZWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYu X19kaWN0X19bIl9vYmpfVFlQRSJdID0gKHNlbGYuX09CSl9UWVBFLCBzZWxmLl9PQkpfQ09N UEFDVF9UWVBFKQ0KPiArICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQ0KPiAr DQo+ICsgICAgZGVmIF9pc19hYnN0cmFjdChzZWxmKToNCj4gKyAgICAgICAgIyBVbmtub3du IGNsYXNzZXMgYXJlIGFzc3VtZWQgdG8gbm90IGJlIGFic3RyYWN0IHNvIHRoYXQgdGhleSBj YW4gYmUNCj4gKyAgICAgICAgIyBkZXNlcmlhbGl6ZWQNCj4gKyAgICAgICAgdHlwID0gc2Vs Zi5fX2RpY3RfX1siX29ial9UWVBFIl1bMF0NCj4gKyAgICAgICAgaWYgdHlwIGluIHNlbGYu X19jbGFzc19fLkNMQVNTRVM6DQo+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNz X18uQ0xBU1NFU1t0eXBdLklTX0FCU1RSQUNUDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIEZh bHNlDQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX21ha2Vfb2JqZWN0 KGNscywgdHlwKToNCj4gKyAgICAgICAgIyBDaGVjayBmb3IgYSBrbm93biB0eXBlLCBhbmQg aWYgc28sIGRlc2VyaWFsaXplIGFzIHRoYXQgaW5zdGVhZA0KPiArICAgICAgICBpZiB0eXAg aW4gY2xzLkNMQVNTRVM6DQo+ICsgICAgICAgICAgICByZXR1cm4gY2xzLkNMQVNTRVNbdHlw XSgpDQo+ICsNCj4gKyAgICAgICAgb2JqID0gY2xzKHR5cCkNCj4gKyAgICAgICAgcmV0dXJu IG9iag0KPiArDQo+ICsgICAgZGVmIF9kZWNvZGVfcHJvcGVydGllcyhzZWxmLCBkZWNvZGVy LCBvYmplY3RzZXQ9Tm9uZSk6DQo+ICsgICAgICAgIGlmIHNlbGYuQ0xPU0VEOg0KPiArICAg ICAgICAgICAgc3VwZXIoKS5fZGVjb2RlX3Byb3BlcnRpZXMoZGVjb2Rlciwgb2JqZWN0c2V0 PW9iamVjdHNldCkNCj4gKyAgICAgICAgICAgIHJldHVybg0KPiArDQo+ICsgICAgICAgIGZv ciBrZXkgaW4gZGVjb2Rlci5vYmplY3Rfa2V5cygpOg0KPiArICAgICAgICAgICAgaWYgc2Vs Zi5fZGVjb2RlX3Byb3AoZGVjb2Rlciwga2V5LCBvYmplY3RzZXQ9b2JqZWN0c2V0KToNCj4g KyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBub3Qg aXNfSVJJKGtleSk6DQo+ICsgICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoDQo+ICsg ICAgICAgICAgICAgICAgICAgIGYiRXh0ZW5zaWJsZSBvYmplY3QgcHJvcGVydGllcyBtdXN0 IGJlIElSSXMuIEdvdCAne2tleX0nIg0KPiArICAgICAgICAgICAgICAgICkNCj4gKw0KPiAr ICAgICAgICAgICAgd2l0aCBkZWNvZGVyLnJlYWRfcHJvcGVydHkoa2V5KSBhcyBwcm9wX2Q6 DQo+ICsgICAgICAgICAgICAgICAgc2VsZi5fX2RpY3RfX1siX29ial9kYXRhIl1ba2V5XSA9 IHByb3BfZC5yZWFkX3ZhbHVlKCkNCj4gKw0KPiArICAgIGRlZiBfZW5jb2RlX3Byb3BlcnRp ZXMoc2VsZiwgZW5jb2Rlciwgc3RhdGUpOg0KPiArICAgICAgICBkZWYgZW5jb2RlX3ZhbHVl KGVuY29kZXIsIHYpOg0KPiArICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2LCBib29sKToN Cj4gKyAgICAgICAgICAgICAgICBlbmNvZGVyLndyaXRlX2Jvb2wodikNCj4gKyAgICAgICAg ICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBzdHIpOg0KPiArICAgICAgICAgICAgICAgIGVuY29k ZXIud3JpdGVfc3RyaW5nKHYpDQo+ICsgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2Uodiwg aW50KToNCj4gKyAgICAgICAgICAgICAgICBlbmNvZGVyLndyaXRlX2ludGVnZXIodikNCj4g KyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2LCBmbG9hdCk6DQo+ICsgICAgICAgICAg ICAgICAgZW5jb2Rlci53cml0ZV9mbG9hdCh2KQ0KPiArICAgICAgICAgICAgZWxzZToNCj4g KyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoDQo+ICsgICAgICAgICAgICAgICAg ICAgIGYiVW5zdXBwb3J0ZWQgc2VyaWFsaXplZCB0eXBlIHt0eXBlKHYpfSB3aXRoIHZhbHVl ICd7dn0nIg0KPiArICAgICAgICAgICAgICAgICkNCj4gKw0KPiArICAgICAgICBzdXBlcigp Ll9lbmNvZGVfcHJvcGVydGllcyhlbmNvZGVyLCBzdGF0ZSkNCj4gKyAgICAgICAgaWYgc2Vs Zi5DTE9TRUQ6DQo+ICsgICAgICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgICAgICBmb3Ig aXJpLCB2YWx1ZSBpbiBzZWxmLl9fZGljdF9fWyJfb2JqX2RhdGEiXS5pdGVtcygpOg0KPiAr ICAgICAgICAgICAgaWYgaXJpIGluIHNlbGYuX09CSl9QUk9QRVJUSUVTOg0KPiArICAgICAg ICAgICAgICAgIGNvbnRpbnVlDQo+ICsNCj4gKyAgICAgICAgICAgIHdpdGggZW5jb2Rlci53 cml0ZV9wcm9wZXJ0eShpcmkpIGFzIHByb3BfczoNCj4gKyAgICAgICAgICAgICAgICBlbmNv ZGVfdmFsdWUocHJvcF9zLCB2YWx1ZSkNCj4gKw0KPiArICAgIGRlZiBfX3NldGl0ZW1fXyhz ZWxmLCBpcmksIHZhbHVlKToNCj4gKyAgICAgICAgdHJ5Og0KPiArICAgICAgICAgICAgc3Vw ZXIoKS5fX3NldGl0ZW1fXyhpcmksIHZhbHVlKQ0KPiArICAgICAgICBleGNlcHQgS2V5RXJy b3I6DQo+ICsgICAgICAgICAgICBpZiBzZWxmLkNMT1NFRDoNCj4gKyAgICAgICAgICAgICAg ICByYWlzZQ0KPiArDQo+ICsgICAgICAgICAgICBpZiBub3QgaXNfSVJJKGlyaSk6DQo+ICsg ICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoZiJLZXkgJ3tpcml9JyBtdXN0IGJlIGFu IElSSSIpDQo+ICsgICAgICAgICAgICBzZWxmLl9fZGljdF9fWyJfb2JqX2RhdGEiXVtpcmld ID0gdmFsdWUNCj4gKw0KPiArICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBpcmkpOg0KPiAr ICAgICAgICB0cnk6DQo+ICsgICAgICAgICAgICBzdXBlcigpLl9fZGVsaXRlbV9fKGlyaSkN Cj4gKyAgICAgICAgZXhjZXB0IEtleUVycm9yOg0KPiArICAgICAgICAgICAgaWYgc2VsZi5D TE9TRUQ6DQo+ICsgICAgICAgICAgICAgICAgcmFpc2UNCj4gKw0KPiArICAgICAgICAgICAg aWYgbm90IGlzX0lSSShpcmkpOg0KPiArICAgICAgICAgICAgICAgIHJhaXNlIEtleUVycm9y KGYiS2V5ICd7aXJpfScgbXVzdCBiZSBhbiBJUkkiKQ0KPiArICAgICAgICAgICAgZGVsIHNl bGYuX19kaWN0X19bIl9vYmpfZGF0YSJdW2lyaV0NCj4gKw0KPiArICAgIGRlZiBfX2dldGF0 dHJfXyhzZWxmLCBuYW1lKToNCj4gKyAgICAgICAgaWYgbmFtZSA9PSAiVFlQRSI6DQo+ICsg ICAgICAgICAgICByZXR1cm4gc2VsZi5fX2RpY3RfX1siX29ial9UWVBFIl1bMF0NCj4gKyAg ICAgICAgaWYgbmFtZSA9PSAiQ09NUEFDVF9UWVBFIjoNCj4gKyAgICAgICAgICAgIHJldHVy biBzZWxmLl9fZGljdF9fWyJfb2JqX1RZUEUiXVsxXQ0KPiArICAgICAgICByZXR1cm4gc3Vw ZXIoKS5fX2dldGF0dHJfXyhuYW1lKQ0KPiArDQo+ICsgICAgZGVmIHByb3BlcnR5X2tleXMo c2VsZik6DQo+ICsgICAgICAgIGlyaXMgPSBzZXQoKQ0KPiArICAgICAgICBmb3IgcHluYW1l LCBpcmksIGNvbXBhY3QgaW4gc3VwZXIoKS5wcm9wZXJ0eV9rZXlzKCk6DQo+ICsgICAgICAg ICAgICBpcmlzLmFkZChpcmkpDQo+ICsgICAgICAgICAgICB5aWVsZCBweW5hbWUsIGlyaSwg Y29tcGFjdA0KPiArDQo+ICsgICAgICAgIGlmIHNlbGYuQ0xPU0VEOg0KPiArICAgICAgICAg ICAgcmV0dXJuDQo+ICsNCj4gKyAgICAgICAgZm9yIGlyaSBpbiBzZWxmLl9fZGljdF9fWyJf b2JqX2RhdGEiXS5rZXlzKCk6DQo+ICsgICAgICAgICAgICBpZiBpcmkgbm90IGluIGlyaXM6 DQo+ICsgICAgICAgICAgICAgICAgeWllbGQgTm9uZSwgaXJpLCBOb25lDQo+ICsNCj4gKw0K PiArY2xhc3MgU0hBQ0xPYmplY3RTZXQob2JqZWN0KToNCj4gKyAgICBkZWYgX19pbml0X18o c2VsZiwgb2JqZWN0cz1bXSwgKiwgbGluaz1GYWxzZSk6DQo+ICsgICAgICAgIHNlbGYub2Jq ZWN0cyA9IHNldCgpDQo+ICsgICAgICAgIHNlbGYubWlzc2luZ19pZHMgPSBzZXQoKQ0KPiAr ICAgICAgICBmb3IgbyBpbiBvYmplY3RzOg0KPiArICAgICAgICAgICAgc2VsZi5vYmplY3Rz LmFkZChvKQ0KPiArICAgICAgICBzZWxmLmNyZWF0ZV9pbmRleCgpDQo+ICsgICAgICAgIGlm IGxpbms6DQo+ICsgICAgICAgICAgICBzZWxmLl9saW5rKCkNCj4gKw0KPiArICAgIGRlZiBj cmVhdGVfaW5kZXgoc2VsZik6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICAocmUpQ3Jl YXRlIG9iamVjdCBpbmRleA0KPiArDQo+ICsgICAgICAgIENyZWF0ZXMgb3IgcmVjcmVhdGVz IHRoZSBpbmRpY2VzIGZvciB0aGUgb2JqZWN0IHNldCB0byBlbmFibGUgZmFzdA0KPiArICAg ICAgICBsb29rdXAuIEFsbCBvYmplY3RzIGFuZCB0aGVpciBjaGlsZHJlbiBhcmUgd2Fsa2Vk IGFuZCBpbmRleGVkDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBzZWxmLm9ial9ieV9p ZCA9IHt9DQo+ICsgICAgICAgIHNlbGYub2JqX2J5X3R5cGUgPSB7fQ0KPiArICAgICAgICBm b3IgbyBpbiBzZWxmLmZvcmVhY2goKToNCj4gKyAgICAgICAgICAgIHNlbGYuYWRkX2luZGV4 KG8pDQo+ICsNCj4gKyAgICBkZWYgYWRkX2luZGV4KHNlbGYsIG9iaik6DQo+ICsgICAgICAg ICIiIg0KPiArICAgICAgICBBZGQgb2JqZWN0IHRvIGluZGV4DQo+ICsNCj4gKyAgICAgICAg QWRkcyB0aGUgb2JqZWN0IHRvIGFsbCBhcHByb3ByaWF0ZSBpbmRpY2VzDQo+ICsgICAgICAg ICIiIg0KPiArDQo+ICsgICAgICAgIGRlZiByZWdfdHlwZSh0eXAsIGNvbXBhY3QsIG8sIGV4 YWN0KToNCj4gKyAgICAgICAgICAgIHNlbGYub2JqX2J5X3R5cGUuc2V0ZGVmYXVsdCh0eXAs IHNldCgpKS5hZGQoKGV4YWN0LCBvKSkNCj4gKyAgICAgICAgICAgIGlmIGNvbXBhY3Q6DQo+ ICsgICAgICAgICAgICAgICAgc2VsZi5vYmpfYnlfdHlwZS5zZXRkZWZhdWx0KGNvbXBhY3Qs IHNldCgpKS5hZGQoKGV4YWN0LCBvKSkNCj4gKw0KPiArICAgICAgICBpZiBub3QgaXNpbnN0 YW5jZShvYmosIFNIQUNMT2JqZWN0KToNCj4gKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv cigiT2JqZWN0IGlzIG5vdCBvZiB0eXBlIFNIQUNMT2JqZWN0IikNCj4gKw0KPiArICAgICAg ICBmb3IgdHlwIGluIFNIQUNMT2JqZWN0LkNMQVNTRVMudmFsdWVzKCk6DQo+ICsgICAgICAg ICAgICBpZiBpc2luc3RhbmNlKG9iaiwgdHlwKToNCj4gKyAgICAgICAgICAgICAgICByZWdf dHlwZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgdHlwLl9PQkpfVFlQRSwgdHlwLl9PQkpf Q09NUEFDVF9UWVBFLCBvYmosIG9iai5fX2NsYXNzX18gaXMgdHlwDQo+ICsgICAgICAgICAg ICAgICAgKQ0KPiArDQo+ICsgICAgICAgICMgVGhpcyBjb3ZlcnMgY3VzdG9tIGV4dGVuc2lv bnMNCj4gKyAgICAgICAgcmVnX3R5cGUob2JqLlRZUEUsIG9iai5DT01QQUNUX1RZUEUsIG9i aiwgVHJ1ZSkNCj4gKw0KPiArICAgICAgICBpZiBub3Qgb2JqLl9pZDoNCj4gKyAgICAgICAg ICAgIHJldHVybg0KPiArDQo+ICsgICAgICAgIHNlbGYubWlzc2luZ19pZHMuZGlzY2FyZChv YmouX2lkKQ0KPiArDQo+ICsgICAgICAgIGlmIG9iai5faWQgaW4gc2VsZi5vYmpfYnlfaWQ6 DQo+ICsgICAgICAgICAgICByZXR1cm4NCj4gKw0KPiArICAgICAgICBzZWxmLm9ial9ieV9p ZFtvYmouX2lkXSA9IG9iag0KPiArDQo+ICsgICAgZGVmIGFkZChzZWxmLCBvYmopOg0KPiAr ICAgICAgICAiIiINCj4gKyAgICAgICAgQWRkIG9iamVjdCB0byBvYmplY3Qgc2V0DQo+ICsN Cj4gKyAgICAgICAgQWRkcyBhIFNIQUNMT2JqZWN0IHRvIHRoZSBvYmplY3Qgc2V0IGFuZCBp bmRleCBpdC4NCj4gKw0KPiArICAgICAgICBOT1RFOiBDaGlsZCBvYmplY3RzIG9mIHRoZSBh dHRhY2hlZCBvYmplY3QgYXJlIG5vdCBpbmRleGVzDQo+ICsgICAgICAgICIiIg0KPiArICAg ICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIFNIQUNMT2JqZWN0KToNCj4gKyAgICAgICAg ICAgIHJhaXNlIFR5cGVFcnJvcigiT2JqZWN0IGlzIG5vdCBvZiB0eXBlIFNIQUNMT2JqZWN0 IikNCj4gKw0KPiArICAgICAgICBpZiBvYmogbm90IGluIHNlbGYub2JqZWN0czoNCj4gKyAg ICAgICAgICAgIHNlbGYub2JqZWN0cy5hZGQob2JqKQ0KPiArICAgICAgICAgICAgc2VsZi5h ZGRfaW5kZXgob2JqKQ0KPiArICAgICAgICByZXR1cm4gb2JqDQo+ICsNCj4gKyAgICBkZWYg dXBkYXRlKHNlbGYsICpvdGhlcnMpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgVXBk YXRlIG9iamVjdCBzZXQgYWRkaW5nIGFsbCBvYmplY3RzIGluIGVhY2ggb3RoZXIgaXRlcmFi bGUNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIGZvciBvIGluIG90aGVyczoNCj4gKyAg ICAgICAgICAgIGZvciBvYmogaW4gbzoNCj4gKyAgICAgICAgICAgICAgICBzZWxmLmFkZChv YmopDQo+ICsNCj4gKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGl0ZW0pOg0KPiArICAg ICAgICAiIiINCj4gKyAgICAgICAgUmV0dXJucyBUcnVlIGlmIHRoZSBpdGVtIGlzIGluIHRo ZSBvYmplY3Qgc2V0DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICByZXR1cm4gaXRlbSBp biBzZWxmLm9iamVjdHMNCj4gKw0KPiArICAgIGRlZiBsaW5rKHNlbGYpOg0KPiArICAgICAg ICAiIiINCj4gKyAgICAgICAgTGluayBvYmplY3Qgc2V0DQo+ICsNCj4gKyAgICAgICAgTGlu a3MgdGhlIG9iamVjdCBpbiB0aGUgb2JqZWN0IHNldCBieSByZXBsYWNpbmcgc3RyaW5nIG9i amVjdA0KPiArICAgICAgICByZWZlcmVuY2VzIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgb2Jq ZWN0cyB0aGVtc2VsdmVzLiBlLmcuDQo+ICsgICAgICAgIGEgcHJvcGVydHkgdGhhdCByZWZl cmVuY2VzIG9iamVjdCAiaHR0cHM6Ly9mb28vYmFyIiBieSBhIHN0cmluZw0KPiArICAgICAg ICByZWZlcmVuY2Ugd2lsbCBiZSByZXBsYWNlZCB3aXRoIGFuIGFjdHVhbCByZWZlcmVuY2Ug dG8gdGhlIG9iamVjdCBpbg0KPiArICAgICAgICB0aGUgb2JqZWN0IHNldCB3aXRoIHRoZSBz YW1lIElEIGlmIGl0IGV4aXN0cyBpbiB0aGUgb2JqZWN0IHNldA0KPiArDQo+ICsgICAgICAg IElmIG11bHRpcGxlIG9iamVjdHMgd2l0aCB0aGUgc2FtZSBJRCBhcmUgZm91bmQsIHRoZSBk dXBsaWNhdGVzIGFyZQ0KPiArICAgICAgICBlbGltaW5hdGVkDQo+ICsgICAgICAgICIiIg0K PiArICAgICAgICBzZWxmLmNyZWF0ZV9pbmRleCgpDQo+ICsgICAgICAgIHJldHVybiBzZWxm Ll9saW5rKCkNCj4gKw0KPiArICAgIGRlZiBfbGluayhzZWxmKToNCj4gKyAgICAgICAgZ2xv YmFsIE5BTUVEX0lORElWSURVQUxTDQo+ICsNCj4gKyAgICAgICAgc2VsZi5taXNzaW5nX2lk cyA9IHNldCgpDQo+ICsgICAgICAgIHZpc2l0ZWQgPSBzZXQoKQ0KPiArDQo+ICsgICAgICAg IG5ld19vYmplY3RzID0gc2V0KCkNCj4gKw0KPiArICAgICAgICBmb3IgbyBpbiBzZWxmLm9i amVjdHM6DQo+ICsgICAgICAgICAgICBpZiBvLl9pZDoNCj4gKyAgICAgICAgICAgICAgICBv ID0gc2VsZi5maW5kX2J5X2lkKG8uX2lkLCBvKQ0KPiArICAgICAgICAgICAgby5saW5rX2hl bHBlcihzZWxmLCBzZWxmLm1pc3NpbmdfaWRzLCB2aXNpdGVkKQ0KPiArICAgICAgICAgICAg bmV3X29iamVjdHMuYWRkKG8pDQo+ICsNCj4gKyAgICAgICAgc2VsZi5vYmplY3RzID0gbmV3 X29iamVjdHMNCj4gKw0KPiArICAgICAgICAjIFJlbW92ZSBibGFuayBub2Rlcw0KPiArICAg ICAgICBvYmpfYnlfaWQgPSB7fQ0KPiArICAgICAgICBmb3IgX2lkLCBvYmogaW4gc2VsZi5v YmpfYnlfaWQuaXRlbXMoKToNCj4gKyAgICAgICAgICAgIGlmIF9pZC5zdGFydHN3aXRoKCJf OiIpOg0KPiArICAgICAgICAgICAgICAgIGRlbCBvYmouX2lkDQo+ICsgICAgICAgICAgICBl bHNlOg0KPiArICAgICAgICAgICAgICAgIG9ial9ieV9pZFtfaWRdID0gb2JqDQo+ICsgICAg ICAgIHNlbGYub2JqX2J5X2lkID0gb2JqX2J5X2lkDQo+ICsNCj4gKyAgICAgICAgIyBOYW1l ZCBpbmRpdmlkdWFscyBhcmVuJ3QgY29uc2lkZXJlZCBtaXNzaW5nDQo+ICsgICAgICAgIHNl bGYubWlzc2luZ19pZHMgLT0gTkFNRURfSU5ESVZJRFVBTFMNCj4gKw0KPiArICAgICAgICBy ZXR1cm4gc2VsZi5taXNzaW5nX2lkcw0KPiArDQo+ICsgICAgZGVmIGZpbmRfYnlfaWQoc2Vs ZiwgX2lkLCBkZWZhdWx0PU5vbmUpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgRmlu ZCBvYmplY3QgYnkgSUQNCj4gKw0KPiArICAgICAgICBSZXR1cm5zIG9iamVjdHMgdGhhdCBt YXRjaCB0aGUgc3BlY2lmaWVkIElELCBvciBkZWZhdWx0IGlmIHRoZXJlIGlzIG5vDQo+ICsg ICAgICAgIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgSUQNCj4gKyAgICAgICAgIiIiDQo+ ICsgICAgICAgIGlmIF9pZCBub3QgaW4gc2VsZi5vYmpfYnlfaWQ6DQo+ICsgICAgICAgICAg ICByZXR1cm4gZGVmYXVsdA0KPiArICAgICAgICByZXR1cm4gc2VsZi5vYmpfYnlfaWRbX2lk XQ0KPiArDQo+ICsgICAgZGVmIGZvcmVhY2goc2VsZik6DQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBJdGVyYXRlIG92ZXIgZXZlcnkgb2JqZWN0IGluIHRoZSBvYmplY3Qgc2V0LCBh bmQgYWxsIGNoaWxkIG9iamVjdHMNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHZpc2l0 ZWQgPSBzZXQoKQ0KPiArICAgICAgICBmb3IgbyBpbiBzZWxmLm9iamVjdHM6DQo+ICsgICAg ICAgICAgICBpZiBvIG5vdCBpbiB2aXNpdGVkOg0KPiArICAgICAgICAgICAgICAgIHlpZWxk IG8NCj4gKyAgICAgICAgICAgICAgICB2aXNpdGVkLmFkZChvKQ0KPiArDQo+ICsgICAgICAg ICAgICBmb3IgY2hpbGQgaW4gby5pdGVyX29iamVjdHMocmVjdXJzaXZlPVRydWUsIHZpc2l0 ZWQ9dmlzaXRlZCk6DQo+ICsgICAgICAgICAgICAgICAgeWllbGQgY2hpbGQNCj4gKw0KPiAr ICAgIGRlZiBmb3JlYWNoX3R5cGUoc2VsZiwgdHlwLCAqLCBtYXRjaF9zdWJjbGFzcz1UcnVl KToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIEl0ZXJhdGUgb3ZlciBlYWNoIG9iamVj dCBvZiBhIHNwZWNpZmllZCB0eXBlIChvciBzdWJjbGFzcyB0aGVyZSBvZikNCj4gKw0KPiAr ICAgICAgICBJZiBtYXRjaF9zdWJjbGFzcyBpcyBUcnVlLCBhbmQgY2xhc3MgZGVyaXZlZCBm cm9tIHR5cCB3aWxsIGFsc28gbWF0Y2gNCj4gKyAgICAgICAgKHNpbWlsYXIgdG8gaXNpbnN0 YW5jZSgpKS4gSWYgRmFsc2UsIG9ubHkgZXhhY3QgbWF0Y2hlcyB3aWxsIGJlDQo+ICsgICAg ICAgIHJldHVybmVkDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBpZiBub3QgaXNpbnN0 YW5jZSh0eXAsIHN0cik6DQo+ICsgICAgICAgICAgICBpZiBub3QgaXNzdWJjbGFzcyh0eXAs IFNIQUNMT2JqZWN0KToNCj4gKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoZiJU eXBlIG11c3QgYmUgZGVyaXZlZCBmcm9tIFNIQUNMT2JqZWN0LCBnb3Qge3R5cH0iKQ0KPiAr ICAgICAgICAgICAgdHlwID0gdHlwLl9PQkpfVFlQRQ0KPiArDQo+ICsgICAgICAgIGlmIHR5 cCBub3QgaW4gc2VsZi5vYmpfYnlfdHlwZToNCj4gKyAgICAgICAgICAgIHJldHVybg0KPiAr DQo+ICsgICAgICAgIGZvciBleGFjdCwgbyBpbiBzZWxmLm9ial9ieV90eXBlW3R5cF06DQo+ ICsgICAgICAgICAgICBpZiBtYXRjaF9zdWJjbGFzcyBvciBleGFjdDoNCj4gKyAgICAgICAg ICAgICAgICB5aWVsZCBvDQo+ICsNCj4gKyAgICBkZWYgbWVyZ2Uoc2VsZiwgKm9iamVjdHNl dHMpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgTWVyZ2Ugb2JqZWN0IHNldHMNCj4g Kw0KPiArICAgICAgICBSZXR1cm5zIGEgbmV3IG9iamVjdCBzZXQgdGhhdCBpcyB0aGUgY29t YmluYXRpb24gb2YgdGhpcyBvYmplY3Qgc2V0IGFuZA0KPiArICAgICAgICBhbGwgcHJvdmlk ZWQgYXJndW1lbnRzDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBuZXdfb2JqZWN0cyA9 IHNldCgpDQo+ICsgICAgICAgIG5ld19vYmplY3RzIHw9IHNlbGYub2JqZWN0cw0KPiArICAg ICAgICBmb3IgZCBpbiBvYmplY3RzZXRzOg0KPiArICAgICAgICAgICAgbmV3X29iamVjdHMg fD0gZC5vYmplY3RzDQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIFNIQUNMT2JqZWN0U2V0KG5l d19vYmplY3RzLCBsaW5rPVRydWUpDQo+ICsNCj4gKyAgICBkZWYgZW5jb2RlKHNlbGYsIGVu Y29kZXIsIGZvcmNlX2xpc3Q9RmFsc2UpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAg U2VyaWFsaXplIGEgbGlzdCBvZiBvYmplY3RzIHRvIGEgc2VyaWFsaXphdGlvbiBlbmNvZGVy DQo+ICsNCj4gKyAgICAgICAgSWYgZm9yY2VfbGlzdCBpcyB0cnVlLCBhIGxpc3Qgd2lsbCBh bHdheXMgYmUgd3JpdHRlbiB1c2luZyB0aGUgZW5jb2Rlci4NCj4gKyAgICAgICAgIiIiDQo+ ICsgICAgICAgIHJlZl9jb3VudHMgPSB7fQ0KPiArICAgICAgICBzdGF0ZSA9IEVuY29kZVN0 YXRlKCkNCj4gKw0KPiArICAgICAgICBkZWYgd2Fsa19jYWxsYmFjayh2YWx1ZSwgcGF0aCk6 DQo+ICsgICAgICAgICAgICBub25sb2NhbCBzdGF0ZQ0KPiArICAgICAgICAgICAgbm9ubG9j YWwgcmVmX2NvdW50cw0KPiArDQo+ICsgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2 YWx1ZSwgU0hBQ0xPYmplY3QpOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBUcnVlDQo+ ICsNCj4gKyAgICAgICAgICAgICMgUmVtb3ZlIGJsYW5rIG5vZGUgSUQgZm9yIHJlLWFzc2ln bm1lbnQNCj4gKyAgICAgICAgICAgIGlmIHZhbHVlLl9pZCBhbmQgdmFsdWUuX2lkLnN0YXJ0 c3dpdGgoIl86Iik6DQo+ICsgICAgICAgICAgICAgICAgZGVsIHZhbHVlLl9pZA0KPiArDQo+ ICsgICAgICAgICAgICBpZiB2YWx1ZS5faWQ6DQo+ICsgICAgICAgICAgICAgICAgc3RhdGUu YWRkX3JlZmVkKHZhbHVlKQ0KPiArDQo+ICsgICAgICAgICAgICAjIElmIHRoZSBvYmplY3Qg aXMgcmVmZXJlbmNlZCBtb3JlIHRoYW4gb25jZSwgYWRkIGl0IHRvIHRoZSBzZXQgb2YNCj4g KyAgICAgICAgICAgICMgcmVmZXJlbmNlZCBvYmplY3RzDQo+ICsgICAgICAgICAgICByZWZf Y291bnRzLnNldGRlZmF1bHQodmFsdWUsIDApDQo+ICsgICAgICAgICAgICByZWZfY291bnRz W3ZhbHVlXSArPSAxDQo+ICsgICAgICAgICAgICBpZiByZWZfY291bnRzW3ZhbHVlXSA+IDE6 DQo+ICsgICAgICAgICAgICAgICAgc3RhdGUuYWRkX3JlZmVkKHZhbHVlKQ0KPiArICAgICAg ICAgICAgICAgIHJldHVybiBGYWxzZQ0KPiArDQo+ICsgICAgICAgICAgICByZXR1cm4gVHJ1 ZQ0KPiArDQo+ICsgICAgICAgIGZvciBvIGluIHNlbGYub2JqZWN0czoNCj4gKyAgICAgICAg ICAgIGlmIG8uX2lkOg0KPiArICAgICAgICAgICAgICAgIHN0YXRlLmFkZF9yZWZlZChvKQ0K PiArICAgICAgICAgICAgby53YWxrKHdhbGtfY2FsbGJhY2spDQo+ICsNCj4gKyAgICAgICAg dXNlX2xpc3QgPSBmb3JjZV9saXN0IG9yIGxlbihzZWxmLm9iamVjdHMpID4gMQ0KPiArDQo+ ICsgICAgICAgIGlmIHVzZV9saXN0Og0KPiArICAgICAgICAgICAgIyBJZiB3ZSBhcmUgbWFr aW5nIGEgbGlzdCBhZGQgYWxsIHRoZSBvYmplY3RzIHJlZmVycmVkIHRvIGJ5IHJlZmVyZW5j ZQ0KPiArICAgICAgICAgICAgIyB0byB0aGUgbGlzdA0KPiArICAgICAgICAgICAgb2JqZWN0 cyA9IGxpc3Qoc2VsZi5vYmplY3RzIHwgc3RhdGUucmVmX29iamVjdHMpDQo+ICsgICAgICAg IGVsc2U6DQo+ICsgICAgICAgICAgICBvYmplY3RzID0gbGlzdChzZWxmLm9iamVjdHMpDQo+ ICsNCj4gKyAgICAgICAgb2JqZWN0cy5zb3J0KCkNCj4gKw0KPiArICAgICAgICBpZiB1c2Vf bGlzdDoNCj4gKyAgICAgICAgICAgICMgRW5zdXJlIHRvcCBsZXZlbCBvYmplY3RzIGFyZSBv bmx5IHdyaXR0ZW4gaW4gdGhlIHRvcCBsZXZlbCBncmFwaA0KPiArICAgICAgICAgICAgIyBu b2RlLCBhbmQgcmVmZXJlbmNlZCBieSBJRCBldmVyeXdoZXJlIGVsc2UuIFRoaXMgaXMgZG9u ZSBieSBzZXR0aW5nDQo+ICsgICAgICAgICAgICAjIHRoZSBmbGFnIHRoYXQgaW5kaWNhdGVz IHRoaXMgb2JqZWN0IGhhcyBiZWVuIHdyaXR0ZW4gZm9yIGFsbCB0aGUgdG9wDQo+ICsgICAg ICAgICAgICAjIGxldmVsIG9iamVjdHMsIHRoZW4gY2xlYXJpbmcgaXQgcmlnaHQgYmVmb3Jl IHNlcmlhbGl6aW5nIHRoZSBvYmplY3QuDQo+ICsgICAgICAgICAgICAjDQo+ICsgICAgICAg ICAgICAjIEluIHRoaXMgd2F5LCBpZiBhbiBvYmplY3QgaXMgcmVmZXJlbmNlZCBiZWZvcmUg aXQgaXMgc3VwcG9zZWQgdG8gYmUNCj4gKyAgICAgICAgICAgICMgc2VyaWFsaXplZCBpbnRv IHRoZSBAZ3JhcGgsIGl0IHdpbGwgc2VyaWFsaXplIGFzIGEgc3RyaW5nIGluc3RlYWQgb2YN Cj4gKyAgICAgICAgICAgICMgdGhlIGFjdHVhbCBvYmplY3QNCj4gKyAgICAgICAgICAgIGZv ciBvIGluIG9iamVjdHM6DQo+ICsgICAgICAgICAgICAgICAgc3RhdGUud3JpdHRlbl9vYmpl Y3RzLmFkZChvKQ0KPiArDQo+ICsgICAgICAgICAgICB3aXRoIGVuY29kZXIud3JpdGVfbGlz dCgpIGFzIGxpc3RfczoNCj4gKyAgICAgICAgICAgICAgICBmb3IgbyBpbiBvYmplY3RzOg0K PiArICAgICAgICAgICAgICAgICAgICAjIEFsbG93IHRoaXMgc3BlY2lmaWMgb2JqZWN0IHRv IGJlIHdyaXR0ZW4gbm93DQo+ICsgICAgICAgICAgICAgICAgICAgIHN0YXRlLndyaXR0ZW5f b2JqZWN0cy5yZW1vdmUobykNCj4gKyAgICAgICAgICAgICAgICAgICAgd2l0aCBsaXN0X3Mu d3JpdGVfbGlzdF9pdGVtKCkgYXMgaXRlbV9zOg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgby5lbmNvZGUoaXRlbV9zLCBzdGF0ZSkNCj4gKw0KPiArICAgICAgICBlbHNlOg0KPiAr ICAgICAgICAgICAgb2JqZWN0c1swXS5lbmNvZGUoZW5jb2Rlciwgc3RhdGUpDQo+ICsNCj4g KyAgICBkZWYgZGVjb2RlKHNlbGYsIGRlY29kZXIpOg0KPiArICAgICAgICBzZWxmLmNyZWF0 ZV9pbmRleCgpDQo+ICsNCj4gKyAgICAgICAgZm9yIG9ial9kIGluIGRlY29kZXIucmVhZF9s aXN0KCk6DQo+ICsgICAgICAgICAgICBvID0gU0hBQ0xPYmplY3QuZGVjb2RlKG9ial9kLCBv YmplY3RzZXQ9c2VsZikNCj4gKyAgICAgICAgICAgIHNlbGYub2JqZWN0cy5hZGQobykNCj4g Kw0KPiArICAgICAgICBzZWxmLl9saW5rKCkNCj4gKw0KPiArDQo+ICtjbGFzcyBFbmNvZGVT dGF0ZShvYmplY3QpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmKToNCj4gKyAgICAgICAg c2VsZi5yZWZfb2JqZWN0cyA9IHNldCgpDQo+ICsgICAgICAgIHNlbGYud3JpdHRlbl9vYmpl Y3RzID0gc2V0KCkNCj4gKyAgICAgICAgc2VsZi5ibGFua19vYmplY3RzID0ge30NCj4gKw0K PiArICAgIGRlZiBnZXRfb2JqZWN0X2lkKHNlbGYsIG8pOg0KPiArICAgICAgICBpZiBvLl9p ZDoNCj4gKyAgICAgICAgICAgIHJldHVybiBvLl9pZA0KPiArDQo+ICsgICAgICAgIGlmIG8g bm90IGluIHNlbGYuYmxhbmtfb2JqZWN0czoNCj4gKyAgICAgICAgICAgIF9pZCA9IGYiXzp7 by5fX2NsYXNzX18uX19uYW1lX199e2xlbihzZWxmLmJsYW5rX29iamVjdHMpfSINCj4gKyAg ICAgICAgICAgIHNlbGYuYmxhbmtfb2JqZWN0c1tvXSA9IF9pZA0KPiArDQo+ICsgICAgICAg IHJldHVybiBzZWxmLmJsYW5rX29iamVjdHNbb10NCj4gKw0KPiArICAgIGRlZiBpc19yZWZl ZChzZWxmLCBvKToNCj4gKyAgICAgICAgcmV0dXJuIG8gaW4gc2VsZi5yZWZfb2JqZWN0cw0K PiArDQo+ICsgICAgZGVmIGFkZF9yZWZlZChzZWxmLCBvKToNCj4gKyAgICAgICAgc2VsZi5y ZWZfb2JqZWN0cy5hZGQobykNCj4gKw0KPiArICAgIGRlZiBpc193cml0dGVuKHNlbGYsIG8p Og0KPiArICAgICAgICByZXR1cm4gbyBpbiBzZWxmLndyaXR0ZW5fb2JqZWN0cw0KPiArDQo+ ICsgICAgZGVmIGFkZF93cml0dGVuKHNlbGYsIG8pOg0KPiArICAgICAgICBzZWxmLndyaXR0 ZW5fb2JqZWN0cy5hZGQobykNCj4gKw0KPiArDQo+ICtjbGFzcyBEZWNvZGVyKEFCQyk6DQo+ ICsgICAgQGFic3RyYWN0bWV0aG9kDQo+ICsgICAgZGVmIHJlYWRfdmFsdWUoc2VsZik6DQo+ ICsgICAgICAgICIiIg0KPiArICAgICAgICBDb25zdW1lIG5leHQgaXRlbQ0KPiArDQo+ICsg ICAgICAgIENvbnN1bWVzIHRoZSBuZXh0IGl0ZW0gb2YgYW55IHR5cGUNCj4gKyAgICAgICAg IiIiDQo+ICsgICAgICAgIHBhc3MNCj4gKw0KPiArICAgIEBhYnN0cmFjdG1ldGhvZA0KPiAr ICAgIGRlZiByZWFkX3N0cmluZyhzZWxmKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAg IENvbnN1bWUgdGhlIG5leHQgaXRlbSBhcyBhIHN0cmluZy4NCj4gKw0KPiArICAgICAgICBS ZXR1cm5zIHRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIG5leHQgaXRlbSwgb3IgYE5vbmVgIGlm IHRoZSBuZXh0IGl0ZW0NCj4gKyAgICAgICAgaXMgbm90IGEgc3RyaW5nDQo+ICsgICAgICAg ICIiIg0KPiArICAgICAgICBwYXNzDQo+ICsNCj4gKyAgICBAYWJzdHJhY3RtZXRob2QNCj4g KyAgICBkZWYgcmVhZF9kYXRldGltZShzZWxmKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAg ICAgIENvbnN1bWVzIHRoZSBuZXh0IGl0ZW0gYXMgYSBkYXRlICYgdGltZSBzdHJpbmcNCj4g Kw0KPiArICAgICAgICBSZXR1cm5zIHRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIG5leHQgaXRl bSwgaWYgaXQgaXMgYSBJU08gZGF0ZXRpbWUsIG9yDQo+ICsgICAgICAgIGBOb25lYCBpZiB0 aGUgbmV4dCBpdGVtIGlzIG5vdCBhIElTTyBkYXRldGltZSBzdHJpbmcuDQo+ICsNCj4gKyAg ICAgICAgTm90ZSB0aGF0IHZhbGlkYXRpb24gb2YgdGhlIHN0cmluZyBpcyBkb25lIGJ5IHRo ZSBjYWxsZXIsIHNvIGEgbWluaW1hbA0KPiArICAgICAgICBpbXBsZW1lbnRhdGlvbiBjYW4g anVzdCBjaGVjayBpZiB0aGUgbmV4dCBpdGVtIGlzIGEgc3RyaW5nIHdpdGhvdXQNCj4gKyAg ICAgICAgd29ycnlpbmcgYWJvdXQgdGhlIGZvcm1hdA0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgcGFzcw0KPiArDQo+ICsgICAgQGFic3RyYWN0bWV0aG9kDQo+ICsgICAgZGVmIHJl YWRfaW50ZWdlcihzZWxmKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENvbnN1bWVz IHRoZSBuZXh0IGl0ZW0gYXMgYW4gaW50ZWdlcg0KPiArDQo+ICsgICAgICAgIFJldHVybnMg dGhlIGludGVnZXIgdmFsdWUgb2YgdGhlIG5leHQgaXRlbSwgb3IgYE5vbmVgIGlmIHRoZSBu ZXh0IGl0ZW0NCj4gKyAgICAgICAgaXMgbm90IGFuIGludGVnZXINCj4gKyAgICAgICAgIiIi DQo+ICsgICAgICAgIHBhc3MNCj4gKw0KPiArICAgIEBhYnN0cmFjdG1ldGhvZA0KPiArICAg IGRlZiByZWFkX2lyaShzZWxmKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIENvbnN1 bWVzIHRoZSBuZXh0IGl0ZW0gYXMgYW4gSVJJIHN0cmluZw0KPiArDQo+ICsgICAgICAgIFJl dHVybnMgdGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgbmV4dCBpdGVtIGFuIElSSSwgb3IgYE5v bmVgIGlmIHRoZSBuZXh0DQo+ICsgICAgICAgIGl0ZW0gaXMgbm90IGFuIElSSS4NCj4gKw0K PiArICAgICAgICBUaGUgcmV0dXJuZWQgc3RyaW5nIHNob3VsZCBiZSBlaXRoZXIgYSBmdWxs eS1xdWFsaWZpZWQgSVJJLCBvciBhIGJsYW5rDQo+ICsgICAgICAgIG5vZGUgSUQNCj4gKyAg ICAgICAgIiIiDQo+ICsgICAgICAgIHBhc3MNCj4gKw0KPiArICAgIEBhYnN0cmFjdG1ldGhv ZA0KPiArICAgIGRlZiByZWFkX2VudW0oc2VsZiwgZSk6DQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBDb25zdW1lcyB0aGUgbmV4dCBpdGVtIGFzIGFuIEVudW0gdmFsdWUgc3RyaW5n DQo+ICsNCj4gKyAgICAgICAgUmV0dXJucyB0aGUgZnVsbHkgcXVhbGlmaWVkIElSSSBvZiB0 aGUgbmV4dCBlbnVtIGl0ZW0sIG9yIGBOb25lYCBpZiB0aGUNCj4gKyAgICAgICAgbmV4dCBp dGVtIGlzIG5vdCBhbiBlbnVtIHZhbHVlLg0KPiArDQo+ICsgICAgICAgIFRoZSBjYWxsZWUg aXMgcmVzcG9uc2libGUgZm9yIHZhbGlkYXRpbmcgdGhhdCB0aGUgcmV0dXJuZWQgSVJJIGlz DQo+ICsgICAgICAgIGFjdHVhbGx5IGEgbWVtYmVyIG9mIHRoZSBzcGVjaWZpZWQgRW51bSwg c28gdGhlIGBEZWNvZGVyYCBkb2VzIG5vdCBuZWVkDQo+ICsgICAgICAgIHRvIGNoZWNrIHRo YXQsIGJ1dCBjYW4gaWYgaXQgd2lzaGVzDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBw YXNzDQo+ICsNCj4gKyAgICBAYWJzdHJhY3RtZXRob2QNCj4gKyAgICBkZWYgcmVhZF9ib29s KHNlbGYpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgQ29uc3VtZSB0aGUgbmV4dCBp dGVtIGFzIGEgYm9vbGVhbiB2YWx1ZQ0KPiArDQo+ICsgICAgICAgIFJldHVybnMgdGhlIGJv b2xlYW4gdmFsdWUgb2YgdGhlIG5leHQgaXRlbSwgb3IgYE5vbmVgIGlmIHRoZSBuZXh0IGl0 ZW0NCj4gKyAgICAgICAgaXMgbm90IGEgYm9vbGVhbg0KPiArICAgICAgICAiIiINCj4gKyAg ICAgICAgcGFzcw0KPiArDQo+ICsgICAgQGFic3RyYWN0bWV0aG9kDQo+ICsgICAgZGVmIHJl YWRfZmxvYXQoc2VsZik6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBDb25zdW1lIHRo ZSBuZXh0IGl0ZW0gYXMgYSBmbG9hdCB2YWx1ZQ0KPiArDQo+ICsgICAgICAgIFJldHVybnMg dGhlIGZsb2F0IHZhbHVlIG9mIHRoZSBuZXh0IGl0ZW0sIG9yIGBOb25lYCBpZiB0aGUgbmV4 dCBpdGVtIGlzDQo+ICsgICAgICAgIG5vdCBhIGZsb2F0DQo+ICsgICAgICAgICIiIg0KPiAr ICAgICAgICBwYXNzDQo+ICsNCj4gKyAgICBAYWJzdHJhY3RtZXRob2QNCj4gKyAgICBkZWYg cmVhZF9saXN0KHNlbGYpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgQ29uc3VtZSB0 aGUgbmV4dCBpdGVtIGFzIGEgbGlzdCBnZW5lcmF0b3INCj4gKw0KPiArICAgICAgICBUaGlz IHNob3VsZCBnZW5lcmF0ZSBhIGBEZWNvZGVyYCBvYmplY3QgZm9yIGVhY2ggaXRlbSBpbiB0 aGUgbGlzdC4gVGhlDQo+ICsgICAgICAgIGdlbmVyYXRlZCBgRGVjb2RlcmAgY2FuIGJlIHVz ZWQgdG8gcmVhZCB0aGUgY29ycmVzcG9uZGluZyBpdGVtIGZyb20gdGhlDQo+ICsgICAgICAg IGxpc3QNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHBhc3MNCj4gKw0KPiArICAgIEBh YnN0cmFjdG1ldGhvZA0KPiArICAgIGRlZiByZWFkX29iamVjdChzZWxmKToNCj4gKyAgICAg ICAgIiIiDQo+ICsgICAgICAgIENvbnN1bWUgbmV4dCBpdGVtIGFzIGFuIG9iamVjdA0KPiAr DQo+ICsgICAgICAgIEEgY29udGV4dCBtYW5hZ2VyIHRoYXQgImVudGVycyIgdGhlIG5leHQg aXRlbSBhcyBhIG9iamVjdCBhbmQgeWllbGRzIGENCj4gKyAgICAgICAgYERlY29kZXJgIHRo YXQgY2FuIHJlYWQgcHJvcGVydGllcyBmcm9tIGl0LiBJZiB0aGUgbmV4dCBpdGVtIGlzIG5v dCBhbg0KPiArICAgICAgICBvYmplY3QsIHlpZWxkcyBgTm9uZWANCj4gKw0KPiArICAgICAg ICBQcm9wZXJ0aWVzIHdpbGwgYmUgcmVhZCBvdXQgb2YgdGhlIG9iamVjdCB1c2luZyBgcmVh ZF9wcm9wZXJ0eWAgYW5kDQo+ICsgICAgICAgIGByZWFkX29iamVjdF9pZGANCj4gKyAgICAg ICAgIiIiDQo+ICsgICAgICAgIHBhc3MNCj4gKw0KPiArICAgIEBhYnN0cmFjdG1ldGhvZA0K PiArICAgIEBjb250ZXh0bWFuYWdlcg0KPiArICAgIGRlZiByZWFkX3Byb3BlcnR5KHNlbGYs IGtleSk6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBSZWFkIHByb3BlcnR5IGZyb20g b2JqZWN0DQo+ICsNCj4gKyAgICAgICAgQSBjb250ZXh0IG1hbmFnZXIgdGhhdCB5aWVsZHMg YSBgRGVjb2RlcmAgdGhhdCBjYW4gYmUgdXNlZCB0byByZWFkIHRoZQ0KPiArICAgICAgICB2 YWx1ZSBvZiB0aGUgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4ga2V5IGluIGN1cnJlbnQgb2Jq ZWN0LCBvciBgTm9uZWANCj4gKyAgICAgICAgaWYgdGhlIHByb3BlcnR5IGRvZXMgbm90IGV4 aXN0IGluIHRoZSBjdXJyZW50IG9iamVjdC4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAg IHBhc3MNCj4gKw0KPiArICAgIEBhYnN0cmFjdG1ldGhvZA0KPiArICAgIGRlZiBvYmplY3Rf a2V5cyhzZWxmKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIFJlYWQgcHJvcGVydHkg a2V5cyBmcm9tIGFuIG9iamVjdA0KPiArDQo+ICsgICAgICAgIEl0ZXJhdGVzIG92ZXIgYWxs IHRoZSBzZXJpYWxpemVkIGtleXMgZm9yIHRoZSBjdXJyZW50IG9iamVjdA0KPiArICAgICAg ICAiIiINCj4gKyAgICAgICAgcGFzcw0KPiArDQo+ICsgICAgQGFic3RyYWN0bWV0aG9kDQo+ ICsgICAgZGVmIHJlYWRfb2JqZWN0X2lkKHNlbGYsIGFsaWFzPU5vbmUpOg0KPiArICAgICAg ICAiIiINCj4gKyAgICAgICAgUmVhZCBjdXJyZW50IG9iamVjdCBJRCBwcm9wZXJ0eQ0KPiAr DQo+ICsgICAgICAgIFJldHVybnMgdGhlIElEIG9mIHRoZSBjdXJyZW50IG9iamVjdCBpZiBv bmUgaXMgZGVmaW5lZCwgb3IgYE5vbmVgIGlmDQo+ICsgICAgICAgIHRoZSBjdXJyZW50IG9i amVjdCBoYXMgbm8gSUQuDQo+ICsNCj4gKyAgICAgICAgVGhlIElEIG11c3QgYmUgYSBmdWxs eSBxdWFsaWZpZWQgSVJJIG9yIGEgYmxhbmsgbm9kZQ0KPiArDQo+ICsgICAgICAgIElmIGBh bGlhc2AgaXMgcHJvdmlkZWQsIGlzIGlzIGEgaGludCBhcyB0byBhbm90aGVyIG5hbWUgYnkg d2hpY2ggdGhlIElEDQo+ICsgICAgICAgIG1pZ2h0IGJlIGZvdW5kLCBpZiB0aGUgYERlY29k ZXJgIHN1cHBvcnRzIGFsaWFzZXMgZm9yIGFuIElEDQo+ICsgICAgICAgICIiIg0KPiArICAg ICAgICBwYXNzDQo+ICsNCj4gKw0KPiArY2xhc3MgSlNPTkxERGVjb2RlcihEZWNvZGVyKToN Cj4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGF0YSwgcm9vdD1GYWxzZSk6DQo+ICsgICAg ICAgIHNlbGYuZGF0YSA9IGRhdGENCj4gKyAgICAgICAgc2VsZi5yb290ID0gcm9vdA0KPiAr DQo+ICsgICAgZGVmIHJlYWRfdmFsdWUoc2VsZik6DQo+ICsgICAgICAgIGlmIGlzaW5zdGFu Y2Uoc2VsZi5kYXRhLCBzdHIpOg0KPiArICAgICAgICAgICAgdHJ5Og0KPiArICAgICAgICAg ICAgICAgIHJldHVybiBmbG9hdChzZWxmLmRhdGEpDQo+ICsgICAgICAgICAgICBleGNlcHQg VmFsdWVFcnJvcjoNCj4gKyAgICAgICAgICAgICAgICBwYXNzDQo+ICsgICAgICAgIHJldHVy biBzZWxmLmRhdGENCj4gKw0KPiArICAgIGRlZiByZWFkX3N0cmluZyhzZWxmKToNCj4gKyAg ICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmRhdGEsIHN0cik6DQo+ICsgICAgICAgICAgICBy ZXR1cm4gc2VsZi5kYXRhDQo+ICsgICAgICAgIHJldHVybiBOb25lDQo+ICsNCj4gKyAgICBk ZWYgcmVhZF9kYXRldGltZShzZWxmKToNCj4gKyAgICAgICAgcmV0dXJuIHNlbGYucmVhZF9z dHJpbmcoKQ0KPiArDQo+ICsgICAgZGVmIHJlYWRfaW50ZWdlcihzZWxmKToNCj4gKyAgICAg ICAgaWYgaXNpbnN0YW5jZShzZWxmLmRhdGEsIGludCk6DQo+ICsgICAgICAgICAgICByZXR1 cm4gc2VsZi5kYXRhDQo+ICsgICAgICAgIHJldHVybiBOb25lDQo+ICsNCj4gKyAgICBkZWYg cmVhZF9ib29sKHNlbGYpOg0KPiArICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuZGF0YSwg Ym9vbCk6DQo+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5kYXRhDQo+ICsgICAgICAgIHJl dHVybiBOb25lDQo+ICsNCj4gKyAgICBkZWYgcmVhZF9mbG9hdChzZWxmKToNCj4gKyAgICAg ICAgaWYgaXNpbnN0YW5jZShzZWxmLmRhdGEsIChpbnQsIGZsb2F0LCBzdHIpKToNCj4gKyAg ICAgICAgICAgIHJldHVybiBmbG9hdChzZWxmLmRhdGEpDQo+ICsgICAgICAgIHJldHVybiBO b25lDQo+ICsNCj4gKyAgICBkZWYgcmVhZF9pcmkoc2VsZik6DQo+ICsgICAgICAgIGlmIGlz aW5zdGFuY2Uoc2VsZi5kYXRhLCBzdHIpOg0KPiArICAgICAgICAgICAgcmV0dXJuIHNlbGYu ZGF0YQ0KPiArICAgICAgICByZXR1cm4gTm9uZQ0KPiArDQo+ICsgICAgZGVmIHJlYWRfZW51 bShzZWxmLCBlKToNCj4gKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmRhdGEsIHN0cik6 DQo+ICsgICAgICAgICAgICByZXR1cm4gc2VsZi5kYXRhDQo+ICsgICAgICAgIHJldHVybiBO b25lDQo+ICsNCj4gKyAgICBkZWYgcmVhZF9saXN0KHNlbGYpOg0KPiArICAgICAgICBpZiBp c2luc3RhbmNlKHNlbGYuZGF0YSwgKGxpc3QsIHR1cGxlLCBzZXQpKToNCj4gKyAgICAgICAg ICAgIGZvciB2IGluIHNlbGYuZGF0YToNCj4gKyAgICAgICAgICAgICAgICB5aWVsZCBzZWxm Ll9fY2xhc3NfXyh2KQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgeWllbGQg c2VsZg0KPiArDQo+ICsgICAgZGVmIF9fZ2V0X3ZhbHVlKHNlbGYsICprZXlzKToNCj4gKyAg ICAgICAgZm9yIGsgaW4ga2V5czoNCj4gKyAgICAgICAgICAgIGlmIGsgYW5kIGsgaW4gc2Vs Zi5kYXRhOg0KPiArICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmRhdGFba10NCj4gKyAg ICAgICAgcmV0dXJuIE5vbmUNCj4gKw0KPiArICAgIEBjb250ZXh0bWFuYWdlcg0KPiArICAg IGRlZiByZWFkX3Byb3BlcnR5KHNlbGYsIGtleSk6DQo+ICsgICAgICAgIHYgPSBzZWxmLl9f Z2V0X3ZhbHVlKGtleSkNCj4gKyAgICAgICAgaWYgdiBpcyBub3QgTm9uZToNCj4gKyAgICAg ICAgICAgIHlpZWxkIHNlbGYuX19jbGFzc19fKHYpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsg ICAgICAgICAgICB5aWVsZCBOb25lDQo+ICsNCj4gKyAgICBkZWYgb2JqZWN0X2tleXMoc2Vs Zik6DQo+ICsgICAgICAgIGZvciBrZXkgaW4gc2VsZi5kYXRhLmtleXMoKToNCj4gKyAgICAg ICAgICAgIGlmIGtleSBpbiAoIkB0eXBlIiwgInR5cGUiKToNCj4gKyAgICAgICAgICAgICAg ICBjb250aW51ZQ0KPiArICAgICAgICAgICAgaWYgc2VsZi5yb290IGFuZCBrZXkgPT0gIkBj b250ZXh0IjoNCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZQ0KPiArICAgICAgICAgICAg eWllbGQga2V5DQo+ICsNCj4gKyAgICBkZWYgcmVhZF9vYmplY3Qoc2VsZik6DQo+ICsgICAg ICAgIHR5cCA9IHNlbGYuX19nZXRfdmFsdWUoIkB0eXBlIiwgInR5cGUiKQ0KPiArICAgICAg ICBpZiB0eXAgaXMgbm90IE5vbmU6DQo+ICsgICAgICAgICAgICByZXR1cm4gdHlwLCBzZWxm DQo+ICsNCj4gKyAgICAgICAgcmV0dXJuIE5vbmUsIHNlbGYNCj4gKw0KPiArICAgIGRlZiBy ZWFkX29iamVjdF9pZChzZWxmLCBhbGlhcz1Ob25lKToNCj4gKyAgICAgICAgcmV0dXJuIHNl bGYuX19nZXRfdmFsdWUoYWxpYXMsICJAaWQiKQ0KPiArDQo+ICsNCj4gK2NsYXNzIEpTT05M RERlc2VyaWFsaXplcihvYmplY3QpOg0KPiArICAgIGRlZiBkZXNlcmlhbGl6ZV9kYXRhKHNl bGYsIGRhdGEsIG9iamVjdHNldDogU0hBQ0xPYmplY3RTZXQpOg0KPiArICAgICAgICBpZiAi QGdyYXBoIiBpbiBkYXRhOg0KPiArICAgICAgICAgICAgaCA9IEpTT05MRERlY29kZXIoZGF0 YVsiQGdyYXBoIl0sIFRydWUpDQo+ICsgICAgICAgIGVsc2U6DQo+ICsgICAgICAgICAgICBo ID0gSlNPTkxERGVjb2RlcihkYXRhLCBUcnVlKQ0KPiArDQo+ICsgICAgICAgIG9iamVjdHNl dC5kZWNvZGUoaCkNCj4gKw0KPiArICAgIGRlZiByZWFkKHNlbGYsIGYsIG9iamVjdHNldDog U0hBQ0xPYmplY3RTZXQpOg0KPiArICAgICAgICBkYXRhID0ganNvbi5sb2FkKGYpDQo+ICsg ICAgICAgIHNlbGYuZGVzZXJpYWxpemVfZGF0YShkYXRhLCBvYmplY3RzZXQpDQo+ICsNCj4g Kw0KPiArY2xhc3MgRW5jb2RlcihBQkMpOg0KPiArICAgIEBhYnN0cmFjdG1ldGhvZA0KPiAr ICAgIGRlZiB3cml0ZV9zdHJpbmcoc2VsZiwgdik6DQo+ICsgICAgICAgICIiIg0KPiArICAg ICAgICBXcml0ZSBhIHN0cmluZyB2YWx1ZQ0KPiArDQo+ICsgICAgICAgIEVuY29kZXMgdGhl IHZhbHVlIGFzIGEgc3RyaW5nIGluIHRoZSBvdXRwdXQNCj4gKyAgICAgICAgIiIiDQo+ICsg ICAgICAgIHBhc3MNCj4gKw0KPiArICAgIEBhYnN0cmFjdG1ldGhvZA0KPiArICAgIGRlZiB3 cml0ZV9kYXRldGltZShzZWxmLCB2KToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIFdy aXRlIGEgZGF0ZSAmIHRpbWUgc3RyaW5nDQo+ICsNCj4gKyAgICAgICAgRW5jb2RlcyB0aGUg dmFsdWUgYXMgYW4gSVNPIGRhdGV0aW1lIHN0cmluZw0KPiArDQo+ICsgICAgICAgIE5vdGU6 IFRoZSBwcm92aWRlZCBzdHJpbmcgaXMgYWxyZWFkeSBjb3JyZWN0bHkgZW5jb2RlZCBhcyBh biBJU08gZGF0ZXRpbWUNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHBhc3MNCj4gKw0K PiArICAgIEBhYnN0cmFjdG1ldGhvZA0KPiArICAgIGRlZiB3cml0ZV9pbnRlZ2VyKHNlbGYs IHYpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgV3JpdGUgYW4gaW50ZWdlciB2YWx1 ZQ0KPiArDQo+ICsgICAgICAgIEVuY29kZXMgdGhlIHZhbHVlIGFzIGFuIGludGVnZXIgaW4g dGhlIG91dHB1dA0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgcGFzcw0KPiArDQo+ICsg ICAgQGFic3RyYWN0bWV0aG9kDQo+ICsgICAgZGVmIHdyaXRlX2lyaShzZWxmLCB2LCBjb21w YWN0PU5vbmUpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgV3JpdGUgSVJJDQo+ICsN Cj4gKyAgICAgICAgRW5jb2RlcyB0aGUgc3RyaW5nIGFzIGFuIElSSS4gTm90ZSB0aGF0IHRo ZSBzdHJpbmcgd2lsbCBiZSBlaXRoZXIgYQ0KPiArICAgICAgICBmdWxseSBxdWFsaWZpZWQg SVJJIG9yIGEgYmxhbmsgbm9kZSBJRC4gSWYgYGNvbXBhY3RgIGlzIHByb3ZpZGVkIGFuZA0K PiArICAgICAgICB0aGUgc2VyaWFsaXphdGlvbiBzdXBwb3J0cyBjb21wYWN0ZWQgSVJJcywg aXQgc2hvdWxkIGJlIHByZWZlcnJlZCB0bw0KPiArICAgICAgICB0aGUgZnVsbCBJUkkNCj4g KyAgICAgICAgIiIiDQo+ICsgICAgICAgIHBhc3MNCj4gKw0KPiArICAgIEBhYnN0cmFjdG1l dGhvZA0KPiArICAgIGRlZiB3cml0ZV9lbnVtKHNlbGYsIHYsIGUsIGNvbXBhY3Q9Tm9uZSk6 DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBXcml0ZSBlbnVtIHZhbHVlIElSSQ0KPiAr DQo+ICsgICAgICAgIEVuY29kZXMgdGhlIHN0cmluZyBlbnVtIHZhbHVlIElSSS4gTm90ZSB0 aGF0IHRoZSBzdHJpbmcgd2lsbCBiZSBhIGZ1bGx5DQo+ICsgICAgICAgIHF1YWxpZmllZCBJ UkkuIElmIGBjb21wYWN0YCBpcyBwcm92aWRlZCBhbmQgdGhlIHNlcmlhbGl6YXRpb24gc3Vw cG9ydHMNCj4gKyAgICAgICAgY29tcGFjdGVkIElSSXMsIGl0IHNob3VsZCBiZSBwcmVmZXJy ZWQgdG8gdGhlIGZ1bGwgSVJJLg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgcGFzcw0K PiArDQo+ICsgICAgQGFic3RyYWN0bWV0aG9kDQo+ICsgICAgZGVmIHdyaXRlX2Jvb2woc2Vs Ziwgdik6DQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBXcml0ZSBib29sZWFuDQo+ICsN Cj4gKyAgICAgICAgRW5jb2RlcyB0aGUgdmFsdWUgYXMgYSBib29sZWFuIGluIHRoZSBvdXRw dXQNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIHBhc3MNCj4gKw0KPiArICAgIEBhYnN0 cmFjdG1ldGhvZA0KPiArICAgIGRlZiB3cml0ZV9mbG9hdChzZWxmLCB2KToNCj4gKyAgICAg ICAgIiIiDQo+ICsgICAgICAgIFdyaXRlIGZsb2F0DQo+ICsNCj4gKyAgICAgICAgRW5jb2Rl cyB0aGUgdmFsdWUgYXMgYSBmbG9hdGluZyBwb2ludCBudW1iZXIgaW4gdGhlIG91dHB1dA0K PiArICAgICAgICAiIiINCj4gKyAgICAgICAgcGFzcw0KPiArDQo+ICsgICAgQGFic3RyYWN0 bWV0aG9kDQo+ICsgICAgQGNvbnRleHRtYW5hZ2VyDQo+ICsgICAgZGVmIHdyaXRlX29iamVj dChzZWxmLCBvLCBfaWQsIG5lZWRzX2lkKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAg IFdyaXRlIG9iamVjdA0KPiArDQo+ICsgICAgICAgIEEgY29udGV4dCBtYW5hZ2VyIHRoYXQg eWllbGRzIGFuIGBFbmNvZGVyYCB0aGF0IGNhbiBiZSB1c2VkIHRvIGVuY29kZQ0KPiArICAg ICAgICB0aGUgZ2l2ZW4gb2JqZWN0IHByb3BlcnRpZXMuDQo+ICsNCj4gKyAgICAgICAgVGhl IHByb3ZpZGVkIElEIHdpbGwgYWx3YXlzIGJlIGEgdmFsaWQgSUQgKGV2ZW4gaWYgby5faWQg aXMgYE5vbmVgKSwgaW4NCj4gKyAgICAgICAgY2FzZSB0aGUgYEVuY29kZXJgIF9tdXN0XyBo YXZlIGFuIElELiBgbmVlZHNfaWRgIGlzIGEgaGludCB0byBpbmRpY2F0ZQ0KPiArICAgICAg ICB0byB0aGUgYEVuY29kZXJgIGlmIGFuIElEIG11c3QgYmUgd3JpdHRlbiBvciBub3QgKGlm IHRoYXQgaXMgZXZlbiBhbg0KPiArICAgICAgICBvcHRpb24pLiBJZiBpdCBpcyBgVHJ1ZWAs IHRoZSBgRW5jb2RlcmAgbXVzdCBlbmNvZGUgYW4gSUQgZm9yIHRoZQ0KPiArICAgICAgICBv YmplY3QuIElmIGBGYWxzZWAsIHRoZSBlbmNvZGVyIGlzIG5vdCByZXF1aXJlZCB0byBlbmNv ZGUgYW4gSUQgYW5kIG1heQ0KPiArICAgICAgICBvbWl0IGl0Lg0KPiArDQo+ICsgICAgICAg IFRoZSBJRCB3aWxsIGJlIGVpdGhlciBhIGZ1bGx5IHF1YWxpZmllZCBJUkksIG9yIGEgYmxh bmsgbm9kZSBJUkkuDQo+ICsNCj4gKyAgICAgICAgUHJvcGVydGllcyB3aWxsIGJlIHdyaXR0 ZW4gdGhlIG9iamVjdCB1c2luZyBgd3JpdGVfcHJvcGVydHlgDQo+ICsgICAgICAgICIiIg0K PiArICAgICAgICBwYXNzDQo+ICsNCj4gKyAgICBAYWJzdHJhY3RtZXRob2QNCj4gKyAgICBA Y29udGV4dG1hbmFnZXINCj4gKyAgICBkZWYgd3JpdGVfcHJvcGVydHkoc2VsZiwgaXJpLCBj b21wYWN0PU5vbmUpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgV3JpdGUgb2JqZWN0 IHByb3BlcnR5DQo+ICsNCj4gKyAgICAgICAgQSBjb250ZXh0IG1hbmFnZXIgdGhhdCB5aWVs ZHMgYW4gYEVuY29kZXJgIHRoYXQgY2FuIGJlIHVzZWQgdG8gZW5jb2RlDQo+ICsgICAgICAg IHRoZSB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5IHdpdGggdGhlIGdpdmVuIElSSSBpbiB0aGUg Y3VycmVudCBvYmplY3QNCj4gKw0KPiArICAgICAgICBOb3RlIHRoYXQgdGhlIElSSSB3aWxs IGJlIGZ1bGx5IHF1YWxpZmllZC4gSWYgYGNvbXBhY3RgIGlzIHByb3ZpZGVkIGFuZA0KPiAr ICAgICAgICB0aGUgc2VyaWFsaXphdGlvbiBzdXBwb3J0cyBjb21wYWN0ZWQgSVJJcywgaXQg c2hvdWxkIGJlIHByZWZlcnJlZCB0bw0KPiArICAgICAgICB0aGUgZnVsbCBJUkkuDQo+ICsg ICAgICAgICIiIg0KPiArICAgICAgICBwYXNzDQo+ICsNCj4gKyAgICBAYWJzdHJhY3RtZXRo b2QNCj4gKyAgICBAY29udGV4dG1hbmFnZXINCj4gKyAgICBkZWYgd3JpdGVfbGlzdChzZWxm KToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIFdyaXRlIGxpc3QNCj4gKw0KPiArICAg ICAgICBBIGNvbnRleHQgbWFuYWdlciB0aGF0IHlpZWxkcyBhbiBgRW5jb2RlcmAgdGhhdCBj YW4gYmUgdXNlZCB0byBlbmNvZGUgYQ0KPiArICAgICAgICBsaXN0Lg0KPiArDQo+ICsgICAg ICAgIEVhY2ggaXRlbSBvZiB0aGUgbGlzdCB3aWxsIGJlIGFkZGVkIHVzaW5nIGB3cml0ZV9s aXN0X2l0ZW1gDQo+ICsgICAgICAgICIiIg0KPiArICAgICAgICBwYXNzDQo+ICsNCj4gKyAg ICBAYWJzdHJhY3RtZXRob2QNCj4gKyAgICBAY29udGV4dG1hbmFnZXINCj4gKyAgICBkZWYg d3JpdGVfbGlzdF9pdGVtKHNlbGYpOg0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAgV3Jp dGUgbGlzdCBpdGVtDQo+ICsNCj4gKyAgICAgICAgQSBjb250ZXh0IG1hbmFnZXIgdGhhdCB5 aWVsZHMgYW4gYEVuY29kZXJgIHRoYXQgY2FuIGJlIHVzZWQgdG8gZW5jb2RlDQo+ICsgICAg ICAgIHRoZSB2YWx1ZSBmb3IgYSBsaXN0IGl0ZW0NCj4gKyAgICAgICAgIiIiDQo+ICsgICAg ICAgIHBhc3MNCj4gKw0KPiArDQo+ICtjbGFzcyBKU09OTERFbmNvZGVyKEVuY29kZXIpOg0K PiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhPU5vbmUpOg0KPiArICAgICAgICBzZWxm LmRhdGEgPSBkYXRhDQo+ICsNCj4gKyAgICBkZWYgd3JpdGVfc3RyaW5nKHNlbGYsIHYpOg0K PiArICAgICAgICBzZWxmLmRhdGEgPSB2DQo+ICsNCj4gKyAgICBkZWYgd3JpdGVfZGF0ZXRp bWUoc2VsZiwgdik6DQo+ICsgICAgICAgIHNlbGYuZGF0YSA9IHYNCj4gKw0KPiArICAgIGRl ZiB3cml0ZV9pbnRlZ2VyKHNlbGYsIHYpOg0KPiArICAgICAgICBzZWxmLmRhdGEgPSB2DQo+ ICsNCj4gKyAgICBkZWYgd3JpdGVfaXJpKHNlbGYsIHYsIGNvbXBhY3Q9Tm9uZSk6DQo+ICsg ICAgICAgIHNlbGYud3JpdGVfc3RyaW5nKGNvbXBhY3Qgb3IgdikNCj4gKw0KPiArICAgIGRl ZiB3cml0ZV9lbnVtKHNlbGYsIHYsIGUsIGNvbXBhY3Q9Tm9uZSk6DQo+ICsgICAgICAgIHNl bGYud3JpdGVfc3RyaW5nKGNvbXBhY3Qgb3IgdikNCj4gKw0KPiArICAgIGRlZiB3cml0ZV9i b29sKHNlbGYsIHYpOg0KPiArICAgICAgICBzZWxmLmRhdGEgPSB2DQo+ICsNCj4gKyAgICBk ZWYgd3JpdGVfZmxvYXQoc2VsZiwgdik6DQo+ICsgICAgICAgIHNlbGYuZGF0YSA9IHN0cih2 KQ0KPiArDQo+ICsgICAgQGNvbnRleHRtYW5hZ2VyDQo+ICsgICAgZGVmIHdyaXRlX3Byb3Bl cnR5KHNlbGYsIGlyaSwgY29tcGFjdD1Ob25lKToNCj4gKyAgICAgICAgcyA9IHNlbGYuX19j bGFzc19fKE5vbmUpDQo+ICsgICAgICAgIHlpZWxkIHMNCj4gKyAgICAgICAgaWYgcy5kYXRh IGlzIG5vdCBOb25lOg0KPiArICAgICAgICAgICAgc2VsZi5kYXRhW2NvbXBhY3Qgb3IgaXJp XSA9IHMuZGF0YQ0KPiArDQo+ICsgICAgQGNvbnRleHRtYW5hZ2VyDQo+ICsgICAgZGVmIHdy aXRlX29iamVjdChzZWxmLCBvLCBfaWQsIG5lZWRzX2lkKToNCj4gKyAgICAgICAgc2VsZi5k YXRhID0gew0KPiArICAgICAgICAgICAgInR5cGUiOiBvLkNPTVBBQ1RfVFlQRSBvciBvLlRZ UEUsDQo+ICsgICAgICAgIH0NCj4gKyAgICAgICAgaWYgbmVlZHNfaWQ6DQo+ICsgICAgICAg ICAgICBzZWxmLmRhdGFbby5JRF9BTElBUyBvciAiQGlkIl0gPSBfaWQNCj4gKyAgICAgICAg eWllbGQgc2VsZg0KPiArDQo+ICsgICAgQGNvbnRleHRtYW5hZ2VyDQo+ICsgICAgZGVmIHdy aXRlX2xpc3Qoc2VsZik6DQo+ICsgICAgICAgIHNlbGYuZGF0YSA9IFtdDQo+ICsgICAgICAg IHlpZWxkIHNlbGYNCj4gKyAgICAgICAgaWYgbm90IHNlbGYuZGF0YToNCj4gKyAgICAgICAg ICAgIHNlbGYuZGF0YSA9IE5vbmUNCj4gKw0KPiArICAgIEBjb250ZXh0bWFuYWdlcg0KPiAr ICAgIGRlZiB3cml0ZV9saXN0X2l0ZW0oc2VsZik6DQo+ICsgICAgICAgIHMgPSBzZWxmLl9f Y2xhc3NfXyhOb25lKQ0KPiArICAgICAgICB5aWVsZCBzDQo+ICsgICAgICAgIGlmIHMuZGF0 YSBpcyBub3QgTm9uZToNCj4gKyAgICAgICAgICAgIHNlbGYuZGF0YS5hcHBlbmQocy5kYXRh KQ0KPiArDQo+ICsNCj4gK2NsYXNzIEpTT05MRFNlcmlhbGl6ZXIob2JqZWN0KToNCj4gKyAg ICBkZWYgX19pbml0X18oc2VsZiwgKiphcmdzKToNCj4gKyAgICAgICAgc2VsZi5hcmdzID0g YXJncw0KPiArDQo+ICsgICAgZGVmIHNlcmlhbGl6ZV9kYXRhKA0KPiArICAgICAgICBzZWxm LA0KPiArICAgICAgICBvYmplY3RzZXQ6IFNIQUNMT2JqZWN0U2V0LA0KPiArICAgICAgICBm b3JjZV9hdF9ncmFwaD1GYWxzZSwNCj4gKyAgICApOg0KPiArICAgICAgICBoID0gSlNPTkxE RW5jb2RlcigpDQo+ICsgICAgICAgIG9iamVjdHNldC5lbmNvZGUoaCwgZm9yY2VfYXRfZ3Jh cGgpDQo+ICsgICAgICAgIGRhdGEgPSB7fQ0KPiArICAgICAgICBpZiBsZW4oQ09OVEVYVF9V UkxTKSA9PSAxOg0KPiArICAgICAgICAgICAgZGF0YVsiQGNvbnRleHQiXSA9IENPTlRFWFRf VVJMU1swXQ0KPiArICAgICAgICBlbGlmIENPTlRFWFRfVVJMUzoNCj4gKyAgICAgICAgICAg IGRhdGFbIkBjb250ZXh0Il0gPSBDT05URVhUX1VSTFMNCj4gKw0KPiArICAgICAgICBpZiBp c2luc3RhbmNlKGguZGF0YSwgbGlzdCk6DQo+ICsgICAgICAgICAgICBkYXRhWyJAZ3JhcGgi XSA9IGguZGF0YQ0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgZm9yIGssIHYg aW4gaC5kYXRhLml0ZW1zKCk6DQo+ICsgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYNCj4g Kw0KPiArICAgICAgICByZXR1cm4gZGF0YQ0KPiArDQo+ICsgICAgZGVmIHdyaXRlKA0KPiAr ICAgICAgICBzZWxmLA0KPiArICAgICAgICBvYmplY3RzZXQ6IFNIQUNMT2JqZWN0U2V0LA0K PiArICAgICAgICBmLA0KPiArICAgICAgICBmb3JjZV9hdF9ncmFwaD1GYWxzZSwNCj4gKyAg ICAgICAgKiprd2FyZ3MsDQo+ICsgICAgKToNCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAg IFdyaXRlIGEgU0hBQ0xPYmplY3RTZXQgdG8gYSBKU09OIExEIGZpbGUNCj4gKw0KPiArICAg ICAgICBJZiBmb3JjZV9hdF9ncmFwaCBpcyBUcnVlLCBhIEBncmFwaCBub2RlIHdpbGwgYWx3 YXlzIGJlIHdyaXR0ZW4NCj4gKyAgICAgICAgIiIiDQo+ICsgICAgICAgIGRhdGEgPSBzZWxm LnNlcmlhbGl6ZV9kYXRhKG9iamVjdHNldCwgZm9yY2VfYXRfZ3JhcGgpDQo+ICsNCj4gKyAg ICAgICAgYXJncyA9IHsqKnNlbGYuYXJncywgKiprd2FyZ3N9DQo+ICsNCj4gKyAgICAgICAg c2hhMSA9IGhhc2hsaWIuc2hhMSgpDQo+ICsgICAgICAgIGZvciBjaHVuayBpbiBqc29uLkpT T05FbmNvZGVyKCoqYXJncykuaXRlcmVuY29kZShkYXRhKToNCj4gKyAgICAgICAgICAgIGNo dW5rID0gY2h1bmsuZW5jb2RlKCJ1dGYtOCIpDQo+ICsgICAgICAgICAgICBmLndyaXRlKGNo dW5rKQ0KPiArICAgICAgICAgICAgc2hhMS51cGRhdGUoY2h1bmspDQo+ICsNCj4gKyAgICAg ICAgcmV0dXJuIHNoYTEuaGV4ZGlnZXN0KCkNCj4gKw0KPiArDQo+ICtjbGFzcyBKU09OTERJ bmxpbmVFbmNvZGVyKEVuY29kZXIpOg0KPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmLCBz aGExKToNCj4gKyAgICAgICAgc2VsZi5mID0gZg0KPiArICAgICAgICBzZWxmLmNvbW1hID0g RmFsc2UNCj4gKyAgICAgICAgc2VsZi5zaGExID0gc2hhMQ0KPiArDQo+ICsgICAgZGVmIHdy aXRlKHNlbGYsIHMpOg0KPiArICAgICAgICBzID0gcy5lbmNvZGUoInV0Zi04IikNCj4gKyAg ICAgICAgc2VsZi5mLndyaXRlKHMpDQo+ICsgICAgICAgIHNlbGYuc2hhMS51cGRhdGUocykN Cj4gKw0KPiArICAgIGRlZiBfd3JpdGVfY29tbWEoc2VsZik6DQo+ICsgICAgICAgIGlmIHNl bGYuY29tbWE6DQo+ICsgICAgICAgICAgICBzZWxmLndyaXRlKCIsIikNCj4gKyAgICAgICAg ICAgIHNlbGYuY29tbWEgPSBGYWxzZQ0KPiArDQo+ICsgICAgZGVmIHdyaXRlX3N0cmluZyhz ZWxmLCB2KToNCj4gKyAgICAgICAgc2VsZi53cml0ZShqc29uLmR1bXBzKHYpKQ0KPiArDQo+ ICsgICAgZGVmIHdyaXRlX2RhdGV0aW1lKHNlbGYsIHYpOg0KPiArICAgICAgICBzZWxmLndy aXRlX3N0cmluZyh2KQ0KPiArDQo+ICsgICAgZGVmIHdyaXRlX2ludGVnZXIoc2VsZiwgdik6 DQo+ICsgICAgICAgIHNlbGYud3JpdGUoZiJ7dn0iKQ0KPiArDQo+ICsgICAgZGVmIHdyaXRl X2lyaShzZWxmLCB2LCBjb21wYWN0PU5vbmUpOg0KPiArICAgICAgICBzZWxmLndyaXRlX3N0 cmluZyhjb21wYWN0IG9yIHYpDQo+ICsNCj4gKyAgICBkZWYgd3JpdGVfZW51bShzZWxmLCB2 LCBlLCBjb21wYWN0PU5vbmUpOg0KPiArICAgICAgICBzZWxmLndyaXRlX2lyaSh2LCBjb21w YWN0KQ0KPiArDQo+ICsgICAgZGVmIHdyaXRlX2Jvb2woc2VsZiwgdik6DQo+ICsgICAgICAg IGlmIHY6DQo+ICsgICAgICAgICAgICBzZWxmLndyaXRlKCJ0cnVlIikNCj4gKyAgICAgICAg ZWxzZToNCj4gKyAgICAgICAgICAgIHNlbGYud3JpdGUoImZhbHNlIikNCj4gKw0KPiArICAg IGRlZiB3cml0ZV9mbG9hdChzZWxmLCB2KToNCj4gKyAgICAgICAgc2VsZi53cml0ZShqc29u LmR1bXBzKHN0cih2KSkpDQo+ICsNCj4gKyAgICBAY29udGV4dG1hbmFnZXINCj4gKyAgICBk ZWYgd3JpdGVfcHJvcGVydHkoc2VsZiwgaXJpLCBjb21wYWN0PU5vbmUpOg0KPiArICAgICAg ICBzZWxmLl93cml0ZV9jb21tYSgpDQo+ICsgICAgICAgIHNlbGYud3JpdGVfc3RyaW5nKGNv bXBhY3Qgb3IgaXJpKQ0KPiArICAgICAgICBzZWxmLndyaXRlKCI6IikNCj4gKyAgICAgICAg eWllbGQgc2VsZg0KPiArICAgICAgICBzZWxmLmNvbW1hID0gVHJ1ZQ0KPiArDQo+ICsgICAg QGNvbnRleHRtYW5hZ2VyDQo+ICsgICAgZGVmIHdyaXRlX29iamVjdChzZWxmLCBvLCBfaWQs IG5lZWRzX2lkKToNCj4gKyAgICAgICAgc2VsZi5fd3JpdGVfY29tbWEoKQ0KPiArDQo+ICsg ICAgICAgIHNlbGYud3JpdGUoInsiKQ0KPiArICAgICAgICBzZWxmLndyaXRlX3N0cmluZygi dHlwZSIpDQo+ICsgICAgICAgIHNlbGYud3JpdGUoIjoiKQ0KPiArICAgICAgICBzZWxmLndy aXRlX3N0cmluZyhvLkNPTVBBQ1RfVFlQRSBvciBvLlRZUEUpDQo+ICsgICAgICAgIHNlbGYu Y29tbWEgPSBUcnVlDQo+ICsNCj4gKyAgICAgICAgaWYgbmVlZHNfaWQ6DQo+ICsgICAgICAg ICAgICBzZWxmLl93cml0ZV9jb21tYSgpDQo+ICsgICAgICAgICAgICBzZWxmLndyaXRlX3N0 cmluZyhvLklEX0FMSUFTIG9yICJAaWQiKQ0KPiArICAgICAgICAgICAgc2VsZi53cml0ZSgi OiIpDQo+ICsgICAgICAgICAgICBzZWxmLndyaXRlX3N0cmluZyhfaWQpDQo+ICsgICAgICAg ICAgICBzZWxmLmNvbW1hID0gVHJ1ZQ0KPiArDQo+ICsgICAgICAgIHNlbGYuY29tbWEgPSBU cnVlDQo+ICsgICAgICAgIHlpZWxkIHNlbGYNCj4gKw0KPiArICAgICAgICBzZWxmLndyaXRl KCJ9IikNCj4gKyAgICAgICAgc2VsZi5jb21tYSA9IFRydWUNCj4gKw0KPiArICAgIEBjb250 ZXh0bWFuYWdlcg0KPiArICAgIGRlZiB3cml0ZV9saXN0KHNlbGYpOg0KPiArICAgICAgICBz ZWxmLl93cml0ZV9jb21tYSgpDQo+ICsgICAgICAgIHNlbGYud3JpdGUoIlsiKQ0KPiArICAg ICAgICB5aWVsZCBzZWxmLl9fY2xhc3NfXyhzZWxmLmYsIHNlbGYuc2hhMSkNCj4gKyAgICAg ICAgc2VsZi53cml0ZSgiXSIpDQo+ICsgICAgICAgIHNlbGYuY29tbWEgPSBUcnVlDQo+ICsN Cj4gKyAgICBAY29udGV4dG1hbmFnZXINCj4gKyAgICBkZWYgd3JpdGVfbGlzdF9pdGVtKHNl bGYpOg0KPiArICAgICAgICBzZWxmLl93cml0ZV9jb21tYSgpDQo+ICsgICAgICAgIHlpZWxk IHNlbGYuX19jbGFzc19fKHNlbGYuZiwgc2VsZi5zaGExKQ0KPiArICAgICAgICBzZWxmLmNv bW1hID0gVHJ1ZQ0KPiArDQo+ICsNCj4gK2NsYXNzIEpTT05MRElubGluZVNlcmlhbGl6ZXIo b2JqZWN0KToNCj4gKyAgICBkZWYgd3JpdGUoDQo+ICsgICAgICAgIHNlbGYsDQo+ICsgICAg ICAgIG9iamVjdHNldDogU0hBQ0xPYmplY3RTZXQsDQo+ICsgICAgICAgIGYsDQo+ICsgICAg ICAgIGZvcmNlX2F0X2dyYXBoPUZhbHNlLA0KPiArICAgICk6DQo+ICsgICAgICAgICIiIg0K PiArICAgICAgICBXcml0ZSBhIFNIQUNMT2JqZWN0U2V0IHRvIGEgSlNPTiBMRCBmaWxlDQo+ ICsNCj4gKyAgICAgICAgTm90ZTogZm9yY2VfYXRfZ3JhcGggaXMgaW5jbHVkZWQgZm9yIGNv bXBhdGliaWxpdHksIGJ1dCBpZ25vcmVkLiBUaGlzDQo+ICsgICAgICAgIHNlcmlhbGl6ZXIg YWx3YXlzIHdyaXRlcyBvdXQgYSBncmFwaA0KPiArICAgICAgICAiIiINCj4gKyAgICAgICAg c2hhMSA9IGhhc2hsaWIuc2hhMSgpDQo+ICsgICAgICAgIGggPSBKU09OTERJbmxpbmVFbmNv ZGVyKGYsIHNoYTEpDQo+ICsgICAgICAgIGgud3JpdGUoJ3siQGNvbnRleHQiOicpDQo+ICsg ICAgICAgIGlmIGxlbihDT05URVhUX1VSTFMpID09IDE6DQo+ICsgICAgICAgICAgICBoLndy aXRlKGYnIntDT05URVhUX1VSTFNbMF19IicpDQo+ICsgICAgICAgIGVsaWYgQ09OVEVYVF9V UkxTOg0KPiArICAgICAgICAgICAgaC53cml0ZSgnWyInKQ0KPiArICAgICAgICAgICAgaC53 cml0ZSgnIiwiJy5qb2luKENPTlRFWFRfVVJMUykpDQo+ICsgICAgICAgICAgICBoLndyaXRl KCciXScpDQo+ICsgICAgICAgIGgud3JpdGUoIiwiKQ0KPiArDQo+ICsgICAgICAgIGgud3Jp dGUoJyJAZ3JhcGgiOicpDQo+ICsNCj4gKyAgICAgICAgb2JqZWN0c2V0LmVuY29kZShoLCBU cnVlKQ0KPiArICAgICAgICBoLndyaXRlKCJ9IikNCj4gKyAgICAgICAgcmV0dXJuIHNoYTEu aGV4ZGlnZXN0KCkNCj4gKw0KPiArDQo+ICtkZWYgcHJpbnRfdHJlZShvYmplY3RzLCBhbGxf ZmllbGRzPUZhbHNlKToNCj4gKyAgICAiIiINCj4gKyAgICBQcmludCBvYmplY3QgdHJlZQ0K PiArICAgICIiIg0KPiArICAgIHNlZW4gPSBzZXQoKQ0KPiArDQo+ICsgICAgZGVmIGNhbGxi YWNrKHZhbHVlLCBwYXRoKToNCj4gKyAgICAgICAgbm9ubG9jYWwgc2Vlbg0KPiArDQo+ICsg ICAgICAgIHMgPSAoIiAgIiAqIChsZW4ocGF0aCkgLSAxKSkgKyBmIntwYXRoWy0xXX0iDQo+ ICsgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIFNIQUNMT2JqZWN0KToNCj4gKyAgICAg ICAgICAgIHMgKz0gZiIge3ZhbHVlfSAoe2lkKHZhbHVlKX0pIg0KPiArICAgICAgICAgICAg aXNfZW1wdHkgPSBGYWxzZQ0KPiArICAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIExp c3RQcm94eSk6DQo+ICsgICAgICAgICAgICBpc19lbXB0eSA9IGxlbih2YWx1ZSkgPT0gMA0K PiArICAgICAgICAgICAgaWYgaXNfZW1wdHk6DQo+ICsgICAgICAgICAgICAgICAgcyArPSAi IFtdIg0KPiArICAgICAgICBlbHNlOg0KPiArICAgICAgICAgICAgcyArPSBmIiB7dmFsdWUh cn0iDQo+ICsgICAgICAgICAgICBpc19lbXB0eSA9IHZhbHVlIGlzIE5vbmUNCj4gKw0KPiAr ICAgICAgICBpZiBhbGxfZmllbGRzIG9yIG5vdCBpc19lbXB0eToNCj4gKyAgICAgICAgICAg IHByaW50KHMpDQo+ICsNCj4gKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgU0hBQ0xP YmplY3QpOg0KPiArICAgICAgICAgICAgaWYgdmFsdWUgaW4gc2VlbjoNCj4gKyAgICAgICAg ICAgICAgICByZXR1cm4gRmFsc2UNCj4gKyAgICAgICAgICAgIHNlZW4uYWRkKHZhbHVlKQ0K PiArICAgICAgICAgICAgcmV0dXJuIFRydWUNCj4gKw0KPiArICAgICAgICByZXR1cm4gVHJ1 ZQ0KPiArDQo+ICsgICAgZm9yIG8gaW4gb2JqZWN0czoNCj4gKyAgICAgICAgby53YWxrKGNh bGxiYWNrKQ0KPiArDQo+ICsNCj4gKyMgZm10OiBvZmYNCj4gKyIiIkZvcm1hdCBHdWFyZCIi Ig0KPiArDQo+ICsNCj4gK0NPTlRFWFRfVVJMUyA9IFsNCj4gKyAgICAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvc3BkeC1jb250ZXh0Lmpzb25sZCIsDQo+ICtdDQo+ICsNCj4gK19O SV9FTkNPREVfQ09OVEVYVCA9IHsNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQUkvRW5lcmd5VW5pdFR5cGUva2lsb3dhdHRIb3VyIjogImFpX0VuZXJneVVu aXRUeXBlOmtpbG93YXR0SG91ciIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0FJL0VuZXJneVVuaXRUeXBlL21lZ2Fqb3VsZSI6ICJhaV9FbmVyZ3lVbml0 VHlwZTptZWdham91bGUiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9BSS9FbmVyZ3lVbml0VHlwZS9vdGhlciI6ICJhaV9FbmVyZ3lVbml0VHlwZTpvdGhl ciIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0FJL1NhZmV0 eVJpc2tBc3Nlc3NtZW50VHlwZS9oaWdoIjogImFpX1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlw ZTpoaWdoIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkv U2FmZXR5Umlza0Fzc2Vzc21lbnRUeXBlL2xvdyI6ICJhaV9TYWZldHlSaXNrQXNzZXNzbWVu dFR5cGU6bG93IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv QUkvU2FmZXR5Umlza0Fzc2Vzc21lbnRUeXBlL21lZGl1bSI6ICJhaV9TYWZldHlSaXNrQXNz ZXNzbWVudFR5cGU6bWVkaXVtIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQUkvU2FmZXR5Umlza0Fzc2Vzc21lbnRUeXBlL3NlcmlvdXMiOiAiYWlfU2Fm ZXR5Umlza0Fzc2Vzc21lbnRUeXBlOnNlcmlvdXMiLA0KPiArICAgICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0Fubm90YXRpb25UeXBlL290aGVyIjogIkFubm90 YXRpb25UeXBlOm90aGVyIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9Bbm5vdGF0aW9uVHlwZS9yZXZpZXciOiAiQW5ub3RhdGlvblR5cGU6cmV2 aWV3IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9F eHRlcm5hbElkZW50aWZpZXJUeXBlL2NwZTIyIjogIkV4dGVybmFsSWRlbnRpZmllclR5cGU6 Y3BlMjIiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsSWRlbnRpZmllclR5cGUvY3BlMjMiOiAiRXh0ZXJuYWxJZGVudGlmaWVyVHlw ZTpjcGUyMyIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS9jdmUiOiAiRXh0ZXJuYWxJZGVudGlmaWVyVHlw ZTpjdmUiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsSWRlbnRpZmllclR5cGUvZW1haWwiOiAiRXh0ZXJuYWxJZGVudGlmaWVyVHlw ZTplbWFpbCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS9naXRvaWQiOiAiRXh0ZXJuYWxJZGVudGlmaWVy VHlwZTpnaXRvaWQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL0V4dGVybmFsSWRlbnRpZmllclR5cGUvb3RoZXIiOiAiRXh0ZXJuYWxJZGVudGlm aWVyVHlwZTpvdGhlciIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS9wYWNrYWdlVXJsIjogIkV4dGVybmFs SWRlbnRpZmllclR5cGU6cGFja2FnZVVybCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS9zZWN1cml0eU90 aGVyIjogIkV4dGVybmFsSWRlbnRpZmllclR5cGU6c2VjdXJpdHlPdGhlciIsDQo+ICsgICAg Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlm aWVyVHlwZS9zd2hpZCI6ICJFeHRlcm5hbElkZW50aWZpZXJUeXBlOnN3aGlkIiwNCj4gKyAg ICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50 aWZpZXJUeXBlL3N3aWQiOiAiRXh0ZXJuYWxJZGVudGlmaWVyVHlwZTpzd2lkIiwNCj4gKyAg ICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50 aWZpZXJUeXBlL3VybFNjaGVtZSI6ICJFeHRlcm5hbElkZW50aWZpZXJUeXBlOnVybFNjaGVt ZSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0 ZXJuYWxSZWZUeXBlL2FsdERvd25sb2FkTG9jYXRpb24iOiAiRXh0ZXJuYWxSZWZUeXBlOmFs dERvd25sb2FkTG9jYXRpb24iLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9hbHRXZWJQYWdlIjogIkV4dGVybmFsUmVm VHlwZTphbHRXZWJQYWdlIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvYmluYXJ5QXJ0aWZhY3QiOiAiRXh0ZXJuYWxS ZWZUeXBlOmJpbmFyeUFydGlmYWN0IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvYm93ZXIiOiAiRXh0ZXJuYWxSZWZU eXBlOmJvd2VyIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9FeHRlcm5hbFJlZlR5cGUvYnVpbGRNZXRhIjogIkV4dGVybmFsUmVmVHlwZTpidWls ZE1ldGEiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsUmVmVHlwZS9idWlsZFN5c3RlbSI6ICJFeHRlcm5hbFJlZlR5cGU6YnVpbGRT eXN0ZW0iLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsUmVmVHlwZS9jZXJ0aWZpY2F0aW9uUmVwb3J0IjogIkV4dGVybmFsUmVmVHlw ZTpjZXJ0aWZpY2F0aW9uUmVwb3J0IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvY2hhdCI6ICJFeHRlcm5hbFJlZlR5 cGU6Y2hhdCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvRXh0ZXJuYWxSZWZUeXBlL2NvbXBvbmVudEFuYWx5c2lzUmVwb3J0IjogIkV4dGVybmFs UmVmVHlwZTpjb21wb25lbnRBbmFseXNpc1JlcG9ydCIsDQo+ICsgICAgImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2N3ZSI6ICJFeHRl cm5hbFJlZlR5cGU6Y3dlIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvZG9jdW1lbnRhdGlvbiI6ICJFeHRlcm5hbFJl ZlR5cGU6ZG9jdW1lbnRhdGlvbiIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2R5bmFtaWNBbmFseXNpc1JlcG9ydCI6 ICJFeHRlcm5hbFJlZlR5cGU6ZHluYW1pY0FuYWx5c2lzUmVwb3J0IiwNCj4gKyAgICAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvZW9s Tm90aWNlIjogIkV4dGVybmFsUmVmVHlwZTplb2xOb3RpY2UiLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9leHBvcnRD b250cm9sQXNzZXNzbWVudCI6ICJFeHRlcm5hbFJlZlR5cGU6ZXhwb3J0Q29udHJvbEFzc2Vz c21lbnQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsUmVmVHlwZS9mdW5kaW5nIjogIkV4dGVybmFsUmVmVHlwZTpmdW5kaW5nIiwN Cj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5h bFJlZlR5cGUvaXNzdWVUcmFja2VyIjogIkV4dGVybmFsUmVmVHlwZTppc3N1ZVRyYWNrZXIi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVy bmFsUmVmVHlwZS9saWNlbnNlIjogIkV4dGVybmFsUmVmVHlwZTpsaWNlbnNlIiwNCj4gKyAg ICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5 cGUvbWFpbGluZ0xpc3QiOiAiRXh0ZXJuYWxSZWZUeXBlOm1haWxpbmdMaXN0IiwNCj4gKyAg ICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5 cGUvbWF2ZW5DZW50cmFsIjogIkV4dGVybmFsUmVmVHlwZTptYXZlbkNlbnRyYWwiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVm VHlwZS9tZXRyaWNzIjogIkV4dGVybmFsUmVmVHlwZTptZXRyaWNzIiwNCj4gKyAgICAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvbnBt IjogIkV4dGVybmFsUmVmVHlwZTpucG0iLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9udWdldCI6ICJFeHRlcm5hbFJl ZlR5cGU6bnVnZXQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL0V4dGVybmFsUmVmVHlwZS9vdGhlciI6ICJFeHRlcm5hbFJlZlR5cGU6b3RoZXIi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVy bmFsUmVmVHlwZS9wcml2YWN5QXNzZXNzbWVudCI6ICJFeHRlcm5hbFJlZlR5cGU6cHJpdmFj eUFzc2Vzc21lbnQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL0V4dGVybmFsUmVmVHlwZS9wcm9kdWN0TWV0YWRhdGEiOiAiRXh0ZXJuYWxSZWZU eXBlOnByb2R1Y3RNZXRhZGF0YSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3B1cmNoYXNlT3JkZXIiOiAiRXh0ZXJu YWxSZWZUeXBlOnB1cmNoYXNlT3JkZXIiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9xdWFsaXR5QXNzZXNzbWVudFJl cG9ydCI6ICJFeHRlcm5hbFJlZlR5cGU6cXVhbGl0eUFzc2Vzc21lbnRSZXBvcnQiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVm VHlwZS9yZWxlYXNlSGlzdG9yeSI6ICJFeHRlcm5hbFJlZlR5cGU6cmVsZWFzZUhpc3Rvcnki LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVy bmFsUmVmVHlwZS9yZWxlYXNlTm90ZXMiOiAiRXh0ZXJuYWxSZWZUeXBlOnJlbGVhc2VOb3Rl cyIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0 ZXJuYWxSZWZUeXBlL3Jpc2tBc3Nlc3NtZW50IjogIkV4dGVybmFsUmVmVHlwZTpyaXNrQXNz ZXNzbWVudCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvRXh0ZXJuYWxSZWZUeXBlL3J1bnRpbWVBbmFseXNpc1JlcG9ydCI6ICJFeHRlcm5hbFJl ZlR5cGU6cnVudGltZUFuYWx5c2lzUmVwb3J0IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJlU29mdHdhcmVB dHRlc3RhdGlvbiI6ICJFeHRlcm5hbFJlZlR5cGU6c2VjdXJlU29mdHdhcmVBdHRlc3RhdGlv biIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0 ZXJuYWxSZWZUeXBlL3NlY3VyaXR5QWR2ZXJzYXJ5TW9kZWwiOiAiRXh0ZXJuYWxSZWZUeXBl OnNlY3VyaXR5QWR2ZXJzYXJ5TW9kZWwiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zZWN1cml0eUFkdmlzb3J5Ijog IkV4dGVybmFsUmVmVHlwZTpzZWN1cml0eUFkdmlzb3J5IiwNCj4gKyAgICAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlG aXgiOiAiRXh0ZXJuYWxSZWZUeXBlOnNlY3VyaXR5Rml4IiwNCj4gKyAgICAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlP dGhlciI6ICJFeHRlcm5hbFJlZlR5cGU6c2VjdXJpdHlPdGhlciIsDQo+ICsgICAgImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3NlY3Vy aXR5UGVuVGVzdFJlcG9ydCI6ICJFeHRlcm5hbFJlZlR5cGU6c2VjdXJpdHlQZW5UZXN0UmVw b3J0IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9F eHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlQb2xpY3kiOiAiRXh0ZXJuYWxSZWZUeXBlOnNlY3Vy aXR5UG9saWN5IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlUaHJlYXRNb2RlbCI6ICJFeHRlcm5hbFJl ZlR5cGU6c2VjdXJpdHlUaHJlYXRNb2RlbCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3NvY2lhbE1lZGlhIjogIkV4 dGVybmFsUmVmVHlwZTpzb2NpYWxNZWRpYSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3NvdXJjZUFydGlmYWN0Ijog IkV4dGVybmFsUmVmVHlwZTpzb3VyY2VBcnRpZmFjdCIsDQo+ICsgICAgImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3N0YXRpY0FuYWx5 c2lzUmVwb3J0IjogIkV4dGVybmFsUmVmVHlwZTpzdGF0aWNBbmFseXNpc1JlcG9ydCIsDQo+ ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxS ZWZUeXBlL3N1cHBvcnQiOiAiRXh0ZXJuYWxSZWZUeXBlOnN1cHBvcnQiLA0KPiArICAgICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS92 Y3MiOiAiRXh0ZXJuYWxSZWZUeXBlOnZjcyIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3Z1bG5lcmFiaWxpdHlEaXNj bG9zdXJlUmVwb3J0IjogIkV4dGVybmFsUmVmVHlwZTp2dWxuZXJhYmlsaXR5RGlzY2xvc3Vy ZVJlcG9ydCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvRXh0ZXJuYWxSZWZUeXBlL3Z1bG5lcmFiaWxpdHlFeHBsb2l0YWJpbGl0eUFzc2Vzc21l bnQiOiAiRXh0ZXJuYWxSZWZUeXBlOnZ1bG5lcmFiaWxpdHlFeHBsb2l0YWJpbGl0eUFzc2Vz c21lbnQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0hhc2hBbGdvcml0aG0vYmxha2UyYjI1NiI6ICJIYXNoQWxnb3JpdGhtOmJsYWtlMmIyNTYi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hB bGdvcml0aG0vYmxha2UyYjM4NCI6ICJIYXNoQWxnb3JpdGhtOmJsYWtlMmIzODQiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0 aG0vYmxha2UyYjUxMiI6ICJIYXNoQWxnb3JpdGhtOmJsYWtlMmI1MTIiLA0KPiArICAgICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vYmxh a2UzIjogIkhhc2hBbGdvcml0aG06Ymxha2UzIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2NyeXN0YWxzRGlsaXRoaXVt IjogIkhhc2hBbGdvcml0aG06Y3J5c3RhbHNEaWxpdGhpdW0iLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vY3J5c3RhbHNL eWJlciI6ICJIYXNoQWxnb3JpdGhtOmNyeXN0YWxzS3liZXIiLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vZmFsY29uIjog Ikhhc2hBbGdvcml0aG06ZmFsY29uIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL21kMiI6ICJIYXNoQWxnb3JpdGhtOm1k MiIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFz aEFsZ29yaXRobS9tZDQiOiAiSGFzaEFsZ29yaXRobTptZDQiLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vbWQ1IjogIkhh c2hBbGdvcml0aG06bWQ1IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL21kNiI6ICJIYXNoQWxnb3JpdGhtOm1kNiIsDQo+ ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29y aXRobS9vdGhlciI6ICJIYXNoQWxnb3JpdGhtOm90aGVyIiwNCj4gKyAgICAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTEiOiAiSGFz aEFsZ29yaXRobTpzaGExIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTIyNCI6ICJIYXNoQWxnb3JpdGhtOnNoYTIy NCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFz aEFsZ29yaXRobS9zaGEyNTYiOiAiSGFzaEFsZ29yaXRobTpzaGEyNTYiLA0KPiArICAgICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hh Mzg0IjogIkhhc2hBbGdvcml0aG06c2hhMzg0IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTNfMjI0IjogIkhhc2hB bGdvcml0aG06c2hhM18yMjQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hhM18yNTYiOiAiSGFzaEFsZ29yaXRobTpz aGEzXzI1NiIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvSGFzaEFsZ29yaXRobS9zaGEzXzM4NCI6ICJIYXNoQWxnb3JpdGhtOnNoYTNfMzg0IiwN Cj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxn b3JpdGhtL3NoYTNfNTEyIjogIkhhc2hBbGdvcml0aG06c2hhM181MTIiLA0KPiArICAgICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hh NTEyIjogIkhhc2hBbGdvcml0aG06c2hhNTEyIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9MaWZlY3ljbGVTY29wZVR5cGUvYnVpbGQiOiAiTGlm ZWN5Y2xlU2NvcGVUeXBlOmJ1aWxkIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9MaWZlY3ljbGVTY29wZVR5cGUvZGVzaWduIjogIkxpZmVjeWNs ZVNjb3BlVHlwZTpkZXNpZ24iLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0xpZmVjeWNsZVNjb3BlVHlwZS9kZXZlbG9wbWVudCI6ICJMaWZlY3lj bGVTY29wZVR5cGU6ZGV2ZWxvcG1lbnQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0xpZmVjeWNsZVNjb3BlVHlwZS9vdGhlciI6ICJMaWZlY3lj bGVTY29wZVR5cGU6b3RoZXIiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0xpZmVjeWNsZVNjb3BlVHlwZS9ydW50aW1lIjogIkxpZmVjeWNsZVNj b3BlVHlwZTpydW50aW1lIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9MaWZlY3ljbGVTY29wZVR5cGUvdGVzdCI6ICJMaWZlY3ljbGVTY29wZVR5 cGU6dGVzdCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUHJlc2VuY2VUeXBlL25vIjogIlByZXNlbmNlVHlwZTpubyIsDQo+ICsgICAgImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJlc2VuY2VUeXBlL25vQXNzZXJ0 aW9uIjogIlByZXNlbmNlVHlwZTpub0Fzc2VydGlvbiIsDQo+ICsgICAgImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJlc2VuY2VUeXBlL3llcyI6ICJQcmVzZW5j ZVR5cGU6eWVzIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9Qcm9maWxlSWRlbnRpZmllclR5cGUvYWkiOiAiUHJvZmlsZUlkZW50aWZpZXJUeXBl OmFpIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Q cm9maWxlSWRlbnRpZmllclR5cGUvYnVpbGQiOiAiUHJvZmlsZUlkZW50aWZpZXJUeXBlOmJ1 aWxkIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Q cm9maWxlSWRlbnRpZmllclR5cGUvY29yZSI6ICJQcm9maWxlSWRlbnRpZmllclR5cGU6Y29y ZSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJv ZmlsZUlkZW50aWZpZXJUeXBlL2RhdGFzZXQiOiAiUHJvZmlsZUlkZW50aWZpZXJUeXBlOmRh dGFzZXQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9leHBhbmRlZExpY2Vuc2luZyI6ICJQcm9maWxlSWRl bnRpZmllclR5cGU6ZXhwYW5kZWRMaWNlbnNpbmciLA0KPiArICAgICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9leHRlbnNp b24iOiAiUHJvZmlsZUlkZW50aWZpZXJUeXBlOmV4dGVuc2lvbiIsDQo+ICsgICAgImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJvZmlsZUlkZW50aWZpZXJUeXBl L2xpdGUiOiAiUHJvZmlsZUlkZW50aWZpZXJUeXBlOmxpdGUiLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9z ZWN1cml0eSI6ICJQcm9maWxlSWRlbnRpZmllclR5cGU6c2VjdXJpdHkiLA0KPiArICAgICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVy VHlwZS9zaW1wbGVMaWNlbnNpbmciOiAiUHJvZmlsZUlkZW50aWZpZXJUeXBlOnNpbXBsZUxp Y2Vuc2luZyIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUHJvZmlsZUlkZW50aWZpZXJUeXBlL3NvZnR3YXJlIjogIlByb2ZpbGVJZGVudGlmaWVy VHlwZTpzb2Z0d2FyZSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvUmVsYXRpb25zaGlwQ29tcGxldGVuZXNzL2NvbXBsZXRlIjogIlJlbGF0aW9u c2hpcENvbXBsZXRlbmVzczpjb21wbGV0ZSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwQ29tcGxldGVuZXNzL2luY29tcGxl dGUiOiAiUmVsYXRpb25zaGlwQ29tcGxldGVuZXNzOmluY29tcGxldGUiLA0KPiArICAgICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcENvbXBs ZXRlbmVzcy9ub0Fzc2VydGlvbiI6ICJSZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3M6bm9Bc3Nl cnRpb24iLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1JlbGF0aW9uc2hpcFR5cGUvYWZmZWN0cyI6ICJSZWxhdGlvbnNoaXBUeXBlOmFmZmVjdHMi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0 aW9uc2hpcFR5cGUvYW1lbmRlZEJ5IjogIlJlbGF0aW9uc2hpcFR5cGU6YW1lbmRlZEJ5IiwN Cj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlv bnNoaXBUeXBlL2FuY2VzdG9yT2YiOiAiUmVsYXRpb25zaGlwVHlwZTphbmNlc3Rvck9mIiwN Cj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlv bnNoaXBUeXBlL2F2YWlsYWJsZUZyb20iOiAiUmVsYXRpb25zaGlwVHlwZTphdmFpbGFibGVG cm9tIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9S ZWxhdGlvbnNoaXBUeXBlL2NvbmZpZ3VyZXMiOiAiUmVsYXRpb25zaGlwVHlwZTpjb25maWd1 cmVzIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9S ZWxhdGlvbnNoaXBUeXBlL2NvbnRhaW5zIjogIlJlbGF0aW9uc2hpcFR5cGU6Y29udGFpbnMi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0 aW9uc2hpcFR5cGUvY29vcmRpbmF0ZWRCeSI6ICJSZWxhdGlvbnNoaXBUeXBlOmNvb3JkaW5h dGVkQnkiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1JlbGF0aW9uc2hpcFR5cGUvY29waWVkVG8iOiAiUmVsYXRpb25zaGlwVHlwZTpjb3BpZWRU byIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVs YXRpb25zaGlwVHlwZS9kZWxlZ2F0ZWRUbyI6ICJSZWxhdGlvbnNoaXBUeXBlOmRlbGVnYXRl ZFRvIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9S ZWxhdGlvbnNoaXBUeXBlL2RlcGVuZHNPbiI6ICJSZWxhdGlvbnNoaXBUeXBlOmRlcGVuZHNP biIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVs YXRpb25zaGlwVHlwZS9kZXNjZW5kYW50T2YiOiAiUmVsYXRpb25zaGlwVHlwZTpkZXNjZW5k YW50T2YiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1JlbGF0aW9uc2hpcFR5cGUvZGVzY3JpYmVzIjogIlJlbGF0aW9uc2hpcFR5cGU6ZGVzY3Jp YmVzIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9S ZWxhdGlvbnNoaXBUeXBlL2RvZXNOb3RBZmZlY3QiOiAiUmVsYXRpb25zaGlwVHlwZTpkb2Vz Tm90QWZmZWN0IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBUeXBlL2V4cGFuZHNUbyI6ICJSZWxhdGlvbnNoaXBUeXBlOmV4 cGFuZHNUbyIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUmVsYXRpb25zaGlwVHlwZS9leHBsb2l0Q3JlYXRlZEJ5IjogIlJlbGF0aW9uc2hpcFR5 cGU6ZXhwbG9pdENyZWF0ZWRCeSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9maXhlZEJ5IjogIlJlbGF0aW9uc2hp cFR5cGU6Zml4ZWRCeSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9maXhlZEluIjogIlJlbGF0aW9uc2hpcFR5cGU6 Zml4ZWRJbiIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUmVsYXRpb25zaGlwVHlwZS9mb3VuZEJ5IjogIlJlbGF0aW9uc2hpcFR5cGU6Zm91bmRC eSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVs YXRpb25zaGlwVHlwZS9nZW5lcmF0ZXMiOiAiUmVsYXRpb25zaGlwVHlwZTpnZW5lcmF0ZXMi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0 aW9uc2hpcFR5cGUvaGFzQWRkZWRGaWxlIjogIlJlbGF0aW9uc2hpcFR5cGU6aGFzQWRkZWRG aWxlIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9S ZWxhdGlvbnNoaXBUeXBlL2hhc0Fzc2Vzc21lbnRGb3IiOiAiUmVsYXRpb25zaGlwVHlwZTpo YXNBc3Nlc3NtZW50Rm9yIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0Fzc29jaWF0ZWRWdWxuZXJhYmlsaXR5 IjogIlJlbGF0aW9uc2hpcFR5cGU6aGFzQXNzb2NpYXRlZFZ1bG5lcmFiaWxpdHkiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hp cFR5cGUvaGFzQ29uY2x1ZGVkTGljZW5zZSI6ICJSZWxhdGlvbnNoaXBUeXBlOmhhc0NvbmNs dWRlZExpY2Vuc2UiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRGF0YUZpbGUiOiAiUmVsYXRpb25zaGlwVHlw ZTpoYXNEYXRhRmlsZSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNEZWNsYXJlZExpY2Vuc2UiOiAiUmVsYXRp b25zaGlwVHlwZTpoYXNEZWNsYXJlZExpY2Vuc2UiLA0KPiArICAgICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRGVsZXRlZEZp bGUiOiAiUmVsYXRpb25zaGlwVHlwZTpoYXNEZWxldGVkRmlsZSIsDQo+ICsgICAgImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNE ZXBlbmRlbmN5TWFuaWZlc3QiOiAiUmVsYXRpb25zaGlwVHlwZTpoYXNEZXBlbmRlbmN5TWFu aWZlc3QiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1JlbGF0aW9uc2hpcFR5cGUvaGFzRGlzdHJpYnV0aW9uQXJ0aWZhY3QiOiAiUmVsYXRpb25z aGlwVHlwZTpoYXNEaXN0cmlidXRpb25BcnRpZmFjdCIsDQo+ICsgICAgImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNEb2N1bWVu dGF0aW9uIjogIlJlbGF0aW9uc2hpcFR5cGU6aGFzRG9jdW1lbnRhdGlvbiIsDQo+ICsgICAg Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlw ZS9oYXNEeW5hbWljTGluayI6ICJSZWxhdGlvbnNoaXBUeXBlOmhhc0R5bmFtaWNMaW5rIiwN Cj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlv bnNoaXBUeXBlL2hhc0V2aWRlbmNlIjogIlJlbGF0aW9uc2hpcFR5cGU6aGFzRXZpZGVuY2Ui LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0 aW9uc2hpcFR5cGUvaGFzRXhhbXBsZSI6ICJSZWxhdGlvbnNoaXBUeXBlOmhhc0V4YW1wbGUi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0 aW9uc2hpcFR5cGUvaGFzSG9zdCI6ICJSZWxhdGlvbnNoaXBUeXBlOmhhc0hvc3QiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hp cFR5cGUvaGFzSW5wdXRzIjogIlJlbGF0aW9uc2hpcFR5cGU6aGFzSW5wdXRzIiwNCj4gKyAg ICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBU eXBlL2hhc01ldGFkYXRhIjogIlJlbGF0aW9uc2hpcFR5cGU6aGFzTWV0YWRhdGEiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hp cFR5cGUvaGFzT3B0aW9uYWxDb21wb25lbnQiOiAiUmVsYXRpb25zaGlwVHlwZTpoYXNPcHRp b25hbENvbXBvbmVudCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNPcHRpb25hbERlcGVuZGVuY3kiOiAiUmVs YXRpb25zaGlwVHlwZTpoYXNPcHRpb25hbERlcGVuZGVuY3kiLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzT3V0 cHV0cyI6ICJSZWxhdGlvbnNoaXBUeXBlOmhhc091dHB1dHMiLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzUHJl cmVxdXNpdGUiOiAiUmVsYXRpb25zaGlwVHlwZTpoYXNQcmVyZXF1c2l0ZSIsDQo+ICsgICAg Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlw ZS9oYXNQcm92aWRlZERlcGVuZGVuY3kiOiAiUmVsYXRpb25zaGlwVHlwZTpoYXNQcm92aWRl ZERlcGVuZGVuY3kiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzUmVxdWlyZW1lbnQiOiAiUmVsYXRpb25zaGlw VHlwZTpoYXNSZXF1aXJlbWVudCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNTcGVjaWZpY2F0aW9uIjogIlJl bGF0aW9uc2hpcFR5cGU6aGFzU3BlY2lmaWNhdGlvbiIsDQo+ICsgICAgImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNTdGF0aWNM aW5rIjogIlJlbGF0aW9uc2hpcFR5cGU6aGFzU3RhdGljTGluayIsDQo+ICsgICAgImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNU ZXN0IjogIlJlbGF0aW9uc2hpcFR5cGU6aGFzVGVzdCIsDQo+ICsgICAgImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNUZXN0Q2Fz ZSI6ICJSZWxhdGlvbnNoaXBUeXBlOmhhc1Rlc3RDYXNlIiwNCj4gKyAgICAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc1Zhcmlh bnQiOiAiUmVsYXRpb25zaGlwVHlwZTpoYXNWYXJpYW50IiwNCj4gKyAgICAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2ludm9rZWRC eSI6ICJSZWxhdGlvbnNoaXBUeXBlOmludm9rZWRCeSIsDQo+ICsgICAgImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9tb2RpZmllZEJ5 IjogIlJlbGF0aW9uc2hpcFR5cGU6bW9kaWZpZWRCeSIsDQo+ICsgICAgImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9vdGhlciI6ICJS ZWxhdGlvbnNoaXBUeXBlOm90aGVyIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3BhY2thZ2VkQnkiOiAiUmVsYXRp b25zaGlwVHlwZTpwYWNrYWdlZEJ5IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3BhdGNoZWRCeSI6ICJSZWxhdGlv bnNoaXBUeXBlOnBhdGNoZWRCeSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9wdWJsaXNoZWRCeSI6ICJSZWxhdGlv bnNoaXBUeXBlOnB1Ymxpc2hlZEJ5IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3JlcG9ydGVkQnkiOiAiUmVsYXRp b25zaGlwVHlwZTpyZXBvcnRlZEJ5IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3JlcHVibGlzaGVkQnkiOiAiUmVs YXRpb25zaGlwVHlwZTpyZXB1Ymxpc2hlZEJ5IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3NlcmlhbGl6ZWRJbkFy dGlmYWN0IjogIlJlbGF0aW9uc2hpcFR5cGU6c2VyaWFsaXplZEluQXJ0aWZhY3QiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hp cFR5cGUvdGVzdGVkT24iOiAiUmVsYXRpb25zaGlwVHlwZTp0ZXN0ZWRPbiIsDQo+ICsgICAg Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlw ZS90cmFpbmVkT24iOiAiUmVsYXRpb25zaGlwVHlwZTp0cmFpbmVkT24iLA0KPiArICAgICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUv dW5kZXJJbnZlc3RpZ2F0aW9uRm9yIjogIlJlbGF0aW9uc2hpcFR5cGU6dW5kZXJJbnZlc3Rp Z2F0aW9uRm9yIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBUeXBlL3VzZXNUb29sIjogIlJlbGF0aW9uc2hpcFR5cGU6dXNl c1Rvb2wiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1N1cHBvcnRUeXBlL2RlcGxveWVkIjogIlN1cHBvcnRUeXBlOmRlcGxveWVkIiwNCj4gKyAg ICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9TdXBwb3J0VHlwZS9k ZXZlbG9wbWVudCI6ICJTdXBwb3J0VHlwZTpkZXZlbG9wbWVudCIsDQo+ICsgICAgImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3VwcG9ydFR5cGUvZW5kT2ZTdXBw b3J0IjogIlN1cHBvcnRUeXBlOmVuZE9mU3VwcG9ydCIsDQo+ICsgICAgImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3VwcG9ydFR5cGUvbGltaXRlZFN1cHBvcnQi OiAiU3VwcG9ydFR5cGU6bGltaXRlZFN1cHBvcnQiLA0KPiArICAgICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBlL25vQXNzZXJ0aW9uIjogIlN1 cHBvcnRUeXBlOm5vQXNzZXJ0aW9uIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9TdXBwb3J0VHlwZS9ub1N1cHBvcnQiOiAiU3VwcG9ydFR5cGU6 bm9TdXBwb3J0IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9TdXBwb3J0VHlwZS9zdXBwb3J0IjogIlN1cHBvcnRUeXBlOnN1cHBvcnQiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0NvbmZpZGVu dGlhbGl0eUxldmVsVHlwZS9hbWJlciI6ICJkYXRhc2V0X0NvbmZpZGVudGlhbGl0eUxldmVs VHlwZTphbWJlciIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0RhdGFzZXQvQ29uZmlkZW50aWFsaXR5TGV2ZWxUeXBlL2NsZWFyIjogImRhdGFzZXRfQ29u ZmlkZW50aWFsaXR5TGV2ZWxUeXBlOmNsZWFyIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9Db25maWRlbnRpYWxpdHlMZXZlbFR5cGUvZ3Jl ZW4iOiAiZGF0YXNldF9Db25maWRlbnRpYWxpdHlMZXZlbFR5cGU6Z3JlZW4iLA0KPiArICAg ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0NvbmZpZGVudGlh bGl0eUxldmVsVHlwZS9yZWQiOiAiZGF0YXNldF9Db25maWRlbnRpYWxpdHlMZXZlbFR5cGU6 cmVkIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNl dC9EYXRhc2V0QXZhaWxhYmlsaXR5VHlwZS9jbGlja3Rocm91Z2giOiAiZGF0YXNldF9EYXRh c2V0QXZhaWxhYmlsaXR5VHlwZTpjbGlja3Rocm91Z2giLA0KPiArICAgICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBl L2RpcmVjdERvd25sb2FkIjogImRhdGFzZXRfRGF0YXNldEF2YWlsYWJpbGl0eVR5cGU6ZGly ZWN0RG93bmxvYWQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9EYXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL3F1ZXJ5IjogImRhdGFzZXRfRGF0 YXNldEF2YWlsYWJpbGl0eVR5cGU6cXVlcnkiLA0KPiArICAgICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL3JlZ2lz dHJhdGlvbiI6ICJkYXRhc2V0X0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlOnJlZ2lzdHJhdGlv biIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQv RGF0YXNldEF2YWlsYWJpbGl0eVR5cGUvc2NyYXBpbmdTY3JpcHQiOiAiZGF0YXNldF9EYXRh c2V0QXZhaWxhYmlsaXR5VHlwZTpzY3JhcGluZ1NjcmlwdCIsDQo+ICsgICAgImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvYXVkaW8iOiAi ZGF0YXNldF9EYXRhc2V0VHlwZTphdWRpbyIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvY2F0ZWdvcmljYWwiOiAiZGF0 YXNldF9EYXRhc2V0VHlwZTpjYXRlZ29yaWNhbCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvZ3JhcGgiOiAiZGF0YXNl dF9EYXRhc2V0VHlwZTpncmFwaCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvaW1hZ2UiOiAiZGF0YXNldF9EYXRhc2V0 VHlwZTppbWFnZSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0RhdGFzZXQvRGF0YXNldFR5cGUvbm9Bc3NlcnRpb24iOiAiZGF0YXNldF9EYXRhc2V0VHlw ZTpub0Fzc2VydGlvbiIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvbnVtZXJpYyI6ICJkYXRhc2V0X0RhdGFzZXRUeXBl Om51bWVyaWMiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9E YXRhc2V0L0RhdGFzZXRUeXBlL290aGVyIjogImRhdGFzZXRfRGF0YXNldFR5cGU6b3RoZXIi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0Rh dGFzZXRUeXBlL3NlbnNvciI6ICJkYXRhc2V0X0RhdGFzZXRUeXBlOnNlbnNvciIsDQo+ICsg ICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5 cGUvc3RydWN0dXJlZCI6ICJkYXRhc2V0X0RhdGFzZXRUeXBlOnN0cnVjdHVyZWQiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRU eXBlL3N5bnRhY3RpYyI6ICJkYXRhc2V0X0RhdGFzZXRUeXBlOnN5bnRhY3RpYyIsDQo+ICsg ICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5 cGUvdGV4dCI6ICJkYXRhc2V0X0RhdGFzZXRUeXBlOnRleHQiLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3RpbWVzZXJp ZXMiOiAiZGF0YXNldF9EYXRhc2V0VHlwZTp0aW1lc2VyaWVzIiwNCj4gKyAgICAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS90aW1lc3Rh bXAiOiAiZGF0YXNldF9EYXRhc2V0VHlwZTp0aW1lc3RhbXAiLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3ZpZGVvIjog ImRhdGFzZXRfRGF0YXNldFR5cGU6dmlkZW8iLA0KPiArICAgICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL2NyaXRpY2FsIjog InNlY3VyaXR5X0N2c3NTZXZlcml0eVR5cGU6Y3JpdGljYWwiLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL2hp Z2giOiAic2VjdXJpdHlfQ3Zzc1NldmVyaXR5VHlwZTpoaWdoIiwNCj4gKyAgICAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvQ3Zzc1NldmVyaXR5VHlwZS9s b3ciOiAic2VjdXJpdHlfQ3Zzc1NldmVyaXR5VHlwZTpsb3ciLA0KPiArICAgICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL21l ZGl1bSI6ICJzZWN1cml0eV9DdnNzU2V2ZXJpdHlUeXBlOm1lZGl1bSIsDQo+ICsgICAgImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0N2c3NTZXZlcml0eVR5 cGUvbm9uZSI6ICJzZWN1cml0eV9DdnNzU2V2ZXJpdHlUeXBlOm5vbmUiLA0KPiArICAgICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9FeHBsb2l0Q2F0YWxv Z1R5cGUva2V2IjogInNlY3VyaXR5X0V4cGxvaXRDYXRhbG9nVHlwZTprZXYiLA0KPiArICAg ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9FeHBsb2l0Q2F0 YWxvZ1R5cGUvb3RoZXIiOiAic2VjdXJpdHlfRXhwbG9pdENhdGFsb2dUeXBlOm90aGVyIiwN Cj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvU3N2 Y0RlY2lzaW9uVHlwZS9hY3QiOiAic2VjdXJpdHlfU3N2Y0RlY2lzaW9uVHlwZTphY3QiLA0K PiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9Tc3Zj RGVjaXNpb25UeXBlL2F0dGVuZCI6ICJzZWN1cml0eV9Tc3ZjRGVjaXNpb25UeXBlOmF0dGVu ZCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5 L1NzdmNEZWNpc2lvblR5cGUvdHJhY2siOiAic2VjdXJpdHlfU3N2Y0RlY2lzaW9uVHlwZTp0 cmFjayIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3Vy aXR5L1NzdmNEZWNpc2lvblR5cGUvdHJhY2tTdGFyIjogInNlY3VyaXR5X1NzdmNEZWNpc2lv blR5cGU6dHJhY2tTdGFyIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvU2VjdXJpdHkvVmV4SnVzdGlmaWNhdGlvblR5cGUvY29tcG9uZW50Tm90UHJlc2Vu dCI6ICJzZWN1cml0eV9WZXhKdXN0aWZpY2F0aW9uVHlwZTpjb21wb25lbnROb3RQcmVzZW50 IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkv VmV4SnVzdGlmaWNhdGlvblR5cGUvaW5saW5lTWl0aWdhdGlvbnNBbHJlYWR5RXhpc3QiOiAi c2VjdXJpdHlfVmV4SnVzdGlmaWNhdGlvblR5cGU6aW5saW5lTWl0aWdhdGlvbnNBbHJlYWR5 RXhpc3QiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1 cml0eS9WZXhKdXN0aWZpY2F0aW9uVHlwZS92dWxuZXJhYmxlQ29kZUNhbm5vdEJlQ29udHJv bGxlZEJ5QWR2ZXJzYXJ5IjogInNlY3VyaXR5X1ZleEp1c3RpZmljYXRpb25UeXBlOnZ1bG5l cmFibGVDb2RlQ2Fubm90QmVDb250cm9sbGVkQnlBZHZlcnNhcnkiLA0KPiArICAgICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9WZXhKdXN0aWZpY2F0aW9u VHlwZS92dWxuZXJhYmxlQ29kZU5vdEluRXhlY3V0ZVBhdGgiOiAic2VjdXJpdHlfVmV4SnVz dGlmaWNhdGlvblR5cGU6dnVsbmVyYWJsZUNvZGVOb3RJbkV4ZWN1dGVQYXRoIiwNCj4gKyAg ICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvVmV4SnVzdGlm aWNhdGlvblR5cGUvdnVsbmVyYWJsZUNvZGVOb3RQcmVzZW50IjogInNlY3VyaXR5X1ZleEp1 c3RpZmljYXRpb25UeXBlOnZ1bG5lcmFibGVDb2RlTm90UHJlc2VudCIsDQo+ICsgICAgImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL0NvbnRlbnRJZGVudGlm aWVyVHlwZS9naXRvaWQiOiAic29mdHdhcmVfQ29udGVudElkZW50aWZpZXJUeXBlOmdpdG9p ZCIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJl L0NvbnRlbnRJZGVudGlmaWVyVHlwZS9zd2hpZCI6ICJzb2Z0d2FyZV9Db250ZW50SWRlbnRp ZmllclR5cGU6c3doaWQiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Tb2Z0d2FyZS9GaWxlS2luZFR5cGUvZGlyZWN0b3J5IjogInNvZnR3YXJlX0ZpbGVL aW5kVHlwZTpkaXJlY3RvcnkiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Tb2Z0d2FyZS9GaWxlS2luZFR5cGUvZmlsZSI6ICJzb2Z0d2FyZV9GaWxlS2lu ZFR5cGU6ZmlsZSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L1NvZnR3YXJlL1Nib21UeXBlL2FuYWx5emVkIjogInNvZnR3YXJlX1Nib21UeXBlOmFuYWx5 emVkIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdh cmUvU2JvbVR5cGUvYnVpbGQiOiAic29mdHdhcmVfU2JvbVR5cGU6YnVpbGQiLA0KPiArICAg ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9k ZXBsb3llZCI6ICJzb2Z0d2FyZV9TYm9tVHlwZTpkZXBsb3llZCIsDQo+ICsgICAgImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1Nib21UeXBlL2Rlc2lnbiI6 ICJzb2Z0d2FyZV9TYm9tVHlwZTpkZXNpZ24iLA0KPiArICAgICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9ydW50aW1lIjogInNvZnR3YXJl X1Nib21UeXBlOnJ1bnRpbWUiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9zb3VyY2UiOiAic29mdHdhcmVfU2JvbVR5cGU6 c291cmNlIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29m dHdhcmUvU29mdHdhcmVQdXJwb3NlL2FwcGxpY2F0aW9uIjogInNvZnR3YXJlX1NvZnR3YXJl UHVycG9zZTphcHBsaWNhdGlvbiIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9hcmNoaXZlIjogInNvZnR3YXJl X1NvZnR3YXJlUHVycG9zZTphcmNoaXZlIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2JvbSI6ICJzb2Z0d2Fy ZV9Tb2Z0d2FyZVB1cnBvc2U6Ym9tIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2NvbmZpZ3VyYXRpb24iOiAi c29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOmNvbmZpZ3VyYXRpb24iLA0KPiArICAgICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uv Y29udGFpbmVyIjogInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpjb250YWluZXIiLA0KPiAr ICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2Fy ZVB1cnBvc2UvZGF0YSI6ICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6ZGF0YSIsDQo+ICsg ICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJl UHVycG9zZS9kZXZpY2UiOiAic29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOmRldmljZSIsDQo+ ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3 YXJlUHVycG9zZS9kZXZpY2VEcml2ZXIiOiAic29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOmRl dmljZURyaXZlciIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kaXNrSW1hZ2UiOiAic29mdHdhcmVfU29mdHdh cmVQdXJwb3NlOmRpc2tJbWFnZSIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kb2N1bWVudGF0aW9uIjogInNv ZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpkb2N1bWVudGF0aW9uIiwNCj4gKyAgICAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2V2 aWRlbmNlIjogInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpldmlkZW5jZSIsDQo+ICsgICAg Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVy cG9zZS9leGVjdXRhYmxlIjogInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpleGVjdXRhYmxl IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUv U29mdHdhcmVQdXJwb3NlL2ZpbGUiOiAic29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOmZpbGUi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9T b2Z0d2FyZVB1cnBvc2UvZmlsZXN5c3RlbUltYWdlIjogInNvZnR3YXJlX1NvZnR3YXJlUHVy cG9zZTpmaWxlc3lzdGVtSW1hZ2UiLA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZmlybXdhcmUiOiAic29mdHdh cmVfU29mdHdhcmVQdXJwb3NlOmZpcm13YXJlIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2ZyYW1ld29yayI6 ICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6ZnJhbWV3b3JrIiwNCj4gKyAgICAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2lu c3RhbGwiOiAic29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOmluc3RhbGwiLA0KPiArICAgICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBv c2UvbGlicmFyeSI6ICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6bGlicmFyeSIsDQo+ICsg ICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJl UHVycG9zZS9tYW5pZmVzdCI6ICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6bWFuaWZlc3Qi LA0KPiArICAgICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9T b2Z0d2FyZVB1cnBvc2UvbW9kZWwiOiAic29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOm1vZGVs IiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUv U29mdHdhcmVQdXJwb3NlL21vZHVsZSI6ICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6bW9k dWxlIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdh cmUvU29mdHdhcmVQdXJwb3NlL29wZXJhdGluZ1N5c3RlbSI6ICJzb2Z0d2FyZV9Tb2Z0d2Fy ZVB1cnBvc2U6b3BlcmF0aW5nU3lzdGVtIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL290aGVyIjogInNvZnR3 YXJlX1NvZnR3YXJlUHVycG9zZTpvdGhlciIsDQo+ICsgICAgImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9wYXRjaCI6ICJzb2Z0 d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6cGF0Y2giLA0KPiArICAgICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvcGxhdGZvcm0iOiAi c29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOnBsYXRmb3JtIiwNCj4gKyAgICAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL3JlcXVp cmVtZW50IjogInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpyZXF1aXJlbWVudCIsDQo+ICsg ICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJl UHVycG9zZS9zb3VyY2UiOiAic29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOnNvdXJjZSIsDQo+ ICsgICAgImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3 YXJlUHVycG9zZS9zcGVjaWZpY2F0aW9uIjogInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpz cGVjaWZpY2F0aW9uIiwNCj4gKyAgICAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL3Rlc3QiOiAic29mdHdhcmVfU29mdHdhcmVQ dXJwb3NlOnRlc3QiLA0KPiArfQ0KPiArDQo+ICtfTklfREVDT0RFX0NPTlRFWFQgPSB7DQo+ ICsgICAgImFpX0VuZXJneVVuaXRUeXBlOmtpbG93YXR0SG91ciI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9FbmVyZ3lVbml0VHlwZS9raWxvd2F0dEhvdXIiLA0K PiArICAgICJhaV9FbmVyZ3lVbml0VHlwZTptZWdham91bGUiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQUkvRW5lcmd5VW5pdFR5cGUvbWVnYWpvdWxlIiwNCj4gKyAg ICAiYWlfRW5lcmd5VW5pdFR5cGU6b3RoZXIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQUkvRW5lcmd5VW5pdFR5cGUvb3RoZXIiLA0KPiArICAgICJhaV9TYWZldHlS aXNrQXNzZXNzbWVudFR5cGU6aGlnaCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9BSS9TYWZldHlSaXNrQXNzZXNzbWVudFR5cGUvaGlnaCIsDQo+ICsgICAgImFpX1Nh ZmV0eVJpc2tBc3Nlc3NtZW50VHlwZTpsb3ciOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQUkvU2FmZXR5Umlza0Fzc2Vzc21lbnRUeXBlL2xvdyIsDQo+ICsgICAgImFp X1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlwZTptZWRpdW0iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQUkvU2FmZXR5Umlza0Fzc2Vzc21lbnRUeXBlL21lZGl1bSIsDQo+ ICsgICAgImFpX1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlwZTpzZXJpb3VzIjogImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0FJL1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlwZS9z ZXJpb3VzIiwNCj4gKyAgICAiQW5ub3RhdGlvblR5cGU6b3RoZXIiOiAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Bbm5vdGF0aW9uVHlwZS9vdGhlciIsDQo+ICsg ICAgIkFubm90YXRpb25UeXBlOnJldmlldyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0Fubm90YXRpb25UeXBlL3JldmlldyIsDQo+ICsgICAgIkV4dGVybmFs SWRlbnRpZmllclR5cGU6Y3BlMjIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL2NwZTIyIiwNCj4gKyAgICAiRXh0ZXJu YWxJZGVudGlmaWVyVHlwZTpjcGUyMyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0V4dGVybmFsSWRlbnRpZmllclR5cGUvY3BlMjMiLA0KPiArICAgICJFeHRl cm5hbElkZW50aWZpZXJUeXBlOmN2ZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0V4dGVybmFsSWRlbnRpZmllclR5cGUvY3ZlIiwNCj4gKyAgICAiRXh0ZXJu YWxJZGVudGlmaWVyVHlwZTplbWFpbCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0V4dGVybmFsSWRlbnRpZmllclR5cGUvZW1haWwiLA0KPiArICAgICJFeHRl cm5hbElkZW50aWZpZXJUeXBlOmdpdG9pZCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0V4dGVybmFsSWRlbnRpZmllclR5cGUvZ2l0b2lkIiwNCj4gKyAgICAi RXh0ZXJuYWxJZGVudGlmaWVyVHlwZTpvdGhlciI6ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsSWRlbnRpZmllclR5cGUvb3RoZXIiLA0KPiArICAg ICJFeHRlcm5hbElkZW50aWZpZXJUeXBlOnBhY2thZ2VVcmwiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL3BhY2thZ2VV cmwiLA0KPiArICAgICJFeHRlcm5hbElkZW50aWZpZXJUeXBlOnNlY3VyaXR5T3RoZXIiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZp ZXJUeXBlL3NlY3VyaXR5T3RoZXIiLA0KPiArICAgICJFeHRlcm5hbElkZW50aWZpZXJUeXBl OnN3aGlkIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJu YWxJZGVudGlmaWVyVHlwZS9zd2hpZCIsDQo+ICsgICAgIkV4dGVybmFsSWRlbnRpZmllclR5 cGU6c3dpZCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVy bmFsSWRlbnRpZmllclR5cGUvc3dpZCIsDQo+ICsgICAgIkV4dGVybmFsSWRlbnRpZmllclR5 cGU6dXJsU2NoZW1lIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv RXh0ZXJuYWxJZGVudGlmaWVyVHlwZS91cmxTY2hlbWUiLA0KPiArICAgICJFeHRlcm5hbFJl ZlR5cGU6YWx0RG93bmxvYWRMb2NhdGlvbiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9hbHREb3dubG9hZExvY2F0aW9uIiwNCj4g KyAgICAiRXh0ZXJuYWxSZWZUeXBlOmFsdFdlYlBhZ2UiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvYWx0V2ViUGFnZSIsDQo+ICsg ICAgIkV4dGVybmFsUmVmVHlwZTpiaW5hcnlBcnRpZmFjdCI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9iaW5hcnlBcnRpZmFjdCIs DQo+ICsgICAgIkV4dGVybmFsUmVmVHlwZTpib3dlciI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9ib3dlciIsDQo+ICsgICAgIkV4 dGVybmFsUmVmVHlwZTpidWlsZE1ldGEiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvYnVpbGRNZXRhIiwNCj4gKyAgICAiRXh0ZXJu YWxSZWZUeXBlOmJ1aWxkU3lzdGVtIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2J1aWxkU3lzdGVtIiwNCj4gKyAgICAiRXh0ZXJu YWxSZWZUeXBlOmNlcnRpZmljYXRpb25SZXBvcnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvY2VydGlmaWNhdGlvblJlcG9ydCIs DQo+ICsgICAgIkV4dGVybmFsUmVmVHlwZTpjaGF0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2NoYXQiLA0KPiArICAgICJFeHRl cm5hbFJlZlR5cGU6Y29tcG9uZW50QW5hbHlzaXNSZXBvcnQiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvY29tcG9uZW50QW5hbHlz aXNSZXBvcnQiLA0KPiArICAgICJFeHRlcm5hbFJlZlR5cGU6Y3dlIjogImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2N3ZSIsDQo+ICsg ICAgIkV4dGVybmFsUmVmVHlwZTpkb2N1bWVudGF0aW9uIjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2RvY3VtZW50YXRpb24iLA0K PiArICAgICJFeHRlcm5hbFJlZlR5cGU6ZHluYW1pY0FuYWx5c2lzUmVwb3J0IjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2R5bmFt aWNBbmFseXNpc1JlcG9ydCIsDQo+ICsgICAgIkV4dGVybmFsUmVmVHlwZTplb2xOb3RpY2Ui OiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5 cGUvZW9sTm90aWNlIiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZUeXBlOmV4cG9ydENvbnRyb2xB c3Nlc3NtZW50IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0 ZXJuYWxSZWZUeXBlL2V4cG9ydENvbnRyb2xBc3Nlc3NtZW50IiwNCj4gKyAgICAiRXh0ZXJu YWxSZWZUeXBlOmZ1bmRpbmciOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9FeHRlcm5hbFJlZlR5cGUvZnVuZGluZyIsDQo+ICsgICAgIkV4dGVybmFsUmVmVHlw ZTppc3N1ZVRyYWNrZXIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9FeHRlcm5hbFJlZlR5cGUvaXNzdWVUcmFja2VyIiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZU eXBlOmxpY2Vuc2UiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9F eHRlcm5hbFJlZlR5cGUvbGljZW5zZSIsDQo+ICsgICAgIkV4dGVybmFsUmVmVHlwZTptYWls aW5nTGlzdCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVy bmFsUmVmVHlwZS9tYWlsaW5nTGlzdCIsDQo+ICsgICAgIkV4dGVybmFsUmVmVHlwZTptYXZl bkNlbnRyYWwiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRl cm5hbFJlZlR5cGUvbWF2ZW5DZW50cmFsIiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZUeXBlOm1l dHJpY3MiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5h bFJlZlR5cGUvbWV0cmljcyIsDQo+ICsgICAgIkV4dGVybmFsUmVmVHlwZTpucG0iOiAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvbnBt IiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZUeXBlOm51Z2V0IjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL251Z2V0IiwNCj4gKyAgICAi RXh0ZXJuYWxSZWZUeXBlOm90aGVyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL290aGVyIiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZU eXBlOnByaXZhY3lBc3Nlc3NtZW50IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3ByaXZhY3lBc3Nlc3NtZW50IiwNCj4gKyAgICAi RXh0ZXJuYWxSZWZUeXBlOnByb2R1Y3RNZXRhZGF0YSI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9wcm9kdWN0TWV0YWRhdGEiLA0K PiArICAgICJFeHRlcm5hbFJlZlR5cGU6cHVyY2hhc2VPcmRlciI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9wdXJjaGFzZU9yZGVy IiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZUeXBlOnF1YWxpdHlBc3Nlc3NtZW50UmVwb3J0Ijog Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBl L3F1YWxpdHlBc3Nlc3NtZW50UmVwb3J0IiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZUeXBlOnJl bGVhc2VIaXN0b3J5IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv RXh0ZXJuYWxSZWZUeXBlL3JlbGVhc2VIaXN0b3J5IiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZU eXBlOnJlbGVhc2VOb3RlcyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL0V4dGVybmFsUmVmVHlwZS9yZWxlYXNlTm90ZXMiLA0KPiArICAgICJFeHRlcm5hbFJl ZlR5cGU6cmlza0Fzc2Vzc21lbnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvcmlza0Fzc2Vzc21lbnQiLA0KPiArICAgICJFeHRl cm5hbFJlZlR5cGU6cnVudGltZUFuYWx5c2lzUmVwb3J0IjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3J1bnRpbWVBbmFseXNpc1Jl cG9ydCIsDQo+ICsgICAgIkV4dGVybmFsUmVmVHlwZTpzZWN1cmVTb2Z0d2FyZUF0dGVzdGF0 aW9uIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxS ZWZUeXBlL3NlY3VyZVNvZnR3YXJlQXR0ZXN0YXRpb24iLA0KPiArICAgICJFeHRlcm5hbFJl ZlR5cGU6c2VjdXJpdHlBZHZlcnNhcnlNb2RlbCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zZWN1cml0eUFkdmVyc2FyeU1vZGVs IiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZUeXBlOnNlY3VyaXR5QWR2aXNvcnkiOiAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJp dHlBZHZpc29yeSIsDQo+ICsgICAgIkV4dGVybmFsUmVmVHlwZTpzZWN1cml0eUZpeCI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9z ZWN1cml0eUZpeCIsDQo+ICsgICAgIkV4dGVybmFsUmVmVHlwZTpzZWN1cml0eU90aGVyIjog Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBl L3NlY3VyaXR5T3RoZXIiLA0KPiArICAgICJFeHRlcm5hbFJlZlR5cGU6c2VjdXJpdHlQZW5U ZXN0UmVwb3J0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0 ZXJuYWxSZWZUeXBlL3NlY3VyaXR5UGVuVGVzdFJlcG9ydCIsDQo+ICsgICAgIkV4dGVybmFs UmVmVHlwZTpzZWN1cml0eVBvbGljeSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zZWN1cml0eVBvbGljeSIsDQo+ICsgICAgIkV4 dGVybmFsUmVmVHlwZTpzZWN1cml0eVRocmVhdE1vZGVsIjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3NlY3VyaXR5VGhyZWF0TW9k ZWwiLA0KPiArICAgICJFeHRlcm5hbFJlZlR5cGU6c29jaWFsTWVkaWEiOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc29jaWFsTWVk aWEiLA0KPiArICAgICJFeHRlcm5hbFJlZlR5cGU6c291cmNlQXJ0aWZhY3QiOiAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc291cmNl QXJ0aWZhY3QiLA0KPiArICAgICJFeHRlcm5hbFJlZlR5cGU6c3RhdGljQW5hbHlzaXNSZXBv cnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJl ZlR5cGUvc3RhdGljQW5hbHlzaXNSZXBvcnQiLA0KPiArICAgICJFeHRlcm5hbFJlZlR5cGU6 c3VwcG9ydCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVy bmFsUmVmVHlwZS9zdXBwb3J0IiwNCj4gKyAgICAiRXh0ZXJuYWxSZWZUeXBlOnZjcyI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS92 Y3MiLA0KPiArICAgICJFeHRlcm5hbFJlZlR5cGU6dnVsbmVyYWJpbGl0eURpc2Nsb3N1cmVS ZXBvcnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5h bFJlZlR5cGUvdnVsbmVyYWJpbGl0eURpc2Nsb3N1cmVSZXBvcnQiLA0KPiArICAgICJFeHRl cm5hbFJlZlR5cGU6dnVsbmVyYWJpbGl0eUV4cGxvaXRhYmlsaXR5QXNzZXNzbWVudCI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS92 dWxuZXJhYmlsaXR5RXhwbG9pdGFiaWxpdHlBc3Nlc3NtZW50IiwNCj4gKyAgICAiSGFzaEFs Z29yaXRobTpibGFrZTJiMjU2IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvSGFzaEFsZ29yaXRobS9ibGFrZTJiMjU2IiwNCj4gKyAgICAiSGFzaEFsZ29yaXRo bTpibGFrZTJiMzg0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv SGFzaEFsZ29yaXRobS9ibGFrZTJiMzg0IiwNCj4gKyAgICAiSGFzaEFsZ29yaXRobTpibGFr ZTJiNTEyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFs Z29yaXRobS9ibGFrZTJiNTEyIiwNCj4gKyAgICAiSGFzaEFsZ29yaXRobTpibGFrZTMiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2Js YWtlMyIsDQo+ICsgICAgIkhhc2hBbGdvcml0aG06Y3J5c3RhbHNEaWxpdGhpdW0iOiAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2NyeXN0 YWxzRGlsaXRoaXVtIiwNCj4gKyAgICAiSGFzaEFsZ29yaXRobTpjcnlzdGFsc0t5YmVyIjog Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9j cnlzdGFsc0t5YmVyIiwNCj4gKyAgICAiSGFzaEFsZ29yaXRobTpmYWxjb24iOiAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2ZhbGNvbiIs DQo+ICsgICAgIkhhc2hBbGdvcml0aG06bWQyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9tZDIiLA0KPiArICAgICJIYXNoQWxnb3Jp dGhtOm1kNCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hB bGdvcml0aG0vbWQ0IiwNCj4gKyAgICAiSGFzaEFsZ29yaXRobTptZDUiOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL21kNSIsDQo+ICsg ICAgIkhhc2hBbGdvcml0aG06bWQ2IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvSGFzaEFsZ29yaXRobS9tZDYiLA0KPiArICAgICJIYXNoQWxnb3JpdGhtOm90 aGVyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29y aXRobS9vdGhlciIsDQo+ICsgICAgIkhhc2hBbGdvcml0aG06c2hhMSI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hhMSIsDQo+ICsg ICAgIkhhc2hBbGdvcml0aG06c2hhMjI0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9zaGEyMjQiLA0KPiArICAgICJIYXNoQWxnb3Jp dGhtOnNoYTI1NiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hh c2hBbGdvcml0aG0vc2hhMjU2IiwNCj4gKyAgICAiSGFzaEFsZ29yaXRobTpzaGEzODQiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3No YTM4NCIsDQo+ICsgICAgIkhhc2hBbGdvcml0aG06c2hhM18yMjQiOiAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTNfMjI0IiwNCj4g KyAgICAiSGFzaEFsZ29yaXRobTpzaGEzXzI1NiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hhM18yNTYiLA0KPiArICAgICJIYXNo QWxnb3JpdGhtOnNoYTNfMzg0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvSGFzaEFsZ29yaXRobS9zaGEzXzM4NCIsDQo+ICsgICAgIkhhc2hBbGdvcml0aG06 c2hhM181MTIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNo QWxnb3JpdGhtL3NoYTNfNTEyIiwNCj4gKyAgICAiSGFzaEFsZ29yaXRobTpzaGE1MTIiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3No YTUxMiIsDQo+ICsgICAgIkxpZmVjeWNsZVNjb3BlVHlwZTpidWlsZCI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0xpZmVjeWNsZVNjb3BlVHlwZS9idWlsZCIs DQo+ICsgICAgIkxpZmVjeWNsZVNjb3BlVHlwZTpkZXNpZ24iOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9MaWZlY3ljbGVTY29wZVR5cGUvZGVzaWduIiwNCj4g KyAgICAiTGlmZWN5Y2xlU2NvcGVUeXBlOmRldmVsb3BtZW50IjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvTGlmZWN5Y2xlU2NvcGVUeXBlL2RldmVsb3BtZW50 IiwNCj4gKyAgICAiTGlmZWN5Y2xlU2NvcGVUeXBlOm90aGVyIjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvTGlmZWN5Y2xlU2NvcGVUeXBlL290aGVyIiwNCj4g KyAgICAiTGlmZWN5Y2xlU2NvcGVUeXBlOnJ1bnRpbWUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9MaWZlY3ljbGVTY29wZVR5cGUvcnVudGltZSIsDQo+ICsg ICAgIkxpZmVjeWNsZVNjb3BlVHlwZTp0ZXN0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvTGlmZWN5Y2xlU2NvcGVUeXBlL3Rlc3QiLA0KPiArICAgICJQcmVz ZW5jZVR5cGU6bm8iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Q cmVzZW5jZVR5cGUvbm8iLA0KPiArICAgICJQcmVzZW5jZVR5cGU6bm9Bc3NlcnRpb24iOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9QcmVzZW5jZVR5cGUvbm9B c3NlcnRpb24iLA0KPiArICAgICJQcmVzZW5jZVR5cGU6eWVzIjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJlc2VuY2VUeXBlL3llcyIsDQo+ICsgICAgIlBy b2ZpbGVJZGVudGlmaWVyVHlwZTphaSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9haSIsDQo+ICsgICAgIlByb2ZpbGVJ ZGVudGlmaWVyVHlwZTpidWlsZCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9idWlsZCIsDQo+ICsgICAgIlByb2ZpbGVJ ZGVudGlmaWVyVHlwZTpjb3JlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUHJvZmlsZUlkZW50aWZpZXJUeXBlL2NvcmUiLA0KPiArICAgICJQcm9maWxlSWRl bnRpZmllclR5cGU6ZGF0YXNldCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9kYXRhc2V0IiwNCj4gKyAgICAiUHJvZmls ZUlkZW50aWZpZXJUeXBlOmV4cGFuZGVkTGljZW5zaW5nIjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJvZmlsZUlkZW50aWZpZXJUeXBlL2V4cGFuZGVkTGlj ZW5zaW5nIiwNCj4gKyAgICAiUHJvZmlsZUlkZW50aWZpZXJUeXBlOmV4dGVuc2lvbiI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVy VHlwZS9leHRlbnNpb24iLA0KPiArICAgICJQcm9maWxlSWRlbnRpZmllclR5cGU6bGl0ZSI6 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlm aWVyVHlwZS9saXRlIiwNCj4gKyAgICAiUHJvZmlsZUlkZW50aWZpZXJUeXBlOnNlY3VyaXR5 IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJvZmlsZUlkZW50 aWZpZXJUeXBlL3NlY3VyaXR5IiwNCj4gKyAgICAiUHJvZmlsZUlkZW50aWZpZXJUeXBlOnNp bXBsZUxpY2Vuc2luZyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9zaW1wbGVMaWNlbnNpbmciLA0KPiArICAgICJQcm9m aWxlSWRlbnRpZmllclR5cGU6c29mdHdhcmUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9Qcm9maWxlSWRlbnRpZmllclR5cGUvc29mdHdhcmUiLA0KPiArICAg ICJSZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3M6Y29tcGxldGUiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3MvY29tcGxl dGUiLA0KPiArICAgICJSZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3M6aW5jb21wbGV0ZSI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcENvbXBs ZXRlbmVzcy9pbmNvbXBsZXRlIiwNCj4gKyAgICAiUmVsYXRpb25zaGlwQ29tcGxldGVuZXNz Om5vQXNzZXJ0aW9uIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv UmVsYXRpb25zaGlwQ29tcGxldGVuZXNzL25vQXNzZXJ0aW9uIiwNCj4gKyAgICAiUmVsYXRp b25zaGlwVHlwZTphZmZlY3RzIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9hZmZlY3RzIiwNCj4gKyAgICAiUmVsYXRpb25zaGlw VHlwZTphbWVuZGVkQnkiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL2FtZW5kZWRCeSIsDQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5 cGU6YW5jZXN0b3JPZiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1JlbGF0aW9uc2hpcFR5cGUvYW5jZXN0b3JPZiIsDQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5 cGU6YXZhaWxhYmxlRnJvbSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL1JlbGF0aW9uc2hpcFR5cGUvYXZhaWxhYmxlRnJvbSIsDQo+ICsgICAgIlJlbGF0aW9u c2hpcFR5cGU6Y29uZmlndXJlcyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvY29uZmlndXJlcyIsDQo+ICsgICAgIlJlbGF0aW9u c2hpcFR5cGU6Y29udGFpbnMiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBUeXBlL2NvbnRhaW5zIiwNCj4gKyAgICAiUmVsYXRpb25zaGlw VHlwZTpjb29yZGluYXRlZEJ5IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9jb29yZGluYXRlZEJ5IiwNCj4gKyAgICAiUmVsYXRp b25zaGlwVHlwZTpjb3BpZWRUbyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvY29waWVkVG8iLA0KPiArICAgICJSZWxhdGlvbnNo aXBUeXBlOmRlbGVnYXRlZFRvIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9kZWxlZ2F0ZWRUbyIsDQo+ICsgICAgIlJlbGF0aW9u c2hpcFR5cGU6ZGVwZW5kc09uIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9kZXBlbmRzT24iLA0KPiArICAgICJSZWxhdGlvbnNo aXBUeXBlOmRlc2NlbmRhbnRPZiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvZGVzY2VuZGFudE9mIiwNCj4gKyAgICAiUmVsYXRp b25zaGlwVHlwZTpkZXNjcmliZXMiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2Rlc2NyaWJlcyIsDQo+ICsgICAgIlJlbGF0aW9u c2hpcFR5cGU6ZG9lc05vdEFmZmVjdCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvZG9lc05vdEFmZmVjdCIsDQo+ICsgICAgIlJl bGF0aW9uc2hpcFR5cGU6ZXhwYW5kc1RvIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9leHBhbmRzVG8iLA0KPiArICAgICJSZWxh dGlvbnNoaXBUeXBlOmV4cGxvaXRDcmVhdGVkQnkiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2V4cGxvaXRDcmVhdGVkQnkiLA0K PiArICAgICJSZWxhdGlvbnNoaXBUeXBlOmZpeGVkQnkiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2ZpeGVkQnkiLA0KPiArICAg ICJSZWxhdGlvbnNoaXBUeXBlOmZpeGVkSW4iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2ZpeGVkSW4iLA0KPiArICAgICJSZWxh dGlvbnNoaXBUeXBlOmZvdW5kQnkiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2ZvdW5kQnkiLA0KPiArICAgICJSZWxhdGlvbnNo aXBUeXBlOmdlbmVyYXRlcyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL1JlbGF0aW9uc2hpcFR5cGUvZ2VuZXJhdGVzIiwNCj4gKyAgICAiUmVsYXRpb25zaGlw VHlwZTpoYXNBZGRlZEZpbGUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0FkZGVkRmlsZSIsDQo+ICsgICAgIlJlbGF0aW9u c2hpcFR5cGU6aGFzQXNzZXNzbWVudEZvciI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzQXNzZXNzbWVudEZvciIsDQo+ICsg ICAgIlJlbGF0aW9uc2hpcFR5cGU6aGFzQXNzb2NpYXRlZFZ1bG5lcmFiaWxpdHkiOiAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hh c0Fzc29jaWF0ZWRWdWxuZXJhYmlsaXR5IiwNCj4gKyAgICAiUmVsYXRpb25zaGlwVHlwZTpo YXNDb25jbHVkZWRMaWNlbnNlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNDb25jbHVkZWRMaWNlbnNlIiwNCj4gKyAgICAi UmVsYXRpb25zaGlwVHlwZTpoYXNEYXRhRmlsZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRGF0YUZpbGUiLA0KPiArICAg ICJSZWxhdGlvbnNoaXBUeXBlOmhhc0RlY2xhcmVkTGljZW5zZSI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRGVjbGFyZWRM aWNlbnNlIiwNCj4gKyAgICAiUmVsYXRpb25zaGlwVHlwZTpoYXNEZWxldGVkRmlsZSI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUv aGFzRGVsZXRlZEZpbGUiLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOmhhc0RlcGVuZGVu Y3lNYW5pZmVzdCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Jl bGF0aW9uc2hpcFR5cGUvaGFzRGVwZW5kZW5jeU1hbmlmZXN0IiwNCj4gKyAgICAiUmVsYXRp b25zaGlwVHlwZTpoYXNEaXN0cmlidXRpb25BcnRpZmFjdCI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRGlzdHJpYnV0aW9u QXJ0aWZhY3QiLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOmhhc0RvY3VtZW50YXRpb24i OiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBU eXBlL2hhc0RvY3VtZW50YXRpb24iLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOmhhc0R5 bmFtaWNMaW5rIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVs YXRpb25zaGlwVHlwZS9oYXNEeW5hbWljTGluayIsDQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5 cGU6aGFzRXZpZGVuY2UiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0V2aWRlbmNlIiwNCj4gKyAgICAiUmVsYXRpb25zaGlw VHlwZTpoYXNFeGFtcGxlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUmVsYXRpb25zaGlwVHlwZS9oYXNFeGFtcGxlIiwNCj4gKyAgICAiUmVsYXRpb25zaGlw VHlwZTpoYXNIb3N0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv UmVsYXRpb25zaGlwVHlwZS9oYXNIb3N0IiwNCj4gKyAgICAiUmVsYXRpb25zaGlwVHlwZTpo YXNJbnB1dHMiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxh dGlvbnNoaXBUeXBlL2hhc0lucHV0cyIsDQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5cGU6aGFz TWV0YWRhdGEiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxh dGlvbnNoaXBUeXBlL2hhc01ldGFkYXRhIiwNCj4gKyAgICAiUmVsYXRpb25zaGlwVHlwZTpo YXNPcHRpb25hbENvbXBvbmVudCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzT3B0aW9uYWxDb21wb25lbnQiLA0KPiArICAg ICJSZWxhdGlvbnNoaXBUeXBlOmhhc09wdGlvbmFsRGVwZW5kZW5jeSI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzT3B0aW9u YWxEZXBlbmRlbmN5IiwNCj4gKyAgICAiUmVsYXRpb25zaGlwVHlwZTpoYXNPdXRwdXRzIjog Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlw ZS9oYXNPdXRwdXRzIiwNCj4gKyAgICAiUmVsYXRpb25zaGlwVHlwZTpoYXNQcmVyZXF1c2l0 ZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hp cFR5cGUvaGFzUHJlcmVxdXNpdGUiLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOmhhc1By b3ZpZGVkRGVwZW5kZW5jeSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzUHJvdmlkZWREZXBlbmRlbmN5IiwNCj4gKyAgICAi UmVsYXRpb25zaGlwVHlwZTpoYXNSZXF1aXJlbWVudCI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzUmVxdWlyZW1lbnQiLA0K PiArICAgICJSZWxhdGlvbnNoaXBUeXBlOmhhc1NwZWNpZmljYXRpb24iOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc1NwZWNp ZmljYXRpb24iLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOmhhc1N0YXRpY0xpbmsiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBl L2hhc1N0YXRpY0xpbmsiLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOmhhc1Rlc3QiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBl L2hhc1Rlc3QiLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOmhhc1Rlc3RDYXNlIjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9o YXNUZXN0Q2FzZSIsDQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5cGU6aGFzVmFyaWFudCI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUv aGFzVmFyaWFudCIsDQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5cGU6aW52b2tlZEJ5IjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9p bnZva2VkQnkiLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOm1vZGlmaWVkQnkiOiAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL21v ZGlmaWVkQnkiLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOm90aGVyIjogImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9vdGhlciIs DQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5cGU6cGFja2FnZWRCeSI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvcGFja2FnZWRCeSIs DQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5cGU6cGF0Y2hlZEJ5IjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9wYXRjaGVkQnkiLA0K PiArICAgICJSZWxhdGlvbnNoaXBUeXBlOnB1Ymxpc2hlZEJ5IjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9wdWJsaXNoZWRCeSIs DQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5cGU6cmVwb3J0ZWRCeSI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvcmVwb3J0ZWRCeSIs DQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5cGU6cmVwdWJsaXNoZWRCeSI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvcmVwdWJsaXNo ZWRCeSIsDQo+ICsgICAgIlJlbGF0aW9uc2hpcFR5cGU6c2VyaWFsaXplZEluQXJ0aWZhY3Qi OiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBU eXBlL3NlcmlhbGl6ZWRJbkFydGlmYWN0IiwNCj4gKyAgICAiUmVsYXRpb25zaGlwVHlwZTp0 ZXN0ZWRPbiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0 aW9uc2hpcFR5cGUvdGVzdGVkT24iLA0KPiArICAgICJSZWxhdGlvbnNoaXBUeXBlOnRyYWlu ZWRPbiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9u c2hpcFR5cGUvdHJhaW5lZE9uIiwNCj4gKyAgICAiUmVsYXRpb25zaGlwVHlwZTp1bmRlcklu dmVzdGlnYXRpb25Gb3IiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL3VuZGVySW52ZXN0aWdhdGlvbkZvciIsDQo+ICsgICAgIlJl bGF0aW9uc2hpcFR5cGU6dXNlc1Rvb2wiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3VzZXNUb29sIiwNCj4gKyAgICAiU3VwcG9y dFR5cGU6ZGVwbG95ZWQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9TdXBwb3J0VHlwZS9kZXBsb3llZCIsDQo+ICsgICAgIlN1cHBvcnRUeXBlOmRldmVsb3Bt ZW50IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3VwcG9ydFR5 cGUvZGV2ZWxvcG1lbnQiLA0KPiArICAgICJTdXBwb3J0VHlwZTplbmRPZlN1cHBvcnQiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9TdXBwb3J0VHlwZS9lbmRP ZlN1cHBvcnQiLA0KPiArICAgICJTdXBwb3J0VHlwZTpsaW1pdGVkU3VwcG9ydCI6ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBlL2xpbWl0ZWRT dXBwb3J0IiwNCj4gKyAgICAiU3VwcG9ydFR5cGU6bm9Bc3NlcnRpb24iOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9TdXBwb3J0VHlwZS9ub0Fzc2VydGlvbiIs DQo+ICsgICAgIlN1cHBvcnRUeXBlOm5vU3VwcG9ydCI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBlL25vU3VwcG9ydCIsDQo+ICsgICAgIlN1 cHBvcnRUeXBlOnN1cHBvcnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9TdXBwb3J0VHlwZS9zdXBwb3J0IiwNCj4gKyAgICAiZGF0YXNldF9Db25maWRlbnRp YWxpdHlMZXZlbFR5cGU6YW1iZXIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvRGF0YXNldC9Db25maWRlbnRpYWxpdHlMZXZlbFR5cGUvYW1iZXIiLA0KPiArICAgICJk YXRhc2V0X0NvbmZpZGVudGlhbGl0eUxldmVsVHlwZTpjbGVhciI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0NvbmZpZGVudGlhbGl0eUxldmVsVHlwZS9j bGVhciIsDQo+ICsgICAgImRhdGFzZXRfQ29uZmlkZW50aWFsaXR5TGV2ZWxUeXBlOmdyZWVu IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvQ29uZmlkZW50 aWFsaXR5TGV2ZWxUeXBlL2dyZWVuIiwNCj4gKyAgICAiZGF0YXNldF9Db25maWRlbnRpYWxp dHlMZXZlbFR5cGU6cmVkIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Rh dGFzZXQvQ29uZmlkZW50aWFsaXR5TGV2ZWxUeXBlL3JlZCIsDQo+ICsgICAgImRhdGFzZXRf RGF0YXNldEF2YWlsYWJpbGl0eVR5cGU6Y2xpY2t0aHJvdWdoIjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldEF2YWlsYWJpbGl0eVR5cGUvY2xp Y2t0aHJvdWdoIiwNCj4gKyAgICAiZGF0YXNldF9EYXRhc2V0QXZhaWxhYmlsaXR5VHlwZTpk aXJlY3REb3dubG9hZCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRh c2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL2RpcmVjdERvd25sb2FkIiwNCj4gKyAgICAi ZGF0YXNldF9EYXRhc2V0QXZhaWxhYmlsaXR5VHlwZTpxdWVyeSI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL3F1 ZXJ5IiwNCj4gKyAgICAiZGF0YXNldF9EYXRhc2V0QXZhaWxhYmlsaXR5VHlwZTpyZWdpc3Ry YXRpb24iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRh c2V0QXZhaWxhYmlsaXR5VHlwZS9yZWdpc3RyYXRpb24iLA0KPiArICAgICJkYXRhc2V0X0Rh dGFzZXRBdmFpbGFiaWxpdHlUeXBlOnNjcmFwaW5nU2NyaXB0IjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldEF2YWlsYWJpbGl0eVR5cGUvc2Ny YXBpbmdTY3JpcHQiLA0KPiArICAgICJkYXRhc2V0X0RhdGFzZXRUeXBlOmF1ZGlvIjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvYXVk aW8iLA0KPiArICAgICJkYXRhc2V0X0RhdGFzZXRUeXBlOmNhdGVnb3JpY2FsIjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvY2F0ZWdv cmljYWwiLA0KPiArICAgICJkYXRhc2V0X0RhdGFzZXRUeXBlOmdyYXBoIjogImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvZ3JhcGgiLA0K PiArICAgICJkYXRhc2V0X0RhdGFzZXRUeXBlOmltYWdlIjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvaW1hZ2UiLA0KPiArICAgICJk YXRhc2V0X0RhdGFzZXRUeXBlOm5vQXNzZXJ0aW9uIjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvbm9Bc3NlcnRpb24iLA0KPiArICAg ICJkYXRhc2V0X0RhdGFzZXRUeXBlOm51bWVyaWMiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS9udW1lcmljIiwNCj4gKyAgICAiZGF0 YXNldF9EYXRhc2V0VHlwZTpvdGhlciI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL290aGVyIiwNCj4gKyAgICAiZGF0YXNldF9EYXRh c2V0VHlwZTpzZW5zb3IiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0 YXNldC9EYXRhc2V0VHlwZS9zZW5zb3IiLA0KPiArICAgICJkYXRhc2V0X0RhdGFzZXRUeXBl OnN0cnVjdHVyZWQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNl dC9EYXRhc2V0VHlwZS9zdHJ1Y3R1cmVkIiwNCj4gKyAgICAiZGF0YXNldF9EYXRhc2V0VHlw ZTpzeW50YWN0aWMiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNl dC9EYXRhc2V0VHlwZS9zeW50YWN0aWMiLA0KPiArICAgICJkYXRhc2V0X0RhdGFzZXRUeXBl OnRleHQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRh c2V0VHlwZS90ZXh0IiwNCj4gKyAgICAiZGF0YXNldF9EYXRhc2V0VHlwZTp0aW1lc2VyaWVz IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5 cGUvdGltZXNlcmllcyIsDQo+ICsgICAgImRhdGFzZXRfRGF0YXNldFR5cGU6dGltZXN0YW1w IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5 cGUvdGltZXN0YW1wIiwNCj4gKyAgICAiZGF0YXNldF9EYXRhc2V0VHlwZTp2aWRlbyI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3Zp ZGVvIiwNCj4gKyAgICAic2VjdXJpdHlfQ3Zzc1NldmVyaXR5VHlwZTpjcml0aWNhbCI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlU eXBlL2NyaXRpY2FsIiwNCj4gKyAgICAic2VjdXJpdHlfQ3Zzc1NldmVyaXR5VHlwZTpoaWdo IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0N2c3NTZXZl cml0eVR5cGUvaGlnaCIsDQo+ICsgICAgInNlY3VyaXR5X0N2c3NTZXZlcml0eVR5cGU6bG93 IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0N2c3NTZXZl cml0eVR5cGUvbG93IiwNCj4gKyAgICAic2VjdXJpdHlfQ3Zzc1NldmVyaXR5VHlwZTptZWRp dW0iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvQ3Zzc1Nl dmVyaXR5VHlwZS9tZWRpdW0iLA0KPiArICAgICJzZWN1cml0eV9DdnNzU2V2ZXJpdHlUeXBl Om5vbmUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvQ3Zz c1NldmVyaXR5VHlwZS9ub25lIiwNCj4gKyAgICAic2VjdXJpdHlfRXhwbG9pdENhdGFsb2dU eXBlOmtldiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9F eHBsb2l0Q2F0YWxvZ1R5cGUva2V2IiwNCj4gKyAgICAic2VjdXJpdHlfRXhwbG9pdENhdGFs b2dUeXBlOm90aGVyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3Vy aXR5L0V4cGxvaXRDYXRhbG9nVHlwZS9vdGhlciIsDQo+ICsgICAgInNlY3VyaXR5X1NzdmNE ZWNpc2lvblR5cGU6YWN0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1Nl Y3VyaXR5L1NzdmNEZWNpc2lvblR5cGUvYWN0IiwNCj4gKyAgICAic2VjdXJpdHlfU3N2Y0Rl Y2lzaW9uVHlwZTphdHRlbmQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv U2VjdXJpdHkvU3N2Y0RlY2lzaW9uVHlwZS9hdHRlbmQiLA0KPiArICAgICJzZWN1cml0eV9T c3ZjRGVjaXNpb25UeXBlOnRyYWNrIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL1NlY3VyaXR5L1NzdmNEZWNpc2lvblR5cGUvdHJhY2siLA0KPiArICAgICJzZWN1cml0 eV9Tc3ZjRGVjaXNpb25UeXBlOnRyYWNrU3RhciI6ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9TZWN1cml0eS9Tc3ZjRGVjaXNpb25UeXBlL3RyYWNrU3RhciIsDQo+ICsg ICAgInNlY3VyaXR5X1ZleEp1c3RpZmljYXRpb25UeXBlOmNvbXBvbmVudE5vdFByZXNlbnQi OiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvVmV4SnVzdGlm aWNhdGlvblR5cGUvY29tcG9uZW50Tm90UHJlc2VudCIsDQo+ICsgICAgInNlY3VyaXR5X1Zl eEp1c3RpZmljYXRpb25UeXBlOmlubGluZU1pdGlnYXRpb25zQWxyZWFkeUV4aXN0IjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1ZleEp1c3RpZmljYXRp b25UeXBlL2lubGluZU1pdGlnYXRpb25zQWxyZWFkeUV4aXN0IiwNCj4gKyAgICAic2VjdXJp dHlfVmV4SnVzdGlmaWNhdGlvblR5cGU6dnVsbmVyYWJsZUNvZGVDYW5ub3RCZUNvbnRyb2xs ZWRCeUFkdmVyc2FyeSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1 cml0eS9WZXhKdXN0aWZpY2F0aW9uVHlwZS92dWxuZXJhYmxlQ29kZUNhbm5vdEJlQ29udHJv bGxlZEJ5QWR2ZXJzYXJ5IiwNCj4gKyAgICAic2VjdXJpdHlfVmV4SnVzdGlmaWNhdGlvblR5 cGU6dnVsbmVyYWJsZUNvZGVOb3RJbkV4ZWN1dGVQYXRoIjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1ZleEp1c3RpZmljYXRpb25UeXBlL3Z1bG5lcmFi bGVDb2RlTm90SW5FeGVjdXRlUGF0aCIsDQo+ICsgICAgInNlY3VyaXR5X1ZleEp1c3RpZmlj YXRpb25UeXBlOnZ1bG5lcmFibGVDb2RlTm90UHJlc2VudCI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9WZXhKdXN0aWZpY2F0aW9uVHlwZS92dWxuZXJh YmxlQ29kZU5vdFByZXNlbnQiLA0KPiArICAgICJzb2Z0d2FyZV9Db250ZW50SWRlbnRpZmll clR5cGU6Z2l0b2lkIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3 YXJlL0NvbnRlbnRJZGVudGlmaWVyVHlwZS9naXRvaWQiLA0KPiArICAgICJzb2Z0d2FyZV9D b250ZW50SWRlbnRpZmllclR5cGU6c3doaWQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvQ29udGVudElkZW50aWZpZXJUeXBlL3N3aGlkIiwNCj4gKyAg ICAic29mdHdhcmVfRmlsZUtpbmRUeXBlOmRpcmVjdG9yeSI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9GaWxlS2luZFR5cGUvZGlyZWN0b3J5IiwNCj4g KyAgICAic29mdHdhcmVfRmlsZUtpbmRUeXBlOmZpbGUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvRmlsZUtpbmRUeXBlL2ZpbGUiLA0KPiArICAgICJz b2Z0d2FyZV9TYm9tVHlwZTphbmFseXplZCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9hbmFseXplZCIsDQo+ICsgICAgInNvZnR3YXJl X1Nib21UeXBlOmJ1aWxkIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1Nv ZnR3YXJlL1Nib21UeXBlL2J1aWxkIiwNCj4gKyAgICAic29mdHdhcmVfU2JvbVR5cGU6ZGVw bG95ZWQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU2Jv bVR5cGUvZGVwbG95ZWQiLA0KPiArICAgICJzb2Z0d2FyZV9TYm9tVHlwZTpkZXNpZ24iOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU2JvbVR5cGUvZGVz aWduIiwNCj4gKyAgICAic29mdHdhcmVfU2JvbVR5cGU6cnVudGltZSI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9ydW50aW1lIiwNCj4g KyAgICAic29mdHdhcmVfU2JvbVR5cGU6c291cmNlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1Nib21UeXBlL3NvdXJjZSIsDQo+ICsgICAgInNvZnR3 YXJlX1NvZnR3YXJlUHVycG9zZTphcHBsaWNhdGlvbiI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvYXBwbGljYXRpb24iLA0K PiArICAgICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6YXJjaGl2ZSI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvYXJjaGl2 ZSIsDQo+ICsgICAgInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpib20iOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2JvbSIs DQo+ICsgICAgInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpjb25maWd1cmF0aW9uIjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9z ZS9jb25maWd1cmF0aW9uIiwNCj4gKyAgICAic29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOmNv bnRhaW5lciI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9T b2Z0d2FyZVB1cnBvc2UvY29udGFpbmVyIiwNCj4gKyAgICAic29mdHdhcmVfU29mdHdhcmVQ dXJwb3NlOmRhdGEiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdh cmUvU29mdHdhcmVQdXJwb3NlL2RhdGEiLA0KPiArICAgICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1 cnBvc2U6ZGV2aWNlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3 YXJlL1NvZnR3YXJlUHVycG9zZS9kZXZpY2UiLA0KPiArICAgICJzb2Z0d2FyZV9Tb2Z0d2Fy ZVB1cnBvc2U6ZGV2aWNlRHJpdmVyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kZXZpY2VEcml2ZXIiLA0KPiArICAgICJz b2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6ZGlza0ltYWdlIjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kaXNrSW1hZ2UiLA0K PiArICAgICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6ZG9jdW1lbnRhdGlvbiI6ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uv ZG9jdW1lbnRhdGlvbiIsDQo+ICsgICAgInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpldmlk ZW5jZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0 d2FyZVB1cnBvc2UvZXZpZGVuY2UiLA0KPiArICAgICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBv c2U6ZXhlY3V0YWJsZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0 d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZXhlY3V0YWJsZSIsDQo+ICsgICAgInNvZnR3YXJlX1Nv ZnR3YXJlUHVycG9zZTpmaWxlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9maWxlIiwNCj4gKyAgICAic29mdHdhcmVfU29m dHdhcmVQdXJwb3NlOmZpbGVzeXN0ZW1JbWFnZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZmlsZXN5c3RlbUltYWdlIiwN Cj4gKyAgICAic29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOmZpcm13YXJlIjogImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9maXJt d2FyZSIsDQo+ICsgICAgInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpmcmFtZXdvcmsiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJw b3NlL2ZyYW1ld29yayIsDQo+ICsgICAgInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTppbnN0 YWxsIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3 YXJlUHVycG9zZS9pbnN0YWxsIiwNCj4gKyAgICAic29mdHdhcmVfU29mdHdhcmVQdXJwb3Nl OmxpYnJhcnkiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUv U29mdHdhcmVQdXJwb3NlL2xpYnJhcnkiLA0KPiArICAgICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1 cnBvc2U6bWFuaWZlc3QiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29m dHdhcmUvU29mdHdhcmVQdXJwb3NlL21hbmlmZXN0IiwNCj4gKyAgICAic29mdHdhcmVfU29m dHdhcmVQdXJwb3NlOm1vZGVsIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9tb2RlbCIsDQo+ICsgICAgInNvZnR3YXJlX1Nv ZnR3YXJlUHVycG9zZTptb2R1bGUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL21vZHVsZSIsDQo+ICsgICAgInNvZnR3YXJl X1NvZnR3YXJlUHVycG9zZTpvcGVyYXRpbmdTeXN0ZW0iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL29wZXJhdGluZ1N5c3Rl bSIsDQo+ICsgICAgInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpvdGhlciI6ICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uvb3Ro ZXIiLA0KPiArICAgICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1cnBvc2U6cGF0Y2giOiAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL3Bh dGNoIiwNCj4gKyAgICAic29mdHdhcmVfU29mdHdhcmVQdXJwb3NlOnBsYXRmb3JtIjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9z ZS9wbGF0Zm9ybSIsDQo+ICsgICAgInNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTpyZXF1aXJl bWVudCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0 d2FyZVB1cnBvc2UvcmVxdWlyZW1lbnQiLA0KPiArICAgICJzb2Z0d2FyZV9Tb2Z0d2FyZVB1 cnBvc2U6c291cmNlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3 YXJlL1NvZnR3YXJlUHVycG9zZS9zb3VyY2UiLA0KPiArICAgICJzb2Z0d2FyZV9Tb2Z0d2Fy ZVB1cnBvc2U6c3BlY2lmaWNhdGlvbiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uvc3BlY2lmaWNhdGlvbiIsDQo+ICsgICAg InNvZnR3YXJlX1NvZnR3YXJlUHVycG9zZTp0ZXN0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS90ZXN0IiwNCj4gK30NCj4g Kw0KPiArDQo+ICsjIENMQVNTRVMNCj4gKyMgVGhlIGNsYXNzIHRoYXQgY29udGFpbnMgcHJv cGVydGllcyB0byBkZXNjcmliZSBlbmVyZ3kgY29uc3VtcHRpb24gaW5jdXJyZWQNCj4gKyMg YnkgYW4gQUkgbW9kZWwgaW4gZGlmZmVyZW50IHN0YWdlcyBvZiBpdHMgbGlmZWN5Y2xlLg0K PiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9FbmVy Z3lDb25zdW1wdGlvbiIsIGNvbXBhY3RfdHlwZT0iYWlfRW5lcmd5Q29uc3VtcHRpb24iLCBh YnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIGFpX0VuZXJneUNvbnN1bXB0aW9uKFNIQUNMT2Jq ZWN0KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiAr ICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFz c21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAg c3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0aGUg YW1vdW50IG9mIGVuZXJneSBjb25zdW1lZCB3aGVuIGZpbmV0dW5pbmcgdGhlIEFJIG1vZGVs IHRoYXQgaXMNCj4gKyAgICAgICAgIyBiZWluZyB1c2VkIGluIHRoZSBBSSBzeXN0ZW0uDQo+ ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImFpX2ZpbmV0 dW5pbmdFbmVyZ3lDb25zdW1wdGlvbiIsDQo+ICsgICAgICAgICAgICBMaXN0UHJvcChPYmpl Y3RQcm9wKGFpX0VuZXJneUNvbnN1bXB0aW9uRGVzY3JpcHRpb24sIEZhbHNlKSksDQo+ICsg ICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0FJL2Zp bmV0dW5pbmdFbmVyZ3lDb25zdW1wdGlvbiIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJh aV9maW5ldHVuaW5nRW5lcmd5Q29uc3VtcHRpb24iLA0KPiArICAgICAgICApDQo+ICsgICAg ICAgICMgU3BlY2lmaWVzIHRoZSBhbW91bnQgb2YgZW5lcmd5IGNvbnN1bWVkIGR1cmluZyBp bmZlcmVuY2UgdGltZSBieSBhbiBBSSBtb2RlbA0KPiArICAgICAgICAjIHRoYXQgaXMgYmVp bmcgdXNlZCBpbiB0aGUgQUkgc3lzdGVtLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0 eSgNCj4gKyAgICAgICAgICAgICJhaV9pbmZlcmVuY2VFbmVyZ3lDb25zdW1wdGlvbiIsDQo+ ICsgICAgICAgICAgICBMaXN0UHJvcChPYmplY3RQcm9wKGFpX0VuZXJneUNvbnN1bXB0aW9u RGVzY3JpcHRpb24sIEZhbHNlKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0FJL2luZmVyZW5jZUVuZXJneUNvbnN1bXB0aW9uIiwN Cj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImFpX2luZmVyZW5jZUVuZXJneUNvbnN1bXB0aW9u IiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0aGUgYW1vdW50IG9m IGVuZXJneSBjb25zdW1lZCB3aGVuIHRyYWluaW5nIHRoZSBBSSBtb2RlbCB0aGF0IGlzDQo+ ICsgICAgICAgICMgYmVpbmcgdXNlZCBpbiB0aGUgQUkgc3lzdGVtLg0KPiArICAgICAgICBj bHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJhaV90cmFpbmluZ0VuZXJneUNv bnN1bXB0aW9uIiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKE9iamVjdFByb3AoYWlfRW5l cmd5Q29uc3VtcHRpb25EZXNjcmlwdGlvbiwgRmFsc2UpKSwNCj4gKyAgICAgICAgICAgIGly aT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkvdHJhaW5pbmdFbmVyZ3lD b25zdW1wdGlvbiIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJhaV90cmFpbmluZ0VuZXJn eUNvbnN1bXB0aW9uIiwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gKyMgVGhlIGNsYXNz IHRoYXQgaGVscHMgbm90ZSBkb3duIHRoZSBxdWFudGl0eSBvZiBlbmVyZ3kgY29uc3VtcHRp b24gYW5kIHRoZSB1bml0DQo+ICsjIHVzZWQgZm9yIG1lYXN1cmVtZW50Lg0KPiArQHJlZ2lz dGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9FbmVyZ3lDb25zdW1w dGlvbkRlc2NyaXB0aW9uIiwgY29tcGFjdF90eXBlPSJhaV9FbmVyZ3lDb25zdW1wdGlvbkRl c2NyaXB0aW9uIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBhaV9FbmVyZ3lDb25zdW1w dGlvbkRlc2NyaXB0aW9uKFNIQUNMT2JqZWN0KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2Rl S2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiAr ICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJf cHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiAr ICAgICAgICAjIFJlcHJlc2VudHMgdGhlIGVuZXJneSBxdWFudGl0eS4NCj4gKyAgICAgICAg Y2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiYWlfZW5lcmd5UXVhbnRpdHki LA0KPiArICAgICAgICAgICAgRmxvYXRQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0FJL2VuZXJneVF1YW50aXR5IiwNCj4g KyAgICAgICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iYWlf ZW5lcmd5UXVhbnRpdHkiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgU3BlY2lmaWVz IHRoZSB1bml0IGluIHdoaWNoIGVuZXJneSBpcyBtZWFzdXJlZC4NCj4gKyAgICAgICAgY2xz Ll9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiYWlfZW5lcmd5VW5pdCIsDQo+ICsg ICAgICAgICAgICBFbnVtUHJvcChbDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkvRW5lcmd5VW5pdFR5cGUva2lsb3dhdHRI b3VyIiwgImtpbG93YXR0SG91ciIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0FJL0VuZXJneVVuaXRUeXBlL21lZ2Fqb3Vs ZSIsICJtZWdham91bGUiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9FbmVyZ3lVbml0VHlwZS9vdGhlciIsICJvdGhl ciIpLA0KPiArICAgICAgICAgICAgICAgIF0pLA0KPiArICAgICAgICAgICAgaXJpPSJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9lbmVyZ3lVbml0IiwNCj4gKyAgICAg ICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iYWlfZW5lcmd5 VW5pdCIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIFNwZWNpZmllcyB0aGUgdW5p dCBvZiBlbmVyZ3kgY29uc3VtcHRpb24uDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0FJL0VuZXJneVVuaXRUeXBlIiwgY29tcGFjdF90eXBlPSJh aV9FbmVyZ3lVbml0VHlwZSIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgYWlfRW5lcmd5 VW5pdFR5cGUoU0hBQ0xPYmplY3QpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJs YW5rTm9kZU9ySVJJDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgICAg ICJraWxvd2F0dEhvdXIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkv RW5lcmd5VW5pdFR5cGUva2lsb3dhdHRIb3VyIiwNCj4gKyAgICAgICAgIm1lZ2Fqb3VsZSI6 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9FbmVyZ3lVbml0VHlwZS9t ZWdham91bGUiLA0KPiArICAgICAgICAib3RoZXIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQUkvRW5lcmd5VW5pdFR5cGUvb3RoZXIiLA0KPiArICAgIH0NCj4gKyAg ICAjIEtpbG93YXR0LWhvdXIuDQo+ICsgICAga2lsb3dhdHRIb3VyID0gImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0FJL0VuZXJneVVuaXRUeXBlL2tpbG93YXR0SG91ciIN Cj4gKyAgICAjIE1lZ2Fqb3VsZS4NCj4gKyAgICBtZWdham91bGUgPSAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkvRW5lcmd5VW5pdFR5cGUvbWVnYWpvdWxlIg0KPiAr ICAgICMgQW55IG90aGVyIHVuaXRzIG9mIGVuZXJneSBtZWFzdXJlbWVudC4NCj4gKyAgICBv dGhlciA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9FbmVyZ3lVbml0 VHlwZS9vdGhlciINCj4gKw0KPiArDQo+ICsjIFNwZWNpZmllcyB0aGUgc2FmZXR5IHJpc2sg bGV2ZWwuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0FJL1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlwZSIsIGNvbXBhY3RfdHlwZT0iYWlfU2FmZXR5 Umlza0Fzc2Vzc21lbnRUeXBlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBhaV9TYWZl dHlSaXNrQXNzZXNzbWVudFR5cGUoU0hBQ0xPYmplY3QpOg0KPiArICAgIE5PREVfS0lORCA9 IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7 DQo+ICsgICAgICAgICJoaWdoIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0FJL1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlwZS9oaWdoIiwNCj4gKyAgICAgICAgImxvdyI6 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9TYWZldHlSaXNrQXNzZXNz bWVudFR5cGUvbG93IiwNCj4gKyAgICAgICAgIm1lZGl1bSI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9BSS9TYWZldHlSaXNrQXNzZXNzbWVudFR5cGUvbWVkaXVtIiwN Cj4gKyAgICAgICAgInNlcmlvdXMiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQUkvU2FmZXR5Umlza0Fzc2Vzc21lbnRUeXBlL3NlcmlvdXMiLA0KPiArICAgIH0NCj4g KyAgICAjIFRoZSBzZWNvbmQtaGlnaGVzdCBsZXZlbCBvZiByaXNrIHBvc2VkIGJ5IGFuIEFJ IHN5c3RlbS4NCj4gKyAgICBoaWdoID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0FJL1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlwZS9oaWdoIg0KPiArICAgICMgTG93L25v IHJpc2sgaXMgcG9zZWQgYnkgYW4gQUkgc3lzdGVtLg0KPiArICAgIGxvdyA9ICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9TYWZldHlSaXNrQXNzZXNzbWVudFR5cGUv bG93Ig0KPiArICAgICMgVGhlIHRoaXJkLWhpZ2hlc3QgbGV2ZWwgb2YgcmlzayBwb3NlZCBi eSBhbiBBSSBzeXN0ZW0uDQo+ICsgICAgbWVkaXVtID0gImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0FJL1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlwZS9tZWRpdW0iDQo+ICsg ICAgIyBUaGUgaGlnaGVzdCBsZXZlbCBvZiByaXNrIHBvc2VkIGJ5IGFuIEFJIHN5c3RlbS4N Cj4gKyAgICBzZXJpb3VzID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0FJ L1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlwZS9zZXJpb3VzIg0KPiArDQo+ICsNCj4gKyMgU3Bl Y2lmaWVzIHRoZSB0eXBlIG9mIGFuIGFubm90YXRpb24uDQo+ICtAcmVnaXN0ZXIoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvQW5ub3RhdGlvblR5cGUiLCBjb21w YWN0X3R5cGU9IkFubm90YXRpb25UeXBlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBB bm5vdGF0aW9uVHlwZShTSEFDTE9iamVjdCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtp bmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAg ICAgICAgIm90aGVyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv QW5ub3RhdGlvblR5cGUvb3RoZXIiLA0KPiArICAgICAgICAicmV2aWV3IjogImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvQW5ub3RhdGlvblR5cGUvcmV2aWV3IiwN Cj4gKyAgICB9DQo+ICsgICAgIyBVc2VkIHRvIHN0b3JlIGV4dHJhIGluZm9ybWF0aW9uIGFi b3V0IGFuIEVsZW1lbnQgd2hpY2ggaXMgbm90IHBhcnQgb2YgYSBSZXZpZXcgKGUuZy4gZXh0 cmEgaW5mb3JtYXRpb24gcHJvdmlkZWQgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiB0aGUgRWxl bWVudCkuDQo+ICsgICAgb3RoZXIgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9Bbm5vdGF0aW9uVHlwZS9vdGhlciINCj4gKyAgICAjIFVzZWQgd2hlbiBzb21l b25lIHJldmlld3MgdGhlIEVsZW1lbnQuDQo+ICsgICAgcmV2aWV3ID0gImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvQW5ub3RhdGlvblR5cGUvcmV2aWV3Ig0KPiAr DQo+ICsNCj4gKyMgUHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNyZWF0aW9uIG9m IHRoZSBFbGVtZW50Lg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0NyZWF0aW9uSW5mbyIsIGNvbXBhY3RfdHlwZT0iQ3JlYXRpb25JbmZv IiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBDcmVhdGlvbkluZm8oU0hBQ0xPYmplY3Qp Og0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAg TkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQGNsYXNzbWV0 aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMpOg0KPiArICAgICAgICBzdXBl cigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAgICAgICMgUHJvdmlkZSBjb25zdW1lcnMg d2l0aCBjb21tZW50cyBieSB0aGUgY3JlYXRvciBvZiB0aGUgRWxlbWVudCBhYm91dCB0aGUN Cj4gKyAgICAgICAgIyBFbGVtZW50Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgN Cj4gKyAgICAgICAgICAgICJjb21tZW50IiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3Ao KSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9jb21tZW50IiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImNvbW1lbnQiLA0K PiArICAgICAgICApDQo+ICsgICAgICAgICMgSWRlbnRpZmllcyB3aGVuIHRoZSBFbGVtZW50 IHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5 KA0KPiArICAgICAgICAgICAgImNyZWF0ZWQiLA0KPiArICAgICAgICAgICAgRGF0ZVRpbWVT dGFtcFByb3AocGF0dGVybj1yIl5cZFxkXGRcZC1cZFxkLVxkXGRUXGRcZDpcZFxkOlxkXGRa JCIsKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9jcmVhdGVkIiwNCj4gKyAgICAgICAgICAgIG1pbl9jb3VudD0xLA0KPiAr ICAgICAgICAgICAgY29tcGFjdD0iY3JlYXRlZCIsDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgIyBJZGVudGlmaWVzIHdobyBvciB3aGF0IGNyZWF0ZWQgdGhlIEVsZW1lbnQuDQo+ICsg ICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImNyZWF0ZWRCeSIs DQo+ICsgICAgICAgICAgICBMaXN0UHJvcChPYmplY3RQcm9wKEFnZW50LCBGYWxzZSkpLA0K PiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL2NyZWF0ZWRCeSIsDQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAg ICAgICAgIGNvbXBhY3Q9ImNyZWF0ZWRCeSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAg IyBJZGVudGlmaWVzIHRoZSB0b29saW5nIHRoYXQgd2FzIHVzZWQgZHVyaW5nIHRoZSBjcmVh dGlvbiBvZiB0aGUgRWxlbWVudC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ ICsgICAgICAgICAgICAiY3JlYXRlZFVzaW5nIiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9w KE9iamVjdFByb3AoVG9vbCwgRmFsc2UpKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9jcmVhdGVkVXNpbmciLA0KPiArICAg ICAgICAgICAgY29tcGFjdD0iY3JlYXRlZFVzaW5nIiwNCj4gKyAgICAgICAgKQ0KPiArICAg ICAgICAjIFByb3ZpZGVzIGEgcmVmZXJlbmNlIG51bWJlciB0aGF0IGNhbiBiZSB1c2VkIHRv IHVuZGVyc3RhbmQgaG93IHRvIHBhcnNlIGFuZCBpbnRlcnByZXQgYW4gRWxlbWVudC4NCj4g KyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAic3BlY1ZlcnNp b24iLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcChwYXR0ZXJuPXIiXigwfFsxLTldXGQq KVwuKDB8WzEtOV1cZCopXC4oMHxbMS05XVxkKikoPzotKCg/OjB8WzEtOV1cZCp8XGQqW2Et ekEtWi1dWzAtOWEtekEtWi1dKikoPzpcLig/OjB8WzEtOV1cZCp8XGQqW2EtekEtWi1dWzAt OWEtekEtWi1dKikpKikpPyg/OlwrKFswLTlhLXpBLVotXSsoPzpcLlswLTlhLXpBLVotXSsp KikpPyQiLCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvc3BlY1ZlcnNpb24iLA0KPiArICAgICAgICAgICAgbWluX2NvdW50 PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzcGVjVmVyc2lvbiIsDQo+ICsgICAgICAg ICkNCj4gKw0KPiArDQo+ICsjIEEga2V5IHdpdGggYW4gYXNzb2NpYXRlZCB2YWx1ZS4NCj4g K0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9EaWN0 aW9uYXJ5RW50cnkiLCBjb21wYWN0X3R5cGU9IkRpY3Rpb25hcnlFbnRyeSIsIGFic3RyYWN0 PUZhbHNlKQ0KPiArY2xhc3MgRGljdGlvbmFyeUVudHJ5KFNIQUNMT2JqZWN0KToNCj4gKyAg ICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIE5BTUVEX0lO RElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiAr ICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVn aXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIEEga2V5IHVzZWQgaW4gYSBnZW5lcmljIGtl eS12YWx1ZSBwYWlyLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAg ICAgICAgICJrZXkiLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAgICAg ICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL2tleSIs DQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9 ImtleSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBBIHZhbHVlIHVzZWQgaW4gYSBn ZW5lcmljIGtleS12YWx1ZSBwYWlyLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgN Cj4gKyAgICAgICAgICAgICJ2YWx1ZSIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCks DQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvdmFsdWUiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0idmFsdWUiLA0KPiArICAg ICAgICApDQo+ICsNCj4gKw0KPiArIyBCYXNlIGRvbWFpbiBjbGFzcyBmcm9tIHdoaWNoIGFs bCBvdGhlciBTUERYLTMuMCBkb21haW4gY2xhc3NlcyBkZXJpdmUuDQo+ICtAcmVnaXN0ZXIo Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRWxlbWVudCIsIGNvbXBh Y3RfdHlwZT0iRWxlbWVudCIsIGFic3RyYWN0PVRydWUpDQo+ICtjbGFzcyBFbGVtZW50KFNI QUNMT2JqZWN0KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklS SQ0KPiArICAgIElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFM UyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYg X3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3By b3BzKCkNCj4gKyAgICAgICAgIyBQcm92aWRlIGNvbnN1bWVycyB3aXRoIGNvbW1lbnRzIGJ5 IHRoZSBjcmVhdG9yIG9mIHRoZSBFbGVtZW50IGFib3V0IHRoZQ0KPiArICAgICAgICAjIEVs ZW1lbnQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAg ImNvbW1lbnQiLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAg ICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL2NvbW1lbnQi LA0KPiArICAgICAgICAgICAgY29tcGFjdD0iY29tbWVudCIsDQo+ICsgICAgICAgICkNCj4g KyAgICAgICAgIyBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3JlYXRpb24gb2Yg dGhlIEVsZW1lbnQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAg ICAgICAgImNyZWF0aW9uSW5mbyIsDQo+ICsgICAgICAgICAgICBPYmplY3RQcm9wKENyZWF0 aW9uSW5mbywgVHJ1ZSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvY3JlYXRpb25JbmZvIiwNCj4gKyAgICAgICAgICAgIG1p bl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iY3JlYXRpb25JbmZvIiwNCj4g KyAgICAgICAgKQ0KPiArICAgICAgICAjIFByb3ZpZGVzIGEgZGV0YWlsZWQgZGVzY3JpcHRp b24gb2YgdGhlIEVsZW1lbnQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiAr ICAgICAgICAgICAgImRlc2NyaXB0aW9uIiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3Ao KSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9kZXNjcmlwdGlvbiIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJkZXNjcmlw dGlvbiIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBTcGVjaWZpZXMgYW4gRXh0ZW5z aW9uIGNoYXJhY3Rlcml6YXRpb24gb2Ygc29tZSBhc3BlY3Qgb2YgYW4gRWxlbWVudC4NCj4g KyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZXh0ZW5zaW9u IiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKE9iamVjdFByb3AoZXh0ZW5zaW9uX0V4dGVu c2lvbiwgRmFsc2UpKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9leHRlbnNpb24iLA0KPiArICAgICAgICAgICAgY29tcGFj dD0iZXh0ZW5zaW9uIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFByb3ZpZGVzIGEg cmVmZXJlbmNlIHRvIGEgcmVzb3VyY2Ugb3V0c2lkZSB0aGUgc2NvcGUgb2YgU1BEWC0zLjAg Y29udGVudA0KPiArICAgICAgICAjIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBhbiBFbGVt ZW50Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJl eHRlcm5hbElkZW50aWZpZXIiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoT2JqZWN0UHJv cChFeHRlcm5hbElkZW50aWZpZXIsIEZhbHNlKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvZXh0ZXJuYWxJZGVudGlmaWVy IiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImV4dGVybmFsSWRlbnRpZmllciIsDQo+ICsg ICAgICAgICkNCj4gKyAgICAgICAgIyBQb2ludHMgdG8gYSByZXNvdXJjZSBvdXRzaWRlIHRo ZSBzY29wZSBvZiB0aGUgU1BEWC0zLjAgY29udGVudA0KPiArICAgICAgICAjIHRoYXQgcHJv dmlkZXMgYWRkaXRpb25hbCBjaGFyYWN0ZXJpc3RpY3Mgb2YgYW4gRWxlbWVudC4NCj4gKyAg ICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZXh0ZXJuYWxSZWYi LA0KPiArICAgICAgICAgICAgTGlzdFByb3AoT2JqZWN0UHJvcChFeHRlcm5hbFJlZiwgRmFs c2UpKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9leHRlcm5hbFJlZiIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJleHRl cm5hbFJlZiIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBJZGVudGlmaWVzIHRoZSBu YW1lIG9mIGFuIEVsZW1lbnQgYXMgZGVzaWduYXRlZCBieSB0aGUgY3JlYXRvci4NCj4gKyAg ICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAibmFtZSIsDQo+ICsg ICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvbmFtZSIsDQo+ICsgICAgICAgICAgICBj b21wYWN0PSJuYW1lIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIEEgc2hvcnQgZGVz Y3JpcHRpb24gb2YgYW4gRWxlbWVudC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHko DQo+ICsgICAgICAgICAgICAic3VtbWFyeSIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9w KCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvc3VtbWFyeSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzdW1tYXJ5IiwN Cj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFByb3ZpZGVzIGFuIEludGVncml0eU1ldGhv ZCB3aXRoIHdoaWNoIHRoZSBpbnRlZ3JpdHkgb2YgYW4gRWxlbWVudCBjYW4gYmUNCj4gKyAg ICAgICAgIyBhc3NlcnRlZC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsg ICAgICAgICAgICAidmVyaWZpZWRVc2luZyIsDQo+ICsgICAgICAgICAgICBMaXN0UHJvcChP YmplY3RQcm9wKEludGVncml0eU1ldGhvZCwgRmFsc2UpKSwNCj4gKyAgICAgICAgICAgIGly aT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS92ZXJpZmllZFVzaW5n IiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InZlcmlmaWVkVXNpbmciLA0KPiArICAgICAg ICApDQo+ICsNCj4gKw0KPiArIyBBIGNvbGxlY3Rpb24gb2YgRWxlbWVudHMsIG5vdCBuZWNl c3NhcmlseSB3aXRoIHVuaWZ5aW5nIGNvbnRleHQuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRWxlbWVudENvbGxlY3Rpb24iLCBjb21w YWN0X3R5cGU9IkVsZW1lbnRDb2xsZWN0aW9uIiwgYWJzdHJhY3Q9VHJ1ZSkNCj4gK2NsYXNz IEVsZW1lbnRDb2xsZWN0aW9uKEVsZW1lbnQpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVL aW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0KPiArICAg IE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21l dGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3Vw ZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIFJlZmVycyB0byBvbmUgb3Ig bW9yZSBFbGVtZW50cyB0aGF0IGFyZSBwYXJ0IG9mIGFuIEVsZW1lbnRDb2xsZWN0aW9uLg0K PiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJlbGVtZW50 IiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKE9iamVjdFByb3AoRWxlbWVudCwgRmFsc2Up KSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9lbGVtZW50IiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImVsZW1lbnQiLA0K PiArICAgICAgICApDQo+ICsgICAgICAgICMgRGVzY3JpYmVzIG9uZSBhIHByb2ZpbGUgd2hp Y2ggdGhlIGNyZWF0b3Igb2YgdGhpcyBFbGVtZW50Q29sbGVjdGlvbiBpbnRlbmRzIHRvDQo+ ICsgICAgICAgICMgY29uZm9ybSB0by4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHko DQo+ICsgICAgICAgICAgICAicHJvZmlsZUNvbmZvcm1hbmNlIiwNCj4gKyAgICAgICAgICAg IExpc3RQcm9wKEVudW1Qcm9wKFsNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9h aSIsICJhaSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJvZmlsZUlkZW50aWZpZXJUeXBlL2J1aWxkIiwgImJ1 aWxkIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9Qcm9maWxlSWRlbnRpZmllclR5cGUvY29yZSIsICJjb3JlIiks DQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9Qcm9maWxlSWRlbnRpZmllclR5cGUvZGF0YXNldCIsICJkYXRhc2V0Iiks DQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9Qcm9maWxlSWRlbnRpZmllclR5cGUvZXhwYW5kZWRMaWNlbnNpbmciLCAi ZXhwYW5kZWRMaWNlbnNpbmciKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9l eHRlbnNpb24iLCAiZXh0ZW5zaW9uIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Qcm9maWxlSWRlbnRpZmllclR5 cGUvbGl0ZSIsICJsaXRlIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Qcm9maWxlSWRlbnRpZmllclR5cGUvc2Vj dXJpdHkiLCAic2VjdXJpdHkiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9z aW1wbGVMaWNlbnNpbmciLCAic2ltcGxlTGljZW5zaW5nIiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Qcm9maWxl SWRlbnRpZmllclR5cGUvc29mdHdhcmUiLCAic29mdHdhcmUiKSwNCj4gKyAgICAgICAgICAg ICAgICBdKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvcHJvZmlsZUNvbmZvcm1hbmNlIiwNCj4gKyAgICAgICAgICAgIGNv bXBhY3Q9InByb2ZpbGVDb25mb3JtYW5jZSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAg IyBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gZGVub3RlIHRoZSByb290IEVsZW1lbnQocykg b2YgYSB0cmVlIG9mIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBhIEJPTS4NCj4gKyAgICAgICAg Y2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAicm9vdEVsZW1lbnQiLA0KPiAr ICAgICAgICAgICAgTGlzdFByb3AoT2JqZWN0UHJvcChFbGVtZW50LCBGYWxzZSkpLA0KPiAr ICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L3Jvb3RFbGVtZW50IiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InJvb3RFbGVtZW50IiwN Cj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gKyMgQSByZWZlcmVuY2UgdG8gYSByZXNvdXJj ZSBpZGVudGlmaWVyIGRlZmluZWQgb3V0c2lkZSB0aGUgc2NvcGUgb2YgU1BEWC0zLjAgY29u dGVudCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgYW4gRWxlbWVudC4NCj4gK0ByZWdpc3Rl cigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50 aWZpZXIiLCBjb21wYWN0X3R5cGU9IkV4dGVybmFsSWRlbnRpZmllciIsIGFic3RyYWN0PUZh bHNlKQ0KPiArY2xhc3MgRXh0ZXJuYWxJZGVudGlmaWVyKFNIQUNMT2JqZWN0KToNCj4gKyAg ICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIE5BTUVEX0lO RElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiAr ICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVn aXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIFByb3ZpZGUgY29uc3VtZXJzIHdpdGggY29t bWVudHMgYnkgdGhlIGNyZWF0b3Igb2YgdGhlIEVsZW1lbnQgYWJvdXQgdGhlDQo+ICsgICAg ICAgICMgRWxlbWVudC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAg ICAgICAgICAiY29tbWVudCIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsg ICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv Y29tbWVudCIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJjb21tZW50IiwNCj4gKyAgICAg ICAgKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0aGUgdHlwZSBvZiB0aGUgZXh0ZXJuYWwg aWRlbnRpZmllci4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAg ICAgICAiZXh0ZXJuYWxJZGVudGlmaWVyVHlwZSIsDQo+ICsgICAgICAgICAgICBFbnVtUHJv cChbDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL2NwZTIyIiwgImNwZTIyIiks DQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL2NwZTIzIiwgImNwZTIzIiksDQo+ ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL2N2ZSIsICJjdmUiKSwNCj4gKyAgICAg ICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsSWRlbnRpZmllclR5cGUvZW1haWwiLCAiZW1haWwiKSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4 dGVybmFsSWRlbnRpZmllclR5cGUvZ2l0b2lkIiwgImdpdG9pZCIpLA0KPiArICAgICAgICAg ICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0 ZXJuYWxJZGVudGlmaWVyVHlwZS9vdGhlciIsICJvdGhlciIpLA0KPiArICAgICAgICAgICAg ICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJu YWxJZGVudGlmaWVyVHlwZS9wYWNrYWdlVXJsIiwgInBhY2thZ2VVcmwiKSwNCj4gKyAgICAg ICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsSWRlbnRpZmllclR5cGUvc2VjdXJpdHlPdGhlciIsICJzZWN1cml0eU90aGVy IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL3N3aGlkIiwgInN3aGlkIiks DQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL3N3aWQiLCAic3dpZCIpLA0KPiAr ICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS91cmxTY2hlbWUiLCAidXJsU2NoZW1lIiks DQo+ICsgICAgICAgICAgICAgICAgXSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvZXh0ZXJuYWxJZGVudGlmaWVyVHlwZSIs DQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9 ImV4dGVybmFsSWRlbnRpZmllclR5cGUiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMg VW5pcXVlbHkgaWRlbnRpZmllcyBhbiBleHRlcm5hbCBlbGVtZW50Lg0KPiArICAgICAgICBj bHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJpZGVudGlmaWVyIiwNCj4gKyAg ICAgICAgICAgIFN0cmluZ1Byb3AoKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9pZGVudGlmaWVyIiwNCj4gKyAgICAgICAg ICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iaWRlbnRpZmllciIs DQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBQcm92aWRlcyB0aGUgbG9jYXRpb24gZm9y IG1vcmUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGFuIGV4dGVybmFsIGlkZW50aWZpZXIuDQo+ ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImlkZW50aWZp ZXJMb2NhdG9yIiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKEFueVVSSVByb3AoKSksDQo+ ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvaWRlbnRpZmllckxvY2F0b3IiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iaWRlbnRp ZmllckxvY2F0b3IiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgQW4gZW50aXR5IHRo YXQgaXMgYXV0aG9yaXplZCB0byBpc3N1ZSBpZGVudGlmaWNhdGlvbiBjcmVkZW50aWFscy4N Cj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiaXNzdWlu Z0F1dGhvcml0eSIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAg ICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvaXNzdWlu Z0F1dGhvcml0eSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJpc3N1aW5nQXV0aG9yaXR5 IiwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gKyMgU3BlY2lmaWVzIHRoZSB0eXBlIG9m IGFuIGV4dGVybmFsIGlkZW50aWZpZXIuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZSIsIGNvbXBh Y3RfdHlwZT0iRXh0ZXJuYWxJZGVudGlmaWVyVHlwZSIsIGFic3RyYWN0PUZhbHNlKQ0KPiAr Y2xhc3MgRXh0ZXJuYWxJZGVudGlmaWVyVHlwZShTSEFDTE9iamVjdCk6DQo+ICsgICAgTk9E RV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBOQU1FRF9JTkRJVklE VUFMUyA9IHsNCj4gKyAgICAgICAgImNwZTIyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS9jcGUyMiIsDQo+ICsgICAg ICAgICJjcGUyMyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4 dGVybmFsSWRlbnRpZmllclR5cGUvY3BlMjMiLA0KPiArICAgICAgICAiY3ZlIjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlw ZS9jdmUiLA0KPiArICAgICAgICAiZW1haWwiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL2VtYWlsIiwNCj4gKyAgICAg ICAgImdpdG9pZCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4 dGVybmFsSWRlbnRpZmllclR5cGUvZ2l0b2lkIiwNCj4gKyAgICAgICAgIm90aGVyIjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVy VHlwZS9vdGhlciIsDQo+ICsgICAgICAgICJwYWNrYWdlVXJsIjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS9wYWNrYWdl VXJsIiwNCj4gKyAgICAgICAgInNlY3VyaXR5T3RoZXIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL3NlY3VyaXR5T3Ro ZXIiLA0KPiArICAgICAgICAic3doaWQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL3N3aGlkIiwNCj4gKyAgICAgICAg InN3aWQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5h bElkZW50aWZpZXJUeXBlL3N3aWQiLA0KPiArICAgICAgICAidXJsU2NoZW1lIjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlw ZS91cmxTY2hlbWUiLA0KPiArICAgIH0NCj4gKyAgICAjIGh0dHBzOi8vY3BlLm1pdHJlLm9y Zy9maWxlcy9jcGUtc3BlY2lmaWNhdGlvbl8yLjIucGRmDQo+ICsgICAgY3BlMjIgPSAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJU eXBlL2NwZTIyIg0KPiArICAgICMgaHR0cHM6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJz L0xlZ2FjeS9JUi9uaXN0aXI3Njk1LnBkZg0KPiArICAgIGNwZTIzID0gImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS9jcGUy MyINCj4gKyAgICAjIEFuIGlkZW50aWZpZXIgZm9yIGEgc3BlY2lmaWMgc29mdHdhcmUgZmxh dyBkZWZpbmVkIHdpdGhpbiB0aGUgb2ZmaWNpYWwgQ1ZFIERpY3Rpb25hcnkgYW5kIHRoYXQg Y29uZm9ybXMgdG8gdGhlIENWRSBzcGVjaWZpY2F0aW9uIGFzIGRlZmluZWQgYnkgaHR0cHM6 Ly9jc3JjLm5pc3QuZ292L2dsb3NzYXJ5L3Rlcm0vY3ZlX2lkLg0KPiArICAgIGN2ZSA9ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsSWRlbnRpZmll clR5cGUvY3ZlIg0KPiArICAgICMgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2Mv aHRtbC9yZmMzNjk2I3NlY3Rpb24tMw0KPiArICAgIGVtYWlsID0gImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS9lbWFpbCIN Cj4gKyAgICAjIGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL3VyaS1zY2hlbWVz L3Byb3YvZ2l0b2lkIEdpdG9pZCBzdGFuZHMgZm9yIFtHaXQgT2JqZWN0IElEXShodHRwczov L2dpdC1zY20uY29tL2Jvb2svZW4vdjIvR2l0LUludGVybmFscy1HaXQtT2JqZWN0cykgYW5k IGEgZ2l0b2lkIG9mIHR5cGUgYmxvYiBpcyBhIHVuaXF1ZSBoYXNoIG9mIGEgYmluYXJ5IGFy dGlmYWN0LiBBIGdpdG9pZCBtYXkgcmVwcmVzZW50IHRoZSBzb2Z0d2FyZSBbQXJ0aWZhY3Qg SURdKGh0dHBzOi8vZ2l0aHViLmNvbS9vbW5pYm9yL3NwZWMvYmxvYi9tYWluL3NwZWMvU1BF Qy5tZCNhcnRpZmFjdC1pZCkgb3IgdGhlIFtPbW5pQk9SIElkZW50aWZpZXJdKGh0dHBzOi8v Z2l0aHViLmNvbS9vbW5pYm9yL3NwZWMvYmxvYi9tYWluL3NwZWMvU1BFQy5tZCNvbW5pYm9y LWlkZW50aWZpZXIpIGZvciB0aGUgc29mdHdhcmUgYXJ0aWZhY3QncyBhc3NvY2lhdGVkIFtP bW5pQk9SIERvY3VtZW50XShodHRwczovL2dpdGh1Yi5jb20vb21uaWJvci9zcGVjL2Jsb2Iv bWFpbi9zcGVjL1NQRUMubWQjb21uaWJvci1kb2N1bWVudCk7IHRoaXMgYW1iaWd1aXR5IGV4 aXN0cyBiZWNhdXNlIHRoZSBPbW5pQk9SIERvY3VtZW50IGlzIGl0c2VsZiBhbiBhcnRpZmFj dCwgYW5kIHRoZSBnaXRvaWQgb2YgdGhhdCBhcnRpZmFjdCBpcyBpdHMgdmFsaWQgaWRlbnRp Zmllci4gT21uaWJvciBpcyBhIG1pbmltYWxpc3RpYyBzY2hlbWEgdG8gZGVzY3JpYmUgc29m dHdhcmUgW0FydGlmYWN0IERlcGVuZGVuY3kgR3JhcGhzXShodHRwczovL2dpdGh1Yi5jb20v b21uaWJvci9zcGVjL2Jsb2IvbWFpbi9zcGVjL1NQRUMubWQjYXJ0aWZhY3QtZGVwZW5kZW5j eS1ncmFwaC1hZGcpLiBHaXRvaWRzIGNhbGN1bGF0ZWQgb24gc29mdHdhcmUgYXJ0aWZhY3Rz IChTbmlwcGV0LCBGaWxlLCBvciBQYWNrYWdlIEVsZW1lbnRzKSBzaG91bGQgYmUgcmVjb3Jk ZWQgaW4gdGhlIFNQRFggMy4wIFNvZnR3YXJlQXJ0aWZhY3QncyBDb250ZW50SWRlbnRpZmll ciBwcm9wZXJ0eS4gR2l0b2lkcyBjYWxjdWxhdGVkIG9uIHRoZSBPbW5pQk9SIERvY3VtZW50 IChPbW5pQk9SIElkZW50aWZpZXJzKSBzaG91bGQgYmUgcmVjb3JkZWQgaW4gdGhlIFNQRFgg My4wIEVsZW1lbnQncyBFeHRlcm5hbElkZW50aWZpZXIgcHJvcGVydHkuDQo+ICsgICAgZ2l0 b2lkID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJ ZGVudGlmaWVyVHlwZS9naXRvaWQiDQo+ICsgICAgIyBVc2VkIHdoZW4gdGhlIHR5cGUgZG9l c24ndCBtYXRjaCBhbnkgb2YgdGhlIG90aGVyIG9wdGlvbnMuDQo+ICsgICAgb3RoZXIgPSAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZp ZXJUeXBlL290aGVyIg0KPiArICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3BhY2thZ2UtdXJs L3B1cmwtc3BlYw0KPiArICAgIHBhY2thZ2VVcmwgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL3BhY2thZ2VVcmwiDQo+ ICsgICAgIyBVc2VkIHdoZW4gdGhlcmUgaXMgYSBzZWN1cml0eSByZWxhdGVkIGlkZW50aWZp ZXIgb2YgdW5zcGVjaWZpZWQgdHlwZS4NCj4gKyAgICBzZWN1cml0eU90aGVyID0gImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlw ZS9zZWN1cml0eU90aGVyIg0KPiArICAgICMgU29mdFdhcmUgSGFzaCBJRGVudGlmaWVyLCBw ZXJzaXN0ZW50IGludHJpbnNpYyBpZGVudGlmaWVycyBmb3IgZGlnaXRhbCBhcnRpZmFjdHMs IHN1Y2ggYXMgZmlsZXMsIHRyZWVzIChhbHNvIGtub3duIGFzIGRpcmVjdG9yaWVzIG9yIGZv bGRlcnMpLCBjb21taXRzLCBhbmQgb3RoZXIgb2JqZWN0cyB0eXBpY2FsbHkgZm91bmQgaW4g dmVyc2lvbiBjb250cm9sIHN5c3RlbXMuIFRoZSBzeW50YXggb2YgdGhlIGlkZW50aWZpZXJz IGlzIGRlZmluZWQgaW4gdGhlIFtTV0hJRCBzcGVjaWZpY2F0aW9uXShodHRwczovL3d3dy5z d2hpZC5vcmcvc3BlY2lmaWNhdGlvbi92MS4xLzQuU3ludGF4KSBhbmQgdGhleSB0eXBpY2Fs bHkgbG9vayBsaWtlIGBzd2g6MTpjbnQ6OTRhOWVkMDI0ZDM4NTk3OTM2MTgxNTJlYTU1OWEx NjhiYmNiYjVlMmAuDQo+ICsgICAgc3doaWQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9FeHRlcm5hbElkZW50aWZpZXJUeXBlL3N3aGlkIg0KPiArICAgICMg aHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1pZXRmLXNhY20tY29zd2lk LTIxLmh0bWwjc2VjdGlvbi0yLjMNCj4gKyAgICBzd2lkID0gImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS9zd2lkIg0KPiAr ICAgICMgdGhlIHNjaGVtZSB1c2VkIGluIG9yZGVyIHRvIGxvY2F0ZSBhIHJlc291cmNlIGh0 dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL3VyaS1zY2hlbWVzL3VyaS1zY2hlbWVz LnhodG1sDQo+ICsgICAgdXJsU2NoZW1lID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvRXh0ZXJuYWxJZGVudGlmaWVyVHlwZS91cmxTY2hlbWUiDQo+ICsNCj4g Kw0KPiArIyBBIG1hcCBvZiBFbGVtZW50IGlkZW50aWZpZXJzIHRoYXQgYXJlIHVzZWQgd2l0 aGluIGEgRG9jdW1lbnQgYnV0IGRlZmluZWQgZXh0ZXJuYWwgdG8gdGhhdCBEb2N1bWVudC4N Cj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9F eHRlcm5hbE1hcCIsIGNvbXBhY3RfdHlwZT0iRXh0ZXJuYWxNYXAiLCBhYnN0cmFjdD1GYWxz ZSkNCj4gK2NsYXNzIEV4dGVybmFsTWFwKFNIQUNMT2JqZWN0KToNCj4gKyAgICBOT0RFX0tJ TkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIE5BTUVEX0lORElWSURVQUxT ID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBf cmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJv cHMoKQ0KPiArICAgICAgICAjIEFydGlmYWN0IHJlcHJlc2VudGluZyBhIHNlcmlhbGl6YXRp b24gaW5zdGFuY2Ugb2YgU1BEWCBkYXRhIGNvbnRhaW5pbmcgdGhlDQo+ICsgICAgICAgICMg ZGVmaW5pdGlvbiBvZiBhIHBhcnRpY3VsYXIgRWxlbWVudC4NCj4gKyAgICAgICAgY2xzLl9h ZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZGVmaW5pbmdBcnRpZmFjdCIsDQo+ICsg ICAgICAgICAgICBPYmplY3RQcm9wKEFydGlmYWN0LCBGYWxzZSksDQo+ICsgICAgICAgICAg ICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvZGVmaW5pbmdB cnRpZmFjdCIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJkZWZpbmluZ0FydGlmYWN0IiwN Cj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIElkZW50aWZpZXMgYW4gZXh0ZXJuYWwgRWxl bWVudCB1c2VkIHdpdGhpbiBhIERvY3VtZW50IGJ1dCBkZWZpbmVkIGV4dGVybmFsIHRvDQo+ ICsgICAgICAgICMgdGhhdCBEb2N1bWVudC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVy dHkoDQo+ICsgICAgICAgICAgICAiZXh0ZXJuYWxTcGR4SWQiLA0KPiArICAgICAgICAgICAg QW55VVJJUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL2V4dGVybmFsU3BkeElkIiwNCj4gKyAgICAgICAgICAgIG1p bl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iZXh0ZXJuYWxTcGR4SWQiLA0K PiArICAgICAgICApDQo+ICsgICAgICAgICMgUHJvdmlkZXMgYW4gaW5kaWNhdGlvbiBvZiB3 aGVyZSB0byByZXRyaWV2ZSBhbiBleHRlcm5hbCBFbGVtZW50Lg0KPiArICAgICAgICBjbHMu X2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJsb2NhdGlvbkhpbnQiLA0KPiArICAg ICAgICAgICAgQW55VVJJUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL2xvY2F0aW9uSGludCIsDQo+ICsgICAgICAg ICAgICBjb21wYWN0PSJsb2NhdGlvbkhpbnQiLA0KPiArICAgICAgICApDQo+ICsgICAgICAg ICMgUHJvdmlkZXMgYW4gSW50ZWdyaXR5TWV0aG9kIHdpdGggd2hpY2ggdGhlIGludGVncml0 eSBvZiBhbiBFbGVtZW50IGNhbiBiZQ0KPiArICAgICAgICAjIGFzc2VydGVkLg0KPiArICAg ICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJ2ZXJpZmllZFVzaW5n IiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKE9iamVjdFByb3AoSW50ZWdyaXR5TWV0aG9k LCBGYWxzZSkpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL3ZlcmlmaWVkVXNpbmciLA0KPiArICAgICAgICAgICAgY29tcGFj dD0idmVyaWZpZWRVc2luZyIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIEEgcmVm ZXJlbmNlIHRvIGEgcmVzb3VyY2Ugb3V0c2lkZSB0aGUgc2NvcGUgb2YgU1BEWC0zLjAgY29u dGVudCByZWxhdGVkIHRvIGFuIEVsZW1lbnQuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWYiLCBjb21wYWN0X3R5cGU9 IkV4dGVybmFsUmVmIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBFeHRlcm5hbFJlZihT SEFDTE9iamVjdCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJ UkkNCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKyAg ICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ICsg ICAgICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkNCj4gKyAgICAgICAgIyBQcm92aWRl IGNvbnN1bWVycyB3aXRoIGNvbW1lbnRzIGJ5IHRoZSBjcmVhdG9yIG9mIHRoZSBFbGVtZW50 IGFib3V0IHRoZQ0KPiArICAgICAgICAjIEVsZW1lbnQuDQo+ICsgICAgICAgIGNscy5fYWRk X3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImNvbW1lbnQiLA0KPiArICAgICAgICAgICAg U3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL2NvbW1lbnQiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0i Y29tbWVudCIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBTcGVjaWZpZXMgdGhlIG1l ZGlhIHR5cGUgb2YgYW4gRWxlbWVudCBvciBQcm9wZXJ0eS4NCj4gKyAgICAgICAgY2xzLl9h ZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiY29udGVudFR5cGUiLA0KPiArICAgICAg ICAgICAgU3RyaW5nUHJvcChwYXR0ZXJuPXIiXlteXC9dK1wvW15cL10rJCIsKSwNCj4gKyAg ICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9j b250ZW50VHlwZSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJjb250ZW50VHlwZSIsDQo+ ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgdGhlIGV4 dGVybmFsIHJlZmVyZW5jZS4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsg ICAgICAgICAgICAiZXh0ZXJuYWxSZWZUeXBlIiwNCj4gKyAgICAgICAgICAgIEVudW1Qcm9w KFsNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9hbHREb3dubG9hZExvY2F0aW9uIiwgImFs dERvd25sb2FkTG9jYXRpb24iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9hbHRXZWJQ YWdlIiwgImFsdFdlYlBhZ2UiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9iaW5hcnlB cnRpZmFjdCIsICJiaW5hcnlBcnRpZmFjdCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAo Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBl L2Jvd2VyIiwgImJvd2VyIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvYnVpbGRNZXRh IiwgImJ1aWxkTWV0YSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2J1aWxkU3lzdGVt IiwgImJ1aWxkU3lzdGVtIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvY2VydGlmaWNh dGlvblJlcG9ydCIsICJjZXJ0aWZpY2F0aW9uUmVwb3J0IiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5h bFJlZlR5cGUvY2hhdCIsICJjaGF0IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvY29t cG9uZW50QW5hbHlzaXNSZXBvcnQiLCAiY29tcG9uZW50QW5hbHlzaXNSZXBvcnQiKSwNCj4g KyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL0V4dGVybmFsUmVmVHlwZS9jd2UiLCAiY3dlIiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5h bFJlZlR5cGUvZG9jdW1lbnRhdGlvbiIsICJkb2N1bWVudGF0aW9uIiksDQo+ICsgICAgICAg ICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9F eHRlcm5hbFJlZlR5cGUvZHluYW1pY0FuYWx5c2lzUmVwb3J0IiwgImR5bmFtaWNBbmFseXNp c1JlcG9ydCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2VvbE5vdGljZSIsICJlb2xO b3RpY2UiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9leHBvcnRDb250cm9sQXNzZXNz bWVudCIsICJleHBvcnRDb250cm9sQXNzZXNzbWVudCIpLA0KPiArICAgICAgICAgICAgICAg ICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxS ZWZUeXBlL2Z1bmRpbmciLCAiZnVuZGluZyIpLA0KPiArICAgICAgICAgICAgICAgICAgICAo Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBl L2lzc3VlVHJhY2tlciIsICJpc3N1ZVRyYWNrZXIiKSwNCj4gKyAgICAgICAgICAgICAgICAg ICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVm VHlwZS9saWNlbnNlIiwgImxpY2Vuc2UiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9t YWlsaW5nTGlzdCIsICJtYWlsaW5nTGlzdCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAo Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBl L21hdmVuQ2VudHJhbCIsICJtYXZlbkNlbnRyYWwiKSwNCj4gKyAgICAgICAgICAgICAgICAg ICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVm VHlwZS9tZXRyaWNzIiwgIm1ldHJpY3MiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9u cG0iLCAibnBtIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvbnVnZXQiLCAibnVnZXQi KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9vdGhlciIsICJvdGhlciIpLA0KPiArICAg ICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvRXh0ZXJuYWxSZWZUeXBlL3ByaXZhY3lBc3Nlc3NtZW50IiwgInByaXZhY3lBc3Nlc3Nt ZW50IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvcHJvZHVjdE1ldGFkYXRhIiwgInBy b2R1Y3RNZXRhZGF0YSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3B1cmNoYXNlT3Jk ZXIiLCAicHVyY2hhc2VPcmRlciIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3F1YWxp dHlBc3Nlc3NtZW50UmVwb3J0IiwgInF1YWxpdHlBc3Nlc3NtZW50UmVwb3J0IiksDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9FeHRlcm5hbFJlZlR5cGUvcmVsZWFzZUhpc3RvcnkiLCAicmVsZWFzZUhpc3Rvcnki KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9yZWxlYXNlTm90ZXMiLCAicmVsZWFzZU5v dGVzIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvcmlza0Fzc2Vzc21lbnQiLCAicmlz a0Fzc2Vzc21lbnQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9ydW50aW1lQW5hbHlz aXNSZXBvcnQiLCAicnVudGltZUFuYWx5c2lzUmVwb3J0IiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5h bFJlZlR5cGUvc2VjdXJlU29mdHdhcmVBdHRlc3RhdGlvbiIsICJzZWN1cmVTb2Z0d2FyZUF0 dGVzdGF0aW9uIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlBZHZlcnNh cnlNb2RlbCIsICJzZWN1cml0eUFkdmVyc2FyeU1vZGVsIiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5h bFJlZlR5cGUvc2VjdXJpdHlBZHZpc29yeSIsICJzZWN1cml0eUFkdmlzb3J5IiksDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlGaXgiLCAic2VjdXJpdHlGaXgiKSwNCj4g KyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zZWN1cml0eU90aGVyIiwgInNlY3VyaXR5T3RoZXIi KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zZWN1cml0eVBlblRlc3RSZXBvcnQiLCAi c2VjdXJpdHlQZW5UZXN0UmVwb3J0IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2Vj dXJpdHlQb2xpY3kiLCAic2VjdXJpdHlQb2xpY3kiKSwNCj4gKyAgICAgICAgICAgICAgICAg ICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVm VHlwZS9zZWN1cml0eVRocmVhdE1vZGVsIiwgInNlY3VyaXR5VGhyZWF0TW9kZWwiKSwNCj4g KyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zb2NpYWxNZWRpYSIsICJzb2NpYWxNZWRpYSIpLA0K PiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3NvdXJjZUFydGlmYWN0IiwgInNvdXJjZUFydGlm YWN0IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc3RhdGljQW5hbHlzaXNSZXBvcnQi LCAic3RhdGljQW5hbHlzaXNSZXBvcnQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9z dXBwb3J0IiwgInN1cHBvcnQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS92Y3MiLCAi dmNzIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvdnVsbmVyYWJpbGl0eURpc2Nsb3N1 cmVSZXBvcnQiLCAidnVsbmVyYWJpbGl0eURpc2Nsb3N1cmVSZXBvcnQiKSwNCj4gKyAgICAg ICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsUmVmVHlwZS92dWxuZXJhYmlsaXR5RXhwbG9pdGFiaWxpdHlBc3Nlc3NtZW50 IiwgInZ1bG5lcmFiaWxpdHlFeHBsb2l0YWJpbGl0eUFzc2Vzc21lbnQiKSwNCj4gKyAgICAg ICAgICAgICAgICBdKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9leHRlcm5hbFJlZlR5cGUiLA0KPiArICAgICAgICAgICAg Y29tcGFjdD0iZXh0ZXJuYWxSZWZUeXBlIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAj IFByb3ZpZGVzIHRoZSBsb2NhdGlvbiBvZiBhbiBleHRlcm5hbCByZWZlcmVuY2UuDQo+ICsg ICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImxvY2F0b3IiLA0K PiArICAgICAgICAgICAgTGlzdFByb3AoU3RyaW5nUHJvcCgpKSwNCj4gKyAgICAgICAgICAg IGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9sb2NhdG9yIiwN Cj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImxvY2F0b3IiLA0KPiArICAgICAgICApDQo+ICsN Cj4gKw0KPiArIyBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgYW4gZXh0ZXJuYWwgcmVmZXJlbmNl Lg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsUmVmVHlwZSIsIGNvbXBhY3RfdHlwZT0iRXh0ZXJuYWxSZWZUeXBlIiwgYWJz dHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBFeHRlcm5hbFJlZlR5cGUoU0hBQ0xPYmplY3QpOg0K PiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgTkFN RURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgICAgICJhbHREb3dubG9hZExvY2F0aW9uIjog Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBl L2FsdERvd25sb2FkTG9jYXRpb24iLA0KPiArICAgICAgICAiYWx0V2ViUGFnZSI6ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9hbHRX ZWJQYWdlIiwNCj4gKyAgICAgICAgImJpbmFyeUFydGlmYWN0IjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2JpbmFyeUFydGlmYWN0 IiwNCj4gKyAgICAgICAgImJvd2VyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2Jvd2VyIiwNCj4gKyAgICAgICAgImJ1aWxkTWV0 YSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVm VHlwZS9idWlsZE1ldGEiLA0KPiArICAgICAgICAiYnVpbGRTeXN0ZW0iOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvYnVpbGRTeXN0 ZW0iLA0KPiArICAgICAgICAiY2VydGlmaWNhdGlvblJlcG9ydCI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9jZXJ0aWZpY2F0aW9u UmVwb3J0IiwNCj4gKyAgICAgICAgImNoYXQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvY2hhdCIsDQo+ICsgICAgICAgICJjb21w b25lbnRBbmFseXNpc1JlcG9ydCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL0V4dGVybmFsUmVmVHlwZS9jb21wb25lbnRBbmFseXNpc1JlcG9ydCIsDQo+ICsg ICAgICAgICJjd2UiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9F eHRlcm5hbFJlZlR5cGUvY3dlIiwNCj4gKyAgICAgICAgImRvY3VtZW50YXRpb24iOiAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvZG9j dW1lbnRhdGlvbiIsDQo+ICsgICAgICAgICJkeW5hbWljQW5hbHlzaXNSZXBvcnQiOiAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvZHlu YW1pY0FuYWx5c2lzUmVwb3J0IiwNCj4gKyAgICAgICAgImVvbE5vdGljZSI6ICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9lb2xOb3Rp Y2UiLA0KPiArICAgICAgICAiZXhwb3J0Q29udHJvbEFzc2Vzc21lbnQiOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvZXhwb3J0Q29u dHJvbEFzc2Vzc21lbnQiLA0KPiArICAgICAgICAiZnVuZGluZyI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9mdW5kaW5nIiwNCj4g KyAgICAgICAgImlzc3VlVHJhY2tlciI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9pc3N1ZVRyYWNrZXIiLA0KPiArICAgICAgICAi bGljZW5zZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVy bmFsUmVmVHlwZS9saWNlbnNlIiwNCj4gKyAgICAgICAgIm1haWxpbmdMaXN0IjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL21haWxp bmdMaXN0IiwNCj4gKyAgICAgICAgIm1hdmVuQ2VudHJhbCI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9tYXZlbkNlbnRyYWwiLA0K PiArICAgICAgICAibWV0cmljcyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL0V4dGVybmFsUmVmVHlwZS9tZXRyaWNzIiwNCj4gKyAgICAgICAgIm5wbSI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9u cG0iLA0KPiArICAgICAgICAibnVnZXQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvbnVnZXQiLA0KPiArICAgICAgICAib3RoZXIi OiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5 cGUvb3RoZXIiLA0KPiArICAgICAgICAicHJpdmFjeUFzc2Vzc21lbnQiOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvcHJpdmFjeUFz c2Vzc21lbnQiLA0KPiArICAgICAgICAicHJvZHVjdE1ldGFkYXRhIjogImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3Byb2R1Y3RNZXRh ZGF0YSIsDQo+ICsgICAgICAgICJwdXJjaGFzZU9yZGVyIjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3B1cmNoYXNlT3JkZXIiLA0K PiArICAgICAgICAicXVhbGl0eUFzc2Vzc21lbnRSZXBvcnQiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvcXVhbGl0eUFzc2Vzc21l bnRSZXBvcnQiLA0KPiArICAgICAgICAicmVsZWFzZUhpc3RvcnkiOiAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvcmVsZWFzZUhpc3Rv cnkiLA0KPiArICAgICAgICAicmVsZWFzZU5vdGVzIjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3JlbGVhc2VOb3RlcyIsDQo+ICsg ICAgICAgICJyaXNrQXNzZXNzbWVudCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9yaXNrQXNzZXNzbWVudCIsDQo+ICsgICAgICAg ICJydW50aW1lQW5hbHlzaXNSZXBvcnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvcnVudGltZUFuYWx5c2lzUmVwb3J0IiwNCj4g KyAgICAgICAgInNlY3VyZVNvZnR3YXJlQXR0ZXN0YXRpb24iOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJlU29mdHdhcmVB dHRlc3RhdGlvbiIsDQo+ICsgICAgICAgICJzZWN1cml0eUFkdmVyc2FyeU1vZGVsIjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3Nl Y3VyaXR5QWR2ZXJzYXJ5TW9kZWwiLA0KPiArICAgICAgICAic2VjdXJpdHlBZHZpc29yeSI6 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlw ZS9zZWN1cml0eUFkdmlzb3J5IiwNCj4gKyAgICAgICAgInNlY3VyaXR5Rml4IjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3NlY3Vy aXR5Rml4IiwNCj4gKyAgICAgICAgInNlY3VyaXR5T3RoZXIiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlPdGhlciIs DQo+ICsgICAgICAgICJzZWN1cml0eVBlblRlc3RSZXBvcnQiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlQZW5UZXN0 UmVwb3J0IiwNCj4gKyAgICAgICAgInNlY3VyaXR5UG9saWN5IjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3NlY3VyaXR5UG9saWN5 IiwNCj4gKyAgICAgICAgInNlY3VyaXR5VGhyZWF0TW9kZWwiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlUaHJlYXRN b2RlbCIsDQo+ICsgICAgICAgICJzb2NpYWxNZWRpYSI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zb2NpYWxNZWRpYSIsDQo+ICsg ICAgICAgICJzb3VyY2VBcnRpZmFjdCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zb3VyY2VBcnRpZmFjdCIsDQo+ICsgICAgICAg ICJzdGF0aWNBbmFseXNpc1JlcG9ydCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zdGF0aWNBbmFseXNpc1JlcG9ydCIsDQo+ICsg ICAgICAgICJzdXBwb3J0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvRXh0ZXJuYWxSZWZUeXBlL3N1cHBvcnQiLA0KPiArICAgICAgICAidmNzIjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3ZjcyIs DQo+ICsgICAgICAgICJ2dWxuZXJhYmlsaXR5RGlzY2xvc3VyZVJlcG9ydCI6ICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS92dWxuZXJh YmlsaXR5RGlzY2xvc3VyZVJlcG9ydCIsDQo+ICsgICAgICAgICJ2dWxuZXJhYmlsaXR5RXhw bG9pdGFiaWxpdHlBc3Nlc3NtZW50IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3Z1bG5lcmFiaWxpdHlFeHBsb2l0YWJpbGl0eUFz c2Vzc21lbnQiLA0KPiArICAgIH0NCj4gKyAgICAjIEEgcmVmZXJlbmNlIHRvIGFuIGFsdGVy bmF0aXZlIGRvd25sb2FkIGxvY2F0aW9uLg0KPiArICAgIGFsdERvd25sb2FkTG9jYXRpb24g PSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5 cGUvYWx0RG93bmxvYWRMb2NhdGlvbiINCj4gKyAgICAjIEEgcmVmZXJlbmNlIHRvIGFuIGFs dGVybmF0aXZlIHdlYiBwYWdlLg0KPiArICAgIGFsdFdlYlBhZ2UgPSAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvYWx0V2ViUGFnZSIN Cj4gKyAgICAjIEEgcmVmZXJlbmNlIHRvIGJpbmFyeSBhcnRpZmFjdHMgcmVsYXRlZCB0byBh IHBhY2thZ2UuDQo+ICsgICAgYmluYXJ5QXJ0aWZhY3QgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvYmluYXJ5QXJ0aWZhY3QiDQo+ ICsgICAgIyBBIHJlZmVyZW5jZSB0byBhIGJvd2VyIHBhY2thZ2UuDQo+ICsgICAgYm93ZXIg PSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5 cGUvYm93ZXIiDQo+ICsgICAgIyBBIHJlZmVyZW5jZSBidWlsZCBtZXRhZGF0YSByZWxhdGVk IHRvIGEgcHVibGlzaGVkIHBhY2thZ2UuDQo+ICsgICAgYnVpbGRNZXRhID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2J1aWxkTWV0 YSINCj4gKyAgICAjIEEgcmVmZXJlbmNlIGJ1aWxkIHN5c3RlbSB1c2VkIHRvIGNyZWF0ZSBv ciBwdWJsaXNoIHRoZSBwYWNrYWdlLg0KPiArICAgIGJ1aWxkU3lzdGVtID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2J1aWxkU3lz dGVtIg0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gYSBjZXJ0aWZpY2F0aW9uIHJlcG9ydCBm b3IgYSBwYWNrYWdlIGZyb20gYW4gYWNjcmVkaXRlZC9pbmRlcGVuZGVudCBib2R5Lg0KPiAr ICAgIGNlcnRpZmljYXRpb25SZXBvcnQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvY2VydGlmaWNhdGlvblJlcG9ydCINCj4gKyAg ICAjIEEgcmVmZXJlbmNlIHRvIHRoZSBpbnN0YW50IG1lc3NhZ2luZyBzeXN0ZW0gdXNlZCBi eSB0aGUgbWFpbnRhaW5lciBmb3IgYSBwYWNrYWdlLg0KPiArICAgIGNoYXQgPSAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvY2hhdCIN Cj4gKyAgICAjIEEgcmVmZXJlbmNlIHRvIGEgU29mdHdhcmUgQ29tcG9zaXRpb24gQW5hbHlz aXMgKFNDQSkgcmVwb3J0Lg0KPiArICAgIGNvbXBvbmVudEFuYWx5c2lzUmVwb3J0ID0gImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2Nv bXBvbmVudEFuYWx5c2lzUmVwb3J0Ig0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gYSBzb3Vy Y2Ugb2Ygc29mdHdhcmUgZmxhdyBkZWZpbmVkIHdpdGhpbiB0aGUgb2ZmaWNpYWwgQ1dFIERp Y3Rpb25hcnkgdGhhdCBjb25mb3JtcyB0byB0aGUgQ1dFIHNwZWNpZmljYXRpb24gYXMgZGVm aW5lZCBieSBodHRwczovL2NzcmMubmlzdC5nb3YvZ2xvc3NhcnkvdGVybS9jb21tb25fd2Vh a25lc3NfZW51bWVyYXRpb24uDQo+ICsgICAgY3dlID0gImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL2N3ZSINCj4gKyAgICAjIEEgcmVm ZXJlbmNlIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciBhIHBhY2thZ2UuDQo+ICsgICAgZG9j dW1lbnRhdGlvbiA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4 dGVybmFsUmVmVHlwZS9kb2N1bWVudGF0aW9uIg0KPiArICAgICMgQSByZWZlcmVuY2UgdG8g YSBkeW5hbWljIGFuYWx5c2lzIHJlcG9ydCBmb3IgYSBwYWNrYWdlLg0KPiArICAgIGR5bmFt aWNBbmFseXNpc1JlcG9ydCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL0V4dGVybmFsUmVmVHlwZS9keW5hbWljQW5hbHlzaXNSZXBvcnQiDQo+ICsgICAgIyBB IHJlZmVyZW5jZSB0byB0aGUgRW5kIE9mIFNhbGUgKEVPUykgYW5kL29yIEVuZCBPZiBMaWZl IChFT0wpIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gYSBwYWNrYWdlLg0KPiArICAgIGVvbE5v dGljZSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFs UmVmVHlwZS9lb2xOb3RpY2UiDQo+ICsgICAgIyBBIHJlZmVyZW5jZSB0byBhIGV4cG9ydCBj b250cm9sIGFzc2Vzc21lbnQgZm9yIGEgcGFja2FnZS4NCj4gKyAgICBleHBvcnRDb250cm9s QXNzZXNzbWVudCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4 dGVybmFsUmVmVHlwZS9leHBvcnRDb250cm9sQXNzZXNzbWVudCINCj4gKyAgICAjIEEgcmVm ZXJlbmNlIHRvIGZ1bmRpbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBhIHBhY2thZ2UuDQo+ ICsgICAgZnVuZGluZyA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L0V4dGVybmFsUmVmVHlwZS9mdW5kaW5nIg0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gdGhl IGlzc3VlIHRyYWNrZXIgZm9yIGEgcGFja2FnZS4NCj4gKyAgICBpc3N1ZVRyYWNrZXIgPSAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUv aXNzdWVUcmFja2VyIg0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gYWRkaXRpb25hbCBsaWNl bnNlIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gYW4gYXJ0aWZhY3QuDQo+ICsgICAgbGljZW5z ZSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVm VHlwZS9saWNlbnNlIg0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gdGhlIG1haWxpbmcgbGlz dCB1c2VkIGJ5IHRoZSBtYWludGFpbmVyIGZvciBhIHBhY2thZ2UuDQo+ICsgICAgbWFpbGlu Z0xpc3QgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5h bFJlZlR5cGUvbWFpbGluZ0xpc3QiDQo+ICsgICAgIyBBIHJlZmVyZW5jZSB0byBhIG1hdmVu IHJlcG9zaXRvcnkgYXJ0aWZhY3QuDQo+ICsgICAgbWF2ZW5DZW50cmFsID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL21hdmVuQ2Vu dHJhbCINCj4gKyAgICAjIEEgcmVmZXJlbmNlIHRvIG1ldHJpY3MgcmVsYXRlZCB0byBwYWNr YWdlIHN1Y2ggYXMgT3BlblNTRiBzY29yZWNhcmRzLg0KPiArICAgIG1ldHJpY3MgPSAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvbWV0 cmljcyINCj4gKyAgICAjIEEgcmVmZXJlbmNlIHRvIGFuIG5wbSBwYWNrYWdlLg0KPiArICAg IG5wbSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFs UmVmVHlwZS9ucG0iDQo+ICsgICAgIyBBIHJlZmVyZW5jZSB0byBhIG51Z2V0IHBhY2thZ2Uu DQo+ICsgICAgbnVnZXQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9FeHRlcm5hbFJlZlR5cGUvbnVnZXQiDQo+ICsgICAgIyBVc2VkIHdoZW4gdGhlIHR5cGUg ZG9lc24ndCBtYXRjaCBhbnkgb2YgdGhlIG90aGVyIG9wdGlvbnMuDQo+ICsgICAgb3RoZXIg PSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5 cGUvb3RoZXIiDQo+ICsgICAgIyBBIHJlZmVyZW5jZSB0byBhIHByaXZhY3kgYXNzZXNzbWVu dCBmb3IgYSBwYWNrYWdlLg0KPiArICAgIHByaXZhY3lBc3Nlc3NtZW50ID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3ByaXZhY3lB c3Nlc3NtZW50Ig0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gYWRkaXRpb25hbCBwcm9kdWN0 IG1ldGFkYXRhIHN1Y2ggYXMgcmVmZXJlbmNlIHdpdGhpbiBvcmdhbml6YXRpb24ncyBwcm9k dWN0IGNhdGFsb2cuDQo+ICsgICAgcHJvZHVjdE1ldGFkYXRhID0gImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3Byb2R1Y3RNZXRhZGF0 YSINCj4gKyAgICAjIEEgcmVmZXJlbmNlIHRvIGEgcHVyY2hhc2Ugb3JkZXIgZm9yIGEgcGFj a2FnZS4NCj4gKyAgICBwdXJjaGFzZU9yZGVyID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3B1cmNoYXNlT3JkZXIiDQo+ICsgICAg IyBBIHJlZmVyZW5jZSB0byBhIHF1YWxpdHkgYXNzZXNzbWVudCBmb3IgYSBwYWNrYWdlLg0K PiArICAgIHF1YWxpdHlBc3Nlc3NtZW50UmVwb3J0ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3F1YWxpdHlBc3Nlc3NtZW50UmVw b3J0Ig0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gYSBwdWJsaXNoZWQgbGlzdCBvZiByZWxl YXNlcyBmb3IgYSBwYWNrYWdlLg0KPiArICAgIHJlbGVhc2VIaXN0b3J5ID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3JlbGVhc2VI aXN0b3J5Ig0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gdGhlIHJlbGVhc2Ugbm90ZXMgZm9y IGEgcGFja2FnZS4NCj4gKyAgICByZWxlYXNlTm90ZXMgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvcmVsZWFzZU5vdGVzIg0KPiAr ICAgICMgQSByZWZlcmVuY2UgdG8gYSByaXNrIGFzc2Vzc21lbnQgZm9yIGEgcGFja2FnZS4N Cj4gKyAgICByaXNrQXNzZXNzbWVudCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9yaXNrQXNzZXNzbWVudCINCj4gKyAgICAjIEEg cmVmZXJlbmNlIHRvIGEgcnVudGltZSBhbmFseXNpcyByZXBvcnQgZm9yIGEgcGFja2FnZS4N Cj4gKyAgICBydW50aW1lQW5hbHlzaXNSZXBvcnQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvcnVudGltZUFuYWx5c2lzUmVwb3J0 Ig0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gaW5mb3JtYXRpb24gYXNzdXJpbmcgdGhhdCB0 aGUgc29mdHdhcmUgaXMgZGV2ZWxvcGVkIHVzaW5nIHNlY3VyaXR5IHByYWN0aWNlcyBhcyBk ZWZpbmVkIGJ5IFtOSVNUIFNQIDgwMC0yMTggU2VjdXJlIFNvZnR3YXJlIERldmVsb3BtZW50 IEZyYW1ld29yayAoU1NERikgVmVyc2lvbiAxLjFdKGh0dHBzOi8vY3NyYy5uaXN0Lmdvdi9w dWJzL3NwLzgwMC8yMTgvZmluYWwpIG9yIFtDSVNBIFNlY3VyZSBTb2Z0d2FyZSBEZXZlbG9w bWVudCBBdHRlc3RhdGlvbiBGb3JtXShodHRwczovL3d3dy5jaXNhLmdvdi9yZXNvdXJjZXMt dG9vbHMvcmVzb3VyY2VzL3NlY3VyZS1zb2Z0d2FyZS1kZXZlbG9wbWVudC1hdHRlc3RhdGlv bi1mb3JtKS4NCj4gKyAgICBzZWN1cmVTb2Z0d2FyZUF0dGVzdGF0aW9uID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3NlY3VyZVNv ZnR3YXJlQXR0ZXN0YXRpb24iDQo+ICsgICAgIyBBIHJlZmVyZW5jZSB0byB0aGUgc2VjdXJp dHkgYWR2ZXJzYXJ5IG1vZGVsIGZvciBhIHBhY2thZ2UuDQo+ICsgICAgc2VjdXJpdHlBZHZl cnNhcnlNb2RlbCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4 dGVybmFsUmVmVHlwZS9zZWN1cml0eUFkdmVyc2FyeU1vZGVsIg0KPiArICAgICMgQSByZWZl cmVuY2UgdG8gYSBwdWJsaXNoZWQgc2VjdXJpdHkgYWR2aXNvcnkgKHdoZXJlIGFkdmlzb3J5 IGFzIGRlZmluZWQgcGVyIElTTyAyOTE0NzoyMDE4KSB0aGF0IG1heSBhZmZlY3Qgb25lIG9y IG1vcmUgZWxlbWVudHMsIGUuZy4sIHZlbmRvciBhZHZpc29yaWVzIG9yIHNwZWNpZmljIE5W RCBlbnRyaWVzLg0KPiArICAgIHNlY3VyaXR5QWR2aXNvcnkgPSAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5cGUvc2VjdXJpdHlBZHZpc29y eSINCj4gKyAgICAjIEEgcmVmZXJlbmNlIHRvIHRoZSBwYXRjaCBvciBzb3VyY2UgY29kZSB0 aGF0IGZpeGVzIGEgdnVsbmVyYWJpbGl0eS4NCj4gKyAgICBzZWN1cml0eUZpeCA9ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zZWN1 cml0eUZpeCINCj4gKyAgICAjIEEgcmVmZXJlbmNlIHRvIHJlbGF0ZWQgc2VjdXJpdHkgaW5m b3JtYXRpb24gb2YgdW5zcGVjaWZpZWQgdHlwZS4NCj4gKyAgICBzZWN1cml0eU90aGVyID0g Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBl L3NlY3VyaXR5T3RoZXIiDQo+ICsgICAgIyBBIHJlZmVyZW5jZSB0byBhIFtwZW5ldHJhdGlv biB0ZXN0XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9QZW5ldHJhdGlvbl90ZXN0 KSByZXBvcnQgZm9yIGEgcGFja2FnZS4NCj4gKyAgICBzZWN1cml0eVBlblRlc3RSZXBvcnQg PSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5 cGUvc2VjdXJpdHlQZW5UZXN0UmVwb3J0Ig0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gaW5z dHJ1Y3Rpb25zIGZvciByZXBvcnRpbmcgbmV3bHkgZGlzY292ZXJlZCBzZWN1cml0eSB2dWxu ZXJhYmlsaXRpZXMgZm9yIGEgcGFja2FnZS4NCj4gKyAgICBzZWN1cml0eVBvbGljeSA9ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9z ZWN1cml0eVBvbGljeSINCj4gKyAgICAjIEEgcmVmZXJlbmNlIHRoZSBbc2VjdXJpdHkgdGhy ZWF0IG1vZGVsXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9UaHJlYXRfbW9kZWwp IGZvciBhIHBhY2thZ2UuDQo+ICsgICAgc2VjdXJpdHlUaHJlYXRNb2RlbCA9ICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS9zZWN1cml0 eVRocmVhdE1vZGVsIg0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gYSBzb2NpYWwgbWVkaWEg Y2hhbm5lbCBmb3IgYSBwYWNrYWdlLg0KPiArICAgIHNvY2lhbE1lZGlhID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3NvY2lhbE1l ZGlhIg0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gYW4gYXJ0aWZhY3QgY29udGFpbmluZyB0 aGUgc291cmNlcyBmb3IgYSBwYWNrYWdlLg0KPiArICAgIHNvdXJjZUFydGlmYWN0ID0gImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3Nv dXJjZUFydGlmYWN0Ig0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gYSBzdGF0aWMgYW5hbHlz aXMgcmVwb3J0IGZvciBhIHBhY2thZ2UuDQo+ICsgICAgc3RhdGljQW5hbHlzaXNSZXBvcnQg PSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9FeHRlcm5hbFJlZlR5 cGUvc3RhdGljQW5hbHlzaXNSZXBvcnQiDQo+ICsgICAgIyBBIHJlZmVyZW5jZSB0byB0aGUg c29mdHdhcmUgc3VwcG9ydCBjaGFubmVsIG9yIG90aGVyIHN1cHBvcnQgaW5mb3JtYXRpb24g Zm9yIGEgcGFja2FnZS4NCj4gKyAgICBzdXBwb3J0ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3N1cHBvcnQiDQo+ICsgICAgIyBB IHJlZmVyZW5jZSB0byBhIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gcmVsYXRlZCB0byBhIHNv ZnR3YXJlIGFydGlmYWN0Lg0KPiArICAgIHZjcyA9ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL0V4dGVybmFsUmVmVHlwZS92Y3MiDQo+ICsgICAgIyBBIHJlZmVy ZW5jZSB0byBhIFZ1bG5lcmFiaWxpdHkgRGlzY2xvc3VyZSBSZXBvcnQgKFZEUikgd2hpY2gg cHJvdmlkZXMgdGhlIHNvZnR3YXJlIHN1cHBsaWVyJ3MgYW5hbHlzaXMgYW5kIGZpbmRpbmdz IGRlc2NyaWJpbmcgdGhlIGltcGFjdCAob3IgbGFjayBvZiBpbXBhY3QpIHRoYXQgcmVwb3J0 ZWQgdnVsbmVyYWJpbGl0aWVzIGhhdmUgb24gcGFja2FnZXMgb3IgcHJvZHVjdHMgaW4gdGhl IHN1cHBsaWVyJ3MgU0JPTSBhcyBkZWZpbmVkIGluIFtOSVNUIFNQIDgwMC0xNjFdKGh0dHBz Oi8vY3NyYy5uaXN0Lmdvdi9wdWJzL3NwLzgwMC8xNjEvcjEvZmluYWwpLg0KPiArICAgIHZ1 bG5lcmFiaWxpdHlEaXNjbG9zdXJlUmVwb3J0ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3Z1bG5lcmFiaWxpdHlEaXNjbG9zdXJl UmVwb3J0Ig0KPiArICAgICMgQSByZWZlcmVuY2UgdG8gYSBWdWxuZXJhYmlsaXR5IEV4cGxv aXRhYmlsaXR5IGVYY2hhbmdlIChWRVgpIHN0YXRlbWVudCB3aGljaCBwcm92aWRlcyBpbmZv cm1hdGlvbiBvbiB3aGV0aGVyIGEgcHJvZHVjdCBpcyBpbXBhY3RlZCBieSBhIHNwZWNpZmlj IHZ1bG5lcmFiaWxpdHkgaW4gYW4gaW5jbHVkZWQgcGFja2FnZSBhbmQsIGlmIGFmZmVjdGVk LCB3aGV0aGVyIHRoZXJlIGFyZSBhY3Rpb25zIHJlY29tbWVuZGVkIHRvIHJlbWVkaWF0ZS4g U2VlIGFsc28gW05USUEgVkVYIG9uZS1wYWdlIHN1bW1hcnldKGh0dHBzOi8vbnRpYS5nb3Yv ZmlsZXMvbnRpYS9wdWJsaWNhdGlvbnMvdmV4X29uZS1wYWdlX3N1bW1hcnkucGRmKS4NCj4g KyAgICB2dWxuZXJhYmlsaXR5RXhwbG9pdGFiaWxpdHlBc3Nlc3NtZW50ID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvRXh0ZXJuYWxSZWZUeXBlL3Z1bG5lcmFi aWxpdHlFeHBsb2l0YWJpbGl0eUFzc2Vzc21lbnQiDQo+ICsNCj4gKw0KPiArIyBBIG1hdGhl bWF0aWNhbCBhbGdvcml0aG0gdGhhdCBtYXBzIGRhdGEgb2YgYXJiaXRyYXJ5IHNpemUgdG8g YSBiaXQgc3RyaW5nLg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0iLCBjb21wYWN0X3R5cGU9Ikhhc2hBbGdvcml0 aG0iLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIEhhc2hBbGdvcml0aG0oU0hBQ0xPYmpl Y3QpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsg ICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgICAgICJibGFrZTJiMjU2IjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9ibGFr ZTJiMjU2IiwNCj4gKyAgICAgICAgImJsYWtlMmIzODQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2JsYWtlMmIzODQiLA0KPiArICAg ICAgICAiYmxha2UyYjUxMiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL0hhc2hBbGdvcml0aG0vYmxha2UyYjUxMiIsDQo+ICsgICAgICAgICJibGFrZTMiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2Js YWtlMyIsDQo+ICsgICAgICAgICJjcnlzdGFsc0RpbGl0aGl1bSI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vY3J5c3RhbHNEaWxpdGhp dW0iLA0KPiArICAgICAgICAiY3J5c3RhbHNLeWJlciI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vY3J5c3RhbHNLeWJlciIsDQo+ICsg ICAgICAgICJmYWxjb24iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9IYXNoQWxnb3JpdGhtL2ZhbGNvbiIsDQo+ICsgICAgICAgICJtZDIiOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL21kMiIsDQo+ICsg ICAgICAgICJtZDQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9I YXNoQWxnb3JpdGhtL21kNCIsDQo+ICsgICAgICAgICJtZDUiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL21kNSIsDQo+ICsgICAgICAg ICJtZDYiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxn b3JpdGhtL21kNiIsDQo+ICsgICAgICAgICJvdGhlciI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vb3RoZXIiLA0KPiArICAgICAgICAi c2hhMSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdv cml0aG0vc2hhMSIsDQo+ICsgICAgICAgICJzaGEyMjQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTIyNCIsDQo+ICsgICAgICAg ICJzaGEyNTYiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNo QWxnb3JpdGhtL3NoYTI1NiIsDQo+ICsgICAgICAgICJzaGEzODQiOiAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTM4NCIsDQo+ICsg ICAgICAgICJzaGEzXzIyNCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL0hhc2hBbGdvcml0aG0vc2hhM18yMjQiLA0KPiArICAgICAgICAic2hhM18yNTYiOiAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3No YTNfMjU2IiwNCj4gKyAgICAgICAgInNoYTNfMzg0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9zaGEzXzM4NCIsDQo+ICsgICAgICAg ICJzaGEzXzUxMiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hh c2hBbGdvcml0aG0vc2hhM181MTIiLA0KPiArICAgICAgICAic2hhNTEyIjogImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9zaGE1MTIiLA0K PiArICAgIH0NCj4gKyAgICAjIGJsYWtlMmIgYWxnb3JpdGhtIHdpdGggYSBkaWdlc3Qgc2l6 ZSBvZiAyNTYgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3Njkz I3NlY3Rpb24tNA0KPiArICAgIGJsYWtlMmIyNTYgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2JsYWtlMmIyNTYiDQo+ICsgICAgIyBi bGFrZTJiIGFsZ29yaXRobSB3aXRoIGEgZGlnZXN0IHNpemUgb2YgMzg0IGh0dHBzOi8vZGF0 YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzY5MyNzZWN0aW9uLTQNCj4gKyAgICBi bGFrZTJiMzg0ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFz aEFsZ29yaXRobS9ibGFrZTJiMzg0Ig0KPiArICAgICMgYmxha2UyYiBhbGdvcml0aG0gd2l0 aCBhIGRpZ2VzdCBzaXplIG9mIDUxMiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2Rv Yy9odG1sL3JmYzc2OTMjc2VjdGlvbi00DQo+ICsgICAgYmxha2UyYjUxMiA9ICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vYmxha2UyYjUx MiINCj4gKyAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9CTEFLRTMtdGVhbS9CTEFLRTMtc3Bl Y3MvYmxvYi9tYXN0ZXIvYmxha2UzLnBkZg0KPiArICAgIGJsYWtlMyA9ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vYmxha2UzIg0KPiAr ICAgICMgaHR0cHM6Ly9wcS1jcnlzdGFscy5vcmcvZGlsaXRoaXVtL2luZGV4LnNodG1sDQo+ ICsgICAgY3J5c3RhbHNEaWxpdGhpdW0gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2NyeXN0YWxzRGlsaXRoaXVtIg0KPiArICAgICMg aHR0cHM6Ly9wcS1jcnlzdGFscy5vcmcva3liZXIvaW5kZXguc2h0bWwNCj4gKyAgICBjcnlz dGFsc0t5YmVyID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFz aEFsZ29yaXRobS9jcnlzdGFsc0t5YmVyIg0KPiArICAgICMgaHR0cHM6Ly9mYWxjb24tc2ln bi5pbmZvL2ZhbGNvbi5wZGYNCj4gKyAgICBmYWxjb24gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2ZhbGNvbiINCj4gKyAgICAjIGh0 dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL3JmYzEzMTkvDQo+ICsgICAgbWQyID0g Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9t ZDIiDQo+ICsgICAgIyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3Jm YzExODYNCj4gKyAgICBtZDQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9IYXNoQWxnb3JpdGhtL21kNCINCj4gKyAgICAjIGh0dHBzOi8vZGF0YXRyYWNrZXIu aWV0Zi5vcmcvZG9jL2h0bWwvcmZjMTMyMQ0KPiArICAgIG1kNSA9ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vbWQ1Ig0KPiArICAgICMg aHR0cHM6Ly9wZW9wbGUuY3NhaWwubWl0LmVkdS9yaXZlc3QvcHVicy9SQUJDeDA4LnBkZg0K PiArICAgIG1kNiA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hh c2hBbGdvcml0aG0vbWQ2Ig0KPiArICAgICMgYW55IGhhc2hpbmcgYWxnb3JpdGhtIHRoYXQg ZG9lcyBub3QgZXhpc3QgaW4gdGhpcyBsaXN0IG9mIGVudHJpZXMNCj4gKyAgICBvdGhlciA9 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0v b3RoZXIiDQo+ICsgICAgIyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1s L3JmYzMxNzQNCj4gKyAgICBzaGExID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvSGFzaEFsZ29yaXRobS9zaGExIg0KPiArICAgICMgc2VjdXJlIGhhc2hpbmcg YWxnb3JpdGhtIHdpdGggYSBkaWdlc3QgbGVuZ3RoIG9mIDIyNCBodHRwczovL2RhdGF0cmFj a2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LWlldGYtcGtpeC1zaGEyMjQtMDENCj4gKyAg ICBzaGEyMjQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNo QWxnb3JpdGhtL3NoYTIyNCINCj4gKyAgICAjIHNlY3VyZSBoYXNoaW5nIGFsZ29yaXRobSB3 aXRoIGEgZGlnZXN0IGxlbmd0aCBvZiAyNTYgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcv cmZjL3JmYzQ2MzQNCj4gKyAgICBzaGEyNTYgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTI1NiINCj4gKyAgICAjIHNlY3VyZSBo YXNoaW5nIGFsZ29yaXRobSB3aXRoIGEgZGlnZXN0IGxlbmd0aCBvZiAzODQgaHR0cHM6Ly93 d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzQ2MzQNCj4gKyAgICBzaGEzODQgPSAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTM4NCIN Cj4gKyAgICAjIHNoYTMgd2l0aCBhIGRpZ2VzdCBsZW5ndGggb2YgMjI0IGh0dHBzOi8vbnZs cHVicy5uaXN0Lmdvdi9uaXN0cHVicy9GSVBTL05JU1QuRklQUy4yMDIucGRmDQo+ICsgICAg c2hhM18yMjQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNo QWxnb3JpdGhtL3NoYTNfMjI0Ig0KPiArICAgICMgc2hhMyB3aXRoIGEgZGlnZXN0IGxlbmd0 aCBvZiAyNTYgaHR0cHM6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL0ZJUFMvTklTVC5G SVBTLjIwMi5wZGYNCj4gKyAgICBzaGEzXzI1NiA9ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hhM18yNTYiDQo+ICsgICAgIyBzaGEz IHdpdGggYSBkaWdlc3QgbGVuZ3RoIG9mIDM4NCBodHRwczovL252bHB1YnMubmlzdC5nb3Yv bmlzdHB1YnMvRklQUy9OSVNULkZJUFMuMjAyLnBkZg0KPiArICAgIHNoYTNfMzg0ID0gImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9zaGEz XzM4NCINCj4gKyAgICAjIHNoYTMgd2l0aCBhIGRpZ2VzdCBsZW5ndGggb2YgNTEyIGh0dHBz Oi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9GSVBTL05JU1QuRklQUy4yMDIucGRmDQo+ ICsgICAgc2hhM181MTIgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9IYXNoQWxnb3JpdGhtL3NoYTNfNTEyIg0KPiArICAgICMgc2VjdXJlIGhhc2hpbmcgYWxn b3JpdGhtIHdpdGggYSBkaWdlc3QgbGVuZ3RoIG9mIDUxMiBodHRwczovL3d3dy5yZmMtZWRp dG9yLm9yZy9yZmMvcmZjNDYzNA0KPiArICAgIHNoYTUxMiA9ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hhNTEyIg0KPiArDQo+ICsN Cj4gKyMgUHJvdmlkZXMgYW4gaW5kZXBlbmRlbnRseSByZXByb2R1Y2libGUgbWVjaGFuaXNt IHRoYXQgcGVybWl0cyB2ZXJpZmljYXRpb24gb2YgYSBzcGVjaWZpYyBFbGVtZW50Lg0KPiAr QHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0ludGVn cml0eU1ldGhvZCIsIGNvbXBhY3RfdHlwZT0iSW50ZWdyaXR5TWV0aG9kIiwgYWJzdHJhY3Q9 VHJ1ZSkNCj4gK2NsYXNzIEludGVncml0eU1ldGhvZChTSEFDTE9iamVjdCk6DQo+ICsgICAg Tk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBOQU1FRF9JTkRJ VklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAg ICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lz dGVyX3Byb3BzKCkNCj4gKyAgICAgICAgIyBQcm92aWRlIGNvbnN1bWVycyB3aXRoIGNvbW1l bnRzIGJ5IHRoZSBjcmVhdG9yIG9mIHRoZSBFbGVtZW50IGFib3V0IHRoZQ0KPiArICAgICAg ICAjIEVsZW1lbnQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAg ICAgICAgImNvbW1lbnQiLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAg ICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL2Nv bW1lbnQiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iY29tbWVudCIsDQo+ICsgICAgICAg ICkNCj4gKw0KPiArDQo+ICsjIFByb3ZpZGUgYW4gZW51bWVyYXRlZCBzZXQgb2YgbGlmZWN5 Y2xlIHBoYXNlcyB0aGF0IGNhbiBwcm92aWRlIGNvbnRleHQgdG8gcmVsYXRpb25zaGlwcy4N Cj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9M aWZlY3ljbGVTY29wZVR5cGUiLCBjb21wYWN0X3R5cGU9IkxpZmVjeWNsZVNjb3BlVHlwZSIs IGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgTGlmZWN5Y2xlU2NvcGVUeXBlKFNIQUNMT2Jq ZWN0KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiAr ICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgICAgICAiYnVpbGQiOiAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9MaWZlY3ljbGVTY29wZVR5cGUvYnVp bGQiLA0KPiArICAgICAgICAiZGVzaWduIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvTGlmZWN5Y2xlU2NvcGVUeXBlL2Rlc2lnbiIsDQo+ICsgICAgICAgICJk ZXZlbG9wbWVudCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0xp ZmVjeWNsZVNjb3BlVHlwZS9kZXZlbG9wbWVudCIsDQo+ICsgICAgICAgICJvdGhlciI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0xpZmVjeWNsZVNjb3BlVHlw ZS9vdGhlciIsDQo+ICsgICAgICAgICJydW50aW1lIjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvTGlmZWN5Y2xlU2NvcGVUeXBlL3J1bnRpbWUiLA0KPiArICAg ICAgICAidGVzdCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0xp ZmVjeWNsZVNjb3BlVHlwZS90ZXN0IiwNCj4gKyAgICB9DQo+ICsgICAgIyBBIHJlbGF0aW9u c2hpcCBoYXMgc3BlY2lmaWMgY29udGV4dCBpbXBsaWNhdGlvbnMgZHVyaW5nIGFuIGVsZW1l bnQncyBidWlsZCBwaGFzZSwgZHVyaW5nIGRldmVsb3BtZW50Lg0KPiArICAgIGJ1aWxkID0g Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvTGlmZWN5Y2xlU2NvcGVU eXBlL2J1aWxkIg0KPiArICAgICMgQSByZWxhdGlvbnNoaXAgaGFzIHNwZWNpZmljIGNvbnRl eHQgaW1wbGljYXRpb25zIGR1cmluZyBhbiBlbGVtZW50J3MgZGVzaWduLg0KPiArICAgIGRl c2lnbiA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0xpZmVjeWNs ZVNjb3BlVHlwZS9kZXNpZ24iDQo+ICsgICAgIyBBIHJlbGF0aW9uc2hpcCBoYXMgc3BlY2lm aWMgY29udGV4dCBpbXBsaWNhdGlvbnMgZHVyaW5nIGRldmVsb3BtZW50IHBoYXNlIG9mIGFu IGVsZW1lbnQuDQo+ICsgICAgZGV2ZWxvcG1lbnQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9MaWZlY3ljbGVTY29wZVR5cGUvZGV2ZWxvcG1lbnQiDQo+ICsg ICAgIyBBIHJlbGF0aW9uc2hpcCBoYXMgb3RoZXIgc3BlY2lmaWMgY29udGV4dCBpbmZvcm1h dGlvbiBuZWNlc3NhcnkgdG8gY2FwdHVyZSB0aGF0IHRoZSBhYm92ZSBzZXQgb2YgZW51bWVy YXRpb25zIGRvZXMgbm90IGhhbmRsZS4NCj4gKyAgICBvdGhlciA9ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0xpZmVjeWNsZVNjb3BlVHlwZS9vdGhlciINCj4g KyAgICAjIEEgcmVsYXRpb25zaGlwIGhhcyBzcGVjaWZpYyBjb250ZXh0IGltcGxpY2F0aW9u cyBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBwaGFzZSBvZiBhbiBlbGVtZW50Lg0KPiArICAgIHJ1 bnRpbWUgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9MaWZlY3lj bGVTY29wZVR5cGUvcnVudGltZSINCj4gKyAgICAjIEEgcmVsYXRpb25zaGlwIGhhcyBzcGVj aWZpYyBjb250ZXh0IGltcGxpY2F0aW9ucyBkdXJpbmcgYW4gZWxlbWVudCdzIHRlc3Rpbmcg cGhhc2UsIGR1cmluZyBkZXZlbG9wbWVudC4NCj4gKyAgICB0ZXN0ID0gImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvTGlmZWN5Y2xlU2NvcGVUeXBlL3Rlc3QiDQo+ ICsNCj4gKw0KPiArIyBBIG1hcHBpbmcgYmV0d2VlbiBwcmVmaXhlcyBhbmQgbmFtZXNwYWNl IHBhcnRpYWwgVVJJcy4NCj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9OYW1lc3BhY2VNYXAiLCBjb21wYWN0X3R5cGU9Ik5hbWVzcGFjZU1h cCIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgTmFtZXNwYWNlTWFwKFNIQUNMT2JqZWN0 KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAg IE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21l dGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3Vw ZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIFByb3ZpZGVzIGFuIHVuYW1i aWd1b3VzIG1lY2hhbmlzbSBmb3IgY29udmV5aW5nIGEgVVJJIGZyYWdtZW50IHBvcnRpb24g b2YgYW4NCj4gKyAgICAgICAgIyBFbGVtZW50SUQuDQo+ICsgICAgICAgIGNscy5fYWRkX3By b3BlcnR5KA0KPiArICAgICAgICAgICAgIm5hbWVzcGFjZSIsDQo+ICsgICAgICAgICAgICBB bnlVUklQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvbmFtZXNwYWNlIiwNCj4gKyAgICAgICAgICAgIG1pbl9jb3Vu dD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ibmFtZXNwYWNlIiwNCj4gKyAgICAgICAg KQ0KPiArICAgICAgICAjIEEgc3Vic3RpdHV0ZSBmb3IgYSBVUkkuDQo+ICsgICAgICAgIGNs cy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInByZWZpeCIsDQo+ICsgICAgICAg ICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvcHJlZml4IiwNCj4gKyAgICAgICAgICAgIG1pbl9j b3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0icHJlZml4IiwNCj4gKyAgICAgICAg KQ0KPiArDQo+ICsNCj4gKyMgQW4gU1BEWCB2ZXJzaW9uIDIuWCBjb21wYXRpYmxlIHZlcmlm aWNhdGlvbiBtZXRob2QgZm9yIHNvZnR3YXJlIHBhY2thZ2VzLg0KPiArQHJlZ2lzdGVyKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1BhY2thZ2VWZXJpZmljYXRp b25Db2RlIiwgY29tcGFjdF90eXBlPSJQYWNrYWdlVmVyaWZpY2F0aW9uQ29kZSIsIGFic3Ry YWN0PUZhbHNlKQ0KPiArY2xhc3MgUGFja2FnZVZlcmlmaWNhdGlvbkNvZGUoSW50ZWdyaXR5 TWV0aG9kKToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0K PiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBj bGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAg ICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0 aGUgYWxnb3JpdGhtIHVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBoYXNoIHZhbHVlLg0KPiAr ICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJhbGdvcml0aG0i LA0KPiArICAgICAgICAgICAgRW51bVByb3AoWw0KPiArICAgICAgICAgICAgICAgICAgICAo Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9i bGFrZTJiMjU2IiwgImJsYWtlMmIyNTYiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vYmxh a2UyYjM4NCIsICJibGFrZTJiMzg0IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2JsYWtl MmI1MTIiLCAiYmxha2UyYjUxMiIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9ibGFrZTMi LCAiYmxha2UzIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2NyeXN0YWxzRGlsaXRoaXVt IiwgImNyeXN0YWxzRGlsaXRoaXVtIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2NyeXN0 YWxzS3liZXIiLCAiY3J5c3RhbHNLeWJlciIpLA0KPiArICAgICAgICAgICAgICAgICAgICAo Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9m YWxjb24iLCAiZmFsY29uIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL21kMiIsICJtZDIi KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vbWQ0IiwgIm1kNCIpLA0KPiArICAgICAgICAg ICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFz aEFsZ29yaXRobS9tZDUiLCAibWQ1IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL21kNiIs ICJtZDYiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vb3RoZXIiLCAib3RoZXIiKSwNCj4g KyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL0hhc2hBbGdvcml0aG0vc2hhMSIsICJzaGExIiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxn b3JpdGhtL3NoYTIyNCIsICJzaGEyMjQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hh MjU2IiwgInNoYTI1NiIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9zaGEzODQiLCAic2hh Mzg0IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTNfMjI0IiwgInNoYTNfMjI0Iiks DQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTNfMjU2IiwgInNoYTNfMjU2IiksDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9IYXNoQWxnb3JpdGhtL3NoYTNfMzg0IiwgInNoYTNfMzg0IiksDQo+ICsgICAgICAg ICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9I YXNoQWxnb3JpdGhtL3NoYTNfNTEyIiwgInNoYTNfNTEyIiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxn b3JpdGhtL3NoYTUxMiIsICJzaGE1MTIiKSwNCj4gKyAgICAgICAgICAgICAgICBdKSwNCj4g KyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9hbGdvcml0aG0iLA0KPiArICAgICAgICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAg ICAgICBjb21wYWN0PSJhbGdvcml0aG0iLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMg VGhlIHJlc3VsdCBvZiBhcHBseWluZyBhIGhhc2ggYWxnb3JpdGhtIHRvIGFuIEVsZW1lbnQu DQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImhhc2hW YWx1ZSIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAgICBp cmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvaGFzaFZhbHVlIiwN Cj4gKyAgICAgICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0i aGFzaFZhbHVlIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFRoZSByZWxhdGl2ZSBm aWxlIG5hbWUgb2YgYSBmaWxlIHRvIGJlIGV4Y2x1ZGVkIGZyb20gdGhlDQo+ICsgICAgICAg ICMgYFBhY2thZ2VWZXJpZmljYXRpb25Db2RlYC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJv cGVydHkoDQo+ICsgICAgICAgICAgICAicGFja2FnZVZlcmlmaWNhdGlvbkNvZGVFeGNsdWRl ZEZpbGUiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoU3RyaW5nUHJvcCgpKSwNCj4gKyAg ICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9w YWNrYWdlVmVyaWZpY2F0aW9uQ29kZUV4Y2x1ZGVkRmlsZSIsDQo+ICsgICAgICAgICAgICBj b21wYWN0PSJwYWNrYWdlVmVyaWZpY2F0aW9uQ29kZUV4Y2x1ZGVkRmlsZSIsDQo+ICsgICAg ICAgICkNCj4gKw0KPiArDQo+ICsjIEEgdHVwbGUgb2YgdHdvIHBvc2l0aXZlIGludGVnZXJz IHRoYXQgZGVmaW5lIGEgcmFuZ2UuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvUG9zaXRpdmVJbnRlZ2VyUmFuZ2UiLCBjb21wYWN0X3R5 cGU9IlBvc2l0aXZlSW50ZWdlclJhbmdlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBQ b3NpdGl2ZUludGVnZXJSYW5nZShTSEFDTE9iamVjdCk6DQo+ICsgICAgTk9ERV9LSU5EID0g Tm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsN Cj4gKyAgICB9DQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lz dGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkN Cj4gKyAgICAgICAgIyBEZWZpbmVzIHRoZSBiZWdpbm5pbmcgb2YgYSByYW5nZS4NCj4gKyAg ICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiYmVnaW5JbnRlZ2Vy UmFuZ2UiLA0KPiArICAgICAgICAgICAgUG9zaXRpdmVJbnRlZ2VyUHJvcCgpLA0KPiArICAg ICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL2Jl Z2luSW50ZWdlclJhbmdlIiwNCj4gKyAgICAgICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAg ICAgICAgICAgY29tcGFjdD0iYmVnaW5JbnRlZ2VyUmFuZ2UiLA0KPiArICAgICAgICApDQo+ ICsgICAgICAgICMgRGVmaW5lcyB0aGUgZW5kIG9mIGEgcmFuZ2UuDQo+ICsgICAgICAgIGNs cy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImVuZEludGVnZXJSYW5nZSIsDQo+ ICsgICAgICAgICAgICBQb3NpdGl2ZUludGVnZXJQcm9wKCksDQo+ICsgICAgICAgICAgICBp cmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvZW5kSW50ZWdlclJh bmdlIiwNCj4gKyAgICAgICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29t cGFjdD0iZW5kSW50ZWdlclJhbmdlIiwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gKyMg Q2F0ZWdvcmllcyBvZiBwcmVzZW5jZSBvciBhYnNlbmNlLg0KPiArQHJlZ2lzdGVyKCJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1ByZXNlbmNlVHlwZSIsIGNvbXBh Y3RfdHlwZT0iUHJlc2VuY2VUeXBlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBQcmVz ZW5jZVR5cGUoU0hBQ0xPYmplY3QpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJs YW5rTm9kZU9ySVJJDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgICAg ICJubyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1ByZXNlbmNl VHlwZS9ubyIsDQo+ICsgICAgICAgICJub0Fzc2VydGlvbiI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1ByZXNlbmNlVHlwZS9ub0Fzc2VydGlvbiIsDQo+ICsg ICAgICAgICJ5ZXMiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Q cmVzZW5jZVR5cGUveWVzIiwNCj4gKyAgICB9DQo+ICsgICAgIyBJbmRpY2F0ZXMgYWJzZW5j ZSBvZiB0aGUgZmllbGQuDQo+ICsgICAgbm8gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9QcmVzZW5jZVR5cGUvbm8iDQo+ICsgICAgIyBNYWtlcyBubyBhc3Nl cnRpb24gYWJvdXQgdGhlIGZpZWxkLg0KPiArICAgIG5vQXNzZXJ0aW9uID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJlc2VuY2VUeXBlL25vQXNzZXJ0aW9u Ig0KPiArICAgICMgSW5kaWNhdGVzIHByZXNlbmNlIG9mIHRoZSBmaWVsZC4NCj4gKyAgICB5 ZXMgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9QcmVzZW5jZVR5 cGUveWVzIg0KPiArDQo+ICsNCj4gKyMgRW51bWVyYXRpb24gb2YgdGhlIHZhbGlkIHByb2Zp bGVzLg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZSIsIGNvbXBhY3RfdHlwZT0iUHJvZmlsZUlkZW50 aWZpZXJUeXBlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBQcm9maWxlSWRlbnRpZmll clR5cGUoU0hBQ0xPYmplY3QpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5r Tm9kZU9ySVJJDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgICAgICJh aSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVu dGlmaWVyVHlwZS9haSIsDQo+ICsgICAgICAgICJidWlsZCI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9idWlsZCIsDQo+ ICsgICAgICAgICJjb3JlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUHJvZmlsZUlkZW50aWZpZXJUeXBlL2NvcmUiLA0KPiArICAgICAgICAiZGF0YXNldCI6 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlm aWVyVHlwZS9kYXRhc2V0IiwNCj4gKyAgICAgICAgImV4cGFuZGVkTGljZW5zaW5nIjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJvZmlsZUlkZW50aWZpZXJU eXBlL2V4cGFuZGVkTGljZW5zaW5nIiwNCj4gKyAgICAgICAgImV4dGVuc2lvbiI6ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlw ZS9leHRlbnNpb24iLA0KPiArICAgICAgICAibGl0ZSI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9saXRlIiwNCj4gKyAg ICAgICAgInNlY3VyaXR5IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUHJvZmlsZUlkZW50aWZpZXJUeXBlL3NlY3VyaXR5IiwNCj4gKyAgICAgICAgInNpbXBs ZUxpY2Vuc2luZyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1By b2ZpbGVJZGVudGlmaWVyVHlwZS9zaW1wbGVMaWNlbnNpbmciLA0KPiArICAgICAgICAic29m dHdhcmUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Qcm9maWxl SWRlbnRpZmllclR5cGUvc29mdHdhcmUiLA0KPiArICAgIH0NCj4gKyAgICAjIHRoZSBlbGVt ZW50IGZvbGxvd3MgdGhlIEFJIHByb2ZpbGUgc3BlY2lmaWNhdGlvbg0KPiArICAgIGFpID0g Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJvZmlsZUlkZW50aWZp ZXJUeXBlL2FpIg0KPiArICAgICMgdGhlIGVsZW1lbnQgZm9sbG93cyB0aGUgQnVpbGQgcHJv ZmlsZSBzcGVjaWZpY2F0aW9uDQo+ICsgICAgYnVpbGQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9Qcm9maWxlSWRlbnRpZmllclR5cGUvYnVpbGQiDQo+ICsg ICAgIyB0aGUgZWxlbWVudCBmb2xsb3dzIHRoZSBDb3JlIHByb2ZpbGUgc3BlY2lmaWNhdGlv bg0KPiArICAgIGNvcmUgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9Qcm9maWxlSWRlbnRpZmllclR5cGUvY29yZSINCj4gKyAgICAjIHRoZSBlbGVtZW50IGZv bGxvd3MgdGhlIERhdGFzZXQgcHJvZmlsZSBzcGVjaWZpY2F0aW9uDQo+ICsgICAgZGF0YXNl dCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVu dGlmaWVyVHlwZS9kYXRhc2V0Ig0KPiArICAgICMgdGhlIGVsZW1lbnQgZm9sbG93cyB0aGUg ZXhwYW5kZWQgTGljZW5zaW5nIHByb2ZpbGUNCj4gKyAgICBleHBhbmRlZExpY2Vuc2luZyA9 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlm aWVyVHlwZS9leHBhbmRlZExpY2Vuc2luZyINCj4gKyAgICAjIHRoZSBlbGVtZW50IGZvbGxv d3MgdGhlIEV4dGVuc2lvbiBwcm9maWxlIHNwZWNpZmljYXRpb24NCj4gKyAgICBleHRlbnNp b24gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Qcm9maWxlSWRl bnRpZmllclR5cGUvZXh0ZW5zaW9uIg0KPiArICAgICMgdGhlIGVsZW1lbnQgZm9sbG93cyB0 aGUgTGl0ZSBwcm9maWxlIHNwZWNpZmljYXRpb24NCj4gKyAgICBsaXRlID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJvZmlsZUlkZW50aWZpZXJUeXBlL2xp dGUiDQo+ICsgICAgIyB0aGUgZWxlbWVudCBmb2xsb3dzIHRoZSBTZWN1cml0eSBwcm9maWxl IHNwZWNpZmljYXRpb24NCj4gKyAgICBzZWN1cml0eSA9ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9zZWN1cml0eSINCj4g KyAgICAjIHRoZSBlbGVtZW50IGZvbGxvd3MgdGhlIHNpbXBsZSBMaWNlbnNpbmcgcHJvZmls ZQ0KPiArICAgIHNpbXBsZUxpY2Vuc2luZyA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9zaW1wbGVMaWNlbnNpbmciDQo+ ICsgICAgIyB0aGUgZWxlbWVudCBmb2xsb3dzIHRoZSBTb2Z0d2FyZSBwcm9maWxlIHNwZWNp ZmljYXRpb24NCj4gKyAgICBzb2Z0d2FyZSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL1Byb2ZpbGVJZGVudGlmaWVyVHlwZS9zb2Z0d2FyZSINCj4gKw0KPiAr DQo+ICsjIERlc2NyaWJlcyBhIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIG9uZSBvciBtb3JlIGVs ZW1lbnRzLg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1JlbGF0aW9uc2hpcCIsIGNvbXBhY3RfdHlwZT0iUmVsYXRpb25zaGlwIiwgYWJz dHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBSZWxhdGlvbnNoaXAoRWxlbWVudCk6DQo+ICsgICAg Tk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBJRF9BTElBUyA9 ICJzcGR4SWQiDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMp Og0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAgICAgICMg UHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBsZXRlbmVzcyBvZiByZWxhdGlv bnNoaXBzLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAg ICJjb21wbGV0ZW5lc3MiLA0KPiArICAgICAgICAgICAgRW51bVByb3AoWw0KPiArICAgICAg ICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv UmVsYXRpb25zaGlwQ29tcGxldGVuZXNzL2NvbXBsZXRlIiwgImNvbXBsZXRlIiksDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3MvaW5jb21wbGV0ZSIsICJpbmNvbXBsZXRl IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3Mvbm9Bc3NlcnRpb24iLCAi bm9Bc3NlcnRpb24iKSwNCj4gKyAgICAgICAgICAgICAgICBdKSwNCj4gKyAgICAgICAgICAg IGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9jb21wbGV0ZW5l c3MiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iY29tcGxldGVuZXNzIiwNCj4gKyAgICAg ICAgKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0aGUgdGltZSBmcm9tIHdoaWNoIGFuIGVs ZW1lbnQgaXMgbm8gbG9uZ2VyIGFwcGxpY2FibGUgLyB2YWxpZC4NCj4gKyAgICAgICAgY2xz Ll9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZW5kVGltZSIsDQo+ICsgICAgICAg ICAgICBEYXRlVGltZVN0YW1wUHJvcChwYXR0ZXJuPXIiXlxkXGRcZFxkLVxkXGQtXGRcZFRc ZFxkOlxkXGQ6XGRcZFokIiwpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL2VuZFRpbWUiLA0KPiArICAgICAgICAgICAgY29t cGFjdD0iZW5kVGltZSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBSZWZlcmVuY2Vz IHRoZSBFbGVtZW50IG9uIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhIHJlbGF0aW9uc2hpcC4N Cj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZnJvbV8i LA0KPiArICAgICAgICAgICAgT2JqZWN0UHJvcChFbGVtZW50LCBUcnVlKSwNCj4gKyAgICAg ICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9mcm9t IiwNCj4gKyAgICAgICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFj dD0iZnJvbSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBJbmZvcm1hdGlvbiBhYm91 dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdHdvIEVsZW1lbnRzLg0KPiArICAgICAgICBj bHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJyZWxhdGlvbnNoaXBUeXBlIiwN Cj4gKyAgICAgICAgICAgIEVudW1Qcm9wKFsNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUv YWZmZWN0cyIsICJhZmZlY3RzIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2FtZW5k ZWRCeSIsICJhbWVuZGVkQnkiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvYW5jZXN0 b3JPZiIsICJhbmNlc3Rvck9mIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2F2YWls YWJsZUZyb20iLCAiYXZhaWxhYmxlRnJvbSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAo Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlw ZS9jb25maWd1cmVzIiwgImNvbmZpZ3VyZXMiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAg KCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5 cGUvY29udGFpbnMiLCAiY29udGFpbnMiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUv Y29vcmRpbmF0ZWRCeSIsICJjb29yZGluYXRlZEJ5IiksDQo+ICsgICAgICAgICAgICAgICAg ICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNo aXBUeXBlL2NvcGllZFRvIiwgImNvcGllZFRvIiksDQo+ICsgICAgICAgICAgICAgICAgICAg ICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBU eXBlL2RlbGVnYXRlZFRvIiwgImRlbGVnYXRlZFRvIiksDQo+ICsgICAgICAgICAgICAgICAg ICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNo aXBUeXBlL2RlcGVuZHNPbiIsICJkZXBlbmRzT24iKSwNCj4gKyAgICAgICAgICAgICAgICAg ICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hp cFR5cGUvZGVzY2VuZGFudE9mIiwgImRlc2NlbmRhbnRPZiIpLA0KPiArICAgICAgICAgICAg ICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRp b25zaGlwVHlwZS9kZXNjcmliZXMiLCAiZGVzY3JpYmVzIiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlv bnNoaXBUeXBlL2RvZXNOb3RBZmZlY3QiLCAiZG9lc05vdEFmZmVjdCIpLA0KPiArICAgICAg ICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv UmVsYXRpb25zaGlwVHlwZS9leHBhbmRzVG8iLCAiZXhwYW5kc1RvIiksDQo+ICsgICAgICAg ICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9S ZWxhdGlvbnNoaXBUeXBlL2V4cGxvaXRDcmVhdGVkQnkiLCAiZXhwbG9pdENyZWF0ZWRCeSIp LA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9maXhlZEJ5IiwgImZpeGVkQnkiKSwNCj4g KyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvZml4ZWRJbiIsICJmaXhlZEluIiksDQo+ICsgICAg ICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL2ZvdW5kQnkiLCAiZm91bmRCeSIpLA0KPiArICAgICAgICAg ICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVs YXRpb25zaGlwVHlwZS9nZW5lcmF0ZXMiLCAiZ2VuZXJhdGVzIiksDQo+ICsgICAgICAgICAg ICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxh dGlvbnNoaXBUeXBlL2hhc0FkZGVkRmlsZSIsICJoYXNBZGRlZEZpbGUiKSwNCj4gKyAgICAg ICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1JlbGF0aW9uc2hpcFR5cGUvaGFzQXNzZXNzbWVudEZvciIsICJoYXNBc3Nlc3NtZW50Rm9y IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0Fzc29jaWF0ZWRWdWxuZXJhYmls aXR5IiwgImhhc0Fzc29jaWF0ZWRWdWxuZXJhYmlsaXR5IiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlv bnNoaXBUeXBlL2hhc0NvbmNsdWRlZExpY2Vuc2UiLCAiaGFzQ29uY2x1ZGVkTGljZW5zZSIp LA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNEYXRhRmlsZSIsICJoYXNEYXRhRmls ZSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNEZWNsYXJlZExpY2Vuc2UiLCAi aGFzRGVjbGFyZWRMaWNlbnNlIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0Rl bGV0ZWRGaWxlIiwgImhhc0RlbGV0ZWRGaWxlIiksDQo+ICsgICAgICAgICAgICAgICAgICAg ICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBU eXBlL2hhc0RlcGVuZGVuY3lNYW5pZmVzdCIsICJoYXNEZXBlbmRlbmN5TWFuaWZlc3QiKSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRGlzdHJpYnV0aW9uQXJ0aWZhY3QiLCAi aGFzRGlzdHJpYnV0aW9uQXJ0aWZhY3QiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUv aGFzRG9jdW1lbnRhdGlvbiIsICJoYXNEb2N1bWVudGF0aW9uIiksDQo+ICsgICAgICAgICAg ICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxh dGlvbnNoaXBUeXBlL2hhc0R5bmFtaWNMaW5rIiwgImhhc0R5bmFtaWNMaW5rIiksDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0V2aWRlbmNlIiwgImhhc0V2aWRlbmNlIiksDQo+ ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0V4YW1wbGUiLCAiaGFzRXhhbXBsZSIpLA0K PiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNIb3N0IiwgImhhc0hvc3QiKSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzSW5wdXRzIiwgImhhc0lucHV0cyIpLA0KPiArICAg ICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUmVsYXRpb25zaGlwVHlwZS9oYXNNZXRhZGF0YSIsICJoYXNNZXRhZGF0YSIpLA0KPiAr ICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNPcHRpb25hbENvbXBvbmVudCIsICJoYXNPcHRp b25hbENvbXBvbmVudCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNPcHRpb25h bERlcGVuZGVuY3kiLCAiaGFzT3B0aW9uYWxEZXBlbmRlbmN5IiksDQo+ICsgICAgICAgICAg ICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxh dGlvbnNoaXBUeXBlL2hhc091dHB1dHMiLCAiaGFzT3V0cHV0cyIpLA0KPiArICAgICAgICAg ICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVs YXRpb25zaGlwVHlwZS9oYXNQcmVyZXF1c2l0ZSIsICJoYXNQcmVyZXF1c2l0ZSIpLA0KPiAr ICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNQcm92aWRlZERlcGVuZGVuY3kiLCAiaGFzUHJv dmlkZWREZXBlbmRlbmN5IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc1JlcXVp cmVtZW50IiwgImhhc1JlcXVpcmVtZW50IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBl L2hhc1NwZWNpZmljYXRpb24iLCAiaGFzU3BlY2lmaWNhdGlvbiIpLA0KPiArICAgICAgICAg ICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVs YXRpb25zaGlwVHlwZS9oYXNTdGF0aWNMaW5rIiwgImhhc1N0YXRpY0xpbmsiKSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzVGVzdCIsICJoYXNUZXN0IiksDQo+ICsgICAgICAg ICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9S ZWxhdGlvbnNoaXBUeXBlL2hhc1Rlc3RDYXNlIiwgImhhc1Rlc3RDYXNlIiksDQo+ICsgICAg ICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL2hhc1ZhcmlhbnQiLCAiaGFzVmFyaWFudCIpLA0KPiArICAg ICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUmVsYXRpb25zaGlwVHlwZS9pbnZva2VkQnkiLCAiaW52b2tlZEJ5IiksDQo+ICsgICAg ICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL21vZGlmaWVkQnkiLCAibW9kaWZpZWRCeSIpLA0KPiArICAg ICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUmVsYXRpb25zaGlwVHlwZS9vdGhlciIsICJvdGhlciIpLA0KPiArICAgICAgICAgICAg ICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRp b25zaGlwVHlwZS9wYWNrYWdlZEJ5IiwgInBhY2thZ2VkQnkiKSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0 aW9uc2hpcFR5cGUvcGF0Y2hlZEJ5IiwgInBhdGNoZWRCeSIpLA0KPiArICAgICAgICAgICAg ICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRp b25zaGlwVHlwZS9wdWJsaXNoZWRCeSIsICJwdWJsaXNoZWRCeSIpLA0KPiArICAgICAgICAg ICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVs YXRpb25zaGlwVHlwZS9yZXBvcnRlZEJ5IiwgInJlcG9ydGVkQnkiKSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Jl bGF0aW9uc2hpcFR5cGUvcmVwdWJsaXNoZWRCeSIsICJyZXB1Ymxpc2hlZEJ5IiksDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBUeXBlL3NlcmlhbGl6ZWRJbkFydGlmYWN0IiwgInNlcmlhbGl6 ZWRJbkFydGlmYWN0IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3Rlc3RlZE9uIiwg InRlc3RlZE9uIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3RyYWluZWRPbiIsICJ0 cmFpbmVkT24iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvdW5kZXJJbnZlc3RpZ2F0 aW9uRm9yIiwgInVuZGVySW52ZXN0aWdhdGlvbkZvciIpLA0KPiArICAgICAgICAgICAgICAg ICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25z aGlwVHlwZS91c2VzVG9vbCIsICJ1c2VzVG9vbCIpLA0KPiArICAgICAgICAgICAgICAgIF0p LA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL3JlbGF0aW9uc2hpcFR5cGUiLA0KPiArICAgICAgICAgICAgbWluX2NvdW50PTEs DQo+ICsgICAgICAgICAgICBjb21wYWN0PSJyZWxhdGlvbnNoaXBUeXBlIiwNCj4gKyAgICAg ICAgKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0aGUgdGltZSBmcm9tIHdoaWNoIGFuIGVs ZW1lbnQgaXMgYXBwbGljYWJsZSAvIHZhbGlkLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9w ZXJ0eSgNCj4gKyAgICAgICAgICAgICJzdGFydFRpbWUiLA0KPiArICAgICAgICAgICAgRGF0 ZVRpbWVTdGFtcFByb3AocGF0dGVybj1yIl5cZFxkXGRcZC1cZFxkLVxkXGRUXGRcZDpcZFxk OlxkXGRaJCIsKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9zdGFydFRpbWUiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0i c3RhcnRUaW1lIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFJlZmVyZW5jZXMgYW4g RWxlbWVudCBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlIG9mIGEgcmVsYXRpb25zaGlwLg0KPiAr ICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJ0byIsDQo+ICsg ICAgICAgICAgICBMaXN0UHJvcChPYmplY3RQcm9wKEVsZW1lbnQsIEZhbHNlKSksDQo+ICsg ICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv dG8iLA0KPiArICAgICAgICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21w YWN0PSJ0byIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIEluZGljYXRlcyB3aGV0 aGVyIGEgcmVsYXRpb25zaGlwIGlzIGtub3duIHRvIGJlIGNvbXBsZXRlLCBpbmNvbXBsZXRl LCBvciBpZiBubyBhc3NlcnRpb24gaXMgbWFkZSB3aXRoIHJlc3BlY3QgdG8gcmVsYXRpb25z aGlwIGNvbXBsZXRlbmVzcy4NCj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3MiLCBjb21wYWN0X3R5 cGU9IlJlbGF0aW9uc2hpcENvbXBsZXRlbmVzcyIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xh c3MgUmVsYXRpb25zaGlwQ29tcGxldGVuZXNzKFNIQUNMT2JqZWN0KToNCj4gKyAgICBOT0RF X0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIE5BTUVEX0lORElWSURV QUxTID0gew0KPiArICAgICAgICAiY29tcGxldGUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3MvY29tcGxldGUiLA0K PiArICAgICAgICAiaW5jb21wbGV0ZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcENvbXBsZXRlbmVzcy9pbmNvbXBsZXRlIiwNCj4gKyAg ICAgICAgIm5vQXNzZXJ0aW9uIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwQ29tcGxldGVuZXNzL25vQXNzZXJ0aW9uIiwNCj4gKyAgICB9 DQo+ICsgICAgIyBUaGUgcmVsYXRpb25zaGlwIGlzIGtub3duIHRvIGJlIGV4aGF1c3RpdmUu DQo+ICsgICAgY29tcGxldGUgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3MvY29tcGxldGUiDQo+ICsgICAgIyBUaGUg cmVsYXRpb25zaGlwIGlzIGtub3duIG5vdCB0byBiZSBleGhhdXN0aXZlLg0KPiArICAgIGlu Y29tcGxldGUgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxh dGlvbnNoaXBDb21wbGV0ZW5lc3MvaW5jb21wbGV0ZSINCj4gKyAgICAjIE5vIGFzc2VydGlv biBjYW4gYmUgbWFkZSBhYm91dCB0aGUgY29tcGxldGVuZXNzIG9mIHRoZSByZWxhdGlvbnNo aXAuDQo+ICsgICAgbm9Bc3NlcnRpb24gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9SZWxhdGlvbnNoaXBDb21wbGV0ZW5lc3Mvbm9Bc3NlcnRpb24iDQo+ICsN Cj4gKw0KPiArIyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4g dHdvIEVsZW1lbnRzLg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUiLCBjb21wYWN0X3R5cGU9IlJlbGF0aW9u c2hpcFR5cGUiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIFJlbGF0aW9uc2hpcFR5cGUo U0hBQ0xPYmplY3QpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9y SVJJDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgICAgICJhZmZlY3Rz IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlw VHlwZS9hZmZlY3RzIiwNCj4gKyAgICAgICAgImFtZW5kZWRCeSI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvYW1lbmRlZEJ5IiwN Cj4gKyAgICAgICAgImFuY2VzdG9yT2YiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2FuY2VzdG9yT2YiLA0KPiArICAgICAgICAi YXZhaWxhYmxlRnJvbSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1JlbGF0aW9uc2hpcFR5cGUvYXZhaWxhYmxlRnJvbSIsDQo+ICsgICAgICAgICJjb25maWd1 cmVzIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25z aGlwVHlwZS9jb25maWd1cmVzIiwNCj4gKyAgICAgICAgImNvbnRhaW5zIjogImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9jb250YWlu cyIsDQo+ICsgICAgICAgICJjb29yZGluYXRlZEJ5IjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9jb29yZGluYXRlZEJ5IiwNCj4g KyAgICAgICAgImNvcGllZFRvIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9jb3BpZWRUbyIsDQo+ICsgICAgICAgICJkZWxlZ2F0 ZWRUbyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9u c2hpcFR5cGUvZGVsZWdhdGVkVG8iLA0KPiArICAgICAgICAiZGVwZW5kc09uIjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9kZXBl bmRzT24iLA0KPiArICAgICAgICAiZGVzY2VuZGFudE9mIjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9kZXNjZW5kYW50T2YiLA0K PiArICAgICAgICAiZGVzY3JpYmVzIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9kZXNjcmliZXMiLA0KPiArICAgICAgICAiZG9l c05vdEFmZmVjdCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Jl bGF0aW9uc2hpcFR5cGUvZG9lc05vdEFmZmVjdCIsDQo+ICsgICAgICAgICJleHBhbmRzVG8i OiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBU eXBlL2V4cGFuZHNUbyIsDQo+ICsgICAgICAgICJleHBsb2l0Q3JlYXRlZEJ5IjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9leHBs b2l0Q3JlYXRlZEJ5IiwNCj4gKyAgICAgICAgImZpeGVkQnkiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2ZpeGVkQnkiLA0KPiAr ICAgICAgICAiZml4ZWRJbiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL1JlbGF0aW9uc2hpcFR5cGUvZml4ZWRJbiIsDQo+ICsgICAgICAgICJmb3VuZEJ5Ijog Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlw ZS9mb3VuZEJ5IiwNCj4gKyAgICAgICAgImdlbmVyYXRlcyI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvZ2VuZXJhdGVzIiwNCj4g KyAgICAgICAgImhhc0FkZGVkRmlsZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzQWRkZWRGaWxlIiwNCj4gKyAgICAgICAg Imhhc0Fzc2Vzc21lbnRGb3IiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0Fzc2Vzc21lbnRGb3IiLA0KPiArICAgICAgICAi aGFzQXNzb2NpYXRlZFZ1bG5lcmFiaWxpdHkiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0Fzc29jaWF0ZWRWdWxuZXJhYmls aXR5IiwNCj4gKyAgICAgICAgImhhc0NvbmNsdWRlZExpY2Vuc2UiOiAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0NvbmNsdWRl ZExpY2Vuc2UiLA0KPiArICAgICAgICAiaGFzRGF0YUZpbGUiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0RhdGFGaWxlIiwN Cj4gKyAgICAgICAgImhhc0RlY2xhcmVkTGljZW5zZSI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRGVjbGFyZWRMaWNlbnNl IiwNCj4gKyAgICAgICAgImhhc0RlbGV0ZWRGaWxlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNEZWxldGVkRmlsZSIsDQo+ ICsgICAgICAgICJoYXNEZXBlbmRlbmN5TWFuaWZlc3QiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0RlcGVuZGVuY3lNYW5p ZmVzdCIsDQo+ICsgICAgICAgICJoYXNEaXN0cmlidXRpb25BcnRpZmFjdCI6ICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRGlz dHJpYnV0aW9uQXJ0aWZhY3QiLA0KPiArICAgICAgICAiaGFzRG9jdW1lbnRhdGlvbiI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUv aGFzRG9jdW1lbnRhdGlvbiIsDQo+ICsgICAgICAgICJoYXNEeW5hbWljTGluayI6ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFz RHluYW1pY0xpbmsiLA0KPiArICAgICAgICAiaGFzRXZpZGVuY2UiOiAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0V2aWRlbmNl IiwNCj4gKyAgICAgICAgImhhc0V4YW1wbGUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0V4YW1wbGUiLA0KPiArICAgICAg ICAiaGFzSG9zdCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Jl bGF0aW9uc2hpcFR5cGUvaGFzSG9zdCIsDQo+ICsgICAgICAgICJoYXNJbnB1dHMiOiAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hh c0lucHV0cyIsDQo+ICsgICAgICAgICJoYXNNZXRhZGF0YSI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzTWV0YWRhdGEiLA0K PiArICAgICAgICAiaGFzT3B0aW9uYWxDb21wb25lbnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc09wdGlvbmFsQ29tcG9u ZW50IiwNCj4gKyAgICAgICAgImhhc09wdGlvbmFsRGVwZW5kZW5jeSI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzT3B0aW9u YWxEZXBlbmRlbmN5IiwNCj4gKyAgICAgICAgImhhc091dHB1dHMiOiAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc091dHB1dHMi LA0KPiArICAgICAgICAiaGFzUHJlcmVxdXNpdGUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc1ByZXJlcXVzaXRlIiwNCj4g KyAgICAgICAgImhhc1Byb3ZpZGVkRGVwZW5kZW5jeSI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzUHJvdmlkZWREZXBlbmRl bmN5IiwNCj4gKyAgICAgICAgImhhc1JlcXVpcmVtZW50IjogImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNSZXF1aXJlbWVudCIs DQo+ICsgICAgICAgICJoYXNTcGVjaWZpY2F0aW9uIjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNTcGVjaWZpY2F0aW9uIiwN Cj4gKyAgICAgICAgImhhc1N0YXRpY0xpbmsiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc1N0YXRpY0xpbmsiLA0KPiArICAg ICAgICAiaGFzVGVzdCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3Jl L1JlbGF0aW9uc2hpcFR5cGUvaGFzVGVzdCIsDQo+ICsgICAgICAgICJoYXNUZXN0Q2FzZSI6 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5 cGUvaGFzVGVzdENhc2UiLA0KPiArICAgICAgICAiaGFzVmFyaWFudCI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzVmFyaWFu dCIsDQo+ICsgICAgICAgICJpbnZva2VkQnkiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2ludm9rZWRCeSIsDQo+ICsgICAgICAg ICJtb2RpZmllZEJ5IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv UmVsYXRpb25zaGlwVHlwZS9tb2RpZmllZEJ5IiwNCj4gKyAgICAgICAgIm90aGVyIjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9v dGhlciIsDQo+ICsgICAgICAgICJwYWNrYWdlZEJ5IjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9wYWNrYWdlZEJ5IiwNCj4gKyAg ICAgICAgInBhdGNoZWRCeSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL1JlbGF0aW9uc2hpcFR5cGUvcGF0Y2hlZEJ5IiwNCj4gKyAgICAgICAgInB1Ymxpc2hl ZEJ5IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25z aGlwVHlwZS9wdWJsaXNoZWRCeSIsDQo+ICsgICAgICAgICJyZXBvcnRlZEJ5IjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9yZXBv cnRlZEJ5IiwNCj4gKyAgICAgICAgInJlcHVibGlzaGVkQnkiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3JlcHVibGlzaGVkQnki LA0KPiArICAgICAgICAic2VyaWFsaXplZEluQXJ0aWZhY3QiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3NlcmlhbGl6ZWRJbkFy dGlmYWN0IiwNCj4gKyAgICAgICAgInRlc3RlZE9uIjogImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS90ZXN0ZWRPbiIsDQo+ICsgICAg ICAgICJ0cmFpbmVkT24iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL3RyYWluZWRPbiIsDQo+ICsgICAgICAgICJ1bmRlckludmVz dGlnYXRpb25Gb3IiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9S ZWxhdGlvbnNoaXBUeXBlL3VuZGVySW52ZXN0aWdhdGlvbkZvciIsDQo+ICsgICAgICAgICJ1 c2VzVG9vbCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0 aW9uc2hpcFR5cGUvdXNlc1Rvb2wiLA0KPiArICAgIH0NCj4gKyAgICAjIChTZWN1cml0eS9W RVgpIFRoZSBgZnJvbWAgdnVsbmVyYWJpbGl0eSBhZmZlY3QgZWFjaCBgdG9gIEVsZW1lbnQN Cj4gKyAgICBhZmZlY3RzID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUmVsYXRpb25zaGlwVHlwZS9hZmZlY3RzIg0KPiArICAgICMgVGhlIGBmcm9tYCBFbGVt ZW50IGlzIGFtZW5kZWQgYnkgZWFjaCBgdG9gIEVsZW1lbnQNCj4gKyAgICBhbWVuZGVkQnkg PSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBU eXBlL2FtZW5kZWRCeSINCj4gKyAgICAjIFRoZSBgZnJvbWAgRWxlbWVudCBpcyBhbiBhbmNl c3RvciBvZiBlYWNoIGB0b2AgRWxlbWVudA0KPiArICAgIGFuY2VzdG9yT2YgPSAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2FuY2Vz dG9yT2YiDQo+ICsgICAgIyBUaGUgYGZyb21gIEVsZW1lbnQgaXMgYXZhaWxhYmxlIGZyb20g dGhlIGFkZGl0aW9uYWwgc3VwcGxpZXIgZGVzY3JpYmVkIGJ5IGVhY2ggYHRvYCBFbGVtZW50 DQo+ICsgICAgYXZhaWxhYmxlRnJvbSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvYXZhaWxhYmxlRnJvbSINCj4gKyAgICAjIFRo ZSBgZnJvbWAgRWxlbWVudCBpcyBhIGNvbmZpZ3VyYXRpb24gYXBwbGllZCB0byBlYWNoIGB0 b2AgRWxlbWVudCBkdXJpbmcgYSBMaWZlY3ljbGVTY29wZVR5cGUgcGVyaW9kDQo+ICsgICAg Y29uZmlndXJlcyA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Jl bGF0aW9uc2hpcFR5cGUvY29uZmlndXJlcyINCj4gKyAgICAjIFRoZSBgZnJvbWAgRWxlbWVu dCBjb250YWlucyBlYWNoIGB0b2AgRWxlbWVudA0KPiArICAgIGNvbnRhaW5zID0gImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9jb250 YWlucyINCj4gKyAgICAjIChTZWN1cml0eSkgVGhlIGBmcm9tYCBWdWxuZXJhYmlsaXR5IGlz IGNvb3JkaW5hdGVkQnkgdGhlIGB0b2AgQWdlbnQocykgKHZlbmRvciwgcmVzZWFyY2hlciwg b3IgY29uc3VtZXIgYWdlbnQpDQo+ICsgICAgY29vcmRpbmF0ZWRCeSA9ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvY29vcmRpbmF0 ZWRCeSINCj4gKyAgICAjIFRoZSBgZnJvbWAgRWxlbWVudCBoYXMgYmVlbiBjb3BpZWQgdG8g ZWFjaCBgdG9gIEVsZW1lbnQNCj4gKyAgICBjb3BpZWRUbyA9ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvY29waWVkVG8iDQo+ICsg ICAgIyBUaGUgYGZyb21gIEFnZW50IGlzIGRlbGVnYXRpbmcgYW4gYWN0aW9uIHRvIHRoZSBB Z2VudCBvZiB0aGUgYHRvYCBSZWxhdGlvbnNoaXAgKHdoaWNoIG11c3QgYmUgb2YgdHlwZSBp bnZva2VkQnkpIGR1cmluZyBhIExpZmVjeWNsZVNjb3BlVHlwZS4gKGUuZy4gdGhlIGB0b2Ag aW52b2tlZEJ5IFJlbGF0aW9uc2hpcCBpcyBiZWluZyBkb25lIG9uIGJlaGFsZiBvZiBgZnJv bWApDQo+ICsgICAgZGVsZWdhdGVkVG8gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2RlbGVnYXRlZFRvIg0KPiArICAgICMgVGhl IGBmcm9tYCBFbGVtZW50IGRlcGVuZHMgb24gZWFjaCBgdG9gIEVsZW1lbnQgZHVyaW5nIGEg TGlmZWN5Y2xlU2NvcGVUeXBlIHBlcmlvZC4NCj4gKyAgICBkZXBlbmRzT24gPSAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2RlcGVu ZHNPbiINCj4gKyAgICAjIFRoZSBgZnJvbWAgRWxlbWVudCBpcyBhIGRlc2NlbmRhbnQgb2Yg ZWFjaCBgdG9gIEVsZW1lbnQNCj4gKyAgICBkZXNjZW5kYW50T2YgPSAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2Rlc2NlbmRhbnRP ZiINCj4gKyAgICAjIFRoZSBgZnJvbWAgRWxlbWVudCBkZXNjcmliZXMgZWFjaCBgdG9gIEVs ZW1lbnQuIFRvIGRlbm90ZSB0aGUgcm9vdChzKSBvZiBhIHRyZWUgb2YgZWxlbWVudHMgaW4g YSBjb2xsZWN0aW9uLCB0aGUgcm9vdEVsZW1lbnQgcHJvcGVydHkgc2hvdWxkIGJlIHVzZWQu DQo+ICsgICAgZGVzY3JpYmVzID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9kZXNjcmliZXMiDQo+ICsgICAgIyAoU2VjdXJpdHkv VkVYKSBUaGUgYGZyb21gIFZ1bG5lcmFiaWxpdHkgaGFzIG5vIGltcGFjdCBvbiBlYWNoIGB0 b2AgRWxlbWVudA0KPiArICAgIGRvZXNOb3RBZmZlY3QgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2RvZXNOb3RBZmZlY3QiDQo+ ICsgICAgIyBUaGUgYGZyb21gIGFyY2hpdmUgZXhwYW5kcyBvdXQgYXMgYW4gYXJ0aWZhY3Qg ZGVzY3JpYmVkIGJ5IGVhY2ggYHRvYCBFbGVtZW50DQo+ICsgICAgZXhwYW5kc1RvID0gImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9l eHBhbmRzVG8iDQo+ICsgICAgIyAoU2VjdXJpdHkpIFRoZSBgZnJvbWAgVnVsbmVyYWJpbGl0 eSBoYXMgaGFkIGFuIGV4cGxvaXQgY3JlYXRlZCBhZ2FpbnN0IGl0IGJ5IGVhY2ggYHRvYCBB Z2VudA0KPiArICAgIGV4cGxvaXRDcmVhdGVkQnkgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2V4cGxvaXRDcmVhdGVkQnkiDQo+ ICsgICAgIyAoU2VjdXJpdHkpIERlc2lnbmF0ZXMgYSBgZnJvbWAgVnVsbmVyYWJpbGl0eSBo YXMgYmVlbiBmaXhlZCBieSB0aGUgYHRvYCBBZ2VudChzKQ0KPiArICAgIGZpeGVkQnkgPSAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBl L2ZpeGVkQnkiDQo+ICsgICAgIyAoU2VjdXJpdHkvVkVYKSBBIGBmcm9tYCBWdWxuZXJhYmls aXR5IGhhcyBiZWVuIGZpeGVkIGluIGVhY2ggb2YgdGhlIGB0b2AgRWxlbWVudChzKQ0KPiAr ICAgIGZpeGVkSW4gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9S ZWxhdGlvbnNoaXBUeXBlL2ZpeGVkSW4iDQo+ICsgICAgIyAoU2VjdXJpdHkpIERlc2lnbmF0 ZXMgYSBgZnJvbWAgVnVsbmVyYWJpbGl0eSB3YXMgb3JpZ2luYWxseSBkaXNjb3ZlcmVkIGJ5 IHRoZSBgdG9gIEFnZW50KHMpDQo+ICsgICAgZm91bmRCeSA9ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvZm91bmRCeSINCj4gKyAg ICAjIFRoZSBgZnJvbWAgRWxlbWVudCBnZW5lcmF0ZXMgZWFjaCBgdG9gIEVsZW1lbnQNCj4g KyAgICBnZW5lcmF0ZXMgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL2dlbmVyYXRlcyINCj4gKyAgICAjIEV2ZXJ5IGB0b2AgRWxl bWVudCBpcyBpcyBhIGZpbGUgYWRkZWQgdG8gdGhlIGBmcm9tYCBFbGVtZW50IChgZnJvbWAg aGFzQWRkZWRGaWxlIGB0b2ApDQo+ICsgICAgaGFzQWRkZWRGaWxlID0gImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNBZGRlZEZp bGUiDQo+ICsgICAgIyAoU2VjdXJpdHkpIFJlbGF0ZXMgYSBgZnJvbWAgVnVsbmVyYWJpbGl0 eSBhbmQgZWFjaCBgdG9gIEVsZW1lbnQocykgd2l0aCBhIHNlY3VyaXR5IGFzc2Vzc21lbnQu IFRvIGJlIHVzZWQgd2l0aCBgVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXBgIHR5cGVzDQo+ ICsgICAgaGFzQXNzZXNzbWVudEZvciA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzQXNzZXNzbWVudEZvciINCj4gKyAgICAj IChTZWN1cml0eSkgVXNlZCB0byBhc3NvY2lhdGUgYSBgZnJvbWAgQXJ0aWZhY3Qgd2l0aCBl YWNoIGB0b2AgVnVsbmVyYWJpbGl0eQ0KPiArICAgIGhhc0Fzc29jaWF0ZWRWdWxuZXJhYmls aXR5ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25z aGlwVHlwZS9oYXNBc3NvY2lhdGVkVnVsbmVyYWJpbGl0eSINCj4gKyAgICAjIFRoZSBgZnJv bWAgU29mdHdhcmUgQXJ0aWZhY3QgaXMgY29uY2x1ZGVkIGJ5IHRoZSBTUERYIGRhdGEgY3Jl YXRvciB0byBiZSBnb3Zlcm5lZCBieSBlYWNoIGB0b2AgbGljZW5zZQ0KPiArICAgIGhhc0Nv bmNsdWRlZExpY2Vuc2UgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0NvbmNsdWRlZExpY2Vuc2UiDQo+ICsgICAgIyBUaGUg YGZyb21gIEVsZW1lbnQgdHJlYXRzIGVhY2ggYHRvYCBFbGVtZW50IGFzIGEgZGF0YSBmaWxl DQo+ICsgICAgaGFzRGF0YUZpbGUgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0RhdGFGaWxlIg0KPiArICAgICMgVGhlIGBm cm9tYCBTb2Z0d2FyZSBBcnRpZmFjdCB3YXMgZGlzY292ZXJlZCB0byBhY3R1YWxseSBjb250 YWluIGVhY2ggYHRvYCBsaWNlbnNlLCBmb3IgZXhhbXBsZSBhcyBkZXRlY3RlZCBieSB1c2Ug b2YgYXV0b21hdGVkIHRvb2xpbmcuDQo+ICsgICAgaGFzRGVjbGFyZWRMaWNlbnNlID0gImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9o YXNEZWNsYXJlZExpY2Vuc2UiDQo+ICsgICAgIyBFdmVyeSBgdG9gIEVsZW1lbnQgaXMgYSBm aWxlIGRlbGV0ZWQgZnJvbSB0aGUgYGZyb21gIEVsZW1lbnQgKGBmcm9tYCBoYXNEZWxldGVk RmlsZSBgdG9gKQ0KPiArICAgIGhhc0RlbGV0ZWRGaWxlID0gImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNEZWxldGVkRmlsZSIN Cj4gKyAgICAjIFRoZSBgZnJvbWAgRWxlbWVudCBoYXMgbWFuaWZlc3QgZmlsZXMgdGhhdCBj b250YWluIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gaW4gZWFjaCBgdG9gIEVsZW1lbnQNCj4g KyAgICBoYXNEZXBlbmRlbmN5TWFuaWZlc3QgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0RlcGVuZGVuY3lNYW5pZmVzdCIN Cj4gKyAgICAjIFRoZSBgZnJvbWAgRWxlbWVudCBpcyBkaXN0cmlidXRlZCBhcyBhbiBhcnRp ZmFjdCBpbiBlYWNoIEVsZW1lbnQgYHRvYCwgKGUuZy4gYW4gUlBNIG9yIGFyY2hpdmUgZmls ZSkNCj4gKyAgICBoYXNEaXN0cmlidXRpb25BcnRpZmFjdCA9ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRGlzdHJpYnV0aW9u QXJ0aWZhY3QiDQo+ICsgICAgIyBUaGUgYGZyb21gIEVsZW1lbnQgaXMgZG9jdW1lbnRlZCBi eSBlYWNoIGB0b2AgRWxlbWVudA0KPiArICAgIGhhc0RvY3VtZW50YXRpb24gPSAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0Rv Y3VtZW50YXRpb24iDQo+ICsgICAgIyBUaGUgYGZyb21gIEVsZW1lbnQgZHluYW1pY2FsbHkg bGlua3MgaW4gZWFjaCBgdG9gIEVsZW1lbnQsIGR1cmluZyBhIExpZmVjeWNsZVNjb3BlVHlw ZSBwZXJpb2QuDQo+ICsgICAgaGFzRHluYW1pY0xpbmsgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc0R5bmFtaWNMaW5rIg0K PiArICAgICMgKERhdGFzZXQpIEV2ZXJ5IGB0b2AgRWxlbWVudCBpcyBjb25zaWRlcmVkIGFz IGV2aWRlbmNlIGZvciB0aGUgYGZyb21gIEVsZW1lbnQgKGBmcm9tYCBoYXNFdmlkZW5jZSBg dG9gKQ0KPiArICAgIGhhc0V2aWRlbmNlID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNFdmlkZW5jZSINCj4gKyAgICAjIEV2 ZXJ5IGB0b2AgRWxlbWVudCBpcyBhbiBleGFtcGxlIGZvciB0aGUgYGZyb21gIEVsZW1lbnQg KGBmcm9tYCBoYXNFeGFtcGxlIGB0b2ApDQo+ICsgICAgaGFzRXhhbXBsZSA9ICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzRXhh bXBsZSINCj4gKyAgICAjIFRoZSBgZnJvbWAgQnVpbGQgd2FzIHJ1biBvbiB0aGUgYHRvYCBF bGVtZW50IGR1cmluZyBhIExpZmVjeWNsZVNjb3BlVHlwZSBwZXJpb2QgKGUuZy4gVGhlIGhv c3QgdGhhdCB0aGUgYnVpbGQgcnVucyBvbikNCj4gKyAgICBoYXNIb3N0ID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNIb3N0 Ig0KPiArICAgICMgVGhlIGBmcm9tYCBCdWlsZCBoYXMgZWFjaCBgdG9gIEVsZW1lbnRzIGFz IGFuIGlucHV0IGR1cmluZyBhIExpZmVjeWNsZVNjb3BlVHlwZSBwZXJpb2QuDQo+ICsgICAg aGFzSW5wdXRzID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVs YXRpb25zaGlwVHlwZS9oYXNJbnB1dHMiDQo+ICsgICAgIyBFdmVyeSBgdG9gIEVsZW1lbnQg aXMgbWV0YWRhdGEgYWJvdXQgdGhlIGBmcm9tYCBFbGVtZW50IChgZnJvbWAgaGFzTWV0YWRh dGEgYHRvYCkNCj4gKyAgICBoYXNNZXRhZGF0YSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFzTWV0YWRhdGEiDQo+ICsgICAg IyBFdmVyeSBgdG9gIEVsZW1lbnQgaXMgYW4gb3B0aW9uYWwgY29tcG9uZW50IG9mIHRoZSBg ZnJvbWAgRWxlbWVudCAoYGZyb21gIGhhc09wdGlvbmFsQ29tcG9uZW50IGB0b2ApDQo+ICsg ICAgaGFzT3B0aW9uYWxDb21wb25lbnQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc09wdGlvbmFsQ29tcG9uZW50Ig0KPiAr ICAgICMgVGhlIGBmcm9tYCBFbGVtZW50IG9wdGlvbmFsbHkgZGVwZW5kcyBvbiBlYWNoIGB0 b2AgRWxlbWVudCBkdXJpbmcgYSBMaWZlY3ljbGVTY29wZVR5cGUgcGVyaW9kDQo+ICsgICAg aGFzT3B0aW9uYWxEZXBlbmRlbmN5ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNPcHRpb25hbERlcGVuZGVuY3kiDQo+ICsg ICAgIyBUaGUgYGZyb21gIEJ1aWxkIGVsZW1lbnQgZ2VuZXJhdGVzIGVhY2ggYHRvYCBFbGVt ZW50IGFzIGFuIG91dHB1dCBkdXJpbmcgYSBMaWZlY3ljbGVTY29wZVR5cGUgcGVyaW9kLg0K PiArICAgIGhhc091dHB1dHMgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc091dHB1dHMiDQo+ICsgICAgIyBUaGUgYGZyb21g IEVsZW1lbnQgaGFzIGEgcHJlcmVxdXNpdGUgb24gZWFjaCBgdG9gIEVsZW1lbnQsIGR1cmlu ZyBhIExpZmVjeWNsZVNjb3BlVHlwZSBwZXJpb2QNCj4gKyAgICBoYXNQcmVyZXF1c2l0ZSA9 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5 cGUvaGFzUHJlcmVxdXNpdGUiDQo+ICsgICAgIyBUaGUgYGZyb21gIEVsZW1lbnQgaGFzIGEg ZGVwZW5kZW5jeSBvbiBlYWNoIGB0b2AgRWxlbWVudCwgYnV0IGRlcGVuZGVuY3kgaXMgbm90 IGluIHRoZSBkaXN0cmlidXRlZCBhcnRpZmFjdCwgYnV0IGFzc3VtZWQgdG8gYmUgcHJvdmlk ZWQsIGR1cmluZyBhIExpZmVjeWNsZVNjb3BlVHlwZSBwZXJpb2QNCj4gKyAgICBoYXNQcm92 aWRlZERlcGVuZGVuY3kgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL2hhc1Byb3ZpZGVkRGVwZW5kZW5jeSINCj4gKyAgICAjIFRo ZSBgZnJvbWAgRWxlbWVudCBoYXMgYSByZXF1aXJlbWVudCBvbiBlYWNoIGB0b2AgRWxlbWVu dCwgZHVyaW5nIGEgTGlmZWN5Y2xlU2NvcGVUeXBlIHBlcmlvZA0KPiArICAgIGhhc1JlcXVp cmVtZW50ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRp b25zaGlwVHlwZS9oYXNSZXF1aXJlbWVudCINCj4gKyAgICAjIEV2ZXJ5IGB0b2AgRWxlbWVu dCBpcyBhIHNwZWNpZmljYXRpb24gZm9yIHRoZSBgZnJvbWAgRWxlbWVudCAoYGZyb21gIGhh c1NwZWNpZmljYXRpb24gYHRvYCksIGR1cmluZyBhIExpZmVjeWNsZVNjb3BlVHlwZSBwZXJp b2QNCj4gKyAgICBoYXNTcGVjaWZpY2F0aW9uID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9oYXNTcGVjaWZpY2F0aW9uIg0KPiAr ICAgICMgVGhlIGBmcm9tYCBFbGVtZW50IHN0YXRpY2FsbHkgbGlua3MgaW4gZWFjaCBgdG9g IEVsZW1lbnQsIGR1cmluZyBhIExpZmVjeWNsZVNjb3BlVHlwZSBwZXJpb2QNCj4gKyAgICBo YXNTdGF0aWNMaW5rID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUv UmVsYXRpb25zaGlwVHlwZS9oYXNTdGF0aWNMaW5rIg0KPiArICAgICMgRXZlcnkgYHRvYCBF bGVtZW50IGlzIGEgdGVzdCBhcnRpZmFjdCBmb3IgdGhlIGBmcm9tYCBFbGVtZW50IChgZnJv bWAgaGFzVGVzdCBgdG9gKSwgZHVyaW5nIGEgTGlmZWN5Y2xlU2NvcGVUeXBlIHBlcmlvZA0K PiArICAgIGhhc1Rlc3QgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9SZWxhdGlvbnNoaXBUeXBlL2hhc1Rlc3QiDQo+ICsgICAgIyBFdmVyeSBgdG9gIEVsZW1l bnQgaXMgYSB0ZXN0IGNhc2UgZm9yIHRoZSBgZnJvbWAgRWxlbWVudCAoYGZyb21gIGhhc1Rl c3RDYXNlIGB0b2ApDQo+ICsgICAgaGFzVGVzdENhc2UgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL2hhc1Rlc3RDYXNlIg0KPiAr ICAgICMgRXZlcnkgYHRvYCBFbGVtZW50IGlzIGEgdmFyaWFudCB0aGUgYGZyb21gIEVsZW1l bnQgKGBmcm9tYCBoYXNWYXJpYW50IGB0b2ApDQo+ICsgICAgaGFzVmFyaWFudCA9ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvaGFz VmFyaWFudCINCj4gKyAgICAjIFRoZSBgZnJvbWAgRWxlbWVudCB3YXMgaW52b2tlZCBieSB0 aGUgYHRvYCBBZ2VudCBkdXJpbmcgYSBMaWZlY3ljbGVTY29wZVR5cGUgcGVyaW9kIChmb3Ig ZXhhbXBsZSwgYSBCdWlsZCBlbGVtZW50IHRoYXQgZGVzY3JpYmVzIGEgYnVpbGQgc3RlcCkN Cj4gKyAgICBpbnZva2VkQnkgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv Q29yZS9SZWxhdGlvbnNoaXBUeXBlL2ludm9rZWRCeSINCj4gKyAgICAjIFRoZSBgZnJvbWAg RWxlbWVudCBpcyBtb2RpZmllZCBieSBlYWNoIGB0b2AgRWxlbWVudA0KPiArICAgIG1vZGlm aWVkQnkgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlv bnNoaXBUeXBlL21vZGlmaWVkQnkiDQo+ICsgICAgIyBFdmVyeSBgdG9gIEVsZW1lbnQgaXMg cmVsYXRlZCB0byB0aGUgYGZyb21gIEVsZW1lbnQgd2hlcmUgdGhlIHJlbGF0aW9uc2hpcCB0 eXBlIGlzIG5vdCBkZXNjcmliZWQgYnkgYW55IG9mIHRoZSBTUERYIHJlbGF0aW9uaGlwIHR5 cGVzICh0aGlzIHJlbGF0aW9uc2hpcCBpcyBkaXJlY3Rpb25sZXNzKQ0KPiArICAgIG90aGVy ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlw VHlwZS9vdGhlciINCj4gKyAgICAjIEV2ZXJ5IGB0b2AgRWxlbWVudCBpcyBhIHBhY2thZ2Vk IGluc3RhbmNlIG9mIHRoZSBgZnJvbWAgRWxlbWVudCAoYGZyb21gIHBhY2thZ2VkQnkgYHRv YCkNCj4gKyAgICBwYWNrYWdlZEJ5ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9wYWNrYWdlZEJ5Ig0KPiArICAgICMgRXZlcnkg YHRvYCBFbGVtZW50IGlzIGEgcGF0Y2ggZm9yIHRoZSBgZnJvbWAgRWxlbWVudCAoYGZyb21g IHBhdGNoZWRCeSBgdG9gKQ0KPiArICAgIHBhdGNoZWRCeSA9ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvcGF0Y2hlZEJ5Ig0KPiAr ICAgICMgKFNlY3VyaXR5KSBEZXNpZ25hdGVzIGEgYGZyb21gIFZ1bG5lcmFiaWxpdHkgd2Fz IG1hZGUgYXZhaWxhYmxlIGZvciBwdWJsaWMgdXNlIG9yIHJlZmVyZW5jZSBieSBlYWNoIGB0 b2AgQWdlbnQNCj4gKyAgICBwdWJsaXNoZWRCeSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL1JlbGF0aW9uc2hpcFR5cGUvcHVibGlzaGVkQnkiDQo+ICsgICAg IyAoU2VjdXJpdHkpIERlc2lnbmF0ZXMgYSBgZnJvbWAgVnVsbmVyYWJpbGl0eSB3YXMgZmly c3QgcmVwb3J0ZWQgdG8gYSBwcm9qZWN0LCB2ZW5kb3IsIG9yIHRyYWNraW5nIGRhdGFiYXNl IGZvciBmb3JtYWwgaWRlbnRpZmljYXRpb24gYnkgZWFjaCBgdG9gIEFnZW50DQo+ICsgICAg cmVwb3J0ZWRCeSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1Jl bGF0aW9uc2hpcFR5cGUvcmVwb3J0ZWRCeSINCj4gKyAgICAjIChTZWN1cml0eSkgRGVzaWdu YXRlcyBhIGBmcm9tYCBWdWxuZXJhYmlsaXR5J3MgZGV0YWlscyB3ZXJlIHRyYWNrZWQsIGFn Z3JlZ2F0ZWQsIGFuZC9vciBlbnJpY2hlZCB0byBpbXByb3ZlIGNvbnRleHQgKGkuZS4gTlZE KSBieSBhIGB0b2AgQWdlbnQocykNCj4gKyAgICByZXB1Ymxpc2hlZEJ5ID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS9yZXB1Ymxp c2hlZEJ5Ig0KPiArICAgICMgVGhlIGBmcm9tYCBTUERYRG9jdW1lbnQgY2FuIGJlIGZvdW5k IGluIGEgc2VyaWFsaXplZCBmb3JtIGluIGVhY2ggYHRvYCBBcnRpZmFjdA0KPiArICAgIHNl cmlhbGl6ZWRJbkFydGlmYWN0ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvUmVsYXRpb25zaGlwVHlwZS9zZXJpYWxpemVkSW5BcnRpZmFjdCINCj4gKyAgICAj IChBSSwgRGF0YXNldCkgVGhlIGBmcm9tYCBFbGVtZW50IGhhcyBiZWVuIHRlc3RlZCBvbiB0 aGUgYHRvYCBFbGVtZW50DQo+ICsgICAgdGVzdGVkT24gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3Rlc3RlZE9uIg0KPiArICAg ICMgKEFJLCBEYXRhc2V0KSBUaGUgYGZyb21gIEVsZW1lbnQgaGFzIGJlZW4gdHJhaW5lZCBi eSB0aGUgYHRvYCBFbGVtZW50KHMpDQo+ICsgICAgdHJhaW5lZE9uID0gImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25zaGlwVHlwZS90cmFpbmVkT24i DQo+ICsgICAgIyAoU2VjdXJpdHkvVkVYKSBUaGUgYGZyb21gIFZ1bG5lcmFiaWxpdHkgaW1w YWN0IGlzIGJlaW5nIGludmVzdGlnYXRlZCBmb3IgZWFjaCBgdG9gIEVsZW1lbnQNCj4gKyAg ICB1bmRlckludmVzdGlnYXRpb25Gb3IgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9SZWxhdGlvbnNoaXBUeXBlL3VuZGVySW52ZXN0aWdhdGlvbkZvciINCj4g KyAgICAjIFRoZSBgZnJvbWAgRWxlbWVudCB1c2VzIGVhY2ggYHRvYCBFbGVtZW50IGFzIGEg dG9vbCBkdXJpbmcgYSBMaWZlY3ljbGVTY29wZVR5cGUgcGVyaW9kLg0KPiArICAgIHVzZXNU b29sID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUmVsYXRpb25z aGlwVHlwZS91c2VzVG9vbCINCj4gKw0KPiArDQo+ICsjIEEgY29sbGVjdGlvbiBvZiBTUERY IEVsZW1lbnRzIHRoYXQgY291bGQgcG90ZW50aWFsbHkgYmUgc2VyaWFsaXplZC4NCj4gK0By ZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9TcGR4RG9j dW1lbnQiLCBjb21wYWN0X3R5cGU9IlNwZHhEb2N1bWVudCIsIGFic3RyYWN0PUZhbHNlKQ0K PiArY2xhc3MgU3BkeERvY3VtZW50KEVsZW1lbnRDb2xsZWN0aW9uKToNCj4gKyAgICBOT0RF X0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFTID0gInNw ZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4g KyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkNCj4gKyAgICAgICAgIyBQcm92 aWRlcyB0aGUgbGljZW5zZSB1bmRlciB3aGljaCB0aGUgU1BEWCBkb2N1bWVudGF0aW9uIG9m IHRoZSBFbGVtZW50IGNhbiBiZQ0KPiArICAgICAgICAjIHVzZWQuDQo+ICsgICAgICAgIGNs cy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImRhdGFMaWNlbnNlIiwNCj4gKyAg ICAgICAgICAgIE9iamVjdFByb3Aoc2ltcGxlbGljZW5zaW5nX0FueUxpY2Vuc2VJbmZvLCBG YWxzZSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvZGF0YUxpY2Vuc2UiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iZGF0 YUxpY2Vuc2UiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgUHJvdmlkZXMgYW4gRXh0 ZXJuYWxNYXAgb2YgRWxlbWVudCBpZGVudGlmaWVycy4NCj4gKyAgICAgICAgY2xzLl9hZGRf cHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiaW1wb3J0cyIsDQo+ICsgICAgICAgICAgICBM aXN0UHJvcChPYmplY3RQcm9wKEV4dGVybmFsTWFwLCBGYWxzZSkpLA0KPiArICAgICAgICAg ICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL2ltcG9ydHMi LA0KPiArICAgICAgICAgICAgY29tcGFjdD0iaW1wb3J0cyIsDQo+ICsgICAgICAgICkNCj4g KyAgICAgICAgIyBQcm92aWRlcyBhIE5hbWVzcGFjZU1hcCBvZiBwcmVmaXhlcyBhbmQgYXNz b2NpYXRlZCBuYW1lc3BhY2UgcGFydGlhbCBVUklzIGFwcGxpY2FibGUgdG8gYW4gU3BkeERv Y3VtZW50IGFuZCBpbmRlcGVuZGVudCBvZiBhbnkgc3BlY2lmaWMgc2VyaWFsaXphdGlvbiBm b3JtYXQgb3IgaW5zdGFuY2UuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiAr ICAgICAgICAgICAgIm5hbWVzcGFjZU1hcCIsDQo+ICsgICAgICAgICAgICBMaXN0UHJvcChP YmplY3RQcm9wKE5hbWVzcGFjZU1hcCwgRmFsc2UpKSwNCj4gKyAgICAgICAgICAgIGlyaT0i aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9uYW1lc3BhY2VNYXAiLA0K PiArICAgICAgICAgICAgY29tcGFjdD0ibmFtZXNwYWNlTWFwIiwNCj4gKyAgICAgICAgKQ0K PiArDQo+ICsNCj4gKyMgSW5kaWNhdGVzIHRoZSB0eXBlIG9mIHN1cHBvcnQgdGhhdCBpcyBh c3NvY2lhdGVkIHdpdGggYW4gYXJ0aWZhY3QuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3VwcG9ydFR5cGUiLCBjb21wYWN0X3R5cGU9 IlN1cHBvcnRUeXBlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBTdXBwb3J0VHlwZShT SEFDTE9iamVjdCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJ UkkNCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICAgICAgImRlcGxveWVk IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3VwcG9ydFR5cGUv ZGVwbG95ZWQiLA0KPiArICAgICAgICAiZGV2ZWxvcG1lbnQiOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9TdXBwb3J0VHlwZS9kZXZlbG9wbWVudCIsDQo+ICsg ICAgICAgICJlbmRPZlN1cHBvcnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQ29yZS9TdXBwb3J0VHlwZS9lbmRPZlN1cHBvcnQiLA0KPiArICAgICAgICAibGltaXRl ZFN1cHBvcnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9TdXBw b3J0VHlwZS9saW1pdGVkU3VwcG9ydCIsDQo+ICsgICAgICAgICJub0Fzc2VydGlvbiI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBlL25vQXNz ZXJ0aW9uIiwNCj4gKyAgICAgICAgIm5vU3VwcG9ydCI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBlL25vU3VwcG9ydCIsDQo+ICsgICAgICAg ICJzdXBwb3J0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3Vw cG9ydFR5cGUvc3VwcG9ydCIsDQo+ICsgICAgfQ0KPiArICAgICMgaW4gYWRkaXRpb24gdG8g YmVpbmcgc3VwcG9ydGVkIGJ5IHRoZSBzdXBwbGllciwgdGhlIHNvZnR3YXJlIGlzIGtub3du IHRvIGhhdmUgYmVlbiBkZXBsb3llZCBhbmQgaXMgaW4gdXNlLiAgRm9yIGEgc29mdHdhcmUg YXMgYSBzZXJ2aWNlIHByb3ZpZGVyLCB0aGlzIGltcGxpZXMgdGhlIHNvZnR3YXJlIGlzIG5v dyBhdmFpbGFibGUgYXMgYSBzZXJ2aWNlLg0KPiArICAgIGRlcGxveWVkID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3VwcG9ydFR5cGUvZGVwbG95ZWQiDQo+ ICsgICAgIyB0aGUgYXJ0aWZhY3QgaXMgaW4gYWN0aXZlIGRldmVsb3BtZW50IGFuZCBpcyBu b3QgY29uc2lkZXJlZCByZWFkeSBmb3IgZm9ybWFsIHN1cHBvcnQgZnJvbSB0aGUgc3VwcGxp ZXIuDQo+ICsgICAgZGV2ZWxvcG1lbnQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9TdXBwb3J0VHlwZS9kZXZlbG9wbWVudCINCj4gKyAgICAjIHRoZXJlIGlz IGEgZGVmaW5lZCBlbmQgb2Ygc3VwcG9ydCBmb3IgdGhlIGFydGlmYWN0IGZyb20gdGhlIHN1 cHBsaWVyLiAgVGhpcyBtYXkgYWxzbyBiZSByZWZlcnJlZCB0byBhcyBlbmQgb2YgbGlmZS4g VGhlcmUgaXMgYSB2YWxpZFVudGlsRGF0ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHNpZ25hbCB3 aGVuIHN1cHBvcnQgZW5kcyBmb3IgdGhlIGFydGlmYWN0Lg0KPiArICAgIGVuZE9mU3VwcG9y dCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBl L2VuZE9mU3VwcG9ydCINCj4gKyAgICAjIHRoZSBhcnRpZmFjdCBoYXMgYmVlbiByZWxlYXNl ZCwgYW5kIHRoZXJlIGlzIGxpbWl0ZWQgc3VwcG9ydCBhdmFpbGFibGUgZnJvbSB0aGUgc3Vw cGxpZXIuIFRoZXJlIGlzIGEgdmFsaWRVbnRpbERhdGUgdGhhdCBjYW4gcHJvdmlkZSBhZGRp dGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkdXJhdGlvbiBvZiBzdXBwb3J0Lg0KPiAr ICAgIGxpbWl0ZWRTdXBwb3J0ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0NvcmUvU3VwcG9ydFR5cGUvbGltaXRlZFN1cHBvcnQiDQo+ICsgICAgIyBubyBhc3NlcnRp b24gYWJvdXQgdGhlIHR5cGUgb2Ygc3VwcG9ydCBpcyBtYWRlLiAgIFRoaXMgaXMgY29uc2lk ZXJlZCB0aGUgZGVmYXVsdCBpZiBubyBvdGhlciBzdXBwb3J0IHR5cGUgaXMgdXNlZC4NCj4g KyAgICBub0Fzc2VydGlvbiA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL1N1cHBvcnRUeXBlL25vQXNzZXJ0aW9uIg0KPiArICAgICMgdGhlcmUgaXMgbm8gc3Vw cG9ydCBmb3IgdGhlIGFydGlmYWN0IGZyb20gdGhlIHN1cHBsaWVyLCBjb25zdW1lciBhc3N1 bWVzIGFueSBzdXBwb3J0IG9ibGlnYXRpb25zLg0KPiArICAgIG5vU3VwcG9ydCA9ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBlL25vU3VwcG9y dCINCj4gKyAgICAjIHRoZSBhcnRpZmFjdCBoYXMgYmVlbiByZWxlYXNlZCwgYW5kIGlzIHN1 cHBvcnRlZCBmcm9tIHRoZSBzdXBwbGllci4gICBUaGVyZSBpcyBhIHZhbGlkVW50aWxEYXRl IHRoYXQgY2FuIHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHVy YXRpb24gb2Ygc3VwcG9ydC4NCj4gKyAgICBzdXBwb3J0ID0gImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3VwcG9ydFR5cGUvc3VwcG9ydCINCj4gKw0KPiArDQo+ ICsjIEFuIGVsZW1lbnQgb2YgaGFyZHdhcmUgYW5kL29yIHNvZnR3YXJlIHV0aWxpemVkIHRv IGNhcnJ5IG91dCBhIHBhcnRpY3VsYXIgZnVuY3Rpb24uDQo+ICtAcmVnaXN0ZXIoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvVG9vbCIsIGNvbXBhY3RfdHlwZT0i VG9vbCIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgVG9vbChFbGVtZW50KToNCj4gKyAg ICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFT ID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ ICsNCj4gKw0KPiArIyBDYXRlZ29yaWVzIG9mIGNvbmZpZGVudGlhbGl0eSBsZXZlbC4NCj4g K0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9D b25maWRlbnRpYWxpdHlMZXZlbFR5cGUiLCBjb21wYWN0X3R5cGU9ImRhdGFzZXRfQ29uZmlk ZW50aWFsaXR5TGV2ZWxUeXBlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBkYXRhc2V0 X0NvbmZpZGVudGlhbGl0eUxldmVsVHlwZShTSEFDTE9iamVjdCk6DQo+ICsgICAgTk9ERV9L SU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBOQU1FRF9JTkRJVklEVUFM UyA9IHsNCj4gKyAgICAgICAgImFtYmVyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0RhdGFzZXQvQ29uZmlkZW50aWFsaXR5TGV2ZWxUeXBlL2FtYmVyIiwNCj4gKyAg ICAgICAgImNsZWFyIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFz ZXQvQ29uZmlkZW50aWFsaXR5TGV2ZWxUeXBlL2NsZWFyIiwNCj4gKyAgICAgICAgImdyZWVu IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvQ29uZmlkZW50 aWFsaXR5TGV2ZWxUeXBlL2dyZWVuIiwNCj4gKyAgICAgICAgInJlZCI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0NvbmZpZGVudGlhbGl0eUxldmVsVHlw ZS9yZWQiLA0KPiArICAgIH0NCj4gKyAgICAjIERhdGEgcG9pbnRzIGluIHRoZSBkYXRhc2V0 IGNhbiBiZSBzaGFyZWQgb25seSB3aXRoIHNwZWNpZmljDQo+ICsgICAgYW1iZXIgPSAiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9Db25maWRlbnRpYWxpdHlM ZXZlbFR5cGUvYW1iZXIiDQo+ICsgICAgIyBEYXRhc2V0IG1heSBiZSBkaXN0cmlidXRlZCBm cmVlbHksIHdpdGhvdXQgcmVzdHJpY3Rpb24uDQo+ICsgICAgY2xlYXIgPSAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9Db25maWRlbnRpYWxpdHlMZXZlbFR5 cGUvY2xlYXIiDQo+ICsgICAgIyBEYXRhc2V0IGNhbiBiZSBzaGFyZWQgd2l0aGluIGEgY29t bXVuaXR5IG9mIHBlZXJzIGFuZCBwYXJ0bmVycy4NCj4gKyAgICBncmVlbiA9ICJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0NvbmZpZGVudGlhbGl0eUxldmVs VHlwZS9ncmVlbiINCj4gKyAgICAjIERhdGEgcG9pbnRzIGluIHRoZSBkYXRhc2V0IGFyZSBo aWdobHkgY29uZmlkZW50aWFsIGFuZCBjYW4gb25seSBiZSBzaGFyZWQNCj4gKyAgICByZWQg PSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9Db25maWRlbnRp YWxpdHlMZXZlbFR5cGUvcmVkIg0KPiArDQo+ICsNCj4gKyMgQXZhaWxhYmlsaXR5IG9mIGRh dGFzZXQuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0RhdGFzZXQvRGF0YXNldEF2YWlsYWJpbGl0eVR5cGUiLCBjb21wYWN0X3R5cGU9ImRhdGFz ZXRfRGF0YXNldEF2YWlsYWJpbGl0eVR5cGUiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNz IGRhdGFzZXRfRGF0YXNldEF2YWlsYWJpbGl0eVR5cGUoU0hBQ0xPYmplY3QpOg0KPiArICAg IE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgTkFNRURfSU5E SVZJRFVBTFMgPSB7DQo+ICsgICAgICAgICJjbGlja3Rocm91Z2giOiAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0QXZhaWxhYmlsaXR5VHlwZS9j bGlja3Rocm91Z2giLA0KPiArICAgICAgICAiZGlyZWN0RG93bmxvYWQiOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0QXZhaWxhYmlsaXR5VHlw ZS9kaXJlY3REb3dubG9hZCIsDQo+ICsgICAgICAgICJxdWVyeSI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL3F1 ZXJ5IiwNCj4gKyAgICAgICAgInJlZ2lzdHJhdGlvbiI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL3JlZ2lzdHJh dGlvbiIsDQo+ICsgICAgICAgICJzY3JhcGluZ1NjcmlwdCI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL3NjcmFw aW5nU2NyaXB0IiwNCj4gKyAgICB9DQo+ICsgICAgIyB0aGUgZGF0YXNldCBpcyBub3QgcHVi bGljbHkgYXZhaWxhYmxlIGFuZCBjYW4gb25seSBiZSBhY2Nlc3NlZA0KPiArICAgIGNsaWNr dGhyb3VnaCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0Rh dGFzZXRBdmFpbGFiaWxpdHlUeXBlL2NsaWNrdGhyb3VnaCINCj4gKyAgICAjIHRoZSBkYXRh c2V0IGlzIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgY2FuIGJlIGRvd25sb2FkZWQNCj4gKyAg ICBkaXJlY3REb3dubG9hZCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9E YXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL2RpcmVjdERvd25sb2FkIg0KPiArICAg ICMgdGhlIGRhdGFzZXQgaXMgcHVibGljbHkgYXZhaWxhYmxlLCBidXQgbm90IGFsbCBhdCBv bmNlLCBhbmQgY2FuIG9ubHkNCj4gKyAgICBxdWVyeSA9ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL3F1ZXJ5Ig0K PiArICAgICMgdGhlIGRhdGFzZXQgaXMgbm90IHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgYW4g ZW1haWwgcmVnaXN0cmF0aW9uDQo+ICsgICAgcmVnaXN0cmF0aW9uID0gImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldEF2YWlsYWJpbGl0eVR5cGUv cmVnaXN0cmF0aW9uIg0KPiArICAgICMgdGhlIGRhdGFzZXQgcHJvdmlkZXIgaXMgbm90IG1h a2luZyBhdmFpbGFibGUgdGhlIHVuZGVybHlpbmcNCj4gKyAgICBzY3JhcGluZ1NjcmlwdCA9 ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRBdmFp bGFiaWxpdHlUeXBlL3NjcmFwaW5nU2NyaXB0Ig0KPiArDQo+ICsNCj4gKyMgRW51bWVyYXRp b24gb2YgZGF0YXNldCB0eXBlcy4NCj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZSIsIGNvbXBhY3RfdHlwZT0iZGF0 YXNldF9EYXRhc2V0VHlwZSIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgZGF0YXNldF9E YXRhc2V0VHlwZShTSEFDTE9iamVjdCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQu QmxhbmtOb2RlT3JJUkkNCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICAg ICAgImF1ZGlvIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQv RGF0YXNldFR5cGUvYXVkaW8iLA0KPiArICAgICAgICAiY2F0ZWdvcmljYWwiOiAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS9jYXRlZ29y aWNhbCIsDQo+ICsgICAgICAgICJncmFwaCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL2dyYXBoIiwNCj4gKyAgICAgICAgImltYWdl IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5 cGUvaW1hZ2UiLA0KPiArICAgICAgICAibm9Bc3NlcnRpb24iOiAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS9ub0Fzc2VydGlvbiIsDQo+ ICsgICAgICAgICJudW1lcmljIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0RhdGFzZXQvRGF0YXNldFR5cGUvbnVtZXJpYyIsDQo+ICsgICAgICAgICJvdGhlciI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL290 aGVyIiwNCj4gKyAgICAgICAgInNlbnNvciI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3NlbnNvciIsDQo+ICsgICAgICAgICJzdHJ1 Y3R1cmVkIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0 YXNldFR5cGUvc3RydWN0dXJlZCIsDQo+ICsgICAgICAgICJzeW50YWN0aWMiOiAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS9zeW50YWN0 aWMiLA0KPiArICAgICAgICAidGV4dCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3RleHQiLA0KPiArICAgICAgICAidGltZXNlcmll cyI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRU eXBlL3RpbWVzZXJpZXMiLA0KPiArICAgICAgICAidGltZXN0YW1wIjogImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvdGltZXN0YW1wIiwN Cj4gKyAgICAgICAgInZpZGVvIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0RhdGFzZXQvRGF0YXNldFR5cGUvdmlkZW8iLA0KPiArICAgIH0NCj4gKyAgICAjIGRhdGEg aXMgYXVkaW8gYmFzZWQsIHN1Y2ggYXMgYSBjb2xsZWN0aW9uIG9mIG11c2ljIGZyb20gdGhl IDgwcy4NCj4gKyAgICBhdWRpbyA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9EYXRhc2V0L0RhdGFzZXRUeXBlL2F1ZGlvIg0KPiArICAgICMgZGF0YSB0aGF0IGlzIGNs YXNzaWZpZWQgaW50byBhIGRpc2NyZXRlIG51bWJlciBvZiBjYXRlZ29yaWVzLA0KPiArICAg IGNhdGVnb3JpY2FsID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFz ZXQvRGF0YXNldFR5cGUvY2F0ZWdvcmljYWwiDQo+ICsgICAgIyBkYXRhIGlzIGluIHRoZSBm b3JtIG9mIGEgZ3JhcGggd2hlcmUgZW50cmllcyBhcmUgc29tZWhvdyByZWxhdGVkIHRvDQo+ ICsgICAgZ3JhcGggPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNl dC9EYXRhc2V0VHlwZS9ncmFwaCINCj4gKyAgICAjIGRhdGEgaXMgYSBjb2xsZWN0aW9uIG9m IGltYWdlcyBzdWNoIGFzIHBpY3R1cmVzIG9mIGFuaW1hbHMuDQo+ICsgICAgaW1hZ2UgPSAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS9p bWFnZSINCj4gKyAgICAjIGRhdGEgdHlwZSBpcyBub3Qga25vd24uDQo+ICsgICAgbm9Bc3Nl cnRpb24gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRh c2V0VHlwZS9ub0Fzc2VydGlvbiINCj4gKyAgICAjIGRhdGEgY29uc2lzdHMgb25seSBvZiBu dW1lcmljIGVudHJpZXMuDQo+ICsgICAgbnVtZXJpYyA9ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL251bWVyaWMiDQo+ICsgICAgIyBk YXRhIGlzIG9mIGEgdHlwZSBub3QgaW5jbHVkZWQgaW4gdGhpcyBsaXN0Lg0KPiArICAgIG90 aGVyID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNl dFR5cGUvb3RoZXIiDQo+ICsgICAgIyBkYXRhIGlzIHJlY29yZGVkIGZyb20gYSBwaHlzaWNh bCBzZW5zb3IsIHN1Y2ggYXMgYSB0aGVybW9tZXRlcg0KPiArICAgIHNlbnNvciA9ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3NlbnNv ciINCj4gKyAgICAjIGRhdGEgaXMgc3RvcmVkIGluIHRhYnVsYXIgZm9ybWF0IG9yIHJldHJp ZXZlZCBmcm9tIGEgcmVsYXRpb25hbA0KPiArICAgIHN0cnVjdHVyZWQgPSAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS9zdHJ1Y3R1cmVk Ig0KPiArICAgICMgZGF0YSBkZXNjcmliZXMgdGhlIHN5bnRheCBvciBzZW1hbnRpY3Mgb2Yg YSBsYW5ndWFnZSBvciB0ZXh0LCBzdWNoDQo+ICsgICAgc3ludGFjdGljID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvc3ludGFjdGlj Ig0KPiArICAgICMgZGF0YSBjb25zaXN0cyBvZiB1bnN0cnVjdHVyZWQgdGV4dCwgc3VjaCBh cyBhIGJvb2ssIFdpa2lwZWRpYSBhcnRpY2xlDQo+ICsgICAgdGV4dCA9ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3RleHQiDQo+ICsg ICAgIyBkYXRhIGlzIHJlY29yZGVkIGluIGFuIG9yZGVyZWQgc2VxdWVuY2Ugb2YgdGltZXN0 YW1wZWQgZW50cmllcywNCj4gKyAgICB0aW1lc2VyaWVzID0gImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvdGltZXNlcmllcyINCj4gKyAg ICAjIGRhdGEgaXMgcmVjb3JkZWQgd2l0aCBhIHRpbWVzdGFtcCBmb3IgZWFjaCBlbnRyeSwg YnV0IG5vdA0KPiArICAgIHRpbWVzdGFtcCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3RpbWVzdGFtcCINCj4gKyAgICAjIGRhdGEg aXMgdmlkZW8gYmFzZWQsIHN1Y2ggYXMgYSBjb2xsZWN0aW9uIG9mIG1vdmllIGNsaXBzIGZl YXR1cmluZyBUb20NCj4gKyAgICB2aWRlbyA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3ZpZGVvIg0KPiArDQo+ICsNCj4gKyMgQWJz dHJhY3QgY2xhc3MgZm9yIGFkZGl0aW9uYWwgdGV4dCBpbnRlbmRlZCB0byBiZSBhZGRlZCB0 byBhIExpY2Vuc2UsIGJ1dA0KPiArIyB3aGljaCBpcyBub3QgaXRzZWxmIGEgc3RhbmRhbG9u ZSBMaWNlbnNlLg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9FeHBhbmRlZExpY2Vuc2luZy9MaWNlbnNlQWRkaXRpb24iLCBjb21wYWN0X3R5cGU9 ImV4cGFuZGVkbGljZW5zaW5nX0xpY2Vuc2VBZGRpdGlvbiIsIGFic3RyYWN0PVRydWUpDQo+ ICtjbGFzcyBleHBhbmRlZGxpY2Vuc2luZ19MaWNlbnNlQWRkaXRpb24oRWxlbWVudCk6DQo+ ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBJRF9B TElBUyA9ICJzcGR4SWQiDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAg fQ0KPiArDQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9w cyhjbHMpOg0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAg ICAgICMgSWRlbnRpZmllcyB0aGUgZnVsbCB0ZXh0IG9mIGEgTGljZW5zZUFkZGl0aW9uLg0K PiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJleHBhbmRl ZGxpY2Vuc2luZ19hZGRpdGlvblRleHQiLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgp LA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9FeHBhbmRlZExpY2Vuc2luZy9hZGRpdGlvblRleHQiLA0KPiArICAgICAgICAgICAgbWlu X2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJleHBhbmRlZGxpY2Vuc2luZ19h ZGRpdGlvblRleHQiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgU3BlY2lmaWVzIHdo ZXRoZXIgYW4gYWRkaXRpb25hbCB0ZXh0IGlkZW50aWZpZXIgaGFzIGJlZW4gbWFya2VkIGFz IGRlcHJlY2F0ZWQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAg ICAgICAgImV4cGFuZGVkbGljZW5zaW5nX2lzRGVwcmVjYXRlZEFkZGl0aW9uSWQiLA0KPiAr ICAgICAgICAgICAgQm9vbGVhblByb3AoKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRXhwYW5kZWRMaWNlbnNpbmcvaXNEZXByZWNh dGVkQWRkaXRpb25JZCIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJleHBhbmRlZGxpY2Vu c2luZ19pc0RlcHJlY2F0ZWRBZGRpdGlvbklkIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAg ICAjIElkZW50aWZpZXMgYWxsIHRoZSB0ZXh0IGFuZCBtZXRhZGF0YSBhc3NvY2lhdGVkIHdp dGggYSBsaWNlbnNlIGluIHRoZSBsaWNlbnNlDQo+ICsgICAgICAgICMgWE1MIGZvcm1hdC4N Cj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZXhwYW5k ZWRsaWNlbnNpbmdfbGljZW5zZVhtbCIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCks DQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0V4cGFuZGVkTGljZW5zaW5nL2xpY2Vuc2VYbWwiLA0KPiArICAgICAgICAgICAgY29tcGFj dD0iZXhwYW5kZWRsaWNlbnNpbmdfbGljZW5zZVhtbCIsDQo+ICsgICAgICAgICkNCj4gKyAg ICAgICAgIyBTcGVjaWZpZXMgdGhlIGxpY2Vuc2VJZCB0aGF0IGlzIHByZWZlcnJlZCB0byBi ZSB1c2VkIGluIHBsYWNlIG9mIGEgZGVwcmVjYXRlZA0KPiArICAgICAgICAjIExpY2Vuc2Ug b3IgTGljZW5zZUFkZGl0aW9uLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4g KyAgICAgICAgICAgICJleHBhbmRlZGxpY2Vuc2luZ19vYnNvbGV0ZWRCeSIsDQo+ICsgICAg ICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4cGFuZGVkTGljZW5zaW5nL29ic29sZXRlZEJ5IiwN Cj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImV4cGFuZGVkbGljZW5zaW5nX29ic29sZXRlZEJ5 IiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIENvbnRhaW5zIGEgVVJMIHdoZXJlIHRo ZSBMaWNlbnNlIG9yIExpY2Vuc2VBZGRpdGlvbiBjYW4gYmUgZm91bmQgaW4gdXNlLg0KPiAr ICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJleHBhbmRlZGxp Y2Vuc2luZ19zZWVBbHNvIiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKEFueVVSSVByb3Ao KSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0V4cGFuZGVkTGljZW5zaW5nL3NlZUFsc28iLA0KPiArICAgICAgICAgICAgY29tcGFj dD0iZXhwYW5kZWRsaWNlbnNpbmdfc2VlQWxzbyIsDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgIyBJZGVudGlmaWVzIHRoZSBmdWxsIHRleHQgb2YgYSBMaWNlbnNlQWRkaXRpb24sIGlu IFNQRFggdGVtcGxhdGluZyBmb3JtYXQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5 KA0KPiArICAgICAgICAgICAgImV4cGFuZGVkbGljZW5zaW5nX3N0YW5kYXJkQWRkaXRpb25U ZW1wbGF0ZSIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAg ICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4cGFuZGVkTGljZW5z aW5nL3N0YW5kYXJkQWRkaXRpb25UZW1wbGF0ZSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0 PSJleHBhbmRlZGxpY2Vuc2luZ19zdGFuZGFyZEFkZGl0aW9uVGVtcGxhdGUiLA0KPiArICAg ICAgICApDQo+ICsNCj4gKw0KPiArIyBBIGxpY2Vuc2UgZXhjZXB0aW9uIHRoYXQgaXMgbGlz dGVkIG9uIHRoZSBTUERYIEV4Y2VwdGlvbnMgbGlzdC4NCj4gK0ByZWdpc3RlcigiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRXhwYW5kZWRMaWNlbnNpbmcvTGlzdGVkTGlj ZW5zZUV4Y2VwdGlvbiIsIGNvbXBhY3RfdHlwZT0iZXhwYW5kZWRsaWNlbnNpbmdfTGlzdGVk TGljZW5zZUV4Y2VwdGlvbiIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgZXhwYW5kZWRs aWNlbnNpbmdfTGlzdGVkTGljZW5zZUV4Y2VwdGlvbihleHBhbmRlZGxpY2Vuc2luZ19MaWNl bnNlQWRkaXRpb24pOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9y SVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0KPiArICAgIE5BTUVEX0lORElWSURV QUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRl ZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJf cHJvcHMoKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0aGUgU1BEWCBMaWNlbnNlIExpc3Qg dmVyc2lvbiBpbiB3aGljaCB0aGlzIGxpY2Vuc2Ugb3IgZXhjZXB0aW9uDQo+ICsgICAgICAg ICMgaWRlbnRpZmllciB3YXMgZGVwcmVjYXRlZC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJv cGVydHkoDQo+ICsgICAgICAgICAgICAiZXhwYW5kZWRsaWNlbnNpbmdfZGVwcmVjYXRlZFZl cnNpb24iLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAgICAg aXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBhbmRlZExpY2Vuc2lu Zy9kZXByZWNhdGVkVmVyc2lvbiIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJleHBhbmRl ZGxpY2Vuc2luZ19kZXByZWNhdGVkVmVyc2lvbiIsDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgIyBTcGVjaWZpZXMgdGhlIFNQRFggTGljZW5zZSBMaXN0IHZlcnNpb24gaW4gd2hpY2gg dGhpcyBMaXN0ZWRMaWNlbnNlIG9yDQo+ICsgICAgICAgICMgTGlzdGVkTGljZW5zZUV4Y2Vw dGlvbiBpZGVudGlmaWVyIHdhcyBmaXJzdCBhZGRlZC4NCj4gKyAgICAgICAgY2xzLl9hZGRf cHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZXhwYW5kZWRsaWNlbnNpbmdfbGlzdFZlcnNp b25BZGRlZCIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAg ICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4cGFuZGVkTGljZW5z aW5nL2xpc3RWZXJzaW9uQWRkZWQiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iZXhwYW5k ZWRsaWNlbnNpbmdfbGlzdFZlcnNpb25BZGRlZCIsDQo+ICsgICAgICAgICkNCj4gKw0KPiAr DQo+ICsjIEEgcHJvcGVydHkgbmFtZSB3aXRoIGFuIGFzc29jaWF0ZWQgdmFsdWUuDQo+ICtA cmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4dGVuc2lvbi9D ZHhQcm9wZXJ0eUVudHJ5IiwgY29tcGFjdF90eXBlPSJleHRlbnNpb25fQ2R4UHJvcGVydHlF bnRyeSIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgZXh0ZW5zaW9uX0NkeFByb3BlcnR5 RW50cnkoU0hBQ0xPYmplY3QpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5r Tm9kZU9ySVJJDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMp Og0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAgICAgICMg QSBuYW1lIHVzZWQgaW4gYSBDZHhFeHRlbnNpb24gbmFtZS12YWx1ZSBwYWlyLg0KPiArICAg ICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJleHRlbnNpb25fY2R4 UHJvcE5hbWUiLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAg ICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHRlbnNpb24vY2R4 UHJvcE5hbWUiLA0KPiArICAgICAgICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAg ICBjb21wYWN0PSJleHRlbnNpb25fY2R4UHJvcE5hbWUiLA0KPiArICAgICAgICApDQo+ICsg ICAgICAgICMgQSB2YWx1ZSB1c2VkIGluIGEgQ2R4RXh0ZW5zaW9uIG5hbWUtdmFsdWUgcGFp ci4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZXh0 ZW5zaW9uX2NkeFByb3BWYWx1ZSIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4 dGVuc2lvbi9jZHhQcm9wVmFsdWUiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iZXh0ZW5z aW9uX2NkeFByb3BWYWx1ZSIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIEEgY2hh cmFjdGVyaXphdGlvbiBvZiBzb21lIGFzcGVjdCBvZiBhbiBFbGVtZW50IHRoYXQgaXMgYXNz b2NpYXRlZCB3aXRoIHRoZSBFbGVtZW50IGluIGEgZ2VuZXJhbGl6ZWQgZmFzaGlvbi4NCj4g K0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRXh0ZW5zaW9u L0V4dGVuc2lvbiIsIGNvbXBhY3RfdHlwZT0iZXh0ZW5zaW9uX0V4dGVuc2lvbiIsIGFic3Ry YWN0PVRydWUpDQo+ICtjbGFzcyBleHRlbnNpb25fRXh0ZW5zaW9uKFNIQUNMRXh0ZW5zaWJs ZU9iamVjdCwgU0hBQ0xPYmplY3QpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJs YW5rTm9kZU9ySVJJDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0K PiArDQo+ICsNCj4gKyMgU3BlY2lmaWVzIHRoZSBDVlNTIGJhc2UsIHRlbXBvcmFsLCB0aHJl YXQsIG9yIGVudmlyb25tZW50YWwgc2V2ZXJpdHkgdHlwZS4NCj4gK0ByZWdpc3RlcigiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvQ3Zzc1NldmVyaXR5VHlw ZSIsIGNvbXBhY3RfdHlwZT0ic2VjdXJpdHlfQ3Zzc1NldmVyaXR5VHlwZSIsIGFic3RyYWN0 PUZhbHNlKQ0KPiArY2xhc3Mgc2VjdXJpdHlfQ3Zzc1NldmVyaXR5VHlwZShTSEFDTE9iamVj dCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAg ICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICAgICAgImNyaXRpY2FsIjogImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0N2c3NTZXZlcml0eVR5cGUv Y3JpdGljYWwiLA0KPiArICAgICAgICAiaGlnaCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL2hpZ2giLA0KPiArICAgICAg ICAibG93IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0N2 c3NTZXZlcml0eVR5cGUvbG93IiwNCj4gKyAgICAgICAgIm1lZGl1bSI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL21lZGl1 bSIsDQo+ICsgICAgICAgICJub25lIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL1NlY3VyaXR5L0N2c3NTZXZlcml0eVR5cGUvbm9uZSIsDQo+ICsgICAgfQ0KPiArICAg ICMgV2hlbiBhIENWU1Mgc2NvcmUgaXMgYmV0d2VlbiA5LjAgLSAxMC4wDQo+ICsgICAgY3Jp dGljYWwgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvQ3Zz c1NldmVyaXR5VHlwZS9jcml0aWNhbCINCj4gKyAgICAjIFdoZW4gYSBDVlNTIHNjb3JlIGlz IGJldHdlZW4gNy4wIC0gOC45DQo+ICsgICAgaGlnaCA9ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL2hpZ2giDQo+ICsgICAg IyBXaGVuIGEgQ1ZTUyBzY29yZSBpcyBiZXR3ZWVuIDAgLSAzLjkNCj4gKyAgICBsb3cgPSAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvQ3Zzc1NldmVyaXR5 VHlwZS9sb3ciDQo+ICsgICAgIyBXaGVuIGEgQ1ZTUyBzY29yZSBpcyBiZXR3ZWVuIDQgLSA2 LjkNCj4gKyAgICBtZWRpdW0gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv U2VjdXJpdHkvQ3Zzc1NldmVyaXR5VHlwZS9tZWRpdW0iDQo+ICsgICAgIyBXaGVuIGEgQ1ZT UyBzY29yZSBpcyAwDQo+ICsgICAgbm9uZSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL25vbmUiDQo+ICsNCj4gKw0KPiAr IyBTcGVjaWZpZXMgdGhlIGV4cGxvaXQgY2F0YWxvZyB0eXBlLg0KPiArQHJlZ2lzdGVyKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9FeHBsb2l0Q2F0YWxv Z1R5cGUiLCBjb21wYWN0X3R5cGU9InNlY3VyaXR5X0V4cGxvaXRDYXRhbG9nVHlwZSIsIGFi c3RyYWN0PUZhbHNlKQ0KPiArY2xhc3Mgc2VjdXJpdHlfRXhwbG9pdENhdGFsb2dUeXBlKFNI QUNMT2JqZWN0KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklS SQ0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgICAgICAia2V2IjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0V4cGxvaXRDYXRhbG9n VHlwZS9rZXYiLA0KPiArICAgICAgICAib3RoZXIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvU2VjdXJpdHkvRXhwbG9pdENhdGFsb2dUeXBlL290aGVyIiwNCj4gKyAg ICB9DQo+ICsgICAgIyBDSVNBJ3MgS25vd24gRXhwbG9pdGVkIFZ1bG5lcmFiaWxpdHkgKEtF VikgQ2F0YWxvZw0KPiArICAgIGtldiA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9TZWN1cml0eS9FeHBsb2l0Q2F0YWxvZ1R5cGUva2V2Ig0KPiArICAgICMgT3RoZXIg ZXhwbG9pdCBjYXRhbG9ncw0KPiArICAgIG90aGVyID0gImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0V4cGxvaXRDYXRhbG9nVHlwZS9vdGhlciINCj4gKw0K PiArDQo+ICsjIFNwZWNpZmllcyB0aGUgU1NWQyBkZWNpc2lvbiB0eXBlLg0KPiArQHJlZ2lz dGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9Tc3ZjRGVj aXNpb25UeXBlIiwgY29tcGFjdF90eXBlPSJzZWN1cml0eV9Tc3ZjRGVjaXNpb25UeXBlIiwg YWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBzZWN1cml0eV9Tc3ZjRGVjaXNpb25UeXBlKFNI QUNMT2JqZWN0KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklS SQ0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgICAgICAiYWN0IjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1NzdmNEZWNpc2lvblR5 cGUvYWN0IiwNCj4gKyAgICAgICAgImF0dGVuZCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9TZWN1cml0eS9Tc3ZjRGVjaXNpb25UeXBlL2F0dGVuZCIsDQo+ICsgICAg ICAgICJ0cmFjayI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0 eS9Tc3ZjRGVjaXNpb25UeXBlL3RyYWNrIiwNCj4gKyAgICAgICAgInRyYWNrU3RhciI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9Tc3ZjRGVjaXNpb25U eXBlL3RyYWNrU3RhciIsDQo+ICsgICAgfQ0KPiArICAgICMgVGhlIHZ1bG5lcmFiaWxpdHkg cmVxdWlyZXMgYXR0ZW50aW9uIGZyb20gdGhlIG9yZ2FuaXphdGlvbidzIGludGVybmFsLCBz dXBlcnZpc29yeS1sZXZlbCBhbmQgbGVhZGVyc2hpcC1sZXZlbCBpbmRpdmlkdWFscy4gTmVj ZXNzYXJ5IGFjdGlvbnMgaW5jbHVkZSByZXF1ZXN0aW5nIGFzc2lzdGFuY2Ugb3IgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIHZ1bG5lcmFiaWxpdHksIGFzIHdlbGwgYXMgcHVibGlzaGluZyBh IG5vdGlmaWNhdGlvbiBlaXRoZXIgaW50ZXJuYWxseSBhbmQvb3IgZXh0ZXJuYWxseS4gVHlw aWNhbGx5LCBpbnRlcm5hbCBncm91cHMgd291bGQgbWVldCB0byBkZXRlcm1pbmUgdGhlIG92 ZXJhbGwgcmVzcG9uc2UgYW5kIHRoZW4gZXhlY3V0ZSBhZ3JlZWQgdXBvbiBhY3Rpb25zLiBD SVNBIHJlY29tbWVuZHMgcmVtZWRpYXRpbmcgQWN0IHZ1bG5lcmFiaWxpdGllcyBhcyBzb29u IGFzIHBvc3NpYmxlLg0KPiArICAgIGFjdCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9TZWN1cml0eS9Tc3ZjRGVjaXNpb25UeXBlL2FjdCINCj4gKyAgICAjIFRoZSB2 dWxuZXJhYmlsaXR5IHJlcXVpcmVzIGF0dGVudGlvbiBmcm9tIHRoZSBvcmdhbml6YXRpb24n cyBpbnRlcm5hbCwgc3VwZXJ2aXNvcnktbGV2ZWwgaW5kaXZpZHVhbHMuIE5lY2Vzc2FyeSBh Y3Rpb25zIGluY2x1ZGUgcmVxdWVzdGluZyBhc3Npc3RhbmNlIG9yIGluZm9ybWF0aW9uIGFi b3V0IHRoZSB2dWxuZXJhYmlsaXR5LCBhbmQgbWF5IGludm9sdmUgcHVibGlzaGluZyBhIG5v dGlmaWNhdGlvbiBlaXRoZXIgaW50ZXJuYWxseSBhbmQvb3IgZXh0ZXJuYWxseS4gQ0lTQSBy ZWNvbW1lbmRzIHJlbWVkaWF0aW5nIEF0dGVuZCB2dWxuZXJhYmlsaXRpZXMgc29vbmVyIHRo YW4gc3RhbmRhcmQgdXBkYXRlIHRpbWVsaW5lcy4NCj4gKyAgICBhdHRlbmQgPSAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvU3N2Y0RlY2lzaW9uVHlwZS9h dHRlbmQiDQo+ICsgICAgIyBUaGUgdnVsbmVyYWJpbGl0eSBkb2VzIG5vdCByZXF1aXJlIGFj dGlvbiBhdCB0aGlzIHRpbWUuIFRoZSBvcmdhbml6YXRpb24gd291bGQgY29udGludWUgdG8g dHJhY2sgdGhlIHZ1bG5lcmFiaWxpdHkgYW5kIHJlYXNzZXNzIGl0IGlmIG5ldyBpbmZvcm1h dGlvbiBiZWNvbWVzIGF2YWlsYWJsZS4gQ0lTQSByZWNvbW1lbmRzIHJlbWVkaWF0aW5nIFRy YWNrIHZ1bG5lcmFiaWxpdGllcyB3aXRoaW4gc3RhbmRhcmQgdXBkYXRlIHRpbWVsaW5lcy4N Cj4gKyAgICB0cmFjayA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1 cml0eS9Tc3ZjRGVjaXNpb25UeXBlL3RyYWNrIg0KPiArICAgICMgKCJUcmFjayoiIGluIHRo ZSBTU1ZDIHNwZWMpIFRoZSB2dWxuZXJhYmlsaXR5IGNvbnRhaW5zIHNwZWNpZmljIGNoYXJh Y3RlcmlzdGljcyB0aGF0IG1heSByZXF1aXJlIGNsb3NlciBtb25pdG9yaW5nIGZvciBjaGFu Z2VzLiBDSVNBIHJlY29tbWVuZHMgcmVtZWRpYXRpbmcgVHJhY2sqIHZ1bG5lcmFiaWxpdGll cyB3aXRoaW4gc3RhbmRhcmQgdXBkYXRlIHRpbWVsaW5lcy4NCj4gKyAgICB0cmFja1N0YXIg PSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvU3N2Y0RlY2lz aW9uVHlwZS90cmFja1N0YXIiDQo+ICsNCj4gKw0KPiArIyBTcGVjaWZpZXMgdGhlIFZFWCBq dXN0aWZpY2F0aW9uIHR5cGUuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1ZleEp1c3RpZmljYXRpb25UeXBlIiwgY29tcGFjdF90 eXBlPSJzZWN1cml0eV9WZXhKdXN0aWZpY2F0aW9uVHlwZSIsIGFic3RyYWN0PUZhbHNlKQ0K PiArY2xhc3Mgc2VjdXJpdHlfVmV4SnVzdGlmaWNhdGlvblR5cGUoU0hBQ0xPYmplY3QpOg0K PiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgTkFN RURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgICAgICJjb21wb25lbnROb3RQcmVzZW50Ijog Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1ZleEp1c3RpZmlj YXRpb25UeXBlL2NvbXBvbmVudE5vdFByZXNlbnQiLA0KPiArICAgICAgICAiaW5saW5lTWl0 aWdhdGlvbnNBbHJlYWR5RXhpc3QiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvU2VjdXJpdHkvVmV4SnVzdGlmaWNhdGlvblR5cGUvaW5saW5lTWl0aWdhdGlvbnNBbHJl YWR5RXhpc3QiLA0KPiArICAgICAgICAidnVsbmVyYWJsZUNvZGVDYW5ub3RCZUNvbnRyb2xs ZWRCeUFkdmVyc2FyeSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1 cml0eS9WZXhKdXN0aWZpY2F0aW9uVHlwZS92dWxuZXJhYmxlQ29kZUNhbm5vdEJlQ29udHJv bGxlZEJ5QWR2ZXJzYXJ5IiwNCj4gKyAgICAgICAgInZ1bG5lcmFibGVDb2RlTm90SW5FeGVj dXRlUGF0aCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9W ZXhKdXN0aWZpY2F0aW9uVHlwZS92dWxuZXJhYmxlQ29kZU5vdEluRXhlY3V0ZVBhdGgiLA0K PiArICAgICAgICAidnVsbmVyYWJsZUNvZGVOb3RQcmVzZW50IjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1ZleEp1c3RpZmljYXRpb25UeXBlL3Z1bG5l cmFibGVDb2RlTm90UHJlc2VudCIsDQo+ICsgICAgfQ0KPiArICAgICMgVGhlIHNvZnR3YXJl IGlzIG5vdCBhZmZlY3RlZCBiZWNhdXNlIHRoZSB2dWxuZXJhYmxlIGNvbXBvbmVudCBpcyBu b3QgaW4gdGhlIHByb2R1Y3QuDQo+ICsgICAgY29tcG9uZW50Tm90UHJlc2VudCA9ICJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9WZXhKdXN0aWZpY2F0aW9u VHlwZS9jb21wb25lbnROb3RQcmVzZW50Ig0KPiArICAgICMgQnVpbHQtaW4gaW5saW5lIGNv bnRyb2xzIG9yIG1pdGlnYXRpb25zIHByZXZlbnQgYW4gYWR2ZXJzYXJ5IGZyb20gbGV2ZXJh Z2luZyB0aGUgdnVsbmVyYWJpbGl0eS4NCj4gKyAgICBpbmxpbmVNaXRpZ2F0aW9uc0FscmVh ZHlFeGlzdCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9W ZXhKdXN0aWZpY2F0aW9uVHlwZS9pbmxpbmVNaXRpZ2F0aW9uc0FscmVhZHlFeGlzdCINCj4g KyAgICAjIFRoZSB2dWxuZXJhYmxlIGNvbXBvbmVudCBpcyBwcmVzZW50LCBhbmQgdGhlIGNv bXBvbmVudCBjb250YWlucyB0aGUgdnVsbmVyYWJsZSBjb2RlLiBIb3dldmVyLCB2dWxuZXJh YmxlIGNvZGUgaXMgdXNlZCBpbiBzdWNoIGEgd2F5IHRoYXQgYW4gYXR0YWNrZXIgY2Fubm90 IG1vdW50IGFueSBhbnRpY2lwYXRlZCBhdHRhY2suDQo+ICsgICAgdnVsbmVyYWJsZUNvZGVD YW5ub3RCZUNvbnRyb2xsZWRCeUFkdmVyc2FyeSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9TZWN1cml0eS9WZXhKdXN0aWZpY2F0aW9uVHlwZS92dWxuZXJhYmxlQ29k ZUNhbm5vdEJlQ29udHJvbGxlZEJ5QWR2ZXJzYXJ5Ig0KPiArICAgICMgVGhlIGFmZmVjdGVk IGNvZGUgaXMgbm90IHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBleGVjdXRpb24gb2YgdGhlIGNv ZGUsIGluY2x1ZGluZyBub24tYW50aWNpcGF0ZWQgc3RhdGVzIG9mIHRoZSBwcm9kdWN0Lg0K PiArICAgIHZ1bG5lcmFibGVDb2RlTm90SW5FeGVjdXRlUGF0aCA9ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9WZXhKdXN0aWZpY2F0aW9uVHlwZS92dWxu ZXJhYmxlQ29kZU5vdEluRXhlY3V0ZVBhdGgiDQo+ICsgICAgIyBUaGUgcHJvZHVjdCBpcyBu b3QgYWZmZWN0ZWQgYmVjYXVzZSB0aGUgY29kZSB1bmRlcmx5aW5nIHRoZSB2dWxuZXJhYmls aXR5IGlzIG5vdCBwcmVzZW50IGluIHRoZSBwcm9kdWN0Lg0KPiArICAgIHZ1bG5lcmFibGVD b2RlTm90UHJlc2VudCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1 cml0eS9WZXhKdXN0aWZpY2F0aW9uVHlwZS92dWxuZXJhYmxlQ29kZU5vdFByZXNlbnQiDQo+ ICsNCj4gKw0KPiArIyBBYnN0cmFjdCBhbmNlc3RvciBjbGFzcyBmb3IgYWxsIHZ1bG5lcmFi aWxpdHkgYXNzZXNzbWVudHMNCj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvU2VjdXJpdHkvVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAiLCBjb21w YWN0X3R5cGU9InNlY3VyaXR5X1Z1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwIiwgYWJzdHJh Y3Q9VHJ1ZSkNCj4gK2NsYXNzIHNlY3VyaXR5X1Z1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlw KFJlbGF0aW9uc2hpcCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2Rl T3JJUkkNCj4gKyAgICBJRF9BTElBUyA9ICJzcGR4SWQiDQo+ICsgICAgTkFNRURfSU5ESVZJ RFVBTFMgPSB7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAg ZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMpOg0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rl cl9wcm9wcygpDQo+ICsgICAgICAgICMgSWRlbnRpZmllcyB3aG8gb3Igd2hhdCBzdXBwbGll ZCB0aGUgYXJ0aWZhY3Qgb3IgVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXANCj4gKyAgICAg ICAgIyByZWZlcmVuY2VkIGJ5IHRoZSBFbGVtZW50Lg0KPiArICAgICAgICBjbHMuX2FkZF9w cm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJzdXBwbGllZEJ5IiwNCj4gKyAgICAgICAgICAg IE9iamVjdFByb3AoQWdlbnQsIEZhbHNlKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9zdXBwbGllZEJ5IiwNCj4gKyAgICAg ICAgICAgIGNvbXBhY3Q9InN1cHBsaWVkQnkiLA0KPiArICAgICAgICApDQo+ICsgICAgICAg ICMgU3BlY2lmaWVzIGFuIEVsZW1lbnQgY29udGFpbmVkIGluIGEgcGllY2Ugb2Ygc29mdHdh cmUgd2hlcmUgYSB2dWxuZXJhYmlsaXR5IHdhcw0KPiArICAgICAgICAjIGZvdW5kLg0KPiAr ICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJzZWN1cml0eV9h c3Nlc3NlZEVsZW1lbnQiLA0KPiArICAgICAgICAgICAgT2JqZWN0UHJvcChFbGVtZW50LCBG YWxzZSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL1NlY3VyaXR5L2Fzc2Vzc2VkRWxlbWVudCIsDQo+ICsgICAgICAgICAgICBjb21w YWN0PSJzZWN1cml0eV9hc3Nlc3NlZEVsZW1lbnQiLA0KPiArICAgICAgICApDQo+ICsgICAg ICAgICMgU3BlY2lmaWVzIGEgdGltZSB3aGVuIGEgdnVsbmVyYWJpbGl0eSBhc3Nlc3NtZW50 IHdhcyBtb2RpZmllZA0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAg ICAgICAgICJzZWN1cml0eV9tb2RpZmllZFRpbWUiLA0KPiArICAgICAgICAgICAgRGF0ZVRp bWVTdGFtcFByb3AocGF0dGVybj1yIl5cZFxkXGRcZC1cZFxkLVxkXGRUXGRcZDpcZFxkOlxk XGRaJCIsKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU2VjdXJpdHkvbW9kaWZpZWRUaW1lIiwNCj4gKyAgICAgICAgICAgIGNvbXBh Y3Q9InNlY3VyaXR5X21vZGlmaWVkVGltZSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAg IyBTcGVjaWZpZXMgdGhlIHRpbWUgd2hlbiBhIHZ1bG5lcmFiaWxpdHkgd2FzIHB1Ymxpc2hl ZC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAic2Vj dXJpdHlfcHVibGlzaGVkVGltZSIsDQo+ICsgICAgICAgICAgICBEYXRlVGltZVN0YW1wUHJv cChwYXR0ZXJuPXIiXlxkXGRcZFxkLVxkXGQtXGRcZFRcZFxkOlxkXGQ6XGRcZFokIiwpLA0K PiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9T ZWN1cml0eS9wdWJsaXNoZWRUaW1lIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InNlY3Vy aXR5X3B1Ymxpc2hlZFRpbWUiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgU3BlY2lm aWVkIHRoZSB0aW1lIGFuZCBkYXRlIHdoZW4gYSB2dWxuZXJhYmlsaXR5IHdhcyB3aXRoZHJh d24uDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNl Y3VyaXR5X3dpdGhkcmF3blRpbWUiLA0KPiArICAgICAgICAgICAgRGF0ZVRpbWVTdGFtcFBy b3AocGF0dGVybj1yIl5cZFxkXGRcZC1cZFxkLVxkXGRUXGRcZDpcZFxkOlxkXGRaJCIsKSwN Cj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv U2VjdXJpdHkvd2l0aGRyYXduVGltZSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzZWN1 cml0eV93aXRoZHJhd25UaW1lIiwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gKyMgQWJz dHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIGEgbGljZW5zZSBjb21iaW5hdGlvbiBjb25zaXN0 aW5nIG9mIG9uZSBvciBtb3JlDQo+ICsjIGxpY2Vuc2VzIChvcHRpb25hbGx5IGluY2x1ZGlu ZyBhZGRpdGlvbmFsIHRleHQpLCB3aGljaCBtYXkgYmUgY29tYmluZWQNCj4gKyMgYWNjb3Jk aW5nIHRvIHRoZSBTUERYIGxpY2Vuc2UgZXhwcmVzc2lvbiBzeW50YXguDQo+ICtAcmVnaXN0 ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NpbXBsZUxpY2Vuc2luZy9B bnlMaWNlbnNlSW5mbyIsIGNvbXBhY3RfdHlwZT0ic2ltcGxlbGljZW5zaW5nX0FueUxpY2Vu c2VJbmZvIiwgYWJzdHJhY3Q9VHJ1ZSkNCj4gK2NsYXNzIHNpbXBsZWxpY2Vuc2luZ19BbnlM aWNlbnNlSW5mbyhFbGVtZW50KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFu a05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9J TkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArIyBBbiBTUERYIEVsZW1l bnQgY29udGFpbmluZyBhbiBTUERYIGxpY2Vuc2UgZXhwcmVzc2lvbiBzdHJpbmcuDQo+ICtA cmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NpbXBsZUxpY2Vu c2luZy9MaWNlbnNlRXhwcmVzc2lvbiIsIGNvbXBhY3RfdHlwZT0ic2ltcGxlbGljZW5zaW5n X0xpY2Vuc2VFeHByZXNzaW9uIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBzaW1wbGVs aWNlbnNpbmdfTGljZW5zZUV4cHJlc3Npb24oc2ltcGxlbGljZW5zaW5nX0FueUxpY2Vuc2VJ bmZvKToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiAr ICAgIElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsN Cj4gKyAgICB9DQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lz dGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkN Cj4gKyAgICAgICAgIyBNYXBzIGEgTGljZW5zZVJlZiBvciBBZGRpdGlvblJlZiBzdHJpbmcg Zm9yIGEgQ3VzdG9tIExpY2Vuc2Ugb3IgYSBDdXN0b20NCj4gKyAgICAgICAgIyBMaWNlbnNl IEFkZGl0aW9uIHRvIGl0cyBVUkkgSUQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5 KA0KPiArICAgICAgICAgICAgInNpbXBsZWxpY2Vuc2luZ19jdXN0b21JZFRvVXJpIiwNCj4g KyAgICAgICAgICAgIExpc3RQcm9wKE9iamVjdFByb3AoRGljdGlvbmFyeUVudHJ5LCBGYWxz ZSkpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9TaW1wbGVMaWNlbnNpbmcvY3VzdG9tSWRUb1VyaSIsDQo+ICsgICAgICAgICAgICBj b21wYWN0PSJzaW1wbGVsaWNlbnNpbmdfY3VzdG9tSWRUb1VyaSIsDQo+ICsgICAgICAgICkN Cj4gKyAgICAgICAgIyBBIHN0cmluZyBpbiB0aGUgbGljZW5zZSBleHByZXNzaW9uIGZvcm1h dC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAic2lt cGxlbGljZW5zaW5nX2xpY2Vuc2VFeHByZXNzaW9uIiwNCj4gKyAgICAgICAgICAgIFN0cmlu Z1Byb3AoKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU2ltcGxlTGljZW5zaW5nL2xpY2Vuc2VFeHByZXNzaW9uIiwNCj4gKyAgICAg ICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic2ltcGxlbGlj ZW5zaW5nX2xpY2Vuc2VFeHByZXNzaW9uIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAj IFRoZSB2ZXJzaW9uIG9mIHRoZSBTUERYIExpY2Vuc2UgTGlzdCB1c2VkIGluIHRoZSBsaWNl bnNlIGV4cHJlc3Npb24uDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAg ICAgICAgICAgInNpbXBsZWxpY2Vuc2luZ19saWNlbnNlTGlzdFZlcnNpb24iLA0KPiArICAg ICAgICAgICAgU3RyaW5nUHJvcChwYXR0ZXJuPXIiXigwfFsxLTldXGQqKVwuKDB8WzEtOV1c ZCopXC4oMHxbMS05XVxkKikoPzotKCg/OjB8WzEtOV1cZCp8XGQqW2EtekEtWi1dWzAtOWEt ekEtWi1dKikoPzpcLig/OjB8WzEtOV1cZCp8XGQqW2EtekEtWi1dWzAtOWEtekEtWi1dKikp KikpPyg/OlwrKFswLTlhLXpBLVotXSsoPzpcLlswLTlhLXpBLVotXSspKikpPyQiLCksDQo+ ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1Np bXBsZUxpY2Vuc2luZy9saWNlbnNlTGlzdFZlcnNpb24iLA0KPiArICAgICAgICAgICAgY29t cGFjdD0ic2ltcGxlbGljZW5zaW5nX2xpY2Vuc2VMaXN0VmVyc2lvbiIsDQo+ICsgICAgICAg ICkNCj4gKw0KPiArDQo+ICsjIEEgbGljZW5zZSBvciBhZGRpdGlvbiB0aGF0IGlzIG5vdCBs aXN0ZWQgb24gdGhlIFNQRFggTGljZW5zZSBMaXN0Lg0KPiArQHJlZ2lzdGVyKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TaW1wbGVMaWNlbnNpbmcvU2ltcGxlTGljZW5z aW5nVGV4dCIsIGNvbXBhY3RfdHlwZT0ic2ltcGxlbGljZW5zaW5nX1NpbXBsZUxpY2Vuc2lu Z1RleHQiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIHNpbXBsZWxpY2Vuc2luZ19TaW1w bGVMaWNlbnNpbmdUZXh0KEVsZW1lbnQpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5k LkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0KPiArICAgIE5B TUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhv ZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIo KS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIElkZW50aWZpZXMgdGhlIGZ1bGwg dGV4dCBvZiBhIExpY2Vuc2Ugb3IgQWRkaXRpb24uDQo+ICsgICAgICAgIGNscy5fYWRkX3By b3BlcnR5KA0KPiArICAgICAgICAgICAgInNpbXBsZWxpY2Vuc2luZ19saWNlbnNlVGV4dCIs DQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NpbXBsZUxpY2Vuc2luZy9saWNlbnNl VGV4dCIsDQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAgICAgIGNv bXBhY3Q9InNpbXBsZWxpY2Vuc2luZ19saWNlbnNlVGV4dCIsDQo+ICsgICAgICAgICkNCj4g Kw0KPiArDQo+ICsjIEEgY2Fub25pY2FsLCB1bmlxdWUsIGltbXV0YWJsZSBpZGVudGlmaWVy DQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3 YXJlL0NvbnRlbnRJZGVudGlmaWVyIiwgY29tcGFjdF90eXBlPSJzb2Z0d2FyZV9Db250ZW50 SWRlbnRpZmllciIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3Mgc29mdHdhcmVfQ29udGVu dElkZW50aWZpZXIoSW50ZWdyaXR5TWV0aG9kKToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2Rl S2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiAr ICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJf cHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiAr ICAgICAgICAjIFNwZWNpZmllcyB0aGUgdHlwZSBvZiB0aGUgY29udGVudCBpZGVudGlmaWVy Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJzb2Z0 d2FyZV9jb250ZW50SWRlbnRpZmllclR5cGUiLA0KPiArICAgICAgICAgICAgRW51bVByb3Ao Ww0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL1NvZnR3YXJlL0NvbnRlbnRJZGVudGlmaWVyVHlwZS9naXRvaWQiLCAiZ2l0b2lk IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvQ29udGVudElkZW50aWZpZXJUeXBlL3N3aGlkIiwgInN3aGlk IiksDQo+ICsgICAgICAgICAgICAgICAgXSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL2NvbnRlbnRJZGVudGlmaWVy VHlwZSIsDQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAgICAgIGNv bXBhY3Q9InNvZnR3YXJlX2NvbnRlbnRJZGVudGlmaWVyVHlwZSIsDQo+ICsgICAgICAgICkN Cj4gKyAgICAgICAgIyBTcGVjaWZpZXMgdGhlIHZhbHVlIG9mIHRoZSBjb250ZW50IGlkZW50 aWZpZXIuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAg InNvZnR3YXJlX2NvbnRlbnRJZGVudGlmaWVyVmFsdWUiLA0KPiArICAgICAgICAgICAgQW55 VVJJUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Tb2Z0d2FyZS9jb250ZW50SWRlbnRpZmllclZhbHVlIiwNCj4gKyAgICAg ICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic29mdHdhcmVf Y29udGVudElkZW50aWZpZXJWYWx1ZSIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsj IFNwZWNpZmllcyB0aGUgdHlwZSBvZiBhIGNvbnRlbnQgaWRlbnRpZmllci4NCj4gK0ByZWdp c3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvQ29udGVu dElkZW50aWZpZXJUeXBlIiwgY29tcGFjdF90eXBlPSJzb2Z0d2FyZV9Db250ZW50SWRlbnRp ZmllclR5cGUiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIHNvZnR3YXJlX0NvbnRlbnRJ ZGVudGlmaWVyVHlwZShTSEFDTE9iamVjdCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtp bmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAg ICAgICAgImdpdG9pZCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0 d2FyZS9Db250ZW50SWRlbnRpZmllclR5cGUvZ2l0b2lkIiwNCj4gKyAgICAgICAgInN3aGlk IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL0NvbnRlbnRJ ZGVudGlmaWVyVHlwZS9zd2hpZCIsDQo+ICsgICAgfQ0KPiArICAgICMgR2l0b2lkIHN0YW5k cyBmb3IgW0dpdCBPYmplY3QgSURdKGh0dHBzOi8vZ2l0LXNjbS5jb20vYm9vay9lbi92Mi9H aXQtSW50ZXJuYWxzLUdpdC1PYmplY3RzKSBhbmQgYSBnaXRvaWQgb2YgdHlwZSBibG9iIGlz IGEgdW5pcXVlIGhhc2ggb2YgYSBiaW5hcnkgYXJ0aWZhY3QuIEEgZ2l0b2lkIG1heSByZXBy ZXNlbnQgdGhlIHNvZnR3YXJlIFtBcnRpZmFjdCBJRF0oaHR0cHM6Ly9naXRodWIuY29tL29t bmlib3Ivc3BlYy9ibG9iL21haW4vc3BlYy9TUEVDLm1kI2FydGlmYWN0LWlkKSBvciB0aGUg W09tbmlCT1IgSWRlbnRpZmllcl0oaHR0cHM6Ly9naXRodWIuY29tL29tbmlib3Ivc3BlYy9i bG9iL21haW4vc3BlYy9TUEVDLm1kI29tbmlib3ItaWRlbnRpZmllcikgZm9yIHRoZSBzb2Z0 d2FyZSBhcnRpZmFjdCdzIGFzc29jaWF0ZWQgW09tbmlCT1IgRG9jdW1lbnRdKGh0dHBzOi8v Z2l0aHViLmNvbS9vbW5pYm9yL3NwZWMvYmxvYi9tYWluL3NwZWMvU1BFQy5tZCNvbW5pYm9y LWRvY3VtZW50KS4NCj4gKyAgICBnaXRvaWQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvQ29udGVudElkZW50aWZpZXJUeXBlL2dpdG9pZCINCj4gKyAg ICAjIFNvZnRXYXJlIEhhc2ggSURlbnRpZmllciwgcGVyc2lzdGVudCBpbnRyaW5zaWMgaWRl bnRpZmllcnMgZm9yIGRpZ2l0YWwgYXJ0aWZhY3RzLiBUaGUgc3ludGF4IG9mIHRoZSBpZGVu dGlmaWVycyBpcyBkZWZpbmVkIGluIHRoZSBbU1dISUQgc3BlY2lmaWNhdGlvbl0oaHR0cHM6 Ly93d3cuc3doaWQub3JnL3NwZWNpZmljYXRpb24vdjEuMS80LlN5bnRheCkgYW5kIGluIHRo ZSBjYXNlIG9mIGZpbGVzcyB0aGV5IHR5cGljYWxseSBsb29rIGxpa2UgYHN3aDoxOmNudDo5 NGE5ZWQwMjRkMzg1OTc5MzYxODE1MmVhNTU5YTE2OGJiY2JiNWUyYC4NCj4gKyAgICBzd2hp ZCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Db250ZW50 SWRlbnRpZmllclR5cGUvc3doaWQiDQo+ICsNCj4gKw0KPiArIyBFbnVtZXJhdGlvbiBvZiB0 aGUgZGlmZmVyZW50IGtpbmRzIG9mIFNQRFggZmlsZS4NCj4gK0ByZWdpc3RlcigiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvRmlsZUtpbmRUeXBlIiwgY29t cGFjdF90eXBlPSJzb2Z0d2FyZV9GaWxlS2luZFR5cGUiLCBhYnN0cmFjdD1GYWxzZSkNCj4g K2NsYXNzIHNvZnR3YXJlX0ZpbGVLaW5kVHlwZShTSEFDTE9iamVjdCk6DQo+ICsgICAgTk9E RV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBOQU1FRF9JTkRJVklE VUFMUyA9IHsNCj4gKyAgICAgICAgImRpcmVjdG9yeSI6ICJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9GaWxlS2luZFR5cGUvZGlyZWN0b3J5IiwNCj4gKyAg ICAgICAgImZpbGUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdh cmUvRmlsZUtpbmRUeXBlL2ZpbGUiLA0KPiArICAgIH0NCj4gKyAgICAjIFRoZSBmaWxlIHJl cHJlc2VudHMgYSBkaXJlY3RvcnkgYW5kIGFsbCBjb250ZW50IHN0b3JlZCBpbiB0aGF0DQo+ ICsgICAgZGlyZWN0b3J5ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1Nv ZnR3YXJlL0ZpbGVLaW5kVHlwZS9kaXJlY3RvcnkiDQo+ICsgICAgIyBUaGUgZmlsZSByZXBy ZXNlbnRzIGEgc2luZ2xlIGZpbGUgKGRlZmF1bHQpLg0KPiArICAgIGZpbGUgPSAiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvRmlsZUtpbmRUeXBlL2ZpbGUi DQo+ICsNCj4gKw0KPiArIyBQcm92aWRlcyBhIHNldCBvZiB2YWx1ZXMgdG8gYmUgdXNlZCB0 byBkZXNjcmliZSB0aGUgY29tbW9uIHR5cGVzIG9mIFNCT01zIHRoYXQNCj4gKyMgdG9vbHMg bWF5IGNyZWF0ZS4NCj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvU29mdHdhcmUvU2JvbVR5cGUiLCBjb21wYWN0X3R5cGU9InNvZnR3YXJlX1Nib21U eXBlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBzb2Z0d2FyZV9TYm9tVHlwZShTSEFD TE9iamVjdCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkN Cj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICAgICAgImFuYWx5emVkIjog Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1Nib21UeXBlL2Fu YWx5emVkIiwNCj4gKyAgICAgICAgImJ1aWxkIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NvZnR3YXJlL1Nib21UeXBlL2J1aWxkIiwNCj4gKyAgICAgICAgImRlcGxv eWVkIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1Nib21U eXBlL2RlcGxveWVkIiwNCj4gKyAgICAgICAgImRlc2lnbiI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9kZXNpZ24iLA0KPiArICAgICAg ICAicnVudGltZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2Fy ZS9TYm9tVHlwZS9ydW50aW1lIiwNCj4gKyAgICAgICAgInNvdXJjZSI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9zb3VyY2UiLA0KPiAr ICAgIH0NCj4gKyAgICAjIFNCT00gZ2VuZXJhdGVkIHRocm91Z2ggYW5hbHlzaXMgb2YgYXJ0 aWZhY3RzIChlLmcuLCBleGVjdXRhYmxlcywgcGFja2FnZXMsIGNvbnRhaW5lcnMsIGFuZCB2 aXJ0dWFsIG1hY2hpbmUgaW1hZ2VzKSBhZnRlciBpdHMgYnVpbGQuIFN1Y2ggYW5hbHlzaXMg Z2VuZXJhbGx5IHJlcXVpcmVzIGEgdmFyaWV0eSBvZiBoZXVyaXN0aWNzLiBJbiBzb21lIGNv bnRleHRzLCB0aGlzIG1heSBhbHNvIGJlIHJlZmVycmVkIHRvIGFzIGEgIjNyZCBwYXJ0eSIg U0JPTS4NCj4gKyAgICBhbmFseXplZCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9hbmFseXplZCINCj4gKyAgICAjIFNCT00gZ2VuZXJh dGVkIGFzIHBhcnQgb2YgdGhlIHByb2Nlc3Mgb2YgYnVpbGRpbmcgdGhlIHNvZnR3YXJlIHRv IGNyZWF0ZSBhIHJlbGVhc2FibGUgYXJ0aWZhY3QgKGUuZy4sIGV4ZWN1dGFibGUgb3IgcGFj a2FnZSkgZnJvbSBkYXRhIHN1Y2ggYXMgc291cmNlIGZpbGVzLCBkZXBlbmRlbmNpZXMsIGJ1 aWx0IGNvbXBvbmVudHMsIGJ1aWxkIHByb2Nlc3MgZXBoZW1lcmFsIGRhdGEsIGFuZCBvdGhl ciBTQk9Ncy4NCj4gKyAgICBidWlsZCA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9idWlsZCINCj4gKyAgICAjIFNCT00gcHJvdmlkZXMg YW4gaW52ZW50b3J5IG9mIHNvZnR3YXJlIHRoYXQgaXMgcHJlc2VudCBvbiBhIHN5c3RlbS4g VGhpcyBtYXkgYmUgYW4gYXNzZW1ibHkgb2Ygb3RoZXIgU0JPTXMgdGhhdCBjb21iaW5lcyBh bmFseXNpcyBvZiBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGFuZCBleGFtaW5hdGlvbiBvZiBl eGVjdXRpb24gYmVoYXZpb3IgaW4gYSAocG90ZW50aWFsbHkgc2ltdWxhdGVkKSBkZXBsb3lt ZW50IGVudmlyb25tZW50Lg0KPiArICAgIGRlcGxveWVkID0gImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1Nib21UeXBlL2RlcGxveWVkIg0KPiArICAgICMg U0JPTSBvZiBpbnRlbmRlZCwgcGxhbm5lZCBzb2Z0d2FyZSBwcm9qZWN0IG9yIHByb2R1Y3Qg d2l0aCBpbmNsdWRlZCBjb21wb25lbnRzIChzb21lIG9mIHdoaWNoIG1heSBub3QgeWV0IGV4 aXN0KSBmb3IgYSBuZXcgc29mdHdhcmUgYXJ0aWZhY3QuDQo+ICsgICAgZGVzaWduID0gImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1Nib21UeXBlL2Rlc2ln biINCj4gKyAgICAjIFNCT00gZ2VuZXJhdGVkIHRocm91Z2ggaW5zdHJ1bWVudGluZyB0aGUg c3lzdGVtIHJ1bm5pbmcgdGhlIHNvZnR3YXJlLCB0byBjYXB0dXJlIG9ubHkgY29tcG9uZW50 cyBwcmVzZW50IGluIHRoZSBzeXN0ZW0sIGFzIHdlbGwgYXMgZXh0ZXJuYWwgY2FsbC1vdXRz IG9yIGR5bmFtaWNhbGx5IGxvYWRlZCBjb21wb25lbnRzLiBJbiBzb21lIGNvbnRleHRzLCB0 aGlzIG1heSBhbHNvIGJlIHJlZmVycmVkIHRvIGFzIGFuICJJbnN0cnVtZW50ZWQiIG9yICJE eW5hbWljIiBTQk9NLg0KPiArICAgIHJ1bnRpbWUgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvU29mdHdhcmUvU2JvbVR5cGUvcnVudGltZSINCj4gKyAgICAjIFNCT00g Y3JlYXRlZCBkaXJlY3RseSBmcm9tIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgc291 cmNlIGZpbGVzLCBhbmQgaW5jbHVkZWQgZGVwZW5kZW5jaWVzIHVzZWQgdG8gYnVpbGQgYW4g cHJvZHVjdCBhcnRpZmFjdC4NCj4gKyAgICBzb3VyY2UgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU2JvbVR5cGUvc291cmNlIg0KPiArDQo+ICsNCj4g KyMgUHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByaW1hcnkgcHVycG9zZSBvZiBh biBFbGVtZW50Lg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UiLCBjb21wYWN0X3R5cGU9InNvZnR3YXJl X1NvZnR3YXJlUHVycG9zZSIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3Mgc29mdHdhcmVf U29mdHdhcmVQdXJwb3NlKFNIQUNMT2JqZWN0KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2Rl S2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiAr ICAgICAgICAiYXBwbGljYXRpb24iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2FwcGxpY2F0aW9uIiwNCj4gKyAgICAgICAg ImFyY2hpdmUiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUv U29mdHdhcmVQdXJwb3NlL2FyY2hpdmUiLA0KPiArICAgICAgICAiYm9tIjogImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9ib20i LA0KPiArICAgICAgICAiY29uZmlndXJhdGlvbiI6ICJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvY29uZmlndXJhdGlvbiIsDQo+ ICsgICAgICAgICJjb250YWluZXIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2NvbnRhaW5lciIsDQo+ICsgICAgICAgICJk YXRhIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3 YXJlUHVycG9zZS9kYXRhIiwNCj4gKyAgICAgICAgImRldmljZSI6ICJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZGV2aWNlIiwN Cj4gKyAgICAgICAgImRldmljZURyaXZlciI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZGV2aWNlRHJpdmVyIiwNCj4gKyAg ICAgICAgImRpc2tJbWFnZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9T b2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZGlza0ltYWdlIiwNCj4gKyAgICAgICAgImRvY3Vt ZW50YXRpb24iOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUv U29mdHdhcmVQdXJwb3NlL2RvY3VtZW50YXRpb24iLA0KPiArICAgICAgICAiZXZpZGVuY2Ui OiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQ dXJwb3NlL2V2aWRlbmNlIiwNCj4gKyAgICAgICAgImV4ZWN1dGFibGUiOiAiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2V4ZWN1 dGFibGUiLA0KPiArICAgICAgICAiZmlsZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZmlsZSIsDQo+ICsgICAgICAgICJm aWxlc3lzdGVtSW1hZ2UiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29m dHdhcmUvU29mdHdhcmVQdXJwb3NlL2ZpbGVzeXN0ZW1JbWFnZSIsDQo+ICsgICAgICAgICJm aXJtd2FyZSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9T b2Z0d2FyZVB1cnBvc2UvZmlybXdhcmUiLA0KPiArICAgICAgICAiZnJhbWV3b3JrIjogImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9z ZS9mcmFtZXdvcmsiLA0KPiArICAgICAgICAiaW5zdGFsbCI6ICJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvaW5zdGFsbCIsDQo+ ICsgICAgICAgICJsaWJyYXJ5IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9saWJyYXJ5IiwNCj4gKyAgICAgICAgIm1hbmlm ZXN0IjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3 YXJlUHVycG9zZS9tYW5pZmVzdCIsDQo+ICsgICAgICAgICJtb2RlbCI6ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvbW9kZWwi LA0KPiArICAgICAgICAibW9kdWxlIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9tb2R1bGUiLA0KPiArICAgICAgICAib3Bl cmF0aW5nU3lzdGVtIjogImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3 YXJlL1NvZnR3YXJlUHVycG9zZS9vcGVyYXRpbmdTeXN0ZW0iLA0KPiArICAgICAgICAib3Ro ZXIiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdh cmVQdXJwb3NlL290aGVyIiwNCj4gKyAgICAgICAgInBhdGNoIjogImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9wYXRjaCIsDQo+ ICsgICAgICAgICJwbGF0Zm9ybSI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvcGxhdGZvcm0iLA0KPiArICAgICAgICAicmVx dWlyZW1lbnQiOiAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUv U29mdHdhcmVQdXJwb3NlL3JlcXVpcmVtZW50IiwNCj4gKyAgICAgICAgInNvdXJjZSI6ICJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBv c2Uvc291cmNlIiwNCj4gKyAgICAgICAgInNwZWNpZmljYXRpb24iOiAiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL3NwZWNpZmlj YXRpb24iLA0KPiArICAgICAgICAidGVzdCI6ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvdGVzdCIsDQo+ICsgICAgfQ0KPiAr ICAgICMgdGhlIEVsZW1lbnQgaXMgYSBzb2Z0d2FyZSBhcHBsaWNhdGlvbg0KPiArICAgIGFw cGxpY2F0aW9uID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJl L1NvZnR3YXJlUHVycG9zZS9hcHBsaWNhdGlvbiINCj4gKyAgICAjIHRoZSBFbGVtZW50IGlz IGFuIGFyY2hpdmVkIGNvbGxlY3Rpb24gb2Ygb25lIG9yIG1vcmUgZmlsZXMgKC50YXIsIC56 aXAsIGV0YykNCj4gKyAgICBhcmNoaXZlID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9hcmNoaXZlIg0KPiArICAgICMgRWxl bWVudCBpcyBhIGJpbGwgb2YgbWF0ZXJpYWxzDQo+ICsgICAgYm9tID0gImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9ib20iDQo+ ICsgICAgIyBFbGVtZW50IGlzIGNvbmZpZ3VyYXRpb24gZGF0YQ0KPiArICAgIGNvbmZpZ3Vy YXRpb24gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29m dHdhcmVQdXJwb3NlL2NvbmZpZ3VyYXRpb24iDQo+ICsgICAgIyB0aGUgRWxlbWVudCBpcyBh IGNvbnRhaW5lciBpbWFnZSB3aGljaCBjYW4gYmUgdXNlZCBieSBhIGNvbnRhaW5lciBydW50 aW1lIGFwcGxpY2F0aW9uDQo+ICsgICAgY29udGFpbmVyID0gImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9jb250YWluZXIiDQo+ ICsgICAgIyBFbGVtZW50IGlzIGRhdGENCj4gKyAgICBkYXRhID0gImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kYXRhIg0KPiAr ICAgICMgdGhlIEVsZW1lbnQgcmVmZXJzIHRvIGEgY2hpcHNldCwgcHJvY2Vzc29yLCBvciBl bGVjdHJvbmljIGJvYXJkDQo+ICsgICAgZGV2aWNlID0gImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kZXZpY2UiDQo+ICsgICAg IyBFbGVtZW50IHJlcHJlc2VudHMgc29mdHdhcmUgdGhhdCBjb250cm9scyBoYXJkd2FyZSBk ZXZpY2VzDQo+ICsgICAgZGV2aWNlRHJpdmVyID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kZXZpY2VEcml2ZXIiDQo+ICsg ICAgIyB0aGUgRWxlbWVudCByZWZlcnMgdG8gYSBkaXNrIGltYWdlIHRoYXQgY2FuIGJlIHdy aXR0ZW4gdG8gYSBkaXNrLCBib290ZWQgaW4gYSBWTSwgZXRjLiBBIGRpc2sgaW1hZ2UgdHlw aWNhbGx5IGNvbnRhaW5zIG1vc3Qgb3IgYWxsIG9mIHRoZSBjb21wb25lbnRzIG5lY2Vzc2Fy eSB0byBib290LCBzdWNoIGFzIGJvb3Rsb2FkZXJzLCBrZXJuZWxzLCBmaXJtd2FyZSwgdXNl cnNwYWNlLCBldGMuDQo+ICsgICAgZGlza0ltYWdlID0gImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kaXNrSW1hZ2UiDQo+ICsg ICAgIyBFbGVtZW50IGlzIGRvY3VtZW50YXRpb24NCj4gKyAgICBkb2N1bWVudGF0aW9uID0g Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVy cG9zZS9kb2N1bWVudGF0aW9uIg0KPiArICAgICMgdGhlIEVsZW1lbnQgaXMgdGhlIGV2aWRl bmNlIHRoYXQgYSBzcGVjaWZpY2F0aW9uIG9yIHJlcXVpcmVtZW50IGhhcyBiZWVuIGZ1bGZp bGxlZA0KPiArICAgIGV2aWRlbmNlID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9ldmlkZW5jZSINCj4gKyAgICAjIEVsZW1l bnQgaXMgYW4gQXJ0aWZhY3QgdGhhdCBjYW4gYmUgcnVuIG9uIGEgY29tcHV0ZXINCj4gKyAg ICBleGVjdXRhYmxlID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3 YXJlL1NvZnR3YXJlUHVycG9zZS9leGVjdXRhYmxlIg0KPiArICAgICMgdGhlIEVsZW1lbnQg aXMgYSBzaW5nbGUgZmlsZSB3aGljaCBjYW4gYmUgaW5kZXBlbmRlbnRseSBkaXN0cmlidXRl ZCAoY29uZmlndXJhdGlvbiBmaWxlLCBzdGF0aWNhbGx5IGxpbmtlZCBiaW5hcnksIEt1YmVy bmV0ZXMgZGVwbG95bWVudCwgZXRjKQ0KPiArICAgIGZpbGUgPSAiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2ZpbGUiDQo+ICsg ICAgIyB0aGUgRWxlbWVudCBpcyBhIGZpbGUgc3lzdGVtIGltYWdlIHRoYXQgY2FuIGJlIHdy aXR0ZW4gdG8gYSBkaXNrIChvciB2aXJ0dWFsKSBwYXJ0aXRpb24NCj4gKyAgICBmaWxlc3lz dGVtSW1hZ2UgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUv U29mdHdhcmVQdXJwb3NlL2ZpbGVzeXN0ZW1JbWFnZSINCj4gKyAgICAjIHRoZSBFbGVtZW50 IHByb3ZpZGVzIGxvdyBsZXZlbCBjb250cm9sIG92ZXIgYSBkZXZpY2UncyBoYXJkd2FyZQ0K PiArICAgIGZpcm13YXJlID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1Nv ZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9maXJtd2FyZSINCj4gKyAgICAjIHRoZSBFbGVtZW50 IGlzIGEgc29mdHdhcmUgZnJhbWV3b3JrDQo+ICsgICAgZnJhbWV3b3JrID0gImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9mcmFt ZXdvcmsiDQo+ICsgICAgIyB0aGUgRWxlbWVudCBpcyB1c2VkIHRvIGluc3RhbGwgc29mdHdh cmUgb24gZGlzaw0KPiArICAgIGluc3RhbGwgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2luc3RhbGwiDQo+ICsgICAgIyB0 aGUgRWxlbWVudCBpcyBhIHNvZnR3YXJlIGxpYnJhcnkNCj4gKyAgICBsaWJyYXJ5ID0gImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9z ZS9saWJyYXJ5Ig0KPiArICAgICMgdGhlIEVsZW1lbnQgaXMgYSBzb2Z0d2FyZSBtYW5pZmVz dA0KPiArICAgIG1hbmlmZXN0ID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9tYW5pZmVzdCINCj4gKyAgICAjIHRoZSBFbGVt ZW50IGlzIGEgbWFjaGluZSBsZWFybmluZyBvciBhcnRpZmljaWFsIGludGVsbGlnZW5jZSBt b2RlbA0KPiArICAgIG1vZGVsID0gImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9tb2RlbCINCj4gKyAgICAjIHRoZSBFbGVtZW50 IGlzIGEgbW9kdWxlIG9mIGEgcGllY2Ugb2Ygc29mdHdhcmUNCj4gKyAgICBtb2R1bGUgPSAi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJw b3NlL21vZHVsZSINCj4gKyAgICAjIHRoZSBFbGVtZW50IGlzIGFuIG9wZXJhdGluZyBzeXN0 ZW0NCj4gKyAgICBvcGVyYXRpbmdTeXN0ZW0gPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL29wZXJhdGluZ1N5c3RlbSINCj4g KyAgICAjIHRoZSBFbGVtZW50IGRvZXNuJ3QgZml0IGludG8gYW55IG9mIHRoZSBvdGhlciBj YXRlZ29yaWVzDQo+ICsgICAgb3RoZXIgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL290aGVyIg0KPiArICAgICMgRWxlbWVu dCBjb250YWlucyBhIHNldCBvZiBjaGFuZ2VzIHRvIHVwZGF0ZSwgZml4LCBvciBpbXByb3Zl IGFub3RoZXIgRWxlbWVudA0KPiArICAgIHBhdGNoID0gImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9wYXRjaCINCj4gKyAgICAj IEVsZW1lbnQgcmVwcmVzZW50cyBhIHJ1bnRpbWUgZW52aXJvbm1lbnQNCj4gKyAgICBwbGF0 Zm9ybSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0 d2FyZVB1cnBvc2UvcGxhdGZvcm0iDQo+ICsgICAgIyB0aGUgRWxlbWVudCBwcm92aWRlcyBh IHJlcXVpcmVtZW50IG5lZWRlZCBhcyBpbnB1dCBmb3IgYW5vdGhlciBFbGVtZW50DQo+ICsg ICAgcmVxdWlyZW1lbnQgPSAiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29m dHdhcmUvU29mdHdhcmVQdXJwb3NlL3JlcXVpcmVtZW50Ig0KPiArICAgICMgdGhlIEVsZW1l bnQgaXMgYSBzaW5nbGUgb3IgYSBjb2xsZWN0aW9uIG9mIHNvdXJjZSBmaWxlcw0KPiArICAg IHNvdXJjZSA9ICJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9T b2Z0d2FyZVB1cnBvc2Uvc291cmNlIg0KPiArICAgICMgdGhlIEVsZW1lbnQgaXMgYSBwbGFu LCBndWlkZWxpbmUgb3Igc3RyYXRlZ3kgaG93IHRvIGNyZWF0ZSwgcGVyZm9ybSBvciBhbmFs eXNlIGFuIGFwcGxpY2F0aW9uDQo+ICsgICAgc3BlY2lmaWNhdGlvbiA9ICJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uvc3BlY2lm aWNhdGlvbiINCj4gKyAgICAjIFRoZSBFbGVtZW50IGlzIGEgdGVzdCB1c2VkIHRvIHZlcmlm eSBmdW5jdGlvbmFsaXR5IG9uIGFuIHNvZnR3YXJlIGVsZW1lbnQNCj4gKyAgICB0ZXN0ID0g Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVy cG9zZS90ZXN0Ig0KPiArDQo+ICsNCj4gKyMgQ2xhc3MgdGhhdCBkZXNjcmliZXMgYSBidWls ZCBpbnN0YW5jZSBvZiBzb2Z0d2FyZS9hcnRpZmFjdHMuDQo+ICtAcmVnaXN0ZXIoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0J1aWxkL0J1aWxkIiwgY29tcGFjdF90eXBl PSJidWlsZF9CdWlsZCIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgYnVpbGRfQnVpbGQo RWxlbWVudCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkN Cj4gKyAgICBJRF9BTElBUyA9ICJzcGR4SWQiDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMg PSB7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVmIF9y ZWdpc3Rlcl9wcm9wcyhjbHMpOg0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rlcl9wcm9w cygpDQo+ICsgICAgICAgICMgUHJvcGVydHkgdGhhdCBkZXNjcmliZXMgdGhlIHRpbWUgYXQg d2hpY2ggYSBidWlsZCBzdG9wcy4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ ICsgICAgICAgICAgICAiYnVpbGRfYnVpbGRFbmRUaW1lIiwNCj4gKyAgICAgICAgICAgIERh dGVUaW1lU3RhbXBQcm9wKHBhdHRlcm49ciJeXGRcZFxkXGQtXGRcZC1cZFxkVFxkXGQ6XGRc ZDpcZFxkWiQiLCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0J1aWxkL2J1aWxkRW5kVGltZSIsDQo+ICsgICAgICAgICAgICBjb21w YWN0PSJidWlsZF9idWlsZEVuZFRpbWUiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMg QSBidWlsZElkIGlzIGEgbG9jYWxseSB1bmlxdWUgaWRlbnRpZmllciB1c2VkIGJ5IGEgYnVp bGRlciB0byBpZGVudGlmeSBhIHVuaXF1ZQ0KPiArICAgICAgICAjIGluc3RhbmNlIG9mIGEg YnVpbGQgcHJvZHVjZWQgYnkgaXQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0K PiArICAgICAgICAgICAgImJ1aWxkX2J1aWxkSWQiLA0KPiArICAgICAgICAgICAgU3RyaW5n UHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9CdWlsZC9idWlsZElkIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImJ1aWxk X2J1aWxkSWQiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgUHJvcGVydHkgZGVzY3Jp YmluZyB0aGUgc3RhcnQgdGltZSBvZiBhIGJ1aWxkLg0KPiArICAgICAgICBjbHMuX2FkZF9w cm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJidWlsZF9idWlsZFN0YXJ0VGltZSIsDQo+ICsg ICAgICAgICAgICBEYXRlVGltZVN0YW1wUHJvcChwYXR0ZXJuPXIiXlxkXGRcZFxkLVxkXGQt XGRcZFRcZFxkOlxkXGQ6XGRcZFokIiwpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9CdWlsZC9idWlsZFN0YXJ0VGltZSIsDQo+ICsg ICAgICAgICAgICBjb21wYWN0PSJidWlsZF9idWlsZFN0YXJ0VGltZSIsDQo+ICsgICAgICAg ICkNCj4gKyAgICAgICAgIyBBIGJ1aWxkVHlwZSBpcyBhIGhpbnQgdGhhdCBpcyB1c2VkIHRv IGluZGljYXRlIHRoZSB0b29sY2hhaW4sIHBsYXRmb3JtLCBvcg0KPiArICAgICAgICAjIGlu ZnJhc3RydWN0dXJlIHRoYXQgdGhlIGJ1aWxkIHdhcyBpbnZva2VkIG9uLg0KPiArICAgICAg ICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJidWlsZF9idWlsZFR5cGUi LA0KPiArICAgICAgICAgICAgQW55VVJJUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9CdWlsZC9idWlsZFR5cGUiLA0KPiAr ICAgICAgICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJidWls ZF9idWlsZFR5cGUiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgUHJvcGVydHkgdGhh dCBkZXNjcmliZXMgdGhlIGRpZ2VzdCBvZiB0aGUgYnVpbGQgY29uZmlndXJhdGlvbiBmaWxl IHVzZWQgdG8NCj4gKyAgICAgICAgIyBpbnZva2UgYSBidWlsZC4NCj4gKyAgICAgICAgY2xz Ll9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiYnVpbGRfY29uZmlnU291cmNlRGln ZXN0IiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKE9iamVjdFByb3AoSGFzaCwgRmFsc2Up KSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQnVpbGQvY29uZmlnU291cmNlRGlnZXN0IiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9 ImJ1aWxkX2NvbmZpZ1NvdXJjZURpZ2VzdCIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAg IyBQcm9wZXJ0eSBkZXNjcmliZXMgdGhlIGludm9jYXRpb24gZW50cnlwb2ludCBvZiBhIGJ1 aWxkLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJi dWlsZF9jb25maWdTb3VyY2VFbnRyeXBvaW50IiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9w KFN0cmluZ1Byb3AoKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0J1aWxkL2NvbmZpZ1NvdXJjZUVudHJ5cG9pbnQiLA0KPiArICAg ICAgICAgICAgY29tcGFjdD0iYnVpbGRfY29uZmlnU291cmNlRW50cnlwb2ludCIsDQo+ICsg ICAgICAgICkNCj4gKyAgICAgICAgIyBQcm9wZXJ0eSB0aGF0IGRlc2NyaWJlcyB0aGUgVVJJ IG9mIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIHNvdXJjZSBmaWxlLg0KPiArICAgICAgICBj bHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJidWlsZF9jb25maWdTb3VyY2VV cmkiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoQW55VVJJUHJvcCgpKSwNCj4gKyAgICAg ICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQnVpbGQvY29u ZmlnU291cmNlVXJpIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImJ1aWxkX2NvbmZpZ1Nv dXJjZVVyaSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBQcm9wZXJ0eSBkZXNjcmli aW5nIHRoZSBzZXNzaW9uIGluIHdoaWNoIGEgYnVpbGQgaXMgaW52b2tlZC4NCj4gKyAgICAg ICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiYnVpbGRfZW52aXJvbm1l bnQiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoT2JqZWN0UHJvcChEaWN0aW9uYXJ5RW50 cnksIEZhbHNlKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0J1aWxkL2Vudmlyb25tZW50IiwNCj4gKyAgICAgICAgICAgIGNvbXBh Y3Q9ImJ1aWxkX2Vudmlyb25tZW50IiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFBy b3BlcnR5IGRlc2NyaWJpbmcgdGhlIHBhcmFtZXRlcnMgdXNlZCBpbiBhbiBpbnN0YW5jZSBv ZiBhIGJ1aWxkLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAg ICAgICJidWlsZF9wYXJhbWV0ZXJzIiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKE9iamVj dFByb3AoRGljdGlvbmFyeUVudHJ5LCBGYWxzZSkpLA0KPiArICAgICAgICAgICAgaXJpPSJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9CdWlsZC9wYXJhbWV0ZXJzIiwNCj4g KyAgICAgICAgICAgIGNvbXBhY3Q9ImJ1aWxkX3BhcmFtZXRlcnMiLA0KPiArICAgICAgICAp DQo+ICsNCj4gKw0KPiArIyBBZ2VudCByZXByZXNlbnRzIGFueXRoaW5nIHdpdGggdGhlIHBv dGVudGlhbCB0byBhY3Qgb24gYSBzeXN0ZW0uDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvQWdlbnQiLCBjb21wYWN0X3R5cGU9IkFnZW50 IiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBBZ2VudChFbGVtZW50KToNCj4gKyAgICBO T0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFTID0g InNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsN Cj4gKw0KPiArIyBBbiBhc3NlcnRpb24gbWFkZSBpbiByZWxhdGlvbiB0byBvbmUgb3IgbW9y ZSBlbGVtZW50cy4NCj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvQ29yZS9Bbm5vdGF0aW9uIiwgY29tcGFjdF90eXBlPSJBbm5vdGF0aW9uIiwgYWJz dHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBBbm5vdGF0aW9uKEVsZW1lbnQpOg0KPiArICAgIE5P REVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAi c3BkeElkIg0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0K PiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToN Cj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIERl c2NyaWJlcyB0aGUgdHlwZSBvZiBhbm5vdGF0aW9uLg0KPiArICAgICAgICBjbHMuX2FkZF9w cm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJhbm5vdGF0aW9uVHlwZSIsDQo+ICsgICAgICAg ICAgICBFbnVtUHJvcChbDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9Bbm5vdGF0aW9uVHlwZS9vdGhlciIsICJvdGhl ciIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvQW5ub3RhdGlvblR5cGUvcmV2aWV3IiwgInJldmlldyIpLA0KPiAr ICAgICAgICAgICAgICAgIF0pLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL2Fubm90YXRpb25UeXBlIiwNCj4gKyAgICAgICAg ICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iYW5ub3RhdGlvblR5 cGUiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgU3BlY2lmaWVzIHRoZSBtZWRpYSB0 eXBlIG9mIGFuIEVsZW1lbnQgb3IgUHJvcGVydHkuDQo+ICsgICAgICAgIGNscy5fYWRkX3By b3BlcnR5KA0KPiArICAgICAgICAgICAgImNvbnRlbnRUeXBlIiwNCj4gKyAgICAgICAgICAg IFN0cmluZ1Byb3AocGF0dGVybj1yIl5bXlwvXStcL1teXC9dKyQiLCksDQo+ICsgICAgICAg ICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvY29udGVu dFR5cGUiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iY29udGVudFR5cGUiLA0KPiArICAg ICAgICApDQo+ICsgICAgICAgICMgQ29tbWVudGFyeSBvbiBhbiBhc3NlcnRpb24gdGhhdCBh biBhbm5vdGF0b3IgaGFzIG1hZGUuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0K PiArICAgICAgICAgICAgInN0YXRlbWVudCIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9w KCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0NvcmUvc3RhdGVtZW50IiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InN0YXRlbWVu dCIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBBbiBFbGVtZW50IGFuIGFubm90YXRv ciBoYXMgbWFkZSBhbiBhc3NlcnRpb24gYWJvdXQuDQo+ICsgICAgICAgIGNscy5fYWRkX3By b3BlcnR5KA0KPiArICAgICAgICAgICAgInN1YmplY3QiLA0KPiArICAgICAgICAgICAgT2Jq ZWN0UHJvcChFbGVtZW50LCBUcnVlKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9zdWJqZWN0IiwNCj4gKyAgICAgICAgICAg IG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic3ViamVjdCIsDQo+ICsg ICAgICAgICkNCj4gKw0KPiArDQo+ICsjIEEgZGlzdGluY3QgYXJ0aWNsZSBvciB1bml0IHdp dGhpbiB0aGUgZGlnaXRhbCBkb21haW4uDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvQXJ0aWZhY3QiLCBjb21wYWN0X3R5cGU9IkFydGlm YWN0IiwgYWJzdHJhY3Q9VHJ1ZSkNCj4gK2NsYXNzIEFydGlmYWN0KEVsZW1lbnQpOg0KPiAr ICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJ QVMgPSAic3BkeElkIg0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0N Cj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMo Y2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAg ICAjIFNwZWNpZmllcyB0aGUgdGltZSBhbiBhcnRpZmFjdCB3YXMgYnVpbHQuDQo+ICsgICAg ICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImJ1aWx0VGltZSIsDQo+ ICsgICAgICAgICAgICBEYXRlVGltZVN0YW1wUHJvcChwYXR0ZXJuPXIiXlxkXGRcZFxkLVxk XGQtXGRcZFRcZFxkOlxkXGQ6XGRcZFokIiwpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL2J1aWx0VGltZSIsDQo+ICsgICAg ICAgICAgICBjb21wYWN0PSJidWlsdFRpbWUiLA0KPiArICAgICAgICApDQo+ICsgICAgICAg ICMgSWRlbnRpZmllcyBmcm9tIHdoZXJlIG9yIHdob20gdGhlIEVsZW1lbnQgb3JpZ2luYWxs eSBjYW1lLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAg ICJvcmlnaW5hdGVkQnkiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoT2JqZWN0UHJvcChB Z2VudCwgRmFsc2UpKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvQ29yZS9vcmlnaW5hdGVkQnkiLA0KPiArICAgICAgICAgICAgY29t cGFjdD0ib3JpZ2luYXRlZEJ5IiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFNwZWNp ZmllcyB0aGUgdGltZSBhbiBhcnRpZmFjdCB3YXMgcmVsZWFzZWQuDQo+ICsgICAgICAgIGNs cy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInJlbGVhc2VUaW1lIiwNCj4gKyAg ICAgICAgICAgIERhdGVUaW1lU3RhbXBQcm9wKHBhdHRlcm49ciJeXGRcZFxkXGQtXGRcZC1c ZFxkVFxkXGQ6XGRcZDpcZFxkWiQiLCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvcmVsZWFzZVRpbWUiLA0KPiArICAgICAg ICAgICAgY29tcGFjdD0icmVsZWFzZVRpbWUiLA0KPiArICAgICAgICApDQo+ICsgICAgICAg ICMgVGhlIG5hbWUgb2YgYSByZWxldmFudCBzdGFuZGFyZCB0aGF0IG1heSBhcHBseSB0byBh biBhcnRpZmFjdC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAg ICAgICAic3RhbmRhcmROYW1lIiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKFN0cmluZ1By b3AoKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvc3RhbmRhcmROYW1lIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InN0 YW5kYXJkTmFtZSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBJZGVudGlmaWVzIHdo byBvciB3aGF0IHN1cHBsaWVkIHRoZSBhcnRpZmFjdCBvciBWdWxuQXNzZXNzbWVudFJlbGF0 aW9uc2hpcA0KPiArICAgICAgICAjIHJlZmVyZW5jZWQgYnkgdGhlIEVsZW1lbnQuDQo+ICsg ICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInN1cHBsaWVkQnki LA0KPiArICAgICAgICAgICAgT2JqZWN0UHJvcChBZ2VudCwgRmFsc2UpLA0KPiArICAgICAg ICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL3N1cHBs aWVkQnkiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic3VwcGxpZWRCeSIsDQo+ICsgICAg ICAgICkNCj4gKyAgICAgICAgIyBTcGVjaWZpZXMgdGhlIGxldmVsIG9mIHN1cHBvcnQgYXNz b2NpYXRlZCB3aXRoIGFuIGFydGlmYWN0Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0 eSgNCj4gKyAgICAgICAgICAgICJzdXBwb3J0TGV2ZWwiLA0KPiArICAgICAgICAgICAgTGlz dFByb3AoRW51bVByb3AoWw0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3VwcG9ydFR5cGUvZGVwbG95ZWQiLCAiZGVw bG95ZWQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBlL2RldmVsb3BtZW50IiwgImRldmVsb3Bt ZW50IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9TdXBwb3J0VHlwZS9lbmRPZlN1cHBvcnQiLCAiZW5kT2ZTdXBw b3J0IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9TdXBwb3J0VHlwZS9saW1pdGVkU3VwcG9ydCIsICJsaW1pdGVk U3VwcG9ydCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0NvcmUvU3VwcG9ydFR5cGUvbm9Bc3NlcnRpb24iLCAibm9Bc3Nl cnRpb24iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBlL25vU3VwcG9ydCIsICJub1N1cHBvcnQi KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL1N1cHBvcnRUeXBlL3N1cHBvcnQiLCAic3VwcG9ydCIpLA0KPiArICAg ICAgICAgICAgICAgIF0pKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvQ29yZS9zdXBwb3J0TGV2ZWwiLA0KPiArICAgICAgICAgICAg Y29tcGFjdD0ic3VwcG9ydExldmVsIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFNw ZWNpZmllcyB1bnRpbCB3aGVuIHRoZSBhcnRpZmFjdCBjYW4gYmUgdXNlZCBiZWZvcmUgaXRz IHVzYWdlIG5lZWRzIHRvIGJlDQo+ICsgICAgICAgICMgcmVhc3Nlc3NlZC4NCj4gKyAgICAg ICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAidmFsaWRVbnRpbFRpbWUi LA0KPiArICAgICAgICAgICAgRGF0ZVRpbWVTdGFtcFByb3AocGF0dGVybj1yIl5cZFxkXGRc ZC1cZFxkLVxkXGRUXGRcZDpcZFxkOlxkXGRaJCIsKSwNCj4gKyAgICAgICAgICAgIGlyaT0i aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS92YWxpZFVudGlsVGltZSIs DQo+ICsgICAgICAgICAgICBjb21wYWN0PSJ2YWxpZFVudGlsVGltZSIsDQo+ICsgICAgICAg ICkNCj4gKw0KPiArDQo+ICsjIEEgY29sbGVjdGlvbiBvZiBFbGVtZW50cyB0aGF0IGhhdmUg YSBzaGFyZWQgY29udGV4dC4NCj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9CdW5kbGUiLCBjb21wYWN0X3R5cGU9IkJ1bmRsZSIsIGFic3Ry YWN0PUZhbHNlKQ0KPiArY2xhc3MgQnVuZGxlKEVsZW1lbnRDb2xsZWN0aW9uKToNCj4gKyAg ICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFT ID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNs cyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkNCj4gKyAgICAgICAg IyBHaXZlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY2lyY3Vtc3RhbmNlcyBvciB1bmlmeWlu ZyBwcm9wZXJ0aWVzDQo+ICsgICAgICAgICMgdGhhdCBFbGVtZW50cyBvZiB0aGUgYnVuZGxl IGhhdmUgYmVlbiBhc3NlbWJsZWQgdW5kZXIuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3Bl cnR5KA0KPiArICAgICAgICAgICAgImNvbnRleHQiLA0KPiArICAgICAgICAgICAgU3RyaW5n UHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Db3JlL2NvbnRleHQiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iY29udGV4 dCIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIEEgbWF0aGVtYXRpY2FsbHkgY2Fs Y3VsYXRlZCByZXByZXNlbnRhdGlvbiBvZiBhIGdyb3VwaW5nIG9mIGRhdGEuDQo+ICtAcmVn aXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaCIsIGNv bXBhY3RfdHlwZT0iSGFzaCIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgSGFzaChJbnRl Z3JpdHlNZXRob2QpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9y SVJJDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiArDQo+ICsg ICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMpOg0KPiAr ICAgICAgICBzdXBlcigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAgICAgICMgU3BlY2lm aWVzIHRoZSBhbGdvcml0aG0gdXNlZCBmb3IgY2FsY3VsYXRpbmcgdGhlIGhhc2ggdmFsdWUu DQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImFsZ29y aXRobSIsDQo+ICsgICAgICAgICAgICBFbnVtUHJvcChbDQo+ICsgICAgICAgICAgICAgICAg ICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3Jp dGhtL2JsYWtlMmIyNTYiLCAiYmxha2UyYjI1NiIpLA0KPiArICAgICAgICAgICAgICAgICAg ICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRo bS9ibGFrZTJiMzg0IiwgImJsYWtlMmIzODQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAg KCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0v Ymxha2UyYjUxMiIsICJibGFrZTJiNTEyIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL2Js YWtlMyIsICJibGFrZTMiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vY3J5c3RhbHNEaWxp dGhpdW0iLCAiY3J5c3RhbHNEaWxpdGhpdW0iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAg KCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0v Y3J5c3RhbHNLeWJlciIsICJjcnlzdGFsc0t5YmVyIiksDQo+ICsgICAgICAgICAgICAgICAg ICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3Jp dGhtL2ZhbGNvbiIsICJmYWxjb24iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vbWQyIiwg Im1kMiIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9tZDQiLCAibWQ0IiksDQo+ICsgICAg ICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29y ZS9IYXNoQWxnb3JpdGhtL21kNSIsICJtZDUiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAg KCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0v bWQ2IiwgIm1kNiIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9vdGhlciIsICJvdGhlciIp LA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRobS9zaGExIiwgInNoYTEiKSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hh c2hBbGdvcml0aG0vc2hhMjI0IiwgInNoYTIyNCIpLA0KPiArICAgICAgICAgICAgICAgICAg ICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvSGFzaEFsZ29yaXRo bS9zaGEyNTYiLCAic2hhMjU2IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9IYXNoQWxnb3JpdGhtL3NoYTM4NCIs ICJzaGEzODQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hhM18yMjQiLCAic2hhM18y MjQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hhM18yNTYiLCAic2hhM18yNTYiKSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Db3JlL0hhc2hBbGdvcml0aG0vc2hhM18zODQiLCAic2hhM18zODQiKSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL0hhc2hBbGdvcml0aG0vc2hhM181MTIiLCAic2hhM181MTIiKSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0hh c2hBbGdvcml0aG0vc2hhNTEyIiwgInNoYTUxMiIpLA0KPiArICAgICAgICAgICAgICAgIF0p LA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9Db3JlL2FsZ29yaXRobSIsDQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAg ICAgICAgICAgIGNvbXBhY3Q9ImFsZ29yaXRobSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgIyBUaGUgcmVzdWx0IG9mIGFwcGx5aW5nIGEgaGFzaCBhbGdvcml0aG0gdG8gYW4gRWxl bWVudC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAi aGFzaFZhbHVlIiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3AoKSwNCj4gKyAgICAgICAg ICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9oYXNoVmFs dWUiLA0KPiArICAgICAgICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21w YWN0PSJoYXNoVmFsdWUiLA0KPiArICAgICAgICApDQo+ICsNCj4gKw0KPiArIyBQcm92aWRl IGNvbnRleHQgZm9yIGEgcmVsYXRpb25zaGlwIHRoYXQgb2NjdXJzIGluIHRoZSBsaWZlY3lj bGUuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvTGlmZWN5Y2xlU2NvcGVkUmVsYXRpb25zaGlwIiwgY29tcGFjdF90eXBlPSJMaWZlY3lj bGVTY29wZWRSZWxhdGlvbnNoaXAiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIExpZmVj eWNsZVNjb3BlZFJlbGF0aW9uc2hpcChSZWxhdGlvbnNoaXApOg0KPiArICAgIE5PREVfS0lO RCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElk Ig0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAg IEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAg ICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIENhcHR1cmUg dGhlIHNjb3BlIG9mIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgcmVsYXRpb25zaGlw IGJldHdlZW4gZWxlbWVudHMuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiAr ICAgICAgICAgICAgInNjb3BlIiwNCj4gKyAgICAgICAgICAgIEVudW1Qcm9wKFsNCj4gKyAg ICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9D b3JlL0xpZmVjeWNsZVNjb3BlVHlwZS9idWlsZCIsICJidWlsZCIpLA0KPiArICAgICAgICAg ICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvTGlm ZWN5Y2xlU2NvcGVUeXBlL2Rlc2lnbiIsICJkZXNpZ24iKSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL0xpZmVjeWNs ZVNjb3BlVHlwZS9kZXZlbG9wbWVudCIsICJkZXZlbG9wbWVudCIpLA0KPiArICAgICAgICAg ICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvTGlm ZWN5Y2xlU2NvcGVUeXBlL290aGVyIiwgIm90aGVyIiksDQo+ICsgICAgICAgICAgICAgICAg ICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9MaWZlY3ljbGVT Y29wZVR5cGUvcnVudGltZSIsICJydW50aW1lIiksDQo+ICsgICAgICAgICAgICAgICAgICAg ICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9MaWZlY3ljbGVTY29w ZVR5cGUvdGVzdCIsICJ0ZXN0IiksDQo+ICsgICAgICAgICAgICAgICAgXSksDQo+ICsgICAg ICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvc2Nv cGUiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic2NvcGUiLA0KPiArICAgICAgICApDQo+ ICsNCj4gKw0KPiArIyBBIGdyb3VwIG9mIHBlb3BsZSB3aG8gd29yayB0b2dldGhlciBpbiBh biBvcmdhbml6ZWQgd2F5IGZvciBhIHNoYXJlZCBwdXJwb3NlLg0KPiArQHJlZ2lzdGVyKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL09yZ2FuaXphdGlvbiIsIGNv bXBhY3RfdHlwZT0iT3JnYW5pemF0aW9uIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBP cmdhbml6YXRpb24oQWdlbnQpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5r Tm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0KPiArICAgIE5BTUVEX0lO RElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArDQo+ICsjIEFuIGluZGl2aWR1YWwg aHVtYW4gYmVpbmcuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL0NvcmUvUGVyc29uIiwgY29tcGFjdF90eXBlPSJQZXJzb24iLCBhYnN0cmFjdD1G YWxzZSkNCj4gK2NsYXNzIFBlcnNvbihBZ2VudCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9k ZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBJRF9BTElBUyA9ICJzcGR4SWQiDQo+ICsg ICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gKyMgQSBz b2Z0d2FyZSBhZ2VudC4NCj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvQ29yZS9Tb2Z0d2FyZUFnZW50IiwgY29tcGFjdF90eXBlPSJTb2Z0d2FyZUFn ZW50IiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBTb2Z0d2FyZUFnZW50KEFnZW50KToN Cj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIElE X0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAg ICB9DQo+ICsNCj4gKw0KPiArIyBQb3J0aW9uIG9mIGFuIEFueUxpY2Vuc2VJbmZvIHJlcHJl c2VudGluZyBhIHNldCBvZiBsaWNlbnNpbmcgaW5mb3JtYXRpb24NCj4gKyMgd2hlcmUgYWxs IGVsZW1lbnRzIGFwcGx5Lg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9FeHBhbmRlZExpY2Vuc2luZy9Db25qdW5jdGl2ZUxpY2Vuc2VTZXQiLCBj b21wYWN0X3R5cGU9ImV4cGFuZGVkbGljZW5zaW5nX0Nvbmp1bmN0aXZlTGljZW5zZVNldCIs IGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgZXhwYW5kZWRsaWNlbnNpbmdfQ29uanVuY3Rp dmVMaWNlbnNlU2V0KHNpbXBsZWxpY2Vuc2luZ19BbnlMaWNlbnNlSW5mbyk6DQo+ICsgICAg Tk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBJRF9BTElBUyA9 ICJzcGR4SWQiDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMp Og0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAgICAgICMg QSBsaWNlbnNlIGV4cHJlc3Npb24gcGFydGljaXBhdGluZyBpbiBhIGxpY2Vuc2Ugc2V0Lg0K PiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJleHBhbmRl ZGxpY2Vuc2luZ19tZW1iZXIiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoT2JqZWN0UHJv cChzaW1wbGVsaWNlbnNpbmdfQW55TGljZW5zZUluZm8sIEZhbHNlKSksDQo+ICsgICAgICAg ICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4cGFuZGVkTGlj ZW5zaW5nL21lbWJlciIsDQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MiwNCj4gKyAgICAg ICAgICAgIGNvbXBhY3Q9ImV4cGFuZGVkbGljZW5zaW5nX21lbWJlciIsDQo+ICsgICAgICAg ICkNCj4gKw0KPiArDQo+ICsjIEEgbGljZW5zZSBhZGRpdGlvbiB0aGF0IGlzIG5vdCBsaXN0 ZWQgb24gdGhlIFNQRFggRXhjZXB0aW9ucyBMaXN0Lg0KPiArQHJlZ2lzdGVyKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBhbmRlZExpY2Vuc2luZy9DdXN0b21MaWNl bnNlQWRkaXRpb24iLCBjb21wYWN0X3R5cGU9ImV4cGFuZGVkbGljZW5zaW5nX0N1c3RvbUxp Y2Vuc2VBZGRpdGlvbiIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgZXhwYW5kZWRsaWNl bnNpbmdfQ3VzdG9tTGljZW5zZUFkZGl0aW9uKGV4cGFuZGVkbGljZW5zaW5nX0xpY2Vuc2VB ZGRpdGlvbik6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkN Cj4gKyAgICBJRF9BTElBUyA9ICJzcGR4SWQiDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMg PSB7DQo+ICsgICAgfQ0KPiArDQo+ICsNCj4gKyMgUG9ydGlvbiBvZiBhbiBBbnlMaWNlbnNl SW5mbyByZXByZXNlbnRpbmcgYSBzZXQgb2YgbGljZW5zaW5nIGluZm9ybWF0aW9uIHdoZXJl DQo+ICsjIG9ubHkgb25lIG9mIHRoZSBlbGVtZW50cyBhcHBsaWVzLg0KPiArQHJlZ2lzdGVy KCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBhbmRlZExpY2Vuc2luZy9E aXNqdW5jdGl2ZUxpY2Vuc2VTZXQiLCBjb21wYWN0X3R5cGU9ImV4cGFuZGVkbGljZW5zaW5n X0Rpc2p1bmN0aXZlTGljZW5zZVNldCIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgZXhw YW5kZWRsaWNlbnNpbmdfRGlzanVuY3RpdmVMaWNlbnNlU2V0KHNpbXBsZWxpY2Vuc2luZ19B bnlMaWNlbnNlSW5mbyk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2Rl T3JJUkkNCj4gKyAgICBJRF9BTElBUyA9ICJzcGR4SWQiDQo+ICsgICAgTkFNRURfSU5ESVZJ RFVBTFMgPSB7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAg ZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMpOg0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rl cl9wcm9wcygpDQo+ICsgICAgICAgICMgQSBsaWNlbnNlIGV4cHJlc3Npb24gcGFydGljaXBh dGluZyBpbiBhIGxpY2Vuc2Ugc2V0Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgN Cj4gKyAgICAgICAgICAgICJleHBhbmRlZGxpY2Vuc2luZ19tZW1iZXIiLA0KPiArICAgICAg ICAgICAgTGlzdFByb3AoT2JqZWN0UHJvcChzaW1wbGVsaWNlbnNpbmdfQW55TGljZW5zZUlu Zm8sIEZhbHNlKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0V4cGFuZGVkTGljZW5zaW5nL21lbWJlciIsDQo+ICsgICAgICAgICAg ICBtaW5fY291bnQ9MiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImV4cGFuZGVkbGljZW5z aW5nX21lbWJlciIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIEFic3RyYWN0IGNs YXNzIHJlcHJlc2VudGluZyBhIExpY2Vuc2Ugb3IgYW4gT3JMYXRlck9wZXJhdG9yLg0KPiAr QHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBhbmRlZExp Y2Vuc2luZy9FeHRlbmRhYmxlTGljZW5zZSIsIGNvbXBhY3RfdHlwZT0iZXhwYW5kZWRsaWNl bnNpbmdfRXh0ZW5kYWJsZUxpY2Vuc2UiLCBhYnN0cmFjdD1UcnVlKQ0KPiArY2xhc3MgZXhw YW5kZWRsaWNlbnNpbmdfRXh0ZW5kYWJsZUxpY2Vuc2Uoc2ltcGxlbGljZW5zaW5nX0FueUxp Y2Vuc2VJbmZvKToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklS SQ0KPiArICAgIElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFM UyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArIyBBIGNvbmNyZXRlIHN1YmNsYXNzIG9m IEFueUxpY2Vuc2VJbmZvIHVzZWQgYnkgSW5kaXZpZHVhbHMgaW4gdGhlDQo+ICsjIEV4cGFu ZGVkTGljZW5zaW5nIHByb2ZpbGUuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL0V4cGFuZGVkTGljZW5zaW5nL0luZGl2aWR1YWxMaWNlbnNpbmdJ bmZvIiwgY29tcGFjdF90eXBlPSJleHBhbmRlZGxpY2Vuc2luZ19JbmRpdmlkdWFsTGljZW5z aW5nSW5mbyIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgZXhwYW5kZWRsaWNlbnNpbmdf SW5kaXZpZHVhbExpY2Vuc2luZ0luZm8oc2ltcGxlbGljZW5zaW5nX0FueUxpY2Vuc2VJbmZv KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAg IElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4g KyAgICB9DQo+ICsNCj4gKw0KPiArIyBBYnN0cmFjdCBjbGFzcyBmb3IgdGhlIHBvcnRpb24g b2YgYW4gQW55TGljZW5zZUluZm8gcmVwcmVzZW50aW5nIGEgbGljZW5zZS4NCj4gK0ByZWdp c3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRXhwYW5kZWRMaWNlbnNp bmcvTGljZW5zZSIsIGNvbXBhY3RfdHlwZT0iZXhwYW5kZWRsaWNlbnNpbmdfTGljZW5zZSIs IGFic3RyYWN0PVRydWUpDQo+ICtjbGFzcyBleHBhbmRlZGxpY2Vuc2luZ19MaWNlbnNlKGV4 cGFuZGVkbGljZW5zaW5nX0V4dGVuZGFibGVMaWNlbnNlKToNCj4gKyAgICBOT0RFX0tJTkQg PSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFTID0gInNwZHhJZCIN Cj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBA Y2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ICsgICAg ICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkNCj4gKyAgICAgICAgIyBTcGVjaWZpZXMg d2hldGhlciBhIGxpY2Vuc2Ugb3IgYWRkaXRpb25hbCB0ZXh0IGlkZW50aWZpZXIgaGFzIGJl ZW4gbWFya2VkIGFzDQo+ICsgICAgICAgICMgZGVwcmVjYXRlZC4NCj4gKyAgICAgICAgY2xz Ll9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZXhwYW5kZWRsaWNlbnNpbmdfaXNE ZXByZWNhdGVkTGljZW5zZUlkIiwNCj4gKyAgICAgICAgICAgIEJvb2xlYW5Qcm9wKCksDQo+ ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4 cGFuZGVkTGljZW5zaW5nL2lzRGVwcmVjYXRlZExpY2Vuc2VJZCIsDQo+ICsgICAgICAgICAg ICBjb21wYWN0PSJleHBhbmRlZGxpY2Vuc2luZ19pc0RlcHJlY2F0ZWRMaWNlbnNlSWQiLA0K PiArICAgICAgICApDQo+ICsgICAgICAgICMgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIExpY2Vu c2UgaXMgbGlzdGVkIGFzIGZyZWUgYnkgdGhlDQo+ICsgICAgICAgICMgW0ZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiAoRlNGKV0oaHR0cHM6Ly9mc2Yub3JnKS4NCj4gKyAgICAgICAgY2xz Ll9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZXhwYW5kZWRsaWNlbnNpbmdfaXNG c2ZMaWJyZSIsDQo+ICsgICAgICAgICAgICBCb29sZWFuUHJvcCgpLA0KPiArICAgICAgICAg ICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBhbmRlZExpY2Vu c2luZy9pc0ZzZkxpYnJlIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImV4cGFuZGVkbGlj ZW5zaW5nX2lzRnNmTGlicmUiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgU3BlY2lm aWVzIHdoZXRoZXIgdGhlIExpY2Vuc2UgaXMgbGlzdGVkIGFzIGFwcHJvdmVkIGJ5IHRoZQ0K PiArICAgICAgICAjIFtPcGVuIFNvdXJjZSBJbml0aWF0aXZlIChPU0kpXShodHRwczovL29w ZW5zb3VyY2Uub3JnKS4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAg ICAgICAgICAiZXhwYW5kZWRsaWNlbnNpbmdfaXNPc2lBcHByb3ZlZCIsDQo+ICsgICAgICAg ICAgICBCb29sZWFuUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBhbmRlZExpY2Vuc2luZy9pc09zaUFwcHJvdmVkIiwN Cj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImV4cGFuZGVkbGljZW5zaW5nX2lzT3NpQXBwcm92 ZWQiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgSWRlbnRpZmllcyBhbGwgdGhlIHRl eHQgYW5kIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIGxpY2Vuc2UgaW4gdGhlIGxpY2Vu c2UNCj4gKyAgICAgICAgIyBYTUwgZm9ybWF0Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9w ZXJ0eSgNCj4gKyAgICAgICAgICAgICJleHBhbmRlZGxpY2Vuc2luZ19saWNlbnNlWG1sIiwN Cj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3AoKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRXhwYW5kZWRMaWNlbnNpbmcvbGljZW5z ZVhtbCIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJleHBhbmRlZGxpY2Vuc2luZ19saWNl bnNlWG1sIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0aGUgbGlj ZW5zZUlkIHRoYXQgaXMgcHJlZmVycmVkIHRvIGJlIHVzZWQgaW4gcGxhY2Ugb2YgYSBkZXBy ZWNhdGVkDQo+ICsgICAgICAgICMgTGljZW5zZSBvciBMaWNlbnNlQWRkaXRpb24uDQo+ICsg ICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImV4cGFuZGVkbGlj ZW5zaW5nX29ic29sZXRlZEJ5IiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3AoKSwNCj4g KyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRXhw YW5kZWRMaWNlbnNpbmcvb2Jzb2xldGVkQnkiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0i ZXhwYW5kZWRsaWNlbnNpbmdfb2Jzb2xldGVkQnkiLA0KPiArICAgICAgICApDQo+ICsgICAg ICAgICMgQ29udGFpbnMgYSBVUkwgd2hlcmUgdGhlIExpY2Vuc2Ugb3IgTGljZW5zZUFkZGl0 aW9uIGNhbiBiZSBmb3VuZCBpbiB1c2UuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5 KA0KPiArICAgICAgICAgICAgImV4cGFuZGVkbGljZW5zaW5nX3NlZUFsc28iLA0KPiArICAg ICAgICAgICAgTGlzdFByb3AoQW55VVJJUHJvcCgpKSwNCj4gKyAgICAgICAgICAgIGlyaT0i aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRXhwYW5kZWRMaWNlbnNpbmcvc2Vl QWxzbyIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJleHBhbmRlZGxpY2Vuc2luZ19zZWVB bHNvIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFByb3ZpZGVzIGEgTGljZW5zZSBh dXRob3IncyBwcmVmZXJyZWQgdGV4dCB0byBpbmRpY2F0ZSB0aGF0IGEgZmlsZSBpcyBjb3Zl cmVkDQo+ICsgICAgICAgICMgYnkgdGhlIExpY2Vuc2UuDQo+ICsgICAgICAgIGNscy5fYWRk X3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImV4cGFuZGVkbGljZW5zaW5nX3N0YW5kYXJk TGljZW5zZUhlYWRlciIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAg ICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4cGFuZGVk TGljZW5zaW5nL3N0YW5kYXJkTGljZW5zZUhlYWRlciIsDQo+ICsgICAgICAgICAgICBjb21w YWN0PSJleHBhbmRlZGxpY2Vuc2luZ19zdGFuZGFyZExpY2Vuc2VIZWFkZXIiLA0KPiArICAg ICAgICApDQo+ICsgICAgICAgICMgSWRlbnRpZmllcyB0aGUgZnVsbCB0ZXh0IG9mIGEgTGlj ZW5zZSwgaW4gU1BEWCB0ZW1wbGF0aW5nIGZvcm1hdC4NCj4gKyAgICAgICAgY2xzLl9hZGRf cHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZXhwYW5kZWRsaWNlbnNpbmdfc3RhbmRhcmRM aWNlbnNlVGVtcGxhdGUiLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAg ICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBhbmRl ZExpY2Vuc2luZy9zdGFuZGFyZExpY2Vuc2VUZW1wbGF0ZSIsDQo+ICsgICAgICAgICAgICBj b21wYWN0PSJleHBhbmRlZGxpY2Vuc2luZ19zdGFuZGFyZExpY2Vuc2VUZW1wbGF0ZSIsDQo+ ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBJZGVudGlmaWVzIHRoZSBmdWxsIHRleHQgb2Yg YSBMaWNlbnNlIG9yIEFkZGl0aW9uLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgN Cj4gKyAgICAgICAgICAgICJzaW1wbGVsaWNlbnNpbmdfbGljZW5zZVRleHQiLA0KPiArICAg ICAgICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TaW1wbGVMaWNlbnNpbmcvbGljZW5zZVRleHQiLA0K PiArICAgICAgICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJz aW1wbGVsaWNlbnNpbmdfbGljZW5zZVRleHQiLA0KPiArICAgICAgICApDQo+ICsNCj4gKw0K PiArIyBBIGxpY2Vuc2UgdGhhdCBpcyBsaXN0ZWQgb24gdGhlIFNQRFggTGljZW5zZSBMaXN0 Lg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBh bmRlZExpY2Vuc2luZy9MaXN0ZWRMaWNlbnNlIiwgY29tcGFjdF90eXBlPSJleHBhbmRlZGxp Y2Vuc2luZ19MaXN0ZWRMaWNlbnNlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBleHBh bmRlZGxpY2Vuc2luZ19MaXN0ZWRMaWNlbnNlKGV4cGFuZGVkbGljZW5zaW5nX0xpY2Vuc2Up Og0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAg SURfQUxJQVMgPSAic3BkeElkIg0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiAr ICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJf cHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiAr ICAgICAgICAjIFNwZWNpZmllcyB0aGUgU1BEWCBMaWNlbnNlIExpc3QgdmVyc2lvbiBpbiB3 aGljaCB0aGlzIGxpY2Vuc2Ugb3IgZXhjZXB0aW9uDQo+ICsgICAgICAgICMgaWRlbnRpZmll ciB3YXMgZGVwcmVjYXRlZC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsg ICAgICAgICAgICAiZXhwYW5kZWRsaWNlbnNpbmdfZGVwcmVjYXRlZFZlcnNpb24iLA0KPiAr ICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBhbmRlZExpY2Vuc2luZy9kZXByZWNhdGVk VmVyc2lvbiIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJleHBhbmRlZGxpY2Vuc2luZ19k ZXByZWNhdGVkVmVyc2lvbiIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBTcGVjaWZp ZXMgdGhlIFNQRFggTGljZW5zZSBMaXN0IHZlcnNpb24gaW4gd2hpY2ggdGhpcyBMaXN0ZWRM aWNlbnNlIG9yDQo+ICsgICAgICAgICMgTGlzdGVkTGljZW5zZUV4Y2VwdGlvbiBpZGVudGlm aWVyIHdhcyBmaXJzdCBhZGRlZC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ ICsgICAgICAgICAgICAiZXhwYW5kZWRsaWNlbnNpbmdfbGlzdFZlcnNpb25BZGRlZCIsDQo+ ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4cGFuZGVkTGljZW5zaW5nL2xpc3RWZXJz aW9uQWRkZWQiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iZXhwYW5kZWRsaWNlbnNpbmdf bGlzdFZlcnNpb25BZGRlZCIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIFBvcnRp b24gb2YgYW4gQW55TGljZW5zZUluZm8gcmVwcmVzZW50aW5nIHRoaXMgdmVyc2lvbiwgb3Ig YW55IGxhdGVyIHZlcnNpb24sDQo+ICsjIG9mIHRoZSBpbmRpY2F0ZWQgTGljZW5zZS4NCj4g K0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRXhwYW5kZWRM aWNlbnNpbmcvT3JMYXRlck9wZXJhdG9yIiwgY29tcGFjdF90eXBlPSJleHBhbmRlZGxpY2Vu c2luZ19PckxhdGVyT3BlcmF0b3IiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIGV4cGFu ZGVkbGljZW5zaW5nX09yTGF0ZXJPcGVyYXRvcihleHBhbmRlZGxpY2Vuc2luZ19FeHRlbmRh YmxlTGljZW5zZSk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJ UkkNCj4gKyAgICBJRF9BTElBUyA9ICJzcGR4SWQiDQo+ICsgICAgTkFNRURfSU5ESVZJRFVB TFMgPSB7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVm IF9yZWdpc3Rlcl9wcm9wcyhjbHMpOg0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rlcl9w cm9wcygpDQo+ICsgICAgICAgICMgQSBMaWNlbnNlIHBhcnRpY2lwYXRpbmcgaW4gYW4gJ29y IGxhdGVyJyBtb2RlbC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAg ICAgICAgICAiZXhwYW5kZWRsaWNlbnNpbmdfc3ViamVjdExpY2Vuc2UiLA0KPiArICAgICAg ICAgICAgT2JqZWN0UHJvcChleHBhbmRlZGxpY2Vuc2luZ19MaWNlbnNlLCBUcnVlKSwNCj4g KyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRXhw YW5kZWRMaWNlbnNpbmcvc3ViamVjdExpY2Vuc2UiLA0KPiArICAgICAgICAgICAgbWluX2Nv dW50PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJleHBhbmRlZGxpY2Vuc2luZ19zdWJq ZWN0TGljZW5zZSIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIFBvcnRpb24gb2Yg YW4gQW55TGljZW5zZUluZm8gcmVwcmVzZW50aW5nIGEgTGljZW5zZSB3aGljaCBoYXMgYWRk aXRpb25hbA0KPiArIyB0ZXh0IGFwcGxpZWQgdG8gaXQuDQo+ICtAcmVnaXN0ZXIoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4cGFuZGVkTGljZW5zaW5nL1dpdGhBZGRp dGlvbk9wZXJhdG9yIiwgY29tcGFjdF90eXBlPSJleHBhbmRlZGxpY2Vuc2luZ19XaXRoQWRk aXRpb25PcGVyYXRvciIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3MgZXhwYW5kZWRsaWNl bnNpbmdfV2l0aEFkZGl0aW9uT3BlcmF0b3Ioc2ltcGxlbGljZW5zaW5nX0FueUxpY2Vuc2VJ bmZvKToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiAr ICAgIElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsN Cj4gKyAgICB9DQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lz dGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkN Cj4gKyAgICAgICAgIyBBIExpY2Vuc2VBZGRpdGlvbiBwYXJ0aWNpcGF0aW5nIGluIGEgJ3dp dGggYWRkaXRpb24nIG1vZGVsLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4g KyAgICAgICAgICAgICJleHBhbmRlZGxpY2Vuc2luZ19zdWJqZWN0QWRkaXRpb24iLA0KPiAr ICAgICAgICAgICAgT2JqZWN0UHJvcChleHBhbmRlZGxpY2Vuc2luZ19MaWNlbnNlQWRkaXRp b24sIFRydWUpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9FeHBhbmRlZExpY2Vuc2luZy9zdWJqZWN0QWRkaXRpb24iLA0KPiArICAg ICAgICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJleHBhbmRl ZGxpY2Vuc2luZ19zdWJqZWN0QWRkaXRpb24iLA0KPiArICAgICAgICApDQo+ICsgICAgICAg ICMgQSBMaWNlbnNlIHBhcnRpY2lwYXRpbmcgaW4gYSAnd2l0aCBhZGRpdGlvbicgbW9kZWwu DQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImV4cGFu ZGVkbGljZW5zaW5nX3N1YmplY3RFeHRlbmRhYmxlTGljZW5zZSIsDQo+ICsgICAgICAgICAg ICBPYmplY3RQcm9wKGV4cGFuZGVkbGljZW5zaW5nX0V4dGVuZGFibGVMaWNlbnNlLCBUcnVl KSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvRXhwYW5kZWRMaWNlbnNpbmcvc3ViamVjdEV4dGVuZGFibGVMaWNlbnNlIiwNCj4gKyAg ICAgICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iZXhwYW5k ZWRsaWNlbnNpbmdfc3ViamVjdEV4dGVuZGFibGVMaWNlbnNlIiwNCj4gKyAgICAgICAgKQ0K PiArDQo+ICsNCj4gKyMgQSB0eXBlIG9mIGV4dGVuc2lvbiBjb25zaXN0aW5nIG9mIGEgbGlz dCBvZiBuYW1lIHZhbHVlIHBhaXJzLg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9FeHRlbnNpb24vQ2R4UHJvcGVydGllc0V4dGVuc2lvbiIsIGNv bXBhY3RfdHlwZT0iZXh0ZW5zaW9uX0NkeFByb3BlcnRpZXNFeHRlbnNpb24iLCBhYnN0cmFj dD1GYWxzZSkNCj4gK2NsYXNzIGV4dGVuc2lvbl9DZHhQcm9wZXJ0aWVzRXh0ZW5zaW9uKGV4 dGVuc2lvbl9FeHRlbnNpb24pOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5r Tm9kZU9ySVJJDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMp Og0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAgICAgICMg UHJvdmlkZXMgYSBtYXAgb2YgYSBwcm9wZXJ0eSBuYW1lcyB0byBhIHZhbHVlcy4NCj4gKyAg ICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZXh0ZW5zaW9uX2Nk eFByb3BlcnR5IiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKE9iamVjdFByb3AoZXh0ZW5z aW9uX0NkeFByb3BlcnR5RW50cnksIEZhbHNlKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0V4dGVuc2lvbi9jZHhQcm9wZXJ0eSIs DQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9 ImV4dGVuc2lvbl9jZHhQcm9wZXJ0eSIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsj IFByb3ZpZGVzIGEgQ1ZTUyB2ZXJzaW9uIDIuMCBhc3Nlc3NtZW50IGZvciBhIHZ1bG5lcmFi aWxpdHkuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L1NlY3VyaXR5L0N2c3NWMlZ1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwIiwgY29tcGFjdF90 eXBlPSJzZWN1cml0eV9DdnNzVjJWdWxuQXNzZXNzbWVudFJlbGF0aW9uc2hpcCIsIGFic3Ry YWN0PUZhbHNlKQ0KPiArY2xhc3Mgc2VjdXJpdHlfQ3Zzc1YyVnVsbkFzc2Vzc21lbnRSZWxh dGlvbnNoaXAoc2VjdXJpdHlfVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXApOg0KPiArICAg IE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMg PSAic3BkeElkIg0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4g Kw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xz KToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAj IFByb3ZpZGVzIGEgbnVtZXJpY2FsICgwLTEwKSByZXByZXNlbnRhdGlvbiBvZiB0aGUgc2V2 ZXJpdHkgb2YgYSB2dWxuZXJhYmlsaXR5Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0 eSgNCj4gKyAgICAgICAgICAgICJzZWN1cml0eV9zY29yZSIsDQo+ICsgICAgICAgICAgICBG bG9hdFByb3AoKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvU2VjdXJpdHkvc2NvcmUiLA0KPiArICAgICAgICAgICAgbWluX2NvdW50 PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzZWN1cml0eV9zY29yZSIsDQo+ICsgICAg ICAgICkNCj4gKyAgICAgICAgIyBTcGVjaWZpZXMgdGhlIENWU1MgdmVjdG9yIHN0cmluZyBm b3IgYSB2dWxuZXJhYmlsaXR5Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4g KyAgICAgICAgICAgICJzZWN1cml0eV92ZWN0b3JTdHJpbmciLA0KPiArICAgICAgICAgICAg U3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9TZWN1cml0eS92ZWN0b3JTdHJpbmciLA0KPiArICAgICAgICAgICAg bWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzZWN1cml0eV92ZWN0b3JT dHJpbmciLA0KPiArICAgICAgICApDQo+ICsNCj4gKw0KPiArIyBQcm92aWRlcyBhIENWU1Mg dmVyc2lvbiAzIGFzc2Vzc21lbnQgZm9yIGEgdnVsbmVyYWJpbGl0eS4NCj4gK0ByZWdpc3Rl cigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvQ3Zzc1YzVnVs bkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAiLCBjb21wYWN0X3R5cGU9InNlY3VyaXR5X0N2c3NW M1Z1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFz cyBzZWN1cml0eV9DdnNzVjNWdWxuQXNzZXNzbWVudFJlbGF0aW9uc2hpcChzZWN1cml0eV9W dWxuQXNzZXNzbWVudFJlbGF0aW9uc2hpcCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtp bmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBJRF9BTElBUyA9ICJzcGR4SWQiDQo+ICsgICAg TkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQGNsYXNzbWV0 aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMpOg0KPiArICAgICAgICBzdXBl cigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAgICAgICMgUHJvdmlkZXMgYSBudW1lcmlj YWwgKDAtMTApIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzZXZlcml0eSBvZiBhIHZ1bG5lcmFi aWxpdHkuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAg InNlY3VyaXR5X3Njb3JlIiwNCj4gKyAgICAgICAgICAgIEZsb2F0UHJvcCgpLA0KPiArICAg ICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0 eS9zY29yZSIsDQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAgICAg IGNvbXBhY3Q9InNlY3VyaXR5X3Njb3JlIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAj IFNwZWNpZmllcyB0aGUgQ1ZTUyBxdWFsaXRhdGl2ZSBzZXZlcml0eSByYXRpbmcgb2YgYSB2 dWxuZXJhYmlsaXR5IGluIHJlbGF0aW9uIHRvIGEgcGllY2Ugb2Ygc29mdHdhcmUuDQo+ICsg ICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNlY3VyaXR5X3Nl dmVyaXR5IiwNCj4gKyAgICAgICAgICAgIEVudW1Qcm9wKFsNCj4gKyAgICAgICAgICAgICAg ICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNz U2V2ZXJpdHlUeXBlL2NyaXRpY2FsIiwgImNyaXRpY2FsIiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvQ3Zz c1NldmVyaXR5VHlwZS9oaWdoIiwgImhpZ2giKSwNCj4gKyAgICAgICAgICAgICAgICAgICAg KCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJp dHlUeXBlL2xvdyIsICJsb3ciKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL21l ZGl1bSIsICJtZWRpdW0iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL25vbmUi LCAibm9uZSIpLA0KPiArICAgICAgICAgICAgICAgIF0pLA0KPiArICAgICAgICAgICAgaXJp PSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9zZXZlcml0eSIs DQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9 InNlY3VyaXR5X3NldmVyaXR5IiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFNwZWNp ZmllcyB0aGUgQ1ZTUyB2ZWN0b3Igc3RyaW5nIGZvciBhIHZ1bG5lcmFiaWxpdHkuDQo+ICsg ICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNlY3VyaXR5X3Zl Y3RvclN0cmluZyIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAg ICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L3Zl Y3RvclN0cmluZyIsDQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAg ICAgIGNvbXBhY3Q9InNlY3VyaXR5X3ZlY3RvclN0cmluZyIsDQo+ICsgICAgICAgICkNCj4g Kw0KPiArDQo+ICsjIFByb3ZpZGVzIGEgQ1ZTUyB2ZXJzaW9uIDQgYXNzZXNzbWVudCBmb3Ig YSB2dWxuZXJhYmlsaXR5Lg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzVjRWdWxuQXNzZXNzbWVudFJlbGF0aW9uc2hpcCIs IGNvbXBhY3RfdHlwZT0ic2VjdXJpdHlfQ3Zzc1Y0VnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNo aXAiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIHNlY3VyaXR5X0N2c3NWNFZ1bG5Bc3Nl c3NtZW50UmVsYXRpb25zaGlwKHNlY3VyaXR5X1Z1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlw KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAg IElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4g KyAgICB9DQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lzdGVy X3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkNCj4g KyAgICAgICAgIyBQcm92aWRlcyBhIG51bWVyaWNhbCAoMC0xMCkgcmVwcmVzZW50YXRpb24g b2YgdGhlIHNldmVyaXR5IG9mIGEgdnVsbmVyYWJpbGl0eS4NCj4gKyAgICAgICAgY2xzLl9h ZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAic2VjdXJpdHlfc2NvcmUiLA0KPiArICAg ICAgICAgICAgRmxvYXRQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L3Njb3JlIiwNCj4gKyAgICAgICAgICAg IG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic2VjdXJpdHlfc2NvcmUi LA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgU3BlY2lmaWVzIHRoZSBDVlNTIHF1YWxp dGF0aXZlIHNldmVyaXR5IHJhdGluZyBvZiBhIHZ1bG5lcmFiaWxpdHkgaW4gcmVsYXRpb24g dG8gYSBwaWVjZSBvZiBzb2Z0d2FyZS4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHko DQo+ICsgICAgICAgICAgICAic2VjdXJpdHlfc2V2ZXJpdHkiLA0KPiArICAgICAgICAgICAg RW51bVByb3AoWw0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0N2c3NTZXZlcml0eVR5cGUvY3JpdGljYWwiLCAi Y3JpdGljYWwiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9DdnNzU2V2ZXJpdHlUeXBlL2hpZ2giLCAiaGln aCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NlY3VyaXR5L0N2c3NTZXZlcml0eVR5cGUvbG93IiwgImxvdyIpLA0KPiAr ICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L1NlY3VyaXR5L0N2c3NTZXZlcml0eVR5cGUvbWVkaXVtIiwgIm1lZGl1bSIpLA0KPiArICAg ICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1Nl Y3VyaXR5L0N2c3NTZXZlcml0eVR5cGUvbm9uZSIsICJub25lIiksDQo+ICsgICAgICAgICAg ICAgICAgXSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NlY3VyaXR5L3NldmVyaXR5IiwNCj4gKyAgICAgICAgICAgIG1pbl9jb3Vu dD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic2VjdXJpdHlfc2V2ZXJpdHkiLA0KPiAr ICAgICAgICApDQo+ICsgICAgICAgICMgU3BlY2lmaWVzIHRoZSBDVlNTIHZlY3RvciBzdHJp bmcgZm9yIGEgdnVsbmVyYWJpbGl0eS4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHko DQo+ICsgICAgICAgICAgICAic2VjdXJpdHlfdmVjdG9yU3RyaW5nIiwNCj4gKyAgICAgICAg ICAgIFN0cmluZ1Byb3AoKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvdmVjdG9yU3RyaW5nIiwNCj4gKyAgICAgICAg ICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic2VjdXJpdHlfdmVj dG9yU3RyaW5nIiwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gKyMgUHJvdmlkZXMgYW4g RVBTUyBhc3Nlc3NtZW50IGZvciBhIHZ1bG5lcmFiaWxpdHkuDQo+ICtAcmVnaXN0ZXIoImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0Vwc3NWdWxuQXNzZXNz bWVudFJlbGF0aW9uc2hpcCIsIGNvbXBhY3RfdHlwZT0ic2VjdXJpdHlfRXBzc1Z1bG5Bc3Nl c3NtZW50UmVsYXRpb25zaGlwIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBzZWN1cml0 eV9FcHNzVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAoc2VjdXJpdHlfVnVsbkFzc2Vzc21l bnRSZWxhdGlvbnNoaXApOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9k ZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0KPiArICAgIE5BTUVEX0lORElW SURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAg IGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0 ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIFRoZSBwZXJjZW50aWxlIG9mIHRoZSBjdXJyZW50 IHByb2JhYmlsaXR5IHNjb3JlLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4g KyAgICAgICAgICAgICJzZWN1cml0eV9wZXJjZW50aWxlIiwNCj4gKyAgICAgICAgICAgIEZs b2F0UHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9TZWN1cml0eS9wZXJjZW50aWxlIiwNCj4gKyAgICAgICAgICAgIG1pbl9j b3VudD0xLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic2VjdXJpdHlfcGVyY2VudGlsZSIs DQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBBIHByb2JhYmlsaXR5IHNjb3JlIGJldHdl ZW4gMCBhbmQgMSBvZiBhIHZ1bG5lcmFiaWxpdHkgYmVpbmcgZXhwbG9pdGVkLg0KPiArICAg ICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJzZWN1cml0eV9wcm9i YWJpbGl0eSIsDQo+ICsgICAgICAgICAgICBGbG9hdFByb3AoKSwNCj4gKyAgICAgICAgICAg IGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvcHJvYmFi aWxpdHkiLA0KPiArICAgICAgICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBj b21wYWN0PSJzZWN1cml0eV9wcm9iYWJpbGl0eSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgIyBTcGVjaWZpZXMgdGhlIHRpbWUgd2hlbiBhIHZ1bG5lcmFiaWxpdHkgd2FzIHB1Ymxp c2hlZC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAi c2VjdXJpdHlfcHVibGlzaGVkVGltZSIsDQo+ICsgICAgICAgICAgICBEYXRlVGltZVN0YW1w UHJvcChwYXR0ZXJuPXIiXlxkXGRcZFxkLVxkXGQtXGRcZFRcZFxkOlxkXGQ6XGRcZFokIiwp LA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9TZWN1cml0eS9wdWJsaXNoZWRUaW1lIiwNCj4gKyAgICAgICAgICAgIG1pbl9jb3VudD0x LA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic2VjdXJpdHlfcHVibGlzaGVkVGltZSIsDQo+ ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIFByb3ZpZGVzIGFuIGV4cGxvaXQgYXNzZXNz bWVudCBvZiBhIHZ1bG5lcmFiaWxpdHkuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0V4cGxvaXRDYXRhbG9nVnVsbkFzc2Vzc21l bnRSZWxhdGlvbnNoaXAiLCBjb21wYWN0X3R5cGU9InNlY3VyaXR5X0V4cGxvaXRDYXRhbG9n VnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNz IHNlY3VyaXR5X0V4cGxvaXRDYXRhbG9nVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAoc2Vj dXJpdHlfVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXApOg0KPiArICAgIE5PREVfS0lORCA9 IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0K PiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBj bGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAg ICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0 aGUgZXhwbG9pdCBjYXRhbG9nIHR5cGUuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5 KA0KPiArICAgICAgICAgICAgInNlY3VyaXR5X2NhdGFsb2dUeXBlIiwNCj4gKyAgICAgICAg ICAgIEVudW1Qcm9wKFsNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9FeHBsb2l0Q2F0YWxvZ1R5cGUva2V2Iiwg ImtldiIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NlY3VyaXR5L0V4cGxvaXRDYXRhbG9nVHlwZS9vdGhlciIsICJvdGhl ciIpLA0KPiArICAgICAgICAgICAgICAgIF0pLA0KPiArICAgICAgICAgICAgaXJpPSJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9jYXRhbG9nVHlwZSIsDQo+ ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InNl Y3VyaXR5X2NhdGFsb2dUeXBlIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIERlc2Ny aWJlIHRoYXQgYSBDVkUgaXMga25vd24gdG8gaGF2ZSBhbiBleHBsb2l0IGJlY2F1c2UgaXQn cyBiZWVuIGxpc3RlZCBpbiBhbiBleHBsb2l0IGNhdGFsb2cuDQo+ICsgICAgICAgIGNscy5f YWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNlY3VyaXR5X2V4cGxvaXRlZCIsDQo+ ICsgICAgICAgICAgICBCb29sZWFuUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9leHBsb2l0ZWQiLA0KPiAr ICAgICAgICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzZWN1 cml0eV9leHBsb2l0ZWQiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgUHJvdmlkZXMg dGhlIGxvY2F0aW9uIG9mIGFuIGV4cGxvaXQgY2F0YWxvZy4NCj4gKyAgICAgICAgY2xzLl9h ZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAic2VjdXJpdHlfbG9jYXRvciIsDQo+ICsg ICAgICAgICAgICBBbnlVUklQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L2xvY2F0b3IiLA0KPiArICAgICAg ICAgICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzZWN1cml0eV9s b2NhdG9yIiwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gKyMgUHJvdmlkZXMgYW4gU1NW QyBhc3Nlc3NtZW50IGZvciBhIHZ1bG5lcmFiaWxpdHkuDQo+ICtAcmVnaXN0ZXIoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1NzdmNWdWxuQXNzZXNzbWVu dFJlbGF0aW9uc2hpcCIsIGNvbXBhY3RfdHlwZT0ic2VjdXJpdHlfU3N2Y1Z1bG5Bc3Nlc3Nt ZW50UmVsYXRpb25zaGlwIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBzZWN1cml0eV9T c3ZjVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAoc2VjdXJpdHlfVnVsbkFzc2Vzc21lbnRS ZWxhdGlvbnNoaXApOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9y SVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0KPiArICAgIE5BTUVEX0lORElWSURV QUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRl ZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJf cHJvcHMoKQ0KPiArICAgICAgICAjIFByb3ZpZGUgdGhlIGVudW1lcmF0aW9uIG9mIHBvc3Np YmxlIGRlY2lzaW9ucyBpbiB0aGUgU3Rha2Vob2xkZXItU3BlY2lmaWMgVnVsbmVyYWJpbGl0 eSBDYXRlZ29yaXphdGlvbiAoU1NWQykgZGVjaXNpb24gdHJlZSBbaHR0cHM6Ly93d3cuY2lz YS5nb3Yvc2l0ZXMvZGVmYXVsdC9maWxlcy9wdWJsaWNhdGlvbnMvY2lzYS1zc3ZjLWd1aWRl JTIwNTA4Yy5wZGZdKGh0dHBzOi8vd3d3LmNpc2EuZ292L3NpdGVzL2RlZmF1bHQvZmlsZXMv cHVibGljYXRpb25zL2Npc2Etc3N2Yy1ndWlkZSUyMDUwOGMucGRmKQ0KPiArICAgICAgICBj bHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJzZWN1cml0eV9kZWNpc2lvblR5 cGUiLA0KPiArICAgICAgICAgICAgRW51bVByb3AoWw0KPiArICAgICAgICAgICAgICAgICAg ICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1NzdmNEZWNp c2lvblR5cGUvYWN0IiwgImFjdCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1NzdmNEZWNpc2lvblR5cGUv YXR0ZW5kIiwgImF0dGVuZCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1NzdmNEZWNpc2lvblR5cGUvdHJh Y2siLCAidHJhY2siKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9Tc3ZjRGVjaXNpb25UeXBlL3RyYWNrU3Rh ciIsICJ0cmFja1N0YXIiKSwNCj4gKyAgICAgICAgICAgICAgICBdKSwNCj4gKyAgICAgICAg ICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvZGVj aXNpb25UeXBlIiwNCj4gKyAgICAgICAgICAgIG1pbl9jb3VudD0xLA0KPiArICAgICAgICAg ICAgY29tcGFjdD0ic2VjdXJpdHlfZGVjaXNpb25UeXBlIiwNCj4gKyAgICAgICAgKQ0KPiAr DQo+ICsNCj4gKyMgQXNidHJhY3QgYW5jZXN0b3IgY2xhc3MgZm9yIGFsbCBWRVggcmVsYXRp b25zaGlwcw0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9TZWN1cml0eS9WZXhWdWxuQXNzZXNzbWVudFJlbGF0aW9uc2hpcCIsIGNvbXBhY3RfdHlw ZT0ic2VjdXJpdHlfVmV4VnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAiLCBhYnN0cmFjdD1U cnVlKQ0KPiArY2xhc3Mgc2VjdXJpdHlfVmV4VnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAo c2VjdXJpdHlfVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXApOg0KPiArICAgIE5PREVfS0lO RCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElk Ig0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAg IEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAg ICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIENvbnZleXMg aW5mb3JtYXRpb24gYWJvdXQgaG93IFZFWCBzdGF0dXMgd2FzIGRldGVybWluZWQuDQo+ICsg ICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNlY3VyaXR5X3N0 YXR1c05vdGVzIiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3AoKSwNCj4gKyAgICAgICAg ICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvc3Rh dHVzTm90ZXMiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic2VjdXJpdHlfc3RhdHVzTm90 ZXMiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgU3BlY2lmaWVzIHRoZSB2ZXJzaW9u IG9mIGEgVkVYIHN0YXRlbWVudC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ ICsgICAgICAgICAgICAic2VjdXJpdHlfdmV4VmVyc2lvbiIsDQo+ICsgICAgICAgICAgICBT dHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NlY3VyaXR5L3ZleFZlcnNpb24iLA0KPiArICAgICAgICAgICAgY29t cGFjdD0ic2VjdXJpdHlfdmV4VmVyc2lvbiIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ ICsjIFNwZWNpZmllcyBhIHZ1bG5lcmFiaWxpdHkgYW5kIGl0cyBhc3NvY2lhdGVkIGluZm9y bWF0aW9uLg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9TZWN1cml0eS9WdWxuZXJhYmlsaXR5IiwgY29tcGFjdF90eXBlPSJzZWN1cml0eV9WdWxu ZXJhYmlsaXR5IiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBzZWN1cml0eV9WdWxuZXJh YmlsaXR5KEFydGlmYWN0KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05v ZGVPcklSSQ0KPiArICAgIElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJ VklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QNCj4gKyAg ICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCkuX3JlZ2lz dGVyX3Byb3BzKCkNCj4gKyAgICAgICAgIyBTcGVjaWZpZXMgYSB0aW1lIHdoZW4gYSB2dWxu ZXJhYmlsaXR5IGFzc2Vzc21lbnQgd2FzIG1vZGlmaWVkDQo+ICsgICAgICAgIGNscy5fYWRk X3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNlY3VyaXR5X21vZGlmaWVkVGltZSIsDQo+ ICsgICAgICAgICAgICBEYXRlVGltZVN0YW1wUHJvcChwYXR0ZXJuPXIiXlxkXGRcZFxkLVxk XGQtXGRcZFRcZFxkOlxkXGQ6XGRcZFokIiwpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9tb2RpZmllZFRpbWUiLA0K PiArICAgICAgICAgICAgY29tcGFjdD0ic2VjdXJpdHlfbW9kaWZpZWRUaW1lIiwNCj4gKyAg ICAgICAgKQ0KPiArICAgICAgICAjIFNwZWNpZmllcyB0aGUgdGltZSB3aGVuIGEgdnVsbmVy YWJpbGl0eSB3YXMgcHVibGlzaGVkLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgN Cj4gKyAgICAgICAgICAgICJzZWN1cml0eV9wdWJsaXNoZWRUaW1lIiwNCj4gKyAgICAgICAg ICAgIERhdGVUaW1lU3RhbXBQcm9wKHBhdHRlcm49ciJeXGRcZFxkXGQtXGRcZC1cZFxkVFxk XGQ6XGRcZDpcZFxkWiQiLCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NlY3VyaXR5L3B1Ymxpc2hlZFRpbWUiLA0KPiArICAgICAg ICAgICAgY29tcGFjdD0ic2VjdXJpdHlfcHVibGlzaGVkVGltZSIsDQo+ICsgICAgICAgICkN Cj4gKyAgICAgICAgIyBTcGVjaWZpZWQgdGhlIHRpbWUgYW5kIGRhdGUgd2hlbiBhIHZ1bG5l cmFiaWxpdHkgd2FzIHdpdGhkcmF3bi4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHko DQo+ICsgICAgICAgICAgICAic2VjdXJpdHlfd2l0aGRyYXduVGltZSIsDQo+ICsgICAgICAg ICAgICBEYXRlVGltZVN0YW1wUHJvcChwYXR0ZXJuPXIiXlxkXGRcZFxkLVxkXGQtXGRcZFRc ZFxkOlxkXGQ6XGRcZFokIiwpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS93aXRoZHJhd25UaW1lIiwNCj4gKyAgICAg ICAgICAgIGNvbXBhY3Q9InNlY3VyaXR5X3dpdGhkcmF3blRpbWUiLA0KPiArICAgICAgICAp DQo+ICsNCj4gKw0KPiArIyBBIGRpc3RpbmN0IGFydGljbGUgb3IgdW5pdCByZWxhdGVkIHRv IFNvZnR3YXJlLg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZUFydGlmYWN0IiwgY29tcGFjdF90eXBlPSJzb2Z0d2Fy ZV9Tb2Z0d2FyZUFydGlmYWN0IiwgYWJzdHJhY3Q9VHJ1ZSkNCj4gK2NsYXNzIHNvZnR3YXJl X1NvZnR3YXJlQXJ0aWZhY3QoQXJ0aWZhY3QpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVL aW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0KPiArICAg IE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21l dGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3Vw ZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIFByb3ZpZGVzIGFkZGl0aW9u YWwgcHVycG9zZSBpbmZvcm1hdGlvbiBvZiB0aGUgc29mdHdhcmUgYXJ0aWZhY3QuDQo+ICsg ICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNvZnR3YXJlX2Fk ZGl0aW9uYWxQdXJwb3NlIiwNCj4gKyAgICAgICAgICAgIExpc3RQcm9wKEVudW1Qcm9wKFsN Cj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvYXBwbGljYXRpb24iLCAiYXBwbGljYXRp b24iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvYXJjaGl2ZSIsICJhcmNoaXZl IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2JvbSIsICJib20iKSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9T b2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvY29uZmlndXJhdGlvbiIsICJjb25maWd1cmF0aW9u IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2NvbnRhaW5lciIsICJjb250YWlu ZXIiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZGF0YSIsICJkYXRhIiksDQo+ ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2RldmljZSIsICJkZXZpY2UiKSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9T b2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZGV2aWNlRHJpdmVyIiwgImRldmljZURyaXZlciIp LA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kaXNrSW1hZ2UiLCAiZGlza0ltYWdl IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2RvY3VtZW50YXRpb24iLCAiZG9j dW1lbnRhdGlvbiIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9ldmlkZW5jZSIs ICJldmlkZW5jZSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9leGVjdXRhYmxl IiwgImV4ZWN1dGFibGUiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZmlsZSIs ICJmaWxlIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2ZpbGVzeXN0ZW1JbWFn ZSIsICJmaWxlc3lzdGVtSW1hZ2UiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uv ZmlybXdhcmUiLCAiZmlybXdhcmUiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uv ZnJhbWV3b3JrIiwgImZyYW1ld29yayIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9z ZS9pbnN0YWxsIiwgImluc3RhbGwiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRw czovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uv bGlicmFyeSIsICJsaWJyYXJ5IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL21h bmlmZXN0IiwgIm1hbmlmZXN0IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL21v ZGVsIiwgIm1vZGVsIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL21vZHVsZSIs ICJtb2R1bGUiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uvb3BlcmF0aW5nU3lz dGVtIiwgIm9wZXJhdGluZ1N5c3RlbSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9z ZS9vdGhlciIsICJvdGhlciIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9wYXRj aCIsICJwYXRjaCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9wbGF0Zm9ybSIs ICJwbGF0Zm9ybSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9yZXF1aXJlbWVu dCIsICJyZXF1aXJlbWVudCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9zb3Vy Y2UiLCAic291cmNlIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL3NwZWNpZmlj YXRpb24iLCAic3BlY2lmaWNhdGlvbiIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9z ZS90ZXN0IiwgInRlc3QiKSwNCj4gKyAgICAgICAgICAgICAgICBdKSksDQo+ICsgICAgICAg ICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL2Fk ZGl0aW9uYWxQdXJwb3NlIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InNvZnR3YXJlX2Fk ZGl0aW9uYWxQdXJwb3NlIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFByb3ZpZGVz IGEgcGxhY2UgZm9yIHRoZSBTUERYIGRhdGEgY3JlYXRvciB0byByZWNvcmQgYWNrbm93bGVk Z2VtZW50IHRleHQgZm9yDQo+ICsgICAgICAgICMgYSBzb2Z0d2FyZSBQYWNrYWdlLCBGaWxl IG9yIFNuaXBwZXQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAg ICAgICAgInNvZnR3YXJlX2F0dHJpYnV0aW9uVGV4dCIsDQo+ICsgICAgICAgICAgICBMaXN0 UHJvcChTdHJpbmdQcm9wKCkpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9hdHRyaWJ1dGlvblRleHQiLA0KPiArICAg ICAgICAgICAgY29tcGFjdD0ic29mdHdhcmVfYXR0cmlidXRpb25UZXh0IiwNCj4gKyAgICAg ICAgKQ0KPiArICAgICAgICAjIEEgY2Fub25pY2FsLCB1bmlxdWUsIGltbXV0YWJsZSBpZGVu dGlmaWVyIG9mIHRoZSBhcnRpZmFjdCBjb250ZW50LCB0aGF0IG1heSBiZQ0KPiArICAgICAg ICAjIHVzZWQgZm9yIHZlcmlmeWluZyBpdHMgaWRlbnRpdHkgYW5kL29yIGludGVncml0eS4N Cj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAic29mdHdh cmVfY29udGVudElkZW50aWZpZXIiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoT2JqZWN0 UHJvcChzb2Z0d2FyZV9Db250ZW50SWRlbnRpZmllciwgRmFsc2UpKSwNCj4gKyAgICAgICAg ICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvY29u dGVudElkZW50aWZpZXIiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic29mdHdhcmVfY29u dGVudElkZW50aWZpZXIiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgSWRlbnRpZmll cyB0aGUgdGV4dCBvZiBvbmUgb3IgbW9yZSBjb3B5cmlnaHQgbm90aWNlcyBmb3IgYSBzb2Z0 d2FyZSBQYWNrYWdlLA0KPiArICAgICAgICAjIEZpbGUgb3IgU25pcHBldCwgaWYgYW55Lg0K PiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJzb2Z0d2Fy ZV9jb3B5cmlnaHRUZXh0IiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3AoKSwNCj4gKyAg ICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdh cmUvY29weXJpZ2h0VGV4dCIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzb2Z0d2FyZV9j b3B5cmlnaHRUZXh0IiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFByb3ZpZGVzIGlu Zm9ybWF0aW9uIGFib3V0IHRoZSBwcmltYXJ5IHB1cnBvc2Ugb2YgdGhlIHNvZnR3YXJlIGFy dGlmYWN0Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAg ICJzb2Z0d2FyZV9wcmltYXJ5UHVycG9zZSIsDQo+ICsgICAgICAgICAgICBFbnVtUHJvcChb DQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2FwcGxpY2F0aW9uIiwgImFwcGxpY2F0 aW9uIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2FyY2hpdmUiLCAiYXJjaGl2 ZSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9ib20iLCAiYm9tIiksDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv U29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2NvbmZpZ3VyYXRpb24iLCAiY29uZmlndXJhdGlv biIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9jb250YWluZXIiLCAiY29udGFp bmVyIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2RhdGEiLCAiZGF0YSIpLA0K PiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kZXZpY2UiLCAiZGV2aWNlIiksDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv U29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2RldmljZURyaXZlciIsICJkZXZpY2VEcml2ZXIi KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZGlza0ltYWdlIiwgImRpc2tJbWFn ZSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9kb2N1bWVudGF0aW9uIiwgImRv Y3VtZW50YXRpb24iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZXZpZGVuY2Ui LCAiZXZpZGVuY2UiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvZXhlY3V0YWJs ZSIsICJleGVjdXRhYmxlIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9z cGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL2ZpbGUi LCAiZmlsZSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9maWxlc3lzdGVtSW1h Z2UiLCAiZmlsZXN5c3RlbUltYWdlIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3Nl L2Zpcm13YXJlIiwgImZpcm13YXJlIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3Nl L2ZyYW1ld29yayIsICJmcmFtZXdvcmsiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBv c2UvaW5zdGFsbCIsICJpbnN0YWxsIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3Nl L2xpYnJhcnkiLCAibGlicmFyeSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9t YW5pZmVzdCIsICJtYW5pZmVzdCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBz Oi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9t b2RlbCIsICJtb2RlbCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9tb2R1bGUi LCAibW9kdWxlIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9y Zy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU29mdHdhcmVQdXJwb3NlL29wZXJhdGluZ1N5 c3RlbSIsICJvcGVyYXRpbmdTeXN0ZW0iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBv c2Uvb3RoZXIiLCAib3RoZXIiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvcGF0 Y2giLCAicGF0Y2giKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvcGxhdGZvcm0i LCAicGxhdGZvcm0iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2UvcmVxdWlyZW1l bnQiLCAicmVxdWlyZW1lbnQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBvc2Uvc291 cmNlIiwgInNvdXJjZSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1NvZnR3YXJlUHVycG9zZS9zcGVjaWZp Y2F0aW9uIiwgInNwZWNpZmljYXRpb24iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9Tb2Z0d2FyZVB1cnBv c2UvdGVzdCIsICJ0ZXN0IiksDQo+ICsgICAgICAgICAgICAgICAgXSksDQo+ICsgICAgICAg ICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL3By aW1hcnlQdXJwb3NlIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InNvZnR3YXJlX3ByaW1h cnlQdXJwb3NlIiwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gKyMgQSBjb250YWluZXIg Zm9yIGEgZ3JvdXBpbmcgb2YgU1BEWC0zLjAgY29udGVudCBjaGFyYWN0ZXJpemluZyBkZXRh aWxzDQo+ICsjIChwcm92ZW5lbmNlLCBjb21wb3NpdGlvbiwgbGljZW5zaW5nLCBldGMuKSBh Ym91dCBhIHByb2R1Y3QuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0NvcmUvQm9tIiwgY29tcGFjdF90eXBlPSJCb20iLCBhYnN0cmFjdD1GYWxz ZSkNCj4gK2NsYXNzIEJvbShCdW5kbGUpOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5k LkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0KPiArICAgIE5B TUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArDQo+ICsjIEEgbGljZW5z ZSB0aGF0IGlzIG5vdCBsaXN0ZWQgb24gdGhlIFNQRFggTGljZW5zZSBMaXN0Lg0KPiArQHJl Z2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9FeHBhbmRlZExpY2Vu c2luZy9DdXN0b21MaWNlbnNlIiwgY29tcGFjdF90eXBlPSJleHBhbmRlZGxpY2Vuc2luZ19D dXN0b21MaWNlbnNlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBleHBhbmRlZGxpY2Vu c2luZ19DdXN0b21MaWNlbnNlKGV4cGFuZGVkbGljZW5zaW5nX0xpY2Vuc2UpOg0KPiArICAg IE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMg PSAic3BkeElkIg0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4g Kw0KPiArDQo+ICsjIENvbm5lY3RzIGEgdnVsbmVyYWJpbGl0eSBhbmQgYW4gZWxlbWVudCBk ZXNpZ25hdGluZyB0aGUgZWxlbWVudCBhcyBhIHByb2R1Y3QNCj4gKyMgYWZmZWN0ZWQgYnkg dGhlIHZ1bG5lcmFiaWxpdHkuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL1NlY3VyaXR5L1ZleEFmZmVjdGVkVnVsbkFzc2Vzc21lbnRSZWxhdGlv bnNoaXAiLCBjb21wYWN0X3R5cGU9InNlY3VyaXR5X1ZleEFmZmVjdGVkVnVsbkFzc2Vzc21l bnRSZWxhdGlvbnNoaXAiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIHNlY3VyaXR5X1Zl eEFmZmVjdGVkVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAoc2VjdXJpdHlfVmV4VnVsbkFz c2Vzc21lbnRSZWxhdGlvbnNoaXApOg0KPiArICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJs YW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJQVMgPSAic3BkeElkIg0KPiArICAgIE5BTUVE X0lORElWSURVQUxTID0gew0KPiArICAgIH0NCj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0K PiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMoY2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5f cmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAgICAjIFByb3ZpZGVzIGFkdmlzZSBvbiBob3cg dG8gbWl0aWdhdGUgb3IgcmVtZWRpYXRlIGEgdnVsbmVyYWJpbGl0eSB3aGVuIGEgVkVYIHBy b2R1Y3QNCj4gKyAgICAgICAgIyBpcyBhZmZlY3RlZCBieSBpdC4NCj4gKyAgICAgICAgY2xz Ll9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAic2VjdXJpdHlfYWN0aW9uU3RhdGVt ZW50IiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3AoKSwNCj4gKyAgICAgICAgICAgIGly aT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvYWN0aW9uU3Rh dGVtZW50IiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InNlY3VyaXR5X2FjdGlvblN0YXRl bWVudCIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBSZWNvcmRzIHRoZSB0aW1lIHdo ZW4gYSByZWNvbW1lbmRlZCBhY3Rpb24gd2FzIGNvbW11bmljYXRlZCBpbiBhIFZFWCBzdGF0 ZW1lbnQNCj4gKyAgICAgICAgIyB0byBtaXRpZ2F0ZSBhIHZ1bG5lcmFiaWxpdHkuDQo+ICsg ICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNlY3VyaXR5X2Fj dGlvblN0YXRlbWVudFRpbWUiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoRGF0ZVRpbWVT dGFtcFByb3AocGF0dGVybj1yIl5cZFxkXGRcZC1cZFxkLVxkXGRUXGRcZDpcZFxkOlxkXGRa JCIsKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4w L3Rlcm1zL1NlY3VyaXR5L2FjdGlvblN0YXRlbWVudFRpbWUiLA0KPiArICAgICAgICAgICAg Y29tcGFjdD0ic2VjdXJpdHlfYWN0aW9uU3RhdGVtZW50VGltZSIsDQo+ICsgICAgICAgICkN Cj4gKw0KPiArDQo+ICsjIExpbmtzIGEgdnVsbmVyYWJpbGl0eSBhbmQgZWxlbWVudHMgcmVw cmVzZW50aW5nIHByb2R1Y3RzIChpbiB0aGUgVkVYIHNlbnNlKSB3aGVyZQ0KPiArIyBhIGZp eCBoYXMgYmVlbiBhcHBsaWVkIGFuZCBhcmUgbm8gbG9uZ2VyIGFmZmVjdGVkLg0KPiArQHJl Z2lzdGVyKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9WZXhG aXhlZFZ1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwIiwgY29tcGFjdF90eXBlPSJzZWN1cml0 eV9WZXhGaXhlZFZ1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwIiwgYWJzdHJhY3Q9RmFsc2Up DQo+ICtjbGFzcyBzZWN1cml0eV9WZXhGaXhlZFZ1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlw KHNlY3VyaXR5X1ZleFZ1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwKToNCj4gKyAgICBOT0RF X0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFTID0gInNw ZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4g Kw0KPiArIyBMaW5rcyBhIHZ1bG5lcmFiaWxpdHkgYW5kIG9uZSBvciBtb3JlIGVsZW1lbnRz IGRlc2lnbmF0aW5nIHRoZSBsYXR0ZXIgYXMgcHJvZHVjdHMNCj4gKyMgbm90IGFmZmVjdGVk IGJ5IHRoZSB2dWxuZXJhYmlsaXR5Lg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgub3Jn L3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9WZXhOb3RBZmZlY3RlZFZ1bG5Bc3Nlc3NtZW50 UmVsYXRpb25zaGlwIiwgY29tcGFjdF90eXBlPSJzZWN1cml0eV9WZXhOb3RBZmZlY3RlZFZ1 bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFzcyBz ZWN1cml0eV9WZXhOb3RBZmZlY3RlZFZ1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwKHNlY3Vy aXR5X1ZleFZ1bG5Bc3Nlc3NtZW50UmVsYXRpb25zaGlwKToNCj4gKyAgICBOT0RFX0tJTkQg PSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFTID0gInNwZHhJZCIN Cj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBA Y2xhc3NtZXRob2QNCj4gKyAgICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ICsgICAg ICAgIHN1cGVyKCkuX3JlZ2lzdGVyX3Byb3BzKCkNCj4gKyAgICAgICAgIyBFeHBsYWlucyB3 aHkgYSBWRVggcHJvZHVjdCBpcyBub3QgYWZmZWN0ZWQgYnkgYSB2dWxuZXJhYmlsaXR5LiBJ dCBpcyBhbg0KPiArICAgICAgICAjIGFsdGVybmF0aXZlIGluIFZleE5vdEFmZmVjdGVkVnVs bkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAgdG8gdGhlIG1hY2hpbmUtcmVhZGFibGUNCj4gKyAg ICAgICAgIyBqdXN0aWZpY2F0aW9uIGxhYmVsLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9w ZXJ0eSgNCj4gKyAgICAgICAgICAgICJzZWN1cml0eV9pbXBhY3RTdGF0ZW1lbnQiLA0KPiAr ICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9pbXBhY3RTdGF0ZW1lbnQiLA0K PiArICAgICAgICAgICAgY29tcGFjdD0ic2VjdXJpdHlfaW1wYWN0U3RhdGVtZW50IiwNCj4g KyAgICAgICAgKQ0KPiArICAgICAgICAjIFRpbWVzdGFtcCBvZiBpbXBhY3Qgc3RhdGVtZW50 Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJzZWN1 cml0eV9pbXBhY3RTdGF0ZW1lbnRUaW1lIiwNCj4gKyAgICAgICAgICAgIERhdGVUaW1lU3Rh bXBQcm9wKHBhdHRlcm49ciJeXGRcZFxkXGQtXGRcZC1cZFxkVFxkXGQ6XGRcZDpcZFxkWiQi LCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL1NlY3VyaXR5L2ltcGFjdFN0YXRlbWVudFRpbWUiLA0KPiArICAgICAgICAgICAgY29t cGFjdD0ic2VjdXJpdHlfaW1wYWN0U3RhdGVtZW50VGltZSIsDQo+ICsgICAgICAgICkNCj4g KyAgICAgICAgIyBJbXBhY3QganVzdGlmaWNhdGlvbiBsYWJlbCB0byBiZSB1c2VkIHdoZW4g bGlua2luZyBhIHZ1bG5lcmFiaWxpdHkgdG8gYW4gZWxlbWVudA0KPiArICAgICAgICAjIHJl cHJlc2VudGluZyBhIFZFWCBwcm9kdWN0IHdpdGggYSBWZXhOb3RBZmZlY3RlZFZ1bG5Bc3Nl c3NtZW50UmVsYXRpb25zaGlwDQo+ICsgICAgICAgICMgcmVsYXRpb25zaGlwLg0KPiArICAg ICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJzZWN1cml0eV9qdXN0 aWZpY2F0aW9uVHlwZSIsDQo+ICsgICAgICAgICAgICBFbnVtUHJvcChbDQo+ICsgICAgICAg ICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJp dHkvVmV4SnVzdGlmaWNhdGlvblR5cGUvY29tcG9uZW50Tm90UHJlc2VudCIsICJjb21wb25l bnROb3RQcmVzZW50IiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvVmV4SnVzdGlmaWNhdGlvblR5cGUvaW5s aW5lTWl0aWdhdGlvbnNBbHJlYWR5RXhpc3QiLCAiaW5saW5lTWl0aWdhdGlvbnNBbHJlYWR5 RXhpc3QiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9TZWN1cml0eS9WZXhKdXN0aWZpY2F0aW9uVHlwZS92dWxuZXJhYmxl Q29kZUNhbm5vdEJlQ29udHJvbGxlZEJ5QWR2ZXJzYXJ5IiwgInZ1bG5lcmFibGVDb2RlQ2Fu bm90QmVDb250cm9sbGVkQnlBZHZlcnNhcnkiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAg KCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9WZXhKdXN0aWZp Y2F0aW9uVHlwZS92dWxuZXJhYmxlQ29kZU5vdEluRXhlY3V0ZVBhdGgiLCAidnVsbmVyYWJs ZUNvZGVOb3RJbkV4ZWN1dGVQYXRoIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU2VjdXJpdHkvVmV4SnVzdGlmaWNhdGlv blR5cGUvdnVsbmVyYWJsZUNvZGVOb3RQcmVzZW50IiwgInZ1bG5lcmFibGVDb2RlTm90UHJl c2VudCIpLA0KPiArICAgICAgICAgICAgICAgIF0pLA0KPiArICAgICAgICAgICAgaXJpPSJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9qdXN0aWZpY2F0aW9u VHlwZSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzZWN1cml0eV9qdXN0aWZpY2F0aW9u VHlwZSIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIERlc2lnbmF0ZXMgZWxlbWVu dHMgYXMgcHJvZHVjdHMgd2hlcmUgdGhlIGltcGFjdCBvZiBhIHZ1bG5lcmFiaWxpdHkgaXMg YmVpbmcNCj4gKyMgaW52ZXN0aWdhdGVkLg0KPiArQHJlZ2lzdGVyKCJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9TZWN1cml0eS9WZXhVbmRlckludmVzdGlnYXRpb25WdWxu QXNzZXNzbWVudFJlbGF0aW9uc2hpcCIsIGNvbXBhY3RfdHlwZT0ic2VjdXJpdHlfVmV4VW5k ZXJJbnZlc3RpZ2F0aW9uVnVsbkFzc2Vzc21lbnRSZWxhdGlvbnNoaXAiLCBhYnN0cmFjdD1G YWxzZSkNCj4gK2NsYXNzIHNlY3VyaXR5X1ZleFVuZGVySW52ZXN0aWdhdGlvblZ1bG5Bc3Nl c3NtZW50UmVsYXRpb25zaGlwKHNlY3VyaXR5X1ZleFZ1bG5Bc3Nlc3NtZW50UmVsYXRpb25z aGlwKToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5CbGFua05vZGVPcklSSQ0KPiAr ICAgIElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1FRF9JTkRJVklEVUFMUyA9IHsN Cj4gKyAgICB9DQo+ICsNCj4gKw0KPiArIyBSZWZlcnMgdG8gYW55IG9iamVjdCB0aGF0IHN0 b3JlcyBjb250ZW50IG9uIGEgY29tcHV0ZXIuDQo+ICtAcmVnaXN0ZXIoImh0dHBzOi8vc3Bk eC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL0ZpbGUiLCBjb21wYWN0X3R5cGU9InNv ZnR3YXJlX0ZpbGUiLCBhYnN0cmFjdD1GYWxzZSkNCj4gK2NsYXNzIHNvZnR3YXJlX0ZpbGUo c29mdHdhcmVfU29mdHdhcmVBcnRpZmFjdCk6DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtp bmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBJRF9BTElBUyA9ICJzcGR4SWQiDQo+ICsgICAg TkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQGNsYXNzbWV0 aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMpOg0KPiArICAgICAgICBzdXBl cigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAgICAgICMgUHJvdmlkZXMgaW5mb3JtYXRp b24gYWJvdXQgdGhlIGNvbnRlbnQgdHlwZSBvZiBhbiBFbGVtZW50Lg0KPiArICAgICAgICBj bHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJzb2Z0d2FyZV9jb250ZW50VHlw ZSIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9wKHBhdHRlcm49ciJeW15cL10rXC9bXlwv XSskIiwpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Tb2Z0d2FyZS9jb250ZW50VHlwZSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0 PSJzb2Z0d2FyZV9jb250ZW50VHlwZSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBE ZXNjcmliZXMgaWYgYSBnaXZlbiBmaWxlIGlzIGEgZGlyZWN0b3J5IG9yIG5vbi1kaXJlY3Rv cnkga2luZCBvZiBmaWxlLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAg ICAgICAgICAgICJzb2Z0d2FyZV9maWxlS2luZCIsDQo+ICsgICAgICAgICAgICBFbnVtUHJv cChbDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvRmlsZUtpbmRUeXBlL2RpcmVjdG9yeSIsICJkaXJlY3Rvcnki KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAu MC90ZXJtcy9Tb2Z0d2FyZS9GaWxlS2luZFR5cGUvZmlsZSIsICJmaWxlIiksDQo+ICsgICAg ICAgICAgICAgICAgXSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcv cmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL2ZpbGVLaW5kIiwNCj4gKyAgICAgICAgICAgIGNv bXBhY3Q9InNvZnR3YXJlX2ZpbGVLaW5kIiwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4g KyMgUmVmZXJzIHRvIGFueSB1bml0IG9mIGNvbnRlbnQgdGhhdCBjYW4gYmUgYXNzb2NpYXRl ZCB3aXRoIGEgZGlzdHJpYnV0aW9uIG9mDQo+ICsjIHNvZnR3YXJlLg0KPiArQHJlZ2lzdGVy KCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9QYWNrYWdlIiwg Y29tcGFjdF90eXBlPSJzb2Z0d2FyZV9QYWNrYWdlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtj bGFzcyBzb2Z0d2FyZV9QYWNrYWdlKHNvZnR3YXJlX1NvZnR3YXJlQXJ0aWZhY3QpOg0KPiAr ICAgIE5PREVfS0lORCA9IE5vZGVLaW5kLkJsYW5rTm9kZU9ySVJJDQo+ICsgICAgSURfQUxJ QVMgPSAic3BkeElkIg0KPiArICAgIE5BTUVEX0lORElWSURVQUxTID0gew0KPiArICAgIH0N Cj4gKw0KPiArICAgIEBjbGFzc21ldGhvZA0KPiArICAgIGRlZiBfcmVnaXN0ZXJfcHJvcHMo Y2xzKToNCj4gKyAgICAgICAgc3VwZXIoKS5fcmVnaXN0ZXJfcHJvcHMoKQ0KPiArICAgICAg ICAjIElkZW50aWZpZXMgdGhlIGRvd25sb2FkIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmll ciBmb3IgdGhlIHBhY2thZ2UgYXQgdGhlIHRpbWUNCj4gKyAgICAgICAgIyB0aGF0IHRoZSBk b2N1bWVudCB3YXMgY3JlYXRlZC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ ICsgICAgICAgICAgICAic29mdHdhcmVfZG93bmxvYWRMb2NhdGlvbiIsDQo+ICsgICAgICAg ICAgICBBbnlVUklQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL2Rvd25sb2FkTG9jYXRpb24iLA0KPiArICAg ICAgICAgICAgY29tcGFjdD0ic29mdHdhcmVfZG93bmxvYWRMb2NhdGlvbiIsDQo+ICsgICAg ICAgICkNCj4gKyAgICAgICAgIyBBIHBsYWNlIGZvciB0aGUgU1BEWCBkb2N1bWVudCBjcmVh dG9yIHRvIHJlY29yZCBhIHdlYnNpdGUgdGhhdCBzZXJ2ZXMgYXMgdGhlDQo+ICsgICAgICAg ICMgcGFja2FnZSdzIGhvbWUgcGFnZS4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHko DQo+ICsgICAgICAgICAgICAic29mdHdhcmVfaG9tZVBhZ2UiLA0KPiArICAgICAgICAgICAg QW55VVJJUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9ob21lUGFnZSIsDQo+ICsgICAgICAgICAgICBjb21w YWN0PSJzb2Z0d2FyZV9ob21lUGFnZSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBQ cm92aWRlcyBhIHBsYWNlIGZvciB0aGUgU1BEWCBkYXRhIGNyZWF0b3IgdG8gcmVjb3JkIHRo ZSBwYWNrYWdlIFVSTCBzdHJpbmcNCj4gKyAgICAgICAgIyAoaW4gYWNjb3JkYW5jZSB3aXRo IHRoZQ0KPiArICAgICAgICAjIFtwYWNrYWdlIFVSTCBzcGVjXShodHRwczovL2dpdGh1Yi5j b20vcGFja2FnZS11cmwvcHVybC1zcGVjL2Jsb2IvbWFzdGVyL1BVUkwtU1BFQ0lGSUNBVElP Ti5yc3QpKQ0KPiArICAgICAgICAjIGZvciBhIHNvZnR3YXJlIFBhY2thZ2UuDQo+ICsgICAg ICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNvZnR3YXJlX3BhY2th Z2VVcmwiLA0KPiArICAgICAgICAgICAgQW55VVJJUHJvcCgpLA0KPiArICAgICAgICAgICAg aXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9wYWNrYWdl VXJsIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InNvZnR3YXJlX3BhY2thZ2VVcmwiLA0K PiArICAgICAgICApDQo+ICsgICAgICAgICMgSWRlbnRpZnkgdGhlIHZlcnNpb24gb2YgYSBw YWNrYWdlLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAg ICJzb2Z0d2FyZV9wYWNrYWdlVmVyc2lvbiIsDQo+ICsgICAgICAgICAgICBTdHJpbmdQcm9w KCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL1NvZnR3YXJlL3BhY2thZ2VWZXJzaW9uIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9 InNvZnR3YXJlX3BhY2thZ2VWZXJzaW9uIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAj IFJlY29yZHMgYW55IHJlbGV2YW50IGJhY2tncm91bmQgaW5mb3JtYXRpb24gb3IgYWRkaXRp b25hbCBjb21tZW50cw0KPiArICAgICAgICAjIGFib3V0IHRoZSBvcmlnaW4gb2YgdGhlIHBh Y2thZ2UuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAg InNvZnR3YXJlX3NvdXJjZUluZm8iLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0K PiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9T b2Z0d2FyZS9zb3VyY2VJbmZvIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InNvZnR3YXJl X3NvdXJjZUluZm8iLA0KPiArICAgICAgICApDQo+ICsNCj4gKw0KPiArIyBBIGNvbGxlY3Rp b24gb2YgU1BEWCBFbGVtZW50cyBkZXNjcmliaW5nIGEgc2luZ2xlIHBhY2thZ2UuDQo+ICtA cmVnaXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1Ni b20iLCBjb21wYWN0X3R5cGU9InNvZnR3YXJlX1Nib20iLCBhYnN0cmFjdD1GYWxzZSkNCj4g K2NsYXNzIHNvZnR3YXJlX1Nib20oQm9tKToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2lu ZC5CbGFua05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBO QU1FRF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBAY2xhc3NtZXRo b2QNCj4gKyAgICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVy KCkuX3JlZ2lzdGVyX3Byb3BzKCkNCj4gKyAgICAgICAgIyBQcm92aWRlcyBpbmZvcm1hdGlv biBhYm91dCB0aGUgdHlwZSBvZiBhbiBTQk9NLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9w ZXJ0eSgNCj4gKyAgICAgICAgICAgICJzb2Z0d2FyZV9zYm9tVHlwZSIsDQo+ICsgICAgICAg ICAgICBMaXN0UHJvcChFbnVtUHJvcChbDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0 cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvU29mdHdhcmUvU2JvbVR5cGUvYW5hbHl6 ZWQiLCAiYW5hbHl6ZWQiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9TYm9tVHlwZS9idWlsZCIsICJidWls ZCIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL1NvZnR3YXJlL1Nib21UeXBlL2RlcGxveWVkIiwgImRlcGxveWVkIiksDQo+ ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvU29mdHdhcmUvU2JvbVR5cGUvZGVzaWduIiwgImRlc2lnbiIpLA0KPiArICAgICAgICAg ICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJl L1Nib21UeXBlL3J1bnRpbWUiLCAicnVudGltZSIpLA0KPiArICAgICAgICAgICAgICAgICAg ICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJlL1Nib21UeXBl L3NvdXJjZSIsICJzb3VyY2UiKSwNCj4gKyAgICAgICAgICAgICAgICBdKSksDQo+ICsgICAg ICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJl L3Nib21UeXBlIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9InNvZnR3YXJlX3Nib21UeXBl IiwNCj4gKyAgICAgICAgKQ0KPiArDQo+ICsNCj4gKyMgRGVzY3JpYmVzIGEgY2VydGFpbiBw YXJ0IG9mIGEgZmlsZS4NCj4gK0ByZWdpc3RlcigiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4w LjAvdGVybXMvU29mdHdhcmUvU25pcHBldCIsIGNvbXBhY3RfdHlwZT0ic29mdHdhcmVfU25p cHBldCIsIGFic3RyYWN0PUZhbHNlKQ0KPiArY2xhc3Mgc29mdHdhcmVfU25pcHBldChzb2Z0 d2FyZV9Tb2Z0d2FyZUFydGlmYWN0KToNCj4gKyAgICBOT0RFX0tJTkQgPSBOb2RlS2luZC5C bGFua05vZGVPcklSSQ0KPiArICAgIElEX0FMSUFTID0gInNwZHhJZCINCj4gKyAgICBOQU1F RF9JTkRJVklEVUFMUyA9IHsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBAY2xhc3NtZXRob2QN Cj4gKyAgICBkZWYgX3JlZ2lzdGVyX3Byb3BzKGNscyk6DQo+ICsgICAgICAgIHN1cGVyKCku X3JlZ2lzdGVyX3Byb3BzKCkNCj4gKyAgICAgICAgIyBEZWZpbmVzIHRoZSBieXRlIHJhbmdl IGluIHRoZSBvcmlnaW5hbCBob3N0IGZpbGUgdGhhdCB0aGUgc25pcHBldCBpbmZvcm1hdGlv bg0KPiArICAgICAgICAjIGFwcGxpZXMgdG8uDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3Bl cnR5KA0KPiArICAgICAgICAgICAgInNvZnR3YXJlX2J5dGVSYW5nZSIsDQo+ICsgICAgICAg ICAgICBPYmplY3RQcm9wKFBvc2l0aXZlSW50ZWdlclJhbmdlLCBGYWxzZSksDQo+ICsgICAg ICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL1NvZnR3YXJl L2J5dGVSYW5nZSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzb2Z0d2FyZV9ieXRlUmFu Z2UiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgRGVmaW5lcyB0aGUgbGluZSByYW5n ZSBpbiB0aGUgb3JpZ2luYWwgaG9zdCBmaWxlIHRoYXQgdGhlIHNuaXBwZXQgaW5mb3JtYXRp b24NCj4gKyAgICAgICAgIyBhcHBsaWVzIHRvLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9w ZXJ0eSgNCj4gKyAgICAgICAgICAgICJzb2Z0d2FyZV9saW5lUmFuZ2UiLA0KPiArICAgICAg ICAgICAgT2JqZWN0UHJvcChQb3NpdGl2ZUludGVnZXJSYW5nZSwgRmFsc2UpLA0KPiArICAg ICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Tb2Z0d2Fy ZS9saW5lUmFuZ2UiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0ic29mdHdhcmVfbGluZVJh bmdlIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIERlZmluZXMgdGhlIG9yaWdpbmFs IGhvc3QgZmlsZSB0aGF0IHRoZSBzbmlwcGV0IGluZm9ybWF0aW9uIGFwcGxpZXMgdG8uDQo+ ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgInNvZnR3YXJl X3NuaXBwZXRGcm9tRmlsZSIsDQo+ICsgICAgICAgICAgICBPYmplY3RQcm9wKHNvZnR3YXJl X0ZpbGUsIFRydWUpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3Jk Zi8zLjAuMC90ZXJtcy9Tb2Z0d2FyZS9zbmlwcGV0RnJvbUZpbGUiLA0KPiArICAgICAgICAg ICAgbWluX2NvdW50PTEsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJzb2Z0d2FyZV9zbmlw cGV0RnJvbUZpbGUiLA0KPiArICAgICAgICApDQo+ICsNCj4gKw0KPiArIyBTcGVjaWZpZXMg YW4gQUkgcGFja2FnZSBhbmQgaXRzIGFzc29jaWF0ZWQgaW5mb3JtYXRpb24uDQo+ICtAcmVn aXN0ZXIoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0FJL0FJUGFja2FnZSIs IGNvbXBhY3RfdHlwZT0iYWlfQUlQYWNrYWdlIiwgYWJzdHJhY3Q9RmFsc2UpDQo+ICtjbGFz cyBhaV9BSVBhY2thZ2Uoc29mdHdhcmVfUGFja2FnZSk6DQo+ICsgICAgTk9ERV9LSU5EID0g Tm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBJRF9BTElBUyA9ICJzcGR4SWQiDQo+ ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQGNs YXNzbWV0aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9wcm9wcyhjbHMpOg0KPiArICAgICAg ICBzdXBlcigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsgICAgICAgICMgU3RhdGVzIGlmIGEg aHVtYW4gaXMgaW52b2x2ZWQgaW4gdGhlIGRlY2lzaW9ucyBvZiB0aGUgQUkgc29mdHdhcmUu DQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImFpX2F1 dG9ub215VHlwZSIsDQo+ICsgICAgICAgICAgICBFbnVtUHJvcChbDQo+ICsgICAgICAgICAg ICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9QcmVz ZW5jZVR5cGUvbm8iLCAibm8iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1ByZXNlbmNlVHlwZS9ub0Fzc2VydGlv biIsICJub0Fzc2VydGlvbiIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJlc2VuY2VUeXBlL3llcyIsICJ5ZXMi KSwNCj4gKyAgICAgICAgICAgICAgICBdKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkvYXV0b25vbXlUeXBlIiwNCj4gKyAgICAg ICAgICAgIGNvbXBhY3Q9ImFpX2F1dG9ub215VHlwZSIsDQo+ICsgICAgICAgICkNCj4gKyAg ICAgICAgIyBDYXB0dXJlcyB0aGUgZG9tYWluIGluIHdoaWNoIHRoZSBBSSBwYWNrYWdlIGNh biBiZSB1c2VkLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAg ICAgICJhaV9kb21haW4iLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoU3RyaW5nUHJvcCgp KSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVy bXMvQUkvZG9tYWluIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImFpX2RvbWFpbiIsDQo+ ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBJbmRpY2F0ZXMgdGhlIGFtb3VudCBvZiBlbmVy Z3kgY29uc3VtZWQgdG8gdHJhaW4gdGhlIEFJIG1vZGVsLg0KPiArICAgICAgICBjbHMuX2Fk ZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJhaV9lbmVyZ3lDb25zdW1wdGlvbiIsDQo+ ICsgICAgICAgICAgICBPYmplY3RQcm9wKGFpX0VuZXJneUNvbnN1bXB0aW9uLCBGYWxzZSks DQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0FJL2VuZXJneUNvbnN1bXB0aW9uIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImFpX2Vu ZXJneUNvbnN1bXB0aW9uIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFJlY29yZHMg YSBoeXBlcnBhcmFtZXRlciB1c2VkIHRvIGJ1aWxkIHRoZSBBSSBtb2RlbCBjb250YWluZWQg aW4gdGhlIEFJDQo+ICsgICAgICAgICMgcGFja2FnZS4NCj4gKyAgICAgICAgY2xzLl9hZGRf cHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiYWlfaHlwZXJwYXJhbWV0ZXIiLA0KPiArICAg ICAgICAgICAgTGlzdFByb3AoT2JqZWN0UHJvcChEaWN0aW9uYXJ5RW50cnksIEZhbHNlKSks DQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0FJL2h5cGVycGFyYW1ldGVyIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImFpX2h5cGVy cGFyYW1ldGVyIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFByb3ZpZGVzIHJlbGV2 YW50IGluZm9ybWF0aW9uIGFib3V0IHRoZSBBSSBzb2Z0d2FyZSwgbm90IGluY2x1ZGluZyB0 aGUgbW9kZWwNCj4gKyAgICAgICAgIyBkZXNjcmlwdGlvbi4NCj4gKyAgICAgICAgY2xzLl9h ZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiYWlfaW5mb3JtYXRpb25BYm91dEFwcGxp Y2F0aW9uIiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3AoKSwNCj4gKyAgICAgICAgICAg IGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkvaW5mb3JtYXRpb25B Ym91dEFwcGxpY2F0aW9uIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImFpX2luZm9ybWF0 aW9uQWJvdXRBcHBsaWNhdGlvbiIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBEZXNj cmliZXMgcmVsZXZhbnQgaW5mb3JtYXRpb24gYWJvdXQgZGlmZmVyZW50IHN0ZXBzIG9mIHRo ZSB0cmFpbmluZyBwcm9jZXNzLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4g KyAgICAgICAgICAgICJhaV9pbmZvcm1hdGlvbkFib3V0VHJhaW5pbmciLA0KPiArICAgICAg ICAgICAgU3RyaW5nUHJvcCgpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9pbmZvcm1hdGlvbkFib3V0VHJhaW5pbmciLA0KPiAr ICAgICAgICAgICAgY29tcGFjdD0iYWlfaW5mb3JtYXRpb25BYm91dFRyYWluaW5nIiwNCj4g KyAgICAgICAgKQ0KPiArICAgICAgICAjIENhcHR1cmVzIGEgbGltaXRhdGlvbiBvZiB0aGUg QUkgc29mdHdhcmUuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAg ICAgICAgImFpX2xpbWl0YXRpb24iLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgpLA0K PiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9B SS9saW1pdGF0aW9uIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImFpX2xpbWl0YXRpb24i LA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgUmVjb3JkcyB0aGUgbWVhc3VyZW1lbnQg b2YgcHJlZGljdGlvbiBxdWFsaXR5IG9mIHRoZSBBSSBtb2RlbC4NCj4gKyAgICAgICAgY2xz Ll9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiYWlfbWV0cmljIiwNCj4gKyAgICAg ICAgICAgIExpc3RQcm9wKE9iamVjdFByb3AoRGljdGlvbmFyeUVudHJ5LCBGYWxzZSkpLA0K PiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9B SS9tZXRyaWMiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iYWlfbWV0cmljIiwNCj4gKyAg ICAgICAgKQ0KPiArICAgICAgICAjIENhcHR1cmVzIHRoZSB0aHJlc2hvbGQgdGhhdCB3YXMg dXNlZCBmb3IgY29tcHV0YXRpb24gb2YgYSBtZXRyaWMgZGVzY3JpYmVkIGluDQo+ICsgICAg ICAgICMgdGhlIG1ldHJpYyBmaWVsZC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHko DQo+ICsgICAgICAgICAgICAiYWlfbWV0cmljRGVjaXNpb25UaHJlc2hvbGQiLA0KPiArICAg ICAgICAgICAgTGlzdFByb3AoT2JqZWN0UHJvcChEaWN0aW9uYXJ5RW50cnksIEZhbHNlKSks DQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1z L0FJL21ldHJpY0RlY2lzaW9uVGhyZXNob2xkIiwNCj4gKyAgICAgICAgICAgIGNvbXBhY3Q9 ImFpX21ldHJpY0RlY2lzaW9uVGhyZXNob2xkIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAg ICAjIERlc2NyaWJlcyBhbGwgdGhlIHByZXByb2Nlc3Npbmcgc3RlcHMgYXBwbGllZCB0byB0 aGUgdHJhaW5pbmcgZGF0YSBiZWZvcmUgdGhlDQo+ICsgICAgICAgICMgbW9kZWwgdHJhaW5p bmcuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImFp X21vZGVsRGF0YVByZXByb2Nlc3NpbmciLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoU3Ry aW5nUHJvcCgpKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQUkvbW9kZWxEYXRhUHJlcHJvY2Vzc2luZyIsDQo+ICsgICAgICAgICAg ICBjb21wYWN0PSJhaV9tb2RlbERhdGFQcmVwcm9jZXNzaW5nIiwNCj4gKyAgICAgICAgKQ0K PiArICAgICAgICAjIERlc2NyaWJlcyBtZXRob2RzIHRoYXQgY2FuIGJlIHVzZWQgdG8gZXhw bGFpbiB0aGUgbW9kZWwuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAg ICAgICAgICAgImFpX21vZGVsRXhwbGFpbmFiaWxpdHkiLA0KPiArICAgICAgICAgICAgTGlz dFByb3AoU3RyaW5nUHJvcCgpKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkvbW9kZWxFeHBsYWluYWJpbGl0eSIsDQo+ICsgICAg ICAgICAgICBjb21wYWN0PSJhaV9tb2RlbEV4cGxhaW5hYmlsaXR5IiwNCj4gKyAgICAgICAg KQ0KPiArICAgICAgICAjIFJlY29yZHMgdGhlIHJlc3VsdHMgb2YgZ2VuZXJhbCBzYWZldHkg cmlzayBhc3Nlc3NtZW50IG9mIHRoZSBBSSBzeXN0ZW0uDQo+ICsgICAgICAgIGNscy5fYWRk X3Byb3BlcnR5KA0KPiArICAgICAgICAgICAgImFpX3NhZmV0eVJpc2tBc3Nlc3NtZW50IiwN Cj4gKyAgICAgICAgICAgIEVudW1Qcm9wKFsNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9TYWZldHlSaXNrQXNzZXNzbWVu dFR5cGUvaGlnaCIsICJoaWdoIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6 Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkvU2FmZXR5Umlza0Fzc2Vzc21lbnRUeXBl L2xvdyIsICJsb3ciKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgu b3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9TYWZldHlSaXNrQXNzZXNzbWVudFR5cGUvbWVkaXVt IiwgIm1lZGl1bSIpLA0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0FJL1NhZmV0eVJpc2tBc3Nlc3NtZW50VHlwZS9zZXJpb3Vz IiwgInNlcmlvdXMiKSwNCj4gKyAgICAgICAgICAgICAgICBdKSwNCj4gKyAgICAgICAgICAg IGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQUkvc2FmZXR5Umlza0Fz c2Vzc21lbnQiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iYWlfc2FmZXR5Umlza0Fzc2Vz c21lbnQiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgQ2FwdHVyZXMgYSBzdGFuZGFy ZCB0aGF0IGlzIGJlaW5nIGNvbXBsaWVkIHdpdGguDQo+ICsgICAgICAgIGNscy5fYWRkX3By b3BlcnR5KA0KPiArICAgICAgICAgICAgImFpX3N0YW5kYXJkQ29tcGxpYW5jZSIsDQo+ICsg ICAgICAgICAgICBMaXN0UHJvcChTdHJpbmdQcm9wKCkpLA0KPiArICAgICAgICAgICAgaXJp PSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS9zdGFuZGFyZENvbXBsaWFu Y2UiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iYWlfc3RhbmRhcmRDb21wbGlhbmNlIiwN Cj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFJlY29yZHMgdGhlIHR5cGUgb2YgdGhlIG1v ZGVsIHVzZWQgaW4gdGhlIEFJIHNvZnR3YXJlLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9w ZXJ0eSgNCj4gKyAgICAgICAgICAgICJhaV90eXBlT2ZNb2RlbCIsDQo+ICsgICAgICAgICAg ICBMaXN0UHJvcChTdHJpbmdQcm9wKCkpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9BSS90eXBlT2ZNb2RlbCIsDQo+ICsgICAgICAg ICAgICBjb21wYWN0PSJhaV90eXBlT2ZNb2RlbCIsDQo+ICsgICAgICAgICkNCj4gKyAgICAg ICAgIyBSZWNvcmRzIGlmIHNlbnNpdGl2ZSBwZXJzb25hbCBpbmZvcm1hdGlvbiBpcyB1c2Vk IGR1cmluZyBtb2RlbCB0cmFpbmluZyBvcg0KPiArICAgICAgICAjIGNvdWxkIGJlIHVzZWQg ZHVyaW5nIHRoZSBpbmZlcmVuY2UuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0K PiArICAgICAgICAgICAgImFpX3VzZVNlbnNpdGl2ZVBlcnNvbmFsSW5mb3JtYXRpb24iLA0K PiArICAgICAgICAgICAgRW51bVByb3AoWw0KPiArICAgICAgICAgICAgICAgICAgICAoImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0NvcmUvUHJlc2VuY2VUeXBlL25vIiwg Im5vIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYv My4wLjAvdGVybXMvQ29yZS9QcmVzZW5jZVR5cGUvbm9Bc3NlcnRpb24iLCAibm9Bc3NlcnRp b24iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9Db3JlL1ByZXNlbmNlVHlwZS95ZXMiLCAieWVzIiksDQo+ICsgICAgICAg ICAgICAgICAgXSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5vcmcvcmRm LzMuMC4wL3Rlcm1zL0FJL3VzZVNlbnNpdGl2ZVBlcnNvbmFsSW5mb3JtYXRpb24iLA0KPiAr ICAgICAgICAgICAgY29tcGFjdD0iYWlfdXNlU2Vuc2l0aXZlUGVyc29uYWxJbmZvcm1hdGlv biIsDQo+ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsjIFNwZWNpZmllcyBhIGRhdGEgcGFj a2FnZSBhbmQgaXRzIGFzc29jaWF0ZWQgaW5mb3JtYXRpb24uDQo+ICtAcmVnaXN0ZXIoImh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFBhY2thZ2Ui LCBjb21wYWN0X3R5cGU9ImRhdGFzZXRfRGF0YXNldFBhY2thZ2UiLCBhYnN0cmFjdD1GYWxz ZSkNCj4gK2NsYXNzIGRhdGFzZXRfRGF0YXNldFBhY2thZ2Uoc29mdHdhcmVfUGFja2FnZSk6 DQo+ICsgICAgTk9ERV9LSU5EID0gTm9kZUtpbmQuQmxhbmtOb2RlT3JJUkkNCj4gKyAgICBJ RF9BTElBUyA9ICJzcGR4SWQiDQo+ICsgICAgTkFNRURfSU5ESVZJRFVBTFMgPSB7DQo+ICsg ICAgfQ0KPiArDQo+ICsgICAgQGNsYXNzbWV0aG9kDQo+ICsgICAgZGVmIF9yZWdpc3Rlcl9w cm9wcyhjbHMpOg0KPiArICAgICAgICBzdXBlcigpLl9yZWdpc3Rlcl9wcm9wcygpDQo+ICsg ICAgICAgICMgRGVzY3JpYmVzIHRoZSBhbm9ueW1pemF0aW9uIG1ldGhvZHMgdXNlZC4NCj4g KyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZGF0YXNldF9h bm9ueW1pemF0aW9uTWV0aG9kVXNlZCIsDQo+ICsgICAgICAgICAgICBMaXN0UHJvcChTdHJp bmdQcm9wKCkpLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8z LjAuMC90ZXJtcy9EYXRhc2V0L2Fub255bWl6YXRpb25NZXRob2RVc2VkIiwNCj4gKyAgICAg ICAgICAgIGNvbXBhY3Q9ImRhdGFzZXRfYW5vbnltaXphdGlvbk1ldGhvZFVzZWQiLA0KPiAr ICAgICAgICApDQo+ICsgICAgICAgICMgRGVzY3JpYmVzIHRoZSBjb25maWRlbnRpYWxpdHkg bGV2ZWwgb2YgdGhlIGRhdGEgcG9pbnRzIGNvbnRhaW5lZCBpbiB0aGUgZGF0YXNldC4NCj4g KyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZGF0YXNldF9j b25maWRlbnRpYWxpdHlMZXZlbCIsDQo+ICsgICAgICAgICAgICBFbnVtUHJvcChbDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv RGF0YXNldC9Db25maWRlbnRpYWxpdHlMZXZlbFR5cGUvYW1iZXIiLCAiYW1iZXIiKSwNCj4g KyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9EYXRhc2V0L0NvbmZpZGVudGlhbGl0eUxldmVsVHlwZS9jbGVhciIsICJjbGVhciIpLA0K PiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rl cm1zL0RhdGFzZXQvQ29uZmlkZW50aWFsaXR5TGV2ZWxUeXBlL2dyZWVuIiwgImdyZWVuIiks DQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvRGF0YXNldC9Db25maWRlbnRpYWxpdHlMZXZlbFR5cGUvcmVkIiwgInJlZCIpLA0K PiArICAgICAgICAgICAgICAgIF0pLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3Nw ZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L2NvbmZpZGVudGlhbGl0eUxldmVsIiwN Cj4gKyAgICAgICAgICAgIGNvbXBhY3Q9ImRhdGFzZXRfY29uZmlkZW50aWFsaXR5TGV2ZWwi LA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgRGVzY3JpYmVzIGhvdyB0aGUgZGF0YXNl dCB3YXMgY29sbGVjdGVkLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAg ICAgICAgICAgICJkYXRhc2V0X2RhdGFDb2xsZWN0aW9uUHJvY2VzcyIsDQo+ICsgICAgICAg ICAgICBTdHJpbmdQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8vc3BkeC5v cmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvZGF0YUNvbGxlY3Rpb25Qcm9jZXNzIiwNCj4g KyAgICAgICAgICAgIGNvbXBhY3Q9ImRhdGFzZXRfZGF0YUNvbGxlY3Rpb25Qcm9jZXNzIiwN Cj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIERlc2NyaWJlcyB0aGUgcHJlcHJvY2Vzc2lu ZyBzdGVwcyB0aGF0IHdlcmUgYXBwbGllZCB0byB0aGUgcmF3IGRhdGEgdG8gY3JlYXRlIHRo ZSBnaXZlbiBkYXRhc2V0Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAg ICAgICAgICAgICJkYXRhc2V0X2RhdGFQcmVwcm9jZXNzaW5nIiwNCj4gKyAgICAgICAgICAg IExpc3RQcm9wKFN0cmluZ1Byb3AoKSksDQo+ICsgICAgICAgICAgICBpcmk9Imh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvZGF0YVByZXByb2Nlc3NpbmciLA0K PiArICAgICAgICAgICAgY29tcGFjdD0iZGF0YXNldF9kYXRhUHJlcHJvY2Vzc2luZyIsDQo+ ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBUaGUgZmllbGQgZGVzY3JpYmVzIHRoZSBhdmFp bGFiaWxpdHkgb2YgYSBkYXRhc2V0Lg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgN Cj4gKyAgICAgICAgICAgICJkYXRhc2V0X2RhdGFzZXRBdmFpbGFiaWxpdHkiLA0KPiArICAg ICAgICAgICAgRW51bVByb3AoWw0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8v c3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldEF2YWlsYWJpbGl0eVR5 cGUvY2xpY2t0aHJvdWdoIiwgImNsaWNrdGhyb3VnaCIpLA0KPiArICAgICAgICAgICAgICAg ICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNl dEF2YWlsYWJpbGl0eVR5cGUvZGlyZWN0RG93bmxvYWQiLCAiZGlyZWN0RG93bmxvYWQiKSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9EYXRhc2V0L0RhdGFzZXRBdmFpbGFiaWxpdHlUeXBlL3F1ZXJ5IiwgInF1ZXJ5Iiks DQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvRGF0YXNldC9EYXRhc2V0QXZhaWxhYmlsaXR5VHlwZS9yZWdpc3RyYXRpb24iLCAi cmVnaXN0cmF0aW9uIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4 Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0QXZhaWxhYmlsaXR5VHlwZS9z Y3JhcGluZ1NjcmlwdCIsICJzY3JhcGluZ1NjcmlwdCIpLA0KPiArICAgICAgICAgICAgICAg IF0pLA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9EYXRhc2V0L2RhdGFzZXRBdmFpbGFiaWxpdHkiLA0KPiArICAgICAgICAgICAgY29t cGFjdD0iZGF0YXNldF9kYXRhc2V0QXZhaWxhYmlsaXR5IiwNCj4gKyAgICAgICAgKQ0KPiAr ICAgICAgICAjIERlc2NyaWJlcyBwb3RlbnRpYWxseSBub2lzeSBlbGVtZW50cyBvZiB0aGUg ZGF0YXNldC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAg ICAiZGF0YXNldF9kYXRhc2V0Tm9pc2UiLA0KPiArICAgICAgICAgICAgU3RyaW5nUHJvcCgp LA0KPiArICAgICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9EYXRhc2V0L2RhdGFzZXROb2lzZSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJkYXRh c2V0X2RhdGFzZXROb2lzZSIsDQo+ICsgICAgICAgICkNCj4gKyAgICAgICAgIyBDYXB0dXJl cyB0aGUgc2l6ZSBvZiB0aGUgZGF0YXNldC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVy dHkoDQo+ICsgICAgICAgICAgICAiZGF0YXNldF9kYXRhc2V0U2l6ZSIsDQo+ICsgICAgICAg ICAgICBOb25OZWdhdGl2ZUludGVnZXJQcm9wKCksDQo+ICsgICAgICAgICAgICBpcmk9Imh0 dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvZGF0YXNldFNpemUiLA0K PiArICAgICAgICAgICAgY29tcGFjdD0iZGF0YXNldF9kYXRhc2V0U2l6ZSIsDQo+ICsgICAg ICAgICkNCj4gKyAgICAgICAgIyBEZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIGdpdmVuIGRh dGFzZXQuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3BlcnR5KA0KPiArICAgICAgICAgICAg ImRhdGFzZXRfZGF0YXNldFR5cGUiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoRW51bVBy b3AoWw0KPiArICAgICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMu MC4wL3Rlcm1zL0RhdGFzZXQvRGF0YXNldFR5cGUvYXVkaW8iLCAiYXVkaW8iKSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9E YXRhc2V0L0RhdGFzZXRUeXBlL2NhdGVnb3JpY2FsIiwgImNhdGVnb3JpY2FsIiksDQo+ICsg ICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv RGF0YXNldC9EYXRhc2V0VHlwZS9ncmFwaCIsICJncmFwaCIpLA0KPiArICAgICAgICAgICAg ICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0 YXNldFR5cGUvaW1hZ2UiLCAiaW1hZ2UiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL25v QXNzZXJ0aW9uIiwgIm5vQXNzZXJ0aW9uIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS9u dW1lcmljIiwgIm51bWVyaWMiKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczov L3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL290aGVyIiwg Im90aGVyIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9y ZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS9zZW5zb3IiLCAic2Vuc29yIiks DQo+ICsgICAgICAgICAgICAgICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvRGF0YXNldC9EYXRhc2V0VHlwZS9zdHJ1Y3R1cmVkIiwgInN0cnVjdHVyZWQiKSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90 ZXJtcy9EYXRhc2V0L0RhdGFzZXRUeXBlL3N5bnRhY3RpYyIsICJzeW50YWN0aWMiKSwNCj4g KyAgICAgICAgICAgICAgICAgICAgKCJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJt cy9EYXRhc2V0L0RhdGFzZXRUeXBlL3RleHQiLCAidGV4dCIpLA0KPiArICAgICAgICAgICAg ICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvRGF0 YXNldFR5cGUvdGltZXNlcmllcyIsICJ0aW1lc2VyaWVzIiksDQo+ICsgICAgICAgICAgICAg ICAgICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRh c2V0VHlwZS90aW1lc3RhbXAiLCAidGltZXN0YW1wIiksDQo+ICsgICAgICAgICAgICAgICAg ICAgICgiaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNldC9EYXRhc2V0 VHlwZS92aWRlbyIsICJ2aWRlbyIpLA0KPiArICAgICAgICAgICAgICAgIF0pKSwNCj4gKyAg ICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNl dC9kYXRhc2V0VHlwZSIsDQo+ICsgICAgICAgICAgICBtaW5fY291bnQ9MSwNCj4gKyAgICAg ICAgICAgIGNvbXBhY3Q9ImRhdGFzZXRfZGF0YXNldFR5cGUiLA0KPiArICAgICAgICApDQo+ ICsgICAgICAgICMgRGVzY3JpYmVzIGEgbWVjaGFuaXNtIHRvIHVwZGF0ZSB0aGUgZGF0YXNl dC4NCj4gKyAgICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZGF0 YXNldF9kYXRhc2V0VXBkYXRlTWVjaGFuaXNtIiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1By b3AoKSwNCj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAv dGVybXMvRGF0YXNldC9kYXRhc2V0VXBkYXRlTWVjaGFuaXNtIiwNCj4gKyAgICAgICAgICAg IGNvbXBhY3Q9ImRhdGFzZXRfZGF0YXNldFVwZGF0ZU1lY2hhbmlzbSIsDQo+ICsgICAgICAg ICkNCj4gKyAgICAgICAgIyBEZXNjcmliZXMgaWYgYW55IHNlbnNpdGl2ZSBwZXJzb25hbCBp bmZvcm1hdGlvbiBpcyBwcmVzZW50IGluIHRoZSBkYXRhc2V0Lg0KPiArICAgICAgICBjbHMu X2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAgICJkYXRhc2V0X2hhc1NlbnNpdGl2ZVBl cnNvbmFsSW5mb3JtYXRpb24iLA0KPiArICAgICAgICAgICAgRW51bVByb3AoWw0KPiArICAg ICAgICAgICAgICAgICAgICAoImh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0Nv cmUvUHJlc2VuY2VUeXBlL25vIiwgIm5vIiksDQo+ICsgICAgICAgICAgICAgICAgICAgICgi aHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvQ29yZS9QcmVzZW5jZVR5cGUvbm9B c3NlcnRpb24iLCAibm9Bc3NlcnRpb24iKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgKCJo dHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9Db3JlL1ByZXNlbmNlVHlwZS95ZXMi LCAieWVzIiksDQo+ICsgICAgICAgICAgICAgICAgXSksDQo+ICsgICAgICAgICAgICBpcmk9 Imh0dHBzOi8vc3BkeC5vcmcvcmRmLzMuMC4wL3Rlcm1zL0RhdGFzZXQvaGFzU2Vuc2l0aXZl UGVyc29uYWxJbmZvcm1hdGlvbiIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJkYXRhc2V0 X2hhc1NlbnNpdGl2ZVBlcnNvbmFsSW5mb3JtYXRpb24iLA0KPiArICAgICAgICApDQo+ICsg ICAgICAgICMgRGVzY3JpYmVzIHdoYXQgdGhlIGdpdmVuIGRhdGFzZXQgc2hvdWxkIGJlIHVz ZWQgZm9yLg0KPiArICAgICAgICBjbHMuX2FkZF9wcm9wZXJ0eSgNCj4gKyAgICAgICAgICAg ICJkYXRhc2V0X2ludGVuZGVkVXNlIiwNCj4gKyAgICAgICAgICAgIFN0cmluZ1Byb3AoKSwN Cj4gKyAgICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMv RGF0YXNldC9pbnRlbmRlZFVzZSIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJkYXRhc2V0 X2ludGVuZGVkVXNlIiwNCj4gKyAgICAgICAgKQ0KPiArICAgICAgICAjIFJlY29yZHMgdGhl IGJpYXNlcyB0aGF0IHRoZSBkYXRhc2V0IGlzIGtub3duIHRvIGVuY29tcGFzcy4NCj4gKyAg ICAgICAgY2xzLl9hZGRfcHJvcGVydHkoDQo+ICsgICAgICAgICAgICAiZGF0YXNldF9rbm93 bkJpYXMiLA0KPiArICAgICAgICAgICAgTGlzdFByb3AoU3RyaW5nUHJvcCgpKSwNCj4gKyAg ICAgICAgICAgIGlyaT0iaHR0cHM6Ly9zcGR4Lm9yZy9yZGYvMy4wLjAvdGVybXMvRGF0YXNl dC9rbm93bkJpYXMiLA0KPiArICAgICAgICAgICAgY29tcGFjdD0iZGF0YXNldF9rbm93bkJp YXMiLA0KPiArICAgICAgICApDQo+ICsgICAgICAgICMgRGVzY3JpYmVzIGEgc2Vuc29yIHVz ZWQgZm9yIGNvbGxlY3RpbmcgdGhlIGRhdGEuDQo+ICsgICAgICAgIGNscy5fYWRkX3Byb3Bl cnR5KA0KPiArICAgICAgICAgICAgImRhdGFzZXRfc2Vuc29yIiwNCj4gKyAgICAgICAgICAg IExpc3RQcm9wKE9iamVjdFByb3AoRGljdGlvbmFyeUVudHJ5LCBGYWxzZSkpLA0KPiArICAg ICAgICAgICAgaXJpPSJodHRwczovL3NwZHgub3JnL3JkZi8zLjAuMC90ZXJtcy9EYXRhc2V0 L3NlbnNvciIsDQo+ICsgICAgICAgICAgICBjb21wYWN0PSJkYXRhc2V0X3NlbnNvciIsDQo+ ICsgICAgICAgICkNCj4gKw0KPiArDQo+ICsiIiJGb3JtYXQgR3VhcmQiIiINCj4gKyMgZm10 OiBvbg0KPiArDQo+ICsNCj4gK2RlZiBtYWluKCk6DQo+ICsgICAgaW1wb3J0IGFyZ3BhcnNl DQo+ICsgICAgZnJvbSBwYXRobGliIGltcG9ydCBQYXRoDQo+ICsNCj4gKyAgICBwYXJzZXIg PSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0iUHl0aG9uIFNIQUNMIG1v ZGVsIHRlc3QiKQ0KPiArICAgIHBhcnNlci5hZGRfYXJndW1lbnQoImluZmlsZSIsIHR5cGU9 UGF0aCwgaGVscD0iSW5wdXQgZmlsZSIpDQo+ICsgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgi LS1wcmludCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IlByaW50IG9iamVjdCB0cmVl IikNCj4gKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW91dGZpbGUiLCB0eXBlPVBhdGgs IGhlbHA9Ik91dHB1dCBmaWxlIikNCj4gKw0KPiArICAgIGFyZ3MgPSBwYXJzZXIucGFyc2Vf YXJncygpDQo+ICsNCj4gKyAgICBvYmplY3RzZXQgPSBTSEFDTE9iamVjdFNldCgpDQo+ICsg ICAgd2l0aCBhcmdzLmluZmlsZS5vcGVuKCJyIikgYXMgZjoNCj4gKyAgICAgICAgZCA9IEpT T05MRERlc2VyaWFsaXplcigpDQo+ICsgICAgICAgIGQucmVhZChmLCBvYmplY3RzZXQpDQo+ ICsNCj4gKyAgICBpZiBhcmdzLnByaW50Og0KPiArICAgICAgICBwcmludF90cmVlKG9iamVj dHNldC5vYmplY3RzKQ0KPiArDQo+ICsgICAgaWYgYXJncy5vdXRmaWxlOg0KPiArICAgICAg ICB3aXRoIGFyZ3Mub3V0ZmlsZS5vcGVuKCJ3YiIpIGFzIGY6DQo+ICsgICAgICAgICAgICBz ID0gSlNPTkxEU2VyaWFsaXplcigpDQo+ICsgICAgICAgICAgICBzLndyaXRlKG9iamVjdHNl dCwgZikNCj4gKw0KPiArICAgIHJldHVybiAwDQo+ICsNCj4gKw0KPiAraWYgX19uYW1lX18g PT0gIl9fbWFpbl9fIjoNCj4gKyAgICBzeXMuZXhpdChtYWluKCkpDQo+IA0KPiANCj4gDQo+ IC09LT0tPS09LT0tPS09LT0tPS09LT0tDQo+IExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwgbWVz c2FnZXMgc2VudCB0byB0aGlzIGdyb3VwLg0KPiBWaWV3L1JlcGx5IE9ubGluZSAoIzIwMTEw Nik6IGh0dHBzOi8vbGlzdHMub3BlbmVtYmVkZGVkLm9yZy9nL29wZW5lbWJlZGRlZC1jb3Jl L21lc3NhZ2UvMjAxMTA2DQo+IE11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9saXN0cy5vcGVu ZW1iZWRkZWQub3JnL210LzEwNjg1Njg3OC8zNjE2OTQ4DQo+IEdyb3VwIE93bmVyOiBvcGVu ZW1iZWRkZWQtY29yZStvd25lckBsaXN0cy5vcGVuZW1iZWRkZWQub3JnDQo+IFVuc3Vic2Ny aWJlOiBodHRwczovL2xpc3RzLm9wZW5lbWJlZGRlZC5vcmcvZy9vcGVuZW1iZWRkZWQtY29y ZS91bnN1YiBbbWFyay5oYXRsZUBrZXJuZWwuY3Jhc2hpbmcub3JnXQ0KPiAtPS09LT0tPS09 LT0tPS09LT0tPS09LQ0KPiANCg==