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 BA0BE1FF15F
	for <inbox@lore.proxmox.com>; Mon,  2 Dec 2024 15:17:38 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 1814719F45;
	Mon,  2 Dec 2024 15:17:44 +0100 (CET)
From: Shannon Sterz <s.sterz@proxmox.com>
To: pbs-devel@lists.proxmox.com
Date: Mon,  2 Dec 2024 15:16:52 +0100
Message-Id: <20241202141655.254472-1-s.sterz@proxmox.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.037 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: [pbs-devel] [PATCH proxmox v3 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>

YWRkIHRoZSBgcHJveG1veC1zZW5kbWFpbGAgY3JhdGUgdGhhdCBtYWtlcyBpdCBlYXNpZXIgdG8g
c2VuZCBtYWlscyB2aWEKdGhlIGBzZW5kbWFpbGAgdXRpbGl0eS4gZmVhdHVyZXMgaW5jbHVkZToK
Ci0gbXVsdGlwYXJ0L2FsdGVybmF0aXZlIHN1cHBvcnQgZm9yIGh0bWwrcGxhaW4gdGV4dCBtYWls
cwotIG11bHRpcGFydC9taXhlZCBzdXBwb3J0IGZvciBtYWlscyB3aXRoIGF0dGFjaG1lbnRzCi0g
YXV0b21hdGljIG5lc3Rpbmcgb2YgbXVsdGlwYXJ0L2FsdGVybmF0aXZlIGFuZCBtdWx0aXBhcnQv
bWl4ZWQgcGFydHMKLSBtYXNrcyBtdWx0aXBsZSByZWNlaXZlcnMgYnkgZGVmYXVsdCwgY2FuIGJl
IGRpc2FibGVkCi0gZW5jb2RpbmcgU3ViamVjdCwgVG8sIEZyb20sIGFuZCBhdHRhY2htZW50IGZp
bGUgbmFtZXMgY29ycmVjdGx5Ci0gYWRkaW5nIGFuIGBBdXRvLVN1Ym1pdHRlZGAgaGVhZGVyIHRv
IGF2b2lkIHRyaWdnZXJpbmcgYXV0b21hdGVkIG1haWxzCgphbHNvIGluY2x1ZGVzIHNldmVyYWwg
dGVzdHMgdG8gZW5zdXJlIHRoYXQgbWFpbHMgYXJlIGZvcm1hdHRlZApjb3JyZWN0bHkuIGRlYmlh
biBwYWNrYWdpbmcgaXMgYWxzbyBwcm92aWRlZC4KClNpZ25lZC1vZmYtYnk6IFNoYW5ub24gU3Rl
cnogPHMuc3RlcnpAcHJveG1veC5jb20+Ci0tLQoKY2hhbmdlcyBzaW5jZSB2MiAodGhhbmtzIEAg
THVrYXMgV2FnbmVyIDxsLndhZ25lckBwcm94bW94LmNvbT4pCiAgICAtIGFkZGVkIGRlYmlhbiBw
YWNrYWdpbmcKICAgIC0gY2hhbmdlIGluc3RhbmNlcyBvZiBgcHVzaF9zdHIoJmZvcm1hdCEoLi4p
YCBvdmVyIHRvIGB3cml0ZWxuISguLilgCiAgICAgIGFuZCBgd3JpdGUhKC4uKWAKCmNoYW5nZXMg
c2luY2UgdjEgKHRoYW5rcyBAIEx1a2FzIFdhZ25lciA8bC53YWduZXJAcHJveG1veC5jb20+KToK
ICAgIC0gbWFrZSBpdCBwb3NzaWJsZSB0byBkaXNhYmxlIHJlY2VpdmVyIHJlZGFjdGlvbgogICAg
LSByZS1zdHJ1Y3R1cmUgdGhlIG1hbCBmb3JtYXR0aW5nIGNvZGU7IG1haW5seSBzcGxpdCBpdCBp
bnRvCiAgICAgIG11bHRpcGxlIGZ1bmN0aW9ucyAoYGZvcm1hdF9oZWFkZXJgLCBgZm9ybWF0X2Jv
ZHlgLAogICAgICBgZm9ybWF0X2F0dGFjaG1lbnRgIGV0Yy4pCiAgICAtIGZpeCBtdWx0aXBsZSB0
eXBvcwoKIENhcmdvLnRvbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogcHJv
eG1veC1zZW5kbWFpbC9DYXJnby50b21sICAgICAgICAgICB8ICAxNiArCiBwcm94bW94LXNlbmRt
YWlsL2RlYmlhbi9jaGFuZ2Vsb2cgICAgIHwgICA1ICsKIHByb3htb3gtc2VuZG1haWwvZGViaWFu
L2NvbnRyb2wgICAgICAgfCAgNDMgKysKIHByb3htb3gtc2VuZG1haWwvZGViaWFuL2NvcHlyaWdo
dCAgICAgfCAgMTggKwogcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vZGViY2FyZ28udG9tbCB8ICAg
NyArCiBwcm94bW94LXNlbmRtYWlsL3NyYy9saWIucnMgICAgICAgICAgIHwgNzc5ICsrKysrKysr
KysrKysrKysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDg3MCBpbnNlcnRpb25zKCspCiBj
cmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1zZW5kbWFpbC9DYXJnby50b21sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY2hhbmdlbG9nCiBjcmVhdGUgbW9kZSAx
MDA2NDQgcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY29udHJvbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IHByb3htb3gtc2VuZG1haWwvZGViaWFuL2NvcHlyaWdodAogY3JlYXRlIG1vZGUgMTAwNjQ0IHBy
b3htb3gtc2VuZG1haWwvZGViaWFuL2RlYmNhcmdvLnRvbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBw
cm94bW94LXNlbmRtYWlsL3NyYy9saWIucnMKCmRpZmYgLS1naXQgYS9DYXJnby50b21sIGIvQ2Fy
Z28udG9tbAppbmRleCA4NGZiZTk3OS4uYjYyZmNkNTAgMTAwNjQ0Ci0tLSBhL0NhcmdvLnRvbWwK
KysrIGIvQ2FyZ28udG9tbApAQCAtMzMsNiArMzMsNyBAQCBtZW1iZXJzID0gWwogICAgICJwcm94
bW94LXJyZC1hcGktdHlwZXMiLAogICAgICJwcm94bW94LXNjaGVtYSIsCiAgICAgInByb3htb3gt
c2VjdGlvbi1jb25maWciLAorICAgICJwcm94bW94LXNlbmRtYWlsIiwKICAgICAicHJveG1veC1z
ZXJkZSIsCiAgICAgInByb3htb3gtc2hhcmVkLWNhY2hlIiwKICAgICAicHJveG1veC1zaGFyZWQt
bWVtb3J5IiwKQEAgLTEzOCw2ICsxMzksNyBAQCBwcm94bW94LXJlc3Qtc2VydmVyID0geyB2ZXJz
aW9uID0gIjAuOC4wIiwgcGF0aCA9ICJwcm94bW94LXJlc3Qtc2VydmVyIiB9CiBwcm94bW94LXJv
dXRlciA9IHsgdmVyc2lvbiA9ICIzLjAuMCIsIHBhdGggPSAicHJveG1veC1yb3V0ZXIiIH0KIHBy
b3htb3gtc2NoZW1hID0geyB2ZXJzaW9uID0gIjMuMS4yIiwgcGF0aCA9ICJwcm94bW94LXNjaGVt
YSIgfQogcHJveG1veC1zZWN0aW9uLWNvbmZpZyA9IHsgdmVyc2lvbiA9ICIyLjEuMCIsIHBhdGgg
PSAicHJveG1veC1zZWN0aW9uLWNvbmZpZyIgfQorcHJveG1veC1zZW5kbWFpbCA9IHsgdmVyc2lv
biA9ICIwLjEuMCIsIHBhdGggPSAicHJveG1veC1zZW5kbWFpbCIgfQogcHJveG1veC1zZXJkZSA9
IHsgdmVyc2lvbiA9ICIwLjEuMSIsIHBhdGggPSAicHJveG1veC1zZXJkZSIsIGZlYXR1cmVzID0g
WyAic2VyZGVfanNvbiIgXSB9CiBwcm94bW94LXNoYXJlZC1tZW1vcnkgPSB7IHZlcnNpb24gPSAi
MC4zLjAiLCBwYXRoID0gInByb3htb3gtc2hhcmVkLW1lbW9yeSIgfQogcHJveG1veC1zb3J0YWJs
ZS1tYWNybyA9IHsgdmVyc2lvbiA9ICIwLjEuMyIsIHBhdGggPSAicHJveG1veC1zb3J0YWJsZS1t
YWNybyIgfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1zZW5kbWFpbC9DYXJnby50b21sIGIvcHJveG1v
eC1zZW5kbWFpbC9DYXJnby50b21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
Li43OTBiMzI0YgotLS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtc2VuZG1haWwvQ2FyZ28udG9t
bApAQCAtMCwwICsxLDE2IEBACitbcGFja2FnZV0KK25hbWUgPSAicHJveG1veC1zZW5kbWFpbCIK
K3ZlcnNpb24gPSAiMC4xLjAiCithdXRob3JzLndvcmtzcGFjZSA9IHRydWUKK2VkaXRpb24ud29y
a3NwYWNlID0gdHJ1ZQorbGljZW5zZS53b3Jrc3BhY2UgPSB0cnVlCityZXBvc2l0b3J5Lndvcmtz
cGFjZSA9IHRydWUKK2hvbWVwYWdlLndvcmtzcGFjZSA9IHRydWUKK2V4Y2x1ZGUud29ya3NwYWNl
ID0gdHJ1ZQorcnVzdC12ZXJzaW9uLndvcmtzcGFjZSA9IHRydWUKKworW2RlcGVuZGVuY2llc10K
K2FueWhvdyA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CitiYXNlNjQgPSB7IHdvcmtzcGFjZSA9IHRy
dWUgfQorcGVyY2VudC1lbmNvZGluZyA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9Citwcm94bW94LXRp
bWUgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1zZW5kbWFpbC9k
ZWJpYW4vY2hhbmdlbG9nIGIvcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY2hhbmdlbG9nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi43MWQ3YzlmOAotLS0gL2Rldi9udWxsCisr
KyBiL3Byb3htb3gtc2VuZG1haWwvZGViaWFuL2NoYW5nZWxvZwpAQCAtMCwwICsxLDUgQEAKK3J1
c3QtcHJveG1veC1zZW5kbWFpbCAoMC4xLjAtMSkgYm9va3dvcm07IHVyZ2VuY3k9bWVkaXVtCisK
KyAgKiBJbml0aWFsIHJlbGVhc2UuCisKKyAtLSBQcm94bW94IFN1cHBvcnQgVGVhbSA8c3VwcG9y
dEBwcm94bW94LmNvbT4gIE1vbiwgMDIgRGVjIDIwMjQgMTQ6NDc6NDIgKzAxMDAKZGlmZiAtLWdp
dCBhL3Byb3htb3gtc2VuZG1haWwvZGViaWFuL2NvbnRyb2wgYi9wcm94bW94LXNlbmRtYWlsL2Rl
Ymlhbi9jb250cm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5kZmM4Yjli
ZgotLS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtc2VuZG1haWwvZGViaWFuL2NvbnRyb2wKQEAg
LTAsMCArMSw0MyBAQAorU291cmNlOiBydXN0LXByb3htb3gtc2VuZG1haWwKK1NlY3Rpb246IHJ1
c3QKK1ByaW9yaXR5OiBvcHRpb25hbAorQnVpbGQtRGVwZW5kczogZGViaGVscGVyLWNvbXBhdCAo
PSAxMyksCisgZGgtc2VxdWVuY2UtY2FyZ28sCisgY2FyZ286bmF0aXZlIDwhbm9jaGVjaz4sCisg
cnVzdGM6bmF0aXZlICg+PSAxLjgwKSA8IW5vY2hlY2s+LAorIGxpYnN0ZC1ydXN0LWRldiA8IW5v
Y2hlY2s+LAorIGxpYnJ1c3QtYW55aG93LTErZGVmYXVsdC1kZXYgPCFub2NoZWNrPiwKKyBsaWJy
dXN0LWJhc2U2NC0wLjEzK2RlZmF1bHQtZGV2IDwhbm9jaGVjaz4sCisgbGlicnVzdC1wZXJjZW50
LWVuY29kaW5nLTIrZGVmYXVsdC1kZXYgKD49IDIuMS1+fikgPCFub2NoZWNrPiwKKyBsaWJydXN0
LXByb3htb3gtdGltZS0yK2RlZmF1bHQtZGV2IDwhbm9jaGVjaz4KK01haW50YWluZXI6IFByb3ht
b3ggU3VwcG9ydCBUZWFtIDxzdXBwb3J0QHByb3htb3guY29tPgorU3RhbmRhcmRzLVZlcnNpb246
IDQuNy4wCitWY3MtR2l0OiBnaXQ6Ly9naXQucHJveG1veC5jb20vZ2l0L3Byb3htb3guZ2l0CitW
Y3MtQnJvd3NlcjogaHR0cHM6Ly9naXQucHJveG1veC5jb20vP3A9cHJveG1veC5naXQKK0hvbWVw
YWdlOiBodHRwczovL3Byb3htb3guY29tCitYLUNhcmdvLUNyYXRlOiBwcm94bW94LXNlbmRtYWls
CitSdWxlcy1SZXF1aXJlcy1Sb290OiBubworCitQYWNrYWdlOiBsaWJydXN0LXByb3htb3gtc2Vu
ZG1haWwtZGV2CitBcmNoaXRlY3R1cmU6IGFueQorTXVsdGktQXJjaDogc2FtZQorRGVwZW5kczoK
KyAke21pc2M6RGVwZW5kc30sCisgbGlicnVzdC1hbnlob3ctMStkZWZhdWx0LWRldiwKKyBsaWJy
dXN0LWJhc2U2NC0wLjEzK2RlZmF1bHQtZGV2LAorIGxpYnJ1c3QtcGVyY2VudC1lbmNvZGluZy0y
K2RlZmF1bHQtZGV2ICg+PSAyLjEtfn4pLAorIGxpYnJ1c3QtcHJveG1veC10aW1lLTIrZGVmYXVs
dC1kZXYKK1Byb3ZpZGVzOgorIGxpYnJ1c3QtcHJveG1veC1zZW5kbWFpbCtkZWZhdWx0LWRldiAo
PSAke2JpbmFyeTpWZXJzaW9ufSksCisgbGlicnVzdC1wcm94bW94LXNlbmRtYWlsK21haWwtZm9y
d2FyZGVyLWRldiAoPSAke2JpbmFyeTpWZXJzaW9ufSksCisgbGlicnVzdC1wcm94bW94LXNlbmRt
YWlsLTAtZGV2ICg9ICR7YmluYXJ5OlZlcnNpb259KSwKKyBsaWJydXN0LXByb3htb3gtc2VuZG1h
aWwtMCtkZWZhdWx0LWRldiAoPSAke2JpbmFyeTpWZXJzaW9ufSksCisgbGlicnVzdC1wcm94bW94
LXNlbmRtYWlsLTArbWFpbC1mb3J3YXJkZXItZGV2ICg9ICR7YmluYXJ5OlZlcnNpb259KSwKKyBs
aWJydXN0LXByb3htb3gtc2VuZG1haWwtMC4xLWRldiAoPSAke2JpbmFyeTpWZXJzaW9ufSksCisg
bGlicnVzdC1wcm94bW94LXNlbmRtYWlsLTAuMStkZWZhdWx0LWRldiAoPSAke2JpbmFyeTpWZXJz
aW9ufSksCisgbGlicnVzdC1wcm94bW94LXNlbmRtYWlsLTAuMSttYWlsLWZvcndhcmRlci1kZXYg
KD0gJHtiaW5hcnk6VmVyc2lvbn0pLAorIGxpYnJ1c3QtcHJveG1veC1zZW5kbWFpbC0wLjEuMC1k
ZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0pLAorIGxpYnJ1c3QtcHJveG1veC1zZW5kbWFpbC0wLjEu
MCtkZWZhdWx0LWRldiAoPSAke2JpbmFyeTpWZXJzaW9ufSksCisgbGlicnVzdC1wcm94bW94LXNl
bmRtYWlsLTAuMS4wK21haWwtZm9yd2FyZGVyLWRldiAoPSAke2JpbmFyeTpWZXJzaW9ufSkKK0Rl
c2NyaXB0aW9uOiBSdXN0IGNyYXRlICJwcm94bW94LXNlbmRtYWlsIiAtIFJ1c3Qgc291cmNlIGNv
ZGUKKyBTb3VyY2UgY29kZSBmb3IgRGViaWFuaXplZCBSdXN0IGNyYXRlICJwcm94bW94LXNlbmRt
YWlsIgpkaWZmIC0tZ2l0IGEvcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY29weXJpZ2h0IGIvcHJv
eG1veC1zZW5kbWFpbC9kZWJpYW4vY29weXJpZ2h0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwLi4wZDllYWIzZQotLS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtc2VuZG1haWwv
ZGViaWFuL2NvcHlyaWdodApAQCAtMCwwICsxLDE4IEBACitGb3JtYXQ6IGh0dHBzOi8vd3d3LmRl
Ymlhbi5vcmcvZG9jL3BhY2thZ2luZy1tYW51YWxzL2NvcHlyaWdodC1mb3JtYXQvMS4wLworCitG
aWxlczoKKyAqCitDb3B5cmlnaHQ6IDIwMTkgLSAyMDIzIFByb3htb3ggU2VydmVyIFNvbHV0aW9u
cyBHbWJIIDxzdXBwb3J0QHByb3htb3guY29tPgorTGljZW5zZTogQUdQTC0zLjAtb3ItbGF0ZXIK
KyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yIG1vZGlmeSBpdCB1bmRlcgorIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorIFNvZnR3YXJlIEZv
dW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55CisgbGF0ZXIgdmVyc2lvbi4KKyAuCisgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCisgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MKKyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05V
IEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlCisgZGV0YWlscy4KKyAuCisg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGFsb25nCisgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxo
dHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCmRpZmYgLS1naXQgYS9wcm94bW94LXNlbmRt
YWlsL2RlYmlhbi9kZWJjYXJnby50b21sIGIvcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vZGViY2Fy
Z28udG9tbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uYjc4NjRjZGIKLS0t
IC9kZXYvbnVsbAorKysgYi9wcm94bW94LXNlbmRtYWlsL2RlYmlhbi9kZWJjYXJnby50b21sCkBA
IC0wLDAgKzEsNyBAQAorb3ZlcmxheSA9ICIuIgorY3JhdGVfc3JjX3BhdGggPSAiLi4iCittYWlu
dGFpbmVyID0gIlByb3htb3ggU3VwcG9ydCBUZWFtIDxzdXBwb3J0QHByb3htb3guY29tPiIKKwor
W3NvdXJjZV0KK3Zjc19naXQgPSAiZ2l0Oi8vZ2l0LnByb3htb3guY29tL2dpdC9wcm94bW94Lmdp
dCIKK3Zjc19icm93c2VyID0gImh0dHBzOi8vZ2l0LnByb3htb3guY29tLz9wPXByb3htb3guZ2l0
IgpkaWZmIC0tZ2l0IGEvcHJveG1veC1zZW5kbWFpbC9zcmMvbGliLnJzIGIvcHJveG1veC1zZW5k
bWFpbC9zcmMvbGliLnJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5lNmNi
MjU4ZQotLS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtc2VuZG1haWwvc3JjL2xpYi5ycwpAQCAt
MCwwICsxLDc3OSBAQAorLy8hCisvLyEgVGhpcyBsaWJyYXJ5IGltcGxlbWVudHMgdGhlIFtgTWFp
bGBdIHRyYWl0IHdoaWNoIG1ha2VzIGl0IGVhc3kgdG8gc2VuZCBlbWFpbHMgd2l0aCBhdHRhY2ht
ZW50cworLy8hIGFuZCBhbHRlcm5hdGl2ZSBodG1sIHBhcnRzIHRvIG9uZSBvciBtdWx0aXBsZSBy
ZWNlaXZlcnMgdmlhIGBgc2VuZG1haWxgYC4KKy8vIQorCit1c2Ugc3RkOjppbzo6V3JpdGU7Cit1
c2Ugc3RkOjpwcm9jZXNzOjp7Q29tbWFuZCwgU3RkaW99OworCit1c2UgYW55aG93Ojp7YmFpbCwg
Q29udGV4dCwgRXJyb3J9OwordXNlIHBlcmNlbnRfZW5jb2Rpbmc6Ont1dGY4X3BlcmNlbnRfZW5j
b2RlLCBBc2NpaVNldCwgQ09OVFJPTFN9OworCisvLyBDaGFyYWN0ZXJzIGluIHRoaXMgc2V0IHdp
bGwgYmUgZW5jb2RlZCwgc28gcmVwcm9kdWNlIHRoZSBpbnZlcnNlIG9mIHRoZSBzZXQgZGVzY3Jp
YmVkIGJ5IFJGQzU5ODcKKy8vIFNlY3Rpb24gMy4yLjEgYGF0dHItY2hhcmAsIGFzIHRoYXQgZGVz
Y3JpYmVzIGFsbCBjaGFyYWN0ZXJzIHRoYXQgKipkb24ndCoqIG5lZWQgZW5jb2Rpbmc6CisvLwor
Ly8gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1OTg3I3NlY3Rpb24t
My4yLjEKKy8vCisvLyBgQ09OVFJPTFNgIGNvbnRhaW5zIGFsbCBjb250cm9sIGNoYXJhY3RlcnMg
MHgwMCAtIDB4MWYgYW5kIDB4N2YgYXMgd2VsbCBhcyBhbGwgbm9uLWFzY2lpCisvLyBjaGFyYWN0
ZXJzLCBzbyB3ZSBuZWVkIHRvIGFkZCBhbGwgY2hhcmFjdGVycyBoZXJlIHRoYXQgYXJlbid0IGRl
c2NyaWJlZCBpbiBgYXR0ci1jaGFyYCB0aGF0IGFyZQorLy8gaW4gdGhlIHJhbmdlIDB4MjAtMHg3
ZQorY29uc3QgUkZDNTk4N1NFVDogJkFzY2lpU2V0ID0gJkNPTlRST0xTCisgICAgLmFkZChiJyAn
KQorICAgIC5hZGQoYiciJykKKyAgICAuYWRkKGInJScpCisgICAgLmFkZChiJyYnKQorICAgIC5h
ZGQoYidcJycpCisgICAgLmFkZChiJygnKQorICAgIC5hZGQoYicpJykKKyAgICAuYWRkKGInKicp
CisgICAgLmFkZChiJywnKQorICAgIC5hZGQoYicvJykKKyAgICAuYWRkKGInOicpCisgICAgLmFk
ZChiJzsnKQorICAgIC5hZGQoYic8JykKKyAgICAuYWRkKGInPScpCisgICAgLmFkZChiJz4nKQor
ICAgIC5hZGQoYic/JykKKyAgICAuYWRkKGInQCcpCisgICAgLmFkZChiJ1snKQorICAgIC5hZGQo
YidcXCcpCisgICAgLmFkZChiJ10nKQorICAgIC5hZGQoYid7JykKKyAgICAuYWRkKGInfScpOwor
CitzdHJ1Y3QgUmVjaXBpZW50IHsKKyAgICBuYW1lOiBPcHRpb248U3RyaW5nPiwKKyAgICBlbWFp
bDogU3RyaW5nLAorfQorCitpbXBsIFJlY2lwaWVudCB7CisgICAgLy8gUmV0dXJucyB0cnVlIGlm
IHRoZSBuYW1lIG9mIHRoZSByZWNpcGllbnQgaXMgdW5kZWZpbmVkIG9yIGNvbnRhaW5zIG9ubHkg
YXNjaWkgY2hhcmFjdGVycworICAgIGZuIGlzX2FzY2lpKCZzZWxmKSAtPiBib29sIHsKKyAgICAg
ICAgc2VsZi5uYW1lLmFzX3JlZigpLm1hcCh8bnwgbi5pc19hc2NpaSgpKS51bndyYXBfb3IodHJ1
ZSkKKyAgICB9CisKKyAgICBmbiBmb3JtYXRfcmVjaXBpZW50KCZzZWxmKSAtPiBTdHJpbmcgewor
ICAgICAgICBpZiBsZXQgU29tZShuYW1lKSA9ICZzZWxmLm5hbWUgeworICAgICAgICAgICAgaWYg
IW5hbWUuaXNfYXNjaWkoKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0ISgiPT91dGYtOD9CP3t9
Pz0gPHt9PiIsIGJhc2U2NDo6ZW5jb2RlKG5hbWUpLCBzZWxmLmVtYWlsKQorICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3JtYXQhKCJ7bmFtZX0gPHt9PiIsIHNlbGYuZW1h
aWwpCisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZWxmLmVt
YWlsLnRvX3N0cmluZygpCisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0cnVjdCBBdHRhY2htZW50
PCdhPiB7CisgICAgZmlsZW5hbWU6IFN0cmluZywKKyAgICBtaW1lOiBTdHJpbmcsCisgICAgY29u
dGVudDogJidhIFt1OF0sCit9CisKK2ltcGw8J2E+IEF0dGFjaG1lbnQ8J2E+IHsKKyAgICBmbiBm
b3JtYXRfYXR0YWNobWVudCgmc2VsZiwgZmlsZV9ib3VuZGFyeTogJnN0cikgLT4gU3RyaW5nIHsK
KyAgICAgICAgdXNlIHN0ZDo6Zm10OjpXcml0ZTsKKworICAgICAgICBsZXQgbXV0IGF0dGFjaG1l
bnQgPSBTdHJpbmc6Om5ldygpOworCisgICAgICAgIGxldCBfID0gd3JpdGVsbiEoYXR0YWNobWVu
dCwgIlxuLS17ZmlsZV9ib3VuZGFyeX0iKTsKKyAgICAgICAgbGV0IF8gPSB3cml0ZWxuISgKKyAg
ICAgICAgICAgIGF0dGFjaG1lbnQsCisgICAgICAgICAgICAiQ29udGVudC1UeXBlOiB7fTsgbmFt
ZT1cInt9XCIiLAorICAgICAgICAgICAgc2VsZi5taW1lLCBzZWxmLmZpbGVuYW1lCisgICAgICAg
ICk7CisKKyAgICAgICAgLy8gYm90aCBgZmlsZW5hbWVgIGFuZCBgZmlsZW5hbWUqYCBhcmUgaW5j
bHVkZWQgZm9yIGFkZGl0aW9uYWwgY29tcGF0YWJpbGl0eQorICAgICAgICBsZXQgXyA9IHdyaXRl
bG4hKAorICAgICAgICAgICAgYXR0YWNobWVudCwKKyAgICAgICAgICAgICJDb250ZW50LURpc3Bv
c2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cInt9XCI7IGZpbGVuYW1lKj1VVEYtOCcne30i
LAorICAgICAgICAgICAgc2VsZi5maWxlbmFtZSwKKyAgICAgICAgICAgIHV0ZjhfcGVyY2VudF9l
bmNvZGUoJnNlbGYuZmlsZW5hbWUsIFJGQzU5ODdTRVQpCisgICAgICAgICk7CisgICAgICAgIGF0
dGFjaG1lbnQucHVzaF9zdHIoIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NFxuXG4i
KTsKKworICAgICAgICAvLyBiYXNlNjQgZW5jb2RlIHRoZSBhdHRhY2htZW50IGFuZCBoYXJkLXdy
YXAgdGhlIGJhc2U2NCBlbmNvZGVkIHN0cmluZyBldmVyeSA3MgorICAgICAgICAvLyBjaGFyYWN0
ZXJzLiB0aGlzIGltcHJvdmVzIGNvbXBhdGFiaWxpdHkuCisgICAgICAgIGF0dGFjaG1lbnQucHVz
aF9zdHIoCisgICAgICAgICAgICAmYmFzZTY0OjplbmNvZGUoc2VsZi5jb250ZW50KQorICAgICAg
ICAgICAgICAgIC5jaGFycygpCisgICAgICAgICAgICAgICAgLmVudW1lcmF0ZSgpCisgICAgICAg
ICAgICAgICAgLmZsYXRfbWFwKHwoaSwgYyl8IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgaSAh
PSAwICYmIGkgJSA3MiA9PSAwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoJ1xuJykK
KyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE5v
bmUKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAuaW50b19pdGVy
KCkKKyAgICAgICAgICAgICAgICAgICAgLmNoYWluKHN0ZDo6aXRlcjo6b25jZShjKSkKKyAgICAg
ICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5jb2xsZWN0Ojo8U3RyaW5nPigpLAorICAg
ICAgICApOworCisgICAgICAgIGF0dGFjaG1lbnQKKyAgICB9Cit9CisKKy8vLyBUaGlzIHN0cnVj
dCBpcyB1c2VkIHRvIGRlZmluZSBtYWlscyB0aGF0IGFyZSB0byBiZSBzZW50IHZpYSB0aGUgYHNl
bmRtYWlsYCBjb21tYW5kLgorcHViIHN0cnVjdCBNYWlsPCdhPiB7CisgICAgbWFpbF9hdXRob3I6
IFN0cmluZywKKyAgICBtYWlsX2Zyb206IFN0cmluZywKKyAgICBzdWJqZWN0OiBTdHJpbmcsCisg
ICAgdG86IFZlYzxSZWNpcGllbnQ+LAorICAgIGJvZHlfdHh0OiBTdHJpbmcsCisgICAgYm9keV9o
dG1sOiBPcHRpb248U3RyaW5nPiwKKyAgICBhdHRhY2htZW50czogVmVjPEF0dGFjaG1lbnQ8J2E+
PiwKKyAgICBtYXNrX3BhcnRpY2lwYW50czogYm9vbCwKK30KKworaW1wbDwnYT4gTWFpbDwnYT4g
eworICAgIC8vLyBDcmVhdGVzIGEgbmV3IG1haWwgd2l0aCBhIG1haWwgYXV0aG9yLCBmcm9tIGFk
ZHJlc3MsIHN1YmplY3QgbGluZSBhbmQgYSBwbGFpbiB0ZXh0IGJvZHkuCisgICAgLy8vCisgICAg
Ly8vIE5vdGU6IElmIHRoZSBhdXRob3IncyBuYW1lIG9yIHRoZSBzdWJqZWN0IGxpbmUgY29udGFp
bnMgVVRGLTggY2hhcmFjdGVycyB0aGV5IHdpbGwgYmUKKyAgICAvLy8gYXBwcm9wcmlhdGVseSBl
bmNvZGVkLgorICAgIHB1YiBmbiBuZXcobWFpbF9hdXRob3I6ICZzdHIsIG1haWxfZnJvbTogJnN0
ciwgc3ViamVjdDogJnN0ciwgYm9keV90eHQ6ICZzdHIpIC0+IFNlbGYgeworICAgICAgICBTZWxm
IHsKKyAgICAgICAgICAgIG1haWxfYXV0aG9yOiBtYWlsX2F1dGhvci50b19zdHJpbmcoKSwKKyAg
ICAgICAgICAgIG1haWxfZnJvbTogbWFpbF9mcm9tLnRvX3N0cmluZygpLAorICAgICAgICAgICAg
c3ViamVjdDogc3ViamVjdC50b19zdHJpbmcoKSwKKyAgICAgICAgICAgIHRvOiBWZWM6Om5ldygp
LAorICAgICAgICAgICAgYm9keV90eHQ6IGJvZHlfdHh0LnRvX3N0cmluZygpLAorICAgICAgICAg
ICAgYm9keV9odG1sOiBOb25lLAorICAgICAgICAgICAgYXR0YWNobWVudHM6IFZlYzo6bmV3KCks
CisgICAgICAgICAgICBtYXNrX3BhcnRpY2lwYW50czogdHJ1ZSwKKyAgICAgICAgfQorICAgIH0K
KworICAgIC8vLyBBZGRzIGEgcmVjaXBpZW50IHRvIHRoZSBtYWlsIHdpdGhvdXQgc3BlY2lmeWlu
ZyBhIG5hbWUgc2VwYXJhdGVseS4KKyAgICAvLy8KKyAgICAvLy8gTm90ZTogTm8gZm9ybWF0dGlu
ZyBvciBlbmNvZGluZyB3aWxsIGJlIGRvbmUgaGVyZSwgdGhlIHZhbHVlIHdpbGwgYmUgcGFzc2Vk
IHRvIHRoZSBgVG86YAorICAgIC8vLyBoZWFkZXIgZGlyZWN0bHkuCisgICAgcHViIGZuIGFkZF9y
ZWNpcGllbnQoJm11dCBzZWxmLCBlbWFpbDogJnN0cikgeworICAgICAgICBzZWxmLnRvLnB1c2go
UmVjaXBpZW50IHsKKyAgICAgICAgICAgIG5hbWU6IE5vbmUsCisgICAgICAgICAgICBlbWFpbDog
ZW1haWwudG9fc3RyaW5nKCksCisgICAgICAgIH0pOworICAgIH0KKworICAgIC8vLyBCdWlsZGVy
LXBhdHRlcm4gbWV0aG9kIHRvIGNvbnZlbmllbnRseSBhZGQgYSByZWNpcGllbnQgdG8gYW4gZW1h
aWwgd2l0aG91dCBzcGVjaWZ5aW5nIGEKKyAgICAvLy8gbmFtZSBzZXBhcmF0ZWx5LgorICAgIC8v
LworICAgIC8vLyBOb3RlOiBObyBmb3JtYXR0aW5nIG9yIGVuY29kaW5nIHdpbGwgYmUgZG9uZSBo
ZXJlLCB0aGUgdmFsdWUgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGBUbzpgCisgICAgLy8vIGhlYWRl
ciBkaXJlY3RseS4KKyAgICBwdWIgZm4gd2l0aF9yZWNpcGllbnQobXV0IHNlbGYsIGVtYWlsOiAm
c3RyKSAtPiBTZWxmIHsKKyAgICAgICAgc2VsZi5hZGRfcmVjaXBpZW50KGVtYWlsKTsKKyAgICAg
ICAgc2VsZgorICAgIH0KKworICAgIC8vLyBBZGRzIGEgcmVjaXBpZW50IHRvIHRoZSBtYWlsIHdp
dGggYSBuYW1lLgorICAgIC8vLworICAgIC8vLyBOb3RlczoKKyAgICAvLy8KKyAgICAvLy8gLSBJ
ZiB0aGUgbmFtZSBjb250YWlucyBVVEYtOCBjaGFyYWN0ZXJzIGl0IHdpbGwgYmUgZW5jb2RlZC4g
VGhlbiB0aGUgcG9zc2libHkgZW5jb2RlZCBuYW1lCisgICAgLy8vICAgYW5kIG5vbi1lbmNvZGVk
IGVtYWlsIGFkZHJlc3Mgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGBUbzpgIGhlYWRlciBpbiB0aGlz
IGZvcm1hdDoKKyAgICAvLy8gICBge2VuY29kZWRfbmFtZX0gPHtlbWFpbH0+YAorICAgIC8vLyAt
IElmIG11bHRpcGxlIHJlY2VpdmVycyBhcmUgc3BlY2lmaWVkLCB0aGV5IHdpbGwgYmUgbWFza2Vk
IHNvIGFzIG5vdCB0byBkaXNjbG9zZSB0aGVtIHRvCisgICAgLy8vICAgb3RoZXIgcmVjZWl2ZXJz
LiBUaGlzIGNhbiBiZSBkaXNhYmxlZCB2aWEgW2BNYWlsOjp1bm1hc2tfcmVjaXBpZW50c2BdIG9y
CisgICAgLy8vICAgW2BNYWlsOjp3aXRoX3VubWFza2VkX3JlY2lwaWVudHNgXS4KKyAgICBwdWIg
Zm4gYWRkX3JlY2lwaWVudF9hbmRfbmFtZSgmbXV0IHNlbGYsIG5hbWU6ICZzdHIsIGVtYWlsOiAm
c3RyKSB7CisgICAgICAgIHNlbGYudG8ucHVzaChSZWNpcGllbnQgeworICAgICAgICAgICAgbmFt
ZTogU29tZShuYW1lLnRvX3N0cmluZygpKSwKKyAgICAgICAgICAgIGVtYWlsOiBlbWFpbC50b19z
dHJpbmcoKSwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLy8vIEJ1aWxkZXItc3R5bGUgbWV0
aG9kIHRvIGNvbnZlbmllbnRseSBhZGQgYSByZWNpcGllbnQgd2l0aCBhIG5hbWUgdG8gYW4gZW1h
aWwuCisgICAgLy8vCisgICAgLy8vIE5vdGVzOgorICAgIC8vLworICAgIC8vLyAtIElmIHRoZSBu
YW1lIGNvbnRhaW5zIFVURi04IGNoYXJhY3RlcnMgaXQgd2lsbCBiZSBlbmNvZGVkLiBUaGVuIHRo
ZSBwb3NzaWJseSBlbmNvZGVkIG5hbWUKKyAgICAvLy8gICBhbmQgbm9uLWVuY29kZWQgZW1haWwg
YWRkcmVzcyB3aWxsIGJlIHBhc3NlZCB0byB0aGUgYFRvOmAgaGVhZGVyIGluIHRoaXMgZm9ybWF0
OgorICAgIC8vLyAgIGB7ZW5jb2RlZF9uYW1lfSA8e2VtYWlsfT5gCisgICAgLy8vIC0gSWYgbXVs
dGlwbGUgcmVjZWl2ZXJzIGFyZSBzcGVjaWZpZWQsIHRoZXkgd2lsbCBiZSBtYXNrZWQgc28gYXMg
bm90IHRvIGRpc2Nsb3NlIHRoZW0gdG8KKyAgICAvLy8gICBvdGhlciByZWNlaXZlcnMuIFRoaXMg
Y2FuIGJlIGRpc2FibGVkIHZpYSBbYE1haWw6OnVubWFza19yZWNpcGllbnRzYF0gb3IKKyAgICAv
Ly8gICBbYE1haWw6OndpdGhfdW5tYXNrZWRfcmVjaXBpZW50c2BdLgorICAgIHB1YiBmbiB3aXRo
X3JlY2lwaWVudF9hbmRfbmFtZShtdXQgc2VsZiwgbmFtZTogJnN0ciwgZW1haWw6ICZzdHIpIC0+
IFNlbGYgeworICAgICAgICBzZWxmLmFkZF9yZWNpcGllbnRfYW5kX25hbWUobmFtZSwgZW1haWwp
OworICAgICAgICBzZWxmCisgICAgfQorCisgICAgLy8vIEFkZHMgYW4gYXR0YWNobWVudCB3aXRo
IGEgc3BlY2lmaWVkIGZpbGUgbmFtZSBhbmQgbWltZS10eXBlIHRvIGFuIGVtYWlsLgorICAgIC8v
LworICAgIC8vLyBOb3RlOiBBZGRpbmcgYXR0YWNobWVudHMgdHJpZ2dlcnMgYG11bHRpcGFydC9t
aXhlZGAgbW9kZS4KKyAgICBwdWIgZm4gYWRkX2F0dGFjaG1lbnQoJm11dCBzZWxmLCBmaWxlbmFt
ZTogJnN0ciwgbWltZV90eXBlOiAmc3RyLCBjb250ZW50OiAmJ2EgW3U4XSkgeworICAgICAgICBz
ZWxmLmF0dGFjaG1lbnRzLnB1c2goQXR0YWNobWVudCB7CisgICAgICAgICAgICBmaWxlbmFtZTog
ZmlsZW5hbWUudG9fc3RyaW5nKCksCisgICAgICAgICAgICBtaW1lOiBtaW1lX3R5cGUudG9fc3Ry
aW5nKCksCisgICAgICAgICAgICBjb250ZW50LAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICAv
Ly8gQnVpbGRlci1zdHlsZSBtZXRob2QgdG8gY29udmVuaWVudGx5IGFkZCBhbiBhdHRhY2htZW50
IHdpdGggYSBzcGVjaWZpYyBmaWxlbmFtZSBhbmQKKyAgICAvLy8gbWltZS10eXBlIHRvIGFuIGVt
YWlsLgorICAgIC8vLworICAgIC8vLyBOb3RlOiBBZGRpbmcgYXR0YWNoZW1lbnRzIHRyaWdnZXJz
IGBtdWx0aXBhcnQvbWl4ZWRgIG1vZGUuCisgICAgcHViIGZuIHdpdGhfYXR0YWNobWVudChtdXQg
c2VsZiwgZmlsZW5hbWU6ICZzdHIsIG1pbWVfdHlwZTogJnN0ciwgY29udGVudDogJidhIFt1OF0p
IC0+IFNlbGYgeworICAgICAgICBzZWxmLmFkZF9hdHRhY2htZW50KGZpbGVuYW1lLCBtaW1lX3R5
cGUsIGNvbnRlbnQpOworICAgICAgICBzZWxmCisgICAgfQorCisgICAgLy8vIFNldCBhbiBhbHRl
cm5hdGl2ZSBIVE1MIHBhcnQuCisgICAgLy8vCisgICAgLy8vIE5vdGU6IFRoaXMgdHJpZ2dlcnMg
YG11bHRpcGFydC9hbHRlcm5hdGl2ZWAgbW9kZS4gSWYgYm90aCBhbiBIVE1MIHBhcnQgYW5kIGF0
IGxlYXN0IG9uZQorICAgIC8vLyBhdHRhY2htZW50IGFyZSBzcGVjaWZpZWQsIHRoZSBgbXVsdGlw
YXJ0L2FsdGVybmF0aXZlYCBwYXJ0IHdpbGwgYmUgbmVzdGVkIHdpdGhpbiB0aGUgZmlyc3QKKyAg
ICAvLy8gYG11bHRpcGFydC9taXhlZGAgcGFydC4gVGhpcyBzaG91bGQgZW5zdXJlIHRoYXQgdGhl
IEhUTUwgaXMgZGlzcGxheWVkIHByb3Blcmx5IGJ5IGNsaWVudCdzCisgICAgLy8vIHRoYXQgcHJp
b3JpdGl6ZSBpdCBvdmVyIHRoZSBwbGFpbiB0ZXh0IHBhcnQgKHNob3VsZCBiZSB0aGUgZGVmYXVs
dCBmb3IgbW9zdCBjbGllbnRzKSB3aGlsZQorICAgIC8vLyBhbHNvIHByb3Blcmx5IGRpc3BsYXlp
bmcgdGhlIGF0dGFjaG1lbnRzLgorICAgIHB1YiBmbiBzZXRfaHRtbF9hbHQoJm11dCBzZWxmLCBi
b2R5X2h0bWw6ICZzdHIpIHsKKyAgICAgICAgc2VsZi5ib2R5X2h0bWwucmVwbGFjZShib2R5X2h0
bWwudG9fc3RyaW5nKCkpOworICAgIH0KKworICAgIC8vLyBCdWlsZGVyLXN0eWxlIG1ldGhvZCB0
byBhZGQgYW4gYWx0ZXJuYXRpdmUgSFRNTCBwYXJ0LgorICAgIC8vLworICAgIC8vLyBOb3RlOiBU
aGlzIHRyaWdnZXJzIGBtdWx0aXBhcnQvYWx0ZXJuYXRpdmVgIG1vZGUuIElmIGJvdGggYW4gSFRN
TCBwYXJ0IGFuZCBhdCBsZWFzdCBvbmUKKyAgICAvLy8gYXR0YWNobWVudCBhcmUgc3BlY2lmaWVk
LCB0aGUgYG11bHRpcGFydC9hbHRlcm5hdGl2ZWAgcGFydCB3aWxsIGJlIG5lc3RlZCB3aXRoaW4g
dGhlIGZpcnN0CisgICAgLy8vIGBtdWx0aXBhcnQvbWl4ZWRgIHBhcnQuIFRoaXMgc2hvdWxkIGVu
c3VyZSB0aGF0IHRoZSBIVE1MIGlzIGRpc3BsYXllZCBwcm9wZXJseSBieSBjbGllbnQncworICAg
IC8vLyB0aGF0IHByaW9yaXRpemUgaXQgb3ZlciB0aGUgcGxhaW4gdGV4dCBwYXJ0IChzaG91bGQg
YmUgdGhlIGRlZmF1bHQgZm9yIG1vc3QgY2xpZW50cykgd2hpbGUKKyAgICAvLy8gYWxzbyBwcm9w
ZXJseSBkaXNwbGF5aW5nIHRoZSBhdHRhY2htZW50cy4KKyAgICBwdWIgZm4gd2l0aF9odG1sX2Fs
dChtdXQgc2VsZiwgYm9keV9odG1sOiAmc3RyKSAtPiBTZWxmIHsKKyAgICAgICAgc2VsZi5zZXRf
aHRtbF9hbHQoYm9keV9odG1sKTsKKyAgICAgICAgc2VsZgorICAgIH0KKworICAgIC8vLyBUaGlz
IGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCByZWNpcGllbnRzIG9mIHRoZSBtYWlsIGFyZSBub3QgbWFz
a2VkLiBCZWluZyBhYmxlIHRvIHNlZSBhbGwKKyAgICAvLy8gcmVjaXBpZW50cyBvZiBhIG1haWwg
Y2FuIGJlIGhlbHBmdWwgaW4sIGZvciBleGFtcGxlLCBub3RpZmljYXRpb24gc2NlbmFyaW9zLgor
ICAgIHB1YiBmbiB1bm1hc2tfcmVjaXBpZW50cygmbXV0IHNlbGYpIHsKKyAgICAgICAgc2VsZi5t
YXNrX3BhcnRpY2lwYW50cyA9IGZhbHNlOworICAgIH0KKworICAgIC8vLyBCdWlsZGVyLXN0eWxl
IGZ1bmN0aW9uIHRoYXQgZW5zdXJlcyB0aGF0IHJlY2lwaWVudHMgb2YgdGhlIG1haWwgYXJlIG5v
dCBtYXNrZWQuIEJlaW5nIGFibGUKKyAgICAvLy8gdG8gc2VlIGFsbCByZWNpcGllbnRzIG9mIGEg
bWFpbCBjYW4gYmUgaGVscGZ1bCBpbiwgZm9yIGV4YW1wbGUsIG5vdGlmaWNhdGlvbiBzY2VuYXJp
b3MuCisgICAgcHViIGZuIHdpdGhfdW5tYXNrZWRfcmVjaXBpZW50cyhtdXQgc2VsZikgLT4gU2Vs
ZiB7CisgICAgICAgIHNlbGYudW5tYXNrX3JlY2lwaWVudHMoKTsKKyAgICAgICAgc2VsZgorICAg
IH0KKworICAgIC8vLyBTZW5kcyB0aGUgZW1haWwuIFRoaXMgd2lsbCBmYWlsIGlmIG5vIHJlY2lw
aWVudHMgaGF2ZSBiZWVuIGFkZGVkLgorICAgIC8vLworICAgIC8vLyBOb3RlOiBBbiBgQXV0by1T
dWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkYCBoZWFkZXIgaXMgYWRkZWQgdG8gYXZvaWQgdHJpZ2dl
cmluZyBPT08gYW5kCisgICAgLy8vIHNpbWlsYXIgbWFpbHMuCisgICAgcHViIGZuIHNlbmQoJnNl
bGYpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICAgICAgaWYgc2VsZi50by5pc19lbXB0eSgp
IHsKKyAgICAgICAgICAgIGJhaWwhKCJubyByZWNpcGllbnRzIHByb3ZpZGVkIGZvciB0aGUgbWFp
bCwgY2Fubm90IHNlbmQgaXQuIik7CisgICAgICAgIH0KKworICAgICAgICBsZXQgbm93ID0gcHJv
eG1veF90aW1lOjplcG9jaF9pNjQoKTsKKyAgICAgICAgbGV0IGJvZHkgPSBzZWxmLmZvcm1hdF9t
YWlsKG5vdyk/OworCisgICAgICAgIGxldCBtdXQgc2VuZG1haWxfcHJvY2VzcyA9IENvbW1hbmQ6
Om5ldygiL3Vzci9zYmluL3NlbmRtYWlsIikKKyAgICAgICAgICAgIC5hcmcoIi1CIikKKyAgICAg
ICAgICAgIC5hcmcoIjhCSVRNSU1FIikKKyAgICAgICAgICAgIC5hcmcoIi1mIikKKyAgICAgICAg
ICAgIC5hcmcoJnNlbGYubWFpbF9mcm9tKQorICAgICAgICAgICAgLmFyZygiLS0iKQorICAgICAg
ICAgICAgLmFyZ3Moc2VsZi50by5pdGVyKCkubWFwKHxwfCAmcC5lbWFpbCkuY29sbGVjdDo6PFZl
YzwmU3RyaW5nPj4oKSkKKyAgICAgICAgICAgIC5zdGRpbihTdGRpbzo6cGlwZWQoKSkKKyAgICAg
ICAgICAgIC5zcGF3bigpCisgICAgICAgICAgICAud2l0aF9jb250ZXh0KHx8ICJjb3VsZCBub3Qg
c3Bhd24gc2VuZG1haWwgcHJvY2VzcyIpPzsKKworICAgICAgICBzZW5kbWFpbF9wcm9jZXNzCisg
ICAgICAgICAgICAuc3RkaW4KKyAgICAgICAgICAgIC5hc19yZWYoKQorICAgICAgICAgICAgLnVu
d3JhcCgpCisgICAgICAgICAgICAud3JpdGVfYWxsKGJvZHkuYXNfYnl0ZXMoKSkKKyAgICAgICAg
ICAgIC53aXRoX2NvbnRleHQofHwgImNvdWxkbid0IHdyaXRlIHRvIHNlbmRtYWlsIHN0ZGluIik/
OworCisgICAgICAgIHNlbmRtYWlsX3Byb2Nlc3MKKyAgICAgICAgICAgIC53YWl0KCkKKyAgICAg
ICAgICAgIC53aXRoX2NvbnRleHQofHwgInNlbmRtYWlsIGRpZCBub3QgZXhpdCBzdWNjZXNzZnVs
bHkiKT87CisKKyAgICAgICAgT2soKCkpCisgICAgfQorCisgICAgZm4gZm9ybWF0X21haWwoJnNl
bGYsIG5vdzogaTY0KSAtPiBSZXN1bHQ8U3RyaW5nLCBFcnJvcj4geworICAgICAgICB1c2Ugc3Rk
OjpmbXQ6OldyaXRlOworCisgICAgICAgIGxldCBmaWxlX2JvdW5kYXJ5ID0gZm9ybWF0ISgiLS0t
LV89X05leHRQYXJ0XzAwMV97bm93fSIpOworICAgICAgICBsZXQgaHRtbF9ib3VuZGFyeSA9IGZv
cm1hdCEoIi0tLS1fPV9OZXh0UGFydF8wMDJfe25vd30iKTsKKworICAgICAgICBsZXQgbXV0IG1h
aWwgPSBzZWxmLmZvcm1hdF9oZWFkZXIobm93LCAmZmlsZV9ib3VuZGFyeSwgJmh0bWxfYm91bmRh
cnkpPzsKKyAgICAgICAgbWFpbC5wdXNoX3N0cigmc2VsZi5mb3JtYXRfYm9keSgmZmlsZV9ib3Vu
ZGFyeSwgJmh0bWxfYm91bmRhcnkpPyk7CisKKyAgICAgICAgaWYgIXNlbGYuYXR0YWNobWVudHMu
aXNfZW1wdHkoKSB7CisgICAgICAgICAgICBtYWlsLnB1c2hfc3RyKAorICAgICAgICAgICAgICAg
ICZzZWxmCisgICAgICAgICAgICAgICAgICAgIC5hdHRhY2htZW50cworICAgICAgICAgICAgICAg
ICAgICAuaXRlcigpCisgICAgICAgICAgICAgICAgICAgIC5tYXAofGF8IGEuZm9ybWF0X2F0dGFj
aG1lbnQoJmZpbGVfYm91bmRhcnkpKQorICAgICAgICAgICAgICAgICAgICAuY29sbGVjdDo6PFN0
cmluZz4oKSwKKyAgICAgICAgICAgICk7CisKKyAgICAgICAgICAgIHdyaXRlIShtYWlsLCAiXG4t
LXtmaWxlX2JvdW5kYXJ5fS0tIik/OworICAgICAgICB9CisKKyAgICAgICAgT2sobWFpbCkKKyAg
ICB9CisKKyAgICBmbiBmb3JtYXRfaGVhZGVyKAorICAgICAgICAmc2VsZiwKKyAgICAgICAgbm93
OiBpNjQsCisgICAgICAgIGZpbGVfYm91bmRhcnk6ICZzdHIsCisgICAgICAgIGh0bWxfYm91bmRh
cnk6ICZzdHIsCisgICAgKSAtPiBSZXN1bHQ8U3RyaW5nLCBFcnJvcj4geworICAgICAgICB1c2Ug
c3RkOjpmbXQ6OldyaXRlOworCisgICAgICAgIGxldCBtdXQgaGVhZGVyID0gU3RyaW5nOjpuZXco
KTsKKworICAgICAgICBsZXQgZW5jb2RlZF90byA9IGlmIHNlbGYudG8ubGVuKCkgPiAxICYmIHNl
bGYubWFza19wYXJ0aWNpcGFudHMgeworICAgICAgICAgICAgLy8gaWYgdGhlIHJlY2VpdmVycyBh
cmUgbWFza2VkLCB3ZSBrbm93IHRoYXQgdGhleSBkb24ndCBuZWVkIHRvIGJlIGVuY29kZWQKKyAg
ICAgICAgICAgIGZhbHNlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBjaGVjayBp
ZiB0aGVyZSBpcyBhIHJlY2lwaWVudCB0aGF0IG5lZWRzIGVuY29kaW5nCisgICAgICAgICAgICBz
ZWxmLnRvLml0ZXIoKS5hbnkofHJ8ICFyLmlzX2FzY2lpKCkpCisgICAgICAgIH07CisKKyAgICAg
ICAgaWYgIXNlbGYuYXR0YWNobWVudHMuaXNfZW1wdHkoKSB7CisgICAgICAgICAgICBoZWFkZXIu
cHVzaF9zdHIoIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkO1xuIik7CisgICAgICAgICAg
ICB3cml0ZWxuIShoZWFkZXIsICJcdGJvdW5kYXJ5PVwie2ZpbGVfYm91bmRhcnl9XCIiKT87Cisg
ICAgICAgICAgICBoZWFkZXIucHVzaF9zdHIoIk1JTUUtVmVyc2lvbjogMS4wXG4iKTsKKyAgICAg
ICAgfSBlbHNlIGlmIHNlbGYuYm9keV9odG1sLmlzX3NvbWUoKSB7CisgICAgICAgICAgICBoZWFk
ZXIucHVzaF9zdHIoIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlO1xuIik7Cisg
ICAgICAgICAgICB3cml0ZWxuIShoZWFkZXIsICJcdGJvdW5kYXJ5PVwie2h0bWxfYm91bmRhcnl9
XCIiKT87CisgICAgICAgICAgICBoZWFkZXIucHVzaF9zdHIoIk1JTUUtVmVyc2lvbjogMS4wXG4i
KTsKKyAgICAgICAgfSBlbHNlIGlmICFzZWxmLnN1YmplY3QuaXNfYXNjaWkoKSB8fCAhc2VsZi5t
YWlsX2F1dGhvci5pc19hc2NpaSgpIHx8IGVuY29kZWRfdG8geworICAgICAgICAgICAgaGVhZGVy
LnB1c2hfc3RyKCJNSU1FLVZlcnNpb246IDEuMFxuIik7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAhc2VsZi5zdWJqZWN0LmlzX2FzY2lpKCkgeworICAgICAgICAgICAgd3JpdGVsbiEoCisgICAg
ICAgICAgICAgICAgaGVhZGVyLAorICAgICAgICAgICAgICAgICJTdWJqZWN0OiA9P3V0Zi04P0I/
e30/PSIsCisgICAgICAgICAgICAgICAgYmFzZTY0OjplbmNvZGUoJnNlbGYuc3ViamVjdCkKKyAg
ICAgICAgICAgICk/OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd3JpdGVsbiEoaGVh
ZGVyLCAiU3ViamVjdDoge30iLCBzZWxmLnN1YmplY3QpPzsKKyAgICAgICAgfTsKKworICAgICAg
ICBpZiAhc2VsZi5tYWlsX2F1dGhvci5pc19hc2NpaSgpIHsKKyAgICAgICAgICAgIHdyaXRlbG4h
KAorICAgICAgICAgICAgICAgIGhlYWRlciwKKyAgICAgICAgICAgICAgICAiRnJvbTogPT91dGYt
OD9CP3t9Pz0gPHt9PiIsCisgICAgICAgICAgICAgICAgYmFzZTY0OjplbmNvZGUoJnNlbGYubWFp
bF9hdXRob3IpLAorICAgICAgICAgICAgICAgIHNlbGYubWFpbF9mcm9tCisgICAgICAgICAgICAp
PzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdyaXRlbG4hKGhlYWRlciwgIkZyb206
IHt9IDx7fT4iLCBzZWxmLm1haWxfYXV0aG9yLCBzZWxmLm1haWxfZnJvbSk/OworICAgICAgICB9
CisKKyAgICAgICAgbGV0IHRvID0gaWYgc2VsZi50by5sZW4oKSA+IDEgJiYgc2VsZi5tYXNrX3Bh
cnRpY2lwYW50cyB7CisgICAgICAgICAgICAvLyBkb24ndCBkaXNjbG9zZSBhbGwgcmVjaXBpZW50
cyBpZiB0aGUgbWFpbCBnb2VzIG91dCB0byBtdWx0aXBsZQorICAgICAgICAgICAgbGV0IHJlY2lw
aWVudCA9IFJlY2lwaWVudCB7CisgICAgICAgICAgICAgICAgbmFtZTogU29tZSgiVW5kaXNjbG9z
ZWQiLnRvX3N0cmluZygpKSwKKyAgICAgICAgICAgICAgICBlbWFpbDogIm5vcmVwbHkiLnRvX3N0
cmluZygpLAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgcmVjaXBpZW50LmZvcm1hdF9y
ZWNpcGllbnQoKQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2VsZi50bworICAgICAg
ICAgICAgICAgIC5pdGVyKCkKKyAgICAgICAgICAgICAgICAubWFwKFJlY2lwaWVudDo6Zm9ybWF0
X3JlY2lwaWVudCkKKyAgICAgICAgICAgICAgICAuY29sbGVjdDo6PFZlYzxTdHJpbmc+PigpCisg
ICAgICAgICAgICAgICAgLmpvaW4oIiwgIikKKyAgICAgICAgfTsKKworICAgICAgICB3cml0ZWxu
IShoZWFkZXIsICJUbzoge3RvfSIpPzsKKworICAgICAgICBsZXQgcmZjMjgyMl9kYXRlID0gcHJv
eG1veF90aW1lOjplcG9jaF90b19yZmMyODIyKG5vdykKKyAgICAgICAgICAgIC53aXRoX2NvbnRl
eHQofHwgImNvdWxkIG5vdCBjb252ZXJ0IGVwb2NoIHRvIHJmYzI4MjIgZGF0ZSIpPzsKKyAgICAg
ICAgd3JpdGVsbiEoaGVhZGVyLCAiRGF0ZToge3JmYzI4MjJfZGF0ZX0iKT87CisgICAgICAgIGhl
YWRlci5wdXNoX3N0cigiQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkO1xuIik7CisKKyAg
ICAgICAgT2soaGVhZGVyKQorICAgIH0KKworICAgIGZuIGZvcm1hdF9ib2R5KCZzZWxmLCBmaWxl
X2JvdW5kYXJ5OiAmc3RyLCBodG1sX2JvdW5kYXJ5OiAmc3RyKSAtPiBSZXN1bHQ8U3RyaW5nLCBF
cnJvcj4geworICAgICAgICB1c2Ugc3RkOjpmbXQ6OldyaXRlOworCisgICAgICAgIGxldCBtdXQg
Ym9keSA9IFN0cmluZzo6bmV3KCk7CisKKyAgICAgICAgaWYgc2VsZi5ib2R5X2h0bWwuaXNfc29t
ZSgpICYmICFzZWxmLmF0dGFjaG1lbnRzLmlzX2VtcHR5KCkgeworICAgICAgICAgICAgYm9keS5w
dXNoX3N0cigiXG5UaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0Llxu
Iik7CisgICAgICAgICAgICB3cml0ZWxuIShib2R5LCAiXG4tLXtmaWxlX2JvdW5kYXJ5fSIpPzsK
KyAgICAgICAgICAgIHdyaXRlbG4hKAorICAgICAgICAgICAgICAgIGJvZHksCisgICAgICAgICAg
ICAgICAgIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT1cInto
dG1sX2JvdW5kYXJ5fVwiIgorICAgICAgICAgICAgKT87CisgICAgICAgICAgICBib2R5LnB1c2hf
c3RyKCJNSU1FLVZlcnNpb246IDEuMFxuIik7CisgICAgICAgICAgICB3cml0ZWxuIShib2R5LCAi
XG4tLXtodG1sX2JvdW5kYXJ5fSIpPzsKKyAgICAgICAgfSBlbHNlIGlmIHNlbGYuYm9keV9odG1s
LmlzX3NvbWUoKSB7CisgICAgICAgICAgICBib2R5LnB1c2hfc3RyKCJcblRoaXMgaXMgYSBtdWx0
aS1wYXJ0IG1lc3NhZ2UgaW4gTUlNRSBmb3JtYXQuXG4iKTsKKyAgICAgICAgICAgIHdyaXRlbG4h
KGJvZHksICJcbi0te2h0bWxfYm91bmRhcnl9Iik/OworICAgICAgICB9IGVsc2UgaWYgc2VsZi5i
b2R5X2h0bWwuaXNfbm9uZSgpICYmICFzZWxmLmF0dGFjaG1lbnRzLmlzX2VtcHR5KCkgeworICAg
ICAgICAgICAgYm9keS5wdXNoX3N0cigiXG5UaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGlu
IE1JTUUgZm9ybWF0LlxuIik7CisgICAgICAgICAgICB3cml0ZWxuIShib2R5LCAiXG4tLXtmaWxl
X2JvdW5kYXJ5fSIpPzsKKyAgICAgICAgfQorCisgICAgICAgIGJvZHkucHVzaF9zdHIoIkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjtcbiIpOworICAgICAgICBib2R5LnB1c2hfc3RyKCJcdGNoYXJz
ZXQ9XCJVVEYtOFwiXG4iKTsKKyAgICAgICAgYm9keS5wdXNoX3N0cigiQ29udGVudC1UcmFuc2Zl
ci1FbmNvZGluZzogOGJpdFxuXG4iKTsKKyAgICAgICAgYm9keS5wdXNoX3N0cigmc2VsZi5ib2R5
X3R4dCk7CisKKyAgICAgICAgaWYgbGV0IFNvbWUoaHRtbCkgPSAmc2VsZi5ib2R5X2h0bWwgewor
ICAgICAgICAgICAgd3JpdGVsbiEoYm9keSwgIlxuLS17aHRtbF9ib3VuZGFyeX0iKT87CisgICAg
ICAgICAgICBib2R5LnB1c2hfc3RyKCJDb250ZW50LVR5cGU6IHRleHQvaHRtbDtcbiIpOworICAg
ICAgICAgICAgYm9keS5wdXNoX3N0cigiXHRjaGFyc2V0PVwiVVRGLThcIlxuIik7CisgICAgICAg
ICAgICBib2R5LnB1c2hfc3RyKCJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG5cbiIp
OworICAgICAgICAgICAgYm9keS5wdXNoX3N0cihodG1sKTsKKyAgICAgICAgICAgIHdyaXRlIShi
b2R5LCAiXG4tLXtodG1sX2JvdW5kYXJ5fS0tIik/OworICAgICAgICB9CisKKyAgICAgICAgT2so
Ym9keSkKKyAgICB9Cit9CisKKyNbY2ZnKHRlc3QpXQorbW9kIHRlc3QgeworICAgIHVzZSBzdXBl
cjo6KjsKKworICAgICNbdGVzdF0KKyAgICBmbiBlbWFpbF93aXRob3V0X3JlY2lwaWVudHNfZmFp
bHMoKSB7CisgICAgICAgIGxldCByZXN1bHQgPSBNYWlsOjpuZXcoIlNlbmRlciIsICJtYWlsQGV4
YW1wbGUuY29tIiwgImhpIiwgImJvZHkiKS5zZW5kKCk7CisgICAgICAgIGFzc2VydCEocmVzdWx0
LmlzX2VycigpKTsKKyAgICB9CisKKyAgICAjW3Rlc3RdCisgICAgZm4gc2ltcGxlX2FzY2lpX3Rl
eHRfbWFpbCgpIHsKKyAgICAgICAgbGV0IG1haWwgPSBNYWlsOjpuZXcoCisgICAgICAgICAgICAi
U2VuZGVyIE5hbWUiLAorICAgICAgICAgICAgIm1haWxmcm9tQGV4YW1wbGUuY29tIiwKKyAgICAg
ICAgICAgICJTdWJqZWN0IExpbmUiLAorICAgICAgICAgICAgIlRoaXMgaXMganVzdCBhc2NpaSB0
ZXh0LlxuTm90aGluZyB0b28gc3BlY2lhbC4iLAorICAgICAgICApCisgICAgICAgIC53aXRoX3Jl
Y2lwaWVudF9hbmRfbmFtZSgiUmVjZWl2ZXIgTmFtZSIsICJyZWNlaXZlckBleGFtcGxlLmNvbSIp
OworCisgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgwKS5leHBlY3QoImNvdWxk
IG5vdCBmb3JtYXQgbWFpbCIpOworCisgICAgICAgIGFzc2VydF9lcSEoCisgICAgICAgICAgICBi
b2R5LAorICAgICAgICAgICAgciMiU3ViamVjdDogU3ViamVjdCBMaW5lCitGcm9tOiBTZW5kZXIg
TmFtZSA8bWFpbGZyb21AZXhhbXBsZS5jb20+CitUbzogUmVjZWl2ZXIgTmFtZSA8cmVjZWl2ZXJA
ZXhhbXBsZS5jb20+CitEYXRlOiBUaHUsIDAxIEphbiAxOTcwIDAxOjAwOjAwICswMTAwCitBdXRv
LVN1Ym1pdHRlZDogYXV0by1nZW5lcmF0ZWQ7CitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CisJ
Y2hhcnNldD0iVVRGLTgiCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoaXMg
aXMganVzdCBhc2NpaSB0ZXh0LgorTm90aGluZyB0b28gc3BlY2lhbC4iIworICAgICAgICApCisg
ICAgfQorCisgICAgI1t0ZXN0XQorICAgIGZuIG11bHRpcGxlX3JlY2VpdmVyX21hc2tlZCgpIHsK
KyAgICAgICAgbGV0IG1haWwgPSBNYWlsOjpuZXcoCisgICAgICAgICAgICAiU2VuZGVyIE5hbWUi
LAorICAgICAgICAgICAgIm1haWxmcm9tQGV4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICJTdWJq
ZWN0IExpbmUiLAorICAgICAgICAgICAgIlRoaXMgaXMganVzdCBhc2NpaSB0ZXh0LlxuTm90aGlu
ZyB0b28gc3BlY2lhbC4iLAorICAgICAgICApCisgICAgICAgIC53aXRoX3JlY2lwaWVudF9hbmRf
bmFtZSgiUmVjZWl2ZXIgTmFtZSIsICJyZWNlaXZlckBleGFtcGxlLmNvbSIpCisgICAgICAgIC53
aXRoX3JlY2lwaWVudCgidHdvQGV4YW1wbGUuY29tIikKKyAgICAgICAgLndpdGhfcmVjaXBpZW50
X2FuZF9uYW1lKCJtw6R4IG3DvHN0ZXJtw6RubiIsICJtbUBleGFtcGxlLmNvbSIpOworCisgICAg
ICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgwKS5leHBlY3QoImNvdWxkIG5vdCBmb3Jt
YXQgbWFpbCIpOworCisgICAgICAgIGFzc2VydF9lcSEoCisgICAgICAgICAgICBib2R5LAorICAg
ICAgICAgICAgciMiU3ViamVjdDogU3ViamVjdCBMaW5lCitGcm9tOiBTZW5kZXIgTmFtZSA8bWFp
bGZyb21AZXhhbXBsZS5jb20+CitUbzogVW5kaXNjbG9zZWQgPG5vcmVwbHk+CitEYXRlOiBUaHUs
IDAxIEphbiAxOTcwIDAxOjAwOjAwICswMTAwCitBdXRvLVN1Ym1pdHRlZDogYXV0by1nZW5lcmF0
ZWQ7CitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CisJY2hhcnNldD0iVVRGLTgiCitDb250ZW50
LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoaXMgaXMganVzdCBhc2NpaSB0ZXh0LgorTm90
aGluZyB0b28gc3BlY2lhbC4iIworICAgICAgICApCisgICAgfQorCisgICAgI1t0ZXN0XQorICAg
IGZuIG11bHRpcGxlX3JlY2VpdmVyX3VubWFza2VkKCkgeworICAgICAgICBsZXQgbWFpbCA9IE1h
aWw6Om5ldygKKyAgICAgICAgICAgICJTZW5kZXIgTmFtZSIsCisgICAgICAgICAgICAibWFpbGZy
b21AZXhhbXBsZS5jb20iLAorICAgICAgICAgICAgIlN1YmplY3QgTGluZSIsCisgICAgICAgICAg
ICAiVGhpcyBpcyBqdXN0IGFzY2lpIHRleHQuXG5Ob3RoaW5nIHRvbyBzcGVjaWFsLiIsCisgICAg
ICAgICkKKyAgICAgICAgLndpdGhfcmVjaXBpZW50X2FuZF9uYW1lKCJSZWNlaXZlciBOYW1lIiwg
InJlY2VpdmVyQGV4YW1wbGUuY29tIikKKyAgICAgICAgLndpdGhfcmVjaXBpZW50KCJ0d29AZXhh
bXBsZS5jb20iKQorICAgICAgICAud2l0aF9yZWNpcGllbnRfYW5kX25hbWUoIm3DpHggbcO8c3Rl
cm3DpG5uIiwgIm1tQGV4YW1wbGUuY29tIikKKyAgICAgICAgLndpdGhfdW5tYXNrZWRfcmVjaXBp
ZW50cygpOworCisgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgwKS5leHBlY3Qo
ImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOworCisgICAgICAgIGFzc2VydF9lcSEoCisgICAgICAg
ICAgICBib2R5LAorICAgICAgICAgICAgciMiTUlNRS1WZXJzaW9uOiAxLjAKK1N1YmplY3Q6IFN1
YmplY3QgTGluZQorRnJvbTogU2VuZGVyIE5hbWUgPG1haWxmcm9tQGV4YW1wbGUuY29tPgorVG86
IFJlY2VpdmVyIE5hbWUgPHJlY2VpdmVyQGV4YW1wbGUuY29tPiwgdHdvQGV4YW1wbGUuY29tLCA9
P3V0Zi04P0I/YmNPa2VDQnR3N3h6ZEdWeWJjT2tibTQ9Pz0gPG1tQGV4YW1wbGUuY29tPgorRGF0
ZTogVGh1LCAwMSBKYW4gMTk3MCAwMTowMDowMCArMDEwMAorQXV0by1TdWJtaXR0ZWQ6IGF1dG8t
Z2VuZXJhdGVkOworQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOworCWNoYXJzZXQ9IlVURi04Igor
Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGlzIGlzIGp1c3QgYXNjaWkgdGV4
dC4KK05vdGhpbmcgdG9vIHNwZWNpYWwuIiMKKyAgICAgICAgKQorICAgIH0KKworICAgICNbdGVz
dF0KKyAgICBmbiBzaW1wbGVfdXRmOF90ZXh0X21haWwoKSB7CisgICAgICAgIGxldCBtYWlsID0g
TWFpbDo6bmV3KAorICAgICAgICAgICAgIlVURi04IFNlbmRlciBOYW1lIPCfk6ciLAorICAgICAg
ICAgICAgImRpZmZlcmVudGZyb21AZXhhbXBsZS5jb20iLAorICAgICAgICAgICAgIlN1YmplY3Qg
TGluZSDwn6eRIiwKKyAgICAgICAgICAgICJUaGlzIHV0Zi04IGVtYWlsIHNob3VsZCBoYW5kbGUg
ZW1vamlzXG7wn6eR8J+Tp1xuYW5kIHdlaXJkIGdlcm1hbiBjaGFyYWN0ZXJzOiDDtsOkw7zDn1xu
YW5kIG1vcmUuIiwKKyAgICAgICAgKQorICAgICAgICAud2l0aF9yZWNpcGllbnRfYW5kX25hbWUo
IlJlY2VpdmVyIE5hbWXwn5OpIiwgInJlY2VpdmVyQGV4YW1wbGUuY29tIik7CisKKyAgICAgICAg
bGV0IGJvZHkgPSBtYWlsLmZvcm1hdF9tYWlsKDE3MzI4MDYyNTEpLmV4cGVjdCgiY291bGQgbm90
IGZvcm1hdCBtYWlsIik7CisKKyAgICAgICAgYXNzZXJ0X2VxISgKKyAgICAgICAgICAgIGJvZHks
CisgICAgICAgICAgICByIyJNSU1FLVZlcnNpb246IDEuMAorU3ViamVjdDogPT91dGYtOD9CP1Uz
VmlhbVZqZENCTWFXNWxJUENmcDVFPT89CitGcm9tOiA9P3V0Zi04P0I/VlZSR0xUZ2dVMlZ1WkdW
eUlFNWhiV1VnOEorVHB3PT0/PSA8ZGlmZmVyZW50ZnJvbUBleGFtcGxlLmNvbT4KK1RvOiA9P3V0
Zi04P0I/VW1WalpXbDJaWElnVG1GdFpmQ2ZrNms9Pz0gPHJlY2VpdmVyQGV4YW1wbGUuY29tPgor
RGF0ZTogVGh1LCAyOCBOb3YgMjAyNCAxNjowNDoxMSArMDEwMAorQXV0by1TdWJtaXR0ZWQ6IGF1
dG8tZ2VuZXJhdGVkOworQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOworCWNoYXJzZXQ9IlVURi04
IgorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGlzIHV0Zi04IGVtYWlsIHNo
b3VsZCBoYW5kbGUgZW1vamlzCivwn6eR8J+TpworYW5kIHdlaXJkIGdlcm1hbiBjaGFyYWN0ZXJz
OiDDtsOkw7zDnworYW5kIG1vcmUuIiMKKyAgICAgICAgKQorICAgIH0KKworICAgICNbdGVzdF0K
KyAgICBmbiBtdWx0aXBhcnRfaHRtbF9hbHRlcm5hdGl2ZSgpIHsKKyAgICAgICAgbGV0IG1haWwg
PSBNYWlsOjpuZXcoCisgICAgICAgICAgICAiU2VuZGVyIE5hbWUiLAorICAgICAgICAgICAgImZy
b21AZXhhbXBsZS5jb20iLAorICAgICAgICAgICAgIlN1YmplY3QgTGluZSIsCisgICAgICAgICAg
ICAiTG9yZW0gSXBzdW0gRG9sb3IgU2l0XG5BbWV0IiwKKyAgICAgICAgKQorICAgICAgICAud2l0
aF9yZWNpcGllbnQoInJlY2VpdmVyQGV4YW1wbGUuY29tIikKKyAgICAgICAgLndpdGhfaHRtbF9h
bHQoIjxodG1sIGxhbmc9XCJkZS1hdFwiPjxoZWFkPjwvaGVhZD48Ym9keT5cblx0PHByZT5cblx0
XHRMb3JlbSBJcHN1bSBEb2xvciBTaXQgQW1ldFxuXHQ8L3ByZT5cbjwvYm9keT48L2h0bWw+Iik7
CisgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgxNzMyODA2MjUxKS5leHBlY3Qo
ImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOworICAgICAgICBhc3NlcnRfZXEhKAorICAgICAgICAg
ICAgYm9keSwKKyAgICAgICAgICAgIHIjIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0
aXZlOworCWJvdW5kYXJ5PSItLS0tXz1fTmV4dFBhcnRfMDAyXzE3MzI4MDYyNTEiCitNSU1FLVZl
cnNpb246IDEuMAorU3ViamVjdDogU3ViamVjdCBMaW5lCitGcm9tOiBTZW5kZXIgTmFtZSA8ZnJv
bUBleGFtcGxlLmNvbT4KK1RvOiByZWNlaXZlckBleGFtcGxlLmNvbQorRGF0ZTogVGh1LCAyOCBO
b3YgMjAyNCAxNjowNDoxMSArMDEwMAorQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkOwor
CitUaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LgorCistLS0tLS1f
PV9OZXh0UGFydF8wMDJfMTczMjgwNjI1MQorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOworCWNo
YXJzZXQ9IlVURi04IgorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitMb3JlbSBJ
cHN1bSBEb2xvciBTaXQKK0FtZXQKKy0tLS0tLV89X05leHRQYXJ0XzAwMl8xNzMyODA2MjUxCitD
b250ZW50LVR5cGU6IHRleHQvaHRtbDsKKwljaGFyc2V0PSJVVEYtOCIKK0NvbnRlbnQtVHJhbnNm
ZXItRW5jb2Rpbmc6IDhiaXQKKworPGh0bWwgbGFuZz0iZGUtYXQiPjxoZWFkPjwvaGVhZD48Ym9k
eT4KKwk8cHJlPgorCQlMb3JlbSBJcHN1bSBEb2xvciBTaXQgQW1ldAorCTwvcHJlPgorPC9ib2R5
PjwvaHRtbD4KKy0tLS0tLV89X05leHRQYXJ0XzAwMl8xNzMyODA2MjUxLS0iIworICAgICAgICAp
CisgICAgfQorCisgICAgI1t0ZXN0XQorICAgIGZuIG11bHRpcGFydF9wbGFpbl90ZXh0X2F0dGFj
aG1lbnRzX21peGVkKCkgeworICAgICAgICBsZXQgYmluOiBbdTg7IDYyXSA9IFsKKyAgICAgICAg
ICAgIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUs
IDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsCisgICAgICAgICAgICAweGRlLCAweGFkLCAw
eGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVm
LCAweGRlLCAweGFkLAorICAgICAgICAgICAgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwg
MHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwKKyAg
ICAgICAgICAgIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYs
IDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsCisgICAgICAgICAgICAweGJlLCAw
eGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLAorICAgICAgICBdOworCisgICAgICAgIGxldCBt
YWlsID0gTWFpbDo6bmV3KAorICAgICAgICAgICAgIlNlbmRlciBOYW1lIiwKKyAgICAgICAgICAg
ICJmcm9tQGV4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICJTdWJqZWN0IExpbmUiLAorICAgICAg
ICAgICAgIkxvcmVtIElwc3VtIERvbG9yIFNpdFxuQW1ldCIsCisgICAgICAgICkKKyAgICAgICAg
LndpdGhfcmVjaXBpZW50X2FuZF9uYW1lKCJSZWNlaXZlciBOYW1lIiwgInJlY2VpdmVyQGV4YW1w
bGUuY29tIikKKyAgICAgICAgLndpdGhfYXR0YWNobWVudCgiZGVhZGJlZWYuYmluIiwgImFwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbSIsICZiaW4pOworCisgICAgICAgIGxldCBib2R5ID0gbWFpbC5m
b3JtYXRfbWFpbCgxNzMyODA2MjUxKS5leHBlY3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOwor
ICAgICAgICBhc3NlcnRfZXEhKAorICAgICAgICAgICAgYm9keSwKKyAgICAgICAgICAgIHIjIkNv
bnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOworCWJvdW5kYXJ5PSItLS0tXz1fTmV4dFBhcnRf
MDAxXzE3MzI4MDYyNTEiCitNSU1FLVZlcnNpb246IDEuMAorU3ViamVjdDogU3ViamVjdCBMaW5l
CitGcm9tOiBTZW5kZXIgTmFtZSA8ZnJvbUBleGFtcGxlLmNvbT4KK1RvOiBSZWNlaXZlciBOYW1l
IDxyZWNlaXZlckBleGFtcGxlLmNvbT4KK0RhdGU6IFRodSwgMjggTm92IDIwMjQgMTY6MDQ6MTEg
KzAxMDAKK0F1dG8tU3VibWl0dGVkOiBhdXRvLWdlbmVyYXRlZDsKKworVGhpcyBpcyBhIG11bHRp
LXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KKworLS0tLS0tXz1fTmV4dFBhcnRfMDAxXzE3
MzI4MDYyNTEKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKKwljaGFyc2V0PSJVVEYtOCIKK0Nv
bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworTG9yZW0gSXBzdW0gRG9sb3IgU2l0CitB
bWV0CistLS0tLS1fPV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MQorQ29udGVudC1UeXBlOiBhcHBs
aWNhdGlvbi9vY3RldC1zdHJlYW07IG5hbWU9ImRlYWRiZWVmLmJpbiIKK0NvbnRlbnQtRGlzcG9z
aXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJkZWFkYmVlZi5iaW4iOyBmaWxlbmFtZSo9VVRG
LTgnJ2RlYWRiZWVmLmJpbgorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0CisKKzNx
Mis3OTZ0dnUvZXJiN3YzcTNlcmI3djNxMis3OTZ0dnUvZXJkNnR2dS9lcmI3djNxMis3OTZ0M3Ey
Kzc5NnR2dS9lcmI3dgorM3EyKzc5NnR2dTg9CistLS0tLS1fPV9OZXh0UGFydF8wMDFfMTczMjgw
NjI1MS0tIiMKKyAgICAgICAgKQorICAgIH0KKworICAgICNbdGVzdF0KKyAgICBmbiBtdWx0aXBh
cnRfcGxhaW5fdGV4dF9odG1sX2FsdGVybmF0aXZlX2F0dGFjaG1lbnRzKCkgeworICAgICAgICBs
ZXQgYmluOiBbdTg7IDYyXSA9IFsKKyAgICAgICAgICAgIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYs
IDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4
YWQsCisgICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJl
LCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAorICAgICAgICAgICAg
MHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhh
ZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwKKyAgICAgICAgICAgIDB4ZGUsIDB4YWQsIDB4YmUs
IDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4
ZGUsIDB4YWQsCisgICAgICAgICAgICAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVm
LAorICAgICAgICBdOworCisgICAgICAgIGxldCBtYWlsID0gTWFpbDo6bmV3KAorICAgICAgICAg
ICAgIlNlbmRlciBOYW1lIiwKKyAgICAgICAgICAgICJmcm9tQGV4YW1wbGUuY29tIiwKKyAgICAg
ICAgICAgICJTdWJqZWN0IExpbmUiLAorICAgICAgICAgICAgIkxvcmVtIElwc3VtIERvbG9yIFNp
dFxuQW1ldCIsCisgICAgICAgICkKKyAgICAgICAgLndpdGhfcmVjaXBpZW50X2FuZF9uYW1lKCJS
ZWNlaXZlciBOYW1lIiwgInJlY2VpdmVyQGV4YW1wbGUuY29tIikKKyAgICAgICAgLndpdGhfYXR0
YWNobWVudCgiZGVhZGJlZWYuYmluIiwgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsICZiaW4p
CisgICAgICAgIC53aXRoX2F0dGFjaG1lbnQoIvCfkITwn5KALmJpbiIsICJpbWFnZS9ibXAiLCAm
YmluKQorICAgICAgICAud2l0aF9odG1sX2FsdCgiPGh0bWwgbGFuZz1cImRlLWF0XCI+PGhlYWQ+
PC9oZWFkPjxib2R5PlxuXHQ8cHJlPlxuXHRcdExvcmVtIElwc3VtIERvbG9yIFNpdCBBbWV0XG5c
dDwvcHJlPlxuPC9ib2R5PjwvaHRtbD4iKTsKKworICAgICAgICBsZXQgYm9keSA9IG1haWwuZm9y
bWF0X21haWwoMTczMjgwNjI1MSkuZXhwZWN0KCJjb3VsZCBub3QgZm9ybWF0IG1haWwiKTsKKwor
ICAgICAgICBhc3NlcnRfZXEhKAorICAgICAgICAgICAgYm9keSwKKyAgICAgICAgICAgIHIjIkNv
bnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOworCWJvdW5kYXJ5PSItLS0tXz1fTmV4dFBhcnRf
MDAxXzE3MzI4MDYyNTEiCitNSU1FLVZlcnNpb246IDEuMAorU3ViamVjdDogU3ViamVjdCBMaW5l
CitGcm9tOiBTZW5kZXIgTmFtZSA8ZnJvbUBleGFtcGxlLmNvbT4KK1RvOiBSZWNlaXZlciBOYW1l
IDxyZWNlaXZlckBleGFtcGxlLmNvbT4KK0RhdGU6IFRodSwgMjggTm92IDIwMjQgMTY6MDQ6MTEg
KzAxMDAKK0F1dG8tU3VibWl0dGVkOiBhdXRvLWdlbmVyYXRlZDsKKworVGhpcyBpcyBhIG11bHRp
LXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KKworLS0tLS0tXz1fTmV4dFBhcnRfMDAxXzE3
MzI4MDYyNTEKK0NvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0i
LS0tLV89X05leHRQYXJ0XzAwMl8xNzMyODA2MjUxIgorTUlNRS1WZXJzaW9uOiAxLjAKKworLS0t
LS0tXz1fTmV4dFBhcnRfMDAyXzE3MzI4MDYyNTEKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsK
KwljaGFyc2V0PSJVVEYtOCIKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworTG9y
ZW0gSXBzdW0gRG9sb3IgU2l0CitBbWV0CistLS0tLS1fPV9OZXh0UGFydF8wMDJfMTczMjgwNjI1
MQorQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7CisJY2hhcnNldD0iVVRGLTgiCitDb250ZW50LVRy
YW5zZmVyLUVuY29kaW5nOiA4Yml0CisKKzxodG1sIGxhbmc9ImRlLWF0Ij48aGVhZD48L2hlYWQ+
PGJvZHk+CisJPHByZT4KKwkJTG9yZW0gSXBzdW0gRG9sb3IgU2l0IEFtZXQKKwk8L3ByZT4KKzwv
Ym9keT48L2h0bWw+CistLS0tLS1fPV9OZXh0UGFydF8wMDJfMTczMjgwNjI1MS0tCistLS0tLS1f
PV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MQorQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3Rl
dC1zdHJlYW07IG5hbWU9ImRlYWRiZWVmLmJpbiIKK0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFj
aG1lbnQ7IGZpbGVuYW1lPSJkZWFkYmVlZi5iaW4iOyBmaWxlbmFtZSo9VVRGLTgnJ2RlYWRiZWVm
LmJpbgorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0CisKKzNxMis3OTZ0dnUvZXJi
N3YzcTNlcmI3djNxMis3OTZ0dnUvZXJkNnR2dS9lcmI3djNxMis3OTZ0M3EyKzc5NnR2dS9lcmI3
dgorM3EyKzc5NnR2dTg9CistLS0tLS1fPV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MQorQ29udGVu
dC1UeXBlOiBpbWFnZS9ibXA7IG5hbWU9IvCfkITwn5KALmJpbiIKK0NvbnRlbnQtRGlzcG9zaXRp
b246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSLwn5CE8J+SgC5iaW4iOyBmaWxlbmFtZSo9VVRGLTgn
JyVGMCU5RiU5MCU4NCVGMCU5RiU5MiU4MC5iaW4KK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6
IGJhc2U2NAorCiszcTIrNzk2dHZ1L2VyYjd2M3EzZXJiN3YzcTIrNzk2dHZ1L2VyZDZ0dnUvZXJi
N3YzcTIrNzk2dDNxMis3OTZ0dnUvZXJiN3YKKzNxMis3OTZ0dnU4PQorLS0tLS0tXz1fTmV4dFBh
cnRfMDAxXzE3MzI4MDYyNTEtLSIjCisgICAgICAgICkKKyAgICB9CisKKyAgICAjW3Rlc3RdCisg
ICAgZm4gdGVzdF9mb3JtYXRfbWFpbF9tdWx0aXBhcnQoKSB7CisgICAgICAgIGxldCBtYWlsID0g
TWFpbDo6bmV3KAorICAgICAgICAgICAgIkZyZWQgT29iYXIiLAorICAgICAgICAgICAgImZvb2Jh
ckBleGFtcGxlLmNvbSIsCisgICAgICAgICAgICAiVGhpcyBpcyB0aGUgc3ViamVjdCIsCisgICAg
ICAgICAgICAiVGhpcyBpcyB0aGUgcGxhaW4gYm9keSIsCisgICAgICAgICkKKyAgICAgICAgLndp
dGhfcmVjaXBpZW50X2FuZF9uYW1lKCJUb255IEVzdCIsICJ0ZXN0QGV4YW1wbGUuY29tIikKKyAg
ICAgICAgLndpdGhfaHRtbF9hbHQoIjxib2R5PlRoaXMgaXMgdGhlIEhUTUwgYm9keTwvYm9keT4i
KTsKKworICAgICAgICBsZXQgYm9keSA9IG1haWwuZm9ybWF0X21haWwoMTcxODk3Nzg1MCkuZXhw
ZWN0KCJjb3VsZCBub3QgZm9ybWF0IG1haWwiKTsKKworICAgICAgICBhc3NlcnRfZXEhKAorICAg
ICAgICAgICAgYm9keSwKKyAgICAgICAgICAgIHIjIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2Fs
dGVybmF0aXZlOworCWJvdW5kYXJ5PSItLS0tXz1fTmV4dFBhcnRfMDAyXzE3MTg5Nzc4NTAiCitN
SU1FLVZlcnNpb246IDEuMAorU3ViamVjdDogVGhpcyBpcyB0aGUgc3ViamVjdAorRnJvbTogRnJl
ZCBPb2JhciA8Zm9vYmFyQGV4YW1wbGUuY29tPgorVG86IFRvbnkgRXN0IDx0ZXN0QGV4YW1wbGUu
Y29tPgorRGF0ZTogRnJpLCAyMSBKdW4gMjAyNCAxNTo1MDo1MCArMDIwMAorQXV0by1TdWJtaXR0
ZWQ6IGF1dG8tZ2VuZXJhdGVkOworCitUaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1J
TUUgZm9ybWF0LgorCistLS0tLS1fPV9OZXh0UGFydF8wMDJfMTcxODk3Nzg1MAorQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluOworCWNoYXJzZXQ9IlVURi04IgorQ29udGVudC1UcmFuc2Zlci1FbmNv
ZGluZzogOGJpdAorCitUaGlzIGlzIHRoZSBwbGFpbiBib2R5CistLS0tLS1fPV9OZXh0UGFydF8w
MDJfMTcxODk3Nzg1MAorQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7CisJY2hhcnNldD0iVVRGLTgi
CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKKzxib2R5PlRoaXMgaXMgdGhlIEhU
TUwgYm9keTwvYm9keT4KKy0tLS0tLV89X05leHRQYXJ0XzAwMl8xNzE4OTc3ODUwLS0iIworICAg
ICAgICApOworICAgIH0KK30KLS0KMi4zOS41CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxp
c3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL3Bicy1kZXZlbAo=