Subject: Re: pkg/32326 (pkg_chk hardcodes PKG_DBDIR)
To: None <gnats-bugs@netbsd.org>
From: Christoph Egger <Christoph_Egger@gmx.de>
List: pkgsrc-bugs
Date: 12/19/2005 20:20:55
This is a MIME encapsulated multipart message -
please use a MIME-compliant e-mail program to open it.

Dies ist eine mehrteilige Nachricht im MIME-Format -
bitte verwenden Sie zum Lesen ein MIME-konformes Mailprogramm.

--========GMXBoundary124171135020055
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit


> Synopsis: pkg_chk hardcodes PKG_DBDIR
> 
> State-Changed-From-To: open->feedback
> State-Changed-By: abs@netbsd.org
> State-Changed-When: Mon, 19 Dec 2005 18:52:53 +0000
> State-Changed-Why:
> Could you send me a copy of the pkg_chk installed on your system?

attached

> Plus the output from 'make show-var VARNAME=PKG_DBDIR' in
> pkgsrc/pkgtools/pkg_chk.
> pkg_chk tries to extract PKG_DBDIR and falls back to /var/db/pkg

sh> make show-var VARNAME=PKG_DBDIR  :
Makefile:23: *** missing separator. Stop.
sh> bmake show-var VARNAME=PKG_DBDIR  :
/sw/var/db/pkg
sh> uname -a
Darwin r106104.rh2.swh.mhn.de 8.3.0 Darwin Kernel Version 8.3.0: Mon Oct  3
20:04:04 PDT 2005; root:xnu-792.6.22.obj~2/RELEASE_PPC Power Macintosh
powerpc


-- 
Greetings,

Christoph

Lust, ein paar Euro nebenbei zu verdienen? Ohne Kosten, ohne Risiko!
Satte Provisionen für GMX Partner: http://www.gmx.net/de/go/partner
--========GMXBoundary124171135020055
Content-Type: application/octet-stream; name="pkg_chk"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="pkg_chk"

