From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pbs-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id 816C81FF15F
	for <inbox@lore.proxmox.com>; Mon,  2 Dec 2024 14:00:40 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 4DB5B17B38;
	Mon,  2 Dec 2024 14:00:46 +0100 (CET)
Mime-Version: 1.0
Date: Mon, 02 Dec 2024 14:00:08 +0100
Message-Id: <D618F1T9V1R9.2LQM0TAVC17O3@proxmox.com>
To: "Shannon Sterz" <s.sterz@proxmox.com>, <pbs-devel@lists.proxmox.com>
From: "Shannon Sterz" <s.sterz@proxmox.com>
X-Mailer: aerc 0.18.2-0-ge037c095a049-dirty
References: <20241129105321.143877-1-s.sterz@proxmox.com>
In-Reply-To: <20241129105321.143877-1-s.sterz@proxmox.com>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.038 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_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: Re: [pbs-devel] [PATCH proxmox 1/4] sendmail: add sendmail crate
X-BeenThere: pbs-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Backup Server development discussion
 <pbs-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/>
List-Post: <mailto:pbs-devel@lists.proxmox.com>
List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox Backup Server development discussion
 <pbs-devel@lists.proxmox.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pbs-devel-bounces@lists.proxmox.com
Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com>

U3VwZXJzZWVkZWQtYnk6IGh0dHBzOi8vbG9yZS5wcm94bW94LmNvbS9wYnMtZGV2ZWwvMjAyNDEy
MDIxMjU4NTkuMTkxNDU1LTEtcy5zdGVyekBwcm94bW94LmNvbS8KCk9uIEZyaSBOb3YgMjksIDIw
MjQgYXQgMTE6NTMgQU0gQ0VULCBTaGFubm9uIFN0ZXJ6IHdyb3RlOgo+IGFkZCB0aGUgYHByb3ht
b3gtc2VuZG1haWxgIGNyYXRlIHRoYXQgbWFrZXMgaXQgZWFzaWVyIHRvIHNlbmQgbWFpbHMgdmlh
Cj4gdGhlIGBzZW5kbWFpbGAgdXRpbGl0eS4gZmVhdHVyZXMgaW5jbHVkZToKPgo+IC0gbXVsdGlw
YXJ0L2FsdGVybmF0aXZlIHN1cHBvcnQgZm9yIGh0bWwrcGxhaW4gdGV4dCBtYWlscwo+IC0gbXVs
aXRwYXJ0L21peGVkIHN1cHBvcnQgZm9yIG1haWxzIHdpdGggYXR0YWNobWVudHMKPiAtIGF1dG9t
YXRpYyBuZXN0aW5nIG9mIG11bHRpcGFydC9hbHRlcm5hdGl2ZSBhbmQgbXVsdGlwYXJ0L21peGVk
IHBhcnRzCj4gLSBtYXNraW5nIHJlY2lwaWVudHMgdG8gYXZvaWQgZGlzY2xvc2luZyB0aGVtIHRv
IGV2ZXJ5b25lCj4gLSBlbmNvZGluZyBTdWJqZWN0LCBUbywgRnJvbSwgYW5kIGF0dGFjaG1lbnQg
ZmlsZSBuYW1lcyBjb3JyZWN0bHkKPiAtIGFkZGluZyBhbiBgQXV0by1TdWJtaXR0ZWRgIGhlYWRl
ciB0byBhdm9pZCB0cmlnZ2VyaW5nIGF1dG9tYXRlZCBtYWlscwo+Cj4gYWxzbyBpbmNsdWRlcyBz
ZXZlcmFsIHRlc3RzIHRvIGVuc3VyZSB0aGF0IG1haWxzIGFyZSBmb3JtYXR0ZWQKPiBjb3JyZWN0
bHkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaGFubm9uIFN0ZXJ6IDxzLnN0ZXJ6QHByb3htb3guY29t
Pgo+IC0tLQo+ICBDYXJnby50b21sICAgICAgICAgICAgICAgICAgfCAgIDIgKwo+ICBwcm94bW94
LXNlbmRtYWlsL0NhcmdvLnRvbWwgfCAgMTYgKwo+ICBwcm94bW94LXNlbmRtYWlsL3NyYy9saWIu
cnMgfCA2NjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDMgZmlsZXMg
Y2hhbmdlZCwgNjgyIGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gt
c2VuZG1haWwvQ2FyZ28udG9tbAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1zZW5kbWFp
bC9zcmMvbGliLnJzCj4KPiBkaWZmIC0tZ2l0IGEvQ2FyZ28udG9tbCBiL0NhcmdvLnRvbWwKPiBp
bmRleCA4NGZiZTk3OS4uYjYyZmNkNTAgMTAwNjQ0Cj4gLS0tIGEvQ2FyZ28udG9tbAo+ICsrKyBi
L0NhcmdvLnRvbWwKPiBAQCAtMzMsNiArMzMsNyBAQCBtZW1iZXJzID0gWwo+ICAgICAgInByb3ht
b3gtcnJkLWFwaS10eXBlcyIsCj4gICAgICAicHJveG1veC1zY2hlbWEiLAo+ICAgICAgInByb3ht
b3gtc2VjdGlvbi1jb25maWciLAo+ICsgICAgInByb3htb3gtc2VuZG1haWwiLAo+ICAgICAgInBy
b3htb3gtc2VyZGUiLAo+ICAgICAgInByb3htb3gtc2hhcmVkLWNhY2hlIiwKPiAgICAgICJwcm94
bW94LXNoYXJlZC1tZW1vcnkiLAo+IEBAIC0xMzgsNiArMTM5LDcgQEAgcHJveG1veC1yZXN0LXNl
cnZlciA9IHsgdmVyc2lvbiA9ICIwLjguMCIsIHBhdGggPSAicHJveG1veC1yZXN0LXNlcnZlciIg
fQo+ICBwcm94bW94LXJvdXRlciA9IHsgdmVyc2lvbiA9ICIzLjAuMCIsIHBhdGggPSAicHJveG1v
eC1yb3V0ZXIiIH0KPiAgcHJveG1veC1zY2hlbWEgPSB7IHZlcnNpb24gPSAiMy4xLjIiLCBwYXRo
ID0gInByb3htb3gtc2NoZW1hIiB9Cj4gIHByb3htb3gtc2VjdGlvbi1jb25maWcgPSB7IHZlcnNp
b24gPSAiMi4xLjAiLCBwYXRoID0gInByb3htb3gtc2VjdGlvbi1jb25maWciIH0KPiArcHJveG1v
eC1zZW5kbWFpbCA9IHsgdmVyc2lvbiA9ICIwLjEuMCIsIHBhdGggPSAicHJveG1veC1zZW5kbWFp
bCIgfQo+ICBwcm94bW94LXNlcmRlID0geyB2ZXJzaW9uID0gIjAuMS4xIiwgcGF0aCA9ICJwcm94
bW94LXNlcmRlIiwgZmVhdHVyZXMgPSBbICJzZXJkZV9qc29uIiBdIH0KPiAgcHJveG1veC1zaGFy
ZWQtbWVtb3J5ID0geyB2ZXJzaW9uID0gIjAuMy4wIiwgcGF0aCA9ICJwcm94bW94LXNoYXJlZC1t
ZW1vcnkiIH0KPiAgcHJveG1veC1zb3J0YWJsZS1tYWNybyA9IHsgdmVyc2lvbiA9ICIwLjEuMyIs
IHBhdGggPSAicHJveG1veC1zb3J0YWJsZS1tYWNybyIgfQo+IGRpZmYgLS1naXQgYS9wcm94bW94
LXNlbmRtYWlsL0NhcmdvLnRvbWwgYi9wcm94bW94LXNlbmRtYWlsL0NhcmdvLnRvbWwKPiBuZXcg
ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwLi43OTBiMzI0Ygo+IC0tLSAvZGV2L251
bGwKPiArKysgYi9wcm94bW94LXNlbmRtYWlsL0NhcmdvLnRvbWwKPiBAQCAtMCwwICsxLDE2IEBA
Cj4gK1twYWNrYWdlXQo+ICtuYW1lID0gInByb3htb3gtc2VuZG1haWwiCj4gK3ZlcnNpb24gPSAi
MC4xLjAiCj4gK2F1dGhvcnMud29ya3NwYWNlID0gdHJ1ZQo+ICtlZGl0aW9uLndvcmtzcGFjZSA9
IHRydWUKPiArbGljZW5zZS53b3Jrc3BhY2UgPSB0cnVlCj4gK3JlcG9zaXRvcnkud29ya3NwYWNl
ID0gdHJ1ZQo+ICtob21lcGFnZS53b3Jrc3BhY2UgPSB0cnVlCj4gK2V4Y2x1ZGUud29ya3NwYWNl
ID0gdHJ1ZQo+ICtydXN0LXZlcnNpb24ud29ya3NwYWNlID0gdHJ1ZQo+ICsKPiArW2RlcGVuZGVu
Y2llc10KPiArYW55aG93ID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KPiArYmFzZTY0ID0geyB3b3Jr
c3BhY2UgPSB0cnVlIH0KPiArcGVyY2VudC1lbmNvZGluZyA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9
Cj4gK3Byb3htb3gtdGltZSA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9Cj4gZGlmZiAtLWdpdCBhL3By
b3htb3gtc2VuZG1haWwvc3JjL2xpYi5ycyBiL3Byb3htb3gtc2VuZG1haWwvc3JjL2xpYi5ycwo+
IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmM5N2MzMTg2Cj4gLS0tIC9k
ZXYvbnVsbAo+ICsrKyBiL3Byb3htb3gtc2VuZG1haWwvc3JjL2xpYi5ycwo+IEBAIC0wLDAgKzEs
NjY0IEBACj4gKy8vIQo+ICsvLyEgVGhpcyBsaWJyYXJ5IGltcGxlbWVudHMgdGhlIFtgTWFpbGBd
IHRyYWl0IHdoaWNoIG1ha2VzIGl0IGVhc3kgdG8gc2VuZCBlbWFpbHMgd2l0aCBhdHRhY2htZW50
cwo+ICsvLyEgYW5kIGFsdGVybmF0aXZlIGh0bWwgcGFydHMgdG8gb25lIG9yIG11bHRpcGxlIHJl
Y2VpdmVycyB2aWEgYGBzZW5kbWFpbGBgLgo+ICsvLyEKPiArCj4gK3VzZSBzdGQ6OmlvOjpXcml0
ZTsKPiArdXNlIHN0ZDo6cHJvY2Vzczo6e0NvbW1hbmQsIFN0ZGlvfTsKPiArCj4gK3VzZSBhbnlo
b3c6OntiYWlsLCBDb250ZXh0LCBFcnJvcn07Cj4gK3VzZSBwZXJjZW50X2VuY29kaW5nOjp7dXRm
OF9wZXJjZW50X2VuY29kZSwgQXNjaWlTZXQsIENPTlRST0xTfTsKPiArCj4gKy8vIENoYXJhY3Rl
cnMgaW4gdGhpcyBzZXQgd2lsbCBiZSBlbmNvZGVkLCBzbyByZXByb2R1Y2UgdGhlIGludmVyc2Ug
b2YgdGhlIHNldCBkZXNjcmliZWQgYnkgUkZDNTk4Nwo+ICsvLyBTZWN0aW9uIDMuMi4xIGBhdHRy
LWNoYXJgLCBhcyB0aGF0IGRlc2NyaWJlcyBhbGwgY2hhcmFjdGVycyB0aGF0ICoqZG9uJ3QqKiBu
ZWVkIGVuY29kaW5nOgo+ICsvLwo+ICsvLyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2Rv
Yy9odG1sL3JmYzU5ODcjc2VjdGlvbi0zLjIuMQo+ICsvLwo+ICsvLyBgQ09OVFJPTFNgIGNvbnRh
aW5zIGFsbCBjb250cm9sIGNoYXJhY3RlcnMgMHgwMCAtIDB4MWYgYW5kIDB4N2YgYXMgd2VsbCBh
cyBhbGwgbm9uLWFzY2lpCj4gKy8vIGNoYXJhY3RlcnMsIHNvIHdlIG5lZWQgdG8gYWRkIGFsbCBj
aGFyYWN0ZXJzIGhlcmUgdGhhdCBhcmVuJ3QgZGVzY3JpYmVkIGluIGBhdHRyLWNoYXJgIHRoYXQg
YXJlCj4gKy8vIGluIHRoZSByYW5nZSAweDIwLTB4N2UKPiArY29uc3QgUkZDNTk4N1NFVDogJkFz
Y2lpU2V0ID0gJkNPTlRST0xTCj4gKyAgICAuYWRkKGInICcpCj4gKyAgICAuYWRkKGInIicpCj4g
KyAgICAuYWRkKGInJScpCj4gKyAgICAuYWRkKGInJicpCj4gKyAgICAuYWRkKGInXCcnKQo+ICsg
ICAgLmFkZChiJygnKQo+ICsgICAgLmFkZChiJyknKQo+ICsgICAgLmFkZChiJyonKQo+ICsgICAg
LmFkZChiJywnKQo+ICsgICAgLmFkZChiJy8nKQo+ICsgICAgLmFkZChiJzonKQo+ICsgICAgLmFk
ZChiJzsnKQo+ICsgICAgLmFkZChiJzwnKQo+ICsgICAgLmFkZChiJz0nKQo+ICsgICAgLmFkZChi
Jz4nKQo+ICsgICAgLmFkZChiJz8nKQo+ICsgICAgLmFkZChiJ0AnKQo+ICsgICAgLmFkZChiJ1sn
KQo+ICsgICAgLmFkZChiJ1xcJykKPiArICAgIC5hZGQoYiddJykKPiArICAgIC5hZGQoYid7JykK
PiArICAgIC5hZGQoYid9Jyk7Cj4gKwo+ICtzdHJ1Y3QgUmVjaXBpZW50IHsKPiArICAgIG5hbWU6
IE9wdGlvbjxTdHJpbmc+LAo+ICsgICAgZW1haWw6IFN0cmluZywKPiArfQo+ICsKPiArc3RydWN0
IEF0dGFjaG1lbnQ8J2E+IHsKPiArICAgIGZpbGVuYW1lOiBTdHJpbmcsCj4gKyAgICBtaW1lOiBT
dHJpbmcsCj4gKyAgICBjb250ZW50OiAmJ2EgW3U4XSwKPiArfQo+ICsKPiArcHViIHN0cnVjdCBN
YWlsPCdhPiB7Cj4gKyAgICBtYWlsX2F1dGhvcjogU3RyaW5nLAo+ICsgICAgbWFpbF9mcm9tOiBT
dHJpbmcsCj4gKyAgICBzdWJqZWN0OiBTdHJpbmcsCj4gKyAgICB0bzogVmVjPFJlY2lwaWVudD4s
Cj4gKyAgICBib2R5X3R4dDogU3RyaW5nLAo+ICsgICAgYm9keV9odG1sOiBPcHRpb248U3RyaW5n
PiwKPiArICAgIGF0dGFjaG1lbnRzOiBWZWM8QXR0YWNobWVudDwnYT4+LAo+ICt9Cj4gKwo+ICtp
bXBsPCdhPiBNYWlsPCdhPiB7Cj4gKyAgICAvLy8gQ3JlYXRlcyBhIG5ldyBtYWlsIHdpdGggYSBt
YWlsIGF1dGhvciwgZnJvbSBhZGRyZXNzLCBzdWJqZWN0IGxpbmUgYW5kIGEgcGxhaW4gdGV4dCBi
b2R5Lgo+ICsgICAgLy8vCj4gKyAgICAvLy8gTm90ZTogSWYgdGhlIGF1dGhvcidzIG5hbWUgb3Ig
dGhlIHN1YmplY3QgbGluZSBjb250YWlucyBVVEYtOCBjaGFyYWN0ZXJzIHRoZXkgd2lsbCBiZQo+
ICsgICAgLy8vIGFwcHJvcHJpYXRlbGx5IGVuY29kZWQuCj4gKyAgICBwdWIgZm4gbmV3KG1haWxf
YXV0aG9yOiAmc3RyLCBtYWlsX2Zyb206ICZzdHIsIHN1YmplY3Q6ICZzdHIsIGJvZHlfdHh0OiAm
c3RyKSAtPiBTZWxmIHsKPiArICAgICAgICBTZWxmIHsKPiArICAgICAgICAgICAgbWFpbF9hdXRo
b3I6IG1haWxfYXV0aG9yLnRvX3N0cmluZygpLAo+ICsgICAgICAgICAgICBtYWlsX2Zyb206IG1h
aWxfZnJvbS50b19zdHJpbmcoKSwKPiArICAgICAgICAgICAgc3ViamVjdDogc3ViamVjdC50b19z
dHJpbmcoKSwKPiArICAgICAgICAgICAgdG86IFZlYzo6bmV3KCksCj4gKyAgICAgICAgICAgIGJv
ZHlfdHh0OiBib2R5X3R4dC50b19zdHJpbmcoKSwKPiArICAgICAgICAgICAgYm9keV9odG1sOiBO
b25lLAo+ICsgICAgICAgICAgICBhdHRhY2htZW50czogVmVjOjpuZXcoKSwKPiArICAgICAgICB9
Cj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIEFkZHMgYSByZWNpcGllbnQgdG8gdGhlIG1haWwgd2l0
aG91dCBzcGVjaWZ5aW5nIGEgbmFtZSBzZXBhcmF0ZWx5Lgo+ICsgICAgLy8vCj4gKyAgICAvLy8g
Tm90ZTogTm8gZm9ybWF0dGluZyBvciBlbmNvZGluZyB3aWxsIGJlIGRvbmUgaGVyZSwgdGhlIHZh
bHVlIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBgVG86YAo+ICsgICAgLy8vIGhlYWRlciBkaXJlY3Rs
eS4KPiArICAgIHB1YiBmbiBhZGRfcmVjaXBpZW50KCZtdXQgc2VsZiwgZW1haWw6ICZzdHIpIHsK
PiArICAgICAgICBzZWxmLnRvLnB1c2goUmVjaXBpZW50IHsKPiArICAgICAgICAgICAgbmFtZTog
Tm9uZSwKPiArICAgICAgICAgICAgZW1haWw6IGVtYWlsLnRvX3N0cmluZygpLAo+ICsgICAgICAg
IH0pOwo+ICsgICAgfQo+ICsKPiArICAgIC8vLyBCdWlsZGVyLXBhdHRlcm4gbWV0aG9kIHRvIGNv
bnZlbmllbnRseSBhZGQgYSByZWNpcGllbnQgdG8gYW4gZW1haWwgd2l0aG91dCBzcGVjaWZ5aW5n
IGEKPiArICAgIC8vLyBuYW1lIHNlcGFyYXRlbHkuCj4gKyAgICAvLy8KPiArICAgIC8vLyBOb3Rl
OiBObyBmb3JtYXR0aW5nIG9yIGVuY29kaW5nIHdpbGwgYmUgZG9uZSBoZXJlLCB0aGUgdmFsdWUg
d2lsbCBiZSBwYXNzZWQgdG8gdGhlIGBUbzpgCj4gKyAgICAvLy8gaGVhZGVyIGRpcmVjdGx5Lgo+
ICsgICAgcHViIGZuIHdpdGhfcmVjaXBpZW50KG11dCBzZWxmLCBlbWFpbDogJnN0cikgLT4gU2Vs
ZiB7Cj4gKyAgICAgICAgc2VsZi5hZGRfcmVjaXBpZW50KGVtYWlsKTsKPiArICAgICAgICBzZWxm
Cj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIEFkZHMgYSByZWNpcGllbnQgdG8gdGhlIG1haWwgd2l0
aCBhIG5hbWUuCj4gKyAgICAvLy8KPiArICAgIC8vLyBOb3RlczoKPiArICAgIC8vLwo+ICsgICAg
Ly8vIC0gSWYgdGhlIG5hbWUgY29udGFpbnMgVVRGLTggY2hhcmFjdGVycyBpdCB3aWxsIGJlIGVu
Y29kZWQuIFRoZW4gdGhlIHBvc3NpYmx5IGVuY29kZWQgbmFtZQo+ICsgICAgLy8vICAgYW5kIG5v
bi1lbmNvZGVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGBUbzpgIGhlYWRl
ciBpbiB0aGlzIGZvcm1hdDoKPiArICAgIC8vLyAgIGB7ZW5jb2RlZF9uYW1lfSA8e2VtYWlsfT5g
Cj4gKyAgICAvLy8gLSBJZiBtdWx0aXBsZSByZWNlaXZlcnMgYXJlIHNwZWNpZmllZCwgdGhleSB3
aWxsIGJlIG1hc2tlZCBzbyBhcyBub3QgdG8gZGlzY2xvc2UgdGhlbSB0bwo+ICsgICAgLy8vICAg
b3RoZXIgcmVjZWl2ZXJzLgo+ICsgICAgcHViIGZuIGFkZF9yZWNpcGllbnRfYW5kX25hbWUoJm11
dCBzZWxmLCBuYW1lOiAmc3RyLCBlbWFpbDogJnN0cikgewo+ICsgICAgICAgIHNlbGYudG8ucHVz
aChSZWNpcGllbnQgewo+ICsgICAgICAgICAgICBuYW1lOiBTb21lKG5hbWUudG9fc3RyaW5nKCkp
LAo+ICsgICAgICAgICAgICBlbWFpbDogZW1haWwudG9fc3RyaW5nKCksCj4gKyAgICAgICAgfSk7
Cj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIEJ1aWxkZXItc3R5bGUgbWV0aG9kIHRvIGNvbnZlbmll
bnRseSBhZGQgYSByZWNpZXBpZW50IHdpdGggYSBuYW1lIHRvIGFuIGVtYWlsLgo+ICsgICAgLy8v
Cj4gKyAgICAvLy8gTm90ZXM6Cj4gKyAgICAvLy8KPiArICAgIC8vLyAtIElmIHRoZSBuYW1lIGNv
bnRhaW5zIFVURi04IGNoYXJhY3RlcnMgaXQgd2lsbCBiZSBlbmNvZGVkLiBUaGVuIHRoZSBwb3Nz
aWJseSBlbmNvZGVkIG5hbWUKPiArICAgIC8vLyAgIGFuZCBub24tZW5jb2RlZCBlbWFpbCBhZGRy
ZXNzIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBgVG86YCBoZWFkZXIgaW4gdGhpcyBmb3JtYXQ6Cj4g
KyAgICAvLy8gICBge2VuY29kZWRfbmFtZX0gPHtlbWFpbH0+YAo+ICsgICAgLy8vIC0gSWYgbXVs
dGlwbGUgcmVjZWl2ZXJzIGFyZSBzcGVjaWZpZWQsIHRoZXkgd2lsbCBiZSBtYXNrZWQgc28gYXMg
bm90IHRvIGRpc2Nsb3NlIHRoZW0gdG8KPiArICAgIC8vLyAgIG90aGVyIHJlY2VpdmVycy4KPiAr
ICAgIHB1YiBmbiB3aXRoX3JlY2lwaWVudF9hbmRfbmFtZShtdXQgc2VsZiwgbmFtZTogJnN0ciwg
ZW1haWw6ICZzdHIpIC0+IFNlbGYgewo+ICsgICAgICAgIHNlbGYuYWRkX3JlY2lwaWVudF9hbmRf
bmFtZShuYW1lLCBlbWFpbCk7Cj4gKyAgICAgICAgc2VsZgo+ICsgICAgfQo+ICsKPiArICAgIC8v
LyBBZGRzIGFuIGF0dGFjaG1lbnQgd2l0aCBhIHNwZWNpZmllZCBmaWxlIG5hbWUgYW5kIG1pbWUt
dHlwZSB0byBhbiBlbWFpbC4KPiArICAgIC8vLwo+ICsgICAgLy8vIE5vdGU6IEFkZGluZyBhdHRh
Y2hlbWVudHMgdHJpZ2dlcnMgYG11bHRpcGFydC9taXhlZGAgbW9kZS4KPiArICAgIHB1YiBmbiBh
ZGRfYXR0YWNobWVudCgmbXV0IHNlbGYsIGZpbGVuYW1lOiAmc3RyLCBtaW1lX3R5cGU6ICZzdHIs
IGNvbnRlbnQ6ICYnYSBbdThdKSB7Cj4gKyAgICAgICAgc2VsZi5hdHRhY2htZW50cy5wdXNoKEF0
dGFjaG1lbnQgewo+ICsgICAgICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUudG9fc3RyaW5nKCks
Cj4gKyAgICAgICAgICAgIG1pbWU6IG1pbWVfdHlwZS50b19zdHJpbmcoKSwKPiArICAgICAgICAg
ICAgY29udGVudCwKPiArICAgICAgICB9KTsKPiArICAgIH0KPiArCj4gKyAgICAvLy8gQnVpbGRl
ci1zdHlsZSBtZXRob2QgdG8gY29udmVuaWVudGx5IGFkZCBhbiBhdHRhY2htZW50IHdpdGggYSBz
cGVjaWZpYyBmaWxlbmFtZSBhbmQKPiArICAgIC8vLyBtaW1lLXR5cGUgdG8gYW4gZW1haWwuCj4g
KyAgICAvLy8KPiArICAgIC8vLyBOb3RlOiBBZGRpbmcgYXR0YWNoZW1lbnRzIHRyaWdnZXJzIGBt
dWx0aXBhcnQvbWl4ZWRgIG1vZGUuCj4gKyAgICBwdWIgZm4gd2l0aF9hdHRhY2htZW50KG11dCBz
ZWxmLCBmaWxlbmFtZTogJnN0ciwgbWltZV90eXBlOiAmc3RyLCBjb250ZW50OiAmJ2EgW3U4XSkg
LT4gU2VsZiB7Cj4gKyAgICAgICAgc2VsZi5hZGRfYXR0YWNobWVudChmaWxlbmFtZSwgbWltZV90
eXBlLCBjb250ZW50KTsKPiArICAgICAgICBzZWxmCj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIFNl
dCBhbiBhbHRlcm5hdGl2ZSBIVE1MIHBhcnQuCj4gKyAgICAvLy8KPiArICAgIC8vLyBOb3RlOiBU
aGlzIHRyaWdnZXJzIGBtdWx0aXBhcnQvYWx0ZXJuYXRpdmVgIG1vZGUuIElmIGJvdGggYW4gSFRN
TCBwYXJ0IGFuZCBhdCBsZWFzdCBvbmUKPiArICAgIC8vLyBhdHRhY2hlbWVudCBhcmUgc3BlY2lm
aWVkLCB0aGUgYG11bHRpcGFydC9hbHRlcm5hdGl2ZWAgcGFydCB3aWxsIGJlIG5lc3RlZCB3aXRo
aW4gdGhlIGZpcnN0Cj4gKyAgICAvLy8gYG11bHRpcGFydC9taXhlZGAgcGFydC4gVGhpcyBzaG91
bGQgZW5zdXJlIHRoYXQgdGhlIEhUTUwgaXMgZGlzcGxheWVkIHByb3Blcmx5IGJ5IGNsaWVudCdz
Cj4gKyAgICAvLy8gdGhhdCBwcmlvcml0aXplIGl0IG92ZXIgdGhlIHBsYWluIHRleHQgcGFydCAo
c2hvdWxkIGJlIHRoZSBkZWZhdWx0IGZvciBtb3N0IGNsaWVudHMpIHdoaWxlCj4gKyAgICAvLy8g
YWxzbyBwcm9wZXJseSBkaXNwbGF5aW5nIHRoZSBhdHRhY2htZW50cy4KPiArICAgIHB1YiBmbiBz
ZXRfaHRtbF9hbHQoJm11dCBzZWxmLCBib2R5X2h0bWw6ICZzdHIpIHsKPiArICAgICAgICBzZWxm
LmJvZHlfaHRtbC5yZXBsYWNlKGJvZHlfaHRtbC50b19zdHJpbmcoKSk7Cj4gKyAgICB9Cj4gKwo+
ICsgICAgLy8vIEJ1aWxkZXItc3R5bGUgbWV0aG9kIHRvIGFkZCBhbiBhbHRlcm5hdGl2ZSBIVE1M
IHBhcnQuCj4gKyAgICAvLy8KPiArICAgIC8vLyBOb3RlOiBUaGlzIHRyaWdnZXJzIGBtdWx0aXBh
cnQvYWx0ZXJuYXRpdmVgIG1vZGUuIElmIGJvdGggYW4gSFRNTCBwYXJ0IGFuZCBhdCBsZWFzdCBv
bmUKPiArICAgIC8vLyBhdHRhY2hlbWVudCBhcmUgc3BlY2lmaWVkLCB0aGUgYG11bHRpcGFydC9h
bHRlcm5hdGl2ZWAgcGFydCB3aWxsIGJlIG5lc3RlZCB3aXRoaW4gdGhlIGZpcnN0Cj4gKyAgICAv
Ly8gYG11bHRpcGFydC9taXhlZGAgcGFydC4gVGhpcyBzaG91bGQgZW5zdXJlIHRoYXQgdGhlIEhU
TUwgaXMgZGlzcGxheWVkIHByb3Blcmx5IGJ5IGNsaWVudCdzCj4gKyAgICAvLy8gdGhhdCBwcmlv
cml0aXplIGl0IG92ZXIgdGhlIHBsYWluIHRleHQgcGFydCAoc2hvdWxkIGJlIHRoZSBkZWZhdWx0
IGZvciBtb3N0IGNsaWVudHMpIHdoaWxlCj4gKyAgICAvLy8gYWxzbyBwcm9wZXJseSBkaXNwbGF5
aW5nIHRoZSBhdHRhY2htZW50cy4KPiArICAgIHB1YiBmbiB3aXRoX2h0bWxfYWx0KG11dCBzZWxm
LCBib2R5X2h0bWw6ICZzdHIpIC0+IFNlbGYgewo+ICsgICAgICAgIHNlbGYuc2V0X2h0bWxfYWx0
KGJvZHlfaHRtbCk7Cj4gKyAgICAgICAgc2VsZgo+ICsgICAgfQo+ICsKPiArICAgIC8vLyBTZW5k
cyB0aGUgZW1haWwuIFRoaXMgd2lsbCBmYWlsIGlmIG5vIHJlY2llcGllbnQncyBoYXZlIGJlZW4g
YWRkZWQuCj4gKyAgICAvLy8KPiArICAgIC8vLyBOb3RlOiBBbiBgQXV0by1TdWJtaXR0ZWQ6IGF1
dG8tZ2VuZXJhdGVkYCBoZWFkZXIgaXMgYWRkZWQgdG8gYXZvaWQgdHJpZ2dlcmluZyBPT08gYW5k
Cj4gKyAgICAvLy8gc2ltaWxhciBtYWlscy4KPiArICAgIHB1YiBmbiBzZW5kKCZzZWxmKSAtPiBS
ZXN1bHQ8KCksIEVycm9yPiB7Cj4gKyAgICAgICAgaWYgc2VsZi50by5pc19lbXB0eSgpIHsKPiAr
ICAgICAgICAgICAgYmFpbCEoIm5vIHJlY2lwaWVudHMgcHJvdmlkZWQgZm9yIHRoZSBtYWlsLCBj
YW5ub3Qgc2VuZCBpdC4iKTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIGxldCBub3cgPSBw
cm94bW94X3RpbWU6OmVwb2NoX2k2NCgpOwo+ICsgICAgICAgIGxldCBib2R5ID0gc2VsZi5mb3Jt
YXRfbWFpbChub3cpPzsKPiArCj4gKyAgICAgICAgbGV0IG11dCBzZW5kbWFpbF9wcm9jZXNzID0g
Q29tbWFuZDo6bmV3KCIvdXNyL3NiaW4vc2VuZG1haWwiKQo+ICsgICAgICAgICAgICAuYXJnKCIt
QiIpCj4gKyAgICAgICAgICAgIC5hcmcoIjhCSVRNSU1FIikKPiArICAgICAgICAgICAgLmFyZygi
LWYiKQo+ICsgICAgICAgICAgICAuYXJnKCZzZWxmLm1haWxfZnJvbSkKPiArICAgICAgICAgICAg
LmFyZygiLS0iKQo+ICsgICAgICAgICAgICAuYXJncyhzZWxmLnRvLml0ZXIoKS5tYXAofHB8ICZw
LmVtYWlsKS5jb2xsZWN0Ojo8VmVjPCZTdHJpbmc+PigpKQo+ICsgICAgICAgICAgICAuc3RkaW4o
U3RkaW86OnBpcGVkKCkpCj4gKyAgICAgICAgICAgIC5zcGF3bigpCj4gKyAgICAgICAgICAgIC53
aXRoX2NvbnRleHQofHwgImNvdWxkIG5vdCBzcGF3biBzZW5kbWFpbCBwcm9jZXNzIik/Owo+ICsK
PiArICAgICAgICBzZW5kbWFpbF9wcm9jZXNzCj4gKyAgICAgICAgICAgIC5zdGRpbgo+ICsgICAg
ICAgICAgICAuYXNfcmVmKCkKPiArICAgICAgICAgICAgLnVud3JhcCgpCj4gKyAgICAgICAgICAg
IC53cml0ZV9hbGwoYm9keS5hc19ieXRlcygpKQo+ICsgICAgICAgICAgICAud2l0aF9jb250ZXh0
KHx8ICJjb3VsZG4ndCB3cml0ZSB0byBzZW5kbWFpbCBzdGRpbiIpPzsKPiArCj4gKyAgICAgICAg
c2VuZG1haWxfcHJvY2Vzcwo+ICsgICAgICAgICAgICAud2FpdCgpCj4gKyAgICAgICAgICAgIC53
aXRoX2NvbnRleHQofHwgInNlbmRtYWlsIGRpZCBub3QgZXhpdCBzdWNjZXNzZnVsbHkiKT87Cj4g
Kwo+ICsgICAgICAgIE9rKCgpKQo+ICsgICAgfQo+ICsKPiArICAgIGZuIGZvcm1hdF9tYWlsKCZz
ZWxmLCBub3c6IGk2NCkgLT4gUmVzdWx0PFN0cmluZywgRXJyb3I+IHsKPiArICAgICAgICBsZXQg
bXV0IGJvZHkgPSBTdHJpbmc6Om5ldygpOwo+ICsgICAgICAgIGxldCBmaWxlX2JvdW5kYXJ5ID0g
Zm9ybWF0ISgiLS0tLV89X05leHRQYXJ0XzAwMV97fSIsIG5vdyk7Cj4gKyAgICAgICAgbGV0IGh0
bWxfYm91bmRhcnkgPSBmb3JtYXQhKCItLS0tXz1fTmV4dFBhcnRfMDAyX3t9Iiwgbm93KTsKPiAr
Cj4gKyAgICAgICAgbGV0IHRvID0gaWYgc2VsZi50by5sZW4oKSA+IDEgewo+ICsgICAgICAgICAg
ICAvLyBkb24ndCBkaXNjbG9zZSBhbGwgcmVjaXBpZW50cyBpZiB0aGUgbWFpbCBnb2VzIG91dCB0
byBtdWx0aXBsZQo+ICsgICAgICAgICAgICAmUmVjaXBpZW50IHsKPiArICAgICAgICAgICAgICAg
IG5hbWU6IFNvbWUoIlVuZGlzY2xvc2VkIi50b19zdHJpbmcoKSksCj4gKyAgICAgICAgICAgICAg
ICBlbWFpbDogIm5vcmVwbHkiLnRvX3N0cmluZygpLAo+ICsgICAgICAgICAgICB9Cj4gKyAgICAg
ICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgc2VsZi50bwo+ICsgICAgICAgICAgICAgICAgLmZp
cnN0KCkKPiArICAgICAgICAgICAgICAgIC5leHBlY3QoInRoZSBjaGVja3MgYmVmb3JlIG1ha2Ug
c3VyZSB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcmVjaXBpZW50IikKPiArICAgICAgICB9Owo+ICsK
PiArICAgICAgICBpZiAhc2VsZi5hdHRhY2htZW50cy5pc19lbXB0eSgpIHsKPiArICAgICAgICAg
ICAgYm9keS5wdXNoX3N0cigiQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7XG4iKTsKPiAr
ICAgICAgICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgiXHRib3VuZGFyeT1cIntmaWxlX2Jv
dW5kYXJ5fVwiXG4iKSk7Cj4gKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoIk1JTUUtVmVyc2lv
bjogMS4wXG4iKTsKPiArICAgICAgICB9IGVsc2UgaWYgc2VsZi5ib2R5X2h0bWwuaXNfc29tZSgp
IHsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigiQ29udGVudC1UeXBlOiBtdWx0aXBhcnQv
YWx0ZXJuYXRpdmU7XG4iKTsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgi
XHRib3VuZGFyeT1cIntodG1sX2JvdW5kYXJ5fVwiXG4iKSk7Cj4gKyAgICAgICAgICAgIGJvZHku
cHVzaF9zdHIoIk1JTUUtVmVyc2lvbjogMS4wXG4iKTsKPiArICAgICAgICB9IGVsc2UgaWYgIXNl
bGYuc3ViamVjdC5pc19hc2NpaSgpCj4gKyAgICAgICAgICAgIHx8ICFzZWxmLm1haWxfYXV0aG9y
LmlzX2FzY2lpKCkKPiArICAgICAgICAgICAgfHwgIXRvLm5hbWUuYXNfcmVmKCkubWFwKHx0fCB0
LmlzX2FzY2lpKCkpLnVud3JhcF9vcih0cnVlKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAg
Ym9keS5wdXNoX3N0cigiTUlNRS1WZXJzaW9uOiAxLjBcbiIpOwo+ICsgICAgICAgIH0KPiArCj4g
KyAgICAgICAgbGV0IHN1YmplY3QgPSBpZiAhc2VsZi5zdWJqZWN0LmlzX2FzY2lpKCkgewo+ICsg
ICAgICAgICAgICBmb3JtYXQhKCJTdWJqZWN0OiA9P3V0Zi04P0I/e30/PVxuIiwgYmFzZTY0Ojpl
bmNvZGUoJnNlbGYuc3ViamVjdCkpCj4gKyAgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAg
Zm9ybWF0ISgiU3ViamVjdDoge31cbiIsIHNlbGYuc3ViamVjdCkKPiArICAgICAgICB9Owo+ICsK
PiArICAgICAgICBib2R5LnB1c2hfc3RyKCZzdWJqZWN0KTsKPiArCj4gKyAgICAgICAgbGV0IGZy
b20gPSBpZiAhc2VsZi5tYWlsX2F1dGhvci5pc19hc2NpaSgpIHsKPiArICAgICAgICAgICAgZm9y
bWF0ISgKPiArICAgICAgICAgICAgICAgICJGcm9tOiA9P3V0Zi04P0I/e30/PSA8e30+XG4iLAo+
ICsgICAgICAgICAgICAgICAgYmFzZTY0OjplbmNvZGUoJnNlbGYubWFpbF9hdXRob3IpLAo+ICsg
ICAgICAgICAgICAgICAgc2VsZi5tYWlsX2Zyb20KPiArICAgICAgICAgICAgKQo+ICsgICAgICAg
IH0gZWxzZSB7Cj4gKyAgICAgICAgICAgIGZvcm1hdCEoIkZyb206IHt9IDx7fT5cbiIsIHNlbGYu
bWFpbF9hdXRob3IsIHNlbGYubWFpbF9mcm9tKQo+ICsgICAgICAgIH07Cj4gKwo+ICsgICAgICAg
IGJvZHkucHVzaF9zdHIoJmZyb20pOwo+ICsKPiArICAgICAgICBsZXQgdG8gPSBpZiBsZXQgU29t
ZShuYW1lKSA9ICZ0by5uYW1lIHsKPiArICAgICAgICAgICAgaWYgIW5hbWUuaXNfYXNjaWkoKSB7
Cj4gKyAgICAgICAgICAgICAgICBmb3JtYXQhKCJUbzogPT91dGYtOD9CP3t9Pz0gPHt9PlxuIiwg
YmFzZTY0OjplbmNvZGUoJm5hbWUpLCB0by5lbWFpbCkKPiArICAgICAgICAgICAgfSBlbHNlIHsK
PiArICAgICAgICAgICAgICAgIGZvcm1hdCEoIlRvOiB7fSA8e30+XG4iLCBuYW1lLCB0by5lbWFp
bCkKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgIGZv
cm1hdCEoIlRvOiB7fVxuIiwgdG8uZW1haWwpCj4gKyAgICAgICAgfTsKPiArCj4gKyAgICAgICAg
Ym9keS5wdXNoX3N0cigmdG8pOwo+ICsKPiArICAgICAgICBsZXQgcmZjMjgyMl9kYXRlID0gcHJv
eG1veF90aW1lOjplcG9jaF90b19yZmMyODIyKG5vdykKPiArICAgICAgICAgICAgLndpdGhfY29u
dGV4dCh8fCAiY291bGQgbm90IGNvbnZlcnQgZXBvY2ggdG8gcmZjMjgyMiBkYXRlIik/Owo+ICsg
ICAgICAgIGJvZHkucHVzaF9zdHIoJmZvcm1hdCEoIkRhdGU6IHtyZmMyODIyX2RhdGV9XG4iKSk7
Cj4gKyAgICAgICAgYm9keS5wdXNoX3N0cigiQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVk
O1xuIik7Cj4gKwo+ICsgICAgICAgIGlmIHNlbGYuYm9keV9odG1sLmlzX3NvbWUoKSAmJiAhc2Vs
Zi5hdHRhY2htZW50cy5pc19lbXB0eSgpIHsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigi
XG5UaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LlxuIik7Cj4gKyAg
ICAgICAgICAgIGJvZHkucHVzaF9zdHIoJmZvcm1hdCEoIlxuLS17ZmlsZV9ib3VuZGFyeX1cbiIp
KTsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgKPiArICAgICAgICAgICAg
ICAgICJDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9XCJ7aHRt
bF9ib3VuZGFyeX1cIlxuIgo+ICsgICAgICAgICAgICApKTsKPiArICAgICAgICAgICAgYm9keS5w
dXNoX3N0cigiTUlNRS1WZXJzaW9uOiAxLjBcbiIpOwo+ICsgICAgICAgICAgICBib2R5LnB1c2hf
c3RyKCZmb3JtYXQhKCJcbi0te2h0bWxfYm91bmRhcnl9XG4iKSk7Cj4gKyAgICAgICAgfSBlbHNl
IGlmIHNlbGYuYm9keV9odG1sLmlzX3NvbWUoKSB7Cj4gKyAgICAgICAgICAgIGJvZHkucHVzaF9z
dHIoIlxuVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC5cbiIpOwo+
ICsgICAgICAgICAgICBib2R5LnB1c2hfc3RyKCZmb3JtYXQhKCJcbi0te2h0bWxfYm91bmRhcnl9
XG4iKSk7Cj4gKyAgICAgICAgfSBlbHNlIGlmIHNlbGYuYm9keV9odG1sLmlzX25vbmUoKSAmJiAh
c2VsZi5hdHRhY2htZW50cy5pc19lbXB0eSgpIHsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0
cigiXG5UaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LlxuIik7Cj4g
KyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoJmZvcm1hdCEoIlxuLS17ZmlsZV9ib3VuZGFyeX1c
biIpKTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIGJvZHkucHVzaF9zdHIoIkNvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjtcbiIpOwo+ICsgICAgICAgIGJvZHkucHVzaF9zdHIoIlx0Y2hhcnNl
dD1cIlVURi04XCJcbiIpOwo+ICsgICAgICAgIGJvZHkucHVzaF9zdHIoIkNvbnRlbnQtVHJhbnNm
ZXItRW5jb2Rpbmc6IDhiaXRcblxuIik7Cj4gKyAgICAgICAgYm9keS5wdXNoX3N0cigmc2VsZi5i
b2R5X3R4dCk7Cj4gKwo+ICsgICAgICAgIGlmIGxldCBTb21lKGh0bWwpID0gJnNlbGYuYm9keV9o
dG1sIHsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgiXG4tLXtodG1sX2Jv
dW5kYXJ5fVxuIikpOwo+ICsgICAgICAgICAgICBib2R5LnB1c2hfc3RyKCJDb250ZW50LVR5cGU6
IHRleHQvaHRtbDtcbiIpOwo+ICsgICAgICAgICAgICBib2R5LnB1c2hfc3RyKCJcdGNoYXJzZXQ9
XCJVVEYtOFwiXG4iKTsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigiQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdFxuXG4iKTsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0ciho
dG1sKTsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgiXG4tLXtodG1sX2Jv
dW5kYXJ5fS0tIikpOwo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgZm9yIGF0dGFjaG1lbnQg
aW4gJnNlbGYuYXR0YWNobWVudHMgewo+ICsgICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSAmYXR0
YWNobWVudC5maWxlbmFtZTsKPiArCj4gKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoJmZvcm1h
dCEoIlxuLS17ZmlsZV9ib3VuZGFyeX1cbiIpKTsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0
cigmZm9ybWF0ISgKPiArICAgICAgICAgICAgICAgICJDb250ZW50LVR5cGU6IHt9OyBuYW1lPVwi
e2ZpbGVuYW1lfVwiXG4iLAo+ICsgICAgICAgICAgICAgICAgYXR0YWNobWVudC5taW1lCj4gKyAg
ICAgICAgICAgICkpOwo+ICsKPiArICAgICAgICAgICAgLy8gYm90aCBgZmlsZW5hbWVgIGFuZCBg
ZmlsZW5hbWUqYCBhcmUgaW5jbHVkZWQgZm9yIGFkZGl0aW9uYWwgY29tcGF0YWJpbGl0eQo+ICsg
ICAgICAgICAgICBib2R5LnB1c2hfc3RyKCZmb3JtYXQhKAo+ICsgICAgICAgICAgICAgICAgIkNv
bnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwie2ZpbGVuYW1lfVwiOyBm
aWxlbmFtZSo9VVRGLTgnJ3t9XG4iLAo+ICsgICAgICAgICAgICAgICAgdXRmOF9wZXJjZW50X2Vu
Y29kZShmaWxlbmFtZSwgUkZDNTk4N1NFVCkKPiArICAgICAgICAgICAgKSk7Cj4gKyAgICAgICAg
ICAgIGJvZHkucHVzaF9zdHIoIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NFxuXG4i
KTsKPiArCj4gKyAgICAgICAgICAgIC8vIHdyYXAgdGhlIGJhc2U2NCBzdHJpbmcgZXZlcnkgNzIg
Y2hhcmFjdGVycy4gdGhpcyBpbXByb3ZlcyBjb21wYXRhYmlsaXR5Cj4gKyAgICAgICAgICAgIGxl
dCBiYXNlNjQgPSBiYXNlNjQ6OmVuY29kZShhdHRhY2htZW50LmNvbnRlbnQpCj4gKyAgICAgICAg
ICAgICAgICAuY2hhcnMoKQo+ICsgICAgICAgICAgICAgICAgLmVudW1lcmF0ZSgpCj4gKyAgICAg
ICAgICAgICAgICAuZmxhdF9tYXAofChpLCBjKXwgewo+ICsgICAgICAgICAgICAgICAgICAgIGlm
IGkgIT0gMCAmJiBpICUgNzIgPT0gMCB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUo
J1xuJykKPiArICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICBOb25lCj4gKyAgICAgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAg
ICAgIC5pbnRvX2l0ZXIoKQo+ICsgICAgICAgICAgICAgICAgICAgIC5jaGFpbihzdGQ6Oml0ZXI6
Om9uY2UoYykpCj4gKyAgICAgICAgICAgICAgICB9KQo+ICsgICAgICAgICAgICAgICAgLmNvbGxl
Y3Q6OjxTdHJpbmc+KCk7Cj4gKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoJmJhc2U2NCk7Cj4g
KyAgICAgICAgfQo+ICsKPiArICAgICAgICBpZiAhc2VsZi5hdHRhY2htZW50cy5pc19lbXB0eSgp
IHsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgiXG4tLXtmaWxlX2JvdW5k
YXJ5fS0tIikpOwo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgT2soYm9keSkKPiArICAgIH0K
PiArfQo+ICsKPiArI1tjZmcodGVzdCldCj4gK21vZCB0ZXN0IHsKPiArICAgIHVzZSBzdXBlcjo6
KjsKPiArCj4gKyAgICAjW3Rlc3RdCj4gKyAgICBmbiBlbWFpbF93aXRob3V0X3JlY2lwaWVudHNf
ZmFpbHMoKSB7Cj4gKyAgICAgICAgbGV0IHJlc3VsdCA9IE1haWw6Om5ldygiU2VuZGVyIiwgIm1h
aWxAZXhhbXBsZS5jb20iLCAiaGkiLCAiYm9keSIpLnNlbmQoKTsKPiArICAgICAgICBhc3NlcnQh
KHJlc3VsdC5pc19lcnIoKSk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgI1t0ZXN0XQo+ICsgICAgZm4g
c2ltcGxlX2FzY2lpX3RleHRfbWFpbCgpIHsKPiArICAgICAgICBsZXQgbWFpbCA9IE1haWw6Om5l
dygKPiArICAgICAgICAgICAgIlNlbmRlciBOYW1lIiwKPiArICAgICAgICAgICAgIm1haWxmcm9t
QGV4YW1wbGUuY29tIiwKPiArICAgICAgICAgICAgIlN1YmplY3QgTGluZSIsCj4gKyAgICAgICAg
ICAgICJUaGlzIGlzIGp1c3QgYXNjaWkgdGV4dC5cbk5vdGhpbmcgdG9vIHNwZWNpYWwuIiwKPiAr
ICAgICAgICApCj4gKyAgICAgICAgLndpdGhfcmVjaXBpZW50X2FuZF9uYW1lKCJSZWNlaXZlciBO
YW1lIiwgInJlY2VpdmVyQGV4YW1wbGUuY29tIik7Cj4gKwo+ICsgICAgICAgIGxldCBib2R5ID0g
bWFpbC5mb3JtYXRfbWFpbCgwKS5leHBlY3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOwo+ICsK
PiArICAgICAgICBhc3NlcnRfZXEhKAo+ICsgICAgICAgICAgICBib2R5LAo+ICsgICAgICAgICAg
ICByIyJTdWJqZWN0OiBTdWJqZWN0IExpbmUKPiArRnJvbTogU2VuZGVyIE5hbWUgPG1haWxmcm9t
QGV4YW1wbGUuY29tPgo+ICtUbzogUmVjZWl2ZXIgTmFtZSA8cmVjZWl2ZXJAZXhhbXBsZS5jb20+
Cj4gK0RhdGU6IFRodSwgMDEgSmFuIDE5NzAgMDE6MDA6MDAgKzAxMDAKPiArQXV0by1TdWJtaXR0
ZWQ6IGF1dG8tZ2VuZXJhdGVkOwo+ICtDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Cj4gKwljaGFy
c2V0PSJVVEYtOCIKPiArQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAo+ICsKPiArVGhp
cyBpcyBqdXN0IGFzY2lpIHRleHQuCj4gK05vdGhpbmcgdG9vIHNwZWNpYWwuIiMKPiArICAgICAg
ICApCj4gKyAgICB9Cj4gKwo+ICsgICAgI1t0ZXN0XQo+ICsgICAgZm4gbXVsdGlwbGVfcmVjZWl2
ZXJfcmVkYWN0aW9uKCkgewo+ICsgICAgICAgIGxldCBtYWlsID0gTWFpbDo6bmV3KAo+ICsgICAg
ICAgICAgICAiU2VuZGVyIE5hbWUiLAo+ICsgICAgICAgICAgICAibWFpbGZyb21AZXhhbXBsZS5j
b20iLAo+ICsgICAgICAgICAgICAiU3ViamVjdCBMaW5lIiwKPiArICAgICAgICAgICAgIlRoaXMg
aXMganVzdCBhc2NpaSB0ZXh0LlxuTm90aGluZyB0b28gc3BlY2lhbC4iLAo+ICsgICAgICAgICkK
PiArICAgICAgICAud2l0aF9yZWNpcGllbnRfYW5kX25hbWUoIlJlY2VpdmVyIE5hbWUiLCAicmVj
ZWl2ZXJAZXhhbXBsZS5jb20iKQo+ICsgICAgICAgIC53aXRoX3JlY2lwaWVudCgidHdvQGV4YW1w
bGUuY29tIik7Cj4gKwo+ICsgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgwKS5l
eHBlY3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOwo+ICsKPiArICAgICAgICBhc3NlcnRfZXEh
KAo+ICsgICAgICAgICAgICBib2R5LAo+ICsgICAgICAgICAgICByIyJTdWJqZWN0OiBTdWJqZWN0
IExpbmUKPiArRnJvbTogU2VuZGVyIE5hbWUgPG1haWxmcm9tQGV4YW1wbGUuY29tPgo+ICtUbzog
VW5kaXNjbG9zZWQgPG5vcmVwbHk+Cj4gK0RhdGU6IFRodSwgMDEgSmFuIDE5NzAgMDE6MDA6MDAg
KzAxMDAKPiArQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkOwo+ICtDb250ZW50LVR5cGU6
IHRleHQvcGxhaW47Cj4gKwljaGFyc2V0PSJVVEYtOCIKPiArQ29udGVudC1UcmFuc2Zlci1FbmNv
ZGluZzogOGJpdAo+ICsKPiArVGhpcyBpcyBqdXN0IGFzY2lpIHRleHQuCj4gK05vdGhpbmcgdG9v
IHNwZWNpYWwuIiMKPiArICAgICAgICApCj4gKyAgICB9Cj4gKwo+ICsgICAgI1t0ZXN0XQo+ICsg
ICAgZm4gc2ltcGxlX3V0ZjhfdGV4dF9tYWlsKCkgewo+ICsgICAgICAgIGxldCBtYWlsID0gTWFp
bDo6bmV3KAo+ICsgICAgICAgICAgICAiVVRGLTggU2VuZGVyIE5hbWUg8J+TpyIsCj4gKyAgICAg
ICAgICAgICJkaWZmZXJlbnRmcm9tQGV4YW1wbGUuY29tIiwKPiArICAgICAgICAgICAgIlN1Ympl
Y3QgTGluZSDwn6eRIiwKPiArICAgICAgICAgICAgIlRoaXMgdXRmLTggZW1haWwgc2hvdWxkIGhh
bmRsZSBlbW9qaXNcbvCfp5Hwn5OnXG5hbmQgd2VpcmQgZ2VybWFuIGNoYXJhY3RlcnM6IMO2w6TD
vMOfXG5hbmQgbW9yZS4iLAo+ICsgICAgICAgICkKPiArICAgICAgICAud2l0aF9yZWNpcGllbnRf
YW5kX25hbWUoIlJlY2VpdmVyIE5hbWXwn5OpIiwgInJlY2VpdmVyQGV4YW1wbGUuY29tIik7Cj4g
Kwo+ICsgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgxNzMyODA2MjUxKS5leHBl
Y3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOwo+ICsKPiArICAgICAgICBhc3NlcnRfZXEhKAo+
ICsgICAgICAgICAgICBib2R5LAo+ICsgICAgICAgICAgICByIyJNSU1FLVZlcnNpb246IDEuMAo+
ICtTdWJqZWN0OiA9P3V0Zi04P0I/VTNWaWFtVmpkQ0JNYVc1bElQQ2ZwNUU9Pz0KPiArRnJvbTog
PT91dGYtOD9CP1ZWUkdMVGdnVTJWdVpHVnlJRTVoYldVZzhKK1Rwdz09Pz0gPGRpZmZlcmVudGZy
b21AZXhhbXBsZS5jb20+Cj4gK1RvOiA9P3V0Zi04P0I/VW1WalpXbDJaWElnVG1GdFpmQ2ZrNms9
Pz0gPHJlY2VpdmVyQGV4YW1wbGUuY29tPgo+ICtEYXRlOiBUaHUsIDI4IE5vdiAyMDI0IDE2OjA0
OjExICswMTAwCj4gK0F1dG8tU3VibWl0dGVkOiBhdXRvLWdlbmVyYXRlZDsKPiArQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluOwo+ICsJY2hhcnNldD0iVVRGLTgiCj4gK0NvbnRlbnQtVHJhbnNmZXIt
RW5jb2Rpbmc6IDhiaXQKPiArCj4gK1RoaXMgdXRmLTggZW1haWwgc2hvdWxkIGhhbmRsZSBlbW9q
aXMKPiAr8J+nkfCfk6cKPiArYW5kIHdlaXJkIGdlcm1hbiBjaGFyYWN0ZXJzOiDDtsOkw7zDnwo+
ICthbmQgbW9yZS4iIwo+ICsgICAgICAgICkKPiArICAgIH0KPiArCj4gKyAgICAjW3Rlc3RdCj4g
KyAgICBmbiBtdWx0aXBhcnRfaHRtbF9hbHRlcm5hdGl2ZSgpIHsKPiArICAgICAgICBsZXQgbWFp
bCA9IE1haWw6Om5ldygKPiArICAgICAgICAgICAgIlNlbmRlciBOYW1lIiwKPiArICAgICAgICAg
ICAgImZyb21AZXhhbXBsZS5jb20iLAo+ICsgICAgICAgICAgICAiU3ViamVjdCBMaW5lIiwKPiAr
ICAgICAgICAgICAgIkxvcmVtIElwc3VtIERvbG9yIFNpdFxuQW1ldCIsCj4gKyAgICAgICAgKQo+
ICsgICAgICAgIC53aXRoX3JlY2lwaWVudCgicmVjZWl2ZXJAZXhhbXBsZS5jb20iKQo+ICsgICAg
ICAgIC53aXRoX2h0bWxfYWx0KCI8aHRtbCBsYW5nPVwiZGUtYXRcIj48aGVhZD48L2hlYWQ+PGJv
ZHk+XG5cdDxwcmU+XG5cdFx0TG9yZW0gSXBzdW0gRG9sb3IgU2l0IEFtZXRcblx0PC9wcmU+XG48
L2JvZHk+PC9odG1sPiIpOwo+ICsgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgx
NzMyODA2MjUxKS5leHBlY3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOwo+ICsgICAgICAgIGFz
c2VydF9lcSEoCj4gKyAgICAgICAgICAgIGJvZHksCj4gKyAgICAgICAgICAgIHIjIkNvbnRlbnQt
VHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwo+ICsJYm91bmRhcnk9Ii0tLS1fPV9OZXh0UGFy
dF8wMDJfMTczMjgwNjI1MSIKPiArTUlNRS1WZXJzaW9uOiAxLjAKPiArU3ViamVjdDogU3ViamVj
dCBMaW5lCj4gK0Zyb206IFNlbmRlciBOYW1lIDxmcm9tQGV4YW1wbGUuY29tPgo+ICtUbzogcmVj
ZWl2ZXJAZXhhbXBsZS5jb20KPiArRGF0ZTogVGh1LCAyOCBOb3YgMjAyNCAxNjowNDoxMSArMDEw
MAo+ICtBdXRvLVN1Ym1pdHRlZDogYXV0by1nZW5lcmF0ZWQ7Cj4gKwo+ICtUaGlzIGlzIGEgbXVs
dGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0Lgo+ICsKPiArLS0tLS0tXz1fTmV4dFBhcnRf
MDAyXzE3MzI4MDYyNTEKPiArQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwo+ICsJY2hhcnNldD0i
VVRGLTgiCj4gK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gK0xvcmVtIElw
c3VtIERvbG9yIFNpdAo+ICtBbWV0Cj4gKy0tLS0tLV89X05leHRQYXJ0XzAwMl8xNzMyODA2MjUx
Cj4gK0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOwo+ICsJY2hhcnNldD0iVVRGLTgiCj4gK0NvbnRl
bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gKzxodG1sIGxhbmc9ImRlLWF0Ij48aGVh
ZD48L2hlYWQ+PGJvZHk+Cj4gKwk8cHJlPgo+ICsJCUxvcmVtIElwc3VtIERvbG9yIFNpdCBBbWV0
Cj4gKwk8L3ByZT4KPiArPC9ib2R5PjwvaHRtbD4KPiArLS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3
MzI4MDYyNTEtLSIjCj4gKyAgICAgICAgKQo+ICsgICAgfQo+ICsKPiArICAgICNbdGVzdF0KPiAr
ICAgIGZuIG11bHRpcGFydF9wbGFpbl90ZXh0X2F0dGFjaG1lbnRzX21peGVkKCkgewo+ICsgICAg
ICAgIGxldCBiaW46IFt1ODsgNjJdID0gWwo+ICsgICAgICAgICAgICAweGRlLCAweGFkLCAweGJl
LCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAw
eGRlLCAweGFkLAo+ICsgICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAw
eGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+ICsg
ICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVm
LCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAweGRl
LCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAw
eGJlLCAweGVmLCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAweGJlLCAweGVmLCAweGRlLCAw
eGFkLCAweGJlLCAweGVmLAo+ICsgICAgICAgIF07Cj4gKwo+ICsgICAgICAgIGxldCBtYWlsID0g
TWFpbDo6bmV3KAo+ICsgICAgICAgICAgICAiU2VuZGVyIE5hbWUiLAo+ICsgICAgICAgICAgICAi
ZnJvbUBleGFtcGxlLmNvbSIsCj4gKyAgICAgICAgICAgICJTdWJqZWN0IExpbmUiLAo+ICsgICAg
ICAgICAgICAiTG9yZW0gSXBzdW0gRG9sb3IgU2l0XG5BbWV0IiwKPiArICAgICAgICApCj4gKyAg
ICAgICAgLndpdGhfcmVjaXBpZW50X2FuZF9uYW1lKCJSZWNlaXZlciBOYW1lIiwgInJlY2VpdmVy
QGV4YW1wbGUuY29tIikKPiArICAgICAgICAud2l0aF9hdHRhY2htZW50KCJkZWFkYmVlZi5iaW4i
LCAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgJmJpbik7Cj4gKwo+ICsgICAgICAgIGxldCBi
b2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgxNzMyODA2MjUxKS5leHBlY3QoImNvdWxkIG5vdCBmb3Jt
YXQgbWFpbCIpOwo+ICsgICAgICAgIGFzc2VydF9lcSEoCj4gKyAgICAgICAgICAgIGJvZHksCj4g
KyAgICAgICAgICAgIHIjIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOwo+ICsJYm91bmRh
cnk9Ii0tLS1fPV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MSIKPiArTUlNRS1WZXJzaW9uOiAxLjAK
PiArU3ViamVjdDogU3ViamVjdCBMaW5lCj4gK0Zyb206IFNlbmRlciBOYW1lIDxmcm9tQGV4YW1w
bGUuY29tPgo+ICtUbzogUmVjZWl2ZXIgTmFtZSA8cmVjZWl2ZXJAZXhhbXBsZS5jb20+Cj4gK0Rh
dGU6IFRodSwgMjggTm92IDIwMjQgMTY6MDQ6MTEgKzAxMDAKPiArQXV0by1TdWJtaXR0ZWQ6IGF1
dG8tZ2VuZXJhdGVkOwo+ICsKPiArVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1F
IGZvcm1hdC4KPiArCj4gKy0tLS0tLV89X05leHRQYXJ0XzAwMV8xNzMyODA2MjUxCj4gK0NvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsKPiArCWNoYXJzZXQ9IlVURi04Igo+ICtDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0Cj4gKwo+ICtMb3JlbSBJcHN1bSBEb2xvciBTaXQKPiArQW1ldAo+
ICstLS0tLS1fPV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MQo+ICtDb250ZW50LVR5cGU6IGFwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbTsgbmFtZT0iZGVhZGJlZWYuYmluIgo+ICtDb250ZW50LURpc3Bv
c2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iZGVhZGJlZWYuYmluIjsgZmlsZW5hbWUqPVVU
Ri04JydkZWFkYmVlZi5iaW4KPiArQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Cj4g
Kwo+ICszcTIrNzk2dHZ1L2VyYjd2M3EzZXJiN3YzcTIrNzk2dHZ1L2VyZDZ0dnUvZXJiN3YzcTIr
Nzk2dDNxMis3OTZ0dnUvZXJiN3YKPiArM3EyKzc5NnR2dTg9Cj4gKy0tLS0tLV89X05leHRQYXJ0
XzAwMV8xNzMyODA2MjUxLS0iIwo+ICsgICAgICAgICkKPiArICAgIH0KPiArCj4gKyAgICAjW3Rl
c3RdCj4gKyAgICBmbiBtdWx0aXBhcnRfcGxhaW5fdGV4dF9odG1sX2FsdGVybmF0aXZlX2F0dGFj
aG1lbnRzKCkgewo+ICsgICAgICAgIGxldCBiaW46IFt1ODsgNjJdID0gWwo+ICsgICAgICAgICAg
ICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAw
eGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAweGRlLCAweGFkLCAw
eGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVm
LCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRl
LCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+
ICsgICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAw
eGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAw
eGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLAo+ICsgICAgICAgIF07Cj4gKwo+ICsg
ICAgICAgIGxldCBtYWlsID0gTWFpbDo6bmV3KAo+ICsgICAgICAgICAgICAiU2VuZGVyIE5hbWUi
LAo+ICsgICAgICAgICAgICAiZnJvbUBleGFtcGxlLmNvbSIsCj4gKyAgICAgICAgICAgICJTdWJq
ZWN0IExpbmUiLAo+ICsgICAgICAgICAgICAiTG9yZW0gSXBzdW0gRG9sb3IgU2l0XG5BbWV0IiwK
PiArICAgICAgICApCj4gKyAgICAgICAgLndpdGhfcmVjaXBpZW50X2FuZF9uYW1lKCJSZWNlaXZl
ciBOYW1lIiwgInJlY2VpdmVyQGV4YW1wbGUuY29tIikKPiArICAgICAgICAud2l0aF9hdHRhY2ht
ZW50KCJkZWFkYmVlZi5iaW4iLCAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgJmJpbikKPiAr
ICAgICAgICAud2l0aF9hdHRhY2htZW50KCLwn5CE8J+SgC5iaW4iLCAiaW1hZ2UvYm1wIiwgJmJp
bikKPiArICAgICAgICAud2l0aF9odG1sX2FsdCgiPGh0bWwgbGFuZz1cImRlLWF0XCI+PGhlYWQ+
PC9oZWFkPjxib2R5PlxuXHQ8cHJlPlxuXHRcdExvcmVtIElwc3VtIERvbG9yIFNpdCBBbWV0XG5c
dDwvcHJlPlxuPC9ib2R5PjwvaHRtbD4iKTsKPiArCj4gKyAgICAgICAgbGV0IGJvZHkgPSBtYWls
LmZvcm1hdF9tYWlsKDE3MzI4MDYyNTEpLmV4cGVjdCgiY291bGQgbm90IGZvcm1hdCBtYWlsIik7
Cj4gKwo+ICsgICAgICAgIGFzc2VydF9lcSEoCj4gKyAgICAgICAgICAgIGJvZHksCj4gKyAgICAg
ICAgICAgIHIjIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOwo+ICsJYm91bmRhcnk9Ii0t
LS1fPV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MSIKPiArTUlNRS1WZXJzaW9uOiAxLjAKPiArU3Vi
amVjdDogU3ViamVjdCBMaW5lCj4gK0Zyb206IFNlbmRlciBOYW1lIDxmcm9tQGV4YW1wbGUuY29t
Pgo+ICtUbzogUmVjZWl2ZXIgTmFtZSA8cmVjZWl2ZXJAZXhhbXBsZS5jb20+Cj4gK0RhdGU6IFRo
dSwgMjggTm92IDIwMjQgMTY6MDQ6MTEgKzAxMDAKPiArQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2Vu
ZXJhdGVkOwo+ICsKPiArVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1h
dC4KPiArCj4gKy0tLS0tLV89X05leHRQYXJ0XzAwMV8xNzMyODA2MjUxCj4gK0NvbnRlbnQtVHlw
ZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iLS0tLV89X05leHRQYXJ0XzAwMl8x
NzMyODA2MjUxIgo+ICtNSU1FLVZlcnNpb246IDEuMAo+ICsKPiArLS0tLS0tXz1fTmV4dFBhcnRf
MDAyXzE3MzI4MDYyNTEKPiArQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwo+ICsJY2hhcnNldD0i
VVRGLTgiCj4gK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gK0xvcmVtIElw
c3VtIERvbG9yIFNpdAo+ICtBbWV0Cj4gKy0tLS0tLV89X05leHRQYXJ0XzAwMl8xNzMyODA2MjUx
Cj4gK0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOwo+ICsJY2hhcnNldD0iVVRGLTgiCj4gK0NvbnRl
bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gKzxodG1sIGxhbmc9ImRlLWF0Ij48aGVh
ZD48L2hlYWQ+PGJvZHk+Cj4gKwk8cHJlPgo+ICsJCUxvcmVtIElwc3VtIERvbG9yIFNpdCBBbWV0
Cj4gKwk8L3ByZT4KPiArPC9ib2R5PjwvaHRtbD4KPiArLS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3
MzI4MDYyNTEtLQo+ICstLS0tLS1fPV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MQo+ICtDb250ZW50
LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTsgbmFtZT0iZGVhZGJlZWYuYmluIgo+ICtD
b250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iZGVhZGJlZWYuYmluIjsg
ZmlsZW5hbWUqPVVURi04JydkZWFkYmVlZi5iaW4KPiArQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu
ZzogYmFzZTY0Cj4gKwo+ICszcTIrNzk2dHZ1L2VyYjd2M3EzZXJiN3YzcTIrNzk2dHZ1L2VyZDZ0
dnUvZXJiN3YzcTIrNzk2dDNxMis3OTZ0dnUvZXJiN3YKPiArM3EyKzc5NnR2dTg9Cj4gKy0tLS0t
LV89X05leHRQYXJ0XzAwMV8xNzMyODA2MjUxCj4gK0NvbnRlbnQtVHlwZTogaW1hZ2UvYm1wOyBu
YW1lPSLwn5CE8J+SgC5iaW4iCj4gK0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZp
bGVuYW1lPSLwn5CE8J+SgC5iaW4iOyBmaWxlbmFtZSo9VVRGLTgnJyVGMCU5RiU5MCU4NCVGMCU5
RiU5MiU4MC5iaW4KPiArQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Cj4gKwo+ICsz
cTIrNzk2dHZ1L2VyYjd2M3EzZXJiN3YzcTIrNzk2dHZ1L2VyZDZ0dnUvZXJiN3YzcTIrNzk2dDNx
Mis3OTZ0dnUvZXJiN3YKPiArM3EyKzc5NnR2dTg9Cj4gKy0tLS0tLV89X05leHRQYXJ0XzAwMV8x
NzMyODA2MjUxLS0iIwo+ICsgICAgICAgICkKPiArICAgIH0KPiArCj4gKyAgICAjW3Rlc3RdCj4g
KyAgICBmbiB0ZXN0X2Zvcm1hdF9tYWlsX211bHRpcGFydCgpIHsKPiArICAgICAgICBsZXQgbWFp
bCA9IE1haWw6Om5ldygKPiArICAgICAgICAgICAgIkZyZWQgT29iYXIiLAo+ICsgICAgICAgICAg
ICAiZm9vYmFyQGV4YW1wbGUuY29tIiwKPiArICAgICAgICAgICAgIlRoaXMgaXMgdGhlIHN1Ympl
Y3QiLAo+ICsgICAgICAgICAgICAiVGhpcyBpcyB0aGUgcGxhaW4gYm9keSIsCj4gKyAgICAgICAg
KQo+ICsgICAgICAgIC53aXRoX3JlY2lwaWVudF9hbmRfbmFtZSgiVG9ueSBFc3QiLCAidGVzdEBl
eGFtcGxlLmNvbSIpCj4gKyAgICAgICAgLndpdGhfaHRtbF9hbHQoIjxib2R5PlRoaXMgaXMgdGhl
IEhUTUwgYm9keTwvYm9keT4iKTsKPiArCj4gKyAgICAgICAgbGV0IGJvZHkgPSBtYWlsLmZvcm1h
dF9tYWlsKDE3MTg5Nzc4NTApLmV4cGVjdCgiY291bGQgbm90IGZvcm1hdCBtYWlsIik7Cj4gKwo+
ICsgICAgICAgIGFzc2VydF9lcSEoCj4gKyAgICAgICAgICAgIGJvZHksCj4gKyAgICAgICAgICAg
IHIjIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwo+ICsJYm91bmRhcnk9Ii0t
LS1fPV9OZXh0UGFydF8wMDJfMTcxODk3Nzg1MCIKPiArTUlNRS1WZXJzaW9uOiAxLjAKPiArU3Vi
amVjdDogVGhpcyBpcyB0aGUgc3ViamVjdAo+ICtGcm9tOiBGcmVkIE9vYmFyIDxmb29iYXJAZXhh
bXBsZS5jb20+Cj4gK1RvOiBUb255IEVzdCA8dGVzdEBleGFtcGxlLmNvbT4KPiArRGF0ZTogRnJp
LCAyMSBKdW4gMjAyNCAxNTo1MDo1MCArMDIwMAo+ICtBdXRvLVN1Ym1pdHRlZDogYXV0by1nZW5l
cmF0ZWQ7Cj4gKwo+ICtUaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0
Lgo+ICsKPiArLS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3MTg5Nzc4NTAKPiArQ29udGVudC1UeXBl
OiB0ZXh0L3BsYWluOwo+ICsJY2hhcnNldD0iVVRGLTgiCj4gK0NvbnRlbnQtVHJhbnNmZXItRW5j
b2Rpbmc6IDhiaXQKPiArCj4gK1RoaXMgaXMgdGhlIHBsYWluIGJvZHkKPiArLS0tLS0tXz1fTmV4
dFBhcnRfMDAyXzE3MTg5Nzc4NTAKPiArQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7Cj4gKwljaGFy
c2V0PSJVVEYtOCIKPiArQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAo+ICsKPiArPGJv
ZHk+VGhpcyBpcyB0aGUgSFRNTCBib2R5PC9ib2R5Pgo+ICstLS0tLS1fPV9OZXh0UGFydF8wMDJf
MTcxODk3Nzg1MC0tIiMKPiArICAgICAgICApOwo+ICsgICAgfQo+ICt9CgoKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxp
c3QKcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20v
Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=