From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id 5D80C1FF18C
	for <inbox@lore.proxmox.com>; Mon, 12 May 2025 10:38:13 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 41F4E37ACB;
	Mon, 12 May 2025 10:38:32 +0200 (CEST)
Message-ID: <cf8752be-f877-4832-9a06-1ad4f71993b6@proxmox.com>
Date: Mon, 12 May 2025 10:38:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Lou.Lecrivain@wdz.de, pve-devel@lists.proxmox.com
References: <20250506090041.53080-1-h.duerr@proxmox.com>
 <FR2PPF45D006270C594040B87F6E418E7548588A@FR2PPF45D006270.DEUP281.PROD.OUTLOOK.COM>
 <93bc24cc-2465-4ed2-b62f-d12305d5add3@proxmox.com>
 <FR2PPF45D0062706987369A6C23E8E8DF74858AA@FR2PPF45D006270.DEUP281.PROD.OUTLOOK.COM>
Content-Language: en-US
From: Hannes Duerr <h.duerr@proxmox.com>
In-Reply-To: <FR2PPF45D0062706987369A6C23E8E8DF74858AA@FR2PPF45D006270.DEUP281.PROD.OUTLOOK.COM>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -1.348 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible
 spam tricks
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 KAM_MAILER                  2 Automated Mailer Tag Left in Email
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [nautobotplugin.pm, netboxplugin.pm, phpipamplugin.pm, plugin.pm,
 pveplugin.pm, networktocode.com, ipams.pm]
Subject: Re: [pve-devel] SPAM: RE: [!!ACHTUNG extern!!] - Re: SPAM: [PATCH
 pve-network v4 1/2] ipam: add Nautobot plugin - range workaround questions
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Cc: jonatan.crystall@gwdg.de
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