IyEvYmluL3NoIC1lCiMKIyAkSWQ6IHBrZ19jaGsuc2gsdiAxLjIzIDIwMDUvMTIvMTMgMTU6MjY6
MDUgZGlsbG8gRXhwICQKIwojIFRPRE86IE1ha2UgLWcgY2hlY2sgZGVwZW5kZW5jaWVzIGFuZCB0
c29ydAojIFRPRE86IFZhcmlhdGlvbiBvZiAtZyB3aGljaCBvbmx5IGxpc3RzIHRvcCBsZXZlbCBw
YWNrYWdlcwojIFRPRE86IExpc3QgdG9wIGxldmVsIHBhY2thZ2VzIGluc3RhbGxlZCBidXQgbm90
IGluIGNvbmZpZwoKUEFUSD0vdXNyL3NiaW46L3Vzci9iaW46JHtQQVRIfQoKU1VNTUFSWV9GSUxF
PXBrZ19jaGstc3VtbWFyeQoKaXNfYmluYXJ5X2F2YWlsYWJsZSgpCiAgICB7CiAgICBpZiBbIC1u
ICIkUEtHREIiIF07IHRoZW4KCWZvciBpYmFfcGtnIGluICRQS0dEQjsgZG8KCSAgICBjYXNlICRp
YmFfcGtnIGluCgkJKjoiJDEiKQoJCSAgICByZXR1cm4gMDsKCQk7OwoJICAgIGVzYWMKICAgICAg
ICBkb25lCglyZXR1cm4gMTsKICAgIGVsc2UKCWlmIFsgLWYgIiRQQUNLQUdFUy8kMS50Z3oiIF07
IHRoZW4KCSAgICByZXR1cm4gMDsKCWVsc2UKCSAgICByZXR1cm4gMTsKCWZpCiAgICBmaQogICAg
fQoKY2hlY2tfcGFja2FnZXNfaW5zdGFsbGVkKCkKICAgIHsKICAgIE1JU1NJTkdfVE9ETz0KICAg
IE1JU01BVENIX1RPRE89CgogICAgZm9yIHBrZ2RpciBpbiAkKiA7IGRvCgoJaWYgWyAtbiAiJG9w
dF9CIiBdO3RoZW4KCSAgICBleHRyYWN0X3BrZ192YXJzICRwa2dkaXIgUEtHTkFNRSBGSUxFU0RJ
UiBQS0dESVIgRElTVElORk9fRklMRSBQQVRDSERJUgoJZWxzZQoJICAgIGV4dHJhY3RfcGtnX3Zh
cnMgJHBrZ2RpciBQS0dOQU1FCglmaQoJaWYgWyAteiAiJFBLR05BTUUiIF07IHRoZW4KCSAgICBN
SVNTX0RPTkU9JE1JU1NfRE9ORSIgIiRwa2dkaXIKCSAgICBjb250aW51ZQoJZmkKCWlmIFsgISAt
ZCAkUEtHX0RCRElSLyRQS0dOQU1FIF07dGhlbgoJICAgIG1zZ19uICIkUEtHTkFNRTogIgoJICAg
IHBrZz0kKGVjaG8gJFBLR05BTUUgfCAke1NFRH0gJ3MvLVswLTldLiovLycpCgkgICAgcGtnaW5z
dGFsbGVkPSQoc2ggLWMgIiR7UEtHX0lORk99IC1lICRwa2ciIHx8IHRydWUpCgkgICAgSU5TVEFM
TD0KCSAgICBpZiBbIC1uICIkcGtnaW5zdGFsbGVkIiBdO3RoZW4KCQltc2dfbiAidmVyc2lvbiBt
aXNtYXRjaCAtICRwa2dpbnN0YWxsZWQiCgkJTUlTTUFUQ0hfVE9ETz0iJE1JU01BVENIX1RPRE8g
JHBrZ2luc3RhbGxlZCIKCSAgICBlbHNlCgkJbXNnX24gIm1pc3NpbmciCgkJTUlTU0lOR19UT0RP
PSIkTUlTU0lOR19UT0RPICRQS0dOQU1FICRwa2dkaXIiCgkgICAgZmkKCSAgICBpZiBpc19iaW5h
cnlfYXZhaWxhYmxlICRQS0dOQU1FIDt0aGVuCgkJbXNnX24gIiAoYmluYXJ5IHBhY2thZ2UgYXZh
aWxhYmxlKSIKCSAgICBmaQoJICAgIG1zZwoJZWxzZQoJICAgIGlmIFsgLW4gIiRvcHRfQiIgXTt0
aGVuCgkJY3VycmVudF9idWlsZF92ZXI9JChnZXRfYnVpbGRfdmVyKQoJCWluc3RhbGxlZF9idWls
ZF92ZXI9JCgke1NFRH0gInN8XlteOl0qL1teOl0qOnx8IiAkUEtHX0RCRElSLyRQS0dOQU1FLytC
VUlMRF9WRVJTSU9OKQoJCWlmIFsgeCIkY3VycmVudF9idWlsZF92ZXIiICE9IHgiJGluc3RhbGxl
ZF9idWlsZF92ZXIiIF07dGhlbgoJCSAgICBtc2cgIiRQS0dOQU1FOiBidWlsZC12ZXJzaW9uIG1p
c21hdGNoIgoJCSAgICB2ZXJib3NlICItLWN1cnJlbnQtLSIKCQkgICAgdmVyYm9zZSAiJGN1cnJl
bnRfYnVpbGRfdmVyIgoJCSAgICB2ZXJib3NlICItLWluc3RhbGxlZC0tIgoJCSAgICB2ZXJib3Nl
ICIkaW5zdGFsbGVkX2J1aWxkX3ZlciIKCQkgICAgdmVyYm9zZSAiLS0tLSIKCQkgICAgTUlTTUFU
Q0hfVE9ETz0iJE1JU01BVENIX1RPRE8gJFBLR05BTUUiCgkJZWxzZQoJCSAgICB2ZXJib3NlICIk
UEtHTkFNRTogT0siCgkJZmkKCSAgICBlbHNlCgkJdmVyYm9zZSAiJFBLR05BTUU6IE9LIgoJICAg
IGZpCglmaQogICAgZG9uZQogICAgfQoKZGVsZXRlX3BrZ3MoKQogICAgewogICAgZm9yIHBrZyBp
biAkKiA7IGRvCglpZiBbIC1kICRQS0dfREJESVIvJHBrZyBdIDsgdGhlbgoJICAgIHJ1bl9jbWQg
IiR7UEtHX0RFTEVURX0gLXIgJHBrZyIgMQoJZmkKICAgIGRvbmUKICAgIH0KCmV4dHJhY3RfbWFr
ZV92YXJzKCkKICAgIHsKICAgIE1BS0VGSUxFPSQxCiAgICBzaGlmdAogICAgdmVyYm9zZSAiRXh0
cmFjdCAkQCBmcm9tICRNQUtFRklMRSIKICAgIE1BS0VEQVRBPSIuUEhPTlk6IHhcbng6XG4iOwog
ICAgZm9yIHZhciBpbiAkKiA7IGRvCglNQUtFREFUQT0kTUFLRURBVEEiXHRAZWNobyAkdmFyPVwk
eyR2YXJ9XG4iCiAgICBkb25lCiAgICBldmFsICQocHJpbnRmICIkTUFLRURBVEEiIHwgJHtNQUtF
fSAtZiAtIC1mICRNQUtFRklMRSB4IHwgXAoJCQkJCSR7U0VEfSAtZSAncy9bXj1dKj0vJiIvJyAt
ZSAncy8kLyIvJykKICAgIH0KCiMgJDEgPSBuYW1lIG9mIHZhcmlhYmxlCiMgJDIgPSBkZWZhdWx0
IHZhbHVlCmV4dHJhY3RfbWtfdmFyKCkKICAgIHsKICAgIGlmIFsgLXogImBldmFsIGVjaG8gXFwk
JDFgIiBdIDsgdGhlbgoJZXZhbCAkKHByaW50ZiAiQlNEX1BLR19NSz0xXG4uUEhPTlk6IHhcbng6
XG5cdEBlY2hvICQxPSInJCcieyQxfVxuIiB8ICR7TUFLRX0gLWYgLSAtZiAkTUFLRUNPTkYgeCkK
CWlmIFsgLXogImBldmFsIGVjaG8gXFwkJDFgIiBdOyB0aGVuCgkgICAgZXZhbCAiJDE9JDIiCglm
aQogICAgZmkKICAgIH0KCmV4dHJhY3RfcGtnX3ZhcnMoKQogICAgewogICAgUEtHRElSPSQxCiAg
ICBQS0dOQU1FPQogICAgc2hpZnQ7CiAgICBpZiBbIC1uICIkb3B0X2IiIC1hIC16ICIkb3B0X3Mi
IF0gOyB0aGVuCglmb3IgcGtnIGluICRQS0dEQiA7IGRvCgkgICAgY2FzZSAkcGtnIGluCgkJIiRQ
S0dESVI6IiopCgkJICAgIFBLR05BTUU9YGVjaG8gJHBrZ3wgJHtTRUR9ICdzL1teOl0qOi8vJ2AK
CQkgICAgcmV0dXJuOwoJCTs7CgkgICAgZXNhYwoJZG9uZQoJbXNnICJXQVJOSU5HOiBObyBiaW5h
cnkgcGFja2FnZSBmb3IgJFBLR0RJUiIKICAgIGVsc2UKCWlmIFsgISAtZiAkUEtHU1JDRElSLyRw
a2dkaXIvTWFrZWZpbGUgXTt0aGVuCgkgICAgbXNnICJXQVJOSU5HOiBObyAkcGtnZGlyL01ha2Vm
aWxlIC0gcGFja2FnZSBtb3ZlZCBvciBvYnNvbGV0ZT8iCgkgICAgcmV0dXJuCglmaQoJY2QgJFBL
R1NSQ0RJUi8kUEtHRElSCglleHRyYWN0X21ha2VfdmFycyBNYWtlZmlsZSAiJEAiCglpZiBbIC16
ICIkUEtHTkFNRSIgXTsgdGhlbgoJICAgIGZhdGFsICJVbmFibGUgdG8gZXh0cmFjdCBQS0dOQU1F
IGZvciAkcGtnZGlyIgoJZmkKICAgIGZpCiAgICB9CgpleHRyYWN0X3ZhcmlhYmxlcygpCiAgICB7
CiAgICBleHRyYWN0X21rX3ZhciBQS0dTUkNESVIgL3Vzci9wa2dzcmMKICAgIGlmIFsgISAtZCAk
UEtHU1JDRElSIC1hICEgJG9wdF9iIF0gOyB0aGVuCglmYXRhbCAiVW5hYmxlIHRvIGxvY2F0ZSBQ
S0dTUkNESVIgKCRQS0dTUkNESVIpIgogICAgZmkKICAgIGV4dHJhY3RfbWtfdmFyIFBLR19EQkRJ
UiAvdmFyL2RiL3BrZwogICAgaWYgWyAhIC1kICRQS0dfREJESVIgXSA7IHRoZW4KCWZhdGFsICJV
bmFibGUgdG8gbG9jYXRlIFBLR19EQkRJUiAoJFBLR19EQkRJUikiCiAgICBmaQoKICAgICMgTm93
IHdlIGhhdmUgUEtHU1JDRElSLCB1c2UgaXQgdG8gZGV0ZXJtaW5lIFBBQ0tBR0VTLCBhbmQgUEtH
Q0hLX0NPTkYKICAgICMgYXMgd2VsbCBhcyBBV0ssIEdSRVAsIFNFRCwgUEtHQ0hLX1RBR1MgYW5k
IFBLR0NIS19OT1RBR1MKICAgICMKCiAgICBpZiBbIC16ICIkb3B0X2IiIC1vIC1uICIkb3B0X3Mi
IC1vIC1kICRQS0dTUkNESVIvcGtndG9vbHMvcGtnX2NoayBdIDsgdGhlbgoJY2QgJFBLR1NSQ0RJ
Ui9wa2d0b29scy9wa2dfY2hrCglleHRyYWN0X21ha2VfdmFycyBNYWtlZmlsZSBBV0sgR1JFUCBT
RUQgVFNPUlQgU09SVCBQQUNLQUdFUyBQS0dfSU5GTyBcCgkJCVBLR19BREQgUEtHX0RFTEVURSBQ
S0dDSEtfQ09ORiBQS0dDSEtfVVBEQVRFX0NPTkYgXAoJCQlQS0dDSEtfVEFHUyBQS0dDSEtfTk9U
QUdTCglpZiBbIC16ICIkUEFDS0FHRVMiIF07dGhlbgoJICAgIFBBQ0tBR0VTPSRQS0dTUkNESVIv
cGFja2FnZXMKCWZpCiAgICBlbGlmIFsgJE1BS0VDT05GICE9IC9kZXYvbnVsbCBdIDsgdGhlbgoJ
ZXh0cmFjdF9tYWtlX3ZhcnMgJE1BS0VDT05GIFBBQ0tBR0VTIFBLR0NIS19DT05GIFBLR0NIS19V
UERBVEVfQ09ORiBcCgkJCVBLR0NIS19UQUdTIFBLR0NIS19OT1RBR1MKCWlmIFsgLXogIiRQQUNL
QUdFUyIgXSA7IHRoZW4KCSAgICBQQUNLQUdFUz1gcHdkYAoJZmkKICAgIGZpCgogICAgaWYgWyAt
eiAiJFBLR0NIS19DT05GIiBdO3RoZW4KCVBLR0NIS19DT05GPSRQS0dTUkNESVIvcGtnY2hrLmNv
bmYKICAgIGZpCiAgICBpZiBbIC16ICIkUEtHQ0hLX1VQREFURV9DT05GIiBdO3RoZW4KCVBLR0NI
S19VUERBVEVfQ09ORj0kUEtHU1JDRElSL3BrZ2Noa191cGRhdGUtJChob3N0bmFtZSkuY29uZgog
ICAgZmkKICAgIH0KCmZhdGFsKCkKICAgIHsKICAgIG1zZyAiKioqICRAIgogICAgZXhpdCAxCiAg
ICB9CgpmYXRhbF9tYXliZSgpCiAgICB7CiAgICBtc2cgIiRAIgogICAgaWYgWyAteiAiJG9wdF9r
IiBdO3RoZW4KCWV4aXQgMQogICAgZmkKICAgIH0KCmdlbmVyYXRlX2NvbmZfZnJvbV9pbnN0YWxs
ZWQoKQogICAgewogICAgRklMRT0kMQogICAgaWYgWyAtciAkRklMRSBdOyB0aGVuCgltdiAkRklM
RSAke0ZJTEV9Lm9sZAogICAgZmkKICAgIGVjaG8gIiMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkg
YXQgJChkYXRlKSIgPiAkRklMRQogICAgZWNobyAkKHBrZ2RpcnNfZnJvbV9pbnN0YWxsZWQpIHwg
Zm10IC0xIAk+PiAkRklMRQogICAgfQoKZ2V0X2J1aWxkX3ZlcigpCiAgICB7CiAgICBpZiBbIC1u
ICIkb3B0X2IiIC1hIC16ICIkb3B0X3MiIF0gOyB0aGVuCgkke1BLR19JTkZPfSAtLiAtcSAtYiAk
UEFDS0FHRVMvJFBLR05BTUUudGd6IHwgJHtTRUR9ICJzfF5bXjpdKi9bXjpdKjp8fCIgfCAke0dS
RVB9IC4KCXJldHVybgogICAgZmkKICAgIGZpbGVzPSIiCiAgICBmb3IgZiBpbiBNYWtlZmlsZSAk
e0ZJTEVTRElSfS8qICR7UEtHRElSfS8qOyBkbwoJaWYgWyAtZiAkZiBdO3RoZW4KCSAgICBmaWxl
cz0iJGZpbGVzICRmIgoJZmkKICAgIGRvbmUKICAgIGlmIFsgLWYgJHtESVNUSU5GT19GSUxFfSBd
OyB0aGVuCglmb3IgZiBpbiAkKCR7QVdLfSAnTkYgPT0gNCAmJiAkMyA9PSAiPSIgeyBnc3ViKCJb
KCldIiwgIiIsICQyKTsgcHJpbnQgJDIgfScgPCAke0RJU1RJTkZPX0ZJTEV9KTsgZG8gCgkgICAg
aWYgWyAtZiAke1BBVENIRElSfS8kZiBdOyB0aGVuCgkJZmlsZXM9IiRmaWxlcyAke1BBVENIRElS
fS8kZiI7CgkgICAgZmk7Cglkb25lCiAgICBmaQogICAgaWYgWyAtZCAke1BBVENIRElSfSBdOyB0
aGVuCglmb3IgZiBpbiAke1BBVENIRElSfS9wYXRjaC0qOyBkbwoJICAgIGNhc2UgJGYgaW4KCSAg
ICAqLm9yaWd8Ki5yZWp8Kn4pIDs7CgkgICAgJHtQQVRDSERJUn0vcGF0Y2gtbG9jYWwtKikKCQlm
aWxlcz0iJGZpbGVzICRmIiA7OwoJICAgIGVzYWMKCWRvbmUKICAgIGZpCiAgICBjYXQgJGZpbGVz
IHwgJHtHUkVQfSAnXCROZXRCU0QnCiAgICB9CgpsaXN0X3BhY2thZ2VzKCkKICAgIHsKICAgIENI
RUNLTElTVD0nICcKICAgIGZvciBwa2dkaXIgaW4gJCogOyBkbwoJZXh0cmFjdF9wa2dfdmFycyAk
cGtnZGlyIFBLR05BTUUKCWlmIFsgLXogIiRQS0dOQU1FIiBdOyB0aGVuCgkgICAgY29udGludWUK
CWZpCglpZiBpc19iaW5hcnlfYXZhaWxhYmxlICRQS0dOQU1FOyB0aGVuCgkgICAgOgoJZWxzZQoJ
ICAgIGZhdGFsX21heWJlICIgKiogJFBLR05BTUUgLSBiaW5hcnkgcGFja2FnZSBtaXNzaW5nIgoJ
ICAgIGNvbnRpbnVlCglmaQoJdmVyYm9zZSAiJFBLR05BTUUudGd6OiBmb3VuZCIKCUNIRUNLTElT
VD0iJENIRUNLTElTVCRQS0dOQU1FICI7CiAgICBkb25lCgogICAgUEFJUkxJU1Q9CiAgICBQS0dM
SVNUPScgJwogICAgd2hpbGUgWyAiJENIRUNLTElTVCIgIT0gJyAnIF07IGRvCglORVhUQ0hFQ0s9
JyAnCglmb3IgcGtnIGluICRDSEVDS0xJU1QgOyBkbwoJICAgIGlmIGlzX2JpbmFyeV9hdmFpbGFi
bGUgJHBrZzsgdGhlbgoJCToKCSAgICBlbHNlCgkJZmF0YWxfbWF5YmUgIiAqKiAkcGtnLnRneiAt
IGJpbmFyeSBwYWNrYWdlIGRlcGVuZGVuY3kgbWlzc2luZyIKCQljb250aW51ZQoJICAgIGZpCgkg
ICAgREVQTElTVD0iJCgke1BLR19JTkZPfSAtLiAtcSAtTiAkUEFDS0FHRVMvJHBrZy50Z3ogfCAk
e0dSRVB9IC4uIHx8IHRydWUpIgoJICAgIGlmIFsgLXogIiRERVBMSVNUIiBdIDsgdGhlbgoJCVBB
SVJMSVNUPSIke1BBSVJMSVNUfSRwa2cudGd6ICRwa2cudGd6XG4iCgkgICAgZmkKCSAgICBmb3Ig
ZGVwIGluICRERVBMSVNUIDsgZG8KCQlpZiBpc19iaW5hcnlfYXZhaWxhYmxlICRwa2c7IHRoZW4K
CQkgICAgOgoJCWVsc2UKCQkgICAgZmF0YWxfbWF5YmUgIiAqKiAkZGVwLnRneiAtIGRlcGVuZGVu
Y3kgbWlzc2luZyBmb3IgJHBrZyIKCQkgICAgYnJlYWsgMgoJCWZpCgkJUEFJUkxJU1Q9IiR7UEFJ
UkxJU1R9JGRlcC50Z3ogJHBrZy50Z3pcbiIKCQljYXNlICIkUEtHTElTVCRDSEVDS0xJU1QkTkVY
VENIRUNLIiBpbgoJCSAgICAqIiAkZGVwICIqKQoJCQl2ZXJib3NlICIkcGtnOiBEdXBsaWNhdGUg
ZGVwZW5kICRkZXAiCgkJCTs7CgkJICAgICopCgkJCU5FWFRDSEVDSz0iICRkZXAkTkVYVENIRUNL
IgoJCQl2ZXJib3NlICIkcGtnOiBBZGQgZGVwZW5kICRkZXAiCgkJCTs7CgkJZXNhYwoJICAgIGRv
bmUKCSAgICBQS0dMSVNUPSIkcGtnICRQS0dMSVNUIgoJZG9uZQoJQ0hFQ0tMSVNUPSIkTkVYVENI
RUNLIgogICAgZG9uZQogICAgcHJpbnRmICIkUEFJUkxJU1QiIHwgJHtUU09SVH0KICAgIH0KCnBr
Z2RpcnNfZnJvbV9jb25mKCkKICAgIHsKICAgIENPTkY9JDE7IHNoaWZ0CiAgICBMSVNUPSIkKiIK
ICAgIGlmIFsgISAtciAkQ09ORiBdO3RoZW4KCWZhdGFsICJVbmFibGUgdG8gcmVhZCBQS0dDSEtf
Q09ORiAnJENPTkYnIgogICAgZmkKCiAgICAjIERldGVybWluZSBsaXN0IG9mIHRhZ3MKICAgICMK
ICAgIGlmIFsgJFBLR1NSQ0RJUiA9IE5PTkUgXTsgdGhlbgoJT1BTWVM9JCh1bmFtZSAtcykKCU9T
X1ZFUlNJT049JCh1bmFtZSAtcikKCU1BQ0hJTkVfQVJDSD0kKHVuYW1lIC1wKQogICAgZWxzZQoJ
ZXh0cmFjdF9tYWtlX3ZhcnMgTWFrZWZpbGUgT1BTWVMgT1NfVkVSU0lPTiBNQUNISU5FX0FSQ0gK
ICAgIGZpCgogICAgVEFHUz0iJChob3N0bmFtZSB8ICR7U0VEfSAtZSAncyxcLi4qLCwnKSwkKGhv
c3RuYW1lKSwkT1BTWVMtJE9TX1ZFUlNJT04tJE1BQ0hJTkVfQVJDSCwkT1BTWVMtJE9TX1ZFUlNJ
T04sJE9QU1lTLSRNQUNISU5FX0FSQ0gsJE9QU1lTLCRPU19WRVJTSU9OLCRNQUNISU5FX0FSQ0gi
CiAgICBpZiBbIC1mIC91c3IvWDExUjYvbGliL2xpYlgxMS5zbyAtbyAtZiAvdXNyL1gxMVI2L2xp
Yi9saWJYMTEuYSBdO3RoZW4KCVRBR1M9IiRUQUdTLHgxMSIKICAgIGZpCiAgICBpZiBbIC1uICIk
UEtHQ0hLX1RBR1MiIF07dGhlbgoJVEFHUz0iJFRBR1MsJFBLR0NIS19UQUdTIgogICAgZmkKICAg
IGlmIFsgLW4gIiRQS0dDSEtfTk9UQUdTIiBdO3RoZW4KCWlmIFsgLW4gIiRvcHRfVSIgXTt0aGVu
CgkJb3B0X1U9IiRvcHRfVSwkUEtHQ0hLX05PVEFHUyIKCWVsc2UKCQlvcHRfVT0iJFBLR0NIS19O
T1RBR1MiCglmaQogICAgZmkKICAgIGlmIFsgLW4gIiRvcHRfRCIgXTt0aGVuCglUQUdTPSIkVEFH
Uywkb3B0X0QiCiAgICBmaQogICAgdmVyYm9zZSAic2V0ICAgVEFHUz0kVEFHUyIKICAgIHZlcmJv
c2UgInVuc2V0IFRBR1M9JG9wdF9VIgoKICAgICMgRXh0cmFjdCBsaXN0IG9mIHZhbGlkIHBrZ2Rp
cnMgKHNraXAgYW55ICdhbHJlYWR5c2V0JyBpbiAkTElTVCkKICAgICMKICAgIExJU1Q9IiRMSVNU
ICIkKCR7QVdLfSAtdiBhbHJlYWR5c2V0PSIkTElTVCIgLXYgc2V0bGlzdD0kVEFHUyAtdiB1bnNl
dGxpc3Q9JG9wdF9VICcKICAgIEJFR0lOIHsKCXNwbGl0KGFscmVhZHlzZXQsIHRtcCwgIiAiKTsK
CWZvciAodGFnIGluIHRtcCkgeyBza2lwW3RtcFt0YWddXSA9IDE7IH0KCglzcGxpdChzZXRsaXN0
LCB0bXAsICIsIik7Cglmb3IgKHRhZyBpbiB0bXApIHsgdGFnbGlzdFt0bXBbdGFnXV0gPSAxOyB9
CgoJc3BsaXQodW5zZXRsaXN0LCB0bXAsICIsIik7Cglmb3IgKHRhZyBpbiB0bXApIHsgc2tpcFt0
bXBbdGFnXV0gPSAxOyBkZWxldGUgdGFnbGlzdFt0bXBbdGFnXV0gfQoKCXRhZ2xpc3RbIioiXSA9
ICIqIgogICAgfQogICAgZnVuY3Rpb24gYW5kX2V4cHJfd2l0aF9kaWN0KGV4cHIsIGRpY3QsIGFy
eSwgaSwgciwgZCkgewoJc3BsaXQoZXhwcixhcnksL1wrLyk7CglyID0gMTsKCWZvciAoaSBpbiBh
cnkpIHsKCQlpZiAoYXJ5W2ldIH4gL15cLy8pIHsKCQkJaWYgKGdldGxpbmUgZCA8IGFyeVtpXSA9
PSAtMSkKCQkJICAgIHsgciA9IDA7IGJyZWFrIDt9CgkJfQoJCWVsc2UgaWYgKCEgKGFyeVtpXSBp
biBkaWN0KSkKCQkJeyByID0gMDsgYnJlYWsgO30KCX0KCXJldHVybiByOwogICAgfQogICAgewog
ICAgc3ViKCIjLioiLCAiIik7CiAgICBpZiAoc2tpcFskMV0pCgluZXh0OwogICAgbmVlZCA9IDA7
CiAgICBpZiAoJDAgfiAvXD0vKSB7CglzcGxpdCgkMCwgdG1wLCAiWyBcdF0qPSIpOwoJdGFnZ3Jv
dXAgPSB0bXBbMV07CglzdWIoIlsgXHRdKj0iLCAiPSIpOwoJfQogICAgZWxzZQoJewoJdGFnZ3Jv
dXAgPSAiIgoJaWYgKE5GID09IDEpCQkJIyBJZiBvbmx5IG9uZSBhcmcsIHdlIHdhbnQgcGtnCgkg
ICAgbmVlZCA9IDE7Cgl9CiAgICBmb3IgKGYgPSAyIDsgZjw9TkYgOyArK2YpIHsJCSMgRm9yIGVh
Y2ggd29yZCBvbiB0aGUgbGluZQoJaWYgKHN1YigiXi0iLCAiIiwgJGYpKSB7IAkjIElmIGl0IGJl
Z2lucyB3aXRoIGEgJy0nCgkJaWYgKGYgPT0gMikJCSMgSWYgZmlyc3QgZW50cnkgJy0nLCBhc3N1
bWUgJyonCgkJICAgIHsgbmVlZCA9IDE7IH0KCQlpZiAoYW5kX2V4cHJfd2l0aF9kaWN0KCRmLCB0
YWdsaXN0KSkKCQkJbmV4dDsJCSMgSWYgaXQgaXMgdHJ1ZSwgZGlzY2FyZAoJfSBlbHNlIHsKCQlp
ZiAoYW5kX2V4cHJfd2l0aF9kaWN0KCRmLCB0YWdsaXN0KSkKCQkJbmVlZCA9IDE7CSMgSWYgaXQg
aXMgdHJ1ZSwgbm90ZSBuZWVkZWQKCX0KICAgIH0KICAgIGlmIChuZWVkKQoJaWYgKHRhZ2dyb3Vw
KQoJICAgIHRhZ2xpc3RbdGFnZ3JvdXBdID0gMQoJZWxzZQoJICAgIHByaW50ICQxOwogICAgfQog
ICAgJyA8ICRDT05GCiAgICApCiAgICBlY2hvICRMSVNUCiAgICB9Cgpwa2dkaXJzX2Zyb21faW5z
dGFsbGVkKCkKICAgIHsKICAgICR7UEtHX0lORk99IC1CcWEgfCAke0FXS30gLUY9ICcvUEtHUEFU
SD0ve3ByaW50ICQyfScgfCAke1NPUlR9CiAgICB9Cgptc2coKQogICAgewogICAgaWYgWyAtbiAi
JG9wdF9MIiBdIDsgdGhlbgoJZWNobyAiJEAiID4+ICIkb3B0X0wiCiAgICBmaQogICAgaWYgWyAt
biAiJG9wdF9sIiBdIDsgdGhlbgoJZWNobyAiJEAiID4mMgogICAgZWxzZQoJZWNobyAiJEAiCiAg
ICBmaQogICAgfQoKbXNnX3Byb2dyZXNzKCkKICAgIHsKICAgIG1zZyAiWyAkQCBdIgogICAgfQoK
bXNnX24oKQogICAgewogICAgbXNnICRhY19uICIkKiIkYWNfYwogICAgfQoKcGtnX2ZldGNoKCkK
ICAgIHsKICAgIFBLR05BTUU9JDEKICAgIFBLR0RJUj0kMgoKICAgIHJ1bl9jbWQgImNkICRQS0dT
UkNESVIvJFBLR0RJUiAmJiAke01BS0V9IGZldGNoLWxpc3QgfCBzaCIKICAgIGlmIFsgLW4gIiRG
QUlMIiBdOyB0aGVuCglGQUlMX0RPTkU9JEZBSUxfRE9ORSIgIiRQS0dOQU1FCiAgICBlbHNlCglG
RVRDSF9ET05FPSRGRVRDSF9ET05FIiAiJFBLR05BTUUKICAgIGZpCiAgICB9Cgpwa2dfZmV0Y2hs
aXN0KCkKICAgIHsKICAgIFBLR0xJU1Q9JEAKICAgIG1zZ19wcm9ncmVzcyBGZXRjaAogICAgd2hp
bGUgWyAkIyAhPSAwIF07IGRvIAoJcGtnX2ZldGNoICQxICQyCglzaGlmdCA7IHNoaWZ0OwogICAg
ZG9uZQogICAgfQoKcGtnX2luc3RhbGwoKQogICAgewogICAgUEtHTkFNRT0kMQogICAgUEtHRElS
PSQyCiAgICBJTlNUQUxMPSQzCgogICAgaWYgWyAtZCAkUEtHX0RCRElSLyRQS0dOQU1FIF07dGhl
bgoJbXNnICIkUEtHTkFNRSBpbnN0YWxsZWQgaW4gcHJldmlvdXMgc3RhZ2UiCiAgICBlbGlmIFsg
LW4gIiRvcHRfYiIgXSAmJiBpc19iaW5hcnlfYXZhaWxhYmxlICRQS0dOQU1FOyB0aGVuCglpZiBb
IC1uICIkc2F2ZWRfUEtHX1BBVEgiIF0gOyB0aGVuCgkgICAgZXhwb3J0IFBLR19QQVRIPSRzYXZl
ZF9QS0dfUEFUSAoJZmkKCXJ1bl9jbWQgIiR7UEtHX0FERH0gJFBBQ0tBR0VTLyRQS0dOQU1FLnRn
eiIKCWlmIFsgLW4gIiRzYXZlZF9QS0dfUEFUSCIgXSA7IHRoZW4KCSAgICB1bnNldCBQS0dfUEFU
SAoJZmkKICAgIGVsaWYgWyAtbiAiJG9wdF9zIiBdOyB0aGVuCglydW5fY21kICJjZCAkUEtHU1JD
RElSLyRQS0dESVIgJiYgJHtNQUtFfSB1cGRhdGUgQ0xFQU5ERVBFTkRTPXllcyIKICAgIGZpCgog
ICAgaWYgWyAteiAiJG9wdF9uIiAtYSAhIC1kICRQS0dfREJESVIvJFBLR05BTUUgXTt0aGVuCglG
QUlMPTEKICAgIGZpCgogICAgaWYgWyAtbiAiJEZBSUwiIF07IHRoZW4KCUZBSUxfRE9ORT0kRkFJ
TF9ET05FIiAiJFBLR05BTUUKICAgIGVsc2UKCUlOU1RBTExfRE9ORT0kSU5TVEFMTF9ET05FIiAi
JFBLR05BTUUKICAgIGZpCiAgICB9Cgpwa2dfaW5zdGFsbGxpc3QoKQogICAgewogICAgSU5TVEFM
TD0kMSA7IHNoaWZ0CiAgICBtc2dfcHJvZ3Jlc3MgJElOU1RBTEwKICAgIHdoaWxlIFsgJCMgIT0g
MCBdOyBkbwoJcGtnX2luc3RhbGwgJDEgJDIgJElOU1RBTEwKCXNoaWZ0IDsgc2hpZnQ7CiAgICBk
b25lCiAgICB9CgpydW5fY21kKCkKICAgIHsKICAgIEZBSUw9CiAgICBpZiBbIC1uICIkMiIgXTsg
dGhlbgoJRkFJTE9LPSQyCiAgICBlbHNlCglGQUlMT0s9JG9wdF9rCiAgICBmaQogICAgbXNnICQo
ZGF0ZSArJVIpICQxCiAgICBpZiBbIC16ICIkb3B0X24iIF07dGhlbgoJaWYgWyAtbiAiJG9wdF9M
IiBdIDsgdGhlbgoJICAgIHNoIC1jICIkMSIgPj4gIiRvcHRfTCIgMj4mMSB8fCBGQUlMPTEKCWVs
c2UKCSAgICBzaCAtYyAiJDEiIHx8IEZBSUw9MQoJZmkKCWlmIFsgLW4gIiRGQUlMIiBdIDsgdGhl
bgogICAgICAgICAgICBtc2cgIioqICckMScgZmFpbGVkIgoJICAgIGlmIFsgLW4gIiRvcHRfTCIg
XSA7IHRoZW4KCQl0YWlsIC0xMDAgIiRvcHRfTCIgfCBlZ3JlcCAtdiAnXihcKlwqXCogRXJyb3Ig
Y29kZSAxfFN0b3BcLiknIHxcCgkJCXRhaWwgLTQwCgkgICAgZmkKICAgICAgICAgICAgaWYgWyAi
JEZBSUxPSyIgIT0gMSBdOyB0aGVuCiAgICAgICAgICAgICAgICBleGl0IDEKICAgICAgICAgICAg
ZmkKICAgICAgICBmaQogICAgZmkKICAgIH0KCnNldF9wYXRoKCkKICAgIHsKICAgIGFyZz0kMQog
ICAgY2FzZSAkYXJnIGluCglodHRwOi8vKnxmdHA6Ly8qfC8qKQoJCWVjaG8gJGFyZyA7OwoJKikJ
ZWNobyAkYmFzZWRpci8kYXJnIDs7CiAgICBlc2FjCiAgICB9Cgp1c2FnZSgpCiAgICB7CiAgICBp
ZiBbIC1uICIkMSIgXSA7IHRoZW4KCWVjaG8gIiRAIgoJZWNobwogICAgZmkKICAgIGVjaG8gJ1Vz
YWdlOiBwa2dfY2hrIFtvcHRzXQoJLWEgICAgICBBZGQgYWxsIG1pc3NpbmcgcGFja2FnZXMgKGlt
cGxpZXMgLWMpCgktQiAgICAgIENoZWNrIHRoZSAiQnVpbGQgdmVyc2lvbiIgb2YgcGFja2FnZXMK
CS1iICAgICAgSW5zdGFsbCBiaW5hcnkgcGFja2FnZXMKCS1DIGNvbmYgVXNlIHBrZ2Noay5jb25m
IGZpbGUgJ2NvbmYnCgktYyAgICAgIENoZWNrIGluc3RhbGxlZCBwYWNrYWdlcyBhZ2FpbnN0IHBr
Z2Noay5jb25mCgktRCB0YWdzIENvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFkZGl0aW9uYWwgcGtn
Y2hrLmNvbmYgdGFncyB0byBzZXQKCS1mICAgICAgUGVyZm9ybSBhICdtYWtlIGZldGNoJyBmb3Ig
YWxsIHJlcXVpcmVkIHBhY2thZ2VzCgktZyAgICAgIEdlbmVyYXRlIGFuIGluaXRpYWwgcGtnY2hr
LmNvbmYgZmlsZQoJLWggICAgICBUaGlzIGhlbHAKCS1pCUNoZWNrIHZlcnNpb25zIG9mIGluc3Rh
bGxlZCBwYWNrYWdlcyAobm90IHVzaW5nIHBrZ2Noay5jb25mKQoJLWsJQ29udGludWUgd2l0aCBm
dXJ0aGVyIHBhY2thZ2VzIGlmIGVycm9ycyBhcmUgZW5jb3VudGVyZWQKCS1MIGZpbGUgUmVkaXJl
Y3Qgb3V0cHV0IGZyb20gY29tbWFuZHMgcnVuIGludG8gZmlsZSAoc2hvdWxkIGJlIGZ1bGxwYXRo
KQoJLWwJTGlzdCBiaW5hcnkgcGFja2FnZXMgaW5jbHVkaW5nIGRlcGVuZGVuY2llcyAoaW1wbGll
cyAtYykKCS1OCUxpc3QgaW5zdGFsbGVkIHBhY2thZ2VzIGZvciB3aGljaCBhIG5ld2VyIHZlcnNp
b24gaXMgaW4gVE9ETwoJLW4JRGlzcGxheSBhY3Rpb25zIHRoYXQgd291bGQgYmUgdGFrZW4sIGJ1
dCBkbyBub3QgcGVyZm9ybSB0aGVtCgktUCBkaXIgIFNldCBQQUNLQUdFUyBkaXIgKG92ZXJyaWRl
cyBhbnkgb3RoZXIgc2V0dGluZykKCS1yCVJlY3Vyc2l2ZWx5IHJlbW92ZSBtaXNtYXRjaGVzICh1
c2Ugd2l0aCBjYXJlKSAoaW1wbGllcyAtaSkKCS1TCUNyZWF0ZSBzdW1tYXJ5IG9mIGJpbmFyeSBw
YWNrYWdlcwoJLXMgICAgICBJbnN0YWxsIHBhY2thZ2VzIGJ5IGJ1aWxkaW5nIGZyb20gc291cmNl
CgktVSB0YWdzIENvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBrZ2Noay5jb25mIHRhZ3MgdG8gdW5z
ZXQKCS11ICAgICAgVXBkYXRlIGFsbCBtaXNtYXRjaGVkIHBhY2thZ2VzIChpbXBsaWVzIC1pKQoJ
LXYgICAgICBWZXJib3NlCgpwa2dfY2hrIHZlcmlmaWVzIGluc3RhbGxlZCBwYWNrYWdlcyBhZ2Fp
bnN0IHBrZ3NyYy4KVGhlIG1vc3QgY29tbW9uIHVzYWdlIGlzICdwa2dfY2hrIC1pJyB0byBjaGVj
ayBhbGwgaW5zdGFsbGVkIHBhY2thZ2VzIG9yCidwa2dfY2hrIC11JyB0byB1cGRhdGUgYWxsIG91
dCBvZiBkYXRlIHBhY2thZ2VzLgpGb3IgbW9yZSBhZHZhbmNlZCB1c2FnZSwgaW5jbHVkaW5nIGRl
ZmluaW5nIGEgc2V0IG9mIGRlc2lyZWQgcGFja2FnZXMgYmFzZWQKb24gaG9zdG5hbWUgYW5kIHR5
cGUsIHNlZSBwa2dfY2hrKDgpLgoKSWYgbmVpdGhlciAtYiBub3IgLXMgaXMgZ2l2ZW4sIGJvdGgg
YXJlIGFzc3VtZWQgd2l0aCAtYiBwcmVmZXJyZWQuCicKICAgIGV4aXQgMQogICAgfQoKdmVyYm9z
ZSgpCiAgICB7CiAgICBpZiBbIC1uICIkb3B0X3YiIF0gOyB0aGVuCgltc2cgIiRAIiA+JjIKICAg
IGZpCiAgICB9CgphcmdzPSQoZ2V0b3B0IEJDOkQ6TDpQOlU6YWJjZmdoaWtsTm5yc1N1diAkKikK
aWYgWyAkPyAhPSAwIF07IHRoZW4KICAgIG9wdF9oPTEKZmkKc2V0IC0tICRhcmdzCndoaWxlIFsg
JCMgIT0gMCBdOyBkbwogICAgY2FzZSAiJDEiIGluCgktYSApCW9wdF9hPTEgOyBvcHRfYz0xIDs7
CgktQiApICAgIG9wdF9CPTEgOzsKCS1iICkJb3B0X2I9MSA7OwoJLUMgKQlvcHRfQz0iJDIiIDsg
c2hpZnQ7OwoJLWMgKQlvcHRfYz0xIDs7CgktRCApCW9wdF9EPSIkMiIgOyBzaGlmdDs7CgktZiAp
CW9wdF9mPTEgOzsKCS1nICkJb3B0X2c9MSA7OwoJLWggKQlvcHRfaD0xIDs7CgktaSApCW9wdF9p
PTEgOzsKCS1rICkJb3B0X2s9MSA7OwoJLUwgKQlvcHRfTD0iJDIiIDsgc2hpZnQ7OwoJLWwgKQlv
cHRfbD0xIDs7CgktTiApCW9wdF9OPTEgOzsKCS1uICkJb3B0X249MSA7OwoJLVAgKQlvcHRfUD0i
JDIiIDsgc2hpZnQ7OwoJLXIgKQlvcHRfcj0xIDsgb3B0X2k9MSA7OwoJLVMgKQlvcHRfUz0xIDs7
CgktcyApCW9wdF9zPTEgOzsKCS1VICkJb3B0X1U9IiQyIiA7IHNoaWZ0OzsKCS11ICkJb3B0X3U9
MSA7IG9wdF9pPTEgOzsKCS12ICkJb3B0X3Y9MSA7OwoJLS0gKQlzaGlmdDsgYnJlYWsgOzsKICAg
IGVzYWMKICAgIHNoaWZ0CmRvbmUKCmlmIFsgLXogIiRvcHRfYiIgLWEgLXogIiRvcHRfcyIgXTt0
aGVuCiAgICBvcHRfYj0xOyBvcHRfcz0xOwpmaQoKaWYgWyAteiAiJG9wdF9hIiAtYSAteiAiJG9w
dF9jIiAtYSAteiAiJG9wdF9nIiAtYSAteiAiJG9wdF9pIiAtYSAteiAiJG9wdF9OIiAtYSAteiAi
JG9wdF9sIiAtYSAteiAiJG9wdF9TIiBdOwp0aGVuCiAgICB1c2FnZSAiTXVzdCBzcGVjaWZ5IGF0
IGxlYXN0IG9uZSBvZiAtYSwgLWMsIC1nLCAtaSwgLWwsIC1OLCAtUywgb3IgLXUiOwpmaQoKaWYg
WyAtbiAiJG9wdF9oIiAtbyAkIyAhPSAwIF07dGhlbgogICAgdXNhZ2UKZmkKCiMgSGlkZSBQS0df
UEFUSCB0byBhdm9pZCBicmVha2FnZSBpbiAnbWFrZScgY2FsbHMKc2F2ZWRfUEtHX1BBVEg9JFBL
R19QQVRICnVuc2V0IFBLR19QQVRIIHx8IHRydWUKCnRlc3QgLW4gIiRBV0siICAgICAgICB8fCBB
V0s9Ii91c3IvYmluL2F3ayIKdGVzdCAtbiAiJEdSRVAiICAgICAgIHx8IEdSRVA9Ii91c3IvYmlu
L2dyZXAiCnRlc3QgLW4gIiRNQUtFIiAgICAgICB8fCBNQUtFPSIvc3cvYmluL2JtYWtlIgp0ZXN0
IC1uICIkTUFLRUNPTkYiICAgfHwgTUFLRUNPTkY9Ii9ldGMvbWsuY29uZiIKdGVzdCAtbiAiJFBL
R19BREQiICAgIHx8IFBLR19BREQ9Ii91c3IvYmluL2VudiAgL3N3L3NiaW4vcGtnX2FkZCAtSyAv
c3cvdmFyL2RiL3BrZyIKdGVzdCAtbiAiJFBLR19ERUxFVEUiIHx8IFBLR19ERUxFVEU9Ii91c3Iv
YmluL2VudiAgL3N3L3NiaW4vcGtnX2RlbGV0ZSAtSyAvc3cvdmFyL2RiL3BrZyIKdGVzdCAtbiAi
JFBLR19JTkZPIiAgIHx8IFBLR19JTkZPPSIvdXNyL2Jpbi9lbnYgIC9zdy9zYmluL3BrZ19pbmZv
IC1LIC9zdy92YXIvZGIvcGtnIgp0ZXN0IC1uICIkU0VEIiAgICAgICAgfHwgU0VEPSIvdXNyL2Jp
bi9zZWQiCnRlc3QgLW4gIiRTT1JUIgkgICAgICB8fCBTT1JUPSIvdXNyL2Jpbi9zb3J0Igp0ZXN0
IC1uICIkVFNPUlQiICAgICAgfHwgVFNPUlQ9InRzb3J0IC1xIgoKaWYgWyAhIC1mICRNQUtFQ09O
RiBdIDsgdGhlbgogICAgaWYgWyAtZiAvZXRjL21rLmNvbmYgXSA7IHRoZW4KCU1BS0VDT05GPS9l
dGMvbWsuY29uZgogICAgZWxzZQoJTUFLRUNPTkY9L2Rldi9udWxsCiAgICBmaQpmaQoKIyBncmFi
YmVkIGZyb20gR05VIGNvbmZpZ3VyZQppZiAoZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsMykg
fCBncmVwIGMgPi9kZXYvbnVsbDsgdGhlbgogICMgU3RhcmRlbnQgVmlzdHJhIFNWUjQgZ3JlcCBs
YWNrcyAtZSwgc2F5cyBnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1LgogIGlmIChlY2hvIC1uIHRlc3Rp
bmc7IGVjaG8gMSwyLDMpIHwgJHtTRUR9IHMvLW4veG4vIHwgZ3JlcCB4biA+L2Rldi9udWxsOyB0
aGVuCiAgICBhY19uPSBhY19jPScKJyBhY190PScJJwogIGVsc2UKICAgIGFjX249LW4gYWNfYz0g
YWNfdD0KICBmaQplbHNlCiAgYWNfbj0gYWNfYz0nXGMnIGFjX3Q9CmZpCgppZiBbIC1uICIkb3B0
X0wiIF0gOyB0aGVuCiAgICBybSAtZiAkb3B0X0wKZmkKCmJhc2VkaXI9JChwd2QpCmV4dHJhY3Rf
dmFyaWFibGVzCmlmIFsgLW4gIiRvcHRfQyIgXSA7IHRoZW4KICAgIFBLR0NIS19DT05GPSIkKHNl
dF9wYXRoICRvcHRfQykiCmZpCmlmIFsgLW4gIiRvcHRfUCIgXSA7IHRoZW4KICAgIFBBQ0tBR0VT
PSIkKHNldF9wYXRoICRvcHRfUCkiCmZpCmlmIFsgLWQgJFBBQ0tBR0VTL0FsbCBdIDsgdGhlbgog
ICAgUEFDS0FHRVM9IiRQQUNLQUdFUy9BbGwiCmZpCgppZiBbIC1uICIkb3B0X04iIF07IHRoZW4K
CSR7UEtHX0lORk99IHwgXAoJCSR7U0VEfSAtZSAicy9bIAldLiovLyIgLWUgInMvLVteLV0qJC8v
IiBcCgkJICAgICAgIC1lICJzL3B5WzAtOV1bMC05XXB0aC0vcHktLyIgXAoJCSAgICAgICAtZSAi
cy9weVswLTldWzAtOV0tL3B5LS8iIHwgXAoJCXdoaWxlIHJlYWQgYQoJCWRvCgkJCWI9JChncmVw
ICJvICRhLVswLTldIiAkUEtHU1JDRElSL2RvYy9UT0RPIHwgXAoJCQkJc2VkIC1lICJzL1sgCV0q
byAvLyIpCgkJaWYgWyAiJGIiIF0KCQl0aGVuCgkJCWVjaG8gJGE6ICRiCgkJZmkKCWRvbmUKZmkK
CmlmIFsgXCggLW4gIiRvcHRfYiIgLW8gLW4gIiRvcHRfUyIgXCkgLWEgLXogIiRvcHRfcyIgXSA7
IHRoZW4KICAgIGNhc2UgJFBBQ0tBR0VTIGluCglodHRwOi8vKnxmdHA6Ly8qKQoJICAgIFBLR0RC
PWBmdHAgLW8gLSAkUEFDS0FHRVMvJFNVTU1BUllfRklMRWA7OwoJKikKCSAgICBpZiBbIC1kICIk
UEFDS0FHRVMiIF0gOyB0aGVuCgkJbXNnX3Byb2dyZXNzIFNjYW4gJFBBQ0tBR0VTCgkJY2QgJFBB
Q0tBR0VTCgkJZm9yIGYgaW4gYGxzIC10ICoudGd6YCA7IGRvICMgU29ydCBieSB0aW1lIHRvIHBp
Y2sgdXAgbmV3ZXN0IGZpcnN0CgkJICAgIFBLR0RJUj1gJHtQS0dfSU5GT30gLS4gLUIgJFBBQ0tB
R0VTLyRmfCR7QVdLfSAtRj0gJyQxPT0iUEtHUEFUSCJ7cHJpbnQgJDJ9J2AKCQkgICAgUEtHTkFN
RT1gZWNobyAkZiB8ICR7U0VEfSAncy9cLnRneiQvLydgCgkJICAgIFBLR0RCPSIke1BLR0RCfSAk
UEtHRElSOiRQS0dOQU1FIgoJCWRvbmUKCQlQS0dTUkNESVI9Tk9ORQoJICAgIGZpOzsKICAgIGVz
YWMKZmkKCmlmIFsgLW4gIiRvcHRfUyIgXTsgdGhlbgogICAgbXNnX3Byb2dyZXNzICJXcml0ZSAk
UEFDS0dFUy8kU1VNTUFSWV9GSUxFIgogICAgZWNobyAiJFBLR0RCIiB8IHRyICcgJyAnXDAxMicg
PiAkUEFDS0FHRVMvJFNVTU1BUllfRklMRQpmaQoKaWYgWyAtbiAiJG9wdF9nIiBdOyB0aGVuCiAg
ICB2ZXJib3NlICJXcml0ZSAkUEtHQ0hLX0NPTkYgYmFzZWQgb24gaW5zdGFsbGVkIHBhY2thZ2Vz
IgogICAgZ2VuZXJhdGVfY29uZl9mcm9tX2luc3RhbGxlZCAkUEtHQ0hLX0NPTkYKZmkKCmlmIFsg
LW4gIiRvcHRfaSIgXTt0aGVuCiAgICB2ZXJib3NlICJFbnVtZXJhdGUgUEtHRElSTElTVCBmcm9t
IGluc3RhbGxlZCBwYWNrYWdlcyIKICAgIFBLR0RJUkxJU1Q9JChwa2dkaXJzX2Zyb21faW5zdGFs
bGVkKQpmaQoKaWYgWyAtbiAiJG9wdF9jIiAtbyAtbiAiJG9wdF9sIiBdO3RoZW4JIyBBcHBlbmQg
dG8gUEtHRElSTElTVCBiYXNlZCBvbiBjb25mCiAgICB2ZXJib3NlICJBcHBlbmQgdG8gUEtHRElS
TElTVCBiYXNlZCBvbiBjb25maWcgJFBLR0NIS19DT05GIgogICAgUEtHRElSTElTVD0iJChwa2dk
aXJzX2Zyb21fY29uZiAkUEtHQ0hLX0NPTkYgJFBLR0RJUkxJU1QpIgpmaQoKaWYgWyAtbiAiJG9w
dF9sIiBdIDsgdGhlbgogICAgbGlzdF9wYWNrYWdlcyAkUEtHRElSTElTVAplbHNlCiAgICBjaGVj
a19wYWNrYWdlc19pbnN0YWxsZWQgJFBLR0RJUkxJU1QKZmkKCmlmIFsgLW4gIiRNSVNNQVRDSF9U
T0RPIiBdOyB0aGVuCiAgICBkZWxldGVfYW5kX3JlY2hlY2s9MQplbGlmIFsgLW4gIiRvcHRfdSIg
LWEgLWYgJFBLR0NIS19VUERBVEVfQ09ORiBdIDsgdGhlbgogICAgZGVsZXRlX2FuZF9yZWNoZWNr
PTEKZmkKCmlmIFsgLW4gIiRkZWxldGVfYW5kX3JlY2hlY2siIF07IHRoZW4KICAgIGlmIFsgLW4g
IiRvcHRfdSIgXSA7IHRoZW4JCSAjIFNhdmUgY3VycmVudCBpbnN0YWxsZWQgbGlzdAoJaWYgWyAt
ZiAkUEtHQ0hLX1VQREFURV9DT05GIF0gOyB0aGVuCgkgICAgbXNnICJNZXJnaW5nIGluIHByZXZp
b3VzICRQS0dDSEtfVVBEQVRFX0NPTkYiCgkgICAgdG1wPSQoY2F0ICRQS0dDSEtfVVBEQVRFX0NP
TkY7ZWNobyAkKHBrZ2RpcnNfZnJvbV9pbnN0YWxsZWQpfGZtdCAtMSkKCSAgICBlY2hvICR0bXAg
fCBmbXQgLTEgfCAke1NPUlR9IC11ID4gJFBLR0NIS19VUERBVEVfQ09ORgoJICAgIHRtcD0KCWVs
c2UKCSAgICBlY2hvICQocGtnZGlyc19mcm9tX2luc3RhbGxlZCkgfCBmbXQgLTEgPiAkUEtHQ0hL
X1VQREFURV9DT05GCglmaQogICAgZmkKICAgIGlmIFsgLW4gIiRvcHRfciIgLW8gLW4gIiRvcHRf
dSIgXSA7IHRoZW4KCWlmIFsgLW4gIiRNSVNNQVRDSF9UT0RPIiBdOyB0aGVuCgkgICAgZGVsZXRl
X3BrZ3MgJE1JU01BVENIX1RPRE8KCSAgICBtc2dfcHJvZ3Jlc3MgUmVjaGVja2luZyBwYWNrYWdl
cyBhZnRlciBkZWxldGlvbnMKCWZpCglpZiBbIC1uICIkb3B0X3UiIF07IHRoZW4KCSAgICBQS0dE
SVJMSVNUPSIkKHBrZ2RpcnNfZnJvbV9jb25mICRQS0dDSEtfVVBEQVRFX0NPTkYgJFBLR0RJUkxJ
U1QpIgoJZmkKCWlmIFsgLW4gIiRvcHRfdSIgLW8gLW4gIiRvcHRfYSIgXTsgdGhlbgoJICAgIGNo
ZWNrX3BhY2thZ2VzX2luc3RhbGxlZCAkUEtHRElSTElTVCAjIE1heSBuZWVkIHRvIGFkZCBtb3Jl
CglmaQogICAgZmkKZmkKCmlmIFsgLW4gIiRvcHRfZiIgXSA7IHRoZW4KICAgIHBrZ19mZXRjaGxp
c3QgJE1JU1NJTkdfVE9ETwpmaQoKaWYgWyAtbiAiJE1JU1NJTkdfVE9ETyIgXSA7IHRoZW4KICAg
IGlmIFsgLW4gIiRvcHRfYSIgLW8gLW4gIiRvcHRfdSIgXSA7IHRoZW4KCXBrZ19pbnN0YWxsbGlz
dCBJbnN0YWxsICRNSVNTSU5HX1RPRE8KICAgIGZpCmZpCgppZiBbIC1uICIkb3B0X3UiIC1hIC16
ICIkRkFJTF9ET05FIiAtYSAtZiAkUEtHQ0hLX1VQREFURV9DT05GIF0gOyB0aGVuCiAgICBydW5f
Y21kICJybSAtZiAkUEtHQ0hLX1VQREFURV9DT05GIgpmaQoKWyAtbiAiJE1JU1NfRE9ORSIgXSAm
JgkJbXNnICJNaXNzaW5nOiRNSVNTX0RPTkUiClsgLW4gIiRJTlNUQUxMX0RPTkUiIF0gJiYJbXNn
ICJJbnN0YWxsZWQ6JElOU1RBTExfRE9ORSIKWyAtbiAiJEZBSUxfRE9ORSIgXSAmJgkJbXNnICJG
YWlsZWQ6JEZBSUxfRE9ORSIKClsgLXogIiRGQUlMX0RPTkUiIF0K

--========GMXBoundary124171135020055--