Ck9uIDUvOS8yNSAxMTozNCwgTG91LkxlY3JpdmFpbkB3ZHouZGUgd3JvdGU6Cj4gUmUsCj4KPiBP
aywgdGhhbmtzIGZvciBjbGFyaWZ5aW5nLiBJbmRlZWQgdGhlIG9mZnNldCBwYXJhbWV0ZXIgaXMg
aW5lZmZlY3RpdmUgKEkgaGF2ZSBsb29rZWQgYXQgdGhlIE5hdXRvYm90IGNvZGUgdGhpcyBtb3Ju
aW5nKS4gVGJxaCBJIGRvbid0IHJlYWxseSBsaWtlIGhhdmluZyB0byBjcmVhdGUgdGhlbiBkZWxl
dGUgYW4gb2JqZWN0IGluIE5hdXRvYm90IGZvciB0aGlzLCBidXQgSSBndWVzcyB0aGVyZSdzIG5v
IG90aGVyIHdheSwgZ2l2ZW4gdGhlIGxpbWl0YXRpb25zIHdlJ3JlIGZhY2VkIHdpdGguCj4KPiBB
bHRlcm5hdGl2ZWx5IGFzIGEgbWlkZGxlIGdyb3VuZCAoYW5kIEkgdGhpbmsgdGhpcyB3b3VsZCBi
ZSBtdWNoIHF1aWNrZXIgdGhhbiBpbXBsZW1lbnRpbmcgSVAgcmFuZ2VzIGluIE5hdXRvYm90KSwg
d2UgY291bGQgaW1wbGVtZW50IHRoZSBvZmZzZXQgcGFyYW1ldGVyIGluIE5hdXRvYm90IGFuZCBj
aGFuZ2UgdGhlIG9yaWdpbmFsIHdvcmthcm91bmQgY29kZSB0byBmaXQgdGhpcywgYW5kIHRoZW4g
cmVxdWlyZSBhIG1pbmltYWwgTmF1dG9ib3QgdmVyc2lvbiAoZm9yIHJhbmdlcyBvciB0aGUgd2hv
bGUgcGx1Z2luKS4gQnV0IElNTyB0aGlzIGRvZXNuJ3QgbWVhbiB3ZSBjYW4ndCBtZXJnZSB0aGlz
LiBXZSBjb3VsZCBjaGFuZ2UgaXQgYWZ0ZXJ3YXJkcy4KeWVzIEkgdW5kZXJzdGFuZCB0aGF0IGl0
J3Mgbm90IG5lY2Vzc2FyaWx5IHRoZSBuaWNlc3Qgc29sdXRpb24sIGJ1dAppbnR1aXRpdmVseSBJ
IHByZWZlcnJlZCB0byBpbXBsZW1lbnQgaXQgdGhpcyB3YXkgYW5kIGhhdmUgbm8gQVBJCnZlcnNp
b24gcmVzdHJpY3Rpb25zIHRoYW4gdG8gaW1wbGVtZW50IHRoZSBvZmZzZXQgcGFyYW1ldGVyLiBC
dXQgSQp3b3VsZG4ndCBoYXZlIGFueSBoYXJkIGZlZWxpbmdzIGFib3V0IGFkYXB0aW5nIHRoZSBj
b2RlIGlmIE5hdXRvYm90CnN1cHBvcnRzIHRoZSBvZmZzZXQgcGFyYW1ldGVyIGFuZCBwZW9wbGUg
cHJlZmVyIGl0IHRoYXQgd2F5LgpIYXZlIHlvdSBhbHJlYWR5IHRlc3RlZCB0aGUgbmV3IGltcGxl
bWVudGF0aW9uPwo+IEkgaGF2ZSBubyBvdGhlciByZW1hcmtzLiBUaGFua3MgYWdhaW4gZm9yIHlv
dXIgd29yay4KPgo+IEJSCj4gTG91Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwo+IERlIDrCoEhhbm5lcyBEdWVyciA8aC5kdWVyckBwcm94bW94LmNvbT4KPiBFbnZv
ecOpIDrCoHZlbmRyZWRpIDkgbWFpIDIwMjUgMTA6NDYKPiDDgCA6wqBMZWNyaXZhaW4sIExvdSAo
V0RaKSA8TG91LkxlY3JpdmFpbkB3ZHouZGU+OyBwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20g
PHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbT4KPiBPYmpldCA6wqBbISFBQ0hUVU5HIGV4dGVy
biEhXSAtIFJlOiBTUEFNOiBbUEFUQ0ggcHZlLW5ldHdvcmsgdjQgMS8yXSBpcGFtOiBhZGQgTmF1
dG9ib3QgcGx1Z2luIC0gcmFuZ2Ugd29ya2Fyb3VuZCBxdWVzdGlvbnMKPiAgIAo+Cj4gT24gNS83
LzI1IDExOjE3LCBMb3UuTGVjcml2YWluQHdkei5kZcKgd3JvdGU6Cj4gSGFubmVzLAo+Cj4gVGhh
bmsgeW91IGZvciBoZWxwaW5nIHdpdGggZ2V0dGluZyB0aGUgTmV0Ym94IHBsdWdpbiBpbiBnb29k
IHNoYXBlLCBpdCdzIGFwcHJlY2lhdGVkLCByZWFsbHkgOikKPgo+IEkganVzdCBoYXZlIHR3byBx
dWVzdGlvbnMgcmVnYXJkaW5nIHRoZSBsYWNrIG9mIHJhbmdlIHN1cHBvcnQgaW4gTmF1dG9ib3Q6
Cj4gLSBXYXMgdGhlcmUgYW4gaXNzdWUgd2l0aCB0aGUgb3JpZ2luYWwgd29ya2Fyb3VuZCBjb2Rl
PyBJIGZpbmQgdGhpcyBvbmUgd2F5IG1vcmUgY29tcGxleCwKPiAgIMKgIGJ1dCBhbHNvIEkgZ3Vl
c3MgSSBjb3VsZCd2ZSBtaXNzZWQgc29tZSBjb3JuZXIgY2FzZShzKS4KPiBZZXMsIHRoZXJlIHdh
cyB0aGUgcHJvYmxlbSB0aGF0IHRoZSBvbGQgdmVyc2lvbiB3b3VsZCBwb3NzaWJseSBvdXRwdXQK
PiBpbnZhbGlkIGZyZWUgSVAgYWRkcmVzc2VzIGlmIHRoZSBJUCByYW5nZSBkaWQgbm90IHN0YXJ0
IGRpcmVjdGx5IGF0Cj4gdGhlIGJlZ2lubmluZyBvZiB0aGUgcHJlZml4LiBBc3N1bWluZyB5b3Ug
aGF2ZSAxOTIuMTY4LjAuMC8xNiBhcwo+IHByZWZpeCwgYWxsIElQIGFkZHJlc3NlcyBhcmUgc3Rp
bGwgZnJlZSBhbmQgeW91IHdhbnQgZnJlZSBpcCBhZGRyZXNzZXMKPiBpbiB0aGUgcmFuZ2UgMTky
LjE2OC42LjEvMTYgLSAxOTIuMTY4LjcuMjU1LzE2IHRoZW4gdGhlIG9sZAo+IGltcGxlbWVudGF0
aW9uIHdvdWxkIHN0aWxsIGhhdmUgcmVjZWl2ZWQgdGhlIGFkZHJlc3Nlcwo+IDE5Mi4xNjguMC5b
MC01MF0vMjQgZnJvbSB0aGUgQVBJLiBUaGlzIGNvdWxkIGhhdmUgYmVlbiByZW1lZGllZCBieSBh
bgo+IG9mZnNldCBwYXJhbWV0ZXIsIGJ1dCB0aGlzIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhl
IEFQSSBlbmRwb2ludC4KPiBJbmNyZWFzaW5nIHRoZSBgbGltaXRgIGlzIGFsc28gbm90IGFuIG9w
dGlvbiwgYXMgdGhlcmUgaXMgYSBtYXhpbXVtCj4gbGltaXQgb2YgMTAwMCBhbmQgeW91IGNhbiBz
dGlsbCBydW4gaW50byBwcm9ibGVtcy4KPiBJIGhhdmUgdGhlcmVmb3JlIG9wdGVkIGZvciB0aGUg
Y3VycmVudCBpbXBsZW1lbnRhdGlvbi4KPgo+Cj4gLSBXaGF0IGhhcHBlbnMgaWYgd2UgdXNlIGEg
cHJlZml4IHdpdGggYSBDSURSIGdyZWF0ZXIgdGhhbiAvMjQgaW4gSVB2NCBvciAvMTIwIGluIElQ
djY/Cj4gICDCoCBEb2VzIG5vdCBiZWluZyBhYmxlIHRvIHNsaWNlIGl0IG1lYW5zIHRoYXQgcmFu
Z2VzIHdpdGggc21hbGwgcHJlZml4ZXMgc3VjaCBhcyB0aGVzZQo+ICAgwqAgd291bGQgYmUgZm9y
YmlkZGVuL25vdCB3b3JraW5nPwo+IE5vLCBhbGwgcHJlZml4ZXMgc2hvdWxkIHdvcmsuIEZvciBz
bWFsbGVyIHByZWZpeGVzIHN1Y2ggYXMgLzI2LCB3ZQo+IHN0aWxsIGNyZWF0ZSBhIC8yNCBwb29s
IGFuZCBzZWFyY2ggaXQgZm9yIGZyZWUgaXBzLCBidXQgdGhlbiBjaGVjawo+IGFnYWluIHdoZXRo
ZXIgdGhlIGlwIGlzIGFjdHVhbGx5IGluIHRoZSBkZXNpcmVkIHJhbmdlIGluIC8yNi4KPgo+IEJS
Cj4gTG91Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IERlIDrC
oEhhbm5lcyBEdWVyciA8aC5kdWVyckBwcm94bW94LmNvbT4KPiBFbnZvecOpIDrCoG1hcmRpIDYg
bWFpIDIwMjUgMTE6MDAKPiDDgCA6wqBwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20gPHB2ZS1k
ZXZlbEBsaXN0cy5wcm94bW94LmNvbT4KPiBDY8KgOsKgSGFubmVzIER1ZXJyIDxoLmR1ZXJyQHBy
b3htb3guY29tPjsgTGVjcml2YWluLCBMb3UgKFdEWikgPExvdS5MZWNyaXZhaW5Ad2R6LmRlPgo+
IE9iamV0IDrCoFshIUFDSFRVTkcgZXh0ZXJuISFdIC0gW1BBVENIIHB2ZS1uZXR3b3JrIHY0IDEv
Ml0gaXBhbTogYWRkIE5hdXRvYm90IHBsdWdpbgo+ICAgCj4gTmF1dG9ib3QgaXMgYSBuZXR3b3Jr
IHNvdXJjZSBvZiB0cnV0aCBbMF0gYW5kIGFzIHN1Y2ggdGhpcyBwbHVnaW4gb2ZmZXJzCj4gdGhl
IHBvc3NpYmlsaXR5IHRvIGF1dG9tYXRpY2FsbHkgZW50ZXIgSVAgYWRkcmVzc2VzIGFuZCBzdWJu
ZXRzCj4gKHByZWZpeGVzIGluIE5hdXRvYm90IGphcmdvbikgaW50byBOYXV0b2JvdCBhcyBzb29u
IGFzIHRoZXkgYXJlIGNyZWF0ZWQKPiBpbiBQcm94bW94IFZFLgo+Cj4gTGltaXRhdGlvbnM6Cj4g
KiBUaGUgSVBBTSBwbHVnaW4gY3VycmVudGx5IGRvZXMgbm90IHJlY29nbml6ZSB3aGV0aGVyIFZN
cy9DVHMgYXJlCj4gIMKgIGFjdGl2ZS9vbmxpbmUgYW5kIGluaXRpYWxseSBzZXRzIHRoZSBzdGF0
dXMgdG8gQWN0aXZlIGJ1dCB3aGVuIHRoZQo+ICDCoCBWTXMvQ1RzIGFyZSBzd2l0Y2hlZCBvZmYg
dGhlIHN0YXR1cyBpcyBub3QgZGVhY3RpdmF0ZWQuCj4gKiBOYXV0b2JvdCBkb2VzIG5vdCBzdXBw
b3J0IHJhbmdlcyB0aGF0IGNhbiBiZSBzZWFyY2hlZCBmb3IgZnJlZSBpcAo+ICDCoCBhZGRyZXNz
ZXMsIHNvIHdlIG1hcCBhcyBtYW55IHBvb2wgcHJlZml4ZXMgdGhhdCB3ZSBzZWFyY2ggdW50aWwg
d2UKPiAgwqAgaGF2ZSBzZWFyY2hlZCB0aGUgZW50aXJlIHJhbmdlIGZvciBmcmVlIGlwIGFkZHJl
c3Nlcwo+ICogTmF1dG9ib3QgaGFzIHRoZSBwb3NzaWJpbGl0eSB0byBtYXAgRE5TIG5hbWVzIHRv
IElQIGFkZHJlc3Nlcy4KPiAgwqAgSG93ZXZlciwgc2luY2Ugd2UgaGF2ZSBubyBzdGFuZGFyZGl6
ZWQgd2F5IHRvIHNldCB0aGUgRE5TIG5hbWVzIGluCj4gIMKgIFByb3htb3ggVkUgKGZvciBjb250
YWluZXJzIHRoZSBjb250YWluZXIgbmFtZSBpbiBQcm94bW94IFZFIGlzIHNldCBhcwo+ICDCoCB0
aGUgaG9zdCBuYW1lIGluIHRoZSBjb250YWluZXIsIGJ1dCB0aGlzIGlzIG5vdCBwb3NzaWJsZSBm
b3IgVk1zKSB3ZQo+ICDCoCByZWZyYWluIGZyb20gc2V0dGluZyBhIEROUyBuYW1lIGF0IHRoZSBt
b21lbnQuCj4gKiBOYXV0b2JvdCBkb2VzIG5vdCBoYXZlIGEgZmllbGQgaW4gSVAgYWRkcmVzcyBv
YmplY3RzIGZvciBhIE1BQyBhZGRyZXNzCj4gIMKgIG9yIHRvIG1hcmsgdGhlbSBhcyBnYXRld2F5
LCBzbyB3ZSB3cml0ZSB0aGlzIGluIHRoZSBjb21tZW50Lgo+Cj4gWzBdIGh0dHBzOi8vbmV0d29y
a3RvY29kZS5jb20vbmF1dG9ib3QvCj4KPiBDby1hdXRob3JlZC1ieTogbG91IGxlY3JpdmFpbiA8
bG91LmxlY3JpdmFpbkB3ZHouZGU+Cj4gU2lnbmVkLW9mZi1ieTogSGFubmVzIER1ZXJyIDxoLmR1
ZXJyQHByb3htb3guY29tPgo+IC0tLQo+Cj4gTm90ZXM6Cj4gIMKgwqDCoCBDaGFuZ2VzIGZyb20g
djMgLT4gdjQ6Cj4gIMKgwqDCoCAqIE1lcmdlIHRoZSBjaGVjayBmb3IgZW1wdHkgcHJlZml4ZXMv
c3VibmV0cyBpbnRvIHRoaXMgY29tbWl0Cj4gIMKgwqDCoCAqIENyZWF0ZSBuYXV0b2JvdF9hcGlf
cmVxdWVzdCB0byB1bmlmeSBBUEkgY2FsbHMKPiAgwqDCoMKgICogYWRkIHVwZGF0ZV9zdWJuZXQg
ZnVuY3Rpb24KPiAgwqDCoMKgICogZml4IGFkZF9yYW5nZV9uZXh0X2ZyZWVpcAo+ICDCoMKgwqAg
KiBmaXggYW5kIHVuaWZ5IGVycm9yIGhhbmRsaW5nCj4gIMKgwqDCoCAqIEZpeCBwZXJsIHN0eWxl
Cj4KPiAgwqBzcmMvUFZFL0FQSTIvTmV0d29yay9TRE4vSXBhbXMucG3CoMKgwqDCoMKgwqDCoMKg
wqDCoCB8wqDCoCAxICsKPiAgwqBzcmMvUFZFL05ldHdvcmsvU0ROL0lwYW1zLnBtwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDMgKwo+ICDCoHNyYy9QVkUvTmV0d29yay9TRE4v
SXBhbXMvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiArLQo+ICDCoHNyYy9QVkUv
TmV0d29yay9TRE4vSXBhbXMvTmF1dG9ib3RQbHVnaW4ucG0gfCA1MTMgKysrKysrKysrKysrKysr
KysrKysKPiAgwqA0IGZpbGVzIGNoYW5nZWQsIDUxOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u
KC0pCj4gIMKgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9QVkUvTmV0d29yay9TRE4vSXBhbXMvTmF1
dG9ib3RQbHVnaW4ucG0KPgo+IGRpZmYgLS1naXQgYS9zcmMvUFZFL0FQSTIvTmV0d29yay9TRE4v
SXBhbXMucG0gYi9zcmMvUFZFL0FQSTIvTmV0d29yay9TRE4vSXBhbXMucG0KPiBpbmRleCAyN2Vh
ZDAyLi44MDc0NTEyIDEwMDY0NAo+IC0tLSBhL3NyYy9QVkUvQVBJMi9OZXR3b3JrL1NETi9JcGFt
cy5wbQo+ICsrKyBiL3NyYy9QVkUvQVBJMi9OZXR3b3JrL1NETi9JcGFtcy5wbQo+IEBAIC0xMiw2
ICsxMiw3IEBAIHVzZSBQVkU6Ok5ldHdvcms6OlNETjo6SXBhbXM6OlBsdWdpbjsKPiAgwqB1c2Ug
UFZFOjpOZXR3b3JrOjpTRE46OklwYW1zOjpQVkVQbHVnaW47Cj4gIMKgdXNlIFBWRTo6TmV0d29y
azo6U0ROOjpJcGFtczo6UGhwSXBhbVBsdWdpbjsKPiAgwqB1c2UgUFZFOjpOZXR3b3JrOjpTRE46
OklwYW1zOjpOZXRib3hQbHVnaW47Cj4gK3VzZSBQVkU6Ok5ldHdvcms6OlNETjo6SXBhbXM6Ok5h
dXRvYm90UGx1Z2luOwo+ICDCoHVzZSBQVkU6Ok5ldHdvcms6OlNETjo6RGhjcDsKPiAgwqB1c2Ug
UFZFOjpOZXR3b3JrOjpTRE46OlZuZXRzOwo+ICDCoHVzZSBQVkU6Ok5ldHdvcms6OlNETjo6Wm9u
ZXM7Cj4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvTmV0d29yay9TRE4vSXBhbXMucG0gYi9zcmMvUFZF
L05ldHdvcmsvU0ROL0lwYW1zLnBtCj4gaW5kZXggYzY4OWI4Zi4uMmVjYjc1ZSAxMDA2NDQKPiAt
LS0gYS9zcmMvUFZFL05ldHdvcmsvU0ROL0lwYW1zLnBtCj4gKysrIGIvc3JjL1BWRS9OZXR3b3Jr
L1NETi9JcGFtcy5wbQo+IEBAIC0xMiwxMSArMTIsMTQgQEAgdXNlIFBWRTo6TmV0d29yazsKPiAg
IAo+ICDCoHVzZSBQVkU6Ok5ldHdvcms6OlNETjo6SXBhbXM6OlBWRVBsdWdpbjsKPiAgwqB1c2Ug
UFZFOjpOZXR3b3JrOjpTRE46OklwYW1zOjpOZXRib3hQbHVnaW47Cj4gK3VzZSBQVkU6Ok5ldHdv
cms6OlNETjo6SXBhbXM6Ok5hdXRvYm90UGx1Z2luOwo+ICDCoHVzZSBQVkU6Ok5ldHdvcms6OlNE
Tjo6SXBhbXM6OlBocElwYW1QbHVnaW47Cj4gIMKgdXNlIFBWRTo6TmV0d29yazo6U0ROOjpJcGFt
czo6UGx1Z2luOwo+ICAgCj4gKwo+ICDCoFBWRTo6TmV0d29yazo6U0ROOjpJcGFtczo6UFZFUGx1
Z2luLT5yZWdpc3RlcigpOwo+ICDCoFBWRTo6TmV0d29yazo6U0ROOjpJcGFtczo6TmV0Ym94UGx1
Z2luLT5yZWdpc3RlcigpOwo+ICtQVkU6Ok5ldHdvcms6OlNETjo6SXBhbXM6Ok5hdXRvYm90UGx1
Z2luLT5yZWdpc3RlcigpOwo+ICDCoFBWRTo6TmV0d29yazo6U0ROOjpJcGFtczo6UGhwSXBhbVBs
dWdpbi0+cmVnaXN0ZXIoKTsKPiAgwqBQVkU6Ok5ldHdvcms6OlNETjo6SXBhbXM6OlBsdWdpbi0+
aW5pdCgpOwo+ICAgCj4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvTmV0d29yay9TRE4vSXBhbXMvTWFr
ZWZpbGUgYi9zcmMvUFZFL05ldHdvcmsvU0ROL0lwYW1zL01ha2VmaWxlCj4gaW5kZXggNGU3ZDY1
Zi4uNzVlNWI5YSAxMDA2NDQKPiAtLS0gYS9zcmMvUFZFL05ldHdvcmsvU0ROL0lwYW1zL01ha2Vm
aWxlCj4gKysrIGIvc3JjL1BWRS9OZXR3b3JrL1NETi9JcGFtcy9NYWtlZmlsZQo+IEBAIC0xLDQg
KzEsNCBAQAo+IC1TT1VSQ0VTPVBsdWdpbi5wbSBQaHBJcGFtUGx1Z2luLnBtIE5ldGJveFBsdWdp
bi5wbSBQVkVQbHVnaW4ucG0KPiArU09VUkNFUz1QbHVnaW4ucG0gUGhwSXBhbVBsdWdpbi5wbSBO
ZXRib3hQbHVnaW4ucG0gUFZFUGx1Z2luLnBtIE5hdXRvYm90UGx1Z2luLnBtCj4gICAKPiAgIAo+
ICDCoFBFUkw1RElSPSR7REVTVERJUn0vdXNyL3NoYXJlL3Blcmw1Cj4gZGlmZiAtLWdpdCBhL3Ny
Yy9QVkUvTmV0d29yay9TRE4vSXBhbXMvTmF1dG9ib3RQbHVnaW4ucG0gYi9zcmMvUFZFL05ldHdv
cmsvU0ROL0lwYW1zL05hdXRvYm90UGx1Z2luLnBtCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBp
bmRleCAwMDAwMDAwLi4yODk3MDI1Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3NyYy9QVkUvTmV0
d29yay9TRE4vSXBhbXMvTmF1dG9ib3RQbHVnaW4ucG0KPiBAQCAtMCwwICsxLDUxMyBAQAo+ICtw
YWNrYWdlIFBWRTo6TmV0d29yazo6U0ROOjpJcGFtczo6TmF1dG9ib3RQbHVnaW47Cj4gKwo+ICt1
c2Ugc3RyaWN0Owo+ICt1c2Ugd2FybmluZ3M7Cj4gK3VzZSBQVkU6OklOb3RpZnk7Cj4gK3VzZSBQ
VkU6OkNsdXN0ZXI7Cj4gK3VzZSBQVkU6OlRvb2xzOwo+ICt1c2UgTmV0QWRkcjo6SVA7Cj4gK3Vz
ZSBOZXQ6OlN1Ym5ldCBxdyhzdWJuZXRfbWF0Y2hlcik7Cj4gKwo+ICt1c2UgYmFzZSgnUFZFOjpO
ZXR3b3JrOjpTRE46OklwYW1zOjpQbHVnaW4nKTsKPiArCj4gK3N1YiB0eXBlIHsKPiArwqDCoMKg
IHJldHVybiAnbmF1dG9ib3QnOwo+ICt9Cj4gKwo+ICtzdWIgcHJvcGVydGllcyB7Cj4gK8KgwqDC
oCByZXR1cm4gewo+ICvCoMKgwqDCoMKgwqAgbmFtZXNwYWNlID0+IHsKPiArwqDCoMKgwqDCoMKg
wqDCoMKgwqAgdHlwZSA9PiAnc3RyaW5nJywKPiArwqDCoMKgwqDCoMKgIH0sCj4gK8KgwqDCoCB9
Owo+ICt9Cj4gKwo+ICtzdWIgb3B0aW9ucyB7Cj4gK8KgwqDCoCByZXR1cm4gewo+ICvCoMKgwqDC
oMKgwqAgdXJsID0+IHsgb3B0aW9uYWwgPT4gMCB9LAo+ICvCoMKgwqDCoMKgwqAgdG9rZW4gPT4g
eyBvcHRpb25hbCA9PiAwIH0sCj4gK8KgwqDCoMKgwqDCoCBuYW1lc3BhY2UgPT4geyBvcHRpb25h
bCA9PiAwIH0sCj4gK8KgwqDCoMKgwqDCoCBmaW5nZXJwcmludCA9PiB7IG9wdGlvbmFsID0+IDEg
fSwKPiArwqDCoMKgIH07Cj4gK30KPiArCj4gK3N1YiBkZWZhdWx0X2lwX3N0YXR1cyB7Cj4gK8Kg
wqDCoCByZXR1cm4gJ0FjdGl2ZSc7Cj4gK30KPiArCj4gK3N1YiBuYXV0b2JvdF9hcGlfcmVxdWVz
dCB7Cj4gK8KgwqDCoCBteSAoJGNvbmZpZywgJG1ldGhvZCwgJHBhdGgsICRwYXJhbXMpID0gQF87
Cj4gKwo+ICvCoMKgwqAgcmV0dXJuIFBWRTo6TmV0d29yazo6U0ROOjphcGlfcmVxdWVzdCgKPiAr
wqDCoMKgwqDCoMKgICRtZXRob2QsCj4gK8KgwqDCoMKgwqDCoCAiJGNvbmZpZy0+e3VybH0ke3Bh
dGh9IiwKPiArwqDCoMKgwqDCoMKgIFsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgJ0NvbnRlbnQt
VHlwZScgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLTgnLAo+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoCAnQXV0aG9yaXphdGlvbicgPT4gInRva2VuICRjb25maWctPnt0b2tlbn0iLAo+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAnQWNjZXB0JyA9PiAiYXBwbGljYXRpb24vanNvbiIKPiAr
wqDCoMKgwqDCoMKgIF0sCj4gK8KgwqDCoMKgwqDCoCAkcGFyYW1zLAo+ICvCoMKgwqDCoMKgwqAg
JGNvbmZpZy0+e2ZpbmdlcnByaW50fSwKPiArwqDCoMKgICk7Cj4gK30KPiArCj4gK3N1YiBhZGRf
c3VibmV0IHsKPiArwqDCoMKgIG15ICgkY2xhc3MsICRjb25maWcsIHVuZGVmLCAkc3VibmV0LCAk
bm9lcnIpID0gQF87Cj4gKwo+ICvCoMKgwqAgbXkgJGNpZHIgPSAkc3VibmV0LT57Y2lkcn07Cj4g
K8KgwqDCoCBteSAkbmFtZXNwYWNlID0gJGNvbmZpZy0+e25hbWVzcGFjZX07Cj4gKwo+ICvCoMKg
wqAgbXkgJGludGVybmFsaWQgPSBnZXRfcHJlZml4X2lkKCRjb25maWcsICRjaWRyLCAkbm9lcnIp
Owo+ICvCoMKgwqAgaWYgKCRpbnRlcm5hbGlkKSB7Cj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gaWYg
JG5vZXJyOwo+ICvCoMKgwqDCoMKgwqAgZGllICJjb3VsZCBub3QgYWRkIHRoZSBzdWJuZXQgJHN1
Ym5ldCBiZWNhdXNlIGl0IGFscmVhZHkgZXhpc3RzIGluIG5hdXRvYm90XG4iCj4gK8KgwqDCoCB9
Cj4gKwo+ICvCoMKgwqAgbXkgJHBhcmFtcyA9IHsKPiArwqDCoMKgwqDCoMKgIHByZWZpeCA9PiAk
Y2lkciwKPiArwqDCoMKgwqDCoMKgIG5hbWVzcGFjZSA9PiAkbmFtZXNwYWNlLAo+ICvCoMKgwqDC
oMKgwqAgc3RhdHVzID0+IGRlZmF1bHRfaXBfc3RhdHVzKCkKPiArwqDCoMKgIH07Cj4gKwo+ICvC
oMKgwqAgZXZhbCB7Cj4gK8KgwqDCoMKgwqDCoCBuYXV0b2JvdF9hcGlfcmVxdWVzdCgkY29uZmln
LCAiUE9TVCIsICIvaXBhbS9wcmVmaXhlcy8iLCAkcGFyYW1zKTsKPiArwqDCoMKgIH07Cj4gK8Kg
wqDCoCBpZiAoJEApIHsKPiArwqDCoMKgwqDCoMKgIHJldHVybiBpZiAkbm9lcnI7Cj4gK8KgwqDC
oMKgwqDCoCBkaWUgImVycm9yIGFkZGluZyB0aGUgc3VibmV0ICRzdWJuZXQgdG8gbmF1dG9ib3Qg
JEBcbiI7Cj4gK8KgwqDCoCB9Cj4gK30KPiArCj4gK3N1YiB1cGRhdGVfc3VibmV0IHsKPiArwqDC
oMKgIG15ICgkY2xhc3MsICRwbHVnaW5fY29uZmlnLCAkc3VibmV0aWQsICRzdWJuZXQsICRvbGRf
c3VibmV0LCAkbm9lcnIpID0gQF87Cj4gK8KgwqDCoCAjIGRoY3AgcmFuZ2VzIGFyZSBub3Qgc3Vw
cG9ydGVkIGluIG5hdXRvYm90IHNvIHdlIGRvbid0IGhhdmUgdG8gdXBkYXRlIHRoZW0KPiArfQo+
ICsKPiArc3ViIGRlbF9zdWJuZXQgewo+ICvCoMKgwqAgbXkgKCRjbGFzcywgJGNvbmZpZywgJHN1
Ym5ldGlkLCAkc3VibmV0LCAkbm9lcnIpID0gQF87Cj4gKwo+ICvCoMKgwqAgbXkgJGNpZHIgPSAk
c3VibmV0LT57Y2lkcn07Cj4gKwo+ICvCoMKgwqAgbXkgJGludGVybmFsaWQgPSBnZXRfcHJlZml4
X2lkKCRjb25maWcsICRjaWRyLCAkbm9lcnIpOwo+ICvCoMKgwqAgaWYgKCEkaW50ZXJuYWxpZCkg
ewo+ICvCoMKgwqDCoMKgwqAgd2FybigiY291bGQgbm90IGZpbmQgZGVsZXRlIHRoZSBzdWJuZXQg
JGNpZHIgYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdCBpbiBuYXV0b2JvdFxuIik7Cj4gK8KgwqDC
oMKgwqDCoCByZXR1cm47Cj4gK8KgwqDCoCB9Cj4gKwo+ICvCoMKgwqAgaWYgKCFzdWJuZXRfaXNf
ZGVsZXRhYmxlKCRjb25maWcsICRzdWJuZXRpZCwgJHN1Ym5ldCwgJGludGVybmFsaWQsICRub2Vy
cikpIHsKPiArwqDCoMKgwqDCoMKgIHJldHVybiBpZiAkbm9lcnI7Cj4gK8KgwqDCoMKgwqDCoCBk
aWUgImNvdWxkIG5vdCBkZWxldGUgdGhlIHN1Ym5ldCAkY2lkciwgaXQgc3RpbGwgY29udGFpbnMg
aXAgYWRkcmVzc2VzIVxuIjsKPiArwqDCoMKgIH0KPiArCj4gK8KgwqDCoCAjIGRlbGV0ZSBhc3Nv
Y2lhdGVkIGdhdGV3YXkgSVAgYWRkcmVzc2VzCj4gK8KgwqDCoCAkY2xhc3MtPmVtcHR5X3N1Ym5l
dCggJGNvbmZpZywgJHN1Ym5ldGlkLCAkc3VibmV0LCAkaW50ZXJuYWxpZCwgJG5vZXJyKTsKPiAr
Cj4gK8KgwqDCoCBldmFsIHsKPiArwqDCoMKgwqDCoMKgIG5hdXRvYm90X2FwaV9yZXF1ZXN0KCRj
b25maWcsICJERUxFVEUiLCAiL2lwYW0vcHJlZml4ZXMvJGludGVybmFsaWQvIik7Cj4gK8KgwqDC
oCB9Owo+ICvCoMKgwqAgaWYgKCRAKSB7Cj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gaWYgJG5vZXJy
Owo+ICvCoMKgwqDCoMKgwqAgZGllICJlcnJvciBkZWxldGluZyBzdWJuZXQgZnJvbSBuYXV0b2Jv
dDogJEBcbiI7Cj4gK8KgwqDCoCB9Cj4gK8KgwqDCoCByZXR1cm4gMTsKPiArfQo+ICsKPiArc3Vi
IGFkZF9pcCB7Cj4gK8KgwqDCoCBteSAoJGNsYXNzLCAkY29uZmlnLCB1bmRlZiwgJHN1Ym5ldCwg
JGlwLCAkaG9zdG5hbWUsICRtYWMsIHVuZGVmLAo+ICvCoMKgwqDCoMKgwqAgJGlzX2dhdGV3YXks
ICRub2VycikgPSBAXzsKPiArCj4gK8KgwqDCoCBteSAkbWFzayA9ICRzdWJuZXQtPnttYXNrfTsK
PiArwqDCoMKgIG15ICRuYW1lc3BhY2UgPSAkY29uZmlnLT57bmFtZXNwYWNlfTsKPiArCj4gK8Kg
wqDCoCBteSAkZGVzY3JpcHRpb24gPSB1bmRlZjsKPiArwqDCoMKgIGlmICgkaXNfZ2F0ZXdheSkg
ewo+ICvCoMKgwqDCoMKgwqAgJGRlc2NyaXB0aW9uID0gJ2dhdGV3YXknOwo+ICvCoMKgwqAgfSBl
bHNpZiAoJG1hYykgewo+ICvCoMKgwqDCoMKgwqAgJGRlc2NyaXB0aW9uID0gIm1hYzokbWFjIjsK
PiArwqDCoMKgIH0KPiArCj4gK8KgwqDCoCBteSAkcGFyYW1zID0gewo+ICvCoMKgwqDCoMKgwqAg
YWRkcmVzcyA9PiAiJGlwLyRtYXNrIiwKPiArwqDCoMKgwqDCoMKgIHR5cGUgPT4gImRoY3AiLAo+
ICvCoMKgwqDCoMKgwqAgZGVzY3JpcHRpb24gPT4gJGRlc2NyaXB0aW9uLAo+ICvCoMKgwqDCoMKg
wqAgbmFtZXNwYWNlID0+ICRuYW1lc3BhY2UsCj4gK8KgwqDCoMKgwqDCoCBzdGF0dXMgPT4gZGVm
YXVsdF9pcF9zdGF0dXMoKQo+ICvCoMKgwqAgfTsKPiArCj4gK8KgwqDCoCBldmFsIHsKPiArwqDC
oMKgwqDCoMKgIG5hdXRvYm90X2FwaV9yZXF1ZXN0KCRjb25maWcsICJQT1NUIiwgIi9pcGFtL2lw
LWFkZHJlc3Nlcy8iLCAkcGFyYW1zKTsKPiArwqDCoMKgIH07Cj4gKwo+ICvCoMKgwqAgaWYgKCRA
KSB7Cj4gK8KgwqDCoMKgwqDCoCBpZiAoJGlzX2dhdGV3YXkpIHsKPiArwqDCoMKgwqDCoMKgwqDC
oMKgwqAgZGllICJlcnJvciBhZGQgc3VibmV0IGlwIHRvIGlwYW06IGlwICRpcCBhbHJlYWR5IGV4
aXN0OiAkQCIKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAhaXNfaXBfZ2F0ZXdh
eSgkY29uZmlnLCAkaXAsICRub2Vycik7Cj4gK8KgwqDCoMKgwqDCoCB9IGVsc2lmICghJG5vZXJy
KSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIGRpZSAiZXJyb3IgYWRkIHN1Ym5ldCBpcCB0byBp
cGFtOiBpcCBhbHJlYWR5IGV4aXN0OiAkQCI7Cj4gK8KgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoCB9
Cj4gK30KPiArCj4gK3N1YiBhZGRfbmV4dF9mcmVlaXAgewo+ICvCoMKgwqAgbXkgKCRjbGFzcywg
JGNvbmZpZywgdW5kZWYsICRzdWJuZXQsICRob3N0bmFtZSwgJG1hYywgdW5kZWYsICRub2Vycikg
PSBAXzsKPiArCj4gK8KgwqDCoCBteSAkY2lkciA9ICRzdWJuZXQtPntjaWRyfTsKPiArwqDCoMKg
IG15ICRuYW1lc3BhY2UgPSAkY29uZmlnLT57bmFtZXNwYWNlfTsKPiArCj4gK8KgwqDCoCBteSAk
aW50ZXJuYWxpZCA9IGdldF9wcmVmaXhfaWQoJGNvbmZpZywgJGNpZHIsICRub2Vycik7Cj4gK8Kg
wqDCoCBpZiAoIWRlZmluZWQoJGludGVybmFsaWQpKSB7Cj4gK8KgwqDCoMKgwqDCoCByZXR1cm4g
aWYgJG5vZXJyOwo+ICvCoMKgwqDCoMKgwqAgZGllICJjb3VsZCBub3QgZmluZCBwcmVmaXggJGNp
ZHIgaW4gbmF1dG9ib3RcbiI7Cj4gK8KgwqDCoCB9Cj4gKwo+ICvCoMKgwqAgbXkgJGRlc2NyaXB0
aW9uID0gdW5kZWY7Cj4gK8KgwqDCoCAkZGVzY3JpcHRpb24gPSAibWFjOiRtYWMiIGlmICRtYWM7
Cj4gKwo+ICvCoMKgwqAgbXkgJHBhcmFtcyA9IHsKPiArwqDCoMKgwqDCoMKgIHR5cGUgPT4gImRo
Y3AiLAo+ICvCoMKgwqDCoMKgwqAgZGVzY3JpcHRpb24gPT4gJGRlc2NyaXB0aW9uLAo+ICvCoMKg
wqDCoMKgwqAgbmFtZXNwYWNlID0+ICRuYW1lc3BhY2UsCj4gK8KgwqDCoMKgwqDCoCBzdGF0dXMg
PT4gZGVmYXVsdF9pcF9zdGF0dXMoKQo+ICvCoMKgwqAgfTsKPiArCj4gK8KgwqDCoCBteSAkcmVz
cG9uc2UgPSBldmFsIHsKPiArwqDCoMKgwqDCoMKgIHJldHVybiBuYXV0b2JvdF9hcGlfcmVxdWVz
dCgKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgJGNvbmZpZywKPiArwqDCoMKgwqDCoMKgwqDCoMKg
wqAgIlBPU1QiLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAiL2lwYW0vcHJlZml4ZXMvJGludGVy
bmFsaWQvYXZhaWxhYmxlLWlwcy8iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAkcGFyYW1zCj4g
K8KgwqDCoMKgwqDCoCApOwo+ICvCoMKgwqAgfTsKPiArwqDCoMKgIGlmICgkQCB8fCAhJHJlc3Bv
bnNlKSB7Cj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gaWYgJG5vZXJyOwo+ICvCoMKgwqDCoMKgwqAg
ZGllICJjb3VsZCBub3QgYWxsb2NhdGUgaXAgaW4gc3VibmV0ICRjaWRyOiAkQFxuIjsKPiArwqDC
oMKgIH0KPiArCj4gK8KgwqDCoCBteSAkaXAgPSBOZXRBZGRyOjpJUC0+bmV3KCRyZXNwb25zZS0+
e2FkZHJlc3N9KTsKPiArCj4gK8KgwqDCoCByZXR1cm4gJGlwLT5hZGRyOwo+ICt9Cj4gKwo+ICtz
dWIgYWRkX3JhbmdlX25leHRfZnJlZWlwIHsKPiArwqDCoMKgIG15ICgkY2xhc3MsICRjb25maWcs
ICRzdWJuZXQsICRyYW5nZSwgJGRhdGEsICRub2VycikgPSBAXzsKPiArCj4gK8KgwqDCoCBteSAk
Y2lkciA9IE5ldEFkZHI6OklQLT5uZXcoJHN1Ym5ldC0+e2NpZHJ9KTsKPiArwqDCoMKgIG15ICRu
YW1lc3BhY2UgPSAkY29uZmlnLT57bmFtZXNwYWNlfTsKPiArCj4gK8KgwqDCoCAjIE5hdXRvYm90
IGRvZXMgbm90IHN1cHBvcnQgSVAgcmFuZ2VzIG9ubHkgcHJlZml4ZXMuCj4gK8KgwqDCoCAjIFdl
IHRoZXJlZm9yZSBkaXZpZGUgdGhlIHJhbmdlIGludG8gc21hbGxlciBwb29sLXByZWZpeGVzLAo+
ICvCoMKgwqAgIyBlYWNoIGNvbnRhaW5pbmcgMjU2IGFkZHJlc3NlcywgYW5kIHNlYXJjaCBmb3Ig
YXZhaWxhYmxlIElQcyBpbiB0aGVtCj4gK8KgwqDCoCBteSAkcHJlZml4X3NpemUgPSAkY2lkci0+
dmVyc2lvbiA9PSA0ID8gMjQgOiAxMjA7Cj4gK8KgwqDCoCBteSAkaW5jcmVtZW50ID0gMjU2Owo+
ICvCoMKgwqAgbXkgJGZvdW5kX2lwID0gdW5kZWY7Cj4gKwo+ICvCoMKgwqAgbXkgJHN0YXJ0X3Jh
bmdlID0gTmV0QWRkcjo6SVAtPm5ldygkcmFuZ2UtPnsnc3RhcnQtYWRkcmVzcyd9LCAkcHJlZml4
X3NpemUpOwo+ICvCoMKgwqAgbXkgJGVuZF9yYW5nZSA9IE5ldEFkZHI6OklQLT5uZXcoJHJhbmdl
LT57J2VuZC1hZGRyZXNzJ30sICRwcmVmaXhfc2l6ZSk7Cj4gK8KgwqDCoCBteSAkbWF0Y2hlciA9
IHN1Ym5ldF9tYXRjaGVyKCRlbmRfcmFuZ2UtPmNpZHIpOwo+ICvCoMKgwqAgbXkgJGN1cnJlbnRf
aXAgPSAkc3RhcnRfcmFuZ2U7Cj4gKwo+ICvCoMKgwqAgd2hpbGUgKDEpIHsKPiArwqDCoMKgwqDC
oMKgIG15ICRjdXJyZW50X2NpZHIgPSAkY3VycmVudF9pcC0+YWRkciAuICIvJHByZWZpeF9zaXpl
IjsKPiArCj4gK8KgwqDCoMKgwqDCoCBteSAkcGFyYW1zID0gewo+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoCBwcmVmaXggPT4gJGN1cnJlbnRfY2lkciwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmFt
ZXNwYWNlID0+ICRuYW1lc3BhY2UsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIHN0YXR1cyA9PiBk
ZWZhdWx0X2lwX3N0YXR1cygpLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCB0eXBlID0+ICJwb29s
Igo+ICvCoMKgwqDCoMKgwqAgfTsKPiArCj4gK8KgwqDCoMKgwqDCoCAjIGNyZWF0ZSB0ZW1wb3Jh
cnkgcG9vbCBwcmVmaXgKPiArwqDCoMKgwqDCoMKgIG15ICR0ZW1wX3ByZWZpeCA9IGV2YWwgewo+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gbmF1dG9ib3RfYXBpX3JlcXVlc3QoJGNvbmZp
ZywgIlBPU1QiLCAiL2lwYW0vcHJlZml4ZXMvIiwgJHBhcmFtcyk7Cj4gK8KgwqDCoMKgwqDCoCB9
Owo+ICsKPiArwqDCoMKgwqDCoMKgICMgc2tpcCBpZiBpdCBpcyBub3QgcG9zc2libGUgdG8gY3Jl
YXRlIGl0Cj4gK8KgwqDCoMKgwqDCoCBuZXh0IGlmICRAOwo+ICsKPiArwqDCoMKgwqDCoMKgIG15
ICR0ZW1wX3ByZWZpeF9pZCA9ICR0ZW1wX3ByZWZpeC0+e2lkfTsKPiArCj4gK8KgwqDCoMKgwqDC
oCAjIEZldGNoIGF2YWlsYWJsZSBJUHMgZnJvbSB0aGUgdGVtcG9yYXJ5IHBvb2wgYW5kIGZpbmQg
YSBtYXRjaGluZyBJUAo+ICvCoMKgwqDCoMKgwqAgbXkgJHJlc3VsdCA9IGV2YWwgewo+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gbmF1dG9ib3RfYXBpX3JlcXVlc3QoCj4gK8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgJGNvbmZpZywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAiR0VUIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiL2lwYW0vcHJlZml4
ZXMvJHRlbXBfcHJlZml4X2lkL2F2YWlsYWJsZS1pcHMvP2xpbWl0PSRpbmNyZW1lbnQiCj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgICk7Cj4gK8KgwqDCoMKgwqDCoCB9Owo+ICsKPiArwqDCoMKgwqDC
oMKgICMgc2VhcmNoIGxpc3QgZm9yIElQcyBpbiBhY3R1YWwgcmFuZ2UKPiArwqDCoMKgwqDCoMKg
IGlmICghJEApIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yZWFjaCBteSAkZW50cnkgKEAk
cmVzdWx0KSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXkgJGlwID0gTmV0QWRk
cjo6SVAtPm5ldygkZW50cnktPnthZGRyZXNzfSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgIyBjb21wYXJpc29uIGlzIG9ubHkgcG9zc2libGUgYmVjYXVzZSB0aGV5IGFyZSBpbiB0
aGUgc2FtZSBzdWJuZXQKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoJHN0YXJ0
X3JhbmdlIDw9ICRpcCAmJiAkaXAgPD0gJGVuZF9yYW5nZSkgewo+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgJGZvdW5kX2lwID0gJGlwLT5hZGRyOwo+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGFzdDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCB9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiArwqDCoMKgwqDCoMKgIH0KPiAr
Cj4gK8KgwqDCoMKgwqDCoCAjIERlbGV0ZSB0ZW1wb3JhcnkgcHJlZml4IHBvb2wKPiArwqDCoMKg
wqDCoMKgIGV2YWwgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBuYXV0b2JvdF9hcGlfcmVxdWVz
dCgkY29uZmlnLCAiREVMRVRFIiwgIi9pcGFtL3ByZWZpeGVzLyR0ZW1wX3ByZWZpeF9pZC8iKTsK
PiArwqDCoMKgwqDCoMKgIH07Cj4gKwo+ICvCoMKgwqDCoMKgwqAgbGFzdCBpZiAkZm91bmRfaXA7
Cj4gKwo+ICvCoMKgwqDCoMKgwqAgIyB3ZSBzZWFyY2hlZCB0aGUgbGFzdCBwb29sIHByZWZpeAo+
ICvCoMKgwqDCoMKgwqAgbGFzdCBpZiAkbWF0Y2hlci0+KCRjdXJyZW50X2lwLT5hZGRyKTsKPiAr
Cj4gK8KgwqDCoMKgwqDCoCAkY3VycmVudF9pcCA9ICRjdXJyZW50X2lwLT5wbHVzKCRpbmNyZW1l
bnQpOwo+ICvCoMKgwqAgfQo+ICsKPiArwqDCoMKgIGlmICghJGZvdW5kX2lwKSB7Cj4gK8KgwqDC
oMKgwqDCoCByZXR1cm4gaWYgJG5vZXJyOwo+ICvCoMKgwqDCoMKgwqAgZGllICJjb3VsZCBub3Qg
YWxsb2NhdGUgaXAgaW4gdGhlIHJhbmdlICIgLiAkc3RhcnRfcmFuZ2UtPmFkZHIgLiAiIC0gIgo+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAuICRlbmRfcmFuZ2UtPmFkZHIgLiAiOiAkQFxuIjsKPiAr
wqDCoMKgIH0KPiArCj4gK8KgwqDCoCAkY2xhc3MtPmFkZF9pcCgkY29uZmlnLCB1bmRlZiwgJHN1
Ym5ldCwgJGZvdW5kX2lwLCAkZGF0YS0+e2hvc3RuYW1lfSwgJGRhdGEtPnttYWN9LCB1bmRlZiwg
MCwgJG5vZXJyKTsKPiArCj4gK8KgwqDCoCByZXR1cm4gJGZvdW5kX2lwOwo+ICt9Cj4gKwo+ICtz
dWIgdXBkYXRlX2lwIHsKPiArwqDCoMKgIG15ICgkY2xhc3MsICRjb25maWcsICRzdWJuZXRpZCwg
JHN1Ym5ldCwgJGlwLCAkaG9zdG5hbWUsICRtYWMsCj4gK8KgwqDCoMKgwqDCoCB1bmRlZiwgJGlz
X2dhdGV3YXksICRub2VycikgPSBAXzsKPiArCj4gK8KgwqDCoCBteSAkbWFzayA9ICRzdWJuZXQt
PnttYXNrfTsKPiArwqDCoMKgIG15ICRuYW1lc3BhY2UgPSAkY29uZmlnLT57bmFtZXNwYWNlfTsK
PiArCj4gK8KgwqDCoCBteSAkZGVzY3JpcHRpb24gPSB1bmRlZjsKPiArwqDCoMKgIGlmICgkaXNf
Z2F0ZXdheSkgewo+ICvCoMKgwqDCoMKgwqAgJGRlc2NyaXB0aW9uID0gJ2dhdGV3YXknCj4gK8Kg
wqDCoCB9IGVsc2lmICgkbWFjKSB7Cj4gK8KgwqDCoMKgwqDCoCAkZGVzY3JpcHRpb24gPSAibWFj
OiRtYWMiOwo+ICvCoMKgwqAgfQo+ICsKPiArwqDCoMKgIG15ICRwYXJhbXMgPSB7Cj4gK8KgwqDC
oMKgwqDCoCBhZGRyZXNzID0+ICIkaXAvJG1hc2siLAo+ICvCoMKgwqDCoMKgwqAgdHlwZSA9PiAi
ZGhjcCIsCj4gK8KgwqDCoMKgwqDCoCBkZXNjcmlwdGlvbiA9PiAkZGVzY3JpcHRpb24sCj4gK8Kg
wqDCoMKgwqDCoCBuYW1lc3BhY2UgPT4gJG5hbWVzcGFjZSwKPiArwqDCoMKgwqDCoMKgIHN0YXR1
cyA9PiBkZWZhdWx0X2lwX3N0YXR1cygpCj4gK8KgwqDCoCB9Owo+ICsKPiArwqDCoMKgIG15ICRp
cF9pZCA9IGdldF9pcF9pZCgkY29uZmlnLCAkaXAsICRub2Vycik7Cj4gK8KgwqDCoCBpZiAoIWRl
ZmluZWQoJGlwX2lkKSkgewo+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIGlmICRub2VycjsKPiArwqDC
oMKgwqDCoMKgIGRpZSAiY291bGQgbm90IGZpbmQgdGhlIGlwICRpcCBpbiBuYXV0b2JvdFxuIjsK
PiArwqDCoMKgIH0KPiArCj4gK8KgwqDCoCBldmFsIHsKPiArwqDCoMKgwqDCoMKgIG5hdXRvYm90
X2FwaV9yZXF1ZXN0KCRjb25maWcsICJQQVRDSCIsICIvaXBhbS9pcC1hZGRyZXNzZXMvJGlwX2lk
LyIsICRwYXJhbXMpOwo+ICvCoMKgwqAgfTsKPiArwqDCoMKgIGlmICgkQCkgewo+ICvCoMKgwqDC
oMKgwqAgcmV0dXJuIGlmICRub2VycjsKPiArwqDCoMKgwqDCoMKgIGRpZSAiZXJyb3IgdXBkYXRp
bmcgaXAgJGlwOiAkQCI7Cj4gK8KgwqDCoCB9Cj4gK30KPiArCj4gKwo+ICtzdWIgZGVsX2lwIHsK
PiArwqDCoMKgIG15ICgkY2xhc3MsICRjb25maWcsIHVuZGVmLCB1bmRlZiwgJGlwLCAkbm9lcnIp
ID0gQF87Cj4gKwo+ICvCoMKgwqAgcmV0dXJuIGlmICEkaXA7Cj4gKwo+ICvCoMKgwqAgbXkgJGlw
X2lkID0gZ2V0X2lwX2lkKCRjb25maWcsICRpcCwgJG5vZXJyKTsKPiArwqDCoMKgIGlmICghZGVm
aW5lZCgkaXBfaWQpKSB7Cj4gK8KgwqDCoMKgwqDCoCB3YXJuKCJjb3VsZCBub3QgZmluZCB0aGUg
aXAgJGlwIGluIG5hdXRvYm90XG4iKTsKPiArwqDCoMKgwqDCoMKgIHJldHVybjsKPiArwqDCoMKg
IH0KPiArCj4gK8KgwqDCoCBldmFsIHsKPiArwqDCoMKgwqDCoMKgIG5hdXRvYm90X2FwaV9yZXF1
ZXN0KCRjb25maWcsICJERUxFVEUiLCAiL2lwYW0vaXAtYWRkcmVzc2VzLyRpcF9pZC8iKTsKPiAr
wqDCoMKgIH07Cj4gK8KgwqDCoCBpZiAoJEApIHsKPiArwqDCoMKgwqDCoMKgIHJldHVybiBpZiAk
bm9lcnI7Cj4gK8KgwqDCoMKgwqDCoCBkaWUgImVycm9yIGRlbGV0aW5nIGlwICRpcCA6ICRAXG4i
Owo+ICvCoMKgwqAgfQo+ICsKPiArwqDCoMKgIHJldHVybiAxOwo+ICt9Cj4gKwo+ICtzdWIgZW1w
dHlfc3VibmV0IHsKPiArwqDCoMKgIG15ICgkY2xhc3MsICRjb25maWcsICRzdWJuZXRpZCwgJHN1
Ym5ldCwgJHN1Ym5ldHV1aWQsICRub2VycikgPSBAXzsKPiArCj4gK8KgwqDCoCBteSAkbmFtZXNw
YWNlID0gJGNvbmZpZy0+e25hbWVzcGFjZX07Cj4gKwo+ICvCoMKgwqAgbXkgJHJlc3BvbnNlID0g
ZXZhbCB7Cj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gbmF1dG9ib3RfYXBpX3JlcXVlc3QoCj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgICRjb25maWcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICJHRVQi
LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAiL2lwYW0vaXAtYWRkcmVzc2VzLz9uYW1lc3BhY2U9
JG5hbWVzcGFjZSZwYXJlbnQ9JHN1Ym5ldHV1aWQiCj4gK8KgwqDCoMKgwqDCoCApOwo+ICvCoMKg
wqAgfTsKPiArwqDCoMKgIGlmICgkQCkgewo+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIGlmICRub2Vy
cjsKPiArwqDCoMKgwqDCoMKgIGRpZSAiY291bGQgbm90IGZpbmQgdGhlIHN1Ym5ldCAkc3VibmV0
IGluIG5hdXRvYm90OiAkQFxuIjsKPiArwqDCoMKgIH0KPiArCj4gK8KgwqDCoCBmb3IgbXkgJGlw
IChAeyRyZXNwb25zZS0+e3Jlc3VsdHN9fSkgewo+ICvCoMKgwqDCoMKgwqAgZGVsX2lwKCRjbGFz
cywgJGNvbmZpZywgdW5kZWYsIHVuZGVmLCAkaXAtPntob3N0fSwgJG5vZXJyKTsKPiArwqDCoMKg
IH0KPiArCj4gK8KgwqDCoCByZXR1cm4gMTsKPiArfQo+ICsKPiArc3ViIHN1Ym5ldF9pc19kZWxl
dGFibGUgewo+ICvCoMKgwqAgbXkgKCRjb25maWcsICRzdWJuZXRpZCwgJHN1Ym5ldCwgJHN1Ym5l
dHV1aWQsICRub2VycikgPSBAXzsKPiArCj4gK8KgwqDCoCBteSAkbmFtZXNwYWNlID0gJGNvbmZp
Zy0+e25hbWVzcGFjZX07Cj4gKwo+ICvCoMKgwqAgbXkgJHJlc3BvbnNlID0gZXZhbCB7Cj4gK8Kg
wqDCoMKgwqDCoCByZXR1cm4gbmF1dG9ib3RfYXBpX3JlcXVlc3QoCj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgICRjb25maWcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICJHRVQiLAo+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoCAiL2lwYW0vaXAtYWRkcmVzc2VzLz9uYW1lc3BhY2U9JG5hbWVzcGFjZSZw
YXJlbnQ9JHN1Ym5ldHV1aWQiCj4gK8KgwqDCoMKgwqDCoCApOwo+ICvCoMKgwqAgfTsKPiArwqDC
oMKgIGlmICgkQCkgewo+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIGlmICRub2VycjsKPiArwqDCoMKg
wqDCoMKgIGRpZSAiZXJyb3IgcXVlcnlpbmcgcHJlZml4ICRzdWJuZXQ6ICRAXG4iOwo+ICvCoMKg
wqAgfQo+ICvCoMKgwqAgbXkgJG5faXBzID0gc2NhbGFyICRyZXNwb25zZS0+e3Jlc3VsdHN9LT5A
KjsKPiArCj4gK8KgwqDCoCAjIGxlYXN0IGNvc3RseSBjaGVjayBvcGVyYXRpb24gMXN0Cj4gK8Kg
wqDCoCByZXR1cm4gMSBpZiAoJG5faXBzID09IDApOwo+ICsKPiArwqDCoMKgIGZvciBteSAkaXAg
KHZhbHVlcyAkcmVzcG9uc2UtPntyZXN1bHRzfS0+QCopIHsKPiArwqDCoMKgwqDCoMKgIGlmICgh
aXNfaXBfZ2F0ZXdheSgkY29uZmlnLCAkaXAtPntob3N0fSwgJG5vZXJyKSkgewo+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoCAjIHNvbWUgcmVtYWluaW5nIElQIGlzIG5vdCBhIGdhdGV3YXkgc28gd2Ug
Y2FuJ3QgZGVsZXRlIHRoZSBzdWJuZXQKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7
Cj4gK8KgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoCB9Cj4gK8KgwqDCoCAjYWxsIHJlbWFpbmluZyBJ
UHMgYXJlIGdhdGV3YXlzCj4gK8KgwqDCoCByZXR1cm4gMTsKPiArfQo+ICsKPiArc3ViIHZlcmlm
eV9hcGkgewo+ICvCoMKgwqAgbXkgKCRjbGFzcywgJGNvbmZpZykgPSBAXzsKPiArCj4gK8KgwqDC
oCBteSAkbmFtZXNwYWNlID0gJGNvbmZpZy0+e25hbWVzcGFjZX07Cj4gKwo+ICvCoMKgwqAgIyBj
aGVjayBpZiB0aGUgbmFtZXNwYWNlIGFuZCB0aGUgc3RhdHVzICJBY3RpdmUiIGV4aXN0Cj4gK8Kg
wqDCoCBldmFsIHsKPiArwqDCoMKgwqDCoMKgIGdldF9uYW1lc3BhY2VfaWQoJGNvbmZpZywgJG5h
bWVzcGFjZSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy8gZGllICJuYW1lc3BhY2UgJG5hbWVz
cGFjZSBkb2VzIG5vdCBleGlzdCI7Cj4gK8KgwqDCoMKgwqDCoCBnZXRfc3RhdHVzX2lkKCRjb25m
aWcsIGRlZmF1bHRfaXBfc3RhdHVzKCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIGRpZSAi
dGhlIHN0YXR1cyAiIC4gZGVmYXVsdF9pcF9zdGF0dXMoKSAuICIgZG9lcyBub3QgZXhpc3QiOwo+
ICvCoMKgwqAgfTsKPiArwqDCoMKgIGlmICgkQCkgewo+ICvCoMKgwqDCoMKgwqAgZGllICJjb3Vs
ZCBub3QgdXNlIG5hdXRvYm90IGFwaTogJEBcbiI7Cj4gK8KgwqDCoCB9Cj4gK30KPiArCj4gK3N1
YiBnZXRfaXBzX2Zyb21fbWFjIHsKPiArwqDCoMKgIG15ICgkY2xhc3MsICRjb25maWcsICRtYWMs
ICR6b25lKSA9IEBfOwo+ICsKPiArwqDCoMKgIG15ICRpcDQgPSB1bmRlZjsKPiArwqDCoMKgIG15
ICRpcDYgPSB1bmRlZjsKPiArCj4gK8KgwqDCoCBteSAkZGF0YSA9IGV2YWwgewo+ICvCoMKgwqDC
oMKgwqAgbmF1dG9ib3RfYXBpX3JlcXVlc3QoJGNvbmZpZywgIkdFVCIsICIvaXBhbS9pcC1hZGRy
ZXNzZXMvP3E9JG1hYyIpOwo+ICvCoMKgwqAgfTsKPiArwqDCoMKgIGlmICgkQCkgewo+ICvCoMKg
wqDCoMKgwqAgZGllICJjb3VsZCBub3QgcXVlcnkgaXAgYWRkcmVzcyBlbnRyeSBmb3IgbWFjICRt
YWM6ICRAIjsKPiArwqDCoMKgIH0KPiArCj4gK8KgwqDCoCBmb3IgbXkgJGlwIChAeyRkYXRhLT57
cmVzdWx0c319KSB7Cj4gK8KgwqDCoMKgwqDCoCBpZiAoJGlwLT57aXBfdmVyc2lvbn0gPT0gNCAm
JiAhJGlwNCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAoJGlwNCwgdW5kZWYpID0gc3BsaXQo
L1wvLywgJGlwLT57YWRkcmVzc30pOwo+ICvCoMKgwqDCoMKgwqAgfQo+ICsKPiArwqDCoMKgwqDC
oMKgIGlmICgkaXAtPntpcF92ZXJzaW9ufSA9PSA2ICYmICEkaXA2KSB7Cj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgICgkaXA2LCB1bmRlZikgPSBzcGxpdCgvXC8vLCAkaXAtPnthZGRyZXNzfSk7Cj4g
K8KgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoCB9Cj4gKwo+ICvCoMKgwqAgcmV0dXJuICgkaXA0LCAk
aXA2KTsKPiArfQo+ICsKPiArc3ViIG9uX3VwZGF0ZV9ob29rIHsKPiArwqDCoMKgIG15ICgkY2xh
c3MsICRjb25maWcpID0gQF87Cj4gKwo+ICvCoMKgwqAgUFZFOjpOZXR3b3JrOjpTRE46OklwYW1z
OjpOYXV0b2JvdFBsdWdpbjo6dmVyaWZ5X2FwaSgkY2xhc3MsICRjb25maWcpOwo+ICt9Cj4gKwo+
ICtzdWIgZ2V0X2lwX2lkIHsKPiArwqDCoMKgIG15ICgkY29uZmlnLCAkaXAsICRub2VycikgPSBA
XzsKPiArCj4gK8KgwqDCoCBteSAkcmVzdWx0ID0gZXZhbCB7Cj4gK8KgwqDCoMKgwqDCoCByZXR1
cm4gbmF1dG9ib3RfYXBpX3JlcXVlc3QoJGNvbmZpZywgIkdFVCIsICIvaXBhbS9pcC1hZGRyZXNz
ZXMvP2FkZHJlc3M9JGlwIik7Cj4gK8KgwqDCoCB9Owo+ICvCoMKgwqAgaWYgKCRAKSB7Cj4gK8Kg
wqDCoMKgwqDCoCByZXR1cm4gaWYgJG5vZXJyOwo+ICvCoMKgwqDCoMKgwqAgZGllICJlcnJvciB3
aGlsZSBxdWVyeWluZyBmb3IgaXAgJGlwIGlkOiAkQFxuIjsKPiArwqDCoMKgIH0KPiArCj4gK8Kg
wqDCoCBteSAkZGF0YSA9IEB7JHJlc3VsdC0+e3Jlc3VsdHN9fVswXTsKPiArwqDCoMKgIHJldHVy
biAkZGF0YS0+e2lkfTsKPiArfQo+ICsKPiArc3ViIGdldF9wcmVmaXhfaWQgewo+ICvCoMKgwqAg
bXkgKCRjb25maWcsICRjaWRyLCAkbm9lcnIpID0gQF87Cj4gKwo+ICvCoMKgwqAgbXkgJHJlc3Vs
dCA9IGV2YWwgewo+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIG5hdXRvYm90X2FwaV9yZXF1ZXN0KCRj
b25maWcsICJHRVQiLCAiL2lwYW0vcHJlZml4ZXMvP3ByZWZpeD0kY2lkciIpOwo+ICvCoMKgwqAg
fTsKPiArwqDCoMKgIGlmICgkQCkgewo+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIGlmICRub2VycjsK
PiArwqDCoMKgwqDCoMKgIGRpZSAiZXJyb3Igd2hpbGUgcXVlcnlpbmcgZm9yIGNpZHIgJGNpZHIg
cHJlZml4IGlkOiAkQFxuIjsKPiArwqDCoMKgIH0KPiArCj4gK8KgwqDCoCBteSAkZGF0YSA9IEB7
JHJlc3VsdC0+e3Jlc3VsdHN9fVswXTsKPiArwqDCoMKgIHJldHVybiAkZGF0YS0+e2lkfTsKPiAr
fQo+ICsKPiArc3ViIGdldF9uYW1lc3BhY2VfaWQgewo+ICvCoMKgwqAgbXkgKCRjb25maWcsICRu
YW1lc3BhY2UsICRub2VycikgPSBAXzsKPiArCj4gK8KgwqDCoCBteSAkcmVzdWx0ID0gZXZhbCB7
Cj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBuYXV0b2JvdF9hcGlfcmVxdWVzdCgkY29uZmlnLCAi
R0VUIiwgIi9pcGFtL25hbWVzcGFjZXMvP25hbWU9JG5hbWVzcGFjZSIpOwo+ICvCoMKgwqAgfTsK
PiArwqDCoMKgIGlmICgkQCkgewo+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIGlmICRub2VycjsKPiAr
wqDCoMKgwqDCoMKgIGRpZSAiZXJyb3Igd2hpbGUgcXVlcnlpbmcgZm9yIG5hbWVzcGFjZSAkbmFt
ZXNwYWNlIGlkOiAkQFxuIjsKPiArwqDCoMKgIH0KPiArCj4gK8KgwqDCoCBteSAkZGF0YSA9IEB7
JHJlc3VsdC0+e3Jlc3VsdHN9fVswXTsKPiArwqDCoMKgIHJldHVybiAkZGF0YS0+e2lkfTsKPiAr
fQo+ICsKPiArc3ViIGdldF9zdGF0dXNfaWQgewo+ICvCoMKgwqAgbXkgKCRjb25maWcsICRzdGF0
dXMsICRub2VycikgPSBAXzsKPiArCj4gK8KgwqDCoCBteSAkcmVzdWx0ID0gZXZhbCB7Cj4gK8Kg
wqDCoMKgwqDCoCByZXR1cm4gbmF1dG9ib3RfYXBpX3JlcXVlc3QoJGNvbmZpZywgIkdFVCIsICIv
ZXh0cmFzL3N0YXR1c2VzLz9uYW1lPSRzdGF0dXMiKTsKPiArwqDCoMKgIH07Cj4gK8KgwqDCoCBp
ZiAoJEApIHsKPiArwqDCoMKgwqDCoMKgIHJldHVybiBpZiAkbm9lcnI7Cj4gK8KgwqDCoMKgwqDC
oCBkaWUgImVycm9yIHdoaWxlIHF1ZXJ5aW5nIGZvciBzdGF0dXMgJHN0YXR1cyBpZDogJEBcbiI7
Cj4gK8KgwqDCoCB9Cj4gKwo+ICvCoMKgwqAgbXkgJGRhdGEgPSBAeyRyZXN1bHQtPntyZXN1bHRz
fX1bMF07Cj4gK8KgwqDCoCByZXR1cm4gJGRhdGEtPntpZH07Cj4gK30KPiArCj4gK3N1YiBpc19p
cF9nYXRld2F5IHsKPiArwqDCoMKgIG15ICgkY29uZmlnLCAkaXAsICRub2VycikgPSBAXzsKPiAr
Cj4gK8KgwqDCoCBteSAkcmVzdWx0ID0gZXZhbCB7Cj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBu
YXV0b2JvdF9hcGlfcmVxdWVzdCgkY29uZmlnLCAiR0VUIiwgIi9pcGFtL2lwLWFkZHJlc3Nlcy8/
YWRkcmVzcz0kaXAiKTsKPiArwqDCoMKgIH07Cj4gK8KgwqDCoCBpZiAoJEApIHsKPiArwqDCoMKg
wqDCoMKgIHJldHVybiBpZiAkbm9lcnI7Cj4gK8KgwqDCoMKgwqDCoCBkaWUgImVycm9yIHdoaWxl
IGNoZWNraW5nIGlmICRpcCBpcyBhIGdhdGV3YXk6ICRAXG4iOwo+ICvCoMKgwqAgfQo+ICsKPiAr
wqDCoMKgIG15ICRkYXRhID0gQHskcmVzdWx0LT57cmVzdWx0c319WzBdOwo+ICvCoMKgwqAgcmV0
dXJuICRkYXRhLT57ZGVzY3JpcHRpb259IGVxICdnYXRld2F5JzsKPiArfQo+ICsKPiArMTsKPiAt
LQo+IDIuMzkuNQo+Cj4KPgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3gu
Y29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2
ZS1kZXZlbAo=