### SYNC-TRANSFER 5/7 -- mit sync-entpacken.bat entpacken
### Base64
### FILE: index.html | 140568
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+RkxELVBsYW51bmc8L3RpdGxl
PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZS5jc3MiPgogICAgPCEtLSBE
T01QdXJpZnkgbG9rYWwg4oCUIGZ1ZXIgSFRNTC1TYW5pdGl6aW5nIGluIGRlbiBUYWdlc2VyZWln
bmlzLU1vZGFsZW4gLS0+CjwvaGVhZD4KPGJvZHk+CgogICAgPCEtLSA9PT09PT09PT09IFBoYXNl
IEc6IFRhbXBlci1TY2h1dHogQmFubmVyID09PT09PT09PT0gLS0+CiAgICA8ZGl2IGlkPSJpbnRl
Z3JpdGFldC1iYW5uZXIiIGNsYXNzPSJ2ZXJzdGVja3QiPjwvZGl2PgoKICAgIDwhLS0gPT09PT09
PT09PSBWaWV3LUFzLUJhbm5lciAobnVyIHNpY2h0YmFyIGltIEltcGVyc29uaWZpa2F0aW9ucy1N
b2R1cykgPT09PT09PT09PSAtLT4KICAgIDxkaXYgaWQ9InZpZXctYXMtYmFubmVyIiBjbGFzcz0i
dmVyc3RlY2t0Ij4KICAgICAgICA8c3BhbiBjbGFzcz0idmEtaWNvbiI+8J+RgTwvc3Bhbj4KICAg
ICAgICA8c3BhbiBjbGFzcz0idmEtdGV4dCI+RHUgc2llaHN0IGRpZSBBcHAgYWxzIDxzdHJvbmcg
aWQ9InZpZXctYXMtbmFtZSI+PC9zdHJvbmc+IOKAlCBTY2hyZWlidm9yZ8OkbmdlIHNpbmQgZGVh
a3RpdmllcnQuPC9zcGFuPgogICAgICAgIDxidXR0b24gaWQ9ImJ0bi12aWV3LWFzLXp1cnVlY2si
IGNsYXNzPSJidG4gYnRuLWtsZWluIiB0eXBlPSJidXR0b24iPlp1csO8Y2sgenVyIGVpZ2VuZW4g
U2ljaHQ8L2J1dHRvbj4KICAgIDwvZGl2PgoKICAgIDwhLS0gPT09PT09PT09PSBIZWFkZXIgbWl0
IE5hdmlnYXRpb24gKFJlZGVzaWduKSA9PT09PT09PT09IC0tPgogICAgPGhlYWRlciBpZD0ia29w
ZmxlaXN0ZSI+CiAgICAgICAgPCEtLSBab25lIDE6IEJyYW5kIC0tPgogICAgICAgIDxkaXYgY2xh
c3M9ImtsLWJyYW5kIGhlYWRlci1saW5rcyI+CiAgICAgICAgICAgIDxzcGFuIGlkPSJjdXN0b20t
bG9nby1zbG90IiBjbGFzcz0ia2wtbG9nby1zbG90Ij48L3NwYW4+CiAgICAgICAgICAgIDxzcGFu
IGNsYXNzPSJrbC1sb2dvIiBhcmlhLWhpZGRlbj0idHJ1ZSI+RkxEPC9zcGFuPgogICAgICAgICAg
ICA8aDEgY2xhc3M9ImtsLXRpdGVsIj5GTEQtUGxhbnVuZyA8c3BhbiBpZD0iYW56ZWlnZS1qYWhy
IiBjbGFzcz0iaGVhZGVyLWphaHIgamFociI+PC9zcGFuPjwvaDE+CiAgICAgICAgPC9kaXY+Cgog
ICAgICAgIDwhLS0gWm9uZSAyOiBOYXYgLS0+CiAgICAgICAgPG5hdiBjbGFzcz0iaGVhZGVyLW5h
diIgYXJpYS1sYWJlbD0iSGF1cHRuYXZpZ2F0aW9uIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFz
cz0ibmF2LWJ0biBha3RpdiIgZGF0YS1hbnNpY2h0PSJwbGFudW5nIj5QbGFudW5nPC9idXR0b24+
CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idG4iIGRhdGEtYW5zaWNodD0id29jaGVu
cGxhbiI+V29jaGVucGxhbjwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYt
YnRuIiBkYXRhLWFuc2ljaHQ9InBlcnNwbGFuIj5QZXJzLiBQbGFuPC9idXR0b24+CiAgICAgICAg
ICAgIDxidXR0b24gY2xhc3M9Im5hdi1idG4iIGRhdGEtYW5zaWNodD0iYWRtaW4iICAgICBpZD0i
bmF2LWFkbWluIj5BZG1pbmlzdHJhdGlvbjwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNs
YXNzPSJuYXYtYnRuIiBkYXRhLWFuc2ljaHQ9InN0YXRpc3RpayIgaWQ9Im5hdi1zdGF0aXN0aWsi
PlN0YXRpc3RpazwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYnRuIiBk
YXRhLWFuc2ljaHQ9ImxvZ2J1Y2giICAgaWQ9Im5hdi1sb2didWNoIj5Mb2didWNoPC9idXR0b24+
CiAgICAgICAgPC9uYXY+CgogICAgICAgIDwhLS0gWm9uZSAzOiBBa3Rpb25lbiAtLT4KICAgICAg
ICA8ZGl2IGNsYXNzPSJoZWFkZXItcmVjaHRzIGtsLXJlY2h0cyI+CiAgICAgICAgICAgIDxzcGFu
IGlkPSJiZW51dHplci1hbnplaWdlIiBjbGFzcz0iYmVudXR6ZXItYmFkZ2Uga2wtdXNlciI+PC9z
cGFuPgoKICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWhldXRlIiBjbGFzcz0ia2wtaGV1dGUg
a2wtaGV1dGUtYnV0dG9uIiB0aXRsZT0iWnVtIGhldXRpZ2VuIERhdHVtIHNwcmluZ2VuIj4KICAg
ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrbC1oZXV0ZS1sYWJlbCI+SGV1dGU8L3NwYW4+CiAg
ICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ia2wtaGV1dGUtZGF0dW0gaHItaGV1dGUtZGF0dW0i
PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSJrbC1oZXV0ZS1kYXR1bSIgY2xhc3M9ImQg
a2wtaGV1dGUtZGF0dW0tdHh0Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9
ImtsLWhldXRlLXd0YWciICBjbGFzcz0idyBrbC1oZXV0ZS13dGFnLXR4dCI+PC9zcGFuPgogICAg
ICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgIDxi
dXR0b24gaWQ9ImJ0bi1pbmZvIiBjbGFzcz0iaWNvbi1idG4iIHRpdGxlPSJJbmZvcm1hdGlvbmVu
ICZhbXA7IEhpbGZlIiBhcmlhLWxhYmVsPSJJbmZvcm1hdGlvbmVuIHVuZCBIaWxmZSI+CiAgICAg
ICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgYXJpYS1oaWRkZW49InRydWUiPjxj
aXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIx
MiIgeTI9IjEyIi8+PGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyLjAxIiB5Mj0iOCIvPjwvc3Zn
PgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXRoZW1l
IiBjbGFzcz0iaWNvbi1idG4iIHRpdGxlPSJUYWcvTmFjaHQgdW1zY2hhbHRlbiIgYXJpYS1sYWJl
bD0iVGFnL05hY2h0IHVtc2NoYWx0ZW4iPgogICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIw
IDAgMjQgMjQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMjEgMTIuNzlBOSA5IDAgMSAx
IDExLjIxIDMgNyA3IDAgMCAwIDIxIDEyLjc5eiIvPjwvc3ZnPgogICAgICAgICAgICA8L2J1dHRv
bj4KICAgICAgICA8L2Rpdj4KICAgIDwvaGVhZGVyPgoKICAgIDwhLS0gPT09PT09PT09PSBBTlNJ
Q0hUOiBQTEFOVU5HID09PT09PT09PT0gLS0+CiAgICA8ZGl2IGlkPSJhbnNpY2h0LXBsYW51bmci
IGNsYXNzPSJhbnNpY2h0Ij4KICAgICAgICA8IS0tIEZMRDogV2Vya3pldWdsZWlzdGUgZW50ZmVy
bnQuICJVbWdlc2V0enRlIGVpbmJsZW5kZW4iIHdhbmRlcnQgaW4KICAgICAgICAgICAgIGRlbiBB
ZG1pbi1CZXJlaWNoICJUZW1wb3LDpHJlIFBlcnNvbmVuIi4gLS0+CgogICAgICAgIDwhLS0gUGxh
bnVuZ3NncmlkIOKAlCBFeGNlbC10cmV1ZXMgTGF5b3V0IC0tPgogICAgICAgIDxkaXYgaWQ9InBs
YW51bmctY29udGFpbmVyIj4KICAgICAgICAgICAgPCEtLSBGaXhpZXJ0ZSBsaW5rZSBTcGFsdGUg
LS0+CiAgICAgICAgICAgIDxkaXYgaWQ9Im5hbWVuLXNwYWx0ZSI+CiAgICAgICAgICAgICAgICA8
IS0tIEtvcGZiZXJlaWNoIGxpbmtzOiBpbiBab25lLVdyYXBwZXIgZ2VnbGllZGVydCAoU29sbCB8
IERTTSB8IERhdHVtIHwgQ291bnRlciB8IFNGKSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9
ImtvcGYtbGlua3MiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImtvcGYtdGFnZXNkYXRl
bi1saW5rcyIgY2xhc3M9InpvbmUtc29sbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImtvcGYtemVpbGUga3otdGFnZXNkYXRlbiB0bC1yb3cgdGwtcm93LXZvcmdhYmUiICAg
ICBkYXRhLWhsPSJ2b3JnYWJlIj48c3BhbiBjbGFzcz0ia2wtbGFiZWwiPlZvcmdhYmU8L3NwYW4+
PHNwYW4gY2xhc3M9ImtsLXdlcnQiPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0ia29wZi16ZWlsZSBrei10YWdlc2RhdGVuIHRsLXJvdyB0bC1yb3ctc3Rh
ZXJrZXNvbGwiIGRhdGEtaGw9InN0YWVya2Vzb2xsIj48c3BhbiBjbGFzcz0ia2wtbGFiZWwiPlNv
bGwgRjpNPC9zcGFuPjxzcGFuIGNsYXNzPSJrbC13ZXJ0Ij48L3NwYW4+PC9kaXY+CiAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iem9uZS1k
c20iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrb3BmLXplaWxlIGt6LWRz
bSB0bC1yb3cgdGwtcm93LWRzbSIgZGF0YS1obD0iZHNtIj48c3BhbiBjbGFzcz0ia2wtbGFiZWwi
PkRTTSBnZWJ1Y2h0PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InpvbmUtZGF0dW0iPgogICAgICAgICAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJrb3BmLXplaWxlIGt6LWRhdHVtIiAgICAgZGF0YS1obD0iZGF0
dW0iPjxzcGFuIGNsYXNzPSJrbC1sYWJlbCI+RGF0dW08L3NwYW4+PC9kaXY+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtvcGYtemVpbGUga3otd29jaGVudGFnIiBkYXRhLWhs
PSJ3b2NoZW50YWciPjxzcGFuIGNsYXNzPSJrbC1sYWJlbCI+V29jaGVudGFnPC9zcGFuPjwvZGl2
PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrb3BmLXplaWxlIGt6LWV2ZW50
cyIgICAgZGF0YS1obD0iZXZlbnRzIj48c3BhbiBjbGFzcz0ia2wtbGFiZWwiPkV2ZW50czwvc3Bh
bj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ia29wZi16ZWlsZSBr
ei1mZXJpZW4iICAgIGRhdGEtaGw9ImZlcmllbiI+PHNwYW4gY2xhc3M9ImtsLWxhYmVsIj5GZXJp
ZW4gLyBGVDwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGlkPSJrb3BmLXRhZ2VzZGF0ZW4tbGlua3MtdW50ZW4iIGNsYXNzPSJ6
b25lLWNvdW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrb3BmLXpl
aWxlIGt6LXRhZ2VzZGF0ZW4gdGwtcm93IHRsLXJvdy1mcnVlaC1sIiAgICAgZGF0YS1obD0iZnJ1
ZWhMIj48c3BhbiBjbGFzcz0ia2wtYWt6IGtsLWFrei1mcnVlaCI+PC9zcGFuPjxzcGFuIGNsYXNz
PSJrbC1sYWJlbCI+RiAvIEw8L3NwYW4+PHNwYW4gY2xhc3M9ImtsLXdlcnQiPjwvc3Bhbj48L2Rp
dj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ia29wZi16ZWlsZSBrei10YWdl
c2RhdGVuIHRsLXJvdyB0bC1yb3ctc3BhZXQtbCIgICAgIGRhdGEtaGw9InNwYWV0TCI+PHNwYW4g
Y2xhc3M9ImtsLWFreiBrbC1ha3otc3BhZXQiPjwvc3Bhbj48c3BhbiBjbGFzcz0ia2wtbGFiZWwi
PlMgLyBMPC9zcGFuPjxzcGFuIGNsYXNzPSJrbC13ZXJ0Ij48L3NwYW4+PC9kaXY+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtvcGYtemVpbGUga3otdGFnZXNkYXRlbiB0bC1y
b3cgdGwtcm93LXVudHN0dWV0ei1mIiBkYXRhLWhsPSJ1bnRGIj48c3BhbiBjbGFzcz0ia2wtYWt6
IGtsLWFrei1mcnVlaCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJrbC1sYWJlbCI+VW50LiBGcsO8aGRp
ZW5zdDwvc3Bhbj48c3BhbiBjbGFzcz0ia2wtd2VydCI+PC9zcGFuPjwvZGl2PgogICAgICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrb3BmLXplaWxlIGt6LXRhZ2VzZGF0ZW4gdGwtcm93
IHRsLXJvdy11bnRzdHVldHotbiIgZGF0YS1obD0idW50TiI+PHNwYW4gY2xhc3M9ImtsLWFreiBr
bC1ha3otbmFjaHQiPjwvc3Bhbj48c3BhbiBjbGFzcz0ia2wtbGFiZWwiPlVudC4gTmFjaHRkaWVu
c3Q8L3NwYW4+PHNwYW4gY2xhc3M9ImtsLXdlcnQiPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAg
ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8IS0tIFNjaGljaHRmb2xnZSBwcm8g
U3RhbmRvcnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2NoaWNodGZvbGdlLWxp
bmtzIiBjbGFzcz0iem9uZS1zZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImtvcGYtemVpbGUga3otc2NoaWNodGZvbGdlIGt6LXNmLWVyc3RlIj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrbC1sYWJlbCI+U2NoaWNodDwvc3Bhbj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJrbC13ZXJ0IiBkYXRhLXN0YW5kb3J0
PSIwIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8IS0t
IFBlcnNvbmVubGlzdGUgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJuYW1lbi1saXN0ZSI+
PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBTY3JvbGxiYXJlciBy
ZWNodGVyIEJlcmVpY2ggLS0+CiAgICAgICAgICAgIDxkaXYgaWQ9ImdyaWQtc2Nyb2xsLWNvbnRh
aW5lciI+CiAgICAgICAgICAgICAgICA8IS0tIEtvcGZiZXJlaWNoIHJlY2h0czogWm9uZW4gcGFz
c2VuZCB6dSBsaW5rcyAtLT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImtvcGYtcmVjaHRzIj4K
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ6b25lLXNvbGwiPgogICAgICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGlkPSJ0ZC12b3JnYWJlLXplaWxlIiAgICAgY2xhc3M9ImtvcGYtZGF0
ZW4temVpbGUga29wZi1kYXRlbi16ZWlsZSB0bC1yb3cgdGwtcm93LXZvcmdhYmUiPjwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0ZC1zdGFlcmtlc29sbC16ZWlsZSIgY2xh
c3M9ImtvcGYtZGF0ZW4temVpbGUga29wZi1kYXRlbi16ZWlsZSB0bC1yb3cgdGwtcm93LXN0YWVy
a2Vzb2xsIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJ6b25lLWRzbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
aWQ9InRkLWRzbS16ZWlsZSIgICAgICAgICBjbGFzcz0ia29wZi1kYXRlbi16ZWlsZSBrb3BmLWRh
dGVuLXplaWxlIHRsLXJvdyB0bC1yb3ctZHNtIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8
L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ6b25lLWRhdHVtIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGF0dW0temVpbGUtdGFnIiAgICAgIGNsYXNzPSJr
b3BmLWRhdGVuLXplaWxlIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i
ZGF0dW0temVpbGUtd29jaGVudGFnIiBjbGFzcz0ia29wZi1kYXRlbi16ZWlsZSI+PC9kaXY+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRhdHVtLXplaWxlLWV2ZW50cyIgICBjbGFz
cz0ia29wZi1kYXRlbi16ZWlsZSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
aWQ9ImRhdHVtLXplaWxlLWZlcmllbiIgICBjbGFzcz0ia29wZi1kYXRlbi16ZWlsZSI+PC9kaXY+
CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0iem9uZS1jb3VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0idGQtZnJ1
ZWgtbC16ZWlsZSIgICAgIGNsYXNzPSJrb3BmLWRhdGVuLXplaWxlIHRsLXJvdyB0bC1yb3ctZnJ1
ZWgtbCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InRkLXNwYWV0LWwt
emVpbGUiICAgICBjbGFzcz0ia29wZi1kYXRlbi16ZWlsZSB0bC1yb3cgdGwtcm93LXNwYWV0LWwi
PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0ZC11bnRzdHVldHotZi16
ZWlsZSIgY2xhc3M9ImtvcGYtZGF0ZW4temVpbGUgdGwtcm93IHRsLXJvdy11bnRzdHVldHotZiI+
PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InRkLXVudHN0dWV0ei1uLXpl
aWxlIiBjbGFzcz0ia29wZi1kYXRlbi16ZWlsZSB0bC1yb3cgdGwtcm93LXVudHN0dWV0ei1uIj48
L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2
IGlkPSJzY2hpY2h0Zm9sZ2UtcmVjaHRzIiBjbGFzcz0iem9uZS1zZiI+PC9kaXY+CiAgICAgICAg
ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gRGF0ZW4tR3JpZCAtLT4KICAgICAg
ICAgICAgICAgIDxkaXYgaWQ9ImdyaWQtZGF0ZW4iPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4K
ICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBaZWxsZW4tRWRpdG9yIC0tPgogICAgICAgIDxk
aXYgaWQ9InplbGwtZWRpdG9yIiBjbGFzcz0idmVyc3RlY2t0Ij4KICAgICAgICAgICAgPHNlbGVj
dCBpZD0iZWRpdG9yLWF1c3dhaGwiIHNpemU9IjEwIj48L3NlbGVjdD4KICAgICAgICAgICAgPGRp
diBjbGFzcz0iZWRpdG9yLXBmbGljaHQiPgogICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPSJk
aXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOjExcHg7Y3Vy
c29yOnBvaW50ZXI7cGFkZGluZzo0cHggNnB4O2JhY2tncm91bmQ6cmdiYSgxODMsMjgsMjgsMC4w
Nik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE4MywyOCwyOCwwLjIpO2JvcmRlci1yYWRpdXM6NHB4
Ij4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJlZGl0b3It
cGZsaWNodC1jYiIgc3R5bGU9IndpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7YWNjZW50LWNvbG9yOiNC
NzFDMUM7Y3Vyc29yOnBvaW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdHJvbmc+
UGZsaWNodC1TZXR6dW5nPC9zdHJvbmc+IGdlZ2VuIFd1bnNjaDwvc3Bhbj4KICAgICAgICAgICAg
ICAgIDwvbGFiZWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJl
ZGl0b3Ita29tbWVudGFyIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
ZWRpdG9yLWtvbW1lbnRhci1pbnB1dCIgY2xhc3M9ImZvcm0taW5wdXQiIHBsYWNlaG9sZGVyPSJL
b21tZW50YXIuLi4iIHN0eWxlPSJ3aWR0aDoxMDAlO2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6NHB4
IDZweCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Ita29tbWVudGFyLWJ0bnMi
PgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1rb21tZW50YXItc3BlaWNoZXJu
IiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIGJ0bi1rbGVpbiI+S29tbWVudGFyIHNwZWljaGVybjwv
YnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1rb21tZW50YXItbG9l
c2NoZW4iIGNsYXNzPSJidG4gYnRuLWdlZmFociBidG4ta2xlaW4iPkzDtnNjaGVuPC9idXR0b24+
CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxk
aXYgaWQ9InplLWhpc3RvcmllIiBjbGFzcz0iemUtaGlzdG9yaWUiIGhpZGRlbj4KICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InplLWhpc3RvcmllLXRpdGVsIj7DhG5kZXJ1bmdzLUhpc3Rvcmll
PC9kaXY+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InplLWhpc3RvcmllLWxpc3RlIj48L3Vs
PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0g
PT09PT09PT09PSBBTlNJQ0hUOiBXT0NIRU5QTEFOID09PT09PT09PT0gLS0+CiAgICA8ZGl2IGlk
PSJhbnNpY2h0LXdvY2hlbnBsYW4iIGNsYXNzPSJhbnNpY2h0IHZlcnN0ZWNrdCI+CiAgICAgICAg
PGRpdiBjbGFzcz0id3AtbGF5b3V0Ij4KICAgICAgICAgICAgPCEtLSBUb29sYmFyICh3aXJkIGJl
aW0gRHJ1Y2sgYXVzZ2VibGVuZGV0KSAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0id3AtdG9v
bGJhciB3cC1uby1wcmludCI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJ3cC12b3J3b2No
ZSIgY2xhc3M9InRvb2xiYXItYnRuIj4mbGFycjsgVm9yd29jaGU8L2J1dHRvbj4KICAgICAgICAg
ICAgICAgIDxidXR0b24gaWQ9IndwLWFrdHVlbGxlLXdvY2hlIiBjbGFzcz0idG9vbGJhci1idG4i
PkFrdHVlbGxlIFdvY2hlPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJ3cC1u
YWVjaHN0ZS13b2NoZSIgY2xhc3M9InRvb2xiYXItYnRuIj5Ow6RjaHN0ZSBXb2NoZSAmcmFycjs8
L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItdHJlbm5lciI+PC9k
aXY+CiAgICAgICAgICAgICAgICA8c3BhbiBpZD0id3AtemVpdHJhdW0iIGNsYXNzPSJ3cC16ZWl0
cmF1bS1hbnplaWdlIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJ3cC1kcnVj
a2VuIiBjbGFzcz0idG9vbGJhci1idG4iIHN0eWxlPSJtYXJnaW4tbGVmdDphdXRvIiB0aXRsZT0i
V29jaGVucGxhbiBkcnVja2VuIChlaW5lIFNlaXRlKSI+8J+WqCBEcnVja2VuPC9idXR0b24+CiAg
ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIFdvY2hlbnBsYW4tU2VpdGUgKHdpcmQg
YmVpbSBEcnVjayBhbHMgQTQgcXVlciBhdXNnZWdlYmVuKSAtLT4KICAgICAgICAgICAgPGRpdiBj
bGFzcz0id3AtcGFnZSIgaWQ9IndwLXBhZ2UiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9k
aXY+CgogICAgPCEtLSA9PT09PT09PT09IEFOU0lDSFQ6IFBFUlPDlk5MSUNIRVIgUExBTiA9PT09
PT09PT09IC0tPgogICAgPGRpdiBpZD0iYW5zaWNodC1wZXJzcGxhbiIgY2xhc3M9ImFuc2ljaHQg
dmVyc3RlY2t0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJwcC1sYXlvdXQiIGRhdGEtbW9kdXM9Imph
aHIiPgoKICAgICAgICAgICAgPCEtLSBUb29sYmFyOiBQZXJzb24gKyBKYWhyICsgTW9kdXMgKyBF
eHBvcnQgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwLXRvb2xiYXIgdG9vbGJhciI+CiAg
ICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJwcC1wZXJzb24tYXVzd2FobCIgY2xhc3M9InRvb2xi
YXItbGFiZWwiPlBlcnNvbjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJwcC1w
ZXJzb24tYXVzd2FobCIgY2xhc3M9ImZvcm0taW5wdXQgcHAtcGVyc29uIj48L3NlbGVjdD4KCiAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXRyZW5uZXIiPjwvZGl2PgoKICAgICAg
ICAgICAgICAgIDxsYWJlbCBmb3I9InBwLWphaHItYXVzd2FobCIgY2xhc3M9InRvb2xiYXItbGFi
ZWwiPkphaHI8L2xhYmVsPgogICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0icHAtamFoci1hdXN3
YWhsIiBjbGFzcz0iZm9ybS1pbnB1dCBwcC1qYWhyLXNlbGVjdCI+PC9zZWxlY3Q+CgogICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci10cmVubmVyIj48L2Rpdj4KCiAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJwcC1tb2R1cyIgcm9sZT0idGFibGlzdCIgYXJpYS1sYWJlbD0iQW5z
aWNodHNtb2R1cyI+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0icHAtbW9kdXMtamFo
ciIgIGNsYXNzPSJ0b29sYmFyLWJ0biBha3RpdiIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJ0
cnVlIiAgZGF0YS1tb2R1cz0iamFociI+SmFocjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAg
IDxidXR0b24gaWQ9InBwLW1vZHVzLW1vbmF0IiBjbGFzcz0idG9vbGJhci1idG4iICAgICAgIHJv
bGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGRhdGEtbW9kdXM9Im1vbmF0Ij5Nb25hdDwv
YnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPHNwYW4gaWQ9
InBwLXplaXRyYXVtIiBjbGFzcz0idG9vbGJhci1pbmZvIHBwLXplaXRyYXVtIj48L3NwYW4+Cgog
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHAtdG9vbGJhci1yZWNodHMiPgogICAgICAgICAg
ICAgICAgICAgIDxidXR0b24gaWQ9InBwLWV4cG9ydC1wZGYiIGNsYXNzPSJ0b29sYmFyLWJ0biIg
dGl0bGU9IkFscyBQREYgZXhwb3J0aWVyZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmUiPlBERjwvYnV0
dG9uPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9InBwLWRydWNrZW4iICAgIGNsYXNz
PSJ0b29sYmFyLWJ0biIgdGl0bGU9IkRydWNrZW4iPkRydWNrZW48L2J1dHRvbj4KICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gU2Nyb2xs
LUJlcmVpY2ggLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwLXNjcm9sbCIgaWQ9InBwLXNj
cm9sbCI+CgogICAgICAgICAgICAgICAgPCEtLSBUaXRlbC1CbG9jayAoTmFtZSArIFJvbGxlICsg
TWV0YSkg4oCUIHdpcmQgdm9tIFJlbmRlcmVyIGJlZsO8bGx0IC0tPgogICAgICAgICAgICAgICAg
PGhlYWRlciBjbGFzcz0icHAtdGl0ZWwiIGlkPSJwcC10aXRlbCI+PC9oZWFkZXI+CgogICAgICAg
ICAgICAgICAgPCEtLSBMZWdlbmRlIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHAt
bGVnZW5kZSBsZWdlbmRlLWlubGluZSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9
ImxlZ2VuZGUtaXRlbSI+PHNwYW4gY2xhc3M9ImxlZ2VuZGUtc3dhdGNoIHN3LWYiPjwvc3Bhbj5G
csO8aGRpZW5zdDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGVnZW5k
ZS1pdGVtIj48c3BhbiBjbGFzcz0ibGVnZW5kZS1zd2F0Y2ggc3ctcyI+PC9zcGFuPlNww6R0ZGll
bnN0PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsZWdlbmRlLWl0ZW0i
PjxzcGFuIGNsYXNzPSJsZWdlbmRlLXN3YXRjaCBzdy1uIj48L3NwYW4+TmFjaHRkaWVuc3Q8L3Nw
YW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxlZ2VuZGUtaXRlbSI+PHNwYW4g
Y2xhc3M9ImxlZ2VuZGUtc3dhdGNoIHN3LWZyZWkiPjwvc3Bhbj5GcmVpPC9zcGFuPgogICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsZWdlbmRlLWl0ZW0iPjxzcGFuIGNsYXNzPSJsZWdl
bmRlLXN3YXRjaCBzdy13ZSI+PC9zcGFuPldvY2hlbmVuZGU8L3NwYW4+CiAgICAgICAgICAgICAg
ICAgICAgPHNwYW4gY2xhc3M9ImxlZ2VuZGUtaXRlbSI+PHNwYW4gY2xhc3M9ImxlZ2VuZGUtc3dh
dGNoIHN3LWZ0Ij48L3NwYW4+RmVpZXJ0YWc8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNw
YW4gY2xhc3M9ImxlZ2VuZGUtaXRlbSI+PHNwYW4gY2xhc3M9ImxlZ2VuZGUtc3dhdGNoIHN3LWhl
dXRlIj48L3NwYW4+SGV1dGU8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAg
ICAgICAgICA8IS0tIE1vbmF0c2thcnRlbi1HcmlkIC0tPgogICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0icHAtbW9uYXRlIiBpZD0icHAtbW9uYXRlIj48L2Rpdj4KCiAgICAgICAgICAgICAgICA8
IS0tIFp1c2FtbWVuZmFzc3VuZyAoS1BJLUthY2hlbG4pIC0tPgogICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0icHAtc3VtbWFyeSIgaWQ9InBwLXN1bW1hcnkiPjwvZGl2PgogICAgICAgICAgICA8
L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gPT09PT09PT09PSBBTlNJ
Q0hUOiBBRE1JTklTVFJBVElPTiA9PT09PT09PT09IC0tPgogICAgPGRpdiBpZD0iYW5zaWNodC1h
ZG1pbiIgY2xhc3M9ImFuc2ljaHQgdmVyc3RlY2t0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p
bi1sYXlvdXQiPgogICAgICAgICAgICA8IS0tIEFkbWluLVNpZGViYXIg4oCUIDQgR3J1cHBlbiBt
aXQgU2VrdGlvbnMtSGVhZGVybi4KICAgICAgICAgICAgICAgICBBdWRpdC1JdGVyLUQgKDIwMjYt
MDUtMDQpOiBrb25zb2xpZGllcnRlIFRhYnMg4oCUIGJlaSBLbGljayBhdWYKICAgICAgICAgICAg
ICAgICBkaWUgdmlydHVlbGxlbiBTYW1tZWwtVGFicyAodGFnZXNsYWdlLCBkYXRlbiwgcm9sbGVu
KSB3ZXJkZW4KICAgICAgICAgICAgICAgICBtZWhyZXJlIGFsdGUgVGFicyBnbGVpY2h6ZWl0aWcg
c2ljaHRiYXIgKHNpZWhlIGFwcC5qcwogICAgICAgICAgICAgICAgIGFkbWluVGFiQWt0aXZpZXJl
bikuIERpZSBFaW56ZWwtQnV0dG9ucyBkZXIgenVzYW1tZW5nZWbDvGhydGVuCiAgICAgICAgICAg
ICAgICAgVGFicyBzaW5kIHZlcnN0ZWNrdCBhYmVyIGltIERPTSBlcmhhbHRlbi4gLS0+CiAgICAg
ICAgICAgIDxhc2lkZSBjbGFzcz0iYWRtaW4tc2lkZWJhciI+CiAgICAgICAgICAgICAgICA8aDMg
Y2xhc3M9ImFkbWluLW5hdi1ncnVwcGUiPlN0YW1tZGF0ZW48L2gzPgogICAgICAgICAgICAgICAg
PGJ1dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0biBha3RpdiIgZGF0YS1hZG1pbi10YWI9InBlcnNv
bmFsIj5QZXJzb25hbHZlcndhbHR1bmc8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24g
Y2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEtYWRtaW4tdGFiPSJ0ZXJtaW5lIj5UZXJtaW5lPC9i
dXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZG1pbi1uYXYtYnRuIiBkYXRh
LWFkbWluLXRhYj0ic2NoaWNodGNvZGVzIj5TY2hpY2h0Y29kZXMgJmFtcDsgRmFyYmVuPC9idXR0
b24+CgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJhZG1pbi1uYXYtZ3J1cHBlIj5Lb25maWd1
cmF0aW9uPC9oMz4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4i
IGRhdGEtYWRtaW4tdGFiPSJ0YWdlc2xhZ2UiPkhlYWRlcjwvYnV0dG9uPgogICAgICAgICAgICAg
ICAgPGJ1dHRvbiBjbGFzcz0iYWRtaW4tbmF2LWJ0biIgZGF0YS1hZG1pbi10YWI9ImZlYXR1cmVz
Ij5GdW5rdGlvbmVuPC9idXR0b24+CgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJhZG1pbi1u
YXYtZ3J1cHBlIj5EYXRlbjwvaDM+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhZG1p
bi1uYXYtYnRuIiBkYXRhLWFkbWluLXRhYj0ibWVkaWVuIj5NZWRpZW48L2J1dHRvbj4KICAgICAg
ICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEtYWRtaW4tdGFiPSJk
YXRlbiI+RGF0ZW4tTWFuYWdlbWVudDwvYnV0dG9uPgoKICAgICAgICAgICAgICAgIDxoMyBjbGFz
cz0iYWRtaW4tbmF2LWdydXBwZSI+U3lzdGVtPC9oMz4KICAgICAgICAgICAgICAgIDxidXR0b24g
Y2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEtYWRtaW4tdGFiPSJpbmZvIj5JbmZvcm1hdGlvbiAm
YW1wOyBIaWxmZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWRtaW4t
bmF2LWJ0biIgZGF0YS1hZG1pbi10YWI9ImVpbnN0ZWxsdW5nZW4iPkVpbnN0ZWxsdW5nZW48L2J1
dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFkbWluLW5hdi1idG4iIGRhdGEt
YWRtaW4tdGFiPSJyb2xsZW4iPlJvbGxlbiAmYW1wOyBCZXJlY2h0aWd1bmdlbjwvYnV0dG9uPgog
ICAgICAgICAgICA8L2FzaWRlPgoKICAgICAgICAgICAgPCEtLSBBZG1pbi1JbmhhbHQgLS0+CiAg
ICAgICAgICAgIDxtYWluIGNsYXNzPSJhZG1pbi1pbmhhbHQiPgoKICAgICAgICAgICAgICAgIDwh
LS0gVGFiOiBQZXJzb25hbCAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRh
YiIgaWQ9ImFkbWluLXRhYi1wZXJzb25hbCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5QZXJzb25hbHZlcndh
bHR1bmc8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZs
ZXg7Z2FwOjEycHg7YWxpZ24taXRlbXM6Y2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxsYWJlbCBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4
O2ZvbnQtc2l6ZToxM3B4O2N1cnNvcjpwb2ludGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhZG1pbi1wZXJzb25hbC1maWx0ZXIi
PiBVbWdlc2V0enRlIFBlcnNvbmVuIGVpbmJsZW5kZW4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4t
cGVyc29uLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj4rIE5ldWUgUGVyc29uPC9idXR0b24+
CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWlu
Zm8ta2V5PSJwZXJzb25hbCIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+
PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1ciBQZXJz
b25hbHZlcndhbHR1bmc8c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAv
IFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48
c3Ryb25nPlp3ZWNrOjwvc3Ryb25nPiBaZW50cmFsZSBWZXJ3YWx0dW5nIGFsbGVyIE1pdGFyYmVp
dGVyIGRpZXNlciBEaWVuc3RncnVwcGUuIEplZGUgUGVyc29uIGJla29tbXQgU3RhbW1kYXRlbiB1
bmQga2FubiBvcHRpb25hbCBhbHMgYmVmcmlzdGV0IG1hcmtpZXJ0IHdlcmRlbiAoSG9zcGl0YW50
ZW4sIFJhdHNiZXdlcmJlciwgU2Nod2FuZ2VyZSAmbWRhc2g7IHNpZWhlIEVuZGRhdHVtKS48L3A+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkZlbGRlciBpbSBCZWFyYmVp
dGVuLU1vZGFsPC9zdHJvbmc+IChTdGlmdC1TeW1ib2wgJiN4MjcwRTsgaW4gZGVyIEFrdGlvbmVu
LVNwYWx0ZSk6PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5TdGFtbWRhdGVuPC9iPiAmbWRhc2g7IE5hbWUs
IFZvcm5hbWUsIERpZW5zdGdyYWQsIE5XLUtlbm51bmcsIEUtTWFpbCwgR2VidXJ0c2RhdHVtLjwv
bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkZ1bmt0aW9uPC9iPiAm
bWRhc2g7IDxjb2RlPkRHTDwvY29kZT4gLyA8Y29kZT4xLiBFQjwvY29kZT4gLyA8Y29kZT4xLiBF
QiBWLjwvY29kZT4gb2RlciBsZWVyLiBTdGV1ZXJ0IGRpZSBBdXRvLVN5bmMgZGVyIFJvbGxlbi1M
aXN0ZW4gKERHTC8xLkVCICZyYXJyOyBTdXBlclVzZXIsIDEuIEVCIFYuICZyYXJyOyBGYWNoYXVm
c2ljaHQpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPk9FIC8g
RGllbnN0c3RlbGxlLCBEaWVuc3RudW1tZXIsIFRlbGVmb248L2I+ICZtZGFzaDsgZXJzY2hlaW5l
biBpbSBJbmZvLU1vZGFsIGFscyBLb250YWt0LUthcnRlLjwvbGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGxpPjxiPlN0YXRpc3Rpay1adWdyaWZmPC9iPiAmbWRhc2g7IE92ZXJy
aWRlIGRlcyBEZWZhdWx0cyAoREdMLzEuJm5ic3A7RUIgc2VoZW4gU3RhdGlzdGlrOyBhbGxlIGFu
ZGVyZW4gbmljaHQpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxi
PkJlZnJpc3R1bmc8L2I+ICZtZGFzaDsgRW5kZGF0dW0sIERhdHVtIGRlcyBsZXR6dGVuIEdlc3By
JmF1bWw7Y2hzLCBpbmRpdmlkdWVsbGUgRXJpbm5lcnVuZ3MtTm90aXouPC9saT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48
c3Ryb25nPklubGluZS1FZGl0IGluIGRlciBUYWJlbGxlOjwvc3Ryb25nPiBLbGljayBhdWYgZWlu
ZSBaZWxsZSAoTmFtZSwgVm9ybmFtZSwgRC4tR3JhZCwgTlctS2VubnVuZywgR2VidXJ0c3RhZykg
Jm91bWw7ZmZuZXQgZGFzIEJlYXJiZWl0dW5nc2ZlbGQgZGlyZWt0LiA8Yj5FbnRlcjwvYj4gb2Rl
ciA8Yj5LbGljayBhdSZzemxpZztlcmhhbGI8L2I+IHNwZWljaGVydCBzb2ZvcnQsIDxiPkVzYzwv
Yj4gYnJpY2h0IGFiLiBEYXR1bXMtRmVsZGVyICZvdW1sO2ZmbmVuIGF1dG9tYXRpc2NoIGRlbiBC
cm93c2VyLURhdGVwaWNrZXIuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0
cm9uZz5SZWloZW5mb2xnZTo8L3N0cm9uZz4gRGllIFBvc2l0aW9uIGluIGRlciBUYWJlbGxlIHN0
ZXVlcnQgZGllIEFuemVpZ2UtSGllcmFyY2hpZSBpbSBQbGFudW5ncy1HcmlkLiBNaXQgZGVuIFBm
ZWlsZW4gJiN4MjVCMjsgLyAmI3gyNUJDOyB2ZXJzY2hpZWJzdCBkdSBlaW5lIFBlcnNvbi4gQmVp
bSBFeGNlbC1JbXBvcnQga2FubiBkaWVzZSBSZWloZW5mb2xnZSBhdXRvbWF0aXNjaCBhdXMgZGVy
IEV4Y2VsICZ1dW1sO2Jlcm5vbW1lbiB3ZXJkZW4gKENoZWNrYm94IDxlbT7igJ5QZXJzb25lbi1S
ZWloZW5mb2xnZSBmb2xndCBFeGNlbCI8L2VtPikuPC9wPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHA+PHN0cm9uZz5OVy1LZW5udW5nOjwvc3Ryb25nPiBEaWUgTmV0endlcmstS2VubnVu
ZyAoei5CLiA8Y29kZT5OVzEyMzQ1NjwvY29kZT4gb2RlciA8Y29kZT5yaGlubzwvY29kZT4pIHdp
cmQgdm9tIFNlcnZlciBhdXRvbWF0aXNjaCBkZW0gYW5nZW1lbGRldGVuIFdpbmRvd3MtQmVudXR6
ZXIgenVnZW9yZG5ldC4gT2huZSBLZW5udW5nIGVya2VubnQgZGFzIFN5c3RlbSBkaWUgUGVyc29u
IG5pY2h0ICZtZGFzaDsgcGVyc8O2bmxpY2hlciBQbGFuIG9kZXIgU3RhdGlzdGlrLVNpY2h0YmFy
a2VpdCBmdW5rdGlvbmllcmVuIGRhbm4gbmljaHQuPC9wPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHA+PHN0cm9uZz5FLU1haWwtU3BhbHRlOjwvc3Ryb25nPiBHciZ1dW1sO25lciBCcmll
ZnVtc2NobGFnID0gRS1NYWlsIGhpbnRlcmxlZ3QgKEtsaWNrICZvdW1sO2ZmbmV0IE91dGxvb2sg
bWl0IE1haWwtVm9ybGFnZSksIHJvdGVyIFVtc2NobGFnID0gbmljaHQgZ2VwZmxlZ3QgKEtsaWNr
ICZvdW1sO2ZmbmV0IElubGluZS1FZGl0KS4gRG9wcGVsa2xpY2sgYXVmIGRlbiBnciZ1dW1sO25l
biBCdXR0b24gJm91bWw7ZmZuZXQgZWJlbmZhbGxzIGRlbiBFZGl0LU1vZHVzLjwvcD4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+U3RhdHVzIChBa3Rpdi9JbmFrdGl2KTo8
L3N0cm9uZz4gS2xpY2sgYXVmIGRlbiBTdGF0dXMtQnV0dG9uIHNjaGFsdGV0IHp3aXNjaGVuIEFr
dGl2IChnciZ1dW1sO24pIHVuZCBJbmFrdGl2IChyb3QsIG1pdCBCZXN0JmF1bWw7dGlndW5ncy1N
b2RhbCkuIEluYWt0aXZlIFBlcnNvbmVuIHdlcmRlbiBhdXMgZGVyIGxhdWZlbmRlbiBQbGFudW5n
IGVudGZlcm50IHVuZCBhbnMgTGlzdGVuZW5kZSBzb3J0aWVydC4gSGlzdG9yaWUgYmxlaWJ0IGVy
aGFsdGVuICZtZGFzaDsgbWl0IGRlciBDaGVja2JveCA8ZW0+4oCeVW1nZXNldHp0ZSBlaW5ibGVu
ZGVuIjwvZW0+IHdpZWRlciBzaWNodGJhci48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8cD48c3Ryb25nPkVyaW5uZXJ1bmcgYW4gR2VzcHImYXVtbDtjaHN0ZXJtaW46PC9zdHJvbmc+
IFZvciBkZW0gRW5kZGF0dW0gZWluZXMgYmVmcmlzdGV0ZW4gRWludHJhZ3MgZXJzY2hlaW50IGF1
dG9tYXRpc2NoIGVpbiBFcmlubmVydW5ncy1Nb2RhbCBmJnV1bWw7ciBER0wgdW5kIDEuJm5ic3A7
RUIuIFZvcmxhdWYtVGFnZSB1bmQgU25vb3plLVZlcmhhbHRlbiBzaW5kIGltIFRhYiA8ZW0+RWlu
c3RlbGx1bmdlbjwvZW0+IGtvbmZpZ3VyaWVyYmFyLjwvcD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxwPjxzdHJvbmc+JiN4MUY0NDE7IFRlc3Rlbi1CdXR0b24gKG51ciBTdXBlclVzZXIp
Ojwvc3Ryb25nPiAmT3VtbDtmZm5ldCBkaWUgQW53ZW5kdW5nIGluIGRlciBTaWNodCBkZXIgYXVz
Z2V3JmF1bWw7aGx0ZW4gUGVyc29uICZtZGFzaDsgYWxsZSBTY2hyZWlidm9yZyZhdW1sO25nZSBz
aW5kIGRhbm4gZ2VzcGVycnQuIElkZWFsIHVtIHp1IHByJnV1bWw7ZmVuLCBvYiBSb2xsZW4vU2lj
aHRiYXJrZWl0ZW4ga29ycmVrdCB2ZXJnZWJlbiBzaW5kLiA8ZW0+4oCeWnVyJnV1bWw7Y2sgenVy
IGVpZ2VuZW4gU2ljaHQiPC9lbT4gYmVlbmRldCBkZW4gVGVzdC1Nb2R1cy48L3A+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAg
ICAgICAgICAgICAgICAgICA8dGFibGUgaWQ9InBlcnNvbmFsLXRhYmVsbGUiIGNsYXNzPSJhZG1p
bi10YWJlbGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBz
dHlsZT0id2lkdGg6NDhweCI+UG9zLjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHRoIHN0eWxlPSJ3aWR0aDoxNjBweCI+TmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxMzBweCI+Vm9ybmFtZTwvdGg+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo2MHB4Ij5ELi1HcmFkPC90
aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjEwMHB4
Ij5OVy1LZW5udW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5
bGU9IndpZHRoOjcwcHgiPkUtTWFpbDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHRoIHN0eWxlPSJ3aWR0aDoxMTBweCI+R2VidXJ0c3RhZzwvdGg+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3MHB4Ij5TdGF0dXM8L3RoPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6MjAwcHgiPkFrdGlv
bmVuPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0icGVy
c29uYWwtdGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAg
ICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2
ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItdGVybWluZSI+CiAgICAgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5UZXJtaW5l
PC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cCBz
dHlsZT0iZm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luOi00cHgg
MCAxOHB4Ij5Tb25kZXJ0ZXJtaW5lLCBGZWllcnRhZ2UgdW5kIEZlcmllbiB6ZW50cmFsIHBmbGVn
ZW4uIEFsbGUgZHJlaSB3aXJrZW4gc2ljaCBhdWYgZGllIEhpbndlaXMtWmVpbGUgaW0gUGxhbnVu
Z3MtSGVhZGVyIGF1cy48L3A+CgogICAgICAgICAgICAgICAgICAgIDwhLS0gVW50ZXJzZWt0aW9u
OiBTb25kZXJ0ZXJtaW5lIC0tPgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJ0
ZXJtaW5lLXN1YiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtv
cGYiIHN0eWxlPSJtYXJnaW4tdG9wOjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgz
IHN0eWxlPSJtYXJnaW46MDtmb250LXNpemU6MTVweCI+U29uZGVydGVybWluZSAmYW1wOyBIaW53
ZWlzZTwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5
OmZsZXg7Z2FwOjhweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBp
ZD0iYnRuLXNvbmRlcnRlcm1pbi1idWxrLXRvZ2dsZSIgY2xhc3M9ImJ0biBidG4tc2VrIiB0eXBl
PSJidXR0b24iPk1laHJmYWNoYmVhcmJlaXR1bmc8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc29uZGVydGVybWluLW5ldSIgY2xhc3M9ImJ0
biBidG4tZXJmb2xnIj4rIE5ldWVyIEhpbndlaXM8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg
ICAgICAgICAgICAgICAgPCEtLSBCdWxrLUVkaXQtQmFyICh2ZXJzdGVja3QgYmlzIE1laHJmYWNo
YmVhcmJlaXR1bmcgYWt0aXZpZXJ0IHdpcmQpIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8
ZGl2IGlkPSJzb25kZXJ0ZXJtaW4tYnVsay1iYXIiIGNsYXNzPSJidWxrLWJhciB2ZXJzdGVja3Qi
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnVsay1iYXIta29wZiI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5NZWhyZmFjaGJlYXJiZWl0
dW5nPC9zdHJvbmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9InNv
bmRlcnRlcm1pbi1idWxrLWNvdW50IiBjbGFzcz0iYnVsay1jb3VudCI+MCBhdXNnZXcmYXVtbDto
bHQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9Im1h
cmdpbi1sZWZ0OmF1dG87Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPk51
ciBtYXJraWVydGUgRmVsZGVyIHdlcmRlbiAmdXVtbDtiZXJzY2hyaWViZW4uPC9zcGFuPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJidWxrLWJhci1mZWxkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxsYWJlbCBjbGFzcz0iYnVsay1mZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBkYXRhLWJ1bGstdG9nZ2xlPSJpY29u
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJ1bGst
bGFiZWwiPkljb248L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxi
dXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iYnRuLWJ1bGstaWNvbiIgY2xhc3M9ImVtb2ppLWJ0biIg
ZGF0YS1pY29uPSIiIHN0eWxlPSJtaW4td2lkdGg6NDZweCI+PHNwYW4gY2xhc3M9ImVtb2ppLWJ0
bi1sZWVyLXRleHQiPiZtZGFzaDs8L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFi
ZWwgY2xhc3M9ImJ1bGstZmVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGF0YS1idWxrLXRvZ2dsZT0idGl0ZWwiPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnVsay1sYWJlbCI+VGl0
ZWw8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iYnVsay10aXRlbCIgY2xhc3M9ImZvcm0taW5wdXQiIHBsYWNlaG9sZGVyPSJ6
LkIuIFR6RiIgbWF4bGVuZ3RoPSIxMDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJi
dWxrLWZlbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlw
ZT0iY2hlY2tib3giIGRhdGEtYnVsay10b2dnbGU9ImthdGVnb3JpZSI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJidWxrLWxhYmVsIj5LYXRlZ29yaWU8
L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9ImJ1
bGsta2F0ZWdvcmllIiBjbGFzcz0iZm9ybS1pbnB1dCI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJiZXNwcmVjaHVuZyI+QmVzcHJlY2h1bmc8
L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24g
dmFsdWU9ImJ2YiI+QlZCPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8b3B0aW9uIHZhbHVlPSJzcG9ydCI+U3BvcnQ8L29wdGlvbj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Imdyb3NzdmVyYW5zdGFs
dHVuZyI+R3JvJnN6bGlnO3ZlcmFuc3RhbHR1bmc8L29wdGlvbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImJhbyI+QkFPPC9vcHRpb24+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ1ZWJ1
bmciPiZVdW1sO2J1bmc8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImJ1bGstZmVsZCI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIg
ZGF0YS1idWxrLXRvZ2dsZT0idHlwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHNwYW4gY2xhc3M9ImJ1bGstbGFiZWwiPlR5cDwvc3Bhbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iYnVsay10eXAiIGNsYXNzPSJmb3JtLWlucHV0
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9
ImhpbndlaXMiPkhpbndlaXM8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxvcHRpb24gdmFsdWU9Indhcm51bmciPldhcm51bmc8L29wdGlvbj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bGFiZWwgY2xhc3M9ImJ1bGstZmVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGF0YS1idWxrLXRvZ2dsZT0id2Fybk1vZHVzIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJ1bGstbGFi
ZWwiPldhcm5tb2R1czwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHNlbGVjdCBpZD0iYnVsay13bSIgY2xhc3M9ImZvcm0taW5wdXQiPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaW1tZXIiPkltbWVyPC9vcHRp
b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVl
PSJlaW5tYWxpZyI+RWlubWFsaWcgLyBVc2VyPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJhdXMiPkF1czwvb3B0aW9uPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidWxrLWJhci1hY3Rp
b25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc29u
ZGVydGVybWluLWJ1bGstY2FuY2VsIiBjbGFzcz0iYnRuIGJ0bi1zZWsiIHR5cGU9ImJ1dHRvbiI+
QmVlbmRlbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24g
aWQ9ImJ0bi1zb25kZXJ0ZXJtaW4tYnVsay1hbndlbmRlbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFl
ciIgdHlwZT0iYnV0dG9uIj5BdWYgQXVzd2FobCBhbndlbmRlbjwvYnV0dG9uPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1p
bmZvLWtleT0ic29uZGVydGVybWluZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Vt
bWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+SGlud2Vpc2UgenUg
U29uZGVydGVybWluZW48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAv
IFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxwPjxzdHJvbmc+V2FzIGlzdCBkYXM/PC9zdHJvbmc+IFNvbmRlcnRlcm1pbmUgc2luZCBI
aW53ZWlzZSBvZGVyIFdhcm51bmdlbiwgZGllIGFuIGVpbmVtIGJlc3RpbW10ZW4gVGFnIChvZGVy
IFplaXRyYXVtKSBmJnV1bWw7ciBhbGxlIE51dHplciBzaWNodGJhciB3ZXJkZW4gJm1kYXNoOyB6
LkIuIEdybyZzemxpZzt2ZXJhbnN0YWx0dW5nZW4sIGVyaCZvdW1sO2h0ZXIgUGVyc29uYWxiZWRh
cmYsIHdpY2h0aWdlIEZyaXN0ZW4sIFNwZXJydGVybWluZSwgQlZCLUhlaW1zcGllbGUgb2RlciBF
cmlubmVydW5nZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJv
bmc+V2llIHNlaGVuIGRpZSBOdXR6ZXIgZGFzPzwvc3Ryb25nPjwvcD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48Yj5JbSBQbGFudW5ncy1IZWFkZXI8L2I+IGVyc2NoZWludCBpbiBkZXIgSGlud2Vpcy1a
ZWlsZSAodW50ZXIgZGVtIFdvY2hlbnRhZykgZGFzIGdldyZhdW1sO2hsdGUgSWNvbiBvZGVyIGRl
ciBGYWxsYmFjayAoPGNvZGU+JiM4NTA1OzwvY29kZT4gZiZ1dW1sO3IgSGlud2VpcywgPGNvZGU+
ISEhPC9jb2RlPiBmJnV1bWw7ciBXYXJudW5nKSBiencuIExvZ29zIGJlaSBkZW4gS2F0ZWdvcmll
biBCVkIvU3BvcnQuIEhvdmVyIHplaWd0IGRlbiBUaXRlbCBhbHMgVG9vbHRpcC48L2xpPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+S2xpY2sgYXVmIGRpZSBaZWxs
ZTwvYj4gJm91bWw7ZmZuZXQgZWluIEFuc2ljaHRzLU1vZGFsIG1pdCBJY29uLCBUaXRlbCwgZm9y
bWF0aWVydGVtIFRleHQgdW5kIERhdHVtLiBTdXBlclVzZXIgayZvdW1sO25uZW4gYXVzIGRlbSBN
b2RhbCBoZXJhdXMgZGlyZWt0IGJlYXJiZWl0ZW4gb2RlciBmJnV1bWw7ciBqZWRlbiBUYWcgZWlu
ZW4gbmV1ZW4gSGlud2VpcyBhbmxlZ2VuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxsaT48Yj5CZWltIFBsYW5lbi9VbXBsYW5lbiBlaW5lciBTY2hpY2h0PC9iPiBh
biBlaW5lbSBUYWcgbWl0IEhpbndlaXMgZXJzY2hlaW50ICZtZGFzaDsgamUgbmFjaCBXYXJubW9k
dXMgJm1kYXNoOyBlaW4gV2Fybi1Nb2RhbCwgZGFzIHZvciBkZXIgRWluZ2FiZSBiZXN0JmF1bWw7
dGlndCB3ZXJkZW4gbXVzcy48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5QZmxpY2h0ZmVs
ZGVyOjwvc3Ryb25nPiBEYXR1bSAoVm9uKSBwbHVzIDxlbT5UaXRlbCBPREVSIFRleHQ8L2VtPi4g
UmVpbmUgVGl0ZWwtRWludHImYXVtbDtnZSB3aWUgJmJkcXVvO1R6RiIgc2luZCBlcmxhdWJ0OyBy
ZWluZSBUZXh0LUVpbnRyJmF1bWw7Z2Ugb2huZSBUaXRlbCBlYmVuZmFsbHMuIERhdHVtLUJpcyBp
c3Qgb3B0aW9uYWwgJm1kYXNoOyBsZWVyID0gRWludGFnZXMtVGVybWluOyBnZXNldHp0ID0gWmVp
dHJhdW0gKG11c3MgJmd0OyZuYnNwO0RhdHVtLVZvbiBzZWluKS48L3A+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Mb2dvcyBiZWkgS2F0ZWdvcmllIEJWQiAvIFNw
b3J0Ojwvc3Ryb25nPiBQcm8gVGVybWluIGxhc3NlbiBzaWNoIDEgb2RlciAyIExvZ29zIGF1cyBk
ZXIgTWVkaWVuLVZlcndhbHR1bmcgdyZhdW1sO2hsZW4gKFRhYiBNZWRpZW4pLiBCZWkgMiBMb2dv
cyB3ZXJkZW4gc2llIGFscyAmYmRxdW87SGVpbSA6IEdhc3QiLURvcHBlbGJpbGQgaW0gSGVhZGVy
IGdlcmVuZGVydC4gTG9nby1EYXRlaWVuIHdlcmRlbiB6ZW50cmFsIGltIFRhYiA8ZW0+TWVkaWVu
PC9lbT4gdmVyd2FsdGV0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48
c3Ryb25nPlZvcmxhZ2VuOjwvc3Ryb25nPiBCZWltIEtsaWNrIGF1ZiA8ZW0+4oCeKyBOZXVlciBI
aW53ZWlzIjwvZW0+IGVyc2NoZWludCBpbSBNb2RhbCBkYXMgRHJvcGRvd24gPGVtPuKAnkF1cyBW
b3JsYWdlICZ1dW1sO2Jlcm5laG1lbiI8L2VtPi4gRGllIFZvcmxhZ2VuIHdlcmRlbiBpbiBkZXIg
U3Vic2VrdGlvbiA8ZW0+QmVzcHJlY2h1bmdzLVZvcmxhZ2VuPC9lbT4gd2VpdGVyIHVudGVuIGlu
IGRpZXNlbSBUYWIgZ2VwZmxlZ3QuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPjxzdHJvbmc+V2Fybm1vZHVzOjwvc3Ryb25nPiA8Yj5JbW1lcjwvYj4gJm1kYXNoOyBiZWkg
amVkZXIgUGxhbnVuZyBlcnNjaGVpbnQgZGFzIFdhcm4tTW9kYWwuIDxiPkVpbm1hbGlnIHBybyBV
c2VyPC9iPiAmbWRhc2g7IG51ciBiZWltIGVyc3RlbiBLbGljayBwcm8gTnV0emVyIChsb2thbCBn
ZXNwZWljaGVydCBpbiBsb2NhbFN0b3JhZ2UpLiA8Yj5BdXM8L2I+ICZtZGFzaDsgbnVyIEhlYWRl
ci1JY29uLCBrZWluIE1vZGFsLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cD48c3Ryb25nPk1laHJmYWNoYmVhcmJlaXR1bmc6PC9zdHJvbmc+IERlciBCdXR0b24gb2JlbiBy
ZWNodHMgYmxlbmRldCBlaW5lIEJ1bGstRWRpdC1CYXIgZWluIHVuZCBDaGVja2JveGVuIHBybyBa
ZWlsZS4gRGFtaXQgbGFzc2VuIHNpY2ggSWNvbiwgVGl0ZWwsIEthdGVnb3JpZSwgVHlwIHVuZCBX
YXJubW9kdXMgYXVmIG1laHJlcmUgVGVybWluZSBnbGVpY2h6ZWl0aWcgYW53ZW5kZW4gJm1kYXNo
OyBudXIgZGllIGluIGRlciBCYXIgbWFya2llcnRlbiBGZWxkZXIgd2VyZGVuICZ1dW1sO2JlcnNj
aHJpZWJlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5U
aXBwOjwvc3Ryb25nPiBGJnV1bWw7ciB3aWVkZXJrZWhyZW5kZSBHcm8mc3psaWc7dmVyYW5zdGFs
dHVuZ2VuIGVpbmZhY2ggbWl0IFplaXRyYXVtIGFubGVnZW4gKHouQi4gS2FybmV2YWxzd29jaGUg
TW9udGFnJm5kYXNoO0ZyZWl0YWcpLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9InNvbmRlcnRlcm1pbmUtdGFi
ZWxsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+PHRyPjx0aCBzdHlsZT0i
d2lkdGg6NTJweCI+SWNvbjwvdGg+PHRoIHN0eWxlPSJ3aWR0aDoxODBweCI+RGF0dW0gLyBaZWl0
cmF1bTwvdGg+PHRoPlRpdGVsPC90aD48dGggc3R5bGU9IndpZHRoOjEzMHB4Ij5LYXRlZ29yaWU8
L3RoPjx0aCBzdHlsZT0id2lkdGg6MTEwcHgiPlR5cDwvdGg+PHRoIHN0eWxlPSJ3aWR0aDoxNjBw
eCI+V2Fybm1vZHVzPC90aD48dGggc3R5bGU9IndpZHRoOjE3MHB4Ij5Ba3Rpb25lbjwvdGg+PC90
cj48L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJzb25kZXJ0
ZXJtaW5lLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgog
ICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICAgICAgICAgICAgPGhyIHN0
eWxlPSJtYXJnaW46MjRweCAwO2JvcmRlcjpub25lO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigt
LWJvcmRlci1jb2xvcikiPgoKICAgICAgICAgICAgICAgICAgICA8IS0tIFVudGVyc2VrdGlvbjog
RmVpZXJ0YWdlICsgcmVsaWdpb2VzL2t1bHR1cmVsbGUgVGVybWluZSAtLT4KICAgICAgICAgICAg
ICAgICAgICA8c2VjdGlvbiBjbGFzcz0idGVybWluZS1zdWIiPgogICAgICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIiBzdHlsZT0ibWFyZ2luLXRvcDowIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT0ibWFyZ2luOjA7Zm9udC1zaXplOjE1cHgi
PkZlaWVydGFnZSAmYW1wOyBrdWx0dXJlbGxlIFRlcm1pbmU8L2gzPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZlaWVydGFnLW5ldSIgY2xhc3M9ImJ0biBidG4t
ZXJmb2xnIj4rIE5ldWVyIEZlaWVydGFnPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAg
IDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5m
byIgZGF0YS1pbmZvLWtleT0iZmVpZXJ0YWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlz
ZSB6dSBGZWllcnRhZ2VuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4g
LyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8cD48c3Ryb25nPldhcyBwYXNzaWVydCBtaXQgRmVpZXJ0YWdlbj88L3N0cm9uZz4gQWt0
aXZlIEZlaWVydGFnZSB3ZXJkZW4gaW0gUGxhbnVuZ3NyYXN0ZXIgZmFyYmxpY2ggaGVydm9yZ2Vo
b2JlbiB1bmQgaW4gZGVyIEhpbndlaXMtWmVpbGUgbWl0IDxjb2RlPkZUPC9jb2RlPiBtYXJraWVy
dC4gRGllIFN0YXRpc3Rpay1BdXN3ZXJ0dW5nIDxlbT7igJ5GZWllcnRhZ3MtRGllbnN0ZSI8L2Vt
PiB6JmF1bWw7aGx0IGF1c3NjaGxpZSZzemxpZztsaWNoIFNjaGljaHRlbiBhbiBhbHMgYWt0aXYg
bWFya2llcnRlbiBGZWllcnRhZ2VuLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8cD48c3Ryb25nPkthdGVnb3JpZW48L3N0cm9uZz4gKGltIEZpbHRlci1CZXJlaWNoIG9iZW4g
YXVzLS9laW5ibGVuZGJhcik6PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1
bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPmdlc2V0emxpY2gg
KE5SVyk8L2I+ICZtZGFzaDsgTmV1amFociwgS2FyZnJlaXRhZywgT3N0ZXJtb250YWcsIDEuIE1h
aSwgQ2hyaXN0aSBIaW1tZWxmYWhydCwgUGZpbmdzdG1vbnRhZywgRnJvbmxlaWNobmFtLCBUYWcg
ZGVyIERldXRzY2hlbiBFaW5oZWl0LCBBbGxlcmhlaWxpZ2VuLCAxLi8yLiBXZWlobmFjaHRzdGFn
ICZtZGFzaDsgYWIgV2VyayA8c3Ryb25nPmFrdGl2PC9zdHJvbmc+LjwvbGk+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5qJnV1bWw7ZGlzY2g8L2I+ICZtZGFzaDsg
SGF1cHRmZXN0ZSB3aWUgUm9zY2ggaGEtU2NoYW5hLCBKb20gS2lwcHVyLCBQZXNzYWNoLCBTdWtr
b3QsIENoYW51a2thICZtZGFzaDsgYWIgV2VyayBpbmFrdGl2LCBiZWkgQmVkYXJmIGVpbnplbG4g
YWt0aXZpZXJiYXIuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxp
PjxiPm11c2xpbWlzY2g8L2I+ICZtZGFzaDsgRWlkIGFsLUZpdHIgKFp1Y2tlcmZlc3QpLCBFaWQg
YWwtQWRoYSAoT3BmZXJmZXN0KSwgTWF3bGlkIChHZWJ1cnQgZGVzIFByb3BoZXRlbikgJm1kYXNo
OyBhYiBXZXJrIGluYWt0aXYuIFRlcm1pbmUgdmFyaWllcmVuIGplIG5hY2ggTW9uZC1TaWNodHVu
ZyB1bSAmcGx1c21uOzEmbmJzcDtUYWcgdW5kIHNvbGx0ZW4gYmVpIEJlZGFyZiBuYWNoanVzdGll
cnQgd2VyZGVuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48
Yj50JnV1bWw7cmtpc2NoPC9iPiAmbWRhc2g7IE5hdGlvbmFsZmVpZXJ0YWdlIChSZXB1Ymxpa2dy
JnV1bWw7bmR1bmcsIEp1Z2VuZC0gdW5kIFNwb3J0LVRhZyBldGMuKSAmbWRhc2g7IGFiIFdlcmsg
aW5ha3Rpdi48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Wb3JiZXJlaXRldCBmJnV1bWw7
ciAyMDI2Jm5kYXNoOzIwMzUuPC9zdHJvbmc+IEFiIDIwMjkgc2luZCByZWxpZ2kmb3VtbDtzZSBU
ZXJtaW5lIHBsYXVzaWJlbCBnZXNjaCZhdW1sO3R6dCAmbWRhc2g7IGJpdHRlIGomYXVtbDtocmxp
Y2ggZ2VnZW4gb2ZmaXppZWxsZSBRdWVsbGVuIHZlcmlmaXppZXJlbiAoei5CLiBNb25kLUthbGVu
ZGVyKS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Ba3Rp
di1Ub2dnbGU6PC9zdHJvbmc+IFNjaGFsdGV0IGVpbnplbG5lIFRlcm1pbmUgZnJlaS9hdXMsIG9o
bmUgc2llIHp1IGwmb3VtbDtzY2hlbiAmbWRhc2g7IGlkZWFsIHVtIGRpZSBIZWFkZXItQW56ZWln
ZSBuaWNodCB6dSAmdXVtbDtiZXJmcmFjaHRlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHA+PHN0cm9uZz5XaWNodGlnLVNwYWx0ZTwvc3Ryb25nPiAoQ2hlY2tib3ggPGVt
PuKAnldpY2h0aWciPC9lbT4gcmVjaHRzIGluIGRlciBUYWJlbGxlKTogTWFya2llcnQgYmVzb25k
ZXJzIGhlcnZvcnp1aGViZW5kZSBUYWdlIChIZWlsaWdhYmVuZCwgU2lsdmVzdGVyLCBXZWlobmFj
aHRlbikgbWl0IDxzdHJvbmc+dmVyc3QmYXVtbDtya3RlciBFaW5mJmF1bWw7cmJ1bmc8L3N0cm9u
Zz4gaW0gUGxhbnVuZ3MtSGVhZGVyLiBPcHRpc2NoIGRldXRsaWNoZXIgYWxzIGVpbiBub3JtYWxl
ciBGZWllcnRhZy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9u
Zz5TcGVpY2hlcm48L3N0cm9uZz4gZXJmb2xndCAmdXVtbDtiZXIgZGVuIEJ1dHRvbiA8ZW0+4oCe
RmVpZXJ0YWdlIHNwZWljaGVybiI8L2VtPiB1bnRlciBkZXIgVGFiZWxsZSAmbWRhc2g7IElubGlu
ZS1FZGl0cyB3ZXJkZW4gbmljaHQgYXV0b20uIHBlcnNpc3RpZXJ0LjwvcD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImZlaWVydGFnZS1maWx0ZXIiIHN0eWxl
PSJkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjE0cHg7YWxpZ24taXRlbXM6Y2VudGVy
O21hcmdpbjo4cHggMCAxMnB4O3BhZGRpbmc6OHB4IDEycHg7YmFja2dyb3VuZDp2YXIoLS1iZy1j
YXJkLWFsdCk7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIt
bGlnaHQpO2ZvbnQtc2l6ZToxMnB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJl
bCBzdHlsZT0iZm9udC13ZWlnaHQ6NjAwIj5KYWhyOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxzZWxlY3QgaWQ9ImZ0LWZpbHRlci1qYWhyIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5
bGU9ImZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6M3B4IDZweDttYXJnaW4tbGVmdDo0cHgiPjwvc2Vs
ZWN0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+fDwvc3Bh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDo2
MDAiPkthdGVnb3JpZW46PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVs
IGNsYXNzPSJmdC1rYXQtY2hrIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRhdGEta2F0ZWdvcmll
PSJnZXNldHpsaWNoIiBjaGVja2VkPiBnZXNldHpsaWNoIChOUlcpPC9sYWJlbD4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZnQta2F0LWNoayI+PGlucHV0IHR5cGU9
ImNoZWNrYm94IiBkYXRhLWthdGVnb3JpZT0ianVlZGlzY2giIGNoZWNrZWQ+IGrDvGRpc2NoPC9s
YWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZnQta2F0LWNo
ayI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkYXRhLWthdGVnb3JpZT0ibXVzbGltaXNjaCIgY2hl
Y2tlZD4gbXVzbGltaXNjaDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFi
ZWwgY2xhc3M9ImZ0LWthdC1jaGsiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGF0YS1rYXRlZ29y
aWU9InR1ZXJraXNjaCIgY2hlY2tlZD4gdMO8cmtpc2NoPC9sYWJlbD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGlkPSJmdC1maWx0ZXItaW5mbyIgc3R5bGU9Im1hcmdpbi1sZWZ0
OmF1dG87Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOjExcHgiPjwvc3Bhbj4KICAg
ICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJs
ZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImZlaWVydGFnZS10YWJlbGxlIj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx0aGVhZD48dHI+PHRoIHN0eWxlPSJ3aWR0aDoxMTVweCI+RGF0
dW08L3RoPjx0aD5CZXplaWNobnVuZzwvdGg+PHRoIHN0eWxlPSJ3aWR0aDo5MHB4Ij5LYXRlZ29y
aWU8L3RoPjx0aCBzdHlsZT0id2lkdGg6NzBweDt0ZXh0LWFsaWduOmNlbnRlciI+QWt0aXY8L3Ro
Pjx0aCBzdHlsZT0id2lkdGg6NzBweDt0ZXh0LWFsaWduOmNlbnRlciI+V2ljaHRpZzwvdGg+PHRo
IHN0eWxlPSJ3aWR0aDo2MHB4Ij5Ba3Rpb248L3RoPjwvdHI+PC90aGVhZD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0iZmVpZXJ0YWdlLXRib2R5Ij48L3Rib2R5PgogICAg
ICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0
dG9uIGlkPSJidG4tZmVpZXJ0YWdlLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIg
c3R5bGU9Im1hcmdpbi10b3A6MTJweCI+RmVpZXJ0YWdlIHNwZWljaGVybjwvYnV0dG9uPgogICAg
ICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICAgICAgICAgICAgPGhyIHN0eWxl
PSJtYXJnaW46MjRweCAwO2JvcmRlcjpub25lO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJv
cmRlci1jb2xvcikiPgoKICAgICAgICAgICAgICAgICAgICA8IS0tIFVudGVyc2VrdGlvbjogRmVy
aWVuIChOUlcpIC0tPgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJ0ZXJtaW5l
LXN1YiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiIHN0
eWxlPSJtYXJnaW4tdG9wOjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIHN0eWxl
PSJtYXJnaW46MDtmb250LXNpemU6MTVweCI+U2NodWxmZXJpZW4gTlJXPC9oMz4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mZXJpZW4tbmV1IiBjbGFzcz0iYnRu
IGJ0bi1lcmZvbGciPisgTmV1ZXIgRmVyaWVuemVpdHJhdW08L2J1dHRvbj4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNz
PSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJmZXJpZW4iPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFu
PkhpbndlaXNlIHp1IFNjaHVsZmVyaWVuIE5SVzxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdl
Ij5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXJ1bSBGZXJpZW4gZXJmYXNzZW4/PC9zdHJv
bmc+IE5SVy1TY2h1bGZlcmllbiB3ZXJkZW4gaW0gUGxhbnVuZ3MtSGVhZGVyIG1pdCBkZW0gU3lt
Ym9sIPCfj5bvuI8gbWFya2llcnQuIEhpbGZ0IGJlaSBkZXIgVXJsYXVic3ZlcmdhYmUgdW5kIEJl
c2V0enVuZ3NwbGFudW5nLCBiZXNvbmRlcnMgYmVpIFBlcnNvbmFsIG1pdCBzY2h1bHBmbGljaHRp
Z2VuIEtpbmRlcm4uIDxlbT5IaW53ZWlzOjwvZW0+IEZlcmllbiB3ZXJkZW4gbmljaHQgaW4gZGVy
IFN0YXRpc3RpayBnZXNvbmRlcnQgYXVzZ2V3ZXJ0ZXQgJm1kYXNoOyBzaWUgc2luZCByZWluZSBB
bnplaWdlLUluZm9ybWF0aW9uLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cD48c3Ryb25nPkJlcmVpdHMgdm9yYmVyZWl0ZXQ6PC9zdHJvbmc+IE9mZml6aWVsbGUgTlJXLVNj
aHVsZmVyaWVuIGbDvHIgPHN0cm9uZz4yMDI2Jm5kYXNoOzIwMzA8L3N0cm9uZz4gKFF1ZWxsZTog
PGEgaHJlZj0iaHR0cHM6Ly93d3cuc2NodWxtaW5pc3Rlcml1bS5ucnciIHRhcmdldD0iX2JsYW5r
IiByZWw9Im5vb3BlbmVyIiBzdHlsZT0iY29sb3I6dmFyKC0tZmFyYmUtYWt6ZW50KSI+c2NodWxt
aW5pc3Rlcml1bS5ucnc8L2E+ICsgc2NodWxmZXJpZW4ub3JnKS4gUGx1cyBkaWUgYmV3ZWdsaWNo
ZW4gS2FybmV2YWwtRmVyaWVudGFnZSAoUm9zZW5tb250YWcvVmVpbGNoZW5kaWVuc3RhZykgZsO8
ciAyMDI2Jm5kYXNoOzIwMjkuIFRlcm1pbmUgYWIgMjAzMSBlcmfDpG56ZW4gd2lyLCBzb2JhbGQg
ZGllIE5SVy1GZXJpZW5vcmRudW5nIHNpZSBvZmZpemllbGwgZmVzdGxlZ3QuPC9wPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RmlsdGVyOjwvc3Ryb25nPiAmVXVt
bDtiZXIgZGFzIEphaHItRHJvcGRvd24gb2JlbiB3ZXJkZW4gbnVyIGRpZSBGZXJpZW4tWmVpdHIm
YXVtbDt1bWUgZGVzIGdldyZhdW1sO2hsdGVuIEphaHJlcyBhbmdlemVpZ3QuIERpZSBFaW50ciZh
dW1sO2dlIGFuZGVyZXIgSmFocmUgYmxlaWJlbiBnZXNwZWljaGVydC48L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Ba3Rpdi1Ub2dnbGU8L3N0cm9uZz4gKENo
ZWNrYm94IDxlbT7igJ5Ba3RpdiI8L2VtPik6IEVpbnplbG5lIEZlcmllbnplaXRyJmF1bWw7dW1l
IGsmb3VtbDtubmVuIHRlbXBvciZhdW1sO3IgYXVzZ2VibGVuZGV0IHdlcmRlbiwgb2huZSBnZWwm
b3VtbDtzY2h0IHp1IHdlcmRlbiAmbWRhc2g7IHouQi4gd2VubiBkaWUgTWFya2VyIGYmdXVtbDty
IGVpbiBiZXN0aW1tdGVzIEphaHIgdmVyemVycmVuLjwvcD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8cD48c3Ryb25nPlNwZWljaGVybjwvc3Ryb25nPiBlcmZvbGd0ICZ1dW1sO2Jl
ciBkZW4gQnV0dG9uIDxlbT7igJ5GZXJpZW4gc3BlaWNoZXJuIjwvZW0+IHVudGVyIGRlciBUYWJl
bGxlICZtZGFzaDsgSW5saW5lLUVkaXRzIHdlcmRlbiBuaWNodCBhdXRvbS4gcGVyc2lzdGllcnQu
PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZmVyaWVu
LWZpbHRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTRweDthbGlnbi1pdGVtczpjZW50ZXI7
bWFyZ2luOjhweCAwIDEycHg7cGFkZGluZzo4cHggMTJweDtiYWNrZ3JvdW5kOnZhcigtLWJnLWNh
cmQtYWx0KTtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1s
aWdodCk7Zm9udC1zaXplOjEycHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVs
IHN0eWxlPSJmb250LXdlaWdodDo2MDAiPkphaHI6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHNlbGVjdCBpZD0iZmVyLWZpbHRlci1qYWhyIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5
bGU9ImZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6M3B4IDZweDttYXJnaW4tbGVmdDo0cHgiPjwvc2Vs
ZWN0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGlkPSJmZXItZmlsdGVyLWluZm8iIHN0eWxlPSJtYXJnaW4tbGVm
dDphdXRvO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZToxMXB4Ij48L3NwYW4+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8dGFi
bGUgY2xhc3M9ImFkbWluLXRhYmVsbGUiIGlkPSJmZXJpZW4tdGFiZWxsZSI+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8dGhlYWQ+PHRyPjx0aCBzdHlsZT0id2lkdGg6MTE1cHgiPlZvbjwv
dGg+PHRoIHN0eWxlPSJ3aWR0aDoxMTVweCI+QmlzPC90aD48dGg+QmV6ZWljaG51bmc8L3RoPjx0
aCBzdHlsZT0id2lkdGg6NzBweDt0ZXh0LWFsaWduOmNlbnRlciI+QWt0aXY8L3RoPjx0aCBzdHls
ZT0id2lkdGg6NjBweCI+QWt0aW9uPC90aD48L3RyPjwvdGhlYWQ+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8dGJvZHkgaWQ9ImZlcmllbi10Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0i
YnRuLWZlcmllbi1zcGVpY2hlcm4iIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJn
aW4tdG9wOjEycHgiPkZlcmllbiBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg
ICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAgICAgIDxociBzdHlsZT0ibWFyZ2luOjI0cHgg
MDtib3JkZXI6bm9uZTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpIj4K
CiAgICAgICAgICAgICAgICAgICAgPCEtLSBVbnRlcnNla3Rpb246IEJlc3ByZWNodW5ncy1Wb3Js
YWdlbiAoenV2b3IgZWlnZW5lciBUYWIsIDIwMjYtMDUtMDUgaGllciBpbnRlZ3JpZXJ0KSAtLT4K
ICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0idGVybWluZS1zdWIiPgogICAgICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIiBzdHlsZT0ibWFyZ2luLXRv
cDowIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT0ibWFyZ2luOjA7Zm9u
dC1zaXplOjE1cHgiPkJlc3ByZWNodW5ncy1Wb3JsYWdlbjwvaDM+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tdm9ybGFnZS1uZXUiIGNsYXNzPSJidG4gYnRuLWVy
Zm9sZyI+KyBOZXVlIFZvcmxhZ2U8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBk
YXRhLWluZm8ta2V5PSJ2b3JsYWdlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Vt
bWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+SGlud2Vpc2UgenUg
ZGVuIEJlc3ByZWNodW5ncy1Wb3JsYWdlbjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5B
dWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXMgc2luZCBWb3JsYWdlbj88L3N0cm9uZz4gV2ll
ZGVya2VocmVuZGUgQmVzcHJlY2h1bmdzLS9UZXJtaW4tVGV4dGUgbWl0IHZvcmRlZmluaWVydGVt
IFRpdGVsIHVuZCB2b3Jmb3JtYXRpZXJ0ZW0gU3RhbmRhcmR0ZXh0IOKAlCB6LkIuIOKAnkEgREdM
Iiwg4oCeQkNNIiwg4oCeUEVLIFZvcnRyYWciLiBTcGFydCBUaXBwYXJiZWl0IGJlaW0gQW5sZWdl
biBow6R1ZmlnZXIgSGlud2Vpc2UuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPjxzdHJvbmc+V28gd2VyZGVuIGRpZSBnZW51dHp0Pzwvc3Ryb25nPiBCZWltIEtsaWNrIGF1
ZiA8ZW0+4oCeKyBOZXVlciBIaW53ZWlzIjwvZW0+IGluIGRlciA8c3Ryb25nPlNvbmRlcnRlcm1p
bmU8L3N0cm9uZz4tU2VrdGlvbiAob2JlbiBpbiBkaWVzZW0gVGFiKSBlcnNjaGVpbnQgaW0gTW9k
YWwgZGFzIERyb3Bkb3duIDxlbT7igJ5BdXMgVm9ybGFnZSDDvGJlcm5laG1lbiI8L2VtPi4gQmVp
bSBBdXN3w6RobGVuIHdlcmRlbiA8Yj5UaXRlbDwvYj4gdW5kIDxiPlRleHQ8L2I+IGF1cyBkZXIg
Vm9ybGFnZSDDvGJlcm5vbW1lbiDigJQgRGF0dW0sIEljb24sIEthdGVnb3JpZSwgVHlwIHVuZCBX
YXJubW9kdXMgd2VyZGVuIGRhbmFjaCBwcm8gSGlud2VpcyBpbmRpdmlkdWVsbCBnZXNldHp0LiBC
ZXJlaXRzIGdldGlwcHRlciBUZXh0IHdpcmQgPGI+bmljaHQ8L2I+IMO8YmVyc2NocmllYmVuLjwv
cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkFrdGl2LVRvZ2ds
ZTo8L3N0cm9uZz4gSW5ha3RpdmUgVm9ybGFnZW4gYmxlaWJlbiBpbiBkZXIgVGFiZWxsZSBnZXNw
ZWljaGVydCwgd2VyZGVuIGFiZXIgbmljaHQgbWVociBpbSBNb2RhbC1Ecm9wZG93biBhbmdlYm90
ZW4g4oCUIGlkZWFsIHVtIHNhaXNvbmFsZSBWb3JsYWdlbiB0ZW1wb3LDpHIgYXVzenVibGVuZGVu
LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkJlaW0gQmVh
cmJlaXRlbjwvc3Ryb25nPiBlaW5lcyBiZXJlaXRzIGFuZ2VsZWd0ZW4gSGlud2Vpc2VzIHdpcmQg
ZGVyIFZvcmxhZ2VuLVBpY2tlciBuaWNodCBhbmdlemVpZ3QgKHfDvHJkZSBzb25zdCBiZXN0ZWhl
bmRlIEluaGFsdGUgw7xiZXJzY2hyZWliZW4pLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9InZvcmxhZ2VuLXRh
YmVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHRoIHN0eWxlPSJ3aWR0aDo0MHB4Ij4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHRoPlRpdGVsPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHRoPlN0YW5kYXJkdGV4dCAoVm9yc2NoYXUpPC90aD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo4MHB4O3RleHQtYWxpZ246Y2VudGVy
Ij5Ba3RpdjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHls
ZT0id2lkdGg6MTYwcHg7dGV4dC1hbGlnbjpyaWdodCI+QWt0aW9uZW48L3RoPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJ2b3JsYWdlbi10
Ym9keSI+PC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAg
ICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAg
ICAgICA8IS0tIFRhYjogU2NoaWNodGNvZGVzICYgRmFyYmNvZGllcnVuZyAtLT4KICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc2No
aWNodGNvZGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlNjaGljaHRjb2RlcyAmYW1wOyBGYXJiY29kaWVy
dW5nPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNjaGljaHRj
b2RlLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj4rIE5ldWVyIFNjaGljaHRjb2RlPC9idXR0
b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRldGFp
bHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9InNjaGljaHRjb2RlcyIgb3Blbj4K
ICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8t
Y2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IFNjaGljaHRjb2RlcyAmYW1wOyBGYXJiY29kaWVy
dW5nPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48
L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p
bi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXMg
aXN0IGVpbiBTY2hpY2h0Y29kZT88L3N0cm9uZz4gRWluIFNjaGljaHRjb2RlIGlzdCBlaW4gS8O8
cnplbCwgZGFzIGVpbmVuIGJlc3RpbW10ZW4gRGllbnN0LCBlaW5lIEFid2VzZW5oZWl0IG9kZXIg
ZWluZW4gYmVzb25kZXJlbiBTdGF0dXMgZWluZXMgTWl0YXJiZWl0ZXJzIGFuIGVpbmVtIFRhZyBi
ZXNjaHJlaWJ0LiBKZWRlciBDb2RlIGhhdCBlaW5lIDxiPkZhcmJjb2RpZXJ1bmc8L2I+IChIaW50
ZXJncnVuZCArIFNjaHJpZnRmYXJiZSksIGRpZSBpbSBQbGFudW5nc3Jhc3RlciBkaXJla3QgYWJs
ZXNiYXIgaXN0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RkxE
LVNjaGljaHRjb2RlcyAoUG9saXplaS1TdGFuZGFyZCk6PC9zdHJvbmc+PC9wPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxs
aT48Yj5GcsO8aGRpZW5zdDwvYj4gKEdlbGIpOiA8Y29kZT5GPC9jb2RlPiDCtyA8Y29kZT5GL0E8
L2NvZGU+IMK3IDxjb2RlPkYvQjwvY29kZT4gwrcgPGNvZGU+Ri9DPC9jb2RlPiDCtyBTY2hpY2h0
bGVpdHVuZyBGcsO8aDogPGNvZGU+Rkw8L2NvZGU+PC9saT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bGk+PGI+U3DDpHRkaWVuc3Q8L2I+IChHcsO8bik6IDxjb2RlPlM8L2NvZGU+
IMK3IDxjb2RlPlMvQTwvY29kZT4gwrcgPGNvZGU+Uy9CPC9jb2RlPiDCtyA8Y29kZT5TL0M8L2Nv
ZGU+IMK3IFNjaGljaHRsZWl0dW5nIFNww6R0OiA8Y29kZT5TTDwvY29kZT48L2xpPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5OYWNodGRpZW5zdDwvYj4gKEJsYXUpOiA8
Y29kZT5OPC9jb2RlPiDCtyA8Y29kZT5OL0E8L2NvZGU+IMK3IDxjb2RlPk4vQjwvY29kZT4gwrcg
PGNvZGU+Ti9DPC9jb2RlPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxp
PjxiPlNvbmRlcmRpZW5zdDo8L2I+IDxjb2RlPlNEPC9jb2RlPiwgPGNvZGU+QkFPPC9jb2RlPiwg
PGNvZGU+wqcyMTwvY29kZT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxs
aT48Yj5Gb3J0YmlsZHVuZzo8L2I+IDxjb2RlPkZCPC9jb2RlPiDCtyBFaW5zYXR6dHJhaW5pbmc6
IDxjb2RlPkVaPC9jb2RlPiDCtyBUZWlsemVpdC1GcnVlaDogPGNvZGU+VHpGPC9jb2RlPjwvbGk+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkFid2VzZW5oZWl0OjwvYj4g
PGNvZGU+VTwvY29kZT4gKFVybGF1YikgwrcgPGNvZGU+U1U8L2NvZGU+IChTb25kZXJ1cmxhdWIp
IMK3IDxjb2RlPks8L2NvZGU+IChLcmFuaykgwrcgPGNvZGU+Q29yPC9jb2RlPiAoQ29yb25hKSDC
tyA8Y29kZT5zQUJXPC9jb2RlPiAoc29uc3RpZ2UgQWJ3ZXNlbmhlaXQpIMK3IDxjb2RlPmFiZy48
L2NvZGU+IChhYmdlb3JkbmV0KTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGxpPjxiPkRpZW5zdGZyZWk6PC9iPiA8Y29kZT5kZnI8L2NvZGU+IMK3IDxjb2RlPmRmckE8L2Nv
ZGU+IChuLkEuKSDCtyA8Y29kZT5kZnJVPC9jb2RlPiAoVXJsYXViKTwvbGk+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0
cm9uZz5TcGFsdGVuIGluIGRlciDDnGJlcnNpY2h0Ojwvc3Ryb25nPjwvcD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+
PGI+RmFyYmZlbGQ8L2I+IOKAlCBWb3JzY2hhdSBkZXIgaGludGVybGVndGVuIEhpbnRlcmdydW5k
ZmFyYmUuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+Q29kZTwv
Yj4g4oCUIGRlciB0ZWNobmlzY2hlIFNjaGzDvHNzZWwgaW4gZGVyIERhdGVuaGFsdHVuZyAoei5C
LiA8Y29kZT5GPC9jb2RlPiwgPGNvZGU+Rkw8L2NvZGU+LCA8Y29kZT5LPC9jb2RlPikuPC9saT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+S8O8cnplbDwvYj4g4oCUIGRp
ZSBLdXJ6Zm9ybSwgZGllIGltIFBsYW51bmdzcmFzdGVyIGluIGRlciBaZWxsZSBhbmdlemVpZ3Qg
d2lyZC4gTWVpc3QgaWRlbnRpc2NoIG1pdCBkZW0gQ29kZS48L2xpPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxsaT48Yj5CZXplaWNobnVuZzwvYj4g4oCUIGRlciBMYW5nbmFtZSB6
dXIgRXJsw6R1dGVydW5nICh6LkIuIOKAnkZyw7xoZGllbnN0IFNjaGljaHRsZWl0dW5nIikuPC9s
aT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8cD48c3Ryb25nPkdydXBwaWVydW5nOjwvc3Ryb25nPiBNaXQgZGVtIEF1c3dhaGxt
ZW7DvCBvYmVuIHdlY2hzZWxzdCBkdSB6d2lzY2hlbiA8Yj5OYWNoIFNjaGljaHR0eXA8L2I+IChT
dGFuZGFyZCwgZ3J1cHBpZXJ0IG5hY2ggRnLDvGgvU3DDpHQvTmFjaHQvRnJlaS9VcmxhdWIvS3Jh
bmtoZWl0L0ZvcnRiaWxkdW5nL1NvbmRlcmZvcm1lbiksIDxiPkFscGhhYmV0aXNjaCAoQ29kZSk8
L2I+LCA8Yj5BbHBoYWJldGlzY2ggKEJlemVpY2hudW5nKTwvYj4gb2RlciA8Yj5LZWluZSBHcnVw
cGllcnVuZzwvYj4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Q
ZmxlZ2UgaW0gVUk6PC9zdHJvbmc+IE1pdCA8Yj7igJ4rIE5ldWVyIFNjaGljaHRjb2RlIjwvYj4g
bGVnc3QgZHUgZWluZW4gbmV1ZW4gQ29kZSBhbi4gQXVmIGplZGUgS2FydGUga2xpY2tzdCBkdSBk
YXMgPGI+QmVhcmJlaXRlbi1TeW1ib2wgKOKcjik8L2I+LCB1bSBLw7xyemVsLCBCZXplaWNobnVu
ZywgSGludGVyZ3J1bmQtIHVuZCBTY2hyaWZ0ZmFyYmUgenUgw6RuZGVybi4gRWluZSBMaXZlLVZv
cnNjaGF1IHplaWd0IGRhcyBFcmdlYm5pcy4gR2Vsw7ZzY2h0IHdpcmQgw7xiZXIgZGVuIEzDtnNj
aGVuLUJ1dHRvbiBpbSBFZGl0LURpYWxvZyDigJQgYmVzdGVoZW5kZSBFaW50csOkZ2UgYmxlaWJl
biBlcmhhbHRlbiwgd2VyZGVuIGFiZXIgb2huZSBGYXJiZSBkYXJnZXN0ZWxsdC48L3A+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkNvZGUgLyB0ZWNobmlzY2hlciBTY2hs
w7xzc2VsOjwvc3Ryb25nPiBEZXIgQ29kZSBpc3QgZGVyIElkZW50aWZpZXIgaW4gZGVyIERhdGVu
aGFsdHVuZyB1bmQgbWl0IGFsbGVuIFBsYW51bmdzLUVpbnRyw6RnZW4gdmVya27DvHBmdC4gQmVp
bSBOZXVhbmxlZ2VuIGZyZWkgd8OkaGxiYXIsIGJlaW0gc3DDpHRlcmVuIEJlYXJiZWl0ZW4gc2No
cmVpYmdlc2Now7x0enQg4oCUIGVpbmUgw4RuZGVydW5nIHfDvHJkZSBhbGxlIGJlc3RlaGVuZGVu
IEVpbnRyw6RnZSBpbmtvbnNpc3RlbnQgbWFjaGVuLiBXZW5uIGRlciBDb2RlIHVtYmVuYW5udCB3
ZXJkZW4gbXVzczogbmV1IGFubGVnZW4sIGFsdGUgRWludHLDpGdlIG1hbnVlbGwgw6RuZGVybiwg
YWx0ZW4gQ29kZSBsw7ZzY2hlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48
c3Ryb25nPlRpcHA6PC9zdHJvbmc+IFBvbGl6ZWktU3RhbmRhcmQgaXN0IDxiPkdlbGIgPSBGcsO8
aGRpZW5zdCwgR3LDvG4gPSBTcMOkdGRpZW5zdCwgQmxhdSA9IE5hY2h0ZGllbnN0PC9iPi4gRGll
c2UgRmFyYmVuIHNpbmQgYWxzIERlZmF1bHQgaGludGVybGVndCDigJQgYmVpIMOEbmRlcnVuZyBk
YXJhdWYgYWNodGVuLCBkYXNzIFN1ZmZpeC1WYXJpYW50ZW4gKEYvQS9CL0MpIGVpbmUga29uc2lz
dGVudGUgSGVsbGlna2VpdHNhYnN0dWZ1bmcgZGVyIEdydW5kZmFyYmUgYmVrb21tZW4uPC9wPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFp
bHM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic2NoaWNodGNvZGUtdm9yc2NoYXUiPjwv
ZGl2PgogICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOjI0cHg7Zm9udC1z
aXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zdHlsZTppdGFsaWMiPgogICAg
ICAgICAgICAgICAgICAgICAgICBEaWUgS29uZmlndXJhdGlvbiBkZXIgPHN0cm9uZz5VbnRlcnN0
JnV1bWw7dHp1bmdzLU1hcmtlciAoQSAvIEIgLyBDKTwvc3Ryb25nPiBsaWVndCBzZWl0IDIwMjYt
MDUtMDUgaW0gVGFiCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJh
ZG1pbi1pbmZvLWxpbmsiIGRhdGEtZ290by1hZG1pbi10YWI9InRhZ2VzbGFnZSIgc3R5bGU9ImNv
bG9yOnZhcigtLWZhcmJlLWFremVudCk7Zm9udC13ZWlnaHQ6NjAwIj5IZWFkZXI8L2E+ICZyYXJy
OyBVbnRlcnNla3Rpb24gPGVtPuKAnk1hcmtlciBBIC8gQiAvIEMiPC9lbT4uCiAgICAgICAgICAg
ICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEt
LSBUYWI6IE1lZGllbiAvIEJpbGRlci1VcGxvYWQgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLW1lZGllbiI+CiAgICAgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxoMj5NZWRpZW4tVmVyd2FsdHVuZzwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5m
by1rZXk9Im1lZGllbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNs
YXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dSBkZW4gTWVkaWVuPHNw
YW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+
PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZv
LWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Xb3p1IGRpZW50
IGRpZSBNZWRpZW4tVmVyd2FsdHVuZz88L3N0cm9uZz4gSGllciBsaWVnZW4gQmlsZGVyIHVuZCBE
YXRlaWVuLCBkaWUgaW4gU29uZGVydGVybWluZS1IaW53ZWlzZW4gKFRhYiBUZXJtaW5lKSBhbHMg
TG9nb3MgdmVyd2VuZGV0IHdlcmRlbiDigJQgei5CLiBWZXJlaW5zLUxvZ29zIGbDvHIgQlZCLUhl
aW1zcGllbGUgb2RlciBTcG9ydC1WZXJhbnN0YWx0dW5nZW4sIFN5bWJvbGUgZsO8ciBWZXJzYW1t
bHVuZ2VuLCBvZGVyIGVpbmdlbGFnZXJ0ZSBMYWdlLVBERnMuPC9wPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHA+PHN0cm9uZz5NaXRnZWxpZWZlcnRlIFN5bWJvbGUgdW5kIExvZ29zPC9z
dHJvbmc+IGF1cyA8Y29kZT4vaW1hZ2VzLzwvY29kZT4gd2VyZGVuIGJlaW0gZXJzdGVuIEF1ZnJ1
ZiBlaW5tYWxpZyBpbiBkaWUgTWVkaWVuLURhdGVuYmFuayBpbXBvcnRpZXJ0ICh+NjAgRWludHLD
pGdlKTogPHN0cm9uZz5GdcOfYmFsbDwvc3Ryb25nPiAoQnVuZGVzbGlnYS1WZXJlaW5zbG9nb3Mp
LCA8c3Ryb25nPlNwb3J0PC9zdHJvbmc+LCA8c3Ryb25nPlZlcnNhbW1sdW5nICZhbXA7IEV2ZW50
czwvc3Ryb25nPiwgPHN0cm9uZz5PZmZpY2U8L3N0cm9uZz4gdW5kIGFsbGdlbWVpbmUgPHN0cm9u
Zz5JY29uczwvc3Ryb25nPi4gRGllc2UgRWludHLDpGdlIHNpbmQgaW0gTGlzdGluZyBtaXQgZWlu
ZW0gZGV6ZW50ZW4gPGNvZGU+U1lTPC9jb2RlPi1CYWRnZSBnZWtlbm56ZWljaG5ldCwgbGFzc2Vu
IHNpY2ggYWJlciBnZW5hdXNvIHdpZSBlaWdlbmUgVXBsb2FkcyB1bWJlbmVubmVuLCBpbiBlaW5l
IGFuZGVyZSBLYXRlZ29yaWUgdmVyc2NoaWViZW4gb2RlciBsw7ZzY2hlbi4gRGllIE9yaWdpbmFs
LURhdGVpIGluIDxjb2RlPi9pbWFnZXMvPC9jb2RlPiBibGVpYnQgYmVpbSDigJ5Mw7ZzY2hlbiIg
ZXJoYWx0ZW4g4oCUIGVudGZlcm50IHdpcmQgbnVyIGRlciBEYXRlbmJhbmstRWludHJhZy48L3A+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkVpZ2VuZSBVcGxvYWRzPC9z
dHJvbmc+IGtvbW1lbiDDvGJlciBkYXMgRm9ybXVsYXIgb2Jlbi4gSW5zZ2VzYW10IGdpYnQgZXMg
PHN0cm9uZz45IEthdGVnb3JpZW48L3N0cm9uZz46IDUgdm9yYmVsZWd0ZSAoRnXDn2JhbGwgwrcg
U3BvcnQgwrcgVmVyc2FtbWx1bmcgJmFtcDsgRXZlbnRzIMK3IE9mZmljZSDCtyBJY29ucykgcGx1
cyA0IFNhbW1lbHNjaHVibGFkZW4gKEV2ZW50cyDCtyBQREYgwrcgQkFPIMK3IFNvbnN0aWdlcyku
PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5FcmxhdWJ0ZSBEYXRl
aXR5cGVuOjwvc3Ryb25nPiBQTkcsIEpQRUcsIEdJRiwgV2ViUCwgU1ZHLCBQREYuIDxzdHJvbmc+
TWF4aW1hbGdyw7bDn2U6PC9zdHJvbmc+IDUgTUIgcHJvIERhdGVpLjwvcD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+VmVyd2FsdHVuZzo8L3N0cm9uZz4gVmVyc2NoaWVi
ZW4gendpc2NoZW4gS2F0ZWdvcmllbiBwZXIgRHJhZyAmYW1wOyBEcm9wLiBCZXplaWNobnVuZyB1
bmQgTMO2c2NoZW4gw7xiZXIgZGllIEJ1dHRvbnMgYW4gamVkZXIgS2FydGUuIFNvcnRpZXJ1bmcg
aW5uZXJoYWxiIGVpbmVyIEthdGVnb3JpZSBhbHBoYWJldGlzY2ggbmFjaCBCZXplaWNobnVuZy48
L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNwZWljaGVyb3J0IGVp
Z2VuZXIgVXBsb2Fkczo8L3N0cm9uZz4gV2VubiBkZXIgT3JkbmVyIDxjb2RlPi9pbWFnZXMvJmx0
O2thdGVnb3JpZSZndDsvPC9jb2RlPiBleGlzdGllcnQgKHouQi4gPGNvZGU+ZnVzc2JhbGw8L2Nv
ZGU+KSwgd2lyZCBkaWUgRGF0ZWkgZG9ydGhpbiBnZXNjaHJpZWJlbiB1bmQgaXN0IHNvZm9ydCBh
bHMgc3RhdGlzY2hlcyBBc3NldCBhdXNsaWVmZXJiYXIuIFNvbnN0IEZhbGxiYWNrIG5hY2ggPGNv
ZGU+ZGF0YS9tZWRpZW4vJmx0O2thdGVnb3JpZSZndDsvPC9jb2RlPi48L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KCiAgICAg
ICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJtZWRpZW4tdXBsb2FkIiBzdHlsZT0ibWFy
Z2luLWJvdHRvbToxNnB4O3BhZGRpbmc6MTJweCAxNHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0t
Ym9yZGVyLWxpZ2h0KTtib3JkZXItcmFkaXVzOjRweCI+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxsZWdlbmQgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjAg
NnB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KSI+TmV1ZSBEYXRlaSBob2NobGFkZW48L2xl
Z2VuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpncmlkO2dy
aWQtdGVtcGxhdGUtY29sdW1uczoxLjVmciAxZnIgMWZyIGF1dG87Z2FwOjhweDthbGlnbi1pdGVt
czplbmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVw
cGUiIHN0eWxlPSJtYXJnaW46MCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxh
YmVsIGZvcj0ibWVkaWVuLWJlemVpY2hudW5nIj5CZXplaWNobnVuZzwvbGFiZWw+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJtZWRpZW4tYmV6
ZWljaG51bmciIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRlcj0iei5CLiBGQyBCYXllcm4g
TcO8bmNoZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9Im1hcmdpbjow
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJtZWRpZW4ta2F0
ZWdvcmllIj5LYXRlZ29yaWU8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxzZWxlY3QgaWQ9Im1lZGllbi1rYXRlZ29yaWUiIGNsYXNzPSJmb3JtLWlucHV0Ij4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZnVzc2JhbGwiPkZ1
w59iYWxsIChWZXJlaW5zbG9nb3MpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxvcHRpb24gdmFsdWU9InNwb3J0Ij5TcG9ydDwvb3B0aW9uPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJvZmZpY2UiPk9mZmljZSAo
VmVyd2FsdHVuZyk8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PG9wdGlvbiB2YWx1ZT0icG9saXplaSI+UG9saXplaSAoRWluc2F0eiAvIExhZ2UpPC9vcHRpb24+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Im1pc2Mi
PkFsbGdlbWVpbmUgU3ltYm9sZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8b3B0aW9uIHZhbHVlPSJldmVudHMiPkV2ZW50czwvb3B0aW9uPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJwZGYiPlBERiAvIERva3Vt
ZW50ZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9u
IHZhbHVlPSJiYW8iPkJBTyAvIExhZ2ViaWxkZXI8L29wdGlvbj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic29uc3RpZ2VzIiBzZWxlY3RlZD5Tb25z
dGlnZXM8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiIHN0eWxlPSJtYXJnaW46MCI+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWVkaWVuLWRhdGVpIj5EYXRlaTwv
bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUi
IGlkPSJtZWRpZW4tZGF0ZWkiIGFjY2VwdD0iaW1hZ2UvcG5nLGltYWdlL2pwZWcsaW1hZ2UvZ2lm
LGltYWdlL3dlYnAsaW1hZ2Uvc3ZnK3htbCxhcHBsaWNhdGlvbi9wZGYiIGNsYXNzPSJmb3JtLWlu
cHV0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLW1lZGllbi11cGxvYWQiIGNsYXNzPSJidG4gYnRu
LXByaW1hZXIiIHR5cGU9ImJ1dHRvbiIgZGlzYWJsZWQ+SG9jaGxhZGVuPC9idXR0b24+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwg
c3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo2
cHgiPkJlemVpY2hudW5nIHdpcmQgw7xiZXJub21tZW4gd2llIGVpbmdldHJhZ2VuIOKAlCBkaWUg
YWxwaGFiZXRpc2NoZSBTb3J0aWVydW5nIGZvbGd0IGRpZXNlbSBUZXh0Ljwvc21hbGw+CiAgICAg
ICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i
bWVkaWVuLWFra29yZGVvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gd2lyZCB6dXIg
TGF1ZnplaXQgYmVmw7xsbHQ6IDUgU2VrdGlvbmVuLCBlaW5lIHBybyBLYXRlZ29yaWUgLS0+CiAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAg
ICAgICAgICA8IS0tIFRhYjogSW5mb3JtYXRpb24gJiBIaWxmZSAoRi40LUMpIC0tPgogICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1p
bmZvIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGgyPkluZm9ybWF0aW9uICZhbXA7IEhpbGZlPC9oMj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWluZm8tc3BlaWNoZXJuIiBjbGFzcz0i
YnRuIGJ0bi1wcmltYWVyIj5BbGxlIFRleHRlIHNwZWljaGVybjwvYnV0dG9uPgogICAgICAgICAg
ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1p
bi1pbmZvIiBkYXRhLWluZm8ta2V5PSJpbmZvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1
bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1
IEluZm9ybWF0aW9uICZhbXA7IEhpbGZlPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1
ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHA+PHN0cm9uZz5XYXMgd2lyZCBoaWVyIGdlcGZsZWd0Pzwvc3Ryb25nPiBGJnV1bWw7
bmYgVGV4dGJsJm91bWw7Y2tlLCBkaWUgZGFzIEluZm9ybWF0aW9ucy1Nb2RhbCAoJiM4NDcwOy1C
dXR0b24gb2JlbiByZWNodHMpIHVuZCBkYXMgQXV0by1TaHV0ZG93bi1Nb2RhbCBiZWbDvGxsZW4u
IEplZGVyIEJsb2NrIGhhdCBlaW5lbiBlaWdlbmVuIE1pbmktRWRpdG9yIG1pdCBGb3JtYXRpZXJ1
bmcgKEZldHQsIEt1cnNpdiwgVW50ZXJzdHJpY2hlbiwgTGlzdGVuLCBFaW5yJnV1bWw7Y2tlbiku
PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT48Yj5JbmZvdGV4dDwvYj4gJm1kYXNoOyBCZWdyJnV1bWw7JnN6bGln
O3VuZ3MtL0Vya2wmYXVtbDtydW5ncy1UZXh0IG9iZW4gaW0gSW5mby1Nb2RhbC48L2xpPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5TdXBwb3J0LUluZm88L2I+ICZtZGFz
aDsgSGlud2Vpcy1LYXJ0ZSDigJ5BbnNwcmVjaHBhcnRuZXIgYmVpIEZyYWdlbiB6dXIgQXBwIi48
L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5TY2hsaWUmc3psaWc7
LUluZm88L2I+ICZtZGFzaDsgVGV4dCBpbSBBdXRvLVNodXRkb3duLU1vZGFsOyBQbGF0emhhbHRl
ciA8Y29kZT57bWludXRlbn08L2NvZGU+IHdpcmQgZHVyY2ggZGllIGluIGRlbiBFaW5zdGVsbHVu
Z2VuIGtvbmZpZ3VyaWVydGUgU2NobGllJnN6bGlnO3plaXQgZXJzZXR6dC48L2xpPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5BbGxnZW1laW5lIEhpbGZlPC9iPiAmbWRh
c2g7IEVya2wmYXVtbDtydW5nIGRlciBIYXVwdGZ1bmt0aW9uZW4gdW5kIFdvcmtmbG93cy48L2xp
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5CZWRpZW51bmc8L2I+ICZt
ZGFzaDsgVGlwcC1MaXN0ZSBpbSBJbmZvLU1vZGFsIChUYXN0YXR1ci1LJnV1bWw7cnplbCwgS2xp
Y2stVmVyaGFsdGVuKTsgYmVpbSBlcnN0ZW4gJk91bWw7ZmZuZW4gbWl0IGVpbmVtIERlZmF1bHQt
VGV4dCB2b3JiZWYmdXVtbDtsbHQuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNwZWljaGVybjo8L3N0
cm9uZz4gRGVyIEJ1dHRvbiA8ZW0+4oCeQWxsZSBUZXh0ZSBzcGVpY2hlcm4iPC9lbT4gb2JlbiAm
dXVtbDtiZXJuaW1tdCBhbGxlIGYmdXVtbDtuZiBCbCZvdW1sO2NrZSBnZW1laW5zYW0uIEVzIGlz
dCA8Yj5rZWluPC9iPiBBdXRvLVNhdmUgJm1kYXNoOyBvaG5lIEtsaWNrIGF1ZiBTcGVpY2hlcm4g
Z2VoZW4gJkF1bWw7bmRlcnVuZ2VuIGJlaW0gVGFiLVdlY2hzZWwgdmVybG9yZW4uPC9wPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5BbnNwcmVjaHBhcnRuZXItVm9yc2No
YXU8L3N0cm9uZz4gZ2FueiB1bnRlbiB6ZWlndCBkaWUgYWt0dWVsbGUgU3VwZXJVc2VyLUxpc3Rl
LCB3aWUgc2llIGltIEluZm8tTW9kYWwgZXJzY2hlaW50LiBCZWFyYmVpdGV0IHdpcmQgZGllIExp
c3RlIGltIFRhYiA8ZW0+Um9sbGVuICZhbXA7IEJlcmVjaHRpZ3VuZ2VuPC9lbT4gJnJhcnI7IEFu
c3ByZWNocGFydG5lci48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg
ICAgICAgICAgICAgIDwvZGV0YWlscz4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i
aW5mby1ydGUtYmxvY2siIGRhdGEtZmVsZD0iaW5mb3RleHQiPgogICAgICAgICAgICAgICAgICAg
ICAgICA8aDM+SW5mb3RleHQ8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0i
cnRlLWhpbnQiPkVyc2NoZWludCBpbSBJbmZvcm1hdGlvbnMtTW9kYWwgb2JlbiAoSGVhZGVyLUJl
cmVpY2gg4oCeSW5mb3JtYXRpb24gJmFtcDsgSGlsZmUiLUJ1dHRvbikuPC9wPgogICAgICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJydGUtdG9vbGJhciI+PC9kaXY+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJ0ZS1lZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT0idHJ1
ZSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImluZm8tcnRlLWJsb2NrIiBkYXRhLWZlbGQ9InN1cHBvcnRpbmZvIj4KICAg
ICAgICAgICAgICAgICAgICAgICAgPGgzPlN1cHBvcnQtSW5mbyAoQW5zcHJlY2hwYXJ0bmVyKTwv
aDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJydGUtaGludCI+RXJzY2hlaW50
IGltIEluZm9ybWF0aW9ucy1Nb2RhbCBhbHMgU3VwcG9ydC1LYXJ0ZS4gQW5zcHJlY2hwYXJ0bmVy
IGJlaSBGcmFnZW4genVyIEFwcC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9InJ0ZS10b29sYmFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0icnRlLWVkaXRvciIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgICAg
ICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ydGUt
YmxvY2siIGRhdGEtZmVsZD0ic2NobGllc3NpbmZvIj4KICAgICAgICAgICAgICAgICAgICAgICAg
PGgzPlNjaGxpZcOfLUluZm8gKEF1dG8tU2h1dGRvd24tSGlud2Vpcyk8L2gzPgogICAgICAgICAg
ICAgICAgICAgICAgICA8cCBjbGFzcz0icnRlLWhpbnQiPkVyc2NoZWludCBiZWltIFNjaGxpZcOf
LUhpbndlaXMtTW9kYWwuIFBsYXR6aGFsdGVyIDxjb2RlPnttaW51dGVufTwvY29kZT4gd2lyZCBk
dXJjaCBkaWUgU2NobGllw596ZWl0IGVyc2V0enQuPC9wPgogICAgICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJydGUtdG9vbGJhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9InJ0ZS1lZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC9kaXY+CiAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImluZm8tcnRlLWJsb2NrIiBkYXRhLWZlbGQ9ImFsbGdlbWVpbmVIaWxmZSI+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDxoMz5BbGxnZW1laW5lIEhpbGZlPC9oMz4KICAgICAgICAgICAgICAgICAg
ICAgICAgPHAgY2xhc3M9InJ0ZS1oaW50Ij5CZXNjaHJlaWJ1bmcgZGVyIEhhdXB0ZnVua3Rpb25l
biB1bmQgV29ya2Zsb3dzLiBFcnNjaGVpbnQgaW0gSW5mb3JtYXRpb25zLU1vZGFsIGFscyBIaWxm
ZS1LYXJ0ZS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJ0ZS10b29s
YmFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icnRlLWVkaXRv
ciIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rp
dj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ydGUtYmxvY2siIGRhdGEt
ZmVsZD0iYmVkaWVudW5nc0hpbndlaXNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkJl
ZGllbnVuZyAoTGlzdGUgaW0gSW5mby1Nb2RhbCk8L2gzPgogICAgICAgICAgICAgICAgICAgICAg
ICA8cCBjbGFzcz0icnRlLWhpbnQiPkVyc2NoZWludCBpbSBJbmZvcm1hdGlvbnMtTW9kYWwgdW50
ZXIgZGVyIMOcYmVyc2NocmlmdCDigJ5CZWRpZW51bmciLiBTdGFuZGFyZC1UZXh0IGlzdCBiZWlt
IGVyc3RlbiDDlmZmbmVuIHZvcmJlZsO8bGx0IOKAlCBhbnBhc3NlbiBvZGVyIG1pdCBkZW0gQnV0
dG9uIHVudGVuIHp1csO8Y2tzZXR6ZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJydGUtdG9vbGJhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9InJ0ZS1lZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC9kaXY+CiAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdp
bi10b3A6MjRweDtwYWRkaW5nLXRvcDoxOHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJv
cmRlci1saWdodCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDM+QW5zcHJlY2hwYXJ0bmVy
IGltIEluZm8tTW9kYWw8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icnRl
LWhpbnQiPkRpZXNlIExpc3RlIHplaWd0LCB3ZXIgaW0gSW5mb3JtYXRpb25zZmVuc3RlciAo4oS5
LUJ1dHRvbiBvYmVuIHJlY2h0cykgYWxzIEFuc3ByZWNocGFydG5lciBhdWZnZWbDvGhydCB3aXJk
LiBCZWFyYmVpdGVuIHVudGVyIDxhIGhyZWY9IiMiIGRhdGEtZ290by1hZG1pbi10YWI9InN1cGVy
dXNlciIgc3R5bGU9ImNvbG9yOnZhcigtLWZhcmJlLWFremVudCk7Zm9udC13ZWlnaHQ6NjAwIj5B
bnNwcmVjaHBhcnRuZXI8L2E+LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i
aW5mby1hbnNwcmVjaHBhcnRuZXItdm9yc2NoYXUiPjwvZGl2PgogICAgICAgICAgICAgICAgICAg
IDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6
IEVpbnN0ZWxsdW5nZW4gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIg
dmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWVpbnN0ZWxsdW5nZW4iPgogICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+
R2xvYmFsZSBFaW5zdGVsbHVuZ2VuPC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg
ICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtl
eT0iZWluc3RlbGx1bmdlbiIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+
PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1IGRlbiBn
bG9iYWxlbiBFaW5zdGVsbHVuZ2VuPHNwYW4gY2xhc3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1Zmts
YXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHA+PHN0cm9uZz5CcmFuZGluZzwvc3Ryb25nPiAoTmFtZSwgS3VyemJlemVpY2hudW5nLCBM
b2dvKTo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGxpPjxiPk5hbWUgZGVyIFBsYW51bmc8L2I+ICZtZGFzaDsgQnJv
d3Nlci1UaXRlbCwgSGVhZGVyIG9iZW4gbGlua3MgdW5kIEZ1JnN6bGlnO3plaWxlbi1IaW53ZWlz
ZSAoRGVmYXVsdDogPGVtPkZMRC1QbGFudW5nPC9lbT4pLjwvbGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGxpPjxiPkt1cnpiZXplaWNobnVuZzwvYj4gJm1kYXNoOyBtYXguIDEw
IFplaWNoZW4sIGYmdXVtbDtyIExvZ3MgdW5kIEUtTWFpbC1CZXRyZWZmLjwvbGk+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkVpZ2VuZXMgTG9nbzwvYj4gJm1kYXNoOyBQ
TkcvSlBHL1NWRy9XZWJQLCBtYXguIDEwMCZuYnNwO0tCOyB3aXJkIEJhc2U2NCBpbiA8Y29kZT5h
ZG1pbi5qc29uPC9jb2RlPiBnZXNwZWljaGVydCB1bmQgZXJzZXR6dCBkYXMgRGVmYXVsdC1GTEQt
UXVhZHJhdCBpbSBIZWFkZXIuIEgmb3VtbDtoZSAyNCZuZGFzaDsxMjAmbmJzcDtweCBrb25maWd1
cmllcmJhci48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+UGxhbnVuZ3NqYWhyOjwvc3Ryb25nPiBEYXMg
SmFociwgZiZ1dW1sO3IgZGFzIGRpZSBQbGFudW5nIGFrdHVlbGwgZ2VwZmxlZ3Qgd2lyZC4gQmVl
aW5mbHVzc3QgZGllIEdlYnVydHN0YWctQW56ZWlnZSAocmVjaG5ldCBBbHRlciBhdXMgZGllc2Vt
IEphaHIpIHVuZCBkaWUgVm9yc2NobCZhdW1sO2dlIGJlaW0gQW5sZWdlbiB2b24gRmVpZXJ0YWdl
bi9GZXJpZW4uIERlciBCdXR0b24gPGVtPuKAnkphaHJlc3dlY2hzZWwgYXVmIEZvbGdlamFociI8
L2VtPiBzcHJpbmd0IGVpbnMgd2VpdGVyIHVuZCBuaW1tdCBpbSBCdWZmZXItSmFudWFyIGJlcmVp
dHMgZ2VwbGFudGUgRGllbnN0ZSBtaXQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHA+PHN0cm9uZz5TY2hsaWXDn3plaXQgbmFjaCBJbmFrdGl2aXTDpHQ6PC9zdHJvbmc+IERlciBs
b2thbGUgU2VydmVyIGJlZW5kZXQgc2ljaCBuYWNoIE4gTWludXRlbiBvaG5lIEhlYXJ0YmVhdCB2
b20gQnJvd3NlciAmbWRhc2g7IGRhbWl0IGVyIG5pY2h0IG51dHpsb3MgYXVmIE5ldHpsYXVmd2Vy
a2VuL0NsaWVudHMgbCZhdW1sO3VmdCwgd2VubiBkZXIgVGFiIGdlc2NobG9zc2VuIHd1cmRlLiA8
ZW0+RW1wZmVobHVuZzo8L2VtPiAzMCZuZGFzaDs2MCBNaW51dGVuLjwvcD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RXJpbm5lcnVuZyBhbiBBYnNjaGx1c3MtL1BlcnNw
ZWt0aXZnZXNwciZhdW1sO2NoZTo8L3N0cm9uZz4gVm9ybGF1ZiBpbiBUYWdlbiAoRGVmYXVsdCAx
NCksIFNub296ZS1JbnRlcnZhbGwgKERlZmF1bHQgMyksIFN0YW5kYXJkLUhpbndlaXN0ZXh0IG1p
dCBQbGF0emhhbHRlcm4gPGNvZGU+e3BlcnNvbn08L2NvZGU+IMK3IDxjb2RlPntlbmRkYXR1bX08
L2NvZGU+IMK3IDxjb2RlPntub3Rpen08L2NvZGU+LiBQbG9wcHQgZiZ1dW1sO3IgREdMIHVuZCAx
LiZuYnNwO0VCIGF1Ziwgc29iYWxkIGRhcyBFbmRkYXR1bSBlaW5lciBiZWZyaXN0ZXRlbiBQZXJz
b24gbiZhdW1sO2hlciByJnV1bWw7Y2t0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPjxzdHJvbmc+VmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXIgKFBsYW51bmdzYmVzY2hyJmF1bWw7
bmt1bmcpOjwvc3Ryb25nPiBCZXN0aW1tdCBhYiB3ZWxjaGVtIFN0aWNodGFnIHJlZ3VsJmF1bWw7
cmUgVXNlciBkaWUgUGxhbnVuZyAmYXVtbDtuZGVybiBkJnV1bWw7cmZlbi4gU3VwZXJVc2VyIHVu
ZCBGYWNoYXVmc2ljaHQgc2luZCBuaWNodCBlaW5nZXNjaHImYXVtbDtua3Q7IHZlcmdhbmdlbmUg
VGFnZSB3ZXJkZW4gbmllIHZlciZhdW1sO25kZXJ0LiBWb3JsYXVmIGluIFRhZ2VuIG9kZXIgV29j
aGVuIGFiIFN0aWNodGFnIChXb2NoZW5zdGFydCBrb25maWd1cmllcmJhcikuIFdlbm4gZGVha3Rp
dmllcnQ6IGFsbGUgVXNlciBkJnV1bWw7cmZlbiBhbGxlIFRhZ2UgYmVhcmJlaXRlbi48L3A+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldvY2hlbnBsYW4tRHJ1Y2thbnNp
Y2h0IChIZWFkZXIpOjwvc3Ryb25nPiBEaWVuc3RzdGVsbGUgLyBCZWgmb3VtbDtyZGUsIERydWNr
LVRpdGVsIHVuZCBMb2dvLVNjaGFsdGVyIGVyc2NoZWluZW4gaW0gV29jaGVucGxhbi1EcnVja2tv
cGYuIFBybyBJbnN0YW56IGFucGFzc2Jhci48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8cD48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERlciBlaWdlbnRsaWNoZSBJbmhhbHQgdm9u
IEluZm90ZXh0LCBTdXBwb3J0aW5mbywgU2NobGllJnN6bGlnO2luZm8sIGFsbGdlbWVpbmVyIEhp
bGZlIHVuZCBCZWRpZW51bmdzLUxpc3RlIHdpcmQgaW0gVGFiIDxlbT5JbmZvcm1hdGlvbiAmYW1w
OyBIaWxmZTwvZW0+IG1pdCBkZW0gUmljaHRleHQtRWRpdG9yIGdlcGZsZWd0LjwvcD4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+U3BlaWNoZXJuOjwvc3Ryb25nPiAmQXVt
bDtuZGVydW5nZW4gd2VyZGVuIG51ciBkdXJjaCBkZW4gU3BlaWNoZXJuLUJ1dHRvbiAmdXVtbDti
ZXJub21tZW4uIEVpbiBSZWxvYWQgZGVyIFNlaXRlIGlzdCBkYW5hY2ggbmljaHQgbiZvdW1sO3Rp
ZyAmbWRhc2g7IGFsbGUgVGFicyBha3R1YWxpc2llcmVuIHNpY2ggYXV0b21hdGlzY2guPC9wPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFp
bHM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWluc3RlbGx1bmdlbi1mb3JtIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZWlucy1wbGFudW5nc25hbWUiPk5hbWUg
ZGVyIFBsYW51bmc8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5
cGU9InRleHQiIGlkPSJlaW5zLXBsYW51bmdzbmFtZSIgY2xhc3M9ImZvcm0taW5wdXQiIG1heGxl
bmd0aD0iNjAiIHN0eWxlPSJ3aWR0aDoxMDAlIiBwbGFjZWhvbGRlcj0iei5CLiBGTEQtUGxhbnVu
ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6Ymxv
Y2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHgiPkVyc2NoZWludCBpbSBC
cm93c2VyLVRpdGVsLCBpbSBIZWFkZXIgb2JlbiBsaW5rcyB1bmQgaW4gZGVuIEZ1w596ZWlsZW4t
SGlud2Vpc2VuLiBEZWZhdWx0OiDigJ5GTEQtUGxhbnVuZyIuPC9zbWFsbD4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZv
cm0tZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImVpbnMt
cGxhbnVuZ3NrdXJ6Ij5LdXJ6YmV6ZWljaG51bmcgKGbDvHIgTG9ncyAvIEUtTWFpbC1CZXRyZWZm
KTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIg
aWQ9ImVpbnMtcGxhbnVuZ3NrdXJ6IiBjbGFzcz0iZm9ybS1pbnB1dCIgbWF4bGVuZ3RoPSIxMCIg
c3R5bGU9IndpZHRoOjEyMHB4IiBwbGFjZWhvbGRlcj0iei5CLiBGTEQiPgogICAgICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9y
bS1ncnVwcGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkVpZ2VuZXMgTG9n
byAoSGVhZGVyKTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxl
PSJkaXNwbGF5OmZsZXg7Z2FwOjEycHg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFw
Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJlaW5zLWxvZ28tdm9y
c2NoYXUiIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29u
dGVudDpjZW50ZXI7d2lkdGg6NjBweDtoZWlnaHQ6NDBweDtiYWNrZ3JvdW5kOnZhcigtLWJnLWNh
cmQtYWx0KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1
czo0cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOjEwcHgiPmtlaW4gTG9nbzwv
ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBp
ZD0iZWlucy1sb2dvLXVwbG9hZCIgYWNjZXB0PSJpbWFnZS9wbmcsaW1hZ2UvanBlZyxpbWFnZS9z
dmcreG1sLGltYWdlL3dlYnAiIHN0eWxlPSJmb250LXNpemU6MTJweCI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWxvZ28tZW50ZmVybmVuIiB0eXBlPSJi
dXR0b24iIGNsYXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iPkxvZ28gZW50ZmVybmVuPC9idXR0
b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10ZXh0LW11
dGVkKTttYXJnaW4tdG9wOjZweCI+UE5HLCBKUEcsIFNWRyBvZGVyIFdlYlAsIG1heC4gMTAwIEtC
LiBXaXJkIGFscyBCYXNlNjQgaW4gPGNvZGU+YWRtaW4uanNvbjwvY29kZT4gZ2VzcGVpY2hlcnQg
dW5kIGVyc2V0enQgZGFzIGdvbGQtRkxELVF1YWRyYXQgaW0gSGVhZGVyLjwvc21hbGw+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjEycHg7
YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi10b3A6MTBweCI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGxhYmVsIGZvcj0iZWlucy1sb2dvLWhvZWhlIiBzdHlsZT0iZm9udC1zaXpl
OjEycHg7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbjowIj5Mb2dvLUjDtmhlOjwvbGFiZWw+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhbmdlIiBpZD0iZWlucy1s
b2dvLWhvZWhlIiBtaW49IjI0IiBtYXg9IjEyMCIgc3RlcD0iMiIgdmFsdWU9IjI4IiBzdHlsZT0i
ZmxleDoxO21heC13aWR0aDoyNDBweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImVpbnMtbG9nby1ob2VoZS1udW0iIG1pbj0iMjQiIG1h
eD0iMTIwIiBzdGVwPSIyIiB2YWx1ZT0iMjgiIHN0eWxlPSJ3aWR0aDo3MHB4O2ZvbnQtc2l6ZTox
MnB4O3BhZGRpbmc6M3B4IDZweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj5weDwvc3Bh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLXRleHQtbXV0
ZWQpO21hcmdpbi10b3A6NHB4Ij4yNOKAkzEyMCBweC4gRGVyIEhlYWRlci1CZXJlaWNoIHfDpGNo
c3QgYXV0b21hdGlzY2ggbWl0LiBMaXZlLVZvcnNjaGF1IGltIEhlYWRlciBvYmVuLjwvc21hbGw+
CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8
aHIgc3R5bGU9Im1hcmdpbjoyMHB4IDA7Ym9yZGVyOm5vbmU7Ym9yZGVyLXRvcDoxcHggc29saWQg
dmFyKC0tYm9yZGVyLWxpZ2h0KSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImZvcm0tZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImVp
bnMtamFociI+UGxhbnVuZ3NqYWhyPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTJweDthbGlnbi1pdGVtczpjZW50ZXI7Zmxl
eC13cmFwOndyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBl
PSJudW1iZXIiIGlkPSJlaW5zLWphaHIiIGNsYXNzPSJmb3JtLWlucHV0IiBtaW49IjIwMjAiIG1h
eD0iMjA5OSIgc3R5bGU9IndpZHRoOjEyMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8YnV0dG9uIGlkPSJidG4tamFocmVzd2VjaHNlbCIgY2xhc3M9ImJ0biBidG4tc2VrIiB0
eXBlPSJidXR0b24iIHRpdGxlPSJTZXR6dCBkYXMgUGxhbnVuZ3NqYWhyIGF1ZiBkYXMgRm9sZ2Vq
YWhyLiBCZXJlaXRzIGdlcGxhbnRlIERpZW5zdGUgaW0gQnVmZmVyLUphbnVhciBibGVpYmVuIHNp
Y2h0YmFyLiI+SmFocmVzd2VjaHNlbCBhdWYgRm9sZ2VqYWhyPC9idXR0b24+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFs
bCBzdHlsZT0iZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9w
OjZweCI+RGllIFBsYW51bmdzYW5zaWNodCB6ZWlndCB6dXPDpHR6bGljaCBkZW4gSmFudWFyIGRl
cyBGb2xnZWphaHJlcyBhbHMgVm9ycGxhbnVuZ3NiZXJlaWNoLiBNaXQg4oCeSmFocmVzd2VjaHNl
bCIgc3ByaW5ndCBkYXMgSmFociBlaW5zIHdlaXRlcjsgZGllIGltIEJ1ZmZlciBnZXBsYW50ZW4g
RGllbnN0ZSB3ZXJkZW4genVtIHJlZ3Vsw6RyZW4gSmFudWFyIGRlcyBuZXVlbiBKYWhyZXMuPC9z
bWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsYWJlbCBmb3I9ImVpbnMtaW5ha3Rpdml0YWV0Ij5TY2hsaWXDn3plaXQgbmFjaCBJbmFrdGl2
aXTDpHQgKE1pbnV0ZW4pPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1
dCB0eXBlPSJudW1iZXIiIGlkPSJlaW5zLWluYWt0aXZpdGFldCIgY2xhc3M9ImZvcm0taW5wdXQi
IG1pbj0iMSIgbWF4PSIyNDAiIHN0eWxlPSJ3aWR0aDoxMjBweCI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1t
dXRlZCk7bWFyZ2luLXRvcDo0cHgiPk5hY2ggd2llIHZpZWxlbiBNaW51dGVuIG9obmUgQWt0aXZp
dMOkdCBkZXIgU2VydmVyIGF1dG9tYXRpc2NoIGJlZW5kZXQgd2lyZC48L3NtYWxsPgogICAgICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9
ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbjo4cHggMCAxNnB4
O2JhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO3BhZGRpbmc6OHB4IDEycHg7Ym9yZGVyLXJh
ZGl1czo0cHg7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIHZhcigtLWZhcmJlLWluZm8pIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+SW5mb3RleHQsIFN1cHBvcnRpbmZvIHVuZCBT
Y2hsaWXDn2luZm88L3N0cm9uZz4gd2VyZGVuIGltIFRhYgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtYWRtaW4tdGFiLWxpbms9ImluZm8iIGNs
YXNzPSJsaW5rLWJ1dHRvbiIgc3R5bGU9ImJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5v
bmU7cGFkZGluZzowO2NvbG9yOnZhcigtLWZhcmJlLWluZm8pO2ZvbnQtd2VpZ2h0OjYwMDtjdXJz
b3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIj7igJ5JbmZvcm1hdGlvbiAmYW1w
OyBIaWxmZSI8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pdCBkZW0gcmVk
dXppZXJ0ZW4gUmljaHRleHQtRWRpdG9yIGdlcGZsZWd0LgogICAgICAgICAgICAgICAgICAgICAg
ICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBzdHlsZT0ibWFyZ2luLXRv
cDoxNnB4O3BhZGRpbmc6MTJweCAxNHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp
Z2h0KTtib3JkZXItcmFkaXVzOjRweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGVn
ZW5kIHN0eWxlPSJmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7cGFkZGluZzowIDZweDtj
b2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSkiPkVyaW5uZXJ1bmcgYW4gQWJzY2hsdXNzLS9QZXJz
cGVrdGl2Z2VzcHLDpGNoPC9sZWdlbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21h
bGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLWJv
dHRvbToxMHB4Ij5Tb2JhbGQgZGFzIEVuZGRhdHVtIGVpbmVyIFBlcnNvbiBuw6RoZXIgcsO8Y2t0
LCBwbG9wcHQgZsO8ciBER0wgdW5kIDEuIEVCIGVpbiBIaW53ZWlzbW9kYWwgYXVmLiBEaWVzZSBr
w7ZubmVuIGJlc3TDpHRpZ2VuICjigJ5HZXNwcsOkY2ggZ2Vmw7xocnQiKSBvZGVyIGRpZSBFcmlu
bmVydW5nIHNub296ZW4uPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
c3R5bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6OHB4
IDE2cHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0t
Z3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0i
ZWlucy1lcmlubmVydW5nLXZvcmxhdWYiPlZvcmxhdWYgaW4gVGFnZW48L2xhYmVsPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZWlu
cy1lcmlubmVydW5nLXZvcmxhdWYiIGNsYXNzPSJmb3JtLWlucHV0IiBtaW49IjEiIG1heD0iMTgw
IiBzdHlsZT0id2lkdGg6MTIwcHgiIHBsYWNlaG9sZGVyPSIxNCI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZGlzcGxheTpibG9jaztjb2xvcjp2YXIo
LS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjRweCI+RXJpbm5lcnVuZyBlcnNjaGVpbnQgWCBUYWdl
IHZvciBkZW0gRW5kZGF0dW0uIERlZmF1bHQgMTQuPC9zbWFsbD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsYWJlbCBmb3I9ImVpbnMtZXJpbm5lcnVuZy1zbm9vemUiPlNub296ZSBpbiBUYWdlbjwvbGFi
ZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1i
ZXIiIGlkPSJlaW5zLWVyaW5uZXJ1bmctc25vb3plIiBjbGFzcz0iZm9ybS1pbnB1dCIgbWluPSIx
IiBtYXg9IjYwIiBzdHlsZT0id2lkdGg6MTIwcHgiIHBsYWNlaG9sZGVyPSIzIj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2Nv
bG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6NHB4Ij5CZWkgS2xpY2sgYXVmIOKAnkVy
aW5uZXJlIG1pY2ggZXJuZXV0IiB3YXJ0ZXQgZGllIEVyaW5uZXJ1bmcgWCBUYWdlLiBEZWZhdWx0
IDMuPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUgaW5mby1ydGUtYmxvY2siIGRhdGEtZmVsZD0iZXJpbm5l
cnVuZ1N0YW5kYXJkVGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6OHB4Ij4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bGFiZWw+U3RhbmRhcmQtSGlud2Vpc3RleHQgaW0gRXJpbm5lcnVu
Z3MtTW9kYWw8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9InJ0ZS10b29sYmFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
ZGl2IGlkPSJlaW5zLWVyaW5uZXJ1bmctdGV4dCIgY2xhc3M9InJ0ZS1lZGl0b3IiIGNvbnRlbnRl
ZGl0YWJsZT0idHJ1ZSIgc3BlbGxjaGVjaz0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLXRl
eHQtbXV0ZWQpO21hcmdpbi10b3A6NHB4Ij5QbGF0emhhbHRlciA8Y29kZT57cGVyc29ufTwvY29k
ZT4sIDxjb2RlPntlbmRkYXR1bX08L2NvZGU+LCA8Y29kZT57bm90aXp9PC9jb2RlPiB3ZXJkZW4g
ZXJzZXR6dC4gUHJvLVBlcnNvbi1Ob3RpeiBpbSBCZWFyYmVpdGVuLU1vZGFsIGthbm4gZGVuIFN0
YW5kYXJkdGV4dCDDvGJlcnNjaHJlaWJlbi48L3NtYWxsPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxmaWVsZHNldCBzdHlsZT0ibWFyZ2luLXRvcDoxNnB4O3BhZGRpbmc6
MTJweCAxNHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTtib3JkZXItcmFk
aXVzOjRweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGVnZW5kIHN0eWxlPSJmb250
LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7cGFkZGluZzowIDZweDtjb2xvcjp2YXIoLS10ZXh0
LXNlY29uZGFyeSkiPlZlcmJpbmRsaWNoa2VpdHNmZW5zdGVyIChQbGFudW5nc2Jlc2NocsOkbmt1
bmcpPC9sZWdlbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRp
c3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLWJvdHRvbToxMHB4Ij5S
ZWd1bMOkcmUgVXNlciBrw7ZubmVuIGVyc3QgVGFnZSBhYiBkZW0gYmVyZWNobmV0ZW4gU3RpY2h0
YWcgYmVhcmJlaXRlbi4gSW5uZXJoYWxiIGRlcyBGZW5zdGVycyBpc3QgZGllIFBsYW51bmcgdmVy
YmluZGxpY2guIFN1cGVyVXNlciB1bmQgRmFjaGF1ZnNpY2h0IHNpbmQgbmljaHQgZWluZ2VzY2hy
w6Rua3QuIFZlcmdhbmdlbmUgVGFnZSB3ZXJkZW4gbmllIHZlcsOkbmRlcnQuPC9zbWFsbD4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBp
ZD0iZWlucy12Zi1ha3RpdiI+IFZlcmJpbmRsaWNoa2VpdHNmZW5zdGVyIGFrdGl2PC9sYWJlbD4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImRpc3BsYXk6Ymxv
Y2s7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHgiPldlbm4gZGVha3Rpdmll
cnQsIGTDvHJmZW4gYWxsZSBVc2VyIGFsbGUgVGFnZSBiZWFyYmVpdGVuLiBGYXJibGVpc3RlIGFt
IERhdHVtcy1IZWFkZXIgdmVyc2Nod2luZGV0Ljwvc21hbGw+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRp
c3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmciAxZnI7Z2FwOjhweCAxNnB4
O21hcmdpbi10b3A6OHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxs
YWJlbCBmb3I9ImVpbnMtdmYtd2VydCI+Vm9ybGF1Zi1XZXJ0PC9sYWJlbD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImVpbnMtdmYt
d2VydCIgY2xhc3M9ImZvcm0taW5wdXQiIG1pbj0iMSIgbWF4PSI1MiIgc3R5bGU9IndpZHRoOjEy
MHB4IiBwbGFjZWhvbGRlcj0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVw
cGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJlaW5z
LXZmLWVpbmhlaXQiPkVpbmhlaXQ8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8c2VsZWN0IGlkPSJlaW5zLXZmLWVpbmhlaXQiIGNsYXNzPSJmb3JtLWlucHV0IiBz
dHlsZT0id2lkdGg6MTIwcHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG9wdGlvbiB2YWx1ZT0id29jaGVuIj5Xb2NoZW48L29wdGlvbj4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InRhZ2UiPlRhZ2U8L29wdGlv
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bGFiZWwgZm9yPSJlaW5zLXZmLXdvY2hlbnN0YXJ0Ij5Xb2NoZW5zdGFydCAo
bnVyIGJlaSBFaW5oZWl0IOKAnldvY2hlbiIpPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iZWlucy12Zi13b2NoZW5zdGFydCIgY2xhc3M9ImZv
cm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxNDBweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxIj5Nb250YWc8L29wdGlvbj4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIiPkRpZW5zdGFn
PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9u
IHZhbHVlPSIzIj5NaXR0d29jaDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNCI+RG9ubmVyc3RhZzwvb3B0aW9uPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNSI+RnJlaXRh
Zzwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlv
biB2YWx1ZT0iNiI+U2Ftc3RhZzwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNyI+U29ubnRhZzwvb3B0aW9uPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2NvbG9y
OnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6OHB4Ij5CZWkgRWluaGVpdCDigJ5Xb2NoZW4i
IHrDpGhsdCBkZXIgVm9ybGF1ZiBhYiBkZW0gbsOkY2hzdGVuIFdvY2hlbnN0YXJ0LVRhZyAoei5C
LiBXZXJ0PTIsIFdvY2hlbnN0YXJ0PU1vOiBlcnN0ZXIgZnJlaWVyIFRhZyA9IG7DpGNoc3RlciBN
b250YWcgKyAxNCBUYWdlKS4gQmVpIEVpbmhlaXQg4oCeVGFnZSIgesOkaGx0IGRlciBWb3JsYXVm
IGRpcmVrdCBhYiBoZXV0ZS48L3NtYWxsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxk
c2V0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgc3R5bGU9Im1hcmdpbi10b3A6
MTZweDtwYWRkaW5nOjEycHggMTRweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdo
dCk7Ym9yZGVyLXJhZGl1czo0cHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxlZ2Vu
ZCBzdHlsZT0iZm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6MCA2cHg7Y29s
b3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpIj5Xb2NoZW5wbGFuLURydWNrYW5zaWNodCAoSGVhZGVy
KTwvbGVnZW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIHN0eWxlPSJkaXNw
bGF5OmJsb2NrO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi1ib3R0b206MTBweCI+RGll
c2UgRmVsZGVyIGVyc2NoZWluZW4gb2JlbiBpbiBkZXIgV29jaGVucGxhbi1EcnVja2Fuc2ljaHQu
IExhc3NlbiBzaWNoIHBybyBJbnN0YW56IGFucGFzc2VuLjwvc21hbGw+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1
bW5zOjFmciAxZnI7Z2FwOjhweCAxNnB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxsYWJlbCBmb3I9ImVpbnMtd3Brb3BmLWRpZW5zdHN0ZWxsZSI+RGllbnN0c3RlbGxl
IC8gQmVow7ZyZGU8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImVpbnMtd3Brb3BmLWRpZW5zdHN0ZWxsZSIgY2xhc3M9ImZv
cm0taW5wdXQiIHBsYWNlaG9sZGVyPSJ6LkIuIERpciBHRSAvIEZMRCAvIExlaXRzdGVsbGUiPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZWlucy13cGtvcGYtdGl0ZWwiPkRydWNrLVRp
dGVsPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5
cGU9InRleHQiIGlkPSJlaW5zLXdwa29wZi10aXRlbCIgY2xhc3M9ImZvcm0taW5wdXQiIHBsYWNl
aG9sZGVyPSJ6LkIuIDctVGFnZSBEaWVuc3R2b3JwbGFudW5nIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiIHN0eWxl
PSJtYXJnaW4tdG9wOjhweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVs
PjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImVpbnMtd3Brb3BmLWxvZ28iPiBMb2dvIGltIFdv
Y2hlbnBsYW4tSGVhZGVyIHplaWdlbjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHNtYWxsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQp
O21hcmdpbi10b3A6NHB4Ij5OdXR6dCBkYXMgaG9jaGdlbGFkZW5lIEN1c3RvbS1Mb2dvIChzaWVo
ZSB3ZWl0ZXIgdW50ZW4pLiBCZWkgZGVha3RpdmllcnQ6IG51ciBUZXh0LUhlYWRlci48L3NtYWxs
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p
bi1pbmZvIiBzdHlsZT0ibWFyZ2luLXRvcDoxNHB4O3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlcjox
cHggZGFzaGVkIHZhcigtLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1zaXpl
OjEycHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpIj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxzdHJvbmc+SGVhZGVyLUJlemVpY2hudW5nZW4sIEZhcmJlbiAmYW1wOyBTaWNodGJh
cmtlaXQ8L3N0cm9uZz4gc2luZCBpbiBkZW4gVGFiCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YSBocmVmPSIjIiBjbGFzcz0iYWRtaW4taW5mby1saW5rIiBkYXRhLWdvdG8tYWRtaW4tdGFi
PSJoZWFkZXIiIHN0eWxlPSJjb2xvcjp2YXIoLS1mYXJiZS1ha3plbnQpO2ZvbnQtd2VpZ2h0OjYw
MCI+SGVhZGVyLVplaWxlbjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVtZ2V6b2dl
biDigJQgZG9ydCBsYXNzZW4gc2ljaCBMYWJlbCwgV2VydCwgU2ljaHRiYXJrZWl0LCBIaW50ZXJn
cnVuZCwgU2NocmlmdGZhcmJlIHVuZCBSZW5kZXItTW9kdXMgcHJvIFplaWxlIGVpbnN0ZWxsZW4u
CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAg
PGJ1dHRvbiBpZD0iYnRuLWVpbnN0ZWxsdW5nZW4tc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1w
cmltYWVyIiBzdHlsZT0ibWFyZ2luLXRvcDoxNnB4Ij5FaW5zdGVsbHVuZ2VuIHNwZWljaGVybjwv
YnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+
CgogICAgICAgICAgICAgICAgPCEtLSBTYW1tZWwtVGFicyAoU2VrdGlvbmVuIHdlcmRlbiBwZXIg
SlMgYXVzIGRlbiBhbHRlbiBDb250YWluZXJuIGJlZnVlbGx0KSAtLT4KICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItdGFnZXNsYWdl
Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAg
ICAgICAgICAgICAgICAgPGgyPkhlYWRlcjwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImFkbWluLXNhbW1lbC1oaW50Ij5Wb2xsc3Qm
YXVtbDtuZGlnZSBLb25maWd1cmF0aW9uIGRlcyBQbGFuLUhlYWRlcnM6IDxzdHJvbmc+SGVhZGVy
LVplaWxlbjwvc3Ryb25nPiAoU2ljaHRiYXJrZWl0LCBCZXNjaHJpZnR1bmcsIEZhcmJlbiwgU2No
cmlmdCwgQm9yZGVyLCBSZW5kZXItTW9kdXMpLCA8c3Ryb25nPlZvcmdhYmUtWmVsbGU8L3N0cm9u
Zz4gcHJvIFNjaGljaHR0eXAgRi9TL04sIDxzdHJvbmc+RFNNPC9zdHJvbmc+IG1pdCBTeW1ib2wt
QXVzd2FobCB1bmQgWnVzdGFuZHMtU3RpbGVuLCA8c3Ryb25nPkNvdW50ZXItQW56ZWlnZTwvc3Ry
b25nPiwgPHN0cm9uZz5NYXJrZXIgQS9CL0M8L3N0cm9uZz4sIDxzdHJvbmc+VGFnLU1hcmtlcjwv
c3Ryb25nPiAoSGV1dGUsIEZlaWVydGFnLCBXb2NoZW5lbmRlLCBGZXJpZW4pIHVuZCBkaWUgPHN0
cm9uZz5UYWdlc2RhdGVuLVJvdGF0aW9uPC9zdHJvbmc+LiBTZWt0aW9uZW4gbGFzc2VuIHNpY2gg
ZWluemVsbiBlaW4tL2F1c2tsYXBwZW4uPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFi
LXJvbGxlbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxoMj5Sb2xsZW4gJmFtcDsgQmVyZWNodGlndW5nZW48L2gy
PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNz
PSJhZG1pbi1zYW1tZWwtaGludCI+V2VyIGRhcmYgd2FzPyA8c3Ryb25nPkZhY2hhdWZzaWNodDwv
c3Ryb25nPiAoT3ZlcnJpZGUtUmVjaHRlKSwgPHN0cm9uZz5BbnNwcmVjaHBhcnRuZXI8L3N0cm9u
Zz4gKHZvbGxlIEFkbWluLVJlY2h0ZSwgaW50ZXJuIOKAnlN1cGVyVXNlciIpIHVuZCA8c3Ryb25n
PlNpY2h0YmFya2VpdDwvc3Ryb25nPiAod2VsY2hlIFRhYnMgcmVndWwmYXVtbDtyZSBVc2VyIHNl
aGVuKS4gQXV0by1TeW5jIGF1cyBkZW4gUGVyc29uZW4tRnVua3Rpb25lbiBER0wgLyAxLiBFQiAv
IDEuIEVCIFYuPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWRhdGVuIj4KICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgPGgyPkRhdGVuLU1hbmFnZW1lbnQ8L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhZG1pbi1zYW1tZWwtaGludCI+RGF0ZW50
cmFuc2ZlciB1bmQgU2ljaGVydW5nOiA8c3Ryb25nPkJhY2t1cHM8L3N0cm9uZz4gKDE6MS1Lb3Bp
ZW4gZGVyIDxjb2RlPnBsYW51bmcuanNvbjwvY29kZT4sIG1heC4mbmJzcDsyMCBtYW51ZWxsZSks
IDxzdHJvbmc+RXhjZWwtSW1wb3J0PC9zdHJvbmc+IChWb2xsLU1pZ3JhdGlvbiBhdXMgRkxELUV4
Y2VsIG9kZXIgc2VsZWt0aXZlciBDb3B5JmFtcDtQYXN0ZS1JbXBvcnQpLCA8c3Ryb25nPlRlc3Rk
YXRlbjwvc3Ryb25nPiAoRHVtbXlkYXRlbiArIFJlc2V0KS4gQWxsZSBFaW5ncmlmZmUgbWFjaGVu
IGF1dG9tYXRpc2NoIGVpbiBTaWNoZXJ1bmdzLUJhY2t1cCB2b3JoZXIuPC9wPgogICAgICAgICAg
ICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IEhlYWRlci1aZWlsZW4gKERT
TSwgVm9yZ2FiZSwgU29sbCwgRi9MLCBTL0wsIFVudC4gRiwgVW50LiBOKSAtLT4KICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItaGVh
ZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGgyPkhlYWRlci1aZWlsZW48L2gyPgogICAgICAgICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZv
IiBkYXRhLWluZm8ta2V5PSJoZWFkZXIiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxz
dW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6
dSBkZW4gSGVhZGVyLVplaWxlbjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFw
cGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPjxzdHJvbmc+V2FzIHNpbmQgSGVhZGVyLVplaWxlbj88L3N0cm9uZz4gRGllIFplaWxlbiBk
aXJla3Qgw7xiZXIgZGVtIFBlcnNvbmVucmFzdGVyIOKAlCA8Y29kZT5EU008L2NvZGU+LCA8Y29k
ZT5Wb3JnYWJlPC9jb2RlPiwgPGNvZGU+U29sbDwvY29kZT4sIDxjb2RlPkYvTDwvY29kZT4gKEZy
w7xoLVNjaGljaHRsZWl0dW5nKSwgPGNvZGU+Uy9MPC9jb2RlPiAoU3DDpHQtU2NoaWNodGxlaXR1
bmcpLCA8Y29kZT5VbnQuIEY8L2NvZGU+IChVbnRlcnN0w7x0enVuZyBGcsO8aGRpZW5zdCksIDxj
b2RlPlVudC4gTjwvY29kZT4gKFVudGVyc3TDvHR6dW5nIE5hY2h0ZGllbnN0KS4gU2llIHplaWdl
biBwcm8gVGFnIGRlbiBTb2xsLS9Jc3QtU3RhbmQgdW5kIE1hcmtlci48L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlBybyBaZWlsZSBrb25maWd1cmllcmJhcjo8L3N0
cm9uZz48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGxpPjxiPlNpY2h0YmFyPC9iPiAmbWRhc2g7IFplaWxlIGVpbi0v
YXVzYmxlbmRlbiBvaG5lIERhdGVudmVybHVzdC48L2xpPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxsaT48Yj5MYWJlbDwvYj4gJm1kYXNoOyBmcmVpZSBCZXNjaHJpZnR1bmcgbGlu
a3MgbmViZW4gZGVyIFplaWxlLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGxpPjxiPldlcnQ8L2I+ICZtZGFzaDsgVm9yYmVsZWd1bmcgZGVzIFplbGwtSW5oYWx0cyAoc3Rh
dHQgYXV0b21hdGlzY2ggZ2VuZXJpZXJ0ZW0pLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGxpPjxiPkhpbnRlcmdydW5kIC8gU2NocmlmdDwvYj4gJm1kYXNoOyBGYXJiY29k
aWVydW5nIHdpZSBiZWkgU2NoaWNodGNvZGVzOyBMaXZlLVZvcnNjaGF1IGluIGRlciByZWNodGVu
IFNwYWx0ZS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5SZW5k
ZXItTW9kdXM8L2I+ICZtZGFzaDsgZW50c2NoZWlkZXQsIG9iIGRpZSBGYXJiZSBkaWUgZ2FuemUg
WmVsbGUsIGVpbmVuIEJsb2NrLCBlaW5lIFBpbGxlIG9kZXIgbnVyIGRlbiBUZXh0IGVpbmYmYXVt
bDtyYnQuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkNvdW50ZXItVmVyaGFsdGVuPC9zdHJvbmc+IChB
bnplaWdlZm9ybWF0IOKAnjIvMTAiLCBTY2h3ZWxsd2VydC1Ub2xlcmFueiwgTWFya2VyLVomYXVt
bDtobHVuZykgaXN0IG5pY2h0IGhpZXIsIHNvbmRlcm4gaW0gVGFiIDxhIGhyZWY9IiMiIGNsYXNz
PSJhZG1pbi1pbmZvLWxpbmsiIGRhdGEtZ290by1hZG1pbi10YWI9ImZlYXR1cmVzIiBzdHlsZT0i
Y29sb3I6dmFyKC0tZmFyYmUtYWt6ZW50KTtmb250LXdlaWdodDo2MDAiPkZ1bmt0aW9uZW48L2E+
ICZtZGFzaDsgZG9ydCBhbHMgZWlnZW5lIFVudGVyc2VrdGlvbiA8ZW0+4oCeQ291bnRlci1Bbnpl
aWdlIjwvZW0+IGdhbnogdW50ZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+
PHN0cm9uZz5NYXJrZXItRGFyc3RlbGx1bmcgQS9CL0M8L3N0cm9uZz4gKFBpbGxlL1ZvbGwvQnVj
aHN0YWJlL3ZlcnN0ZWNrdCkgd2lyZCB3aWVkZXJ1bSBpbSBUYWIgPGEgaHJlZj0iIyIgY2xhc3M9
ImFkbWluLWluZm8tbGluayIgZGF0YS1nb3RvLWFkbWluLXRhYj0ic2NoaWNodGNvZGVzIiBzdHls
ZT0iY29sb3I6dmFyKC0tZmFyYmUtYWt6ZW50KTtmb250LXdlaWdodDo2MDAiPlNjaGljaHRjb2Rl
cyAmYW1wOyBGYXJiZW48L2E+IGdlcGZsZWd0ICZtZGFzaDsgZG9ydCBhbHMgVW50ZXJzZWt0aW9u
IDxlbT7igJ5VbnRlcnN0JnV1bWw7dHp1bmdzLU1hcmtlciI8L2VtPi48L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGlkPSJoZWFkZXIta29uZmlnLWluaGFsdCI+PC9kaXY+CiAgICAg
ICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWhlYWRlci1rb25maWctc3BlaWNoZXJuIiBj
bGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBzdHlsZT0ibWFyZ2luLXRvcDoxNnB4Ij5IZWFkZXItRWlu
c3RlbGx1bmdlbiBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAg
ICAgICAgICAgICAgIDwhLS0gVGFiOiBGdW5rdGlvbmVuIC0tPgogICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1mZWF0dXJlcyI+CiAg
ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxoMj5GdW5rdGlvbmVuIGVpbi0vYXVzYmxlbmRlbjwvaDI+CiAgICAgICAgICAg
ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWlu
LWluZm8iIGRhdGEtaW5mby1rZXk9ImZlYXR1cmVzIiBvcGVuPgogICAgICAgICAgICAgICAgICAg
ICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+SGlu
d2Vpc2UgenUgZGVuIEZ1bmt0aW9uZW48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVm
a2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8cD48c3Ryb25nPlp3ZWNrOjwvc3Ryb25nPiBIaWVyIGxhc3NlbiBzaWNoIGVpbnplbG5l
LCBrb21wbGV4ZXJlIEZ1bmt0aW9uZW4gZGVyIEFud2VuZHVuZyBlaW4tIG9kZXIgYXVzc2NoYWx0
ZW4uIERhcyBoaWxmdCwgZGllIFVJIGplIG5hY2ggQW53ZW5kdW5nc2JlZGFyZiB6dSBlbnRzY2hs
YWNrZW4gJm1kYXNoOyB3YXMgbmljaHQgZ2VicmF1Y2h0IHdpcmQsIHdpcmQgYXVzZ2VibGVuZGV0
LiBJbSBHZWdlbnNhdHogenVyIDxlbT5TaWNodGJhcmtlaXQ8L2VtPiAoVGFiLUJlcmVjaHRpZ3Vu
Z2VuIHBybyBSb2xsZSkgZ2VodCBlcyBoaWVyIHVtIGRhcyA8c3Ryb25nPkFuLS9BYnNjaGFsdGVu
IHZvbiBGdW5rdGlvbmFsaXQmYXVtbDt0IHNlbGJzdDwvc3Ryb25nPiwgZ2lsdCBhbHNvIGYmdXVt
bDtyIGFsbGUgUm9sbGVuIGdsZWljaGVybWEmc3psaWc7ZW4uPC9wPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHA+PHN0cm9uZz5WZXJmJnV1bWw7Z2JhcmUgU2NoYWx0ZXI6PC9zdHJvbmc+
PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT48Yj5TdCZhdW1sO3JrZS1BbnplaWdlPC9iPiAmbWRhc2g7IEYmbmJz
cDt8Jm5ic3A7UyZuYnNwO3wmbmJzcDtOLUJlc2V0enVuZ3N6YWhsZW4gcHJvIFRhZyBpbSBUYWdl
c2xhZ2UtSGVhZGVyLiBLZXJuLUZlYXR1cmUgZiZ1dW1sO3IgZGllIEJlc2V0enVuZ3NwbGFudW5n
OyBBYnNjaGFsdGVuIG51ciBzaW5udm9sbCBiZWkga2xlaW5lbiBEaWVuc3RncnVwcGVuLCB3byBk
YXMgQ291bnRlci1Gb3JtYXQga2VpbmUgUm9sbGUgc3BpZWx0LjwvbGk+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGxpPjxiPlJ1aGV6ZWl0LVByJnV1bWw7ZnVuZzwvYj4gJm1kYXNo
OyB3YXJudCBiZWkgJmx0OyZuYnNwOzExaCBSdWhlemVpdCB6d2lzY2hlbiB6d2VpIFNjaGljaHRl
biBkZXJzZWxiZW4gUGVyc29uIChBcmJaRyZuYnNwOyZzZWN0OzUpLiBHcmVpZnQgei5CLiBiZWkg
PGVtPlM8L2VtPiBoZXV0ZSAmcmFycjsgPGVtPkY8L2VtPiBtb3JnZW4uPC9saT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+RnJlbWQtJkF1bWw7bmRlcnVuZyBXYXJudW5n
PC9iPiAmbWRhc2g7IEJlc3QmYXVtbDt0aWd1bmdzLU1vZGFsLCB3ZW5uIGRpZSBTY2hpY2h0IGVp
bmVyIGFuZGVyZW4gUGVyc29uIGFscyBkZXIgZWlnZW5lbiBnZSZhdW1sO25kZXJ0IHdpcmQuIFNj
aCZ1dW1sO3R6dCB2b3IgdmVyc2VoZW50bGljaGVuICZBdW1sO25kZXJ1bmdlbiwgaXN0IGFiZXIg
ZiZ1dW1sO3IgREdMLzEuJm5ic3A7RUIgaW0gQWxsdGFnIGVoZXIgc3Qmb3VtbDtyZW5kLjwvbGk+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkZhaXJuZXNzLUFuemVpZ2U8
L2I+ICZtZGFzaDsgaW0gU3RhdGlzdGlrLVRhYiBlcnNjaGVpbnQgZWluIFBhbmVsIG1pdCBkZW0g
VmVyaCZhdW1sO2x0bmlzIHZvbiBXb2NoZW5lbmQtL0ZlaWVydGFnc2RpZW5zdGVuIHBybyBQZXJz
b24uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+TXVzdGVyLUFu
YWx5c2U8L2I+ICZtZGFzaDsgZXJrZW5udCBBdWZmJmF1bWw7bGxpZ2tlaXRlbiBpbiBkZXIgU3Rh
dGlzdGlrICh6LkIuIHdpZWRlcmhvbHRlIEZyJnV1bWw7aC1uYWNoLU5hY2h0LUZvbGdlbiwgdW5n
bGVpY2hlIFZlcnRlaWx1bmcpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGxpPjxiPkFid2VzZW5oZWl0cy1LYWNoZWxuPC9iPiAmbWRhc2g7IGtvbXBha3RlIEFid2VzZW5o
ZWl0cy0mVXVtbDtiZXJzaWNodCBwcm8gUGVyc29uIGltIFN0YXRpc3Rpay1UYWIgKEtyYW5rL1Vy
bGF1Yi9MZWhyZ2FuZy9BWkEpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGxpPjxiPkRldGFpbC1UYWJlbGxlPC9iPiAmbWRhc2g7IGF1c2tsYXBwYmFyZSBTdGF0aXN0aWst
VGFiZWxsZSBtaXQgYWxsZW4gRWluemVsd2VydGVuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Tb2Zv
cnQtV2lya3VuZzo8L3N0cm9uZz4gJkF1bWw7bmRlcnVuZ2VuIHdlcmRlbiBzb2ZvcnQgZ2VzcGVp
Y2hlcnQgdW5kIGdyZWlmZW4gZGlyZWt0IChvaG5lIFNlaXRlbi1SZWxvYWQpICZtZGFzaDsgZGVy
IGVudHNwcmVjaGVuZGUgQmVyZWljaCBlcnNjaGVpbnQvdmVyc2Nod2luZGV0IHVtZ2VoZW5kLjwv
cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Q291bnRlci1BbnplaWdl
Ojwvc3Ryb25nPiBEaWUgS29uZmlndXJhdGlvbiBkZXIgQ291bnRlci1TcGFsdGVuIChBbnplaWdl
Zm9ybWF0LCBTY2h3ZWxsd2VydCwgU2NocmlmdGdyJm91bWw7JnN6bGlnO2UpIGxpZWd0IHVubWl0
dGVsYmFyIGRhcnVudGVyIGFscyBlaWdlbmUgVW50ZXJzZWt0aW9uLjwvcD4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9ImZlYXR1cmVzLWluaGFsdCI+PC9kaXY+CiAgICAgICAgICAg
ICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6MjRweDtmb250LXNpemU6MTJweDtjb2xvcjp2
YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpYyI+CiAgICAgICAgICAgICAgICAgICAg
ICAgIERpZSBLb25maWd1cmF0aW9uIGRlciA8c3Ryb25nPkNvdW50ZXItQW56ZWlnZTwvc3Ryb25n
PiAoQW56ZWlnZWZvcm1hdCwgU2Nod2VsbHdlcnQsIE1hcmtlci1aJmF1bWw7aGx1bmcpIGxpZWd0
IHNlaXQgMjAyNi0wNS0wNSBpbSBUYWIKICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0i
IyIgY2xhc3M9ImFkbWluLWluZm8tbGluayIgZGF0YS1nb3RvLWFkbWluLXRhYj0idGFnZXNsYWdl
IiBzdHlsZT0iY29sb3I6dmFyKC0tZmFyYmUtYWt6ZW50KTtmb250LXdlaWdodDo2MDAiPkhlYWRl
cjwvYT4gJnJhcnI7IFVudGVyc2VrdGlvbiA8ZW0+4oCeQ291bnRlci1BbnplaWdlIjwvZW0+Lgog
ICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAg
ICAgICAgIDwhLS0gVGFiOiBUYWdlc2RhdGVuLVJvdGF0aW9uIC0tPgogICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYWRtaW4tdGFiIHZlcnN0ZWNrdCIgaWQ9ImFkbWluLXRhYi1yb3RhdGlvbiI+
CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAg
ICAgICAgICAgICAgIDxoMj5UYWdlc2RhdGVuLVJvdGF0aW9uPC9oMj4KICAgICAgICAgICAgICAg
ICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5m
byIgZGF0YS1pbmZvLWtleT0icm90YXRpb24iIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAg
IDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5XYXMgaXN0
IGRhcz88c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBl
bjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFk
bWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlp3
ZWNrOjwvc3Ryb25nPiBEaWUgVGFnZXNsYWdlLUhlYWRlci1aZWlsZW4gJnV1bWw7YmVyIGRlbSBQ
ZXJzb25lbnJhc3RlciAoPGNvZGU+Vm9yZ2FiZTwvY29kZT4sIDxjb2RlPlNvbGw8L2NvZGU+LCA8
Y29kZT5GL0w8L2NvZGU+LCA8Y29kZT5TL0w8L2NvZGU+LCA8Y29kZT5VbnQtRjwvY29kZT4sIDxj
b2RlPlVudC1OPC9jb2RlPikgd2VyZGVuIGF1cyBlaW5lciB3aWVkZXJrZWhyZW5kZW4gTi1Xb2No
ZW4tUm90YXRpb24gZ2VzcGVpc3QuIEhpZXIgcGZsZWdzdCBkdSBkYXMgVGVtcGxhdGUsIGRhcyBk
ZW4gU29sbC1TdGFuZCBwcm8gV29jaGVudGFnIHVuZCBTY2hpY2h0YmVyZWljaCBkZWZpbmllcnQu
PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XaWUgZnVua3Rpb25p
ZXJ0J3M/PC9zdHJvbmc+IFZvbSA8ZW0+U3RhcnRkYXR1bTwvZW0+IChNb250YWcpIGF1cyB3aXJk
IGYmdXVtbDtyIGplZGVuIFRhZyBkZXIgZW50c3ByZWNoZW5kZSBFaW50cmFnIGF1cyBkZXIgVGFi
ZWxsZSAmdXVtbDtiZXJub21tZW4gJm1kYXNoOyBUYWcmbmJzcDsxICZyYXJyOyBlcnN0ZSBaZWls
ZSwgVGFnJm5ic3A7MjIgJnJhcnI7IHdpZWRlciBlcnN0ZSBaZWlsZSBiZWkgMy1Xb2NoZW4tUm90
YXRpb24uICZBdW1sO25kZXJ1bmdlbiB3aXJrZW4gc29mb3J0IGltIEhhdXB0cGxhbi48L3A+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlBlcmlvZGVubCZhdW1sO25nZTo8
L3N0cm9uZz4gJlV1bWw7YmVyIGRhcyBEcm9wZG93biB1bXNjaGFsdGJhciAoMSwgMiwgMywgNCBv
ZGVyIDYgV29jaGVuLCBhbHNvIDcmbmRhc2g7NDIgVGFnZSkuIFZlcmwmYXVtbDtuZ2VybiBmJnV1
bWw7Z3QgbGVlcmUgWmVpbGVuIHVudGVuIGFuOyB2ZXJrJnV1bWw7cnplbiBzY2huZWlkZXQgWmVp
bGVuIGFiICZtZGFzaDsgPHN0cm9uZz5XZXJ0ZSBkZXIgYWJnZXNjaG5pdHRlbmVuIFplaWxlbiBn
ZWhlbiB2ZXJsb3JlbiE8L3N0cm9uZz48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cD48c3Ryb25nPjEuJm5ic3A7SmFudWFyIGYmYXVtbDtsbHQgYXVmIFJvdGF0aW9ucy1Xb2NoZTwv
c3Ryb25nPiAoRHJvcGRvd24gbGlua3MpOiBCZXN0aW1tdCwgbWl0IHdlbGNoZW0gU2xvdCBkZXIg
Um90YXRpb24gZGFzIFBsYW51bmdzamFociBzdGFydGV0LiBCZWltICZBdW1sO25kZXJuIHdpcmQg
ZGFzIFN0YXJ0ZGF0dW0gYXV0b21hdGlzY2ggcGFzc2VuZCBnZXNldHp0ICZtZGFzaDsgdmVyZWlu
ZmFjaHQgZGVuIEphaHJlc3dlY2hzZWwsIGJlaSBkZW0gZGllIFJvdGF0aW9uIG5pY2h0IGImdXVt
bDtuZGlnIGF1ZiBNb250YWcgYW5mJmF1bWw7bmd0LjwvcD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxwPjxzdHJvbmc+U3BhbHRlbiBpbiBkZXIgUm90YXRpb25zLVRhYmVsbGU6PC9zdHJv
bmc+IFdvY2hlbnRhZywgVm9yZ2FiZS1TY2hpY2h0IChGL1MvTi9kZnIpLCBTdMOkcmtlLVNvbGwg
KHp3ZWkgV2VydGU6IEYmdXVtbDtocnVuZyArIE1hbm5zY2hhZnQpLCBGL0wtU29sbCBtaXQgTWFy
a2VybiwgUy9MLVNvbGwgbWl0IE1hcmtlcm4sIFVudC1GLVNvbGwgbWl0IE1hcmtlcm4sIFVudC1O
LVNvbGwgbWl0IE1hcmtlcm4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0
cm9uZz5NYXJrZXIgQS9CL0M6PC9zdHJvbmc+IEJlZGV1dGVuIDxlbT7igJ5VbnRlcnN0JnV1bWw7
dHp1bmcgYXVzIFdlY2hzZWxzY2hpY2h0LUdydXBwZSBBIC8gQiAvIEMiPC9lbT4uIFomYXVtbDto
bGVuIDxlbT5uaWNodDwvZW0+IGluIGRpZSBTb2xsLUVyZiZ1dW1sO2xsdW5nIGRlciBGTEQtTWFu
bnNjaGFmdCwgZGllbmVuIG51ciBhbHMgSGlud2VpcyB3ZWxjaGUgR3J1cHBlIGFuIGRpZXNlbSBU
YWcgUGVyc29uYWwgc3RlbGx0LiBEaWUgPHN0cm9uZz5EYXJzdGVsbHVuZyBkZXIgTWFya2VyPC9z
dHJvbmc+IChQaWxsZSAvIFZvbGwgLyBCdWNoc3RhYmUgLyB2ZXJzdGVja3QpIGlzdCBrb25maWd1
cmllcmJhciBpbiBkZXIgVW50ZXJzZWt0aW9uIDxlbT7igJ5VbnRlcnN0JnV1bWw7dHp1bmdzLU1h
cmtlciI8L2VtPiBpbSBUYWIgPGEgaHJlZj0iIyIgY2xhc3M9ImFkbWluLWluZm8tbGluayIgZGF0
YS1nb3RvLWFkbWluLXRhYj0ic2NoaWNodGNvZGVzIiBzdHlsZT0iY29sb3I6dmFyKC0tZmFyYmUt
YWt6ZW50KTtmb250LXdlaWdodDo2MDAiPlNjaGljaHRjb2RlcyAmYW1wOyBGYXJiZW48L2E+Ljwv
cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+RWluemVsbmUgVGFnZSAm
dXVtbDtiZXJzY2hyZWliZW46PC9zdHJvbmc+IFBlciBPdmVycmlkZS1LbGljayBpbSBIYXVwdHBs
YW4tSGVhZGVyIChudXIgU3VwZXJVc2VyL0ZhY2hhdWZzaWNodCkuIE92ZXJyaWRlcyBsYW5kZW4g
aW4gPGNvZGU+cGxhbnVuZy50YWdlc2RhdGVuW2RhdHVtXTwvY29kZT4gdW5kIGdlaGVuIGRlciBS
b3RhdGlvbiB2b3IgJm1kYXNoOyBpZGVhbCBmJnV1bWw7ciBTb25kZXJ0YWdlLCBhbiBkZW5lbiBk
aWUgbm9ybWFsZSBTb2xsLVZvcmdhYmUgbmljaHQgcGFzc3QgKHouQi4gVGFnIG1pdCBHcm8mc3ps
aWc7ZWluc2F0eiBvZGVyIHJlZHV6aWVydGVyIEJlc2V0enVuZykuPC9wPgogICAgICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0icm90YXRpb24tZm9ybSIgc3R5bGU9Im1heC13aWR0aDox
MjAwcHg7IG1hcmdpbi1ib3R0b206MTZweCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
c3R5bGU9ImRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgMWZyIDFm
cjsgZ2FwOjEycHggMjBweDsgbWFyZ2luLWJvdHRvbToxNHB4Ij4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bGFiZWwgZm9yPSJyb3QtamFocmVzc3RhcnQtd29jaGUiPjEuIEphbnVhciBm
w6RsbHQgYXVmIFJvdGF0aW9ucy1Xb2NoZTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHNlbGVjdCBpZD0icm90LWphaHJlc3N0YXJ0LXdvY2hlIiBjbGFzcz0iZm9ybS1p
bnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiPjwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxzbWFsbCBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXpl
OjExcHg7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjRweCI+QmVzdGltbXQsIG1pdCB3ZWxjaGVt
IFNsb3QgZGVyIFJvdGF0aW9uIGRhcyBQbGFudW5nc2phaHIgc3RhcnRldCDigJQgcGFzc3QgZGFz
IFN0YXJ0ZGF0dW0gYXV0b21hdGlzY2ggYW4uPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9y
bS1ncnVwcGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InJv
dC1zdGFydGRhdHVtIj5TdGFydGRhdHVtIGRlciBSb3RhdGlvbiAoTW9udGFnKTwvbGFiZWw+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImRhdGUiIGlkPSJyb3Qt
c3RhcnRkYXR1bSIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQt
bXV0ZWQpO2ZvbnQtc2l6ZToxMXB4O2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDo0cHgiPldpcmQg
ZHVyY2ggZGllIFdvY2hlbmF1c3dhaGwgbGlua3MgYXV0b21hdGlzY2ggZ2VzZXR6dC48L3NtYWxs
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGxhYmVsIGZvcj0icm90LXdvY2hlbiI+UGVyaW9kZW5sw6RuZ2U8L2xhYmVsPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9InJvdC13b2NoZW4iIGNs
YXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEiPjEgV29jaGUgKDcgVGFnZSk8L29wdGlv
bj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMiI+
MiBXb2NoZW4gKDE0IFRhZ2UpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxvcHRpb24gdmFsdWU9IjMiIHNlbGVjdGVkPjMgV29jaGVuICgyMSBUYWdlKTwvb3B0
aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI0
Ij40IFdvY2hlbiAoMjggVGFnZSk8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNiI+NiBXb2NoZW4gKDQyIFRhZ2UpPC9vcHRpb24+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImZvcm0tZ3J1cHBlIiBzdHlsZT0iYWxpZ24tc2VsZjplbmQiPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1yb3RhdGlvbi1zcGVpY2hlcm4iIGNsYXNzPSJi
dG4gYnRuLXByaW1hZXIiIHN0eWxlPSJ3aWR0aDoxMDAlIj5Sb3RhdGlvbiBzcGVpY2hlcm48L2J1
dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg
ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGlkPSJyb3RhdGlvbi10YWJlbGxlLWNvbnRhaW5lciIgc3R5bGU9Im92ZXJmbG93
LXg6YXV0byI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8
IS0tIFRhYjogVm9yZ2FiZS1EZXRhaWwgKEYvUy9OIFN0eWxlLU92ZXJyaWRlKSAtLT4KICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWIt
dm9yZ2FiZS1kZXRhaWwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtv
cGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+Vm9yZ2FiZS1aZWxsZSAoRiAvIFMgLyBO
KTwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRl
dGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9InZvcmdhYmUtZGV0YWlsIiBv
cGVuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRtaW4t
aW5mby1jaGV2Ij7ilrg8L3NwYW4+SGlud2Vpc2UgenVyIFZvcmdhYmUtRGV0YWlsLUtvbmZpZ3Vy
YXRpb248c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBl
bjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFk
bWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldh
cyBpc3QgaGllciBrb25maWd1cmllcmJhcj88L3N0cm9uZz4gUHJvIFNjaGljaHR0eXAgRiAvIFMg
LyBOIGthbm4gZGVyIFN0aWwgZGVyIFZvcmdhYmUtWmVsbGUgZ2VzZXR6dCB3ZXJkZW4gJm1kYXNo
OyA8ZW0+SGludGVyZ3J1bmQtT3ZlcnJpZGU8L2VtPiwgU2NocmlmdGZhcmJlLCBTY2hyaWZ0Z3Im
b3VtbDsmc3psaWc7ZSwgRmV0dCwgS3Vyc2l2IHVuZCBaZWxsZW5yJmF1bWw7bmRlciBvYmVuL2xp
bmtzL3JlY2h0cy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkhp
bnRlcmdydW5kLU92ZXJyaWRlOjwvc3Ryb25nPiBMZWVyIGxhc3NlbiDihpIgZGllIEhpbnRlcmdy
dW5kZmFyYmUgd2lyZCBhdXRvbWF0aXNjaCBhdXMgZGVtIGVudHNwcmVjaGVuZGVuIFNjaGljaHRj
b2RlIChUYWIgPGEgaHJlZj0iIyIgY2xhc3M9ImFkbWluLWluZm8tbGluayIgZGF0YS1nb3RvLWFk
bWluLXRhYj0ic2NoaWNodGNvZGVzIiBzdHlsZT0iY29sb3I6dmFyKC0tZmFyYmUtYWt6ZW50KTtm
b250LXdlaWdodDo2MDAiPlNjaGljaHRjb2RlcyAmYW1wOyBGYXJiZW48L2E+KSBhYmdlbGVpdGV0
IChGPUdlbGIsIFM9R3ImdXVtbDtuLCBOPUJsYXUgaW0gU3RhbmRhcmQpLiBFaW5lIEZhcmJlIGdl
c2V0enQg4oaSICZ1dW1sO2JlcnNjaHJlaWJ0IGRpZXNlbiBEZWZhdWx0LjwvcD4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+U2NocmlmdGdyJm91bWw7JnN6bGlnO2UgLyBG
ZXR0Ojwvc3Ryb25nPiBMZWVyIC8gbmljaHQgZ2VzZXR6dCDihpIgZ2xvYmFsZSBIZWFkZXItRGVm
YXVsdHMgZ3JlaWZlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg
ICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ2b3Jn
YWJlLWRldGFpbC1pbmhhbHQiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9
ImJ0bi12b3JnYWJlLWRldGFpbC1zcGVpY2hlcm4iIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIHN0
eWxlPSJtYXJnaW4tdG9wOjEycHgiPlZvcmdhYmUtRGV0YWlsIHNwZWljaGVybjwvYnV0dG9uPgog
ICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IERTTS1TeW1i
b2wgJiBTdHlsZSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJz
dGVja3QiIGlkPSJhZG1pbi10YWItZHNtLWRldGFpbCI+CiAgICAgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5EU00tU3lt
Ym9sICZhbXA7IFN0eWxlPC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg
ICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0iZHNt
LWRldGFpbCIgb3Blbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xh
c3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9zcGFuPkhpbndlaXNlIHp1ciBEU00tS29uZmlndXJh
dGlvbjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVu
PC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRt
aW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2Fz
IGlzdCBEU00/PC9zdHJvbmc+IERpZSBEU00tWmVpbGUgKERpZW5zdC1TY2hpY2h0LU1lbGR1bmcp
IHplaWd0IHBybyBUYWcsIG9iIGRpZSBUYWdlc21lbGR1bmcgZ2VidWNodCB3dXJkZS4gU3VwZXJV
c2VyL0ZhY2hhdWZzaWNodC8xLiZuYnNwO0VCJm5ic3A7Vi4gayZvdW1sO25uZW4gZGVuIFN0YXR1
cyBwZXIgRG9wcGVsa2xpY2sgdG9nZ2Vsbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8cD48c3Ryb25nPlN5bWJvbGU6PC9zdHJvbmc+IEYmdXVtbDtyIGJlaWRlIFp1c3QmYXVtbDtu
ZGUgKGdlbWFjaHQgLyBuaWNodCBnZW1hY2h0KSBrYW5uIGVpbiBTeW1ib2wgYXVzIGRlciBEcm9w
ZG93bi1MaXN0ZSBnZXcmYXVtbDtobHQgd2VyZGVuICZtZGFzaDsgei5CLiDinJMgLyDDlyAvIOKK
lyAvIOKXjyAvIC8vIC8gLS4gRGVmYXVsdCBpc3Qg4pyTIHVuZCDDly48L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlN0aWwgcHJvIFp1c3RhbmQ6PC9zdHJvbmc+IEhp
bnRlcmdydW5kLCBTY2hyaWZ0ZmFyYmUsIFNjaHJpZnRnciZvdW1sOyZzemxpZztlLCBGZXR0LCBL
dXJzaXYsIFplbGxlbnImYXVtbDtuZGVyIG9iZW4vbGlua3MvcmVjaHRzICZtZGFzaDsgZ2V0cmVu
bnQgZiZ1dW1sO3Ig4oCeZ2VtYWNodCIgdW5kIOKAnm5pY2h0IGdlbWFjaHQiLiBEZWZhdWx0cyBz
aW5kIEdyJnV1bWw7biBiencuIFJvdC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8ZGl2
IGlkPSJkc20tZGV0YWlsLWluaGFsdCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRv
biBpZD0iYnRuLWRzbS1kZXRhaWwtc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBz
dHlsZT0ibWFyZ2luLXRvcDoxMnB4Ij5EU00tS29uZmlndXJhdGlvbiBzcGVpY2hlcm48L2J1dHRv
bj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBDb3Vu
dGVyLUFuemVpZ2UgKHVtZ2V6b2dlbiBhdXMgYWRtaW4tdGFiLWZlYXR1cmVzKSAtLT4KICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWIt
Y291bnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxoMj5Db3VudGVyLUFuemVpZ2UgKFNvbGwgLyBJc3QpPC9o
Mj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGV0YWls
cyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0iY291bnRlci1rb25maWciIG9wZW4+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZv
LWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dW0gQ291bnRlcjxzcGFuIGNsYXNzPSJhZG1pbi1p
bmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FzIGlzdCBkZXIgQ291bnRlcj88L3N0cm9u
Zz4gRGllIEhlYWRlci1aZWlsZW4gPGNvZGU+Vm9yZ2FiZTwvY29kZT4sIDxjb2RlPlNvbGw8L2Nv
ZGU+LCA8Y29kZT5GL0w8L2NvZGU+LCA8Y29kZT5TL0w8L2NvZGU+LCA8Y29kZT5VbnQtRjwvY29k
ZT4sIDxjb2RlPlVudC1OPC9jb2RlPiB6ZWlnZW4gcHJvIFRhZyBkaWUgSXN0L1NvbGwtQmVzZXR6
dW5nICZtZGFzaDsgei5CLiA8ZW0+4oCeMi8xMCI8L2VtPiBiZWRldXRldCAyIHZvbiAxMCBTY2hp
Y2h0bGVpdHVuZ2VuIGJlc2V0enQuIEhpZXIga29uZmlndXJpZXJzdCBkdSBkYXMgVmVyaGFsdGVu
IDxzdHJvbmc+cHJvIENvdW50ZXItWmVpbGU8L3N0cm9uZz4gKHNlaXQgMjAyNi0wNS0wNSBuaWNo
dCBtZWhyIG51ciBnbG9iYWwpLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxz
dHJvbmc+S29uZmlndXJpZXJiYXJlIFBhcmFtZXRlciBwcm8gWmVpbGU6PC9zdHJvbmc+PC9wPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxsaT48Yj5BbnplaWdlZm9ybWF0PC9iPiAmbWRhc2g7IDxlbT7igJ4yLzEwIjwvZW0+
IChJc3QvU29sbCksIDxlbT7igJ4yIHZvbiAxMCI8L2VtPiAodmVyYm9zZSksIDxlbT7igJ4yIjwv
ZW0+IChudXIgSXN0KSBvZGVyIDxlbT7igJ4xMCI8L2VtPiAobnVyIFNvbGwpLjwvbGk+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlNjaHdlbGx3ZXJ0LVRvbGVyYW56PC9i
PiAmbWRhc2g7IGFiIHdlbGNoZXIgRGlmZmVyZW56IGRpZSBaZWxsZSByb3QgZWluZ2VmJmF1bWw7
cmJ0IHdpcmQgKERlZmF1bHQgMCA9IGplZGUgVW50ZXJiZXNldHp1bmcpLjwvbGk+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPk1hcmtlci1aJmF1bWw7aGx1bmc8L2I+ICZt
ZGFzaDsgb2IgQS9CL0MtTWFya2VyIHp1ciBTb2xsLUVyZiZ1dW1sO2xsdW5nIGJlaXRyYWdlbi48
L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxwPjxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gQmVzY2hyaWZ0dW5nLCBGYXJi
ZW4gdW5kIFNjaHJpZnQtU3R5bGUgZGVyIENvdW50ZXItWmVpbGVuIHdlcmRlbiBpbiBkZXIgU2Vr
dGlvbiA8ZW0+4oCeSGVhZGVyLVplaWxlbiI8L2VtPiBvYmVuIGluIGRpZXNlbSBUYWIgZ2VwZmxl
Z3QgJm1kYXNoOyBoaWVyIGlzdCBudXIgZGFzIENvdW50ZXItPGVtPlZlcmhhbHRlbjwvZW0+IGRy
aW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAg
ICA8L2RldGFpbHM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY291bnRlci1rb25maWct
aW5oYWx0IiBzdHlsZT0iZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIyMHB4
IDFmcjsgZ2FwOjEycHggMTZweDsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXgtd2lkdGg6NjAwcHgi
PjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jb3VudGVyLWtvbmZp
Zy1zcGVpY2hlcm4iIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjE2
cHgiPkNvdW50ZXItRWluc3RlbGx1bmdlbiBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAg
ICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBNYXJrZXIgQS9CL0MgKHVtZ2V6
b2dlbiBhdXMgYWRtaW4tdGFiLXNjaGljaHRjb2RlcykgLS0+CiAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLW1hcmtlciI+CiAgICAg
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxoMj5VbnRlcnN0JnV1bWw7dHp1bmdzLU1hcmtlciAoQSAvIEIgLyBDKTwvaDI+CiAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgY2xh
c3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9Im1hcmtlci1rb25maWciIG9wZW4+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYi
PuKWuDwvc3Bhbj5IaW53ZWlzZSB6dXIgTWFya2VyLURhcnN0ZWxsdW5nPHNwYW4gY2xhc3M9ImFk
bWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1tYXJ5Pgog
ICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHkiPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHA+SW4gZGVuIEhlYWRlci1aZWlsZW4gPGI+Ri9MPC9i
PiwgPGI+Uy9MPC9iPiwgPGI+VW50LUY8L2I+IHVuZCA8Yj5VbnQtTjwvYj4gZXJzY2hlaW5lbiBr
bGVpbmUgTWFya2VyICjigJ5BIiwg4oCeQiIsIOKAnkMiKSBhbHMgSGlud2Vpcywgd2VsY2hlIGRl
ciBkcmVpIFdlY2hzZWxzY2hpY2h0LUdydXBwZW4gYW0gamV3ZWlsaWdlbiBUYWcgVW50ZXJzdCZ1
dW1sO3R6dW5nIGluIGRlbiBMYWdlZGllbnN0IGxlaXN0ZXQuIERpZSBNYXJraWVydW5nIHNlbGJz
dCBrb21tdCBhdXMgZGVyIDxzdHJvbmc+VGFnZXNkYXRlbi1Sb3RhdGlvbjwvc3Ryb25nPiAoZWln
ZW5lIFNla3Rpb24gaW0gSGVhZGVyLVRhYikuIEhpZXIgd2lyZCBudXIgZGllIDxiPkRhcnN0ZWxs
dW5nPC9iPiBrb25maWd1cmllcnQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+
PHN0cm9uZz5TcGFsdGVuIGluIGRlciBNYXJrZXItVGFiZWxsZTo8L3N0cm9uZz48L3A+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGxpPjxiPkdydXBwZTwvYj4gJm1kYXNoOyBBLCBCIG9kZXIgQywgZmVzdCB2ZXJkcmFodGV0
LjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkJ1Y2hzdGFiZTwv
Yj4gJm1kYXNoOyB3YXMgaW0gTWFya2VyIGFuZ2V6ZWlndCB3aXJkIChEZWZhdWx0IEEgLyBCIC8g
QykuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+TW9kdXM8L2I+
OiA8ZW0+UGlsbDwvZW0+LCA8ZW0+Vm9sbDwvZW0+LCA8ZW0+bnVyIEJ1Y2hzdGFiZTwvZW0+LCA8
ZW0+dmVyc3RlY2t0PC9lbT4uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bGk+PGI+SGludGVyZ3J1bmQgLyBTY2hyaWZ0PC9iPiAmbWRhc2g7IEZhcmJjb2RpZXJ1bmcsIOKA
nnRyYW5zcGFyZW50IiBkZWFrdGl2aWVydCBkZW4gSGludGVyZ3J1bmQuPC9saT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+R3Imb3VtbDsmc3psaWc7ZSAvIEZldHQgLyBL
dXJzaXY8L2I+ICZtZGFzaDsgU2NocmlmdGdyJm91bWw7JnN6bGlnO2UsIEZldHQtU2NoYWx0ZXIs
IEt1cnNpdi1TY2hhbHRlci48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxs
aT48Yj5Cb3JkZXIgVCAvIEwgLyBSPC9iPiAmbWRhc2g7IGZyZWllcyBDU1MtQm9yZGVyLCB6LkIu
IDxjb2RlPjFweCBzb2xpZCAjODg4PC9jb2RlPi48L2xpPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAg
ICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4t
dGFiZWxsZSIgaWQ9Im1hcmtlci1rb25maWctdGFiZWxsZSI+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjYwcHgiPk1hcmtlcjwvdGg+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo3MHB4Ij5CdWNo
c3RhYmU8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lk
dGg6MTQwcHgiPk1vZHVzPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGgg
c3R5bGU9IndpZHRoOjkwcHgiPkhpbnRlcmdydW5kPC90aD4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHgiPlNjaHJpZnQ8L3RoPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6NzBweCI+R3Imb3VtbDsmc3ps
aWc7ZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0
aDo1MHB4Ij5GZXR0PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5
bGU9IndpZHRoOjYwcHgiPkt1cnNpdjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHRoPkJvcmRlciBUIC8gTCAvIFI8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDx0aCBzdHlsZT0id2lkdGg6ODBweCI+Vm9yc2NoYXU8L3RoPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJtYXJrZXIta29uZmlnLXRib2R5Ij48L3Rib2R5
PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRv
biBpZD0iYnRuLW1hcmtlci1rb25maWctc3BlaWNoZXJuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVy
IiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4Ij5NYXJrZXItRWluc3RlbGx1bmdlbiBzcGVpY2hlcm48
L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFi
OiBUYWctTWFya2VyIChIZXV0ZSAvIEZlaWVydGFnIC8gV29jaGVuZW5kZSAvIEZlcmllbikgLS0+
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRt
aW4tdGFiLXRhZ21hcmtlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4t
a29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5UYWctTWFya2VyPC9oMj4KICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0i
YWRtaW4taW5mbyIgZGF0YS1pbmZvLWtleT0idGFnLW1hcmtlciIgb3Blbj4KICAgICAgICAgICAg
ICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+4pa4PC9z
cGFuPkhpbndlaXNlIHp1IGRlbiBUYWctTWFya2VybjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJh
ZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2FzIHNpbmQgVGFnLU1hcmtlcj88L3N0cm9uZz4gRGll
IERhdHVtcy1aZWxsZSBnYW56IG9iZW4gaW0gUGxhbi1IZWFkZXIgd2lyZCBqZSBuYWNoIFRhZ2Vz
dHlwIGVpbmdlZiZhdW1sO3JidDo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkhldXRlPC9iPiAmbWRhc2g7
IGFrdHVlbGxlciBUYWcsIHN0aWNodCBoZXJhdXMgZGFtaXQgbWFuIGlobiBzY2huZWxsIGZpbmRl
dC48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5GZWllcnRhZzwv
Yj4gJm1kYXNoOyBha3RpdmVyIEZlaWVydGFnIChUYWIgPGVtPlRlcm1pbmU8L2VtPiAmcmFycjsg
RmVpZXJ0YWdlKS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5G
ZWllcnRhZy13aWNodGlnPC9iPiAmbWRhc2g7IG1pdCBXaWNodGlnLUZsYWcgbWFya2llcnRlIEZl
aWVydGFnZSAodmVyc3QmYXVtbDtya3RlIEhlcnZvcmhlYnVuZykuPC9saT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGk+PGI+V29jaGVuZW5kZTwvYj4gJm1kYXNoOyBTYW1zdGFn
ICZhbXA7IFNvbm50YWcuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+
PGI+RmVyaWVuPC9iPiAmbWRhc2g7IGFrdGl2ZXIgRmVyaWVuemVpdHJhdW0gKFRhYiA8ZW0+VGVy
bWluZTwvZW0+ICZyYXJyOyBTY2h1bGZlcmllbiBOUlcpLjwvbGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5X
YXMgaXN0IGtvbmZpZ3VyaWVyYmFyPzwvc3Ryb25nPiBQcm8gTWFya2VyOiBIaW50ZXJncnVuZCwg
U2NocmlmdGZhcmJlLCBTY2hyaWZ0Z3Imb3VtbDsmc3psaWc7ZSwgRmV0dCwgS3Vyc2l2LCBaZWxs
ZW5yJmF1bWw7bmRlciBvYmVuL2xpbmtzL3JlY2h0cy48L3A+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8cD48c3Ryb25nPldpcmt1bmdzYmVyZWljaDo8L3N0cm9uZz4gTnVyIGRpZSBEYXR1
bXMtWmVsbGUgZ2FueiBvYmVuIGltIEhlYWRlci4gRGllIGFuZGVyZW4gSGVhZGVyLVplaWxlbiAo
Vm9yZ2FiZSwgU29sbCwgRi9MICZoZWxsaXA7KSBkZXMgYmV0cm9mZmVuZW4gVGFnZXMgYmxlaWJl
biB1bmJlciZ1dW1sO2hydC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ry
b25nPlJlaWhlbmZvbGdlIGRlciBBbndlbmR1bmc6PC9zdHJvbmc+IEhldXRlICZndDsgRmVpZXJ0
YWctd2ljaHRpZyAmZ3Q7IEZlaWVydGFnICZndDsgV29jaGVuZW5kZS4gRmVyaWVuIHdpcmt0IHp1
cyZhdW1sO3R6bGljaCAoVGV4dC1BbnplaWdlIGluIGRlciBGZXJpZW4vRlQtSGVhZGVyLVplaWxl
KS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAg
IDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0YWdtYXJrZXItaW5oYWx0
Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tdGFnbWFya2VyLXNw
ZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgc3R5bGU9Im1hcmdpbi10b3A6MTJweCI+
VGFnLU1hcmtlciBzcGVpY2hlcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAg
ICAgICAgICAgICAgIDwhLS0gVGFiOiBTaWNodGJhcmtlaXQgZsO8ciBBZG1pbnMgLS0+CiAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFi
LXNpY2h0YmFya2VpdCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4ta29w
ZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5TaWNodGJhcmtlaXQgZsO8ciBBZG1pbnM8
L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRh
aWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJzaWNodGJhcmtlaXQiIG9wZW4+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZv
LWNoZXYiPuKWuDwvc3Bhbj5XZXIgc2llaHQgd2FzPzxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJh
ZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxwPjxzdHJvbmc+Um9sbGVubW9kZWxsIGRlciBBcHA6PC9zdHJvbmc+IEVz
IGdpYnQgZHJlaSBSb2xsZW4tU3R1ZmVuIG1pdCBhYnN0ZWlnZW5kZXIgQmVyZWNodGlndW5nICZt
ZGFzaDsgPHN0cm9uZz5TdXBlclVzZXI8L3N0cm9uZz4gJmd0OyA8c3Ryb25nPkZhY2hhdWZzaWNo
dDwvc3Ryb25nPiAmZ3Q7IDxzdHJvbmc+cmVndWwmYXVtbDtyZXIgVXNlcjwvc3Ryb25nPi4gRGll
c2UgU2ljaHRiYXJrZWl0cy1TZWt0aW9uIHJlZ2VsdCBudXIsIHdlbGNoZSBUYWJzIGVpbiA8ZW0+
cmVndWwmYXVtbDtyZXIgVXNlcjwvZW0+IHp1cyZhdW1sO3R6bGljaCBzZWhlbiBkYXJmICZtZGFz
aDsgU3VwZXJVc2VyIHVuZCBGYWNoYXVmc2ljaHQgc2VoZW4gb2huZWhpbiBhbGxlcy48L3A+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlN0YW5kYXJkcmVnZWw6PC9zdHJv
bmc+IDxlbT5Mb2didWNoPC9lbT4gdW5kIDxlbT5TdGF0aXN0aWs8L2VtPiBzaW5kIGFiIFdlcmsg
bnVyIGYmdXVtbDtyIFN1cGVyVXNlciBzaWNodGJhci4gUmVndWwmYXVtbDtyZSBVc2VyIHNlaGVu
IHNpZSB6dW4mYXVtbDtjaHN0IG5pY2h0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPjxzdHJvbmc+SGllciBmcmVpc2NoYWx0YmFyIChmJnV1bWw7ciByZWd1bCZhdW1sO3JlIFVz
ZXIpOjwvc3Ryb25nPjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+TG9nYnVjaC1UYWI8L2I+ICZtZGFzaDsg
S29tcGxldHQtVGFiIG1pdCBkZXIgJkF1bWw7bmRlcnVuZ3MtSGlzdG9yaWUgZGVyIFBsYW51bmcu
PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+U3RhdGlzdGlrLVRh
YjwvYj4gJm1kYXNoOyBNYXN0ZXItU2NoYWx0ZXI7IG9obmUgZGllc2VuIFNjaGFsdGVyIGlzdCBT
dGF0aXN0aWsga29tcGxldHQgdW5zaWNodGJhci48L2xpPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxsaT5FaW56ZWxuZSA8Yj5TdGF0aXN0aWstQmVyZWljaGU8L2I+IChLUEktS2Fj
aGVsbiwgU2NoaWNodHZlcnRlaWx1bmcsIFdFLS9GVC1GYWlybmVzcywgQXVmZiZhdW1sO2xsaWdr
ZWl0ZW4sIEFid2VzZW5oZWl0cy1LYWNoZWxuLCBEZXRhaWwtVGFiZWxsZSkgJm1kYXNoOyBudXIg
d2lya3NhbSwgd2VubiBkZXIgU3RhdGlzdGlrLVRhYiBvYmVuIGZyZWlnZWdlYmVuIGlzdC4gU3Rh
bmRhcmRtJmF1bWw7JnN6bGlnO2lnIHNpY2h0YmFyLCBoaWVyIGVpbnplbG4gYWJzY2hhbHRiYXIu
PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8cD48c3Ryb25nPkFkbWluaXN0cmF0aW9uLVRhYjo8L3N0cm9uZz4gQmxlaWJ0
IGdydW5kc8OkdHpsaWNoIFN1cGVyVXNlci1vbmx5IHVuZCBpc3QgaGllciA8c3Ryb25nPm5pY2h0
PC9zdHJvbmc+IGFic2NoYWx0YmFyICZtZGFzaDsgdmVyaGluZGVydCBkYXMgdmVyc2VoZW50bGlj
aGUgQXVzc3BlcnJlbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25n
PlBlcnNvbmVuYmV6b2dlbmVyIFN0YXRpc3Rpay1PdmVycmlkZTo8L3N0cm9uZz4gSW0gVGFiIDxl
bT5QZXJzb25hbHZlcndhbHR1bmc8L2VtPiBrYW5uIHBybyBQZXJzb24gZGllIFN0YXRpc3Rpay1T
aWNodGJhcmtlaXQgZXhwbGl6aXQgYXVmIDxlbT5zaWNodGJhcjwvZW0+IG9kZXIgPGVtPnZlcmJv
cmdlbjwvZW0+IGdlc2V0enQgd2VyZGVuICZtZGFzaDsgZGFzICZ1dW1sO2JlcnNjaHJlaWJ0IHNv
d29obCBkZW4gRGVmYXVsdCAoREdMLzEuJm5ic3A7RUIpIGFscyBhdWNoIGRpZSBoaWVyIGdlc2V0
enRlIFNpY2h0YmFya2VpdC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ry
b25nPlNvZm9ydC1XaXJrdW5nOjwvc3Ryb25nPiAmQXVtbDtuZGVydW5nZW4gd2VyZGVuIHNvZm9y
dCBnZXNwZWljaGVydCB1bmQgZ3JlaWZlbiBkaXJla3QgJm1kYXNoOyBvaG5lIFJlbG9hZC4gQmVp
IGVpbmVtIGFrdGl2ZW4gVXNlci1Mb2dpbiBwYXNzdCBzaWNoIGRpZSBTaWRlYmFyIGRlcyBVc2Vy
cyBpbiBkZXIgbiZhdW1sO2Noc3RlbiBTeW5jLVBlcmlvZGUgKG1heC4mbmJzcDszJm5ic3A7U2Vr
dW5kZW4pIGFuLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg
ICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNpY2h0YmFy
a2VpdC1pbmhhbHQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAg
ICAgPCEtLSBUYWI6IEJhY2t1cHMgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p
bi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWJhY2t1cHMiPgogICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+
QmFja3VwcyAmYW1wOyBXaWVkZXJoZXJzdGVsbHVuZzwvaDI+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxidXR0b24gaWQ9ImJ0bi1iYWNrdXAtbmV1IiBjbGFzcz0iYnRuIGJ0bi1lcmZvbGciPisg
TmV1ZXMgQmFja3VwPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9ImFkbWluLWluZm8iIGRhdGEtaW5mby1rZXk9ImJh
Y2t1cHMiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNz
PSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dSBCYWNrdXBzPHNwYW4gY2xh
c3M9ImFkbWluLWluZm8tYmFkZ2UiPkF1ZmtsYXBwZW4gLyBadWtsYXBwZW48L3NwYW4+PC9zdW1t
YXJ5PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1pbmZvLWJvZHki
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXMgaXN0IGluIGVpbmVt
IEJhY2t1cD88L3N0cm9uZz4gRWluZSAxOjEtS29waWUgZGVyIERhdGVpIDxjb2RlPnBsYW51bmcu
anNvbjwvY29kZT4g4oCUIGFsc28gYWxsZSBTY2hpY2h0LUVpbnRyw6RnZSB1bmQgS29tbWVudGFy
ZSB6dW0gWmVpdHB1bmt0IGRlcyBCYWNrdXBzLiBQZXJzb25lbmxpc3RlLCBGZWllcnRhZ2UsIEZl
cmllbiB1bmQgYW5kZXJlIEFkbWluLUtvbmZpZ3VyYXRpb24gc2luZCA8ZW0+bmljaHQ8L2VtPiBU
ZWlsIGRlcyBCYWNrdXBzIChkaWUgbGllZ2VuIGluIDxjb2RlPmFkbWluLmpzb248L2NvZGU+KS48
L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhbm4gd2VyZGVuIEJh
Y2t1cHMgZXJzdGVsbHQ/PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5NYW51ZWxsPC9iPiAm
bWRhc2g7IEtsaWNrIGF1ZiA8ZW0+4oCeKyBOZXVlcyBCYWNrdXAiPC9lbT4gb2JlbiBvZGVyIGF1
ZiBkYXMgQmFja3VwLVN5bWJvbCBpbiBkZXIgSGF1cHQtVG9vbGJhci48L2xpPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Wb3IgRHVtbXlkYXRlbjwvYj4g4oCUIGF1dG9t
YXRpc2NoIHZvciBkZW0gRWluc3BpZWxlbiB2b24gVGVzdGRhdGVuLjwvbGk+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPlZvciBSZXNldDwvYj4g4oCUIGF1dG9tYXRpc2No
IHZvciBkZW0g4oCeUGxhbnVuZyB6dXLDvGNrc2V0emVuIi48L2xpPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxsaT48Yj5Wb3IgV2llZGVyaGVyc3RlbGx1bmc8L2I+IOKAlCBhdXRv
bWF0aXNjaCBiZXZvciBlaW4gQmFja3VwIGVpbmdlc3BpZWx0IHdpcmQgKFNpY2hlcmhlaXRza29w
aWUgZGVyIGFrdHVlbGxlbiBQbGFudW5nKS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+U3BlaWNoZXJv
cnQ6PC9zdHJvbmc+IDxjb2RlPmRhdGEvcGxhbnVuZ19iYWNrdXBfKi5qc29uPC9jb2RlPiBkaXJl
a3QgaW0gRkxELUFud2VuZHVuZ3NvcmRuZXIuIERpZSBCYWNrdXBzIHNpbmQgaW4gZGVyIDxjb2Rl
Pi5naXRpZ25vcmU8L2NvZGU+IGF1c2dlc2NobG9zc2VuIHVuZCB3ZXJkZW4gbmljaHQgdmVyc2lv
bmllcnQuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Sb3RhdGlv
bjo8L3N0cm9uZz4gTWF4aW1hbCA8c3Ryb25nPjIwIG1hbnVlbGxlIEJhY2t1cHM8L3N0cm9uZz4g
d2VyZGVuIGJlaGFsdGVuICZtZGFzaDsgZGFzICZhdW1sO2x0ZXN0ZSB3aXJkIGJlaW0gMjEuIEJh
Y2t1cCBhdXRvbWF0aXNjaCBlbnRmZXJudC4gQXV0by1CYWNrdXBzIHZvciBEdW1teWRhdGVuL1Jl
c2V0L1dpZWRlcmhlcnN0ZWxsdW5nIGhhYmVuIGVpZ2VuZSBQciZhdW1sO2ZpeGUgdW5kIHNpbmQg
dm9uIGRlciBSb3RhdGlvbiBhdXNnZW5vbW1lbi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8cD48c3Ryb25nPkJlcmVjaHRpZ3VuZzo8L3N0cm9uZz4gTnVyIEFkbWlucyAoU3VwZXJV
c2VyLCBGYWNoYXVmc2ljaHQsIEFkbWluLUZ1bmt0aW9uKSBkJnV1bWw7cmZlbiBCYWNrdXBzIGFu
bGVnZW4sIGhlcnVudGVybGFkZW4sIHdpZWRlcmhlcnN0ZWxsZW4gb2RlciBsJm91bWw7c2NoZW4u
IFJlZ3VsJmF1bWw7cmUgVXNlciBzZWhlbiBkZW4gVGFiIG5pY2h0LjwvcD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+QWt0aW9uZW4gcHJvIEJhY2t1cDo8L3N0cm9uZz48
L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGxpPjxiPldpZWRlcmhlcnN0ZWxsZW48L2I+IOKAlCBlcnNldHp0IGRpZSBh
a3R1ZWxsZSBQbGFudW5nIGR1cmNoIGRhcyBCYWNrdXAuIFZvcmhlciB3aXJkIGVpbmUgU2ljaGVy
aGVpdHNrb3BpZSBkZXIgamV0emlnZW4gUGxhbnVuZyBlcnN0ZWxsdCAoPGNvZGU+cGxhbnVuZ19i
YWNrdXBfdm9yX3dpZWRlcmhlcnN0ZWxsdW5nX+KApjwvY29kZT4pLCBmYWxscyBkdSB2ZXJzZWhl
bnRsaWNoIGRhcyBmYWxzY2hlIEJhY2t1cCBlaW5nZXNwaWVsdCBoYXN0LjwvbGk+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPkhlcnVudGVybGFkZW48L2I+IOKAlCBsw6Rk
dCBkaWUgSlNPTi1EYXRlaSBhbHMgRG93bmxvYWQuIE7DvHR6bGljaCBmw7xyIEFyY2hpdmllcnVu
ZyBvZGVyIFdlaXRlcmdhYmUuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bGk+PGI+TMO2c2NoZW48L2I+IOKAlCBlbnRmZXJudCBkaWUgQmFja3VwLURhdGVpIHBlcm1hbmVu
dC48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxwPjxzdHJvbmc+V2ljaHRpZyB2b3IgZGVtIFdpZWRlcmhlcnN0ZWxsZW46
PC9zdHJvbmc+IEFtIGJlc3RlbiB2b3JoZXIgYWxsZSBCZWFyYmVpdGVyIGluZm9ybWllcmVuLiBF
aW5lIFdpZWRlcmhlcnN0ZWxsdW5nIMO8YmVyc2NocmVpYnQgZGllIGFrdGl2ZSBQbGFudW5nIHNv
Zm9ydCDigJQgw4RuZGVydW5nZW4sIGRpZSBuYWNoIGRlbSBaZWl0cHVua3QgZGVzIEJhY2t1cHMg
Z2VtYWNodCB3dXJkZW4sIHNpbmQgZGFubiBpbiBkZXIgU2ljaGVyaGVpdHNrb3BpZSBhYnJ1ZmJh
ciwgYWJlciBuaWNodCBtZWhyIGluIGRlciBha3RpdmVuIFBsYW51bmcuPC9wPgogICAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAg
ICAgICAgICAgICAgICAgPGRpdiBpZD0iYmFja3VwLWxpc3RlLWVyZ2VibmlzIiBjbGFzcz0iZ2Vu
LWluZm8gdmVyc3RlY2t0IiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMnB4Ij48L2Rpdj4KICAgICAg
ICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImFkbWluLXRhYmVsbGUiIGlkPSJiYWNrdXAtdGFi
ZWxsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD48dHI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE4MHB4Ij5FcnN0ZWxsdCBhbTwvdGg+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjEzMHB4Ij5UeXA8L3Ro
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkRhdGVpbmFtZTwvdGg+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9IndpZHRoOjkwcHg7dGV4dC1hbGlnbjpyaWdo
dCI+R3LDtsOfZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9Indp
ZHRoOjMwMHB4Ij5Ba3Rpb25lbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+PC90
aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJiYWNrdXAtdGJvZHkiPjwv
dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIDwvZGl2
PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBJbXBvcnQgKEV4Y2VsLURhdGVpICsgQ29weS9Q
YXN0ZSkgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0
IiBpZD0iYWRtaW4tdGFiLWltcG9ydCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i
YWRtaW4ta29wZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5JbXBvcnQ8L2gyPgogICAg
ICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8IS0tID09PT09IFNl
a3Rpb24gMTogVm9sbC1JbXBvcnQgYXVzIEV4Y2VsLURhdGVpIChwcmltw6RyKSA9PT09PSAtLT4K
ICAgICAgICAgICAgICAgICAgICA8ZGV0YWlscyBjbGFzcz0iYWRtaW4taW5mbyIgZGF0YS1pbmZv
LWtleT0iZXhjZWwtaW1wb3J0IiBvcGVuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFy
eT48c3BhbiBjbGFzcz0iYWRtaW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+Vm9sbC1JbXBvcnQgYXVz
IEV4Y2VsLURhdGVpIChLb3JyZWt0dXJwbGFudW5nKTxzcGFuIGNsYXNzPSJhZG1pbi1pbmZvLWJh
ZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFyeT4KICAgICAgICAgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxwPjxzdHJvbmc+Vm9sbC1NaWdyYXRpb24gYXVzIGVpbmVyIEZMRC1FeGNl
bC1Wb3JsYWdlLjwvc3Ryb25nPiBOdXIgZsO8ciBTdXBlclVzZXIuIExpZXN0IGRpZSA8c3Ryb25n
PmtvbXBsZXR0ZSBEYXRlaTwvc3Ryb25nPiB1bmQgYnJpbmd0IG1pdDo8L3A+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxp
PjxzdHJvbmc+UGVyc29uZW48L3N0cm9uZz4gKGFiIFplaWxlJm5ic3A7MzMpOiBNYXRjaCBwZXIg
TmFjaG5hbWUgKyBWb3JuYW1lLCBuZXVlIGFubGVnZW4sIGZlaGxlbmRlIGRlYWt0aXZpZXJlbiwg
RXhjZWwtUmVpaGVuZm9sZ2Ugb3B0aW9uYWwgw7xiZXJuZWhtZW4uPC9saT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5TY2hpY2h0ZW48L3N0cm9uZz4gKGFsbGUg
VGFnZSDDlyBhbGxlIFBlcnNvbmVuKSBpbmtsLiA8c3Ryb25nPlBmbGljaHQtU2V0enVuZ2VuPC9z
dHJvbmc+IChYLVN1ZmZpeCBuYWNoIGRlbSBTY2hpY2h0Y29kZSkuPC9saT4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UYWdlc2RhdGVuPC9zdHJvbmc+IChaZWls
ZW4gNOKAkzkpOiBWb3JnYWJlLVNjaGljaHQsIFNvbGwtU3TDpHJrZSBGL04sIFNjaGljaHRsZWl0
dW5nIEYvTCB1bmQgUy9MLCBVbnRlcnN0w7x0enVuZyBGL04g4oCUIGJpbGRlbiBkaWUgVGFnZXNk
YXRlbi1Sb3RhdGlvbiB1bmQgVGFnZXMtT3ZlcnJpZGVzLjwvbGk+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+S29tbWVudGFyZTwvc3Ryb25nPiBhdXMgZGVuIEV4
Y2VsLVplbGxub3RpemVuIChtaXQgQXV0b3Ig4oCeRXhjZWwtSW1wb3J0IikuPC9saT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UZXJtaW5lPC9zdHJvbmc+ICha
ZWlsZW4gMjXigJMyOSk6IEJlc3ByZWNodW5nZW4sIMOcYnVuZ2VuLCBCQU8sIEJWQiwgRmVyaWVu
IOKAlCB3ZXJkZW4gYWxzIGdsZWljaHdlcnRpZ2UgU29uZGVydGVybWluZSBhbmdlbGVndDsgS2xh
c3NpZml6aWVydW5nIGVyZm9sZ3QgbmFjaCBJbXBvcnQgbWFudWVsbCBpbSBUZXJtaW5lLVRhYi48
L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxwPjxzdHJvbmc+Vm9yYWIgQmFja3VwITwvc3Ryb25nPiBEZXIgSW1wb3J0ZXIg
w7xiZXJzY2hyZWlidCBiZXN0ZWhlbmRlIFNjaGljaHRlbiBhbiBhbGxlbiBiZXRyb2ZmZW5lbiBU
YWdlbi4gRWluIGF1dG9tYXRpc2NoZXMgQmFja3VwICg8Y29kZT5wbGFudW5nX2JhY2t1cF92b3Jf
ZXhjZWxfaW1wb3J0X+KApjwvY29kZT4pIHdpcmQgc2VydmVyc2VpdGlnIHZvciBkZXIgw5xiZXJu
YWhtZSBhbmdlbGVndCDigJQgZWluIHp1c8OkdHpsaWNoZXMgbWFudWVsbGVzIHZpYSBUYWIg4oCe
QmFja3VwcyIgc2NoYWRldCBhYmVyIG5pY2h0LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxwPjxzdHJvbmc+RHJlaSBTY2hyaXR0ZTo8L3N0cm9uZz4gMSkgRGF0ZWkgd8OkaGxlbiAm
YW1wOyBhbmFseXNpZXJlbiDCtyAyKSBQZXJzb25lbi1NYXRjaCBwcsO8ZmVuIChDb25maWRlbmNl
LUJhZGdlcyDwn5+i8J+fofCflLQpIMK3IDMpIMOcYmVyc2ljaHQsIFRlcm1pbmUgc2ljaHRlbiwg
w5xiZXJuZWhtZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg
ICAgICAgICAgICA8L2RldGFpbHM+CgogICAgICAgICAgICAgICAgICAgIDwhLS0gU2Nocml0dCAx
OiBEYXRlaSB3w6RobGVuIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImV4Y2VsLWlt
cG9ydC1zY2hyaXR0MSIgY2xhc3M9ImV4Y2VsLWltcG9ydC1zY2hyaXR0IiBzdHlsZT0ibWFyZ2lu
LXRvcDoxNHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlNjaHJpdHQgMSDigJQgRXhj
ZWwtRGF0ZWkgd8OkaGxlbjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImZvcm0tZ3J1cHBlIiBzdHlsZT0ibWFyZ2luOjE0cHggMCI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImV4Y2VsLWltcG9ydC1kYXRlaSIgYWNjZXB0
PSIueGxzeCwueGxzbSIgY2xhc3M9ImZvcm0taW5wdXQiPgogICAgICAgICAgICAgICAgICAgICAg
ICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4
OyBnYXA6MTJweDsgYWxpZ24taXRlbXM6Y2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxidXR0b24gaWQ9ImJ0bi1leGNlbC1pbXBvcnQtcGFyc2VuIiBjbGFzcz0iYnRuIGJ0bi1w
cmltYWVyIiBkaXNhYmxlZD5EYXRlaSBlaW5sZXNlbiAmYW1wOyBhbmFseXNpZXJlbjwvYnV0dG9u
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImV4Y2VsLWltcG9ydC1zdGF0
dXMiIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTsgZm9udC1zaXplOjEycHgiPjwvc3Bh
bj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9k
aXY+CgogICAgICAgICAgICAgICAgICAgIDwhLS0gU2Nocml0dCAyOiBQZXJzb25lbi1XaXphcmQg
LS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZXhjZWwtaW1wb3J0LXNjaHJpdHQyIiBj
bGFzcz0iZXhjZWwtaW1wb3J0LXNjaHJpdHQgdmVyc3RlY2t0Ij4KICAgICAgICAgICAgICAgICAg
ICAgICAgPGgzPlNjaHJpdHQgMiDigJQgUGVyc29uZW4tWnVvcmRudW5nPC9oMz4KICAgICAgICAg
ICAgICAgICAgICAgICAgPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTsgZm9u
dC1zaXplOjEzcHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlkZW5jZS1CYWRn
ZXM6IPCfn6IgaG9jaCAoTmFjaG5hbWUgKyBWb3JuYW1lIG1hdGNoZWQpIMK3IPCfn6EgbWl0dGVs
IChudXIgdGVpbHdlaXNlKSDCtwogICAgICAgICAgICAgICAgICAgICAgICAgICAg8J+UtCBuaWVk
cmlnIChtZWhyZXJlIEthbmRpZGF0ZW4g4oCUIG1hbnVlbGwgd8OkaGxlbikuCiAgICAgICAgICAg
ICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFi
ZWxsZS1zY3JvbGwiIHN0eWxlPSJtYXgtaGVpZ2h0OjUwMHB4OyBvdmVyZmxvdy15OmF1dG87IG1h
cmdpbjoxNHB4IDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJh
ZG1pbi10YWJlbGxlIiBpZD0iZXhjZWwtaW1wb3J0LXBlcnNvbmVuLXRhYmVsbGUiPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD48dHI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx0aD5FeGNlbC1QZXJzb248L3RoPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8dGg+RnVua3Rpb248L3RoPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8dGg+TWF0Y2gtVm9yc2NobGFnPC90aD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHRoPkFrdGlvbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC90cj48L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0
Ym9keSBpZD0iZXhjZWwtaW1wb3J0LXBlcnNvbmVuLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDsgZ2FwOjEy
cHg7IGFsaWduLWl0ZW1zOmNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0
dG9uIGlkPSJidG4tZXhjZWwtaW1wb3J0LXp1LXVlYmVyc2ljaHQiIGNsYXNzPSJidG4gYnRuLXBy
aW1hZXIiPldlaXRlciB6dXIgw5xiZXJzaWNodDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4Y2VsLWltcG9ydC16dXJ1ZWNrLTEiIGNsYXNzPSJi
dG4gYnRuLXNlayI+WnVyw7xjazwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rp
dj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPCEtLSBT
Y2hyaXR0IDM6IMOcYmVyc2ljaHQgJiBDb25maXJtIC0tPgogICAgICAgICAgICAgICAgICAgIDxk
aXYgaWQ9ImV4Y2VsLWltcG9ydC1zY2hyaXR0MyIgY2xhc3M9ImV4Y2VsLWltcG9ydC1zY2hyaXR0
IHZlcnN0ZWNrdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5TY2hyaXR0IDMg4oCUIMOc
YmVyc2ljaHQgJmFtcDsgw5xiZXJuZWhtZW48L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8
ZGl2IGlkPSJleGNlbC1pbXBvcnQtdWViZXJzaWNodCIgc3R5bGU9Im1hcmdpbjoxNHB4IDAiPjwv
ZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRldGFpbHMgc3R5bGU9Im1hcmdpbjoxNHB4
IDA7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tcmFobWVuKTsgYm9yZGVyLXJhZGl1czo2cHg7IHBh
ZGRpbmc6OHB4IDEycHgiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFy
eSBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IGZvbnQtd2VpZ2h0OjYwMCI+VGVybWluZSB2b3IgZGVt
IEltcG9ydCBwcsO8ZmVuPC9zdW1tYXJ5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAg
c3R5bGU9ImZvbnQtc2l6ZToxMnB4OyBjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7IG1hcmdp
bjo4cHggMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsZSBUZXJtaW5lIGF1
cyBkZW4gRXhjZWwtWmVpbGVuIDI1Jm5kYXNoOzI5IHdlcmRlbiBhbHMgZ2xlaWNod2VydGlnZSA8
ZW0+SGlud2Vpc2U8L2VtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1dW1sO2Jl
cm5vbW1lbiAmbWRhc2g7IGRpZSBaZWlsZW4tVm9yZ2FiZSAoMjU9QmVzcHJlY2h1bmcsIDI2PSZV
dW1sO2J1bmcsIDI3PUJBTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOD1CVkIs
IDI5PUZlcmllbikgd2lyZCBpZ25vcmllcnQsIHdlaWwgZGllIFp1b3JkbnVuZyBpbiBkZXIgUHJh
eGlzIG5pY2h0IGVpbmdlaGFsdGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3Vy
ZGUuIEtsYXNzaWZpemllcnVuZyBlcmZvbGd0IG5hY2ggZGVtIEltcG9ydCBtYW51ZWxsIGltIFRl
cm1pbmUtVGFiLiAmVXVtbDtiZXIgZGllCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U2tpcC1DaGVja2JveCBrYW5uIGVpbiBlaW56ZWxuZXIgVGVybWluIHZvciBkZXIgJlV1bWw7YmVy
bmFobWUgYXVzZ2VsYXNzZW4gd2VyZGVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9w
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiZWxsZS1zY3JvbGwi
IHN0eWxlPSJtYXgtaGVpZ2h0OjQwMHB4OyBvdmVyZmxvdy15OmF1dG8iPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImV4Y2Vs
LWltcG9ydC10ZXJtaW5lLXRhYmVsbGUiIHN0eWxlPSJmb250LXNpemU6MTJweCI+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD48dHI+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8dGg+RGF0dW08L3RoPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHRoPlRpdGVsIChaZWxsd2VydCk8L3RoPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkJlc2NocmVpYnVuZyAoQ29tbWVudCk8
L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3
aWR0aDo1MHB4Ij5Ta2lwPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC90cj48L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHkg
aWQ9ImV4Y2VsLWltcG9ydC10ZXJtaW5lLXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rp
dj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgoKICAgICAgICAgICAgICAgICAg
ICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdh
cDo2cHg7IG1hcmdpbjoxNHB4IDA7IHBhZGRpbmc6MTJweDsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1yYWhtZW4pOyBib3JkZXItcmFk
aXVzOjZweDsgYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCkiPgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHN0cm9uZz7imqAgVm9yaGVyIEJhY2t1cCBlcnN0ZWxsZW4hPC9zdHJvbmc+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEycHg7
IGNvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRGVyIEltcG9ydCDDvGJlcnNjaHJlaWJ0IGJlc3RlaGVuZGUgU2NoaWNodGVuIGFuIGFs
bGVuIGJldHJvZmZlbmVuIFRhZ2VuLiBFaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvbWF0aXNjaGVzIEJhY2t1cCB3aXJkIHp3YXIgc2VydmVyc2VpdGlnIHZvciBkZXIgw5xi
ZXJuYWhtZSBhbmdlbGVndAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGFudW5n
X2JhY2t1cF92b3JfZXhjZWxfaW1wb3J0X+KApiksIGFiZXIgZWluIHp1c8OkdHpsaWNoZXMgbWFu
dWVsbGVzIEJhY2t1cAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGFkZXQgbmlj
aHQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhjZWwtaW1wb3J0LWJhY2t1cCIgY2xhc3M9ImJ0
biBidG4tc2VrIiBzdHlsZT0iYWxpZ24tc2VsZjpmbGV4LXN0YXJ0OyBtYXJnaW4tdG9wOjhweCI+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFja3VwIGpldHp0IGFubGVnZW4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAg
ICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IHN0eWxlPSJib3JkZXI6
MXB4IHNvbGlkIHZhcigtLXJhaG1lbik7IGJvcmRlci1yYWRpdXM6NnB4OyBwYWRkaW5nOjEycHg7
IG1hcmdpbjoxNHB4IDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxlZ2VuZCBzdHls
ZT0icGFkZGluZzowIDhweCI+V2FzIMO8YmVybmVobWVuPzwvbGVnZW5kPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyBtYXJnaW46NHB4IDAi
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIg
aWQ9ImV4Y2VsLWltcG9ydC1vcHQtc2NoaWNodGVuIiBjaGVja2VkPiBTY2hpY2h0ZW4gKyBQZmxp
Y2h0LVNldHp1bmdlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT0iZGlzcGxheTpibG9jazsgbWFyZ2lu
OjRweCAwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hl
Y2tib3giIGlkPSJleGNlbC1pbXBvcnQtb3B0LWtvbW1lbnRhcmUiIGNoZWNrZWQ+IEtvbW1lbnRh
cmUgKGFscyBBdXRob3Ig4oCeRXhjZWwtSW1wb3J0IikKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRp
c3BsYXk6YmxvY2s7IG1hcmdpbjo0cHggMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZXhjZWwtaW1wb3J0LW9wdC1zb25kZXJ0ZXJt
aW5lIiBjaGVja2VkPiBTb25kZXJ0ZXJtaW5lIChaZWlsZW4mbmJzcDsyNSZuZGFzaDsyOSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IG1hcmdpbjo0cHggMCI+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZXhjZWwt
aW1wb3J0LW9wdC10YWdlc2RhdGVuIiBjaGVja2VkPiBUYWdlc2RhdGVuIC8gU2NoaWNodHJvdGF0
aW9uIChaZWlsZW4mbmJzcDs0Jm5kYXNoOzk6IFZvcmdhYmUtU2NoaWNodCwgU29sbC1TdCZhdW1s
O3JrZSwgRnImdXVtbDtoLVNjaGljaHRsZWl0dW5nLCBTcCZhdW1sO3QtU2NoaWNodGxlaXR1bmcs
IFVudGVyc3QmdXVtbDt0enVuZykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21h
bGwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyBtYXJnaW4t
bGVmdDoyMnB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0enQgPGNv
ZGU+YWRtaW4udGFnZXNkYXRlblJvdGF0aW9uPC9jb2RlPiBuZXUgYXVzIGRlbiBlcnN0ZW4gMjEg
VGFnZW4gZGVyIEV4Y2VsIHVuZCBzY2hyZWlidCBmJnV1bWw7ciBhbGxlIHdlaXRlcmVuIFRhZ2Ug
T3ZlcnJpZGVzICg8Y29kZT5wbGFudW5nLnRhZ2VzZGF0ZW48L2NvZGU+KSwgd28gZGllIFdlcnRl
IHZvbSBSb3RhdGlvbnMtU2xvdCBhYndlaWNoZW4uCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IG1hcmdp
bjo0cHggMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNo
ZWNrYm94IiBpZD0iZXhjZWwtaW1wb3J0LW9wdC1yZWloZW5mb2xnZSIgY2hlY2tlZD4gUGVyc29u
ZW4tUmVpaGVuZm9sZ2UgZm9sZ3QgRXhjZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDsgZ2FwOjEycHg7IGFsaWduLWl0ZW1z
OmNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhj
ZWwtaW1wb3J0LXVlYmVybmVobWVuIiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIiPkpldHp0IMO8YmVy
bmVobWVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJi
dG4tZXhjZWwtaW1wb3J0LXp1cnVlY2stMiIgY2xhc3M9ImJ0biBidG4tc2VrIj5adXLDvGNrPC9i
dXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0iZXhjZWwtaW1wb3J0
LXVlYmVybmFobWUtc3RhdHVzIiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQt
c2l6ZToxMnB4Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg
ICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8aHIgc3R5bGU9Im1hcmdp
bjozMnB4IDA7IGJvcmRlcjpub25lOyBib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1yYWhtZW4p
Ij4KCiAgICAgICAgICAgICAgICAgICAgPCEtLSA9PT09PSBTZWt0aW9uIDI6IENvcHkgJiBQYXN0
ZS1JbXBvcnQgKHNla3VuZMOkciwgZWluZ2VrbGFwcHQpID09PT09IC0tPgogICAgICAgICAgICAg
ICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJpbXBvcnQt
cGFzdGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz0iYWRt
aW4taW5mby1jaGV2Ij7ilrg8L3NwYW4+U2VsZWt0aXZlciBJbXBvcnQgcGVyIENvcHkgJmFtcDsg
UGFzdGU8c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBl
bjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFk
bWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkFs
dGVybmF0aXZlIGYmdXVtbDtyIHNlbGVrdGl2ZSAmVXVtbDtiZXJ0cmFndW5nZW4uPC9zdHJvbmc+
IE51ciBmJnV1bWw7ciBTdXBlclVzZXIuIFdlbm4gZHUgbnVyIGVpbmVuIFplbGxiZXJlaWNoICh6
LkIuIGVpbmVuIGVpbnplbG5lbiBNb25hdCBvZGVyIGVpbnplbG5lIFBlcnNvbmVuKSBhdXMgZWlu
ZXIgRXhjZWwtV3Vuc2NocGxhbnVuZyAmdXVtbDtiZXJuZWhtZW4gd2lsbHN0ICZtZGFzaDsgb2hu
ZSBkZW4gdm9sbGVuIEV4Y2VsLUltcG9ydC1XaXphcmQ6PC9wPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPG9sPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5JbiBFeGNl
bCBkZW4gWmVsbGJlcmVpY2ggKFplaWxlbiA9IFBlcnNvbmVuLCBTcGFsdGVuID0gVGFnZSkgbWFy
a2llcmVuIHVuZCBtaXQgPGtiZD5DbWQvQ3RybCtDPC9rYmQ+IGtvcGllcmVuLiBFeGNlbCBrb3Bp
ZXJ0IGF1dG9tYXRpc2NoIHRhYi1nZXRyZW5udCAmbWRhc2g7IGRhcyBwYXNzdCB6dW0gRXJ3YXJ0
dW5nc2Zvcm1hdC48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5IaWVy
IDxzdHJvbmc+U3RhcnRkYXR1bTwvc3Ryb25nPiAoRGF0dW0gZGVyIGVyc3RlbiBrb3BpZXJ0ZW4g
U3BhbHRlKSB1bmQgPHN0cm9uZz5lcnN0ZSBQZXJzb248L3N0cm9uZz4gdyZhdW1sO2hsZW4gJm1k
YXNoOyBkYXMgaXN0IGRpZSBvYmVyZSBsaW5rZSBFY2tlIGRlcyBlaW56dWYmdXVtbDtnZW5kZW4g
QmVyZWljaHMuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+SW5zIFRl
eHRmZWxkIGVpbmYmdXVtbDtnZW4gKDxrYmQ+Q21kL0N0cmwrVjwva2JkPikuPC9saT4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGVtPuKAnkFuYWx5c2llcmVuIjwvZW0+IGts
aWNrZW4gJm1kYXNoOyBkZXIgSW1wb3J0IGVya2VubnQgWmVpbGVuL1NwYWx0ZW4sIHByJnV1bWw7
ZnQgU2NoaWNodGNvZGVzIGdlZ2VuIGRpZSBkZWZpbmllcnRlbiBDb2RlcyAoVGFiIFNjaGljaHRj
b2RlcyksIHplaWd0IEtvbmZsaWt0ZSBtaXQgYmVyZWl0cyBnZXBmbGVndGVuIEVpbnRyJmF1bWw7
Z2VuLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPktvbmZsaWt0ZSBw
ZXIgRHJvcGRvd24gYXVmbCZvdW1sO3NlbiAoRXhjZWwtV2VydCAmdXVtbDtiZXJuZWhtZW4gdnMu
IGJlc3RlaGVuZGVuIFdlcnQgYmVoYWx0ZW4pLCBkYW5uIDxlbT7igJ4mVXVtbDtiZXJuZWhtZW4i
PC9lbT4uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb2w+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlBmbGljaHQtU2V0enVuZzo8L3N0cm9uZz4gWmVs
bGVuIG1pdCBTdWZmaXggPGNvZGU+IFg8L2NvZGU+ICh6LkIuIDxjb2RlPkYgWDwvY29kZT4gJm1k
YXNoOyBGcsO8aGRpZW5zdCBtaXQgUGZsaWNodC1NYXJraWVydW5nKSB3ZXJkZW4gYWxzIFBmbGlj
aHQtU2V0enVuZyAmdXVtbDtiZXJub21tZW4uIERhcyBYIG11c3MgZHVyY2ggZWluIExlZXJ6ZWlj
aGVuIHZvbSBTY2hpY2h0Y29kZSBnZXRyZW5udCBzZWluLjwvcD4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxwPjxzdHJvbmc+VW5iZWthbm50ZSBTY2hpY2h0Y29kZXM6PC9zdHJvbmc+IFdl
cmRlbiBhbHMgS29uZmxpa3QgZ2VtZWxkZXQgdW5kIG5pY2h0IHN0aWxsc2Nod2VpZ2VuZCBpbXBv
cnRpZXJ0ICZtZGFzaDsgZW50d2VkZXIgdm9yaGVyIGRlbiBDb2RlIGltIFRhYiA8ZW0+U2NoaWNo
dGNvZGVzPC9lbT4gYW5sZWdlbiBvZGVyIGJlaSBkZXIgS29uZmxpa3QtQXVmbCZvdW1sO3N1bmcg
JnV1bWw7YmVyc3ByaW5nZW4uPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0
cm9uZz5XYXMgd2lyZCBuaWNodCAmdXVtbDtiZXJub21tZW4/PC9zdHJvbmc+IE51ciBkaWUgU2No
aWNodGVuIHVuZCBQZmxpY2h0LU1hcmtpZXJ1bmdlbiwga2VpbmUgS29tbWVudGFyZSwgU29uZGVy
dGVybWluZSwgVGFnZXNkYXRlbiBvZGVyIFBlcnNvbmVuLUFrdGlvbmVuICZtZGFzaDsgZGFmJnV1
bWw7ciBpc3QgZGVyIFZvbGwtSW1wb3J0IG9iZW4gZ2VkYWNodC48L3A+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbXBvcnQtZm9ybSIgc3R5bGU9Im1heC13aWR0aDo5MDBw
eDsgbWFyZ2luLXRvcDoxNHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0i
ZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsgZ2FwOjEycHggMjRw
eDsgbWFyZ2luLWJvdHRvbToxNHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImZvcm0tZ3J1cHBlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFi
ZWwgZm9yPSJpbXBvcnQtc3RhcnQtZGF0dW0iPlN0YXJ0ZGF0dW0gKGVyc3RlIFNwYWx0ZSk8L2xh
YmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJkYXRlIiBp
ZD0iaW1wb3J0LXN0YXJ0LWRhdHVtIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEw
MCUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGxhYmVsIGZvcj0iaW1wb3J0LXN0YXJ0LXBlcnNvbiI+RXJzdGUgUGVyc29u
IChvYmVyc3RlIFplaWxlKTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHNlbGVjdCBpZD0iaW1wb3J0LXN0YXJ0LXBlcnNvbiIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxl
PSJ3aWR0aDoxMDAlIj48L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjE0cHgiPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iaW1wb3J0LXRleHRhcmVhIj5FeGNl
bC1EYXRlbiBlaW5mw7xnZW4gKFRhYi1nZXRyZW5udCk6PC9sYWJlbD4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iaW1wb3J0LXRleHRhcmVhIiBjbGFzcz0iZm9ybS1p
bnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7IGhlaWdodDoyMDBweDsgZm9udC1mYW1pbHk6bW9ub3Nw
YWNlOyBmb250LXNpemU6MTFweCIgcGxhY2Vob2xkZXI9IkluIEV4Y2VsIFplbGxlbiBtYXJraWVy
ZW4gdW5kIGtvcGllcmVuLCBoaWVyIGVpbmbDvGdlbi4gVGFicyB0cmVubmVuIFNwYWx0ZW4sIEVu
dGVyIHRyZW5udCBaZWlsZW4uIj48L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICA8
L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4OyBn
YXA6MTJweDsgYWxpZ24taXRlbXM6Y2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxidXR0b24gaWQ9ImJ0bi1pbXBvcnQtYW5hbHlzaWVyZW4iIGNsYXNzPSJidG4gYnRuLXByaW1h
ZXIiPkFuYWx5c2llcmVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0
dG9uIGlkPSJidG4taW1wb3J0LWxlZXJlbiIgY2xhc3M9ImJ0biBidG4tc2VrIj5UZXh0ZmVsZCBs
ZWVyZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSJpbXBv
cnQtc3RhdHVzIiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZToxMnB4
Ij48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg
ICAgICAgICA8ZGl2IGlkPSJpbXBvcnQtZXJnZWJuaXMiIGNsYXNzPSJ2ZXJzdGVja3QiIHN0eWxl
PSJtYXJnaW4tdG9wOjIwcHgiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBUYWI6IFRlc3RkYXRlbiAt
LT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRhYiB2ZXJzdGVja3QiIGlkPSJh
ZG1pbi10YWItdGVzdGRhdGVuIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1p
bi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlRlc3RkYXRlbiAvIER1bW15ZGF0
ZW48L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxk
ZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJ0ZXN0ZGF0ZW4iIG9wZW4+
CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFuIGNsYXNzPSJhZG1pbi1pbmZv
LWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dSBUZXN0ZGF0ZW4gLyBSZXNldDxzcGFuIGNsYXNz
PSJhZG1pbi1pbmZvLWJhZGdlIj5BdWZrbGFwcGVuIC8gWnVrbGFwcGVuPC9zcGFuPjwvc3VtbWFy
eT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4taW5mby1ib2R5Ij4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V29mJnV1bWw7cj88L3N0cm9u
Zz4gRGllc2UgRnVua3Rpb25lbiBzaW5kIGF1c3NjaGxpZSZzemxpZztsaWNoIGYmdXVtbDtyIFRl
c3QtLCBEZW1vLSB1bmQgRWluYXJiZWl0dW5nc3p3ZWNrZSBnZWRhY2h0LiBCZWlkZSBlcnN0ZWxs
ZW4gPHN0cm9uZz5hdXRvbWF0aXNjaCBlaW4gQmFja3VwPC9zdHJvbmc+IGRlciBha3R1ZWxsZW4g
UGxhbnVuZywgYmV2b3Igc2llIGF1c2dlZiZ1dW1sO2hydCB3ZXJkZW4gJm1kYXNoOyBkaWUgU2lj
aGVyaGVpdHNrb3BpZW4gbGllZ2VuIGluIDxjb2RlPmRhdGEvcGxhbnVuZ19iYWNrdXBfdm9yXyou
anNvbjwvY29kZT4gdW5kIGsmb3VtbDtubmVuIGplZGVyemVpdCAmdXVtbDtiZXIgZGllIFN1YnNl
a3Rpb24gPGVtPkJhY2t1cHM8L2VtPiB3aWVkZXJoZXJnZXN0ZWxsdCB3ZXJkZW4uPC9wPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5EdW1teWRhdGVuIGVpbnNwaWVsZW48
L3N0cm9uZz4gKGdyJnV1bWw7bmVyIEJ1dHRvbik6IEYmdXVtbDtsbHQgZGVuIFBsYW51bmdzemVp
dHJhdW0gbWl0IHJlYWxpc3Rpc2NoZW4gU2NoaWNodC0sIEFid2VzZW5oZWl0cy0gdW5kIFNvbmRl
cmVpbnRyJmF1bWw7Z2VuIGYmdXVtbDtyIGRpZSBoaW50ZXJsZWd0ZW4gUGVyc29uZW4gJm1kYXNo
OyBhbHMgVHJhaW5pbmdzLURhdGVuc2F0eiBmJnV1bWw7ciBuZXVlIERHTC8xLiZuYnNwO0VCLiA8
c3Ryb25nPlBlcnNvbmVubGlzdGUsIEZlaWVydGFnZSwgU2NoaWNodGNvZGVzIHVuZCBhbGxlIGFu
ZGVyZW4gRWluc3RlbGx1bmdlbiBibGVpYmVuIHVudmVyJmF1bWw7bmRlcnQuPC9zdHJvbmc+IEJl
c3RlaGVuZGUgU2NoaWNodGVpbnRyJmF1bWw7Z2Ugd2VyZGVuICZ1dW1sO2JlcnNjaHJpZWJlbi48
L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlBsYW51bmcgenVyJnV1
bWw7Y2tzZXR6ZW48L3N0cm9uZz4gKHJvdGVyIEJ1dHRvbik6IEwmb3VtbDtzY2h0IDxzdHJvbmc+
YWxsZTwvc3Ryb25nPiBTY2hpY2h0LUVpbnRyJmF1bWw7Z2UsIFBmbGljaHQtTWFya2llcnVuZ2Vu
LCBLb21tZW50YXJlLCBEU00tVG9nZ2xlcyB1bmQgV29jaGVubm90aXplbi4gRGllIFBlcnNvbmVu
bGlzdGUsIEdydXBwZW4sIEZlaWVydGFnZSwgRmVyaWVuLCBTY2hpY2h0Y29kZXMsIFNvbmRlcnRl
cm1pbmUgdW5kIGFsbGUgYW5kZXJlbiBFaW5zdGVsbHVuZ2VuIGJsZWliZW4gZXJoYWx0ZW4uIEJh
Y2t1cCB3aXJkIHZvcmhlciBhdXRvbWF0aXNjaCBlcnN0ZWxsdC48L3A+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8cD48c3Ryb25nPkJlcmVjaHRpZ3VuZzo8L3N0cm9uZz4gTnVyIFN1cGVy
VXNlciBkJnV1bWw7cmZlbiBkaWVzZSBiZWlkZW4gQWt0aW9uZW4gYXVzZiZ1dW1sO2hyZW4gJm1k
YXNoOyBuaWNodCBmJnV1bWw7ciBGYWNoYXVmc2ljaHRlbiBvZGVyIEFkbWlucyBmcmVpZ2VnZWJl
bi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldpZWRlcmhlcnN0
ZWxsdW5nOjwvc3Ryb25nPiAmVXVtbDtiZXIgZGllIFN1YnNla3Rpb24gPGVtPkJhY2t1cHM8L2Vt
PiBpbiBkaWVzZW0gVGFiIGtvbWZvcnRhYmVsIHBlciBLbGljay4gVm9yaGVyIHdpcmQgYXV0b21h
dGlzY2ggZWluZSBTaWNoZXJoZWl0c2tvcGllIGRlciBha3R1ZWxsZW4gUGxhbnVuZyBlcnN0ZWxs
dCAoPGNvZGU+cGxhbnVuZ19iYWNrdXBfdm9yX3dpZWRlcmhlcnN0ZWxsdW5nX+KApjwvY29kZT4p
LCBmYWxscyBtYW4gdmVyc2VoZW50bGljaCBkYXMgZmFsc2NoZSBCYWNrdXAgZWluc3BpZWx0Ljwv
cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+JiN4MjZBMDsgVm9yc2lj
aHQgaW0gUHJvZHVrdGl2YmV0cmllYjo8L3N0cm9uZz4gSW0gbGF1ZmVuZGVuIFBsYW51bmdzYmV0
cmllYiBkaWVzZSBCdXR0b25zIDxzdHJvbmc+bnVyIG1pdCBBYnNwcmFjaGU8L3N0cm9uZz4gbnV0
emVuISBBdWNoIHdlbm4gQmFja3VwcyBlcnN0ZWxsdCB3ZXJkZW4gJm1kYXNoOyBiZWkgYWt0aXZl
biBCZWFyYmVpdGVybiBlbnRzdGVoZW4gS29uZmxpa3RlIG1pdCBkZXIgTGl2ZS1TeW5jLCB1bmQg
dW5nZXMmYXVtbDt0dGlndGUgJkF1bWw7bmRlcnVuZ2VuIGsmb3VtbDtubmVuIHZlcmxvcmVuIGdl
aGVuLiBJbSBJZGVhbGZhbGwgdm9yaGVyIGFsbGUgYWt0aXZlbiBVc2VyIGluZm9ybWllcmVuLCBk
YXNzIHNpZSBpaHJlbiBUYWIgc2NobGllJnN6bGlnO2VuLjwvcD4KICAgICAgICAgICAgICAgICAg
ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgICAgICAg
ICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDsgZ2FwOjE2cHg7IGZsZXgtd3JhcDp3cmFw
OyBtYXJnaW4tdG9wOjE2cHgiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJm
bGV4OjE7IG1pbi13aWR0aDoyODBweDsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1yYWhtZW4pOyBi
b3JkZXItcmFkaXVzOjhweDsgcGFkZGluZzoyMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxoMyBzdHlsZT0ibWFyZ2luOjAgMCA4cHggMCI+RHVtbXlkYXRlbiBlaW5zcGllbGVuPC9o
Mz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0
LWdlZGltbXQpOyBtYXJnaW46MCAwIDE2cHggMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRsO8bGx0IGRlbiBQbGFudW5nc3plaXRyYXVtIG1pdCByZWFsaXN0aXNjaGVuIFNjaGlj
aHQtLCBBYndlc2VuaGVpdHMtIHVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNv
bmRlcmVpbnRyw6RnZW4gZsO8ciBkaWUgaGludGVybGVndGVuIFBlcnNvbmVuIOKAlCBhbHMgVHJh
aW5pbmdzLURhdGVuc2F0ei4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCZXN0ZWhl
bmRlIFBlcnNvbmVuIHVuZCBFaW5zdGVsbHVuZ2VuIGJsZWliZW4gZXJoYWx0ZW4uCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0
dG9uIGlkPSJidG4tZHVtbXlkYXRlbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciI+RHVtbXlkYXRl
biBlaW5zcGllbGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmbGV4OjE7IG1pbi13aWR0aDoyODBweDsg
Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1yYWhtZW4pOyBib3JkZXItcmFkaXVzOjhweDsgcGFkZGlu
ZzoyMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBzdHlsZT0ibWFyZ2luOjAg
MCA4cHggMCI+UGxhbnVuZyB6dXLDvGNrc2V0emVuPC9oMz4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxwIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWdlZGltbXQpOyBtYXJnaW46MCAwIDE2
cHggMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTMO2c2NodCA8c3Ryb25nPmFs
bGU8L3N0cm9uZz4gRWludHLDpGdlIHVuZCBLb21tZW50YXJlLiBEaWUgUGVyc29uZW5saXN0ZSwg
R3J1cHBlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWllcnRhZ2UgdW5kIGFs
bGUgYW5kZXJlbiBFaW5zdGVsbHVuZ2VuIGJsZWliZW4gZXJoYWx0ZW4uCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlk
PSJidG4tcmVzZXQiIGNsYXNzPSJidG4iIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWZhcmJlLWZl
aGxlcik7Y29sb3I6I2ZmZiI+UGxhbnVuZyB6dXLDvGNrc2V0emVuPC9idXR0b24+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9InRlc3RkYXRlbi1lcmdlYm5pcyIgY2xhc3M9InZlcnN0ZWNr
dCIgc3R5bGU9Im1hcmdpbi10b3A6MTZweCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4K
CiAgICAgICAgICAgICAgICA8IS0tIFRhYjogRmFjaGF1ZnNpY2h0ZW4gLS0+CiAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJhZG1pbi10YWIgdmVyc3RlY2t0IiBpZD0iYWRtaW4tdGFiLWZhY2hh
dWZzaWNodGVuIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4K
ICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkZhY2hhdWZzaWNodC1WZXJ3YWx0dW5nPC9oMj4K
ICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZhY2hhdWZzaWNodC1uZXUi
IGNsYXNzPSJidG4gYnRuLWVyZm9sZyI+KyBOZXVlIEZhY2hhdWZzaWNodDwvYnV0dG9uPgogICAg
ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNz
PSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5PSJmYWNoYXVmc2ljaHRlbiIgb3Blbj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9ImFkbWluLWluZm8tY2hldiI+
4pa4PC9zcGFuPkhpbndlaXNlIHp1ciBGYWNoYXVmc2ljaHQtUm9sbGU8c3BhbiBjbGFzcz0iYWRt
aW4taW5mby1iYWRnZSI+QXVma2xhcHBlbiAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcyBpc3QgZWluZSBGYWNoYXVmc2lj
aHQ/PC9zdHJvbmc+IEVpbmUgUGVyc29uIG1pdCBlcndlaXRlcnRlbiBPdmVycmlkZS1SZWNodGVu
IGluIGRlciBTY2hpY2h0cGxhbnVuZy4gRmFjaGF1ZnNpY2h0ZW4gZCZ1dW1sO3JmZW4gWmVsbGVu
IGFuZGVyZXIgVXNlciAmdXVtbDtiZXJzY2hyZWliZW4gJm1kYXNoOyBhdWNoIDxzdHJvbmc+UGZs
aWNodC1TZXR6dW5nZW48L3N0cm9uZz4gdW5kIGdlcmFkZSB2b24gYW5kZXJlbiBVc2VybiA8c3Ry
b25nPmluIEJlYXJiZWl0dW5nIGJlZmluZGxpY2hlIFplbGxlbjwvc3Ryb25nPiAoQ2VsbC1Mb2Nr
LU92ZXJyaWRlKS4gU2llIGsmb3VtbDtubmVuIGFsc28gPGVtPmplZGVyemVpdDwvZW0+IGFyYmVp
dGVuLCBvaG5lIHZvbiBTcGVycmVuIG9kZXIgUGZsaWNodC1NYXJraWVydW5nZW4gYmxvY2tpZXJ0
IHp1IHdlcmRlbiAmbWRhc2g7IHdpY2h0aWcgZiZ1dW1sO3Iga3VyemZyaXN0aWdlIEVpbmdyaWZm
ZSB3aWUgS3JhbmstTWVsZHVuZ2VuLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw
PjxzdHJvbmc+SGllcmFyY2hpZTo8L3N0cm9uZz4gPHN0cm9uZz5TdXBlclVzZXI8L3N0cm9uZz4g
KHZvbGxlIEFkbWluLVJlY2h0ZSkgJnJhcnI7IDxzdHJvbmc+RmFjaGF1ZnNpY2h0PC9zdHJvbmc+
IChPdmVycmlkZS1SZWNodGUgb2huZSBTdXBlclVzZXItVmVyd2FsdHVuZykgJnJhcnI7IDxzdHJv
bmc+cmVndWwmYXVtbDtyZXIgVXNlcjwvc3Ryb25nPiAoZWlnZW5lIFNjaGljaHRlbiArIG5pY2h0
LVBmbGljaHQtWmVsbGVuIGFuZGVyZXIpLiBBZG1pbiBpc3QgPGVtPmtlaW5lPC9lbT4gZWlnZW5l
IFJvbGxlLCBzb25kZXJuIGVpbmUgRnVua3Rpb24gKERHTC8xLiZuYnNwO0VCKSAmbWRhc2g7IFN1
cGVyVXNlciB3ZXJkZW4gdm9tIFNlcnZlciBhdXRvbWF0aXNjaCBhdXMgUGVyc29uZW4gbWl0IEZ1
bmt0aW9uIDxjb2RlPkRHTDwvY29kZT4gb2RlciA8Y29kZT4xLiZuYnNwO0VCPC9jb2RlPiBhYmdl
bGVpdGV0LCBGYWNoYXVmc2ljaHRlbiBhdXMgPGNvZGU+MS4mbmJzcDtFQiZuYnNwO1YuPC9jb2Rl
Pi48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkF1dG8tU3luYyBt
aXQgZGVyIFBlcnNvbmFsdmVyd2FsdHVuZzo8L3N0cm9uZz4gQmVpbSBTcGVpY2hlcm4gZWluZXMg
UGVyc29uZW4tRGF0ZW5zYXR6ZXMgbWl0IEZ1bmt0aW9uIDxjb2RlPjEuJm5ic3A7RUImbmJzcDtW
LjwvY29kZT4gd2lyZCBhdXRvbWF0aXNjaCBlaW4gRmFjaGF1ZnNpY2h0LUVpbnRyYWcgYW5nZWxl
Z3Q7IHZlcmxpZXJ0IGRpZSBQZXJzb24gZGllIEZ1bmt0aW9uIG9kZXIgd2lyZCBpbmFrdGl2LCB3
aXJkIGRlciBFaW50cmFnIHdpZWRlciBlbnRmZXJudC4gTWFudWVsbCBnZXBmbGVndGUgRWludHIm
YXVtbDtnZSBvaG5lIFBlcnNvbmVuLU1hdGNoIChFeHRlcm5lKSBibGVpYmVuIHVuYW5nZXRhc3Rl
dC48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPlNpY2hlcmhlaXRz
aGlud2Vpczo8L3N0cm9uZz4gTnVyIFN1cGVyVXNlciBrJm91bWw7bm5lbiBkaWVzZSBMaXN0ZSBi
ZWFyYmVpdGVuICZtZGFzaDsgc29uc3QgayZvdW1sO25udGVuIHNpY2ggRmFjaGF1ZnNpY2h0ZW4g
Z2VnZW5zZWl0aWcgb2RlciB3ZWl0ZXJlIGVyZyZhdW1sO256ZW4sIG9obmUgU3VwZXJVc2VyLVp1
c3RpbW11bmcuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5GZWxk
ZXI6PC9zdHJvbmc+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5OYW1lPC9iPiAmbWRhc2g7IEtsYXJuYW1l
IHp1ciBJZGVudGlmaWthdGlvbiAoRm9ybWF0OiA8ZW0+4oCeTmFjaG5hbWUsIFZvcm5hbWUiPC9l
bT4pLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxiPk5XLUtlbm51
bmc8L2I+ICZtZGFzaDsgV2luZG93cy1CZW51dHplcm5hbWUgbWl0IG9kZXIgb2huZSBEb20mYXVt
bDtuZS4gV2lyZCBtaXQgZGVtIGF1dG9tYXRpc2NoIGVya2FubnRlbiBXaW5kb3dzLVVzZXIgYWJn
ZWdsaWNoZW4gJm1kYXNoOyBiZWkgTWF0Y2ggd2VyZGVuIGRpZSBPdmVycmlkZS1SZWNodGUgZnJl
aWdlc2NoYWx0ZXQuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+
RnVua3Rpb248L2I+ICZtZGFzaDsgei5CLiA8ZW0+4oCeMS4gRUIgVi4iPC9lbT4sIDxlbT7igJ5E
R0wiPC9lbT4uIFJlaW5lIEFuemVpZ2UtSW5mb3JtYXRpb24sIGRpZW50IGRlciBtYW51ZWxsZW4g
UGZsZWdlLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2RldGFpbHM+CiAgICAg
ICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBpZD0iZmFjaGF1ZnNp
Y2h0LXRhYmVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRo
Pk5hbWU8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OVy1LZW5udW5n
PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RnVua3Rpb248L3RoPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6ODBweCI+QWt0
aW9uZW48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAg
ICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJm
YWNoYXVmc2ljaHQtdGJvZHkiPjwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4K
ICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZmFjaGF1ZnNpY2h0LXNwZWljaGVy
biIgY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgc3R5bGU9Im1hcmdpbi10b3A6MTZweCI+RmFjaGF1
ZnNpY2h0ZW4gc3BlaWNoZXJuPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i
ZmFjaGF1ZnNpY2h0LWtlaW4tcmVjaHQiIGNsYXNzPSJ2ZXJzdGVja3QiIHN0eWxlPSJtYXJnaW4t
dG9wOjE2cHgiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCIg
c3R5bGU9ImJvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWZhcmJlLWZlaGxlcikiPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHN0cm9uZz5LZWluIFp1Z3JpZmY6PC9zdHJvbmc+IE51ciBTdXBl
clVzZXIga8O2bm5lbiBkaWVzZSBMaXN0ZSBiZWFyYmVpdGVuLgogICAgICAgICAgICAgICAgICAg
ICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwv
ZGl2PgoKICAgICAgICAgICAgICAgIDwhLS0gVGFiOiBBbnNwcmVjaHBhcnRuZXIgKGludGVybjog
U3VwZXJVc2VyLVJvbGxlKSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLXRh
YiB2ZXJzdGVja3QiIGlkPSJhZG1pbi10YWItc3VwZXJ1c2VyIj4KICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJhZG1pbi1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkFu
c3ByZWNocGFydG5lciB2ZXJ3YWx0ZW48L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0
dG9uIGlkPSJidG4tc3VwZXJ1c2VyLW5ldSIgY2xhc3M9ImJ0biBidG4tZXJmb2xnIj4rIE5ldWVy
IEFuc3ByZWNocGFydG5lcjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgICAgICAgICAgIDxkZXRhaWxzIGNsYXNzPSJhZG1pbi1pbmZvIiBkYXRhLWluZm8ta2V5
PSJzdXBlcnVzZXIiIG9wZW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PjxzcGFu
IGNsYXNzPSJhZG1pbi1pbmZvLWNoZXYiPuKWuDwvc3Bhbj5IaW53ZWlzZSB6dXIgQW5zcHJlY2hw
YXJ0bmVyLVZlcndhbHR1bmc8c3BhbiBjbGFzcz0iYWRtaW4taW5mby1iYWRnZSI+QXVma2xhcHBl
biAvIFp1a2xhcHBlbjwvc3Bhbj48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImFkbWluLWluZm8tYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
cD48c3Ryb25nPldhcyBpc3QgZWluIEFuc3ByZWNocGFydG5lcj88L3N0cm9uZz4gUGVyc29uZW4g
bWl0IHZvbGxlciBBZG1pbi1CZXJlY2h0aWd1bmcgJm1kYXNoOyBzaWUgaGFiZW4gdW5laW5nZXNj
aHImYXVtbDtua3RlbiBadWdyaWZmIGF1ZiBhbGxlIEFkbWluaXN0cmF0aW9uc2Z1bmt0aW9uZW4s
IGsmb3VtbDtubmVuIGFuZGVyZSBBbnNwcmVjaHBhcnRuZXIgdW5kIEZhY2hhdWZzaWNodGVuIHZl
cndhbHRlbiwgYWxsZSBaZWxsZW4gJnV1bWw7YmVyc2NocmVpYmVuIChhdWNoIFBmbGljaHQtU2V0
enVuZ2VuKSwgQmFja3VwcyB2ZXJ3YWx0ZW4sIEV4Y2VsLUltcG9ydHMgZHVyY2hmJnV1bWw7aHJl
biB1bmQgZ2xvYmFsZSBFaW5zdGVsbHVuZ2VuIHBmbGVnZW4uIEltIEluZm9ybWF0aW9uc2ZlbnN0
ZXIgKCYjODUwNTsgb2JlbiByZWNodHMpIGVyc2NoZWluZW4gc2llIGFscyBBbmxhdWZzdGVsbGUg
YmVpIEZyYWdlbiB6dXIgQW53ZW5kdW5nLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxwPjxzdHJvbmc+QXV0by1TeW5jIG1pdCBkZXIgUGVyc29uYWx2ZXJ3YWx0dW5nOjwvc3Ryb25n
PiBQZXJzb25lbiBtaXQgRnVua3Rpb24gPGNvZGU+REdMPC9jb2RlPiBvZGVyIDxjb2RlPjEuJm5i
c3A7RUI8L2NvZGU+IHdlcmRlbiBhdXRvbWF0aXNjaCBhbHMgQW5zcHJlY2hwYXJ0bmVyIGdlZiZ1
dW1sO2hydC4gQmVpbSBTcGVpY2hlcm4gZWluZXMgUGVyc29uZW4tRGF0ZW5zYXR6ZXMgbWl0IGRp
ZXNlciBGdW5rdGlvbiB3aXJkIGRlciBFaW50cmFnIGFuZ2VsZWd0OyBiZWkgRnVua3Rpb25zLVZl
cmx1c3Qgb2RlciBEZWFrdGl2aWVydW5nIHdpcmQgZXIgd2llZGVyIGVudGZlcm50LiBNYW51ZWxs
IGdlcGZsZWd0ZSBFaW50ciZhdW1sO2dlIG9obmUgUGVyc29uZW4tTWF0Y2ggKEV4dGVybmUsIFZl
cnRyZXR1bmdlbikgYmxlaWJlbiB1bmFuZ2V0YXN0ZXQuPC9wPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHA+PHN0cm9uZz5TaWNoZXJoZWl0c2hpbndlaXM6PC9zdHJvbmc+IE51ciBiZXN0
ZWhlbmRlIEFuc3ByZWNocGFydG5lciBrJm91bWw7bm5lbiBkaWVzZSBMaXN0ZSBiZWFyYmVpdGVu
ICZtZGFzaDsgc28ga2FubiBuaWVtYW5kIHNpY2ggc2VsYnN0IEFkbWluLVJlY2h0ZSBlcnRlaWxl
bi4gPHN0cm9uZz5NaW5kZXN0ZW5zIGVpbiBBbnNwcmVjaHBhcnRuZXIgbXVzcyBpbW1lciBlaW5n
ZXRyYWdlbiBzZWluPC9zdHJvbmc+LCBzb25zdCBpc3QgZGllIEFkbWluaXN0cmF0aW9uIHVuenVn
JmF1bWw7bmdsaWNoLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+
RmVsZGVyOjwvc3Ryb25nPjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGI+TmFtZTwvYj4gJm1kYXNoOyBLbGFy
bmFtZSB6dXIgSWRlbnRpZmlrYXRpb24gKEZvcm1hdDogPGVtPuKAnk5hY2huYW1lLCBWb3JuYW1l
IjwvZW0+KS48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48Yj5OVy1L
ZW5udW5nPC9iPiAmbWRhc2g7IFdpbmRvd3MtQmVudXR6ZXJuYW1lLCBvaG5lIERvbSZhdW1sO25l
ICg8Y29kZT5OVzA1MzYwOTwvY29kZT4pIG9kZXIgbWl0IERvbSZhdW1sO25lICg8Y29kZT5ET01B
SU5cTlcwNTM2MDk8L2NvZGU+KS4gV2lyZCBtaXQgZGVtIGF1dG9tYXRpc2NoIGVya2FubnRlbiBX
aW5kb3dzLVVzZXIgYWJnZWdsaWNoZW4gJm1kYXNoOyBiZWkgTWF0Y2ggd2VyZGVuIGRpZSBBZG1p
bi1GdW5rdGlvbmVuIGZyZWlnZXNjaGFsdGV0LjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGxpPjxiPk9yZ2FuaXNhdGlvbnNlaW5oZWl0IChPRSk8L2I+ICZtZGFzaDsgZGll
bnN0bGljaGUgWnVvcmRudW5nICh6LkIuIOKAnkZMRCBCb2NodW0iLCDigJ5ML1ZELUFQIiksIGVy
c2NoZWludCBpbSBJbmZvcm1hdGlvbnNmZW5zdGVyLjwvbGk+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGxpPjxiPlRlbGVmb24gLyBEdXJjaHdhaGw8L2I+ICZtZGFzaDsgUnVmbnVt
bWVyIG9kZXIgSGF1c2R1cmNod2FobCwgZWJlbmZhbGxzIGltIEluZm9ybWF0aW9uc2ZlbnN0ZXIg
c2ljaHRiYXIuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkJlZ3JpZmZza2zDpHJ1bmc6PC9zdHJvbmc+
IEludGVybiB3aXJkIGRpZSBSb2xsZSB0ZWNobmlzY2ggPGNvZGU+U3VwZXJVc2VyPC9jb2RlPiBn
ZW5hbm50IChzaWVoZSBBUEktRW5kcG9pbnRzLCBMb2didWNoLCBDb2RlKTsgbmFjaCBhdSZzemxp
ZztlbiBoZWkmc3psaWc7dCBzaWUgYXVzIExlc2JhcmtlaXRzZ3ImdXVtbDtuZGVuIDxlbT7igJ5B
bnNwcmVjaHBhcnRuZXIiPC9lbT4uIEJlaWRlcyBtZWludCBkYXNzZWxiZS48L3A+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLWJveCIgc3R5bGU9Im1hcmdpbjoxMnB4
IDAgMTZweCAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWZhcmJlLXdhcm51bmcpIj4KICAgICAg
ICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Ob3RmYWxsLVImdXVtbDtja2ZhbGxlYmVuZTo8L3N0
cm9uZz4gRGllIE5XLUtlbm51bmdlbiA8Y29kZT5OVzA1MzYwOTwvY29kZT4gKFBISyBSb2VzZ2Vu
KSB1bmQgPGNvZGU+cmhpbm88L2NvZGU+IHNpbmQgaW0gU2VydmVyLUNvZGUgPHN0cm9uZz5oYXJ0
IGFscyBBbnNwcmVjaHBhcnRuZXIgaGludGVybGVndDwvc3Ryb25nPiAmbWRhc2g7IHNpZSBnZWx0
ZW4gYXVjaCBkYW5uLCB3ZW5uIGRpZSBMaXN0ZSBoaWVyIGxlZXIgaXN0IG9kZXIgZGllIDxjb2Rl
PmFkbWluLmpzb248L2NvZGU+IHVubGVzYmFyIHdpcmQuIFNvIGthbm4gZGllIEFkbWluaXN0cmF0
aW9uIG5pZSBrb21wbGV0dCBhdXNnZXNwZXJydCB3ZXJkZW4sIHNlbGJzdCBuYWNoIGVpbmVyIGth
cHV0dGVuIEtvbmZpZ3VyYXRpb24uICZBdW1sO25kZXJ1bmcgZGllc2VyIEhhcmRjb2RlcyBudXIg
ZGlyZWt0IGltIFF1ZWxsY29kZSAoPGNvZGU+c2VydmVyLnB5PC9jb2RlPiBiencuIDxjb2RlPnNl
cnZlci5wczE8L2NvZGU+KSBtJm91bWw7Z2xpY2guCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBpZD0ic3Vw
ZXJ1c2VyLXRhYmVsbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHRoPk5hbWU8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OVy1LZW5u
dW5nPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+T3JnYW5pc2F0aW9u
c2VpbmhlaXQ8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT0i
d2lkdGg6MTUwcHgiPlRlbGVmb24gLyBEdXJjaHdhaGw8L3RoPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx0aCBzdHlsZT0id2lkdGg6ODBweCI+QWt0aW9uZW48L3RoPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVh
ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGlkPSJzdXBlcnVzZXItdGJvZHkiPjwv
dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICA8
YnV0dG9uIGlkPSJidG4tc3VwZXJ1c2VyLXNwZWljaGVybiIgY2xhc3M9ImJ0biBidG4tcHJpbWFl
ciIgc3R5bGU9Im1hcmdpbi10b3A6MTZweCI+U3VwZXJVc2VyIHNwZWljaGVybjwvYnV0dG9uPgog
ICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN1cGVydXNlci1rZWluLXJlY2h0IiBjbGFzcz0i
dmVyc3RlY2t0IiBzdHlsZT0ibWFyZ2luLXRvcDoxNnB4Ij4KICAgICAgICAgICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iaW5mby1ib3giIHN0eWxlPSJib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1m
YXJiZS1mZWhsZXIpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+S2VpbiBa
dWdyaWZmOjwvc3Ryb25nPiBOdXIgYmVzdGVoZW5kZSBTdXBlclVzZXIga8O2bm5lbiBkaWVzZSBM
aXN0ZSBiZWFyYmVpdGVuLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPC9t
YWluPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSA9PT09PT09PT09IEFOU0lD
SFQ6IFNUQVRJU1RJSyA9PT09PT09PT09IC0tPgogICAgPGRpdiBpZD0iYW5zaWNodC1zdGF0aXN0
aWsiIGNsYXNzPSJhbnNpY2h0IHZlcnN0ZWNrdCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3RhdGlz
dGlrLWxheW91dCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAg
ICAgICAgICAgPGgyPlN0YXRpc3RpayAmYW1wOyBBdXN3ZXJ0dW5nZW48L2gyPgogICAgICAgICAg
ICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDo4cHg7YWxpZ24taXRlbXM6Y2VudGVy
Ij4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc3RhdGlzdGlrLWxhZGVuIiBj
bGFzcz0iYnRuIGJ0bi1wcmltYWVyIj5Ba3R1YWxpc2llcmVuPC9idXR0b24+CiAgICAgICAgICAg
ICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIEtQSS1LYWNo
ZWxuIC0tPgogICAgICAgICAgICA8ZGl2IGlkPSJzdGF0LWtwaXMiIGNsYXNzPSJzdGF0LWtwaXMi
PjwvZGl2PgoKICAgICAgICAgICAgPCEtLSBEYXNoYm9hcmQ6IDItc3BhbHRpZyAtLT4KICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3RhdC1kYXNoYm9hcmQiPgogICAgICAgICAgICAgICAgPCEtLSBM
aW5rczogU2NoaWNodHZlcnRlaWx1bmcgYWxzIEJhbGtlbmRpYWdyYW1tIC0tPgogICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3RhdC1wYW5lbCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0ic3RhdC1wYW5lbC1rb3BmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlNjaGlj
aHR2ZXJ0ZWlsdW5nPC9oMz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg
ICAgICAgICA8ZGl2IGlkPSJzdGF0LWNoYXJ0LWJhbGtlbiIgY2xhc3M9InN0YXQtY2hhcnQtYXJl
YSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIFJl
Y2h0czogRmFpcm5lc3MgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXBhbmVs
Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LXBhbmVsLWtvcGYiPgogICAg
ICAgICAgICAgICAgICAgICAgICA8aDM+V0UtICZhbXA7IEZULUZhaXJuZXNzPC9oMz4KICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzdGF0LWZh
aXJuZXNzIiBjbGFzcz0ic3RhdC1jaGFydC1hcmVhIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwv
ZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gRGV0YWlsLVRhYmVsbGU6
IGtvbGxhYmllcmJhciAtLT4KICAgICAgICAgICAgPGRldGFpbHMgY2xhc3M9InN0YXQtZGV0YWls
cyI+CiAgICAgICAgICAgICAgICA8c3VtbWFyeSBjbGFzcz0ic3RhdC1kZXRhaWxzLXN1bW1hcnki
PkRldGFpbHRhYmVsbGUgYW56ZWlnZW48L3N1bW1hcnk+CiAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJ0YWJlbGxlLXNjcm9sbCIgc3R5bGU9Im1hcmdpbi10b3A6MTJweCI+CiAgICAgICAgICAg
ICAgICAgICAgPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIHN0YXQtdGFiZWxsZSIgaWQ9InN0
YXQtdWViZXJzaWNodCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
dGg+TmFtZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ6
YWhsIj5HZXNhbXQ8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFz
cz0iemFobCBmcnVlaC1rb3BmIj5GcsO8aDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPHRoIGNsYXNzPSJ6YWhsIHNwYWV0LWtvcGYiPlNww6R0PC90aD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InphaGwgbmFjaHQta29wZiI+TmFjaHQ8L3Ro
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iemFobCI+V0U8L3Ro
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iemFobCI+RlQ8L3Ro
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iemFobCB3YXJuLWtv
cGYiPktyYW5rPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9
InphaGwiPlVybGF1YjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNs
YXNzPSJ6YWhsIj5MRzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNs
YXNzPSJ6YWhsIj5BWkE8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAg
ICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRi
b2R5IGlkPSJzdGF0LXRib2R5Ij48L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+
CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kZXRhaWxzPgogICAgICAgIDwv
ZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSA9PT09PT09PT09IEFOU0lDSFQ6IExPR0JVQ0ggPT09
PT09PT09PSAtLT4KICAgIDxkaXYgaWQ9ImFuc2ljaHQtbG9nYnVjaCIgY2xhc3M9ImFuc2ljaHQg
dmVyc3RlY2t0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2didWNoLWxheW91dCI+CiAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImFkbWluLWtvcGYiPgogICAgICAgICAgICAgICAgPGgyPsOEbmRlcnVu
Z3Nwcm90b2tvbGw8L2gyPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAg
ICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImxvZ2J1Y2gtc3VjaGUiIGNsYXNzPSJmb3JtLWlucHV0
IiBwbGFjZWhvbGRlcj0iU3VjaGUgbmFjaCBQZXJzb24sIEJlbnV0emVyLCBBa3Rpb24uLi4iIHN0
eWxlPSJ3aWR0aDozMDBweCI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmVsbGUtc2Nyb2xsIj4KICAgICAgICAgICAg
ICAgIDx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSIgaWQ9ImxvZ2J1Y2gtdGFiZWxsZSI+CiAg
ICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WmVpdHB1bmt0PC90aD4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDx0aD5Ba3Rpb248L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHRoPkRldGFpbHM8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkJlbnV0
emVyPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAg
ICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keSBpZD0ibG9nYnVjaC10Ym9keSI+
PC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAg
ICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSA9PT09PT09PT09IE1vZGFsZXIgRGlhbG9n
ICh3aWVkZXJ2ZXJ3ZW5kYmFyKSA9PT09PT09PT09IC0tPgogICAgPGRpdiBpZD0ibW9kYWwtb3Zl
cmxheSIgY2xhc3M9Im1vZGFsIHZlcnN0ZWNrdCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwt
aW5oYWx0IiBpZD0ibW9kYWwtYm94Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwta29w
ZiI+CiAgICAgICAgICAgICAgICA8aDIgaWQ9Im1vZGFsLXRpdGVsIj48L2gyPgogICAgICAgICAg
ICAgICAgPGJ1dHRvbiBjbGFzcz0ibW9kYWwtc2NobGllc3NlbiIgaWQ9Im1vZGFsLXNjaGxpZXNz
ZW4tYnRuIj4mdGltZXM7PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8
ZGl2IGNsYXNzPSJtb2RhbC1rb2VycGVyIiBpZD0ibW9kYWwta29lcnBlciI+PC9kaXY+CiAgICAg
ICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZ1c3MiIGlkPSJtb2RhbC1mdXNzIj48L2Rpdj4KICAg
ICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gVG9hc3QtQ29udGFpbmVyIC0tPgogICAg
PGRpdiBpZD0idG9hc3QtY29udGFpbmVyIj48L2Rpdj4KICAgIDwhLS0gUGhhc2UgSDQ6IEN1c3Rv
bS1Lb250ZXh0bWVuw7wgZsO8ciBaZWxsLUFrdGlvbmVuIChSZWNodHNrbGljayBpbSBHcmlkKSAt
LT4KICAgIDxkaXYgaWQ9ImtvbnRleHRtZW51IiBjbGFzcz0idmVyc3RlY2t0Ij48L2Rpdj4KCiAg
ICA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJhcHAuanMiPjwvc2NyaXB0Pgo8L2JvZHk+Cjwv
aHRtbD4K
### FILE: js/admin/admin.js | 13445
Ly8gPT09IGFkbWluL2FkbWluLmpzID09PQovLyBBZG1pbi1EaXNwYXRjaGVyIChhZG1pblJlbmRl
cm4gcnVmdCBhbGxlIGFuZGVyZW4gVGFiLVJlbmRlcmVyKSwKLy8gRWluc3RlbGx1bmdlbi1UYWIg
KExvZ28sIFBsYW51bmdzbmFtZSwgUlRFLUZlbGRlciwgVmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXIp
LAovLyBHcnVwcGVuLVRhYmVsbGUsIFNpY2h0YmFya2VpdHMtVG9nZ2xlcyBmw7xyIFN0YXRpc3Rp
ay0vTG9nYnVjaC1CZXJlaWNoZSwKLy8gQmFja3VwcyAoVGFiZWxsZSArIEVyc3RlbGxlbikuCgpp
bXBvcnQgeyBaIH0gZnJvbSAnLi4vY29yZS9zdGF0ZS5qcyc7CmltcG9ydCB7CiAgICBlc2NhcGVI
VE1MLCBlc2NhcGVBdHRyLCBkYXR1bUZvcm1hdERFLCBqYWhyZXNNZW5nZUF1c0VpbnRyYWVnZW4K
fSBmcm9tICcuLi9jb3JlL3V0aWwuanMnOwppbXBvcnQgeyBhcGksIGFwaVBvc3QsIGFwaVB1dCwg
YXBpU2FmZSwgYXBpRmV0Y2ggfSBmcm9tICcuLi9jb3JlL2FwaS5qcyc7CmltcG9ydCB7IHRvYXN0
IH0gZnJvbSAnLi4vdWkvdG9hc3QuanMnOwppbXBvcnQgeyBtb2RhbFplaWdlbiwgbW9kYWxTY2hs
aWVzc2VuLCBiZXN0YWV0aWdlbiB9IGZyb20gJy4uL3VpL21vZGFsLmpzJzsKaW1wb3J0IHsgc2Fu
aXRpemVSaWNoSHRtbCwgcnRlVG9vbGJhckJhdWVuIH0gZnJvbSAnLi4vdWkvcnRlLmpzJzsKaW1w
b3J0IHsKICAgIGNvdW50ZXJTaWNodGJhcmtlaXRBbndlbmRlbiwgaGVhZGVyS29uZmlnQW53ZW5k
ZW4sIGtvcGZSZW5kZXJuLAogICAgaGVhZGVyTGFiZWxzQW53ZW5kZW4KfSBmcm9tICcuLi9ncmlk
L3JlbmRlci5qcyc7CmltcG9ydCB7IGN1c3RvbUxvZ29BbndlbmRlbiwgdm9yZ2FiZUFuemVpZ2VB
bndlbmRlbiB9IGZyb20gJy4uL3VpL3RoZW1lLWJyYW5kaW5nLmpzJzsKaW1wb3J0IHsgcGVyc29u
YWxUYWJlbGxlUmVuZGVybiwgc3RhbmRvcnRlUmVuZGVybiB9IGZyb20gJy4vcGVyc29uZW4uanMn
OwppbXBvcnQgewogICAgZmVpZXJ0YWdlVGFiZWxsZVJlbmRlcm4sIGZlcmllblRhYmVsbGVSZW5k
ZXJuLCBzb25kZXJ0ZXJtaW5lUmVuZGVybiwKICAgIHNjaGljaHRjb2RlVm9yc2NoYXVSZW5kZXJu
LCBzY2hpY2h0Zm9sZ2VuUmVuZGVybiwgdm9ybGFnZW5SZW5kZXJuLAogICAgc3VwZXJVc2VyUmVu
ZGVybiwgZmFjaGF1ZnNpY2h0UmVuZGVybiwgZmVhdHVyZXNSZW5kZXJuLCBhZG1pbkluZm9Jbml0
Cn0gZnJvbSAnLi9saXN0ZW4uanMnOwppbXBvcnQgewogICAgcm90YXRpb25SZW5kZXJuLCBtYXJr
ZXJLb25maWdSZW5kZXJuLCBoZWFkZXJLb25maWdSZW5kZXJuLAogICAgY291bnRlcktvbmZpZ1Jl
bmRlcm4sCiAgICB2b3JnYWJlRGV0YWlsUmVuZGVybiwgZHNtRGV0YWlsUmVuZGVybiwgdGFnTWFy
a2VyUmVuZGVybgp9IGZyb20gJy4vcm90YXRpb24taGVhZGVyLmpzJzsKCi8vIENyb3NzLU1vZHVs
ZS1Ib29rIGbDvHIgaW1wb3J0SW5pdCAobGVidCBpbiBhcHAuanMgYmlzIFBoYXNlIDcgLyBpbXBv
cnQvdGV4dC1pbXBvcnQuanMpCmV4cG9ydCB2YXIgYWRtaW5Ib29rcyA9IHsKICAgIGltcG9ydElu
aXQ6IG51bGwKfTsKCi8vIFNpY2h0YmFya2VpdHMtR3J1cHBlbiAoU2NoZW1hIGbDvHIgc2ljaHRi
YXJrZWl0UmVuZGVybikKdmFyIHNpY2h0YmFya2VpdEdydXBwZW4gPSBbCiAgICB7CiAgICAgICAg
dGl0ZWw6ICdUYWJzJywKICAgICAgICBiZXNjaHJlaWJ1bmc6ICdXZWxjaGUgVGFicyBzaWVodCBl
aW4gQWRtaW4gw7xiZXJoYXVwdD8nLAogICAgICAgIHNjaGFsdGVyOiBbCiAgICAgICAgICAgIHsg
a2V5OiAnbG9nYnVjaCcsICAgbGFiZWw6ICdMb2didWNoLVRhYicsIGJlc2NocmVpYnVuZzogJ8OE
bmRlcnVuZ3MtSGlzdG9yaWUgZGVyIFBsYW51bmcnIH0sCiAgICAgICAgICAgIHsga2V5OiAnc3Rh
dGlzdGlrJywgbGFiZWw6ICdTdGF0aXN0aWstVGFiJywgYmVzY2hyZWlidW5nOiAnTWFzdGVyLVNj
aGFsdGVyOiBvaG5lIGRpZXNlbiBTY2hhbHRlciBpc3QgU3RhdGlzdGlrIGtvbXBsZXR0IHVuc2lj
aHRiYXInIH0KICAgICAgICBdCiAgICB9LAogICAgewogICAgICAgIHRpdGVsOiAnU3RhdGlzdGlr
LUJlcmVpY2hlJywKICAgICAgICBiZXNjaHJlaWJ1bmc6ICdOdXIgd2lya3NhbSB3ZW5uIFN0YXRp
c3Rpay1UYWIgb2JlbiBmcmVpZ2VnZWJlbiBpc3QuIFN0YW5kYXJkbcOkw59pZyBzaWNodGJhci4n
LAogICAgICAgIHNjaGFsdGVyOiBbCiAgICAgICAgICAgIHsga2V5OiAnc3RhdEtwaXMnLCAgICAg
ICAgICAgICBsYWJlbDogJ0tQSS1LYWNoZWxuJywgICAgICAgICAgIGJlc2NocmVpYnVuZzogJ1Bl
cnNvbmVuIC8gRGllbnN0ZSAvIEZyw7xoIC8gU3DDpHQgLyBOYWNodCAvIFdFIC8gS3JhbmsgLyBV
cmxhdWInIH0sCiAgICAgICAgICAgIHsga2V5OiAnc3RhdFNjaGljaHR2ZXJ0ZWlsdW5nJywgbGFi
ZWw6ICdTY2hpY2h0dmVydGVpbHVuZycsICAgIGJlc2NocmVpYnVuZzogJ0RvbnV0ICsgQmFsa2Vu
ZGlhZ3JhbW0genVyIFZlcnRlaWx1bmcgdm9uIEYvUy9OJyB9LAogICAgICAgICAgICB7IGtleTog
J3N0YXRGYWlybmVzcycsICAgICAgICAgbGFiZWw6ICdXRS0vRlQtRmFpcm5lc3MnLCAgICAgICBi
ZXNjaHJlaWJ1bmc6ICdGYWlybmVzcy1QYW5lbCAoc2VwYXJhdCBwZXIgRnVua3Rpb25lbi1Ub2dn
bGUgYWt0aXZpZXJiYXIpJyB9LAogICAgICAgICAgICB7IGtleTogJ3N0YXRNdXN0ZXInLCAgICAg
ICAgICAgbGFiZWw6ICdBdWZmw6RsbGlna2VpdGVuJywgICAgICAgYmVzY2hyZWlidW5nOiAnTXVz
dGVyLUFuYWx5c2UgKHNlcGFyYXQgcGVyIEZ1bmt0aW9uZW4tVG9nZ2xlIGFrdGl2aWVyYmFyKScg
fSwKICAgICAgICAgICAgeyBrZXk6ICdzdGF0QWJ3ZXNlbmhlaXQnLCAgICAgIGxhYmVsOiAnQWJ3
ZXNlbmhlaXRzLUthY2hlbG4nLCAgYmVzY2hyZWlidW5nOiAnS3JhbmsgLyBVcmxhdWIgLyBMRyAv
IEFaQSBwcm8gUGVyc29uJyB9LAogICAgICAgICAgICB7IGtleTogJ3N0YXREZXRhaWxUYWJlbGxl
JywgICAgbGFiZWw6ICdEZXRhaWwtVGFiZWxsZScsICAgICAgICBiZXNjaHJlaWJ1bmc6ICdBdXNr
bGFwcGJhcmUgw5xiZXJzaWNodHN0YWJlbGxlJyB9CiAgICAgICAgXQogICAgfQpdOwoKLy8gYXV0
b2ZpbGwqIC8gZG5kKiAvIGJ1bGtBdXN3ZW5kZW4gLyBzZWxla3Rpb24qIC0+IGpzL2dyaWQvaW50
ZXJhY3Rpb24uanMKLy8gRWRpdG9yLUtvbXBsZXggKGVkaXRvck9lZmZuZW4qIC8gZWRpdG9yQW56
ZWlnZW4gLyBlZGl0b3JTY2hsaWVzc2VuIC8gZWRpdG9yQXVzd2FobCAvCi8vICBlZGl0b3JCdWxr
UGZhZEF1c2dlZnVlaHJ0IC8gZWRpdG9yUnVoZXplaXRHdWFyZCAvIGVkaXRvclplbGxlU3BlaWNo
ZXJuIC8KLy8gIHNjaGljaHRUeXAgLyBydWhlemVpdFBydWVmZW4gLyBuYWNoYmFyRGF0dW0gLyBo
aXN0b3JpZVplaXRzdGVtcGVsRm9ybWF0IC8KLy8gIGhpc3RvcmllRnVlclplbGxlUmVuZGVybikg
LT4ganMvZ3JpZC9lZGl0b3IuanMKLy8gc2Nyb2xsU3luYyAvIHp1bUhldXRpZ2VuRGF0dW0gLyBh
bnNpY2h0V2VjaHNlbG4gLT4ganMvZ3JpZC9yZW5kZXIuanMKCi8vID09PT09IEFkbWluOiBQZXJz
b25hbHZlcndhbHR1bmcgPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBhZG1pblJlbmRlcm4oKSB7CiAg
ICBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICBmZWllcnRhZ2VUYWJlbGxlUmVuZGVybigp
OwogICAgZmVyaWVuVGFiZWxsZVJlbmRlcm4oKTsKICAgIHNvbmRlcnRlcm1pbmVSZW5kZXJuKCk7
CiAgICBzY2hpY2h0Y29kZVZvcnNjaGF1UmVuZGVybigpOwogICAgbWFya2VyS29uZmlnUmVuZGVy
bigpOwogICAgY291bnRlcktvbmZpZ1JlbmRlcm4oKTsKICAgIHN0YW5kb3J0ZVJlbmRlcm4oKTsK
ICAgIGZlYXR1cmVzUmVuZGVybigpOwogICAgcm90YXRpb25SZW5kZXJuKCk7CiAgICBzaWNodGJh
cmtlaXRSZW5kZXJuKCk7CiAgICBzdXBlclVzZXJSZW5kZXJuKCk7CiAgICBmYWNoYXVmc2ljaHRS
ZW5kZXJuKCk7CiAgICBlaW5zdGVsbHVuZ2VuUmVuZGVybigpOwogICAgYmFja3VwVGFiZWxsZUxh
ZGVuKCk7CiAgICAvLyBIZWFkZXItS29uZmlnLURldGFpbC1TZWt0aW9uZW4gKDIwMjYtMDUtMDUp
CiAgICB2b3JnYWJlRGV0YWlsUmVuZGVybigpOwogICAgZHNtRGV0YWlsUmVuZGVybigpOwogICAg
dGFnTWFya2VyUmVuZGVybigpOwogICAgaWYgKHR5cGVvZiBhZG1pbkhvb2tzLmltcG9ydEluaXQg
PT09ICdmdW5jdGlvbicpIGFkbWluSG9va3MuaW1wb3J0SW5pdCgpOwogICAgYWRtaW5JbmZvSW5p
dCgpOwp9CgoKCmV4cG9ydCBmdW5jdGlvbiBzaWNodGJhcmtlaXRXZXJ0KGtleSkgewogICAgdmFy
IHMgPSBaLmFkbWluLmFkbWluU2ljaHRiYXJrZWl0IHx8IHt9OwogICAgaWYgKGtleSA9PT0gJ2xv
Z2J1Y2gnIHx8IGtleSA9PT0gJ3N0YXRpc3RpaycpIHsKICAgICAgICByZXR1cm4gISFzW2tleV07
IC8vIERlZmF1bHQgZmFsc2UgKFNVLW9ubHkpCiAgICB9CiAgICByZXR1cm4gc1trZXldICE9PSBm
YWxzZTsgLy8gRGVmYXVsdCB0cnVlIChzaWNodGJhciB3ZW5uIFN0YXRpc3RpayBmcmVpZ2VnZWJl
bikKfQoKZXhwb3J0IGZ1bmN0aW9uIHNpY2h0YmFya2VpdFJlbmRlcm4oKSB7CiAgICB2YXIgY29u
dGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NpY2h0YmFya2VpdC1pbmhhbHQnKTsK
ICAgIGlmICghY29udGFpbmVyKSByZXR1cm47CiAgICB2YXIgaHRtbCA9ICcnOwogICAgc2ljaHRi
YXJrZWl0R3J1cHBlbi5mb3JFYWNoKGZ1bmN0aW9uKGcpIHsKICAgICAgICBodG1sICs9ICc8ZGl2
IHN0eWxlPSJtYXJnaW4tYm90dG9tOjE4cHgiPicgKwogICAgICAgICAgICAnPGgzIHN0eWxlPSJt
YXJnaW46MCAwIDRweCAwO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnZhcigtLXRleHQtaGVhZGluZyki
PicgKyBlc2NhcGVIVE1MKGcudGl0ZWwpICsgJzwvaDM+JyArCiAgICAgICAgICAgICc8cCBzdHls
ZT0ibWFyZ2luOjAgMCAxMHB4IDA7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRl
ZCkiPicgKyBlc2NhcGVIVE1MKGcuYmVzY2hyZWlidW5nKSArICc8L3A+JyArCiAgICAgICAgICAg
ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo2cHg7
bWF4LXdpZHRoOjY4MHB4Ij4nOwogICAgICAgIGcuc2NoYWx0ZXIuZm9yRWFjaChmdW5jdGlvbihz
Y2gpIHsKICAgICAgICAgICAgdmFyIGFrdGl2ID0gc2ljaHRiYXJrZWl0V2VydChzY2gua2V5KTsK
ICAgICAgICAgICAgaHRtbCArPSAnPGxhYmVsIGNsYXNzPSJmZWF0dXJlLXRvZ2dsZS16ZWlsZSIg
c3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzox
MHB4IDE0cHg7JyArCiAgICAgICAgICAgICAgICAnYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkKTti
b3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Ym9yZGVyLXJhZGl1czo4cHg7Y3Vy
c29yOnBvaW50ZXIiPicgKwogICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIg
Y2xhc3M9InNpY2h0YmFya2VpdC1jaGVja2JveCIgZGF0YS1rZXk9IicgKyBzY2gua2V5ICsgJyIn
ICsgKGFrdGl2ID8gJyBjaGVja2VkJyA6ICcnKSArCiAgICAgICAgICAgICAgICAnIHN0eWxlPSJ3
aWR0aDoxOHB4O2hlaWdodDoxOHB4O2FjY2VudC1jb2xvcjp2YXIoLS1mYXJiZS1lcmZvbGcpO2N1
cnNvcjpwb2ludGVyIj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJmbGV4OjEiPjxk
aXYgc3R5bGU9ImZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTNweDtjb2xvcjp2YXIoLS10ZXh0
LWhlYWRpbmcpIj4nICsKICAgICAgICAgICAgICAgIGVzY2FwZUhUTUwoc2NoLmxhYmVsKSArICc8
L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xv
cjp2YXIoLS10ZXh0LW11dGVkKSI+JyArIGVzY2FwZUhUTUwoc2NoLmJlc2NocmVpYnVuZykgKyAn
PC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImZlYXR1cmUtc3Rh
dHVzIiBzdHlsZT0iZm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6M3B4IDhw
eDtib3JkZXItcmFkaXVzOjEwcHg7JyArCiAgICAgICAgICAgICAgICAoYWt0aXYgPyAnYmFja2dy
b3VuZDpyZ2JhKDM5LDEzNywxMDksMC4xMik7Y29sb3I6dmFyKC0tZmFyYmUtZXJmb2xnKSI+U0lD
SFRCQVInIDogJ2JhY2tncm91bmQ6cmdiYSgxNzYsNTgsNDYsMC4xKTtjb2xvcjp2YXIoLS1mYXJi
ZS1mZWhsZXIpIj5WRVJCT1JHRU4nKSArCiAgICAgICAgICAgICAgICAnPC9zcGFuPjwvbGFiZWw+
JzsKICAgICAgICB9KTsKICAgICAgICBodG1sICs9ICc8L2Rpdj48L2Rpdj4nOwogICAgfSk7CiAg
ICBjb250YWluZXIuaW5uZXJIVE1MID0gaHRtbDsKfQoKLy8gPT09PT0gQWRtaW46IEJhY2t1cHMg
PT09PT0KZXhwb3J0IGZ1bmN0aW9uIGJhY2t1cFRhYmVsbGVMYWRlbigpIHsKICAgIHZhciB0Ym9k
eSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYWNrdXAtdGJvZHknKTsKICAgIGlmICghdGJv
ZHkpIHJldHVybjsKICAgIGFwaSgnL2FwaS9wbGFudW5nL2JhY2t1cHMnKS50aGVuKGZ1bmN0aW9u
KGxpc3RlKSB7CiAgICAgICAgYmFja3VwVGFiZWxsZVJlbmRlcm4obGlzdGUgfHwgW10pOwogICAg
fSkuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgIHRib2R5LmlubmVySFRNTCA9ICc8dHI+PHRk
IGNvbHNwYW49IjUiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjE2cHg7Y29sb3I6
dmFyKC0tZmFyYmUtZmVobGVyKSI+RmVobGVyIGJlaW0gTGFkZW46ICcgKyBlc2NhcGVIVE1MKGUu
bWVzc2FnZSkgKyAnPC90ZD48L3RyPic7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGJhY2t1
cEdyb2Vzc2VGb3JtYXQoYnl0ZXMpIHsKICAgIGlmIChieXRlcyA8IDEwMjQpIHJldHVybiBieXRl
cyArICcgQic7CiAgICBpZiAoYnl0ZXMgPCAxMDQ4NTc2KSByZXR1cm4gKGJ5dGVzIC8gMTAyNCku
dG9GaXhlZCgxKSArICcgS0InOwogICAgcmV0dXJuIChieXRlcyAvIDEwNDg1NzYpLnRvRml4ZWQo
MSkgKyAnIE1CJzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGJhY2t1cFplaXRwdW5rdEZvcm1hdChpc28p
IHsKICAgIGlmICghaXNvKSByZXR1cm4gJ+KAlCc7CiAgICB2YXIgZCA9IG5ldyBEYXRlKGlzbyk7
CiAgICBpZiAoaXNOYU4oZC5nZXRUaW1lKCkpKSByZXR1cm4gaXNvOwogICAgdmFyIHBhZCA9IGZ1
bmN0aW9uKG4pIHsgcmV0dXJuIChuIDwgMTAgPyAnMCcgOiAnJykgKyBuOyB9OwogICAgcmV0dXJu
IHBhZChkLmdldERhdGUoKSkgKyAnLicgKyBwYWQoZC5nZXRNb250aCgpICsgMSkgKyAnLicgKyBk
LmdldEZ1bGxZZWFyKCkgKwogICAgICAgICAgICcgJyArIHBhZChkLmdldEhvdXJzKCkpICsgJzon
ICsgcGFkKGQuZ2V0TWludXRlcygpKSArICc6JyArIHBhZChkLmdldFNlY29uZHMoKSk7Cn0KCmV4
cG9ydCBmdW5jdGlvbiBiYWNrdXBUYWJlbGxlUmVuZGVybihsaXN0ZSkgewogICAgdmFyIHRib2R5
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhY2t1cC10Ym9keScpOwogICAgaWYgKCF0Ym9k
eSkgcmV0dXJuOwogICAgaWYgKCFsaXN0ZS5sZW5ndGgpIHsKICAgICAgICB0Ym9keS5pbm5lckhU
TUwgPSAnPHRyPjx0ZCBjb2xzcGFuPSI1IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7cGFkZGlu
ZzoyNHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc3R5bGU6aXRhbGljIj5Ob2NoIGtl
aW5lIEJhY2t1cHMgdm9yaGFuZGVuLiBLbGlja2Ugb2JlbiBhdWYg4oCeTmV1ZXMgQmFja3VwIGpl
dHp0IGVyc3RlbGxlbiIuPC90ZD48L3RyPic7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFy
IGh0bWwgPSAnJzsKICAgIGxpc3RlLmZvckVhY2goZnVuY3Rpb24oYikgewogICAgICAgIHZhciB0
eXBCYWRnZSA9ICdiay10eXAtbWFudWVsbCc7CiAgICAgICAgaWYgKGIudHlwID09PSAndm9yIER1
bW15ZGF0ZW4nKSB0eXBCYWRnZSA9ICdiay10eXAtYXV0byc7CiAgICAgICAgZWxzZSBpZiAoYi50
eXAgPT09ICd2b3IgUmVzZXQnKSB0eXBCYWRnZSA9ICdiay10eXAtYXV0byc7CiAgICAgICAgZWxz
ZSBpZiAoYi50eXAgPT09ICd2b3IgV2llZGVyaGVyc3RlbGx1bmcnKSB0eXBCYWRnZSA9ICdiay10
eXAtc2ljaGVydW5nJzsKICAgICAgICBodG1sICs9ICc8dHI+JyArCiAgICAgICAgICAgICc8dGQ+
PGNvZGUgc3R5bGU9ImZvbnQtc2l6ZToxMXB4Ij4nICsgZXNjYXBlSFRNTChiYWNrdXBaZWl0cHVu
a3RGb3JtYXQoYi5lcnN0ZWxsdEFtKSkgKyAnPC9jb2RlPjwvdGQ+JyArCiAgICAgICAgICAgICc8
dGQ+PHNwYW4gY2xhc3M9ImJrLXR5cCAnICsgdHlwQmFkZ2UgKyAnIj4nICsgZXNjYXBlSFRNTChi
LnR5cCkgKyAnPC9zcGFuPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9ImZvbnQtZmFt
aWx5Om1vbm9zcGFjZTtmb250LXNpemU6MTFweDt3b3JkLWJyZWFrOmJyZWFrLWFsbCI+JyArIGVz
Y2FwZUhUTUwoYi5kYXRlaW5hbWUpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9
InRleHQtYWxpZ246cmlnaHQ7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxMXB4Ij4n
ICsgZXNjYXBlSFRNTChiYWNrdXBHcm9lc3NlRm9ybWF0KGIuZ3JvZXNzZSkpICsgJzwvdGQ+JyAr
CiAgICAgICAgICAgICc8dGQ+PGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDo2cHg7ZmxleC13
cmFwOndyYXAiPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJp
bWFlciBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJiYWNrdXAtd2llZGVyaGVyc3RlbGxlbiIgZGF0
YS1kYXRlaT0iJyArIGVzY2FwZUF0dHIoYi5kYXRlaW5hbWUpICsgJyIgdGl0bGU9IkFrdHVlbGxl
IFBsYW51bmcgZHVyY2ggZGllc2VzIEJhY2t1cCBlcnNldHplbiI+4oa6IFdpZWRlcmhlcnN0ZWxs
ZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNl
ayBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJiYWNrdXAtZG93bmxvYWQiIGRhdGEtZGF0ZWk9Iicg
KyBlc2NhcGVBdHRyKGIuZGF0ZWluYW1lKSArICciIHRpdGxlPSJKU09OLURhdGVpIGhlcnVudGVy
bGFkZW4iPuKkkyBEb3dubG9hZDwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24g
Y2xhc3M9ImJ0biBidG4tZ2VmYWhyIGJ0bi1rbGVpbiBidG4tbG9lc2NoZW4iIGRhdGEtYWt0aW9u
PSJiYWNrdXAtbG9lc2NoZW4iIGRhdGEtZGF0ZWk9IicgKyBlc2NhcGVBdHRyKGIuZGF0ZWluYW1l
KSArICciIHRpdGxlPSJCYWNrdXAgZW5kZ8O8bHRpZyBsw7ZzY2hlbiI+4pyVPC9idXR0b24+JyAr
CiAgICAgICAgICAgICc8L2Rpdj48L3RkPicgKwogICAgICAgICc8L3RyPic7CiAgICB9KTsKICAg
IHRib2R5LmlubmVySFRNTCA9IGh0bWw7Cn0KCi8vID09PT09IEFkbWluOiBHbG9iYWxlIEVpbnN0
ZWxsdW5nZW4gPT09PT0KCi8vIEN1c3RvbS1Mb2dvIGF1cyBhZG1pbi5jdXN0b21Mb2dvIChCYXNl
NjQtRGF0YS1VUkwpIGltIEhlYWRlciBhbndlbmRlbi4KLy8gUGx1cyBrb25maWd1cmllcmJhcmUg
SG9laGUgdmlhIGFkbWluLmN1c3RvbUxvZ29Ib2VoZSAocHgsIERlZmF1bHQgMjgpLgovLyBjdXN0
b21Mb2dvQW53ZW5kZW46IGpldHp0IGluIGpzL3VpL3RoZW1lLWJyYW5kaW5nLmpzCgovLyBCcmFu
ZGluZyBhdXMgYWRtaW4uanNvbiAocGxhbnVuZ3NOYW1lICsgcGxhbnVuZ3NLdXJ6KSBhdWYgQnJv
d3Nlci1UaXRlbAovLyB1bmQgSGVhZGVyLUgxIGFud2VuZGVuLiBFaW5lIEZMRC1JbnN0YW56ID0g
ZWluZSBEaWVuc3RncnVwcGU7IGRhaGVyCi8vIGtlaW5lIEdydXBwZW4tQXVzd2FobCBtZWhyLgpl
eHBvcnQgZnVuY3Rpb24gYXBwQnJhbmRpbmdBbndlbmRlbigpIHsKICAgIHZhciBuYW1lID0gKFou
YWRtaW4gJiYgWi5hZG1pbi5wbGFudW5nc05hbWUpIHx8ICdGTEQtUGxhbnVuZyc7CiAgICB0cnkg
eyBkb2N1bWVudC50aXRsZSA9IG5hbWU7IH0gY2F0Y2ggKGUpIHsgY29uc29sZS5lcnJvcignW2Jy
YW5kaW5nLnRpdGxlXScsIGUpOyB9CiAgICB2YXIgaDEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCcja29wZmxlaXN0ZSBoMScpOwogICAgaWYgKGgxKSB7CiAgICAgICAgdmFyIGphaHJTcGFuID0g
aDEucXVlcnlTZWxlY3RvcignI2FuemVpZ2UtamFocicpOwogICAgICAgIGgxLmZpcnN0Q2hpbGQg
JiYgaDEuZmlyc3RDaGlsZC5ub2RlVHlwZSA9PT0gMwogICAgICAgICAgICA/IChoMS5maXJzdENo
aWxkLm5vZGVWYWx1ZSA9IG5hbWUgKyAnICcpCiAgICAgICAgICAgIDogKGgxLmluc2VydEJlZm9y
ZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShuYW1lICsgJyAnKSwgamFoclNwYW4pKTsKICAgIH0K
ICAgIGhlYWRlckxhYmVsc0Fud2VuZGVuKCk7Cn0KLy8gSEVBREVSLUtvbmZpZy1Lb21wbGV4IChI
RUFERVJfUkVJSEVORk9MR0UvS09ORklHX0RFRkFVTFRTL0xBQkVMX0RFRkFVTFRTLCBoZWFkZXJL
b25maWdHZXQsIGhlYWRlclJvdywgaGVhZGVyTGFiZWwqKSAtPiBqcy9ncmlkL3JlbmRlci5qcwoK
ZXhwb3J0IGZ1bmN0aW9uIGVpbnN0ZWxsdW5nZW5SZW5kZXJuKCkgewogICAgdmFyIGVsID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VpbnMtamFocicpOwogICAgaWYgKCFlbCkgcmV0dXJuOwog
ICAgZWwudmFsdWUgPSBaLmFkbWluLmphaHIgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOwog
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VpbnMtaW5ha3Rpdml0YWV0JykudmFsdWUgPSBa
LmFkbWluLmluYWt0aXZpdGFldE1pbnV0ZW4gfHwgMzA7CiAgICAvLyBJbmZvdGV4dCAvIFN1cHBv
cnRpbmZvIC8gU2NobGllw59pbmZvIHdlcmRlbiBhdXNzY2hsaWXDn2xpY2ggaW0KICAgIC8vIOKA
nkluZm9ybWF0aW9uICYgSGlsZmUiLVRhYiBhbHMgUmljaHRleHQgZ2VwZmxlZ3Qg4oCUIGhpZXIg
S0VJTkUKICAgIC8vIER1cGxpa2F0LUZlbGRlciBtZWhyLgogICAgLy8gUGxhbnVuZ3NuYW1lICsg
S3VyegogICAgdmFyIHBuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VpbnMtcGxhbnVuZ3Nu
YW1lJyk7CiAgICBpZiAocG4pIHBuLnZhbHVlID0gWi5hZG1pbi5wbGFudW5nc05hbWUgfHwgJ0ZM
RC1QbGFudW5nJzsKICAgIHZhciBwayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlaW5zLXBs
YW51bmdza3VyeicpOwogICAgaWYgKHBrKSBway52YWx1ZSA9IFouYWRtaW4ucGxhbnVuZ3NLdXJ6
IHx8ICdGTEQnOwogICAgdmFyIGVyID0gKFouYWRtaW4uZXJpbm5lcnVuZyB8fCB7fSk7CiAgICB2
YXIgZXZmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VpbnMtZXJpbm5lcnVuZy12b3JsYXVm
Jyk7CiAgICBpZiAoZXZmKSBldmYudmFsdWUgPSBlci52b3JsYXVmVGFnZSB8fCAxNDsKICAgIHZh
ciBlc24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWlucy1lcmlubmVydW5nLXNub296ZScp
OwogICAgaWYgKGVzbikgZXNuLnZhbHVlID0gZXIuc25vb3plVGFnZSB8fCAzOwogICAgLy8gRXJp
bm5lcnVuZ3MtU3RhbmRhcmQtVGV4dCBhbHMgcmVkdXppZXJ0ZXIgUmljaHRleHQtRWRpdG9yCiAg
ICB2YXIgZXJ0QmxvY2sgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaW5mby1ydGUtYmxvY2tb
ZGF0YS1mZWxkPSJlcmlubmVydW5nU3RhbmRhcmRUZXh0Il0nKTsKICAgIHZhciBlcnRFZCA9IGVy
dEJsb2NrID8gZXJ0QmxvY2sucXVlcnlTZWxlY3RvcignLnJ0ZS1lZGl0b3InKSA6IG51bGw7CiAg
ICB2YXIgZXJ0VGIgPSBlcnRCbG9jayA/IGVydEJsb2NrLnF1ZXJ5U2VsZWN0b3IoJy5ydGUtdG9v
bGJhcicpIDogbnVsbDsKICAgIHJ0ZVRvb2xiYXJCYXVlbihlcnRUYiwgZXJ0RWQpOwogICAgaWYg
KGVydEVkKSB7CiAgICAgICAgZXJ0RWQuaW5uZXJIVE1MID0gc2FuaXRpemVSaWNoSHRtbChlci5z
dGFuZGFyZFRleHQgfHwKICAgICAgICAgICAgJ0JpdHRlIGVpbiBBYnNjaGx1c3MtL1BlcnNwZWt0
aXZnZXNwcsOkY2ggbWl0IHtwZXJzb259IChCZWZyaXN0dW5nIGVuZGV0IGFtIHtlbmRkYXR1bX0p
IGbDvGhyZW4uJyk7CiAgICB9CiAgICAvLyBWZXJiaW5kbGljaGtlaXRzZmVuc3RlcgogICAgdmFy
IHZmID0gKFouYWRtaW4udmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXIgfHwge30pOwogICAgdmFyIHZm
YSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlaW5zLXZmLWFrdGl2Jyk7CiAgICBpZiAodmZh
KSB2ZmEuY2hlY2tlZCA9IHZmLmFrdGl2ICE9PSBmYWxzZTsKICAgIHZhciB2ZncgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZWlucy12Zi13ZXJ0Jyk7CiAgICBpZiAodmZ3KSB2ZncudmFsdWUg
PSB2Zi53ZXJ0IHx8IDI7CiAgICB2YXIgdmZlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vp
bnMtdmYtZWluaGVpdCcpOwogICAgaWYgKHZmZSkgdmZlLnZhbHVlID0gdmYuZWluaGVpdCB8fCAn
d29jaGVuJzsKICAgIHZhciB2ZnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWlucy12Zi13
b2NoZW5zdGFydCcpOwogICAgaWYgKHZmcykgdmZzLnZhbHVlID0gdmYud29jaGVuc3RhcnQgfHwg
MTsKICAgIC8vIFdvY2hlbnBsYW4tSGVhZGVyCiAgICB2YXIgd3BrID0gKFouYWRtaW4ud29jaGVu
cGxhbktvcGYgfHwge30pOwogICAgdmFyIHdwZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
aW5zLXdwa29wZi1kaWVuc3RzdGVsbGUnKTsKICAgIGlmICh3cGQpIHdwZC52YWx1ZSA9IHdway5k
aWVuc3RzdGVsbGUgfHwgJyc7CiAgICB2YXIgd3B0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2VpbnMtd3Brb3BmLXRpdGVsJyk7CiAgICBpZiAod3B0KSB3cHQudmFsdWUgPSB3cGsudGl0ZWwg
fHwgJzctVGFnZSBEaWVuc3R2b3JwbGFudW5nJzsKICAgIHZhciB3cGwgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZWlucy13cGtvcGYtbG9nbycpOwogICAgaWYgKHdwbCkgd3BsLmNoZWNrZWQg
PSB3cGsuemVpZ2VMb2dvICE9PSBmYWxzZTsKICAgIC8vIEhlYWRlci1CZXplaWNobnVuZ2VuLCBW
b3JnYWJlLUFuemVpZ2UsIFNpY2h0YmFya2VpdCBldGMuIOKGkiBUYWIg4oCeSGVhZGVyLVplaWxl
biIKfQoKCi8vIGtvbW1lbnRhciogLyBwZmxpY2h0KiAvIHVudGVyYmVzZXR6dW5nKiAvIHp1RGF0
dW1TY3JvbGxlbiAvIGhhdFBsYW51bmdzVWViZXJibGljayAvIGtvbW1lbnRhcmVJbUdyaWRBbnpl
aWdlbiAtPiBqcy9ncmlkL2ludGVyYWN0aW9uLmpzCgovLyA9PT09PSBQbGFudW5nc2tvcGllIC8g
QmFja3VwID09PT09CgpleHBvcnQgZnVuY3Rpb24gYmFja3VwRXJzdGVsbGVuKCkgewogICAgYXBp
UG9zdCgnL2FwaS9wbGFudW5nL2JhY2t1cCcsIHt9KQogICAgICAgIC50aGVuKGZ1bmN0aW9uKHIp
IHsKICAgICAgICAgICAgdG9hc3QoJ0JhY2t1cCBlcnN0ZWxsdDogJyArIChyLmRhdGVpbmFtZSB8
fCAnT0snKSwgJ2VyZm9sZycpOwogICAgICAgIH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUp
IHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKfQo=
### FILE: js/admin/info-rte.js | 17948
Ly8gPT09IGFkbWluL2luZm8tcnRlLmpzID09PQovLyBJbmZvLSYtSGlsZmUtVGFiIGltIEFkbWlu
OiA1IFJURS1GZWxkZXIgKEluZm90ZXh0LCBTdXBwb3J0LUluZm8sIFNjaGxpZXNzLQovLyBJbmZv
LCBBbGxnZW1laW5lIEhpbGZlLCBCZWRpZW51bmdzLUhpbndlaXNlKSArIEFuc3ByZWNocGFydG5l
ci1QaWNrZXIKLy8gKFBlcnNvbiBhdXMgUGVyc29uYWx2ZXJ3YWx0dW5nIGFscyBBbnNwcmVjaHBh
cnRuZXIgaGludGVybGVnZW4pLgovLyBQbHVzIGluZm9GZW5zdGVyWmVpZ2VuIChJbmZvLU1vZGFs
IGF1cyBkZW0gSGVhZGVyKS4KCmltcG9ydCB7IFogfSBmcm9tICcuLi9jb3JlL3N0YXRlLmpzJzsK
aW1wb3J0IHsgZXNjYXBlSFRNTCwgZXNjYXBlQXR0ciwgcGVyc29uTmFtZSwgcGVyc29uVm9sbE5h
bWUsIGRpZW5zdGdyYWRSYW5nIH0gZnJvbSAnLi4vY29yZS91dGlsLmpzJzsKaW1wb3J0IHsgYXBp
LCBhcGlQb3N0LCBhcGlQdXQgfSBmcm9tICcuLi9jb3JlL2FwaS5qcyc7CmltcG9ydCB7IHRvYXN0
IH0gZnJvbSAnLi4vdWkvdG9hc3QuanMnOwppbXBvcnQgeyBtb2RhbFplaWdlbiwgbW9kYWxTY2hs
aWVzc2VuLCBiZXN0YWV0aWdlbiB9IGZyb20gJy4uL3VpL21vZGFsLmpzJzsKaW1wb3J0IHsgc2Fu
aXRpemVSaWNoSHRtbCwgcnRlVG9vbGJhckJhdWVuIH0gZnJvbSAnLi4vdWkvcnRlLmpzJzsKaW1w
b3J0IHsgc2NoaWNodGNvZGVLYXRlZ29yaWUgfSBmcm9tICcuL2xpc3Rlbi5qcyc7CgoKLy8gPT09
PT0gRi40LUM6IEluZm9ybWF0aW9uICYgSGlsZmUtVGFiIG1pdCBNaW5pLVJURSA9PT09PQoKZXhw
b3J0IHZhciBJTkZPX1JURV9GRUxERVIgPSBbJ2luZm90ZXh0JywgJ3N1cHBvcnRpbmZvJywgJ3Nj
aGxpZXNzaW5mbycsICdhbGxnZW1laW5lSGlsZmUnLCAnYmVkaWVudW5nc0hpbndlaXNlJ107Cgov
LyBEZWZhdWx0LUluaGFsdCBmw7xyIGRpZSDigJ5CZWRpZW51bmciLUJveCBpbSBJbmZvLU1vZGFs
IOKAlCB3aXJkIHZlcndlbmRldCwKLy8gd2VubiBhZG1pbi5iZWRpZW51bmdzSGlud2Vpc2UgbGVl
ciBpc3QuIFVzZXIga2FubiBkZW4gVGV4dCBpbSBBZG1pbi1UYWIKLy8g4oCeSW5mb3JtYXRpb24g
JiBIaWxmZSIgw7xiZXJzY2hyZWliZW4uCmV4cG9ydCB2YXIgQkVESUVOVU5HX0RFRkFVTFRfSFRN
TCA9CiAgICAnPHVsIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MjBweDttYXJnaW46MCI+JyArCiAgICAn
PGxpPjxzdHJvbmc+UGxhbnVuZzo8L3N0cm9uZz4gS2xpY2sgYXVmIGVpbmUgWmVsbGUgw7ZmZm5l
dCBkZW4gU2NoaWNodC1FZGl0b3IgbWl0IENvZGUtQXVzd2FobCwgUGZsaWNodC1NYXJraWVydW5n
IHVuZCBLb21tZW50YXItRmVsZC4gTWVocmVyZSBaZWxsZW4gbWFya2llcmVuIG1pdCBTaGlmdCtL
bGljaywgZGFubiBTdHJnK0MvVi9YIG9kZXIgUmVjaHRza2xpY2sgZsO8ciBLb250ZXh0bWVuw7wu
PC9saT4nICsKICAgICc8bGk+PHN0cm9uZz5QZXJzLiBQbGFuOjwvc3Ryb25nPiBKYWhyZXPDvGJl
cnNpY2h0IGbDvHIgZWluZSBlaW56ZWxuZSBQZXJzb24gbWl0IE1vbmF0c2thbGVuZGVybiB1bmQg
U3RhdGlzdGlrIGplIFNjaGljaHRjb2RlLjwvbGk+JyArCiAgICAnPGxpPjxzdHJvbmc+SGV1dGUt
QnV0dG9uOjwvc3Ryb25nPiBTY3JvbGx0IGltIEhhdXB0Z3JpZCB6dW0gaGV1dGlnZW4gRGF0dW0u
PC9saT4nICsKICAgICc8bGk+PHN0cm9uZz5EU00tWmVpbGU6PC9zdHJvbmc+IFJvdGUgWmVsbGUg
bWl0IOKAnsOXIiA9IFRhZyBub2NoIG5pY2h0IGltIERTTSBnZXBmbGVndDsgZ3LDvG5lIFplbGxl
IG1pdCDigJ7inJMiID0gYmVyZWl0cyBnZWJ1Y2h0LiBUb2dnbGUgcGVyIDxlbT5Eb3BwZWxrbGlj
azwvZW0+IOKAlCBudXIgU3VwZXJVc2VyLCBGYWNoYXVmc2ljaHQgb2RlciAxLiBFQiBWLjwvbGk+
JyArCiAgICAnPGxpPjxzdHJvbmc+VmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXI6PC9zdHJvbmc+IFNj
aG1hbGVyIEZhcmJiYWxrZW4gYW0gdW50ZXJlbiBSYW5kIGRlciBGZXJpZW4vRlQtSGVhZGVyLVpl
bGxlLiA8c3BhbiBzdHlsZT0iY29sb3I6I2MwMzkyYjtmb250LXdlaWdodDo2MDAiPlJvdDwvc3Bh
bj4gPSBpbm5lcmhhbGIgZGVzIEZlbnN0ZXJzIChmw7xyIHJlZ3Vsw6RyZSBVc2VyIGdlc3BlcnJ0
KSwgPHNwYW4gc3R5bGU9ImNvbG9yOiMyN2FlNjA7Zm9udC13ZWlnaHQ6NjAwIj5ncsO8bjwvc3Bh
bj4gPSBmcmVpIHBsYW5iYXIuIEdyw7bDn2UgZWluc3RlbGxiYXIgdW50ZXIgRWluc3RlbGx1bmdl
biDihpIgVmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXIuPC9saT4nICsKICAgICc8bGk+PHN0cm9uZz5Q
ZmxpY2h0LVNldHp1bmc6PC9zdHJvbmc+IEtsZWluZXMgZ29sZGVuZXMgRWNrLURyZWllY2sgb2Jl
biByZWNodHMga2VubnplaWNobmV0IGVpbmUgZ2VnZW4gV3Vuc2NoIGdlc2V0enRlIFNjaGljaHQg
KENoZWNrYm94IGltIEVkaXRvcikuPC9saT4nICsKICAgICc8bGk+PHN0cm9uZz5Lb21tZW50YXJl
Ojwvc3Ryb25nPiBaZWxsZW4gbWl0IEtvbW1lbnRhciBoYWJlbiBlaW4gZ29sZGVuZXMgRHJlaWVj
ayBvYmVuIHJlY2h0cy4gSW5oYWx0IGVyc2NoZWludCBpbSBUb29sdGlwIHVuZCBpbSBFZGl0b3Iu
PC9saT4nICsKICAgICc8bGk+PHN0cm9uZz5UYWdlc2hlYWRlci1JY29uczo8L3N0cm9uZz4g8J+O
giBHZWJ1cnRzdGFnLCDimqAgU29uZGVydGVybWluL1dhcm51bmcsIOKEuSBIaW53ZWlzIOKAlCBL
bGljayBhdWYgZGFzIEljb24gemVpZ3QgSGludGVyZ3J1bmQtSW5mbyBiencuIFNvbmRlcnRlcm1p
bi1Nb2RhbC48L2xpPicgKwogICAgJzxsaT48c3Ryb25nPkZUL05TLU1hcmtlcjo8L3N0cm9uZz4g
S2xpY2sgYXVmIGVpbmVuIEZlaWVydGFnLSBvZGVyIEZlcmllbi1NYXJrZXIgw7ZmZm5ldCBlaW4g
SGludGVyZ3J1bmQtSW5mby1Nb2RhbCBtaXQgRXJrbMOkcnVuZyB1bmQgV2lraXBlZGlhLUxpbmsu
PC9saT4nICsKICAgICc8bGk+PHN0cm9uZz5IZWFkZXItWmVpbGVuOjwvc3Ryb25nPiBEU00sIFZv
cmdhYmUsIFNvbGwsIEYvTCAoRnLDvGgtTGFwcGVyKSwgUy9MIChTcMOkdC1MYXBwZXIpLCBVbnQu
IEYsIFVudC4gTiDigJQgU2ljaHRiYXJrZWl0LCBCZXplaWNobnVuZyB1bmQgRmFyYmVuIHBybyBa
ZWlsZSBlaW5zdGVsbGJhciB1bnRlciBBZG1pbmlzdHJhdGlvbiDihpIgSGVhZGVyLVplaWxlbi48
L2xpPicgKwogICAgJzxsaT48c3Ryb25nPlNjaGljaHRjb2Rlczo8L3N0cm9uZz4gRmFyYmVuIHVu
ZCBSZW5kZXItTW9kdXMgKFplbGxlL0Jsb2NrL1BpbGxlL1RleHQpIHBybyBDb2RlIGtvbmZpZ3Vy
aWVyYmFyIHVudGVyIEFkbWluaXN0cmF0aW9uIOKGkiBTY2hpY2h0Y29kZXMgJmFtcDsgRmFyYmVu
LjwvbGk+JyArCiAgICAnPC91bD4nOwoKLy8gc2FuaXRpemVSaWNoSHRtbCwgcnRlVG9vbGJhckJh
dWVuOiBpbiBqcy91aS9ydGUuanMKCmV4cG9ydCBmdW5jdGlvbiBpbmZvUnRlUmVuZGVybigpIHsK
ICAgIElORk9fUlRFX0ZFTERFUi5mb3JFYWNoKGZ1bmN0aW9uKGZlbGQpIHsKICAgICAgICB2YXIg
YmxvY2sgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaW5mby1ydGUtYmxvY2tbZGF0YS1mZWxk
PSInICsgZmVsZCArICciXScpOwogICAgICAgIGlmICghYmxvY2spIHJldHVybjsKICAgICAgICB2
YXIgZWQgPSBibG9jay5xdWVyeVNlbGVjdG9yKCcucnRlLWVkaXRvcicpOwogICAgICAgIHZhciB0
YiA9IGJsb2NrLnF1ZXJ5U2VsZWN0b3IoJy5ydGUtdG9vbGJhcicpOwogICAgICAgIHJ0ZVRvb2xi
YXJCYXVlbih0YiwgZWQpOwogICAgICAgIGlmICghZWQpIHJldHVybjsKICAgICAgICB2YXIgd2Vy
dCA9IFouYWRtaW5bZmVsZF07CiAgICAgICAgLy8gYmVkaWVudW5nc0hpbndlaXNlOiBsZWVyIOKH
kiBEZWZhdWx0IHJlaW5sYWRlbiwgZGFtaXQgZGVyIFVzZXIgZGlyZWt0IGV0d2FzIHp1bSBFZGl0
aWVyZW4gaGF0CiAgICAgICAgaWYgKGZlbGQgPT09ICdiZWRpZW51bmdzSGlud2Vpc2UnICYmICgh
d2VydCB8fCAhd2VydC50cmltKCkpKSB7CiAgICAgICAgICAgIGVkLmlubmVySFRNTCA9IEJFRElF
TlVOR19ERUZBVUxUX0hUTUw7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWQuaW5uZXJI
VE1MID0gc2FuaXRpemVSaWNoSHRtbCh3ZXJ0IHx8ICcnKTsKICAgICAgICB9CiAgICB9KTsKICAg
IC8vIOKAnlN0YW5kYXJkIHdpZWRlcmhlcnN0ZWxsZW4iLUJ1dHRvbiBmw7xyIGJlZGllbnVuZ3NI
aW53ZWlzZSAoZWlubWFsaWcgYW5ow6RuZ2VuKQogICAgdmFyIGJoQmxvY2sgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcuaW5mby1ydGUtYmxvY2tbZGF0YS1mZWxkPSJiZWRpZW51bmdzSGlud2Vp
c2UiXScpOwogICAgaWYgKGJoQmxvY2sgJiYgIWJoQmxvY2sucXVlcnlTZWxlY3RvcignLmJ0bi1i
aC1yZXNldCcpKSB7CiAgICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1
dHRvbicpOwogICAgICAgIGJ0bi50eXBlID0gJ2J1dHRvbic7CiAgICAgICAgYnRuLmNsYXNzTmFt
ZSA9ICdidG4gYnRuLXNlayBidG4ta2xlaW4gYnRuLWJoLXJlc2V0JzsKICAgICAgICBidG4uc3R5
bGUubWFyZ2luVG9wID0gJzZweCc7CiAgICAgICAgYnRuLnRleHRDb250ZW50ID0gJ1N0YW5kYXJk
LVRleHQgd2llZGVyaGVyc3RlbGxlbic7CiAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGJlc3RhZXRpZ2VuKCdCZWRpZW51bmdzLVRl
eHQgYXVmIGRlbiBhdXNnZWxpZWZlcnRlbiBTdGFuZGFyZCB6dXLDvGNrc2V0emVuP1xuXG5Mb2th
bGUgQW5wYXNzdW5nZW4gZ2VoZW4gdmVybG9yZW4uJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICAgICB2YXIgZWQgPSBiaEJsb2NrLnF1ZXJ5U2VsZWN0b3IoJy5ydGUtZWRpdG9yJyk7CiAgICAg
ICAgICAgICAgICBpZiAoZWQpIGVkLmlubmVySFRNTCA9IEJFRElFTlVOR19ERUZBVUxUX0hUTUw7
CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICAgIGJoQmxvY2suYXBwZW5kQ2hpbGQo
YnRuKTsKICAgIH0KICAgIGFuc3ByZWNocGFydG5lclZvcnNjaGF1UmVuZGVybigpOwp9CgovLyBW
b3JzY2hhdSBkZXIgQW5zcHJlY2hwYXJ0bmVyIGltIEluZm8gJiBIaWxmZS1UYWIg4oCUIGtvbXBh
a3Q6IG51ciBOYW1lbiwKLy8gcHJvIFBlcnNvbiBCZWFyYmVpdGVuICjDtmZmbmV0IFBlcnNvbmFs
dmVyd2FsdHVuZy1Nb2RhbCkgdW5kIEVudGZlcm5lbi4KZXhwb3J0IGZ1bmN0aW9uIGFuc3ByZWNo
cGFydG5lclZvcnNjaGF1UmVuZGVybigpIHsKICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaW5mby1hbnNwcmVjaHBhcnRuZXItdm9yc2NoYXUnKTsKICAgIGlmICghYm94KSBy
ZXR1cm47CiAgICB2YXIgYWxsZSA9IChaLmFkbWluLnN1cGVyVXNlciB8fCBbXSk7CiAgICAvLyBJ
bmRpemVzIGRlciDigJ5lY2h0ZW4iIEFuc3ByZWNocGFydG5lciAoUmhpbm8tV2FydHVuZ3MtVXNl
ciBmaWx0ZXJuKS4KICAgIHZhciBzaWNodGJhciA9IGFsbGUubWFwKGZ1bmN0aW9uKHN1LCBpKSB7
CiAgICAgICAgcmV0dXJuIHsgc3U6IHN1LCBpZHg6IGkgfTsKICAgIH0pLmZpbHRlcihmdW5jdGlv
bih4KSB7CiAgICAgICAgaWYgKCF4LnN1Lm5hbWUpIHJldHVybiBmYWxzZTsKICAgICAgICB2YXIg
biA9IFN0cmluZyh4LnN1Lm5hbWUpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgcmV0dXJuIG4gIT09
ICdyaGlubycgJiYgbi5pbmRleE9mKCdyaGlubycpIDwgMDsKICAgIH0pOwogICAgdmFyIHJvd3NI
dG1sID0gJyc7CiAgICBpZiAoc2ljaHRiYXIubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcm93c0h0
bWwgPSAnPGRpdiBzdHlsZT0icGFkZGluZzoxMHB4IDEycHg7Ym9yZGVyOjFweCBkYXNoZWQgdmFy
KC0tYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjZweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVk
KTtmb250LXNpemU6MTJweCI+S2VpbmUgQW5zcHJlY2hwYXJ0bmVyIGhpbnRlcmxlZ3QuPC9kaXY+
JzsKICAgIH0gZWxzZSB7CiAgICAgICAgcm93c0h0bWwgPSAnPHRhYmxlIGNsYXNzPSJhZG1pbi10
YWJlbGxlIiBzdHlsZT0ibWFyZ2luLXRvcDo2cHgiPjx0Ym9keT4nICsKICAgICAgICAgICAgc2lj
aHRiYXIubWFwKGZ1bmN0aW9uKHgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAnPHRyPicgKwog
ICAgICAgICAgICAgICAgICAgICc8dGQgc3R5bGU9InBhZGRpbmc6NnB4IDhweCI+PHN0cm9uZz4n
ICsgZXNjYXBlSFRNTCh4LnN1Lm5hbWUpICsgJzwvc3Ryb25nPjwvdGQ+JyArCiAgICAgICAgICAg
ICAgICAgICAgJzx0ZCBzdHlsZT0icGFkZGluZzo2cHggOHB4O3RleHQtYWxpZ246cmlnaHQ7d2hp
dGUtc3BhY2U6bm93cmFwIj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gY2xh
c3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiIgZGF0YS1ha3Rpb249ImFuc3ByZWNoLWJlYXJiZWl0
ZW4iIGRhdGEtaWR4PSInICsgeC5pZHggKyAnIj5CZWFyYmVpdGVuPC9idXR0b24+ICcgKwogICAg
ICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWts
ZWluIiBkYXRhLWFrdGlvbj0iYW5zcHJlY2gtZW50ZmVybmVuIiBkYXRhLWlkeD0iJyArIHguaWR4
ICsgJyIgc3R5bGU9ImNvbG9yOiMwMDAiPkVudGZlcm5lbjwvYnV0dG9uPicgKwogICAgICAgICAg
ICAgICAgICAgICc8L3RkPicgKwogICAgICAgICAgICAgICAgJzwvdHI+JzsKICAgICAgICAgICAg
fSkuam9pbignJykgKwogICAgICAgICc8L3Rib2R5PjwvdGFibGU+JzsKICAgIH0KICAgIGJveC5p
bm5lckhUTUwgPSByb3dzSHRtbCArCiAgICAgICAgJzxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTBw
eCI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIGJ0bi1rbGVpbiIgaWQ9ImJ0bi1hbnNw
cmVjaC1oaW56dWZ1ZWdlbiI+KyBBbnNwcmVjaHBhcnRuZXIgaGluenVmw7xnZW48L2J1dHRvbj48
L2Rpdj4nOwoKICAgIC8vIExpc3RlbmVyIChkZWxlZ2F0ZSkKICAgIHZhciBidG5BZGQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWFuc3ByZWNoLWhpbnp1ZnVlZ2VuJyk7CiAgICBpZiAo
YnRuQWRkKSBidG5BZGQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhbnNwcmVjaHBhcnRuZXJI
aW56dWZ1ZWdlbkRpYWxvZyk7CiAgICBib3gucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uW2RhdGEt
YWt0aW9uXScpLmZvckVhY2goZnVuY3Rpb24oYnRuKSB7CiAgICAgICAgYnRuLmFkZEV2ZW50TGlz
dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBpZHggPSBwYXJzZUlu
dChidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpLCAxMCk7CiAgICAgICAgICAgIHZhciBha3Rp
b24gPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFrdGlvbicpOwogICAgICAgICAgICBpZiAoYWt0
aW9uID09PSAnYW5zcHJlY2gtYmVhcmJlaXRlbicpIGFuc3ByZWNocGFydG5lckJlYXJiZWl0ZW4o
aWR4KTsKICAgICAgICAgICAgZWxzZSBpZiAoYWt0aW9uID09PSAnYW5zcHJlY2gtZW50ZmVybmVu
JykgYW5zcHJlY2hwYXJ0bmVyRW50ZmVybmVuKGlkeCk7CiAgICAgICAgfSk7CiAgICB9KTsKfQoK
Ly8gUGlja2VyOiB6ZWlndCBhbGxlIFBlcnNvbmVuLCBLbGljayBmw7xndCBzaWUgYWxzIEFuc3By
ZWNocGFydG5lciBoaW56dS4KLy8gRGF0ZW4gKG5hbWUvbndLZW5udW5nL29lL3RlbGVmb24pIHdl
cmRlbiBhdXMgZGVtIFBlcnNvbmVucmVjb3JkIGtvcGllcnQuCmV4cG9ydCBmdW5jdGlvbiBhbnNw
cmVjaHBhcnRuZXJIaW56dWZ1ZWdlbkRpYWxvZygpIHsKICAgIHZhciBhbGxlID0gKChaLnBsYW51
bmcgJiYgWi5wbGFudW5nLnBlcnNvbmVuKSB8fCBbXSkuc2xpY2UoKTsKICAgIC8vIEJlcmVpdHMg
aGludGVybGVndGUgYXVzc2NobGllw59lbiAoTWF0Y2ggcGVyIG53S2VubnVuZywgZmFsbHMgdm9y
aGFuZGVuLCBzb25zdCBOYW1lKS4KICAgIHZhciBzY2hvbkRyaW4gPSB7fTsKICAgIChaLmFkbWlu
LnN1cGVyVXNlciB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihzdSkgewogICAgICAgIHZhciBrZXkg
PSAoc3UubndLZW5udW5nIHx8IHN1Lm5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAg
aWYgKGtleSkgc2Nob25EcmluW2tleV0gPSB0cnVlOwogICAgfSk7CiAgICB2YXIgYXVzd2FobCA9
IGFsbGUuZmlsdGVyKGZ1bmN0aW9uKHApIHsKICAgICAgICBpZiAoIXAuYWt0aXYpIHJldHVybiBm
YWxzZTsKICAgICAgICB2YXIga2V5ID0gKHAubndLZW5udW5nIHx8IChwZXJzb25Wb2xsTmFtZShw
KSkgfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgcmV0dXJuICFzY2hvbkRyaW5ba2V5XTsK
ICAgIH0pLnNvcnQoZnVuY3Rpb24oYSwgYikgewogICAgICAgIHJldHVybiAocGVyc29uTmFtZShh
KSArIChhLnZvcm5hbWUgfHwgJycpKS5sb2NhbGVDb21wYXJlKHBlcnNvbk5hbWUoYikgKyAoYi52
b3JuYW1lIHx8ICcnKSwgJ2RlJyk7CiAgICB9KTsKCiAgICBpZiAoYXVzd2FobC5sZW5ndGggPT09
IDApIHsKICAgICAgICB0b2FzdCgnQWxsZSBha3RpdmVuIFBlcnNvbmVuIHNpbmQgYmVyZWl0cyBh
bHMgQW5zcHJlY2hwYXJ0bmVyIGhpbnRlcmxlZ3QuJywgJ2luZm8nKTsKICAgICAgICByZXR1cm47
CiAgICB9CgogICAgdmFyIG9wdGlvbnNIdG1sID0gYXVzd2FobC5tYXAoZnVuY3Rpb24ocCkgewog
ICAgICAgIHZhciBsYWJlbCA9IHBlcnNvbk5hbWUocCkgKyAocC52b3JuYW1lID8gJywgJyArIHAu
dm9ybmFtZSA6ICcnKSArCiAgICAgICAgICAgIChwLm53S2VubnVuZyA/ICcg4oCUICcgKyBwLm53
S2VubnVuZyA6ICcnKTsKICAgICAgICByZXR1cm4gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFz
cz0iYnRuIGJ0bi1zZWsiIGRhdGEtcGlkPSInICsgZXNjYXBlQXR0cihwLmlkKSArICciIHN0eWxl
PSJ0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJTttYXJnaW46MnB4IDAiPicgKwogICAgICAgICAg
ICBlc2NhcGVIVE1MKGxhYmVsKSArICc8L2J1dHRvbj4nOwogICAgfSkuam9pbignJyk7CiAgICB2
YXIga29lcnBlciA9CiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWwgZm9y
PSJhbnNwcmVjaC1zdWNoZSI+UGVyc29uIHN1Y2hlbjwvbGFiZWw+JyArCiAgICAgICAgICAgICc8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFuc3ByZWNoLXN1Y2hlIiBjbGFzcz0iZm9ybS1pbnB1dCIg
cGxhY2Vob2xkZXI9Ik5hbWUgb2RlciBOVy1LZW5udW5nLi4uIiBzdHlsZT0id2lkdGg6MTAwJSI+
JyArCiAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IGlkPSJhbnNwcmVjaC1saXN0ZSIg
c3R5bGU9Im1heC1oZWlnaHQ6NTB2aDtvdmVyZmxvdzphdXRvO21hcmdpbi10b3A6OHB4O2Rpc3Bs
YXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweCI+JyArCiAgICAgICAgICAgIG9w
dGlvbnNIdG1sICsKICAgICAgICAnPC9kaXY+JzsKICAgIHZhciBmdXNzID0gJzxidXR0b24gY2xh
c3M9ImJ0biIgaWQ9ImFuc3ByZWNoLWFiYnJlY2hlbiIgdHlwZT0iYnV0dG9uIj5BYmJyZWNoZW48
L2J1dHRvbj4nOwogICAgbW9kYWxaZWlnZW4oJ0Fuc3ByZWNocGFydG5lciBoaW56dWbDvGdlbics
IGtvZXJwZXIsIGZ1c3MsIG51bGwpOwoKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbnNw
cmVjaC1hYmJyZWNoZW4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBt
b2RhbFNjaGxpZXNzZW4odHJ1ZSk7IH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fu
c3ByZWNoLXN1Y2hlJykuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbihlKSB7CiAg
ICAgICAgdmFyIHEgPSBlLnRhcmdldC52YWx1ZS50b0xvd2VyQ2FzZSgpLnRyaW0oKTsKICAgICAg
ICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjYW5zcHJlY2gtbGlzdGUgYnV0dG9uJykuZm9y
RWFjaChmdW5jdGlvbihiKSB7CiAgICAgICAgICAgIGIuc3R5bGUuZGlzcGxheSA9ICghcSB8fCBi
LnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxKSA+PSAwKSA/ICcnIDogJ25vbmUn
OwogICAgICAgIH0pOwogICAgfSk7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjYW5z
cHJlY2gtbGlzdGUgYnV0dG9uW2RhdGEtcGlkXScpLmZvckVhY2goZnVuY3Rpb24oYikgewogICAg
ICAgIGIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
dmFyIHBpZCA9IGIuZ2V0QXR0cmlidXRlKCdkYXRhLXBpZCcpOwogICAgICAgICAgICB2YXIgcCA9
IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4gU3Ry
aW5nKHguaWQpID09PSBTdHJpbmcocGlkKTsgfSk7CiAgICAgICAgICAgIGlmICghcCkgcmV0dXJu
OwogICAgICAgICAgICBaLmFkbWluLnN1cGVyVXNlciA9IFouYWRtaW4uc3VwZXJVc2VyIHx8IFtd
OwogICAgICAgICAgICBaLmFkbWluLnN1cGVyVXNlci5wdXNoKHsKICAgICAgICAgICAgICAgIG5h
bWU6ICAgICAgcGVyc29uTmFtZShwKSArIChwLnZvcm5hbWUgPyAnLCAnICsgcC52b3JuYW1lIDog
JycpLAogICAgICAgICAgICAgICAgbndLZW5udW5nOiBwLm53S2VubnVuZyB8fCAnJywKICAgICAg
ICAgICAgICAgIG9lOiAgICAgICAgcC5vZSB8fCAnJywKICAgICAgICAgICAgICAgIHRlbGVmb246
ICAgcC50ZWxlZm9uIHx8ICcnCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBhcGlQdXQoJy9h
cGkvYWRtaW4vc3VwZXJ1c2VyJywgWi5hZG1pbi5zdXBlclVzZXIpLnRoZW4oZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgICAgICAgICB0
b2FzdCgnQW5zcHJlY2hwYXJ0bmVyIGhpbnp1Z2Vmw7xndDogJyArIHBlcnNvbk5hbWUocCksICdl
cmZvbGcnKTsKICAgICAgICAgICAgICAgIGFuc3ByZWNocGFydG5lclZvcnNjaGF1UmVuZGVybigp
OwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzdXBlclVzZXJSZW5kZXJuID09PSAnZnVuY3Rp
b24nKSBzdXBlclVzZXJSZW5kZXJuKCk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUp
IHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICB9
KTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gYW5zcHJlY2hwYXJ0bmVyQmVhcmJlaXRlbihp
ZHgpIHsKICAgIHZhciBzdSA9IChaLmFkbWluLnN1cGVyVXNlciB8fCBbXSlbaWR4XTsKICAgIGlm
ICghc3UpIHJldHVybjsKICAgIC8vIFBlcnNvbiB2aWEgTlctS2VubnVuZyAob2RlciBOYW1lKSB6
dW9yZG5lbgogICAgdmFyIGtleSA9IChzdS5ud0tlbm51bmcgfHwgJycpLnRvTG93ZXJDYXNlKCk7
CiAgICB2YXIgcGVyc29uID0gbnVsbDsKICAgIGlmIChrZXkpIHsKICAgICAgICBwZXJzb24gPSAo
Wi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAg
cmV0dXJuIHAubndLZW5udW5nICYmIFN0cmluZyhwLm53S2VubnVuZykudG9Mb3dlckNhc2UoKSA9
PT0ga2V5OwogICAgICAgIH0pOwogICAgfQogICAgaWYgKCFwZXJzb24pIHsKICAgICAgICAvLyBG
YWxsYmFjazogTmFtZS1NYXRjaAogICAgICAgIHZhciBubSA9IFN0cmluZyhzdS5uYW1lIHx8ICcn
KS50b0xvd2VyQ2FzZSgpOwogICAgICAgIHBlcnNvbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwg
W10pLmZpbmQoZnVuY3Rpb24ocCkgewogICAgICAgICAgICB2YXIgdm9sbCA9IChwZXJzb25OYW1l
KHApICsgKHAudm9ybmFtZSA/ICcsICcgKyBwLnZvcm5hbWUgOiAnJykpLnRvTG93ZXJDYXNlKCk7
CiAgICAgICAgICAgIHJldHVybiB2b2xsID09PSBubTsKICAgICAgICB9KTsKICAgIH0KICAgIGlm
ICghcGVyc29uKSB7CiAgICAgICAgdG9hc3QoJ0tlaW5lIHp1Z2Vow7ZyaWdlIFBlcnNvbiBpbiBk
ZXIgUGxhbnVuZyBnZWZ1bmRlbiDigJQgYml0dGUgdW50ZXIg4oCeQW5zcHJlY2hwYXJ0bmVyIiBk
aXJla3QgYmVhcmJlaXRlbi4nLCAnd2FybnVuZycpOwogICAgICAgIHJldHVybjsKICAgIH0KICAg
IHBlcnNvbkJlYXJiZWl0ZW5EaWFsb2cocGVyc29uLmlkKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGFu
c3ByZWNocGFydG5lckVudGZlcm5lbihpZHgpIHsKICAgIHZhciBzdSA9IChaLmFkbWluLnN1cGVy
VXNlciB8fCBbXSlbaWR4XTsKICAgIGlmICghc3UpIHJldHVybjsKICAgIGJlc3RhZXRpZ2VuKCfi
gJ4nICsgc3UubmFtZSArICciIGFscyBBbnNwcmVjaHBhcnRuZXIgZW50ZmVybmVuP1xuXG5EaWUg
UGVyc29uIGJsZWlidCBpbiBkZXIgUGxhbnVuZyBlcmhhbHRlbiDigJQgbnVyIGRlciBFaW50cmFn
IGluIGRlciBBbnNwcmVjaHBhcnRuZXItTGlzdGUgd2lyZCBnZWzDtnNjaHQuJywgZnVuY3Rpb24o
KSB7CiAgICAgICAgWi5hZG1pbi5zdXBlclVzZXIuc3BsaWNlKGlkeCwgMSk7CiAgICAgICAgYXBp
UHV0KCcvYXBpL2FkbWluL3N1cGVydXNlcicsIFouYWRtaW4uc3VwZXJVc2VyKS50aGVuKGZ1bmN0
aW9uKCkgewogICAgICAgICAgICB0b2FzdCgnQW5zcHJlY2hwYXJ0bmVyIGVudGZlcm50JywgJ2Vy
Zm9sZycpOwogICAgICAgICAgICBhbnNwcmVjaHBhcnRuZXJWb3JzY2hhdVJlbmRlcm4oKTsKICAg
ICAgICAgICAgaWYgKHR5cGVvZiBzdXBlclVzZXJSZW5kZXJuID09PSAnZnVuY3Rpb24nKSBzdXBl
clVzZXJSZW5kZXJuKCk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVo
bGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgfSk7Cn0KCmV4cG9ydCBmdW5j
dGlvbiBpbmZvUnRlU3BlaWNoZXJuKCkgewogICAgdmFyIGRhdGVuID0ge307CiAgICBJTkZPX1JU
RV9GRUxERVIuZm9yRWFjaChmdW5jdGlvbihmZWxkKSB7CiAgICAgICAgdmFyIGJsb2NrID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignLmluZm8tcnRlLWJsb2NrW2RhdGEtZmVsZD0iJyArIGZlbGQg
KyAnIl0nKTsKICAgICAgICBpZiAoIWJsb2NrKSByZXR1cm47CiAgICAgICAgdmFyIGVkID0gYmxv
Y2sucXVlcnlTZWxlY3RvcignLnJ0ZS1lZGl0b3InKTsKICAgICAgICBpZiAoIWVkKSByZXR1cm47
CiAgICAgICAgZGF0ZW5bZmVsZF0gPSBzYW5pdGl6ZVJpY2hIdG1sKGVkLmlubmVySFRNTC50cmlt
KCkpOwogICAgfSk7CiAgICAvLyBQVVQgYXVmIGV4aXN0aWVyZW5kZW4gRWluc3RlbGx1bmdlbi1F
bmRwb2ludCwgZGVyIGRpZXNlIEZlbGRlciB2aWEgV2hpdGVsaXN0IGFremVwdGllcnQKICAgIHJl
dHVybiBhcGlQdXQoJy9hcGkvYWRtaW4vZWluc3RlbGx1bmdlbicsIGRhdGVuKS50aGVuKGZ1bmN0
aW9uKCkgewogICAgICAgIElORk9fUlRFX0ZFTERFUi5mb3JFYWNoKGZ1bmN0aW9uKGZlbGQpIHsg
Wi5hZG1pbltmZWxkXSA9IGRhdGVuW2ZlbGRdOyB9KTsKICAgICAgICB0b2FzdCgnVGV4dGUgZ2Vz
cGVpY2hlcnQnLCAnZXJmb2xnJyk7CiAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdG
ZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7Cn0KCgoKLy8gPT09PT0gSW5mb3Jt
YXRpb25zZmVuc3RlciA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIGluZm9GZW5zdGVyWmVpZ2VuKCkg
ewogICAgLy8gU2NoaWNodGNvZGUtTGVnZW5kZTogbmFjaCBTY2hpY2h0a2F0ZWdvcmllIGdydXBw
aWVydCwgamVkZSBHcnVwcGUgYWxzIGVpZ2VuZSBTcGFsdGUKICAgIHZhciBha3RpdmUgPSAoWi5h
ZG1pbi5zY2hpY2h0Y29kZXMgfHwgW10pLmZpbHRlcihmdW5jdGlvbihzYykgeyByZXR1cm4gc2Mu
YWt0aXYgIT09IGZhbHNlOyB9KTsKICAgIHZhciBncnVwcGVuID0ge307CiAgICBha3RpdmUuZm9y
RWFjaChmdW5jdGlvbihzYykgewogICAgICAgIHZhciBrID0gc2NoaWNodGNvZGVLYXRlZ29yaWUo
c2MuY29kZSk7CiAgICAgICAgaWYgKCFncnVwcGVuW2sua2V5XSkgZ3J1cHBlbltrLmtleV0gPSB7
IGxhYmVsOiBrLmxhYmVsLCBjb2RlczogW10gfTsKICAgICAgICBncnVwcGVuW2sua2V5XS5jb2Rl
cy5wdXNoKHNjKTsKICAgIH0pOwogICAgdmFyIHNvcnRpZXJ0ZUtleXMgPSBPYmplY3Qua2V5cyhn
cnVwcGVuKS5zb3J0KCk7CiAgICBzb3J0aWVydGVLZXlzLmZvckVhY2goZnVuY3Rpb24oaykgewog
ICAgICAgIGdydXBwZW5ba10uY29kZXMuc29ydChmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAg
IHJldHVybiAoYS5rdWVyemVsIHx8IGEuY29kZSkubG9jYWxlQ29tcGFyZShiLmt1ZXJ6ZWwgfHwg
Yi5jb2RlLCAnZGUnKTsKICAgICAgICB9KTsKICAgIH0pOwogICAgdmFyIGNvZGVzID0gJzxkaXYg
c3R5bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsbWlubWF4
KDAsMWZyKSk7Z2FwOjE0cHggMjJweCI+JyArCiAgICAgICAgc29ydGllcnRlS2V5cy5tYXAoZnVu
Y3Rpb24oaykgewogICAgICAgICAgICB2YXIgZyA9IGdydXBwZW5ba107CiAgICAgICAgICAgIHZh
ciBpdGVtcyA9IGcuY29kZXMubWFwKGZ1bmN0aW9uKHNjKSB7CiAgICAgICAgICAgICAgICByZXR1
cm4gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtt
YXJnaW46MnB4IDAiPicgKwogICAgICAgICAgICAgICAgICAgICc8c3BhbiBzdHlsZT0iZGlzcGxh
eTppbmxpbmUtYmxvY2s7d2lkdGg6MjRweDtoZWlnaHQ6MTRweDtib3JkZXItcmFkaXVzOjJweDti
YWNrZ3JvdW5kOicgKyBlc2NhcGVBdHRyKHNjLmhpbnRlcmdydW5kKSArICc7Ym9yZGVyOjFweCBz
b2xpZCByZ2JhKDAsMCwwLDAuMTIpO2ZsZXgtc2hyaW5rOjAiPjwvc3Bhbj4nICsKICAgICAgICAg
ICAgICAgICAgICAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB4Ij48c3Ryb25nPicgKyBlc2Nh
cGVIVE1MKHNjLmt1ZXJ6ZWwgfHwgc2MuY29kZSkgKyAnPC9zdHJvbmc+IOKAlCAnICsgZXNjYXBl
SFRNTChzYy5iZXplaWNobnVuZykgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgJzwvZGl2
Pic7CiAgICAgICAgICAgIH0pLmpvaW4oJycpOwogICAgICAgICAgICByZXR1cm4gJzxkaXY+JyAr
CiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iZm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6
NzAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7
bGV0dGVyLXNwYWNpbmc6MC40cHg7bWFyZ2luLWJvdHRvbTo0cHg7cGFkZGluZy1ib3R0b206M3B4
O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCkiPicgKyBlc2NhcGVI
VE1MKGcubGFiZWwpICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgaXRlbXMgKwogICAgICAg
ICAgICAnPC9kaXY+JzsKICAgICAgICB9KS5qb2luKCcnKSArCiAgICAnPC9kaXY+JzsKCiAgICB2
YXIgaW5mb0Jsb2NrID0gJyc7CiAgICBpZiAoWi5hZG1pbi5pbmZvdGV4dCkgewogICAgICAgIGlu
Zm9CbG9jayArPSAnPGRpdiBjbGFzcz0iaW5mby1rYXJ0ZSBpbmZvLWthcnRlLWluZm8iPjxzdHJv
bmc+SW5mb3RleHQ6PC9zdHJvbmc+PGJyPicgKwogICAgICAgICAgICBlc2NhcGVIVE1MKFouYWRt
aW4uaW5mb3RleHQpLnJlcGxhY2UoL1xuL2csICc8YnI+JykgKyAnPC9kaXY+JzsKICAgIH0KICAg
IGlmIChaLmFkbWluLnN1cHBvcnRpbmZvKSB7CiAgICAgICAgaW5mb0Jsb2NrICs9ICc8ZGl2IGNs
YXNzPSJpbmZvLWthcnRlIGluZm8ta2FydGUtc3VwcG9ydCI+PHN0cm9uZz5TdXBwb3J0Ojwvc3Ry
b25nPjxicj4nICsKICAgICAgICAgICAgZXNjYXBlSFRNTChaLmFkbWluLnN1cHBvcnRpbmZvKS5y
ZXBsYWNlKC9cbi9nLCAnPGJyPicpICsgJzwvZGl2Pic7CiAgICB9CiAgICAvLyBBbnNwcmVjaHBh
cnRuZXIgYXVzIGRlciBTdXBlclVzZXItTGlzdGUg4oCUIFRlc3QtL1dhcnR1bmdzLVVzZXIg4oCe
Umhpbm8iIHdpcmQgbmllIGFuZ2V6ZWlndC4KICAgIHZhciBzdUxpc3RlID0gKFouYWRtaW4uc3Vw
ZXJVc2VyIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24oc3UpIHsKICAgICAgICBpZiAoIXN1Lm5hbWUp
IHJldHVybiBmYWxzZTsKICAgICAgICB2YXIgbiA9IFN0cmluZyhzdS5uYW1lKS50b0xvd2VyQ2Fz
ZSgpOwogICAgICAgIHJldHVybiBuICE9PSAncmhpbm8nICYmIG4uaW5kZXhPZigncmhpbm8nKSA8
IDA7CiAgICB9KTsKICAgIGlmIChzdUxpc3RlLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIgc3VI
dG1sID0gc3VMaXN0ZS5tYXAoZnVuY3Rpb24oc3UpIHsKICAgICAgICAgICAgdmFyIHplaWxlID0g
JzxzdHJvbmc+JyArIGVzY2FwZUhUTUwoc3UubmFtZSkgKyAnPC9zdHJvbmc+JzsKICAgICAgICAg
ICAgdmFyIHJlY2h0cyA9IFtdOwogICAgICAgICAgICBpZiAoc3Uub2UpIHJlY2h0cy5wdXNoKGVz
Y2FwZUhUTUwoc3Uub2UpKTsKICAgICAgICAgICAgaWYgKHN1LnRlbGVmb24pIHJlY2h0cy5wdXNo
KCdUZWwuIDxzdHJvbmc+JyArIGVzY2FwZUhUTUwoc3UudGVsZWZvbikgKyAnPC9zdHJvbmc+Jyk7
CiAgICAgICAgICAgIGlmIChyZWNodHMubGVuZ3RoKSB6ZWlsZSArPSAnIOKAlCAnICsgcmVjaHRz
LmpvaW4oJywgJyk7CiAgICAgICAgICAgIHJldHVybiAnPGxpIHN0eWxlPSJtYXJnaW4tYm90dG9t
OjNweCI+JyArIHplaWxlICsgJzwvbGk+JzsKICAgICAgICB9KS5qb2luKCcnKTsKICAgICAgICBp
bmZvQmxvY2sgKz0gJzxkaXYgY2xhc3M9ImluZm8ta2FydGUgaW5mby1rYXJ0ZS1zdXBwb3J0Ij4n
ICsKICAgICAgICAgICAgJzxzdHJvbmc+QW5zcHJlY2hwYXJ0bmVyOjwvc3Ryb25nPicgKwogICAg
ICAgICAgICAnPHVsIHN0eWxlPSJtYXJnaW46NnB4IDAgMCAxOHB4O3BhZGRpbmc6MDtsaXN0LXN0
eWxlOmRpc2MiPicgKyBzdUh0bWwgKyAnPC91bD48L2Rpdj4nOwogICAgfQoKICAgIHZhciBiZWRp
ZW5IdG1sID0gKFouYWRtaW4gJiYgWi5hZG1pbi5iZWRpZW51bmdzSGlud2Vpc2UgJiYgWi5hZG1p
bi5iZWRpZW51bmdzSGlud2Vpc2UudHJpbSgpKQogICAgICAgID8gc2FuaXRpemVSaWNoSHRtbCha
LmFkbWluLmJlZGllbnVuZ3NIaW53ZWlzZSkKICAgICAgICA6IEJFRElFTlVOR19ERUZBVUxUX0hU
TUw7CiAgICB2YXIga29lcnBlciA9ICc8ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDoxLjgiPicgKwog
ICAgICAgIChpbmZvQmxvY2sgPyBpbmZvQmxvY2sgOiAnJykgKwogICAgICAgICc8aDMgc3R5bGU9
ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7bWFyZ2luLWJvdHRvbTo4cHg7bWFyZ2luLXRvcDox
MnB4Ij5CZWRpZW51bmc8L2gzPicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJmb250LXNpemU6MTNw
eDttYXJnaW4tYm90dG9tOjE2cHgiPicgKyBiZWRpZW5IdG1sICsgJzwvZGl2PicgKwogICAgICAg
ICc8aDMgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7bWFyZ2luLWJvdHRvbTo4cHgi
PlNjaGljaHRjb2RlLUxlZ2VuZGU8L2gzPicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5
OmZsZXg7ZmxleC13cmFwOndyYXA7bWFyZ2luLWJvdHRvbTo4cHgiPicgKyBjb2RlcyArICc8L2Rp
dj4nICsKICAgICAgICAnPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMXB4
O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj4nICsKICAgICAgICAoWi5hZG1pbi5wbGFudW5nc05h
bWUgfHwgJ0ZMRC1QbGFudW5nJykgKyAnICcgKyAoWi5hZG1pbi5qYWhyIHx8ICcnKSArICcg4oCU
IEJlbnV0emVyOiAnICsgZXNjYXBlSFRNTChaLmJlbnV0emVyKSArCiAgICAgICAgJzwvZGl2Pjwv
ZGl2Pic7CgogICAgbW9kYWxaZWlnZW4oJ0luZm9ybWF0aW9uICYgSGlsZmUnLCBrb2VycGVyLCAn
PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChcJ21vZGFsLW92ZXJsYXlcJykuY2xhc3NMaXN0LmFkZChcJ3ZlcnN0ZWNrdFwnKSI+
U2NobGllw59lbjwvYnV0dG9uPicpOwogICAgdmFyIGluaGFsdEVsID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignI21vZGFsLW92ZXJsYXkgLm1vZGFsLWluaGFsdCcpOwogICAgaWYgKGluaGFsdEVs
KSBpbmhhbHRFbC5jbGFzc0xpc3QuYWRkKCdtb2RhbC1pbmhhbHQtZ3Jvc3MnKTsKfQo=
### FILE: js/admin/listen.js | 85071
Ly8gPT09IGFkbWluL2xpc3Rlbi5qcyA9PT0KLy8gQWRtaW4tTGlzdGVuOiBGZWllcnRhZ2UsIEZl
cmllbiwgVm9ybGFnZW4sIFNvbmRlcnRlcm1pbmUsIFNjaGljaHRjb2RlcywKLy8gU2NoaWNodGZv
bGdlbiwgU3VwZXJVc2VyLCBGYWNoYXVmc2ljaHQuIFBsdXMgU29uZGVydGVybWluLUVkaXQtTW9k
YWwgbWl0Ci8vIExvZ28tUGlja2VyIChUYWJzIG5hY2ggTWVkaWVuLUthdGVnb3JpZSkuCi8vCi8v
IENyb3NzLU1vZHVsZS1Ib29rcyAoUGhhc2UgNmItV29ya2Fyb3VuZCk6Ci8vICAgZmVhdHVyZUlz
dEFrdGl2IC0+IGFkbWluL2FkbWluLmpzIChQaGFzZSA2ZikKCmltcG9ydCB7IFogfSBmcm9tICcu
Li9jb3JlL3N0YXRlLmpzJzsKaW1wb3J0IHsKICAgIGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIsIGRh
dHVtU3RyLCBkYXR1bUZvcm1hdERFLCBkYXR1bUt1cnpERSwKICAgIHBlcnNvbk5hbWUsIHBlcnNv
blZvbGxOYW1lLCBqYWhyZXNNZW5nZUF1c0VpbnRyYWVnZW4KfSBmcm9tICcuLi9jb3JlL3V0aWwu
anMnOwppbXBvcnQgeyBhcGksIGFwaVBvc3QsIGFwaVB1dCwgYXBpU2FmZSwgYXBpRmV0Y2ggfSBm
cm9tICcuLi9jb3JlL2FwaS5qcyc7CmltcG9ydCB7IHRvYXN0IH0gZnJvbSAnLi4vdWkvdG9hc3Qu
anMnOwppbXBvcnQgewogICAgbW9kYWxaZWlnZW4sIG1vZGFsU2NobGllc3NlbiwgYmVzdGFldGln
ZW4sCiAgICBlbnR3dXJmRnVlciwgZW50d3VyZlNwZWljaGVybiwgZW50d3VyZkxvZXNjaGVuLAog
ICAgbW9kYWxFbnR3dXJmQmFubmVyWmVpZ2VuCn0gZnJvbSAnLi4vdWkvbW9kYWwuanMnOwppbXBv
cnQgeyBydGVJbml0LCBydGVCdXR0b25TdGF0ZXMsIHNhbml0aXplUmljaEh0bWwsIHJ0ZVRvb2xi
YXJCYXVlbiB9IGZyb20gJy4uL3VpL3J0ZS5qcyc7CmltcG9ydCB7CiAgICBJQ09OX1NFVCwgSUNP
Tl9CWV9OQU1FLCBFTU9KSV9UT19JQ09OLAogICAgaWNvblN2Z0h0bWwsIGljb25MYWJlbCwgZW1v
amlQaWNrZXJaZWlnZW4sIGVtb2ppUGlja2VyU2NobGllc3Nlbgp9IGZyb20gJy4uL3VpL2ljb25z
LmpzJzsKaW1wb3J0IHsKICAgIGtvcGZSZW5kZXJuLCB0YWdJbmZvc0JlcmVjaG5lbiwgdGVybWlu
SW5mb0ZpbmRlbiwKICAgIHplbGxlQW56ZWlnZUh0bWwsIGdyaWRSZW5kZXJuLCBkYXRlbkdyaWRS
ZW5kZXJuLCBuYW1lblJlbmRlcm4sCiAgICBzY2hyYWZmdXJlbkFud2VuZGVuLCBoZWFkZXJMYWJl
bHNBbndlbmRlbgp9IGZyb20gJy4uL2dyaWQvcmVuZGVyLmpzJzsKCmV4cG9ydCB2YXIgbGlzdGVu
SG9va3MgPSB7CiAgICBmZWF0dXJlSXN0QWt0aXY6IG51bGwgICAgLy8gYWRtaW4vYWRtaW4uanMg
KFBoYXNlIDZmKQp9OwoKCi8vIGphaHJlc01lbmdlQXVzRWludHJhZWdlbjogamV0enQgaW4ganMv
Y29yZS91dGlsLmpzCgpleHBvcnQgZnVuY3Rpb24gZmVpZXJ0YWdCZXplaWNobnVuZyhmKSB7IHJl
dHVybiBmLmJlemVpY2hudW5nIHx8IGYubmFtZSB8fCAnJzsgfQoKZXhwb3J0IGZ1bmN0aW9uIGZl
aWVydGFnZVRhYmVsbGVSZW5kZXJuKCkgewogICAgdmFyIGFsbGUgPSBaLmFkbWluLmZlaWVydGFn
ZSB8fCBbXTsKICAgIC8vIEphaHItRmlsdGVyIGJlZnVlbGxlbgogICAgdmFyIHNlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdmdC1maWx0ZXItamFocicpOwogICAgaWYgKHNlbCkgewogICAg
ICAgIHZhciBqYWhyZSA9IGphaHJlc01lbmdlQXVzRWludHJhZWdlbihhbGxlLCAnZGF0dW0nKTsK
ICAgICAgICB2YXIgYWt0SmFociA9IFN0cmluZyhaLl90ZXJtaW5lRmlsdGVyLmZ0SmFociB8fCBa
LmFkbWluLmphaHIgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpKTsKICAgICAgICBpZiAoamFo
cmUuaW5kZXhPZihha3RKYWhyKSA8IDAgJiYgamFocmUubGVuZ3RoKSBha3RKYWhyID0gamFocmVb
MF07CiAgICAgICAgc2VsLmlubmVySFRNTCA9IGphaHJlLm1hcChmdW5jdGlvbihqKSB7CiAgICAg
ICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1ZT0iJyArIGogKyAnIicgKyAoaiA9PT0gYWt0SmFo
ciA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz4nICsgaiArICc8L29wdGlvbj4nOwogICAgICAgIH0p
LmpvaW4oJycpOwogICAgICAgIFouX3Rlcm1pbmVGaWx0ZXIuZnRKYWhyID0gYWt0SmFocjsKICAg
IH0KICAgIC8vIEthdGVnb3JpZS1GaWx0ZXIgYXVzIENoZWNrYm94ZW4gbGVzZW4KICAgIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNmZWllcnRhZ2UtZmlsdGVyIC5mdC1rYXQtY2hrIGlucHV0
JykuZm9yRWFjaChmdW5jdGlvbihjYikgewogICAgICAgIHZhciBrID0gY2IuZ2V0QXR0cmlidXRl
KCdkYXRhLWthdGVnb3JpZScpOwogICAgICAgIGlmIChrICYmIFouX3Rlcm1pbmVGaWx0ZXIuZnRL
YXRlZ29yaWVuW2tdID09PSB1bmRlZmluZWQpIFouX3Rlcm1pbmVGaWx0ZXIuZnRLYXRlZ29yaWVu
W2tdID0gdHJ1ZTsKICAgICAgICBjYi5jaGVja2VkID0gISFaLl90ZXJtaW5lRmlsdGVyLmZ0S2F0
ZWdvcmllbltrXTsKICAgIH0pOwoKICAgIHZhciBqYWhyID0gWi5fdGVybWluZUZpbHRlci5mdEph
aHI7CiAgICB2YXIga2F0cyA9IFouX3Rlcm1pbmVGaWx0ZXIuZnRLYXRlZ29yaWVuOwogICAgdmFy
IGthdEJhZGdlID0gewogICAgICAgIGdlc2V0emxpY2g6ICc8c3BhbiBjbGFzcz0iZnQta2F0IGZ0
LWthdC1nZXNldHpsaWNoIj5nZXNldHpsLjwvc3Bhbj4nLAogICAgICAgIGp1ZWRpc2NoOiAgICc8
c3BhbiBjbGFzcz0iZnQta2F0IGZ0LWthdC1qdWVkaXNjaCI+asO8ZGlzY2g8L3NwYW4+JywKICAg
ICAgICBtdXNsaW1pc2NoOiAnPHNwYW4gY2xhc3M9ImZ0LWthdCBmdC1rYXQtbXVzbGltaXNjaCI+
bXVzbGltLjwvc3Bhbj4nLAogICAgICAgIHR1ZXJraXNjaDogICc8c3BhbiBjbGFzcz0iZnQta2F0
IGZ0LWthdC10dWVya2lzY2giPnTDvHJrLjwvc3Bhbj4nLAogICAgfTsKCiAgICAvLyBJbmRleCBw
cm8gRWludHJhZyBtZXJrZW4gKGZ1ZXIga29ycmVrdGVzIFRvZ2dsZS9EZWxldGUgaW0gT3JpZ2lu
YWwtQXJyYXkpCiAgICB2YXIgaHRtbCA9ICcnOwogICAgdmFyIHNpY2h0YmFyQ291bnQgPSAwOwog
ICAgYWxsZS5mb3JFYWNoKGZ1bmN0aW9uKGYsIGkpIHsKICAgICAgICB2YXIga2F0ID0gZi5rYXRl
Z29yaWUgfHwgJ2dlc2V0emxpY2gnOwogICAgICAgIGlmIChqYWhyICYmIGYuZGF0dW0gJiYgZi5k
YXR1bS5zdWJzdHJpbmcoMCwgNCkgIT09IGphaHIpIHJldHVybjsKICAgICAgICBpZiAoIWthdHNb
a2F0XSkgcmV0dXJuOwogICAgICAgIHNpY2h0YmFyQ291bnQrKzsKICAgICAgICB2YXIgYWt0aXYg
PSAoZi5ha3RpdiAhPT0gZmFsc2UpOwogICAgICAgIGh0bWwgKz0gJzx0ciBkYXRhLWlkeD0iJyAr
IGkgKyAnIicgKyAoZi53aWNodGlnID8gJyBjbGFzcz0iZmVpZXJ0YWctd2ljaHRpZyInIDogJycp
ICsgKGFrdGl2ID8gJycgOiAnIHN0eWxlPSJvcGFjaXR5OjAuNSInKSArICc+JyArCiAgICAgICAg
ICAgICc8dGQ+PGlucHV0IHR5cGU9ImRhdGUiIHZhbHVlPSInICsgKGYuZGF0dW0gfHwgJycpICsg
JyIgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJkYXR1bSIgY2xhc3M9ImZlaWVydGFn
LWlucHV0Ij48L3RkPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1
ZT0iJyArIGVzY2FwZUF0dHIoZmVpZXJ0YWdCZXplaWNobnVuZyhmKSkgKyAnIiBkYXRhLWlkeD0i
JyArIGkgKyAnIiBkYXRhLWZlbGQ9ImJlemVpY2hudW5nIiBjbGFzcz0iZmVpZXJ0YWctaW5wdXQi
PjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+JyArIChrYXRCYWRnZVtrYXRdIHx8IGVzY2FwZUhU
TUwoa2F0KSkgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpj
ZW50ZXIiPjxpbnB1dCB0eXBlPSJjaGVja2JveCInICsgKGFrdGl2ID8gJyBjaGVja2VkJyA6ICcn
KSArICcgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJha3RpdiIgY2xhc3M9ImZlaWVy
dGFnLWlucHV0IiB0aXRsZT0iVGVybWluIGFrdGl2IChpbSBIZWFkZXIgYW56ZWlnZW4pIj48L3Rk
PicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+PGlucHV0IHR5
cGU9ImNoZWNrYm94IicgKyAoZi53aWNodGlnID8gJyBjaGVja2VkJyA6ICcnKSArICcgZGF0YS1p
ZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJ3aWNodGlnIiBjbGFzcz0iZmVpZXJ0YWctaW5wdXQi
IHRpdGxlPSJWZXJzdMOkcmt0ZSBIZXJ2b3JoZWJ1bmciPjwvdGQ+JyArCiAgICAgICAgICAgICc8
dGQ+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWtsZWluIiBkYXRhLWFrdGlvbj0i
ZmVpZXJ0YWctbG9lc2NoZW4iIGRhdGEtaWR4PSInICsgaSArICciIHRpdGxlPSJMw7ZzY2hlbiI+
JiMxMDAwNTs8L2J1dHRvbj48L3RkPjwvdHI+JzsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ZlaWVydGFnZS10Ym9keScpLmlubmVySFRNTCA9IGh0bWw7CiAgICB2YXIgaW5m
byA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmdC1maWx0ZXItaW5mbycpOwogICAgaWYgKGlu
Zm8pIGluZm8udGV4dENvbnRlbnQgPSBzaWNodGJhckNvdW50ICsgJyBUZXJtaW5lIHNpY2h0YmFy
ICh2b24gJyArIGFsbGUubGVuZ3RoICsgJyBpbnNnZXNhbXQpJzsKfQoKZXhwb3J0IGZ1bmN0aW9u
IGZlaWVydGFnZUF1c1RhYmVsbGVMZXNlbigpIHsKICAgIC8vIEFDSFRVTkc6IEZpbHRlciB6ZWln
dCBudXIgVGVpbG1lbmdlIOKAlCB3aXIgYWt0dWFsaXNpZXJlbiBJbi1QbGFjZSBhdWYgWi5hZG1p
bi5mZWllcnRhZ2UKICAgIC8vIGFuc3RhdHQga29tcGxldHQgbmV1IGF1Znp1YmF1ZW4sIGRhbWl0
IGdlZmlsdGVydGUgRWludHJhZWdlIG5pY2h0IHZlcmxvcmVuIGdlaGVuLgogICAgdmFyIGZlbGRl
ciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNmZWllcnRhZ2UtdGJvZHkgLmZlaWVydGFn
LWlucHV0Jyk7CiAgICBmZWxkZXIuZm9yRWFjaChmdW5jdGlvbihpbnApIHsKICAgICAgICB2YXIg
aWR4ID0gcGFyc2VJbnQoaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSwgMTApOwogICAgICAg
IHZhciBmZWxkID0gaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1mZWxkJyk7CiAgICAgICAgdmFyIGYg
PSAoWi5hZG1pbi5mZWllcnRhZ2UgfHwgW10pW2lkeF07CiAgICAgICAgaWYgKCFmKSByZXR1cm47
CiAgICAgICAgaWYgKGZlbGQgPT09ICd3aWNodGlnJyB8fCBmZWxkID09PSAnYWt0aXYnKSBmW2Zl
bGRdID0gaW5wLmNoZWNrZWQ7CiAgICAgICAgZWxzZSBmW2ZlbGRdID0gaW5wLnZhbHVlOwogICAg
fSk7CiAgICByZXR1cm4gKFouYWRtaW4uZmVpZXJ0YWdlIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24o
ZikgeyByZXR1cm4gZi5kYXR1bSAmJiAoZi5iZXplaWNobnVuZyB8fCBmLm5hbWUpOyB9KTsKfQoK
Ly8gPT09PT0gQWRtaW46IFNjaHVsZmVyaWVuIE5SVyA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIGZl
cmllblRhYmVsbGVSZW5kZXJuKCkgewogICAgdmFyIGFsbGUgPSBaLmFkbWluLmZlcmllbiB8fCBb
XTsKICAgIHZhciBzZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmVyLWZpbHRlci1qYWhy
Jyk7CiAgICBpZiAoc2VsKSB7CiAgICAgICAgdmFyIGphaHJlID0gamFocmVzTWVuZ2VBdXNFaW50
cmFlZ2VuKGFsbGUsICd2b24nKTsKICAgICAgICB2YXIgYWt0SmFociA9IFN0cmluZyhaLl90ZXJt
aW5lRmlsdGVyLmZlckphaHIgfHwgWi5hZG1pbi5qYWhyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFll
YXIoKSk7CiAgICAgICAgaWYgKGphaHJlLmluZGV4T2YoYWt0SmFocikgPCAwICYmIGphaHJlLmxl
bmd0aCkgYWt0SmFociA9IGphaHJlWzBdOwogICAgICAgIHNlbC5pbm5lckhUTUwgPSBqYWhyZS5t
YXAoZnVuY3Rpb24oaikgewogICAgICAgICAgICByZXR1cm4gJzxvcHRpb24gdmFsdWU9IicgKyBq
ICsgJyInICsgKGogPT09IGFrdEphaHIgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+JyArIGogKyAn
PC9vcHRpb24+JzsKICAgICAgICB9KS5qb2luKCcnKTsKICAgICAgICBaLl90ZXJtaW5lRmlsdGVy
LmZlckphaHIgPSBha3RKYWhyOwogICAgfQogICAgdmFyIGphaHIgPSBaLl90ZXJtaW5lRmlsdGVy
LmZlckphaHI7CiAgICB2YXIgaHRtbCA9ICcnOwogICAgdmFyIHNpY2h0YmFyQ291bnQgPSAwOwog
ICAgYWxsZS5mb3JFYWNoKGZ1bmN0aW9uKGYsIGkpIHsKICAgICAgICBpZiAoamFociAmJiBmLnZv
biAmJiBmLnZvbi5zdWJzdHJpbmcoMCwgNCkgIT09IGphaHIpIHJldHVybjsKICAgICAgICBzaWNo
dGJhckNvdW50Kys7CiAgICAgICAgdmFyIGFrdGl2ID0gKGYuYWt0aXYgIT09IGZhbHNlKTsKICAg
ICAgICBodG1sICs9ICc8dHIgZGF0YS1pZHg9IicgKyBpICsgJyInICsgKGFrdGl2ID8gJycgOiAn
IHN0eWxlPSJvcGFjaXR5OjAuNSInKSArICc+JyArCiAgICAgICAgICAgICc8dGQ+PGlucHV0IHR5
cGU9ImRhdGUiIHZhbHVlPSInICsgKGYudm9uIHx8ICcnKSArICciIGRhdGEtaWR4PSInICsgaSAr
ICciIGRhdGEtZmVsZD0idm9uIiBjbGFzcz0iZmVyaWVuLWlucHV0Ij48L3RkPicgKwogICAgICAg
ICAgICAnPHRkPjxpbnB1dCB0eXBlPSJkYXRlIiB2YWx1ZT0iJyArIChmLmJpcyB8fCAnJykgKyAn
IiBkYXRhLWlkeD0iJyArIGkgKyAnIiBkYXRhLWZlbGQ9ImJpcyIgY2xhc3M9ImZlcmllbi1pbnB1
dCI+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Iicg
KyBlc2NhcGVBdHRyKGZlaWVydGFnQmV6ZWljaG51bmcoZikpICsgJyIgZGF0YS1pZHg9IicgKyBp
ICsgJyIgZGF0YS1mZWxkPSJiZXplaWNobnVuZyIgY2xhc3M9ImZlcmllbi1pbnB1dCI+PC90ZD4n
ICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPjxpbnB1dCB0eXBl
PSJjaGVja2JveCInICsgKGFrdGl2ID8gJyBjaGVja2VkJyA6ICcnKSArICcgZGF0YS1pZHg9Iicg
KyBpICsgJyIgZGF0YS1mZWxkPSJha3RpdiIgY2xhc3M9ImZlcmllbi1pbnB1dCIgdGl0bGU9IkZl
cmllbnplaXRyYXVtIGFrdGl2Ij48L3RkPicgKwogICAgICAgICAgICAnPHRkPjxidXR0b24gY2xh
c3M9ImJ0biBidG4tZ2VmYWhyIGJ0bi1rbGVpbiIgZGF0YS1ha3Rpb249ImZlcmllbi1sb2VzY2hl
biIgZGF0YS1pZHg9IicgKyBpICsgJyIgdGl0bGU9IkzDtnNjaGVuIj4mIzEwMDA1OzwvYnV0dG9u
PjwvdGQ+PC90cj4nOwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmVyaWVu
LXRib2R5JykuaW5uZXJIVE1MID0gaHRtbDsKICAgIHZhciBpbmZvID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2Zlci1maWx0ZXItaW5mbycpOwogICAgaWYgKGluZm8pIGluZm8udGV4dENvbnRl
bnQgPSBzaWNodGJhckNvdW50ICsgJyBaZWl0csOkdW1lIHNpY2h0YmFyICh2b24gJyArIGFsbGUu
bGVuZ3RoICsgJyBpbnNnZXNhbXQpJzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGZlcmllbkF1c1RhYmVs
bGVMZXNlbigpIHsKICAgIC8vIEluLVBsYWNlLVVwZGF0ZSBhdWYgWi5hZG1pbi5mZXJpZW4gKGFu
YWxvZyBmZWllcnRhZ2VBdXNUYWJlbGxlTGVzZW4pCiAgICB2YXIgZmVsZGVyID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgnI2Zlcmllbi10Ym9keSAuZmVyaWVuLWlucHV0Jyk7CiAgICBmZWxk
ZXIuZm9yRWFjaChmdW5jdGlvbihpbnApIHsKICAgICAgICB2YXIgaWR4ID0gcGFyc2VJbnQoaW5w
LmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSwgMTApOwogICAgICAgIHZhciBmZWxkID0gaW5wLmdl
dEF0dHJpYnV0ZSgnZGF0YS1mZWxkJyk7CiAgICAgICAgdmFyIGYgPSAoWi5hZG1pbi5mZXJpZW4g
fHwgW10pW2lkeF07CiAgICAgICAgaWYgKCFmKSByZXR1cm47CiAgICAgICAgaWYgKGZlbGQgPT09
ICdha3RpdicpIGZbZmVsZF0gPSBpbnAuY2hlY2tlZDsKICAgICAgICBlbHNlIGZbZmVsZF0gPSBp
bnAudmFsdWU7CiAgICB9KTsKICAgIHJldHVybiAoWi5hZG1pbi5mZXJpZW4gfHwgW10pLmZpbHRl
cihmdW5jdGlvbihmKSB7IHJldHVybiBmLnZvbiAmJiBmLmJpcyAmJiAoZi5iZXplaWNobnVuZyB8
fCBmLm5hbWUpOyB9KTsKfQoKLy8gPT09PT0gQWRtaW46IFNvbmRlcnRlcm1pbmUgPT09PT0KCi8v
ID09PT09IEIuNDogQmVzcHJlY2h1bmdzLVZvcmxhZ2VuLVRhYiA9PT09PQoKZXhwb3J0IHZhciBC
RVNQUkVDSFVOR1NfVk9STEFHRU5fREVGQVVMVFMgPSBbCiAgICB7IHRpdGVsOiAnQWt0dWVsbGUg
U3RkLicsICAgICBzdGFuZGFyZFRleHQ6ICcnIH0sCiAgICB7IHRpdGVsOiAnQSBER0wnLCAgICAg
ICAgICAgICBzdGFuZGFyZFRleHQ6ICcnIH0sCiAgICB7IHRpdGVsOiAnQkNNJywgICAgICAgICAg
ICAgICBzdGFuZGFyZFRleHQ6ICcnIH0sCiAgICB7IHRpdGVsOiAnRFUnLCAgICAgICAgICAgICAg
ICBzdGFuZGFyZFRleHQ6ICcnIH0sCiAgICB7IHRpdGVsOiAnRkxEJywgICAgICAgICAgICAgICBz
dGFuZGFyZFRleHQ6ICcnIH0sCiAgICB7IHRpdGVsOiAnR0EgVlNLJywgICAgICAgICAgICBzdGFu
ZGFyZFRleHQ6ICcnIH0sCiAgICB7IHRpdGVsOiAnR0UnLCAgICAgICAgICAgICAgICBzdGFuZGFy
ZFRleHQ6ICcnIH0sCiAgICB7IHRpdGVsOiAnSVBDQycsICAgICAgICAgICAgICBzdGFuZGFyZFRl
eHQ6ICcnIH0sCiAgICB7IHRpdGVsOiAnTmV1amFocnNlbXBmLicsICAgICBzdGFuZGFyZFRleHQ6
ICcnIH0sCiAgICB7IHRpdGVsOiAnTkIgVHVubmVsJywgICAgICAgICBzdGFuZGFyZFRleHQ6ICcn
IH0sCiAgICB7IHRpdGVsOiAnUEVLIFZvcnRyYWcnLCAgICAgICBzdGFuZGFyZFRleHQ6ICcnIH0s
CiAgICB7IHRpdGVsOiAnVlUgVGVhbScsICAgICAgICAgICBzdGFuZGFyZFRleHQ6ICcnIH0sCiAg
ICB7IHRpdGVsOiAnV2VydGVvcmllbnQuJywgICAgICBzdGFuZGFyZFRleHQ6ICcnIH0sCl07Cgpl
eHBvcnQgZnVuY3Rpb24gdm9ybGFnZW5Jbml0RGVmYXVsdHMoKSB7CiAgICAvLyBFcnN0LUJlZsO8
bGx1bmcgd2VubiBkaWUgTGlzdGUgbGVlciBpc3QKICAgIGlmICghWi5hZG1pbi5iZXNwcmVjaHVu
Z3NWb3JsYWdlbikgWi5hZG1pbi5iZXNwcmVjaHVuZ3NWb3JsYWdlbiA9IFtdOwogICAgaWYgKFou
YWRtaW4uYmVzcHJlY2h1bmdzVm9ybGFnZW4ubGVuZ3RoID4gMCkgcmV0dXJuIGZhbHNlOwogICAg
QkVTUFJFQ0hVTkdTX1ZPUkxBR0VOX0RFRkFVTFRTLmZvckVhY2goZnVuY3Rpb24odikgewogICAg
ICAgIFouYWRtaW4uYmVzcHJlY2h1bmdzVm9ybGFnZW4ucHVzaCh7CiAgICAgICAgICAgIGlkOiAn
dm9yXycgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSksCiAgICAgICAg
ICAgIHRpdGVsOiB2LnRpdGVsLAogICAgICAgICAgICBzdGFuZGFyZFRleHQ6IHYuc3RhbmRhcmRU
ZXh0IHx8ICcnLAogICAgICAgICAgICBha3RpdjogdHJ1ZSwKICAgICAgICB9KTsKICAgIH0pOwog
ICAgcmV0dXJuIHRydWU7Cn0KCmV4cG9ydCBmdW5jdGlvbiB2b3JsYWdlblNwZWljaGVybigpIHsK
ICAgIHJldHVybiBhcGlQdXQoJy9hcGkvYWRtaW4vYmVzcHJlY2h1bmdzdm9ybGFnZW4nLCBaLmFk
bWluLmJlc3ByZWNodW5nc1ZvcmxhZ2VuIHx8IFtdKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHZvcmxh
Z2VuUmVuZGVybigpIHsKICAgIGlmICghWi5hZG1pbi5iZXNwcmVjaHVuZ3NWb3JsYWdlbikgWi5h
ZG1pbi5iZXNwcmVjaHVuZ3NWb3JsYWdlbiA9IFtdOwogICAgdmFyIGVyZ2Flbnp0ID0gdm9ybGFn
ZW5Jbml0RGVmYXVsdHMoKTsKICAgIGlmIChlcmdhZW56dCkgewogICAgICAgIHZvcmxhZ2VuU3Bl
aWNoZXJuKCkuY2F0Y2goZnVuY3Rpb24oKSB7IC8qIGxva2FsIGFuZ2V6ZWlndCwgcmV0cnkgYmVp
bSBuw6RjaHN0ZW4gU2F2ZSAqLyB9KTsKICAgIH0KICAgIHZhciBsaXN0ZSA9IChaLmFkbWluLmJl
c3ByZWNodW5nc1ZvcmxhZ2VuIHx8IFtdKS5zbGljZSgpLnNvcnQoZnVuY3Rpb24oYSwgYikgewog
ICAgICAgIHJldHVybiAoYS50aXRlbCB8fCAnJykubG9jYWxlQ29tcGFyZShiLnRpdGVsIHx8ICcn
LCAnZGUnKTsKICAgIH0pOwogICAgdmFyIHRib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3ZvcmxhZ2VuLXRib2R5Jyk7CiAgICBpZiAoIXRib2R5KSByZXR1cm47CiAgICBpZiAobGlzdGUu
bGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGJvZHkuaW5uZXJIVE1MID0gJzx0cj48dGQgY29sc3Bh
bj0iNSIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MjRweDtjb2xvcjp2YXIoLS10
ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpYyI+S2VpbmUgVm9ybGFnZW4gYW5nZWxlZ3QuPC90
ZD48L3RyPic7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIGh0bWwgPSAnJzsKICAgIGxp
c3RlLmZvckVhY2goZnVuY3Rpb24odiwgaWR4KSB7CiAgICAgICAgaWYgKCF2LmlkKSB2LmlkID0g
J3Zvcl8nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpOwogICAgICAg
IHZhciB2b3JzY2hhdSA9ICh2LnN0YW5kYXJkVGV4dCB8fCAnJykucmVwbGFjZSgvPFtePl0rPi9n
LCAnJykuc2xpY2UoMCwgODApOwogICAgICAgIGlmICgodi5zdGFuZGFyZFRleHQgfHwgJycpLmxl
bmd0aCA+IDgwKSB2b3JzY2hhdSArPSAn4oCmJzsKICAgICAgICB2YXIgYWt0aXYgPSB2LmFrdGl2
ICE9PSBmYWxzZTsKICAgICAgICBodG1sICs9ICc8dHIgZGF0YS1pZD0iJyArIGVzY2FwZUF0dHIo
di5pZCkgKyAnIicgKyAoYWt0aXYgPyAnJyA6ICcgc3R5bGU9Im9wYWNpdHk6MC41NSInKSArICc+
JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO2NvbG9yOnZhcigt
LXRleHQtbXV0ZWQpIj4nICsgKGlkeCArIDEpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+
PHN0cm9uZz4nICsgZXNjYXBlSFRNTCh2LnRpdGVsIHx8ICfigJQnKSArICc8L3N0cm9uZz48L3Rk
PicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10
ZXh0LW11dGVkKSI+JyArIGVzY2FwZUhUTUwodm9yc2NoYXUgfHwgJ+KAlCBrZWluIFN0YW5kYXJk
dGV4dCDigJQnKSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWdu
OmNlbnRlciI+PGxhYmVsIHN0eWxlPSJjdXJzb3I6cG9pbnRlciI+PGlucHV0IHR5cGU9ImNoZWNr
Ym94IiBkYXRhLWFrdGlvbj0idm9yLWFrdGl2IiBkYXRhLWlkPSInICsgZXNjYXBlQXR0cih2Lmlk
KSArICciJyArIChha3RpdiA/ICcgY2hlY2tlZCcgOiAnJykgKyAnPjwvbGFiZWw+PC90ZD4nICsK
ICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDt3aGl0ZS1zcGFjZTpub3dy
YXAiPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1r
bGVpbiIgZGF0YS1ha3Rpb249InZvci1lZGl0IiBkYXRhLWlkPSInICsgZXNjYXBlQXR0cih2Lmlk
KSArICciPuKcjiBCZWFyYmVpdGVuPC9idXR0b24+ICcgKwogICAgICAgICAgICAgICAgJzxidXR0
b24gY2xhc3M9ImJ0biBidG4tZ2VmYWhyIGJ0bi1rbGVpbiIgZGF0YS1ha3Rpb249InZvci1sb2Vz
Y2giIGRhdGEtaWQ9IicgKyBlc2NhcGVBdHRyKHYuaWQpICsgJyIgc3R5bGU9ImNvbG9yOiMwMDAi
IHRpdGxlPSJMw7ZzY2hlbiI+TMO2c2NoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvdGQ+
JyArCiAgICAgICAgJzwvdHI+JzsKICAgIH0pOwogICAgdGJvZHkuaW5uZXJIVE1MID0gaHRtbDsK
fQoKZXhwb3J0IGZ1bmN0aW9uIHZvcmxhZ2VCZWFyYmVpdGVuKGlkKSB7CiAgICB2YXIgdiA9ICha
LmFkbWluLmJlc3ByZWNodW5nc1ZvcmxhZ2VuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0
dXJuIHguaWQgPT09IGlkOyB9KTsKICAgIGlmICghdikgcmV0dXJuOwogICAgdmFyIHRvb2xiYXJI
dG1sID0KICAgICAgICAnPGRpdiBjbGFzcz0icnRlLXRvb2xiYXIiIGlkPSJ2b3ItdGV4dC10b29s
YmFyIj4nICsKICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0
biIgZGF0YS1jbWQ9ImJvbGQiIHRpdGxlPSJGZXR0IChTdHJnK0IpIj48Yj5CPC9iPjwvYnV0dG9u
PicgKwogICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBk
YXRhLWNtZD0iaXRhbGljIiB0aXRsZT0iS3Vyc2l2IChTdHJnK0kpIj48aT5JPC9pPjwvYnV0dG9u
PicgKwogICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBk
YXRhLWNtZD0idW5kZXJsaW5lIiB0aXRsZT0iVW50ZXJzdHJpY2hlbiAoU3RyZytVKSI+PHU+VTwv
dT48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJydGUtc2VwIj48L3NwYW4+
JyArCiAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRh
dGEtY21kPSJpbnNlcnRVbm9yZGVyZWRMaXN0IiB0aXRsZT0iQXVmesOkaGx1bmdzbGlzdGUiPuKA
oiBMaXN0ZTwvYnV0dG9uPicgKwogICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNs
YXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5zZXJ0T3JkZXJlZExpc3QiIHRpdGxlPSJOdW1tZXJp
ZXJ0ZSBMaXN0ZSI+MS4gTGlzdGU8L2J1dHRvbj4nICsKICAgICAgICAgICAgJzxzcGFuIGNsYXNz
PSJydGUtc2VwIj48L3NwYW4+JyArCiAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIg
Y2xhc3M9InJ0ZS1idG4iIGRhdGEtY21kPSJyZW1vdmVGb3JtYXQiIHRpdGxlPSJGb3JtYXRpZXJ1
bmcgZW50ZmVybmVuIj7DlzwvYnV0dG9uPicgKwogICAgICAgICc8L2Rpdj4nOwogICAgdmFyIGtv
ZXJwZXIgPQogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+JyArCiAgICAgICAgICAg
ICc8bGFiZWwgZm9yPSJ2b3ItdGl0ZWwiPlRpdGVsPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0idm9yLXRpdGVsIiBjbGFzcz0iZm9ybS1pbnB1dCIgdmFsdWU9
IicgKyBlc2NhcGVBdHRyKHYudGl0ZWwgfHwgJycpICsgJyI+JyArCiAgICAgICAgJzwvZGl2Picg
KwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9Im1hcmdpbi10b3A6MTBw
eCI+JyArCiAgICAgICAgICAgICc8bGFiZWw+U3RhbmRhcmR0ZXh0ICh3aXJkIGltIFNvbmRlcnRl
cm1pbi1Nb2RhbCB2b3JiZWbDvGxsdCk8L2xhYmVsPicgKwogICAgICAgICAgICB0b29sYmFySHRt
bCArCiAgICAgICAgICAgICc8ZGl2IGlkPSJ2b3ItdGV4dCIgY2xhc3M9InJ0ZS1lZGl0b3IiIGNv
bnRlbnRlZGl0YWJsZT0idHJ1ZSIgc3BlbGxjaGVjaz0idHJ1ZSI+JyArIHNhbml0aXplUmljaEh0
bWwodi5zdGFuZGFyZFRleHQgfHwgJycpICsgJzwvZGl2PicgKwogICAgICAgICc8L2Rpdj4nOwog
ICAgdmFyIGZ1c3MgPQogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdlZmFociIgdHlw
ZT0iYnV0dG9uIiBpZD0iYnRuLXZvci1sb2VzY2hlbi1tb2RhbCIgc3R5bGU9Im1hcmdpbi1yaWdo
dDphdXRvIj5Mw7ZzY2hlbjwvYnV0dG9uPicgKwogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4i
IHR5cGU9ImJ1dHRvbiIgaWQ9ImJ0bi12b3ItYWJicmVjaGVuIj5BYmJyZWNoZW48L2J1dHRvbj4n
ICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiB0eXBlPSJidXR0b24i
IGlkPSJkbGctc3BlaWNoZXJuIj5TcGVpY2hlcm48L2J1dHRvbj4nOwoKICAgIG1vZGFsWmVpZ2Vu
KCdWb3JsYWdlIOKAnicgKyAodi50aXRlbCB8fCAn4oCUJykgKyAnIicsIGtvZXJwZXIsIGZ1c3Ms
IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2
b3ItdGV4dCcpOwogICAgICAgIHYudGl0ZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndm9y
LXRpdGVsJykudmFsdWUudHJpbSgpIHx8IHYudGl0ZWw7CiAgICAgICAgdi5zdGFuZGFyZFRleHQg
PSBlZCA/IHNhbml0aXplUmljaEh0bWwoZWQuaW5uZXJIVE1MLnRyaW0oKSkgOiAnJzsKICAgICAg
ICB2b3JsYWdlblNwZWljaGVybigpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIG1vZGFs
U2NobGllc3Nlbih0cnVlKTsKICAgICAgICAgICAgdG9hc3QoJ1ZvcmxhZ2UgZ2VzcGVpY2hlcnQn
LCAnZXJmb2xnJyk7CiAgICAgICAgICAgIHZvcmxhZ2VuUmVuZGVybigpOwogICAgICAgIH0pLmNh
dGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicp
OyB9KTsKICAgIH0sICd2b3JsYWdlXycgKyBpZCk7CgogICAgcnRlSW5pdChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndm9yLXRleHQnKSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRu
LXZvci1hYmJyZWNoZW4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewog
ICAgICAgIG1vZGFsU2NobGllc3NlbigpOwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYnRuLXZvci1sb2VzY2hlbi1tb2RhbCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgbW9kYWxTY2hsaWVzc2VuKHRydWUpOwogICAgICAgIHZvcmxh
Z2VMb2VzY2hlbihpZCk7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHZvcmxhZ2VMb2VzY2hl
bihpZCkgewogICAgdmFyIHYgPSAoWi5hZG1pbi5iZXNwcmVjaHVuZ3NWb3JsYWdlbiB8fCBbXSku
ZmluZChmdW5jdGlvbih4KSB7IHJldHVybiB4LmlkID09PSBpZDsgfSk7CiAgICBpZiAoIXYpIHJl
dHVybjsKICAgIGJlc3RhZXRpZ2VuKCdWb3JsYWdlIOKAnicgKyB2LnRpdGVsICsgJyIgd2lya2xp
Y2ggbMO2c2NoZW4/JywgZnVuY3Rpb24oKSB7CiAgICAgICAgWi5hZG1pbi5iZXNwcmVjaHVuZ3NW
b3JsYWdlbiA9IChaLmFkbWluLmJlc3ByZWNodW5nc1ZvcmxhZ2VuIHx8IFtdKS5maWx0ZXIoZnVu
Y3Rpb24oeCkgeyByZXR1cm4geC5pZCAhPT0gaWQ7IH0pOwogICAgICAgIHZvcmxhZ2VuU3BlaWNo
ZXJuKCkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgdG9hc3QoJ1ZvcmxhZ2UgZ2Vsw7Zz
Y2h0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB2b3JsYWdlblJlbmRlcm4oKTsKICAgICAgICB9
KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhs
ZXInKTsgfSk7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHZvcmxhZ2VBa3RpdlRvZ2dsZShp
ZCwgYWt0aXYpIHsKICAgIHZhciB2ID0gKFouYWRtaW4uYmVzcHJlY2h1bmdzVm9ybGFnZW4gfHwg
W10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCA9PT0gaWQ7IH0pOwogICAgaWYgKCF2
KSByZXR1cm47CiAgICB2LmFrdGl2ID0gISFha3RpdjsKICAgIHZvcmxhZ2VuU3BlaWNoZXJuKCku
dGhlbihmdW5jdGlvbigpIHsKICAgICAgICB2b3JsYWdlblJlbmRlcm4oKTsKICAgIH0pLmNhdGNo
KGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB2
LmFrdGl2ID0gIWFrdGl2OyB2b3JsYWdlblJlbmRlcm4oKTsgfSk7Cn0KCmV4cG9ydCBmdW5jdGlv
biB2b3JsYWdlTmV1KCkgewogICAgdmFyIHYgPSB7CiAgICAgICAgaWQ6ICd2b3JfJyArIE1hdGgu
cmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KSwKICAgICAgICB0aXRlbDogJ05ldWUg
Vm9ybGFnZScsCiAgICAgICAgc3RhbmRhcmRUZXh0OiAnJywKICAgICAgICBha3RpdjogdHJ1ZSwK
ICAgIH07CiAgICBaLmFkbWluLmJlc3ByZWNodW5nc1ZvcmxhZ2VuID0gWi5hZG1pbi5iZXNwcmVj
aHVuZ3NWb3JsYWdlbiB8fCBbXTsKICAgIFouYWRtaW4uYmVzcHJlY2h1bmdzVm9ybGFnZW4ucHVz
aCh2KTsKICAgIHZvcmxhZ2VuU3BlaWNoZXJuKCkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICB2
b3JsYWdlblJlbmRlcm4oKTsKICAgICAgICB2b3JsYWdlQmVhcmJlaXRlbih2LmlkKTsKICAgIH0p
LmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxl
cicpOyB9KTsKfQoKLy8gTWVocmZhY2hiZWFyYmVpdHVuZy1TdGF0ZSAoQXVkaXQtSXRlci1ELCAy
MDI2LTA1LTA1KQovLyBQZXJzaXN0aWVydCBkaWUgQXVzd2FobCB1ZWJlciBSZS1SZW5kZXJzIGRl
ciBUYWJlbGxlLgp2YXIgc29uZGVydGVybWluZUJ1bGtNb2R1cyA9IGZhbHNlOwp2YXIgc29uZGVy
dGVybWluZUJ1bGtBdXN3YWhsID0ge307ICAgLy8geyBbaWRdOiB0cnVlIH0KCmV4cG9ydCBmdW5j
dGlvbiBzb25kZXJ0ZXJtaW5lQnVsa0FrdGl2KCkgeyByZXR1cm4gc29uZGVydGVybWluZUJ1bGtN
b2R1czsgfQoKZXhwb3J0IGZ1bmN0aW9uIHNvbmRlcnRlcm1pbmVCdWxrVW1zY2hhbHRlbihhbikg
ewogICAgc29uZGVydGVybWluZUJ1bGtNb2R1cyA9ICEhYW47CiAgICBpZiAoIXNvbmRlcnRlcm1p
bmVCdWxrTW9kdXMpIHNvbmRlcnRlcm1pbmVCdWxrQXVzd2FobCA9IHt9OwogICAgdmFyIGJhciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb25kZXJ0ZXJtaW4tYnVsay1iYXInKTsKICAgIGlm
IChiYXIpIGJhci5jbGFzc0xpc3QudG9nZ2xlKCd2ZXJzdGVja3QnLCAhc29uZGVydGVybWluZUJ1
bGtNb2R1cyk7CiAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1zb25k
ZXJ0ZXJtaW4tYnVsay10b2dnbGUnKTsKICAgIGlmIChidG4pIHsKICAgICAgICBidG4uY2xhc3NM
aXN0LnRvZ2dsZSgnYWt0aXYnLCBzb25kZXJ0ZXJtaW5lQnVsa01vZHVzKTsKICAgICAgICBidG4u
dGV4dENvbnRlbnQgPSBzb25kZXJ0ZXJtaW5lQnVsa01vZHVzID8gJ01laHJmYWNoYmVhcmJlaXR1
bmcgYmVlbmRlbicgOiAnTWVocmZhY2hiZWFyYmVpdHVuZyc7CiAgICB9CiAgICBzb25kZXJ0ZXJt
aW5lUmVuZGVybigpOwogICAgc29uZGVydGVybWluZUJ1bGtDb3VudEFrdHVhbGlzaWVyZW4oKTsK
fQoKZXhwb3J0IGZ1bmN0aW9uIHNvbmRlcnRlcm1pbmVCdWxrQ291bnRBa3R1YWxpc2llcmVuKCkg
ewogICAgdmFyIG4gPSBPYmplY3Qua2V5cyhzb25kZXJ0ZXJtaW5lQnVsa0F1c3dhaGwpLmxlbmd0
aDsKICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb25kZXJ0ZXJtaW4tYnVs
ay1jb3VudCcpOwogICAgaWYgKGVsKSBlbC50ZXh0Q29udGVudCA9IG4gKyAobiA9PT0gMSA/ICcg
YXVzZ2V3YWVobHQnIDogJyBhdXNnZXdhZWhsdCcpOwp9CgpleHBvcnQgZnVuY3Rpb24gc29uZGVy
dGVybWluZUJ1bGtBdXN3YWhsVG9nZ2xlKGlkLCBhbikgewogICAgaWYgKGFuKSBzb25kZXJ0ZXJt
aW5lQnVsa0F1c3dhaGxbaWRdID0gdHJ1ZTsKICAgIGVsc2UgZGVsZXRlIHNvbmRlcnRlcm1pbmVC
dWxrQXVzd2FobFtpZF07CiAgICBzb25kZXJ0ZXJtaW5lQnVsa0NvdW50QWt0dWFsaXNpZXJlbigp
OwogICAgdmFyIHRyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NvbmRlcnRlcm1pbmUtdGJv
ZHkgdHJbZGF0YS1idWxrLXJvdz0iJyArIGlkICsgJyJdJyk7CiAgICBpZiAodHIpIHRyLmNsYXNz
TGlzdC50b2dnbGUoJ2J1bGstemVpbGUtYWt0aXYnLCAhIWFuKTsKfQoKZXhwb3J0IGZ1bmN0aW9u
IHNvbmRlcnRlcm1pbmVCdWxrQXVzd2FobEFsbGUoYW4pIHsKICAgIHNvbmRlcnRlcm1pbmVCdWxr
QXVzd2FobCA9IHt9OwogICAgaWYgKGFuKSB7CiAgICAgICAgKFouYWRtaW4uc29uZGVydGVybWlu
ZSB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIGlmIChzLmlkKSBzb25k
ZXJ0ZXJtaW5lQnVsa0F1c3dhaGxbcy5pZF0gPSB0cnVlOwogICAgICAgIH0pOwogICAgfQogICAg
c29uZGVydGVybWluZVJlbmRlcm4oKTsKICAgIHNvbmRlcnRlcm1pbmVCdWxrQ291bnRBa3R1YWxp
c2llcmVuKCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBzb25kZXJ0ZXJtaW5lQnVsa0Fud2VuZGVuKCkg
ewogICAgdmFyIGlkcyA9IE9iamVjdC5rZXlzKHNvbmRlcnRlcm1pbmVCdWxrQXVzd2FobCk7CiAg
ICBpZiAoIWlkcy5sZW5ndGgpIHsKICAgICAgICB0b2FzdCgnS2VpbmUgSGlud2Vpc2UgYXVzZ2V3
YWVobHQnLCAnd2FybnVuZycpOyByZXR1cm47CiAgICB9CiAgICBmdW5jdGlvbiBidWxrQ2hlY2tl
ZChmZWxkKSB7CiAgICAgICAgdmFyIGNiID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NvbmRl
cnRlcm1pbi1idWxrLWJhciBbZGF0YS1idWxrLXRvZ2dsZT0iJyArIGZlbGQgKyAnIl0nKTsKICAg
ICAgICByZXR1cm4gY2IgJiYgY2IuY2hlY2tlZDsKICAgIH0KICAgIHZhciBhZW5kZXJ1bmdlbiA9
IHt9OwogICAgaWYgKGJ1bGtDaGVja2VkKCdpY29uJykpIHsKICAgICAgICB2YXIgYnRuSWNvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tYnVsay1pY29uJyk7CiAgICAgICAgYWVuZGVy
dW5nZW4uaWNvbiA9IChidG5JY29uICYmIGJ0bkljb24uZGF0YXNldC5pY29uKSB8fCAnJzsKICAg
IH0KICAgIGlmIChidWxrQ2hlY2tlZCgndGl0ZWwnKSkgewogICAgICAgIGFlbmRlcnVuZ2VuLnRp
dGVsID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidWxrLXRpdGVsJykudmFsdWUgfHwgJycp
LnRyaW0oKTsKICAgIH0KICAgIGlmIChidWxrQ2hlY2tlZCgna2F0ZWdvcmllJykpIHsKICAgICAg
ICBhZW5kZXJ1bmdlbi5rYXRlZ29yaWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVsay1r
YXRlZ29yaWUnKS52YWx1ZTsKICAgIH0KICAgIGlmIChidWxrQ2hlY2tlZCgndHlwJykpIHsKICAg
ICAgICBhZW5kZXJ1bmdlbi50eXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVsay10eXAn
KS52YWx1ZTsKICAgIH0KICAgIGlmIChidWxrQ2hlY2tlZCgnd2Fybk1vZHVzJykpIHsKICAgICAg
ICBhZW5kZXJ1bmdlbi53YXJuTW9kdXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVsay13
bScpLnZhbHVlOwogICAgfQogICAgaWYgKCFPYmplY3Qua2V5cyhhZW5kZXJ1bmdlbikubGVuZ3Ro
KSB7CiAgICAgICAgdG9hc3QoJ0tlaW4gRmVsZCB6dXIgQWVuZGVydW5nIG1hcmtpZXJ0JywgJ3dh
cm51bmcnKTsgcmV0dXJuOwogICAgfQogICAgLy8gS2F0ZWdvcmllLVdlY2hzZWwgd2VnIHZvbiBC
VkIvU3BvcnQgcmFldW10IExvZ29zLCB3ZWlsIExvZ28tU2xvdHMgZGFubgogICAgLy8gbmljaHQg
bWVociBhbmdlemVpZ3Qgd2VyZGVuIOKAlCBzb25zdCBibGVpYmVuIHRvdGUgRWludHJhZWdlIGhh
ZW5nZW4uCiAgICB2YXIgbGlzdGUgPSAoWi5hZG1pbi5zb25kZXJ0ZXJtaW5lIHx8IFtdKS5zbGlj
ZSgpOwogICAgdmFyIG4gPSAwOwogICAgbGlzdGUuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAg
ICAgaWYgKHNvbmRlcnRlcm1pbmVCdWxrQXVzd2FobFtzLmlkXSkgewogICAgICAgICAgICBPYmpl
Y3QuYXNzaWduKHMsIGFlbmRlcnVuZ2VuKTsKICAgICAgICAgICAgaWYgKGFlbmRlcnVuZ2VuLmth
dGVnb3JpZSAmJiBhZW5kZXJ1bmdlbi5rYXRlZ29yaWUgIT09ICdidmInICYmIGFlbmRlcnVuZ2Vu
LmthdGVnb3JpZSAhPT0gJ3Nwb3J0JykgewogICAgICAgICAgICAgICAgcy5sb2dvcyA9IFtdOwog
ICAgICAgICAgICB9CiAgICAgICAgICAgIG4rKzsKICAgICAgICB9CiAgICB9KTsKICAgIGFwaVB1
dCgnL2FwaS9hZG1pbi9zb25kZXJ0ZXJtaW5lJywgbGlzdGUpLnRoZW4oZnVuY3Rpb24oKSB7CiAg
ICAgICAgWi5hZG1pbi5zb25kZXJ0ZXJtaW5lID0gbGlzdGU7CiAgICAgICAgdGFnSW5mb3NCZXJl
Y2huZW4oKTsKICAgICAgICBrb3BmUmVuZGVybigpOwogICAgICAgIHNvbmRlcnRlcm1pbmVSZW5k
ZXJuKCk7CiAgICAgICAgdG9hc3QobiArICcgSGlud2VpcycgKyAobiA9PT0gMSA/ICcnIDogJ2Un
KSArICcgZ2VhZW5kZXJ0JywgJ2VyZm9sZycpOwogICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0
b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwp9CgpleHBvcnQgZnVu
Y3Rpb24gc29uZGVydGVybWluZVJlbmRlcm4oKSB7CiAgICB2YXIgbGlzdGUgPSAoWi5hZG1pbi5z
b25kZXJ0ZXJtaW5lIHx8IFtdKS5zbGljZSgpLnNvcnQoZnVuY3Rpb24oYSwgYikgewogICAgICAg
IHJldHVybiAoYS5kYXR1bSB8fCAnJykubG9jYWxlQ29tcGFyZShiLmRhdHVtIHx8ICcnKTsKICAg
IH0pOwogICAgLy8gVG90ZSBBdXN3YWhsLUlEcyBhdWZyYWV1bWVuICh6LkIuIG5hY2ggTG9lc2No
ZW4pCiAgICB2YXIgZXhpc3RJZHMgPSB7fTsKICAgIGxpc3RlLmZvckVhY2goZnVuY3Rpb24ocykg
eyBpZiAocy5pZCkgZXhpc3RJZHNbcy5pZF0gPSB0cnVlOyB9KTsKICAgIE9iamVjdC5rZXlzKHNv
bmRlcnRlcm1pbmVCdWxrQXVzd2FobCkuZm9yRWFjaChmdW5jdGlvbihpZCkgewogICAgICAgIGlm
ICghZXhpc3RJZHNbaWRdKSBkZWxldGUgc29uZGVydGVybWluZUJ1bGtBdXN3YWhsW2lkXTsKICAg
IH0pOwogICAgdmFyIFNPTkRFUl9LQVRfTEFCRUwgPSB7CiAgICAgICAgJ2Jlc3ByZWNodW5nJzog
ICAgICAgJ0Jlc3ByZWNodW5nJywKICAgICAgICAnYnZiJzogICAgICAgICAgICAgICAnQlZCJywK
ICAgICAgICAnc3BvcnQnOiAgICAgICAgICAgICAnU3BvcnQnLAogICAgICAgICdncm9zc3ZlcmFu
c3RhbHR1bmcnOidHcm/Dn3ZlcmFuc3RhbHR1bmcnLAogICAgICAgICdiYW8nOiAgICAgICAgICAg
ICAgICdCQU8nLAogICAgICAgICd1ZWJ1bmcnOiAgICAgICAgICAgICfDnGJ1bmcnCiAgICB9Owog
ICAgLy8gSGVhZGVyLTx0aD4gZHluYW1pc2NoIHVtIENoZWNrYm94LVNwYWx0ZSBlcndlaXRlcm4g
KG9kZXIgcmVkdXppZXJlbikuCiAgICB2YXIgdGhlYWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCcjc29uZGVydGVybWluZS10YWJlbGxlIHRoZWFkIHRyJyk7CiAgICBpZiAodGhlYWQpIHsKICAg
ICAgICB2YXIgaGF0Q2IgPSAhIXRoZWFkLnF1ZXJ5U2VsZWN0b3IoJ3RoLmJ1bGstY2ItY2VsbCcp
OwogICAgICAgIGlmIChzb25kZXJ0ZXJtaW5lQnVsa01vZHVzICYmICFoYXRDYikgewogICAgICAg
ICAgICB2YXIgdGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0aCcpOwogICAgICAgICAgICB0
aC5jbGFzc05hbWUgPSAnYnVsay1jYi1jZWxsJzsKICAgICAgICAgICAgdGguaW5uZXJIVE1MID0g
JzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InNvbmRlcnRlcm1pbi1idWxrLWFsbGUiIHRpdGxl
PSJBbGxlIGF1cy0vYWJ3YWVobGVuIj4nOwogICAgICAgICAgICB0aGVhZC5pbnNlcnRCZWZvcmUo
dGgsIHRoZWFkLmZpcnN0Q2hpbGQpOwogICAgICAgIH0gZWxzZSBpZiAoIXNvbmRlcnRlcm1pbmVC
dWxrTW9kdXMgJiYgaGF0Q2IpIHsKICAgICAgICAgICAgdGhlYWQucXVlcnlTZWxlY3RvcigndGgu
YnVsay1jYi1jZWxsJykucmVtb3ZlKCk7CiAgICAgICAgfQogICAgfQogICAgLy8gIkFsbGUiLUNo
ZWNrYm94LVN0YXR1cyBzeW5jaHJvbmlzaWVyZW4KICAgIHZhciBhbGxlQ2IgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnc29uZGVydGVybWluLWJ1bGstYWxsZScpOwogICAgaWYgKGFsbGVDYikg
ewogICAgICAgIHZhciBuID0gT2JqZWN0LmtleXMoc29uZGVydGVybWluZUJ1bGtBdXN3YWhsKS5s
ZW5ndGg7CiAgICAgICAgYWxsZUNiLmNoZWNrZWQgPSAobiA+IDAgJiYgbiA9PT0gbGlzdGUubGVu
Z3RoKTsKICAgICAgICBhbGxlQ2IuaW5kZXRlcm1pbmF0ZSA9IChuID4gMCAmJiBuIDwgbGlzdGUu
bGVuZ3RoKTsKICAgIH0KICAgIHZhciBjb2xzcGFuID0gc29uZGVydGVybWluZUJ1bGtNb2R1cyA/
IDggOiA3OwogICAgdmFyIGh0bWwgPSAnJzsKICAgIGlmIChsaXN0ZS5sZW5ndGggPT09IDApIHsK
ICAgICAgICBodG1sID0gJzx0cj48dGQgY29sc3Bhbj0iJyArIGNvbHNwYW4gKyAnIiBzdHlsZT0i
dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoyNHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2Zv
bnQtc3R5bGU6aXRhbGljIj5LZWluZSBIaW53ZWlzZSBhbmdlbGVndC48L3RkPjwvdHI+JzsKICAg
IH0KICAgIGxpc3RlLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgIGlmICghcy5pZCkgcy5p
ZCA9ICdzdF8nICsgKHMuZGF0dW0gfHwgJ3gnKSArICdfJyArIE1hdGgucmFuZG9tKCkudG9TdHJp
bmcoMzYpLnN1YnN0cigyLCA2KTsKICAgICAgICAvLyBCZWkgQlZCL1Nwb3J0IG1pdCBMb2dvczog
TG9nby1Wb3JzY2hhdSBpbiBkZXIgSWNvbi1TcGFsdGUgc3RhdHQgTHVjaWRlLUljb24KICAgICAg
ICB2YXIgaWNvbkh0bWw7CiAgICAgICAgdmFyIGxvZ29Wb3JzY2hhdSA9IHNvbmRlckxvZ29zSHRt
bChzKTsKICAgICAgICBpZiAobG9nb1ZvcnNjaGF1KSB7CiAgICAgICAgICAgIGljb25IdG1sID0g
JzxzcGFuIGNsYXNzPSJzb25kZXItaWNvbi16ZWxsZSIgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0t
YmctcHJpbWFyeSk7cGFkZGluZzoycHggNHB4O2JvcmRlci1yYWRpdXM6M3B4Ij4nICsgbG9nb1Zv
cnNjaGF1ICsgJzwvc3Bhbj4nOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhciBpY29u
Q2xzID0gcy5pY29uID8gJ3NvbmRlci1pY29uLXplbGxlJyA6ICdzb25kZXItaWNvbi16ZWxsZSBs
ZWVyJzsKICAgICAgICAgICAgaWNvbkh0bWwgPSAnPHNwYW4gY2xhc3M9IicgKyBpY29uQ2xzICsg
JyI+JyArIChzLmljb24gPyBpY29uU3ZnSHRtbChzLmljb24sIDIwKSA6ICfigJQnKSArICc8L3Nw
YW4+JzsKICAgICAgICB9CiAgICAgICAgdmFyIHR5cExhYmVsID0gcy50eXAgPT09ICd3YXJudW5n
JyA/ICdXYXJudW5nJyA6ICdIaW53ZWlzJzsKICAgICAgICB2YXIgdHlwQmFkZ2UgPSBzLnR5cCA9
PT0gJ3dhcm51bmcnID8gJ3NvbmRlci10eXAtd2FybicgOiAnc29uZGVyLXR5cC1pbmZvJzsKICAg
ICAgICB2YXIgd20gPSBzLndhcm5Nb2R1cyB8fCAnaW1tZXInOwogICAgICAgIHZhciB3bUxhYmVs
ID0gd20gPT09ICdpbW1lcicgPyAnSW1tZXInIDogKHdtID09PSAnZWlubWFsaWcnID8gJ0Vpbm1h
bGlnIC8gVXNlcicgOiAnQXVzJyk7CiAgICAgICAgdmFyIHRpdGVsID0gcy50aXRlbCB8fCBzb25k
ZXJUaXRlbEF1c1RleHQocy50ZXh0KSB8fCAnKG9obmUgVGl0ZWwpJzsKICAgICAgICB2YXIga2F0
S2V5ID0gcy5rYXRlZ29yaWUgfHwgJ2Jlc3ByZWNodW5nJzsKICAgICAgICB2YXIga2F0TGFiZWwg
PSBTT05ERVJfS0FUX0xBQkVMW2thdEtleV0gfHwga2F0S2V5OwogICAgICAgIHZhciBha3RpdiA9
ICEhc29uZGVydGVybWluZUJ1bGtBdXN3YWhsW3MuaWRdOwogICAgICAgIHZhciBjYkNlbGwgPSBz
b25kZXJ0ZXJtaW5lQnVsa01vZHVzCiAgICAgICAgICAgID8gKCc8dGQgY2xhc3M9ImJ1bGstY2It
Y2VsbCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkYXRhLWJ1bGstY2I9IicgKyBlc2NhcGVBdHRy
KHMuaWQpICsgJyInICsgKGFrdGl2ID8gJyBjaGVja2VkJyA6ICcnKSArICc+PC90ZD4nKQogICAg
ICAgICAgICA6ICcnOwogICAgICAgIHZhciB0ckF0dHIgPSBzb25kZXJ0ZXJtaW5lQnVsa01vZHVz
ID8gJyBkYXRhLWJ1bGstcm93PSInICsgZXNjYXBlQXR0cihzLmlkKSArICciJyArIChha3RpdiA/
ICcgY2xhc3M9ImJ1bGstemVpbGUtYWt0aXYiJyA6ICcnKSA6ICcnOwogICAgICAgIGh0bWwgKz0g
Jzx0cicgKyB0ckF0dHIgKyAnPicgKwogICAgICAgICAgICBjYkNlbGwgKwogICAgICAgICAgICAn
PHRkPicgKyBpY29uSHRtbCArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkPicgKyBlc2NhcGVI
VE1MKHNvbmRlckRhdHVtTGFiZWwocykpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+JyAr
IGVzY2FwZUhUTUwodGl0ZWwpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+PHNwYW4gY2xh
c3M9InNvbmRlci1rYXQtYmFkZ2Ugc29uZGVyLWthdC0nICsga2F0S2V5ICsgJyI+JyArIGVzY2Fw
ZUhUTUwoa2F0TGFiZWwpICsgJzwvc3Bhbj48L3RkPicgKwogICAgICAgICAgICAnPHRkPjxzcGFu
IGNsYXNzPSJzb25kZXItdHlwLWJhZGdlICcgKyB0eXBCYWRnZSArICciPicgKyB0eXBMYWJlbCAr
ICc8L3NwYW4+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZD4nICsgZXNjYXBlSFRNTCh3bUxhYmVs
KSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkPjxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtn
YXA6NnB4O2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXAiPicgKwogICAgICAg
ICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tc2VrIGJ0bi1rbGVpbiBidG4taWNvbiBi
dG4tYmVhcmJlaXRlbiIgZGF0YS1ha3Rpb249InNvbmRlci1iZWFyYmVpdGVuIiBkYXRhLWlkPSIn
ICsgZXNjYXBlQXR0cihzLmlkKSArICciIHRpdGxlPSJIaW53ZWlzIGJlYXJiZWl0ZW4iPkJlYXJi
ZWl0ZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRu
LWdlZmFociBidG4ta2xlaW4gYnRuLWxvZXNjaGVuIiBkYXRhLWFrdGlvbj0ic29uZGVyLWxvZXNj
aGVuIiBkYXRhLWlkPSInICsgZXNjYXBlQXR0cihzLmlkKSArICciIHRpdGxlPSJIaW53ZWlzIGzD
tnNjaGVuIiBzdHlsZT0iY29sb3I6IzAwMCI+TMO2c2NoZW48L2J1dHRvbj4nICsKICAgICAgICAg
ICAgJzwvZGl2PjwvdGQ+JyArCiAgICAgICAgJzwvdHI+JzsKICAgIH0pOwogICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3NvbmRlcnRlcm1pbmUtdGJvZHknKS5pbm5lckhUTUwgPSBodG1sOwp9
CgpleHBvcnQgZnVuY3Rpb24gc29uZGVyVGl0ZWxBdXNUZXh0KGh0bWwpIHsKICAgIGlmICghaHRt
bCkgcmV0dXJuICcnOwogICAgdmFyIHRtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwogICAgdG1wLmlubmVySFRNTCA9IGh0bWw7CiAgICB2YXIgdHh0ID0gKHRtcC50ZXh0Q29udGVu
dCB8fCAnJykudHJpbSgpLnNwbGl0KC9ccj9cbi8pWzBdOwogICAgaWYgKHR4dC5sZW5ndGggPiA2
MCkgdHh0ID0gdHh0LnN1YnN0cigwLCA1NykgKyAn4oCmJzsKICAgIHJldHVybiB0eHQ7Cn0KCi8v
IEhUTUwtU2FuaXRpemVyIOKAlCBudXIgQmFzaXMtRm9ybWF0aWVydW5nLCBrZWluZSBTY3JpcHQv
U3R5bGUvQXR0ciBhdcOfZXIgaHJlZiBhdWYgPGE+Ci8vIHNhbml0aXplUmljaEh0bWw6IGpldHp0
IGluIGpzL3VpL3J0ZS5qcwoKLy8gPT09PT0gSWNvbi1QaWNrZXI6IGpldHp0IGluIGpzL3VpL2lj
b25zLmpzID09PT09Ci8vIChJQ09OX1NFVCwgSUNPTl9CWV9OQU1FLCBFTU9KSV9UT19JQ09OLCBp
Y29uU3ZnSHRtbCwgaWNvbkxhYmVsLAovLyAgZW1vamlQaWNrZXJaZWlnZW4sIGVtb2ppUGlja2Vy
U2NobGllc3NlbiDihpIgc2llaGUganMvdWkvaWNvbnMuanMpCgovLyA9PT09PSBTb25kZXJ0ZXJt
aW4tSGVsZmVyID09PT09CmV4cG9ydCBmdW5jdGlvbiBzb25kZXJGdWVyRGF0dW0oZGF0dW0pIHsK
ICAgIGlmICghZGF0dW0pIHJldHVybiBudWxsOwogICAgcmV0dXJuIChaLmFkbWluLnNvbmRlcnRl
cm1pbmUgfHwgW10pLmZpbmQoZnVuY3Rpb24ocykgewogICAgICAgIHZhciBiaXMgPSBzLmRhdHVt
QmlzIHx8IHMuZGF0dW07CiAgICAgICAgcmV0dXJuIHMuZGF0dW0gJiYgZGF0dW0gPj0gcy5kYXR1
bSAmJiBkYXR1bSA8PSBiaXM7CiAgICB9KTsKfQpleHBvcnQgZnVuY3Rpb24gc29uZGVyQnlJZChp
ZCkgewogICAgcmV0dXJuIChaLmFkbWluLnNvbmRlcnRlcm1pbmUgfHwgW10pLmZpbmQoZnVuY3Rp
b24ocykgeyByZXR1cm4gcy5pZCA9PT0gaWQ7IH0pOwp9CgovLyBSZW5kZXItSGVscGVyOiBCZWkg
U29uZGVydGVybWluLUthdGVnb3JpZSBCVkIvU3BvcnQgbWl0IGF1c2dld8OkaGx0ZW4gTG9nb3MK
Ly8gd2lyZCBlaW4g4oCeTG9nbyA6IExvZ28iLURvcHBlbGJpbGQgZ2VyZW5kZXJ0IChvZGVyIGVp
biBlaW56ZWxuZXMsIHdlbm4gbnVyCi8vIGVpbiBTbG90IGJlbGVndCBpc3QpLiBgbG9nb0RhcnN0
ZWxsdW5nYCBncmVpZnQgbnVyIGJlaSB6d2VpIExvZ29zIOKAlAovLyBlaW4gTG9nbyB3aXJkIGlt
bWVyIGFuZ2V6ZWlndCwgYXVzc2VyIGRhcnN0ZWxsdW5nPT09J2tlaW5lcycuCmV4cG9ydCBmdW5j
dGlvbiBzb25kZXJMb2dvc0h0bWwoc29uZGVyKSB7CiAgICBpZiAoIXNvbmRlcikgcmV0dXJuICcn
OwogICAgdmFyIGthdCA9IHNvbmRlci5rYXRlZ29yaWU7CiAgICBpZiAoa2F0ICE9PSAnYnZiJyAm
JiBrYXQgIT09ICdzcG9ydCcpIHJldHVybiAnJzsKICAgIHZhciBkYXJzdGVsbHVuZyA9IHNvbmRl
ci5sb2dvRGFyc3RlbGx1bmcgfHwgJ2JlaWRlJzsKICAgIGlmIChkYXJzdGVsbHVuZyA9PT0gJ2tl
aW5lcycpIHJldHVybiAnJzsKICAgIHZhciBsb2dvcyA9IChBcnJheS5pc0FycmF5KHNvbmRlci5s
b2dvcykgPyBzb25kZXIubG9nb3MgOiBbXSkKICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKGlkKSB7
IHJldHVybiAhIWlkOyB9KTsKICAgIGlmIChsb2dvcy5sZW5ndGggPT09IDApIHJldHVybiAnJzsK
ICAgIHZhciBpZHMgPSBbXTsKICAgIGlmIChsb2dvcy5sZW5ndGggPT09IDEpIHsKICAgICAgICBp
ZHMucHVzaChsb2dvc1swXSk7CiAgICB9IGVsc2UgaWYgKGRhcnN0ZWxsdW5nID09PSAnZXJzdGVz
JykgewogICAgICAgIGlkcy5wdXNoKGxvZ29zWzBdKTsKICAgIH0gZWxzZSBpZiAoZGFyc3RlbGx1
bmcgPT09ICd6d2VpdGVzJykgewogICAgICAgIGlkcy5wdXNoKGxvZ29zWzFdKTsKICAgIH0gZWxz
ZSB7CiAgICAgICAgLy8gJ2JlaWRlJyBvZGVyIHVuYmVrYW5udCAtPiBiZWlkZSByZW5kZXJuCiAg
ICAgICAgaWRzLnB1c2gobG9nb3NbMF0pOwogICAgICAgIGlkcy5wdXNoKGxvZ29zWzFdKTsKICAg
IH0KICAgIHJldHVybiBpZHMubWFwKGZ1bmN0aW9uKGlkLCBpKSB7CiAgICAgICAgdmFyIG0gPSAo
Wi5tZWRpZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCA9PT0gaWQ7IH0p
OwogICAgICAgIGlmICghbSkgcmV0dXJuICcnOwogICAgICAgIHZhciBzcmMgPSBtLnBmYWQgfHwg
KCcvYXBpL21lZGllbi9kYXRlaS8nICsgZXNjYXBlQXR0cihtLmlkKSk7CiAgICAgICAgdmFyIHNl
cCA9IChpID4gMCkgPyAnPHNwYW4gY2xhc3M9InNvbmRlci1sb2dvLXNlcCIgc3R5bGU9Im1hcmdp
bjowIDJweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNTUpO2ZvbnQtd2VpZ2h0OjcwMCI+Ojwv
c3Bhbj4nIDogJyc7CiAgICAgICAgcmV0dXJuIHNlcCArICc8aW1nIGNsYXNzPSJzb25kZXItbG9n
by1pbWciIHNyYz0iJyArIGVzY2FwZUF0dHIoc3JjKSArICciIGFsdD0iJyArIGVzY2FwZUF0dHIo
bS5iZXplaWNobnVuZyB8fCAnJykgKyAnIiBzdHlsZT0iaGVpZ2h0OjE4cHg7bWF4LXdpZHRoOjI0
cHg7b2JqZWN0LWZpdDpjb250YWluO3ZlcnRpY2FsLWFsaWduOm1pZGRsZSI+JzsKICAgIH0pLmpv
aW4oJycpOwp9CgovLyBSZW5kZXItSGVscGVyIGbDvHIgZGVuIExvZ28tU2xvdC1CdXR0b24gaW0g
U29uZGVydGVybWluLU1vZGFsLgpleHBvcnQgZnVuY3Rpb24gc29uZGVyTG9nb0J1dHRvbkh0bWwo
c2xvdCwgbWVkaXVtSWQpIHsKICAgIHZhciBtID0gbWVkaXVtSWQgPyAoWi5tZWRpZW4gfHwgW10p
LmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCA9PT0gbWVkaXVtSWQ7IH0pIDogbnVsbDsK
ICAgIHZhciBpbm5lcjsKICAgIGlmIChtKSB7CiAgICAgICAgdmFyIHNyYyA9IG0ucGZhZCB8fCAo
Jy9hcGkvbWVkaWVuL2RhdGVpLycgKyBlc2NhcGVBdHRyKG0uaWQpKTsKICAgICAgICBpbm5lciA9
ICc8aW1nIHNyYz0iJyArIGVzY2FwZUF0dHIoc3JjKSArICciIGFsdD0iIiBzdHlsZT0iaGVpZ2h0
OjI0cHg7bWF4LXdpZHRoOjgwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlIj4nICsKICAgICAgICAg
ICAgICAgICc8c3BhbiBzdHlsZT0ibWFyZ2luLWxlZnQ6NnB4O2ZvbnQtc2l6ZToxMXB4O2NvbG9y
OnZhcigtLXRleHQtc2Vjb25kYXJ5KSI+JyArIGVzY2FwZUhUTUwobS5iZXplaWNobnVuZyB8fCAn
JykgKyAnPC9zcGFuPic7CiAgICB9IGVsc2UgewogICAgICAgIGlubmVyID0gJzxzcGFuIHN0eWxl
PSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MTJweCI+4oCUIHfDpGhsZW4g4oCU
PC9zcGFuPic7CiAgICB9CiAgICByZXR1cm4gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0ic2Ut
bG9nby0nICsgc2xvdCArICciIGRhdGEtbG9nby1zbG90PSInICsgc2xvdCArICciIGNsYXNzPSJi
dG4gYnRuLXNlayIgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRw
eDt3aWR0aDoxMDAlO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6NnB4IDEwcHg7
bWluLWhlaWdodDozOHB4Ij4nICsgaW5uZXIgKyAnPC9idXR0b24+JzsKfQpleHBvcnQgZnVuY3Rp
b24gc29uZGVyTG9nb0J1dHRvbkFrdHVhbGlzaWVyZW4oc2xvdCwgbWVkaXVtSWQpIHsKICAgIHZh
ciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2UtbG9nby0nICsgc2xvdCk7CiAgICBp
ZiAoIWJ0bikgcmV0dXJuOwogICAgdmFyIG0gPSBtZWRpdW1JZCA/IChaLm1lZGllbiB8fCBbXSku
ZmluZChmdW5jdGlvbih4KSB7IHJldHVybiB4LmlkID09PSBtZWRpdW1JZDsgfSkgOiBudWxsOwog
ICAgaWYgKG0pIHsKICAgICAgICB2YXIgc3JjID0gbS5wZmFkIHx8ICgnL2FwaS9tZWRpZW4vZGF0
ZWkvJyArIGVzY2FwZUF0dHIobS5pZCkpOwogICAgICAgIGJ0bi5pbm5lckhUTUwgPSAnPGltZyBz
cmM9IicgKyBlc2NhcGVBdHRyKHNyYykgKyAnIiBhbHQ9IiIgc3R5bGU9ImhlaWdodDoyNHB4O21h
eC13aWR0aDo4MHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSI+JyArCiAgICAgICAgICAgICAgICAn
PHNwYW4gc3R5bGU9Im1hcmdpbi1sZWZ0OjZweDtmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10
ZXh0LXNlY29uZGFyeSkiPicgKyBlc2NhcGVIVE1MKG0uYmV6ZWljaG51bmcgfHwgJycpICsgJzwv
c3Bhbj4nOwogICAgfSBlbHNlIHsKICAgICAgICBidG4uaW5uZXJIVE1MID0gJzxzcGFuIHN0eWxl
PSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MTJweCI+4oCUIHfDpGhsZW4g4oCU
PC9zcGFuPic7CiAgICB9Cn0KCi8vIElubGluZS1Qb3BvdmVyIGbDvHIgTG9nb3MvSWNvbnMuIEth
bm4gbmljaHQgbW9kYWxaZWlnZW4oKSBudXR6ZW4sIHdlaWwgZGFzCi8vIFNvbmRlcnRlcm1pbi1N
b2RhbCBiZXJlaXRzIGRlbiBnbG9iYWxlbiBNb2RhbC1TbG90IGJlbGVndC4gU3RhdHRkZXNzZW4K
Ly8gc2Nod2ViZW5kZXIgUG9wb3ZlciBtaXQgS2F0ZWdvcmllLVRhYnMgKGFsbGUgTWVkaWVuLUth
dGVnb3JpZW4gbWl0Ci8vIG1pbmRlc3RlbnMgZWluZW0gRWludHJhZykuIEluaXRpYWwtVGFiIGxl
aXRldCBzaWNoIGF1cyBkZXIgU29uZGVydGVybWluLQovLyBLYXRlZ29yaWUgYWI6ICdzcG9ydCcg
4oaSIFRhYiBTcG9ydCwgJ2J2Yicg4oaSIFRhYiBGdcOfYmFsbCwgc29uc3QgRGVmYXVsdC4KZXhw
b3J0IGZ1bmN0aW9uIHNvbmRlckxvZ29QaWNrZXJaZWlnZW4oYWt0dWVsbGVJZCwgaW5pdGlhbEth
dGVnb3JpZSwgY2FsbGJhY2spIHsKICAgIGlmICghWi5tZWRpZW4gfHwgWi5tZWRpZW4ubGVuZ3Ro
ID09PSAwKSB7CiAgICAgICAgYXBpKCcvYXBpL21lZGllbicpLnRoZW4oZnVuY3Rpb24oZGF0ZW4p
IHsKICAgICAgICAgICAgWi5tZWRpZW4gPSAoZGF0ZW4gJiYgZGF0ZW4ubWVkaWVuKSA/IGRhdGVu
Lm1lZGllbiA6IFtdOwogICAgICAgICAgICBzb25kZXJMb2dvUGlja2VyT2VmZm5lbklubmVyKGFr
dHVlbGxlSWQsIGluaXRpYWxLYXRlZ29yaWUsIGNhbGxiYWNrKTsKICAgICAgICB9KS5jYXRjaChm
dW5jdGlvbihlKSB7CiAgICAgICAgICAgIHRvYXN0KCdNZWRpZW4ga29ubnRlbiBuaWNodCBnZWxh
ZGVuIHdlcmRlbjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOwogICAgICAgIH0pOwogICAgICAg
IHJldHVybjsKICAgIH0KICAgIHNvbmRlckxvZ29QaWNrZXJPZWZmbmVuSW5uZXIoYWt0dWVsbGVJ
ZCwgaW5pdGlhbEthdGVnb3JpZSwgY2FsbGJhY2spOwp9CgpleHBvcnQgZnVuY3Rpb24gc29uZGVy
TG9nb1BpY2tlck9lZmZuZW5Jbm5lcihha3R1ZWxsZUlkLCBpbml0aWFsS2F0ZWdvcmllLCBjYWxs
YmFjaykgewogICAgdmFyIGFsbGVNZWRpZW4gPSAoWi5tZWRpZW4gfHwgW10pLnNsaWNlKCk7CiAg
ICBpZiAoYWxsZU1lZGllbi5sZW5ndGggPT09IDApIHsKICAgICAgICB0b2FzdCgnS2VpbmUgTWVk
aWVuIHZvcmhhbmRlbi4gRXJzdCBpbSBNZWRpZW4tVGFiIExvZ29zL0ljb25zIGhvY2hsYWRlbi4n
LCAnd2FybnVuZycsIHsgZGF1ZXI6IDYwMDAgfSk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAg
IC8vIEthdGVnb3JpZW4gYXVzIGRlbiB2b3JoYW5kZW5lbiBNZWRpZW4gYWJsZWl0ZW4g4oCUIG51
ciBkaWUgemVpZ2VuLAogICAgLy8gaW4gZGVuZW4gdGF0c8OkY2hsaWNoIEluaGFsdGUgbGllZ2Vu
LiBSZWloZW5mb2xnZSBuYWNoIEFuemFobCBhYnN0ZWlnZW5kCiAgICAvLyAobmljaHQgYWxwaGFi
ZXRpc2NoIOKAlCBkZXIgVXNlciBzaWVodCB6dWVyc3QgZGllICJ2b2xsZW4iIEthdGVnb3JpZW4p
LgogICAgdmFyIGthdFphZWhsZXIgPSB7fTsKICAgIGFsbGVNZWRpZW4uZm9yRWFjaChmdW5jdGlv
bihtKSB7CiAgICAgICAgdmFyIGsgPSBtLmthdGVnb3JpZSB8fCAnc29uc3RpZ2VzJzsKICAgICAg
ICBrYXRaYWVobGVyW2tdID0gKGthdFphZWhsZXJba10gfHwgMCkgKyAxOwogICAgfSk7CiAgICB2
YXIga2F0TGlzdGUgPSBPYmplY3Qua2V5cyhrYXRaYWVobGVyKS5zb3J0KGZ1bmN0aW9uKGEsIGIp
IHsKICAgICAgICByZXR1cm4ga2F0WmFlaGxlcltiXSAtIGthdFphZWhsZXJbYV07CiAgICB9KTsK
ICAgIC8vIEluaXRpYWwtVGFiOiBhdXMgU29uZGVydGVybWluLUthdGVnb3JpZSBhYmxlaXRlbiwg
bWl0IEZhbGxiYWNrCiAgICB2YXIga2F0TWFwID0geyAnYnZiJzogJ2Z1c3NiYWxsJywgJ3Nwb3J0
JzogJ3Nwb3J0JyB9OwogICAgdmFyIGFrdGl2ZUthdCA9IGthdE1hcFtpbml0aWFsS2F0ZWdvcmll
XSB8fCBrYXRMaXN0ZVswXTsKICAgIGlmIChrYXRMaXN0ZS5pbmRleE9mKGFrdGl2ZUthdCkgPCAw
KSBha3RpdmVLYXQgPSBrYXRMaXN0ZVswXTsKCiAgICAvLyBWb3JoYW5kZW5lbiBQb3BvdmVyIGVu
dGZlcm5lbiAoZmFsbHMgbWFuIG5hY2hlaW5hbmRlciB6d2VpIFNsb3RzIMO2ZmZuZXQpCiAgICB2
YXIgYWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWxvZ28tcG9wb3ZlcicpOwogICAg
aWYgKGFsdCkgYWx0LnJlbW92ZSgpOwoKICAgIHZhciBwb3AgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKICAgIHBvcC5pZCA9ICdzZS1sb2dvLXBvcG92ZXInOwogICAgcG9wLnN0eWxl
LmNzc1RleHQgPSAncG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwMDtiYWNrZ3JvdW5kOnZhcigt
LWJnLWNhcmQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtib3JkZXItcmFk
aXVzOjhweDtib3gtc2hhZG93OjAgOHB4IDMycHggcmdiYSgwLDAsMCwwLjI1KTtwYWRkaW5nOjEw
cHg7d2lkdGg6NTYwcHg7bWF4LXdpZHRoOjkydnc7bWF4LWhlaWdodDo2NXZoO2Rpc3BsYXk6Zmxl
eDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweCc7CgogICAgdmFyIGthdExhYmVscyA9ICh0
eXBlb2YgTUVESUVOX0tBVEVHT1JJRU5fTEFCRUwgIT09ICd1bmRlZmluZWQnICYmIE1FRElFTl9L
QVRFR09SSUVOX0xBQkVMKSB8fCB7fTsKICAgIHZhciB0YWJzSHRtbCA9ICc8ZGl2IGlkPSJzZS1s
b2dvLXRhYnMiIHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjRweDtmbGV4LXdyYXA6d3JhcDtib3Jk
ZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO3BhZGRpbmctYm90dG9tOjZw
eCI+JyArCiAgICAgICAga2F0TGlzdGUubWFwKGZ1bmN0aW9uKGspIHsKICAgICAgICAgICAgdmFy
IGxhYmVsID0ga2F0TGFiZWxzW2tdIHx8IChrLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgay5z
bGljZSgxKSk7CiAgICAgICAgICAgIHZhciBha3RpdkNzcyA9IChrID09PSBha3RpdmVLYXQpID8g
J2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1vbi1wcmltYXJ5
KTsnIDogJyc7CiAgICAgICAgICAgIHJldHVybiAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNz
PSJidG4gYnRuLWtsZWluIHNlLWxvZ28tdGFiIiBkYXRhLWthdD0iJyArIGVzY2FwZUF0dHIoaykg
KyAnIiBzdHlsZT0iJyArIGFrdGl2Q3NzICsgJyI+JyArCiAgICAgICAgICAgICAgICBlc2NhcGVI
VE1MKGxhYmVsKSArICcgPHNwYW4gc3R5bGU9Im9wYWNpdHk6MC43O2ZvbnQtd2VpZ2h0OjQwMCI+
KCcgKyBrYXRaYWVobGVyW2tdICsgJyk8L3NwYW4+PC9idXR0b24+JzsKICAgICAgICB9KS5qb2lu
KCcnKSArCiAgICAnPC9kaXY+JzsKCiAgICBwb3AuaW5uZXJIVE1MID0KICAgICAgICB0YWJzSHRt
bCArCiAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6OHB4O2FsaWduLWl0ZW1z
OmNlbnRlciI+JyArCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InNlLWxvZ28t
c3VjaGUiIGNsYXNzPSJmb3JtLWlucHV0IiBwbGFjZWhvbGRlcj0iU3VjaGUg4oCmIiBzdHlsZT0i
ZmxleDoxIj4nICsKICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRu
IGJ0bi1nZWZhaHIgYnRuLWtsZWluIiBpZD0ic2UtbG9nby1jbGVhciIgc3R5bGU9ImNvbG9yOiMw
MDAiPkF1c3dhaGwgZW50ZmVybmVuPC9idXR0b24+JyArCiAgICAgICAgICAgICc8YnV0dG9uIHR5
cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4ta2xlaW4iIGlkPSJzZS1sb2dvLWFiYnJlY2hlbiI+
QWJicmVjaGVuPC9idXR0b24+JyArCiAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IGlk
PSJzZS1sb2dvLWdyaWQiIHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5z
OnJlcGVhdChhdXRvLWZpbGwsbWlubWF4KDExMHB4LDFmcikpO2dhcDo4cHg7b3ZlcmZsb3c6YXV0
bztmbGV4OjE7cGFkZGluZzo0cHgiPjwvZGl2Pic7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKHBvcCk7CgogICAgZnVuY3Rpb24gZ3JpZFJlbmRlcm5GdWVyKGthdCkgewogICAgICAgIHZh
ciBhdXN3YWhsID0gYWxsZU1lZGllbgogICAgICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKG0pIHsg
cmV0dXJuIG0ua2F0ZWdvcmllID09PSBrYXQ7IH0pCiAgICAgICAgICAgIC5zb3J0KGZ1bmN0aW9u
KGEsIGIpIHsgcmV0dXJuIChhLmJlemVpY2hudW5nIHx8ICcnKS5sb2NhbGVDb21wYXJlKGIuYmV6
ZWljaG51bmcgfHwgJycsICdkZScpOyB9KTsKICAgICAgICB2YXIgZ3JpZCA9IHBvcC5xdWVyeVNl
bGVjdG9yKCcjc2UtbG9nby1ncmlkJyk7CiAgICAgICAgZ3JpZC5pbm5lckhUTUwgPSBhdXN3YWhs
Lm1hcChmdW5jdGlvbihtKSB7CiAgICAgICAgICAgIHZhciBzcmMgPSBtLnBmYWQgfHwgKCcvYXBp
L21lZGllbi9kYXRlaS8nICsgZXNjYXBlQXR0cihtLmlkKSk7CiAgICAgICAgICAgIHZhciBha3Rp
diA9IG0uaWQgPT09IGFrdHVlbGxlSWQgPyAnIHN0eWxlPSJvdXRsaW5lOjNweCBzb2xpZCB2YXIo
LS1mYXJiZS1ha3plbnQpIicgOiAnJzsKICAgICAgICAgICAgcmV0dXJuICc8YnV0dG9uIHR5cGU9
ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2VrIHNlLWxvZ28tb3B0IicgKyBha3RpdiArICcgZGF0
YS1tZWRpdW0taWQ9IicgKyBlc2NhcGVBdHRyKG0uaWQpICsgJyIgc3R5bGU9ImRpc3BsYXk6Zmxl
eDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGlu
Zzo2cHg7aGVpZ2h0OmF1dG8iIHRpdGxlPSInICsgZXNjYXBlQXR0cihtLmJlemVpY2hudW5nKSAr
ICciPicgKwogICAgICAgICAgICAgICAgJzxpbWcgc3JjPSInICsgZXNjYXBlQXR0cihzcmMpICsg
JyIgYWx0PSIiIHN0eWxlPSJtYXgtd2lkdGg6ODBweDttYXgtaGVpZ2h0OjQycHg7b2JqZWN0LWZp
dDpjb250YWluIj4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEw
cHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVp
Z2h0OjEuMjt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6
ZWxsaXBzaXM7bWF4LXdpZHRoOjEwMHB4Ij4nICsgZXNjYXBlSFRNTChtLmJlemVpY2hudW5nKSAr
ICc8L3NwYW4+JyArCiAgICAgICAgICAgICc8L2J1dHRvbj4nOwogICAgICAgIH0pLmpvaW4oJycp
OwogICAgICAgIGdyaWQucXVlcnlTZWxlY3RvckFsbCgnLnNlLWxvZ28tb3B0JykuZm9yRWFjaChm
dW5jdGlvbihiKSB7CiAgICAgICAgICAgIGIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciBpZCA9IGIuZ2V0QXR0cmlidXRlKCdkYXRhLW1l
ZGl1bS1pZCcpOwogICAgICAgICAgICAgICAgc2NobGllc3NlbigpOwogICAgICAgICAgICAgICAg
Y2FsbGJhY2soaWQpOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0KICAgIGdyaWRS
ZW5kZXJuRnVlcihha3RpdmVLYXQpOwoKICAgIC8vIFBvc2l0aW9uIHJlbGF0aXYgenVtIE1vZGFs
LUluaGFsdCAoTWl0dGUpIOKAlCBQb3BvdmVyIHNjaHdlYnQgZGFyw7xiZXIKICAgIHZhciBtb2Rh
bEluaGFsdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtb2RhbC1vdmVybGF5IC5tb2RhbC1p
bmhhbHQnKTsKICAgIHZhciByZWYgPSBtb2RhbEluaGFsdCA/IG1vZGFsSW5oYWx0LmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpIDogeyBsZWZ0OiAxMDAsIHRvcDogMTAwLCB3aWR0aDogNjAwLCBoZWln
aHQ6IDQwMCB9OwogICAgcG9wLnN0eWxlLmxlZnQgPSBNYXRoLm1heCgyMCwgcmVmLmxlZnQgKyAo
cmVmLndpZHRoIC8gMikgLSAocG9wLm9mZnNldFdpZHRoIC8gMikpICsgJ3B4JzsKICAgIHBvcC5z
dHlsZS50b3AgID0gTWF0aC5tYXgoMjAsIHJlZi50b3AgKyA2MCkgKyAncHgnOwoKICAgIGZ1bmN0
aW9uIHNjaGxpZXNzZW4oKSB7CiAgICAgICAgaWYgKHBvcCAmJiBwb3AucGFyZW50Tm9kZSkgcG9w
LnJlbW92ZSgpOwogICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93
bicsIGF1c3NlbmtsaWNrLCB0cnVlKTsKICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3Rl
bmVyKCdrZXlkb3duJywgZXNjSGFuZGxlciwgdHJ1ZSk7CiAgICB9CiAgICBmdW5jdGlvbiBhdXNz
ZW5rbGljayhlKSB7CiAgICAgICAgaWYgKHBvcCAmJiAhcG9wLmNvbnRhaW5zKGUudGFyZ2V0KSkg
c2NobGllc3NlbigpOwogICAgfQogICAgZnVuY3Rpb24gZXNjSGFuZGxlcihlKSB7CiAgICAgICAg
aWYgKGUua2V5ID09PSAnRXNjYXBlJykgc2NobGllc3NlbigpOwogICAgfQogICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRv
d24nLCBhdXNzZW5rbGljaywgdHJ1ZSk7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigna2V5ZG93bicsIGVzY0hhbmRsZXIsIHRydWUpOwogICAgfSwgMCk7CgogICAgcG9wLnF1ZXJ5
U2VsZWN0b3IoJyNzZS1sb2dvLWFiYnJlY2hlbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
c2NobGllc3Nlbik7CiAgICBwb3AucXVlcnlTZWxlY3RvcignI3NlLWxvZ28tY2xlYXInKS5hZGRF
dmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIHNjaGxpZXNzZW4oKTsK
ICAgICAgICBjYWxsYmFjayhudWxsKTsKICAgIH0pOwogICAgcG9wLnF1ZXJ5U2VsZWN0b3IoJyNz
ZS1sb2dvLXN1Y2hlJykuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbihlKSB7CiAg
ICAgICAgdmFyIHEgPSBlLnRhcmdldC52YWx1ZS50b0xvd2VyQ2FzZSgpLnRyaW0oKTsKICAgICAg
ICBwb3AucXVlcnlTZWxlY3RvckFsbCgnI3NlLWxvZ28tZ3JpZCAuc2UtbG9nby1vcHQnKS5mb3JF
YWNoKGZ1bmN0aW9uKGIpIHsKICAgICAgICAgICAgYi5zdHlsZS5kaXNwbGF5ID0gKCFxIHx8IGIu
dGV4dENvbnRlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHEpID49IDApID8gJycgOiAnbm9uZSc7
CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHBvcC5xdWVyeVNlbGVjdG9yQWxsKCcuc2UtbG9nby10
YWInKS5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKICAgICAgICB0LmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBrID0gdC5nZXRBdHRyaWJ1dGUoJ2Rh
dGEta2F0Jyk7CiAgICAgICAgICAgIHBvcC5xdWVyeVNlbGVjdG9yQWxsKCcuc2UtbG9nby10YWIn
KS5mb3JFYWNoKGZ1bmN0aW9uKGIpIHsKICAgICAgICAgICAgICAgIGIuc3R5bGUuY3NzVGV4dCA9
ICcnOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdC5zdHlsZS5jc3NUZXh0ID0gJ2JhY2tn
cm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsnOwog
ICAgICAgICAgICBncmlkUmVuZGVybkZ1ZXIoayk7CiAgICAgICAgICAgIHBvcC5xdWVyeVNlbGVj
dG9yKCcjc2UtbG9nby1zdWNoZScpLnZhbHVlID0gJyc7CiAgICAgICAgfSk7CiAgICB9KTsKICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGlucCA9IHBvcC5xdWVyeVNlbGVj
dG9yKCcjc2UtbG9nby1zdWNoZScpOwogICAgICAgIGlmIChpbnApIGlucC5mb2N1cygpOwogICAg
fSwgNTApOwp9CmV4cG9ydCBmdW5jdGlvbiBzb25kZXJEYXR1bUxhYmVsKHMpIHsKICAgIGlmICgh
cy5kYXR1bSkgcmV0dXJuICfigJQnOwogICAgaWYgKHMuZGF0dW1CaXMgJiYgcy5kYXR1bUJpcyAh
PT0gcy5kYXR1bSkgcmV0dXJuIGRhdHVtRm9ybWF0REUocy5kYXR1bSkgKyAnIOKAkyAnICsgZGF0
dW1Gb3JtYXRERShzLmRhdHVtQmlzKTsKICAgIHJldHVybiBkYXR1bUZvcm1hdERFKHMuZGF0dW0p
Owp9CgpleHBvcnQgZnVuY3Rpb24gc29uZGVySW5oYWx0SHRtbChzb25kZXIpIHsKICAgIHZhciBp
Y29uTmFtZSA9IHNvbmRlci5pY29uIHx8IChzb25kZXIudHlwID09PSAnd2FybnVuZycgPyAnYWxl
cnQtdHJpYW5nbGUnIDogJ2luZm8nKTsKICAgIHZhciB0aXRlbEh0bWwgPSBzb25kZXIudGl0ZWwg
PyAnPGRpdiBjbGFzcz0ic29uZGVyLXdhcm4tdGl0ZWwiPicgKyBlc2NhcGVIVE1MKHNvbmRlci50
aXRlbCkgKyAnPC9kaXY+JyA6ICcnOwogICAgdmFyIHRleHRIdG1sID0gc2FuaXRpemVSaWNoSHRt
bChzb25kZXIudGV4dCB8fCAnJyk7CiAgICByZXR1cm4gJzxkaXYgY2xhc3M9InNvbmRlci13YXJu
LWljb24iPicgKyBpY29uU3ZnSHRtbChpY29uTmFtZSwgNDgpICsgJzwvZGl2PicgKwogICAgICAg
IHRpdGVsSHRtbCArCiAgICAgICAgJzxkaXYgY2xhc3M9InNvbmRlci13YXJuLXRleHQiPicgKyB0
ZXh0SHRtbCArICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0ic29uZGVyLXdhcm4tZGF0
dW0iPicgKyBlc2NhcGVIVE1MKHNvbmRlckRhdHVtTGFiZWwoc29uZGVyKSkgKyAnPC9kaXY+JzsK
fQoKZXhwb3J0IGZ1bmN0aW9uIHNvbmRlcldhcm5Nb2RhbFplaWdlbihzb25kZXIsIG9uV2VpdGVy
KSB7CiAgICB2YXIgdHlwQ2xzID0gJ3R5cC0nICsgKHNvbmRlci50eXAgfHwgJ2hpbndlaXMnKTsK
ICAgIHZhciB0aXRlbEtvcGYgPSAoc29uZGVyLnR5cCA9PT0gJ3dhcm51bmcnID8gJ1dhcm5oaW53
ZWlzJyA6ICdIaW53ZWlzJykgKyAnIGbDvHIgZGllc2VuIFRhZyc7CiAgICB2YXIgZm9vdGVyID0g
JzxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9InNvbmRlci13YXJuLW9rIj5WZXJz
dGFuZGVuLCB3ZWl0ZXI8L2J1dHRvbj4nOwogICAgbW9kYWxaZWlnZW4odGl0ZWxLb3BmLCBzb25k
ZXJJbmhhbHRIdG1sKHNvbmRlciksIGZvb3RlciwgbnVsbCk7CiAgICB2YXIgbW9kID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLWJveCcpOwogICAgaWYgKG1vZCkgbW9kLmNsYXNzTGlz
dC5hZGQoJ3NvbmRlci13YXJuLW1vZGFsJywgdHlwQ2xzKTsKICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzb25kZXItd2Fybi1vaycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rp
b24oKSB7CiAgICAgICAgaWYgKG1vZCkgbW9kLmNsYXNzTGlzdC5yZW1vdmUoJ3NvbmRlci13YXJu
LW1vZGFsJywgdHlwQ2xzKTsKICAgICAgICBtb2RhbFNjaGxpZXNzZW4oKTsKICAgICAgICBpZiAo
dHlwZW9mIG9uV2VpdGVyID09PSAnZnVuY3Rpb24nKSBvbldlaXRlcigpOwogICAgfSk7Cn0KCmV4
cG9ydCBmdW5jdGlvbiBzb25kZXJBbnNpY2h0TW9kYWxaZWlnZW4oc29uZGVyKSB7CiAgICB2YXIg
dGl0ZWxLb3BmID0gc29uZGVyLnR5cCA9PT0gJ3dhcm51bmcnID8gJ1dhcm5oaW53ZWlzJyA6ICdI
aW53ZWlzJzsKICAgIG1vZGFsWmVpZ2VuKHRpdGVsS29wZiwgc29uZGVySW5oYWx0SHRtbChzb25k
ZXIpLAogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIGlkPSJzb25kZXIt
YW5zaWNodC1vayI+U2NobGllw59lbjwvYnV0dG9uPicsCiAgICAgICAgbnVsbCk7CiAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc29uZGVyLWFuc2ljaHQtb2snKS5hZGRFdmVudExpc3RlbmVy
KCdjbGljaycsIG1vZGFsU2NobGllc3Nlbik7Cn0KCmV4cG9ydCBmdW5jdGlvbiBzb25kZXJFZGl0
TW9kYWxaZWlnZW4oaWRPZGVyRGF0dW0pIHsKICAgIC8vIFBhcmFtZXRlcjogInN0Xy4uLiItSUQg
KGJlYXJiZWl0ZW4pIG9kZXIgIllZWVktTU0tREQiIChuZXUgZsO8ciBkaWVzZW4gVGFnKSBvZGVy
ICIiIChuZXUgb2huZSBEYXR1bSkKICAgIHZhciB2b3JoID0gbnVsbDsKICAgIGlmIChpZE9kZXJE
YXR1bSAmJiBpZE9kZXJEYXR1bS5pbmRleE9mKCdzdF8nKSA9PT0gMCkgdm9yaCA9IHNvbmRlckJ5
SWQoaWRPZGVyRGF0dW0pOwogICAgZWxzZSBpZiAoaWRPZGVyRGF0dW0pIHZvcmggPSBzb25kZXJG
dWVyRGF0dW0oaWRPZGVyRGF0dW0pOwogICAgdmFyIHN0YXJ0RGF0dW0gPSAoaWRPZGVyRGF0dW0g
JiYgaWRPZGVyRGF0dW0uaW5kZXhPZignc3RfJykgIT09IDApID8gaWRPZGVyRGF0dW0gOiAnJzsK
ICAgIHZhciBzID0gdm9yaCA/IE9iamVjdC5hc3NpZ24oe30sIHZvcmgpIDogeyBkYXR1bTogc3Rh
cnREYXR1bSwgZGF0dW1CaXM6ICcnLCB0aXRlbDogJycsIHRleHQ6ICcnLCB0eXA6ICdoaW53ZWlz
JywgaWNvbjogJycsIHdhcm5Nb2R1czogJ2ltbWVyJywga2F0ZWdvcmllOiAnYmVzcHJlY2h1bmcn
LCBsb2dvczogW10sIGxvZ29EYXJzdGVsbHVuZzogJ2JlaWRlJyB9OwogICAgLy8gRGVmYXVsdHMg
ZsO8ciBhbHRlIERhdGVuc8OkdHplIG9obmUgbmV1ZSBGZWxkZXIKICAgIGlmICghcy5rYXRlZ29y
aWUpIHMua2F0ZWdvcmllID0gJ2Jlc3ByZWNodW5nJzsKICAgIGlmICghQXJyYXkuaXNBcnJheShz
LmxvZ29zKSkgcy5sb2dvcyA9IFtdOwogICAgaWYgKCFzLmxvZ29EYXJzdGVsbHVuZykgcy5sb2dv
RGFyc3RlbGx1bmcgPSAnYmVpZGUnOwogICAgdmFyIGljb25Wb3JzY2hhdSA9IHMuaWNvbiA/IGlj
b25TdmdIdG1sKHMuaWNvbiwgMjIpIDogJzxzcGFuIGNsYXNzPSJlbW9qaS1idG4tbGVlci10ZXh0
Ij7igJQ8L3NwYW4+JzsKCiAgICAvLyBLYXRlZ29yaWVuLU9wdGlvbmVuIOKAlCBmZXN0IGRlZmlu
aWVydCAoTklDSFQgZGllIE1lZGllbi1LYXRlZ29yaWVuISkKICAgIHZhciBTT05ERVJfS0FURUdP
UklFTiA9IFsKICAgICAgICB7IGtleTogJ2Jlc3ByZWNodW5nJywgICAgICAgbGFiZWw6ICdCZXNw
cmVjaHVuZycgfSwKICAgICAgICB7IGtleTogJ2J2YicsICAgICAgICAgICAgICAgbGFiZWw6ICdC
VkInIH0sCiAgICAgICAgeyBrZXk6ICdzcG9ydCcsICAgICAgICAgICAgIGxhYmVsOiAnU3BvcnQn
IH0sCiAgICAgICAgeyBrZXk6ICdncm9zc3ZlcmFuc3RhbHR1bmcnLGxhYmVsOiAnR3Jvw592ZXJh
bnN0YWx0dW5nJyB9LAogICAgICAgIHsga2V5OiAnYmFvJywgICAgICAgICAgICAgICBsYWJlbDog
J0JBTycgfSwKICAgICAgICB7IGtleTogJ3VlYnVuZycsICAgICAgICAgICAgbGFiZWw6ICfDnGJ1
bmcnIH0KICAgIF07CiAgICB2YXIga2F0T3B0cyA9IFNPTkRFUl9LQVRFR09SSUVOLm1hcChmdW5j
dGlvbihrKSB7CiAgICAgICAgcmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsgay5rZXkgKyAnIicg
KyAocy5rYXRlZ29yaWUgPT09IGsua2V5ID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPicgKyBlc2Nh
cGVIVE1MKGsubGFiZWwpICsgJzwvb3B0aW9uPic7CiAgICB9KS5qb2luKCcnKTsKICAgIC8vIFZv
cmxhZ2VuLVBpY2tlcjogbnVyIGJlaSBOZXVhbmxhZ2UgYW56ZWlnZW4gKHZvcmggPT09IG51bGwp
IHVuZCBudXIgd2VubgogICAgLy8gYWt0aXZlIFZvcmxhZ2VuIGV4aXN0aWVyZW4uIEJlaW0gQmVh
cmJlaXRlbiB3YWVyZSBlaW4gVWViZXJzY2hyZWliZW4gdmVyd2lycmVuZC4KICAgIHZhciB2b3Js
YWdlbkFrdGl2ID0gKFouYWRtaW4uYmVzcHJlY2h1bmdzVm9ybGFnZW4gfHwgW10pLmZpbHRlcihm
dW5jdGlvbih2KSB7IHJldHVybiB2LmFrdGl2ICE9PSBmYWxzZSAmJiAodi50aXRlbCB8fCAnJyku
dHJpbSgpOyB9KTsKICAgIHZhciB2b3JsYWdlblBpY2tlckh0bWwgPSAnJzsKICAgIGlmICghdm9y
aCAmJiB2b3JsYWdlbkFrdGl2Lmxlbmd0aCkgewogICAgICAgIHZhciB2b3JPcHRzID0gJzxvcHRp
b24gdmFsdWU9IiI+4oCUIGtlaW5lIFZvcmxhZ2Ug4oCUPC9vcHRpb24+JzsKICAgICAgICB2b3Js
YWdlbkFrdGl2LnNsaWNlKCkuc29ydChmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgIHJldHVy
biAoYS50aXRlbCB8fCAnJykubG9jYWxlQ29tcGFyZShiLnRpdGVsIHx8ICcnLCAnZGUnKTsKICAg
ICAgICB9KS5mb3JFYWNoKGZ1bmN0aW9uKHYpIHsKICAgICAgICAgICAgdm9yT3B0cyArPSAnPG9w
dGlvbiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIodi5pZCkgKyAnIj4nICsgZXNjYXBlSFRNTCh2LnRp
dGVsKSArICc8L29wdGlvbj4nOwogICAgICAgIH0pOwogICAgICAgIHZvcmxhZ2VuUGlja2VySHRt
bCA9CiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9Im1hcmdpbi1i
b3R0b206NHB4O3BhZGRpbmc6OHB4IDEwcHg7YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7
Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG9yKSI+
JyArCiAgICAgICAgICAgICAgICAnPGxhYmVsIHN0eWxlPSJmb250LXNpemU6MTFweCI+QXVzIFZv
cmxhZ2UgJnV1bWw7YmVybmVobWVuIDxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVk
KTtmb250LXdlaWdodDo0MDAiPuKAlCBmJnV1bWw7bGx0IFRpdGVsICsgVGV4dCB2b3I8L3NwYW4+
PC9sYWJlbD4nICsKICAgICAgICAgICAgICAgICc8c2VsZWN0IGlkPSJzZS12b3JsYWdlLXBpY2tl
ciIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJmb250LXNpemU6MTNweCI+JyArIHZvck9wdHMg
KyAnPC9zZWxlY3Q+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgfQogICAgdmFyIHRvb2xi
YXJIdG1sID0KICAgICAgICAnPGRpdiBjbGFzcz0icnRlLXRvb2xiYXIiPicgKwogICAgICAgICAg
ICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iYm9sZCIg
dGl0bGU9IkZldHQgKEN0cmwrQikiPjxzdHJvbmc+Qjwvc3Ryb25nPjwvYnV0dG9uPicgKwogICAg
ICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0i
aXRhbGljIiB0aXRsZT0iS3Vyc2l2IChDdHJsK0kpIj48ZW0+STwvZW0+PC9idXR0b24+JyArCiAg
ICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEtY21k
PSJ1bmRlcmxpbmUiIHRpdGxlPSJVbnRlcnN0cmljaGVuIChDdHJsK1UpIj48dT5VPC91PjwvYnV0
dG9uPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4nICsKICAg
ICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icnRlLWJ0biIgZGF0YS1jbWQ9
Imluc2VydFVub3JkZXJlZExpc3QiIHRpdGxlPSJBdWZ6w6RobHVuZyI+4oCiPC9idXR0b24+JyAr
CiAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJ0ZS1idG4iIGRhdGEt
Y21kPSJpbnNlcnRPcmRlcmVkTGlzdCIgdGl0bGU9Ik51bW1lcmllcnQiPjEuPC9idXR0b24+JyAr
CiAgICAgICAgICAgICc8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFuPicgKwogICAgICAgICAg
ICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0ib3V0ZGVu
dCIgdGl0bGU9IkF1c3LDvGNrZW4iPuKHpDwvYnV0dG9uPicgKwogICAgICAgICAgICAnPGJ1dHRv
biB0eXBlPSJidXR0b24iIGNsYXNzPSJydGUtYnRuIiBkYXRhLWNtZD0iaW5kZW50IiB0aXRsZT0i
RWlucsO8Y2tlbiI+4oelPC9idXR0b24+JyArCiAgICAgICAgICAgICc8c3BhbiBjbGFzcz0icnRl
LXNlcCI+PC9zcGFuPicgKwogICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNz
PSJydGUtYnRuIiBkYXRhLWNtZD0icmVtb3ZlRm9ybWF0IiB0aXRsZT0iRm9ybWF0aWVydW5nIGVu
dGZlcm5lbiI+TMO2c2NoZW48L2J1dHRvbj4nICsKICAgICAgICAnPC9kaXY+JzsKICAgIHZhciBr
b2VycGVyID0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47
Z2FwOjEycHgiPicgKwogICAgICAgIHZvcmxhZ2VuUGlja2VySHRtbCArCiAgICAgICAgJzxkaXYg
c3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcCI+JyArCiAgICAgICAg
ICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImZsZXg6MTttaW4td2lkdGg6MTUw
cHgiPjxsYWJlbD5EYXR1bSAoVm9uKTwvbGFiZWw+PGlucHV0IHR5cGU9ImRhdGUiIGlkPSJzZS1k
YXR1bSIgY2xhc3M9ImZvcm0taW5wdXQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzLmRhdHVtKSAr
ICciPjwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiIHN0eWxl
PSJmbGV4OjE7bWluLXdpZHRoOjE1MHB4Ij48bGFiZWw+RGF0dW0gKEJpcykgPHNwYW4gc3R5bGU9
ImZvbnQtd2VpZ2h0OjQwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MTFweCI+
4oCUIGxlZXIgbGFzc2VuIGbDvHIgZWluZW4gVGFnPC9zcGFuPjwvbGFiZWw+PGlucHV0IHR5cGU9
ImRhdGUiIGlkPSJzZS1kYXR1bS1iaXMiIGNsYXNzPSJmb3JtLWlucHV0IiB2YWx1ZT0iJyArIGVz
Y2FwZUF0dHIocy5kYXR1bUJpcyB8fCAnJykgKyAnIj48L2Rpdj4nICsKICAgICAgICAnPC9kaXY+
JyArCiAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTJweDtmbGV4LXdyYXA6
d3JhcCI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImZs
ZXg6MjttaW4td2lkdGg6MjAwcHgiPjxsYWJlbD5UaXRlbDwvbGFiZWw+PGlucHV0IHR5cGU9InRl
eHQiIGlkPSJzZS10aXRlbCIgY2xhc3M9ImZvcm0taW5wdXQiIHZhbHVlPSInICsgZXNjYXBlQXR0
cihzLnRpdGVsIHx8ICcnKSArICciIHBsYWNlaG9sZGVyPSJLdXJ6ZXIgVGl0ZWwsIHouQi4g4oCe
S2FybmV2YWwiIiBtYXhsZW5ndGg9IjEwMCI+PC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImZsZXg6MTttaW4td2lkdGg6MTYwcHgiPjxsYWJlbD5L
YXRlZ29yaWU8L2xhYmVsPjxzZWxlY3QgaWQ9InNlLWthdGVnb3JpZSIgY2xhc3M9ImZvcm0taW5w
dXQiPicgKyBrYXRPcHRzICsgJzwvc2VsZWN0PjwvZGl2PicgKwogICAgICAgICc8L2Rpdj4nICsK
ICAgICAgICAvLyBMb2dvLVBpY2tlciAobnVyIHNpY2h0YmFyIGJlaSBLYXRlZ29yaWUgQlZCIC8g
U3BvcnQpCiAgICAgICAgLy8gU2xvdCAwIGltbWVyIHNpY2h0YmFyLCBTbG90IDEgbnVyIHdlbm4g
dm9yYmVsZWd0IG9kZXIgcGVyIEJ1dHRvbiBoaW56dWdlZsO8Z3QuCiAgICAgICAgLy8gQW56ZWln
ZS1Mb2dpazogMSBMb2dvIHdpcmQgYWxzIGVpbnppZ2VzIGdlcmVuZGVydCwgMiBMb2dvcyBhbHMg
4oCeQSA6IEIiCiAgICAgICAgLy8gKGtlaW4gRHJvcGRvd24gbWVociDigJQgd2VyIDEgTG9nbyB3
aWxsLCBmw7xndCBudXIgMSBMb2dvIGhpbnp1KS4KICAgICAgICAnPGRpdiBpZD0ic2UtbG9nby1i
bG9jayIgc3R5bGU9IicgKyAoKHMua2F0ZWdvcmllID09PSAnYnZiJyB8fCBzLmthdGVnb3JpZSA9
PT0gJ3Nwb3J0JykgPyAnJyA6ICdkaXNwbGF5Om5vbmUnKSArICciPicgKwogICAgICAgICAgICAn
PGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0
ZW1zOmZsZXgtZW5kIj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBw
ZSIgc3R5bGU9ImZsZXg6MTttaW4td2lkdGg6MjAwcHgiPjxsYWJlbD5Mb2dvIC8gSWNvbjwvbGFi
ZWw+JyArIHNvbmRlckxvZ29CdXR0b25IdG1sKDAsIHMubG9nb3NbMF0pICsgJzwvZGl2PicgKwog
ICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIiBpZD0ic2UtbG9nby1zbG90
MS13cmFwIiBzdHlsZT0iZmxleDoxO21pbi13aWR0aDoyMDBweDsnICsgKHMubG9nb3NbMV0gPyAn
JyA6ICdkaXNwbGF5Om5vbmUnKSArICciPicgKwogICAgICAgICAgICAgICAgICAgICc8bGFiZWw+
WndlaXRlcyBMb2dvIC8gSWNvbiAnICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxidXR0b24g
dHlwZT0iYnV0dG9uIiBpZD0ic2UtbG9nby1zbG90MS1lbnRmZXJuZW4iIGNsYXNzPSJidG4gYnRu
LWtsZWluIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NnB4O3BhZGRpbmc6MXB4IDhweDtmb250LXNpemU6
MTFweCIgdGl0bGU9Ilp3ZWl0ZXMgTG9nbyBlbnRmZXJuZW4iPsOXPC9idXR0b24+JyArCiAgICAg
ICAgICAgICAgICAgICAgJzwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAgICAgc29uZGVyTG9n
b0J1dHRvbkh0bWwoMSwgcy5sb2dvc1sxXSkgKwogICAgICAgICAgICAgICAgJzwvZGl2PicgKwog
ICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIiBpZD0ic2UtbG9nby1zbG90
MS1hZGQtd3JhcCIgc3R5bGU9ImZsZXg6MCAwIGF1dG87JyArIChzLmxvZ29zWzFdID8gJ2Rpc3Bs
YXk6bm9uZScgOiAnJykgKyAnIj4nICsKICAgICAgICAgICAgICAgICAgICAnPGxhYmVsPiZuYnNw
OzwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBp
ZD0ic2UtbG9nby1zbG90MS1hZGQiIGNsYXNzPSJidG4gYnRuLXNlayI+KyBad2VpdGVzIExvZ288
L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgJzwvZGl2
PicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUi
PjxsYWJlbD5UZXh0PC9sYWJlbD4nICsgdG9vbGJhckh0bWwgKwogICAgICAgICAgICAnPGRpdiBp
ZD0ic2UtdGV4dCIgY2xhc3M9InJ0ZS1lZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgc3Bl
bGxjaGVjaz0idHJ1ZSI+JyArIHNhbml0aXplUmljaEh0bWwocy50ZXh0IHx8ICcnKSArICc8L2Rp
dj4nICsKICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6Zmxl
eDtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcCI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJm
b3JtLWdydXBwZSI+PGxhYmVsPkljb248L2xhYmVsPjxkaXY+PGJ1dHRvbiB0eXBlPSJidXR0b24i
IGlkPSJzZS1pY29uLWJ0biIgY2xhc3M9ImVtb2ppLWJ0biIgdGl0bGU9Ikljb24gd2FlaGxlbiI+
JyArIGljb25Wb3JzY2hhdSArICc8L2J1dHRvbj48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2Ut
aWNvbiIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKHMuaWNvbiB8fCAnJykgKyAnIj48L2Rpdj48L2Rp
dj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIiBzdHlsZT0iZmxleDox
O21pbi13aWR0aDoxMjBweCI+PGxhYmVsPlR5cDwvbGFiZWw+PHNlbGVjdCBpZD0ic2UtdHlwIiBj
bGFzcz0iZm9ybS1pbnB1dCI+JyArCiAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iaGlu
d2VpcyInICsgKHMudHlwID09PSAnaGlud2VpcycgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+SGlu
d2VpcyAo4oS5KTwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9Indh
cm51bmciJyArIChzLnR5cCA9PT0gJ3dhcm51bmcnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPldh
cm51bmcgKOKaoCk8L29wdGlvbj4nICsKICAgICAgICAgICAgJzwvc2VsZWN0PjwvZGl2PicgKwog
ICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiIHN0eWxlPSJmbGV4OjE7bWluLXdp
ZHRoOjE0MHB4Ij48bGFiZWw+V2Fybm1vZHVzPC9sYWJlbD48c2VsZWN0IGlkPSJzZS13bSIgY2xh
c3M9ImZvcm0taW5wdXQiPicgKwogICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImltbWVy
IicgKyAoKHMud2Fybk1vZHVzIHx8ICdpbW1lcicpID09PSAnaW1tZXInID8gJyBzZWxlY3RlZCcg
OiAnJykgKyAnPkltbWVyIGJlaSBQbGFudW5nPC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAn
PG9wdGlvbiB2YWx1ZT0iZWlubWFsaWciJyArIChzLndhcm5Nb2R1cyA9PT0gJ2Vpbm1hbGlnJyA/
ICcgc2VsZWN0ZWQnIDogJycpICsgJz5FaW5tYWxpZyBwcm8gVXNlcjwvb3B0aW9uPicgKwogICAg
ICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImF1cyInICsgKHMud2Fybk1vZHVzID09PSAnYXVz
JyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5BdXMgKG51ciBIZWFkZXItSWNvbik8L29wdGlvbj4n
ICsKICAgICAgICAgICAgJzwvc2VsZWN0PjwvZGl2PicgKwogICAgICAgICc8L2Rpdj48L2Rpdj4n
OwogICAgdmFyIGZvb3RlciA9ICh2b3JoID8gJzxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2VmYWhy
IiBpZD0ic2UtbG9lc2NoZW4iIHN0eWxlPSJtYXJnaW4tcmlnaHQ6YXV0byI+TMO2c2NoZW48L2J1
dHRvbj4nIDogJycpICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIiBpZD0ic2UtYWJicmVj
aGVuIj5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0
bi1wcmltYWVyIiBpZD0ic2Utc3BlaWNoZXJuIj5TcGVpY2hlcm48L2J1dHRvbj4nOwogICAgLy8g
bW9kYWxLZXkgYWt0aXZpZXJ0IGRhcyBFbnR3dXJmLVN5c3RlbTogdW5nZXNwZWljaGVydGUgw4Ru
ZGVydW5nZW4KICAgIC8vIGvDtm5uZW4gYmVpbSBTY2hsaWXDn2VuIGFscyBFbnR3dXJmIHp3aXNj
aGVuZ2VsYWdlcnQgd2VyZGVuLgogICAgdmFyIHNvbmRlck1vZGFsS2V5ID0gdm9yaCA/ICgnc29u
ZGVyX2VkaXRfJyArIHZvcmguaWQpIDogKCdzb25kZXJfbmV1XycgKyAoaWRPZGVyRGF0dW0gfHwg
JycpKTsKICAgIG1vZGFsWmVpZ2VuKHZvcmggPyAnSGlud2VpcyBiZWFyYmVpdGVuJyA6ICdOZXVl
ciBIaW53ZWlzJywga29lcnBlciwgZm9vdGVyLCBudWxsLCBzb25kZXJNb2RhbEtleSk7CgogICAg
dmFyIGVkaXRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS10ZXh0Jyk7CiAgICBydGVJ
bml0KGVkaXRvcik7CgogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWljb24tYnRuJyku
YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgZS5zdG9wUHJv
cGFnYXRpb24oKTsKICAgICAgICBlbW9qaVBpY2tlclplaWdlbih0aGlzLCBmdW5jdGlvbih2KSB7
CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS1pY29uJykudmFsdWUgPSB2
OwogICAgICAgICAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWljb24t
YnRuJyk7CiAgICAgICAgICAgIGlmICh2KSBidG4uaW5uZXJIVE1MID0gaWNvblN2Z0h0bWwodiwg
MjIpOwogICAgICAgICAgICBlbHNlICAgYnRuLmlubmVySFRNTCA9ICc8c3BhbiBjbGFzcz0iZW1v
amktYnRuLWxlZXItdGV4dCI+4oCUPC9zcGFuPic7CiAgICAgICAgfSk7CiAgICB9KTsKCiAgICAv
LyBLYXRlZ29yaWUtV2VjaHNlbCB6ZWlndC92ZXJzdGVja3QgZGVuIExvZ28tQmxvY2sKICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS1rYXRlZ29yaWUnKS5hZGRFdmVudExpc3RlbmVyKCdj
aGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICB2YXIga2F0ID0gdGhpcy52YWx1ZTsKICAgICAg
ICB2YXIgYmxvY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2UtbG9nby1ibG9jaycpOwog
ICAgICAgIGlmIChibG9jaykgYmxvY2suc3R5bGUuZGlzcGxheSA9IChrYXQgPT09ICdidmInIHx8
IGthdCA9PT0gJ3Nwb3J0JykgPyAnJyA6ICdub25lJzsKICAgIH0pOwogICAgLy8gVm9ybGFnZW4t
UGlja2VyIChudXIgYmVpIE5ldWFubGFnZSBnZXJlbmRlcnQpOiBmdWVsbHQgVGl0ZWwgKyBUZXh0
IHZvcgogICAgdmFyIHZvclBpY2tlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS12b3Js
YWdlLXBpY2tlcicpOwogICAgaWYgKHZvclBpY2tlcikgewogICAgICAgIHZvclBpY2tlci5hZGRF
dmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIHYgPSAo
Wi5hZG1pbi5iZXNwcmVjaHVuZ3NWb3JsYWdlbiB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJl
dHVybiB4LmlkID09PSB2b3JQaWNrZXIudmFsdWU7IH0pOwogICAgICAgICAgICBpZiAoIXYpIHJl
dHVybjsKICAgICAgICAgICAgdmFyIHRpdGVsRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c2UtdGl0ZWwnKTsKICAgICAgICAgICAgaWYgKHRpdGVsRWwgJiYgIXRpdGVsRWwudmFsdWUudHJp
bSgpKSB0aXRlbEVsLnZhbHVlID0gdi50aXRlbCB8fCAnJzsKICAgICAgICAgICAgLy8gQmVpbSBF
ZGl0b3I6IG51ciBiZWZ1ZWxsZW4sIHdlbm4gZXIgbm9jaCBsZWVyIGlzdCAoU2NodXR6IHZvciBV
ZWJlcnNjaHJlaWJlbikuCiAgICAgICAgICAgIGlmIChlZGl0b3IgJiYgIWVkaXRvci50ZXh0Q29u
dGVudC50cmltKCkpIHsKICAgICAgICAgICAgICAgIGVkaXRvci5pbm5lckhUTUwgPSBzYW5pdGl6
ZVJpY2hIdG1sKHYuc3RhbmRhcmRUZXh0IHx8ICcnKTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICAvLyBQaWNrZXIgenVydWVja3NldHplbiwgZGFtaXQgTWVocmZhY2gtQXVzd2FobCBndXQgZnVu
a3Rpb25pZXJ0CiAgICAgICAgICAgIHZvclBpY2tlci52YWx1ZSA9ICcnOwogICAgICAgIH0pOwog
ICAgfQogICAgLy8gTG9nby1QaWNrZXItQnV0dG9ucyBiaW5kZW4g4oCUIFNsb3QgMCBpbW1lciwg
U2xvdCAxIGNvbmRpdGlvbmFsLgogICAgLy8gSW5pdGlhbC1UYWIgbGVpdGV0IHNpY2ggYXVzIGRl
ciBha3R1ZWxsZW4gU29uZGVydGVybWluLUthdGVnb3JpZSBhYi4KICAgIGZ1bmN0aW9uIGFrdHVl
bGxlU29uZGVyS2F0ZWdvcmllKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc2Uta2F0ZWdvcmllJykudmFsdWU7CiAgICB9CiAgICBbMCwgMV0uZm9yRWFjaChmdW5j
dGlvbihzbG90KSB7CiAgICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz
ZS1sb2dvLScgKyBzbG90KTsKICAgICAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAgICAgIGJ0bi5h
ZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzb25kZXJM
b2dvUGlja2VyWmVpZ2VuKHMubG9nb3Nbc2xvdF0sIGFrdHVlbGxlU29uZGVyS2F0ZWdvcmllKCks
IGZ1bmN0aW9uKG5ldUlkKSB7CiAgICAgICAgICAgICAgICBzLmxvZ29zW3Nsb3RdID0gbmV1SWQg
fHwgbnVsbDsKICAgICAgICAgICAgICAgIHNvbmRlckxvZ29CdXR0b25Ba3R1YWxpc2llcmVuKHNs
b3QsIHMubG9nb3Nbc2xvdF0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0pOwog
ICAgLy8gIisgWndlaXRlcyBMb2dvIi1CdXR0b24gYmxlbmRldCBTbG90IDEgZWluIHVuZCDDtmZm
bmV0IGRpcmVrdCBkZW4gUGlja2VyCiAgICB2YXIgc2xvdDFBZGQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc2UtbG9nby1zbG90MS1hZGQnKTsKICAgIGlmIChzbG90MUFkZCkgewogICAgICAg
IHNsb3QxQWRkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS1sb2dvLXNsb3QxLWFkZC13cmFwJykuc3R5
bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3NlLWxvZ28tc2xvdDEtd3JhcCcpLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAgICAgc29u
ZGVyTG9nb1BpY2tlclplaWdlbihudWxsLCBha3R1ZWxsZVNvbmRlckthdGVnb3JpZSgpLCBmdW5j
dGlvbihuZXVJZCkgewogICAgICAgICAgICAgICAgcy5sb2dvc1sxXSA9IG5ldUlkIHx8IG51bGw7
CiAgICAgICAgICAgICAgICBzb25kZXJMb2dvQnV0dG9uQWt0dWFsaXNpZXJlbigxLCBzLmxvZ29z
WzFdKTsKICAgICAgICAgICAgICAgIGlmICghbmV1SWQpIHsKICAgICAgICAgICAgICAgICAgICAv
LyBVc2VyIGhhdCBpbSBQaWNrZXIgYWJnZWJyb2NoZW4gb2huZSBBdXN3YWhsIC0+IFNsb3Qgd2ll
ZGVyIHNjaGxpZXNzZW4KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnc2UtbG9nby1zbG90MS1hZGQtd3JhcCcpLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2UtbG9nby1zbG90MS13cmFwJyku
c3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7
CiAgICAgICAgfSk7CiAgICB9CiAgICAvLyAiw5ciLUJ1dHRvbiBpbSBTbG90LTEtTGFiZWwgZW50
ZmVybnQgZGFzIHp3ZWl0ZSBMb2dvIHdpZWRlcgogICAgdmFyIHNsb3QxUmVtb3ZlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWxvZ28tc2xvdDEtZW50ZmVybmVuJyk7CiAgICBpZiAoc2xv
dDFSZW1vdmUpIHsKICAgICAgICBzbG90MVJlbW92ZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzLmxvZ29zWzFdID0gbnVsbDsKICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWxvZ28tc2xvdDEtd3JhcCcpLnN0eWxlLmRpc3Bs
YXkgPSAnbm9uZSc7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS1sb2dv
LXNsb3QxLWFkZC13cmFwJykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIH0pOwogICAgfQoK
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS1hYmJyZWNoZW4nKS5hZGRFdmVudExpc3Rl
bmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBtb2RhbFNjaGxpZXNzZW4oKTsgfSk7CiAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2Utc3BlaWNoZXJuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xp
Y2snLCBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgdGV4dEh0bWwgPSBzYW5pdGl6ZVJpY2hIdG1s
KGVkaXRvci5pbm5lckhUTUwgfHwgJycpOwogICAgICAgIHZhciBkQmlzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3NlLWRhdHVtLWJpcycpLnZhbHVlOwogICAgICAgIHZhciBrYXROZXUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Uta2F0ZWdvcmllJykudmFsdWU7CiAgICAgICAgdmFy
IGxvZ29zTmV1ID0gKGthdE5ldSA9PT0gJ2J2YicgfHwga2F0TmV1ID09PSAnc3BvcnQnKQogICAg
ICAgICAgICA/IFtzLmxvZ29zWzBdIHx8IG51bGwsIHMubG9nb3NbMV0gfHwgbnVsbF0uZmlsdGVy
KEJvb2xlYW4pCiAgICAgICAgICAgIDogW107CiAgICAgICAgLy8gbG9nb0RhcnN0ZWxsdW5nIHdp
cmQgbmljaHQgbWVociBwZXIgVUkgZ2VzdGV1ZXJ0IChrZWluIERyb3Bkb3duKS4KICAgICAgICAv
LyBEYXMgRmVsZCBibGVpYnQgZsO8cnMgUGVyc2lzdGllcmVuIGVyaGFsdGVuIHVuZCBhdWYgJ2Jl
aWRlJyBnZXNldHp0OwogICAgICAgIC8vIHNvbmRlckxvZ29zSHRtbCgpIHdlcnRldCBkYXMgbnVy
IG5vY2ggYmVpIDIgdm9yaGFuZGVuZW4gTG9nb3MgYXVzCiAgICAgICAgLy8gKCdiZWlkZScgPSBE
ZWZhdWx0LVZlcmhhbHRlbjogYWxsZSB2b3JoYW5kZW5lbiBMb2dvcyByZW5kZXJuKS4KICAgICAg
ICB2YXIgZGFyc3RlbGx1bmdOZXUgPSAnYmVpZGUnOwogICAgICAgIHZhciBkYXRlbiA9IHsKICAg
ICAgICAgICAgaWQ6ICh2b3JoICYmIHZvcmguaWQpIHx8ICgnc3RfJyArIERhdGUubm93KCkudG9T
dHJpbmcoMzYpICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDUpKSwKICAg
ICAgICAgICAgZGF0dW06IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS1kYXR1bScpLnZhbHVl
LAogICAgICAgICAgICBkYXR1bUJpczogZEJpcyB8fCAnJywKICAgICAgICAgICAgdGl0ZWw6IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZS10aXRlbCcpLnZhbHVlLnRyaW0oKSwKICAgICAgICAg
ICAgdGV4dDogdGV4dEh0bWwsCiAgICAgICAgICAgIGljb246IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzZS1pY29uJykudmFsdWUsCiAgICAgICAgICAgIHR5cDogZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3NlLXR5cCcpLnZhbHVlLAogICAgICAgICAgICB3YXJuTW9kdXM6IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzZS13bScpLnZhbHVlLAogICAgICAgICAgICBrYXRlZ29yaWU6IGthdE5l
dSwKICAgICAgICAgICAgbG9nb3M6IGxvZ29zTmV1LAogICAgICAgICAgICBsb2dvRGFyc3RlbGx1
bmc6IGRhcnN0ZWxsdW5nTmV1CiAgICAgICAgfTsKICAgICAgICB2YXIgcGxhaW5DaGVjayA9IGVk
aXRvci50ZXh0Q29udGVudC50cmltKCk7CiAgICAgICAgLy8gUGZsaWNodDogRGF0dW0gKyAoVGl0
ZWwgT0RFUiBUZXh0KS4gUmVpbmUgVGl0ZWwtRWludHJhZWdlIHdpZSDigJ5UekYiCiAgICAgICAg
Ly8gZHVlcmZlbiBvaG5lIFRleHQgZ2VzcGVpY2hlcnQgd2VyZGVuLgogICAgICAgIGlmICghZGF0
ZW4uZGF0dW0pIHsgdG9hc3QoJ1N0YXJ0LURhdHVtIGlzdCBQZmxpY2h0ZmVsZCcsICd3YXJudW5n
Jyk7IHJldHVybjsgfQogICAgICAgIGlmICghZGF0ZW4udGl0ZWwgJiYgIXBsYWluQ2hlY2spIHsg
dG9hc3QoJ1RpdGVsIG9kZXIgVGV4dCBtdXNzIGdlZnVlbGx0IHNlaW4nLCAnd2FybnVuZycpOyBy
ZXR1cm47IH0KICAgICAgICBpZiAoZGF0ZW4uZGF0dW1CaXMgJiYgZGF0ZW4uZGF0dW1CaXMgPCBk
YXRlbi5kYXR1bSkgeyB0b2FzdCgnRW5kLURhdHVtIG11c3MgbmFjaCBkZW0gU3RhcnQtRGF0dW0g
bGllZ2VuJywgJ3dhcm51bmcnKTsgcmV0dXJuOyB9CiAgICAgICAgaWYgKGRhdGVuLmRhdHVtQmlz
ID09PSBkYXRlbi5kYXR1bSkgZGF0ZW4uZGF0dW1CaXMgPSAnJzsgLy8gbm9ybWFsaXNpZXJlbjog
Z2xlaWNoID0gbGVlciA9IEVpbnplbHRhZwogICAgICAgIHZhciBsaXN0ZSA9IChaLmFkbWluLnNv
bmRlcnRlcm1pbmUgfHwgW10pLnNsaWNlKCk7CiAgICAgICAgdmFyIGlkeCA9IGxpc3RlLmZpbmRJ
bmRleChmdW5jdGlvbih4KSB7IHJldHVybiB4LmlkID09PSBkYXRlbi5pZDsgfSk7CiAgICAgICAg
aWYgKGlkeCA+PSAwKSBsaXN0ZVtpZHhdID0gZGF0ZW47IGVsc2UgbGlzdGUucHVzaChkYXRlbik7
CiAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluL3NvbmRlcnRlcm1pbmUnLCBsaXN0ZSkudGhlbihm
dW5jdGlvbigpIHsKICAgICAgICAgICAgWi5hZG1pbi5zb25kZXJ0ZXJtaW5lID0gbGlzdGU7CiAg
ICAgICAgICAgIHRhZ0luZm9zQmVyZWNobmVuKCk7CiAgICAgICAgICAgIGtvcGZSZW5kZXJuKCk7
CiAgICAgICAgICAgIHNvbmRlcnRlcm1pbmVSZW5kZXJuKCk7CiAgICAgICAgICAgIGVudHd1cmZM
b2VzY2hlbihzb25kZXJNb2RhbEtleSk7CiAgICAgICAgICAgIG1vZGFsU2NobGllc3Nlbih0cnVl
KTsKICAgICAgICAgICAgdG9hc3QoJ0hpbndlaXMgZ2VzcGVpY2hlcnQnLCAnZXJmb2xnJyk7CiAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdl
LCAnZmVobGVyJyk7IH0pOwogICAgfSk7CiAgICBpZiAodm9yaCkgewogICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzZS1sb2VzY2hlbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGJlc3RhZXRpZ2VuKCdIaW53ZWlzIHdpcmtsaWNoIGzD
tnNjaGVuPycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIGxpc3RlID0gKFouYWRt
aW4uc29uZGVydGVybWluZSB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguaWQg
IT09IHZvcmguaWQ7IH0pOwogICAgICAgICAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWluL3NvbmRl
cnRlcm1pbmUnLCBsaXN0ZSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBa
LmFkbWluLnNvbmRlcnRlcm1pbmUgPSBsaXN0ZTsKICAgICAgICAgICAgICAgICAgICB0YWdJbmZv
c0JlcmVjaG5lbigpOwogICAgICAgICAgICAgICAgICAgIGtvcGZSZW5kZXJuKCk7CiAgICAgICAg
ICAgICAgICAgICAgc29uZGVydGVybWluZVJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICBl
bnR3dXJmTG9lc2NoZW4oc29uZGVyTW9kYWxLZXkpOwogICAgICAgICAgICAgICAgICAgIG1vZGFs
U2NobGllc3Nlbih0cnVlKTsKICAgICAgICAgICAgICAgICAgICB0b2FzdCgnSGlud2VpcyBnZWzD
tnNjaHQnLCAnZXJmb2xnJyk7CiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7
IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgICAg
IH0sICdIaW53ZWlzIGzDtnNjaGVuJyk7CiAgICAgICAgfSk7CiAgICB9Cn0KCi8vID09PT09IE1p
bmltYWxlciBSaWNoLVRleHQtRWRpdG9yOiBqZXR6dCBpbiBqcy91aS9ydGUuanMgPT09PT0KCi8v
ID09PT09IEFkbWluOiBTY2hpY2h0Y29kZS1Wb3JzY2hhdSA9PT09PQoKZXhwb3J0IGZ1bmN0aW9u
IHNjaGljaHRjb2RlS2F0ZWdvcmllKGNvZGUpIHsKICAgIHZhciBjID0gY29kZSB8fCAnJzsKICAg
IC8vIEZyw7xoZGllbnN0OiBGLCBGL0EsIEYvQiwgRi9DLCBGTCAoRnLDvGgtTGFwcGVyKSwgRi1E
R0wsIOKApgogICAgaWYgKC9eRihbLVwvXXxMJHwkKS9pLnRlc3QoYykpIHJldHVybiB7IGtleTog
JzEtZnJ1ZWgnLCBsYWJlbDogJ0Zyw7xoZGllbnN0JyB9OwogICAgLy8gU3DDpHRkaWVuc3Q6IFMs
IFMvQSwgUy9CLCBTL0MsIFNMIChTcMOkdC1MYXBwZXIpLCBTLeKApgogICAgaWYgKC9eUyhbLVwv
XXxMJHwkfEQkKS9pLnRlc3QoYykgJiYgYyAhPT0gJ1NVJyAmJiBjICE9PSAnc0FCVycgJiYgYyAh
PT0gJ1NlbScpIHJldHVybiB7IGtleTogJzItc3BhZXQnLCBsYWJlbDogJ1Nww6R0ZGllbnN0JyB9
OwogICAgLy8gTmFjaHRkaWVuc3Q6IE4sIE4vQSwgTi9CLCBOL0MsIE4t4oCmCiAgICBpZiAoL15O
KFstXC9dfCQpL2kudGVzdChjKSkgcmV0dXJuIHsga2V5OiAnMy1uYWNodCcsIGxhYmVsOiAnTmFj
aHRkaWVuc3QnIH07CiAgICBpZiAoWyd3ZnInLCAnZGZyJywgJ2RmciBuLkEuJywgJ2RmciBVJ10u
aW5kZXhPZihjKSA+PSAwKSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsga2V5OiAnNC1m
cmVpJywgICAgIGxhYmVsOiAnRnJlaScgfTsKICAgIGlmIChbJ1VybCcsICdVJywgJ1NVJ10uaW5k
ZXhPZihjKSA+PSAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4geyBrZXk6ICc1LXVybGF1YicsICAgbGFiZWw6ICdVcmxhdWInIH07CiAgICBpZiAoWydrcics
ICdLJywgJ0t1cicsICdEVScsICdYWFgnLCAnQ29yb25hJywgJ3NBQlcnXS5pbmRleE9mKGMpID49
IDApICAgICAgICAgcmV0dXJuIHsga2V5OiAnNi1hdXNmYWxsJywgIGxhYmVsOiAnS3JhbmtoZWl0
IC8gQXVzZmFsbCcgfTsKICAgIGlmIChbJ0xHJywgJ1NlbScsICdFVE0nLCAnQXVGJywgJ2Fudycs
ICdhbncuJywgJ0ZCJ10uaW5kZXhPZihjKSA+PSAwKSAgICAgICAgICByZXR1cm4geyBrZXk6ICc3
LWZvcnRiaWxkJywgbGFiZWw6ICdGb3J0YmlsZHVuZycgfTsKICAgIGlmIChbJ0FfJywgJ0JfJywg
J0NfJywgJ1onLCAnU0QnLCAnQkFPJywgJ1NFJywgJ0VNU0EnLCAnOGEnLCAnR1QnLCAnYWJnJywg
J2FiZy4nLCAnQVpBJywgJ2FidycsICdzQUJXQicsICfCpzIxJ10uaW5kZXhPZihjKSA+PSAwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBrZXk6ICc4LWVpbnNhdHonLCAgbGFi
ZWw6ICdEaWVuc3RlIC8gRWluc8OkdHplJyB9OwogICAgaWYgKFsnSE8nLCAnVHpGJywgJ0JWJywg
J01EJywgJ0VaJ10uaW5kZXhPZihjKSA+PSAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4geyBrZXk6ICc5LXNvbmRlcmZvcm0nLCBsYWJlbDogJ1NvbmRlcmZvcm1lbicgfTsKICAg
IHJldHVybiB7IGtleTogJzk5LXNvbnN0aWdlcycsIGxhYmVsOiAnU29uc3RpZ2VzJyB9Owp9Cgov
LyBGLjQtQjogV2llIG9mdCB3aXJkIGVpbiBDb2RlIGluIEVpbnRyw6RnZW4gdmVyd2VuZGV0Pwpl
eHBvcnQgZnVuY3Rpb24gc2NoaWNodGNvZGVWZXJ3ZW5kdW5nKGNvZGUpIHsKICAgIHZhciBuID0g
MDsKICAgIHZhciBlaW4gPSBaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9OwogICAgT2JqZWN0Lmtl
eXMoZWluKS5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKICAgICAgICB2YXIgcGVyVGFnID0gZWluW2Rd
IHx8IHt9OwogICAgICAgIE9iamVjdC5rZXlzKHBlclRhZykuZm9yRWFjaChmdW5jdGlvbihwaWQp
IHsKICAgICAgICAgICAgaWYgKHBlclRhZ1twaWRdID09PSBjb2RlKSBuKys7CiAgICAgICAgfSk7
CiAgICB9KTsKICAgIHJldHVybiBuOwp9CgpleHBvcnQgZnVuY3Rpb24gc2NoaWNodGNvZGVWb3Jz
Y2hhdVJlbmRlcm4oKSB7CiAgICB2YXIgbGlzdGUgPSAoWi5hZG1pbi5zY2hpY2h0Y29kZXMgfHwg
W10pLnNsaWNlKCk7CiAgICB2YXIgY29udCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2hp
Y2h0Y29kZS12b3JzY2hhdScpOwogICAgaWYgKCFjb250KSByZXR1cm47CgogICAgLy8gVG9vbGJh
ciBtaXQgR3J1cHBpZXJ1bmdzLVNlbGVjdG9yCiAgICB2YXIgbW9kdXMgPSBsb2NhbFN0b3JhZ2Uu
Z2V0SXRlbSgnc2MtZ3J1cHBlLW1vZHVzJykgfHwgJ2thdGVnb3JpZSc7CiAgICB2YXIgemVpZ2VJ
bmFrdGl2ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NjLXplaWdlLWluYWt0aXYnKSAhPT0gJ2Zh
bHNlJzsKICAgIHZhciBpbmFrdGl2QW56YWhsID0gbGlzdGUuZmlsdGVyKGZ1bmN0aW9uKGMpIHsg
cmV0dXJuIGMuYWt0aXYgPT09IGZhbHNlOyB9KS5sZW5ndGg7CiAgICB2YXIgdG9vbGJhciA9ICc8
ZGl2IGNsYXNzPSJzYy12b3JzY2hhdS10b29sYmFyIj4nICsKICAgICAgICAnPGxhYmVsIGZvcj0i
c2MtbW9kdXMiPkdydXBwaWVydW5nOjwvbGFiZWw+JyArCiAgICAgICAgJzxzZWxlY3QgaWQ9InNj
LW1vZHVzIj4nICsKICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImthdGVnb3JpZSInICsgKG1v
ZHVzID09PSAna2F0ZWdvcmllJyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5OYWNoIFNjaGljaHR0
eXA8L29wdGlvbj4nICsKICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImFscGhhIicgICAgICsg
KG1vZHVzID09PSAnYWxwaGEnICAgICA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5BbHBoYWJldGlz
Y2ggKENvZGUpPC9vcHRpb24+JyArCiAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSJiZXoiJyAg
ICAgICArIChtb2R1cyA9PT0gJ2JleicgICAgICAgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+QWxw
aGFiZXRpc2NoIChCZXplaWNobnVuZyk8L29wdGlvbj4nICsKICAgICAgICAgICAgJzxvcHRpb24g
dmFsdWU9InBvc2l0aW9uIicgICsgKG1vZHVzID09PSAncG9zaXRpb24nICA/ICcgc2VsZWN0ZWQn
IDogJycpICsgJz5NYW51ZWxsZSBSZWloZW5mb2xnZSAoRHJhZyk8L29wdGlvbj4nICsKICAgICAg
ICAgICAgJzxvcHRpb24gdmFsdWU9ImZsYWNoIicgICAgICsgKG1vZHVzID09PSAnZmxhY2gnICAg
ICA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5LZWluZSBHcnVwcGllcnVuZzwvb3B0aW9uPicgKwog
ICAgICAgICc8L3NlbGVjdD4nICsKICAgICAgICAnPGxhYmVsIHN0eWxlPSJtYXJnaW4tbGVmdDox
NHB4O2ZvbnQtc2l6ZToxMXB4O2N1cnNvcjpwb2ludGVyIj48aW5wdXQgdHlwZT0iY2hlY2tib3gi
IGlkPSJzYy16ZWlnZS1pbmFrdGl2IicgKyAoemVpZ2VJbmFrdGl2ID8gJyBjaGVja2VkJyA6ICcn
KSArICcgc3R5bGU9InZlcnRpY2FsLWFsaWduOm1pZGRsZSI+IEluYWt0aXZlIHplaWdlbicgKyAo
aW5ha3RpdkFuemFobCA+IDAgPyAnICgnICsgaW5ha3RpdkFuemFobCArICcpJyA6ICcnKSArICc8
L2xhYmVsPicgKwogICAgICAgICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6dmFy
KC0tdGV4dC1tdXRlZCk7bWFyZ2luLWxlZnQ6YXV0byI+JyArIGxpc3RlLmxlbmd0aCArICcgQ29k
ZXMgZ2VzYW10PC9zcGFuPicgKwogICAgJzwvZGl2Pic7CgogICAgLy8gSW5ha3RpdmUgYXVzYmxl
bmRlbiB3ZW5uIG5pY2h0IGdld8O8bnNjaHQKICAgIGlmICghemVpZ2VJbmFrdGl2KSBsaXN0ZSA9
IGxpc3RlLmZpbHRlcihmdW5jdGlvbihjKSB7IHJldHVybiBjLmFrdGl2ICE9PSBmYWxzZTsgfSk7
CgogICAgZnVuY3Rpb24gdGlsZShzYykgewogICAgICAgIHZhciBpbmFrdGl2ID0gc2MuYWt0aXYg
PT09IGZhbHNlOwogICAgICAgIHZhciB2ZXJ3ID0gc2NoaWNodGNvZGVWZXJ3ZW5kdW5nKHNjLmNv
ZGUpOwogICAgICAgIHZhciB2ZXJ3QmFkZ2UgPSB2ZXJ3ID4gMAogICAgICAgICAgICA/ICc8c3Bh
biBjbGFzcz0ic2MtdmVyd2VuZHVuZy1iYWRnZSIgdGl0bGU9IicgKyB2ZXJ3ICsgJyBFaW50csOk
Z2UgdmVyd2VuZGVuIGRpZXNlbiBDb2RlIj4nICsgdmVydyArICfDlzwvc3Bhbj4nCiAgICAgICAg
ICAgIDogJyc7CiAgICAgICAgdmFyIGluYWt0aXZCYWRnZSA9IGluYWt0aXYgPyAnPHNwYW4gY2xh
c3M9InNjLWluYWt0aXYtYmFkZ2UiIHRpdGxlPSJDb2RlIGlzdCBpbmFrdGl2Ij5pbmFrdGl2PC9z
cGFuPicgOiAnJzsKICAgICAgICB2YXIgbW9kdXMgPSBzYy5mYXJiTW9kdXMgfHwgJ3plbGxlJzsK
ICAgICAgICB2YXIgZmFyYkh0bWwgPSB6ZWxsZUFuemVpZ2VIdG1sKHNjLmt1ZXJ6ZWwgfHwgc2Mu
Y29kZSwgeyBoaW50ZXJncnVuZDogc2MuaGludGVyZ3J1bmQgfHwgJyM4ODgnLCBzY2hyaWZ0OiBz
Yy5zY2hyaWZ0IHx8ICcjZmZmJywgZmFyYk1vZHVzOiBtb2R1cywga3VlcnplbDogc2Mua3Vlcnpl
bCB8fCBzYy5jb2RlIH0pOwogICAgICAgIHZhciBmYXJiZmVsZFN0eWxlID0gKG1vZHVzID09PSAn
emVsbGUnKQogICAgICAgICAgICA/ICdiYWNrZ3JvdW5kOicgKyBlc2NhcGVBdHRyKHNjLmhpbnRl
cmdydW5kIHx8ICcjODg4JykgKyAnO2NvbG9yOicgKyBlc2NhcGVBdHRyKHNjLnNjaHJpZnQgfHwg
JyNmZmYnKQogICAgICAgICAgICA6ICdiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTtjb2xv
cjp2YXIoLS10ZXh0LWhlYWRpbmcpJzsKICAgICAgICB2YXIgbW9kdXNCYWRnZSA9IG1vZHVzICE9
PSAnemVsbGUnCiAgICAgICAgICAgID8gJzxzcGFuIGNsYXNzPSJzYy1tb2R1cy1iYWRnZSIgdGl0
bGU9IkRhcnN0ZWxsdW5nOiAnICsgbW9kdXMgKyAnIj4nICsgbW9kdXMgKyAnPC9zcGFuPicKICAg
ICAgICAgICAgOiAnJzsKICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9InNjaGljaHRjb2RlLWth
cnRlJyArIChpbmFrdGl2ID8gJyBzYy1pbmFrdGl2JyA6ICcnKSArICciIGRhdGEtY29kZT0iJyAr
IGVzY2FwZUF0dHIoc2MuY29kZSkgKyAnIiBkcmFnZ2FibGU9InRydWUiIHN0eWxlPSJiYWNrZ3Jv
dW5kOnZhcigtLWJnLWNhcmQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTtw
b3NpdGlvbjpyZWxhdGl2ZSI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzY2hpY2h0Y29k
ZS1mYXJiZmVsZCIgc3R5bGU9IicgKyBmYXJiZmVsZFN0eWxlICsgJyI+JyArIGZhcmJIdG1sICsg
JzwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBzdHlsZT0iZmxleDoxO21pbi13aWR0aDowIj48
c3Ryb25nPicgKyBlc2NhcGVIVE1MKHNjLmNvZGUpICsgJzwvc3Ryb25nPiAnICsgdmVyd0JhZGdl
ICsgJyAnICsgaW5ha3RpdkJhZGdlICsgJyAnICsgbW9kdXNCYWRnZSArICc8YnI+JyArCiAgICAg
ICAgICAgICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNv
bmRhcnkpIj4nICsgZXNjYXBlSFRNTChzYy5iZXplaWNobnVuZyB8fCAnJykgKyAnPC9zcGFuPjwv
ZGl2PicgKwogICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWlu
IGJ0bi1pY29uIGJ0bi1iZWFyYmVpdGVuIHNjLWVkaXQtYnRuIiBkYXRhLWFrdGlvbj0ic2NoaWNo
dGNvZGUtYmVhcmJlaXRlbiIgZGF0YS1jb2RlPSInICsgZXNjYXBlQXR0cihzYy5jb2RlKSArICci
IHRpdGxlPSJCZWFyYmVpdGVuIj48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvZGl2Pic7CiAg
ICB9CgogICAgdmFyIGJvZHkgPSAnJzsKICAgIGlmIChtb2R1cyA9PT0gJ2FscGhhJykgewogICAg
ICAgIGxpc3RlLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gKGEuY29kZSB8fCAnJykubG9j
YWxlQ29tcGFyZShiLmNvZGUgfHwgJycsICdkZScpOyB9KTsKICAgICAgICBib2R5ID0gJzxkaXYg
Y2xhc3M9InNjLWdydXBwZS1saXN0ZSI+JyArIGxpc3RlLm1hcCh0aWxlKS5qb2luKCcnKSArICc8
L2Rpdj4nOwogICAgfSBlbHNlIGlmIChtb2R1cyA9PT0gJ2JleicpIHsKICAgICAgICBsaXN0ZS5z
b3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIChhLmJlemVpY2hudW5nIHx8ICcnKS5sb2NhbGVD
b21wYXJlKGIuYmV6ZWljaG51bmcgfHwgJycsICdkZScpOyB9KTsKICAgICAgICBib2R5ID0gJzxk
aXYgY2xhc3M9InNjLWdydXBwZS1saXN0ZSBzYy1kbmQtem9uZSI+JyArIGxpc3RlLm1hcCh0aWxl
KS5qb2luKCcnKSArICc8L2Rpdj4nOwogICAgfSBlbHNlIGlmIChtb2R1cyA9PT0gJ2ZsYWNoJykg
ewogICAgICAgIGJvZHkgPSAnPGRpdiBjbGFzcz0ic2MtZ3J1cHBlLWxpc3RlIHNjLWRuZC16b25l
Ij4nICsgbGlzdGUubWFwKHRpbGUpLmpvaW4oJycpICsgJzwvZGl2Pic7CiAgICB9IGVsc2UgaWYg
KG1vZHVzID09PSAncG9zaXRpb24nKSB7CiAgICAgICAgLy8gTWFudWVsbGUgUmVpaGVuZm9sZ2Ug
4oCUIERyYWcgJiBEcm9wIHNvcnRpZXJ0CiAgICAgICAgbGlzdGUuc29ydChmdW5jdGlvbihhLCBi
KSB7IHJldHVybiAoYS5wb3NpdGlvbiB8fCA5OTkpIC0gKGIucG9zaXRpb24gfHwgOTk5KTsgfSk7
CiAgICAgICAgYm9keSA9ICc8ZGl2IGNsYXNzPSJzYy1ncnVwcGUtbGlzdGUgc2MtZG5kLXpvbmUg
c2MtZG5kLWFrdGl2Ij4nICsgbGlzdGUubWFwKHRpbGUpLmpvaW4oJycpICsgJzwvZGl2Pic7CiAg
ICB9IGVsc2UgewogICAgICAgIC8vIE5hY2ggS2F0ZWdvcmllIGdydXBwaWVydAogICAgICAgIHZh
ciBncnVwcGVuID0ge307CiAgICAgICAgbGlzdGUuZm9yRWFjaChmdW5jdGlvbihzYykgewogICAg
ICAgICAgICB2YXIgayA9IHNjaGljaHRjb2RlS2F0ZWdvcmllKHNjLmNvZGUpOwogICAgICAgICAg
ICBpZiAoIWdydXBwZW5bay5rZXldKSBncnVwcGVuW2sua2V5XSA9IHsgbGFiZWw6IGsubGFiZWws
IGl0ZW1zOiBbXSB9OwogICAgICAgICAgICBncnVwcGVuW2sua2V5XS5pdGVtcy5wdXNoKHNjKTsK
ICAgICAgICB9KTsKICAgICAgICBPYmplY3Qua2V5cyhncnVwcGVuKS5zb3J0KCkuZm9yRWFjaChm
dW5jdGlvbihrKSB7CiAgICAgICAgICAgIHZhciBnID0gZ3J1cHBlbltrXTsKICAgICAgICAgICAg
Zy5pdGVtcy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIChhLmNvZGUgfHwgJycpLmxvY2Fs
ZUNvbXBhcmUoYi5jb2RlIHx8ICcnLCAnZGUnKTsgfSk7CiAgICAgICAgICAgIGJvZHkgKz0gJzxk
aXYgY2xhc3M9InNjLWdydXBwZSI+PGRpdiBjbGFzcz0ic2MtZ3J1cHBlLXRpdGVsIj4nICsgZXNj
YXBlSFRNTChnLmxhYmVsKSArICcgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjUwMCI+KCcgKyBn
Lml0ZW1zLmxlbmd0aCArICcpPC9zcGFuPjwvZGl2PicgKwogICAgICAgICAgICAgICAgICAgICc8
ZGl2IGNsYXNzPSJzYy1ncnVwcGUtbGlzdGUiPicgKyBnLml0ZW1zLm1hcCh0aWxlKS5qb2luKCcn
KSArICc8L2Rpdj48L2Rpdj4nOwogICAgICAgIH0pOwogICAgfQoKICAgIGNvbnQuaW5uZXJIVE1M
ID0gdG9vbGJhciArIGJvZHk7CiAgICB2YXIgc2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3NjLW1vZHVzJyk7CiAgICBpZiAoc2VsKSBzZWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NjLWdydXBwZS1tb2R1
cycsIHRoaXMudmFsdWUpOwogICAgICAgIHNjaGljaHRjb2RlVm9yc2NoYXVSZW5kZXJuKCk7CiAg
ICB9KTsKICAgIHZhciBjYkluYWt0aXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2MtemVp
Z2UtaW5ha3RpdicpOwogICAgaWYgKGNiSW5ha3RpdikgY2JJbmFrdGl2LmFkZEV2ZW50TGlzdGVu
ZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdz
Yy16ZWlnZS1pbmFrdGl2JywgdGhpcy5jaGVja2VkID8gJ3RydWUnIDogJ2ZhbHNlJyk7CiAgICAg
ICAgc2NoaWNodGNvZGVWb3JzY2hhdVJlbmRlcm4oKTsKICAgIH0pOwoKICAgIC8vIERyYWcgJiBE
cm9wIE5VUiBpbSBNb2R1cyAicG9zaXRpb24iIOKAlCBzb25zdCBpc3QgZGllIFNvcnRpZXJ1bmcg
YW5kZXJ3ZWl0aWcgYmVzdGltbXQKICAgIGlmIChtb2R1cyA9PT0gJ3Bvc2l0aW9uJykgc2NoaWNo
dGNvZGVEbmRBa3RpdmllcmVuKGNvbnQpOwp9CgpleHBvcnQgZnVuY3Rpb24gc2NoaWNodGNvZGVE
bmRBa3RpdmllcmVuKGNvbnRhaW5lcikgewogICAgdmFyIHpvbmUgPSBjb250YWluZXIucXVlcnlT
ZWxlY3RvcignLnNjLWRuZC16b25lLnNjLWRuZC1ha3RpdicpOwogICAgaWYgKCF6b25lKSByZXR1
cm47CiAgICB2YXIgZHJhZ2dlZENvZGUgPSBudWxsOwogICAgem9uZS5hZGRFdmVudExpc3RlbmVy
KCdkcmFnc3RhcnQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIGsgPSBlLnRhcmdldC5jbG9z
ZXN0KCcuc2NoaWNodGNvZGUta2FydGUnKTsKICAgICAgICBpZiAoIWspIHJldHVybjsKICAgICAg
ICBkcmFnZ2VkQ29kZSA9IGsuZ2V0QXR0cmlidXRlKCdkYXRhLWNvZGUnKTsKICAgICAgICBrLmNs
YXNzTGlzdC5hZGQoJ3NjLWRyYWcnKTsKICAgICAgICBlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxv
d2VkID0gJ21vdmUnOwogICAgICAgIGUuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvc2MtY29k
ZScsIGRyYWdnZWRDb2RlKTsKICAgIH0pOwogICAgem9uZS5hZGRFdmVudExpc3RlbmVyKCdkcmFn
ZW5kJywgZnVuY3Rpb24oZSkgewogICAgICAgIHZhciBrID0gZS50YXJnZXQuY2xvc2VzdCgnLnNj
aGljaHRjb2RlLWthcnRlJyk7CiAgICAgICAgaWYgKGspIGsuY2xhc3NMaXN0LnJlbW92ZSgnc2Mt
ZHJhZycpOwogICAgICAgIHpvbmUucXVlcnlTZWxlY3RvckFsbCgnLnNjLWRyb3Atdm9yJykuZm9y
RWFjaChmdW5jdGlvbih4KSB7IHguY2xhc3NMaXN0LnJlbW92ZSgnc2MtZHJvcC12b3InKTsgfSk7
CiAgICAgICAgZHJhZ2dlZENvZGUgPSBudWxsOwogICAgfSk7CiAgICB6b25lLmFkZEV2ZW50TGlz
dGVuZXIoJ2RyYWdvdmVyJywgZnVuY3Rpb24oZSkgewogICAgICAgIHZhciBrID0gZS50YXJnZXQu
Y2xvc2VzdCgnLnNjaGljaHRjb2RlLWthcnRlJyk7CiAgICAgICAgaWYgKCFrKSByZXR1cm47CiAg
ICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHpvbmUucXVlcnlTZWxlY3RvckFsbCgn
LnNjLWRyb3Atdm9yJykuZm9yRWFjaChmdW5jdGlvbih4KSB7IHguY2xhc3NMaXN0LnJlbW92ZSgn
c2MtZHJvcC12b3InKTsgfSk7CiAgICAgICAgay5jbGFzc0xpc3QuYWRkKCdzYy1kcm9wLXZvcicp
OwogICAgfSk7CiAgICB6b25lLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBmdW5jdGlvbihlKSB7
CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciB6aWVsID0gZS50YXJnZXQu
Y2xvc2VzdCgnLnNjaGljaHRjb2RlLWthcnRlJyk7CiAgICAgICAgaWYgKCF6aWVsIHx8ICFkcmFn
Z2VkQ29kZSkgcmV0dXJuOwogICAgICAgIHZhciB6aWVsQ29kZSA9IHppZWwuZ2V0QXR0cmlidXRl
KCdkYXRhLWNvZGUnKTsKICAgICAgICBpZiAoemllbENvZGUgPT09IGRyYWdnZWRDb2RlKSByZXR1
cm47CiAgICAgICAgLy8gTmV1ZSBSZWloZW5mb2xnZSBpbSBaLVN0YXRlIHBlcnNpc3RpZXJlbgog
ICAgICAgIHZhciBhbHQgPSAoWi5hZG1pbi5zY2hpY2h0Y29kZXMgfHwgW10pLnNsaWNlKCk7CiAg
ICAgICAgdmFyIHNyYyA9IGFsdC5maW5kKGZ1bmN0aW9uKGMpIHsgcmV0dXJuIGMuY29kZSA9PT0g
ZHJhZ2dlZENvZGU7IH0pOwogICAgICAgIHZhciBvaG5lID0gYWx0LmZpbHRlcihmdW5jdGlvbihj
KSB7IHJldHVybiBjLmNvZGUgIT09IGRyYWdnZWRDb2RlOyB9KTsKICAgICAgICB2YXIgemlJID0g
b2huZS5maW5kSW5kZXgoZnVuY3Rpb24oYykgeyByZXR1cm4gYy5jb2RlID09PSB6aWVsQ29kZTsg
fSk7CiAgICAgICAgb2huZS5zcGxpY2UoemlJLCAwLCBzcmMpOwogICAgICAgIG9obmUuZm9yRWFj
aChmdW5jdGlvbihjLCBpKSB7IGMucG9zaXRpb24gPSBpOyB9KTsKICAgICAgICBhcGlQdXQoJy9h
cGkvYWRtaW4nLCBPYmplY3QuYXNzaWduKHt9LCBaLmFkbWluLCB7IHNjaGljaHRjb2Rlczogb2hu
ZSB9KSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgWi5hZG1pbi5zY2hpY2h0Y29kZXMg
PSBvaG5lOwogICAgICAgICAgICBzY2hpY2h0Y29kZVZvcnNjaGF1UmVuZGVybigpOwogICAgICAg
IH0pLmNhdGNoKGZ1bmN0aW9uKGVycikgeyB0b2FzdCgnRmVobGVyOiAnICsgZXJyLm1lc3NhZ2Us
ICdmZWhsZXInKTsgfSk7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHNjaGljaHRjb2RlRWRp
dE1vZGFsWmVpZ2VuKGNvZGVLZXkpIHsKICAgIHZhciB2b3JoID0gY29kZUtleSA/IChaLmFkbWlu
LnNjaGljaHRjb2RlcyB8fCBbXSkuZmluZChmdW5jdGlvbihjKSB7IHJldHVybiBjLmNvZGUgPT09
IGNvZGVLZXk7IH0pIDogbnVsbDsKICAgIHZhciBzYyA9IHZvcmggPyBPYmplY3QuYXNzaWduKHsg
YWt0aXY6IHZvcmguYWt0aXYgIT09IGZhbHNlLCBmYXJiTW9kdXM6IHZvcmguZmFyYk1vZHVzIHx8
ICd6ZWxsZScgfSwgdm9yaCkgOiB7IGNvZGU6ICcnLCBrdWVyemVsOiAnJywgYmV6ZWljaG51bmc6
ICcnLCBoaW50ZXJncnVuZDogJyNCNzFDMUMnLCBzY2hyaWZ0OiAnI0ZGRkZGRicsIGFrdGl2OiB0
cnVlLCBmYXJiTW9kdXM6ICd6ZWxsZScgfTsKICAgIHZhciB2ZXJ3QW56YWhsID0gdm9yaCA/IHNj
aGljaHRjb2RlVmVyd2VuZHVuZyh2b3JoLmNvZGUpIDogMDsKICAgIHZhciBpc3ROZXUgPSAhdm9y
aDsKICAgIHZhciBjb2RlRmVsZFJlYWRPbmx5ID0gIWlzdE5ldSA/ICcgcmVhZG9ubHkgc3R5bGU9
ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO2N1cnNvcjpub3QtYWxsb3dlZCInIDogJyc7
CiAgICB2YXIgY29kZUhpbndlaXMgPSBpc3ROZXUgPyAnPHNtYWxsIHN0eWxlPSJjb2xvcjp2YXIo
LS10ZXh0LW11dGVkKTtmb250LXNpemU6MTFweCI+VGVjaG5pc2NoZXIgU2NobMO8c3NlbCwgbmFj
aCBBbmxhZ2UgbmljaHQgbWVociDDpG5kZXJiYXIuPC9zbWFsbD4nCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiAnPHNtYWxsIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250
LXNpemU6MTFweCI+VGVjaG5pc2NoZXIgU2NobMO8c3NlbCDigJQgbmljaHQgw6RuZGVyYmFyLCBk
YSBtaXQgYmVzdGVoZW5kZW4gRWludHLDpGdlbiB2ZXJrbsO8cGZ0Ljwvc21hbGw+JzsKICAgIHZh
ciBrb2VycGVyID0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1
bW47Z2FwOjEycHgiPicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjEy
cHg7ZmxleC13cmFwOndyYXAiPicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVw
cGUiIHN0eWxlPSJmbGV4OjE7bWluLXdpZHRoOjE0MHB4Ij48bGFiZWw+Q29kZSAoU2NobMO8c3Nl
bCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic2MtY29kZSIgY2xhc3M9ImZvcm0taW5w
dXQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzYy5jb2RlKSArICciIG1heGxlbmd0aD0iMTAiIHBs
YWNlaG9sZGVyPSJ6LkIuIEYtREdMIicgKyBjb2RlRmVsZFJlYWRPbmx5ICsgJz4nICsgY29kZUhp
bndlaXMgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIg
c3R5bGU9ImZsZXg6MTttaW4td2lkdGg6MTQwcHgiPjxsYWJlbD5Lw7xyemVsIChBbnplaWdlKTwv
bGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzYy1rdWVyemVsIiBjbGFzcz0iZm9ybS1pbnB1
dCIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKHNjLmt1ZXJ6ZWwgfHwgJycpICsgJyIgbWF4bGVuZ3Ro
PSIxMCIgcGxhY2Vob2xkZXI9InouQi4gRiI+PHNtYWxsIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0
LW11dGVkKTtmb250LXNpemU6MTFweCI+S3VyemZvcm0gaW4gZGVyIFBsYW51bmdzemVsbGUuIEth
bm4gbWl0IGRlbSBDb2RlIGlkZW50aXNjaCBzZWluLjwvc21hbGw+PC9kaXY+JyArCiAgICAgICAg
JzwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPkJlemVp
Y2hudW5nIChMYW5nbmFtZSk8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic2MtYmV6ZWlj
aG51bmciIGNsYXNzPSJmb3JtLWlucHV0IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc2MuYmV6ZWlj
aG51bmcgfHwgJycpICsgJyIgbWF4bGVuZ3RoPSI2MCIgcGxhY2Vob2xkZXI9InouQi4gRnLDvGhk
aWVuc3QgREdMIj48L2Rpdj4nICsKICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dh
cDoxMnB4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmZsZXgtZW5kIj4nICsKICAgICAgICAg
ICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIiBzdHlsZT0iZmxleDoxO21pbi13aWR0aDoxMzBw
eCI+PGxhYmVsPkhpbnRlcmdydW5kZmFyYmU8L2xhYmVsPjxpbnB1dCB0eXBlPSJjb2xvciIgaWQ9
InNjLWhpbnRlcmdydW5kIiBjbGFzcz0iZm9ybS1pbnB1dCIgdmFsdWU9IicgKyBlc2NhcGVBdHRy
KHNjLmhpbnRlcmdydW5kIHx8ICcjQjcxQzFDJykgKyAnIiBzdHlsZT0iaGVpZ2h0OjM4cHg7cGFk
ZGluZzoycHggNHB4O2N1cnNvcjpwb2ludGVyIj48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9ImZvcm0tZ3J1cHBlIiBzdHlsZT0iZmxleDoxO21pbi13aWR0aDoxMzBweCI+PGxhYmVs
PlNjaHJpZnRmYXJiZTwvbGFiZWw+PGlucHV0IHR5cGU9ImNvbG9yIiBpZD0ic2Mtc2NocmlmdCIg
Y2xhc3M9ImZvcm0taW5wdXQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzYy5zY2hyaWZ0IHx8ICcj
RkZGRkZGJykgKyAnIiBzdHlsZT0iaGVpZ2h0OjM4cHg7cGFkZGluZzoycHggNHB4O2N1cnNvcjpw
b2ludGVyIj48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIiBz
dHlsZT0iZmxleDoxO21pbi13aWR0aDoxNzBweCI+PGxhYmVsPkRhcnN0ZWxsdW5nPC9sYWJlbD4n
ICsKICAgICAgICAgICAgICAgICc8c2VsZWN0IGlkPSJzYy1mYXJibW9kdXMiIGNsYXNzPSJmb3Jt
LWlucHV0IiBzdHlsZT0iaGVpZ2h0OjM4cHgiPicgKwogICAgICAgICAgICAgICAgICAgICc8b3B0
aW9uIHZhbHVlPSJ6ZWxsZSInICsgKHNjLmZhcmJNb2R1cyA9PT0gJ3plbGxlJyA/ICcgc2VsZWN0
ZWQnIDogJycpICsgJz5HYW56ZSBaZWxsZSBlaW5mw6RyYmVuPC9vcHRpb24+JyArCiAgICAgICAg
ICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImJsb2NrIicgKyAoc2MuZmFyYk1vZHVzID09PSAn
YmxvY2snID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPkdyb8OfZXIgQmxvY2sgKGVpbmdlcsO8Y2t0
KTwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSJwaWxsZSIn
ICsgKHNjLmZhcmJNb2R1cyA9PT0gJ3BpbGxlJyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5QaWxs
ZSAocnVuZCk8L29wdGlvbj4nICsKICAgICAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0i
dGV4dCInICArIChzYy5mYXJiTW9kdXMgPT09ICd0ZXh0JyAgPyAnIHNlbGVjdGVkJyA6ICcnKSAr
ICc+TnVyIFRleHQgZWluZsOkcmJlbjwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAgJzwvc2Vs
ZWN0PicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJm
b3JtLWdydXBwZSIgc3R5bGU9ImZsZXg6MTttaW4td2lkdGg6MTcwcHgiPjxsYWJlbD5Wb3JzY2hh
dTwvbGFiZWw+PGRpdiBpZD0ic2Mtdm9yc2NoYXUtemVsbGUiIHN0eWxlPSJkaXNwbGF5OmZsZXg7
YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0OjM4cHg7Ym9y
ZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6NHB4O2JhY2tn
cm91bmQ6dmFyKC0tYmctY2FyZCkiPjwvZGl2PjwvZGl2PicgKwogICAgICAgICc8L2Rpdj4nICsK
ICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiIHN0eWxlPSJtYXJnaW4tdG9wOjZweCI+
JyArCiAgICAgICAgICAgICc8bGFiZWwgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpj
ZW50ZXI7Z2FwOjhweDtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo2MDAiPicgKwogICAgICAg
ICAgICAgICAgJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InNjLWFrdGl2IicgKyAoc2MuYWt0
aXYgIT09IGZhbHNlID8gJyBjaGVja2VkJyA6ICcnKSArICcgc3R5bGU9IndpZHRoOjE2cHg7aGVp
Z2h0OjE2cHg7Y3Vyc29yOnBvaW50ZXIiPicgKwogICAgICAgICAgICAgICAgJzxzcGFuPkNvZGUg
YWt0aXYgKGltIFNjaGljaHQtRWRpdG9yIHfDpGhsYmFyKTwvc3Bhbj4nICsKICAgICAgICAgICAg
JzwvbGFiZWw+JyArCiAgICAgICAgICAgICc8c21hbGwgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQt
bXV0ZWQpO2ZvbnQtc2l6ZToxMXB4O21hcmdpbi1sZWZ0OjI0cHgiPkluYWt0aXZlIENvZGVzIGVy
c2NoZWluZW4gbmljaHQgbWVociBpbSBTY2hpY2h0LUF1c3dhaGwtRHJvcGRvd24uIEJlc3RlaGVu
ZGUgRWludHLDpGdlIG1pdCBkZW0gQ29kZSBibGVpYmVuIHVudmVyw6RuZGVydC4nICsKICAgICAg
ICAgICAgICAgICh2ZXJ3QW56YWhsID4gMCA/ICcgPHN0cm9uZyBzdHlsZT0iY29sb3I6dmFyKC0t
ZmFyYmUtd2FybnVuZywjQjc3OTFGKSI+QWt0dWVsbCAnICsgdmVyd0FuemFobCArICcgRWludHLD
pGdlIG1pdCBkaWVzZW0gQ29kZS48L3N0cm9uZz4nIDogJycpICsKICAgICAgICAgICAgJzwvc21h
bGw+JyArCiAgICAgICAgJzwvZGl2PicgKwogICAgJzwvZGl2Pic7CiAgICB2YXIgZm9vdGVyID0g
KHZvcmggPyAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIiIGlkPSJzYy1sb2VzY2hlbiIg
c3R5bGU9Im1hcmdpbi1yaWdodDphdXRvIj5Mw7ZzY2hlbjwvYnV0dG9uPicgOiAnJykgKwogICAg
ICAgICc8YnV0dG9uIGNsYXNzPSJidG4iIGlkPSJzYy1hYmJyZWNoZW4iPkFiYnJlY2hlbjwvYnV0
dG9uPicgKwogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIGlkPSJzYy1z
cGVpY2hlcm4iPlNwZWljaGVybjwvYnV0dG9uPic7CiAgICBtb2RhbFplaWdlbih2b3JoID8gJ1Nj
aGljaHRjb2RlIGJlYXJiZWl0ZW4nIDogJ05ldWVyIFNjaGljaHRjb2RlJywga29lcnBlciwgZm9v
dGVyLCBudWxsKTsKCiAgICBmdW5jdGlvbiB2b3JzY2hhdVVwZGF0ZSgpIHsKICAgICAgICB2YXIg
aGcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2MtaGludGVyZ3J1bmQnKS52YWx1ZTsKICAg
ICAgICB2YXIgc2YgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Mtc2NocmlmdCcpLnZhbHVl
OwogICAgICAgIHZhciBrdSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYy1rdWVyemVsJyku
dmFsdWUgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLWNvZGUnKS52YWx1ZSB8fCAnVm9y
c2NoYXUnOwogICAgICAgIHZhciBtb2R1cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYy1m
YXJibW9kdXMnKS52YWx1ZSB8fCAnemVsbGUnOwogICAgICAgIHZhciB2ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3NjLXZvcnNjaGF1LXplbGxlJyk7CiAgICAgICAgdi5zdHlsZS5iYWNrZ3Jv
dW5kID0gJyc7IHYuc3R5bGUuY29sb3IgPSAnJzsKICAgICAgICB2LmlubmVySFRNTCA9IHplbGxl
QW56ZWlnZUh0bWwoa3UsIHsgaGludGVyZ3J1bmQ6IGhnLCBzY2hyaWZ0OiBzZiwgZmFyYk1vZHVz
OiBtb2R1cywga3VlcnplbDoga3UgfSk7CiAgICAgICAgaWYgKG1vZHVzID09PSAnemVsbGUnKSB7
IHYuc3R5bGUuYmFja2dyb3VuZCA9IGhnOyB2LnN0eWxlLmNvbG9yID0gc2Y7IH0KICAgIH0KICAg
IFsnc2MtaGludGVyZ3J1bmQnLCdzYy1zY2hyaWZ0Jywnc2Mta3VlcnplbCcsJ3NjLWNvZGUnLCdz
Yy1mYXJibW9kdXMnXS5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CiAgICAgICAgdmFyIGVsID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgICAgIGlmICghZWwpIHJldHVybjsKICAgICAg
ICBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIHZvcnNjaGF1VXBkYXRlKTsKICAgICAgICBl
bC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB2b3JzY2hhdVVwZGF0ZSk7CiAgICB9KTsKICAg
IHZvcnNjaGF1VXBkYXRlKCk7CgogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLWFiYnJl
Y2hlbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgbW9kYWxTY2hsaWVzc2VuKTsKICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYy1zcGVpY2hlcm4nKS5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBha3Rpdk5ldSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzYy1ha3RpdicpLmNoZWNrZWQ7CiAgICAgICAgdmFyIGRhdGVuID0gewogICAg
ICAgICAgICBjb2RlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2MtY29kZScpLnZhbHVlLnRy
aW0oKSwKICAgICAgICAgICAga3VlcnplbDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLWt1
ZXJ6ZWwnKS52YWx1ZS50cmltKCkgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLWNvZGUn
KS52YWx1ZS50cmltKCksCiAgICAgICAgICAgIGJlemVpY2hudW5nOiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc2MtYmV6ZWljaG51bmcnKS52YWx1ZS50cmltKCksCiAgICAgICAgICAgIGhpbnRl
cmdydW5kOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2MtaGludGVyZ3J1bmQnKS52YWx1ZSwK
ICAgICAgICAgICAgc2NocmlmdDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NjLXNjaHJpZnQn
KS52YWx1ZSwKICAgICAgICAgICAgZmFyYk1vZHVzOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c2MtZmFyYm1vZHVzJykudmFsdWUgfHwgJ3plbGxlJywKICAgICAgICAgICAgYWt0aXY6IGFrdGl2
TmV1LAogICAgICAgIH07CiAgICAgICAgLy8gUG9zaXRpb24gw7xiZXJuZWhtZW4sIGZhbGxzIHZv
cmhhbmRlbiDigJQgbmljaHQgdmVyc2VoZW50bGljaCB2ZXJsaWVyZW4KICAgICAgICBpZiAodm9y
aCAmJiB0eXBlb2Ygdm9yaC5wb3NpdGlvbiA9PT0gJ251bWJlcicpIGRhdGVuLnBvc2l0aW9uID0g
dm9yaC5wb3NpdGlvbjsKICAgICAgICBpZiAoIWRhdGVuLmNvZGUpIHsgdG9hc3QoJ0NvZGUgaXN0
IFBmbGljaHRmZWxkJywgJ3dhcm51bmcnKTsgcmV0dXJuOyB9CiAgICAgICAgaWYgKCFkYXRlbi5i
ZXplaWNobnVuZykgeyB0b2FzdCgnQmV6ZWljaG51bmcgaXN0IFBmbGljaHRmZWxkJywgJ3dhcm51
bmcnKTsgcmV0dXJuOyB9CiAgICAgICAgaWYgKGlzdE5ldSAmJiAoWi5hZG1pbi5zY2hpY2h0Y29k
ZXMgfHwgW10pLnNvbWUoZnVuY3Rpb24oYykgeyByZXR1cm4gYy5jb2RlID09PSBkYXRlbi5jb2Rl
OyB9KSkgewogICAgICAgICAgICB0b2FzdCgnQ29kZSDigJ4nICsgZGF0ZW4uY29kZSArICciIGV4
aXN0aWVydCBiZXJlaXRzJywgJ3dhcm51bmcnKTsgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAv
LyBEZWFrdGl2aWVyLURpYWxvZzogd2VubiBkZXIgQ29kZSBpbiBWZXJ3ZW5kdW5nIGlzdCB1bmQg
Z2VyYWRlIGRlYWt0aXZpZXJ0IHdpcmQKICAgICAgICB2YXIgd2lyZERlYWt0aXZpZXJ0ID0gdm9y
aCAmJiB2b3JoLmFrdGl2ICE9PSBmYWxzZSAmJiAhYWt0aXZOZXUgJiYgdmVyd0FuemFobCA+IDA7
CiAgICAgICAgZnVuY3Rpb24gZHVyY2hmdWVocmVuKCkgewogICAgICAgICAgICB2YXIgbGlzdGUg
PSAoWi5hZG1pbi5zY2hpY2h0Y29kZXMgfHwgW10pLnNsaWNlKCk7CiAgICAgICAgICAgIGlmIChp
c3ROZXUpIGxpc3RlLnB1c2goZGF0ZW4pOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
ICAgIHZhciBpZHggPSBsaXN0ZS5maW5kSW5kZXgoZnVuY3Rpb24oYykgeyByZXR1cm4gYy5jb2Rl
ID09PSB2b3JoLmNvZGU7IH0pOwogICAgICAgICAgICAgICAgaWYgKGlkeCA+PSAwKSBsaXN0ZVtp
ZHhdID0gZGF0ZW47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYXBpUHV0KCcvYXBpL2FkbWlu
JywgT2JqZWN0LmFzc2lnbih7fSwgWi5hZG1pbiwgeyBzY2hpY2h0Y29kZXM6IGxpc3RlIH0pKS50
aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgWi5hZG1pbi5zY2hpY2h0Y29kZXMgPSBs
aXN0ZTsKICAgICAgICAgICAgICAgIFouY29kZU1hcCA9IHt9OwogICAgICAgICAgICAgICAgbGlz
dGUuZm9yRWFjaChmdW5jdGlvbihjKSB7IFouY29kZU1hcFtjLmNvZGVdID0geyBoaW50ZXJncnVu
ZDogYy5oaW50ZXJncnVuZCwgc2NocmlmdDogYy5zY2hyaWZ0LCBrdWVyemVsOiBjLmt1ZXJ6ZWwg
fHwgYy5jb2RlLCBmYXJiTW9kdXM6IGMuZmFyYk1vZHVzIHx8ICd6ZWxsZScgfTsgfSk7CiAgICAg
ICAgICAgICAgICBzY2hpY2h0Y29kZVZvcnNjaGF1UmVuZGVybigpOwogICAgICAgICAgICAgICAg
aWYgKHR5cGVvZiBkYXRlbkdyaWRSZW5kZXJuID09PSAnZnVuY3Rpb24nKSBkYXRlbkdyaWRSZW5k
ZXJuKCk7CiAgICAgICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4oKTsKICAgICAgICAgICAgICAg
IHRvYXN0KCdTY2hpY2h0Y29kZSBnZXNwZWljaGVydCcsICdlcmZvbGcnKTsKICAgICAgICAgICAg
fSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVo
bGVyJyk7IH0pOwogICAgICAgIH0KICAgICAgICBpZiAod2lyZERlYWt0aXZpZXJ0KSB7CiAgICAg
ICAgICAgIGJlc3RhZXRpZ2VuKAogICAgICAgICAgICAgICAgJ0NvZGUg4oCeJyArIHZvcmguY29k
ZSArICciIHdpcmQgYXVmIGluYWt0aXYgZ2VzZXR6dCDigJQgZXIgc3RlaHQgaW0gU2NoaWNodC1B
dXN3YWhsLURyb3Bkb3duIG5pY2h0IG1laHIgenVyIFZlcmbDvGd1bmcuICcgKwogICAgICAgICAg
ICAgICAgJ0Jlc3RlaGVuZGUgJyArIHZlcndBbnphaGwgKyAnIEVpbnRyw6RnZSBibGVpYmVuIGVy
aGFsdGVuIHVuZCB3ZXJkZW4gd2VpdGVyaGluIGZhcmJpZyBkYXJnZXN0ZWxsdC4gRm9ydGZhaHJl
bj8nLAogICAgICAgICAgICAgICAgZHVyY2hmdWVocmVuLAogICAgICAgICAgICAgICAgJ0NvZGUg
ZGVha3RpdmllcmVuJwogICAgICAgICAgICApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
IGR1cmNoZnVlaHJlbigpOwogICAgICAgIH0KICAgIH0pOwogICAgaWYgKHZvcmgpIHsKICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2MtbG9lc2NoZW4nKS5hZGRFdmVudExpc3RlbmVy
KCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoIWNvbmZpcm0oJ1NjaGljaHRj
b2RlIOKAnicgKyB2b3JoLmNvZGUgKyAnIiB3aXJrbGljaCBsw7ZzY2hlbj9cblxuQmVzdGVoZW5k
ZSBFaW50csOkZ2UgbWl0IGRpZXNlbSBDb2RlIGJsZWliZW4gaW4gZGVyIFBsYW51bmcgZXJoYWx0
ZW4sIHdlcmRlbiBhYmVyIG9obmUgRmFyYmUgZGFyZ2VzdGVsbHQuJykpIHJldHVybjsKICAgICAg
ICAgICAgdmFyIGxpc3RlID0gKFouYWRtaW4uc2NoaWNodGNvZGVzIHx8IFtdKS5maWx0ZXIoZnVu
Y3Rpb24oYykgeyByZXR1cm4gYy5jb2RlICE9PSB2b3JoLmNvZGU7IH0pOwogICAgICAgICAgICBh
cGlQdXQoJy9hcGkvYWRtaW4nLCBPYmplY3QuYXNzaWduKHt9LCBaLmFkbWluLCB7IHNjaGljaHRj
b2RlczogbGlzdGUgfSkpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBaLmFkbWlu
LnNjaGljaHRjb2RlcyA9IGxpc3RlOwogICAgICAgICAgICAgICAgWi5jb2RlTWFwID0ge307CiAg
ICAgICAgICAgICAgICBsaXN0ZS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsgWi5jb2RlTWFwW2MuY29k
ZV0gPSB7IGhpbnRlcmdydW5kOiBjLmhpbnRlcmdydW5kLCBzY2hyaWZ0OiBjLnNjaHJpZnQsIGt1
ZXJ6ZWw6IGMua3VlcnplbCB8fCBjLmNvZGUsIGZhcmJNb2R1czogYy5mYXJiTW9kdXMgfHwgJ3pl
bGxlJyB9OyB9KTsKICAgICAgICAgICAgICAgIHNjaGljaHRjb2RlVm9yc2NoYXVSZW5kZXJuKCk7
CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRhdGVuR3JpZFJlbmRlcm4gPT09ICdmdW5jdGlv
bicpIGRhdGVuR3JpZFJlbmRlcm4oKTsKICAgICAgICAgICAgICAgIG1vZGFsU2NobGllc3Nlbigp
OwogICAgICAgICAgICAgICAgdG9hc3QoJ1NjaGljaHRjb2RlIGdlbMO2c2NodCcsICdlcmZvbGcn
KTsKICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsg
ZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgICAgIH0pOwogICAgfQp9CgovLyBDb2xsYXBz
aWJsZSBJbmZvLUJsb2NrczogWnVzdGFuZCBpbiBsb2NhbFN0b3JhZ2UKZXhwb3J0IGZ1bmN0aW9u
IGFkbWluSW5mb0luaXQoKSB7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxz
LmFkbWluLWluZm9bZGF0YS1pbmZvLWtleV0nKS5mb3JFYWNoKGZ1bmN0aW9uKGRldCkgewogICAg
ICAgIHZhciBrZXkgPSAnYWRtaW4taW5mby0nICsgZGV0LmdldEF0dHJpYnV0ZSgnZGF0YS1pbmZv
LWtleScpOwogICAgICAgIHZhciBzYXZlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7CiAg
ICAgICAgaWYgKHNhdmVkID09PSAnenUnKSBkZXQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CiAg
ICAgICAgZWxzZSBpZiAoc2F2ZWQgPT09ICdhdWYnKSBkZXQuc2V0QXR0cmlidXRlKCdvcGVuJywg
JycpOwogICAgICAgIGRldC5hZGRFdmVudExpc3RlbmVyKCd0b2dnbGUnLCBmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBkZXQub3BlbiA/ICdhdWYnIDog
J3p1Jyk7CiAgICAgICAgfSk7CiAgICB9KTsKfQoKLy8gPT09PT0gQWRtaW46IFNjaGljaHRmb2xn
ZW4gPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBzY2hpY2h0Zm9sZ2VuUmVuZGVybigpIHsKICAgIHZh
ciBzZiA9IChaLmFkbWluLnNjaGljaHRmb2xnZW4gfHwge30pOwogICAgdmFyIHN0YW5kb3J0ZSA9
IHNmLnN0YW5kb3J0ZSB8fCBbXTsKICAgIHZhciByb3RhdGlvbiA9IHNmLnJvdGF0aW9uIHx8IFsn
QUJDJywgJ0JDQScsICdDQUInXTsKCiAgICBpZiAoIXN0YW5kb3J0ZS5sZW5ndGgpIHsKICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NoaWNodGZvbGdlbi1pbmhhbHQnKS5pbm5lckhU
TUwgPSAnPHAgY2xhc3M9InRleHQtbXV0ZWQiPktlaW5lIFNjaGljaHRmb2xnZW4ga29uZmlndXJp
ZXJ0LjwvcD4nOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICB2YXIgaHRtbCA9ICc8dGFibGUg
Y2xhc3M9ImFkbWluLXRhYmVsbGUiIHN0eWxlPSJtYXgtd2lkdGg6NTAwcHgiPjx0aGVhZD48dHI+
JyArCiAgICAgICAgJzx0aD5TdGFuZG9ydCAoT0UpPC90aD48dGg+Um90YXRpb248L3RoPjwvdHI+
PC90aGVhZD48dGJvZHk+JzsKCiAgICBzdGFuZG9ydGUuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAg
ICAgICAgaHRtbCArPSAnPHRyPjx0ZD48c3Ryb25nPicgKyBlc2NhcGVIVE1MKHMubmFtZSkgKyAn
PC9zdHJvbmc+IDxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+KCcgKyBlc2Nh
cGVIVE1MKHMub2UpICsgJyk8L3NwYW4+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0i
Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2xldHRlci1zcGFjaW5nOjJweCI+JzsKICAgICAgICByb3Rh
dGlvbi5mb3JFYWNoKGZ1bmN0aW9uKHIsIGkpIHsKICAgICAgICAgICAgdmFyIGZhcmJlbiA9IHsg
QTogJ3ZhcigtLWZhcmJlLWZydWVoKScsIEI6ICd2YXIoLS1mYXJiZS1zcGFldCknLCBDOiAndmFy
KC0tZmFyYmUtbmFjaHQpJyB9OwogICAgICAgICAgICBpZiAoaSA+IDApIGh0bWwgKz0gJyAmcmFy
cjsgJzsKICAgICAgICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCByLmxlbmd0aDsgYysrKSB7CiAg
ICAgICAgICAgICAgICB2YXIgY2ggPSByLmNoYXJBdChjKTsKICAgICAgICAgICAgICAgIGh0bWwg
Kz0gJzxzcGFuIHN0eWxlPSJjb2xvcjonICsgKGZhcmJlbltjaF0gfHwgJ2luaGVyaXQnKSArICc7
Zm9udC13ZWlnaHQ6NzAwIj4nICsgY2ggKyAnPC9zcGFuPic7CiAgICAgICAgICAgIH0KICAgICAg
ICB9KTsKICAgICAgICBodG1sICs9ICc8L3RkPjwvdHI+JzsKICAgIH0pOwogICAgaHRtbCArPSAn
PC90Ym9keT48L3RhYmxlPic7CgogICAgaHRtbCArPSAnPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDox
NnB4Ij4nOwogICAgaHRtbCArPSAnPGg0IHN0eWxlPSJmb250LXNpemU6MTNweDtjb2xvcjp2YXIo
LS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luLWJvdHRvbTo4cHgiPkxlZ2VuZGU8L2g0Pic7CiAgICBo
dG1sICs9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjE2cHg7ZmxleC13cmFwOndyYXA7
Zm9udC1zaXplOjEycHgiPic7CiAgICB2YXIgZXJrbCA9IFsKICAgICAgICB7IGNvZGU6ICdBQkMn
LCB0ZXh0OiAnQT1GcsO8aCwgQj1TcMOkdCwgQz1OYWNodCcgfSwKICAgICAgICB7IGNvZGU6ICdC
Q0EnLCB0ZXh0OiAnQj1GcsO8aCwgQz1TcMOkdCwgQT1OYWNodCcgfSwKICAgICAgICB7IGNvZGU6
ICdDQUInLCB0ZXh0OiAnQz1GcsO8aCwgQT1TcMOkdCwgQj1OYWNodCcgfSwKICAgIF07CiAgICBl
cmtsLmZvckVhY2goZnVuY3Rpb24oZSkgewogICAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9ImJh
Y2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1
czo0cHgiPicgKwogICAgICAgICAgICAnPHN0cm9uZz4nICsgZS5jb2RlICsgJzwvc3Ryb25nPiA9
ICcgKyBlLnRleHQgKyAnPC9kaXY+JzsKICAgIH0pOwogICAgaHRtbCArPSAnPC9kaXY+PC9kaXY+
JzsKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NoaWNodGZvbGdlbi1pbmhhbHQnKS5p
bm5lckhUTUwgPSBodG1sOwp9CgovLyA9PT09PSBBZG1pbjogRmVhdHVyZS1Ub2dnbGVzID09PT09
Cgp2YXIgZmVhdHVyZUxhYmVscyA9IHsKICAgIHNjaGljaHRmb2xnZW46IHsgbGFiZWw6ICdTY2hp
Y2h0Zm9sZ2VuLUFuemVpZ2UnLCBiZXNjaHJlaWJ1bmc6ICdaZWlndCBkaWUgU2NoaWNodHJvdGF0
aW9uIHBybyBTdGFuZG9ydCBpbSBIZWFkZXIgYW4nIH0sCiAgICBzdGFlcmtlQW56ZWlnZTogeyBs
YWJlbDogJ1N0w6Rya2UtQW56ZWlnZScsIGJlc2NocmVpYnVuZzogJ0Z8U3xOIEJlc2V0enVuZ3N6
w6RobGVyIHBybyBUYWcgaW0gUGxhbnVuZ3MtSGVhZGVyJyB9LAogICAgcnVoZXplaXRQcnVlZnVu
ZzogeyBsYWJlbDogJ1J1aGV6ZWl0LVByw7xmdW5nJywgYmVzY2hyZWlidW5nOiAnV2FybnVuZyBi
ZWkgPCAxMWggUnVoZXplaXQgendpc2NoZW4gU2NoaWNodGVuJyB9LAogICAgZnJlbWRBZW5kZXJ1
bmdXYXJudW5nOiB7IGxhYmVsOiAnRnJlbWQtw4RuZGVydW5nIFdhcm51bmcnLCBiZXNjaHJlaWJ1
bmc6ICdCZXN0w6R0aWd1bmcgYmVpbSDDhG5kZXJuIGRlciBTY2hpY2h0IGFuZGVyZXIgUGVyc29u
ZW4nIH0sCiAgICB1bnRlcmJlc2V0enVuZ1dhcm51bmc6IHsgbGFiZWw6ICdVbnRlcmJlc2V0enVu
Z3MtV2FybnVuZycsIGJlc2NocmVpYnVuZzogJ0JlaW0gTG9naW4gZsO8ciBER0wvMS5FQi8xLkVC
IFYuL1NVOiBUb2FzdCBtaXQgQW56YWhsIHVudGVyYmVzZXR6dGVyIFRhZ2UgaW4gZGVuIG7DpGNo
c3RlbiA0IFdvY2hlbiArIFNwcnVuZyB6dW0gZXJzdGVuIFRhZycgfSwKICAgIGZhaXJuZXNzQW56
ZWlnZTogeyBsYWJlbDogJ0ZhaXJuZXNzLUFuemVpZ2UnLCBiZXNjaHJlaWJ1bmc6ICdXRS0vRmVp
ZXJ0YWdzLUZhaXJuZXNzIGluIGRlciBTdGF0aXN0aWsnIH0sCiAgICBtdXN0ZXJBbmFseXNlOiB7
IGxhYmVsOiAnTXVzdGVyLUFuYWx5c2UnLCBiZXNjaHJlaWJ1bmc6ICdBdXRvbWF0aXNjaGUgRXJr
ZW5udW5nIHZvbiBBdWZmw6RsbGlna2VpdGVuJyB9LAogICAgYWJ3ZXNlbmhlaXRLYWNoZWxuOiB7
IGxhYmVsOiAnQWJ3ZXNlbmhlaXRzLUthY2hlbG4nLCBiZXNjaHJlaWJ1bmc6ICdLb21wYWt0ZSDD
nGJlcnNpY2h0IHZvbiBLcmFuay9VcmxhdWIvTEcvQVpBJyB9LAogICAgZGV0YWlsVGFiZWxsZTog
eyBsYWJlbDogJ0RldGFpbC1UYWJlbGxlJywgYmVzY2hyZWlidW5nOiAnQXVza2xhcHBiYXJlIMOc
YmVyc2ljaHRzdGFiZWxsZSBwcm8gUGVyc29uJyB9LAp9OwoKZXhwb3J0IGZ1bmN0aW9uIGZlYXR1
cmVzUmVuZGVybigpIHsKICAgIHZhciBmZWF0dXJlcyA9IFouYWRtaW4uZmVhdHVyZXMgfHwge307
CiAgICB2YXIgaHRtbCA9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246
Y29sdW1uO2dhcDo4cHg7bWF4LXdpZHRoOjYwMHB4Ij4nOwoKICAgIE9iamVjdC5rZXlzKGZlYXR1
cmVMYWJlbHMpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgdmFyIGZsID0gZmVhdHVy
ZUxhYmVsc1trZXldOwogICAgICAgIHZhciBha3RpdiA9IGZlYXR1cmVJc3RBa3RpdihrZXkpOwog
ICAgICAgIGh0bWwgKz0gJzxsYWJlbCBjbGFzcz0iZmVhdHVyZS10b2dnbGUtemVpbGUiIHN0eWxl
PSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3BhZGRpbmc6MTBweCAx
NHB4OycgKwogICAgICAgICAgICAnYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkKTtib3JkZXI6MXB4
IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Ym9yZGVyLXJhZGl1czo4cHg7Y3Vyc29yOnBvaW50
ZXIiPicgKwogICAgICAgICAgICAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZmVhdHVy
ZS1jaGVja2JveCIgZGF0YS1mZWF0dXJlPSInICsga2V5ICsgJyInICsgKGFrdGl2ID8gJyBjaGVj
a2VkJyA6ICcnKSArCiAgICAgICAgICAgICcgc3R5bGU9IndpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7
YWNjZW50LWNvbG9yOnZhcigtLWZhcmJlLWVyZm9sZyk7Y3Vyc29yOnBvaW50ZXIiPicgKwogICAg
ICAgICAgICAnPGRpdiBzdHlsZT0iZmxleDoxIj48ZGl2IHN0eWxlPSJmb250LXdlaWdodDo2MDA7
Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKSI+JyArCiAgICAgICAgICAg
IGVzY2FwZUhUTUwoZmwubGFiZWwpICsgJzwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBzdHls
ZT0iZm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPicgKyBlc2NhcGVIVE1M
KGZsLmJlc2NocmVpYnVuZykgKyAnPC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICc8c3BhbiBj
bGFzcz0iZmVhdHVyZS1zdGF0dXMiIHN0eWxlPSJmb250LXNpemU6MTFweDtmb250LXdlaWdodDo2
MDA7cGFkZGluZzozcHggOHB4O2JvcmRlci1yYWRpdXM6MTBweDsnICsKICAgICAgICAgICAgKGFr
dGl2ID8gJ2JhY2tncm91bmQ6cmdiYSgzOSwxMzcsMTA5LDAuMTIpO2NvbG9yOnZhcigtLWZhcmJl
LWVyZm9sZykiPkFOJyA6ICdiYWNrZ3JvdW5kOnJnYmEoMTc2LDU4LDQ2LDAuMSk7Y29sb3I6dmFy
KC0tZmFyYmUtZmVobGVyKSI+QVVTJykgKwogICAgICAgICAgICAnPC9zcGFuPjwvbGFiZWw+JzsK
ICAgIH0pOwoKICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZmVhdHVyZXMtaW5oYWx0JykuaW5uZXJIVE1MID0gaHRtbDsKfQoKdmFyIGZlYXR1cmVEZWZh
dWx0cyA9IHsgZmFpcm5lc3NBbnplaWdlOiBmYWxzZSB9OwpleHBvcnQgZnVuY3Rpb24gZmVhdHVy
ZUlzdEFrdGl2KGtleSkgewogICAgdmFyIGYgPSBaLmFkbWluLmZlYXR1cmVzIHx8IHt9OwogICAg
aWYgKGtleSBpbiBmKSByZXR1cm4gISFmW2tleV07CiAgICByZXR1cm4gZmVhdHVyZURlZmF1bHRz
W2tleV0gIT09IHVuZGVmaW5lZCA/IGZlYXR1cmVEZWZhdWx0c1trZXldIDogdHJ1ZTsKfQoKLy8g
PT09PT0gQWRtaW46IFN1cGVyVXNlci1WZXJ3YWx0dW5nID09PT09CgpleHBvcnQgZnVuY3Rpb24g
c3VwZXJVc2VyUmVuZGVybigpIHsKICAgIHZhciBuYXZCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbmF2LXN1cGVydXNlcicpOwogICAgaWYgKG5hdkJ0bikgbmF2QnRuLnN0eWxlLmRpc3Bs
YXkgPSBaLmlzdFN1cGVyVXNlciA/ICcnIDogJ25vbmUnOwoKICAgIHZhciB0Ym9keSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzdXBlcnVzZXItdGJvZHknKTsKICAgIHZhciBidG5OZXUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXN1cGVydXNlci1uZXUnKTsKICAgIHZhciBidG5T
cGVpY2hlcm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXN1cGVydXNlci1zcGVpY2hl
cm4nKTsKICAgIHZhciBrZWluUmVjaHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VwZXJ1
c2VyLWtlaW4tcmVjaHQnKTsKCiAgICBpZiAoIVouaXN0U3VwZXJVc2VyKSB7CiAgICAgICAgaWYg
KGJ0bk5ldSkgYnRuTmV1LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgaWYgKGJ0blNw
ZWljaGVybikgYnRuU3BlaWNoZXJuLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgaWYg
KGtlaW5SZWNodCkga2VpblJlY2h0LmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNrdCcpOwogICAg
ICAgIGlmICh0Ym9keSkgdGJvZHkuaW5uZXJIVE1MID0gJyc7CiAgICAgICAgcmV0dXJuOwogICAg
fQoKICAgIGlmIChidG5OZXUpIGJ0bk5ldS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICBpZiAoYnRu
U3BlaWNoZXJuKSBidG5TcGVpY2hlcm4uc3R5bGUuZGlzcGxheSA9ICcnOwogICAgaWYgKGtlaW5S
ZWNodCkga2VpblJlY2h0LmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwoKICAgIHZhciBsaXN0
ZSA9IFouYWRtaW4uc3VwZXJVc2VyIHx8IFtdOwogICAgdmFyIGh0bWwgPSAnJzsKICAgIGxpc3Rl
LmZvckVhY2goZnVuY3Rpb24oc3UsIGkpIHsKICAgICAgICBodG1sICs9ICc8dHI+JyArCiAgICAg
ICAgICAgICc8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzdS5u
YW1lIHx8ICcnKSArICciIGRhdGEtaWR4PSInICsgaSArICciIGRhdGEtZmVsZD0ibmFtZSIgY2xh
c3M9InN1cGVydXNlci1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiPjwvdGQ+JyArCiAgICAgICAg
ICAgICc8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzdS5ud0tl
bm51bmcgfHwgJycpICsgJyIgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJud0tlbm51
bmciIGNsYXNzPSJzdXBlcnVzZXItaW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIj48L3RkPicgKwog
ICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIo
c3Uub2UgfHwgJycpICsgJyIgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0YS1mZWxkPSJvZSIgY2xh
c3M9InN1cGVydXNlci1pbnB1dCIgcGxhY2Vob2xkZXI9InouQi4gRkxEIEJvY2h1bSwgTC9WRC1B
UCIgc3R5bGU9IndpZHRoOjEwMCUiPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+PGlucHV0IHR5
cGU9InRleHQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzdS50ZWxlZm9uIHx8ICcnKSArICciIGRh
dGEtaWR4PSInICsgaSArICciIGRhdGEtZmVsZD0idGVsZWZvbiIgY2xhc3M9InN1cGVydXNlci1p
bnB1dCIgcGxhY2Vob2xkZXI9InouQi4gNDUyMCIgc3R5bGU9IndpZHRoOjEwMCUiPjwvdGQ+JyAr
CiAgICAgICAgICAgICc8dGQ+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWtsZWlu
IGJ0bi1sb2VzY2hlbiIgZGF0YS1ha3Rpb249InN1cGVydXNlci1sb2VzY2hlbiIgZGF0YS1pZHg9
IicgKyBpICsgJyIgdGl0bGU9IkzDtnNjaGVuIj4mIzEwMDA1OzwvYnV0dG9uPjwvdGQ+PC90cj4n
OwogICAgfSk7CiAgICB0Ym9keS5pbm5lckhUTUwgPSBodG1sOwp9CgpleHBvcnQgZnVuY3Rpb24g
c3VwZXJVc2VyQXVzVGFiZWxsZUxlc2VuKCkgewogICAgdmFyIGZlbGRlciA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoJy5zdXBlcnVzZXItaW5wdXQnKTsKICAgIHZhciBtYXAgPSB7fTsKICAg
IGZlbGRlci5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsKICAgICAgICB2YXIgaWR4ID0gZi5nZXRBdHRy
aWJ1dGUoJ2RhdGEtaWR4Jyk7CiAgICAgICAgdmFyIGZlbGQgPSBmLmdldEF0dHJpYnV0ZSgnZGF0
YS1mZWxkJyk7CiAgICAgICAgaWYgKCFtYXBbaWR4XSkgbWFwW2lkeF0gPSB7fTsKICAgICAgICBt
YXBbaWR4XVtmZWxkXSA9IGYudmFsdWU7CiAgICB9KTsKICAgIHJldHVybiBPYmplY3QudmFsdWVz
KG1hcCkuZmlsdGVyKGZ1bmN0aW9uKHN1KSB7IHJldHVybiBzdS5uYW1lICYmIHN1Lm53S2VubnVu
ZzsgfSk7Cn0KCgoKLy8gPT09PT0gQWRtaW46IEZhY2hhdWZzaWNodC1WZXJ3YWx0dW5nIChQaGFz
ZSBCKSA9PT09PQovLyBTaWNodGJhciBmdWVyIEFkbWluL1N1cGVyVXNlcjsgYWJlciBudXIgU3Vw
ZXJVc2VyIGRhcmYgQWVuZGVydW5nZW4gc3BlaWNoZXJuLgoKZXhwb3J0IGZ1bmN0aW9uIGZhY2hh
dWZzaWNodFJlbmRlcm4oKSB7CiAgICB2YXIgbmF2QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ25hdi1mYWNoYXVmc2ljaHRlbicpOwogICAgaWYgKG5hdkJ0bikgbmF2QnRuLnN0eWxlLmRp
c3BsYXkgPSAoWi5pc3RBZG1pbiB8fCBaLmlzdFN1cGVyVXNlcikgPyAnJyA6ICdub25lJzsKCiAg
ICB2YXIgdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFjaGF1ZnNpY2h0LXRib2R5
Jyk7CiAgICB2YXIgYnRuTmV1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1mYWNoYXVm
c2ljaHQtbmV1Jyk7CiAgICB2YXIgYnRuU3BlaWNoZXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2J0bi1mYWNoYXVmc2ljaHQtc3BlaWNoZXJuJyk7CiAgICB2YXIga2VpblJlY2h0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZhY2hhdWZzaWNodC1rZWluLXJlY2h0Jyk7CiAgICBpZiAo
IXRib2R5KSByZXR1cm47CgogICAgaWYgKCFaLmlzdFN1cGVyVXNlcikgewogICAgICAgIGlmIChi
dG5OZXUpIGJ0bk5ldS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIGlmIChidG5TcGVp
Y2hlcm4pIGJ0blNwZWljaGVybi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIGlmIChr
ZWluUmVjaHQpIGtlaW5SZWNodC5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsKICAgIH0g
ZWxzZSB7CiAgICAgICAgaWYgKGJ0bk5ldSkgYnRuTmV1LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAg
ICAgICBpZiAoYnRuU3BlaWNoZXJuKSBidG5TcGVpY2hlcm4uc3R5bGUuZGlzcGxheSA9ICcnOwog
ICAgICAgIGlmIChrZWluUmVjaHQpIGtlaW5SZWNodC5jbGFzc0xpc3QuYWRkKCd2ZXJzdGVja3Qn
KTsKICAgIH0KCiAgICB2YXIgbGlzdGUgPSBaLmFkbWluLmZhY2hhdWZzaWNodGVuIHx8IFtdOwog
ICAgdmFyIGh0bWwgPSAnJzsKICAgIGxpc3RlLmZvckVhY2goZnVuY3Rpb24oZmEsIGkpIHsKICAg
ICAgICB2YXIgZGlzYWJsZWQgPSBaLmlzdFN1cGVyVXNlciA/ICcnIDogJyBkaXNhYmxlZCc7CiAg
ICAgICAgaHRtbCArPSAnPHRyPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0
IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoZmEubmFtZSB8fCAnJykgKyAnIiBkYXRhLWlkeD0iJyAr
IGkgKyAnIiBkYXRhLWZlbGQ9Im5hbWUiIGNsYXNzPSJmYWNoYXVmc2ljaHQtaW5wdXQiIHN0eWxl
PSJ3aWR0aDoxMDAlIicgKyBkaXNhYmxlZCArICc+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZD48
aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKGZhLm53S2VubnVuZyB8fCAn
JykgKyAnIiBkYXRhLWlkeD0iJyArIGkgKyAnIiBkYXRhLWZlbGQ9Im53S2VubnVuZyIgY2xhc3M9
ImZhY2hhdWZzaWNodC1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiJyArIGRpc2FibGVkICsgJz48
L3RkPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iJyArIGVz
Y2FwZUF0dHIoZmEuZnVua3Rpb24gfHwgJycpICsgJyIgZGF0YS1pZHg9IicgKyBpICsgJyIgZGF0
YS1mZWxkPSJmdW5rdGlvbiIgY2xhc3M9ImZhY2hhdWZzaWNodC1pbnB1dCIgcGxhY2Vob2xkZXI9
IkRHTCAvIDEuIEVCIiBzdHlsZT0id2lkdGg6MTAwJSInICsgZGlzYWJsZWQgKyAnPjwvdGQ+JyAr
CiAgICAgICAgICAgICc8dGQ+JyArIChaLmlzdFN1cGVyVXNlcgogICAgICAgICAgICAgICAgPyAn
PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWtsZWluIGJ0bi1sb2VzY2hlbiIgZGF0
YS1ha3Rpb249ImZhY2hhdWZzaWNodC1sb2VzY2hlbiIgZGF0YS1pZHg9IicgKyBpICsgJyIgdGl0
bGU9IkxvZXNjaGVuIj4mIzEwMDA1OzwvYnV0dG9uPicKICAgICAgICAgICAgICAgIDogJycpICsg
JzwvdGQ+PC90cj4nOwogICAgfSk7CiAgICB0Ym9keS5pbm5lckhUTUwgPSBodG1sOwp9CgpleHBv
cnQgZnVuY3Rpb24gZmFjaGF1ZnNpY2h0QXVzVGFiZWxsZUxlc2VuKCkgewogICAgdmFyIGZlbGRl
ciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5mYWNoYXVmc2ljaHQtaW5wdXQnKTsKICAg
IHZhciBtYXAgPSB7fTsKICAgIGZlbGRlci5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsKICAgICAgICB2
YXIgaWR4ID0gZi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4Jyk7CiAgICAgICAgdmFyIGZlbGQgPSBm
LmdldEF0dHJpYnV0ZSgnZGF0YS1mZWxkJyk7CiAgICAgICAgaWYgKCFtYXBbaWR4XSkgbWFwW2lk
eF0gPSB7fTsKICAgICAgICBtYXBbaWR4XVtmZWxkXSA9IGYudmFsdWU7CiAgICB9KTsKICAgIHJl
dHVybiBPYmplY3QudmFsdWVzKG1hcCkuZmlsdGVyKGZ1bmN0aW9uKGZhKSB7IHJldHVybiBmYS5u
YW1lICYmIGZhLm53S2VubnVuZzsgfSk7Cn0K
### FILE: js/admin/medien.js | 39393
Ly8gPT09IGFkbWluL21lZGllbi5qcyA9PT0KLy8gTWVkaWVuLVRhYjogVXBsb2FkLCBCZWFyYmVp
dGVuLCBMw7ZzY2hlbiwgVmVyc2NoaWViZW4gKyBLYXRlZ29yaWVuLUNSVUQgbWl0Ci8vIERyYWct
U29ydC4gTUVESUVOX0tBVEVHT1JJRU5fREVGQVVMVFMgc2luZCBkaWUgSW5pdGlhbC1LYXRlZ29y
aWVuICh3ZXJkZW4KLy8gYmVpbSBlcnN0ZW4gUmVuZGVyIGluIGFkbWluLm1lZGllbkthdGVnb3Jp
ZW4gbWlncmllcnQg4oCUIGRhbmFjaCBsZWJ0IGRpZQovLyBXYWhyaGVpdCBkb3J0KS4KCmltcG9y
dCB7IFogfSBmcm9tICcuLi9jb3JlL3N0YXRlLmpzJzsKaW1wb3J0IHsgZXNjYXBlSFRNTCwgZXNj
YXBlQXR0ciB9IGZyb20gJy4uL2NvcmUvdXRpbC5qcyc7CmltcG9ydCB7IGFwaSwgYXBpUG9zdCwg
YXBpUHV0LCBhcGlTYWZlLCBhcGlGZXRjaCB9IGZyb20gJy4uL2NvcmUvYXBpLmpzJzsKaW1wb3J0
IHsgdG9hc3QgfSBmcm9tICcuLi91aS90b2FzdC5qcyc7CmltcG9ydCB7IG1vZGFsWmVpZ2VuLCBt
b2RhbFNjaGxpZXNzZW4sIGJlc3RhZXRpZ2VuIH0gZnJvbSAnLi4vdWkvbW9kYWwuanMnOwoKCi8v
ID09PT09IEFkbWluOiBNZWRpZW4tVmVyd2FsdHVuZyAoVGFiICJNZWRpZW4iKSA9PT09PQoKLy8g
RGVmYXVsdC1LYXRlZ29yaWVuIOKAlCB3ZXJkZW4gYmVpbSBlcnN0ZW4gUmVuZGVyIGluIGFkbWlu
Lm1lZGllbkthdGVnb3JpZW4KLy8gbWlncmllcnQuIERhbmFjaCBpc3QgYWRtaW4ubWVkaWVuS2F0
ZWdvcmllbiBkaWUgU291cmNlLW9mLVRydXRoLCBkZXIgVXNlcgovLyBrYW5uIEthdGVnb3JpZW4g
dW1iZW5lbm5lbiwgYW5sZWdlbiwgbMO2c2NoZW4sIHNvcnRpZXJlbi4KZXhwb3J0IHZhciBNRURJ
RU5fS0FURUdPUklFTl9ERUZBVUxUUyA9IFsKICAgIHsga2V5OiAnZnVzc2JhbGwnLCAgICBsYWJl
bDogJ0Z1w59iYWxsJywgICAgICAgICAgcG9zaXRpb246IDEgfSwKICAgIHsga2V5OiAnc3BvcnQn
LCAgICAgICBsYWJlbDogJ1Nwb3J0JywgICAgICAgICAgICBwb3NpdGlvbjogMiB9LAogICAgeyBr
ZXk6ICd2ZXJzYW1tbHVuZycsIGxhYmVsOiAnVmVyc2FtbWx1bmdlbicsICAgIHBvc2l0aW9uOiAz
IH0sCiAgICB7IGtleTogJ29mZmljZScsICAgICAgbGFiZWw6ICdPZmZpY2UnLCAgICAgICAgICAg
cG9zaXRpb246IDQgfSwKICAgIHsga2V5OiAnaWNvbnMnLCAgICAgICBsYWJlbDogJ0ljb25zJywg
ICAgICAgICAgICBwb3NpdGlvbjogNSB9LAogICAgeyBrZXk6ICdldmVudHMnLCAgICAgIGxhYmVs
OiAnVmVyYW5zdGFsdHVuZ2VuJywgIHBvc2l0aW9uOiA2IH0sCiAgICB7IGtleTogJ3BkZicsICAg
ICAgICAgbGFiZWw6ICdQREYnLCAgICAgICAgICAgICAgcG9zaXRpb246IDcgfSwKICAgIHsga2V5
OiAnYmFvJywgICAgICAgICBsYWJlbDogJ0JBTycsICAgICAgICAgICAgICBwb3NpdGlvbjogOCB9
LAogICAgeyBrZXk6ICdzb25zdGlnZXMnLCAgIGxhYmVsOiAnU29uc3RpZ2VzJywgICAgICAgIHBv
c2l0aW9uOiA5IH0KXTsKCmV4cG9ydCBmdW5jdGlvbiBtZWRpZW5LYXRlZ29yaWVuR2V0KCkgewog
ICAgaWYgKCFaLmFkbWluKSBaLmFkbWluID0ge307CiAgICBpZiAoIUFycmF5LmlzQXJyYXkoWi5h
ZG1pbi5tZWRpZW5LYXRlZ29yaWVuKSB8fCBaLmFkbWluLm1lZGllbkthdGVnb3JpZW4ubGVuZ3Ro
ID09PSAwKSB7CiAgICAgICAgWi5hZG1pbi5tZWRpZW5LYXRlZ29yaWVuID0gTUVESUVOX0tBVEVH
T1JJRU5fREVGQVVMVFMubWFwKGZ1bmN0aW9uKGspIHsKICAgICAgICAgICAgcmV0dXJuIHsga2V5
OiBrLmtleSwgbGFiZWw6IGsubGFiZWwsIHBvc2l0aW9uOiBrLnBvc2l0aW9uIH07CiAgICAgICAg
fSk7CiAgICB9CiAgICAvLyBTdGFiaWxpc2llcmUgUmVpaGVuZm9sZ2U6IGV4cGxpeml0IG5hY2gg
cG9zaXRpb24gc29ydGllcmVuCiAgICBaLmFkbWluLm1lZGllbkthdGVnb3JpZW4uc29ydChmdW5j
dGlvbihhLCBiKSB7CiAgICAgICAgcmV0dXJuIChhLnBvc2l0aW9uIHx8IDApIC0gKGIucG9zaXRp
b24gfHwgMCk7CiAgICB9KTsKICAgIHJldHVybiBaLmFkbWluLm1lZGllbkthdGVnb3JpZW47Cn0K
ZXhwb3J0IGZ1bmN0aW9uIG1lZGllbkthdGVnb3JpZW5TcGVpY2hlcm4oKSB7CiAgICAvLyBQZXJz
aXN0aWVydCBkaWUgYWt0dWVsbGUgTGlzdGUgdmlhIC9hcGkvYWRtaW4vZWluc3RlbGx1bmdlbi1X
aGl0ZWxpc3QKICAgIHJldHVybiBhcGlQdXQoJy9hcGkvYWRtaW4vZWluc3RlbGx1bmdlbicsIHsg
bWVkaWVuS2F0ZWdvcmllbjogWi5hZG1pbi5tZWRpZW5LYXRlZ29yaWVuIH0pOwp9CmV4cG9ydCBm
dW5jdGlvbiBtZWRpZW5LYXRlZ29yaWVMYWJlbChrZXkpIHsKICAgIHZhciBrID0gbWVkaWVuS2F0
ZWdvcmllbkdldCgpLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5rZXkgPT09IGtleTsgfSk7
CiAgICByZXR1cm4gayA/IGsubGFiZWwgOiBrZXk7Cn0KCi8vIEJhY2t3YXJkcy1Db21wYXQg4oCU
IENvZGUgYW4gbWFuY2hlbiBTdGVsbGVuIGxpZXN0IG5vY2ggZGlyZWt0IGF1cyBkZW4KLy8gYWx0
ZW4gS29uc3RhbnRlbi4gV2VyZGVuIGF1cyBtZWRpZW5LYXRlZ29yaWVuR2V0KCkgYWJnZWxlaXRl
dC4KZXhwb3J0IHZhciBNRURJRU5fS0FURUdPUklFTl9MQUJFTCA9IChmdW5jdGlvbigpIHsKICAg
IHZhciBvdXQgPSB7fTsKICAgIE1FRElFTl9LQVRFR09SSUVOX0RFRkFVTFRTLmZvckVhY2goZnVu
Y3Rpb24oaykgeyBvdXRbay5rZXldID0gay5sYWJlbDsgfSk7CiAgICByZXR1cm4gb3V0Owp9KSgp
OwpleHBvcnQgdmFyIE1FRElFTl9LQVRFR09SSUVOX1JFSUhFTkZPTEdFID0gTUVESUVOX0tBVEVH
T1JJRU5fREVGQVVMVFMubWFwKGZ1bmN0aW9uKGspIHsgcmV0dXJuIGsua2V5OyB9KTsKCi8vIChG
csO8aGVyZSBJbmxpbmUtU3lzdGVtLU1lZGllbi1MaXN0ZSDigJQgamV0enQgaW0gU2VydmVyLiBC
bGVpYnQgaGllcgovLyBhbHMgS29tbWVudGFyLCBkYW1pdCBkaWUgSGlzdG9yeSBrbGFyIGlzdDsg
ZGllIEludmVudGFyLURhdGVuIGxlYmVuCi8vIGluIHNlcnZlci5weSBTWVNURU1fTUVESUVOX0lO
VkVOVEFSLikKdmFyIF9TWVNURU1fTUVESUVOX09CU09MRVRfID0gWwogICAgLy8gPT09IEZ1w59i
YWxsIOKAlCBCdW5kZXNsaWdhICsgMi4gTGlnYSBWZXJlaW5zbG9nb3MgPT09CiAgICB7IGlkOiAn
c3lzLWZiLTFmY2hlaWRlbmhlaW0nLCAgICAga2F0ZWdvcmllOiAnZnVzc2JhbGwnLCBiZXplaWNo
bnVuZzogJzEuIEZDIEhlaWRlbmhlaW0nLCAgICAgIHBmYWQ6ICcvaW1hZ2VzL2Z1c3NiYWxsLzEu
X0ZDX0hlaWRlbmhlaW0uc3ZnJyB9LAogICAgeyBpZDogJ3N5cy1mYi0xZmNrb2VsbicsICAgICAg
ICAgIGthdGVnb3JpZTogJ2Z1c3NiYWxsJywgYmV6ZWljaG51bmc6ICcxLiBGQyBLw7ZsbicsICAg
ICAgICAgICAgcGZhZDogJy9pbWFnZXMvZnVzc2JhbGwvMS5fRkNfS29lbG4uc3ZnJyB9LAogICAg
eyBpZDogJ3N5cy1mYi0xZmN1bmlvbmJlcmxpbicsICAgIGthdGVnb3JpZTogJ2Z1c3NiYWxsJywg
YmV6ZWljaG51bmc6ICcxLiBGQyBVbmlvbiBCZXJsaW4nLCAgICBwZmFkOiAnL2ltYWdlcy9mdXNz
YmFsbC8xLl9GQ19Vbmlvbl9CZXJsaW4uc3ZnJyB9LAogICAgeyBpZDogJ3N5cy1mYi0xZnN2bWFp
bnowNScsICAgICAgIGthdGVnb3JpZTogJ2Z1c3NiYWxsJywgYmV6ZWljaG51bmc6ICcxLiBGU1Yg
TWFpbnogMDUnLCAgICAgICBwZmFkOiAnL2ltYWdlcy9mdXNzYmFsbC8xLl9GU1ZfTWFpbnpfMDUu
c3ZnJyB9LAogICAgeyBpZDogJ3N5cy1mYi1iYXllcjA0JywgICAgICAgICAgIGthdGVnb3JpZTog
J2Z1c3NiYWxsJywgYmV6ZWljaG51bmc6ICdCYXllciAwNCBMZXZlcmt1c2VuJywgICBwZmFkOiAn
L2ltYWdlcy9mdXNzYmFsbC9CYXllcl8wNF9MZXZlcmt1c2VuLnN2ZycgfSwKICAgIHsgaWQ6ICdz
eXMtZmItYnZiJywgICAgICAgICAgICAgICBrYXRlZ29yaWU6ICdmdXNzYmFsbCcsIGJlemVpY2hu
dW5nOiAnQm9ydXNzaWEgRG9ydG11bmQnLCAgICAgcGZhZDogJy9pbWFnZXMvZnVzc2JhbGwvQm9y
dXNzaWFfRG9ydG11bmQuc3ZnJyB9LAogICAgeyBpZDogJ3N5cy1mYi1tZ2xhZGJhY2gnLCAgICAg
ICAgIGthdGVnb3JpZTogJ2Z1c3NiYWxsJywgYmV6ZWljaG51bmc6ICdCb3J1c3NpYSBNw7ZuY2hl
bmdsYWRiYWNoJywgcGZhZDogJy9pbWFnZXMvZnVzc2JhbGwvQm9ydXNzaWFfTW9lbmNoZW5nbGFk
YmFjaC5zdmcnIH0sCiAgICB7IGlkOiAnc3lzLWZiLWVpbnRyYWNodCcsICAgICAgICAga2F0ZWdv
cmllOiAnZnVzc2JhbGwnLCBiZXplaWNobnVuZzogJ0VpbnRyYWNodCBGcmFua2Z1cnQnLCAgIHBm
YWQ6ICcvaW1hZ2VzL2Z1c3NiYWxsL0VpbnRyYWNodF9GcmFua2Z1cnQuc3ZnJyB9LAogICAgeyBp
ZDogJ3N5cy1mYi1mY2F1Z3NidXJnJywgICAgICAgIGthdGVnb3JpZTogJ2Z1c3NiYWxsJywgYmV6
ZWljaG51bmc6ICdGQyBBdWdzYnVyZycsICAgICAgICAgICBwZmFkOiAnL2ltYWdlcy9mdXNzYmFs
bC9GQ19BdWdzYnVyZy5wbmcnIH0sCiAgICB7IGlkOiAnc3lzLWZiLWZjYmF5ZXJuJywgICAgICAg
ICAga2F0ZWdvcmllOiAnZnVzc2JhbGwnLCBiZXplaWNobnVuZzogJ0ZDIEJheWVybiBNw7xuY2hl
bicsICAgICBwZmFkOiAnL2ltYWdlcy9mdXNzYmFsbC9GQ19CYXllcm5fTXVlbmNoZW4uc3ZnJyB9
LAogICAgeyBpZDogJ3N5cy1mYi1mY3N0cGF1bGknLCAgICAgICAgIGthdGVnb3JpZTogJ2Z1c3Ni
YWxsJywgYmV6ZWljaG51bmc6ICdGQyBTdC4gUGF1bGknLCAgICAgICAgICBwZmFkOiAnL2ltYWdl
cy9mdXNzYmFsbC9GQ19TdC5fUGF1bGkucG5nJyB9LAogICAgeyBpZDogJ3N5cy1mYi1oc3YnLCAg
ICAgICAgICAgICAgIGthdGVnb3JpZTogJ2Z1c3NiYWxsJywgYmV6ZWljaG51bmc6ICdIYW1idXJn
ZXIgU1YnLCAgICAgICAgICBwZmFkOiAnL2ltYWdlcy9mdXNzYmFsbC9IYW1idXJnZXJfU1Yuc3Zn
JyB9LAogICAgeyBpZDogJ3N5cy1mYi1yYmxlaXB6aWcnLCAgICAgICAgIGthdGVnb3JpZTogJ2Z1
c3NiYWxsJywgYmV6ZWljaG51bmc6ICdSQiBMZWlwemlnJywgICAgICAgICAgICBwZmFkOiAnL2lt
YWdlcy9mdXNzYmFsbC9SQl9MZWlwemlnLnBuZycgfSwKICAgIHsgaWQ6ICdzeXMtZmItc2NmcmVp
YnVyZycsICAgICAgICBrYXRlZ29yaWU6ICdmdXNzYmFsbCcsIGJlemVpY2hudW5nOiAnU0MgRnJl
aWJ1cmcnLCAgICAgICAgICAgcGZhZDogJy9pbWFnZXMvZnVzc2JhbGwvU0NfRnJlaWJ1cmcucG5n
JyB9LAogICAgeyBpZDogJ3N5cy1mYi13ZXJkZXInLCAgICAgICAgICAgIGthdGVnb3JpZTogJ2Z1
c3NiYWxsJywgYmV6ZWljaG51bmc6ICdTViBXZXJkZXIgQnJlbWVuJywgICAgICBwZmFkOiAnL2lt
YWdlcy9mdXNzYmFsbC9TVl9XZXJkZXJfQnJlbWVuLnN2ZycgfSwKICAgIHsgaWQ6ICdzeXMtZmIt
dHNnaG9mZmVuaGVpbScsICAgICBrYXRlZ29yaWU6ICdmdXNzYmFsbCcsIGJlemVpY2hudW5nOiAn
VFNHIEhvZmZlbmhlaW0nLCAgICAgICAgcGZhZDogJy9pbWFnZXMvZnVzc2JhbGwvVFNHX0hvZmZl
bmhlaW0ucG5nJyB9LAogICAgeyBpZDogJ3N5cy1mYi12ZmJzdHV0dGdhcnQnLCAgICAgIGthdGVn
b3JpZTogJ2Z1c3NiYWxsJywgYmV6ZWljaG51bmc6ICdWZkIgU3R1dHRnYXJ0JywgICAgICAgICBw
ZmFkOiAnL2ltYWdlcy9mdXNzYmFsbC9WZkJfU3R1dHRnYXJ0LnN2ZycgfSwKICAgIHsgaWQ6ICdz
eXMtZmItdmZsd29sZnNidXJnJywgICAgICBrYXRlZ29yaWU6ICdmdXNzYmFsbCcsIGJlemVpY2hu
dW5nOiAnVmZMIFdvbGZzYnVyZycsICAgICAgICAgcGZhZDogJy9pbWFnZXMvZnVzc2JhbGwvVmZM
X1dvbGZzYnVyZy5zdmcnIH0sCgogICAgLy8gPT09IFNwb3J0IOKAlCBTcG9ydC1TeW1ib2xlID09
PQogICAgeyBpZDogJ3N5cy1zcG9ydC1mb290YmFsbCcsICAgICAgIGthdGVnb3JpZTogJ3Nwb3J0
JywgICAgYmV6ZWljaG51bmc6ICdGdcOfYmFsbC1TeW1ib2wnLCAgICAgICAgcGZhZDogJy9pbWFn
ZXMvc3BvcnQvZm9vdGJhbGwuc3ZnJyB9LAogICAgeyBpZDogJ3N5cy1zcG9ydC1oYW5kYmFsbCcs
ICAgICAgIGthdGVnb3JpZTogJ3Nwb3J0JywgICAgYmV6ZWljaG51bmc6ICdIYW5kYmFsbC1TeW1i
b2wnLCAgICAgICBwZmFkOiAnL2ltYWdlcy9zcG9ydC9oYW5kYmFsbC5zdmcnIH0sCiAgICB7IGlk
OiAnc3lzLXNwb3J0LWplcnNleScsICAgICAgICAga2F0ZWdvcmllOiAnc3BvcnQnLCAgICBiZXpl
aWNobnVuZzogJ1RyaWtvdCcsICAgICAgICAgICAgICAgIHBmYWQ6ICcvaW1hZ2VzL3Nwb3J0L2pl
cnNleS5zdmcnIH0sCiAgICB7IGlkOiAnc3lzLXNwb3J0LW1lZGljJywgICAgICAgICAga2F0ZWdv
cmllOiAnc3BvcnQnLCAgICBiZXplaWNobnVuZzogJ1Nwb3J0LVNhbml0w6R0ZXInLCAgICAgICBw
ZmFkOiAnL2ltYWdlcy9zcG9ydC9tZWRpYy1zcG9ydC5zdmcnIH0sCiAgICB7IGlkOiAnc3lzLXNw
b3J0LXJ1bm5pbmcnLCAgICAgICAga2F0ZWdvcmllOiAnc3BvcnQnLCAgICBiZXplaWNobnVuZzog
J0xhdWYgLyBKb2dnZW4nLCAgICAgICAgIHBmYWQ6ICcvaW1hZ2VzL3Nwb3J0L3J1bm5pbmcuc3Zn
JyB9LAogICAgeyBpZDogJ3N5cy1zcG9ydC1zY29yZWJvYXJkJywgICAgIGthdGVnb3JpZTogJ3Nw
b3J0JywgICAgYmV6ZWljaG51bmc6ICdBbnplaWdldGFmZWwnLCAgICAgICAgICBwZmFkOiAnL2lt
YWdlcy9zcG9ydC9zY29yZWJvYXJkLnN2ZycgfSwKICAgIHsgaWQ6ICdzeXMtc3BvcnQtc3RvcHdh
dGNoJywgICAgICBrYXRlZ29yaWU6ICdzcG9ydCcsICAgIGJlemVpY2hudW5nOiAnU3RvcHB1aHIn
LCAgICAgICAgICAgICAgcGZhZDogJy9pbWFnZXMvc3BvcnQvc3RvcHdhdGNoLnN2ZycgfSwKICAg
IHsgaWQ6ICdzeXMtc3BvcnQtdHJvcGh5JywgICAgICAgICBrYXRlZ29yaWU6ICdzcG9ydCcsICAg
IGJlemVpY2hudW5nOiAnUG9rYWwnLCAgICAgICAgICAgICAgICAgcGZhZDogJy9pbWFnZXMvc3Bv
cnQvdHJvcGh5LnN2ZycgfSwKICAgIHsgaWQ6ICdzeXMtc3BvcnQtd2hpc3RsZScsICAgICAgICBr
YXRlZ29yaWU6ICdzcG9ydCcsICAgIGJlemVpY2hudW5nOiAnVHJpbGxlcnBmZWlmZScsICAgICAg
ICAgcGZhZDogJy9pbWFnZXMvc3BvcnQvd2hpc3RsZS5zdmcnIH0sCgogICAgLy8gPT09IFZlcnNh
bW1sdW5nICYgRXZlbnRzIOKAlCBWZXJhbnN0YWx0dW5ncy1TeW1ib2xlID09PQogICAgeyBpZDog
J3N5cy12ZXJzLWFsZXJ0JywgICAgICAgICAgIGthdGVnb3JpZTogJ3ZlcnNhbW1sdW5nJywgYmV6
ZWljaG51bmc6ICdXYXJudW5nIC8gQWxlcnQnLCAgICAgcGZhZDogJy9pbWFnZXMvdmVyc2FtbWx1
bmcvYWxlcnQtdHJpYW5nbGUuc3ZnJyB9LAogICAgeyBpZDogJ3N5cy12ZXJzLWNhbGVuZGFyJywg
ICAgICAgIGthdGVnb3JpZTogJ3ZlcnNhbW1sdW5nJywgYmV6ZWljaG51bmc6ICdUZXJtaW4tS2Fs
ZW5kZXInLCAgICAgcGZhZDogJy9pbWFnZXMvdmVyc2FtbWx1bmcvY2FsZW5kYXItZXZlbnQuc3Zn
JyB9LAogICAgeyBpZDogJ3N5cy12ZXJzLWNsaXBib2FyZCcsICAgICAgIGthdGVnb3JpZTogJ3Zl
cnNhbW1sdW5nJywgYmV6ZWljaG51bmc6ICdLbGVtbWJyZXR0IChDaGVjayknLCAgcGZhZDogJy9p
bWFnZXMvdmVyc2FtbWx1bmcvY2xpcGJvYXJkLWNoZWNrLnN2ZycgfSwKICAgIHsgaWQ6ICdzeXMt
dmVycy1oYW5kc2hha2UnLCAgICAgICBrYXRlZ29yaWU6ICd2ZXJzYW1tbHVuZycsIGJlemVpY2hu
dW5nOiAnSGFuZHNjaGxhZycsICAgICAgICAgIHBmYWQ6ICcvaW1hZ2VzL3ZlcnNhbW1sdW5nL2hh
bmRzaGFrZS5zdmcnIH0sCiAgICB7IGlkOiAnc3lzLXZlcnMtaW5mbycsICAgICAgICAgICAga2F0
ZWdvcmllOiAndmVyc2FtbWx1bmcnLCBiZXplaWNobnVuZzogJ0luZm8tS3JlaXMnLCAgICAgICAg
ICBwZmFkOiAnL2ltYWdlcy92ZXJzYW1tbHVuZy9pbmZvLWNpcmNsZS5zdmcnIH0sCiAgICB7IGlk
OiAnc3lzLXZlcnMtbWFwcGluJywgICAgICAgICAga2F0ZWdvcmllOiAndmVyc2FtbWx1bmcnLCBi
ZXplaWNobnVuZzogJ0thcnRlbi1QaW4nLCAgICAgICAgICBwZmFkOiAnL2ltYWdlcy92ZXJzYW1t
bHVuZy9tYXAtcGluLnN2ZycgfSwKICAgIHsgaWQ6ICdzeXMtdmVycy1tZWdhcGhvbmUnLCAgICAg
ICBrYXRlZ29yaWU6ICd2ZXJzYW1tbHVuZycsIGJlemVpY2hudW5nOiAnTWVnYWZvbicsICAgICAg
ICAgICAgIHBmYWQ6ICcvaW1hZ2VzL3ZlcnNhbW1sdW5nL21lZ2FwaG9uZS5zdmcnIH0sCiAgICB7
IGlkOiAnc3lzLXZlcnMtcG9kaXVtJywgICAgICAgICAga2F0ZWdvcmllOiAndmVyc2FtbWx1bmcn
LCBiZXplaWNobnVuZzogJ1BvZGl1bSAvIFJlZGUnLCAgICAgICBwZmFkOiAnL2ltYWdlcy92ZXJz
YW1tbHVuZy9wb2RpdW0uc3ZnJyB9LAogICAgeyBpZDogJ3N5cy12ZXJzLXByZXNlbnRhdGlvbics
ICAgIGthdGVnb3JpZTogJ3ZlcnNhbW1sdW5nJywgYmV6ZWljaG51bmc6ICdQcsOkc2VudGF0aW9u
JywgICAgICAgIHBmYWQ6ICcvaW1hZ2VzL3ZlcnNhbW1sdW5nL3ByZXNlbnRhdGlvbi5zdmcnIH0s
CiAgICB7IGlkOiAnc3lzLXZlcnMtdXNlcnMnLCAgICAgICAgICAga2F0ZWdvcmllOiAndmVyc2Ft
bWx1bmcnLCBiZXplaWNobnVuZzogJ1BlcnNvbmVuZ3J1cHBlJywgICAgICBwZmFkOiAnL2ltYWdl
cy92ZXJzYW1tbHVuZy91c2Vycy5zdmcnIH0sCgogICAgLy8gPT09IE9mZmljZSDigJQgQsO8cm8t
U3ltYm9sZSA9PT0KICAgIHsgaWQ6ICdzeXMtb2ZmaWNlLWFyY2hpdmVib3gnLCAgICBrYXRlZ29y
aWU6ICdvZmZpY2UnLCAgIGJlemVpY2hudW5nOiAnQXJjaGl2Ym94JywgICAgICAgICAgICAgcGZh
ZDogJy9pbWFnZXMvb2ZmaWNlL2FyY2hpdmUtYm94LnN2ZycgfSwKICAgIHsgaWQ6ICdzeXMtb2Zm
aWNlLWJyaWVmY2FzZScsICAgICBrYXRlZ29yaWU6ICdvZmZpY2UnLCAgIGJlemVpY2hudW5nOiAn
QWt0ZW50YXNjaGUnLCAgICAgICAgICAgcGZhZDogJy9pbWFnZXMvb2ZmaWNlL2JyaWVmY2FzZS5z
dmcnIH0sCiAgICB7IGlkOiAnc3lzLW9mZmljZS1jaGFydCcsICAgICAgICAga2F0ZWdvcmllOiAn
b2ZmaWNlJywgICBiZXplaWNobnVuZzogJ0RpYWdyYW1tJywgICAgICAgICAgICAgIHBmYWQ6ICcv
aW1hZ2VzL29mZmljZS9jaGFydC5zdmcnIH0sCiAgICB7IGlkOiAnc3lzLW9mZmljZS1jb2ZmZWUn
LCAgICAgICAga2F0ZWdvcmllOiAnb2ZmaWNlJywgICBiZXplaWNobnVuZzogJ0thZmZlZScsICAg
ICAgICAgICAgICAgIHBmYWQ6ICcvaW1hZ2VzL29mZmljZS9jb2ZmZWUuc3ZnJyB9LAogICAgeyBp
ZDogJ3N5cy1vZmZpY2UtZG9jdW1lbnQnLCAgICAgIGthdGVnb3JpZTogJ29mZmljZScsICAgYmV6
ZWljaG51bmc6ICdEb2t1bWVudCcsICAgICAgICAgICAgICBwZmFkOiAnL2ltYWdlcy9vZmZpY2Uv
ZG9jdW1lbnQuc3ZnJyB9LAogICAgeyBpZDogJ3N5cy1vZmZpY2UtZW52ZWxvcGUnLCAgICAgIGth
dGVnb3JpZTogJ29mZmljZScsICAgYmV6ZWljaG51bmc6ICdCcmllZnVtc2NobGFnJywgICAgICAg
ICBwZmFkOiAnL2ltYWdlcy9vZmZpY2UvZW52ZWxvcGUuc3ZnJyB9LAogICAgeyBpZDogJ3N5cy1v
ZmZpY2UtZm9sZGVyJywgICAgICAgIGthdGVnb3JpZTogJ29mZmljZScsICAgYmV6ZWljaG51bmc6
ICdPcmRuZXInLCAgICAgICAgICAgICAgICBwZmFkOiAnL2ltYWdlcy9vZmZpY2UvZm9sZGVyLnN2
ZycgfSwKICAgIHsgaWQ6ICdzeXMtb2ZmaWNlLWxhcHRvcCcsICAgICAgICBrYXRlZ29yaWU6ICdv
ZmZpY2UnLCAgIGJlemVpY2hudW5nOiAnTGFwdG9wJywgICAgICAgICAgICAgICAgcGZhZDogJy9p
bWFnZXMvb2ZmaWNlL2xhcHRvcC5zdmcnIH0sCiAgICB7IGlkOiAnc3lzLW9mZmljZS1vZmZpY2Vi
dWlsZGluZycsa2F0ZWdvcmllOiAnb2ZmaWNlJywgICBiZXplaWNobnVuZzogJ0LDvHJvZ2Viw6R1
ZGUnLCAgICAgICAgICAgcGZhZDogJy9pbWFnZXMvb2ZmaWNlL29mZmljZS1idWlsZGluZy5zdmcn
IH0sCiAgICB7IGlkOiAnc3lzLW9mZmljZS1waG9uZScsICAgICAgICAga2F0ZWdvcmllOiAnb2Zm
aWNlJywgICBiZXplaWNobnVuZzogJ1RlbGVmb24nLCAgICAgICAgICAgICAgIHBmYWQ6ICcvaW1h
Z2VzL29mZmljZS9waG9uZS5zdmcnIH0sCiAgICB7IGlkOiAnc3lzLW9mZmljZS1wcmludGVyJywg
ICAgICAga2F0ZWdvcmllOiAnb2ZmaWNlJywgICBiZXplaWNobnVuZzogJ0RydWNrZXInLCAgICAg
ICAgICAgICAgIHBmYWQ6ICcvaW1hZ2VzL29mZmljZS9wcmludGVyLnN2ZycgfSwKCiAgICAvLyA9
PT0gSWNvbnMg4oCUIEFsbGdlbWVpbmUgU3ltYm9sZSAoUE5HKSA9PT0KICAgIHsgaWQ6ICdzeXMt
aWNvbi1iYWdnZXInLCAgICAgICAgICBrYXRlZ29yaWU6ICdpY29ucycsICAgIGJlemVpY2hudW5n
OiAnQmFnZ2VyJywgICAgICAgICAgICAgICAgcGZhZDogJy9pbWFnZXMvaWNvbnMvYmFnZ2VyLnBu
ZycgfSwKICAgIHsgaWQ6ICdzeXMtaWNvbi1mYWhycmFkJywgICAgICAgICBrYXRlZ29yaWU6ICdp
Y29ucycsICAgIGJlemVpY2hudW5nOiAnRmFocnJhZCcsICAgICAgICAgICAgICAgcGZhZDogJy9p
bWFnZXMvaWNvbnMvZmFocnJhZC5wbmcnIH0sCiAgICB7IGlkOiAnc3lzLWljb24tZmx1Z3pldWcn
LCAgICAgICAga2F0ZWdvcmllOiAnaWNvbnMnLCAgICBiZXplaWNobnVuZzogJ0ZsdWd6ZXVnJywg
ICAgICAgICAgICAgIHBmYWQ6ICcvaW1hZ2VzL2ljb25zL2ZsdWd6ZXVnLnBuZycgfSwKICAgIHsg
aWQ6ICdzeXMtaWNvbi1nbHVlaGJpcm5lJywgICAgICBrYXRlZ29yaWU6ICdpY29ucycsICAgIGJl
emVpY2hudW5nOiAnR2zDvGhiaXJuZSAvIElkZWUnLCAgICAgIHBmYWQ6ICcvaW1hZ2VzL2ljb25z
L2dsdWVoYmlybmUucG5nJyB9LAogICAgeyBpZDogJ3N5cy1pY29uLWtvbnplcHQnLCAgICAgICAg
IGthdGVnb3JpZTogJ2ljb25zJywgICAgYmV6ZWljaG51bmc6ICdLb256ZXB0JywgICAgICAgICAg
ICAgICBwZmFkOiAnL2ltYWdlcy9pY29ucy9rb256ZXB0LnBuZycgfSwKICAgIHsgaWQ6ICdzeXMt
aWNvbi1ub3RpeicsICAgICAgICAgICBrYXRlZ29yaWU6ICdpY29ucycsICAgIGJlemVpY2hudW5n
OiAnTm90aXonLCAgICAgICAgICAgICAgICAgcGZhZDogJy9pbWFnZXMvaWNvbnMvbm90aXoucG5n
JyB9LAogICAgeyBpZDogJ3N5cy1pY29uLW9yZ2FuaWdyYW1tJywgICAgIGthdGVnb3JpZTogJ2lj
b25zJywgICAgYmV6ZWljaG51bmc6ICdPcmdhbmlncmFtbScsICAgICAgICAgICBwZmFkOiAnL2lt
YWdlcy9pY29ucy9vcmdhbmlncmFtbS5wbmcnIH0sCiAgICB7IGlkOiAnc3lzLWljb24tdGFzY2hl
bnJlY2huZXInLCAga2F0ZWdvcmllOiAnaWNvbnMnLCAgICBiZXplaWNobnVuZzogJ1Rhc2NoZW5y
ZWNobmVyJywgICAgICAgIHBmYWQ6ICcvaW1hZ2VzL2ljb25zL3Rhc2NoZW5yZWNobmVyLnBuZycg
fSwKICAgIHsgaWQ6ICdzeXMtaWNvbi10ZWFtJywgICAgICAgICAgICBrYXRlZ29yaWU6ICdpY29u
cycsICAgIGJlemVpY2hudW5nOiAnVGVhbScsICAgICAgICAgICAgICAgICAgcGZhZDogJy9pbWFn
ZXMvaWNvbnMvdGVhbS5wbmcnIH0sCiAgICB7IGlkOiAnc3lzLWljb24tdGVybWlud2FybnVuZycs
ICAga2F0ZWdvcmllOiAnaWNvbnMnLCAgICBiZXplaWNobnVuZzogJ1Rlcm1pbi1XYXJudW5nJywg
ICAgICAgIHBmYWQ6ICcvaW1hZ2VzL2ljb25zL3Rlcm1pbi13YXJudW5nLnBuZycgfSwKICAgIHsg
aWQ6ICdzeXMtaWNvbi10cmlhdGhsb24nLCAgICAgICBrYXRlZ29yaWU6ICdpY29ucycsICAgIGJl
emVpY2hudW5nOiAnVHJpYXRobG9uJywgICAgICAgICAgICAgcGZhZDogJy9pbWFnZXMvaWNvbnMv
dHJpYXRobG9uLnBuZycgfSwKICAgIHsgaWQ6ICdzeXMtaWNvbi11cmt1bmRlJywgICAgICAgICBr
YXRlZ29yaWU6ICdpY29ucycsICAgIGJlemVpY2hudW5nOiAnVXJrdW5kZScsICAgICAgICAgICAg
ICAgcGZhZDogJy9pbWFnZXMvaWNvbnMvdXJrdW5kZS5wbmcnIH0sCiAgICB7IGlkOiAnc3lzLWlj
b24tdmVyZ2xlaWNoJywgICAgICAga2F0ZWdvcmllOiAnaWNvbnMnLCAgICBiZXplaWNobnVuZzog
J1ZlcmdsZWljaCcsICAgICAgICAgICAgIHBmYWQ6ICcvaW1hZ2VzL2ljb25zL3ZlcmdsZWljaC5w
bmcnIH0KXTsKdm9pZCBfU1lTVEVNX01FRElFTl9PQlNPTEVUXzsKCmV4cG9ydCBmdW5jdGlvbiBt
ZWRpZW5MYWRlbigpIHsKICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVk
aWVuLWFra29yZGVvbicpOwogICAgaWYgKCFib3gpIHJldHVybjsKICAgIGJveC5pbm5lckhUTUwg
PSAnPGRpdiBjbGFzcz0ibWVkaWVuLWdyaWQgbWVkaWVuLWdyaWQtbGVlciI+TGFkZSBNZWRpZW7i
gKY8L2Rpdj4nOwogICAgYXBpKCcvYXBpL21lZGllbicpLnRoZW4oZnVuY3Rpb24oZGF0ZW4pIHsK
ICAgICAgICAvLyBTZXJ2ZXIgaW1wb3J0aWVydCBkaWUgU3lzdGVtLUJpbGRlciBiZWltIGVyc3Rl
biBHRVQgZWlubWFsaWcKICAgICAgICAvLyBhdXRvbWF0aXNjaCBpbiBtZWRpZW4uanNvbiDigJQg
c2llIGtvbW1lbiBqZXR6dCBtaXRzYW10IGRlbgogICAgICAgIC8vIFVzZXItVXBsb2FkcyB6dXLD
vGNrIHVuZCBzaW5kIHZvbGwgZWRpdGllcmJhci4KICAgICAgICBaLm1lZGllbiA9IChkYXRlbiAm
JiBkYXRlbi5tZWRpZW4pID8gZGF0ZW4ubWVkaWVuIDogW107CiAgICAgICAgbWVkaWVuUmVuZGVy
bigpOwogICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgIGJveC5pbm5lckhUTUwgPSAn
PGRpdiBjbGFzcz0ibWVkaWVuLWdyaWQgbWVkaWVuLWdyaWQtbGVlciI+RmVobGVyOiAnICsgZXNj
YXBlSFRNTChlLm1lc3NhZ2UpICsgJzwvZGl2Pic7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9u
IG1lZGllblJlbmRlcm4oKSB7CiAgICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J21lZGllbi1ha2tvcmRlb24nKTsKICAgIGlmICghYm94KSByZXR1cm47CiAgICB2YXIgbGlzdGUg
PSAoWi5tZWRpZW4gfHwgW10pLnNsaWNlKCk7CiAgICB2YXIga2F0ZWdvcmllbiA9IG1lZGllbkth
dGVnb3JpZW5HZXQoKTsKICAgIC8vIFRvb2xiYXIgbWl0IOKAnisgTmV1ZSBLYXRlZ29yaWUiLUJ1
dHRvbgogICAgdmFyIGh0bWwgPSAnPGRpdiBjbGFzcz0ibWVkaWVuLWthdGVnb3JpZW4tdG9vbGJh
ciIgc3R5bGU9ImRpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bWFyZ2luLWJv
dHRvbToxMHB4Ij4nICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWts
ZWluIiBpZD0iYnRuLW1lZGllbi1rYXRlZ29yaWUtbmV1IiB0eXBlPSJidXR0b24iPisgTmV1ZSBL
YXRlZ29yaWU8L2J1dHRvbj4nICsKICAgICc8L2Rpdj4nOwogICAga2F0ZWdvcmllbi5mb3JFYWNo
KGZ1bmN0aW9uKGthdCkgewogICAgICAgIHZhciBpbkthdCA9IGxpc3RlLmZpbHRlcihmdW5jdGlv
bihtKSB7IHJldHVybiBtLmthdGVnb3JpZSA9PT0ga2F0LmtleTsgfSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gKGEuYmV6ZWljaG51bmcgfHwgJycpLmxvY2FsZUNvbXBhcmUoYi5iZXplaWNo
bnVuZyB8fCAnJywgJ2RlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICB2
YXIgYW56YWhsID0gaW5LYXQubGVuZ3RoOwogICAgICAgIGh0bWwgKz0gJzxkZXRhaWxzIGNsYXNz
PSJtZWRpZW4tYWtrb3JkZW9uLXNla3Rpb24iIGRhdGEta2F0ZWdvcmllPSInICsgZXNjYXBlQXR0
cihrYXQua2V5KSArICciJyArIChhbnphaGwgPiAwID8gJyBvcGVuJyA6ICcnKSArICc+JyArCiAg
ICAgICAgICAgICc8c3VtbWFyeT4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0ibWVk
aWVuLWthdC1kcmFnIiBkcmFnZ2FibGU9InRydWUiIHRpdGxlPSJWZXJzY2hpZWJlbiDigJQgRHJh
ZyAmIERyb3AiIGRhdGEta2F0LWRyYWc9IicgKyBlc2NhcGVBdHRyKGthdC5rZXkpICsgJyIgc3R5
bGU9ImN1cnNvcjpncmFiO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi1yaWdodDo2cHgi
PuKLruKLrjwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0ibWVkaWVuLWth
dC1sYWJlbCI+JyArIGVzY2FwZUhUTUwoa2F0LmxhYmVsKSArICc8L3NwYW4+JyArCiAgICAgICAg
ICAgICAgICAnPHNwYW4gY2xhc3M9Im1lZGllbi1hbnphaGwiPicgKyBhbnphaGwgKyAoYW56YWhs
ID09PSAxID8gJyBEYXRlaScgOiAnIERhdGVpZW4nKSArICc8L3NwYW4+JyArCiAgICAgICAgICAg
ICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsgYnRuLWtsZWluIG1lZGllbi1rYXQtZWRp
dCIgZGF0YS1rYXQtZWRpdD0iJyArIGVzY2FwZUF0dHIoa2F0LmtleSkgKyAnIiB0eXBlPSJidXR0
b24iIHRpdGxlPSJLYXRlZ29yaWUgYmVhcmJlaXRlbiIgc3R5bGU9Im1hcmdpbi1sZWZ0OjhweCI+
4pyOIEJlYXJiZWl0ZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvc3VtbWFyeT4nOwogICAg
ICAgIGlmIChhbnphaGwgPT09IDApIHsKICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0i
bWVkaWVuLWdyaWQgbWVkaWVuLWdyaWQtbGVlciI+4oCUIGtlaW5lIERhdGVpZW4g4oCUIERyYWcg
JmFtcDsgRHJvcCB2b24gZWluZXIgYW5kZXJlbiBLYXRlZ29yaWUgaGllcmhlciBtw7ZnbGljaDwv
ZGl2Pic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0i
bWVkaWVuLWdyaWQiPicgKyBpbkthdC5tYXAobWVkaWVuS2FydGVIdG1sKS5qb2luKCcnKSArICc8
L2Rpdj4nOwogICAgICAgIH0KICAgICAgICBodG1sICs9ICc8L2RldGFpbHM+JzsKICAgIH0pOwog
ICAgYm94LmlubmVySFRNTCA9IGh0bWw7CgogICAgLy8gTGlzdGVuZXI6ICsgTmV1ZSBLYXRlZ29y
aWUKICAgIHZhciBidG5OZXUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLW1lZGllbi1r
YXRlZ29yaWUtbmV1Jyk7CiAgICBpZiAoYnRuTmV1KSBidG5OZXUuYWRkRXZlbnRMaXN0ZW5lcign
Y2xpY2snLCBtZWRpZW5LYXRlZ29yaWVOZXVEaWFsb2cpOwogICAgLy8gTGlzdGVuZXI6IEVkaXQt
QnV0dG9ucyBwcm8gU2VrdGlvbgogICAgYm94LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tZWRpZW4ta2F0
LWVkaXQnKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0bikgewogICAgICAgIGJ0bi5hZGRFdmVudExpc3Rl
bmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgp
OwogICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICBtZWRpZW5LYXRl
Z29yaWVCZWFyYmVpdGVuRGlhbG9nKGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEta2F0LWVkaXQnKSk7
CiAgICAgICAgfSk7CiAgICB9KTsKICAgIC8vIERyYWctU29ydDogQWtrb3JkZW9uLVNla3Rpb25l
biB1bXNvcnRpZXJlbgogICAgbWVkaWVuS2F0ZWdvcmllbkRyYWdJbml0KGJveCk7Cn0KCmV4cG9y
dCBmdW5jdGlvbiBtZWRpZW5LYXJ0ZUh0bWwobSkgewogICAgdmFyIGlzdF9wZGYgPSAobS5taW1l
VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicpOwogICAgLy8gV2VubiBkYXMgTWVkaXVtIGF1ZiBl
aW5lIHN0YXRpc2NoZSBEYXRlaSB6ZWlndCAoU3lzdGVtLUltcG9ydCBhdXMKICAgIC8vIC9pbWFn
ZXMvKSwgZGVuIGRpcmVrdGVuIFBmYWQgYWxzIFF1ZWxsZSBuZWhtZW4g4oCUIHNvbnN0IMO8YmVy
IGRlbgogICAgLy8gRGF0ZWktQVBJLUVuZHBvaW50IGxhZGVuLgogICAgdmFyIHF1ZWxsZSA9IG0u
cGZhZCA/IG0ucGZhZCA6ICcvYXBpL21lZGllbi9kYXRlaS8nICsgZXNjYXBlQXR0cihtLmlkKTsK
ICAgIHZhciB2b3JzY2hhdSA9IGlzdF9wZGYKICAgICAgICA/ICc8YSBocmVmPSInICsgZXNjYXBl
QXR0cihxdWVsbGUpICsgJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJQ
REYgaW4gbmV1ZW0gVGFiIMO2ZmZuZW4iPjxzcGFuIGNsYXNzPSJwZGYtcGxhdHpoYWx0ZXIiPlBE
Rjwvc3Bhbj48L2E+JwogICAgICAgIDogJzxpbWcgc3JjPSInICsgZXNjYXBlQXR0cihxdWVsbGUp
ICsgJyIgYWx0PSInICsgZXNjYXBlQXR0cihtLmJlemVpY2hudW5nKSArICciIGxvYWRpbmc9Imxh
enkiPic7CiAgICB2YXIgZ3JvZXNzZUtiID0gbS5ncm9lc3NlID8gTWF0aC5yb3VuZChtLmdyb2Vz
c2UgLyAxMDI0KSArICcgS0InIDogJyc7CiAgICB2YXIgc3lzQmFkZ2UgPSBtLnN5c3RlbQogICAg
ICAgID8gJzxzcGFuIGNsYXNzPSJtZWRpZW4tc3lzdGVtLWJhZGdlIiB0aXRsZT0iU3lzdGVtLUJp
bGQgYXVzIC9pbWFnZXMvIOKAlCBEYXRlaSBibGVpYnQgYmVpbSBMw7ZzY2hlbiBlcmhhbHRlbiI+
U3lzdGVtPC9zcGFuPiAnCiAgICAgICAgOiAnJzsKICAgIHJldHVybiAnPGRpdiBjbGFzcz0ibWVk
aWVuLWthcnRlJyArIChtLnN5c3RlbSA/ICcgbWVkaWVuLWthcnRlLXN5c3RlbScgOiAnJykgKyAn
IiBkcmFnZ2FibGU9InRydWUiIGRhdGEtaWQ9IicgKyBlc2NhcGVBdHRyKG0uaWQpICsgJyInICsg
KG0uc3lzdGVtID8gJyBkYXRhLXN5c3RlbT0iMSInIDogJycpICsgJz4nICsKICAgICAgICAnPGRp
diBjbGFzcz0ibWVkaWVuLXZvcnNjaGF1Ij4nICsgdm9yc2NoYXUgKyAnPC9kaXY+JyArCiAgICAg
ICAgJzxkaXYgY2xhc3M9Im1lZGllbi1iZXplaWNobnVuZyIgdGl0bGU9IicgKyBlc2NhcGVBdHRy
KG0uYmV6ZWljaG51bmcpICsgJyI+JyArIGVzY2FwZUhUTUwobS5iZXplaWNobnVuZykgKyAnPC9k
aXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9Im1lZGllbi1tZXRhIj4nICsgc3lzQmFkZ2UgKyBl
c2NhcGVIVE1MKGdyb2Vzc2VLYikgKyAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9Im1l
ZGllbi1ha3Rpb25lbiI+JyArCiAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNl
ayBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJtZWRpZW4tYmVhcmJlaXRlbiIgZGF0YS1pZD0iJyAr
IGVzY2FwZUF0dHIobS5pZCkgKyAnIiB0aXRsZT0iQmV6ZWljaG51bmcsIEthdGVnb3JpZSwgRGF0
ZWkgb2RlciBMw7ZzY2hlbiI+QmVhcmJlaXRlbjwvYnV0dG9uPicgKwogICAgICAgICc8L2Rpdj4n
ICsKICAgICc8L2Rpdj4nOwp9CgpleHBvcnQgZnVuY3Rpb24gbWVkaWVuVXBsb2FkSGFuZGxlcigp
IHsKICAgIHZhciBkYXRlaUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZGllbi1k
YXRlaScpOwogICAgdmFyIGJleklucHV0ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVk
aWVuLWJlemVpY2hudW5nJyk7CiAgICB2YXIga2F0U2VsZWN0ICA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdtZWRpZW4ta2F0ZWdvcmllJyk7CiAgICB2YXIgYnRuICAgICAgICA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdidG4tbWVkaWVuLXVwbG9hZCcpOwogICAgaWYgKCFkYXRlaUlucHV0
IHx8ICFiZXpJbnB1dCB8fCAha2F0U2VsZWN0IHx8ICFidG4pIHJldHVybjsKICAgIHZhciBkYXRl
aSA9IGRhdGVpSW5wdXQuZmlsZXNbMF07CiAgICBpZiAoIWRhdGVpKSB7IHRvYXN0KCdLZWluZSBE
YXRlaSBhdXNnZXfDpGhsdCcsICd3YXJudW5nJyk7IHJldHVybjsgfQogICAgdmFyIGJlemVpY2hu
dW5nID0gYmV6SW5wdXQudmFsdWUudHJpbSgpOwogICAgaWYgKCFiZXplaWNobnVuZykgeyB0b2Fz
dCgnQmV6ZWljaG51bmcgZGFyZiBuaWNodCBsZWVyIHNlaW4nLCAnd2FybnVuZycpOyBiZXpJbnB1
dC5mb2N1cygpOyByZXR1cm47IH0KICAgIGlmIChkYXRlaS5zaXplID4gNSAqIDEwMjQgKiAxMDI0
KSB7CiAgICAgICAgdG9hc3QoJ0RhdGVpIHp1IGdyb8OfIChtYXggNSBNQikg4oCUIGdld8OkaGx0
OiAnICsgTWF0aC5yb3VuZChkYXRlaS5zaXplIC8gMTAyNCkgKyAnIEtCJywgJ2ZlaGxlcicpOwog
ICAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwog
ICAgYnRuLmRpc2FibGVkID0gdHJ1ZTsgYnRuLnRleHRDb250ZW50ID0gJ0xhZGUgaG9jaOKApic7
CiAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGRhdGFVcmwgPSBy
ZWFkZXIucmVzdWx0OwogICAgICAgIGFwaVBvc3QoJy9hcGkvbWVkaWVuJywgewogICAgICAgICAg
ICBrYXRlZ29yaWU6IGthdFNlbGVjdC52YWx1ZSwKICAgICAgICAgICAgYmV6ZWljaG51bmc6IGJl
emVpY2hudW5nLAogICAgICAgICAgICBtaW1lVHlwZTogZGF0ZWkudHlwZSwKICAgICAgICAgICAg
ZGF0ZWluYW1lOiBkYXRlaS5uYW1lLAogICAgICAgICAgICBkYXRhOiBkYXRhVXJsCiAgICAgICAg
fSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgdG9hc3QoJ+KAnicgKyBiZXplaWNobnVu
ZyArICciIGhvY2hnZWxhZGVuJywgJ2VyZm9sZycpOwogICAgICAgICAgICBiZXpJbnB1dC52YWx1
ZSA9ICcnOwogICAgICAgICAgICBkYXRlaUlucHV0LnZhbHVlID0gJyc7CiAgICAgICAgICAgIGJ0
bi5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIG1lZGllbkxhZGVuKCk7CiAgICAgICAgfSku
Y2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICAgICB0b2FzdCgnRmVobGVyIGJlaW0gSG9jaGxh
ZGVuOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7CiAgICAgICAgfSkuZmluYWxseShmdW5jdGlv
bigpIHsKICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0gJ0hvY2hsYWRlbic7CiAgICAgICAg
ICAgIGlmIChkYXRlaUlucHV0LmZpbGVzWzBdICYmIGJleklucHV0LnZhbHVlLnRyaW0oKSkgYnRu
LmRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICB9OwogICAgcmVhZGVyLm9uZXJyb3Ig
PSBmdW5jdGlvbigpIHsKICAgICAgICB0b2FzdCgnRGF0ZWkga29ubnRlIG5pY2h0IGdlbGVzZW4g
d2VyZGVuJywgJ2ZlaGxlcicpOwogICAgICAgIGJ0bi5kaXNhYmxlZCA9IGZhbHNlOyBidG4udGV4
dENvbnRlbnQgPSAnSG9jaGxhZGVuJzsKICAgIH07CiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChk
YXRlaSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBtZWRpZW5Mb2VzY2hlbihpZCkgewogICAgdmFyIG0g
PSAoWi5tZWRpZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5pZCA9PT0gaWQ7
IH0pOwogICAgaWYgKCFtKSByZXR1cm47CiAgICB2YXIgaGlud2VpcyA9IG0uc3lzdGVtCiAgICAg
ICAgPyAn4oCeJyArIG0uYmV6ZWljaG51bmcgKyAnIiBhdXMgZGVyIExpc3RlIGVudGZlcm5lbj9c
blxuRGllIE9yaWdpbmFsLURhdGVpIGluIC9pbWFnZXMvIGJsZWlidCBlcmhhbHRlbiB1bmQga2Fu
biBtYW51ZWxsIHdpZWRlcmhlcmdlc3RlbGx0IHdlcmRlbiwgaW5kZW0gZHUgZGVuIFNlcnZlci1G
bGFnIOKAnnN5c3RlbUltcG9ydGVkVjEiIGluIGRhdGEvbWVkaWVuLmpzb24genVyw7xja3NldHp0
LicKICAgICAgICA6ICfigJ4nICsgbS5iZXplaWNobnVuZyArICciIHdpcmtsaWNoIGVuZGfDvGx0
aWcgbMO2c2NoZW4/JzsKICAgIGJlc3RhZXRpZ2VuKGhpbndlaXMsIGZ1bmN0aW9uKCkgewogICAg
ICAgIGFwaUZldGNoKCcvYXBpL21lZGllbi8nICsgZW5jb2RlVVJJQ29tcG9uZW50KGlkKSwgeyBt
ZXRob2Q6ICdERUxFVEUnIH0pCiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgICAgWi5tZWRpZW4gPSAoWi5tZWRpZW4gfHwgW10pLmZpbHRlcihmdW5jdGlvbih4KSB7
IHJldHVybiB4LmlkICE9PSBpZDsgfSk7CiAgICAgICAgICAgICAgICB0b2FzdCgnR2Vsw7ZzY2h0
OiDigJ4nICsgbS5iZXplaWNobnVuZyArICciJywgJ2VyZm9sZycpOwogICAgICAgICAgICAgICAg
bWVkaWVuUmVuZGVybigpOwogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0
KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICB9KTsKfQoKLy8gU2Ft
bWVsLURpYWxvZzogVW1iZW5lbm5lbiArIEthdGVnb3JpZSB3ZWNoc2VsbiArIERhdGVpIGVyc2V0
emVuICsgTMO2c2NoZW4uCmV4cG9ydCBmdW5jdGlvbiBtZWRpZW5CZWFyYmVpdGVuRGlhbG9nKGlk
KSB7CiAgICB2YXIgbSA9IChaLm1lZGllbiB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJldHVy
biB4LmlkID09PSBpZDsgfSk7CiAgICBpZiAoIW0pIHJldHVybjsKCiAgICB2YXIgaXN0X3BkZiA9
IChtLm1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vcGRmJyk7CiAgICB2YXIgcXVlbGxlID0gbS5w
ZmFkID8gbS5wZmFkIDogJy9hcGkvbWVkaWVuL2RhdGVpLycgKyBlc2NhcGVBdHRyKG0uaWQpOwog
ICAgdmFyIHZvcnNjaGF1ID0gaXN0X3BkZgogICAgICAgID8gJzxzcGFuIGNsYXNzPSJwZGYtcGxh
dHpoYWx0ZXIiPlBERjwvc3Bhbj4nCiAgICAgICAgOiAnPGltZyBzcmM9IicgKyBlc2NhcGVBdHRy
KHF1ZWxsZSkgKyAnIiBhbHQ9IiIgc3R5bGU9Im1heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTYw
cHg7b2JqZWN0LWZpdDpjb250YWluIj4nOwoKICAgIHZhciBrYXRPcHRzID0gTUVESUVOX0tBVEVH
T1JJRU5fUkVJSEVORk9MR0UubWFwKGZ1bmN0aW9uKGspIHsKICAgICAgICB2YXIgbGFiZWwgPSBN
RURJRU5fS0FURUdPUklFTl9MQUJFTFtrXSB8fCBrOwogICAgICAgIHJldHVybiAnPG9wdGlvbiB2
YWx1ZT0iJyArIGVzY2FwZUF0dHIoaykgKyAnIicgKyAoayA9PT0gbS5rYXRlZ29yaWUgPyAnIHNl
bGVjdGVkJyA6ICcnKSArICc+JyArIGVzY2FwZUhUTUwobGFiZWwpICsgJzwvb3B0aW9uPic7CiAg
ICB9KS5qb2luKCcnKTsKCiAgICB2YXIgZ3JvZXNzZUtiID0gbS5ncm9lc3NlID8gTWF0aC5yb3Vu
ZChtLmdyb2Vzc2UgLyAxMDI0KSArICcgS0InIDogJyc7CiAgICB2YXIgc3lzSGlud2VpcyA9IG0u
c3lzdGVtCiAgICAgICAgPyAnPGRpdiBjbGFzcz0iZm9ybS1oaWxmZSIgc3R5bGU9Im1hcmdpbi10
b3A6NnB4Ij5TeXN0ZW0tQmlsZCBhdXMgPGNvZGU+L2ltYWdlcy88L2NvZGU+LiBCZWltIEVyc2V0
emVuIGRlciBEYXRlaSB3aXJkIGFiIHNvZm9ydCBlaW5lIGVpZ2VuZSBLb3BpZSBnZXNwZWljaGVy
dDsgZGFzIE9yaWdpbmFsIGJsZWlidCBlcmhhbHRlbi48L2Rpdj4nCiAgICAgICAgOiAnJzsKCiAg
ICB2YXIga29lcnBlciA9CiAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRl
bXBsYXRlLWNvbHVtbnM6MTYwcHggMWZyO2dhcDoxOHB4O2FsaWduLWl0ZW1zOnN0YXJ0Ij4nICsK
ICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7
anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTtib3Jk
ZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGlu
ZzoxMHB4O21pbi1oZWlnaHQ6MTYwcHgiPicgKwogICAgICAgICAgICAgICAgdm9yc2NoYXUgKwog
ICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2PicgKwogICAgICAgICAgICAg
ICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+QmV6ZWljaG51bmcgKjwvbGFiZWw+
JyArCiAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWVkYmVhcmIt
YmV6IiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiIHZhbHVlPSInICsgZXNj
YXBlQXR0cihtLmJlemVpY2hudW5nKSArICciPicgKwogICAgICAgICAgICAgICAgJzwvZGl2Picg
KwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+S2F0ZWdv
cmllPC9sYWJlbD4nICsKICAgICAgICAgICAgICAgICAgICAnPHNlbGVjdCBpZD0ibWVkYmVhcmIt
a2F0IiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiPicgKyBrYXRPcHRzICsg
Jzwvc2VsZWN0PicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWhpbGZl
IiBzdHlsZT0ibWFyZ2luLXRvcDo0cHgiPlZlcnNjaGllYnQgZGFzIE1lZGl1bSBpbiBkaWUgZ2V3
w6RobHRlIEthdGVnb3JpZS48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAg
ICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPkRhdGVpIGVyc2V0
emVuIChvcHRpb25hbCk8L2xhYmVsPicgKwogICAgICAgICAgICAgICAgICAgICc8aW5wdXQgdHlw
ZT0iZmlsZSIgaWQ9Im1lZGJlYXJiLWRhdGVpIiBjbGFzcz0iZm9ybS1pbnB1dCIgYWNjZXB0PSJp
bWFnZS9wbmcsaW1hZ2UvanBlZyxpbWFnZS9naWYsaW1hZ2Uvd2VicCxpbWFnZS9zdmcreG1sLGFw
cGxpY2F0aW9uL3BkZiIgc3R5bGU9IndpZHRoOjEwMCUiPicgKwogICAgICAgICAgICAgICAgICAg
ICc8ZGl2IGNsYXNzPSJmb3JtLWhpbGZlIiBzdHlsZT0ibWFyZ2luLXRvcDo0cHgiPkFrdHVlbGw6
ICcgKyBlc2NhcGVIVE1MKG0uZGF0ZWluYW1lIHx8ICfigJQnKSArIChncm9lc3NlS2IgPyAnIMK3
ICcgKyBlc2NhcGVIVE1MKGdyb2Vzc2VLYikgOiAnJykgKyAnIChtYXguIDUgTUIpPC9kaXY+JyAr
CiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICBzeXNIaW53ZWlzICsK
ICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8L2Rpdj4nOwoKICAgIHZhciBmdXNzID0K
ICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIiIGlkPSJtZWRiZWFyYi1sb2Vz
Y2hlbiIgdHlwZT0iYnV0dG9uIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OmF1dG8iPkzDtnNjaGVuPC9i
dXR0b24+JyArCiAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biIgaWQ9Im1lZGJlYXJiLWFiYnJl
Y2hlbiIgdHlwZT0iYnV0dG9uIj5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAnPGJ1dHRv
biBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBpZD0iZGxnLXNwZWljaGVybiIgdHlwZT0iYnV0dG9u
Ij5TcGVpY2hlcm48L2J1dHRvbj4nOwoKICAgIG1vZGFsWmVpZ2VuKCdNZWRpdW0gYmVhcmJlaXRl
bjogJyArIChtLmJlemVpY2hudW5nIHx8ICcnKSwga29lcnBlciwgZnVzcywgZnVuY3Rpb24oKSB7
CiAgICAgICAgbWVkaWVuQmVhcmJlaXRlblNwZWljaGVybihpZCk7CiAgICB9KTsKCiAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnbWVkYmVhcmItYWJicmVjaGVuJykuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICBtb2RhbFNjaGxpZXNzZW4oKTsKICAgIH0p
OwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZGJlYXJiLWxvZXNjaGVuJykuYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICBtb2RhbFNjaGxpZXNzZW4o
dHJ1ZSk7CiAgICAgICAgbWVkaWVuTG9lc2NoZW4oaWQpOwogICAgfSk7Cn0KCmV4cG9ydCBmdW5j
dGlvbiBtZWRpZW5CZWFyYmVpdGVuU3BlaWNoZXJuKGlkKSB7CiAgICB2YXIgbSA9IChaLm1lZGll
biB8fCBbXSkuZmluZChmdW5jdGlvbih4KSB7IHJldHVybiB4LmlkID09PSBpZDsgfSk7CiAgICBp
ZiAoIW0pIHJldHVybjsKICAgIHZhciBiZXpFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdt
ZWRiZWFyYi1iZXonKTsKICAgIHZhciBrYXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdt
ZWRiZWFyYi1rYXQnKTsKICAgIHZhciBkYXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdt
ZWRiZWFyYi1kYXRlaScpOwogICAgaWYgKCFiZXpFbCB8fCAha2F0RWwpIHJldHVybjsKCiAgICB2
YXIgbmV1ZUJleiA9IGJlekVsLnZhbHVlLnRyaW0oKTsKICAgIGlmICghbmV1ZUJleikgeyB0b2Fz
dCgnQmV6ZWljaG51bmcgZGFyZiBuaWNodCBsZWVyIHNlaW4nLCAnd2FybnVuZycpOyBiZXpFbC5m
b2N1cygpOyByZXR1cm47IH0KICAgIHZhciBuZXVlS2F0ID0ga2F0RWwudmFsdWU7CiAgICB2YXIg
ZGF0ZWkgPSBkYXRFbCAmJiBkYXRFbC5maWxlcyAmJiBkYXRFbC5maWxlc1swXTsKCiAgICBpZiAo
ZGF0ZWkgJiYgZGF0ZWkuc2l6ZSA+IDUgKiAxMDI0ICogMTAyNCkgewogICAgICAgIHRvYXN0KCdE
YXRlaSB6dSBncm/DnyAobWF4IDUgTUIpIOKAlCBnZXfDpGhsdDogJyArIE1hdGgucm91bmQoZGF0
ZWkuc2l6ZSAvIDEwMjQpICsgJyBLQicsICdmZWhsZXInKTsKICAgICAgICByZXR1cm47CiAgICB9
CgogICAgZnVuY3Rpb24gcGF0Y2hTZW5kZW4ocGF5bG9hZCkgewogICAgICAgIGFwaUZldGNoKCcv
YXBpL21lZGllbi8nICsgZW5jb2RlVVJJQ29tcG9uZW50KGlkKSwgewogICAgICAgICAgICBtZXRo
b2Q6ICdQQVRDSCcsCiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpCiAg
ICAgICAgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgdG9hc3QoJ0dlc3BlaWNoZXJ0
OiDigJ4nICsgbmV1ZUJleiArICciJywgJ2VyZm9sZycpOwogICAgICAgICAgICBtb2RhbFNjaGxp
ZXNzZW4odHJ1ZSk7CiAgICAgICAgICAgIG1lZGllbkxhZGVuKCk7CiAgICAgICAgfSkuY2F0Y2go
ZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0p
OwogICAgfQoKICAgIHZhciBiYXNpcyA9IHt9OwogICAgaWYgKG5ldWVCZXogIT09IG0uYmV6ZWlj
aG51bmcpIGJhc2lzLmJlemVpY2hudW5nID0gbmV1ZUJlejsKICAgIGlmIChuZXVlS2F0ICE9PSBt
LmthdGVnb3JpZSkgYmFzaXMua2F0ZWdvcmllID0gbmV1ZUthdDsKCiAgICBpZiAoZGF0ZWkpIHsK
ICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICByZWFkZXIub25s
b2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGJhc2lzLmRhdGEgPSByZWFkZXIucmVzdWx0
OwogICAgICAgICAgICBiYXNpcy5taW1lVHlwZSA9IGRhdGVpLnR5cGU7CiAgICAgICAgICAgIGJh
c2lzLmRhdGVpbmFtZSA9IGRhdGVpLm5hbWU7CiAgICAgICAgICAgIHBhdGNoU2VuZGVuKGJhc2lz
KTsKICAgICAgICB9OwogICAgICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7IHRvYXN0
KCdEYXRlaSBrb25udGUgbmljaHQgZ2VsZXNlbiB3ZXJkZW4nLCAnZmVobGVyJyk7IH07CiAgICAg
ICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZGF0ZWkpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAg
ICBpZiAoT2JqZWN0LmtleXMoYmFzaXMpLmxlbmd0aCA9PT0gMCkgewogICAgICAgIG1vZGFsU2No
bGllc3Nlbih0cnVlKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBwYXRjaFNlbmRlbihiYXNp
cyk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBtZWRpZW5WZXJzY2hpZWJlbihpZCwgbmV1ZUthdGVnb3Jp
ZSkgewogICAgdmFyIG0gPSAoWi5tZWRpZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1
cm4geC5pZCA9PT0gaWQ7IH0pOwogICAgaWYgKCFtIHx8IG0ua2F0ZWdvcmllID09PSBuZXVlS2F0
ZWdvcmllKSByZXR1cm47CiAgICBhcGlGZXRjaCgnL2FwaS9tZWRpZW4vJyArIGVuY29kZVVSSUNv
bXBvbmVudChpZCksIHsgbWV0aG9kOiAnUEFUQ0gnLCBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGth
dGVnb3JpZTogbmV1ZUthdGVnb3JpZSB9KSB9KQogICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICBtLmthdGVnb3JpZSA9IG5ldWVLYXRlZ29yaWU7CiAgICAgICAgICAgIHRvYXN0
KCdWZXJzY2hvYmVuIG5hY2gg4oCeJyArIG1lZGllbkthdGVnb3JpZUxhYmVsKG5ldWVLYXRlZ29y
aWUpICsgJyInLCAnZXJmb2xnJyk7CiAgICAgICAgICAgIG1lZGllblJlbmRlcm4oKTsKICAgICAg
ICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdm
ZWhsZXInKTsgfSk7Cn0KCi8vID09PT09IE1lZGllbi1LYXRlZ29yaWVuOiBDUlVELU1vZGFsZSAr
IERyYWctU29ydCA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIG1lZGllbkthdGVnb3JpZUtleUZyb21M
YWJlbChsYWJlbCkgewogICAgdmFyIHJhdyA9IFN0cmluZyhsYWJlbCB8fCAnJykudG9Mb3dlckNh
c2UoKS50cmltKCk7CiAgICAvLyBVbWxhdXRlICsgw58gKyBTb25kZXJ6ZWljaGVuIGVudGZlcm5l
bgogICAgcmF3ID0gcmF3LnJlcGxhY2UoL8OkL2csICdhZScpLnJlcGxhY2UoL8O2L2csICdvZScp
LnJlcGxhY2UoL8O8L2csICd1ZScpLnJlcGxhY2UoL8OfL2csICdzcycpOwogICAgcmF3ID0gcmF3
LnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKS5yZXBsYWNlKC9eLSt8LSskL2csICcnKTsKICAg
IHJldHVybiByYXcgfHwgKCdrYXQtJyArIERhdGUubm93KCkudG9TdHJpbmcoMzYpKTsKfQoKZXhw
b3J0IGZ1bmN0aW9uIG1lZGllbkthdGVnb3JpZU5ldURpYWxvZygpIHsKICAgIHZhciBrb2VycGVy
ID0KICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbCBmb3I9Im1lZGthdC1u
ZXUtbGFiZWwiPkJlemVpY2hudW5nPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0ibWVka2F0LW5ldS1sYWJlbCIgY2xhc3M9ImZvcm0taW5wdXQiIHBsYWNlaG9s
ZGVyPSJ6LiBCLiBWZXJlaW5lIEEtWiIgc3R5bGU9IndpZHRoOjEwMCUiPicgKwogICAgICAgICc8
L2Rpdj4nICsKICAgICAgICAnPHNtYWxsIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtm
b250LXNpemU6MTFweDtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6NHB4Ij5EZXIgdGVjaG5pc2No
ZSBTY2hsw7xzc2VsIHdpcmQgYXV0b21hdGlzY2ggYXVzIGRlciBCZXplaWNobnVuZyBlcnpldWd0
Ljwvc21hbGw+JzsKICAgIHZhciBmdXNzID0gJzxidXR0b24gY2xhc3M9ImJ0biIgaWQ9Im1lZGth
dC1uZXUtYWJicmVjaGVuIiB0eXBlPSJidXR0b24iPkFiYnJlY2hlbjwvYnV0dG9uPicgKwogICAg
ICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBpZD0iZGxnLXNwZWlj
aGVybiIgdHlwZT0iYnV0dG9uIj5BbmxlZ2VuPC9idXR0b24+JzsKICAgIG1vZGFsWmVpZ2VuKCdO
ZXVlIE1lZGllbi1LYXRlZ29yaWUnLCBrb2VycGVyLCBmdXNzLCBmdW5jdGlvbigpIHsKICAgICAg
ICB2YXIgbGFiZWwgPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZGthdC1uZXUtbGFiZWwn
KS52YWx1ZSB8fCAnJykudHJpbSgpOwogICAgICAgIGlmICghbGFiZWwpIHsgdG9hc3QoJ0JlemVp
Y2hudW5nIGRhcmYgbmljaHQgbGVlciBzZWluJywgJ3dhcm51bmcnKTsgcmV0dXJuOyB9CiAgICAg
ICAgdmFyIGtleSA9IG1lZGllbkthdGVnb3JpZUtleUZyb21MYWJlbChsYWJlbCk7CiAgICAgICAg
dmFyIGFsbGUgPSBtZWRpZW5LYXRlZ29yaWVuR2V0KCk7CiAgICAgICAgLy8gRWluZGV1dGlna2Vp
dCBzaWNoZXJzdGVsbGVuCiAgICAgICAgdmFyIG9yaWcgPSBrZXk7CiAgICAgICAgdmFyIG4gPSAy
OwogICAgICAgIHdoaWxlIChhbGxlLnNvbWUoZnVuY3Rpb24oaykgeyByZXR1cm4gay5rZXkgPT09
IGtleTsgfSkpIHsKICAgICAgICAgICAga2V5ID0gb3JpZyArICctJyArIG47IG4rKzsKICAgICAg
ICB9CiAgICAgICAgdmFyIG1heFBvcyA9IE1hdGgubWF4LmFwcGx5KG51bGwsIGFsbGUubWFwKGZ1
bmN0aW9uKGspIHsgcmV0dXJuIGsucG9zaXRpb24gfHwgMDsgfSkuY29uY2F0KFswXSkpOwogICAg
ICAgIGFsbGUucHVzaCh7IGtleToga2V5LCBsYWJlbDogbGFiZWwsIHBvc2l0aW9uOiBtYXhQb3Mg
KyAxIH0pOwogICAgICAgIG1lZGllbkthdGVnb3JpZW5TcGVpY2hlcm4oKS50aGVuKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgICAgIHRvYXN0
KCdLYXRlZ29yaWUg4oCeJyArIGxhYmVsICsgJyIgYW5nZWxlZ3QnLCAnZXJmb2xnJyk7CiAgICAg
ICAgICAgIG1lZGllblJlbmRlcm4oKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAg
ICAgICAgICAgIGFsbGUucG9wKCk7ICAgLy8gUm9sbGJhY2sKICAgICAgICAgICAgdG9hc3QoJ0Zl
aGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOwogICAgICAgIH0pOwogICAgfSk7CiAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVka2F0LW5ldS1hYmJyZWNoZW4nKS5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBtb2RhbFNjaGxpZXNzZW4oKTsgfSk7CiAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBpbnAgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbWVka2F0LW5ldS1sYWJlbCcpOwogICAgICAgIGlmIChpbnApIGlucC5mb2N1cygp
OwogICAgfSwgNTApOwp9CgpleHBvcnQgZnVuY3Rpb24gbWVkaWVuS2F0ZWdvcmllQmVhcmJlaXRl
bkRpYWxvZyhrZXkpIHsKICAgIHZhciBhbGxlID0gbWVkaWVuS2F0ZWdvcmllbkdldCgpOwogICAg
dmFyIGthdCA9IGFsbGUuZmluZChmdW5jdGlvbihrKSB7IHJldHVybiBrLmtleSA9PT0ga2V5OyB9
KTsKICAgIGlmICgha2F0KSByZXR1cm47CiAgICB2YXIgbWVkaWVuSW5LYXQgPSAoWi5tZWRpZW4g
fHwgW10pLmZpbHRlcihmdW5jdGlvbihtKSB7IHJldHVybiBtLmthdGVnb3JpZSA9PT0ga2V5OyB9
KTsKICAgIHZhciBhbnphaGwgPSBtZWRpZW5JbkthdC5sZW5ndGg7CgogICAgdmFyIHZlcnNjaGll
YmVPcHRzID0gYWxsZQogICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oaykgeyByZXR1cm4gay5rZXkg
IT09IGtleTsgfSkKICAgICAgICAubWFwKGZ1bmN0aW9uKGspIHsgcmV0dXJuICc8b3B0aW9uIHZh
bHVlPSInICsgZXNjYXBlQXR0cihrLmtleSkgKyAnIj4nICsgZXNjYXBlSFRNTChrLmxhYmVsKSAr
ICc8L29wdGlvbj4nOyB9KQogICAgICAgIC5qb2luKCcnKTsKCiAgICB2YXIga29lcnBlciA9CiAg
ICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWwgZm9yPSJtZWRrYXQtZWRpdC1s
YWJlbCI+QmV6ZWljaG51bmc8L2xhYmVsPicgKwogICAgICAgICAgICAnPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJtZWRrYXQtZWRpdC1sYWJlbCIgY2xhc3M9ImZvcm0taW5wdXQiIHZhbHVlPSInICsg
ZXNjYXBlQXR0cihrYXQubGFiZWwpICsgJyIgc3R5bGU9IndpZHRoOjEwMCUiPicgKwogICAgICAg
ICc8L2Rpdj4nICsKICAgICAgICAnPHNtYWxsIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVk
KTtmb250LXNpemU6MTFweDtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6NnB4Ij5TY2hsw7xzc2Vs
OiA8Y29kZT4nICsgZXNjYXBlSFRNTChrYXQua2V5KSArICc8L2NvZGU+IChuaWNodCDDpG5kZXJi
YXIpLjwvc21hbGw+JyArCiAgICAgICAgJzxmaWVsZHNldCBzdHlsZT0ibWFyZ2luLXRvcDoxNHB4
O3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTti
b3JkZXItcmFkaXVzOjZweCI+JyArCiAgICAgICAgICAgICc8bGVnZW5kIHN0eWxlPSJmb250LXNp
emU6MTFweDtmb250LXdlaWdodDo2MDA7cGFkZGluZzowIDZweDtjb2xvcjp2YXIoLS10ZXh0LXNl
Y29uZGFyeSkiPkthdGVnb3JpZSBsw7ZzY2hlbjwvbGVnZW5kPicgKwogICAgICAgICAgICAnPGRp
diBzdHlsZT0iZm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO21hcmdp
bi1ib3R0b206OHB4Ij4nICsKICAgICAgICAgICAgICAgIChhbnphaGwgPT09IDAKICAgICAgICAg
ICAgICAgICAgICA/ICdEaWVzZSBLYXRlZ29yaWUgaXN0IGxlZXIgdW5kIGthbm4gZGlyZWt0IGdl
bMO2c2NodCB3ZXJkZW4uJwogICAgICAgICAgICAgICAgICAgIDogJ0RpZXNlIEthdGVnb3JpZSBl
bnRow6RsdCA8c3Ryb25nPicgKyBhbnphaGwgKyAnPC9zdHJvbmc+ICcgKyAoYW56YWhsID09PSAx
ID8gJ01lZGl1bScgOiAnTWVkaWVuJykgKyAnLiBWb3IgZGVtIEzDtnNjaGVuIG3DvHNzZW4gc2ll
IHZlcnNjaG9iZW4gd2VyZGVuOicKICAgICAgICAgICAgICAgICkgKwogICAgICAgICAgICAnPC9k
aXY+JyArCiAgICAgICAgICAgIChhbnphaGwgPiAwCiAgICAgICAgICAgICAgICA/ICc8ZGl2IGNs
YXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPk1lZGllbiB2ZXJzY2hpZWJlbiBuYWNoPC9sYWJlbD48
c2VsZWN0IGlkPSJtZWRrYXQtdmVyc2NoaWViZW4temllbCIgY2xhc3M9ImZvcm0taW5wdXQiIHN0
eWxlPSJ3aWR0aDoxMDAlIj4nICsgdmVyc2NoaWViZU9wdHMgKyAnPC9zZWxlY3Q+PC9kaXY+Jwog
ICAgICAgICAgICAgICAgOiAnJwogICAgICAgICAgICApICsKICAgICAgICAgICAgJzxidXR0b24g
Y2xhc3M9ImJ0biBidG4tZ2VmYWhyIGJ0bi1rbGVpbiIgaWQ9Im1lZGthdC1sb2VzY2hlbiIgdHlw
ZT0iYnV0dG9uIiBzdHlsZT0ibWFyZ2luLXRvcDo2cHg7Y29sb3I6IzAwMCI+S2F0ZWdvcmllIGzD
tnNjaGVuPC9idXR0b24+JyArCiAgICAgICAgJzwvZmllbGRzZXQ+JzsKICAgIHZhciBmdXNzID0g
JzxidXR0b24gY2xhc3M9ImJ0biIgaWQ9Im1lZGthdC1lZGl0LWFiYnJlY2hlbiIgdHlwZT0iYnV0
dG9uIj5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9
ImJ0biBidG4tcHJpbWFlciIgaWQ9ImRsZy1zcGVpY2hlcm4iIHR5cGU9ImJ1dHRvbiI+U3BlaWNo
ZXJuPC9idXR0b24+JzsKCiAgICBtb2RhbFplaWdlbignS2F0ZWdvcmllIGJlYXJiZWl0ZW46ICcg
KyBrYXQubGFiZWwsIGtvZXJwZXIsIGZ1c3MsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBuZXUg
PSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZGthdC1lZGl0LWxhYmVsJykudmFsdWUgfHwg
JycpLnRyaW0oKTsKICAgICAgICBpZiAoIW5ldSkgeyB0b2FzdCgnQmV6ZWljaG51bmcgZGFyZiBu
aWNodCBsZWVyIHNlaW4nLCAnd2FybnVuZycpOyByZXR1cm47IH0KICAgICAgICBpZiAobmV1ID09
PSBrYXQubGFiZWwpIHsgbW9kYWxTY2hsaWVzc2VuKHRydWUpOyByZXR1cm47IH0KICAgICAgICB2
YXIgYWx0ID0ga2F0LmxhYmVsOwogICAgICAgIGthdC5sYWJlbCA9IG5ldTsKICAgICAgICBtZWRp
ZW5LYXRlZ29yaWVuU3BlaWNoZXJuKCkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgbW9k
YWxTY2hsaWVzc2VuKHRydWUpOwogICAgICAgICAgICB0b2FzdCgnVW1iZW5hbm50IHp1IOKAnicg
KyBuZXUgKyAnIicsICdlcmZvbGcnKTsKICAgICAgICAgICAgbWVkaWVuUmVuZGVybigpOwogICAg
ICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAga2F0LmxhYmVsID0gYWx0OyAg
IC8vIFJvbGxiYWNrCiAgICAgICAgICAgIHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdm
ZWhsZXInKTsKICAgICAgICB9KTsKICAgIH0pOwoKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdtZWRrYXQtZWRpdC1hYmJyZWNoZW4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0
aW9uKCkgeyBtb2RhbFNjaGxpZXNzZW4oKTsgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbWVka2F0LWxvZXNjaGVuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigp
IHsKICAgICAgICAvLyBTaWNoZXJoZWl0cy1Db25zdHJhaW50OiBEZWZhdWx0LUthdGVnb3JpZSAn
c29uc3RpZ2VzJyBuaWNodCBsw7ZzY2hiYXIKICAgICAgICBpZiAoa2V5ID09PSAnc29uc3RpZ2Vz
JykgewogICAgICAgICAgICB0b2FzdCgnRGllIFN0YW5kYXJkLUthdGVnb3JpZSDigJ5Tb25zdGln
ZXMiIGzDpHNzdCBzaWNoIG5pY2h0IGzDtnNjaGVuIOKAlCBzaWUgaXN0IEZhbGxiYWNrIGbDvHIg
ZnJlaWUgTWVkaWVuLicsICd3YXJudW5nJyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9
CiAgICAgICAgaWYgKGFsbGUubGVuZ3RoIDw9IDEpIHsKICAgICAgICAgICAgdG9hc3QoJ0RpZSBs
ZXR6dGUgS2F0ZWdvcmllIGthbm4gbmljaHQgZ2Vsw7ZzY2h0IHdlcmRlbicsICd3YXJudW5nJyk7
CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIHppZWwgPSBhbnphaGwg
PiAwID8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZGthdC12ZXJzY2hpZWJlbi16aWVsJyku
dmFsdWUgOiBudWxsOwogICAgICAgIGJlc3RhZXRpZ2VuKCdLYXRlZ29yaWUg4oCeJyArIGthdC5s
YWJlbCArICciIHdpcmtsaWNoIGzDtnNjaGVuPycgKyAoYW56YWhsID4gMCA/ICdcblxuJyArIGFu
emFobCArICcgTWVkaWVuIHdlcmRlbiBuYWNoIOKAnicgKyBtZWRpZW5LYXRlZ29yaWVMYWJlbCh6
aWVsKSArICciIHZlcnNjaG9iZW4uJyA6ICcnKSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIG1l
ZGllbkthdGVnb3JpZUxvZXNjaGVuQXVzZnVlaHJlbihrZXksIHppZWwpOwogICAgICAgIH0pOwog
ICAgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBtZWRpZW5LYXRlZ29yaWVMb2VzY2hlbkF1c2Z1ZWhy
ZW4oa2V5LCB6aWVsS2V5KSB7CiAgICB2YXIgYWxsZSA9IG1lZGllbkthdGVnb3JpZW5HZXQoKTsK
ICAgIHZhciBtZWRpZW5JbkthdCA9IChaLm1lZGllbiB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKG0p
IHsgcmV0dXJuIG0ua2F0ZWdvcmllID09PSBrZXk7IH0pOwogICAgLy8gUGhhc2UgMTogTWVkaWVu
IHBlciBQQVRDSCB1bWjDpG5nZW4gKHBhcmFsbGVsKQogICAgdmFyIHByb21pc2VzID0gbWVkaWVu
SW5LYXQubWFwKGZ1bmN0aW9uKG0pIHsKICAgICAgICByZXR1cm4gYXBpRmV0Y2goJy9hcGkvbWVk
aWVuLycgKyBlbmNvZGVVUklDb21wb25lbnQobS5pZCksIHsKICAgICAgICAgICAgbWV0aG9kOiAn
UEFUQ0gnLAogICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGthdGVnb3JpZTogemll
bEtleSB9KQogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7IG0ua2F0ZWdvcmllID0gemllbEtl
eTsgfSk7CiAgICB9KTsKICAgIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKGZ1bmN0aW9uKCkg
ewogICAgICAgIC8vIFBoYXNlIDI6IEthdGVnb3JpZSBhdXMgTGlzdGUgZW50ZmVybmVuCiAgICAg
ICAgdmFyIGlkeCA9IGFsbGUuZmluZEluZGV4KGZ1bmN0aW9uKGspIHsgcmV0dXJuIGsua2V5ID09
PSBrZXk7IH0pOwogICAgICAgIGlmIChpZHggPj0gMCkgYWxsZS5zcGxpY2UoaWR4LCAxKTsKICAg
ICAgICAvLyBQb3NpdGlvbnMgbm9ybWFsaXNpZXJlbgogICAgICAgIGFsbGUuZm9yRWFjaChmdW5j
dGlvbihrLCBpKSB7IGsucG9zaXRpb24gPSBpICsgMTsgfSk7CiAgICAgICAgcmV0dXJuIG1lZGll
bkthdGVnb3JpZW5TcGVpY2hlcm4oKTsKICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAg
bW9kYWxTY2hsaWVzc2VuKHRydWUpOwogICAgICAgIHRvYXN0KCdLYXRlZ29yaWUgZ2Vsw7ZzY2h0
JywgJ2VyZm9sZycpOwogICAgICAgIG1lZGllblJlbmRlcm4oKTsKICAgIH0pLmNhdGNoKGZ1bmN0
aW9uKGUpIHsKICAgICAgICB0b2FzdCgnRmVobGVyIGJlaW0gTMO2c2NoZW46ICcgKyBlLm1lc3Nh
Z2UsICdmZWhsZXInKTsKICAgICAgICBtZWRpZW5SZW5kZXJuKCk7CiAgICB9KTsKfQoKZXhwb3J0
IGZ1bmN0aW9uIG1lZGllbkthdGVnb3JpZW5EcmFnSW5pdChjb250YWluZXIpIHsKICAgIC8vIERy
YWctU29ydCBkZXIgQWtrb3JkZW9uLVNla3Rpb25lbiB2aWEgRHJhZy1IYW5kbGUgKC5tZWRpZW4t
a2F0LWRyYWcpCiAgICB2YXIgZHJhZ0tleSA9IG51bGw7CiAgICBjb250YWluZXIuYWRkRXZlbnRM
aXN0ZW5lcignZHJhZ3N0YXJ0JywgZnVuY3Rpb24oZSkgewogICAgICAgIHZhciBoYW5kbGUgPSBl
LnRhcmdldC5jbG9zZXN0ICYmIGUudGFyZ2V0LmNsb3Nlc3QoJy5tZWRpZW4ta2F0LWRyYWcnKTsK
ICAgICAgICBpZiAoIWhhbmRsZSkgeyBlLnByZXZlbnREZWZhdWx0KCk7IHJldHVybjsgfQogICAg
ICAgIGRyYWdLZXkgPSBoYW5kbGUuZ2V0QXR0cmlidXRlKCdkYXRhLWthdC1kcmFnJyk7CiAgICAg
ICAgZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdtb3ZlJzsKICAgICAgICBlLmRhdGFU
cmFuc2Zlci5zZXREYXRhKCd0ZXh0L21lZGllbi1rYXQnLCBkcmFnS2V5KTsKICAgIH0pOwogICAg
Y29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgZnVuY3Rpb24oZSkgewogICAg
ICAgIGlmICghZHJhZ0tleSkgcmV0dXJuOwogICAgICAgIHZhciBzZWt0aW9uID0gZS50YXJnZXQu
Y2xvc2VzdCAmJiBlLnRhcmdldC5jbG9zZXN0KCcubWVkaWVuLWFra29yZGVvbi1zZWt0aW9uJyk7
CiAgICAgICAgaWYgKCFzZWt0aW9uKSByZXR1cm47CiAgICAgICAgdmFyIHppZWxLZXkgPSBzZWt0
aW9uLmdldEF0dHJpYnV0ZSgnZGF0YS1rYXRlZ29yaWUnKTsKICAgICAgICBpZiAoemllbEtleSA9
PT0gZHJhZ0tleSkgcmV0dXJuOwogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICBl
LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ21vdmUnOwogICAgICAgIHNla3Rpb24uY2xhc3NM
aXN0LmFkZCgnbWVkaWVuLWthdC1kcm9wLXppZWwnKTsKICAgIH0pOwogICAgY29udGFpbmVyLmFk
ZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgc2Vr
dGlvbiA9IGUudGFyZ2V0LmNsb3Nlc3QgJiYgZS50YXJnZXQuY2xvc2VzdCgnLm1lZGllbi1ha2tv
cmRlb24tc2VrdGlvbicpOwogICAgICAgIGlmIChzZWt0aW9uKSBzZWt0aW9uLmNsYXNzTGlzdC5y
ZW1vdmUoJ21lZGllbi1rYXQtZHJvcC16aWVsJyk7CiAgICB9KTsKICAgIGNvbnRhaW5lci5hZGRF
dmVudExpc3RlbmVyKCdkcm9wJywgZnVuY3Rpb24oZSkgewogICAgICAgIGlmICghZHJhZ0tleSkg
cmV0dXJuOwogICAgICAgIHZhciBzZWt0aW9uID0gZS50YXJnZXQuY2xvc2VzdCAmJiBlLnRhcmdl
dC5jbG9zZXN0KCcubWVkaWVuLWFra29yZGVvbi1zZWt0aW9uJyk7CiAgICAgICAgaWYgKCFzZWt0
aW9uKSByZXR1cm47CiAgICAgICAgdmFyIHppZWxLZXkgPSBzZWt0aW9uLmdldEF0dHJpYnV0ZSgn
ZGF0YS1rYXRlZ29yaWUnKTsKICAgICAgICBzZWt0aW9uLmNsYXNzTGlzdC5yZW1vdmUoJ21lZGll
bi1rYXQtZHJvcC16aWVsJyk7CiAgICAgICAgaWYgKHppZWxLZXkgPT09IGRyYWdLZXkpIHsgZHJh
Z0tleSA9IG51bGw7IHJldHVybjsgfQogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAg
ICB2YXIgYWxsZSA9IG1lZGllbkthdGVnb3JpZW5HZXQoKTsKICAgICAgICB2YXIgZnJvbUlkeCA9
IGFsbGUuZmluZEluZGV4KGZ1bmN0aW9uKGspIHsgcmV0dXJuIGsua2V5ID09PSBkcmFnS2V5OyB9
KTsKICAgICAgICB2YXIgdG9JZHggICA9IGFsbGUuZmluZEluZGV4KGZ1bmN0aW9uKGspIHsgcmV0
dXJuIGsua2V5ID09PSB6aWVsS2V5OyB9KTsKICAgICAgICBpZiAoZnJvbUlkeCA8IDAgfHwgdG9J
ZHggPCAwKSB7IGRyYWdLZXkgPSBudWxsOyByZXR1cm47IH0KICAgICAgICB2YXIgbW92ZWQgPSBh
bGxlLnNwbGljZShmcm9tSWR4LCAxKVswXTsKICAgICAgICBhbGxlLnNwbGljZSh0b0lkeCwgMCwg
bW92ZWQpOwogICAgICAgIGFsbGUuZm9yRWFjaChmdW5jdGlvbihrLCBpKSB7IGsucG9zaXRpb24g
PSBpICsgMTsgfSk7CiAgICAgICAgZHJhZ0tleSA9IG51bGw7CiAgICAgICAgbWVkaWVuS2F0ZWdv
cmllblNwZWljaGVybigpLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIG1lZGllblJlbmRl
cm4oKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHRvYXN0KCdS
ZWloZW5mb2xnZSBrb25udGUgbmljaHQgZ2VzcGVpY2hlcnQgd2VyZGVuOiAnICsgZS5tZXNzYWdl
LCAnZmVobGVyJyk7CiAgICAgICAgfSk7CiAgICB9KTsKfQoKCgpleHBvcnQgZnVuY3Rpb24gaW5p
dE1lZGllbkxpc3RlbmVycygpIHsKICAgIHZhciBtZWRpZW5CZXpJbnB1dCAgID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ21lZGllbi1iZXplaWNobnVuZycpOwogICAgdmFyIG1lZGllbkRhdGVp
SW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVkaWVuLWRhdGVpJyk7CiAgICB2YXIg
bWVkaWVuVXBsb2FkQnRuICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tbWVkaWVuLXVw
bG9hZCcpOwogICAgZnVuY3Rpb24gbWVkaWVuVXBsb2FkS25vcGZQcnVlZmVuKCkgewogICAgICAg
IGlmICghbWVkaWVuVXBsb2FkQnRuKSByZXR1cm47CiAgICAgICAgdmFyIGhhdEJleiA9IG1lZGll
bkJleklucHV0ICYmIG1lZGllbkJleklucHV0LnZhbHVlLnRyaW0oKTsKICAgICAgICB2YXIgaGF0
RGF0ZWkgPSBtZWRpZW5EYXRlaUlucHV0ICYmIG1lZGllbkRhdGVpSW5wdXQuZmlsZXMgJiYgbWVk
aWVuRGF0ZWlJbnB1dC5maWxlc1swXTsKICAgICAgICBtZWRpZW5VcGxvYWRCdG4uZGlzYWJsZWQg
PSAhKGhhdEJleiAmJiBoYXREYXRlaSk7CiAgICB9CiAgICBpZiAobWVkaWVuQmV6SW5wdXQpICAg
bWVkaWVuQmV6SW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBtZWRpZW5VcGxvYWRLbm9w
ZlBydWVmZW4pOwogICAgaWYgKG1lZGllbkRhdGVpSW5wdXQpIG1lZGllbkRhdGVpSW5wdXQuYWRk
RXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKCFtZWRpZW5C
ZXpJbnB1dC52YWx1ZS50cmltKCkgJiYgdGhpcy5maWxlc1swXSkgewogICAgICAgICAgICBtZWRp
ZW5CZXpJbnB1dC52YWx1ZSA9IHRoaXMuZmlsZXNbMF0ubmFtZS5yZXBsYWNlKC9cLlteLl0rJC8s
ICcnKTsKICAgICAgICB9CiAgICAgICAgbWVkaWVuVXBsb2FkS25vcGZQcnVlZmVuKCk7CiAgICB9
KTsKICAgIGlmIChtZWRpZW5VcGxvYWRCdG4pICBtZWRpZW5VcGxvYWRCdG4uYWRkRXZlbnRMaXN0
ZW5lcignY2xpY2snLCBtZWRpZW5VcGxvYWRIYW5kbGVyKTsKCiAgICAvLyBFZGl0L0RlbGV0ZSB2
aWEgRXZlbnQtRGVsZWdhdGlvbiBhdWYgZGVtIEFra29yZGVvbi1Db250YWluZXIKICAgIHZhciBt
ZWRpZW5Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVkaWVuLWFra29yZGVvbicpOwog
ICAgaWYgKCFtZWRpZW5Cb3gpIHJldHVybjsKCiAgICBtZWRpZW5Cb3guYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIGJ0biA9IGUudGFyZ2V0LmNsb3Nl
c3QoJ2J1dHRvbltkYXRhLWFrdGlvbl0nKTsKICAgICAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAg
ICAgIHZhciBpZCA9IGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKTsKICAgICAgICBpZiAoIWlk
KSByZXR1cm47CiAgICAgICAgaWYgKGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtYWt0aW9uJykgPT09
ICdtZWRpZW4tYmVhcmJlaXRlbicpIG1lZGllbkJlYXJiZWl0ZW5EaWFsb2coaWQpOwogICAgfSk7
CgogICAgLy8gRHJhZy1hbmQtRHJvcCB6d2lzY2hlbiBLYXRlZ29yaWVuIOKAlCBiZWkgRHJhZy1T
dGFydCBrbGFwcGVuIHdpciBhbGxlCiAgICAvLyBTZWt0aW9uZW4gYXVmLCBkYW1pdCBkZXIgTnV0
emVyIGFsbGUgWmllbC1LYXRlZ29yaWVuIGF1ZiBlaW5lbiBCbGljayBzaWVodC4KICAgIG1lZGll
bkJveC5hZGRFdmVudExpc3RlbmVyKCdkcmFnc3RhcnQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAg
dmFyIGthcnRlID0gZS50YXJnZXQuY2xvc2VzdCgnLm1lZGllbi1rYXJ0ZScpOwogICAgICAgIGlm
ICgha2FydGUpIHJldHVybjsKICAgICAgICBrYXJ0ZS5jbGFzc0xpc3QuYWRkKCdkcmFnZ2luZycp
OwogICAgICAgIGUuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvbWVkaWVuLWlkJywga2FydGUu
Z2V0QXR0cmlidXRlKCdkYXRhLWlkJykpOwogICAgICAgIC8vIEFsbGUgQWtrb3JkZW9uLVNla3Rp
b25lbiBhdWZrbGFwcGVuLCB2b3JpZ2VuIE9wZW4tU3RhdGUgbWVya2VuLgogICAgICAgIG1lZGll
bkJveC5xdWVyeVNlbGVjdG9yQWxsKCcubWVkaWVuLWFra29yZGVvbi1zZWt0aW9uJykuZm9yRWFj
aChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIGlmICghcy5kYXRhc2V0Lndhck9mZmVuKSB7CiAg
ICAgICAgICAgICAgICBzLmRhdGFzZXQud2FyT2ZmZW4gPSBzLm9wZW4gPyAnMScgOiAnMCc7CiAg
ICAgICAgICAgIH0KICAgICAgICAgICAgcy5vcGVuID0gdHJ1ZTsKICAgICAgICB9KTsKICAgICAg
ICBtZWRpZW5Cb3guY2xhc3NMaXN0LmFkZCgnbWVkaWVuLWRyb3AtbW9kdXMnKTsKICAgICAgICBl
LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gJ21vdmUnOwogICAgfSk7CiAgICBtZWRpZW5C
b3guYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VuZCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIg
a2FydGUgPSBlLnRhcmdldC5jbG9zZXN0KCcubWVkaWVuLWthcnRlJyk7CiAgICAgICAgaWYgKGth
cnRlKSBrYXJ0ZS5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnZ2luZycpOwogICAgICAgIG1lZGllbkJv
eC5xdWVyeVNlbGVjdG9yQWxsKCcubWVkaWVuLWFra29yZGVvbi1zZWt0aW9uLmRyb3AtdGFyZ2V0
JykuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIHMuY2xhc3NMaXN0LnJlbW92ZSgn
ZHJvcC10YXJnZXQnKTsKICAgICAgICB9KTsKICAgICAgICAvLyBEcm9wLU1vZHVzIGJlZW5kZW4g
KyB1cnNwcsO8bmdsaWNoZW4gT3Blbi1TdGF0ZSB3aWVkZXJoZXJzdGVsbGVuLgogICAgICAgIG1l
ZGllbkJveC5jbGFzc0xpc3QucmVtb3ZlKCdtZWRpZW4tZHJvcC1tb2R1cycpOwogICAgICAgIG1l
ZGllbkJveC5xdWVyeVNlbGVjdG9yQWxsKCcubWVkaWVuLWFra29yZGVvbi1zZWt0aW9uJykuZm9y
RWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIGlmIChzLmRhdGFzZXQud2FyT2ZmZW4gIT09
IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgcy5vcGVuID0gcy5kYXRhc2V0Lndhck9mZmVu
ID09PSAnMSc7CiAgICAgICAgICAgICAgICBkZWxldGUgcy5kYXRhc2V0Lndhck9mZmVuOwogICAg
ICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9KTsKICAgIG1lZGllbkJveC5hZGRFdmVudExpc3Rl
bmVyKCdkcmFnb3ZlcicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgc2VrID0gZS50YXJnZXQu
Y2xvc2VzdCgnLm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbicpOwogICAgICAgIGlmICghc2VrKSBy
ZXR1cm47CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIGUuZGF0YVRyYW5zZmVy
LmRyb3BFZmZlY3QgPSAnbW92ZSc7CiAgICB9KTsKICAgIG1lZGllbkJveC5hZGRFdmVudExpc3Rl
bmVyKCdkcmFnZW50ZXInLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIHNlayA9IGUudGFyZ2V0
LmNsb3Nlc3QoJy5tZWRpZW4tYWtrb3JkZW9uLXNla3Rpb24nKTsKICAgICAgICBpZiAoIXNlaykg
cmV0dXJuOwogICAgICAgIG1lZGllbkJveC5xdWVyeVNlbGVjdG9yQWxsKCcubWVkaWVuLWFra29y
ZGVvbi1zZWt0aW9uLmRyb3AtdGFyZ2V0JykuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAg
ICAgIGlmIChzICE9PSBzZWspIHMuY2xhc3NMaXN0LnJlbW92ZSgnZHJvcC10YXJnZXQnKTsKICAg
ICAgICB9KTsKICAgICAgICBzZWsuY2xhc3NMaXN0LmFkZCgnZHJvcC10YXJnZXQnKTsKICAgIH0p
OwogICAgbWVkaWVuQm94LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBmdW5jdGlvbihlKSB7CiAg
ICAgICAgdmFyIHNlayA9IGUudGFyZ2V0LmNsb3Nlc3QoJy5tZWRpZW4tYWtrb3JkZW9uLXNla3Rp
b24nKTsKICAgICAgICBpZiAoIXNlaykgcmV0dXJuOwogICAgICAgIGUucHJldmVudERlZmF1bHQo
KTsKICAgICAgICBzZWsuY2xhc3NMaXN0LnJlbW92ZSgnZHJvcC10YXJnZXQnKTsKICAgICAgICB2
YXIgaWQgPSBlLmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0L21lZGllbi1pZCcpOwogICAgICAg
IHZhciBuZXVlS2F0ID0gc2VrLmdldEF0dHJpYnV0ZSgnZGF0YS1rYXRlZ29yaWUnKTsKICAgICAg
ICBpZiAoaWQgJiYgbmV1ZUthdCkgbWVkaWVuVmVyc2NoaWViZW4oaWQsIG5ldWVLYXQpOwogICAg
fSk7Cn0K
### FILE: js/admin/personen.js | 32664
Ly8gPT09IGFkbWluL3BlcnNvbmVuLmpzID09PQovLyBQZXJzb25hbHZlcndhbHR1bmcgKFRhYmVs
bGUgKyBJbmxpbmUtRWRpdCArIEJlYXJiZWl0ZW4tL05ldS1Nb2RhbCArCi8vIFJlaWhlbmZvbGdl
KSwgU3RhbmRvcnRlLVRhYiArIFJoeXRobXVzLUdlbmVyYXRvci1EaWFsb2cuCi8vCi8vIENyb3Nz
LU1vZHVsZS1Ib29rcyAoUGhhc2UgNmEtV29ya2Fyb3VuZCk6Ci8vICAgZmVpZXJ0YWdCZXplaWNo
bnVuZyAtPiBhZG1pbi9saXN0ZW4uanMgKFBoYXNlIDZiKQovLyAgIGVpbnN0ZWxsdW5nZW5SZW5k
ZXJuIC0+IGFkbWluL2FkbWluLmpzIChQaGFzZSA2ZikKCmltcG9ydCB7IFogfSBmcm9tICcuLi9j
b3JlL3N0YXRlLmpzJzsKaW1wb3J0IHsKICAgIGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIsIGRhdHVt
U3RyLCBkYXR1bUZvcm1hdERFLAogICAgcGVyc29uTmFtZSwgcGVyc29uVm9sbE5hbWUsIGRpZW5z
dGdyYWRSYW5nLAogICAgamFocmVzTWVuZ2VBdXNFaW50cmFlZ2VuCn0gZnJvbSAnLi4vY29yZS91
dGlsLmpzJzsKaW1wb3J0IHsgYXBpLCBhcGlQb3N0LCBhcGlQdXQsIGFwaVNhZmUsIGFwaUZldGNo
IH0gZnJvbSAnLi4vY29yZS9hcGkuanMnOwppbXBvcnQgeyB0b2FzdCB9IGZyb20gJy4uL3VpL3Rv
YXN0LmpzJzsKaW1wb3J0IHsgbW9kYWxaZWlnZW4sIG1vZGFsU2NobGllc3NlbiwgYmVzdGFldGln
ZW4gfSBmcm9tICcuLi91aS9tb2RhbC5qcyc7CmltcG9ydCB7IHBlcm1pc3Npb25Ib29rcywgdmll
d0FzQWt0aXZpZXJlbiwgdmlld0FzQmVlbmRlbiwgbmF2U2ljaHRiYXJrZWl0QW53ZW5kZW4gfSBm
cm9tICcuLi9jb3JlL3Blcm1pc3Npb25zLmpzJzsKaW1wb3J0IHsgcGVyc29uZW5OZXVBdWZiYXVl
biB9IGZyb20gJy4uL2NvcmUvZGF0ZW5MYWRlbi5qcyc7CmltcG9ydCB7IGdyaWRSZW5kZXJuLCBr
b3BmUmVuZGVybiB9IGZyb20gJy4uL2dyaWQvcmVuZGVyLmpzJzsKCmV4cG9ydCB2YXIgcGVyc29u
ZW5Ib29rcyA9IHsKICAgIGZlaWVydGFnQmV6ZWljaG51bmc6IG51bGwsICAgIC8vIGFkbWluL2xp
c3Rlbi5qcyAoUGhhc2UgNmIpCiAgICBlaW5zdGVsbHVuZ2VuUmVuZGVybjogbnVsbCAgICAvLyBh
ZG1pbi9hZG1pbi5qcyAoUGhhc2UgNmYpCn07CgoKLy8gR2VuZXJpc2NoZXIgRmV0Y2gtSGVscGVy
IGbDvHIgUEFUQ0gvREVMRVRFIChhcGlQb3N0IG1hY2h0IFBPU1QsIGFwaVB1dCBtYWNodCBQVVQp
Ci8vIGFwaUZldGNoOiBqZXR6dCBpbiBqcy9jb3JlL2FwaS5qcwoKLy8gPT09PT0gQWRtaW46IFN0
YW5kb3J0ZSAmIFNjaGljaHRmb2xnZSA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIHN0YW5kb3J0ZVJl
bmRlcm4oKSB7CiAgICB2YXIgdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhbmRv
cnRlLXRib2R5Jyk7CiAgICBpZiAoIXRib2R5KSByZXR1cm47CiAgICB2YXIgaGV1dGUgPSBuZXcg
RGF0ZShaLmhldXRlU3RyICsgJ1QwMDowMDowMCcpOwogICAgdmFyIGh0bWwgPSAnJzsKICAgICha
LmFkbWluLnN0YW5kb3J0ZSB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihzbywgaWR4KSB7CiAgICAg
ICAgdmFyIHZvcnNjaGF1ID0gJyc7CiAgICAgICAgaWYgKHNvLmlzdFBvb2wpIHsKICAgICAgICAg
ICAgdm9yc2NoYXUgPSAnPHNwYW4gY2xhc3M9InNmLXZvcnNjaGF1IHNmLXZvcnNjaGF1LXBvb2wi
PlBvb2wgKGZsZXhpYmVsKTwvc3Bhbj4nOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTQ7IGkrKykgewogICAgICAgICAgICAgICAgdmFyIGQgPSBuZXcg
RGF0ZShoZXV0ZS5nZXRUaW1lKCkgKyBpICogODY0MDAwMDApOwogICAgICAgICAgICAgICAgdmFy
IGtleSA9IGRhdHVtU3RyKGQpOwogICAgICAgICAgICAgICAgdmFyIHdlcnQgPSAoc28uc2NoaWNo
dGZvbGdlIHx8IHt9KVtrZXldIHx8ICfigJMnOwogICAgICAgICAgICAgICAgdmFyIGNscyA9IHdl
cnQgPT09ICdBQkMnID8gJ3NmLWFiYycgOiB3ZXJ0ID09PSAnQkNBJyA/ICdzZi1iY2EnIDogd2Vy
dCA9PT0gJ0NBQicgPyAnc2YtY2FiJyA6ICcnOwogICAgICAgICAgICAgICAgdm9yc2NoYXUgKz0g
JzxzcGFuIGNsYXNzPSJzZi12b3JzY2hhdSAnICsgY2xzICsgJyIgdGl0bGU9IicgKyBrZXkgKyAn
Ij4nICsgZXNjYXBlSFRNTCh3ZXJ0KSArICc8L3NwYW4+JzsKICAgICAgICAgICAgfQogICAgICAg
IH0KICAgICAgICBodG1sICs9ICc8dHI+JyArCiAgICAgICAgICAgICc8dGQ+PGlucHV0IHR5cGU9
InRleHQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihzby5uYW1lIHx8ICcnKSArICciIGRhdGEtaWR4
PSInICsgaWR4ICsgJyIgZGF0YS1mZWxkPSJuYW1lIiBjbGFzcz0ic3RhbmRvcnQtaW5wdXQiPjwv
dGQ+JyArCiAgICAgICAgICAgICc8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSInICsgZXNj
YXBlQXR0cihzby5rdWVyemVsIHx8ICcnKSArICciIGRhdGEtaWR4PSInICsgaWR4ICsgJyIgZGF0
YS1mZWxkPSJrdWVyemVsIiBjbGFzcz0ic3RhbmRvcnQtaW5wdXQiIG1heGxlbmd0aD0iNCIgc3R5
bGU9IndpZHRoOjUwcHgiPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxp
Z246Y2VudGVyIj48aW5wdXQgdHlwZT0iY2hlY2tib3giICcgKyAoc28uaXN0UG9vbCA/ICdjaGVj
a2VkJyA6ICcnKSArICcgZGF0YS1pZHg9IicgKyBpZHggKyAnIiBkYXRhLWZlbGQ9ImlzdFBvb2wi
IGNsYXNzPSJzdGFuZG9ydC1pbnB1dCI+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZD4nICsgdm9y
c2NoYXUgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0ZD4nICsKICAgICAgICAgICAgICAgICc8
ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjZweDthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUt
c3BhY2U6bm93cmFwIj4nICsKICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRu
IGJ0bi1zZWsgYnRuLWtsZWluIGJ0bi1pY29uIGJ0bi1yaHl0aG11cyIgZGF0YS1ha3Rpb249InN0
YW5kb3J0LXJoeXRobXVzIiBkYXRhLWlkeD0iJyArIGlkeCArICciIHRpdGxlPSJSaHl0aG11cyBl
cnpldWdlbiI+Umh5dGhtdXM8L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICAgICAnPGJ1dHRv
biBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIgYnRuLWtsZWluIGJ0bi1sb2VzY2hlbiIgZGF0YS1ha3Rp
b249InN0YW5kb3J0LWxvZXNjaGVuIiBkYXRhLWlkeD0iJyArIGlkeCArICciIHRpdGxlPSJTdGFu
ZG9ydCBsw7ZzY2hlbiI+4pyVPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyAr
CiAgICAgICAgICAgICc8L3RkPicgKwogICAgICAgICc8L3RyPic7CiAgICB9KTsKICAgIHRib2R5
LmlubmVySFRNTCA9IGh0bWw7Cn0KCmV4cG9ydCBmdW5jdGlvbiBzdGFuZG9ydGVBdXNUYWJlbGxl
TGVzZW4oKSB7CiAgICB2YXIgYWx0ZSA9IFouYWRtaW4uc3RhbmRvcnRlIHx8IFtdOwogICAgdmFy
IGZlbGRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdGFuZG9ydC1pbnB1dCcpOwog
ICAgdmFyIG5ldSA9IGFsdGUubWFwKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIE9iamVjdC5hc3NpZ24o
e30sIHMpOyB9KTsKICAgIGZlbGRlci5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsKICAgICAgICB2YXIg
aWR4ID0gcGFyc2VJbnQoZi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWR4JykpOwogICAgICAgIHZhciBm
ZWxkID0gZi5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmVsZCcpOwogICAgICAgIGlmICghbmV1W2lkeF0p
IHJldHVybjsKICAgICAgICBpZiAoZmVsZCA9PT0gJ2lzdFBvb2wnKSBuZXVbaWR4XS5pc3RQb29s
ID0gZi5jaGVja2VkOwogICAgICAgIGVsc2UgbmV1W2lkeF1bZmVsZF0gPSBmLnZhbHVlOwogICAg
fSk7CiAgICBuZXUuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgaWYgKHMuaXN0UG9vbCkg
ZGVsZXRlIHMuc2NoaWNodGZvbGdlOwogICAgfSk7CiAgICByZXR1cm4gbmV1LmZpbHRlcihmdW5j
dGlvbihzKSB7IHJldHVybiBzLm5hbWU7IH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gcmh5dGhtdXNH
ZW5lcmF0b3JEaWFsb2coaWR4KSB7CiAgICB2YXIgc28gPSAoWi5hZG1pbi5zdGFuZG9ydGUgfHwg
W10pW2lkeF07CiAgICBpZiAoIXNvKSByZXR1cm47CiAgICB2YXIgamFociA9IFouYWRtaW4uamFo
ciB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7CiAgICB2YXIga29lcnBlciA9ICc8cCBzdHls
ZT0ibWFyZ2luLXRvcDowIj5FcnpldWdlIGVpbmVuIHdpZWRlcmtlaHJlbmRlbiBSaHl0aG11cyBm
w7xyIDxzdHJvbmc+JyArIGVzY2FwZUhUTUwoc28ubmFtZSkgKyAnPC9zdHJvbmc+LiBEZXIgUmh5
dGhtdXMgd2lyZCBhYiBTdGFydGRhdHVtIGpld2VpbHMgZsO8ciBkaWUgYW5nZWdlYmVuZSBCbG9j
a2zDpG5nZSBhbmdld2VuZGV0IHVuZCB6eWtsaXNjaCB3aWVkZXJob2x0IGJpcyBKYWhyZXNlbmRl
LjwvcD4nICsKICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUt
Y29sdW1uczoxZnIgMWZyO2dhcDowIDE2cHgiPicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3Jt
LWdydXBwZSI+PGxhYmVsPlN0YXJ0ZGF0dW0gKHdvIFp5a2x1cyBiZWdpbm50KTwvbGFiZWw+PGlu
cHV0IHR5cGU9ImRhdGUiIGlkPSJyaC1zdGFydCIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3
aWR0aDoxMDAlIiB2YWx1ZT0iJyArIGphaHIgKyAnLTAxLTAxIj48L2Rpdj4nICsKICAgICAgICAn
PGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5CbG9ja2zDpG5nZSBpbiBUYWdlbjwvbGFi
ZWw+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9InJoLWJsb2NrIiBjbGFzcz0iZm9ybS1pbnB1dCIg
c3R5bGU9IndpZHRoOjEwMCUiIHZhbHVlPSI3IiBtaW49IjEiIG1heD0iMzEiPjwvZGl2PicgKwog
ICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImdyaWQtY29sdW1uOnNwYW4g
MiI+PGxhYmVsPlJlaWhlbmZvbGdlIChrb21tYWdldHJlbm50LCB6LkIuIEFCQyxCQ0EsQ0FCKTwv
bGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJyaC1mb2xnZSIgY2xhc3M9ImZvcm0taW5wdXQi
IHN0eWxlPSJ3aWR0aDoxMDAlIiB2YWx1ZT0iQUJDLEJDQSxDQUIiPjwvZGl2PicgKwogICAgICAg
ICc8L2Rpdj4nOwoKICAgIG1vZGFsWmVpZ2VuKCdTY2hpY2h0Zm9sZ2UtUmh5dGhtdXMgZsO8ciAn
ICsgc28ubmFtZSwga29lcnBlciwKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmlt
YWVyIiBpZD0icmgtYW53ZW5kZW4iPkFud2VuZGVuPC9idXR0b24+JywKICAgICAgICBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3JoLXN0YXJ0JykudmFsdWUgKyAnVDAwOjAwOjAwJyk7CiAgICAgICAgICAgIHZhciBi
bG9jayA9IHBhcnNlSW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyaC1ibG9jaycpLnZhbHVl
LCAxMCkgfHwgNzsKICAgICAgICAgICAgdmFyIGZvbGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3JoLWZvbGdlJykudmFsdWUuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMu
dHJpbSgpLnRvVXBwZXJDYXNlKCk7fSkuZmlsdGVyKEJvb2xlYW4pOwogICAgICAgICAgICBpZiAo
IWZvbGdlLmxlbmd0aCB8fCBpc05hTihzdGFydC5nZXRUaW1lKCkpKSB7IHRvYXN0KCdVbmfDvGx0
aWdlIEVpbmdhYmUnLCAnd2FybnVuZycpOyByZXR1cm47IH0KCiAgICAgICAgICAgIHZhciBzY2hp
Y2h0Zm9sZ2UgPSB7fTsKICAgICAgICAgICAgdmFyIGphaHJTdGFydCA9IG5ldyBEYXRlKGphaHIg
KyAnLTAxLTAxVDAwOjAwOjAwJyk7CiAgICAgICAgICAgIHZhciBqYWhyRW5kZSA9IG5ldyBEYXRl
KGphaHIgKyAnLTEyLTMxVDAwOjAwOjAwJyk7CiAgICAgICAgICAgIHZhciB0YWcgPSBuZXcgRGF0
ZShqYWhyU3RhcnQpOwogICAgICAgICAgICB3aGlsZSAodGFnIDw9IGphaHJFbmRlKSB7CiAgICAg
ICAgICAgICAgICB2YXIgZGlmZlRhZ2UgPSBNYXRoLmZsb29yKCh0YWcgLSBzdGFydCkgLyA4NjQw
MDAwMCk7CiAgICAgICAgICAgICAgICBpZiAoZGlmZlRhZ2UgPj0gMCkgewogICAgICAgICAgICAg
ICAgICAgIHZhciB6eWtsdXNJZHggPSBNYXRoLmZsb29yKGRpZmZUYWdlIC8gYmxvY2spICUgZm9s
Z2UubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIHNjaGljaHRmb2xnZVtkYXR1bVN0cih0YWcp
XSA9IGZvbGdlW3p5a2x1c0lkeF07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0
YWcuc2V0RGF0ZSh0YWcuZ2V0RGF0ZSgpICsgMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAg
c28uc2NoaWNodGZvbGdlID0gc2NoaWNodGZvbGdlOwogICAgICAgICAgICBzby5pc3RQb29sID0g
ZmFsc2U7CiAgICAgICAgICAgIG1vZGFsU2NobGllc3NlbigpOwogICAgICAgICAgICBzdGFuZG9y
dGVSZW5kZXJuKCk7CiAgICAgICAgICAgIHRvYXN0KCdSaHl0aG11cyBmw7xyICcgKyBzby5uYW1l
ICsgJyBlcnpldWd0IOKAlCDigJ5TcGVpY2hlcm4iIG5pY2h0IHZlcmdlc3NlbicsICdlcmZvbGcn
KTsKICAgICAgICB9CiAgICApOwp9CgovLyBkaWVuc3RncmFkUmFuZzogamV0enQgaW4ganMvY29y
ZS91dGlsLmpzCgpleHBvcnQgZnVuY3Rpb24gcGVyc29uYWxUYWJlbGxlUmVuZGVybigpIHsKICAg
IHZhciBmaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW4tcGVyc29uYWwtZmls
dGVyJyk7CiAgICB2YXIgemVpZ2VVbWdlc2V0enRlID0gZmlsdGVyID8gZmlsdGVyLmNoZWNrZWQg
OiBmYWxzZTsKICAgIHZhciBhbGxlUGVyc29uZW4gPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtd
KS5zbGljZSgpCiAgICAgICAgLmZpbHRlcihmdW5jdGlvbihwKSB7IHJldHVybiBwLmFrdGl2IHx8
IHplaWdlVW1nZXNldHp0ZTsgfSkKICAgICAgICAuc29ydChmdW5jdGlvbihhLCBiKSB7CiAgICAg
ICAgICAgIGlmICghIWEuYWt0aXYgIT09ICEhYi5ha3RpdikgcmV0dXJuIGEuYWt0aXYgPyAtMSA6
IDE7CiAgICAgICAgICAgIGlmICghYS5ha3RpdikgewogICAgICAgICAgICAgICAgdmFyIHJnID0g
ZGllbnN0Z3JhZFJhbmcoYS5kaWVuc3RncmFkKSAtIGRpZW5zdGdyYWRSYW5nKGIuZGllbnN0Z3Jh
ZCk7CiAgICAgICAgICAgICAgICBpZiAocmcgIT09IDApIHJldHVybiByZzsKICAgICAgICAgICAg
fQogICAgICAgICAgICByZXR1cm4gKGEucG9zaXRpb24gfHwgOTk5KSAtIChiLnBvc2l0aW9uIHx8
IDk5OSk7CiAgICAgICAgfSk7CiAgICB2YXIgZWNodGVyU1UgPSAodHlwZW9mIFouX2VjaHRlU1Ug
IT09ICd1bmRlZmluZWQnKSA/IFouX2VjaHRlU1UgOiBaLmlzdFN1cGVyVXNlcjsKICAgIHZhciBo
dG1sID0gJyc7CiAgICBhbGxlUGVyc29uZW4uZm9yRWFjaChmdW5jdGlvbihwLCBpZHgpIHsKICAg
ICAgICB2YXIgdW1nZXNldHp0ID0gIXAuYWt0aXY7CiAgICAgICAgdmFyIHN0YXRFcmxhdWJ0ID0g
cGVyc29uRGFyZlN0YXRpc3RpayhwKTsKICAgICAgICB2YXIgc3RhdEV4cGxpeml0ID0gKHAuZGFy
ZlN0YXRpc3RpayA9PT0gdHJ1ZSB8fCBwLmRhcmZTdGF0aXN0aWsgPT09IGZhbHNlKTsKICAgICAg
ICB2YXIgc3RhdFRpdGxlID0gc3RhdEV4cGxpeml0CiAgICAgICAgICAgID8gJ01hbnVlbGwgJyAr
IChwLmRhcmZTdGF0aXN0aWsgPyAnZnJlaWdlc2NoYWx0ZXQnIDogJ2dlc3BlcnJ0JykKICAgICAg
ICAgICAgOiAnQXV0b21hdGlzY2ggJyArIChzdGF0RXJsYXVidCA/ICdlcmxhdWJ0IChGdW5rdGlv
biAnICsgKHAuZnVua3Rpb24gfHwgJ+KAlCcpICsgJyknIDogJ2dlc3BlcnJ0Jyk7CiAgICAgICAg
dmFyIGVtYWlsVm9yaGFuZGVuID0gISEocC5lbWFpbCAmJiBwLmVtYWlsLnRyaW0oKSk7CiAgICAg
ICAgaHRtbCArPSAnPHRyIGRhdGEtaWQ9IicgKyBwLmlkICsgJyInICsgKHVtZ2VzZXR6dCA/ICcg
Y2xhc3M9InplaWxlLXVtZ2VzZXR6dCInIDogJycpICsgJz4nICsKICAgICAgICAgICAgJzx0ZCBz
dHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQt
bXV0ZWQpIj4nICsgKGlkeCArIDEpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9
InRleHQtYWxpZ246bGVmdCI+PHNwYW4gY2xhc3M9InplLWVkaXQiIGRhdGEtZmVsZD0ibmFjaG5h
bWUiIGRhdGEtdHlwPSJ0ZXh0IiB0aXRsZT0iS2xpY2sgenVtIEJlYXJiZWl0ZW4iPjxzdHJvbmc+
JyArIGVzY2FwZUhUTUwocGVyc29uTmFtZShwKSkgKyAnPC9zdHJvbmc+PC9zcGFuPjwvdGQ+JyAr
CiAgICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246bGVmdCI+PHNwYW4gY2xhc3M9Inpl
LWVkaXQiIGRhdGEtZmVsZD0idm9ybmFtZSIgZGF0YS10eXA9InRleHQiIHRpdGxlPSJLbGljayB6
dW0gQmVhcmJlaXRlbiI+JyArIGVzY2FwZUhUTUwocC52b3JuYW1lIHx8ICfigJQnKSArICc8L3Nw
YW4+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBzdHlsZT0iZm9udC1zaXplOjExcHg7dGV4dC1h
bGlnbjpsZWZ0Ij48c3BhbiBjbGFzcz0iemUtZWRpdCIgZGF0YS1mZWxkPSJkaWVuc3RncmFkIiBk
YXRhLXR5cD0ic2VsZWN0IiBkYXRhLW9wdGlvbmVuPSJkaWVuc3RncmFkZSIgdGl0bGU9IktsaWNr
IHp1bSBCZWFyYmVpdGVuIj4nICsgZXNjYXBlSFRNTChwLmRpZW5zdGdyYWQgfHwgJ+KAlCcpICsg
Jzwvc3Bhbj48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJmb250LXNpemU6MTFweDt0
ZXh0LWFsaWduOmxlZnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPjxzcGFuIGNsYXNzPSJ6ZS1l
ZGl0IiBkYXRhLWZlbGQ9Im53S2VubnVuZyIgZGF0YS10eXA9InRleHQiIHRpdGxlPSJLbGljayB6
dW0gQmVhcmJlaXRlbiI+JyArIGVzY2FwZUhUTUwocC5ud0tlbm51bmcgfHwgJ+KAlCcpICsgJzwv
c3Bhbj48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPicg
KwogICAgICAgICAgICAgICAgKGVtYWlsVm9yaGFuZGVuCiAgICAgICAgICAgICAgICAgICAgPyAn
PGEgY2xhc3M9ImJ0bi1lbWFpbC1zdGF0dXMgaGF0LWVtYWlsIiBocmVmPSJtYWlsdG86JyArIGVz
Y2FwZUF0dHIocC5lbWFpbCkgKyAnIiB0aXRsZT0iJyArIGVzY2FwZUF0dHIoJ01haWwgYW4gJyAr
IHAuZW1haWwpICsgJyAoRG9wcGVsa2xpY2sgenVtIEJlYXJiZWl0ZW4pIj48c3BhbiBjbGFzcz0i
aWNvIj7inIk8L3NwYW4+PHNwYW4+TWFpbDwvc3Bhbj48L2E+JwogICAgICAgICAgICAgICAgICAg
IDogJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuLWVtYWlsLXN0YXR1cyBrZWluZS1l
bWFpbCIgZGF0YS1ha3Rpb249ImVtYWlsLWVkaXQiIGRhdGEtaWQ9IicgKyBwLmlkICsgJyIgdGl0
bGU9IktlaW5lIGVNYWlsIGhpbnRlcmxlZ3Qg4oCUIEtsaWNrIHp1bSBFaW50cmFnZW4iPjxzcGFu
IGNsYXNzPSJpY28iPuKciTwvc3Bhbj48c3Bhbj5mZWhsdDwvc3Bhbj48L2J1dHRvbj4nCiAgICAg
ICAgICAgICAgICApICsKICAgICAgICAgICAgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5
bGU9ImZvbnQtc2l6ZToxMXB4O3RleHQtYWxpZ246bGVmdCI+PHNwYW4gY2xhc3M9InplLWVkaXQi
IGRhdGEtZmVsZD0iZ2VidXJ0c2RhdHVtIiBkYXRhLXR5cD0iZGF0ZSIgdGl0bGU9IktsaWNrIHp1
bSBCZWFyYmVpdGVuIj4nICsgKHAuZ2VidXJ0c2RhdHVtID8gZGF0dW1Gb3JtYXRERShwLmdlYnVy
dHNkYXR1bSkgOiAn4oCUJykgKyAnPC9zcGFuPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5
bGU9InRleHQtYWxpZ246bGVmdCI+JyArCiAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9InN0
YXR1cy1waWxsZScgKyAodW1nZXNldHp0ID8gJyBzdGF0dXMtaW5ha3RpdicgOiAnJykgKyAnIiB0
aXRsZT0iJyArCiAgICAgICAgICAgICAgICAodW1nZXNldHp0ID8gJ0luYWt0aXYg4oCUIMO8YmVy
IOKAnkJlYXJiZWl0ZW4iIHJlYWt0aXZpZXJlbicgOiAnQWt0aXYg4oCUIMO8YmVyIOKAnkJlYXJi
ZWl0ZW4iIGF1ZiBJbmFrdGl2IHNldHplbicpICsgJyI+JyArCiAgICAgICAgICAgICAgICAodW1n
ZXNldHp0ID8gJ0luYWt0aXYnIDogJ0FrdGl2JykgKwogICAgICAgICAgICAgICAgJzwvc3Bhbj4n
ICsKICAgICAgICAgICAgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+JyArCiAgICAgICAgICAg
ICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIGJ0bi1rbGVpbiIgZGF0YS1ha3Rp
b249ImJlYXJiZWl0ZW4iIGRhdGEtaWQ9IicgKyBwLmlkICsgJyI+QmVhcmJlaXRlbjwvYnV0dG9u
PicgKwogICAgICAgICAgICAgICAgKGVjaHRlclNVICYmIFN0cmluZyhwLmlkKSAhPT0gU3RyaW5n
KFouX2VjaHRlTWVpbmVQZXJzb25JZCAhPT0gdW5kZWZpbmVkID8gWi5fZWNodGVNZWluZVBlcnNv
bklkIDogWi5tZWluZVBlcnNvbklkKQogICAgICAgICAgICAgICAgICAgID8gJyA8YnV0dG9uIGNs
YXNzPSJidG4gYnRuLXNlayBidG4ta2xlaW4iIGRhdGEtYWt0aW9uPSJ2aWV3LWFzIiBkYXRhLWlk
PSInICsgcC5pZCArICciIHRpdGxlPSJPYmVyZmzDpGNoZSBhbHMgZGllc2UgUGVyc29uIHRlc3Rl
biAobnVyIGxva2FsLCBTZXJ2ZXItUmVjaHRlIGJsZWliZW4gU3VwZXJVc2VyKSI+8J+RgSBUZXN0
ZW48L2J1dHRvbj4nCiAgICAgICAgICAgICAgICAgICAgOiAnJykgKwogICAgICAgICAgICAnPC90
ZD4nICsKICAgICAgICAnPC90cj4nOwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGVyc29uYWwtdGJvZHknKS5pbm5lckhUTUwgPSBodG1sOwp9CgovLyA9PT09PSBJbmxpbmUt
RWRpdCAoVkkzLURHTC1QYXR0ZXJuOiByZXBsYWNlV2l0aCkgPT09PT0KLy8gU3BhbiA8c3BhbiBj
bGFzcz0iemUtZWRpdCIgZGF0YS1mZWxkIGRhdGEtdHlwIFtkYXRhLW9wdGlvbmVuXT5WQUxVRTwv
c3Bhbj4KLy8gd2lyZCBiZWltIEtsaWNrIGR1cmNoIGVpbiBuYXRpdmVzIDxpbnB1dD4vPHNlbGVj
dD4gZXJzZXR6dC4KLy8gQmx1ciBPREVSIEVudGVyIHNwZWljaGVydCwgRXNjIGJyaWNodCBhYi4g
TmFjaCBTYXZlOiBSZS1SZW5kZXIuCmV4cG9ydCBmdW5jdGlvbiBpbmxpbmVFZGl0U3RhcnRlbihz
cGFuKSB7CiAgICBpZiAoIXNwYW4gfHwgc3Bhbi5kYXRhc2V0LmVkaXRpbmcgPT09ICcxJykgcmV0
dXJuOwogICAgdmFyIGZlbGQgPSBzcGFuLmdldEF0dHJpYnV0ZSgnZGF0YS1mZWxkJyk7CiAgICB2
YXIgdHlwICA9IHNwYW4uZ2V0QXR0cmlidXRlKCdkYXRhLXR5cCcpIHx8ICd0ZXh0JzsKICAgIHZh
ciB0ciAgID0gc3Bhbi5jbG9zZXN0KCd0cicpOwogICAgaWYgKCF0cikgcmV0dXJuOwogICAgdmFy
IGlkID0gcGFyc2VJbnQodHIuZ2V0QXR0cmlidXRlKCdkYXRhLWlkJyksIDEwKTsKICAgIHZhciBw
ICA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4g
eC5pZCA9PT0gaWQ7IH0pOwogICAgaWYgKCFwKSByZXR1cm47CgogICAgdmFyIGFsdGVyV2VydCA9
IHBbZmVsZF07CiAgICBpZiAoYWx0ZXJXZXJ0ID09PSBudWxsIHx8IGFsdGVyV2VydCA9PT0gdW5k
ZWZpbmVkKSBhbHRlcldlcnQgPSAnJzsKCiAgICB2YXIgaW5wdXQ7CiAgICBpZiAodHlwID09PSAn
c2VsZWN0JykgewogICAgICAgIHZhciBxdWVsbGUgPSBzcGFuLmdldEF0dHJpYnV0ZSgnZGF0YS1v
cHRpb25lbicpIHx8ICcnOwogICAgICAgIHZhciB3ZXJ0ZSA9IChxdWVsbGUgPT09ICdkaWVuc3Rn
cmFkZScpID8gKFouYWRtaW4uZGllbnN0Z3JhZGUgfHwgW10pCiAgICAgICAgICAgICAgICAgIDog
KHF1ZWxsZSA9PT0gJ2Z1bmt0aW9uZW4nKSAgPyAoWi5hZG1pbi5mdW5rdGlvbmVuICB8fCBbXSkK
ICAgICAgICAgICAgICAgICAgOiBbXTsKICAgICAgICBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3NlbGVjdCcpOwogICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICd6ZS1lZGl0LWlucHV0
IHplLWVkaXQtc2VsZWN0JzsKICAgICAgICBpbnB1dC5pbm5lckhUTUwgPSAnPG9wdGlvbiB2YWx1
ZT0iIj7igJQ8L29wdGlvbj4nICsgd2VydGUubWFwKGZ1bmN0aW9uKHcpIHsKICAgICAgICAgICAg
cmV0dXJuICc8b3B0aW9uJyArICh3ID09PSBhbHRlcldlcnQgPyAnIHNlbGVjdGVkJyA6ICcnKSAr
ICc+JyArIGVzY2FwZUhUTUwodykgKyAnPC9vcHRpb24+JzsKICAgICAgICB9KS5qb2luKCcnKTsK
ICAgIH0gZWxzZSB7CiAgICAgICAgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1
dCcpOwogICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICd6ZS1lZGl0LWlucHV0JzsKICAgICAgICBp
bnB1dC50eXBlID0gdHlwOwogICAgICAgIGlucHV0LnZhbHVlID0gYWx0ZXJXZXJ0OwogICAgfQoK
ICAgIHNwYW4uZGF0YXNldC5lZGl0aW5nID0gJzEnOwogICAgc3Bhbi5yZXBsYWNlV2l0aChpbnB1
dCk7CiAgICBpbnB1dC5mb2N1cygpOwogICAgaWYgKHR5cCA9PT0gJ3RleHQnKSBpbnB1dC5zZWxl
Y3QoKTsKICAgIGlmICh0eXAgPT09ICdkYXRlJyAmJiB0eXBlb2YgaW5wdXQuc2hvd1BpY2tlciA9
PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIC8vIHNob3dQaWNrZXIoKSB3aXJmdCBpbiBlaW5pZ2Vu
IEJyb3dzZXJuIG9obmUgVXNlci1HZXN0ZSDigJQgYmV3dXNzdCBzdHVtbS4KICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyB0cnkgeyBpbnB1dC5zaG93UGlja2VyKCk7IH0gY2F0Y2ggKGUp
IHt9IH0sIDApOwogICAgfQoKICAgIHZhciBmZXJ0aWcgPSBmYWxzZTsKICAgIGZ1bmN0aW9uIHNw
ZWljaGVybigpIHsKICAgICAgICBpZiAoZmVydGlnKSByZXR1cm47CiAgICAgICAgZmVydGlnID0g
dHJ1ZTsKICAgICAgICB2YXIgbmV1ZXJXZXJ0ID0gaW5wdXQudmFsdWU7CiAgICAgICAgaWYgKG5l
dWVyV2VydCA9PT0gYWx0ZXJXZXJ0KSB7CiAgICAgICAgICAgIGlucHV0LnJlcGxhY2VXaXRoKHNw
YW4pOwogICAgICAgICAgICBzcGFuLmRhdGFzZXQuZWRpdGluZyA9ICcnOwogICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChmZWxkID09PSAnbmFtZScgJiYgIW5ldWVyV2Vy
dC50cmltKCkpIHsKICAgICAgICAgICAgdG9hc3QoJ05hbWUgZGFyZiBuaWNodCBsZWVyIHNlaW4n
LCAnd2FybnVuZycpOwogICAgICAgICAgICBpbnB1dC5yZXBsYWNlV2l0aChzcGFuKTsKICAgICAg
ICAgICAgc3Bhbi5kYXRhc2V0LmVkaXRpbmcgPSAnJzsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgIH0KICAgICAgICB2YXIgdXBkYXRlID0ge307CiAgICAgICAgdXBkYXRlW2ZlbGRdID0gKG5l
dWVyV2VydCA9PT0gJycgJiYgdHlwID09PSAnZGF0ZScpID8gbnVsbCA6IG5ldWVyV2VydDsKICAg
ICAgICBhcGlQdXQoJy9hcGkvcGVyc29uZW4vJyArIGlkLCB1cGRhdGUpLnRoZW4oZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgIHBbZmVsZF0gPSB1cGRhdGVbZmVsZF07CiAgICAgICAgICAgIHBlcnNv
bmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4g
PT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgICAgIG5hbWVuUmVuZGVybigpOwogICAgICAg
ICAgICAgICAgaWYgKHR5cGVvZiBkYXRlbkdyaWRSZW5kZXJuID09PSAnZnVuY3Rpb24nKSBkYXRl
bkdyaWRSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGtvcGZSZW5kZXJuID09
PSAnZnVuY3Rpb24nKSBrb3BmUmVuZGVybigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRv
YXN0KGZlbGQgKyAnIGdlc3BlaWNoZXJ0JywgJ2VyZm9sZycsIHsgZGF1ZXI6IDE1MDAgfSk7CiAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICAgICB0b2FzdCgnRmVobGVyIGJl
aW0gU3BlaWNoZXJuOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7CiAgICAgICAgICAgIHBlcnNv
bmFsVGFiZWxsZVJlbmRlcm4oKTsKICAgICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGFiYnJl
Y2hlbigpIHsKICAgICAgICBpZiAoZmVydGlnKSByZXR1cm47CiAgICAgICAgZmVydGlnID0gdHJ1
ZTsKICAgICAgICBpbnB1dC5yZXBsYWNlV2l0aChzcGFuKTsKICAgICAgICBzcGFuLmRhdGFzZXQu
ZWRpdGluZyA9ICcnOwogICAgfQogICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNw
ZWljaGVybik7CiAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24o
ZSkgewogICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykgICAgICB7IGUucHJldmVudERlZmF1
bHQoKTsgaW5wdXQuYmx1cigpOyB9CiAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUn
KXsgZS5wcmV2ZW50RGVmYXVsdCgpOyBhYmJyZWNoZW4oKTsgfQogICAgfSk7CiAgICBpZiAodHlw
ID09PSAnc2VsZWN0JykgewogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScs
IGZ1bmN0aW9uKCkgeyBpbnB1dC5ibHVyKCk7IH0pOwogICAgfQp9CgovLyBEZWZhdWx0LUVybGF1
Ym5pczogU1UvSGFyZGNvZGUtV2hpdGVsaXN0ICsgREdMLzEuRUIuIE1hbnVlbGxlCi8vIE92ZXJy
aWRlIHZpYSBwLmRhcmZTdGF0aXN0aWsgKHRydWUvZmFsc2UpIGdld2lubnQgaW1tZXIuCmV4cG9y
dCBmdW5jdGlvbiBwZXJzb25EYXJmU3RhdGlzdGlrKHApIHsKICAgIGlmICghcCkgcmV0dXJuIGZh
bHNlOwogICAgaWYgKHAuZGFyZlN0YXRpc3RpayA9PT0gdHJ1ZSkgcmV0dXJuIHRydWU7CiAgICBp
ZiAocC5kYXJmU3RhdGlzdGlrID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKHAuZnVu
a3Rpb24gPT09ICdER0wnIHx8IHAuZnVua3Rpb24gPT09ICcxLiBFQicpIHJldHVybiB0cnVlOwog
ICAgcmV0dXJuIGZhbHNlOwp9CgpleHBvcnQgZnVuY3Rpb24gYmluZGVTdGF0aXN0aWtDaGVja2Jv
eGVuKCkgewogICAgdmFyIGNicyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNwZXJzb25h
bC10Ym9keSAuY2ItZGFyZi1zdGF0Jyk7CiAgICBjYnMuZm9yRWFjaChmdW5jdGlvbihjYikgewog
ICAgICAgIGNiLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICB2YXIgaWQgPSB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpOwogICAgICAgICAgICB2
YXIgcCA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1
cm4geC5pZCA9PT0gaWQ7IH0pOwogICAgICAgICAgICBpZiAoIXApIHJldHVybjsKICAgICAgICAg
ICAgdmFyIG5ldSA9IHRoaXMuY2hlY2tlZDsKICAgICAgICAgICAgLy8gV2VubiBuZXVlciBXZXJ0
ID0gYXV0b21hdGlzY2hlciBEZWZhdWx0IOKGkiBkYXJmU3RhdGlzdGlrIGxvZXNjaGVuIChhdWYg
bnVsbCkKICAgICAgICAgICAgdmFyIHAyID0gT2JqZWN0LmFzc2lnbih7fSwgcCwgeyBkYXJmU3Rh
dGlzdGlrOiBudWxsIH0pOwogICAgICAgICAgICB2YXIgZGVmYXVsdEVybGF1YnQgPSBwZXJzb25E
YXJmU3RhdGlzdGlrKHAyKTsKICAgICAgICAgICAgdmFyIHdlcnQgPSAobmV1ID09PSBkZWZhdWx0
RXJsYXVidCkgPyBudWxsIDogbmV1OwogICAgICAgICAgICBhcGlQdXQoJy9hcGkvcGVyc29uZW4v
JyArIGlkLCB7IGRhcmZTdGF0aXN0aWs6IHdlcnQgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgICAgIHAuZGFyZlN0YXRpc3RpayA9IHdlcnQ7CiAgICAgICAgICAgICAgICBwZXJzb25h
bFRhYmVsbGVSZW5kZXJuKCk7CiAgICAgICAgICAgICAgICAvLyBXZW5uIGRpZSBlaWdlbmUgUGVy
c29uIGJldHJvZmZlbiBpc3QsIFRhYi1TaWNodGJhcmtlaXQgYWt0dWFsaXNpZXJlbgogICAgICAg
ICAgICAgICAgaWYgKHR5cGVvZiBuYXZTaWNodGJhcmtlaXRBbndlbmRlbiA9PT0gJ2Z1bmN0aW9u
JykgbmF2U2ljaHRiYXJrZWl0QW53ZW5kZW4oKTsKICAgICAgICAgICAgICAgIHRvYXN0KCdTdGF0
aXN0aWstWnVncmlmZiAnICsgKG5ldSA/ICdlcmxhdWJ0JyA6ICdnZXNwZXJydCcpICsgJyBmw7xy
ICcgKyBwZXJzb25OYW1lKHApLCAnZXJmb2xnJyk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0
aW9uKGUpIHsKICAgICAgICAgICAgICAgIHRvYXN0KCdTcGVpY2hlcm4gZmVobGdlc2NobGFnZW46
ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsKICAgICAgICAgICAgICAgIHBlcnNvbmFsVGFiZWxs
ZVJlbmRlcm4oKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9KTsKfQoKZXhwb3J0
IGZ1bmN0aW9uIHBlcnNvblN0YXR1c1NldHplbihpZCwgYWt0aXYpIHsKICAgIHZhciB1cGRhdGUg
PSB7IGFrdGl2OiBha3RpdiB9OwogICAgLy8gQXV0by1Tb3J0aWVydW5nOiBiZWkgSW5ha3Rpdi1T
ZXR6dW5nIG5hY2ggZ2FueiB1bnRlbgogICAgaWYgKCFha3RpdikgewogICAgICAgIHZhciBtYXhQ
b3MgPSAwOwogICAgICAgIChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZvckVhY2goZnVuY3Rp
b24oeCkgewogICAgICAgICAgICBpZiAodHlwZW9mIHgucG9zaXRpb24gPT09ICdudW1iZXInICYm
IHgucG9zaXRpb24gPiBtYXhQb3MpIG1heFBvcyA9IHgucG9zaXRpb247CiAgICAgICAgfSk7CiAg
ICAgICAgdXBkYXRlLnBvc2l0aW9uID0gbWF4UG9zICsgMTsKICAgIH0KICAgIGFwaVB1dCgnL2Fw
aS9wZXJzb25lbi8nICsgaWQsIHVwZGF0ZSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICB2YXIg
cCA9IFoucGxhbnVuZy5wZXJzb25lbi5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHguaWQgPT09
IGlkOyB9KTsKICAgICAgICBpZiAocCkgewogICAgICAgICAgICBwLmFrdGl2ID0gYWt0aXY7CiAg
ICAgICAgICAgIGlmICghYWt0aXYpIHAucG9zaXRpb24gPSB1cGRhdGUucG9zaXRpb247CiAgICAg
ICAgfQogICAgICAgIHBlcnNvbmVuTmV1QXVmYmF1ZW4oKTsKICAgICAgICBwZXJzb25hbFRhYmVs
bGVSZW5kZXJuKCk7CiAgICAgICAgaWYgKHR5cGVvZiBuYW1lblJlbmRlcm4gPT09ICdmdW5jdGlv
bicpIHsKICAgICAgICAgICAgbmFtZW5SZW5kZXJuKCk7CiAgICAgICAgICAgIGRhdGVuR3JpZFJl
bmRlcm4oKTsKICAgICAgICAgICAga29wZlJlbmRlcm4oKTsKICAgICAgICB9CiAgICAgICAgdG9h
c3QoYWt0aXYgPyAnUGVyc29uIHJlYWt0aXZpZXJ0JyA6ICdQZXJzb24gaW5ha3RpdiBnZXNldHp0
ICsgbmFjaCB1bnRlbiBzb3J0aWVydCcsICdlcmZvbGcnKTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9u
KGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKfQoKZXhw
b3J0IGZ1bmN0aW9uIHBlcnNvbkJlYXJiZWl0ZW5EaWFsb2coaWQpIHsKICAgIHZhciBwZXJzb24g
PSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHApIHsgcmV0dXJuIHAu
aWQgPT09IGlkOyB9KTsKICAgIGlmICghcGVyc29uKSByZXR1cm47CgogICAgdmFyIGRpZW5zdGdy
YWRlID0gWi5hZG1pbi5kaWVuc3RncmFkZSB8fCBbXTsKICAgIHZhciBmdW5rdGlvbmVuID0gWi5h
ZG1pbi5mdW5rdGlvbmVuIHx8IFtdOwogICAgdmFyIGRnT3B0cyA9ICc8b3B0aW9uIHZhbHVlPSIi
PuKAlDwvb3B0aW9uPicgKyBkaWVuc3RncmFkZS5tYXAoZnVuY3Rpb24oZCkgewogICAgICAgIHJl
dHVybiAnPG9wdGlvbicgKyAoZCA9PT0gcGVyc29uLmRpZW5zdGdyYWQgPyAnIHNlbGVjdGVkJyA6
ICcnKSArICc+JyArIGVzY2FwZUhUTUwoZCkgKyAnPC9vcHRpb24+JzsKICAgIH0pLmpvaW4oJycp
OwogICAgdmFyIGZuT3B0cyA9ICc8b3B0aW9uIHZhbHVlPSIiPuKAlDwvb3B0aW9uPicgKyBmdW5r
dGlvbmVuLm1hcChmdW5jdGlvbihmKSB7CiAgICAgICAgcmV0dXJuICc8b3B0aW9uJyArIChmID09
PSBwZXJzb24uZnVua3Rpb24gPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+JyArIGVzY2FwZUhUTUwo
ZikgKyAnPC9vcHRpb24+JzsKICAgIH0pLmpvaW4oJycpOwoKICAgIHZhciBrb2VycGVyID0gJzxk
aXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6
MCAxNnB4Ij4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5OYWNo
bmFtZSAqPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRsZy1uYWNobmFtZSIgY2xhc3M9
ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIocGVy
c29uTmFtZShwZXJzb24pKSArICciPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3Jt
LWdydXBwZSI+PGxhYmVsPlZvcm5hbWU8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGxn
LXZvcm5hbWUiIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSIgdmFsdWU9Iicg
KyBlc2NhcGVBdHRyKHBlcnNvbi52b3JuYW1lIHx8ICcnKSArICciPjwvZGl2PicgKwogICAgICAg
ICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPkRpZW5zdGdyYWQ8L2xhYmVsPjxzZWxl
Y3QgaWQ9ImRsZy1kaWVuc3RncmFkIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEw
MCUiPicgKyBkZ09wdHMgKyAnPC9zZWxlY3Q+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9
ImZvcm0tZ3J1cHBlIj48bGFiZWw+RnVua3Rpb248L2xhYmVsPjxzZWxlY3QgaWQ9ImRsZy1mdW5r
dGlvbiIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIj4nICsgZm5PcHRzICsg
Jzwvc2VsZWN0PjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxh
YmVsPk9FIC8gRGllbnN0c3RlbGxlPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRsZy1v
ZSIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIiB2YWx1ZT0iJyArIGVzY2Fw
ZUF0dHIocGVyc29uLm9lIHx8ICcnKSArICciPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNz
PSJmb3JtLWdydXBwZSI+PGxhYmVsPkRpZW5zdG51bW1lcjwvbGFiZWw+PGlucHV0IHR5cGU9InRl
eHQiIGlkPSJkbGctZGllbnN0bnVtbWVyIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRo
OjEwMCUiIHZhbHVlPSInICsgZXNjYXBlQXR0cihwZXJzb24uZGllbnN0bnVtbWVyIHx8ICcnKSAr
ICciIHBsYWNlaG9sZGVyPSJ6LkIuICMxMTEiPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNz
PSJmb3JtLWdydXBwZSI+PGxhYmVsPlRlbGVmb248L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0iZGxnLXRlbGVmb24iIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSIgdmFs
dWU9IicgKyBlc2NhcGVBdHRyKHBlcnNvbi50ZWxlZm9uIHx8ICcnKSArICciPjwvZGl2PicgKwog
ICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSI+PGxhYmVsPk5XLUtlbm51bmc8L2xhYmVs
PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGxnLW53a2VubnVuZyIgY2xhc3M9ImZvcm0taW5wdXQi
IHN0eWxlPSJ3aWR0aDoxMDAlIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIocGVyc29uLm53S2VubnVu
ZyB8fCAnJykgKyAnIiBwbGFjZWhvbGRlcj0iRE9NQUlOXFx1c2VyIj48L2Rpdj4nICsKICAgICAg
ICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5FLU1haWw8L2xhYmVsPjxpbnB1dCB0
eXBlPSJlbWFpbCIgaWQ9ImRsZy1lbWFpbCIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0
aDoxMDAlIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIocGVyc29uLmVtYWlsIHx8ICcnKSArICciIHBs
YWNlaG9sZGVyPSJCZW5hY2hyaWNodGlndW5nIGJlaSDDhG5kZXJ1bmdlbiI+PC9kaXY+JyArCiAg
ICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+R2VidXJ0c2RhdHVtPC9sYWJl
bD48aW5wdXQgdHlwZT0iZGF0ZSIgaWQ9ImRsZy1nZWJ1cnRzZGF0dW0iIGNsYXNzPSJmb3JtLWlu
cHV0IiBzdHlsZT0id2lkdGg6MTAwJSIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKHBlcnNvbi5nZWJ1
cnRzZGF0dW0gfHwgJycpICsgJyI+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0t
Z3J1cHBlIj48bGFiZWw+U3RhdHVzPC9sYWJlbD48c2VsZWN0IGlkPSJkbGctYWt0aXYiIGNsYXNz
PSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSI+JyArCiAgICAgICAgJzxvcHRpb24gdmFs
dWU9InRydWUiJyArIChwZXJzb24uYWt0aXYgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+QWt0aXYg
KGluIGRlciBQbGFudW5nKTwvb3B0aW9uPicgKwogICAgICAgICc8b3B0aW9uIHZhbHVlPSJmYWxz
ZSInICsgKCFwZXJzb24uYWt0aXYgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+VW1nZXNldHp0IChu
aWNodCBpbiBkZXIgUGxhbnVuZyk8L29wdGlvbj4nICsKICAgICAgICAnPC9zZWxlY3Q+PC9kaXY+
JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWwgdGl0bGU9IkRlZmF1
bHQgPSBhYmjDpG5naWcgdm9uIGRlciBGdW5rdGlvbiAoREdMLzEuRUIgc2VoZW4gZGllIFN0YXRp
c3RpaykiPlN0YXRpc3Rpay1adWdyaWZmPC9sYWJlbD48c2VsZWN0IGlkPSJkbGctZGFyZi1zdGF0
aXN0aWsiIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSI+JyArCiAgICAgICAg
ICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gKHBlcnNvbi5kYXJmU3Rh
dGlzdGlrID09PSB0cnVlKSA/ICd0cnVlJyA6IChwZXJzb24uZGFyZlN0YXRpc3RpayA9PT0gZmFs
c2UpID8gJ2ZhbHNlJyA6ICdkZWZhdWx0JzsKICAgICAgICAgICAgICAgIHZhciBzZWwgPSBmdW5j
dGlvbih4KSB7IHJldHVybiB2ID09PSB4ID8gJyBzZWxlY3RlZCcgOiAnJzsgfTsKICAgICAgICAg
ICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1ZT0iZGVmYXVsdCInICsgc2VsKCdkZWZhdWx0Jykg
KyAnPlN0YW5kYXJkIChhYmjDpG5naWcgdm9uIEZ1bmt0aW9uKTwvb3B0aW9uPicgKwogICAgICAg
ICAgICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSJ0cnVlIicgKyBzZWwoJ3RydWUnKSArICc+
TWFudWVsbCBlcmxhdWJ0PC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAgICAgICAgJzxvcHRp
b24gdmFsdWU9ImZhbHNlIicgKyBzZWwoJ2ZhbHNlJykgKyAnPk1hbnVlbGwgZ2VzcGVycnQ8L29w
dGlvbj4nOwogICAgICAgICAgICB9KSgpICsKICAgICAgICAnPC9zZWxlY3Q+PC9kaXY+JyArCiAg
ICAgICAgJzwvZGl2PicgKwogICAgICAgICc8ZmllbGRzZXQgc3R5bGU9Im1hcmdpbi10b3A6MTRw
eDtwYWRkaW5nOjEwcHggMTJweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7
Ym9yZGVyLXJhZGl1czo0cHgiPicgKwogICAgICAgICAgICAnPGxlZ2VuZCBzdHlsZT0iZm9udC1z
aXplOjExcHg7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6MCA2cHg7Y29sb3I6dmFyKC0tdGV4dC1z
ZWNvbmRhcnkpIj5CZWZyaXN0ZXRlIE1pdGFyYmVpdCAvIFBlcnNwZWt0aXZnZXNwcsOkY2g8L2xl
Z2VuZD4nICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBs
YXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6OHB4IDE2cHgiPicgKwogICAgICAgICAgICAnPGRpdiBj
bGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5FbmRkYXR1bSAobGVlciA9IHVuYmVmcmlzdGV0KTwv
bGFiZWw+PGlucHV0IHR5cGU9ImRhdGUiIGlkPSJkbGctZW5kZGF0dW0iIGNsYXNzPSJmb3JtLWlu
cHV0IiBzdHlsZT0id2lkdGg6MTAwJSIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKHBlcnNvbi5lbmRE
YXR1bSB8fCAnJykgKyAnIj48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0t
Z3J1cHBlIj48bGFiZWw+TGV0enRlcyBHZXNwcsOkY2ggYW08L2xhYmVsPjxpbnB1dCB0eXBlPSJk
YXRlIiBpZD0iZGxnLWxldHp0ZXMtZ2VzcHJhZWNoIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9
IndpZHRoOjEwMCUiIHZhbHVlPSInICsgZXNjYXBlQXR0cihwZXJzb24ubGV0enRlc0dlc3ByYWVj
aEFtIHx8ICcnKSArICciPjwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAg
ICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9Im1hcmdpbi10b3A6NnB4Ij48bGFi
ZWw+Tm90aXogZsO8ciBFcmlubmVydW5nIChvcHRpb25hbCwgw7xiZXJzY2hyZWlidCBTdGFuZGFy
ZHRleHQpPC9sYWJlbD4nICsKICAgICAgICAgICAgICAgICc8dGV4dGFyZWEgaWQ9ImRsZy1lcmlu
bmVydW5nLW5vdGl6IiBjbGFzcz0iZm9ybS1pbnB1dCIgcm93cz0iMiIgc3R5bGU9IndpZHRoOjEw
MCU7cmVzaXplOnZlcnRpY2FsIiBwbGFjZWhvbGRlcj0iei5CLiDigJ5Ib3NwaXRhbnogYmlzIDMw
LjA2LiwgZGFubiBSw7xja2tlaHIgS0sgMTQiIj4nICsgZXNjYXBlSFRNTChwZXJzb24uZXJpbm5l
cnVuZ3NOb3RpeiB8fCAnJykgKyAnPC90ZXh0YXJlYT4nICsKICAgICAgICAgICAgJzwvZGl2Picg
KwogICAgICAgICc8L2ZpZWxkc2V0Pic7CgogICAgdmFyIGRsZ1RpdGVsID0gcGVyc29uVm9sbE5h
bWUocGVyc29uKTsKICAgIG1vZGFsWmVpZ2VuKCdQZXJzb24gYmVhcmJlaXRlbjogJyArIGRsZ1Rp
dGVsLCBrb2VycGVyLAogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hZXIiIGlk
PSJkbGctc3BlaWNoZXJuIj5TcGVpY2hlcm48L2J1dHRvbj4nLAogICAgICAgIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICB2YXIgc3RhdFNlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGct
ZGFyZi1zdGF0aXN0aWsnKS52YWx1ZTsKICAgICAgICAgICAgdmFyIGRhdGVuID0gewogICAgICAg
ICAgICAgICAgbmFjaG5hbWU6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctbmFjaG5hbWUn
KS52YWx1ZS50cmltKCksCiAgICAgICAgICAgICAgICB2b3JuYW1lOiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZGxnLXZvcm5hbWUnKS52YWx1ZSwKICAgICAgICAgICAgICAgIGRpZW5zdGdyYWQ6
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctZGllbnN0Z3JhZCcpLnZhbHVlLAogICAgICAg
ICAgICAgICAgZnVua3Rpb246IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctZnVua3Rpb24n
KS52YWx1ZSwKICAgICAgICAgICAgICAgIG9lOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxn
LW9lJykudmFsdWUsCiAgICAgICAgICAgICAgICBkaWVuc3RudW1tZXI6IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkbGctZGllbnN0bnVtbWVyJykudmFsdWUsCiAgICAgICAgICAgICAgICB0ZWxl
Zm9uOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLXRlbGVmb24nKS52YWx1ZSwKICAgICAg
ICAgICAgICAgIG53S2VubnVuZzogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1ud2tlbm51
bmcnKS52YWx1ZSwKICAgICAgICAgICAgICAgIGVtYWlsOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGxnLWVtYWlsJykudmFsdWUsCiAgICAgICAgICAgICAgICBnZWJ1cnRzZGF0dW06IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdkbGctZ2VidXJ0c2RhdHVtJykudmFsdWUsCiAgICAgICAgICAg
ICAgICBha3RpdjogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1ha3RpdicpLnZhbHVlID09
PSAndHJ1ZScsCiAgICAgICAgICAgICAgICBkYXJmU3RhdGlzdGlrOiBzdGF0U2VsID09PSAndHJ1
ZScgPyB0cnVlIDogc3RhdFNlbCA9PT0gJ2ZhbHNlJyA/IGZhbHNlIDogbnVsbCwKICAgICAgICAg
ICAgICAgIGVuZERhdHVtOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLWVuZGRhdHVtJyku
dmFsdWUgfHwgbnVsbCwKICAgICAgICAgICAgICAgIGxldHp0ZXNHZXNwcmFlY2hBbTogZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1sZXR6dGVzLWdlc3ByYWVjaCcpLnZhbHVlIHx8IG51bGws
CiAgICAgICAgICAgICAgICBlcmlubmVydW5nc05vdGl6OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGxnLWVyaW5uZXJ1bmctbm90aXonKS52YWx1ZSB8fCBudWxsCiAgICAgICAgICAgIH07CiAg
ICAgICAgICAgIGlmICghZGF0ZW4ubmFjaG5hbWUpIHsgdG9hc3QoJ05hY2huYW1lIGlzdCBlaW4g
UGZsaWNodGZlbGQnLCAnd2FybnVuZycpOyByZXR1cm47IH0KICAgICAgICAgICAgYXBpUHV0KCcv
YXBpL3BlcnNvbmVuLycgKyBpZCwgZGF0ZW4pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICAgICB2YXIgcCA9IFoucGxhbnVuZy5wZXJzb25lbi5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJu
IHguaWQgPT09IGlkOyB9KTsKICAgICAgICAgICAgICAgIGlmIChwKSB7CiAgICAgICAgICAgICAg
ICAgICAgT2JqZWN0LmFzc2lnbihwLCBkYXRlbik7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRl
IHAubmFtZTsgICAvLyBMZWdhY3ktRmVsZCBlbnRmZXJuZW4sIHdpciBudXR6ZW4gbnVyIG5vY2gg
bmFjaG5hbWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHBlcnNvbmVuTmV1QXVm
YmF1ZW4oKTsKICAgICAgICAgICAgICAgIG1vZGFsU2NobGllc3NlbigpOwogICAgICAgICAgICAg
ICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBu
YW1lblJlbmRlcm4gPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgICAgICAgICBuYW1lblJl
bmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICBkYXRlbkdyaWRSZW5kZXJuKCk7CiAgICAgICAg
ICAgICAgICAgICAga29wZlJlbmRlcm4oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIHRvYXN0KCdQZXJzb24gYWt0dWFsaXNpZXJ0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9
KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhs
ZXInKTsgfSk7CiAgICAgICAgfQogICAgKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHBlcnNvbk5ldURp
YWxvZygpIHsKICAgIHZhciBhbGxlID0gKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuc2xpY2Uo
KQogICAgICAgIC5maWx0ZXIoZnVuY3Rpb24ocCkgeyByZXR1cm4gcC5ha3RpdjsgfSkKICAgICAg
ICAuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiAoYS5wb3NpdGlvbiB8fCA5OTkpIC0gKGIu
cG9zaXRpb24gfHwgOTk5KTsgfSk7CiAgICB2YXIgcmVmT3B0aW9uZW4gPSBhbGxlLm1hcChmdW5j
dGlvbihwKSB7CiAgICAgICAgcmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsgcC5pZCArICciPicg
KyBlc2NhcGVIVE1MKHBlcnNvblZvbGxOYW1lKHApKSArICc8L29wdGlvbj4nOwogICAgfSkuam9p
bignJyk7CgogICAgdmFyIGRpZW5zdGdyYWRlTmV1ID0gWi5hZG1pbi5kaWVuc3RncmFkZSB8fCBb
XTsKICAgIHZhciBmdW5rdGlvbmVuTmV1ID0gWi5hZG1pbi5mdW5rdGlvbmVuIHx8IFtdOwoKICAg
IHZhciBrb2VycGVyID0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNv
bHVtbnM6MWZyIDFmcjtnYXA6MCAxNnB4Ij4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1n
cnVwcGUiPjxsYWJlbD5OYWNobmFtZSAqPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRs
Zy1uYWNobmFtZSIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIj48L2Rpdj4n
ICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5Wb3JuYW1lPC9sYWJl
bD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRsZy12b3JuYW1lIiBjbGFzcz0iZm9ybS1pbnB1dCIg
c3R5bGU9IndpZHRoOjEwMCUiPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdy
dXBwZSI+PGxhYmVsPkRpZW5zdGdyYWQ8L2xhYmVsPjxzZWxlY3QgaWQ9ImRsZy1kaWVuc3RncmFk
IiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCUiPjxvcHRpb24gdmFsdWU9IiI+
4oCUPC9vcHRpb24+JyArCiAgICAgICAgICAgIGRpZW5zdGdyYWRlTmV1Lm1hcChmdW5jdGlvbihk
KSB7IHJldHVybiAnPG9wdGlvbj4nICsgZXNjYXBlSFRNTChkKSArICc8L29wdGlvbj4nOyB9KS5q
b2luKCcnKSArCiAgICAgICAgJzwvc2VsZWN0PjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNz
PSJmb3JtLWdydXBwZSI+PGxhYmVsPkZ1bmt0aW9uPC9sYWJlbD48c2VsZWN0IGlkPSJkbGctZnVu
a3Rpb24iIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSI+PG9wdGlvbiB2YWx1
ZT0iIj7igJQ8L29wdGlvbj4nICsKICAgICAgICAgICAgZnVua3Rpb25lbk5ldS5tYXAoZnVuY3Rp
b24oZikgeyByZXR1cm4gJzxvcHRpb24+JyArIGVzY2FwZUhUTUwoZikgKyAnPC9vcHRpb24+Jzsg
fSkuam9pbignJykgKwogICAgICAgICc8L3NlbGVjdD48L2Rpdj4nICsKICAgICAgICAnPGRpdiBj
bGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5PRSAvIERpZW5zdHN0ZWxsZTwvbGFiZWw+PGlucHV0
IHR5cGU9InRleHQiIGlkPSJkbGctb2UiIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6
MTAwJSI+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+
RGllbnN0bnVtbWVyPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRsZy1kaWVuc3RudW1t
ZXIiIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSIgcGxhY2Vob2xkZXI9Inou
Qi4gIzExMSI+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFi
ZWw+VGVsZWZvbjwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJkbGctdGVsZWZvbiIgY2xh
c3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIj48L2Rpdj4nICsKICAgICAgICAnPGRp
diBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5OVy1LZW5udW5nPC9sYWJlbD48aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9ImRsZy1ud2tlbm51bmciIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lk
dGg6MTAwJSIgcGxhY2Vob2xkZXI9IkRPTUFJTlxcdXNlciI+PC9kaXY+JyArCiAgICAgICAgJzxk
aXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+RS1NYWlsPC9sYWJlbD48aW5wdXQgdHlwZT0i
ZW1haWwiIGlkPSJkbGctZW1haWwiIGNsYXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAw
JSIgcGxhY2Vob2xkZXI9IkJlbmFjaHJpY2h0aWd1bmcgYmVpIMOEbmRlcnVuZ2VuIj48L2Rpdj4n
ICsKICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiPjxsYWJlbD5HZWJ1cnRzZGF0dW08
L2xhYmVsPjxpbnB1dCB0eXBlPSJkYXRlIiBpZD0iZGxnLWdlYnVydHNkYXR1bSIgY2xhc3M9ImZv
cm0taW5wdXQiIHN0eWxlPSJ3aWR0aDoxMDAlIj48L2Rpdj4nICsKICAgICAgICAnPC9kaXY+JyAr
CiAgICAgICAgJzxmaWVsZHNldCBzdHlsZT0ibWFyZ2luLXRvcDoxNHB4O3BhZGRpbmc6MTBweCAx
MnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTtib3JkZXItcmFkaXVzOjRw
eCI+JyArCiAgICAgICAgICAgICc8bGVnZW5kIHN0eWxlPSJmb250LXNpemU6MTFweDtmb250LXdl
aWdodDo2MDA7cGFkZGluZzowIDZweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSkiPkJlZnJp
c3RldGUgTWl0YXJiZWl0IC8gUGVyc3Bla3Rpdmdlc3Byw6RjaDwvbGVnZW5kPicgKwogICAgICAg
ICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIg
MWZyO2dhcDo4cHggMTZweCI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBw
ZSI+PGxhYmVsPkVuZGRhdHVtIChsZWVyID0gdW5iZWZyaXN0ZXQpPC9sYWJlbD48aW5wdXQgdHlw
ZT0iZGF0ZSIgaWQ9ImRsZy1lbmRkYXR1bSIgY2xhc3M9ImZvcm0taW5wdXQiIHN0eWxlPSJ3aWR0
aDoxMDAlIj48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48
bGFiZWw+TGV0enRlcyBHZXNwcsOkY2ggYW08L2xhYmVsPjxpbnB1dCB0eXBlPSJkYXRlIiBpZD0i
ZGxnLWxldHp0ZXMtZ2VzcHJhZWNoIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjEw
MCUiPjwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9Im1hcmdpbi10b3A6NnB4Ij48bGFiZWw+Tm90aXogZsO8
ciBFcmlubmVydW5nIChvcHRpb25hbCk8L2xhYmVsPicgKwogICAgICAgICAgICAgICAgJzx0ZXh0
YXJlYSBpZD0iZGxnLWVyaW5uZXJ1bmctbm90aXoiIGNsYXNzPSJmb3JtLWlucHV0IiByb3dzPSIy
IiBzdHlsZT0id2lkdGg6MTAwJTtyZXNpemU6dmVydGljYWwiIHBsYWNlaG9sZGVyPSJ6LkIuIOKA
nkhvc3BpdGFueiBiaXMgMzAuMDYuLCBkYW5uIFLDvGNra2VociBLSyAxNCI+PC90ZXh0YXJlYT4n
ICsKICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8L2ZpZWxkc2V0PicgKwogICAgICAg
ICc8aHIgc3R5bGU9Im1hcmdpbjoxMnB4IDA7Ym9yZGVyOm5vbmU7Ym9yZGVyLXRvcDoxcHggc29s
aWQgdmFyKC0tYm9yZGVyLWxpZ2h0KSI+JyArCiAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6
Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDJmcjtnYXA6MCAxNnB4Ij4nICsKICAgICAg
ICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1cHBlIj48bGFiZWw+RWlucmVpaGVuPC9sYWJlbD48
c2VsZWN0IGlkPSJkbGctZWlucmVpaGVuIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRo
OjEwMCUiPicgKwogICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9InVudGVuIiBzZWxlY3Rl
ZD5HYW56IHVudGVuIGFuaMOkbmdlbjwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAgJzxvcHRp
b24gdmFsdWU9InZvciI+Vm9yIFBlcnNvbuKApjwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAg
JzxvcHRpb24gdmFsdWU9Im5hY2giPk5hY2ggUGVyc29u4oCmPC9vcHRpb24+JyArCiAgICAgICAg
ICAgICc8L3NlbGVjdD48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3J1
cHBlIj48bGFiZWw+UmVmZXJlbnpwZXJzb248L2xhYmVsPjxzZWxlY3QgaWQ9ImRsZy1yZWYiIGNs
YXNzPSJmb3JtLWlucHV0IiBzdHlsZT0id2lkdGg6MTAwJSIgZGlzYWJsZWQ+JyArCiAgICAgICAg
ICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iIj7igJQga2VpbmUg4oCUPC9vcHRpb24+JyArIHJlZk9w
dGlvbmVuICsKICAgICAgICAgICAgJzwvc2VsZWN0PjwvZGl2PicgKwogICAgICAgICc8L2Rpdj4n
OwoKICAgIG1vZGFsWmVpZ2VuKCdOZXVlIFBlcnNvbiBhbmxlZ2VuJywga29lcnBlciwKICAgICAg
ICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1lcmZvbGciIGlkPSJkbGctc3BlaWNoZXJuIj5Bbmxl
Z2VuPC9idXR0b24+JywKICAgICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGVpbnJl
aWhlbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctZWlucmVpaGVuJykudmFsdWU7CiAg
ICAgICAgICAgIHZhciByZWZTZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLXJlZicp
OwogICAgICAgICAgICB2YXIgcmVmSWQgPSByZWZTZWwudmFsdWUgPyBwYXJzZUludChyZWZTZWwu
dmFsdWUpIDogbnVsbDsKICAgICAgICAgICAgaWYgKChlaW5yZWloZW4gPT09ICd2b3InIHx8IGVp
bnJlaWhlbiA9PT0gJ25hY2gnKSAmJiAhcmVmSWQpIHsKICAgICAgICAgICAgICAgIHRvYXN0KCdC
aXR0ZSBlaW5lIFJlZmVyZW56cGVyc29uIHfDpGhsZW4gb2RlciAiR2FueiB1bnRlbiIgYXVzd8Ok
aGxlbicsICd3YXJudW5nJyk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0K
ICAgICAgICAgICAgdmFyIGRhdGVuID0gewogICAgICAgICAgICAgICAgbmFjaG5hbWU6IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdkbGctbmFjaG5hbWUnKS52YWx1ZS50cmltKCksCiAgICAgICAg
ICAgICAgICB2b3JuYW1lOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLXZvcm5hbWUnKS52
YWx1ZSwKICAgICAgICAgICAgICAgIGRpZW5zdGdyYWQ6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdkbGctZGllbnN0Z3JhZCcpLnZhbHVlLAogICAgICAgICAgICAgICAgZnVua3Rpb246IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdkbGctZnVua3Rpb24nKS52YWx1ZSwKICAgICAgICAgICAgICAg
IG9lOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLW9lJykudmFsdWUsCiAgICAgICAgICAg
ICAgICBkaWVuc3RudW1tZXI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctZGllbnN0bnVt
bWVyJykudmFsdWUsCiAgICAgICAgICAgICAgICB0ZWxlZm9uOiBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZGxnLXRlbGVmb24nKS52YWx1ZSwKICAgICAgICAgICAgICAgIG53S2VubnVuZzogZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1ud2tlbm51bmcnKS52YWx1ZSwKICAgICAgICAgICAg
ICAgIGVtYWlsOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLWVtYWlsJykudmFsdWUsCiAg
ICAgICAgICAgICAgICBnZWJ1cnRzZGF0dW06IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGct
Z2VidXJ0c2RhdHVtJykudmFsdWUsCiAgICAgICAgICAgICAgICBlbmREYXR1bTogZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2RsZy1lbmRkYXR1bScpLnZhbHVlIHx8IG51bGwsCiAgICAgICAgICAg
ICAgICBsZXR6dGVzR2VzcHJhZWNoQW06IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctbGV0
enRlcy1nZXNwcmFlY2gnKS52YWx1ZSB8fCBudWxsLAogICAgICAgICAgICAgICAgZXJpbm5lcnVu
Z3NOb3RpejogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1lcmlubmVydW5nLW5vdGl6Jyku
dmFsdWUgfHwgbnVsbCwKICAgICAgICAgICAgICAgIGVpbnJlaWhlbjogZWlucmVpaGVuLAogICAg
ICAgICAgICAgICAgcmVmZXJlbnpJZDogcmVmSWQKICAgICAgICAgICAgfTsKICAgICAgICAgICAg
aWYgKCFkYXRlbi5uYWNobmFtZSkgeyB0b2FzdCgnTmFjaG5hbWUgaXN0IGVpbiBQZmxpY2h0ZmVs
ZCcsICd3YXJudW5nJyk7IHJldHVybjsgfQogICAgICAgICAgICBhcGlQb3N0KCcvYXBpL3BlcnNv
bmVuJywgZGF0ZW4pLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAgcmV0dXJuIGFw
aSgnL2FwaS9wbGFudW5nJykudGhlbihmdW5jdGlvbihwKSB7CiAgICAgICAgICAgICAgICAgICAg
Wi5wbGFudW5nID0gcDsKICAgICAgICAgICAgICAgICAgICBwZXJzb25lbk5ldUF1ZmJhdWVuKCk7
CiAgICAgICAgICAgICAgICAgICAgbW9kYWxTY2hsaWVzc2VuKCk7CiAgICAgICAgICAgICAgICAg
ICAgcGVyc29uYWxUYWJlbGxlUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgIGlmICh0eXBl
b2YgbmFtZW5SZW5kZXJuID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
IG5hbWVuUmVuZGVybigpOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRlbkdyaWRSZW5kZXJu
KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGtvcGZSZW5kZXJuKCk7CiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIHRvYXN0KCdQZXJzb24gYW5nZWxlZ3QgKFBvcy4g
JyArIHIucG9zaXRpb24gKyAnKScsICdlcmZvbGcnKTsKICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3Nh
Z2UsICdmZWhsZXInKTsgfSk7CiAgICAgICAgfQogICAgKTsKCiAgICB2YXIgZWluU2VsID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RsZy1laW5yZWloZW4nKTsKICAgIHZhciByZWZEZCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbGctcmVmJyk7CiAgICBlaW5TZWwuYWRkRXZlbnRMaXN0
ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgcmVmRGQuZGlzYWJsZWQgPSAoZWlu
U2VsLnZhbHVlID09PSAndW50ZW4nKTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gcGVyc29u
U29ydGllcmVuKGlkLCByaWNodHVuZykgewogICAgdmFyIGFsbGUgPSBaLnBsYW51bmcucGVyc29u
ZW4uc2xpY2UoKS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIChhLnBvc2l0aW9uIHx8IDk5
OSkgLSAoYi5wb3NpdGlvbiB8fCA5OTkpOyB9KTsKICAgIHZhciBpZHggPSBhbGxlLmZpbmRJbmRl
eChmdW5jdGlvbihwKSB7IHJldHVybiBwLmlkID09PSBpZDsgfSk7CiAgICBpZiAoaWR4ID09PSAt
MSkgcmV0dXJuOwogICAgdmFyIHRhdXNjaElkeCA9IHJpY2h0dW5nID09PSAnaG9jaCcgPyBpZHgg
LSAxIDogaWR4ICsgMTsKICAgIGlmICh0YXVzY2hJZHggPCAwIHx8IHRhdXNjaElkeCA+PSBhbGxl
Lmxlbmd0aCkgcmV0dXJuOwoKICAgIHZhciB0bXBQb3MgPSBhbGxlW2lkeF0ucG9zaXRpb247CiAg
ICBhbGxlW2lkeF0ucG9zaXRpb24gPSBhbGxlW3RhdXNjaElkeF0ucG9zaXRpb247CiAgICBhbGxl
W3RhdXNjaElkeF0ucG9zaXRpb24gPSB0bXBQb3M7CgogICAgdmFyIHJlaWhlbmZvbGdlID0gYWxs
ZS5tYXAoZnVuY3Rpb24ocCkgeyByZXR1cm4geyBpZDogcC5pZCwgcG9zaXRpb246IHAucG9zaXRp
b24gfTsgfSk7CiAgICBhcGlQdXQoJy9hcGkvcGVyc29uZW4vcmVpaGVuZm9sZ2UnLCByZWloZW5m
b2xnZSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICBaLnBsYW51bmcucGVyc29uZW4uZm9yRWFj
aChmdW5jdGlvbihwKSB7CiAgICAgICAgICAgIHZhciByID0gcmVpaGVuZm9sZ2UuZmluZChmdW5j
dGlvbih4KSB7IHJldHVybiB4LmlkID09PSBwLmlkOyB9KTsKICAgICAgICAgICAgaWYgKHIpIHAu
cG9zaXRpb24gPSByLnBvc2l0aW9uOwogICAgICAgIH0pOwogICAgICAgIHBlcnNvbmVuTmV1QXVm
YmF1ZW4oKTsKICAgICAgICBwZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICB9KS5jYXRjaChm
dW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7
Cn0K
### FILE: js/admin/rotation-header.js | 50464
Ly8gPT09IGFkbWluL3JvdGF0aW9uLWhlYWRlci5qcyA9PT0KLy8gVGFnZXNkYXRlbi1Sb3RhdGlv
biAoQWRtaW4g4oaSIFRhZ2VzbGFnZSDihpIgUm90YXRpb24pLCBKYWhyZXNzdGFydC1QaGFzZSwK
Ly8gSGVhZGVyLUtvbmZpZyAoU2ljaHRiYXJrZWl0ICsgTGFiZWwgKyBSZW5kZXItTW9kdXMgcHJv
IEhlYWRlci1aZWlsZSksCi8vIENvdW50ZXItS29uZmlnIChTaWNodGJhcmtlaXQgcHJvIENvdW50
ZXItWmVpbGUpLAovLyBNYXJrZXItS29uZmlnIChTeW1ib2wvTGFiZWwvSGludGVyZ3J1bmQgcHJv
IFNjaGljaHRjb2RlLU1hcmtlcikuCgppbXBvcnQgeyBaIH0gZnJvbSAnLi4vY29yZS9zdGF0ZS5q
cyc7CmltcG9ydCB7IGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIsIGRhdHVtU3RyLCBkYXR1bUZvcm1h
dERFLCBtb25hdHNOYW1lLCB3b2NoZW50YWdLdXJ6IH0gZnJvbSAnLi4vY29yZS91dGlsLmpzJzsK
aW1wb3J0IHsgYXBpLCBhcGlQb3N0LCBhcGlQdXQsIGFwaVNhZmUgfSBmcm9tICcuLi9jb3JlL2Fw
aS5qcyc7CmltcG9ydCB7IHRvYXN0IH0gZnJvbSAnLi4vdWkvdG9hc3QuanMnOwppbXBvcnQgeyBt
b2RhbFplaWdlbiwgbW9kYWxTY2hsaWVzc2VuLCBiZXN0YWV0aWdlbiB9IGZyb20gJy4uL3VpL21v
ZGFsLmpzJzsKaW1wb3J0IHsKICAgIEhFQURFUl9SRUlIRU5GT0xHRSwgSEVBREVSX0tPTkZJR19E
RUZBVUxUUywgSEVBREVSX0tFWV9WT05fQ09VTlRFUiwKICAgIEhFQURFUl9MQUJFTF9ERUZBVUxU
UywgaGVhZGVyS29uZmlnR2V0LCBoZWFkZXJSb3csIGhlYWRlckxhYmVsR2V0LAogICAgaGVhZGVy
TGFiZWxzQW53ZW5kZW4sIGtvcGZSZW5kZXJuLCBncmlkUmVuZGVybiwgY291bnRlckZvcm1hdGll
cmVuLAogICAgY291bnRlckVyZnVlbGx0LCBjb3VudGVyS29uZmlnLCBtYXJrZXJLb25maWcsIGNv
dW50ZXJTaWNodGJhcmtlaXRBbndlbmRlbiwKICAgIGhlYWRlcktvbmZpZ0Fud2VuZGVuLCBzY2hy
YWZmdXJlbkFud2VuZGVuLAogICAgRFNNX1NZTUJPTEUsIERTTV9LT05GSUdfREVGQVVMVCwgVk9S
R0FCRV9TVFlMRVNfREVGQVVMVCwgVEFHX01BUktFUl9ERUZBVUxUCn0gZnJvbSAnLi4vZ3JpZC9y
ZW5kZXIuanMnOwoKLy8gTW9kdWwtcHJpdmF0ZSBLb25zdGFudGVuIChUb3AtTGV2ZWwgdm9yIGRl
biBGdW5rdGlvbmVuLCBmcsO8aGVyIGluIGFwcC5qcykKdmFyIHd0S3Vyek5hbWVuID0gWydNbycs
ICdEaScsICdNaScsICdEbycsICdGcicsICdTYScsICdTbyddOwp2YXIgbWFya2VyX0FCQyA9IFsn
QScsICdCJywgJ0MnXTsKCgpleHBvcnQgZnVuY3Rpb24gcm90YXRpb25SZW5kZXJuKCkgewogICAg
dmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb3RhdGlvbi10YWJlbGxl
LWNvbnRhaW5lcicpOwogICAgaWYgKCFjb250YWluZXIpIHJldHVybjsKICAgIHZhciByb3QgPSBa
LmFkbWluLnRhZ2VzZGF0ZW5Sb3RhdGlvbiB8fCB7IHdvY2hlbkFuemFobDogMywgc3RhcnREYXR1
bTogJzIwMjYtMDEtMDUnLCB0YWdlOiBbXSB9OwoKICAgIC8vIEZvcm11bGFyd2VydGUgc2V0emVu
CiAgICB2YXIgc3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm90LXN0YXJ0ZGF0dW0n
KTsKICAgIGlmIChzdGFydCAmJiAhc3RhcnQuZGF0YXNldC5ib3VuZCkgewogICAgICAgIHN0YXJ0
LnZhbHVlID0gcm90LnN0YXJ0RGF0dW0gfHwgJzIwMjYtMDEtMDUnOwogICAgICAgIHN0YXJ0LmRh
dGFzZXQuYm91bmQgPSAnMSc7CiAgICB9CiAgICB2YXIgd29jaGVuU2VsID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3JvdC13b2NoZW4nKTsKICAgIGlmICh3b2NoZW5TZWwgJiYgIXdvY2hlblNl
bC5kYXRhc2V0LmJvdW5kKSB7CiAgICAgICAgd29jaGVuU2VsLnZhbHVlID0gU3RyaW5nKHJvdC53
b2NoZW5BbnphaGwgfHwgMyk7CiAgICAgICAgd29jaGVuU2VsLmRhdGFzZXQuYm91bmQgPSAnMSc7
CiAgICB9CiAgICByb3RhdGlvbkphaHJlc3N0YXJ0U2VsZWN0QWt0dWFsaXNpZXJlbigpOwoKICAg
IC8vIFNpY2hlcnN0ZWxsZW4gZGFzcyB0YWdlW10gZ2VuYXUgd29jaGVuQW56YWhsKjcgRWludHJh
ZWdlIGhhdAogICAgdmFyIHNvbGwgPSAocm90LndvY2hlbkFuemFobCB8fCAzKSAqIDc7CiAgICB3
aGlsZSAocm90LnRhZ2UubGVuZ3RoIDwgc29sbCkgewogICAgICAgIHJvdC50YWdlLnB1c2goewog
ICAgICAgICAgICB2b3JnYWJlU2NoaWNodDogJycsIHN0YWVya2VTb2xsOiBbMiwgMTBdLAogICAg
ICAgICAgICBmcnVlaF9sOiB7IHNvbGw6IDAsIG1hcmtlcjogW10gfSwgc3BhZXRfbDogeyBzb2xs
OiAwLCBtYXJrZXI6IFtdIH0sCiAgICAgICAgICAgIHVudFN0dWV0el9GOiB7IHNvbGw6IDAsIG1h
cmtlcjogW10gfSwgdW50U3R1ZXR6X046IHsgc29sbDogMCwgbWFya2VyOiBbXSB9CiAgICAgICAg
fSk7CiAgICB9CiAgICBpZiAocm90LnRhZ2UubGVuZ3RoID4gc29sbCkgcm90LnRhZ2UgPSByb3Qu
dGFnZS5zbGljZSgwLCBzb2xsKTsKCiAgICB2YXIgaHRtbCA9ICc8dGFibGUgY2xhc3M9ImFkbWlu
LXRhYmVsbGUgcm90YXRpb24tdGFiZWxsZSIgc3R5bGU9Im1pbi13aWR0aDoxMTUwcHgiPicgKwog
ICAgICAgICc8dGhlYWQ+PHRyPicgKwogICAgICAgICAgICAnPHRoIHN0eWxlPSJ3aWR0aDo0MHB4
Ij4jPC90aD4nICsKICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6NDVweCI+VGFnPC90aD4n
ICsKICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6NzBweCI+Vm9yZ2FiZTwvdGg+JyArCiAg
ICAgICAgICAgICc8dGggc3R5bGU9IndpZHRoOjkwcHgiPlN0w6Rya2UgRjpNPC90aD4nICsKICAg
ICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6MTUwcHgiPkYvTCAoU29sbCArIE1hcmtlcik8L3Ro
PicgKwogICAgICAgICAgICAnPHRoIHN0eWxlPSJ3aWR0aDoxNTBweCI+Uy9MIChTb2xsICsgTWFy
a2VyKTwvdGg+JyArCiAgICAgICAgICAgICc8dGggc3R5bGU9IndpZHRoOjE2MHB4Ij5VbnQuIEZy
w7xoZGllbnN0PC90aD4nICsKICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6MTYwcHgiPlVu
dC4gTmFjaHRkaWVuc3Q8L3RoPicgKwogICAgICAgICc8L3RyPjwvdGhlYWQ+PHRib2R5Pic7Cgog
ICAgcm90LnRhZ2UuZm9yRWFjaChmdW5jdGlvbih0YWcsIGlkeCkgewogICAgICAgIHZhciB3dCA9
IHd0S3Vyek5hbWVuW2lkeCAlIDddOwogICAgICAgIHZhciB3b2NoZSA9IE1hdGguZmxvb3IoaWR4
IC8gNykgKyAxOwogICAgICAgIHZhciB3b2NoZW5TdGFydCA9IGlkeCAlIDcgPT09IDA7CgogICAg
ICAgIGh0bWwgKz0gJzx0cicgKyAod29jaGVuU3RhcnQgJiYgaWR4ID4gMCA/ICcgY2xhc3M9Indv
Y2hlbi10cmVubmVyIicgOiAnJykgKyAnPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0
LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6NzAwOyBjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+
JyArIChpZHggKyAxKSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFs
aWduOmNlbnRlcjsgZm9udC1zaXplOjExcHgiPicgKwogICAgICAgICAgICAgICAgJzxzcGFuIGNs
YXNzPSJ3b2NoZW4tYmFkZ2UiPlcnICsgd29jaGUgKyAnPC9zcGFuPiAnICsKICAgICAgICAgICAg
ICAgICc8c3Ryb25nPicgKyB3dCArICc8L3N0cm9uZz4nICsKICAgICAgICAgICAgJzwvdGQ+JyAr
CiAgICAgICAgICAgICc8dGQ+JyArIHJvdGF0aW9uVm9yZ2FiZVNlbGVjdChpZHgsIHRhZy52b3Jn
YWJlU2NoaWNodCkgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0ZD4nICsgcm90YXRpb25TdGFl
cmtlSW5wdXRzKGlkeCwgdGFnLnN0YWVya2VTb2xsKSArICc8L3RkPicgKwogICAgICAgICAgICAn
PHRkPicgKyByb3RhdGlvbkZlbGRJbnB1dHMoaWR4LCAnZnJ1ZWhfbCcsIHRhZy5mcnVlaF9sKSAr
ICc8L3RkPicgKwogICAgICAgICAgICAnPHRkPicgKyByb3RhdGlvbkZlbGRJbnB1dHMoaWR4LCAn
c3BhZXRfbCcsIHRhZy5zcGFldF9sKSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkPicgKyBy
b3RhdGlvbkZlbGRJbnB1dHMoaWR4LCAndW50U3R1ZXR6X0YnLCB0YWcudW50U3R1ZXR6X0YpICsg
JzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+JyArIHJvdGF0aW9uRmVsZElucHV0cyhpZHgsICd1
bnRTdHVldHpfTicsIHRhZy51bnRTdHVldHpfTikgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzwv
dHI+JzsKICAgIH0pOwoKICAgIGh0bWwgKz0gJzwvdGJvZHk+PC90YWJsZT4nOwogICAgY29udGFp
bmVyLmlubmVySFRNTCA9IGh0bWw7Cn0KCi8vIEFrdHVhbGlzaWVydCBkYXMg4oCeMS4gSmFudWFy
IGbDpGxsdCBhdWYgV29jaGUgWCItRHJvcGRvd24gYW5oYW5kIGRlcwovLyBha3R1ZWxsZW4gU3Rh
cnRkYXR1bXMgKyBKYWhyZXMgKyBQZXJpb2RlbmzDpG5nZS4gV2lyZCBuYWNoIGplZGVtCi8vIFJl
bmRlciB1bmQgbmFjaCBtYW51ZWxsZW4gU3RhcnRkYXR1bS3DhG5kZXJ1bmdlbiBhdWZnZXJ1ZmVu
LgpleHBvcnQgZnVuY3Rpb24gcm90YXRpb25KYWhyZXNzdGFydFNlbGVjdEFrdHVhbGlzaWVyZW4o
KSB7CiAgICB2YXIgc2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JvdC1qYWhyZXNzdGFy
dC13b2NoZScpOwogICAgdmFyIHJvdCA9IFouYWRtaW4udGFnZXNkYXRlblJvdGF0aW9uOwogICAg
aWYgKCFzZWwgfHwgIXJvdCkgcmV0dXJuOwogICAgdmFyIHdvY2hlbkFuemFobCA9IHJvdC53b2No
ZW5BbnphaGwgfHwgMzsKICAgIHZhciBqYWhyID0gKFouYWRtaW4gJiYgWi5hZG1pbi5qYWhyKSB8
fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7CiAgICB2YXIgZXJzdGVySmFudWFyID0gbmV3IERh
dGUoamFociArICctMDEtMDFUMDA6MDA6MDAnKTsKICAgIC8vIFdlbGNoZSBSb3RhdGlvbnMtV29j
aGUgZsOkbGx0IGF1ZiBkZW4gMS4gSmFudWFyPwogICAgdmFyIGFrdHVlbGxlV29jaGUgPSBqYWhy
ZXNzdGFydFdvY2hlQmVyZWNobmVuKGVyc3RlckphbnVhciwgcm90LCB3b2NoZW5BbnphaGwpOwog
ICAgLy8gT3B0aW9uZW4gcmVuZGVybiAoMS4ud29jaGVuQW56YWhsLCBtaXQgV29jaGVudGFnLUhp
bndlaXMpCiAgICB2YXIgd3QgPSBbJ01vbnRhZycsJ0RpZW5zdGFnJywnTWl0dHdvY2gnLCdEb25u
ZXJzdGFnJywnRnJlaXRhZycsJ1NhbXN0YWcnLCdTb25udGFnJ11bKChlcnN0ZXJKYW51YXIuZ2V0
RGF5KCkgKyA2KSAlIDcpXTsKICAgIHZhciBvcHRzID0gJyc7CiAgICBmb3IgKHZhciB3ID0gMTsg
dyA8PSB3b2NoZW5BbnphaGw7IHcrKykgewogICAgICAgIG9wdHMgKz0gJzxvcHRpb24gdmFsdWU9
IicgKyB3ICsgJyInICsgKHcgPT09IGFrdHVlbGxlV29jaGUgPyAnIHNlbGVjdGVkJyA6ICcnKSAr
ICc+V29jaGUgJyArIHcgKyAnICgnICsgd3QgKyAnKTwvb3B0aW9uPic7CiAgICB9CiAgICAvLyBM
YWJlbC1VcGRhdGUgbWl0IEphaHIKICAgIHZhciBsYmwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCdsYWJlbFtmb3I9InJvdC1qYWhyZXNzdGFydC13b2NoZSJdJyk7CiAgICBpZiAobGJsKSBsYmwu
dGV4dENvbnRlbnQgPSAnMS4gSmFudWFyICcgKyBqYWhyICsgJyBmw6RsbHQgYXVmIFJvdGF0aW9u
cy1Xb2NoZSc7CiAgICBzZWwuaW5uZXJIVE1MID0gb3B0czsKfQoKZXhwb3J0IGZ1bmN0aW9uIGph
aHJlc3N0YXJ0V29jaGVCZXJlY2huZW4oZXJzdGVySmFudWFyLCByb3QsIHdvY2hlbkFuemFobCkg
ewogICAgdmFyIG1vZHVsdXMgPSB3b2NoZW5BbnphaGwgKiA3OwogICAgdmFyIHN0YXJ0U3RyID0g
KHJvdCAmJiByb3Quc3RhcnREYXR1bSkgfHwgJzIwMjYtMDEtMDUnOwogICAgdmFyIHN0YXJ0ID0g
bmV3IERhdGUoc3RhcnRTdHIgKyAnVDAwOjAwOjAwJyk7CiAgICB2YXIgZGlmZlRhZ2UgPSBNYXRo
LnJvdW5kKChlcnN0ZXJKYW51YXIgLSBzdGFydCkgLyA4NjQwMDAwMCk7CiAgICB2YXIgaWR4ID0g
KChkaWZmVGFnZSAlIG1vZHVsdXMpICsgbW9kdWx1cykgJSBtb2R1bHVzOwogICAgcmV0dXJuIE1h
dGguZmxvb3IoaWR4IC8gNykgKyAxOyAgIC8vIDEtYmFzaWVydAp9CgovLyBCZXJlY2huZXQgZGFz
IG5ldWUgU3RhcnRkYXR1bSAoTW9udGFnIGRlciBSb3RhdGlvbnMtV29jaGUgMSkgc28sIGRhc3MK
Ly8gZGVyIDEuIEphbnVhciBkZXMgUGxhbnVuZ3NqYWhyZXMgYXVmIGRpZSBnZXfDpGhsdGUgUm90
YXRpb25zLVdvY2hlIGbDpGxsdC4KZXhwb3J0IGZ1bmN0aW9uIGphaHJlc3N0YXJ0V29jaGVBbndl
bmRlbih3b2NoZUlkeCkgewogICAgdmFyIHJvdCA9IFouYWRtaW4udGFnZXNkYXRlblJvdGF0aW9u
OwogICAgaWYgKCFyb3QpIHJldHVybjsKICAgIHZhciBqYWhyID0gKFouYWRtaW4gJiYgWi5hZG1p
bi5qYWhyKSB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7CiAgICB2YXIgZXJzdGVySmFudWFy
ID0gbmV3IERhdGUoamFociArICctMDEtMDFUMDA6MDA6MDAnKTsKICAgIC8vIFdvY2hlbnRhZy1J
bmRleCAoMCA9IE1vLCAuLi4sIDYgPSBTbykKICAgIHZhciB3dElkeCA9IChlcnN0ZXJKYW51YXIu
Z2V0RGF5KCkgKyA2KSAlIDc7CiAgICAvLyBaaWVsLVNsb3QgaW4gZGVyIFJvdGF0aW9uID0gKHdv
Y2hlSWR4LTEpKjcgKyB3dElkeAogICAgdmFyIHNsb3QgPSAod29jaGVJZHggLSAxKSAqIDcgKyB3
dElkeDsKICAgIC8vIE5ldWVzIFN0YXJ0ZGF0dW0gPSAxLiBKYW51YXIgbWludXMgc2xvdCBUYWdl
ICg9IE1vbnRhZyBkZXIgUm90YXRpb25zLVdvY2hlIDEpCiAgICB2YXIgbmV1U3RhcnQgPSBuZXcg
RGF0ZShlcnN0ZXJKYW51YXIuZ2V0VGltZSgpIC0gc2xvdCAqIDg2NDAwMDAwKTsKICAgIHZhciBq
YWhyU3RyICA9IG5ldVN0YXJ0LmdldEZ1bGxZZWFyKCk7CiAgICB2YXIgbW9uYXRTdHIgPSAoJzAn
ICsgKG5ldVN0YXJ0LmdldE1vbnRoKCkgKyAxKSkuc2xpY2UoLTIpOwogICAgdmFyIHRhZ1N0ciAg
ID0gKCcwJyArIG5ldVN0YXJ0LmdldERhdGUoKSkuc2xpY2UoLTIpOwogICAgdmFyIGlzbyAgICAg
ID0gamFoclN0ciArICctJyArIG1vbmF0U3RyICsgJy0nICsgdGFnU3RyOwogICAgcm90LnN0YXJ0
RGF0dW0gPSBpc287CiAgICB2YXIgc3RhcnRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
b3Qtc3RhcnRkYXR1bScpOwogICAgaWYgKHN0YXJ0RWwpIHN0YXJ0RWwudmFsdWUgPSBpc287CiAg
ICAvLyBIYXVwdGdyaWQgbmV1IHJlbmRlcm4sIGRhbWl0IGRpZSBuZXVlIFBoYXNlIHNvZm9ydCB3
aXJrdAogICAgaWYgKHR5cGVvZiBrb3BmUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykga29wZlJlbmRl
cm4oKTsKICAgIHRvYXN0KCdSb3RhdGlvbnMtUGhhc2UgYW5nZXBhc3N0IOKAlCBTdGFydGRhdHVt
ICcgKyBpc28sICdpbmZvJyk7Cn0KCmV4cG9ydCBmdW5jdGlvbiByb3RhdGlvblZvcmdhYmVTZWxl
Y3QoaWR4LCB2YWwpIHsKICAgIHZhciBvcHRzID0gWycnLCAnRicsICdTJywgJ04nXS5tYXAoZnVu
Y3Rpb24obykgewogICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1ZT0iJyArIG8gKyAnIicgKyAo
byA9PT0gKHZhbCB8fCAnJykgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+JyArIChvIHx8ICfigJQn
KSArICc8L29wdGlvbj4nOwogICAgfSkuam9pbignJyk7CiAgICByZXR1cm4gJzxzZWxlY3QgY2xh
c3M9ImZvcm0taW5wdXQgcm90LXZvcmdhYmUiIGRhdGEtaWR4PSInICsgaWR4ICsgJyIgc3R5bGU9
IndpZHRoOjEwMCU7IGZvbnQtd2VpZ2h0OjcwMCI+JyArIG9wdHMgKyAnPC9zZWxlY3Q+JzsKfQoK
ZXhwb3J0IGZ1bmN0aW9uIHJvdGF0aW9uU3RhZXJrZUlucHV0cyhpZHgsIGFycikgewogICAgYXJy
ID0gYXJyIHx8IFsyLCAxMF07CiAgICByZXR1cm4gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDsg
Z2FwOjJweDsgYWxpZ24taXRlbXM6Y2VudGVyIj4nICsKICAgICAgICAnPGlucHV0IHR5cGU9Im51
bWJlciIgbWluPSIwIiBtYXg9Ijk5IiB2YWx1ZT0iJyArIChhcnJbMF0gfHwgMCkgKyAnIiBjbGFz
cz0iZm9ybS1pbnB1dCByb3Qtc3RhZXJrZS1mIiBkYXRhLWlkeD0iJyArIGlkeCArICciIHN0eWxl
PSJ3aWR0aDo0MHB4OyB0ZXh0LWFsaWduOmNlbnRlciI+JyArCiAgICAgICAgJzxzcGFuIHN0eWxl
PSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+Ojwvc3Bhbj4nICsKICAgICAgICAnPGlucHV0IHR5
cGU9Im51bWJlciIgbWluPSIwIiBtYXg9Ijk5IiB2YWx1ZT0iJyArIChhcnJbMV0gfHwgMCkgKyAn
IiBjbGFzcz0iZm9ybS1pbnB1dCByb3Qtc3RhZXJrZS1tIiBkYXRhLWlkeD0iJyArIGlkeCArICci
IHN0eWxlPSJ3aWR0aDo0MHB4OyB0ZXh0LWFsaWduOmNlbnRlciI+JyArCiAgICAgICAgJzwvZGl2
Pic7Cn0KCmV4cG9ydCBmdW5jdGlvbiByb3RhdGlvbkZlbGRJbnB1dHMoaWR4LCBmZWxkLCBvYmop
IHsKICAgIG9iaiA9IG9iaiB8fCB7IHNvbGw6IDAsIG1hcmtlcjogW10gfTsKICAgIHZhciBzb2xs
SW5wID0gJzxpbnB1dCB0eXBlPSJudW1iZXIiIG1pbj0iMCIgbWF4PSI5OSIgdmFsdWU9IicgKyAo
b2JqLnNvbGwgfHwgMCkgKyAnIiBjbGFzcz0iZm9ybS1pbnB1dCByb3QtZmVsZC1zb2xsIiBkYXRh
LWlkeD0iJyArIGlkeCArICciIGRhdGEtZmVsZD0iJyArIGZlbGQgKyAnIiBzdHlsZT0id2lkdGg6
NDJweDsgdGV4dC1hbGlnbjpjZW50ZXIiPic7CiAgICB2YXIgbWFya2VySHRtbCA9IG1hcmtlcl9B
QkMubWFwKGZ1bmN0aW9uKG0pIHsKICAgICAgICB2YXIgY2hlY2tlZCA9IChvYmoubWFya2VyIHx8
IFtdKS5pbmRleE9mKG0pID49IDAgPyAnIGNoZWNrZWQnIDogJyc7CiAgICAgICAgcmV0dXJuICc8
bGFiZWwgY2xhc3M9InJvdC1tYXJrZXItbGFiZWwiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xh
c3M9InJvdC1mZWxkLW1hcmtlciIgZGF0YS1pZHg9IicgKyBpZHggKyAnIiBkYXRhLWZlbGQ9Iicg
KyBmZWxkICsgJyIgZGF0YS1tYXJrZXI9IicgKyBtICsgJyInICsgY2hlY2tlZCArICc+ICcgKyBt
ICsgJzwvbGFiZWw+JzsKICAgIH0pLmpvaW4oJycpOwogICAgcmV0dXJuICc8ZGl2IHN0eWxlPSJk
aXNwbGF5OmZsZXg7IGdhcDo0cHg7IGFsaWduLWl0ZW1zOmNlbnRlciI+JyArIHNvbGxJbnAgKwog
ICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7IGdhcDoycHg7IGZvbnQtc2l6ZToxMHB4
OyBtYXJnaW4tbGVmdDo0cHgiPicgKyBtYXJrZXJIdG1sICsgJzwvZGl2PjwvZGl2Pic7Cn0KCmV4
cG9ydCBmdW5jdGlvbiByb3RhdGlvbklucHV0QWVuZGVydW5nKCkgewogICAgLy8gTGVzZSBhbGxl
IElucHV0cyB1bmQgYWt0dWFsaXNpZXJlIFouYWRtaW4udGFnZXNkYXRlblJvdGF0aW9uCiAgICB2
YXIgcm90ID0gWi5hZG1pbi50YWdlc2RhdGVuUm90YXRpb247CiAgICBpZiAoIXJvdCkgcmV0dXJu
OwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnJvdC12b3JnYWJlJykuZm9yRWFjaChm
dW5jdGlvbihzZWwpIHsKICAgICAgICB2YXIgaWR4ID0gcGFyc2VJbnQoc2VsLmdldEF0dHJpYnV0
ZSgnZGF0YS1pZHgnKSk7CiAgICAgICAgaWYgKHJvdC50YWdlW2lkeF0pIHJvdC50YWdlW2lkeF0u
dm9yZ2FiZVNjaGljaHQgPSBzZWwudmFsdWU7CiAgICB9KTsKICAgIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJy5yb3Qtc3RhZXJrZS1mJykuZm9yRWFjaChmdW5jdGlvbihpbnApIHsKICAgICAg
ICB2YXIgaWR4ID0gcGFyc2VJbnQoaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSk7CiAgICAg
ICAgaWYgKHJvdC50YWdlW2lkeF0pIHsKICAgICAgICAgICAgcm90LnRhZ2VbaWR4XS5zdGFlcmtl
U29sbCA9IHJvdC50YWdlW2lkeF0uc3RhZXJrZVNvbGwgfHwgWzAsIDBdOwogICAgICAgICAgICBy
b3QudGFnZVtpZHhdLnN0YWVya2VTb2xsWzBdID0gcGFyc2VJbnQoaW5wLnZhbHVlKSB8fCAwOwog
ICAgICAgIH0KICAgIH0pOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnJvdC1zdGFl
cmtlLW0nKS5mb3JFYWNoKGZ1bmN0aW9uKGlucCkgewogICAgICAgIHZhciBpZHggPSBwYXJzZUlu
dChpbnAuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICBpZiAocm90LnRhZ2VbaWR4
XSkgewogICAgICAgICAgICByb3QudGFnZVtpZHhdLnN0YWVya2VTb2xsID0gcm90LnRhZ2VbaWR4
XS5zdGFlcmtlU29sbCB8fCBbMCwgMF07CiAgICAgICAgICAgIHJvdC50YWdlW2lkeF0uc3RhZXJr
ZVNvbGxbMV0gPSBwYXJzZUludChpbnAudmFsdWUpIHx8IDA7CiAgICAgICAgfQogICAgfSk7CiAg
ICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucm90LWZlbGQtc29sbCcpLmZvckVhY2goZnVu
Y3Rpb24oaW5wKSB7CiAgICAgICAgdmFyIGlkeCA9IHBhcnNlSW50KGlucC5nZXRBdHRyaWJ1dGUo
J2RhdGEtaWR4JykpOwogICAgICAgIHZhciBmZWxkID0gaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1m
ZWxkJyk7CiAgICAgICAgaWYgKHJvdC50YWdlW2lkeF0pIHsKICAgICAgICAgICAgcm90LnRhZ2Vb
aWR4XVtmZWxkXSA9IHJvdC50YWdlW2lkeF1bZmVsZF0gfHwgeyBzb2xsOiAwLCBtYXJrZXI6IFtd
IH07CiAgICAgICAgICAgIHJvdC50YWdlW2lkeF1bZmVsZF0uc29sbCA9IHBhcnNlSW50KGlucC52
YWx1ZSkgfHwgMDsKICAgICAgICB9CiAgICB9KTsKICAgIC8vIE1hcmtlciBwcm8gRmVsZCBuZXUg
ZWluc2FtbWVsbgogICAgcm90LnRhZ2UuZm9yRWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAgWydm
cnVlaF9sJywgJ3NwYWV0X2wnLCAndW50U3R1ZXR6X0YnLCAndW50U3R1ZXR6X04nXS5mb3JFYWNo
KGZ1bmN0aW9uKGYpIHsKICAgICAgICAgICAgaWYgKCF0W2ZdKSB0W2ZdID0geyBzb2xsOiAwLCBt
YXJrZXI6IFtdIH07CiAgICAgICAgICAgIHRbZl0ubWFya2VyID0gW107CiAgICAgICAgfSk7CiAg
ICB9KTsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5yb3QtZmVsZC1tYXJrZXI6Y2hl
Y2tlZCcpLmZvckVhY2goZnVuY3Rpb24oY2IpIHsKICAgICAgICB2YXIgaWR4ID0gcGFyc2VJbnQo
Y2IuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpKTsKICAgICAgICB2YXIgZmVsZCA9IGNiLmdldEF0
dHJpYnV0ZSgnZGF0YS1mZWxkJyk7CiAgICAgICAgdmFyIG0gPSBjYi5nZXRBdHRyaWJ1dGUoJ2Rh
dGEtbWFya2VyJyk7CiAgICAgICAgaWYgKHJvdC50YWdlW2lkeF0gJiYgcm90LnRhZ2VbaWR4XVtm
ZWxkXSkgcm90LnRhZ2VbaWR4XVtmZWxkXS5tYXJrZXIucHVzaChtKTsKICAgIH0pOwp9CgpleHBv
cnQgZnVuY3Rpb24gcm90YXRpb25TcGVpY2hlcm4oKSB7CiAgICByb3RhdGlvbklucHV0QWVuZGVy
dW5nKCk7CiAgICB2YXIgcm90ID0gWi5hZG1pbi50YWdlc2RhdGVuUm90YXRpb247CiAgICB2YXIg
c3RhcnRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb3Qtc3RhcnRkYXR1bScpOwogICAg
dmFyIHdvY2hlbkVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JvdC13b2NoZW4nKTsKICAg
IGlmIChzdGFydEVsKSByb3Quc3RhcnREYXR1bSA9IHN0YXJ0RWwudmFsdWU7CiAgICBpZiAod29j
aGVuRWwpIHsKICAgICAgICB2YXIgbmV1V29jaGVuID0gcGFyc2VJbnQod29jaGVuRWwudmFsdWUp
IHx8IDM7CiAgICAgICAgaWYgKG5ldVdvY2hlbiAhPT0gcm90LndvY2hlbkFuemFobCkgewogICAg
ICAgICAgICByb3Qud29jaGVuQW56YWhsID0gbmV1V29jaGVuOwogICAgICAgICAgICAvLyB0YWdl
LUFycmF5IGFucGFzc2VuCiAgICAgICAgICAgIHZhciBzb2xsID0gbmV1V29jaGVuICogNzsKICAg
ICAgICAgICAgd2hpbGUgKHJvdC50YWdlLmxlbmd0aCA8IHNvbGwpIHJvdC50YWdlLnB1c2goewog
ICAgICAgICAgICAgICAgdm9yZ2FiZVNjaGljaHQ6ICcnLCBzdGFlcmtlU29sbDogWzIsIDEwXSwK
ICAgICAgICAgICAgICAgIGZydWVoX2w6IHsgc29sbDogMCwgbWFya2VyOiBbXSB9LCBzcGFldF9s
OiB7IHNvbGw6IDAsIG1hcmtlcjogW10gfSwKICAgICAgICAgICAgICAgIHVudFN0dWV0el9GOiB7
IHNvbGw6IDAsIG1hcmtlcjogW10gfSwgdW50U3R1ZXR6X046IHsgc29sbDogMCwgbWFya2VyOiBb
XSB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpZiAocm90LnRhZ2UubGVuZ3RoID4gc29s
bCkgcm90LnRhZ2UgPSByb3QudGFnZS5zbGljZSgwLCBzb2xsKTsKICAgICAgICB9CiAgICB9CiAg
ICBhcGlQdXQoJy9hcGkvYWRtaW4nLCBaLmFkbWluKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAg
IHRvYXN0KCdSb3RhdGlvbiBnZXNwZWljaGVydCcsICdlcmZvbGcnKTsKICAgICAgICByb3RhdGlv
blJlbmRlcm4oKTsKICAgICAgICAvLyBIYXVwdHBsYW51bmcgbmV1IHJlbmRlcm4sIGRhbWl0IEhl
YWRlci1aZWlsZW4gc2ljaCBha3R1YWxpc2llcmVuCiAgICAgICAgaWYgKHR5cGVvZiBrb3BmUmVu
ZGVybiA9PT0gJ2Z1bmN0aW9uJykga29wZlJlbmRlcm4oKTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9u
KGUpIHsgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKfQoKCi8v
IEZlaWVydGFnZSAvIEZlcmllbiAvIFZvcmxhZ2VuIC8gU29uZGVydGVybWluZSAvIFNjaGljaHRj
b2RlcyAvCi8vIFNjaGljaHRmb2xnZW4gLyBTdXBlclVzZXIgLT4ganMvYWRtaW4vbGlzdGVuLmpz
CgovLyA9PT09PSBBZG1pbjogTWFya2VyLUtvbmZpZ3VyYXRpb24gKGltIFNjaGljaHRjb2Rlcy1U
YWIpID09PT09CgpleHBvcnQgZnVuY3Rpb24gbWFya2VySGludGVyZ3J1bmRJc3RUcmFuc3BhcmVu
dCh3ZXJ0KSB7CiAgICBpZiAoIXdlcnQpIHJldHVybiB0cnVlOwogICAgdmFyIHcgPSBTdHJpbmco
d2VydCkudG9Mb3dlckNhc2UoKS50cmltKCk7CiAgICByZXR1cm4gKHcgPT09ICd0cmFuc3BhcmVu
dCcgfHwgdyA9PT0gJ25vbmUnIHx8IHcgPT09ICdyZ2JhKDAsMCwwLDApJyk7Cn0KCmV4cG9ydCBm
dW5jdGlvbiBtYXJrZXJWb3JzY2hhdUh0bWwoY2ZnKSB7CiAgICB2YXIgc3R5bGVQYXJ0cyA9IFtd
OwogICAgaWYgKCFtYXJrZXJIaW50ZXJncnVuZElzdFRyYW5zcGFyZW50KGNmZy5oaW50ZXJncnVu
ZCkpIHN0eWxlUGFydHMucHVzaCgnYmFja2dyb3VuZDonICsgY2ZnLmhpbnRlcmdydW5kKTsKICAg
IHN0eWxlUGFydHMucHVzaCgnY29sb3I6JyArIGNmZy5zY2hyaWZ0KTsKICAgIHN0eWxlUGFydHMu
cHVzaCgnZm9udC1zaXplOicgKyBjZmcuc2NocmlmdGdyb2Vzc2UgKyAncHgnKTsKICAgIGlmIChj
ZmcuZmV0dCkgc3R5bGVQYXJ0cy5wdXNoKCdmb250LXdlaWdodDo2MDAnKTsKICAgIHJldHVybiAn
PHNwYW4gY2xhc3M9InRkLW1hcmtlciB0ZC1tYXJrZXItJyArIGNmZy5tb2R1cyArICciIHN0eWxl
PSInICsgc3R5bGVQYXJ0cy5qb2luKCc7JykgKyAnIj4nICsgZXNjYXBlSFRNTChjZmcuYnVjaHN0
YWJlKSArICc8L3NwYW4+JzsKfQoKZXhwb3J0IGZ1bmN0aW9uIG1hcmtlcktvbmZpZ1JlbmRlcm4o
KSB7CiAgICB2YXIgdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFya2VyLWtvbmZp
Zy10Ym9keScpOwogICAgaWYgKCF0Ym9keSkgcmV0dXJuOwogICAgLy8gRml4ZSBNYXJrZXItS3Vl
cnplbCBBL0IvQzogTGFwcGVyLU1hcmtpZXJ1bmdlbiBhdXMgZGVuIFRhZ2VzZGF0ZW4KICAgIC8v
IChGcnVlaC9MLCBTcGFldC9MLCBVbnRlcnN0dWV0enVuZykuIERpZW5zdGdydXBwZW4tS29uemVw
dCB3dXJkZQogICAgLy8gZW50ZmVybnQgLS0gamVkZSBGTEQtSW5zdGFueiBsYWV1ZnQgbW9uby1n
cnVwcGlnLCBhYmVyIGRpZSBMYXBwZXItCiAgICAvLyBDb2RlcyBibGVpYmVuIGluIGRlbiBEYXRl
biB1bmQgYnJhdWNoZW4gd2VpdGVyIEtvbmZpZ3VyaWVyYmFya2VpdC4KICAgIHZhciBtYXJrZXIg
PSBbCiAgICAgICAgeyBrdWVyemVsOiAnQScsIG5hbWU6ICdNYXJrZXIgQScgfSwKICAgICAgICB7
IGt1ZXJ6ZWw6ICdCJywgbmFtZTogJ01hcmtlciBCJyB9LAogICAgICAgIHsga3VlcnplbDogJ0Mn
LCBuYW1lOiAnTWFya2VyIEMnIH0KICAgIF07CiAgICB2YXIgaGsgPSBoZWFkZXJLb25maWdHZXQo
KTsKICAgIGlmICghaGsubWFya2VyKSBoay5tYXJrZXIgPSB7fTsKICAgIHZhciBodG1sID0gJyc7
CiAgICBtYXJrZXIuZm9yRWFjaChmdW5jdGlvbihnKSB7CiAgICAgICAgdmFyIGsgPSBnLmt1ZXJ6
ZWw7CiAgICAgICAgdmFyIGNmZyA9IG1hcmtlcktvbmZpZyhrKTsKICAgICAgICB2YXIgdHJhbnNw
YXJlbnQgPSBtYXJrZXJIaW50ZXJncnVuZElzdFRyYW5zcGFyZW50KGNmZy5oaW50ZXJncnVuZCk7
CiAgICAgICAgdmFyIGhleEZhbGxiYWNrID0gdHJhbnNwYXJlbnQgPyAnIzg4ODg4OCcgOiBjZmcu
aGludGVyZ3J1bmQ7CiAgICAgICAgaHRtbCArPSAnPHRyIGRhdGEtbWFya2VyPSInICsgZXNjYXBl
QXR0cihrKSArICciPicgKwogICAgICAgICAgICAnPHRkPjxzdHJvbmc+JyArIGVzY2FwZUhUTUwo
Zy5uYW1lKSArICc8L3N0cm9uZz48L3RkPicgKwogICAgICAgICAgICAnPHRkPjxpbnB1dCB0eXBl
PSJ0ZXh0IiBjbGFzcz0ibWstZmVsZCBmb3JtLWlucHV0IiBkYXRhLWZlbGQ9ImJ1Y2hzdGFiZSIg
dmFsdWU9IicgKyBlc2NhcGVBdHRyKGNmZy5idWNoc3RhYmUpICsgJyIgbWF4bGVuZ3RoPSIzIiBz
dHlsZT0id2lkdGg6NTVweDt0ZXh0LWFsaWduOmNlbnRlciI+PC90ZD4nICsKICAgICAgICAgICAg
Jzx0ZD48c2VsZWN0IGNsYXNzPSJtay1mZWxkIGZvcm0taW5wdXQiIGRhdGEtZmVsZD0ibW9kdXMi
IHN0eWxlPSJ3aWR0aDoxMzBweCI+JyArCiAgICAgICAgICAgICAgICBbJ3BpbGwnLCd2b2xsJywn
bnVyLWJ1Y2hzdGFiZScsJ3ZlcnN0ZWNrdCddLm1hcChmdW5jdGlvbihtKSB7CiAgICAgICAgICAg
ICAgICAgICAgdmFyIGxhYmVsTWFwID0geydwaWxsJzonUGlsbCAoa2xlaW4pJywndm9sbCc6J0Js
b2NrIChncm/DnyknLCdudXItYnVjaHN0YWJlJzonTnVyIEJ1Y2hzdGFiZScsJ3ZlcnN0ZWNrdCc6
J1ZlcnN0ZWNrdCd9OwogICAgICAgICAgICAgICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1ZT0i
JyArIG0gKyAnIicgKyAoY2ZnLm1vZHVzID09PSBtID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPicg
KyBsYWJlbE1hcFttXSArICc8L29wdGlvbj4nOwogICAgICAgICAgICAgICAgfSkuam9pbignJykg
KwogICAgICAgICAgICAnPC9zZWxlY3Q+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZD4nICsKICAg
ICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29s
dW1uO2dhcDo0cHg7YWxpZ24taXRlbXM6Y2VudGVyIj4nICsKICAgICAgICAgICAgICAgICAgICAn
PGlucHV0IHR5cGU9ImNvbG9yIiBjbGFzcz0ibWstZmVsZCBtay1oZXgiIGRhdGEtZmVsZD0iaGlu
dGVyZ3J1bmQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihoZXhGYWxsYmFjaykgKyAnIiBzdHlsZT0i
d2lkdGg6NTBweDtoZWlnaHQ6MzBweDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlciInICsgKHRy
YW5zcGFyZW50ID8gJyBkaXNhYmxlZCcgOiAnJykgKyAnPicgKwogICAgICAgICAgICAgICAgICAg
ICc8bGFiZWwgc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpj
ZW50ZXI7Z2FwOjNweDtjdXJzb3I6cG9pbnRlciI+JyArCiAgICAgICAgICAgICAgICAgICAgICAg
ICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJtay10cmFuc3BhcmVudCIgZGF0YS1mZWxk
PSJoaW50ZXJncnVuZC10cmFuc3BhcmVudCInICsgKHRyYW5zcGFyZW50ID8gJyBjaGVja2VkJyA6
ICcnKSArICc+IHRyYW5zcC4nICsKICAgICAgICAgICAgICAgICAgICAnPC9sYWJlbD4nICsKICAg
ICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgJzwvdGQ+JyArCiAgICAgICAgICAg
ICc8dGQ+PGlucHV0IHR5cGU9ImNvbG9yIiBjbGFzcz0ibWstZmVsZCIgZGF0YS1mZWxkPSJzY2hy
aWZ0IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoY2ZnLnNjaHJpZnQpICsgJyIgc3R5bGU9IndpZHRo
OjUwcHg7aGVpZ2h0OjMwcHg7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXIiPjwvdGQ+JyArCiAg
ICAgICAgICAgICc8dGQ+PGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9Im1rLWZlbGQgZm9ybS1p
bnB1dCIgZGF0YS1mZWxkPSJzY2hyaWZ0Z3JvZXNzZSIgdmFsdWU9IicgKyBjZmcuc2NocmlmdGdy
b2Vzc2UgKyAnIiBtaW49IjgiIG1heD0iMzIiIHN0eWxlPSJ3aWR0aDo1NXB4Ij48L3RkPicgKwog
ICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+PGlucHV0IHR5cGU9ImNo
ZWNrYm94IiBjbGFzcz0ibWstZmVsZCIgZGF0YS1mZWxkPSJmZXR0IicgKyAoY2ZnLmZldHQgPyAn
IGNoZWNrZWQnIDogJycpICsgJz48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0
LWFsaWduOmNlbnRlciI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ibWstZmVsZCIgZGF0
YS1mZWxkPSJrdXJzaXYiJyArIChjZmcua3Vyc2l2ID8gJyBjaGVja2VkJyA6ICcnKSArICc+PC90
ZD4nICsKICAgICAgICAgICAgJzx0ZD48ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJl
Y3Rpb246Y29sdW1uO2dhcDoycHgiPicgKwogICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0
ZXh0IiBjbGFzcz0ibWstZmVsZCBmb3JtLWlucHV0IiBkYXRhLWZlbGQ9ImJvcmRlclRvcCIgdmFs
dWU9IicgKyBlc2NhcGVBdHRyKGNmZy5ib3JkZXJUb3AgfHwgJycpICsgJyIgcGxhY2Vob2xkZXI9
IlRvcCIgc3R5bGU9ImZvbnQtc2l6ZToxMHB4O3BhZGRpbmc6MnB4IDRweCI+JyArCiAgICAgICAg
ICAgICAgICAnPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJtay1mZWxkIGZvcm0taW5wdXQiIGRh
dGEtZmVsZD0iYm9yZGVyTGVmdCIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKGNmZy5ib3JkZXJMZWZ0
IHx8ICcnKSArICciIHBsYWNlaG9sZGVyPSJMZWZ0IiBzdHlsZT0iZm9udC1zaXplOjEwcHg7cGFk
ZGluZzoycHggNHB4Ij4nICsKICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgY2xh
c3M9Im1rLWZlbGQgZm9ybS1pbnB1dCIgZGF0YS1mZWxkPSJib3JkZXJSaWdodCIgdmFsdWU9Iicg
KyBlc2NhcGVBdHRyKGNmZy5ib3JkZXJSaWdodCB8fCAnJykgKyAnIiBwbGFjZWhvbGRlcj0iUmln
aHQiIHN0eWxlPSJmb250LXNpemU6MTBweDtwYWRkaW5nOjJweCA0cHgiPicgKwogICAgICAgICAg
ICAnPC9kaXY+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBjbGFzcz0ibWstdm9yc2NoYXUiPicg
KyBtYXJrZXJWb3JzY2hhdUh0bWwoY2ZnKSArICc8L3RkPicgKwogICAgICAgICc8L3RyPic7CiAg
ICB9KTsKICAgIHRib2R5LmlubmVySFRNTCA9IGh0bWw7Cn0KCmV4cG9ydCBmdW5jdGlvbiBtYXJr
ZXJLb25maWdBdXNaZWlsZSh0cikgewogICAgdmFyIGVudHJ5ID0ge307CiAgICB0ci5xdWVyeVNl
bGVjdG9yQWxsKCcubWstZmVsZCcpLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7CiAgICAgICAgdmFy
IGYgPSBpbnAuZ2V0QXR0cmlidXRlKCdkYXRhLWZlbGQnKTsKICAgICAgICBpZiAoaW5wLnR5cGUg
PT09ICdjaGVja2JveCcpICAgICAgZW50cnlbZl0gPSAhIWlucC5jaGVja2VkOwogICAgICAgIGVs
c2UgaWYgKGlucC50eXBlID09PSAnbnVtYmVyJykgICBlbnRyeVtmXSA9IHBhcnNlSW50KGlucC52
YWx1ZSwgMTApIHx8IDA7CiAgICAgICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVudHJ5W2ZdID0gaW5wLnZhbHVlOwogICAgfSk7CiAgICB2YXIgdHJhbnNwID0gdHIucXVlcnlT
ZWxlY3RvcignLm1rLXRyYW5zcGFyZW50Jyk7CiAgICBpZiAodHJhbnNwICYmIHRyYW5zcC5jaGVj
a2VkKSBlbnRyeS5oaW50ZXJncnVuZCA9ICd0cmFuc3BhcmVudCc7CiAgICByZXR1cm4gZW50cnk7
Cn0KCmV4cG9ydCBmdW5jdGlvbiBtYXJrZXJLb25maWdBdXNUYWJlbGxlTGVzZW4oKSB7CiAgICB2
YXIgayA9IHt9OwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI21hcmtlci1rb25maWct
dGJvZHkgdHInKS5mb3JFYWNoKGZ1bmN0aW9uKHRyKSB7CiAgICAgICAgdmFyIGtleSA9IHRyLmdl
dEF0dHJpYnV0ZSgnZGF0YS1tYXJrZXInKTsKICAgICAgICBpZiAoIWtleSkgcmV0dXJuOwogICAg
ICAgIGtba2V5XSA9IG1hcmtlcktvbmZpZ0F1c1plaWxlKHRyKTsKICAgIH0pOwogICAgcmV0dXJu
IGs7Cn0KCi8vID09PT09IEFkbWluOiBDb3VudGVyLUtvbmZpZ3VyYXRpb24gKGltIEZ1bmt0aW9u
ZW4tVGFiKSA9PT09PQoKLy8gPT09PT0gQWRtaW4tVGFiOiBIZWFkZXItWmVpbGVuIOKAlCBrb25z
b2xpZGllcnRlIEtvbmZpZyA9PT09PQpleHBvcnQgZnVuY3Rpb24gaGVhZGVyS29uZmlnUmVuZGVy
bigpIHsKICAgIHZhciBjb250ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlYWRlci1rb25m
aWctaW5oYWx0Jyk7CiAgICBpZiAoIWNvbnQpIHJldHVybjsKICAgIHZhciBoayA9IGhlYWRlcktv
bmZpZ0dldCgpOwogICAgdmFyIGJlc2NocmVpYnVuZyA9IHsKICAgICAgICB2b3JnYWJlOiAgICAg
J1ZvcmdhYmUtU2NoaWNodCAoRi9TL04pJywKICAgICAgICBzdGFlcmtlc29sbDogJ1N0w6Rya2Ut
U29sbCAoRsO8aHJ1bmcgOiBNYW5uc2NoYWZ0KScsCiAgICAgICAgZHNtOiAgICAgICAgICdEU00t
VG9nZ2xlIChnZWJ1Y2h0PyknLAogICAgICAgIGRhdHVtOiAgICAgICAnRGF0dW0gKFRhZyBkZXMg
TW9uYXRzKScsCiAgICAgICAgd29jaGVudGFnOiAgICdXb2NoZW50YWcgKE1vLVNvKScsCiAgICAg
ICAgZXZlbnRzOiAgICAgICdFdmVudHMgKEdlYnVydHN0YWcgLyBTb25kZXJ0ZXJtaW4pJywKICAg
ICAgICBmZXJpZW46ICAgICAgJ0ZlcmllbiAvIEZlaWVydGFnIChGVCAvIE5TKScsCiAgICAgICAg
ZnJ1ZWhMOiAgICAgICdGcsO8aC1MYXBwZXIgKDEwOjMwKScsCiAgICAgICAgc3BhZXRMOiAgICAg
ICdTcMOkdC1MYXBwZXIgKDE4OjMwKScsCiAgICAgICAgdW50RjogICAgICAgICdVbnRlcnN0w7x0
enVuZyBGcsO8aGRpZW5zdCcsCiAgICAgICAgdW50TjogICAgICAgICdVbnRlcnN0w7x0enVuZyBO
YWNodGRpZW5zdCcKICAgIH07CiAgICB2YXIgbW9kdXNPcHRzID0gZnVuY3Rpb24oYWt0KSB7CiAg
ICAgICAgcmV0dXJuIFsnemVsbGUnLCdibG9jaycsJ3BpbGxlJywndGV4dCddLm1hcChmdW5jdGlv
bihtKSB7CiAgICAgICAgICAgIHZhciBsYWJlbHMgPSB7IHplbGxlOiAnR2FuemUgWmVsbGUnLCBi
bG9jazogJ0Jsb2NrJywgcGlsbGU6ICdQaWxsZScsIHRleHQ6ICdOdXIgVGV4dCcgfTsKICAgICAg
ICAgICAgcmV0dXJuICc8b3B0aW9uIHZhbHVlPSInICsgbSArICciJyArIChha3QgPT09IG0gPyAn
IHNlbGVjdGVkJyA6ICcnKSArICc+JyArIGxhYmVsc1ttXSArICc8L29wdGlvbj4nOwogICAgICAg
IH0pLmpvaW4oJycpOwogICAgfTsKICAgIHZhciByb3dzSHRtbCA9IEhFQURFUl9SRUlIRU5GT0xH
RS5tYXAoZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgdmFyIHIgPSBoay5yb3dzW2tleV0gfHwge307
CiAgICAgICAgdmFyIGRlZiA9IEhFQURFUl9LT05GSUdfREVGQVVMVFNba2V5XSB8fCB7fTsKICAg
ICAgICB2YXIgaGcgPSByLmhpbnRlcmdydW5kIHx8ICcnOwogICAgICAgIHZhciBzZiA9IHIuc2No
cmlmdCB8fCAnJzsKICAgICAgICB2YXIgaGF0V2VydCA9IGRlZi5oYXRXZXJ0ICE9PSBmYWxzZTsK
ICAgICAgICB2YXIgd2VydFBoID0gZGVmLndlcnQgPyBkZWYud2VydCA6ICcob3B0aW9uYWwpJzsK
ICAgICAgICB2YXIgd2VydFplbGxlID0gaGF0V2VydAogICAgICAgICAgICA/ICc8aW5wdXQgdHlw
ZT0idGV4dCIgY2xhc3M9ImZvcm0taW5wdXQiIGRhdGEtZmVsZD0id2VydCIgdmFsdWU9IicgKyBl
c2NhcGVBdHRyKHIud2VydCB8fCAnJykgKyAnIiBwbGFjZWhvbGRlcj0iJyArIGVzY2FwZUF0dHIo
d2VydFBoKSArICciIHN0eWxlPSJ3aWR0aDoxMDAlIj4nCiAgICAgICAgICAgIDogJzxzcGFuIGNs
YXNzPSJoay1hdXRvLWhpbnQiPuKAlCBhdXRvbWF0aXNjaCBiZWbDvGxsdCDigJQ8L3NwYW4+JzsK
ICAgICAgICAvLyBDb2xvci1QaWNrZXIgbWl0IOKAnm5pY2h0IGdlc2V0enQiLUluZGlrYXRvciAo
U2NoYWNoYnJldHQpIGJpcyBlaW4gV2VydCB2b3JoYW5kZW4gaXN0LgogICAgICAgIC8vIExlZXJl
IFdlcnRlIOKGkiBkYXRhLWdlbGVlcnQ9IjEiLCBkYW1pdCBTYXZlIHNpZSBhbHMgJycgcGVyc2lz
dGllcnQgKHVuZCBuaWNodCBhbHMgI0ZGRkZGRikuCiAgICAgICAgdmFyIGhnTGVlciA9ICFoZywg
c2ZMZWVyID0gIXNmOwogICAgICAgIHZhciBoZ0NsYXNzID0gaGdMZWVyID8gJyBoay1jb2xvci1s
ZWVyJyA6ICcnOwogICAgICAgIHZhciBzZkNsYXNzID0gc2ZMZWVyID8gJyBoay1jb2xvci1sZWVy
JyA6ICcnOwogICAgICAgIHZhciBoZ0dlbGVlcnQgPSBoZ0xlZXIgPyAnIGRhdGEtZ2VsZWVydD0i
MSInIDogJyc7CiAgICAgICAgdmFyIHNmR2VsZWVydCA9IHNmTGVlciA/ICcgZGF0YS1nZWxlZXJ0
PSIxIicgOiAnJzsKICAgICAgICAvLyBTdHlsZS1FcndlaXRlcnVuZyAyMDI2LTA1LTA1OiBHcsO2
w59lIC8gRmV0dCAvIEt1cnNpdiAvIEJvcmRlciBUL0wvUgogICAgICAgIHZhciBzZyA9IChyLnNj
aHJpZnRncm9lc3NlICE9IG51bGwpID8gci5zY2hyaWZ0Z3JvZXNzZSA6ICcnOwogICAgICAgIHZh
ciBmZXR0REQgPSAoci5mZXR0ID09IG51bGwpID8gJycgOiAoci5mZXR0ID8gJzEnIDogJzAnKTsK
ICAgICAgICByZXR1cm4gJzx0ciBkYXRhLXJvdz0iJyArIGtleSArICciPicgKwogICAgICAgICAg
ICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweCA2cHg7dGV4dC1hbGlnbjpjZW50ZXIiPjxpbnB1dCB0
eXBlPSJjaGVja2JveCIgZGF0YS1mZWxkPSJzaWNodGJhciInICsgKHIuc2ljaHRiYXIgIT09IGZh
bHNlID8gJyBjaGVja2VkJyA6ICcnKSArICc+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBzdHls
ZT0icGFkZGluZzo2cHgiPjxzdHJvbmc+JyArIGVzY2FwZUhUTUwoYmVzY2hyZWlidW5nW2tleV0g
fHwga2V5KSArICc8L3N0cm9uZz48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRk
aW5nOjZweCI+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWlucHV0IiBkYXRhLWZlbGQ9
ImxhYmVsIiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoci5sYWJlbCB8fCAnJykgKyAnIiBwbGFjZWhv
bGRlcj0iJyArIGVzY2FwZUF0dHIoZGVmLmxhYmVsIHx8ICcnKSArICciIHN0eWxlPSJ3aWR0aDox
MDAlIj48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjZweCI+JyArIHdl
cnRaZWxsZSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIGNsYXNzPSJoay1jb2xvci16ZWxs
ZSI+JyArCiAgICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9ImNvbG9yIiBkYXRhLWZlbGQ9Imhp
bnRlcmdydW5kIiBjbGFzcz0iaGstY29sb3ItaW5wdXQnICsgaGdDbGFzcyArICciIHZhbHVlPSIn
ICsgZXNjYXBlQXR0cihoZyB8fCAnI2ZmZmZmZicpICsgJyInICsgaGdHZWxlZXJ0ICsgJyB0aXRs
ZT0iSGludGVyZ3J1bmRmYXJiZSAobGVlciA9IFN0YW5kYXJkKSI+JyArCiAgICAgICAgICAgICAg
ICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJoay1jb2xvci1jbGVhciIgZGF0YS1mZWxk
PSJoaW50ZXJncnVuZC1sZWVyIiB0aXRsZT0iSGludGVyZ3J1bmQgenVyw7xja3NldHplbiI+w5c8
L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgY2xhc3M9
ImhrLWNvbG9yLXplbGxlIj4nICsKICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iY29sb3Ii
IGRhdGEtZmVsZD0ic2NocmlmdCIgY2xhc3M9ImhrLWNvbG9yLWlucHV0JyArIHNmQ2xhc3MgKyAn
IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc2YgfHwgJyMwMDAwMDAnKSArICciJyArIHNmR2VsZWVy
dCArICcgdGl0bGU9IlNjaHJpZnRmYXJiZSAobGVlciA9IFN0YW5kYXJkKSI+JyArCiAgICAgICAg
ICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJoay1jb2xvci1jbGVhciIgZGF0
YS1mZWxkPSJzY2hyaWZ0LWxlZXIiIHRpdGxlPSJTY2hyaWZ0ZmFyYmUgenVyw7xja3NldHplbiI+
w5c8L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5
bGU9InBhZGRpbmc6NnB4Ij48aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0iZm9ybS1pbnB1dCIg
ZGF0YS1mZWxkPSJzY2hyaWZ0Z3JvZXNzZSIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKFN0cmluZyhz
ZykpICsgJyIgbWluPSI2IiBtYXg9IjMyIiBwbGFjZWhvbGRlcj0iYXV0byIgdGl0bGU9ImxlZXIg
PSBnbG9iYWwiIHN0eWxlPSJ3aWR0aDo2MHB4Ij48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0
eWxlPSJwYWRkaW5nOjZweCI+PHNlbGVjdCBjbGFzcz0iZm9ybS1pbnB1dCIgZGF0YS1mZWxkPSJm
ZXR0IiB0aXRsZT0ibGVlciA9IGdsb2JhbCIgc3R5bGU9ImZvbnQtc2l6ZToxMXB4O3dpZHRoOjcw
cHgiPicgKwogICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9IiInICsgKGZldHRERCA9PT0g
JycgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+YXV0bzwvb3B0aW9uPicgKwogICAgICAgICAgICAg
ICAgJzxvcHRpb24gdmFsdWU9IjEiJyArIChmZXR0REQgPT09ICcxJyA/ICcgc2VsZWN0ZWQnIDog
JycpICsgJz5mZXR0PC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0i
MCInICsgKGZldHRERCA9PT0gJzAnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPm5vcm1hbDwvb3B0
aW9uPicgKwogICAgICAgICAgICAnPC9zZWxlY3Q+PC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBz
dHlsZT0icGFkZGluZzo2cHg7dGV4dC1hbGlnbjpjZW50ZXIiPjxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgZGF0YS1mZWxkPSJrdXJzaXYiJyArIChyLmt1cnNpdiA/ICcgY2hlY2tlZCcgOiAnJykgKyAn
IHRpdGxlPSJrdXJzaXYiPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9InBhZGRpbmc6
NnB4Ij48ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoy
cHgiPicgKwogICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1p
bnB1dCIgZGF0YS1mZWxkPSJib3JkZXJUb3AiIHZhbHVlPSInICsgZXNjYXBlQXR0cihyLmJvcmRl
clRvcCB8fCAnJykgKyAnIiBwbGFjZWhvbGRlcj0iVG9wIHouQi4gMXB4IHNvbGlkICM4ODgiIHN0
eWxlPSJmb250LXNpemU6MTBweDtwYWRkaW5nOjJweCA0cHgiPicgKwogICAgICAgICAgICAgICAg
JzxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1pbnB1dCIgZGF0YS1mZWxkPSJib3JkZXJM
ZWZ0IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoci5ib3JkZXJMZWZ0IHx8ICcnKSArICciIHBsYWNl
aG9sZGVyPSJMZWZ0IiBzdHlsZT0iZm9udC1zaXplOjEwcHg7cGFkZGluZzoycHggNHB4Ij4nICsK
ICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0taW5wdXQiIGRh
dGEtZmVsZD0iYm9yZGVyUmlnaHQiIHZhbHVlPSInICsgZXNjYXBlQXR0cihyLmJvcmRlclJpZ2h0
IHx8ICcnKSArICciIHBsYWNlaG9sZGVyPSJSaWdodCIgc3R5bGU9ImZvbnQtc2l6ZToxMHB4O3Bh
ZGRpbmc6MnB4IDRweCI+JyArCiAgICAgICAgICAgICc8L2Rpdj48L3RkPicgKwogICAgICAgICAg
ICAnPHRkIHN0eWxlPSJwYWRkaW5nOjZweCI+PHNlbGVjdCBjbGFzcz0iZm9ybS1pbnB1dCIgZGF0
YS1mZWxkPSJmYXJiTW9kdXMiIHN0eWxlPSJmb250LXNpemU6MTFweCI+JyArIG1vZHVzT3B0cyhy
LmZhcmJNb2R1cyB8fCAnemVsbGUnKSArICc8L3NlbGVjdD48L3RkPicgKwogICAgICAgICc8L3Ry
Pic7CiAgICB9KS5qb2luKCcnKTsKICAgIHZhciBodG1sID0KICAgICAgICAnPHRhYmxlIGNsYXNz
PSJhZG1pbi10YWJlbGxlIiBzdHlsZT0id2lkdGg6MTAwJSI+JyArCiAgICAgICAgICAgICc8dGhl
YWQ+PHRyPicgKwogICAgICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6NjBweCI+U2ljaHRi
YXI8L3RoPicgKwogICAgICAgICAgICAgICAgJzx0aD5aZWlsZTwvdGg+JyArCiAgICAgICAgICAg
ICAgICAnPHRoPkxhYmVsPC90aD4nICsKICAgICAgICAgICAgICAgICc8dGg+V2VydDwvdGg+JyAr
CiAgICAgICAgICAgICAgICAnPHRoIHN0eWxlPSJ3aWR0aDo5MHB4Ij5IRzwvdGg+JyArCiAgICAg
ICAgICAgICAgICAnPHRoIHN0eWxlPSJ3aWR0aDo2MHB4Ij5TY2hyaWZ0PC90aD4nICsKICAgICAg
ICAgICAgICAgICc8dGggc3R5bGU9IndpZHRoOjYwcHgiPkdyJm91bWw7JnN6bGlnO2U8L3RoPicg
KwogICAgICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6NzBweCI+RmV0dDwvdGg+JyArCiAg
ICAgICAgICAgICAgICAnPHRoIHN0eWxlPSJ3aWR0aDo1MHB4Ij5LdXJzaXY8L3RoPicgKwogICAg
ICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6MTcwcHgiPkJvcmRlciBUIC8gTCAvIFI8L3Ro
PicgKwogICAgICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6MTIwcHgiPkRhcnN0ZWxsdW5n
PC90aD4nICsKICAgICAgICAgICAgJzwvdHI+PC90aGVhZD4nICsKICAgICAgICAgICAgJzx0Ym9k
eT4nICsgcm93c0h0bWwgKyAnPC90Ym9keT4nICsKICAgICAgICAnPC90YWJsZT4nICsKICAgICAg
ICAnPGZpZWxkc2V0IHN0eWxlPSJtYXJnaW4tdG9wOjE2cHg7cGFkZGluZzoxMHB4IDE0cHg7Ym9y
ZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6NnB4O21heC13
aWR0aDo2MDBweCI+JyArCiAgICAgICAgICAgICc8bGVnZW5kIHN0eWxlPSJmb250LXNpemU6MTJw
eDtmb250LXdlaWdodDo2MDA7cGFkZGluZzowIDZweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFy
eSkiPkdsb2JhbGUgT3B0aW9uZW48L2xlZ2VuZD4nICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9
ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6YXV0byAxZnI7Z2FwOjhweCAxNHB4
O2FsaWduLWl0ZW1zOmNlbnRlciI+JyArCiAgICAgICAgICAgICAgICAnPGxhYmVsIGZvcj0iaGst
c2NocmlmdGdyb2Vzc2UiPlNjaHJpZnRncsO2w59lIChweCk8L2xhYmVsPicgKwogICAgICAgICAg
ICAgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJoay1zY2hyaWZ0Z3JvZXNzZSIgbWluPSI4
IiBtYXg9IjI0IiB2YWx1ZT0iJyArIChoay5zY2hyaWZ0Z3JvZXNzZSB8fCAxMykgKyAnIiBjbGFz
cz0iZm9ybS1pbnB1dCIgc3R5bGU9IndpZHRoOjgwcHgiPicgKwogICAgICAgICAgICAgICAgJzxs
YWJlbCBmb3I9ImhrLWZldHQiPkZldHQtU2NocmlmdDwvbGFiZWw+JyArCiAgICAgICAgICAgICAg
ICAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iaGstZmV0dCInICsgKGhrLmZldHQgIT09IGZh
bHNlID8gJyBjaGVja2VkJyA6ICcnKSArICc+JyArCiAgICAgICAgICAgICAgICAnPGxhYmVsIGZv
cj0iaGstdHJlbm5saW5pZW4iPlRyZW5ubGluaWVuIHp3aXNjaGVuIFRhZ2VuPC9sYWJlbD4nICsK
ICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJoay10cmVubmxpbmll
biInICsgKGhrLnRyZW5ubGluaWVuICE9PSBmYWxzZSA/ICcgY2hlY2tlZCcgOiAnJykgKyAnPicg
KwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgJzwvZmllbGRzZXQ+JzsKICAgIGNvbnQu
aW5uZXJIVE1MID0gaHRtbDsKCiAgICAvLyBSZXNldC1CdXR0b25zIChIRyArIFNjaHJpZnQpIOKA
lCBtYXJraWVyZW4gZGFzIEZlbGQgYWxzIOKAnmdlbGVlcnQiCiAgICBmdW5jdGlvbiBiaW5kZVJl
c2V0KGZlbGROYW1lLCBkZWZhdWx0Q29sb3IpIHsKICAgICAgICBjb250LnF1ZXJ5U2VsZWN0b3JB
bGwoJ2J1dHRvbltkYXRhLWZlbGQ9IicgKyBmZWxkTmFtZSArICctbGVlciJdJykuZm9yRWFjaChm
dW5jdGlvbihidG4pIHsKICAgICAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB2YXIgdHIgPSBidG4uY2xvc2VzdCgndHInKTsK
ICAgICAgICAgICAgICAgIGlmICghdHIpIHJldHVybjsKICAgICAgICAgICAgICAgIHZhciBpbnAg
PSB0ci5xdWVyeVNlbGVjdG9yKCdpbnB1dFtkYXRhLWZlbGQ9IicgKyBmZWxkTmFtZSArICciXScp
OwogICAgICAgICAgICAgICAgaWYgKCFpbnApIHJldHVybjsKICAgICAgICAgICAgICAgIGlucC52
YWx1ZSA9IGRlZmF1bHRDb2xvcjsKICAgICAgICAgICAgICAgIGlucC5kYXRhc2V0LmdlbGVlcnQg
PSAnMSc7CiAgICAgICAgICAgICAgICBpbnAuY2xhc3NMaXN0LmFkZCgnaGstY29sb3ItbGVlcicp
OwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBjb250LnF1ZXJ5U2VsZWN0b3JB
bGwoJ2lucHV0W2RhdGEtZmVsZD0iJyArIGZlbGROYW1lICsgJyJdJykuZm9yRWFjaChmdW5jdGlv
bihpbnApIHsKICAgICAgICAgICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgaW5wLmRhdGFzZXQuZ2VsZWVydDsKICAgICAg
ICAgICAgICAgIGlucC5jbGFzc0xpc3QucmVtb3ZlKCdoay1jb2xvci1sZWVyJyk7CiAgICAgICAg
ICAgIH0pOwogICAgICAgIH0pOwogICAgfQogICAgYmluZGVSZXNldCgnaGludGVyZ3J1bmQnLCAn
I2ZmZmZmZicpOwogICAgYmluZGVSZXNldCgnc2NocmlmdCcsICcjMDAwMDAwJyk7Cn0KCmV4cG9y
dCBmdW5jdGlvbiBoZWFkZXJLb25maWdBdXNGb3JtdWxhckxlc2VuKCkgewogICAgdmFyIHJvd3Mg
PSB7fTsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNoZWFkZXIta29uZmlnLWluaGFs
dCB0cltkYXRhLXJvd10nKS5mb3JFYWNoKGZ1bmN0aW9uKHRyKSB7CiAgICAgICAgdmFyIGtleSA9
IHRyLmdldEF0dHJpYnV0ZSgnZGF0YS1yb3cnKTsKICAgICAgICB2YXIgaGdJbiA9IHRyLnF1ZXJ5
U2VsZWN0b3IoJ2lucHV0W2RhdGEtZmVsZD0iaGludGVyZ3J1bmQiXScpOwogICAgICAgIHZhciBz
ZkluID0gdHIucXVlcnlTZWxlY3RvcignaW5wdXRbZGF0YS1mZWxkPSJzY2hyaWZ0Il0nKTsKICAg
ICAgICB2YXIgaGdXZXJ0ID0gKGhnSW4gJiYgaGdJbi5kYXRhc2V0LmdlbGVlcnQpID8gJycgOiAo
aGdJbiA/IGhnSW4udmFsdWUgOiAnJyk7CiAgICAgICAgdmFyIHNmV2VydCA9IChzZkluICYmIHNm
SW4uZGF0YXNldC5nZWxlZXJ0KSA/ICcnIDogKHNmSW4gPyBzZkluLnZhbHVlIDogJycpOwogICAg
ICAgIHZhciB3ZXJ0RWwgPSB0ci5xdWVyeVNlbGVjdG9yKCdpbnB1dFtkYXRhLWZlbGQ9IndlcnQi
XScpOwogICAgICAgIHZhciBzZ0VsID0gdHIucXVlcnlTZWxlY3RvcignaW5wdXRbZGF0YS1mZWxk
PSJzY2hyaWZ0Z3JvZXNzZSJdJyk7CiAgICAgICAgdmFyIGZldHRTZWwgPSB0ci5xdWVyeVNlbGVj
dG9yKCdzZWxlY3RbZGF0YS1mZWxkPSJmZXR0Il0nKTsKICAgICAgICB2YXIga3Vyc2l2RWwgPSB0
ci5xdWVyeVNlbGVjdG9yKCdpbnB1dFtkYXRhLWZlbGQ9Imt1cnNpdiJdJyk7CiAgICAgICAgdmFy
IGJ0RWwgPSB0ci5xdWVyeVNlbGVjdG9yKCdpbnB1dFtkYXRhLWZlbGQ9ImJvcmRlclRvcCJdJyk7
CiAgICAgICAgdmFyIGJsRWwgPSB0ci5xdWVyeVNlbGVjdG9yKCdpbnB1dFtkYXRhLWZlbGQ9ImJv
cmRlckxlZnQiXScpOwogICAgICAgIHZhciBickVsID0gdHIucXVlcnlTZWxlY3RvcignaW5wdXRb
ZGF0YS1mZWxkPSJib3JkZXJSaWdodCJdJyk7CiAgICAgICAgdmFyIHNnVmFsID0gKHNnRWwgJiYg
c2dFbC52YWx1ZSAhPT0gJycpID8gcGFyc2VJbnQoc2dFbC52YWx1ZSwgMTApIDogbnVsbDsKICAg
ICAgICB2YXIgZmV0dFZhbCA9IChmZXR0U2VsICYmIGZldHRTZWwudmFsdWUgPT09ICcxJykgPyB0
cnVlIDogKChmZXR0U2VsICYmIGZldHRTZWwudmFsdWUgPT09ICcwJykgPyBmYWxzZSA6IG51bGwp
OwogICAgICAgIHJvd3Nba2V5XSA9IHsKICAgICAgICAgICAgc2ljaHRiYXI6ICAgICAgICEhdHIu
cXVlcnlTZWxlY3RvcignaW5wdXRbZGF0YS1mZWxkPSJzaWNodGJhciJdJykuY2hlY2tlZCwKICAg
ICAgICAgICAgbGFiZWw6ICAgICAgICAgIHRyLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W2RhdGEtZmVs
ZD0ibGFiZWwiXScpLnZhbHVlLAogICAgICAgICAgICB3ZXJ0OiAgICAgICAgICAgd2VydEVsID8g
d2VydEVsLnZhbHVlIDogJycsCiAgICAgICAgICAgIGhpbnRlcmdydW5kOiAgICBoZ1dlcnQsCiAg
ICAgICAgICAgIHNjaHJpZnQ6ICAgICAgICBzZldlcnQsCiAgICAgICAgICAgIHNjaHJpZnRncm9l
c3NlOiAoc2dWYWwgIT0gbnVsbCAmJiAhaXNOYU4oc2dWYWwpKSA/IHNnVmFsIDogbnVsbCwKICAg
ICAgICAgICAgZmV0dDogICAgICAgICAgIGZldHRWYWwsCiAgICAgICAgICAgIGt1cnNpdjogICAg
ICAgICBrdXJzaXZFbCA/ICEha3Vyc2l2RWwuY2hlY2tlZCA6IGZhbHNlLAogICAgICAgICAgICBi
b3JkZXJUb3A6ICAgICAgYnRFbCA/IGJ0RWwudmFsdWUgOiAnJywKICAgICAgICAgICAgYm9yZGVy
TGVmdDogICAgIGJsRWwgPyBibEVsLnZhbHVlIDogJycsCiAgICAgICAgICAgIGJvcmRlclJpZ2h0
OiAgICBickVsID8gYnJFbC52YWx1ZSA6ICcnLAogICAgICAgICAgICBmYXJiTW9kdXM6ICAgICAg
dHIucXVlcnlTZWxlY3Rvcignc2VsZWN0W2RhdGEtZmVsZD0iZmFyYk1vZHVzIl0nKS52YWx1ZSB8
fCAnemVsbGUnCiAgICAgICAgfTsKICAgIH0pOwogICAgcmV0dXJuIHsKICAgICAgICByb3dzOiBy
b3dzLAogICAgICAgIHNjaHJpZnRncm9lc3NlOiBwYXJzZUludCgoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2hrLXNjaHJpZnRncm9lc3NlJykgfHwge30pLnZhbHVlLCAxMCkgfHwgMTMsCiAgICAg
ICAgZmV0dDogICAgICAgICAgICEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoay1mZXR0Jykg
fHwge30pLmNoZWNrZWQsCiAgICAgICAgdHJlbm5saW5pZW46ICAgICEhKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdoay10cmVubmxpbmllbicpIHx8IHt9KS5jaGVja2VkCiAgICB9Owp9CgpleHBv
cnQgZnVuY3Rpb24gY291bnRlcktvbmZpZ1JlbmRlcm4oKSB7CiAgICB2YXIgY29udCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudGVyLWtvbmZpZy1pbmhhbHQnKTsKICAgIGlmICghY29u
dCkgcmV0dXJuOwogICAgdmFyIGhrID0gaGVhZGVyS29uZmlnR2V0KCk7CiAgICB2YXIgZm9ybWF0
ZSA9IFsKICAgICAgICBbJ2lzdFNvbGwnLCAgICAnSXN0IC8gU29sbCddLAogICAgICAgIFsnaXN0
JywgICAgICAgICdOdXIgSXN0J10sCiAgICAgICAgWydpc3RWb25Tb2xsJywgJ0lzdCB2b24gU29s
bCddLAogICAgICAgIFsnc29sbCcsICAgICAgICdOdXIgU29sbCddCiAgICBdOwogICAgdmFyIGNv
dW50ZXJMYWJlbCA9IHsKICAgICAgICB2b3JnYWJlOiAgJ1ZvcmdhYmUnLAogICAgICAgIHNvbGw6
ICAgICAnU29sbC1TdCZhdW1sO3JrZSAoRiZ1dW1sO2hydW5nIDogTWFubnNjaGFmdCknLAogICAg
ICAgIGZydWVoTDogICAnRnImdXVtbDtoLUxhcHBlciAoRi9MKScsCiAgICAgICAgc3BhZXRMOiAg
ICdTcCZhdW1sO3QtTGFwcGVyIChTL0wpJywKICAgICAgICB1bnRGcnVlaDogJ1VudGVyc3QmdXVt
bDt0enVuZyBGciZ1dW1sO2hkaWVuc3QnLAogICAgICAgIHVudE5hY2h0OiAnVW50ZXJzdCZ1dW1s
O3R6dW5nIE5hY2h0ZGllbnN0JwogICAgfTsKICAgIHZhciBrZXlzID0gWyd2b3JnYWJlJywgJ3Nv
bGwnLCAnZnJ1ZWhMJywgJ3NwYWV0TCcsICd1bnRGcnVlaCcsICd1bnROYWNodCddOwogICAgdmFy
IHJvd3NIdG1sID0ga2V5cy5tYXAoZnVuY3Rpb24oaykgewogICAgICAgIHZhciB6ID0gKGhrLmNv
dW50ZXIgJiYgaGsuY291bnRlcltrXSkgfHwgeyBhbnplaWdlRm9ybWF0OiAnc29sbCcsIHNjaHdl
bGx3ZXJ0VG9sZXJhbno6IDAsIG1hcmtlclphZWhsZW46IGZhbHNlIH07CiAgICAgICAgcmV0dXJu
ICc8dHIgZGF0YS1jb3VudGVyLWtleT0iJyArIGsgKyAnIj4nICsKICAgICAgICAgICAgJzx0ZCBz
dHlsZT0icGFkZGluZzo2cHgiPjxzdHJvbmc+JyArIGNvdW50ZXJMYWJlbFtrXSArICc8L3N0cm9u
Zz48L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjZweCI+PHNlbGVjdCBj
bGFzcz0iZm9ybS1pbnB1dCBjay1mZWxkIiBkYXRhLWZlbGQ9ImFuemVpZ2VGb3JtYXQiIHN0eWxl
PSJmb250LXNpemU6MTFweDt3aWR0aDoxMzBweCI+JyArCiAgICAgICAgICAgICAgICBmb3JtYXRl
Lm1hcChmdW5jdGlvbihmKSB7IHJldHVybiAnPG9wdGlvbiB2YWx1ZT0iJyArIGZbMF0gKyAnIicg
KyAoei5hbnplaWdlRm9ybWF0ID09PSBmWzBdID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPicgKyBl
c2NhcGVIVE1MKGZbMV0pICsgJzwvb3B0aW9uPic7IH0pLmpvaW4oJycpICsKICAgICAgICAgICAg
Jzwvc2VsZWN0PjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQgc3R5bGU9InBhZGRpbmc6NnB4Ij48
aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0iZm9ybS1pbnB1dCBjay1mZWxkIiBkYXRhLWZlbGQ9
InNjaHdlbGx3ZXJ0VG9sZXJhbnoiIHZhbHVlPSInICsgKHouc2Nod2VsbHdlcnRUb2xlcmFueiB8
fCAwKSArICciIG1pbj0iMCIgbWF4PSIxMCIgc3R5bGU9IndpZHRoOjYwcHgiPjwvdGQ+JyArCiAg
ICAgICAgICAgICc8dGQgc3R5bGU9InBhZGRpbmc6NnB4O3RleHQtYWxpZ246Y2VudGVyIj48aW5w
dXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJjay1mZWxkIiBkYXRhLWZlbGQ9Im1hcmtlclphZWhs
ZW4iJyArICh6Lm1hcmtlclphZWhsZW4gPyAnIGNoZWNrZWQnIDogJycpICsgJz48L3RkPicgKwog
ICAgICAgICc8L3RyPic7CiAgICB9KS5qb2luKCcnKTsKICAgIGNvbnQuaW5uZXJIVE1MID0KICAg
ICAgICAnPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBzdHlsZT0iZ3JpZC1jb2x1bW46MS8t
MSI+JyArCiAgICAgICAgICAgICc8dGhlYWQ+PHRyPicgKwogICAgICAgICAgICAgICAgJzx0aD5D
b3VudGVyLVplaWxlPC90aD4nICsKICAgICAgICAgICAgICAgICc8dGg+QW56ZWlnZWZvcm1hdDwv
dGg+JyArCiAgICAgICAgICAgICAgICAnPHRoPlRvbGVyYW56PC90aD4nICsKICAgICAgICAgICAg
ICAgICc8dGg+TWFya2VyIHomYXVtbDtobGVuPC90aD4nICsKICAgICAgICAgICAgJzwvdHI+PC90
aGVhZD4nICsKICAgICAgICAgICAgJzx0Ym9keT4nICsgcm93c0h0bWwgKyAnPC90Ym9keT4nICsK
ICAgICAgICAnPC90YWJsZT4nICsKICAgICAgICAnPHAgc3R5bGU9ImdyaWQtY29sdW1uOjEvLTE7
Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo4cHgiPlRv
bGVyYW56OiAwID0gc3RyaWt0IChJc3QgJmx0OyBTb2xsICZyYXJyOyByb3QpLCAxID0gYWIgMSB1
bnRlciBTb2xsICZyYXJyOyByb3QuIE1hcmtlciB6JmF1bWw7aGxlbjogYmVpICZiZHF1bzswOjAm
bmJzcDsrJm5ic3A7TWFya2VyJm5ic3A7QSIgd2lyZCBkaWUgQW1wZWwgZ3ImdXVtbDtuLjwvcD4n
Owp9CgpleHBvcnQgZnVuY3Rpb24gY291bnRlcktvbmZpZ0F1c0Zvcm11bGFyTGVzZW4oKSB7CiAg
ICAvLyBMaWVmZXJ0IGRpZSBwcm8tWmVpbGUtS29uZmlnIChuZXUgc2VpdCAyMDI2LTA1LTA1KSBV
TkQgZWluCiAgICAvLyBnbG9iYWwtQmFja3dhcmQtQ29tcGF0LU9iamVrdCBmdWVyIFouYWRtaW4u
Y291bnRlcktvbmZpZyAoVG9wLUxldmVsKS4KICAgIHZhciBwcm8gPSB7fTsKICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJyNjb3VudGVyLWtvbmZpZy1pbmhhbHQgdHJbZGF0YS1jb3VudGVy
LWtleV0nKS5mb3JFYWNoKGZ1bmN0aW9uKHRyKSB7CiAgICAgICAgdmFyIGsgPSB0ci5nZXRBdHRy
aWJ1dGUoJ2RhdGEtY291bnRlci1rZXknKTsKICAgICAgICB2YXIgZW50cnkgPSB7fTsKICAgICAg
ICB0ci5xdWVyeVNlbGVjdG9yQWxsKCcuY2stZmVsZCcpLmZvckVhY2goZnVuY3Rpb24oaW5wKSB7
CiAgICAgICAgICAgIHZhciBmID0gaW5wLmdldEF0dHJpYnV0ZSgnZGF0YS1mZWxkJyk7CiAgICAg
ICAgICAgIGlmIChpbnAudHlwZSA9PT0gJ2NoZWNrYm94JykgICAgZW50cnlbZl0gPSAhIWlucC5j
aGVja2VkOwogICAgICAgICAgICBlbHNlIGlmIChpbnAudHlwZSA9PT0gJ251bWJlcicpIGVudHJ5
W2ZdID0gcGFyc2VJbnQoaW5wLnZhbHVlLCAxMCkgfHwgMDsKICAgICAgICAgICAgZWxzZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbnRyeVtmXSA9IGlucC52YWx1ZTsKICAgICAgICB9KTsK
ICAgICAgICBwcm9ba10gPSBlbnRyeTsKICAgIH0pOwogICAgcmV0dXJuIHBybzsKfQoKLy8gPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci8vIFN0eWxlLUJsb2NrLUhlbGZlciAoMjAyNi0wNS0wNSkg4oCUIHdpZWRl
cnZlcndlbmRiYXIgZnVlciBWb3JnYWJlLURldGFpbCwKLy8gRFNNLURldGFpbCwgVGFnLU1hcmtl
ci4KLy8gb3B0czoKLy8gICBkZWZhdWx0QmcgLyBkZWZhdWx0Rmcg4oCUIENvbG9yLVBpY2tlciB6
ZWlndCBkaWVzZSBGYXJiZSBhbHMgdmlzdWVsbGUKLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICBWb3JsYWdlIHdlbm4gZGVyIFVzZXItV2VydCBsZWVyIGlzdCAoei5CLiBkaWUKLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgICBTY2hpY2h0Y29kZS1GYXJiZSBmdWVyIEYvUy9OKS4gR2VzcGVp
Y2hlcnQgd2lyZAovLyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaXRlcmhpbiAnJyAoPSBG
YWxsYmFjayBha3RpdikuCi8vICAgcHJldmlld0xhYmVsICAgICAgICAgIOKAlCBUZXh0IGluIGRl
ciBMaXZlLVByZXZpZXctWmVsbGUgKHouQi4gIkYiLCAi4pyTIiwgIk1vIDUuIikuCi8vID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpmdW5jdGlvbiBzdHlsZUJsb2NrSHRtbChwcmVmaXgsIHN0aWwsIG9wdHMpIHsK
ICAgIG9wdHMgPSBvcHRzIHx8IHt9OwogICAgdmFyIGRlZmF1bHRCZyA9IG9wdHMuZGVmYXVsdEJn
IHx8ICcjZmZmZmZmJzsKICAgIHZhciBkZWZhdWx0RmcgPSBvcHRzLmRlZmF1bHRGZyB8fCAnIzAw
MDAwMCc7CiAgICB2YXIgaGcgPSBzdGlsLmhpbnRlcmdydW5kIHx8ICcnOwogICAgdmFyIHNmID0g
c3RpbC5zY2hyaWZ0IHx8ICcnOwogICAgdmFyIGhnTGVlciA9ICFoZywgc2ZMZWVyID0gIXNmOwog
ICAgdmFyIGhnUGlja2VyVmFsID0gaGcgfHwgZGVmYXVsdEJnOwogICAgdmFyIHNmUGlja2VyVmFs
ID0gc2YgfHwgZGVmYXVsdEZnOwogICAgdmFyIHNnID0gKHN0aWwuc2NocmlmdGdyb2Vzc2UgIT0g
bnVsbCkgPyBzdGlsLnNjaHJpZnRncm9lc3NlIDogJyc7CiAgICB2YXIgZmV0dEREID0gKHN0aWwu
ZmV0dCA9PSBudWxsKSA/ICcnIDogKHN0aWwuZmV0dCA/ICcxJyA6ICcwJyk7CiAgICB2YXIgaHRt
bCA9ICc8ZGl2IGNsYXNzPSJzdHlsZS1ibG9jayIgZGF0YS1wcmVmaXg9IicgKyBlc2NhcGVBdHRy
KHByZWZpeCkgKyAnIicgKwogICAgICAgICAgICAgICAgICAgICcgZGF0YS1kZWZhdWx0LWJnPSIn
ICsgZXNjYXBlQXR0cihkZWZhdWx0QmcpICsgJyIgZGF0YS1kZWZhdWx0LWZnPSInICsgZXNjYXBl
QXR0cihkZWZhdWx0RmcpICsgJyInICsKICAgICAgICAgICAgICAgICAgICAnIHN0eWxlPSJkaXNw
bGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjEyMHB4IDFmcjtnYXA6NnB4IDEycHg7YWxp
Z24taXRlbXM6Y2VudGVyIj4nICsKICAgICAgICAnPGxhYmVsPkhpbnRlcmdydW5kPC9sYWJlbD48
ZGl2IGNsYXNzPSJoay1jb2xvci16ZWxsZSI+JyArCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0i
Y29sb3IiIGRhdGEtZmVsZD0iaGludGVyZ3J1bmQiIGNsYXNzPSJoay1jb2xvci1pbnB1dCcgKyAo
aGdMZWVyID8gJyBoay1jb2xvci1sZWVyJyA6ICcnKSArICciIHZhbHVlPSInICsgZXNjYXBlQXR0
cihoZ1BpY2tlclZhbCkgKyAnIicgKyAoaGdMZWVyID8gJyBkYXRhLWdlbGVlcnQ9IjEiJyA6ICcn
KSArICcgdGl0bGU9IicgKyAoaGdMZWVyID8gJ0RlZmF1bHQgKFNjaGljaHRjb2RlLUZhcmJlKSDi
gJQgS2xpY2sgenVtIE92ZXJyaWRlJyA6ICdFaWdlbmUgRmFyYmUgZ2VzZXR6dCcpICsgJyI+JyAr
CiAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImhrLWNvbG9yLWNsZWFy
IiBkYXRhLWZlbGQ9ImhpbnRlcmdydW5kLWxlZXIiIHRpdGxlPSJBdWYgRGVmYXVsdCB6dXImdXVt
bDtja3NldHplbiI+JnRpbWVzOzwvYnV0dG9uPicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAg
ICAnPGxhYmVsPlNjaHJpZnRmYXJiZTwvbGFiZWw+PGRpdiBjbGFzcz0iaGstY29sb3ItemVsbGUi
PicgKwogICAgICAgICAgICAnPGlucHV0IHR5cGU9ImNvbG9yIiBkYXRhLWZlbGQ9InNjaHJpZnQi
IGNsYXNzPSJoay1jb2xvci1pbnB1dCcgKyAoc2ZMZWVyID8gJyBoay1jb2xvci1sZWVyJyA6ICcn
KSArICciIHZhbHVlPSInICsgZXNjYXBlQXR0cihzZlBpY2tlclZhbCkgKyAnIicgKyAoc2ZMZWVy
ID8gJyBkYXRhLWdlbGVlcnQ9IjEiJyA6ICcnKSArICc+JyArCiAgICAgICAgICAgICc8YnV0dG9u
IHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImhrLWNvbG9yLWNsZWFyIiBkYXRhLWZlbGQ9InNjaHJpZnQt
bGVlciIgdGl0bGU9IkF1ZiBEZWZhdWx0IHp1ciZ1dW1sO2Nrc2V0emVuIj4mdGltZXM7PC9idXR0
b24+JyArCiAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8bGFiZWw+U2NocmlmdGdyJm91bWw7
JnN6bGlnO2UgKHB4KTwvbGFiZWw+PGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9ImZvcm0taW5w
dXQiIGRhdGEtZmVsZD0ic2NocmlmdGdyb2Vzc2UiIHZhbHVlPSInICsgZXNjYXBlQXR0cihTdHJp
bmcoc2cpKSArICciIG1pbj0iNiIgbWF4PSI0OCIgcGxhY2Vob2xkZXI9ImF1dG8iIHN0eWxlPSJ3
aWR0aDo5MHB4Ij4nICsKICAgICAgICAnPGxhYmVsPkZldHQ8L2xhYmVsPjxzZWxlY3QgY2xhc3M9
ImZvcm0taW5wdXQiIGRhdGEtZmVsZD0iZmV0dCIgc3R5bGU9IndpZHRoOjEyMHB4Ij4nICsKICAg
ICAgICAgICAgJzxvcHRpb24gdmFsdWU9IiInICsgKGZldHRERCA9PT0gJycgPyAnIHNlbGVjdGVk
JyA6ICcnKSArICc+YXV0byAoZ2xvYmFsKTwvb3B0aW9uPicgKwogICAgICAgICAgICAnPG9wdGlv
biB2YWx1ZT0iMSInICsgKGZldHRERCA9PT0gJzEnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPmZl
dHQ8L29wdGlvbj4nICsKICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9IjAiJyArIChmZXR0REQg
PT09ICcwJyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5ub3JtYWw8L29wdGlvbj4nICsKICAgICAg
ICAnPC9zZWxlY3Q+JyArCiAgICAgICAgJzxsYWJlbD5LdXJzaXY8L2xhYmVsPjxpbnB1dCB0eXBl
PSJjaGVja2JveCIgZGF0YS1mZWxkPSJrdXJzaXYiJyArIChzdGlsLmt1cnNpdiA/ICcgY2hlY2tl
ZCcgOiAnJykgKyAnPicgKwogICAgICAgICc8bGFiZWw+Qm9yZGVyIG9iZW48L2xhYmVsPjxpbnB1
dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1pbnB1dCIgZGF0YS1mZWxkPSJib3JkZXJUb3AiIHZh
bHVlPSInICsgZXNjYXBlQXR0cihzdGlsLmJvcmRlclRvcCB8fCAnJykgKyAnIiBwbGFjZWhvbGRl
cj0iei5CLiAxcHggc29saWQgIzg4OCI+JyArCiAgICAgICAgJzxsYWJlbD5Cb3JkZXIgbGlua3M8
L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1pbnB1dCIgZGF0YS1mZWxkPSJi
b3JkZXJMZWZ0IiB2YWx1ZT0iJyArIGVzY2FwZUF0dHIoc3RpbC5ib3JkZXJMZWZ0IHx8ICcnKSAr
ICciIHBsYWNlaG9sZGVyPSJ6LkIuIDJweCBkYXNoZWQgcmVkIj4nICsKICAgICAgICAnPGxhYmVs
PkJvcmRlciByZWNodHM8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1pbnB1
dCIgZGF0YS1mZWxkPSJib3JkZXJSaWdodCIgdmFsdWU9IicgKyBlc2NhcGVBdHRyKHN0aWwuYm9y
ZGVyUmlnaHQgfHwgJycpICsgJyIgcGxhY2Vob2xkZXI9ImxlZXIgPSBrZWluZXIiPic7CiAgICBp
ZiAob3B0cy5wcmV2aWV3TGFiZWwpIHsKICAgICAgICBodG1sICs9ICc8bGFiZWw+Vm9yc2NoYXU8
L2xhYmVsPjxkaXYgY2xhc3M9InN0eWxlLWJsb2NrLXByZXZpZXciIGRhdGEtcHJldmlldz0iJyAr
IGVzY2FwZUF0dHIocHJlZml4KSArICciPicgKyBlc2NhcGVIVE1MKG9wdHMucHJldmlld0xhYmVs
KSArICc8L2Rpdj4nOwogICAgfQogICAgaHRtbCArPSAnPC9kaXY+JzsKICAgIHJldHVybiBodG1s
Owp9CgovLyBWb3JzY2hhdS1VcGRhdGUgYXVzIGRlbSBha3R1ZWxsZW4gU3RhbmQgZGVzIFN0eWxl
LUJsb2NrcwpmdW5jdGlvbiBzdHlsZUJsb2NrUHJldmlld0FrdHVhbGlzaWVyZW4oYmxvY2tFbCkg
ewogICAgdmFyIHByZXZpZXcgPSBibG9ja0VsLnF1ZXJ5U2VsZWN0b3IoJy5zdHlsZS1ibG9jay1w
cmV2aWV3Jyk7CiAgICBpZiAoIXByZXZpZXcpIHJldHVybjsKICAgIHZhciBkZWZhdWx0QmcgPSBi
bG9ja0VsLmRhdGFzZXQuZGVmYXVsdEJnIHx8ICcjODg4JzsKICAgIHZhciBkZWZhdWx0RmcgPSBi
bG9ja0VsLmRhdGFzZXQuZGVmYXVsdEZnIHx8ICcjZmZmJzsKICAgIHZhciBzdGlsID0gc3R5bGVC
bG9ja0xlc2VuKGJsb2NrRWwpOwogICAgcHJldmlldy5zdHlsZS5jc3NUZXh0ID0gJyc7CiAgICBw
cmV2aWV3LnN0eWxlLmJhY2tncm91bmQgPSBzdGlsLmhpbnRlcmdydW5kIHx8IGRlZmF1bHRCZzsK
ICAgIHByZXZpZXcuc3R5bGUuY29sb3IgPSBzdGlsLnNjaHJpZnQgfHwgZGVmYXVsdEZnOwogICAg
aWYgKHN0aWwuc2NocmlmdGdyb2Vzc2UpIHByZXZpZXcuc3R5bGUuZm9udFNpemUgPSBzdGlsLnNj
aHJpZnRncm9lc3NlICsgJ3B4JzsKICAgIHByZXZpZXcuc3R5bGUuZm9udFdlaWdodCA9IChzdGls
LmZldHQgPT09IHRydWUpID8gJzcwMCcgOiAoc3RpbC5mZXR0ID09PSBmYWxzZSA/ICc0MDAnIDog
J2luaGVyaXQnKTsKICAgIHByZXZpZXcuc3R5bGUuZm9udFN0eWxlID0gc3RpbC5rdXJzaXYgPyAn
aXRhbGljJyA6ICdub3JtYWwnOwogICAgaWYgKHN0aWwuYm9yZGVyVG9wKSAgIHByZXZpZXcuc3R5
bGUuYm9yZGVyVG9wID0gc3RpbC5ib3JkZXJUb3A7CiAgICBpZiAoc3RpbC5ib3JkZXJMZWZ0KSAg
cHJldmlldy5zdHlsZS5ib3JkZXJMZWZ0ID0gc3RpbC5ib3JkZXJMZWZ0OwogICAgaWYgKHN0aWwu
Ym9yZGVyUmlnaHQpIHByZXZpZXcuc3R5bGUuYm9yZGVyUmlnaHQgPSBzdGlsLmJvcmRlclJpZ2h0
Owp9CgpmdW5jdGlvbiBzdHlsZUJsb2NrTGVzZW4oYmxvY2tFbCkgewogICAgdmFyIGhnSW4gPSBi
bG9ja0VsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W2RhdGEtZmVsZD0iaGludGVyZ3J1bmQiXScpOwog
ICAgdmFyIHNmSW4gPSBibG9ja0VsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W2RhdGEtZmVsZD0ic2No
cmlmdCJdJyk7CiAgICB2YXIgc2dJbiA9IGJsb2NrRWwucXVlcnlTZWxlY3RvcignaW5wdXRbZGF0
YS1mZWxkPSJzY2hyaWZ0Z3JvZXNzZSJdJyk7CiAgICB2YXIgZmV0dFNlbCA9IGJsb2NrRWwucXVl
cnlTZWxlY3Rvcignc2VsZWN0W2RhdGEtZmVsZD0iZmV0dCJdJyk7CiAgICB2YXIga3Vyc2l2SW4g
PSBibG9ja0VsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W2RhdGEtZmVsZD0ia3Vyc2l2Il0nKTsKICAg
IHZhciBidEluID0gYmxvY2tFbC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtkYXRhLWZlbGQ9ImJvcmRl
clRvcCJdJyk7CiAgICB2YXIgYmxJbiA9IGJsb2NrRWwucXVlcnlTZWxlY3RvcignaW5wdXRbZGF0
YS1mZWxkPSJib3JkZXJMZWZ0Il0nKTsKICAgIHZhciBickluID0gYmxvY2tFbC5xdWVyeVNlbGVj
dG9yKCdpbnB1dFtkYXRhLWZlbGQ9ImJvcmRlclJpZ2h0Il0nKTsKICAgIHZhciBzZ1ZhbCA9IChz
Z0luICYmIHNnSW4udmFsdWUgIT09ICcnKSA/IHBhcnNlSW50KHNnSW4udmFsdWUsIDEwKSA6IG51
bGw7CiAgICB2YXIgZmV0dFZhbCA9IChmZXR0U2VsICYmIGZldHRTZWwudmFsdWUgPT09ICcxJykg
PyB0cnVlIDogKChmZXR0U2VsICYmIGZldHRTZWwudmFsdWUgPT09ICcwJykgPyBmYWxzZSA6IG51
bGwpOwogICAgcmV0dXJuIHsKICAgICAgICBoaW50ZXJncnVuZDogICAgKGhnSW4gJiYgaGdJbi5k
YXRhc2V0LmdlbGVlcnQpID8gJycgOiAoaGdJbiA/IGhnSW4udmFsdWUgOiAnJyksCiAgICAgICAg
c2NocmlmdDogICAgICAgIChzZkluICYmIHNmSW4uZGF0YXNldC5nZWxlZXJ0KSA/ICcnIDogKHNm
SW4gPyBzZkluLnZhbHVlIDogJycpLAogICAgICAgIHNjaHJpZnRncm9lc3NlOiAoc2dWYWwgIT0g
bnVsbCAmJiAhaXNOYU4oc2dWYWwpKSA/IHNnVmFsIDogbnVsbCwKICAgICAgICBmZXR0OiAgICAg
ICAgICAgZmV0dFZhbCwKICAgICAgICBrdXJzaXY6ICAgICAgICAga3Vyc2l2SW4gPyAhIWt1cnNp
dkluLmNoZWNrZWQgOiBmYWxzZSwKICAgICAgICBib3JkZXJUb3A6ICAgICAgYnRJbiA/IGJ0SW4u
dmFsdWUgOiAnJywKICAgICAgICBib3JkZXJMZWZ0OiAgICAgYmxJbiA/IGJsSW4udmFsdWUgOiAn
JywKICAgICAgICBib3JkZXJSaWdodDogICAgYnJJbiA/IGJySW4udmFsdWUgOiAnJwogICAgfTsK
fQoKLy8gUmVzZXQtQnV0dG9ucyBmdWVyIENvbG9yLVBpY2tlciAobWFya2llcmVuIGRhcyBGZWxk
IGFscyDigJ5nZWxlZXJ0IiB1bmQKLy8gc3RlbGxlbiBkZW4gdmlzdWVsbGVuIERlZmF1bHQg4oCU
IHouQi4gZGllIFNjaGljaHRjb2RlLUZhcmJlIOKAlCB3aWVkZXIgaGVyKQovLyBQbHVzOiBMaXZl
LVVwZGF0ZSBkZXIgVm9yc2NoYXUgYmVpIGplZGVtIElucHV0LgpmdW5jdGlvbiBzdHlsZUJsb2Nr
UmVzZXRzQmluZGVuKHJvb3RFbCkgewogICAgZnVuY3Rpb24gcmVmcmVzaChibGspIHsKICAgICAg
ICBpZiAoYmxrKSBzdHlsZUJsb2NrUHJldmlld0FrdHVhbGlzaWVyZW4oYmxrKTsKICAgIH0KICAg
IHJvb3RFbC5xdWVyeVNlbGVjdG9yQWxsKCcuc3R5bGUtYmxvY2snKS5mb3JFYWNoKGZ1bmN0aW9u
KGJsaykgewogICAgICAgIC8vIEluaXRpYWwtUmVuZGVyIGRlciBWb3JzY2hhdQogICAgICAgIHN0
eWxlQmxvY2tQcmV2aWV3QWt0dWFsaXNpZXJlbihibGspOwogICAgfSk7CiAgICByb290RWwucXVl
cnlTZWxlY3RvckFsbCgnYnV0dG9uW2RhdGEtZmVsZCQ9Ii1sZWVyIl0nKS5mb3JFYWNoKGZ1bmN0
aW9uKGJ0bikgewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICB2YXIgZmVsZCA9IGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmVsZCcp
LnJlcGxhY2UoJy1sZWVyJywgJycpOwogICAgICAgICAgICB2YXIgYmxrID0gYnRuLmNsb3Nlc3Qo
Jy5zdHlsZS1ibG9jaycpOwogICAgICAgICAgICBpZiAoIWJsaykgcmV0dXJuOwogICAgICAgICAg
ICB2YXIgaW5wID0gYmxrLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W2RhdGEtZmVsZD0iJyArIGZlbGQg
KyAnIl0nKTsKICAgICAgICAgICAgaWYgKCFpbnApIHJldHVybjsKICAgICAgICAgICAgaW5wLnZh
bHVlID0gKGZlbGQgPT09ICdoaW50ZXJncnVuZCcpCiAgICAgICAgICAgICAgICA/IChibGsuZGF0
YXNldC5kZWZhdWx0QmcgfHwgJyNmZmZmZmYnKQogICAgICAgICAgICAgICAgOiAoYmxrLmRhdGFz
ZXQuZGVmYXVsdEZnIHx8ICcjMDAwMDAwJyk7CiAgICAgICAgICAgIGlucC5kYXRhc2V0LmdlbGVl
cnQgPSAnMSc7CiAgICAgICAgICAgIGlucC5jbGFzc0xpc3QuYWRkKCdoay1jb2xvci1sZWVyJyk7
CiAgICAgICAgICAgIHJlZnJlc2goYmxrKTsKICAgICAgICB9KTsKICAgIH0pOwogICAgcm9vdEVs
LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9ImNvbG9yIl0nKS5mb3JFYWNoKGZ1bmN0aW9u
KGlucCkgewogICAgICAgIGlucC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICBkZWxldGUgaW5wLmRhdGFzZXQuZ2VsZWVydDsKICAgICAgICAgICAgaW5w
LmNsYXNzTGlzdC5yZW1vdmUoJ2hrLWNvbG9yLWxlZXInKTsKICAgICAgICAgICAgcmVmcmVzaChp
bnAuY2xvc2VzdCgnLnN0eWxlLWJsb2NrJykpOwogICAgICAgIH0pOwogICAgfSk7CiAgICAvLyBM
aXZlLVVwZGF0ZSBiZWkgYWxsZW4gYW5kZXJlbiBJbnB1dHMgLyBTZWxlY3RzIC8gQ2hlY2tib3hl
cwogICAgcm9vdEVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdHlsZS1ibG9jayBpbnB1dCwgLnN0eWxl
LWJsb2NrIHNlbGVjdCcpLmZvckVhY2goZnVuY3Rpb24oZWwpIHsKICAgICAgICBpZiAoZWwudHlw
ZSA9PT0gJ2NvbG9yJykgcmV0dXJuOyAvLyBzY2hvbiBvYmVuCiAgICAgICAgZWwuYWRkRXZlbnRM
aXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpIHsgcmVmcmVzaChlbC5jbG9zZXN0KCcuc3R5bGUt
YmxvY2snKSk7IH0pOwogICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0
aW9uKCkgeyByZWZyZXNoKGVsLmNsb3Nlc3QoJy5zdHlsZS1ibG9jaycpKTsgfSk7CiAgICB9KTsK
fQoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci8vIFZvcmdhYmUtRGV0YWlsIChGIC8gUyAvIE4pOiBIaW50
ZXJncnVuZC1PdmVycmlkZSArIFN0eWxlIHBybyBTY2hpY2h0dHlwLgovLyBEZWZhdWx0LUZhcmJl
biBrb21tZW4gYXVzIGFkbWluLnNjaGljaHRjb2RlcyAoRi9TL04pIOKAlCB3ZXJkZW4gaW0gQ29s
b3ItCi8vIFBpY2tlciBhbHMgdmlzdWVsbGUgVm9ybGFnZSBnZXplaWd0LCBzb2xhbmdlIGtlaW4g
ZWlnZW5lciBXZXJ0IGdlc2V0enQgaXN0LgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZnVuY3Rpb24gX3Nj
aGljaHRjb2RlRmFyYmVuKGNvZGUpIHsKICAgIHZhciBzYyA9IChaLmFkbWluICYmIFouYWRtaW4u
c2NoaWNodGNvZGVzID8gWi5hZG1pbi5zY2hpY2h0Y29kZXMgOiBbXSkuZmluZChmdW5jdGlvbihj
KSB7IHJldHVybiBjICYmIGMuY29kZSA9PT0gY29kZTsgfSk7CiAgICByZXR1cm4gewogICAgICAg
IGJnOiAoc2MgJiYgc2MuaGludGVyZ3J1bmQpIHx8ICcjODg4ODg4JywKICAgICAgICBmZzogKHNj
ICYmIHNjLnNjaHJpZnQpICAgICB8fCAnI2ZmZmZmZicKICAgIH07Cn0KZXhwb3J0IGZ1bmN0aW9u
IHZvcmdhYmVEZXRhaWxSZW5kZXJuKCkgewogICAgdmFyIGNvbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndm9yZ2FiZS1kZXRhaWwtaW5oYWx0Jyk7CiAgICBpZiAoIWNvbnQpIHJldHVybjsK
ICAgIHZhciBoayA9IGhlYWRlcktvbmZpZ0dldCgpOwogICAgdmFyIHR5cExhYmVsID0geyBGOiAn
RnLDvGhkaWVuc3QgKEYpJywgUzogJ1Nww6R0ZGllbnN0IChTKScsIE46ICdOYWNodGRpZW5zdCAo
TiknIH07CiAgICB2YXIgaHRtbCA9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1w
bGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCxtaW5tYXgoMzAwcHgsMWZyKSk7Z2FwOjE4cHgi
Pic7CiAgICBbJ0YnLCAnUycsICdOJ10uZm9yRWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAgdmFy
IHN0aWwgPSAoaGsudm9yZ2FiZVN0eWxlcyAmJiBoay52b3JnYWJlU3R5bGVzW3RdKSB8fCBWT1JH
QUJFX1NUWUxFU19ERUZBVUxUW3RdOwogICAgICAgIHZhciBkZWYgPSBfc2NoaWNodGNvZGVGYXJi
ZW4odCk7CiAgICAgICAgaHRtbCArPSAnPGZpZWxkc2V0IGRhdGEtdnQ9IicgKyB0ICsgJyIgc3R5
bGU9InBhZGRpbmc6MTBweCAxNHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9y
KTtib3JkZXItcmFkaXVzOjZweCI+JyArCiAgICAgICAgICAgICc8bGVnZW5kIHN0eWxlPSJmb250
LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7cGFkZGluZzowIDZweDtjb2xvcjp2YXIoLS10ZXh0
LXNlY29uZGFyeSkiPicgKyB0eXBMYWJlbFt0XSArICc8L2xlZ2VuZD4nICsKICAgICAgICAgICAg
c3R5bGVCbG9ja0h0bWwoJ3ZvcmdhYmUtJyArIHQsIHN0aWwsIHsKICAgICAgICAgICAgICAgIGRl
ZmF1bHRCZzogZGVmLmJnLAogICAgICAgICAgICAgICAgZGVmYXVsdEZnOiBkZWYuZmcsCiAgICAg
ICAgICAgICAgICBwcmV2aWV3TGFiZWw6IHQKICAgICAgICAgICAgfSkgKwogICAgICAgICc8L2Zp
ZWxkc2V0Pic7CiAgICB9KTsKICAgIGh0bWwgKz0gJzwvZGl2PicgKwogICAgICAgICc8cCBzdHls
ZT0iZm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDoxMHB4
O2xpbmUtaGVpZ2h0OjEuNSI+JyArCiAgICAgICAgICAgICc8c3Ryb25nPlZvcmdhYmUtRGVmYXVs
dHM6PC9zdHJvbmc+ICcgKwogICAgICAgICAgICAnPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5l
LWJsb2NrO3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOicgKyBl
c2NhcGVBdHRyKF9zY2hpY2h0Y29kZUZhcmJlbignRicpLmJnKSArICc7Y29sb3I6JyArIGVzY2Fw
ZUF0dHIoX3NjaGljaHRjb2RlRmFyYmVuKCdGJykuZmcpICsgJztmb250LXdlaWdodDo3MDAiPkY8
L3NwYW4+ICcgKwogICAgICAgICAgICAnPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2Nr
O3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOicgKyBlc2NhcGVB
dHRyKF9zY2hpY2h0Y29kZUZhcmJlbignUycpLmJnKSArICc7Y29sb3I6JyArIGVzY2FwZUF0dHIo
X3NjaGljaHRjb2RlRmFyYmVuKCdTJykuZmcpICsgJztmb250LXdlaWdodDo3MDAiPlM8L3NwYW4+
ICcgKwogICAgICAgICAgICAnPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRp
bmc6MnB4IDhweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOicgKyBlc2NhcGVBdHRyKF9z
Y2hpY2h0Y29kZUZhcmJlbignTicpLmJnKSArICc7Y29sb3I6JyArIGVzY2FwZUF0dHIoX3NjaGlj
aHRjb2RlRmFyYmVuKCdOJykuZmcpICsgJztmb250LXdlaWdodDo3MDAiPk48L3NwYW4+ICcgKwog
ICAgICAgICAgICAnJm5ic3A7Jm1kYXNoOyBhdXMgZGVtIFRhYiA8YSBocmVmPSIjIiBjbGFzcz0i
YWRtaW4taW5mby1saW5rIiBkYXRhLWdvdG8tYWRtaW4tdGFiPSJzY2hpY2h0Y29kZXMiIHN0eWxl
PSJjb2xvcjp2YXIoLS1mYXJiZS1ha3plbnQpO2ZvbnQtd2VpZ2h0OjYwMCI+U2NoaWNodGNvZGVz
ICZhbXA7IEZhcmJlbjwvYT4gYWJnZWxlaXRldC48YnI+JyArCiAgICAgICAgICAgICdIaW50ZXJn
cnVuZCBsZWVyIGxhc3NlbiAmcmFycjsgb2JpZ2UgRmFyYmVuIHdlcmRlbiBhdXRvbWF0aXNjaCAm
dXVtbDtiZXJub21tZW4uIEVpbmUgRmFyYmUgZ2VzZXR6dCAmcmFycjsgJnV1bWw7YmVyc2NocmVp
YnQgZGllc2VuIERlZmF1bHQuJyArCiAgICAgICAgJzwvcD4nOwogICAgY29udC5pbm5lckhUTUwg
PSBodG1sOwogICAgc3R5bGVCbG9ja1Jlc2V0c0JpbmRlbihjb250KTsKfQoKZXhwb3J0IGZ1bmN0
aW9uIHZvcmdhYmVEZXRhaWxBdXNGb3JtdWxhckxlc2VuKCkgewogICAgdmFyIG91dCA9IHt9Owog
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3ZvcmdhYmUtZGV0YWlsLWluaGFsdCBmaWVs
ZHNldFtkYXRhLXZ0XScpLmZvckVhY2goZnVuY3Rpb24oZnMpIHsKICAgICAgICB2YXIgdCA9IGZz
LmdldEF0dHJpYnV0ZSgnZGF0YS12dCcpOwogICAgICAgIHZhciBibGsgPSBmcy5xdWVyeVNlbGVj
dG9yKCcuc3R5bGUtYmxvY2snKTsKICAgICAgICBpZiAoYmxrKSBvdXRbdF0gPSBzdHlsZUJsb2Nr
TGVzZW4oYmxrKTsKICAgIH0pOwogICAgcmV0dXJuIG91dDsKfQoKLy8gPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci8vIERTTS1EZXRhaWw6IFN5bWJvbCBnZW1hY2h0L25pY2h0LWdlbWFjaHQgKERyb3Bkb3duKSAr
IHp3ZWkgU3RpbC1CbG9lY2tlCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpleHBvcnQgZnVuY3Rpb24gZHNt
RGV0YWlsUmVuZGVybigpIHsKICAgIHZhciBjb250ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2RzbS1kZXRhaWwtaW5oYWx0Jyk7CiAgICBpZiAoIWNvbnQpIHJldHVybjsKICAgIHZhciBoayA9
IGhlYWRlcktvbmZpZ0dldCgpOwogICAgdmFyIGRzbSA9IGhrLmRzbSB8fCBEU01fS09ORklHX0RF
RkFVTFQ7CiAgICBmdW5jdGlvbiBzeW1ib2xEcm9wZG93bihmZWxkLCBha3RpdikgewogICAgICAg
IHJldHVybiAnPHNlbGVjdCBjbGFzcz0iZm9ybS1pbnB1dCBkc20tc3ltYm9sLXNlbCIgZGF0YS1m
ZWxkPSInICsgZmVsZCArICciIGRhdGEtdGFyZ2V0LXByZWZpeD0iJyArIChmZWxkID09PSAnc3lt
Ym9sR2VtYWNodCcgPyAnZHNtLWdlbScgOiAnZHNtLW5nZW0nKSArICciIHN0eWxlPSJ3aWR0aDo5
MHB4O2ZvbnQtc2l6ZToxOHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjcwMCI+JyAr
CiAgICAgICAgICAgIERTTV9TWU1CT0xFLm1hcChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgICAg
ICByZXR1cm4gJzxvcHRpb24gdmFsdWU9IicgKyBlc2NhcGVBdHRyKHMpICsgJyInICsgKGFrdGl2
ID09PSBzID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPicgKyBlc2NhcGVIVE1MKHMpICsgJzwvb3B0
aW9uPic7CiAgICAgICAgICAgIH0pLmpvaW4oJycpICsKICAgICAgICAnPC9zZWxlY3Q+JzsKICAg
IH0KICAgIGNvbnQuaW5uZXJIVE1MID0KICAgICAgICAnPGZpZWxkc2V0IGlkPSJkc20tc3ltYm9s
ZSIgc3R5bGU9InBhZGRpbmc6MTBweCAxNHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVy
LWNvbG9yKTtib3JkZXItcmFkaXVzOjZweDttYXJnaW4tYm90dG9tOjE0cHgiPicgKwogICAgICAg
ICAgICAnPGxlZ2VuZCBzdHlsZT0iZm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NjAwO3BhZGRp
bmc6MCA2cHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpIj5TeW1ib2xlPC9sZWdlbmQ+JyAr
CiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1
bW5zOmF1dG8gMWZyIGF1dG8gMWZyO2dhcDo4cHggMTRweDthbGlnbi1pdGVtczpjZW50ZXI7bWF4
LXdpZHRoOjcwMHB4Ij4nICsKICAgICAgICAgICAgICAgICc8bGFiZWw+PHN0cm9uZz5HZW1hY2h0
PC9zdHJvbmc+PGJyPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0
LW11dGVkKSI+U3RhdHVzIGFrdGl2PC9zcGFuPjwvbGFiZWw+JyArIHN5bWJvbERyb3Bkb3duKCdz
eW1ib2xHZW1hY2h0JywgZHNtLnN5bWJvbEdlbWFjaHQpICsKICAgICAgICAgICAgICAgICc8bGFi
ZWw+PHN0cm9uZz5OaWNodCBnZW1hY2h0PC9zdHJvbmc+PGJyPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+U3RhdHVzIG9mZmVuPC9zcGFuPjwvbGFi
ZWw+JyArIHN5bWJvbERyb3Bkb3duKCdzeW1ib2xOaWNodEdlbWFjaHQnLCBkc20uc3ltYm9sTmlj
aHRHZW1hY2h0KSArCiAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxwIHN0eWxl
PSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW46MTBweCAwIDAi
PicgKwogICAgICAgICAgICAgICAgJzE3IFN5bWJvbGUgenVyIEF1c3dhaGw6ICYjeDI3MTM7ICYj
eDI3MTc7ICYjeEQ3OyAmI3gyMjk3OyAmI3gyNUNGOyAmI3gyNUNCOyAmI3gyNUEzOyAmI3gyNUEw
OyAmI3gyNUExOyAvIC8vIC0gJiN4MjAxMzsgJiN4MjAxNDsgKyAmI3gyNjA1OyAmI3gyNjA2Oy4g
V2lya3Qgc29mb3J0IG5hY2ggU3BlaWNoZXJuIGluIGFsbGVuIERTTS1aZWxsZW4uJyArCiAgICAg
ICAgICAgICc8L3A+JyArCiAgICAgICAgJzwvZmllbGRzZXQ+JyArCiAgICAgICAgJzxkaXYgc3R5
bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LG1p
bm1heCgzMTBweCwxZnIpKTtnYXA6MThweCI+JyArCiAgICAgICAgICAgICc8ZmllbGRzZXQgZGF0
YS1kc20tc3RpbD0ic3RpbEdlbWFjaHQiIHN0eWxlPSJwYWRkaW5nOjEwcHggMTRweDtib3JkZXI6
MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3Vu
ZDpyZ2JhKDQyLDk2LDQ4LDAuMDYpIj4nICsKICAgICAgICAgICAgICAgICc8bGVnZW5kIHN0eWxl
PSJmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7cGFkZGluZzowIDZweDtjb2xvcjojMkE2
MDMwIj5TdGlsICZtZGFzaDsgZ2VtYWNodCAoZ3ImdXVtbDtuKTwvbGVnZW5kPicgKwogICAgICAg
ICAgICAgICAgc3R5bGVCbG9ja0h0bWwoJ2RzbS1nZW0nLCBkc20uc3RpbEdlbWFjaHQgfHwgRFNN
X0tPTkZJR19ERUZBVUxULnN0aWxHZW1hY2h0LCB7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dEJnOiAnIzJBNjAzMCcsCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEZnOiAnI2ZmZmZmZics
CiAgICAgICAgICAgICAgICAgICAgcHJldmlld0xhYmVsOiBkc20uc3ltYm9sR2VtYWNodCB8fCAn
4pyTJwogICAgICAgICAgICAgICAgfSkgKwogICAgICAgICAgICAnPC9maWVsZHNldD4nICsKICAg
ICAgICAgICAgJzxmaWVsZHNldCBkYXRhLWRzbS1zdGlsPSJzdGlsTmljaHRHZW1hY2h0IiBzdHls
ZT0icGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3Ip
O2JvcmRlci1yYWRpdXM6NnB4O2JhY2tncm91bmQ6cmdiYSgxMzksMjYsMjYsMC4wNikiPicgKwog
ICAgICAgICAgICAgICAgJzxsZWdlbmQgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0
OjYwMDtwYWRkaW5nOjAgNnB4O2NvbG9yOiM4QjFBMUEiPlN0aWwgJm1kYXNoOyBuaWNodCBnZW1h
Y2h0IChyb3QpPC9sZWdlbmQ+JyArCiAgICAgICAgICAgICAgICBzdHlsZUJsb2NrSHRtbCgnZHNt
LW5nZW0nLCBkc20uc3RpbE5pY2h0R2VtYWNodCB8fCBEU01fS09ORklHX0RFRkFVTFQuc3RpbE5p
Y2h0R2VtYWNodCwgewogICAgICAgICAgICAgICAgICAgIGRlZmF1bHRCZzogJyM4QjFBMUEnLAog
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGZzogJyNmZmZmZmYnLAogICAgICAgICAgICAgICAg
ICAgIHByZXZpZXdMYWJlbDogZHNtLnN5bWJvbE5pY2h0R2VtYWNodCB8fCAnw5cnCiAgICAgICAg
ICAgICAgICB9KSArCiAgICAgICAgICAgICc8L2ZpZWxkc2V0PicgKwogICAgICAgICc8L2Rpdj4n
OwogICAgc3R5bGVCbG9ja1Jlc2V0c0JpbmRlbihjb250KTsKICAgIC8vIFN5bWJvbC1Ecm9wZG93
biBsaXZlIGluIGRpZSBWb3JzY2hhdSBzcGllZ2VsbgogICAgY29udC5xdWVyeVNlbGVjdG9yQWxs
KCcuZHNtLXN5bWJvbC1zZWwnKS5mb3JFYWNoKGZ1bmN0aW9uKHNlbCkgewogICAgICAgIHNlbC5h
ZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIHBy
ZWYgPSBzZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXRhcmdldC1wcmVmaXgnKTsKICAgICAgICAgICAg
dmFyIHByZXYgPSBjb250LnF1ZXJ5U2VsZWN0b3IoJy5zdHlsZS1ibG9jay1wcmV2aWV3W2RhdGEt
cHJldmlldz0iJyArIHByZWYgKyAnIl0nKTsKICAgICAgICAgICAgaWYgKHByZXYpIHByZXYudGV4
dENvbnRlbnQgPSBzZWwudmFsdWU7CiAgICAgICAgfSk7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0
aW9uIGRzbURldGFpbEF1c0Zvcm11bGFyTGVzZW4oKSB7CiAgICB2YXIgc3ltR2VtID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignI2RzbS1kZXRhaWwtaW5oYWx0IHNlbGVjdFtkYXRhLWZlbGQ9InN5
bWJvbEdlbWFjaHQiXScpOwogICAgdmFyIHN5bU5nZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCcjZHNtLWRldGFpbC1pbmhhbHQgc2VsZWN0W2RhdGEtZmVsZD0ic3ltYm9sTmljaHRHZW1hY2h0
Il0nKTsKICAgIHZhciBvdXQgPSB7CiAgICAgICAgc3ltYm9sR2VtYWNodDogICAgIHN5bUdlbSA/
IHN5bUdlbS52YWx1ZSA6ICfinJMnLAogICAgICAgIHN5bWJvbE5pY2h0R2VtYWNodDpzeW1OZ2Vt
ID8gc3ltTmdlbS52YWx1ZSA6ICfDlycKICAgIH07CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcjZHNtLWRldGFpbC1pbmhhbHQgZmllbGRzZXRbZGF0YS1kc20tc3RpbF0nKS5mb3JFYWNo
KGZ1bmN0aW9uKGZzKSB7CiAgICAgICAgdmFyIGsgPSBmcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtZHNt
LXN0aWwnKTsKICAgICAgICB2YXIgYmxrID0gZnMucXVlcnlTZWxlY3RvcignLnN0eWxlLWJsb2Nr
Jyk7CiAgICAgICAgaWYgKGJsaykgb3V0W2tdID0gc3R5bGVCbG9ja0xlc2VuKGJsayk7CiAgICB9
KTsKICAgIHJldHVybiBvdXQ7Cn0KCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLyBUYWctTWFya2VyOiBI
ZXV0ZSAvIEZlaWVydGFnIC8gRmVpZXJ0YWctd2ljaHRpZyAvIFdvY2hlbmVuZGUgLyBGZXJpZW4K
Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CnZhciBUQUdfTUFSS0VSX0xBQkVMUyA9IHsKICAgIGhldXRlOiAg
ICAgICAgICAgJ0hldXRlIChha3R1ZWxsZXIgVGFnKScsCiAgICBmZWllcnRhZzogICAgICAgICdG
ZWllcnRhZyAoZ2VzZXR6bGljaC9ha3RpdiknLAogICAgZmVpZXJ0YWdXaWNodGlnOiAnRmVpZXJ0
YWcg4oCUIHdpY2h0aWcgKEhlaWxpZ2FiZW5kLCBTaWx2ZXN0ZXIsIFdlaWhuYWNodGVuKScsCiAg
ICB3b2NoZW5lbmRlOiAgICAgICdXb2NoZW5lbmRlIChTYS9TbyknLAogICAgZmVyaWVuOiAgICAg
ICAgICAnRmVyaWVuIChOUlctU2NodWxmZXJpZW4pJwp9OwovLyBCZWlzcGllbC1Wb3JzY2hhdS1U
ZXh0ZSBmdWVyIGRpZSBlaW56ZWxuZW4gTWFya2VyIChpbSBQbGFuLUhlYWRlciBzaWVodAovLyBt
YW4gZWluZSBEYXR1bXMtWmVsbGUgd2llICJNbyA1LiIpCnZhciBUQUdfTUFSS0VSX1BSRVZJRVcg
PSB7CiAgICBoZXV0ZTogICAgICAgICAgICdNbyA1LicsCiAgICBmZWllcnRhZzogICAgICAgICdN
aSAxLiBGVCcsCiAgICBmZWllcnRhZ1dpY2h0aWc6ICdTYSAyNC4gRlQnLAogICAgd29jaGVuZW5k
ZTogICAgICAnU28gNy4nLAogICAgZmVyaWVuOiAgICAgICAgICAnTW8gOC4gTlMnCn07CmV4cG9y
dCBmdW5jdGlvbiB0YWdNYXJrZXJSZW5kZXJuKCkgewogICAgdmFyIGNvbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGFnbWFya2VyLWluaGFsdCcpOwogICAgaWYgKCFjb250KSByZXR1cm47
CiAgICB2YXIgaGsgPSBoZWFkZXJLb25maWdHZXQoKTsKICAgIHZhciB0bSA9IGhrLnRhZ01hcmtl
ciB8fCBUQUdfTUFSS0VSX0RFRkFVTFQ7CiAgICB2YXIgaHRtbCA9ICc8ZGl2IHN0eWxlPSJkaXNw
bGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCxtaW5tYXgoMzEw
cHgsMWZyKSk7Z2FwOjE4cHgiPic7CiAgICBPYmplY3Qua2V5cyhUQUdfTUFSS0VSX0xBQkVMUyku
Zm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAgdmFyIHN0aWwgPSB0bVtrXSB8fCBUQUdfTUFS
S0VSX0RFRkFVTFRba107CiAgICAgICAgdmFyIGRlZiA9IFRBR19NQVJLRVJfREVGQVVMVFtrXSB8
fCB7fTsKICAgICAgICBodG1sICs9ICc8ZmllbGRzZXQgZGF0YS10bT0iJyArIGsgKyAnIiBzdHls
ZT0icGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3Ip
O2JvcmRlci1yYWRpdXM6NnB4Ij4nICsKICAgICAgICAgICAgJzxsZWdlbmQgc3R5bGU9ImZvbnQt
c2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjAgNnB4O2NvbG9yOnZhcigtLXRleHQt
c2Vjb25kYXJ5KSI+JyArIFRBR19NQVJLRVJfTEFCRUxTW2tdICsgJzwvbGVnZW5kPicgKwogICAg
ICAgICAgICBzdHlsZUJsb2NrSHRtbCgndG0tJyArIGssIHN0aWwsIHsKICAgICAgICAgICAgICAg
IGRlZmF1bHRCZzogZGVmLmhpbnRlcmdydW5kIHx8ICcjODg4ODg4JywKICAgICAgICAgICAgICAg
IGRlZmF1bHRGZzogZGVmLnNjaHJpZnQgfHwgJyNmZmZmZmYnLAogICAgICAgICAgICAgICAgcHJl
dmlld0xhYmVsOiBUQUdfTUFSS0VSX1BSRVZJRVdba10gfHwgawogICAgICAgICAgICB9KSArCiAg
ICAgICAgJzwvZmllbGRzZXQ+JzsKICAgIH0pOwogICAgaHRtbCArPSAnPC9kaXY+JyArCiAgICAg
ICAgJzxwIHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJn
aW4tdG9wOjEwcHg7bGluZS1oZWlnaHQ6MS41Ij48c3Ryb25nPlJlaWhlbmZvbGdlIGRlciBBbndl
bmR1bmcgaW0gUGxhbjo8L3N0cm9uZz4gPGVtPkhldXRlPC9lbT4gJmd0OyA8ZW0+RmVpZXJ0YWct
d2ljaHRpZzwvZW0+ICZndDsgPGVtPkZlaWVydGFnPC9lbT4gJmd0OyA8ZW0+V29jaGVuZW5kZTwv
ZW0+LiBXaXJrdCBudXIgYXVmIGRpZSBEYXR1bXMtWmVsbGUgZ2FueiBvYmVuIGltIEhlYWRlci4g
PGVtPkZlcmllbjwvZW0+IHdpcmt0IHp1cyZhdW1sO3R6bGljaCAoU3ltYm9sIPCfj5bvuI8gaW4g
ZGVyIEZlcmllbi9GVC1aZWlsZSkuPC9wPic7CiAgICBjb250LmlubmVySFRNTCA9IGh0bWw7CiAg
ICBzdHlsZUJsb2NrUmVzZXRzQmluZGVuKGNvbnQpOwp9CgpleHBvcnQgZnVuY3Rpb24gdGFnTWFy
a2VyQXVzRm9ybXVsYXJMZXNlbigpIHsKICAgIHZhciBvdXQgPSB7fTsKICAgIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoJyN0YWdtYXJrZXItaW5oYWx0IGZpZWxkc2V0W2RhdGEtdG1dJykuZm9y
RWFjaChmdW5jdGlvbihmcykgewogICAgICAgIHZhciBrID0gZnMuZ2V0QXR0cmlidXRlKCdkYXRh
LXRtJyk7CiAgICAgICAgdmFyIGJsayA9IGZzLnF1ZXJ5U2VsZWN0b3IoJy5zdHlsZS1ibG9jaycp
OwogICAgICAgIGlmIChibGspIG91dFtrXSA9IHN0eWxlQmxvY2tMZXNlbihibGspOwogICAgfSk7
CiAgICByZXR1cm4gb3V0Owp9Cg==
### FILE: js/core/api.js | 2639
Ly8gPT09IGNvcmUvYXBpLmpzID09PQovLyBGZXRjaC1XcmFwcGVyLiBWaWV3LUFzLUd1YXJkIGbD
vHIgUE9TVC9QVVQgKFNjaHJlaWJ2b3Jnw6RuZ2UgaW0gVmlldy1Bcy1Nb2R1cwovLyBzaW5kIGJs
b2NraWVydDsgQXVzbmFobWU6IEVyaW5uZXJ1bmdzLUJlc3TDpHRpZ3VuZykuCgppbXBvcnQgeyBa
IH0gZnJvbSAnLi9zdGF0ZS5qcyc7CmltcG9ydCB7IHRvYXN0IH0gZnJvbSAnLi4vdWkvdG9hc3Qu
anMnOwoKZXhwb3J0IGZ1bmN0aW9uIGFwaShwZmFkLCBvcHQpIHsKICAgIHJldHVybiBmZXRjaChw
ZmFkLCBvcHQgfHwge30pLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgIGlmICghci5vaykgdGhy
b3cgbmV3IEVycm9yKCdIVFRQICcgKyByLnN0YXR1cyk7CiAgICAgICAgcmV0dXJuIHIuanNvbigp
OwogICAgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBhcGlQb3N0KHBmYWQsIGRhdGVuKSB7CiAgICBp
ZiAoWi52aWV3QXNQZXJzb25JZCkgewogICAgICAgIHRvYXN0KCdTY2hyZWlidm9yZ8OkbmdlIHNp
bmQgaW0gVmlldy1Bcy1Nb2R1cyBkZWFrdGl2aWVydCcsICd3YXJudW5nJyk7CiAgICAgICAgcmV0
dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcigndmlldy1hcy1tb2R1cyBha3RpdicpKTsKICAg
IH0KICAgIHJldHVybiBhcGkocGZhZCwgeyBtZXRob2Q6ICdQT1NUJywgaGVhZGVyczogeyAnQ29u
dGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRh
dGVuKSB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGFwaVB1dChwZmFkLCBkYXRlbikgewogICAgaWYg
KFoudmlld0FzUGVyc29uSWQpIHsKICAgICAgICAvLyBBdXNuYWhtZTogRXJpbm5lcnVuZ3MtQmVz
dMOkdGlndW5nIGlzdCBlcmxhdWJ0IOKAlCBzaWUgYmV0cmlmZnQgZGllIHNpbXVsaWVydGUgUGVy
c29uIHNlbGJzdC4KICAgICAgICB2YXIgaXN0RXJpbm5lcnVuZyA9IGRhdGVuICYmIChkYXRlbi5n
ZXNwcmFlY2hFcmxlZGlndEFtICE9PSB1bmRlZmluZWQgfHwgZGF0ZW4uZ2VzcHJhZWNoU25vb3pl
cyAhPT0gdW5kZWZpbmVkKTsKICAgICAgICBpZiAoIWlzdEVyaW5uZXJ1bmcpIHsKICAgICAgICAg
ICAgdG9hc3QoJ1NjaHJlaWJ2b3Jnw6RuZ2Ugc2luZCBpbSBWaWV3LUFzLU1vZHVzIGRlYWt0aXZp
ZXJ0JywgJ3dhcm51bmcnKTsKICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBF
cnJvcigndmlldy1hcy1tb2R1cyBha3RpdicpKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4g
YXBpKHBmYWQsIHsgbWV0aG9kOiAnUFVUJywgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2Fw
cGxpY2F0aW9uL2pzb24nIH0sIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGVuKSB9KTsKfQoKLy8g
YXBpU2FmZTogbGllZmVydCB7c3RhdHVzLCBib2R5fSBPSE5FIGJlaSAhci5vayB6dSB3ZXJmZW4g
4oCUIGbDvHIgRW5kcG9pbnRzLAovLyBkaWUgNHh4LzIwMCBhbHMgdW50ZXJzY2hlaWRiYXJlIEFu
dHdvcnRlbiBiZWhhbmRlbG4gbcO8c3NlbiAoei5CLiBMb2NrLUFjcXVpcmUKLy8gMjAwLzQyMywg
UFVULVplbGxlIDIwMC80MDkvNDAzLzQyMykuCmV4cG9ydCBmdW5jdGlvbiBhcGlTYWZlKHBmYWQs
IG9wdCkgewogICAgcmV0dXJuIGZldGNoKHBmYWQsIG9wdCB8fCB7fSkudGhlbihmdW5jdGlvbihy
KSB7CiAgICAgICAgcmV0dXJuIHIudGV4dCgpLnRoZW4oZnVuY3Rpb24odHh0KSB7CiAgICAgICAg
ICAgIHZhciBib2R5ID0gbnVsbDsKICAgICAgICAgICAgdHJ5IHsgYm9keSA9IHR4dCA/IEpTT04u
cGFyc2UodHh0KSA6IG51bGw7IH0gY2F0Y2ggKGUpIHsgYm9keSA9IHR4dDsgfQogICAgICAgICAg
ICByZXR1cm4geyBzdGF0dXM6IHIuc3RhdHVzLCBib2R5OiBib2R5IH07CiAgICAgICAgfSk7CiAg
ICB9KTsKfQoKLy8gYXBpRmV0Y2g6IHdpZSBhcGkoKSwgYWJlciBtaXQgYmVzc2VyZW0gRmVobGVy
LUJvZHktUGFyc2luZyAoYGZlaGxlcmAvYG1lbGR1bmdgLUZlbGQpLgovLyBBdXRvLUNvbnRlbnQt
VHlwZSBiZWkgYm9keS4gV2lyZCBwcmltw6RyIGluIGFkbWluL21lZGllbi5qcyB1bmQgYWRtaW4v
cGVyc29uZW4uanMgZ2VudXR6dC4KZXhwb3J0IGZ1bmN0aW9uIGFwaUZldGNoKHVybCwgb3B0aW9u
cykgewogICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICBvcHRpb25zLmhlYWRlcnMgPSBv
cHRpb25zLmhlYWRlcnMgfHwge307CiAgICBpZiAob3B0aW9ucy5ib2R5ICYmICFvcHRpb25zLmhl
YWRlcnNbJ0NvbnRlbnQtVHlwZSddKSB7CiAgICAgICAgb3B0aW9ucy5oZWFkZXJzWydDb250ZW50
LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uJzsKICAgIH0KICAgIHJldHVybiBmZXRjaCh1cmws
IG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgIGlmICghci5vaykgewogICAgICAg
ICAgICByZXR1cm4gci5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXsgcmV0dXJuIHt9OyB9KS50aGVu
KGZ1bmN0aW9uKGopIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihqLmZlaGxlciB8
fCBqLm1lbGR1bmcgfHwgKCdIVFRQICcgKyByLnN0YXR1cykpOwogICAgICAgICAgICB9KTsKICAg
ICAgICB9CiAgICAgICAgcmV0dXJuIHIuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7IHJldHVybiB7
fTsgfSk7CiAgICB9KTsKfQo=
### FILE: js/core/datenLaden.js | 4655
Ly8gPT09IGNvcmUvZGF0ZW5MYWRlbi5qcyA9PT0KLy8gSW5pdGlhbGVzIExhZGVuIHZvbiBhZG1p
bi5qc29uICsgcGxhbnVuZy5qc29uICsgaW5mbyBiZWltIEFwcC1TdGFydC4KLy8gQmVyZWNobmV0
IGRhcmF1cyBkZW4gaW5pdGlhbGVuIFotU3RhdGUgKGNvZGVNYXAsIG1laW5lUGVyc29uSWQsCi8v
IFRhZ2Vza2V0dGUsIHRhZ0luZm9zKSB1bmQgdHJpZ2dlcnQgZGFzIEVyaW5uZXJ1bmdzLU1vZGFs
IGbDvHIgREdMLzEuRUIuCi8vCi8vIENyb3NzLU1vZHVsZS1BYmjDpG5naWdrZWl0IChQaGFzZSAz
LVdvcmthcm91bmQpOgovLyAgIGB0YWdJbmZvc0JlcmVjaG5lbmAgdW5kIGB0YWdlRXJ6ZXVnZW5g
IGxlYmVuIGFrdHVlbGwgbm9jaCBpbiBhcHAuanMgKGdlaMO2cmVuCi8vICAgc3DDpHRlciB6dSBn
cmlkL3JlbmRlci5qcywgUGhhc2UgNSkuIFdlcmRlbiDDvGJlciBgZGF0ZW5MYWRlbkhvb2tzYCBp
bmppemllcnQuCi8vICAgU29iYWxkIGdyaWQvcmVuZGVyLmpzIGV4dHJhaGllcnQgaXN0LCBrYW5u
IGRlciBIb29rIGVudGZhbGxlbi4KCmltcG9ydCB7IFogfSBmcm9tICcuL3N0YXRlLmpzJzsKaW1w
b3J0IHsgYXBpIH0gZnJvbSAnLi9hcGkuanMnOwppbXBvcnQgeyBkYXR1bVN0ciB9IGZyb20gJy4v
dXRpbC5qcyc7CmltcG9ydCB7IG5hdlNpY2h0YmFya2VpdEFud2VuZGVuLCBlcmlubmVydW5nZW5B
YmFyYmVpdGVuIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy5qcyc7CgovLyBBcnJheS1GZWxkZXIgaW4g
YWRtaW4uanNvbiwgZGllIFBTIDUuMSBiZWkgQ29udmVydEZyb20tL0NvbnZlcnRUby1Kc29uCi8v
IHUuVS4gYXVmIEVpbnplbC1PYmpla3QgZW50cGFja3Qg4oCUIGJlaW0gTGFkZW4genVydWVjayBp
biBBcnJheSBmw7xocmVuLgpleHBvcnQgdmFyIEFETUlOX0xJU1RfRkVMREVSID0gWydmZWllcnRh
Z2UnLCdmZXJpZW4nLCdzb25kZXJ0ZXJtaW5lJywnc2NoaWNodGNvZGVzJywnZ3J1cHBlbicsJ3N0
YW5kb3J0ZScsJ2Z1bmt0aW9uZW5TdGFtbScsJ2Z1bmt0aW9uZW5UZW1wb3JhZXInLCdzdXBlclVz
ZXInLCdmYWNoYXVmc2ljaHRlbicsJ2FkbWluS2VubnVuZ2VuJywnc2NoaWNodGZvbGdlbicsJ3Jv
bGxlbicsJ3NjaGljaHRjb2RlQWxpYXNlJywnYmVzcHJlY2h1bmdzVm9ybGFnZW4nXTsKCmV4cG9y
dCBmdW5jdGlvbiBhZG1pbkxpc3Rlbk5vcm1hbGlzaWVyZW4oYWRtKSB7CiAgICBpZiAoIWFkbSB8
fCB0eXBlb2YgYWRtICE9PSAnb2JqZWN0JykgcmV0dXJuIGFkbTsKICAgIEFETUlOX0xJU1RfRkVM
REVSLmZvckVhY2goZnVuY3Rpb24oaykgewogICAgICAgIHZhciB2ID0gYWRtW2tdOwogICAgICAg
IGlmICh2ID09IG51bGwpIHsgYWRtW2tdID0gW107IHJldHVybjsgfQogICAgICAgIGlmIChBcnJh
eS5pc0FycmF5KHYpKSByZXR1cm47CiAgICAgICAgaWYgKHR5cGVvZiB2ID09PSAnb2JqZWN0Jykg
ewogICAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHYpOwogICAgICAgICAgICB2YXIg
bnVtZXJpc2NoID0ga2V5cy5sZW5ndGggPiAwICYmIGtleXMuZXZlcnkoZnVuY3Rpb24oaykgeyBy
ZXR1cm4gL15cZCskLy50ZXN0KGspOyB9KTsKICAgICAgICAgICAgYWRtW2tdID0gbnVtZXJpc2No
CiAgICAgICAgICAgICAgICA/IGtleXMuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBwYXJzZUlu
dChhLDEwKS1wYXJzZUludChiLDEwKTt9KS5tYXAoZnVuY3Rpb24oaSl7IHJldHVybiB2W2ldOyB9
KQogICAgICAgICAgICAgICAgOiBbdl07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYWRt
W2tdID0gW107CiAgICAgICAgfQogICAgfSk7CiAgICByZXR1cm4gYWRtOwp9CgpleHBvcnQgZnVu
Y3Rpb24gcGVyc29uZW5OZXVBdWZiYXVlbigpIHsKICAgIC8vIEZMRDogRWluZSBJbnN0YW56ID0g
ZWluZSBEaWVuc3RncnVwcGUuIEFsbGUgaGludGVybGVndGVuIFBlcnNvbmVuIHNpbmQKICAgIC8v
IE1pdGdsaWVkZXIgZGllc2VyIEdydXBwZSDigJQga2VpbiBHcnVwcGVuLUZpbHRlciBtZWhyIG5v
ZXRpZy4KICAgIFoucGVyc29uZW4gPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKQogICAgICAg
IC5maWx0ZXIoZnVuY3Rpb24ocCkgewogICAgICAgICAgICBpZiAoIShwLmFrdGl2IHx8IFoudW1n
ZXNldHp0ZUVpbmJsZW5kZW4pKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgIH0pCiAgICAgICAgLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gKGEucG9z
aXRpb24gfHwgOTk5KSAtIChiLnBvc2l0aW9uIHx8IDk5OSk7IH0pOwp9CgovLyBMYXRlLWJpbmRp
bmcgZsO8ciBub2NoIG5pY2h0IGV4dHJhaGllcnRlIEZ1bmt0aW9uZW4gYXVzIGdyaWQvcmVuZGVy
LmpzLgovLyBhcHAuanMgYmVmw7xsbHQgZGllc2UgUHJvcGVydGllcyBuYWNoIGRlciBGdW5rdGlv
bnMtRGVmaW5pdGlvbi4gUGhhc2UgNSBsw7ZzY2h0Ci8vIGRhcyBPYmpla3Qg4oCUIGRhdGVuTGFk
ZW4uanMgaW1wb3J0aWVydCBkYW5uIGRpcmVrdCBhdXMgZ3JpZC9yZW5kZXIuanMuCmV4cG9ydCB2
YXIgZGF0ZW5MYWRlbkhvb2tzID0gewogICAgdGFnZUVyemV1Z2VuOiBudWxsLCAgICAgICAgIC8v
ICgpIC0+IHZvaWQgKG11dGllcnQgWi50YWdlKQogICAgdGFnSW5mb3NCZXJlY2huZW46IG51bGwg
ICAgIC8vICgpIC0+IHZvaWQgKG11dGllcnQgWi50YWdJbmZvcykKfTsKCmV4cG9ydCBmdW5jdGlv
biBkYXRlbkxhZGVuKCkgewogICAgcmV0dXJuIFByb21pc2UuYWxsKFthcGkoJy9hcGkvYWRtaW4n
KSwgYXBpKCcvYXBpL3BsYW51bmcnKSwgYXBpKCcvYXBpL2luZm8nKV0pCiAgICAgICAgLnRoZW4o
ZnVuY3Rpb24ocikgewogICAgICAgICAgICBaLmFkbWluID0gYWRtaW5MaXN0ZW5Ob3JtYWxpc2ll
cmVuKHJbMF0pOwogICAgICAgICAgICBaLnBsYW51bmcgPSByWzFdOwogICAgICAgICAgICBaLmJl
bnV0emVyID0gclsyXS5iZW51dHplcjsKICAgICAgICAgICAgWi5pc3RBZG1pbiA9IHJbMl0uaXN0
QWRtaW47CiAgICAgICAgICAgIFouaXN0U3VwZXJVc2VyID0gclsyXS5pc3RTdXBlclVzZXI7CiAg
ICAgICAgICAgIFouaXN0RmFjaGF1ZnNpY2h0ID0gISFyWzJdLmlzdEZhY2hhdWZzaWNodDsKICAg
ICAgICAgICAgWi5yb2xsZSA9IHJbMl0ucm9sbGUgfHwgKFouaXN0U3VwZXJVc2VyID8gJ3N1cGVy
JyA6IChaLmlzdEFkbWluID8gJ2FkbWluJyA6ICd1c2VyJykpOwogICAgICAgICAgICBaLmRhcmZV
ZWJlcnNjaHJlaWJlbiA9ICEhclsyXS5kYXJmVWViZXJzY2hyZWliZW4gfHwgWi5pc3RTdXBlclVz
ZXIgfHwgWi5pc3RGYWNoYXVmc2ljaHQ7CgogICAgICAgICAgICBaLmNvZGVNYXAgPSB7fTsKICAg
ICAgICAgICAgKFouYWRtaW4uc2NoaWNodGNvZGVzIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHNj
KSB7CiAgICAgICAgICAgICAgICBaLmNvZGVNYXBbc2MuY29kZV0gPSB7IGhpbnRlcmdydW5kOiBz
Yy5oaW50ZXJncnVuZCwgc2NocmlmdDogc2Muc2NocmlmdCwga3VlcnplbDogc2Mua3VlcnplbCB8
fCBzYy5jb2RlLCBmYXJiTW9kdXM6IHNjLmZhcmJNb2R1cyB8fCAnemVsbGUnIH07CiAgICAgICAg
ICAgIH0pOwoKICAgICAgICAgICAgcGVyc29uZW5OZXVBdWZiYXVlbigpOwoKICAgICAgICAgICAg
Ly8gQWt0dWVsbGVuIEJlbnV0emVyIGVpbmVyIFBlcnNvbiB6dW9yZG5lbgogICAgICAgICAgICBa
Lm1laW5lUGVyc29uSWQgPSBudWxsOwogICAgICAgICAgICB2YXIgYmVudXR6ZXJMb3dlciA9ICha
LmJlbnV0emVyIHx8ICcnKS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICBaLnBlcnNvbmVuLmZv
ckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgICAgICAgICAgaWYgKHAubndLZW5udW5nKSB7CiAg
ICAgICAgICAgICAgICAgICAgdmFyIGtMb3dlciA9IHAubndLZW5udW5nLnRvTG93ZXJDYXNlKCk7
CiAgICAgICAgICAgICAgICAgICAgaWYgKGtMb3dlciA9PT0gYmVudXR6ZXJMb3dlciB8fCBiZW51
dHplckxvd2VyLmVuZHNXaXRoKCdcXCcgKyBrTG93ZXIpKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIFoubWVpbmVQZXJzb25JZCA9IFN0cmluZyhwLmlkKTsKICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgaWYgKHR5cGVv
ZiBkYXRlbkxhZGVuSG9va3MudGFnZUVyemV1Z2VuID09PSAnZnVuY3Rpb24nKSBkYXRlbkxhZGVu
SG9va3MudGFnZUVyemV1Z2VuKCk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0ZW5MYWRlbkhv
b2tzLnRhZ0luZm9zQmVyZWNobmVuID09PSAnZnVuY3Rpb24nKSBkYXRlbkxhZGVuSG9va3MudGFn
SW5mb3NCZXJlY2huZW4oKTsKICAgICAgICAgICAgWi5oZXV0ZVN0ciA9IGRhdHVtU3RyKG5ldyBE
YXRlKCkpOwoKICAgICAgICAgICAgbmF2U2ljaHRiYXJrZWl0QW53ZW5kZW4oKTsKICAgICAgICAg
ICAgdmFyIHVtZ0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tdW1nZXNldHp0ZScp
OwogICAgICAgICAgICBpZiAodW1nQnRuKSB1bWdCdG4uc3R5bGUuZGlzcGxheSA9IFouaXN0QWRt
aW4gPyAnJyA6ICdub25lJzsKCiAgICAgICAgICAgIC8vIEVyaW5uZXJ1bmdzLU1vZGFsIGZ1ZXIg
REdMLzEuRUIgYmVpbSBCb290IHRyaWdnZXJuCiAgICAgICAgICAgIHNldFRpbWVvdXQoZXJpbm5l
cnVuZ2VuQWJhcmJlaXRlbiwgNjAwKTsKICAgICAgICB9KTsKfQo=
### FILE: js/core/permissions.js | 12524
Ly8gPT09IGNvcmUvcGVybWlzc2lvbnMuanMgPT09Ci8vIFJvbGxlbi1Mb2dpayAoU3VwZXJVc2Vy
IC8gRmFjaGF1ZnNpY2h0IC8gQWRtaW4gLyBVc2VyKSwgVmlld0FzLUltcGVyc29uaWZpa2F0aW9u
LAovLyBWZXJiaW5kbGljaGtlaXRzZmVuc3RlciArIEVyaW5uZXJ1bmdzLU1vZGFsIGbDvHIgUGVy
c3Bla3Rpdmdlc3Byw6RjaGUuCi8vCi8vIENyb3NzLU1vZHVsZS1BYmjDpG5naWdrZWl0OgovLyAg
IGBkYXJmU3RhdGlzdGlrVGFiYCBncmVpZnQgYXVmIGBwZXJzb25EYXJmU3RhdGlzdGlrYCB6dSAo
bGVidCBpbiBhZG1pbi9wZXJzb25lbi5qcywKLy8gICBiaXMgUGhhc2UgNiBub2NoIGluIGFwcC5q
cykuIGB2aWV3QXNBa3RpdmllcmVuYCAvIGB2aWV3QXNCZWVuZGVuYCBydWZlbgovLyAgIGBwZXJz
b25hbFRhYmVsbGVSZW5kZXJuYCBhdWYuIERpZXNlIEZ1bmt0aW9uZW4gd2VyZGVuIMO8YmVyIGRh
cyBleHBvcnRpZXJ0ZQovLyAgIGBwZXJtaXNzaW9uSG9va3NgLU9iamVrdCB6dXIgTGF1ZnplaXQg
aW5qaXppZXJ0LiBTb2JhbGQgYWRtaW4vcGVyc29uZW4uanMKLy8gICBleHRyYWhpZXJ0IGlzdCwg
a2FubiBkZXIgSG9vay1NZWNoYW5pc211cyBlbnRmYWxsZW4g4oCUIGRpZSBNb2R1bGUgaW1wb3J0
aWVyZW4KLy8gICBkYW5uIGRpcmVrdCB2b25laW5hbmRlci4KCmltcG9ydCB7IFogfSBmcm9tICcu
L3N0YXRlLmpzJzsKaW1wb3J0IHsgZGF0dW1TdHIsIGRhdHVtRm9ybWF0REUsIGVzY2FwZUhUTUws
IHBlcnNvbk5hbWUsIHBlcnNvblZvbGxOYW1lIH0gZnJvbSAnLi91dGlsLmpzJzsKaW1wb3J0IHsg
YXBpUHV0IH0gZnJvbSAnLi9hcGkuanMnOwppbXBvcnQgeyB0b2FzdCB9IGZyb20gJy4uL3VpL3Rv
YXN0LmpzJzsKaW1wb3J0IHsgbW9kYWxaZWlnZW4sIG1vZGFsU2NobGllc3NlbiB9IGZyb20gJy4u
L3VpL21vZGFsLmpzJzsKCi8vIExhdGUtYmluZGluZyBmw7xyIG5vY2ggbmljaHQgZXh0cmFoaWVy
dGUgTW9kdWxlIChQaGFzZSAzLVdvcmthcm91bmQpLgovLyBhcHAuanMgYmVmw7xsbHQgZGllc2Ug
UHJvcGVydGllcyBuYWNoIGRlciBGdW5rdGlvbnMtRGVmaW5pdGlvbi4gUGhhc2UgNiBsw7ZzY2h0
Ci8vIGRhcyBPYmpla3Qg4oCUIGFkbWluL3BlcnNvbmVuLmpzIGV4cG9ydGllcnQgZGFubiBkaXJl
a3QuCmV4cG9ydCB2YXIgcGVybWlzc2lvbkhvb2tzID0gewogICAgcGVyc29uRGFyZlN0YXRpc3Rp
azogbnVsbCwgICAgLy8gKHApIC0+IGJvb2wKICAgIHBlcnNvbmFsVGFiZWxsZVJlbmRlcm46IG51
bGwgIC8vICgpIC0+IHZvaWQKfTsKCi8vID09PT09IFZlcmJpbmRsaWNoa2VpdHNmZW5zdGVyIChQ
bGFudW5nc2Jlc2NocsOkbmt1bmcpID09PT09Ci8vIEtvbmZpZyBpbiBhZG1pbi52ZXJiaW5kbGlj
aGtlaXRzZmVuc3Rlcjoge2FrdGl2LCBlaW5oZWl0OiJ3b2NoZW4ifCJ0YWdlIiwgd2VydCwgd29j
aGVuc3RhcnQ6MS4uNyAoSVNPKX0uCi8vIFNwZXJydCByZWd1bMOkcmUgVXNlciBhdWYgVGFnZSBp
biBkZXIgbmFoZW4gWnVrdW5mdC4KCmV4cG9ydCBmdW5jdGlvbiB2ZXJiaW5kbGljaGtlaXRzU3Rh
cnREYXR1bSgpIHsKICAgIHZhciB2ZiA9IChaLmFkbWluICYmIFouYWRtaW4udmVyYmluZGxpY2hr
ZWl0c2ZlbnN0ZXIpIHx8IHt9OwogICAgaWYgKCF2Zi5ha3RpdikgcmV0dXJuIG51bGw7CiAgICB2
YXIgaGV1dGUgPSBuZXcgRGF0ZShaLmhldXRlU3RyICsgJ1QwMDowMDowMCcpOwogICAgdmFyIGVp
bmhlaXQgPSB2Zi5laW5oZWl0IHx8ICd3b2NoZW4nOwogICAgdmFyIHdlcnQgPSBwYXJzZUludCh2
Zi53ZXJ0LCAxMCkgfHwgMjsKICAgIHZhciBhbmtlciA9IG5ldyBEYXRlKGhldXRlKTsKICAgIGlm
IChlaW5oZWl0ID09PSAnd29jaGVuJykgewogICAgICAgIHZhciB6aWVsID0gcGFyc2VJbnQodmYu
d29jaGVuc3RhcnQsIDEwKSB8fCAxOyAgLy8gMT1NbyAoSVNPKQogICAgICAgIHZhciBqc1RhZyA9
IGhldXRlLmdldERheSgpOyAgICAgICAgICAgICAgICAgICAgLy8gSlM6IDA9U28sIDE9TW8sIC4u
LiwgNj1TYQogICAgICAgIHZhciBpc29UYWcgPSBqc1RhZyA9PT0gMCA/IDcgOiBqc1RhZzsKICAg
ICAgICB2YXIgZGlmZiA9ICh6aWVsIC0gaXNvVGFnICsgNykgJSA3OwogICAgICAgIGlmIChkaWZm
ID09PSAwKSBkaWZmID0gNzsgICAgICAgICAgICAgICAgICAgICAgIC8vIGltbWVyIE7DhENIU1RF
UiBXb2NoZW5zdGFydCwgbmllIGhldXRlCiAgICAgICAgYW5rZXIuc2V0RGF0ZShoZXV0ZS5nZXRE
YXRlKCkgKyBkaWZmICsgd2VydCAqIDcpOwogICAgfSBlbHNlIHsKICAgICAgICBhbmtlci5zZXRE
YXRlKGhldXRlLmdldERhdGUoKSArIHdlcnQpOwogICAgfQogICAgcmV0dXJuIGFua2VyOwp9Cgpl
eHBvcnQgZnVuY3Rpb24gaXN0SW5WZXJiaW5kbGljaGtlaXQoZGF0dW1TdHJJc28pIHsKICAgIHZh
ciBncmVuemUgPSB2ZXJiaW5kbGljaGtlaXRzU3RhcnREYXR1bSgpOwogICAgaWYgKCFncmVuemUp
IHJldHVybiBmYWxzZTsKICAgIHZhciBkID0gbmV3IERhdGUoZGF0dW1TdHJJc28gKyAnVDAwOjAw
OjAwJyk7CiAgICByZXR1cm4gZCA8IGdyZW56ZTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGRhcmZEYXR1
bUVkaXRpZXJlbihkYXR1bVN0cklzbykgewogICAgaWYgKFouaXN0U3VwZXJVc2VyIHx8IFouaXN0
RmFjaGF1ZnNpY2h0KSByZXR1cm4gdHJ1ZTsKICAgIHJldHVybiAhaXN0SW5WZXJiaW5kbGljaGtl
aXQoZGF0dW1TdHJJc28pOwp9CgovLyBEU00tVG9nZ2xlOiBTdXBlclVzZXIsIEZhY2hhdWZzaWNo
dCBvZGVyIDEuIEVCIFYuIChTdGVsbHZlcnRyZXRlcikKZXhwb3J0IGZ1bmN0aW9uIGRhcmZEc21U
b2dnZWxuKCkgewogICAgaWYgKFouaXN0U3VwZXJVc2VyIHx8IFouaXN0RmFjaGF1ZnNpY2h0KSBy
ZXR1cm4gdHJ1ZTsKICAgIHZhciBwaWQgPSBaLnZpZXdBc1BlcnNvbklkIHx8IFoubWVpbmVQZXJz
b25JZDsKICAgIGlmICghcGlkKSByZXR1cm4gZmFsc2U7CiAgICB2YXIgbWVpbmUgPSAoKFoucGxh
bnVuZyB8fCB7fSkucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4gU3Ry
aW5nKHguaWQpID09PSBTdHJpbmcocGlkKTsgfSk7CiAgICByZXR1cm4gISFtZWluZSAmJiBtZWlu
ZS5mdW5rdGlvbiA9PT0gJzEuIEVCIFYuJzsKfQoKLy8gPT09PT0gVmlld0FzLUltcGVyc29uaWZp
a2F0aW9uID09PT09Ci8vIFoudmlld0FzUGVyc29uSWQ6IFdlbm4gZ2VzZXR6dCwgc2ltdWxpZXJ0
IGRpZSBVSSBkaWUgQW5zaWNodCBkaWVzZXIgUGVyc29uLgovLyBTY2hyZWlidm9yZ2FlbmdlIGxh
dWZlbiB3ZWl0ZXIgdW50ZXIgZGVtIGVjaHRlbiBTZXJ2ZXItVXNlciDigJQgZGVyIFZpZXctQXMK
Ly8gaXN0IHJlaW4gVUktc2VpdGlnIHVuZCBibGVuZGV0IHp1c2FldHpsaWNoIGFsbGUgU2NocmVp
Yi1CdXR0b25zIGF1cy4KCmV4cG9ydCBmdW5jdGlvbiBlZmZJc3RTdXBlclVzZXIoKSB7CiAgICBp
ZiAoWi52aWV3QXNQZXJzb25JZCkgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuICEhWi5pc3RTdXBl
clVzZXI7Cn0KCmV4cG9ydCBmdW5jdGlvbiBlZmZJc3RBZG1pbigpIHsKICAgIGlmIChaLnZpZXdB
c1BlcnNvbklkKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gISFaLmlzdEFkbWluOwp9CgpleHBv
cnQgZnVuY3Rpb24gdmlld0FzQWt0aXYoKSB7IHJldHVybiAhIVoudmlld0FzUGVyc29uSWQ7IH0K
CmV4cG9ydCBmdW5jdGlvbiB2aWV3QXNBa3RpdmllcmVuKHBlcnNvbklkKSB7CiAgICB2YXIgcCA9
IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24oeCkgeyByZXR1cm4gU3Ry
aW5nKHguaWQpID09PSBTdHJpbmcocGVyc29uSWQpOyB9KTsKICAgIGlmICghcCkgcmV0dXJuOwog
ICAgLy8gQmFja3VwIGVjaHRlciBJZGVudGl0YWV0IChudXIgZWlubWFsIGJlaW0gZXJzdGVuIFN3
aXRjaCkKICAgIGlmICh0eXBlb2YgWi5fZWNodGVTVSA9PT0gJ3VuZGVmaW5lZCcpIFouX2VjaHRl
U1UgPSBaLmlzdFN1cGVyVXNlcjsKICAgIGlmICh0eXBlb2YgWi5fZWNodGVBZG1pbiA9PT0gJ3Vu
ZGVmaW5lZCcpIFouX2VjaHRlQWRtaW4gPSBaLmlzdEFkbWluOwogICAgaWYgKHR5cGVvZiBaLl9l
Y2h0ZU1laW5lUGVyc29uSWQgPT09ICd1bmRlZmluZWQnKSBaLl9lY2h0ZU1laW5lUGVyc29uSWQg
PSBaLm1laW5lUGVyc29uSWQ7CgogICAgWi52aWV3QXNQZXJzb25JZCA9IFN0cmluZyhwZXJzb25J
ZCk7CiAgICBaLmlzdFN1cGVyVXNlciA9IGZhbHNlOwogICAgWi5pc3RBZG1pbiA9IGZhbHNlOwog
ICAgWi5tZWluZVBlcnNvbklkID0gU3RyaW5nKHBlcnNvbklkKTsKCiAgICBkb2N1bWVudC5ib2R5
LmNsYXNzTGlzdC5hZGQoJ3ZpZXctYXMtbW9kdXMnKTsKICAgIHZhciBiYW4gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndmlldy1hcy1iYW5uZXInKTsKICAgIGlmIChiYW4pIHsKICAgICAgICB2
YXIgbGFiZWwgPSBwZXJzb25Wb2xsTmFtZShwKSArICcgKCcgKyAocC5mdW5rdGlvbiB8fCAnRUIn
KSArICcpJzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmlldy1hcy1uYW1lJyku
dGV4dENvbnRlbnQgPSBsYWJlbDsKICAgICAgICBiYW4uY2xhc3NMaXN0LnJlbW92ZSgndmVyc3Rl
Y2t0Jyk7CiAgICB9CiAgICBuYXZTaWNodGJhcmtlaXRBbndlbmRlbigpOwogICAgaWYgKHR5cGVv
ZiBwZXJtaXNzaW9uSG9va3MucGVyc29uYWxUYWJlbGxlUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJyAm
JiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGVyc29uYWwtdGJvZHknKSkgewogICAgICAgIHBl
cm1pc3Npb25Ib29rcy5wZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAgICB9CiAgICB0b2FzdCgn
QW5zaWNodCBhbHMgJyArIHBlcnNvbk5hbWUocCkgKyAnIOKAlCBTY2hyZWlidm9yZ8OkbmdlIGdl
c3BlcnJ0JywgJ2luZm8nKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHZpZXdBc0JlZW5kZW4oKSB7CiAg
ICBpZiAoIVoudmlld0FzUGVyc29uSWQpIHJldHVybjsKICAgIFoudmlld0FzUGVyc29uSWQgPSBu
dWxsOwogICAgaWYgKHR5cGVvZiBaLl9lY2h0ZVNVICE9PSAndW5kZWZpbmVkJykgWi5pc3RTdXBl
clVzZXIgPSBaLl9lY2h0ZVNVOwogICAgaWYgKHR5cGVvZiBaLl9lY2h0ZUFkbWluICE9PSAndW5k
ZWZpbmVkJykgWi5pc3RBZG1pbiA9IFouX2VjaHRlQWRtaW47CiAgICBpZiAodHlwZW9mIFouX2Vj
aHRlTWVpbmVQZXJzb25JZCAhPT0gJ3VuZGVmaW5lZCcpIFoubWVpbmVQZXJzb25JZCA9IFouX2Vj
aHRlTWVpbmVQZXJzb25JZDsKICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgndmll
dy1hcy1tb2R1cycpOwogICAgdmFyIGJhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2aWV3
LWFzLWJhbm5lcicpOwogICAgaWYgKGJhbikgYmFuLmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcp
OwogICAgdmFyIHNlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWwtdmlldy1hcycpOwog
ICAgaWYgKHNlbCkgc2VsLnZhbHVlID0gJyc7CiAgICBuYXZTaWNodGJhcmtlaXRBbndlbmRlbigp
OwogICAgaWYgKHR5cGVvZiBwZXJtaXNzaW9uSG9va3MucGVyc29uYWxUYWJlbGxlUmVuZGVybiA9
PT0gJ2Z1bmN0aW9uJyAmJiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGVyc29uYWwtdGJvZHkn
KSkgewogICAgICAgIHBlcm1pc3Npb25Ib29rcy5wZXJzb25hbFRhYmVsbGVSZW5kZXJuKCk7CiAg
ICB9CiAgICB0b2FzdCgnRWlnZW5lIFNpY2h0IHdpZWRlcmhlcmdlc3RlbGx0JywgJ2VyZm9sZycp
Owp9CgovLyA9PT09PSBFcmlubmVydW5ncy1Nb2RhbDogUGVyc3Bla3Rpdmdlc3ByYWVjaCBiZWkg
YmVmcmlzdGV0ZW4gUGVyc29uZW4gPT09PT0KLy8gVHJpZ2dlcnQgbmFjaCBkZW0gQm9vdCBlaW4g
TW9kYWwgZnVlciBER0wvMS5FQiwgd2VubiBkYXMgRW5kZGF0dW0gZWluZXIKLy8gUGVyc29uIG5h
ZWhlciBhbHMgZGVyIFZvcmxhdWYgcnVlY2t0LiBDcm9zcy1Vc2VyLVN5bmMgdmlhCi8vIHBlcnNv
bi5nZXNwcmFlY2hFcmxlZGlndEFtLiBTbm9vemUgcHJvIE5XLUtlbm51bmcgaW4gcGVyc29uLmdl
c3ByYWVjaFNub296ZXMuCgpleHBvcnQgZnVuY3Rpb24gYWt0dWVsbGVOd0tlbm51bmcoKSB7CiAg
ICByZXR1cm4gKChaLmJlbnV0emVyIHx8ICcnKSArICcnKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2Uo
L14uKlxcLywgJycpOwp9CgpleHBvcnQgZnVuY3Rpb24gZGFyZkVyaW5uZXJ1bmdTZWhlbigpIHsK
ICAgIC8vIE51ciBER0wgdW5kIDEuRUIgc2VoZW4gZGllIEVyaW5uZXJ1bmcg4oCUIE5JQ0hUIDEu
RUIgVi4gdW5kIGtlaW5lIG5vcm1hbGVuIFVzZXIKICAgIHZhciBwaWQgPSBaLnZpZXdBc1BlcnNv
bklkIHx8IFoubWVpbmVQZXJzb25JZDsKICAgIGlmICghcGlkKSByZXR1cm4gZmFsc2U7CiAgICB2
YXIgbWVpbmUgPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHgpIHsg
cmV0dXJuIFN0cmluZyh4LmlkKSA9PT0gU3RyaW5nKHBpZCk7IH0pOwogICAgaWYgKCFtZWluZSkg
cmV0dXJuIGZhbHNlOwogICAgcmV0dXJuIG1laW5lLmZ1bmt0aW9uID09PSAnREdMJyB8fCBtZWlu
ZS5mdW5rdGlvbiA9PT0gJzEuIEVCJzsKfQoKZXhwb3J0IGZ1bmN0aW9uIG9mZmVuZUVyaW5uZXJ1
bmdlbigpIHsKICAgIGlmICghZGFyZkVyaW5uZXJ1bmdTZWhlbigpKSByZXR1cm4gW107CiAgICB2
YXIgZXIgPSBaLmFkbWluLmVyaW5uZXJ1bmcgfHwge307CiAgICB2YXIgdm9ybGF1ZiA9IGVyLnZv
cmxhdWZUYWdlIHx8IDE0OwogICAgdmFyIGhldXRlID0gbmV3IERhdGUoKTsgaGV1dGUuc2V0SG91
cnMoMCwgMCwgMCwgMCk7CiAgICB2YXIgbWVpbktleSA9IGFrdHVlbGxlTndLZW5udW5nKCk7CiAg
ICByZXR1cm4gKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKHApIHsK
ICAgICAgICBpZiAoIXAuYWt0aXYpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAoIXAuZW5kRGF0
dW0pIHJldHVybiBmYWxzZTsKICAgICAgICAvLyBDcm9zcy1Vc2VyOiBlaW5tYWwgYWxzIGVybGVk
aWd0IG1hcmtpZXJ0IC0+IGtlaW4gTW9kYWwgbWVociAoYmlzIEVuZGRhdHVtIGdlYWVuZGVydCB3
aXJkKQogICAgICAgIGlmIChwLmdlc3ByYWVjaEVybGVkaWd0QW0pIHJldHVybiBmYWxzZTsKICAg
ICAgICAvLyBNZWluIHBlcnNvZW5saWNoZXIgU25vb3plIG5vY2ggYWt0aXY/CiAgICAgICAgdmFy
IHNueiA9IChwLmdlc3ByYWVjaFNub296ZXMgfHwge30pW21laW5LZXldOwogICAgICAgIGlmIChz
bnopIHsKICAgICAgICAgICAgdmFyIHNuekRhdGUgPSBuZXcgRGF0ZShzbnopOwogICAgICAgICAg
ICBpZiAoIWlzTmFOKHNuekRhdGUuZ2V0VGltZSgpKSAmJiBzbnpEYXRlID4gaGV1dGUpIHJldHVy
biBmYWxzZTsKICAgICAgICB9CiAgICAgICAgLy8gVm9ybGF1ZiBlcnJlaWNodD8KICAgICAgICB2
YXIgZW5kRGF0ZSA9IG5ldyBEYXRlKHAuZW5kRGF0dW0pOwogICAgICAgIGlmIChpc05hTihlbmRE
YXRlLmdldFRpbWUoKSkpIHJldHVybiBmYWxzZTsKICAgICAgICB2YXIgZ3JlbnplID0gbmV3IERh
dGUoZW5kRGF0ZSk7CiAgICAgICAgZ3JlbnplLnNldERhdGUoZ3JlbnplLmdldERhdGUoKSAtIHZv
cmxhdWYpOwogICAgICAgIHJldHVybiBoZXV0ZSA+PSBncmVuemU7CiAgICB9KTsKfQoKZXhwb3J0
IGZ1bmN0aW9uIGVyaW5uZXJ1bmdzTW9kYWxaZWlnZW4ocGVyc29uKSB7CiAgICB2YXIgZXIgPSBa
LmFkbWluLmVyaW5uZXJ1bmcgfHwge307CiAgICB2YXIgc3RhbmRhcmRUZXh0ID0gZXIuc3RhbmRh
cmRUZXh0IHx8CiAgICAgICAgJ0JpdHRlIGVpbiBBYnNjaGx1c3MtL1BlcnNwZWt0aXZnZXNwcsOk
Y2ggbWl0IHtwZXJzb259IChCZWZyaXN0dW5nIGVuZGV0IGFtIHtlbmRkYXR1bX0pIGbDvGhyZW4u
JzsKICAgIHZhciBzbm9vemVUYWdlID0gZXIuc25vb3plVGFnZSB8fCAzOwogICAgdmFyIHBlcnNv
bkxhYmVsID0gcGVyc29uVm9sbE5hbWUocGVyc29uKTsKICAgIHZhciBlbmREYXR1bURFID0gZGF0
dW1Gb3JtYXRERShwZXJzb24uZW5kRGF0dW0pOwogICAgdmFyIG5vdGl6ID0gcGVyc29uLmVyaW5u
ZXJ1bmdzTm90aXogfHwgJyc7CiAgICB2YXIgdGV4dCA9IHN0YW5kYXJkVGV4dAogICAgICAgIC5y
ZXBsYWNlKC9ce3BlcnNvblx9L2csIHBlcnNvbkxhYmVsKQogICAgICAgIC5yZXBsYWNlKC9ce2Vu
ZGRhdHVtXH0vZywgZW5kRGF0dW1ERSkKICAgICAgICAucmVwbGFjZSgvXHtub3Rpelx9L2csIG5v
dGl6KTsKICAgIHZhciBrb2VycGVyID0gJzxkaXYgc3R5bGU9InBhZGRpbmc6NnB4IDAiPicgKwog
ICAgICAgICc8ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjU7bWFyZ2lu
LWJvdHRvbToxNHB4Ij4nICsgZXNjYXBlSFRNTCh0ZXh0KSArICc8L2Rpdj4nICsKICAgICAgICAo
bm90aXoKICAgICAgICAgICAgPyAnPGRpdiBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1nb2xkLXNv
ZnQpO2JvcmRlci1sZWZ0OjNweCBzb2xpZCB2YXIoLS1nb2xkKTtwYWRkaW5nOjhweCAxMnB4O2Zv
bnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTttYXJnaW4tYm90dG9tOjE0
cHg7Ym9yZGVyLXJhZGl1czowIDNweCAzcHggMCI+PHN0cm9uZz5Ob3Rpejo8L3N0cm9uZz4gJyAr
IGVzY2FwZUhUTUwobm90aXopICsgJzwvZGl2PicKICAgICAgICAgICAgOiAnJykgKwogICAgICAg
ICc8ZGl2IHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+QmVm
cmlzdGV0IGJpczogPHN0cm9uZz4nICsgZW5kRGF0dW1ERSArICc8L3N0cm9uZz4nICsKICAgICAg
ICAocGVyc29uLmxldHp0ZXNHZXNwcmFlY2hBbSA/ICcgJm1pZGRvdDsgTGV0enRlcyBHZXNwcsOk
Y2g6IDxzdHJvbmc+JyArIGRhdHVtRm9ybWF0REUocGVyc29uLmxldHp0ZXNHZXNwcmFlY2hBbSkg
KyAnPC9zdHJvbmc+JyA6ICcnKSArCiAgICAgICAgJzwvZGl2PjwvZGl2Pic7CiAgICB2YXIgZnVz
cyA9ICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayIgaWQ9ImVyLXNub296ZSIgZGF0YS12aWV3
LWFzLWVybGF1YnQ9IjEiPkVyaW5uZXJlIG1pY2ggaW4gJyArIHNub296ZVRhZ2UgKyAnIFRhZ2Vu
IGVybmV1dDwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0
bi1lcmZvbGciIGlkPSJlci1lcmxlZGlndCIgZGF0YS12aWV3LWFzLWVybGF1YnQ9IjEiPkdlc3By
w6RjaCB3dXJkZSBnZWbDvGhydCAoZsO8ciBhbGxlIGFscyBlcmxlZGlndCk8L2J1dHRvbj4nOwog
ICAgbW9kYWxaZWlnZW4oJ1BlcnNwZWt0aXZnZXNwcsOkY2g6ICcgKyBwZXJzb25MYWJlbCwga29l
cnBlciwgZnVzcywgbnVsbCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXItZXJsZWRp
Z3QnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBo
ZXV0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCk7CiAgICAgICAgYXBp
UHV0KCcvYXBpL3BlcnNvbmVuLycgKyBwZXJzb24uaWQsIHsKICAgICAgICAgICAgZ2VzcHJhZWNo
RXJsZWRpZ3RBbTogaGV1dGUsCiAgICAgICAgICAgIGxldHp0ZXNHZXNwcmFlY2hBbTogaGV1dGUK
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBwZXJzb24uZ2VzcHJhZWNo
RXJsZWRpZ3RBbSA9IGhldXRlOwogICAgICAgICAgICBwZXJzb24ubGV0enRlc0dlc3ByYWVjaEFt
ID0gaGV1dGU7CiAgICAgICAgICAgIG1vZGFsU2NobGllc3NlbigpOwogICAgICAgICAgICB0b2Fz
dCgnQWxzIGVybGVkaWd0IG1hcmtpZXJ0IChzaWNodGJhciBmw7xyIGFsbGUgREdMLzEuRUIpJywg
J2VyZm9sZycpOwogICAgICAgICAgICBzZXRUaW1lb3V0KGVyaW5uZXJ1bmdlbkFiYXJiZWl0ZW4s
IDE1MCk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyOiAnICsg
ZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXItc25vb3plJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsK
ICAgICAgICB2YXIgc256RGF0ZSA9IG5ldyBEYXRlKCk7CiAgICAgICAgc256RGF0ZS5zZXREYXRl
KHNuekRhdGUuZ2V0RGF0ZSgpICsgc25vb3plVGFnZSk7CiAgICAgICAgdmFyIHNuelN0ciA9IHNu
ekRhdGUudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCk7CiAgICAgICAgdmFyIG1laW5LZXkgPSBh
a3R1ZWxsZU53S2VubnVuZygpOwogICAgICAgIHZhciBzbm9vemVzID0gT2JqZWN0LmFzc2lnbih7
fSwgcGVyc29uLmdlc3ByYWVjaFNub296ZXMgfHwge30pOwogICAgICAgIHNub296ZXNbbWVpbktl
eV0gPSBzbnpTdHI7CiAgICAgICAgYXBpUHV0KCcvYXBpL3BlcnNvbmVuLycgKyBwZXJzb24uaWQs
IHsgZ2VzcHJhZWNoU25vb3plczogc25vb3plcyB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICBwZXJzb24uZ2VzcHJhZWNoU25vb3plcyA9IHNub296ZXM7CiAgICAgICAgICAgIG1vZGFs
U2NobGllc3NlbigpOwogICAgICAgICAgICB0b2FzdCgnRXJpbm5lcnVuZyBzbm9venQgYmlzICcg
KyBkYXR1bUZvcm1hdERFKHNuelN0ciksICdpbmZvJyk7CiAgICAgICAgICAgIHNldFRpbWVvdXQo
ZXJpbm5lcnVuZ2VuQWJhcmJlaXRlbiwgMTUwKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihl
KSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7CiAgICB9KTsK
fQoKZXhwb3J0IGZ1bmN0aW9uIGVyaW5uZXJ1bmdlbkFiYXJiZWl0ZW4oKSB7CiAgICB2YXIgb2Zm
ZW4gPSBvZmZlbmVFcmlubmVydW5nZW4oKTsKICAgIGlmIChvZmZlbi5sZW5ndGggPT09IDApIHJl
dHVybjsKICAgIGVyaW5uZXJ1bmdzTW9kYWxaZWlnZW4ob2ZmZW5bMF0pOwp9CgovLyA9PT09PSBT
aWNodGJhcmtlaXQgU3RhdGlzdGlrIC8gTG9nYnVjaCAvIEFkbWluaXN0cmF0aW9uID09PT09Ci8v
IFN0YW5kYXJkOiBTVSBzaWVodCBhbGxlcy4gU3RhdGlzdGlrLVNpY2h0YmFya2VpdCBoYWVuZ3Qg
YW4KLy8gcGVyc29uRGFyZlN0YXRpc3RpaygpIChER0wvMS5FQiBieSBkZWZhdWx0ICsgUHJvLVVz
ZXItVG9nZ2xlIGluIGFkbWluL3BlcnNvbmVuLmpzKS4KCmV4cG9ydCBmdW5jdGlvbiBkYXJmU3Rh
dGlzdGlrVGFiKCkgewogICAgaWYgKGVmZklzdFN1cGVyVXNlcigpKSByZXR1cm4gdHJ1ZTsKICAg
IC8vIFZpZXctQXMgcmVzcGVrdGllcmVuIOKAlCB3ZW5uIGltcGVyc29uaWVydCwgZ2lsdCBkaWUg
U2ljaHQgZGVyIFppZWwtUGVyc29uCiAgICB2YXIgcGlkID0gWi52aWV3QXNQZXJzb25JZCB8fCBa
Lm1laW5lUGVyc29uSWQ7CiAgICBpZiAoIXBpZCkgcmV0dXJuIGZhbHNlOwogICAgdmFyIHAgPSAo
Wi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maW5kKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIFN0cmlu
Zyh4LmlkKSA9PT0gU3RyaW5nKHBpZCk7IH0pOwogICAgaWYgKHR5cGVvZiBwZXJtaXNzaW9uSG9v
a3MucGVyc29uRGFyZlN0YXRpc3RpayA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIHJldHVybiBw
ZXJtaXNzaW9uSG9va3MucGVyc29uRGFyZlN0YXRpc3RpayhwKTsKICAgIH0KICAgIC8vIEZhbGxi
YWNrIGJldm9yIGFkbWluL3BlcnNvbmVuLmpzIGV4dHJhaGllcnQgaXN0OiBER0wvMS5FQiBzZWhl
biBieSBkZWZhdWx0CiAgICByZXR1cm4gISFwICYmIChwLmZ1bmt0aW9uID09PSAnREdMJyB8fCBw
LmZ1bmt0aW9uID09PSAnMS4gRUInKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGRhcmZMb2didWNoVGFi
KCkgewogICAgaWYgKFouaXN0U3VwZXJVc2VyKSByZXR1cm4gdHJ1ZTsKICAgIGlmICghWi5pc3RB
ZG1pbikgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuICEhKFouYWRtaW4uYWRtaW5TaWNodGJhcmtl
aXQgfHwge30pLmxvZ2J1Y2g7Cn0KCmV4cG9ydCBmdW5jdGlvbiBkYXJmQWRtaW5UYWIoKSB7CiAg
ICByZXR1cm4gISFaLmlzdFN1cGVyVXNlcjsKfQoKLy8gQmVyZWljaCBpbm5lcmhhbGIgZGVyIFN0
YXRpc3RpayAobnVyIHJlbGV2YW50IHdlbm4gZGVyIFRhYiBpbnNnZXNhbXQgc2ljaHRiYXIgaXN0
KQpleHBvcnQgZnVuY3Rpb24gZGFyZlN0YXRCZXJlaWNoKGtleSkgewogICAgaWYgKFouaXN0U3Vw
ZXJVc2VyKSByZXR1cm4gdHJ1ZTsKICAgIGlmICghZGFyZlN0YXRpc3Rpa1RhYigpKSByZXR1cm4g
ZmFsc2U7CiAgICB2YXIgcyA9IFouYWRtaW4uYWRtaW5TaWNodGJhcmtlaXQgfHwge307CiAgICBy
ZXR1cm4gc1trZXldICE9PSBmYWxzZTsKfQoKZXhwb3J0IGZ1bmN0aW9uIG5hdlNpY2h0YmFya2Vp
dEFud2VuZGVuKCkgewogICAgdmFyIG5hdiA9IHsKICAgICAgICAnbmF2LWFkbWluJzogICAgICBk
YXJmQWRtaW5UYWIoKSwKICAgICAgICAnbmF2LXN0YXRpc3Rpayc6ICBkYXJmU3RhdGlzdGlrVGFi
KCksCiAgICAgICAgJ25hdi1sb2didWNoJzogICAgZGFyZkxvZ2J1Y2hUYWIoKQogICAgfTsKICAg
IE9iamVjdC5rZXlzKG5hdikuZm9yRWFjaChmdW5jdGlvbihpZCkgewogICAgICAgIHZhciBlbCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKICAgICAgICBpZiAoZWwpIGVsLnN0eWxlLmRp
c3BsYXkgPSBuYXZbaWRdID8gJycgOiAnbm9uZSc7CiAgICB9KTsKfQo=
### FILE: js/core/state.js | 1082
Ly8gPT09IGNvcmUvc3RhdGUuanMgPT09Ci8vIEdsb2JhbGVyIEFud2VuZHVuZ3MtWnVzdGFuZCBa
LgovLwovLyBTaWVoZSBkb2NzL01PRFVMX0tBUlRFLm1kIOKAlCBTY2hyZWliLVp1Z3JpZmYgcHJv
IEZlbGQgaXN0IGRvcnQgZG9rdW1lbnRpZXJ0Ci8vIChMZXNlLVp1Z3JpZmYgw7xiZXJhbGwsIFNj
aHJlaWItWnVncmlmZiBsb2thbGlzaWVydCkuCgpleHBvcnQgdmFyIFogPSB7CiAgICBhZG1pbjog
bnVsbCwKICAgIHBsYW51bmc6IG51bGwsCiAgICBwZXJzb25lbjogW10sCiAgICB0YWdlOiBbXSwK
ICAgIHRhZ0luZm9zOiB7fSwKICAgIGNvZGVNYXA6IHt9LAogICAgYmVudXR6ZXI6ICcnLAogICAg
aXN0QWRtaW46IGZhbHNlLAogICAgaXN0U3VwZXJVc2VyOiBmYWxzZSwKICAgIGlzdEZhY2hhdWZz
aWNodDogZmFsc2UsCiAgICByb2xsZTogJ3VzZXInLAogICAgZGFyZlVlYmVyc2NocmVpYmVuOiBm
YWxzZSwKICAgIGhldXRlU3RyOiAnJywKICAgIHN0YXRpc3RpazogbnVsbCwKICAgIHVtZ2VzZXR6
dGVFaW5ibGVuZGVuOiBmYWxzZSwKICAgIC8vIFBoYXNlIEE6IFBlc3NpbWlzdGljIENlbGwtTG9j
awogICAgemVsbExvY2s6IHsgdG9rZW46IG51bGwsIGRhdHVtOiBudWxsLCBwZXJzb25JZDogbnVs
bCwgaGJUaW1lcjogbnVsbCB9LAogICAgZnJlbWRlTG9ja3M6IHt9LCAgIC8vICdkYXR1bXxwZXJz
b25JZCcgLT4geyB1c2VybmFtZSwgcm9sbGUsIGxvY2tlZEF0LCBsYXN0QmVhdCB9CiAgICAvLyBQ
aGFzZSBIOiBSYW5nZS1TZWxla3Rpb24gKyBDb3B5LUJ1ZmZlciArIEtvbnRleHRtZW7DvAogICAg
c2VsZWt0aW9uOiB7IGFua2VyRGF0dW06IG51bGwsIGFua2VyUGVyc29uSWQ6IG51bGwsIHJhbmdl
OiBbXSB9LAogICAgY29weUJ1ZmZlcjogeyB3ZXJ0OiAnJywgcXVlbGxlOiBudWxsIH0sCiAgICBr
b250ZXh0bWVudU9mZmVuOiBmYWxzZSwKICAgIC8vIFBoYXNlIEE0OiBMaXZlLVN5bmMKICAgIGxh
c3RTeW5jVHM6ICcnLAogICAgc3luY1dvcmtlcjogbnVsbCwKICAgIC8vIFBoYXNlIEc6IFRhbXBl
ci1TY2h1dHogKEJhbm5lci1TdGF0ZSkKICAgIGludGVncml0YWV0V2FybnVuZzogbnVsbAp9Owo=
### FILE: js/core/util.js | 3226
Ly8gPT09IGNvcmUvdXRpbC5qcyA9PT0KLy8gRE9NL0RhdHVtL1BlcnNvbi1IZWxwZXIuIEltcG9y
dGllcnQgbnVyIGNvcmUvc3RhdGUuanMgd28gbsO2dGlnLgoKaW1wb3J0IHsgWiB9IGZyb20gJy4v
c3RhdGUuanMnOwoKLy8gPT09PT0gRE9NLUVzY2FwaW5nID09PT09CgpleHBvcnQgZnVuY3Rpb24g
ZXNjYXBlSFRNTChzdHIpIHsKICAgIGlmICghc3RyKSByZXR1cm4gJyc7CiAgICB2YXIgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBkaXYudGV4dENvbnRlbnQgPSBzdHI7
CiAgICByZXR1cm4gZGl2LmlubmVySFRNTDsKfQoKZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUF0dHIo
c3RyKSB7CiAgICBpZiAoc3RyID09PSBudWxsIHx8IHN0ciA9PT0gdW5kZWZpbmVkIHx8IHN0ciA9
PT0gJycpIHJldHVybiAnJzsKICAgIHJldHVybiBTdHJpbmcoc3RyKS5yZXBsYWNlKC8mL2csICcm
YW1wOycpLnJlcGxhY2UoLyIvZywgJyZxdW90OycpLnJlcGxhY2UoLycvZywgJyYjMzk7JykucmVw
bGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKTsKfQoKLy8gPT09PT0gRGF0
dW0tSGVscGVyID09PT09CgpleHBvcnQgZnVuY3Rpb24gZGF0dW1TdHIoZCkgewogICAgdmFyIG0g
PSBkLmdldE1vbnRoKCkgKyAxLCB0ID0gZC5nZXREYXRlKCk7CiAgICByZXR1cm4gZC5nZXRGdWxs
WWVhcigpICsgJy0nICsgKG0gPCAxMCA/ICcwJyA6ICcnKSArIG0gKyAnLScgKyAodCA8IDEwID8g
JzAnIDogJycpICsgdDsKfQoKZXhwb3J0IGZ1bmN0aW9uIGRhdHVtRm9ybWF0REUoc3RyKSB7CiAg
ICBpZiAoIXN0cikgcmV0dXJuICcnOwogICAgdmFyIHRlaWxlID0gc3RyLnNwbGl0KCctJyk7CiAg
ICByZXR1cm4gdGVpbGVbMl0gKyAnLicgKyB0ZWlsZVsxXSArICcuJyArIHRlaWxlWzBdOwp9Cgpl
eHBvcnQgZnVuY3Rpb24gZGF0dW1LdXJ6REUoZCkgewogICAgdmFyIHQgPSBkLmdldERhdGUoKSwg
bSA9IGQuZ2V0TW9udGgoKSArIDE7CiAgICByZXR1cm4gKHQgPCAxMCA/ICcwJyA6ICcnKSArIHQg
KyAnLicgKyAobSA8IDEwID8gJzAnIDogJycpICsgbSArICcuJzsKfQoKZXhwb3J0IGZ1bmN0aW9u
IHdvY2hlbnRhZ0t1cnooZCkgewogICAgdmFyIG4gPSBbJ1NvJywnTW8nLCdEaScsJ01pJywnRG8n
LCdGcicsJ1NhJ107CiAgICByZXR1cm4gbltkLmdldERheSgpXTsKfQoKZXhwb3J0IGZ1bmN0aW9u
IG1vbmF0c05hbWUobSkgewogICAgcmV0dXJuIFsnSmFudWFyJywnRmVicnVhcicsJ03DpHJ6Jywn
QXByaWwnLCdNYWknLCdKdW5pJywnSnVsaScsJ0F1Z3VzdCcsJ1NlcHRlbWJlcicsJ09rdG9iZXIn
LCdOb3ZlbWJlcicsJ0RlemVtYmVyJ11bbV07Cn0KCmV4cG9ydCBmdW5jdGlvbiBpc3RXb2NoZW5l
bmRlKGQpIHsgdmFyIHQgPSBkLmdldERheSgpOyByZXR1cm4gdCA9PT0gMCB8fCB0ID09PSA2OyB9
CgpleHBvcnQgZnVuY3Rpb24gaXNvS2FsZW5kZXJ3b2NoZShkKSB7CiAgICB2YXIgdCA9IG5ldyBE
YXRlKGQuZ2V0RnVsbFllYXIoKSwgZC5nZXRNb250aCgpLCBkLmdldERhdGUoKSk7CiAgICAvLyBE
b25uZXJzdGFnIGRpZXNlciBJU08tV29jaGUKICAgIHQuc2V0RGF0ZSh0LmdldERhdGUoKSArIDQg
LSAodC5nZXREYXkoKSB8fCA3KSk7CiAgICB2YXIgamFoclN0YXJ0ID0gbmV3IERhdGUodC5nZXRG
dWxsWWVhcigpLCAwLCAxKTsKICAgIHZhciBrdyA9IE1hdGguY2VpbCgoKCh0IC0gamFoclN0YXJ0
KSAvIDg2NDAwMDAwKSArIDEpIC8gNyk7CiAgICByZXR1cm4geyBqYWhyOiB0LmdldEZ1bGxZZWFy
KCksIGt3OiBrdyB9Owp9CgpleHBvcnQgZnVuY3Rpb24gamFocmVzTWVuZ2VBdXNFaW50cmFlZ2Vu
KGxpc3RlLCBkYXRlRmllbGQpIHsKICAgIHZhciBqYWhyZSA9IHt9OwogICAgKGxpc3RlIHx8IFtd
KS5mb3JFYWNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgZCA9IGVbZGF0ZUZpZWxkXSB8fCAn
JzsKICAgICAgICBpZiAoZC5sZW5ndGggPj0gNCkgamFocmVbZC5zdWJzdHJpbmcoMCwgNCldID0g
dHJ1ZTsKICAgIH0pOwogICAgcmV0dXJuIE9iamVjdC5rZXlzKGphaHJlKS5zb3J0KCk7Cn0KCi8v
ID09PT09IFBlcnNvbi1IZWxwZXIgPT09PT0KLy8gRGF0ZW5tb2RlbGwgZsO8aHJ0IGBuYWNobmFt
ZWAgYWxzIFNvdXJjZS1vZi1UcnV0aCwgYWx0ZSBEYXRlbnPDpHR6ZSBoYWJlbiBldnRsLgovLyBu
b2NoIGBuYW1lYCDigJQgRmFsbGJhY2sgc2ljaGVydCDDnGJlcmdhbmdzcGhhc2UuIEF1ZGl0LUl0
ZXItQiAoMjAyNi0wNS0wNCkgaGF0Ci8vIGBuYW1lYCBhdXMgZGVuIEpTT04tRGF0ZW4gZW50ZmVy
bnQsIGRlciBGYWxsYmFjayBibGVpYnQgYWJlciBmw7xyIGdnZi4KLy8gaW1wb3J0aWVydGUgRXhj
ZWwtU25hcHNob3RzIHN0ZWhlbi4KCmV4cG9ydCBmdW5jdGlvbiBwZXJzb25OYW1lKHApIHsKICAg
IGlmICghcCkgcmV0dXJuICcnOwogICAgcmV0dXJuIHAubmFjaG5hbWUgfHwgcC5uYW1lIHx8ICcn
Owp9CgpleHBvcnQgZnVuY3Rpb24gcGVyc29uVm9sbE5hbWUocCkgewogICAgaWYgKCFwKSByZXR1
cm4gJyc7CiAgICB2YXIgbmFjaCA9IHBlcnNvbk5hbWUocCk7CiAgICB2YXIgdm9yID0gcC52b3Ju
YW1lIHx8ICcnOwogICAgcmV0dXJuIHZvciA/ICh2b3IgKyAnICcgKyBuYWNoKSA6IG5hY2g7Cn0K
CmV4cG9ydCBmdW5jdGlvbiBwZXJzb25GdWVyS2VubnVuZyhiZW51dHplcikgewogICAgLy8gYmVu
dXR6ZXIga29tbXQgdHlwaXNjaGVyd2Vpc2UgYWxzICJET01BSU5cXG53a2VubnVuZyIgcmVpbi4K
ICAgIGlmICghYmVudXR6ZXIpIHJldHVybiBudWxsOwogICAgdmFyIHJvaCA9IFN0cmluZyhiZW51
dHplcik7CiAgICB2YXIgdGVpbCA9IHJvaC5pbmRleE9mKCdcXCcpID49IDAgPyByb2guc3Vic3Ry
aW5nKHJvaC5sYXN0SW5kZXhPZignXFwnKSArIDEpIDogcm9oOwogICAgdmFyIHppZWwgPSB0ZWls
LnRvTG93ZXJDYXNlKCk7CiAgICByZXR1cm4gKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZmlu
ZChmdW5jdGlvbihwKSB7CiAgICAgICAgcmV0dXJuIHAubndLZW5udW5nICYmIFN0cmluZyhwLm53
S2VubnVuZykudG9Mb3dlckNhc2UoKSA9PT0gemllbDsKICAgIH0pIHx8IG51bGw7Cn0KCmV4cG9y
dCBmdW5jdGlvbiBkaWVuc3RncmFkUmFuZyhncmFkKSB7CiAgICB2YXIgbGlzdGUgPSAoWi5hZG1p
bi5kaWVuc3RncmFkZSB8fCBbXSk7CiAgICB2YXIgaWR4ID0gbGlzdGUuaW5kZXhPZihncmFkKTsK
ICAgIHJldHVybiBpZHggPCAwID8gOTk5IDogaWR4Owp9Cg==
### FILE: js/grid/editor.js | 23790
Ly8gPT09IGdyaWQvZWRpdG9yLmpzID09PQovLyBaZWxsLUVkaXRvciBtaXQgTG9jay1BY3F1aXJl
LCBTY2hpY2h0LUF1c3dhaGwsIFJ1aGV6ZWl0LUd1YXJkLCBQZmxpY2h0LU1hcmtlciwKLy8gSGlz
dG9yaWVuLUFuemVpZ2UsIEJ1bGstUGZhZCAoUmFuZ2UtU2VsZWt0aW9uICsgQXV0b0ZpbGwpLgov
LyBlZGl0b3JaZWxsZVNwZWljaGVybiArIGVkaXRvckJ1bGtQZmFkQXVzZ2VmdWVocnQgc2luZCBk
aWUgemVudHJhbGVuIFNjaHJlaWItCi8vIHBmYWRlIOKAlCBzaWUgYmVoYW5kZWxuIEtvbmZsaWt0
ZSAoSFRUUCA0MDkgLyA0MjMgLyA0MDMpIHVuZCByZS1zeW5jZW4gWi5wbGFudW5nLgovLwovLyBD
cm9zcy1Nb2R1bGUtSG9va3MgKFBoYXNlIDVjLVdvcmthcm91bmQpOgovLyAgIFNlbGVrdGlvbiAv
IEJ1bGsgLyBBdXRvRmlsbCAtPiBncmlkL2ludGVyYWN0aW9uLmpzIChQaGFzZSA1ZCkKLy8gICBL
b21tZW50YXJlIC8gUGZsaWNodCAgICAgICAgLT4gZ3JpZC9pbnRlcmFjdGlvbi5qcyAoUGhhc2Ug
NWQpCi8vICAgU29uZGVydGVybWluLVdhcm51bmdlbiAgICAgIC0+IGFkbWluL2xpc3Rlbi5qcyAo
UGhhc2UgNikKCmltcG9ydCB7IFogfSBmcm9tICcuLi9jb3JlL3N0YXRlLmpzJzsKaW1wb3J0IHsK
ICAgIGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIsIGRhdHVtU3RyLCBkYXR1bUZvcm1hdERFLAogICAg
cGVyc29uTmFtZSwgcGVyc29uVm9sbE5hbWUKfSBmcm9tICcuLi9jb3JlL3V0aWwuanMnOwppbXBv
cnQgeyBhcGksIGFwaVNhZmUgfSBmcm9tICcuLi9jb3JlL2FwaS5qcyc7CmltcG9ydCB7IHRvYXN0
IH0gZnJvbSAnLi4vdWkvdG9hc3QuanMnOwppbXBvcnQgewogICAgbG9ja1plbGxlQWNxdWlyZSwg
bG9ja1plbGxlRm9yY2UsIGxvY2taZWxsZVJlbGVhc2UsCiAgICBsb2NrSGVhcnRiZWF0U3RhcnRl
biwgbG9ja0hlYXJ0YmVhdFN0b3BwZW4sIGxvY2tLZXkKfSBmcm9tICcuLi9zeW5jL2NlbGwtbG9j
ay5qcyc7CmltcG9ydCB7CiAgICBkYXJmRGF0dW1FZGl0aWVyZW4sIGlzdEluVmVyYmluZGxpY2hr
ZWl0LCB2ZXJiaW5kbGljaGtlaXRzU3RhcnREYXR1bQp9IGZyb20gJy4uL2NvcmUvcGVybWlzc2lv
bnMuanMnOwppbXBvcnQgeyB6ZWxsZVZpc3VlbGxBa3R1YWxpc2llcmVuLCBzdGFlcmtlQmVyZWNo
bmVuIH0gZnJvbSAnLi9yZW5kZXIuanMnOwppbXBvcnQgeyB0YWdlc2RhdGVuRnVlciB9IGZyb20g
Jy4vdGFnZXNkYXRlbi5qcyc7CgpleHBvcnQgdmFyIGVkaXRvckhvb2tzID0gewogICAgYnVsa0F1
c3dlbmRlbjogbnVsbCwgICAgICAgICAgIC8vIGdyaWQvaW50ZXJhY3Rpb24uanMKICAgIHNlbGVr
dGlvbkFua2VyV2VydDogbnVsbCwgICAgICAvLyBncmlkL2ludGVyYWN0aW9uLmpzCiAgICBzZWxl
a3Rpb25BbndlbmRlbjogbnVsbCwgICAgICAgLy8gZ3JpZC9pbnRlcmFjdGlvbi5qcwogICAgc2Vs
ZWt0aW9uTGVlcmVuOiBudWxsLCAgICAgICAgIC8vIGdyaWQvaW50ZXJhY3Rpb24uanMKICAgIHBm
bGljaHRMYWRlbjogbnVsbCwgICAgICAgICAgICAvLyBncmlkL2ludGVyYWN0aW9uLmpzCiAgICBw
ZmxpY2h0TG9rYWxTZXR6ZW46IG51bGwsICAgICAgLy8gZ3JpZC9pbnRlcmFjdGlvbi5qcwogICAg
a29tbWVudGFyTGFkZW46IG51bGwsICAgICAgICAgIC8vIGdyaWQvaW50ZXJhY3Rpb24uanMKICAg
IGtvbW1lbnRhclNwZWljaGVybjogbnVsbCwgICAgICAvLyBncmlkL2ludGVyYWN0aW9uLmpzCiAg
ICBrb21tZW50YXJNZXRhTGFkZW46IG51bGwsICAgICAgLy8gZ3JpZC9pbnRlcmFjdGlvbi5qcwog
ICAgc29uZGVyRnVlckRhdHVtOiBudWxsLCAgICAgICAgIC8vIGFkbWluL2xpc3Rlbi5qcwogICAg
c29uZGVyV2Fybk1vZGFsWmVpZ2VuOiBudWxsLCAgIC8vIGFkbWluL2xpc3Rlbi5qcwogICAgYXV0
b2ZpbGxIYW5kbGVFbnRmZXJuZW46IG51bGwsIC8vIGdyaWQvaW50ZXJhY3Rpb24uanMKICAgIGZl
YXR1cmVJc3RBa3RpdjogbnVsbCAgICAgICAgICAvLyBhZG1pbi9hZG1pbi5qcyAoUGhhc2UgNikK
fTsKCgovLyBFZGl0b3Igw7ZmZm5lbiB1bmQgaW0gRHJvcGRvd24gZGVuIGVyc3RlbiBTY2hpY2h0
Y29kZSB2b3JhdXN3w6RobGVuLAovLyBkZXIgY2FzZS1pbnNlbnNpdGl2IG1pdCBkZW0gZ2VnZWJl
bmVuIFByZWZpeCBhbmbDpG5ndC4gUG9sbGVkIGRhcwovLyBFZGl0b3ItRWxlbWVudCBrdXJ6LCB3
ZWlsIGVkaXRvck9lZmZuZW4gYXN5bmMgKExvY2stQWNxdWlyZSkgaXN0LgpleHBvcnQgZnVuY3Rp
b24gZWRpdG9yT2VmZm5lbk1pdFZvcmF1c3dhaGwoemVsbGUsIHByZWZpeCkgewogICAgZWRpdG9y
T2VmZm5lbih6ZWxsZSk7CiAgICB2YXIgdmVyc3VjaGUgPSAwOwogICAgdmFyIHRpbWVyID0gc2V0
SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgdmVyc3VjaGUrKzsKICAgICAgICB2YXIgc2Vs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1hdXN3YWhsJyk7CiAgICAgICAgdmFy
IGVsICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd6ZWxsLWVkaXRvcicpOwogICAgICAgIHZh
ciBzaWNodGJhciA9IGVsICYmICFlbC5jbGFzc0xpc3QuY29udGFpbnMoJ3ZlcnN0ZWNrdCcpOwog
ICAgICAgIGlmIChzaWNodGJhciAmJiBzZWwpIHsKICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0
aW1lcik7CiAgICAgICAgICAgIHZhciBwcmUgPSAocHJlZml4IHx8ICcnKS50b0xvd2VyQ2FzZSgp
OwogICAgICAgICAgICB2YXIgbWF0Y2ggPSAnJzsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBzZWwub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgdmFyIHYgPSAo
c2VsLm9wdGlvbnNbaV0udmFsdWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgICAg
ICBpZiAodiAmJiB2LmluZGV4T2YocHJlKSA9PT0gMCkgeyBtYXRjaCA9IHNlbC5vcHRpb25zW2ld
LnZhbHVlOyBicmVhazsgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChtYXRjaCkgc2Vs
LnZhbHVlID0gbWF0Y2g7CiAgICAgICAgICAgIHNlbC5mb2N1cygpOwogICAgICAgIH0KICAgICAg
ICBpZiAodmVyc3VjaGUgPiAzMCkgY2xlYXJJbnRlcnZhbCh0aW1lcik7ICAgLy8gfjNzIG1heAog
ICAgfSwgMTAwKTsKfQoKLy8gPT09PT0gUGhhc2UgSDQ6IEtvbnRleHRtZW7DvCA9PT09PQoKZXhw
b3J0IGZ1bmN0aW9uIGtvbnRleHRtZW51U2NobGllc3NlbigpIHsKICAgIHZhciBtID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2tvbnRleHRtZW51Jyk7CiAgICBpZiAobSkgeyBtLmNsYXNzTGlz
dC5hZGQoJ3ZlcnN0ZWNrdCcpOyBtLmlubmVySFRNTCA9ICcnOyB9CiAgICBaLmtvbnRleHRtZW51
T2ZmZW4gPSBmYWxzZTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGtvbnRleHRtZW51T2VmZm5lbih6ZWxs
ZSwgeCwgeSkgewogICAgdmFyIG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna29udGV4dG1l
bnUnKTsKICAgIGlmICghbSB8fCAhemVsbGUpIHJldHVybjsKICAgIHZhciBkID0gemVsbGUuZ2V0
QXR0cmlidXRlKCdkYXRhLWRhdHVtJyk7CiAgICB2YXIgcCA9IHplbGxlLmdldEF0dHJpYnV0ZSgn
ZGF0YS1wZXJzb24nKTsKICAgIGlmICghZCB8fCAhcCkgcmV0dXJuOwogICAgdmFyIHdlcnQgPSAo
KFoucGxhbnVuZy5laW50cmFlZ2UgfHwge30pW2RdIHx8IHt9KVtwXSB8fCAnJzsKICAgIHZhciBo
YXRCdWZmZXIgPSAhIVouY29weUJ1ZmZlci5xdWVsbGU7CiAgICB2YXIgaGF0UmFuZ2UgID0gWi5z
ZWxla3Rpb24ucmFuZ2UgJiYgWi5zZWxla3Rpb24ucmFuZ2UubGVuZ3RoID4gMDsKICAgIHZhciBm
cmVtZCAgICAgPSBaLmZyZW1kZUxvY2tzW2xvY2tLZXkoZCwgcCldOwogICAgdmFyIHBmbGljaHQg
ICA9IGVkaXRvckhvb2tzLnBmbGljaHRMYWRlbihkLCBwKTsKICAgIHZhciBkYXJmRWRpdCAgPSAo
IWZyZW1kIHx8IFouZGFyZlVlYmVyc2NocmVpYmVuKSAmJiAoIXBmbGljaHQgfHwgWi5kYXJmVWVi
ZXJzY2hyZWliZW4pOwoKICAgIHZhciByYW5nZUFuemFobCA9IGhhdFJhbmdlID8gWi5zZWxla3Rp
b24ucmFuZ2UubGVuZ3RoIDogMTsKICAgIHZhciBwYXN0ZUxhYmVsICA9ICdJbiAnICsgKGhhdFJh
bmdlID8gJ0JlcmVpY2ggKCcgKyByYW5nZUFuemFobCArICcpJyA6ICdaZWxsZScpICsgJyBlaW5m
w7xnZW4nOwogICAgdmFyIGxvZXNjaExhYmVsID0gaGF0UmFuZ2UgPyAnQmVyZWljaCAoJyArIHJh
bmdlQW56YWhsICsgJykgbGVlcmVuJyA6ICdXZXJ0IGzDtnNjaGVuJzsKCiAgICB2YXIgaHRtbCA9
ICcnOwogICAgaHRtbCArPSAnPGJ1dHRvbiBkYXRhLWFrdGlvbj0ia29waWVyZW4iJyArICh3ZXJ0
ID8gJycgOiAnIGRpc2FibGVkJykgKyAnPldlcnQg4oCeJyArIGVzY2FwZUhUTUwod2VydCB8fCAn
bGVlcicpICsgJyIga29waWVyZW48c3BhbiBjbGFzcz0ia3R4LXNob3J0Y3V0Ij5TdHJnK0M8L3Nw
YW4+PC9idXR0b24+JzsKICAgIGh0bWwgKz0gJzxidXR0b24gZGF0YS1ha3Rpb249ImVpbmZ1ZWdl
biInICsgKChoYXRCdWZmZXIgJiYgZGFyZkVkaXQpID8gJycgOiAnIGRpc2FibGVkJykgKyAnPicg
KyBwYXN0ZUxhYmVsICsgKGhhdEJ1ZmZlciA/ICcgKOKAnicgKyBlc2NhcGVIVE1MKFouY29weUJ1
ZmZlci53ZXJ0IHx8ICdsZWVyJykgKyAnIiknIDogJycpICsgJzxzcGFuIGNsYXNzPSJrdHgtc2hv
cnRjdXQiPlN0cmcrVjwvc3Bhbj48L2J1dHRvbj4nOwogICAgaHRtbCArPSAnPGJ1dHRvbiBkYXRh
LWFrdGlvbj0ibG9lc2NoZW4iJyArIChkYXJmRWRpdCA/ICcnIDogJyBkaXNhYmxlZCcpICsgJz4n
ICsgbG9lc2NoTGFiZWwgKyAnPHNwYW4gY2xhc3M9Imt0eC1zaG9ydGN1dCI+RW50Zjwvc3Bhbj48
L2J1dHRvbj4nOwogICAgaHRtbCArPSAnPGRpdiBjbGFzcz0ia3R4LXRyZW5uZXIiPjwvZGl2Pic7
CiAgICBodG1sICs9ICc8YnV0dG9uIGRhdGEtYWt0aW9uPSJiZXJlaWNoLWZ1ZWxsZW4tbWl0Iicg
KyAoKGhhdFJhbmdlICYmIGRhcmZFZGl0KSA/ICcnIDogJyBkaXNhYmxlZCcpICsgJz5CZXJlaWNo
ICgnICsgcmFuZ2VBbnphaGwgKyAnKSBtaXQgV2VydCBkaWVzZXIgWmVsbGUgZsO8bGxlbjwvYnV0
dG9uPic7CiAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJrdHgtdHJlbm5lciI+PC9kaXY+JzsKICAg
IGh0bWwgKz0gJzxidXR0b24gZGF0YS1ha3Rpb249ImVkaXRvciInICsgKGRhcmZFZGl0ID8gJycg
OiAnIGRpc2FibGVkJykgKyAnPkVkaXRvciDDtmZmbmVu4oCmPC9idXR0b24+JzsKICAgIG0uaW5u
ZXJIVE1MID0gaHRtbDsKCiAgICAvLyBQb3NpdGlvbiBrbGVtbWVuLCBkYW1pdCBNZW7DvCBuaWNo
dCBhdXMgZGVtIFZpZXdwb3J0IHJ1dHNjaHQKICAgIG0uY2xhc3NMaXN0LnJlbW92ZSgndmVyc3Rl
Y2t0Jyk7CiAgICB2YXIgcmVjdCA9IG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICB2YXIg
bWF4WCA9IHdpbmRvdy5pbm5lcldpZHRoICAtIHJlY3Qud2lkdGggIC0gNDsKICAgIHZhciBtYXhZ
ID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC5oZWlnaHQgLSA0OwogICAgbS5zdHlsZS5sZWZ0
ID0gTWF0aC5taW4oeCwgbWF4WCkgKyAncHgnOwogICAgbS5zdHlsZS50b3AgID0gTWF0aC5taW4o
eSwgbWF4WSkgKyAncHgnOwogICAgWi5rb250ZXh0bWVudU9mZmVuID0gdHJ1ZTsKCiAgICAvLyBB
a3Rpb25lbiDigJQgQ2xpY2stSGFuZGxlciBlaW5tYWwgcHJvIE9wZW4KICAgIG0ub25jbGljayA9
IGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgdmFyIGJ0biA9IGV2LnRhcmdldC5jbG9zZXN0KCdidXR0
b25bZGF0YS1ha3Rpb25dJyk7CiAgICAgICAgaWYgKCFidG4gfHwgYnRuLmRpc2FibGVkKSByZXR1
cm47CiAgICAgICAgdmFyIGFrdCA9IGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtYWt0aW9uJyk7CiAg
ICAgICAga29udGV4dG1lbnVTY2hsaWVzc2VuKCk7CiAgICAgICAgaWYgKGFrdCA9PT0gJ2tvcGll
cmVuJykgewogICAgICAgICAgICBaLmNvcHlCdWZmZXIud2VydCA9IHdlcnQ7CiAgICAgICAgICAg
IFouY29weUJ1ZmZlci5xdWVsbGUgPSB7IGRhdHVtOiBkLCBwZXJzb25JZDogcCB9OwogICAgICAg
ICAgICB0b2FzdCgnV2VydCDigJ4nICsgKHdlcnQgfHwgJyhsZWVyKScpICsgJyIga29waWVydCcs
ICdpbmZvJywgeyBkYXVlcjogMjAwMCB9KTsKICAgICAgICB9IGVsc2UgaWYgKGFrdCA9PT0gJ2Vp
bmZ1ZWdlbicpIHsKICAgICAgICAgICAgdmFyIHppZWxlID0gaGF0UmFuZ2UgPyBaLnNlbGVrdGlv
bi5yYW5nZS5zbGljZSgpIDogW3sgZGF0dW06IGQsIHBlcnNvbklkOiBwIH1dOwogICAgICAgICAg
ICBlZGl0b3JIb29rcy5idWxrQXVzd2VuZGVuKHppZWxlLCBaLmNvcHlCdWZmZXIud2VydCB8fCAn
Jyk7CiAgICAgICAgfSBlbHNlIGlmIChha3QgPT09ICdsb2VzY2hlbicpIHsKICAgICAgICAgICAg
dmFyIHppZWxlMiA9IGhhdFJhbmdlID8gWi5zZWxla3Rpb24ucmFuZ2Uuc2xpY2UoKSA6IFt7IGRh
dHVtOiBkLCBwZXJzb25JZDogcCB9XTsKICAgICAgICAgICAgZWRpdG9ySG9va3MuYnVsa0F1c3dl
bmRlbih6aWVsZTIsICcnKTsKICAgICAgICB9IGVsc2UgaWYgKGFrdCA9PT0gJ2JlcmVpY2gtZnVl
bGxlbi1taXQnKSB7CiAgICAgICAgICAgIGVkaXRvckhvb2tzLmJ1bGtBdXN3ZW5kZW4oWi5zZWxl
a3Rpb24ucmFuZ2Uuc2xpY2UoKSwgd2VydCk7CiAgICAgICAgfSBlbHNlIGlmIChha3QgPT09ICdl
ZGl0b3InKSB7CiAgICAgICAgICAgIGVkaXRvck9lZmZuZW4oemVsbGUpOwogICAgICAgIH0KICAg
IH07Cn0KLy8gVEVSTUlOX0lORk8gLyB0ZXJtaW5JbmZvRmluZGVuIC8gZmVpZXJ0YWdNb2RhbFpl
aWdlbiAtPiBqcy9ncmlkL3JlbmRlci5qcwovLyBUYWctR2VuZXJhdGlvbiAvIFRhZ2VzaW5mb3Mg
LyBTdMOkcmtlIC8gU2NocmFmZnVyIC8gUmVuZGVyZXIgLyBIZWFkZXItS29tcGxleCAtPiBqcy9n
cmlkL3JlbmRlci5qcwoKLy8gPT09PT0gWmVsbC1FZGl0b3IgPT09PT0KCi8vIEVkaXRvci1TdGF0
ZSAoYWt0aXYgLyBha3R1ZWxsZXMgRGF0dW0gKyBQZXJzb25JZCkuIFdpcmQgYXVjaCB2b24KLy8g
Z3JpZC9pbnRlcmFjdGlvbi5qcyBnZWxlc2VuIChUYXN0ZW5oYW5kbGVyIHByw7xmZW4sIG9iIEVk
aXRvciBvZmZlbiBpc3QpLgpleHBvcnQgdmFyIGVkaXRvciA9IHsgYWt0aXY6IGZhbHNlLCBkYXR1
bTogJycsIHBlcnNvbklkOiAnJyB9OwoKZXhwb3J0IGZ1bmN0aW9uIGVkaXRvck9lZmZuZW4oemVs
bGUsIHNvbmRlck9rKSB7CiAgICB2YXIgZGF0dW0gPSB6ZWxsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEt
ZGF0dW0nKTsKICAgIHZhciBwaWQgPSB6ZWxsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGVyc29uJyk7
CiAgICBpZiAoIWRhdHVtIHx8ICFwaWQpIHJldHVybjsKCiAgICAvLyBVbWdlc2V0enRlIFBlcnNv
bmVuIHNpbmQgbnVyIHp1ciBSZWNoZXJjaGUgZWluZ2VibGVuZGV0IOKAlCBuaWNodCBlZGl0aWVy
ZW4KICAgIHZhciB6ZWxsZXBlcnNvbiA9IChaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQo
ZnVuY3Rpb24ocCkgeyByZXR1cm4gU3RyaW5nKHAuaWQpID09PSBTdHJpbmcocGlkKTsgfSk7CiAg
ICBpZiAoemVsbGVwZXJzb24gJiYgIXplbGxlcGVyc29uLmFrdGl2KSB7CiAgICAgICAgdG9hc3Qo
J1VtZ2VzZXR6dGUgUGVyc29uIOKAlCBudXIgenVyIFJlY2hlcmNoZSwgbmljaHQgZWRpdGllcmJh
cicsICd3YXJudW5nJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIFBmbGljaHQtVm9y
YWJwcnVlZnVuZzogbnVyIFNVL0ZhY2hhdWZzaWNodCBkYXJmIFBmbGljaHQtWmVsbGUgYW5mYXNz
ZW4KICAgIGlmIChlZGl0b3JIb29rcy5wZmxpY2h0TGFkZW4oZGF0dW0sIHBpZCkgJiYgIVouZGFy
ZlVlYmVyc2NocmVpYmVuKSB7CiAgICAgICAgdG9hc3QoJ1BmbGljaHQtU2V0enVuZyDigJQgbnVy
IEZhY2hhdWZzaWNodC9TdXBlclVzZXIgZGFyZiBkaWVzZSBaZWxsZSBhZW5kZXJuLicsICd3YXJu
dW5nJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIFZlcmJpbmRsaWNoa2VpdHNmZW5z
dGVyOiByZWd1bMOkcmUgVXNlciBkw7xyZmVuIG51ciBUYWdlIGFiIFN0aWNodGFnIGVkaXRpZXJl
bgogICAgaWYgKCFkYXJmRGF0dW1FZGl0aWVyZW4oZGF0dW0pKSB7CiAgICAgICAgdmFyIGdyZW56
ZSA9IHZlcmJpbmRsaWNoa2VpdHNTdGFydERhdHVtKCk7CiAgICAgICAgdG9hc3QoJ0Vyc3QgYWIg
JyArIGRhdHVtRm9ybWF0REUoZGF0dW1TdHIoZ3JlbnplKSkgKyAnIGVkaXRpZXJiYXIg4oCUIGJp
cyBkYWhpbiB2ZXJiaW5kbGljaC4nLCAnd2FybnVuZycpOwogICAgICAgIHJldHVybjsKICAgIH0K
CiAgICAvLyBTb25kZXJ0ZXJtaW4tV2FybmhpbndlaXMgdm9yIFBsYW51bmcKICAgIGlmICghc29u
ZGVyT2spIHsKICAgICAgICB2YXIgc29uZGVyID0gZWRpdG9ySG9va3Muc29uZGVyRnVlckRhdHVt
KGRhdHVtKTsKICAgICAgICBpZiAoc29uZGVyICYmIChzb25kZXIud2Fybk1vZHVzIHx8ICdpbW1l
cicpICE9PSAnYXVzJykgewogICAgICAgICAgICB2YXIgd20gPSBzb25kZXIud2Fybk1vZHVzIHx8
ICdpbW1lcic7CiAgICAgICAgICAgIHZhciBrZXkgPSAnc29uZGVyX3NlZW5fJyArIChzb25kZXIu
aWQgfHwgc29uZGVyLmRhdHVtKSArICdfJyArIChaLmJlbnV0emVyIHx8ICcnKTsKICAgICAgICAg
ICAgdmFyIGVpbm1hbEdlc2VoZW4gPSB3bSA9PT0gJ2Vpbm1hbGlnJyAmJiBsb2NhbFN0b3JhZ2Uu
Z2V0SXRlbShrZXkpOwogICAgICAgICAgICBpZiAoIWVpbm1hbEdlc2VoZW4pIHsKICAgICAgICAg
ICAgICAgIGVkaXRvckhvb2tzLnNvbmRlcldhcm5Nb2RhbFplaWdlbihzb25kZXIsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgICAgIGlmICh3bSA9PT0gJ2Vpbm1hbGlnJykgbG9jYWxTdG9y
YWdlLnNldEl0ZW0oa2V5LCAnMScpOwogICAgICAgICAgICAgICAgICAgIGVkaXRvck9lZmZuZW4o
emVsbGUsIHRydWUpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8gV2FybnVuZyB3ZW5uIG1hbiBk
aWUgU2NoaWNodCBlaW5lciBhbmRlcmVuIFBlcnNvbiDDpG5kZXJ0CiAgICBpZiAoZWRpdG9ySG9v
a3MuZmVhdHVyZUlzdEFrdGl2ICYmIGVkaXRvckhvb2tzLmZlYXR1cmVJc3RBa3RpdignZnJlbWRB
ZW5kZXJ1bmdXYXJudW5nJykgJiYgWi5tZWluZVBlcnNvbklkICYmIHBpZCAhPT0gWi5tZWluZVBl
cnNvbklkKSB7CiAgICAgICAgdmFyIHBlcnNvbiA9IFoucGVyc29uZW4uZmluZChmdW5jdGlvbihw
KSB7IHJldHVybiBTdHJpbmcocC5pZCkgPT09IHBpZDsgfSk7CiAgICAgICAgdmFyIGFuemVpZ2VO
YW1lID0gcGVyc29uID8gcGVyc29uVm9sbE5hbWUocGVyc29uKSA6ICdQZXJzb24gJyArIHBpZDsK
ICAgICAgICBpZiAoIWNvbmZpcm0oJ0R1IMOkbmRlcnN0IGdlcmFkZSBkaWUgU2NoaWNodCB2b24g
JyArIGFuemVpZ2VOYW1lICsgJy5cbkJpc3QgZHUgZGlyIHNpY2hlcj8nKSkgcmV0dXJuOwogICAg
fQoKICAgIC8vIFBoYXNlIEE6IFBlc3NpbWlzdGljIENlbGwtTG9jayB2b3IgZGVtIE9lZmZuZW4g
ZXJ3ZXJiZW4KICAgIGVkaXRvckxvY2tVbmRPZWZmbmVuKHplbGxlLCBkYXR1bSwgcGlkLCBmYWxz
ZSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JMb2NrVW5kT2VmZm5lbih6ZWxsZSwgZGF0dW0s
IHBpZCwgZm9yY2UpIHsKICAgIHZhciBsb2NrUHJvbSA9IGZvcmNlID8gbG9ja1plbGxlRm9yY2Uo
ZGF0dW0sIHBpZCkgOiBsb2NrWmVsbGVBY3F1aXJlKGRhdHVtLCBwaWQpOwogICAgbG9ja1Byb20u
dGhlbihmdW5jdGlvbihyZXMpIHsKICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDIzKSB7CiAg
ICAgICAgICAgIHZhciBiID0gcmVzLmJvZHkgfHwge307CiAgICAgICAgICAgIGlmIChaLmRhcmZV
ZWJlcnNjaHJlaWJlbiAmJiBiLmthbm5Gb3JjZSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAg
IHZhciBtZWxkdW5nID0gJ0RpZXNlIFplbGxlIHdpcmQgZ2VyYWRlIHZvbiAnICsgKGIuc3BlcnJl
ciB8fCAnamVtYW5kJykgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGIucm9sbGUg
JiYgYi5yb2xsZSAhPT0gJ3VzZXInKSA/ICcgWycgKyBiLnJvbGxlICsgJ10nIDogJycpICsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBiZWFyYmVpdGV0LlxuXG5BbHMgJyArIFoucm9s
bGUgKyAnIGthbm5zdCBkdSBkYXMgRWRpdCB1ZWJlcm5laG1lbi5cbkRlbiBhbmRlcmVuIFVzZXIg
dHJvdHpkZW0gdmVyZHJhZW5nZW4/JzsKICAgICAgICAgICAgICAgIGlmIChjb25maXJtKG1lbGR1
bmcpKSB7CiAgICAgICAgICAgICAgICAgICAgZWRpdG9yTG9ja1VuZE9lZmZuZW4oemVsbGUsIGRh
dHVtLCBwaWQsIHRydWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgICAgdG9hc3QoJ1dpcmQgYmVhcmJlaXRldCB2b24gJyArIChiLnNwZXJyZXIg
fHwgJ2plbWFuZCcpICsgJy4gQml0dGUgd2FydGVuLicsICd3YXJudW5nJyk7CiAgICAgICAgICAg
IH0KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAocmVzLnN0YXR1cyA9
PT0gNDAzKSB7CiAgICAgICAgICAgIHRvYXN0KCdGb3JjZS1Mb2NrIGVyZm9yZGVydCBGYWNoYXVm
c2ljaHQvU3VwZXJVc2VyLicsICdmZWhsZXInKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
IH0KICAgICAgICBpZiAocmVzLnN0YXR1cyA+PSA0MDAgfHwgIXJlcy5ib2R5IHx8ICFyZXMuYm9k
eS50b2tlbikgewogICAgICAgICAgICB0b2FzdCgnTG9jayBrb25udGUgbmljaHQgZXJsYW5ndCB3
ZXJkZW4gKFN0YXR1cyAnICsgcmVzLnN0YXR1cyArICcpLicsICdmZWhsZXInKTsKICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAvLyBMb2NrIGVyd29yYmVuIOKAlCBFZGl0b3Ig
YW56ZWlnZW4KICAgICAgICBaLnplbGxMb2NrLnRva2VuID0gcmVzLmJvZHkudG9rZW47CiAgICAg
ICAgWi56ZWxsTG9jay5kYXR1bSA9IGRhdHVtOwogICAgICAgIFouemVsbExvY2sucGVyc29uSWQg
PSBwaWQ7CiAgICAgICAgbG9ja0hlYXJ0YmVhdFN0YXJ0ZW4ocmVzLmJvZHkudG9rZW4pOwogICAg
ICAgIGVkaXRvckFuemVpZ2VuKHplbGxlLCBkYXR1bSwgcGlkKTsKICAgIH0pLmNhdGNoKGZ1bmN0
aW9uKGUpIHsKICAgICAgICB0b2FzdCgnTG9jay1GZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhs
ZXInKTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gZWRpdG9yQW56ZWlnZW4oemVsbGUsIGRh
dHVtLCBwaWQpIHsKICAgIGVkaXRvci5ha3RpdiA9IHRydWU7IGVkaXRvci5kYXR1bSA9IGRhdHVt
OyBlZGl0b3IucGVyc29uSWQgPSBwaWQ7CgogICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3plbGwtZWRpdG9yJyk7CiAgICB2YXIgc2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2VkaXRvci1hdXN3YWhsJyk7CiAgICB2YXIgYWt0V2VydCA9ICgoWi5wbGFudW5nLmVpbnRy
YWVnZSB8fCB7fSlbZGF0dW1dIHx8IHt9KVtwaWRdIHx8ICcnOwoKICAgIHZhciBodG1sID0gJzxv
cHRpb24gdmFsdWU9IiI+KGxlZXIpPC9vcHRpb24+JzsKICAgIChaLmFkbWluLnNjaGljaHRjb2Rl
cyB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihzYykgewogICAgICAgIC8vIEluYWt0aXZlIENvZGVz
IGF1c2JsZW5kZW4g4oCUIEF1c25haG1lOiBha3R1ZWxsZXIgV2VydCAoZGFtaXQgZGVyIGdlc2V0
enRlIFdlcnQgc2ljaHRiYXIgYmxlaWJ0IHVuZCDDpG5kZXJiYXIgaXN0KQogICAgICAgIGlmIChz
Yy5ha3RpdiA9PT0gZmFsc2UgJiYgYWt0V2VydCAhPT0gc2MuY29kZSkgcmV0dXJuOwogICAgICAg
IHZhciBzID0gYWt0V2VydCA9PT0gc2MuY29kZSA/ICcgc2VsZWN0ZWQnIDogJyc7CiAgICAgICAg
dmFyIGluYWt0aXZMYWJlbCA9IHNjLmFrdGl2ID09PSBmYWxzZSA/ICcgKGluYWt0aXYpJyA6ICcn
OwogICAgICAgIGh0bWwgKz0gJzxvcHRpb24gdmFsdWU9IicgKyBlc2NhcGVBdHRyKHNjLmNvZGUp
ICsgJyInICsgcyArICc+JyArIGVzY2FwZUhUTUwoc2Mua3VlcnplbCB8fCBzYy5jb2RlKSArICcg
4oCUICcgKyBlc2NhcGVIVE1MKHNjLmJlemVpY2hudW5nKSArIGVzY2FwZUhUTUwoaW5ha3Rpdkxh
YmVsKSArICc8L29wdGlvbj4nOwogICAgfSk7CiAgICBzZWwuaW5uZXJIVE1MID0gaHRtbDsKCiAg
ICB2YXIgYWt0S29tbWVudGFyID0gZWRpdG9ySG9va3Mua29tbWVudGFyTGFkZW4oZGF0dW0sIHBp
ZCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLWtvbW1lbnRhci1pbnB1dCcp
LnZhbHVlID0gYWt0S29tbWVudGFyOwoKICAgIHZhciBwZmxpY2h0Q2IgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZWRpdG9yLXBmbGljaHQtY2InKTsKICAgIGlmIChwZmxpY2h0Q2IpIHsKICAg
ICAgICBwZmxpY2h0Q2IuY2hlY2tlZCA9IGVkaXRvckhvb2tzLnBmbGljaHRMYWRlbihkYXR1bSwg
cGlkKTsKICAgICAgICAvLyBQaGFzZSBCOiBOdXIgU1UvRmFjaGF1ZnNpY2h0IGRhcmYgcGZsaWNo
dC1GbGFnIHNldHplbgogICAgICAgIHBmbGljaHRDYi5kaXNhYmxlZCA9ICFaLmRhcmZVZWJlcnNj
aHJlaWJlbjsKICAgICAgICB2YXIgcGZsaWNodExhYmVsID0gcGZsaWNodENiLnBhcmVudE5vZGU7
CiAgICAgICAgaWYgKHBmbGljaHRMYWJlbCkgewogICAgICAgICAgICBwZmxpY2h0TGFiZWwudGl0
bGUgPSBaLmRhcmZVZWJlcnNjaHJlaWJlbgogICAgICAgICAgICAgICAgPyAnUGZsaWNodC1TZXR6
dW5nIGdlZ2VuIFd1bnNjaCAobnVyIEZhY2hhdWZzaWNodC9TdXBlclVzZXIpJwogICAgICAgICAg
ICAgICAgOiAnUGZsaWNodC1TZXR6dW5nIOKAlCBudXIgRmFjaGF1ZnNpY2h0L1N1cGVyVXNlcic7
CiAgICAgICAgfQogICAgfQoKICAgIC8vIEQuMiDDhG5kZXJ1bmdzLUhpc3RvcmllIG51ciBmw7xy
IFNVICsgRmFjaGF1ZnNpY2h0CiAgICBoaXN0b3JpZUZ1ZXJaZWxsZVJlbmRlcm4oZGF0dW0sIHBp
ZCk7CgogICAgdmFyIHJlY3QgPSB6ZWxsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIGVs
LnN0eWxlLmxlZnQgPSBNYXRoLm1pbihyZWN0LmxlZnQsIHdpbmRvdy5pbm5lcldpZHRoIC0gMjIw
KSArICdweCc7CiAgICBlbC5zdHlsZS50b3AgPSBNYXRoLm1pbihyZWN0LmJvdHRvbSArIDIsIHdp
bmRvdy5pbm5lckhlaWdodCAtIDMwMCkgKyAncHgnOwogICAgZWwuY2xhc3NMaXN0LnJlbW92ZSgn
dmVyc3RlY2t0Jyk7CiAgICBzZWwuZm9jdXMoKTsKfQoKLy8gPT09PT0gRC4yIMOEbmRlcnVuZ3Mt
SGlzdG9yaWUgaW0gU2NoaWNodGF1c3dhaGwtTW9kYWwgPT09PT0KCi8vIHBlcnNvbkZ1ZXJLZW5u
dW5nOiBqZXR6dCBpbiBqcy9jb3JlL3V0aWwuanMKCmV4cG9ydCBmdW5jdGlvbiBoaXN0b3JpZVpl
aXRzdGVtcGVsRm9ybWF0KHRzKSB7CiAgICAvLyB0cyBoYXQgZGFzIEZvcm1hdCAiWVlZWS1NTS1E
RCBISDpNTTpTUyIg4oCUIHdpciB3b2xsZW4gIkRELk1NLllZOyBISDpNTSBVaHIiCiAgICBpZiAo
IXRzKSByZXR1cm4gJz8nOwogICAgdmFyIG0gPSBTdHJpbmcodHMpLm1hdGNoKC9eKFxkezR9KS0o
XGR7Mn0pLShcZHsyfSlbIFRdKFxkezJ9KTooXGR7Mn0pLyk7CiAgICBpZiAoIW0pIHJldHVybiB0
czsKICAgIHJldHVybiBtWzNdICsgJy4nICsgbVsyXSArICcuJyArIG1bMV0uc2xpY2UoMikgKyAn
OyAnICsgbVs0XSArICc6JyArIG1bNV0gKyAnIFVocic7Cn0KCmV4cG9ydCBmdW5jdGlvbiBoaXN0
b3JpZUZ1ZXJaZWxsZVJlbmRlcm4oZGF0dW0sIHBlcnNvbklkKSB7CiAgICB2YXIgYm94ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3plLWhpc3RvcmllJyk7CiAgICBpZiAoIWJveCkgcmV0dXJu
OwogICAgLy8gQXVkaXQtSUktMiBGNTogL2FwaS9sb2didWNoIGlzdCBBZG1pbi1vbmx5IChzaWVo
ZSBBdWRpdC1QaGFzZS0zKS4KICAgIC8vIEZhY2hhdWZzaWNodC1Vc2VyIHd1ZXJkZW4gNDAzICsg
IkZlaGxlciBiZWltIExhZGVuIGRlciBIaXN0b3JpZSIKICAgIC8vIGJla29tbWVuLiBEYWhlciBB
dXRoLUNoZWNrIGhpZXIgZ2xlaWNoIGF1ZiBBZG1pbi1PUi1TdXBlclVzZXIKICAgIC8vIGVpbnNj
aHJhZW5rZW4uCiAgICBpZiAoIShaLmlzdFN1cGVyVXNlciB8fCBaLmlzdEFkbWluKSkgewogICAg
ICAgIGJveC5oaWRkZW4gPSB0cnVlOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciBsaXN0
ZSA9IGJveC5xdWVyeVNlbGVjdG9yKCcuemUtaGlzdG9yaWUtbGlzdGUnKTsKICAgIGxpc3RlLmlu
bmVySFRNTCA9ICc8bGkgY2xhc3M9ImxlZXIiPkxhZGUgSGlzdG9yaWXigKY8L2xpPic7CiAgICBi
b3guaGlkZGVuID0gZmFsc2U7CgogICAgYXBpKCcvYXBpL2xvZ2J1Y2gnKS50aGVuKGZ1bmN0aW9u
KGRhdGVuKSB7CiAgICAgICAgWi5sb2didWNoID0gZGF0ZW4gfHwgW107CiAgICAgICAgdmFyIHJl
bCA9IFoubG9nYnVjaC5maWx0ZXIoZnVuY3Rpb24oZSkgewogICAgICAgICAgICByZXR1cm4gZS5h
a3Rpb24gPT09ICd6ZWxsZS5nZWFlbmRlcnQnCiAgICAgICAgICAgICAgICAmJiBlLmRhdHVtID09
PSBkYXR1bQogICAgICAgICAgICAgICAgJiYgU3RyaW5nKGUucGVyc29uSWQpID09PSBTdHJpbmco
cGVyc29uSWQpOwogICAgICAgIH0pLnNvcnQoZnVuY3Rpb24oYSwgYikgewogICAgICAgICAgICBy
ZXR1cm4gKGEuemVpdHN0ZW1wZWwgfHwgJycpIDwgKGIuemVpdHN0ZW1wZWwgfHwgJycpID8gMSA6
IC0xOwogICAgICAgIH0pOwogICAgICAgIGlmICghcmVsLmxlbmd0aCkgewogICAgICAgICAgICBs
aXN0ZS5pbm5lckhUTUwgPSAnPGxpIGNsYXNzPSJsZWVyIj7igJQga2VpbmUgRWludHLDpGdlIGbD
vHIgZGllc2UgWmVsbGUg4oCUPC9saT4nOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQog
ICAgICAgIGxpc3RlLmlubmVySFRNTCA9IHJlbC5tYXAoZnVuY3Rpb24oZSkgewogICAgICAgICAg
ICB2YXIgdHMgPSBoaXN0b3JpZVplaXRzdGVtcGVsRm9ybWF0KGUuemVpdHN0ZW1wZWwpOwogICAg
ICAgICAgICB2YXIgYWx0ID0gZXNjYXBlSFRNTChlLmFsdGVyV2VydCB8fCAn4oiFJyk7CiAgICAg
ICAgICAgIHZhciBuZXUgPSBlc2NhcGVIVE1MKGUubmV1ZXJXZXJ0IHx8ICfiiIUnKTsKICAgICAg
ICAgICAgdmFyIHAgPSBwZXJzb25GdWVyS2VubnVuZyhlLmJlbnV0emVyKTsKICAgICAgICAgICAg
dmFyIGFjdG9yOwogICAgICAgICAgICBpZiAocCkgewogICAgICAgICAgICAgICAgYWN0b3IgPSBl
c2NhcGVIVE1MKHBlcnNvbk5hbWUocCkpICsgKHAuZGllbnN0Z3JhZCA/ICcsICcgKyBlc2NhcGVI
VE1MKHAuZGllbnN0Z3JhZCkgOiAnJyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICBhY3RvciA9IGVzY2FwZUhUTUwoZS5iZW51dHplciB8fCAndW5iZWthbm50Jyk7CiAgICAg
ICAgICAgIH0KICAgICAgICAgICAgdmFyIHRhZ3MgPSAnJzsKICAgICAgICAgICAgaWYgKGUucGZs
aWNodCkgdGFncyArPSAnIDxzcGFuIGNsYXNzPSJsYi10YWcgbGItdGFnLXBmbGljaHQiPlBmbGlj
aHQ8L3NwYW4+JzsKICAgICAgICAgICAgaWYgKGUub3ZlcnJpZGUpIHRhZ3MgKz0gJyA8c3BhbiBj
bGFzcz0ibGItdGFnIGxiLXRhZy1vdmVycmlkZSI+w5xiZXJzY2hyaWViZW48L3NwYW4+JzsKICAg
ICAgICAgICAgcmV0dXJuICc8bGk+JyArIHRzICsgJzogPGNvZGU+JyArIGFsdCArICc8L2NvZGU+
ICZyYXJyOyA8Y29kZT4nICsgbmV1ICsgJzwvY29kZT4gKCcgKyBhY3RvciArICcpJyArIHRhZ3Mg
KyAnPC9saT4nOwogICAgICAgIH0pLmpvaW4oJycpOwogICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7
CiAgICAgICAgbGlzdGUuaW5uZXJIVE1MID0gJzxsaSBjbGFzcz0ibGVlciI+RmVobGVyIGJlaW0g
TGFkZW4gZGVyIEhpc3RvcmllPC9saT4nOwogICAgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBlZGl0
b3JTY2hsaWVzc2VuKG9obmVSZWxlYXNlKSB7CiAgICBpZiAoIWVkaXRvci5ha3RpdiAmJiAhWi56
ZWxsTG9jay50b2tlbikgcmV0dXJuOwogICAgZWRpdG9yLmFrdGl2ID0gZmFsc2U7CiAgICB2YXIg
ZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnemVsbC1lZGl0b3InKTsKICAgIGlmIChlbCkg
ZWwuY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7CiAgICBsb2NrSGVhcnRiZWF0U3RvcHBlbigp
OwogICAgaWYgKCFvaG5lUmVsZWFzZSAmJiBaLnplbGxMb2NrLnRva2VuKSB7CiAgICAgICAgbG9j
a1plbGxlUmVsZWFzZShaLnplbGxMb2NrLnRva2VuKS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAg
ICAgICAgIGNvbnNvbGUud2FybignW2xvY2tSZWxlYXNlXSBmZWhsZ2VzY2hsYWdlbiDigJQgYmVp
bSBuw6RjaHN0ZW4gUmVsb2FkIGtvcnJpZ2llcnQ6JywgZSAmJiBlLm1lc3NhZ2UpOwogICAgICAg
IH0pOwogICAgfQogICAgWi56ZWxsTG9jay50b2tlbiA9IG51bGw7CiAgICBaLnplbGxMb2NrLmRh
dHVtID0gbnVsbDsKICAgIFouemVsbExvY2sucGVyc29uSWQgPSBudWxsOwp9CgovLyBTY2hpY2h0
emVpdGVuLU1vZGVsbCAoU3R1bmRlbiBhYiBUYWdlc3N0YXJ0KQp2YXIgc2NoaWNodFplaXRlbiA9
IHsKICAgICdGJzogeyBzdGFydDogNiwgZW5kZTogMTQgfSwKICAgICdTJzogeyBzdGFydDogMTQs
IGVuZGU6IDIyIH0sCiAgICAnTic6IHsgc3RhcnQ6IDIyLCBlbmRlOiAzMCB9ICAvLyAzMCA9IG7D
pGNoc3RlciBUYWcgMDY6MDAKfTsKCmV4cG9ydCBmdW5jdGlvbiBuYWNoYmFyRGF0dW0oZFN0ciwg
b2Zmc2V0KSB7CiAgICB2YXIgZCA9IG5ldyBEYXRlKGRTdHIgKyAnVDEyOjAwOjAwJyk7CiAgICBk
LnNldERhdGUoZC5nZXREYXRlKCkgKyBvZmZzZXQpOwogICAgcmV0dXJuIGRhdHVtU3RyKGQpOwp9
CgpleHBvcnQgZnVuY3Rpb24gc2NoaWNodFR5cCh3ZXJ0KSB7CiAgICBpZiAoIXdlcnQpIHJldHVy
biBudWxsOwogICAgdmFyIGMgPSB3ZXJ0LmNoYXJBdCgwKTsKICAgIGlmIChjID09PSAnRicgfHwg
YyA9PT0gJ1MnIHx8IGMgPT09ICdOJykgewogICAgICAgIGlmICh3ZXJ0LmluZGV4T2YoJ0RHTCcp
ICE9PSAtMSB8fCB3ZXJ0LmluZGV4T2YoJ1dERicpICE9PSAtMSB8fCB3ZXJ0LmluZGV4T2YoJ0ZC
UCcpICE9PSAtMSkgcmV0dXJuIGM7CiAgICB9CiAgICByZXR1cm4gbnVsbDsKfQoKZXhwb3J0IGZ1
bmN0aW9uIHJ1aGV6ZWl0UHJ1ZWZlbihkYXR1bSwgcGlkLCBuZXVlcldlcnQpIHsKICAgIHZhciBu
ZXVlclR5cCA9IHNjaGljaHRUeXAobmV1ZXJXZXJ0KTsKICAgIGlmICghbmV1ZXJUeXApIHJldHVy
biBudWxsOwogICAgdmFyIG5ldWVaZWl0ID0gc2NoaWNodFplaXRlbltuZXVlclR5cF07CiAgICB2
YXIgd2FybnVuZ2VuID0gW107CgogICAgLy8gVm9ydGFnIHByw7xmZW46IEVuZGUgVm9ydGFnIOKG
kiBTdGFydCBuZXVlciBTY2hpY2h0CiAgICB2YXIgdm9ydGFnID0gbmFjaGJhckRhdHVtKGRhdHVt
LCAtMSk7CiAgICB2YXIgdm9yV2VydCA9ICgoWi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbdm9y
dGFnXSB8fCB7fSlbcGlkXSB8fCAnJzsKICAgIHZhciB2b3JUeXAgPSBzY2hpY2h0VHlwKHZvcldl
cnQpOwogICAgaWYgKHZvclR5cCkgewogICAgICAgIHZhciB2b3JaZWl0ID0gc2NoaWNodFplaXRl
blt2b3JUeXBdOwogICAgICAgIHZhciBydWhlID0gKG5ldWVaZWl0LnN0YXJ0ICsgMjQpIC0gdm9y
WmVpdC5lbmRlOwogICAgICAgIGlmIChydWhlIDwgMTEpIHsKICAgICAgICAgICAgd2FybnVuZ2Vu
LnB1c2goJ051ciAnICsgcnVoZSArICdoIFJ1aGV6ZWl0IG5hY2ggJyArIHZvcldlcnQgKyAnIGFt
IFZvcnRhZyAobWluLiAxMWgpJyk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIEZvbGdldGFnIHBy
w7xmZW46IEVuZGUgbmV1ZSBTY2hpY2h0IOKGkiBTdGFydCBGb2xnZXRhZwogICAgdmFyIGZvbGdl
dGFnID0gbmFjaGJhckRhdHVtKGRhdHVtLCAxKTsKICAgIHZhciBmb2xnZVdlcnQgPSAoKFoucGxh
bnVuZy5laW50cmFlZ2UgfHwge30pW2ZvbGdldGFnXSB8fCB7fSlbcGlkXSB8fCAnJzsKICAgIHZh
ciBmb2xnZVR5cCA9IHNjaGljaHRUeXAoZm9sZ2VXZXJ0KTsKICAgIGlmIChmb2xnZVR5cCkgewog
ICAgICAgIHZhciBmb2xnZVplaXQgPSBzY2hpY2h0WmVpdGVuW2ZvbGdlVHlwXTsKICAgICAgICB2
YXIgcnVoZUZvbGdlID0gKGZvbGdlWmVpdC5zdGFydCArIDI0KSAtIG5ldWVaZWl0LmVuZGU7CiAg
ICAgICAgaWYgKHJ1aGVGb2xnZSA8IDExKSB7CiAgICAgICAgICAgIHdhcm51bmdlbi5wdXNoKCdO
dXIgJyArIHJ1aGVGb2xnZSArICdoIFJ1aGV6ZWl0IHZvciAnICsgZm9sZ2VXZXJ0ICsgJyBhbSBG
b2xnZXRhZyAobWluLiAxMWgpJyk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB3YXJudW5n
ZW4ubGVuZ3RoID4gMCA/IHdhcm51bmdlbiA6IG51bGw7Cn0KCmV4cG9ydCBmdW5jdGlvbiBlZGl0
b3JBdXN3YWhsKHdlcnQpIHsKICAgIGlmICghZWRpdG9yLmFrdGl2KSByZXR1cm47CiAgICB2YXIg
ZGF0dW0gPSBlZGl0b3IuZGF0dW0sIHBpZCA9IGVkaXRvci5wZXJzb25JZDsKCiAgICBpZiAoZWRp
dG9yQnVsa1BmYWRBdXNnZWZ1ZWhydChkYXR1bSwgcGlkLCB3ZXJ0KSkgcmV0dXJuOwogICAgaWYg
KCFlZGl0b3JSdWhlemVpdEd1YXJkKGRhdHVtLCBwaWQsIHdlcnQpKSByZXR1cm47CgogICAgLy8g
RkxEOiBQZmxpY2h0LUZsYWcgYXVzIEVkaXRvci1DaGVja2JveCBsZXNlbgogICAgdmFyIHBmbGlj
aHRDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItcGZsaWNodC1jYicpOwogICAg
dmFyIHBmbGljaHQgPSBwZmxpY2h0Q2IgPyAhIXBmbGljaHRDYi5jaGVja2VkIDogZmFsc2U7Cgog
ICAgLy8gTG9jay1Ub2tlbiB2b3IgZGVtIFNjaGxpZXNzZW4gbWVya2VuIChlZGl0b3JTY2hsaWVz
c2VuIGxlZXJ0IGlobikuCiAgICAvLyBMb2NrLVJlbGVhc2UgbWFjaGVuIHdpciBTRUxCU1QgbmFj
aCBlcmZvbGdyZWljaGVtIFNhdmUgKHNvbnN0CiAgICAvLyBrb2VubnRlIGVpbiBMaXZlLVN5bmMg
endpc2NoZW4gUmVsZWFzZSB1bmQgU2F2ZSByYWNlbikuCiAgICB2YXIgbG9ja1Rva2VuID0gWi56
ZWxsTG9jay50b2tlbjsKICAgIGVkaXRvclNjaGxpZXNzZW4odHJ1ZSk7CgogICAgaWYgKCFaLnBs
YW51bmcuZWludHJhZWdlKSBaLnBsYW51bmcuZWludHJhZWdlID0ge307CiAgICBpZiAoIVoucGxh
bnVuZy5laW50cmFlZ2VbZGF0dW1dKSBaLnBsYW51bmcuZWludHJhZWdlW2RhdHVtXSA9IHt9Owog
ICAgdmFyIGVyd2FydGV0ID0gWi5wbGFudW5nLmVpbnRyYWVnZVtkYXR1bV1bcGlkXSB8fCAnJzsK
ICAgIGlmICh3ZXJ0KSBaLnBsYW51bmcuZWludHJhZWdlW2RhdHVtXVtwaWRdID0gd2VydDsKICAg
IGVsc2UgZGVsZXRlIFoucGxhbnVuZy5laW50cmFlZ2VbZGF0dW1dW3BpZF07CiAgICBlZGl0b3JI
b29rcy5wZmxpY2h0TG9rYWxTZXR6ZW4oZGF0dW0sIHBpZCwgcGZsaWNodCAmJiAhIXdlcnQpOwog
ICAgemVsbGVWaXN1ZWxsQWt0dWFsaXNpZXJlbihkYXR1bSwgcGlkLCB3ZXJ0KTsKCiAgICBlZGl0
b3JaZWxsZVNwZWljaGVybihkYXR1bSwgcGlkLCB3ZXJ0LCBwZmxpY2h0LCBlcndhcnRldCwgbG9j
a1Rva2VuKTsKfQoKLy8gUGhhc2UgSDI6IHdlbm4gUmFuZ2UtU2VsZWt0aW9uIGFrdGl2IHVuZCBB
bmtlciBpbm5lcmhhbGIgZGVyIFJhbmdlIGxpZWd0LAovLyBXZXJ0IGF1ZiBhbGxlIFJhbmdlLVpl
bGxlbiBhbndlbmRlbiAoQnVsaykgc3RhdHQgbnVyIEFua2VyLgovLyBSZXR1cm50IHRydWUsIHdl
bm4gZGVyIEJ1bGstUGZhZCBnZW5vbW1lbiB3dXJkZSAoQ2FsbGVyIGJyaWNodCBhYikuCmV4cG9y
dCBmdW5jdGlvbiBlZGl0b3JCdWxrUGZhZEF1c2dlZnVlaHJ0KGRhdHVtLCBwaWQsIHdlcnQpIHsK
ICAgIGlmICghWi5zZWxla3Rpb24gfHwgIVouc2VsZWt0aW9uLnJhbmdlIHx8IFouc2VsZWt0aW9u
LnJhbmdlLmxlbmd0aCA8PSAxKSByZXR1cm4gZmFsc2U7CiAgICB2YXIgYW5rZXJJc3RJblJhbmdl
ID0gWi5zZWxla3Rpb24ucmFuZ2Uuc29tZShmdW5jdGlvbihyKSB7CiAgICAgICAgcmV0dXJuIHIu
ZGF0dW0gPT09IGRhdHVtICYmIFN0cmluZyhyLnBlcnNvbklkKSA9PT0gU3RyaW5nKHBpZCk7CiAg
ICB9KTsKICAgIGlmICghYW5rZXJJc3RJblJhbmdlKSByZXR1cm4gZmFsc2U7CiAgICB2YXIgbG9j
a1Rva2VuUiA9IFouemVsbExvY2sudG9rZW47CiAgICBlZGl0b3JTY2hsaWVzc2VuKHRydWUpOwog
ICAgaWYgKGxvY2tUb2tlblIpIGxvY2taZWxsZVJlbGVhc2UobG9ja1Rva2VuUikuY2F0Y2goZnVu
Y3Rpb24oZSkgewogICAgICAgIGNvbnNvbGUud2FybignW2xvY2tSZWxlYXNlIGJ1bGtdIGZlaGxn
ZXNjaGxhZ2VuOicsIGUgJiYgZS5tZXNzYWdlKTsKICAgIH0pOwogICAgZWRpdG9ySG9va3MuYnVs
a0F1c3dlbmRlbihaLnNlbGVrdGlvbi5yYW5nZS5zbGljZSgpLCB3ZXJ0IHx8ICcnKTsKICAgIHJl
dHVybiB0cnVlOwp9CgovLyBSZXR1cm50IGZhbHNlLCB3ZW5uIGRlciBVc2VyIGRlbiBDb25maXJt
LURpYWxvZyBkZXIgUnVoZXplaXQtV2FybnVuZwovLyBhYmxlaG50IChDYWxsZXIgYnJpY2h0IGRh
bm4gZGVuIFNwZWljaGVyLVBmYWQgYWIpLgpleHBvcnQgZnVuY3Rpb24gZWRpdG9yUnVoZXplaXRH
dWFyZChkYXR1bSwgcGlkLCB3ZXJ0KSB7CiAgICBpZiAoIXdlcnQgfHwgIWVkaXRvckhvb2tzLmZl
YXR1cmVJc3RBa3RpdiAmJiBlZGl0b3JIb29rcy5mZWF0dXJlSXN0QWt0aXYoJ3J1aGV6ZWl0UHJ1
ZWZ1bmcnKSkgcmV0dXJuIHRydWU7CiAgICB2YXIgcnVoZVdhcm4gPSBydWhlemVpdFBydWVmZW4o
ZGF0dW0sIHBpZCwgd2VydCk7CiAgICBpZiAoIXJ1aGVXYXJuKSByZXR1cm4gdHJ1ZTsKICAgIHZh
ciBwZXJzb24gPSBaLnBlcnNvbmVuLmZpbmQoZnVuY3Rpb24ocCkgeyByZXR1cm4gU3RyaW5nKHAu
aWQpID09PSBwaWQ7IH0pOwogICAgdmFyIG5hbWUgPSBwZXJzb24gPyBwZXJzb25OYW1lKHBlcnNv
bikgOiAnUGVyc29uICcgKyBwaWQ7CiAgICByZXR1cm4gY29uZmlybSgnUnVoZXplaXQtV2FybnVu
ZyBmw7xyICcgKyBuYW1lICsgJzpcblxuJyArIHJ1aGVXYXJuLmpvaW4oJ1xuJykgKyAnXG5cblRy
b3R6ZGVtIHp1d2Vpc2VuPycpOwp9CgpleHBvcnQgZnVuY3Rpb24gZWRpdG9yWmVsbGVTcGVpY2hl
cm4oZGF0dW0sIHBpZCwgd2VydCwgcGZsaWNodCwgZXJ3YXJ0ZXQsIGxvY2tUb2tlbikgewogICAg
YXBpU2FmZSgnL2FwaS9wbGFudW5nL3plbGxlJywgewogICAgICAgIG1ldGhvZDogJ1BPU1QnLAog
ICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LAog
ICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsKICAgICAgICAgICAgZGF0dW06IGRhdHVtLAog
ICAgICAgICAgICBwZXJzb25JZDogcGlkLAogICAgICAgICAgICB3ZXJ0OiB3ZXJ0LAogICAgICAg
ICAgICBwZmxpY2h0OiBwZmxpY2h0LAogICAgICAgICAgICBlcndhcnRldGVyQWx0ZXJXZXJ0OiBl
cndhcnRldCwKICAgICAgICAgICAgbG9ja1Rva2VuOiBsb2NrVG9rZW4KICAgICAgICB9KQogICAg
fSkudGhlbihmdW5jdGlvbihyZXMpIHsKICAgICAgICAvLyBMb2NrIHNwYWV0ZXN0ZW5zIGpldHp0
IGZyZWlnZWJlbgogICAgICAgIGlmIChsb2NrVG9rZW4pIGxvY2taZWxsZVJlbGVhc2UobG9ja1Rv
a2VuKS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGNvbnNvbGUud2FybignW2xvY2tS
ZWxlYXNlIHNhdmVdIGZlaGxnZXNjaGxhZ2VuOicsIGUgJiYgZS5tZXNzYWdlKTsKICAgICAgICB9
KTsKCiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQwOSkgewogICAgICAgICAgICB2YXIgYWt0
dWVsbCA9IChyZXMuYm9keSAmJiByZXMuYm9keS5ha3R1ZWxsZXJXZXJ0KSB8fCAnJzsKICAgICAg
ICAgICAgaWYgKGFrdHVlbGwpIFoucGxhbnVuZy5laW50cmFlZ2VbZGF0dW1dW3BpZF0gPSBha3R1
ZWxsOwogICAgICAgICAgICBlbHNlIGRlbGV0ZSBaLnBsYW51bmcuZWludHJhZWdlW2RhdHVtXVtw
aWRdOwogICAgICAgICAgICB6ZWxsZVZpc3VlbGxBa3R1YWxpc2llcmVuKGRhdHVtLCBwaWQsIGFr
dHVlbGwpOwogICAgICAgICAgICB0b2FzdCgnS29uZmxpa3Q6IERpZXNlIFplbGxlIHd1cmRlIGlu
endpc2NoZW4gYXVmICInICsgKGFrdHVlbGwgfHwgJ2xlZXInKSArICciIGdlc2V0enQuIERlaW5l
IEFlbmRlcnVuZyB3dXJkZSBOSUNIVCB1ZWJlcm5vbW1lbi4nLCAnd2FybnVuZycpOwogICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChyZXMuc3RhdHVzID09PSA0MjMpIHsK
ICAgICAgICAgICAgLy8gUmFjZS1Db25kaXRpb246IExvY2sgd2VnICsgamVtYW5kIGFuZGVycyBo
YXQgaW4gZGVyIFp3aXNjaGVuemVpdCBnZXNwZXJydAogICAgICAgICAgICBaLnBsYW51bmcuZWlu
dHJhZWdlW2RhdHVtXVtwaWRdID0gZXJ3YXJ0ZXQ7CiAgICAgICAgICAgIHplbGxlVmlzdWVsbEFr
dHVhbGlzaWVyZW4oZGF0dW0sIHBpZCwgZXJ3YXJ0ZXQpOwogICAgICAgICAgICB0b2FzdCgnRGll
c2UgWmVsbGUgd3VyZGUgZ2VyYWRlIHZvbiAnICsgKHJlcy5ib2R5ICYmIHJlcy5ib2R5LnNwZXJy
ZXIgfHwgJ2plbWFuZCcpICsgJyB1ZWJlcm5vbW1lbi4nLCAnd2FybnVuZycpOwogICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChyZXMuc3RhdHVzID09PSA0MDMpIHsKICAg
ICAgICAgICAgLy8gUGZsaWNodC1TcGVycmUgLyBQZmxpY2h0LVNldHp1bmdzdmVyYm90CiAgICAg
ICAgICAgIFoucGxhbnVuZy5laW50cmFlZ2VbZGF0dW1dW3BpZF0gPSBlcndhcnRldDsKICAgICAg
ICAgICAgemVsbGVWaXN1ZWxsQWt0dWFsaXNpZXJlbihkYXR1bSwgcGlkLCBlcndhcnRldCk7CiAg
ICAgICAgICAgIHRvYXN0KChyZXMuYm9keSAmJiByZXMuYm9keS5tZWxkdW5nKSB8fCAnS2VpbmUg
QmVyZWNodGlndW5nLicsICdmZWhsZXInKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0K
ICAgICAgICBpZiAocmVzLnN0YXR1cyA+PSA0MDApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKChyZXMuYm9keSAmJiByZXMuYm9keS5mZWhsZXIpIHx8ICgnSFRUUCAnICsgcmVzLnN0YXR1
cykpOwogICAgICAgIH0KICAgICAgICB2YXIgb3ZyID0gcmVzLmJvZHkgJiYgcmVzLmJvZHkub3Zl
cnJpZGU7CiAgICAgICAgdG9hc3QoCiAgICAgICAgICAgIG92ciA/ICdHZXNwZWljaGVydCAoT3Zl
cnJpZGUgZHVyY2ggJyArIFoucm9sbGUgKyAnKScKICAgICAgICAgICAgICAgIDogKHBmbGljaHQg
JiYgd2VydCA/ICdHZXNwZWljaGVydCAoUGZsaWNodC1TZXR6dW5nKScgOiAnR2VzcGVpY2hlcnQn
KSwKICAgICAgICAgICAgb3ZyID8gJ3dhcm51bmcnIDogJ2VyZm9sZycKICAgICAgICApOwogICAg
ICAgIHZhciBzdCA9IHN0YWVya2VCZXJlY2huZW4oZGF0dW0pOwogICAgICAgIGlmICghc3Qub2sp
IHsKICAgICAgICAgICAgdmFyIGRlZml6aXQgPSBbXTsKICAgICAgICAgICAgaWYgKHN0LmYgPCAy
KSBkZWZpeml0LnB1c2goJ0ZydWVoICgnICsgc3QuZiArICcvMiknKTsKICAgICAgICAgICAgaWYg
KHN0LnMgPCAyKSBkZWZpeml0LnB1c2goJ1NwYWV0ICgnICsgc3QucyArICcvMiknKTsKICAgICAg
ICAgICAgaWYgKHN0Lm4gPCAyKSBkZWZpeml0LnB1c2goJ05hY2h0ICgnICsgc3QubiArICcvMikn
KTsKICAgICAgICAgICAgdG9hc3QoJ1VudGVyYmVzZXR6dCBhbSAnICsgZGF0dW1Gb3JtYXRERShk
YXR1bSkgKyAnOiAnICsgZGVmaXppdC5qb2luKCcsICcpLCAnd2FybnVuZycpOwogICAgICAgIH0K
ICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAobG9ja1Rva2VuKSBsb2NrWmVs
bGVSZWxlYXNlKGxvY2tUb2tlbikuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICAgICBjb25z
b2xlLndhcm4oJ1tsb2NrUmVsZWFzZSBzYXZlXSBmZWhsZ2VzY2hsYWdlbjonLCBlICYmIGUubWVz
c2FnZSk7CiAgICAgICAgfSk7CiAgICAgICAgdG9hc3QoJ0ZlaGxlcjogJyArIGUubWVzc2FnZSwg
J2ZlaGxlcicpOwogICAgfSk7Cn0K
### FILE: js/grid/interaction.js | 18491
Ly8gPT09IGdyaWQvaW50ZXJhY3Rpb24uanMgPT09Ci8vIFJhbmdlLVNlbGVrdGlvbiwgQXV0b0Zp
bGwgKERyYWcmRHJvcCksIEtvbnRleHRtZW51ZS1Ba3Rpb25lbiwKLy8gQnVsay1FZGl0LCBLb21t
ZW50YXJlLS9QZmxpY2h0LVZlcndhbHR1bmcsIFVudGVyYmVzZXR6dW5ncy1XYXJudW5nLgovLwov
LyBDcm9zcy1Nb2R1bGUtSG9va3MgKFBoYXNlIDVkLVdvcmthcm91bmQpOgovLyAgIGZlYXR1cmVJ
c3RBa3RpdiAtPiBhZG1pbi9hZG1pbi5qcyAoUGhhc2UgNikKLy8gICBzb25kZXJGdWVyRGF0dW0g
LT4gYWRtaW4vbGlzdGVuLmpzIChQaGFzZSA2KQoKaW1wb3J0IHsgWiB9IGZyb20gJy4uL2NvcmUv
c3RhdGUuanMnOwppbXBvcnQgewogICAgZXNjYXBlSFRNTCwgZXNjYXBlQXR0ciwgZGF0dW1TdHIs
IGRhdHVtRm9ybWF0REUsIGRhdHVtS3VyekRFLAogICAgcGVyc29uTmFtZSwgcGVyc29uVm9sbE5h
bWUKfSBmcm9tICcuLi9jb3JlL3V0aWwuanMnOwppbXBvcnQgeyBhcGlTYWZlLCBhcGlQb3N0LCBh
cGlQdXQgfSBmcm9tICcuLi9jb3JlL2FwaS5qcyc7CmltcG9ydCB7IHRvYXN0IH0gZnJvbSAnLi4v
dWkvdG9hc3QuanMnOwppbXBvcnQgeyBtb2RhbFplaWdlbiB9IGZyb20gJy4uL3VpL21vZGFsLmpz
JzsKaW1wb3J0IHsKICAgIGRhcmZEYXR1bUVkaXRpZXJlbiwgaXN0SW5WZXJiaW5kbGljaGtlaXQs
IHZlcmJpbmRsaWNoa2VpdHNTdGFydERhdHVtCn0gZnJvbSAnLi4vY29yZS9wZXJtaXNzaW9ucy5q
cyc7CmltcG9ydCB7IGxvY2tLZXksIGxvY2tUb29sdGlwVGV4dCB9IGZyb20gJy4uL3N5bmMvY2Vs
bC1sb2NrLmpzJzsKaW1wb3J0IHsgemVsbGVWaXN1ZWxsQWt0dWFsaXNpZXJlbiwga29wZlJlbmRl
cm4sIGFuc2ljaHRXZWNoc2VsbiB9IGZyb20gJy4vcmVuZGVyLmpzJzsKaW1wb3J0IHsgdGFnZXNk
YXRlbkZ1ZXIsIGlzdEJlc2V0enVuZ0Z1ZXIgfSBmcm9tICcuL3RhZ2VzZGF0ZW4uanMnOwppbXBv
cnQgewogICAgZWRpdG9yLCBlZGl0b3JPZWZmbmVuLCBlZGl0b3JCdWxrUGZhZEF1c2dlZnVlaHJ0
LCBlZGl0b3JSdWhlemVpdEd1YXJkCn0gZnJvbSAnLi9lZGl0b3IuanMnOwoKZXhwb3J0IHZhciBp
bnRlcmFjdGlvbkhvb2tzID0gewogICAgZmVhdHVyZUlzdEFrdGl2OiBudWxsLCAgICAvLyBhZG1p
bi9hZG1pbi5qcwogICAgc29uZGVyRnVlckRhdHVtOiBudWxsICAgICAvLyBhZG1pbi9saXN0ZW4u
anMKfTsKCi8vIEF1dG9GaWxsLURuRC1TdGF0ZSAobW9kdWwtcHJpdmF0LCBsZWJ0IG51ciB3w6Ro
cmVuZCBlaW5lcyBha3RpdmVuIERyYWdzKQp2YXIgZG5kID0geyBha3RpdjogZmFsc2UsIHF1ZWxs
ZURhdHVtOiBudWxsLCBxdWVsbGVQZXJzb25JZDogbnVsbCwgcXVlbGxlV2VydDogJycsIHppZWxl
OiBbXSB9OwoKCmV4cG9ydCBmdW5jdGlvbiBhdXRvZmlsbEhhbmRsZUFuemVpZ2VuKHplbGxlKSB7
CiAgICBhdXRvZmlsbEhhbmRsZUVudGZlcm5lbigpOwogICAgaWYgKCF6ZWxsZSkgcmV0dXJuOwog
ICAgLy8gTG9jay0vUGZsaWNodC1TY2h1dHo6IEhhbmRsZSBudXIsIHdvIFVzZXIgYXVjaCB3aXJr
bGljaCBlZGl0aWVyZW4gZGFyZgogICAgdmFyIGQgPSB6ZWxsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEt
ZGF0dW0nKTsKICAgIHZhciBwID0gemVsbGUuZ2V0QXR0cmlidXRlKCdkYXRhLXBlcnNvbicpOwog
ICAgaWYgKCFkIHx8ICFwKSByZXR1cm47CiAgICBpZiAoWi5mcmVtZGVMb2Nrc1tsb2NrS2V5KGQs
IHApXSAmJiAhWi5kYXJmVWViZXJzY2hyZWliZW4pIHJldHVybjsKICAgIGlmIChwZmxpY2h0TGFk
ZW4oZCwgcCkgJiYgIVouZGFyZlVlYmVyc2NocmVpYmVuKSByZXR1cm47CiAgICB2YXIgd2VydCA9
ICgoWi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbZF0gfHwge30pW3BdIHx8ICcnOwogICAgdmFy
IGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGguY2xhc3NOYW1lID0gJ2F1
dG9maWxsLWhhbmRsZSc7CiAgICBoLnRpdGxlID0gd2VydAogICAgICAgID8gJ0F1dG9GaWxsIOKA
nicgKyB3ZXJ0ICsgJyIg4oCUIFF1YWRyYXQgYW5mYXNzZW4gdW5kIMO8YmVyIGRpZSBaaWVsemVs
bGVuIHppZWhlbicKICAgICAgICA6ICdBdXRvRmlsbCBsZWVyIOKAlCBRdWFkcmF0IHppZWhlbiwg
dW0gZGVuIEJlcmVpY2ggenUgbMO2c2NoZW4nOwogICAgemVsbGUuYXBwZW5kQ2hpbGQoaCk7Cn0K
ZXhwb3J0IGZ1bmN0aW9uIGF1dG9maWxsSGFuZGxlRW50ZmVybmVuKCkgewogICAgdmFyIGggPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYXV0b2ZpbGwtaGFuZGxlJyk7CiAgICBpZiAoaCAmJiBo
LnBhcmVudE5vZGUpIGgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChoKTsKfQoKZXhwb3J0IGZ1bmN0
aW9uIGRuZFppZWxNYXJraWVyZW5MZWVyZW4oKSB7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcuZ3JpZC16ZWxsZS5kbmQtemllbCcpLmZvckVhY2goZnVuY3Rpb24oeikgewogICAgICAg
IHouY2xhc3NMaXN0LnJlbW92ZSgnZG5kLXppZWwnKTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rp
b24gZG5kWmVsbGVuWndpc2NoZW4ocURhdHVtLCBxUGlkLCB6RGF0dW0sIHpQaWQpIHsKICAgIC8v
IExpZWZlcnQgTGlzdGUgdm9uIHtkYXR1bSwgcGVyc29uSWR9IGltIFJlY2h0ZWNrIHp3aXNjaGVu
IFF1ZWxsZSB1bmQgWmllbC4KICAgIHZhciBxSWR4ID0gLTEsIHpJZHggPSAtMTsKICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgWi50YWdlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGRzID0gZGF0
dW1TdHIoWi50YWdlW2ldKTsKICAgICAgICBpZiAoZHMgPT09IHFEYXR1bSkgcUlkeCA9IGk7CiAg
ICAgICAgaWYgKGRzID09PSB6RGF0dW0pIHpJZHggPSBpOwogICAgfQogICAgaWYgKHFJZHggPCAw
IHx8IHpJZHggPCAwKSByZXR1cm4gW107CiAgICB2YXIgZFN0YXJ0ID0gTWF0aC5taW4ocUlkeCwg
eklkeCksIGRFbmQgPSBNYXRoLm1heChxSWR4LCB6SWR4KTsKICAgIHZhciBxUG9zID0gLTEsIHpQ
b3MgPSAtMTsKICAgIGZvciAodmFyIGogPSAwOyBqIDwgWi5wZXJzb25lbi5sZW5ndGg7IGorKykg
ewogICAgICAgIGlmIChTdHJpbmcoWi5wZXJzb25lbltqXS5pZCkgPT09IFN0cmluZyhxUGlkKSkg
cVBvcyA9IGo7CiAgICAgICAgaWYgKFN0cmluZyhaLnBlcnNvbmVuW2pdLmlkKSA9PT0gU3RyaW5n
KHpQaWQpKSB6UG9zID0gajsKICAgIH0KICAgIGlmIChxUG9zIDwgMCB8fCB6UG9zIDwgMCkgcmV0
dXJuIFtdOwogICAgdmFyIHBTdGFydCA9IE1hdGgubWluKHFQb3MsIHpQb3MpLCBwRW5kID0gTWF0
aC5tYXgocVBvcywgelBvcyk7CiAgICB2YXIgb3V0ID0gW107CiAgICBmb3IgKHZhciBpaSA9IGRT
dGFydDsgaWkgPD0gZEVuZDsgaWkrKykgewogICAgICAgIGZvciAodmFyIGpqID0gcFN0YXJ0OyBq
aiA8PSBwRW5kOyBqaisrKSB7CiAgICAgICAgICAgIHZhciBkID0gZGF0dW1TdHIoWi50YWdlW2lp
XSk7CiAgICAgICAgICAgIHZhciBwaWQgPSBTdHJpbmcoWi5wZXJzb25lbltqal0uaWQpOwogICAg
ICAgICAgICBpZiAoZCA9PT0gcURhdHVtICYmIHBpZCA9PT0gcVBpZCkgY29udGludWU7IC8vIFF1
ZWxsZSBzZWxic3QgbmljaHQKICAgICAgICAgICAgb3V0LnB1c2goeyBkYXR1bTogZCwgcGVyc29u
SWQ6IHBpZCB9KTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gb3V0Owp9CgpleHBvcnQgZnVu
Y3Rpb24gZG5kU3RhcnRlbihoYW5kbGVFbCwgZSkgewogICAgdmFyIHplbGxlID0gaGFuZGxlRWwu
cGFyZW50Tm9kZTsKICAgIGlmICghemVsbGUgfHwgIXplbGxlLmNsYXNzTGlzdC5jb250YWlucygn
Z3JpZC16ZWxsZScpKSByZXR1cm47CiAgICBlLnByZXZlbnREZWZhdWx0KCk7IGUuc3RvcFByb3Bh
Z2F0aW9uKCk7CiAgICBkbmQuYWt0aXYgPSB0cnVlOwogICAgZG5kLnF1ZWxsZURhdHVtID0gemVs
bGUuZ2V0QXR0cmlidXRlKCdkYXRhLWRhdHVtJyk7CiAgICBkbmQucXVlbGxlUGVyc29uSWQgPSB6
ZWxsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGVyc29uJyk7CiAgICBkbmQucXVlbGxlV2VydCA9ICgo
Wi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbZG5kLnF1ZWxsZURhdHVtXSB8fCB7fSlbZG5kLnF1
ZWxsZVBlcnNvbklkXSB8fCAnJzsKICAgIGRuZC56aWVsZSA9IFtdOwogICAgZG9jdW1lbnQuYm9k
eS5zdHlsZS5jdXJzb3IgPSAnY3Jvc3NoYWlyJzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGRuZFVlYmVy
KGUpIHsKICAgIGlmICghZG5kLmFrdGl2KSByZXR1cm47CiAgICB2YXIgZWwgPSBkb2N1bWVudC5l
bGVtZW50RnJvbVBvaW50KGUuY2xpZW50WCwgZS5jbGllbnRZKTsKICAgIGlmICghZWwpIHJldHVy
bjsKICAgIHZhciB6ZWxsZSA9IGVsLmNsb3Nlc3QoJy5ncmlkLXplbGxlJyk7CiAgICBpZiAoIXpl
bGxlKSByZXR1cm47CiAgICB2YXIgZCA9IHplbGxlLmdldEF0dHJpYnV0ZSgnZGF0YS1kYXR1bScp
OwogICAgdmFyIHAgPSB6ZWxsZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGVyc29uJyk7CiAgICBpZiAo
IWQgfHwgIXApIHJldHVybjsKICAgIHZhciB6aWVsZSA9IGRuZFplbGxlblp3aXNjaGVuKGRuZC5x
dWVsbGVEYXR1bSwgZG5kLnF1ZWxsZVBlcnNvbklkLCBkLCBwKTsKICAgIGRuZFppZWxNYXJraWVy
ZW5MZWVyZW4oKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgemllbGUubGVuZ3RoOyBpKyspIHsK
ICAgICAgICB2YXIgeiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ncmlkLXplbGxlW2RhdGEt
ZGF0dW09IicgKyB6aWVsZVtpXS5kYXR1bSArICciXVtkYXRhLXBlcnNvbj0iJyArIHppZWxlW2ld
LnBlcnNvbklkICsgJyJdJyk7CiAgICAgICAgaWYgKHopIHouY2xhc3NMaXN0LmFkZCgnZG5kLXpp
ZWwnKTsKICAgIH0KICAgIGRuZC56aWVsZSA9IHppZWxlOwp9CgpleHBvcnQgZnVuY3Rpb24gZG5k
QWJzY2hsdXNzKGUpIHsKICAgIGlmICghZG5kLmFrdGl2KSByZXR1cm47CiAgICBkb2N1bWVudC5i
b2R5LnN0eWxlLmN1cnNvciA9ICcnOwogICAgZG5kWmllbE1hcmtpZXJlbkxlZXJlbigpOwogICAg
dmFyIHppZWxlID0gZG5kLnppZWxlLnNsaWNlKCk7CiAgICB2YXIgcXVlbGxlV2VydCA9IGRuZC5x
dWVsbGVXZXJ0OwogICAgZG5kLmFrdGl2ID0gZmFsc2U7CiAgICBpZiAoIXppZWxlLmxlbmd0aCkg
cmV0dXJuOwogICAgYnVsa0F1c3dlbmRlbih6aWVsZSwgcXVlbGxlV2VydCk7Cn0KCi8vIFplbnRy
YWxlciBCdWxrLUFwcGx5LVBmYWQg4oCUIHdpcmQgdm9uIERuRC1Ecm9wLCBDdHJsK1YsIFJhbmdl
LVRpcHBlbgovLyB1bmQgS29udGV4dG1lbsO8LeKAnkluIEJlcmVpY2ggZWluZsO8Z2VuIiBnZW51
dHp0LgovLyB6aWVsZTogW3tkYXR1bSwgcGVyc29uSWR9LCAuLi5dOyB3ZXJ0OiAnJyA9IEJlcmVp
Y2ggbMO2c2NoZW4uCmV4cG9ydCBmdW5jdGlvbiBidWxrQXVzd2VuZGVuKHppZWxlLCB3ZXJ0KSB7
CiAgICBpZiAoIXppZWxlIHx8ICF6aWVsZS5sZW5ndGgpIHJldHVybjsKICAgIHZhciBwYXlsb2Fk
ID0gemllbGUubWFwKGZ1bmN0aW9uKHopIHsKICAgICAgICB2YXIgYWx0ZXIgPSAoKFoucGxhbnVu
Zy5laW50cmFlZ2UgfHwge30pW3ouZGF0dW1dIHx8IHt9KVt6LnBlcnNvbklkXSB8fCAnJzsKICAg
ICAgICByZXR1cm4geyBkYXR1bTogei5kYXR1bSwgcGVyc29uSWQ6IHoucGVyc29uSWQsIHdlcnQ6
IHdlcnQsIGVyd2FydGV0OiBhbHRlciB9OwogICAgfSk7CiAgICAvLyBPcHRpbWlzdGlzY2ggbG9r
YWwgKyB2aXN1ZWxsCiAgICB6aWVsZS5mb3JFYWNoKGZ1bmN0aW9uKHopIHsKICAgICAgICBpZiAo
IVoucGxhbnVuZy5laW50cmFlZ2UpIFoucGxhbnVuZy5laW50cmFlZ2UgPSB7fTsKICAgICAgICBp
ZiAoIVoucGxhbnVuZy5laW50cmFlZ2Vbei5kYXR1bV0pIFoucGxhbnVuZy5laW50cmFlZ2Vbei5k
YXR1bV0gPSB7fTsKICAgICAgICBpZiAod2VydCkgWi5wbGFudW5nLmVpbnRyYWVnZVt6LmRhdHVt
XVt6LnBlcnNvbklkXSA9IHdlcnQ7CiAgICAgICAgZWxzZSBkZWxldGUgWi5wbGFudW5nLmVpbnRy
YWVnZVt6LmRhdHVtXVt6LnBlcnNvbklkXTsKICAgICAgICB6ZWxsZVZpc3VlbGxBa3R1YWxpc2ll
cmVuKHouZGF0dW0sIHoucGVyc29uSWQsIHdlcnQpOwogICAgfSk7CiAgICBhcGlTYWZlKCcvYXBp
L3BsYW51bmcvemVsbGVuLWJ1bGsnLCB7CiAgICAgICAgbWV0aG9kOiAnUFVUJywKICAgICAgICBo
ZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSwKICAgICAgICBi
b2R5OiBKU09OLnN0cmluZ2lmeSh7IHplbGxlbjogcGF5bG9hZCB9KQogICAgfSkudGhlbihmdW5j
dGlvbihyZXMpIHsKICAgICAgICBpZiAocmVzLnN0YXR1cyA+PSA1MDApIHsKICAgICAgICAgICAg
dG9hc3QoJ1NlcnZlci1GZWhsZXIgYmVpbSBCdWxrLVNwZWljaGVybi4nLCAnZmVobGVyJyk7CiAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIGIgPSByZXMuYm9keSB8fCB7
fTsKICAgICAgICB2YXIgbk9rID0gKGIuZXJmb2xncmVpY2ggfHwgW10pLmxlbmd0aDsKICAgICAg
ICB2YXIgbktvbmYgPSAoYi5rb25mbGlrdGUgfHwgW10pLmxlbmd0aDsKICAgICAgICB2YXIgbkdl
c3AgPSAoYi5nZXNwZXJydCB8fCBbXSkubGVuZ3RoOwogICAgICAgIHZhciBuVmVyYiA9IChiLnZl
cmJvdGVuIHx8IFtdKS5sZW5ndGg7CiAgICAgICAgdmFyIG5GZWhsID0gKGIuZmVobGVyIHx8IFtd
KS5sZW5ndGg7CiAgICAgICAgLy8gSGVscGVyOiByb2xsdCBlaW5lIG9wdGltaXN0aXNjaCBnZXNj
aHJpZWJlbmUgWmVsbGUgYXVmIGRlbiBWb3ItRHJvcC1XZXJ0IHp1cnVlY2sKICAgICAgICBmdW5j
dGlvbiByb2xsYmFjayhkYXR1bSwgcGVyc29uSWQpIHsKICAgICAgICAgICAgdmFyIGFsdGVyID0g
KHBheWxvYWQuZmluZChmdW5jdGlvbih4KXsgcmV0dXJuIHguZGF0dW0gPT09IGRhdHVtICYmIHgu
cGVyc29uSWQgPT09IHBlcnNvbklkOyB9KSB8fCB7fSkuZXJ3YXJ0ZXQgfHwgJyc7CiAgICAgICAg
ICAgIGlmICghWi5wbGFudW5nLmVpbnRyYWVnZVtkYXR1bV0pIFoucGxhbnVuZy5laW50cmFlZ2Vb
ZGF0dW1dID0ge307CiAgICAgICAgICAgIGlmIChhbHRlcikgWi5wbGFudW5nLmVpbnRyYWVnZVtk
YXR1bV1bcGVyc29uSWRdID0gYWx0ZXI7CiAgICAgICAgICAgIGVsc2UgZGVsZXRlIFoucGxhbnVu
Zy5laW50cmFlZ2VbZGF0dW1dW3BlcnNvbklkXTsKICAgICAgICAgICAgemVsbGVWaXN1ZWxsQWt0
dWFsaXNpZXJlbihkYXR1bSwgcGVyc29uSWQsIGFsdGVyKTsKICAgICAgICB9CiAgICAgICAgKGIu
a29uZmxpa3RlIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAgICAgICAgaWYgKCFa
LnBsYW51bmcuZWludHJhZWdlW2suZGF0dW1dKSBaLnBsYW51bmcuZWludHJhZWdlW2suZGF0dW1d
ID0ge307CiAgICAgICAgICAgIGlmIChrLmFrdHVlbGwpIFoucGxhbnVuZy5laW50cmFlZ2Vbay5k
YXR1bV1bay5wZXJzb25JZF0gPSBrLmFrdHVlbGw7CiAgICAgICAgICAgIGVsc2UgZGVsZXRlIFou
cGxhbnVuZy5laW50cmFlZ2Vbay5kYXR1bV1bay5wZXJzb25JZF07CiAgICAgICAgICAgIHplbGxl
VmlzdWVsbEFrdHVhbGlzaWVyZW4oay5kYXR1bSwgay5wZXJzb25JZCwgay5ha3R1ZWxsIHx8ICcn
KTsKICAgICAgICB9KTsKICAgICAgICAoYi5nZXNwZXJydCB8fCBbXSkuZm9yRWFjaChmdW5jdGlv
bihnKSB7IHJvbGxiYWNrKGcuZGF0dW0sIGcucGVyc29uSWQpOyB9KTsKICAgICAgICAoYi52ZXJi
b3RlbiB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbih2KSB7IHJvbGxiYWNrKHYuZGF0dW0sIHYucGVy
c29uSWQpOyB9KTsKICAgICAgICAvLyBiLmZlaGxlciAoei5CLiBTY2hpY2h0Y29kZS1XaGl0ZWxp
c3QtUmVqZWN0KSAtLSBiaXNoZXIgbmljaHQgenVydWVja2dlcm9sbHQuCiAgICAgICAgLy8gRGF0
dW0vcGVyc29uSWQga29lbm5lbiBkaXJla3QgYW0gRWludHJhZyBvZGVyIHVudGVyIHplbGxlLntk
YXR1bSxwZXJzb25JZH0gc3RlaGVuLgogICAgICAgIChiLmZlaGxlciB8fCBbXSkuZm9yRWFjaChm
dW5jdGlvbihmKSB7CiAgICAgICAgICAgIHZhciBkID0gZi5kYXR1bSB8fCAoZi56ZWxsZSAmJiBm
LnplbGxlLmRhdHVtKTsKICAgICAgICAgICAgdmFyIHAgPSBmLnBlcnNvbklkIHx8IChmLnplbGxl
ICYmIGYuemVsbGUucGVyc29uSWQpOwogICAgICAgICAgICBpZiAoZCAmJiBwKSByb2xsYmFjayhk
LCBTdHJpbmcocCkpOwogICAgICAgIH0pOwogICAgICAgIHZhciB2ZXJiID0gd2VydCA/ICdhdXNn
ZWbDvGxsdCBtaXQg4oCeJyArIHdlcnQgKyAnIicgOiAnZ2VsZWVydCc7CiAgICAgICAgdmFyIG1l
bGR1bmcgPSBuT2sgKyAnIFplbGxlKG4pICcgKyB2ZXJiOwogICAgICAgIGlmIChuS29uZikgbWVs
ZHVuZyArPSAnLCAnICsgbktvbmYgKyAnIEtvbmZsaWt0KGUpJzsKICAgICAgICBpZiAobkdlc3Ap
IG1lbGR1bmcgKz0gJywgJyArIG5HZXNwICsgJyBnZXNwZXJydCc7CiAgICAgICAgaWYgKG5WZXJi
KSBtZWxkdW5nICs9ICcsICcgKyBuVmVyYiArICcgUGZsaWNodC1ibG9ja2llcnQnOwogICAgICAg
IGlmIChuRmVobCkgbWVsZHVuZyArPSAnLCAnICsgbkZlaGwgKyAnIEZlaGxlcic7CiAgICAgICAg
dG9hc3QobWVsZHVuZywgKG5Lb25mICsgbkdlc3AgKyBuVmVyYiArIG5GZWhsKSA/ICd3YXJudW5n
JyA6ICdlcmZvbGcnKTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICB0b2FzdCgn
QnVsay1GZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsKICAgIH0pOwp9CgovLyA9PT09
PSBQaGFzZSBIMjogUmFuZ2UtU2VsZWt0aW9uID09PT09CgpleHBvcnQgZnVuY3Rpb24gc2VsZWt0
aW9uTGVlcmVuKCkgewogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmdyaWQtemVsbGUu
Z3JpZC16ZWxsZS1zZWxla3RpZXJ0JykuZm9yRWFjaChmdW5jdGlvbih6KSB7CiAgICAgICAgei5j
bGFzc0xpc3QucmVtb3ZlKCdncmlkLXplbGxlLXNlbGVrdGllcnQnKTsKICAgIH0pOwogICAgWi5z
ZWxla3Rpb24gPSB7IGFua2VyRGF0dW06IG51bGwsIGFua2VyUGVyc29uSWQ6IG51bGwsIHJhbmdl
OiBbXSB9Owp9CgpleHBvcnQgZnVuY3Rpb24gc2VsZWt0aW9uQW53ZW5kZW4oKSB7CiAgICAvLyBW
aXN1ZWxsOiBLbGFzc2UgYXVmIGFsbGUgUmFuZ2UtWmVsbGVuCiAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCcuZ3JpZC16ZWxsZS5ncmlkLXplbGxlLXNlbGVrdGllcnQnKS5mb3JFYWNoKGZ1
bmN0aW9uKHopIHsKICAgICAgICB6LmNsYXNzTGlzdC5yZW1vdmUoJ2dyaWQtemVsbGUtc2VsZWt0
aWVydCcpOwogICAgfSk7CiAgICBaLnNlbGVrdGlvbi5yYW5nZS5mb3JFYWNoKGZ1bmN0aW9uKHIp
IHsKICAgICAgICB2YXIgeiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ncmlkLXplbGxlW2Rh
dGEtZGF0dW09IicgKyByLmRhdHVtICsgJyJdW2RhdGEtcGVyc29uPSInICsgU3RyaW5nKHIucGVy
c29uSWQpICsgJyJdJyk7CiAgICAgICAgaWYgKHopIHouY2xhc3NMaXN0LmFkZCgnZ3JpZC16ZWxs
ZS1zZWxla3RpZXJ0Jyk7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHNlbGVrdGlvblJhbmdl
QXVzQW5rZXIoemllbERhdHVtLCB6aWVsUGVyc29uSWQpIHsKICAgIHZhciBhID0gWi5zZWxla3Rp
b247CiAgICBpZiAoIWEuYW5rZXJEYXR1bSB8fCAhYS5hbmtlclBlcnNvbklkKSB7CiAgICAgICAg
Ly8gS2VpbiBBbmtlciAtPiBudXIgWmllbCBzZWxla3RpZXJlbgogICAgICAgIHJldHVybiBbeyBk
YXR1bTogemllbERhdHVtLCBwZXJzb25JZDogU3RyaW5nKHppZWxQZXJzb25JZCkgfV07CiAgICB9
CiAgICAvLyBkbmRaZWxsZW5ad2lzY2hlbiBsaWVmZXJ0IE9ITkUgQW5rZXIg4oCUIHdpciBmw7xn
ZW4gaWhuIGhpbnp1CiAgICB2YXIgendpc2NoZW4gPSBkbmRaZWxsZW5ad2lzY2hlbihhLmFua2Vy
RGF0dW0sIGEuYW5rZXJQZXJzb25JZCwgemllbERhdHVtLCBTdHJpbmcoemllbFBlcnNvbklkKSk7
CiAgICByZXR1cm4gW3sgZGF0dW06IGEuYW5rZXJEYXR1bSwgcGVyc29uSWQ6IFN0cmluZyhhLmFu
a2VyUGVyc29uSWQpIH1dLmNvbmNhdCh6d2lzY2hlbik7Cn0KCmV4cG9ydCBmdW5jdGlvbiBzZWxl
a3Rpb25BbmtlclNldHplbihkYXR1bSwgcGVyc29uSWQpIHsKICAgIFouc2VsZWt0aW9uLmFua2Vy
RGF0dW0gPSBkYXR1bTsKICAgIFouc2VsZWt0aW9uLmFua2VyUGVyc29uSWQgPSBTdHJpbmcocGVy
c29uSWQpOwogICAgWi5zZWxla3Rpb24ucmFuZ2UgPSBbeyBkYXR1bTogZGF0dW0sIHBlcnNvbklk
OiBTdHJpbmcocGVyc29uSWQpIH1dOwogICAgc2VsZWt0aW9uQW53ZW5kZW4oKTsKfQoKZXhwb3J0
IGZ1bmN0aW9uIHNlbGVrdGlvbkVyd2VpdGVybihkYXR1bSwgcGVyc29uSWQpIHsKICAgIFouc2Vs
ZWt0aW9uLnJhbmdlID0gc2VsZWt0aW9uUmFuZ2VBdXNBbmtlcihkYXR1bSwgcGVyc29uSWQpOwog
ICAgc2VsZWt0aW9uQW53ZW5kZW4oKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHNlbGVrdGlvbkFua2Vy
V2VydCgpIHsKICAgIHZhciBzID0gWi5zZWxla3Rpb247CiAgICBpZiAoIXMuYW5rZXJEYXR1bSkg
cmV0dXJuICcnOwogICAgcmV0dXJuICgoWi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbcy5hbmtl
ckRhdHVtXSB8fCB7fSlbcy5hbmtlclBlcnNvbklkXSB8fCAnJzsKfQoKCi8vID09PT09IEtvbW1l
bnRhcmUgPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBrb21tZW50YXJMYWRlbihkYXR1bSwgcGVyc29u
SWQpIHsKICAgIHZhciByYXcgPSAoKFoucGxhbnVuZy5rb21tZW50YXJlIHx8IHt9KVtkYXR1bV0g
fHwge30pW1N0cmluZyhwZXJzb25JZCldOwogICAgaWYgKCFyYXcpIHJldHVybiAnJzsKICAgIGlm
ICh0eXBlb2YgcmF3ID09PSAnc3RyaW5nJykgcmV0dXJuIHJhdzsKICAgIHJldHVybiByYXcudGV4
dCB8fCAnJzsKfQoKZXhwb3J0IGZ1bmN0aW9uIGtvbW1lbnRhck1ldGFMYWRlbihkYXR1bSwgcGVy
c29uSWQpIHsKICAgIC8vIExpZWZlcnQge3RleHQsIGdlYWVuZGVydEFtLCBnZWFlbmRlcnRWb259
IG9kZXIgbnVsbC4gQmFja3dhcmQtQ29tcGF0OiBhbHRlIFN0cmluZ3MKICAgIC8vIHdlcmRlbiBh
bHMge3RleHQsICcnLCAnJ30gYXVzZ2VnZWJlbi4KICAgIHZhciByYXcgPSAoKFoucGxhbnVuZy5r
b21tZW50YXJlIHx8IHt9KVtkYXR1bV0gfHwge30pW1N0cmluZyhwZXJzb25JZCldOwogICAgaWYg
KCFyYXcpIHJldHVybiBudWxsOwogICAgaWYgKHR5cGVvZiByYXcgPT09ICdzdHJpbmcnKSByZXR1
cm4geyB0ZXh0OiByYXcsIGdlYWVuZGVydEFtOiAnJywgZ2VhZW5kZXJ0Vm9uOiAnJyB9OwogICAg
cmV0dXJuIHsKICAgICAgICB0ZXh0OiByYXcudGV4dCB8fCAnJywKICAgICAgICBnZWFlbmRlcnRB
bTogcmF3LmdlYWVuZGVydEFtIHx8ICcnLAogICAgICAgIGdlYWVuZGVydFZvbjogcmF3LmdlYWVu
ZGVydFZvbiB8fCAnJwogICAgfTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGtvbW1lbnRhclRvb2x0aXAo
bWV0YSkgewogICAgLy8gQmF1dCBkaWUgSG92ZXItVG9vbHRpcC1aZWlsZSBmw7xyIGVpbmUgWmVs
bGUuCiAgICBpZiAoIW1ldGEgfHwgIW1ldGEudGV4dCkgcmV0dXJuICcnOwogICAgdmFyIHp1c2F0
eiA9ICcnOwogICAgaWYgKG1ldGEuZ2VhZW5kZXJ0QW0pIHsKICAgICAgICAvLyAiMjAyNi0wNS0w
MiAyMzo1NTowMSIg4oaSICIwMi4wNS4yNiAyMzo1NSIKICAgICAgICB2YXIgbSA9IFN0cmluZyht
ZXRhLmdlYWVuZGVydEFtKS5tYXRjaCgvXihcZHs0fSktKFxkezJ9KS0oXGR7Mn0pWyBUXShcZHsy
fSk6KFxkezJ9KS8pOwogICAgICAgIGlmIChtKSB6dXNhdHogPSBtWzNdICsgJy4nICsgbVsyXSAr
ICcuJyArIG1bMV0uc2xpY2UoMikgKyAnICcgKyBtWzRdICsgJzonICsgbVs1XTsKICAgICAgICBl
bHNlIHp1c2F0eiA9IG1ldGEuZ2VhZW5kZXJ0QW07CiAgICB9CiAgICB2YXIgYWN0b3IgPSAnJzsK
ICAgIGlmIChtZXRhLmdlYWVuZGVydFZvbikgewogICAgICAgIHZhciB2ID0gU3RyaW5nKG1ldGEu
Z2VhZW5kZXJ0Vm9uKTsKICAgICAgICAvLyAiRE9NQUlOXFxud2tlbm51bmciIOKGkiAibndrZW5u
dW5nIgogICAgICAgIHZhciBpZHggPSB2LmluZGV4T2YoJ1xcJyk7CiAgICAgICAgYWN0b3IgPSBp
ZHggPj0gMCA/IHYuc3Vic3RyaW5nKGlkeCArIDEpIDogdjsKICAgIH0KICAgIHZhciBoaW50ZW4g
PSAoenVzYXR6IHx8IGFjdG9yKSA/ICcgWycgKyBbenVzYXR6LCBhY3Rvcl0uZmlsdGVyKEJvb2xl
YW4pLmpvaW4oJywgJykgKyAnXScgOiAnJzsKICAgIHJldHVybiBtZXRhLnRleHQgKyBoaW50ZW47
Cn0KCi8vIEZMRDogUGZsaWNodC1TZXR6dW5ncy1GbGFnIChTY2hpY2h0IHd1cmRlIGdlZ2VuIFd1
bnNjaCB6dWdld2llc2VuKQpleHBvcnQgZnVuY3Rpb24gcGZsaWNodExhZGVuKGRhdHVtLCBwZXJz
b25JZCkgewogICAgcmV0dXJuICEhKChaLnBsYW51bmcucGZsaWNodCB8fCB7fSlbZGF0dW1dIHx8
IHt9KVtTdHJpbmcocGVyc29uSWQpXTsKfQoKLy8gRkxEOiBUYWdlc2RhdGVuIGZ1ZXIgZWluIERh
dHVtIGJlcmVjaG5lbi4KLy8gUmVpaGVuZm9sZ2U6IGV4cGxpY2l0IE92ZXJyaWRlIChwbGFudW5n
LnRhZ2VzZGF0ZW5bZGF0dW1dKSA+IFJvdGF0aW9uIChhZG1pbi50YWdlc2RhdGVuUm90YXRpb24p
LgovLyBSb3RhdGlvbjogYXVzZ2VoZW5kIHZvbiBzdGFydERhdHVtIGplZGVuIFRhZyBkZW4gSW5k
ZXggKG4gLSBzdGFydCkgJSAod29jaGVuQW56YWhsKjcpIG5laG1lbi4KLy8gdGFnZXNkYXRlbkZ1
ZXIgLyByb3RhdGlvbkZ1ZXIgLyBkc21HZXNldHp0IC8gdGFnZXNkYXRlbk1vZGFsT2VmZm5lbiAv
IGlzdEJlc2V0enVuZ0Z1ZXIKLy8gLT4ganMvZ3JpZC90YWdlc2RhdGVuLmpzCi8vID09PT09IFVu
dGVyYmVzZXR6dW5ncy1XYXJudW5nIChCLjYpID09PT09CgovLyBEYXJmIGRpZXNlIFBlcnNvbiBl
aW5lIFBsYW51bmdzLVVlYmVyc2ljaHQgYmVrb21tZW4/IFNVIGltbWVyOyBzb25zdCBudXIKLy8g
d2VubiBGdW5rdGlvbiBpbiBQbGFuZXIvRnVlaHJ1bmdzLUViZW5lIGlzdC4KZXhwb3J0IGZ1bmN0
aW9uIGhhdFBsYW51bmdzVWViZXJibGljaygpIHsKICAgIGlmIChaLmlzdFN1cGVyVXNlcikgcmV0
dXJuIHRydWU7CiAgICBpZiAoIVoubWVpbmVQZXJzb25JZCkgcmV0dXJuIGZhbHNlOwogICAgdmFy
IHAgPSBudWxsOwogICAgKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZm9yRWFjaChmdW5jdGlv
bihwcCkgewogICAgICAgIGlmIChTdHJpbmcocHAuaWQpID09PSBTdHJpbmcoWi5tZWluZVBlcnNv
bklkKSkgcCA9IHBwOwogICAgfSk7CiAgICBpZiAoIXApIHJldHVybiBmYWxzZTsKICAgIHZhciBm
ID0gcC5mdW5rdGlvbiB8fCAnJzsKICAgIHJldHVybiBmID09PSAnREdMJyB8fCBmID09PSAnMS4g
RUInIHx8IGYgPT09ICcxLiBFQiBWLic7Cn0KCi8vIER1cmNoc3VjaHQgZGllIGtvbW1lbmRlbiBO
IFRhZ2UgYWIgaGV1dGUgbmFjaCBVbnRlcmJlc2V0enVuZyBnZWdlbiBkYXMKLy8gaW4gdGFnZXNk
YXRlbkZ1ZXIoKSBrb25maWd1cmllcnRlIFNvbGwuIExpZWZlcnQgc29ydGllcnRlIExpc3RlIHZv
bgovLyB7IGRhdHVtLCBmZWhsdFRleHQgfS4gVGFnZSBvaG5lIFNvbGwgKHN0YWVya2VTb2xsPVsw
LDBdKSB3ZXJkZW4KLy8gdWViZXJzcHJ1bmdlbiAoei5CLiBXb2NoZW5lbmRlbi9GZWllcnRhZ2Us
IHNvZmVybiBkb3J0IGtlaW4gU29sbCBzdGVodCkuCmV4cG9ydCBmdW5jdGlvbiB1bnRlcmJlc2V0
enVuZ0FuYWx5c2UodGFnZUhvcml6b250KSB7CiAgICB2YXIgaGV1dGUgPSBuZXcgRGF0ZSgpOyBo
ZXV0ZS5zZXRIb3VycygwLDAsMCwwKTsKICAgIHZhciBwcm9ibGVtZSA9IFtdOwogICAgKFoudGFn
ZSB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAgaWYgKGQgPCBoZXV0ZSkgcmV0
dXJuOwogICAgICAgIHZhciBkaWZmID0gTWF0aC5mbG9vcigoZCAtIGhldXRlKSAvIDg2NDAwMDAw
KTsKICAgICAgICBpZiAoZGlmZiA+PSB0YWdlSG9yaXpvbnQpIHJldHVybjsKICAgICAgICB2YXIg
ZFN0ciA9IGRhdHVtU3RyKGQpOwogICAgICAgIHZhciBiZXMgPSBpc3RCZXNldHp1bmdGdWVyKGRT
dHIpOwogICAgICAgIHZhciB0ZCA9IGJlcy50ZCB8fCB7fTsKICAgICAgICB2YXIgc29sbCA9IHRk
LnN0YWVya2VTb2xsIHx8IFswLCAwXTsKICAgICAgICB2YXIgc29sbEYgPSBwYXJzZUludChzb2xs
WzBdLCAxMCkgfHwgMDsKICAgICAgICB2YXIgc29sbE0gPSBwYXJzZUludChzb2xsWzFdLCAxMCkg
fHwgMDsKICAgICAgICBpZiAoc29sbEYgPT09IDAgJiYgc29sbE0gPT09IDApIHJldHVybjsKICAg
ICAgICB2YXIgZmVobHQgPSBbXTsKICAgICAgICBpZiAoYmVzLmZ1ZWhydW5nSXN0IDwgc29sbEYp
IGZlaGx0LnB1c2goJ0bDvGhydW5nICcgKyBiZXMuZnVlaHJ1bmdJc3QgKyAnLycgKyBzb2xsRik7
CiAgICAgICAgaWYgKGJlcy5tYW5uc2NoYWZ0SXN0IDwgc29sbE0pIGZlaGx0LnB1c2goJ01hbm5z
Y2hhZnQgJyArIGJlcy5tYW5uc2NoYWZ0SXN0ICsgJy8nICsgc29sbE0pOwogICAgICAgIGlmIChm
ZWhsdC5sZW5ndGggPiAwKSBwcm9ibGVtZS5wdXNoKHsgZGF0dW06IGRTdHIsIGZlaGx0OiBmZWhs
dC5qb2luKCcsICcpIH0pOwogICAgfSk7CiAgICByZXR1cm4gcHJvYmxlbWU7Cn0KCmV4cG9ydCBm
dW5jdGlvbiB6dURhdHVtU2Nyb2xsZW4oZFN0cikgewogICAgdmFyIHplbGxlID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignI2RhdHVtLXplaWxlLXRhZyAua2QtemVsbGVbZGF0YS1kYXR1bT0iJyAr
IGRTdHIgKyAnIl0nKTsKICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyaWQt
c2Nyb2xsLWNvbnRhaW5lcicpOwogICAgaWYgKCF6ZWxsZSB8fCAhYykgcmV0dXJuOwogICAgdmFy
IHIgPSB6ZWxsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwgY3IgPSBjLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOwogICAgYy5zY3JvbGxMZWZ0ICs9IHIubGVmdCAtIGNyLmxlZnQgLSBjci53aWR0
aCAvIDM7Cn0KCmV4cG9ydCBmdW5jdGlvbiB1bnRlcmJlc2V0enVuZ1dhcm51bmdaZWlnZW4oKSB7
CiAgICBpZiAoIWludGVyYWN0aW9uSG9va3MuZmVhdHVyZUlzdEFrdGl2KCd1bnRlcmJlc2V0enVu
Z1dhcm51bmcnKSkgcmV0dXJuOwogICAgaWYgKCFoYXRQbGFudW5nc1VlYmVyYmxpY2soKSkgcmV0
dXJuOwogICAgLy8gSG9yaXpvbnQgPSBWZXJiaW5kbGljaGtlaXRzZmVuc3RlciAoRGVmYXVsdCAy
OCBUYWdlIC8gNCBXb2NoZW4gd2VubiBGZW5zdGVyIGF1cykuCiAgICB2YXIgZ3JlbnplID0gdmVy
YmluZGxpY2hrZWl0c1N0YXJ0RGF0dW0oKTsKICAgIHZhciBoZXV0ZSA9IG5ldyBEYXRlKFouaGV1
dGVTdHIgKyAnVDAwOjAwOjAwJyk7CiAgICB2YXIgaG9yaXpvbnRUYWdlID0gZ3JlbnplCiAgICAg
ICAgPyBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKChncmVuemUgLSBoZXV0ZSkgLyA4NjQwMDAwMCkp
CiAgICAgICAgOiAyODsKICAgIHZhciBwcm9ibGVtZSA9IHVudGVyYmVzZXR6dW5nQW5hbHlzZSho
b3Jpem9udFRhZ2UpOwogICAgaWYgKHByb2JsZW1lLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAg
dmFyIGVyc3RlciA9IHByb2JsZW1lWzBdOwogICAgdmFyIGhvcml6b250VGV4dCA9IGdyZW56ZQog
ICAgICAgID8gJ2lubmVyaGFsYiBkZXIgVmVyYmluZGxpY2hrZWl0IChiaXMgJyArIGRhdHVtRm9y
bWF0REUoZGF0dW1TdHIoZ3JlbnplKSkgKyAnKScKICAgICAgICA6ICdpbiBkZW4gbsOkY2hzdGVu
IDQgV29jaGVuJzsKICAgIHZhciB0eHQgPSBwcm9ibGVtZS5sZW5ndGggKyAocHJvYmxlbWUubGVu
Z3RoID09PSAxID8gJyBUYWcnIDogJyBUYWdlJykgKwogICAgICAgICAgICAgICcgdW50ZXJiZXNl
dHp0ICcgKyBob3Jpem9udFRleHQgKyAnLiBFcnN0ZXI6ICcgKwogICAgICAgICAgICAgIGRhdHVt
Rm9ybWF0REUoZXJzdGVyLmRhdHVtKSArICcgKCcgKyBlcnN0ZXIuZmVobHQgKyAnKS4gS2xpY2sg
ZsO8ciBTcHJ1bmcgenVtIFRhZy4nOwogICAgdG9hc3QodHh0LCAnd2FybnVuZycsIHsKICAgICAg
ICBkYXVlcjogMTAwMDAsCiAgICAgICAgb25DbGljazogZnVuY3Rpb24oKSB7IHp1RGF0dW1TY3Jv
bGxlbihlcnN0ZXIuZGF0dW0pOyB9CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHBmbGljaHRM
b2thbFNldHplbihkYXR1bSwgcGVyc29uSWQsIGZsYWcpIHsKICAgIGlmICghWi5wbGFudW5nLnBm
bGljaHQpIFoucGxhbnVuZy5wZmxpY2h0ID0ge307CiAgICBpZiAoZmxhZykgewogICAgICAgIGlm
ICghWi5wbGFudW5nLnBmbGljaHRbZGF0dW1dKSBaLnBsYW51bmcucGZsaWNodFtkYXR1bV0gPSB7
fTsKICAgICAgICBaLnBsYW51bmcucGZsaWNodFtkYXR1bV1bU3RyaW5nKHBlcnNvbklkKV0gPSB0
cnVlOwogICAgfSBlbHNlIHsKICAgICAgICBpZiAoWi5wbGFudW5nLnBmbGljaHRbZGF0dW1dKSB7
CiAgICAgICAgICAgIGRlbGV0ZSBaLnBsYW51bmcucGZsaWNodFtkYXR1bV1bU3RyaW5nKHBlcnNv
bklkKV07CiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhaLnBsYW51bmcucGZsaWNodFtkYXR1
bV0pLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgICAgZGVsZXRlIFoucGxhbnVuZy5wZmxp
Y2h0W2RhdHVtXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IGZ1bmN0
aW9uIGtvbW1lbnRhclNwZWljaGVybihkYXR1bSwgcGVyc29uSWQsIHRleHQpIHsKICAgIGlmICgh
Wi5wbGFudW5nLmtvbW1lbnRhcmUpIFoucGxhbnVuZy5rb21tZW50YXJlID0ge307CiAgICBpZiAo
IVoucGxhbnVuZy5rb21tZW50YXJlW2RhdHVtXSkgWi5wbGFudW5nLmtvbW1lbnRhcmVbZGF0dW1d
ID0ge307CiAgICBpZiAodGV4dCkgewogICAgICAgIC8vIE5ldWUgU3RydWt0dXIgbWl0IFRpbWVz
dGFtcCArIFVzZXIgKHdpcmQgYmVpbSBTZXJ2ZXIgYmVzdMOkdGlndDsgbG9rYWwgb3B0aW1pc3Rp
c2NoIHNldHplbikKICAgICAgICBaLnBsYW51bmcua29tbWVudGFyZVtkYXR1bV1bU3RyaW5nKHBl
cnNvbklkKV0gPSB7CiAgICAgICAgICAgIHRleHQ6IHRleHQsCiAgICAgICAgICAgIGdlYWVuZGVy
dEFtOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgnVCcsICcgJykuc2xpY2UoMCwg
MTkpLAogICAgICAgICAgICBnZWFlbmRlcnRWb246IFouYmVudXR6ZXIgfHwgJycKICAgICAgICB9
OwogICAgfSBlbHNlIHsKICAgICAgICBkZWxldGUgWi5wbGFudW5nLmtvbW1lbnRhcmVbZGF0dW1d
W1N0cmluZyhwZXJzb25JZCldOwogICAgfQoKICAgIGFwaVBvc3QoJy9hcGkvcGxhbnVuZy9rb21t
ZW50YXInLCB7IGRhdHVtOiBkYXR1bSwgcGVyc29uSWQ6IHBlcnNvbklkLCB0ZXh0OiB0ZXh0IH0p
CiAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHRvYXN0KCdLb21tZW50YXIgZ2VzcGVpY2hlcnQn
LCAnZXJmb2xnJyk7IH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxl
cjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKCiAgICAvLyBWaXN1ZWxsIGFrdHVhbGlz
aWVyZW4KICAgIHZhciB6ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmdyaWQtemVsbGVbZGF0
YS1kYXR1bT0iJyArIGRhdHVtICsgJyJdW2RhdGEtcGVyc29uPSInICsgcGVyc29uSWQgKyAnIl0n
KTsKICAgIGlmICh6KSB7CiAgICAgICAgei5jbGFzc0xpc3QudG9nZ2xlKCdoYXQta29tbWVudGFy
JywgISF0ZXh0KTsKICAgICAgICB2YXIgb3JpZ1RpdGxlID0gei50aXRsZS5yZXBsYWNlKC8gXHwg
S29tbWVudGFyOi4qJC8sICcnKTsKICAgICAgICBpZiAodGV4dCkgewogICAgICAgICAgICB2YXIg
bWV0YSA9IGtvbW1lbnRhck1ldGFMYWRlbihkYXR1bSwgcGVyc29uSWQpOwogICAgICAgICAgICB6
LnRpdGxlID0gb3JpZ1RpdGxlICsgJyB8IEtvbW1lbnRhcjogJyArIGtvbW1lbnRhclRvb2x0aXAo
bWV0YSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgei50aXRsZSA9IG9yaWdUaXRsZTsK
ICAgICAgICB9CiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBrb21tZW50YXJlSW1HcmlkQW56ZWln
ZW4oKSB7CiAgICB2YXIga29tbWVudGFyZSA9IFoucGxhbnVuZy5rb21tZW50YXJlIHx8IHt9Owog
ICAgT2JqZWN0LmtleXMoa29tbWVudGFyZSkuZm9yRWFjaChmdW5jdGlvbihkYXR1bSkgewogICAg
ICAgIHZhciB0YWdLb21tID0ga29tbWVudGFyZVtkYXR1bV07CiAgICAgICAgT2JqZWN0LmtleXMo
dGFnS29tbSkuZm9yRWFjaChmdW5jdGlvbihwaWQpIHsKICAgICAgICAgICAgaWYgKCF0YWdLb21t
W3BpZF0pIHJldHVybjsKICAgICAgICAgICAgdmFyIHogPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCcuZ3JpZC16ZWxsZVtkYXRhLWRhdHVtPSInICsgZGF0dW0gKyAnIl1bZGF0YS1wZXJzb249Iicg
KyBwaWQgKyAnIl0nKTsKICAgICAgICAgICAgaWYgKHopIHsKICAgICAgICAgICAgICAgIHouY2xh
c3NMaXN0LmFkZCgnaGF0LWtvbW1lbnRhcicpOwogICAgICAgICAgICAgICAgdmFyIG1ldGEgPSBr
b21tZW50YXJNZXRhTGFkZW4oZGF0dW0sIHBpZCk7CiAgICAgICAgICAgICAgICB2YXIgdGlwID0g
a29tbWVudGFyVG9vbHRpcChtZXRhKTsKICAgICAgICAgICAgICAgIGlmICh0aXApIHoudGl0bGUg
PSAoei50aXRsZSB8fCAnJykgKyAnIHwgS29tbWVudGFyOiAnICsgdGlwOwogICAgICAgICAgICB9
CiAgICAgICAgfSk7CiAgICB9KTsKfQo=
### FILE: js/grid/render.js | 72578
Ly8gPT09IGdyaWQvcmVuZGVyLmpzID09PQovLyBHcmlkLUF1ZmJhdTogVGFnZS1HZW5lcmF0aW9u
LCBUYWdlc2luZm9zIChGZWllcnRhZ2UvRmVyaWVuL0dlYnVydHN0YWdlLwovLyBTb25kZXJ0ZXJt
aW5lKSwgU3TDpHJrZS1CZXJlY2hudW5nLCBTY2hyYWZmdXItTG9naWssIGFsbGUgUmVuZGVyZXIg
KEtvcGYsCi8vIE5hbWVuc3NwYWx0ZSwgRGF0ZW4tR3JpZCwgWmVsbGVuKSBzb3dpZSBkZXIgZ2Fu
emUgSGVhZGVyLUtvbmZpZy1Lb21wbGV4Ci8vIChDb3VudGVyLS9NYXJrZXItL0hlYWRlci1Lb25m
aWcgKyBIRUFERVJfKi1Lb25zdGFudGVuICsgTGFiZWwtRGVmYXVsdHMpLgovLwovLyBDcm9zcy1N
b2R1bGUtSG9va3MgKFBoYXNlIDViLVdvcmthcm91bmQpOgovLyAgIGVkaXRvck9lZmZuZW4sIGVk
aXRvck9lZmZuZW5NaXRWb3JhdXN3YWhsIC0+IGdyaWQvZWRpdG9yLmpzIChQaGFzZSA1YykKLy8g
ICBydWhlemVpdFBydWVmZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gZ3JpZC9lZGl0
b3IuanMgKFBoYXNlIDVjKQovLyAgIHBmbGljaHRMYWRlbiwga29tbWVudGFyTWV0YUxhZGVuLAov
LyAgIGtvbW1lbnRhclRvb2x0aXAsIGtvbW1lbnRhckxhZGVuICAgICAgICAgICAtPiBncmlkL2lu
dGVyYWN0aW9uLmpzIChQaGFzZSA1ZCkKLy8gICB1bnRlcmJlc2V0enVuZ0FuYWx5c2UsIGhhdFBs
YW51bmdzVWViZXJibGljaywKLy8gICB6dURhdHVtU2Nyb2xsZW4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLT4gZ3JpZC9pbnRlcmFjdGlvbi5qcyAoUGhhc2UgNWQpCi8vICAgc29uZGVyRnVl
ckRhdHVtLCBzb25kZXJMb2dvc0h0bWwsCi8vICAgc29uZGVyVGl0ZWxBdXNUZXh0LCBzb25kZXJC
eUlkLAovLyAgIHNvbmRlcldhcm5Nb2RhbFplaWdlbiwgc29uZGVyQW5zaWNodE1vZGFsWmVpZ2Vu
IC0+IGFkbWluL2xpc3Rlbi5qcyAoUGhhc2UgNikKLy8gICBhcHBCcmFuZGluZ0Fud2VuZGVuLCBj
dXN0b21Mb2dvQW53ZW5kZW4gICAgLT4gdWkvdGhlbWUtYnJhbmRpbmcgKGJlcmVpdHMgZGEpCgpp
bXBvcnQgeyBaIH0gZnJvbSAnLi4vY29yZS9zdGF0ZS5qcyc7CmltcG9ydCB7CiAgICBlc2NhcGVI
VE1MLCBlc2NhcGVBdHRyLAogICAgZGF0dW1TdHIsIGRhdHVtRm9ybWF0REUsIGRhdHVtS3VyekRF
LCB3b2NoZW50YWdLdXJ6LCBtb25hdHNOYW1lLAogICAgaXN0V29jaGVuZW5kZSwgcGVyc29uTmFt
ZSwgcGVyc29uVm9sbE5hbWUKfSBmcm9tICcuLi9jb3JlL3V0aWwuanMnOwppbXBvcnQgeyBtb2Rh
bFplaWdlbiB9IGZyb20gJy4uL3VpL21vZGFsLmpzJzsKaW1wb3J0IHsgaWNvblN2Z0h0bWwgfSBm
cm9tICcuLi91aS9pY29ucy5qcyc7CmltcG9ydCB7IGN1c3RvbUxvZ29BbndlbmRlbiB9IGZyb20g
Jy4uL3VpL3RoZW1lLWJyYW5kaW5nLmpzJzsKaW1wb3J0IHsgdG9hc3QgfSBmcm9tICcuLi91aS90
b2FzdC5qcyc7CmltcG9ydCB7IGRhdGVuTGFkZW4gfSBmcm9tICcuLi9jb3JlL2RhdGVuTGFkZW4u
anMnOwppbXBvcnQgewogICAgZGFyZkRzbVRvZ2dlbG4sIGlzdEluVmVyYmluZGxpY2hrZWl0LCB2
ZXJiaW5kbGljaGtlaXRzU3RhcnREYXR1bSwKICAgIGRhcmZFcmlubmVydW5nU2VoZW4sIG9mZmVu
ZUVyaW5uZXJ1bmdlbiwgbmF2U2ljaHRiYXJrZWl0QW53ZW5kZW4sCiAgICBkYXJmQWRtaW5UYWIs
IGRhcmZTdGF0aXN0aWtUYWIsIGRhcmZMb2didWNoVGFiLAogICAgdmlld0FzQWt0aXZpZXJlbiwg
dmlld0FzQmVlbmRlbgp9IGZyb20gJy4uL2NvcmUvcGVybWlzc2lvbnMuanMnOwppbXBvcnQgewog
ICAgdGFnZXNkYXRlbkZ1ZXIsIHJvdGF0aW9uRnVlciwgZHNtR2VzZXR6dCwKICAgIHRhZ2VzZGF0
ZW5Nb2RhbE9lZmZuZW4sIGlzdEJlc2V0enVuZ0Z1ZXIKfSBmcm9tICcuL3RhZ2VzZGF0ZW4uanMn
OwppbXBvcnQgeyBzeW5jRmxhc2gsIHN5bmNGbGFzaFplbGxlIH0gZnJvbSAnLi4vc3luYy9zeW5j
LWNsaWVudC5qcyc7CmltcG9ydCB7IGxvY2tLZXksIGxvY2tUb29sdGlwVGV4dCB9IGZyb20gJy4u
L3N5bmMvY2VsbC1sb2NrLmpzJzsKCmV4cG9ydCB2YXIgcmVuZGVySG9va3MgPSB7CiAgICBlZGl0
b3JPZWZmbmVuOiBudWxsLCAgICAgICAgICAgLy8gZ3JpZC9lZGl0b3IuanMKICAgIGVkaXRvck9l
ZmZuZW5NaXRWb3JhdXN3YWhsOiBudWxsLAogICAgcnVoZXplaXRQcnVlZmVuOiBudWxsLCAgICAg
ICAgIC8vIGdyaWQvZWRpdG9yLmpzCiAgICBwZmxpY2h0TGFkZW46IG51bGwsICAgICAgICAgICAg
Ly8gZ3JpZC9pbnRlcmFjdGlvbi5qcwogICAga29tbWVudGFyTWV0YUxhZGVuOiBudWxsLCAgICAg
IC8vIGdyaWQvaW50ZXJhY3Rpb24uanMKICAgIGtvbW1lbnRhclRvb2x0aXA6IG51bGwsICAgICAg
ICAvLyBncmlkL2ludGVyYWN0aW9uLmpzCiAgICBrb21tZW50YXJMYWRlbjogbnVsbCwgICAgICAg
ICAgLy8gZ3JpZC9pbnRlcmFjdGlvbi5qcwogICAga29tbWVudGFyZUltR3JpZEFuemVpZ2VuOiBu
dWxsLC8vIGdyaWQvaW50ZXJhY3Rpb24uanMKICAgIHVudGVyYmVzZXR6dW5nQW5hbHlzZTogbnVs
bCwgICAvLyBncmlkL2ludGVyYWN0aW9uLmpzCiAgICBoYXRQbGFudW5nc1VlYmVyYmxpY2s6IG51
bGwsICAgLy8gZ3JpZC9pbnRlcmFjdGlvbi5qcwogICAgenVEYXR1bVNjcm9sbGVuOiBudWxsLCAg
ICAgICAgIC8vIGdyaWQvaW50ZXJhY3Rpb24uanMKICAgIHNvbmRlckZ1ZXJEYXR1bTogbnVsbCwg
ICAgICAgICAvLyBhZG1pbi9saXN0ZW4uanMKICAgIHNvbmRlckxvZ29zSHRtbDogbnVsbCwgICAg
ICAgICAvLyBhZG1pbi9saXN0ZW4uanMKICAgIHNvbmRlclRpdGVsQXVzVGV4dDogbnVsbCwgICAg
ICAvLyBhZG1pbi9saXN0ZW4uanMKICAgIHNvbmRlckJ5SWQ6IG51bGwsICAgICAgICAgICAgICAv
LyBhZG1pbi9saXN0ZW4uanMKICAgIHNvbmRlcldhcm5Nb2RhbFplaWdlbjogbnVsbCwgICAvLyBh
ZG1pbi9saXN0ZW4uanMKICAgIHNvbmRlckFuc2ljaHRNb2RhbFplaWdlbjogbnVsbCwvLyBhZG1p
bi9saXN0ZW4uanMKICAgIGFwcEJyYW5kaW5nQW53ZW5kZW46IG51bGwsICAgICAvLyBhcHAuanMg
KGJsZWlidCB2b3JlcnN0IGRvcnQpCiAgICB3cFJlbmRlcm46IG51bGwsICAgICAgICAgICAgICAg
Ly8gd29jaGVucGxhbi93b2NoZW5wbGFuLmpzIChQaGFzZSA3KQogICAgcHBSZW5kZXJuOiBudWxs
LCAgICAgICAgICAgICAgIC8vIHdvY2hlbnBsYW4vd29jaGVucGxhbi5qcyAoUGhhc2UgNykKICAg
IGxvZ2J1Y2hMYWRlbjogbnVsbCwgICAgICAgICAgICAvLyBsb2didWNoL2xvZ2J1Y2guanMgKFBo
YXNlIDcpCiAgICBzdGF0aXN0aWtSZW5kZXJuOiBudWxsLCAgICAgICAgLy8gc3RhdHMvc3RhdGlz
dGlrLmpzIChQaGFzZSA3KQogICAgc3RhdGlzdGlrTGFkZW46IG51bGwsICAgICAgICAgIC8vIHN0
YXRzL3N0YXRpc3Rpay5qcyAoUGhhc2UgNykKICAgIGFkbWluUmVuZGVybjogbnVsbCwgICAgICAg
ICAgICAvLyBhZG1pbi9hZG1pbi5qcyAoUGhhc2UgNikKICAgIG1hcmtlckhpbnRlcmdydW5kSXN0
VHJhbnNwYXJlbnQ6IG51bGwgIC8vIGFkbWluL2xpc3Rlbi5qcyAoUGhhc2UgNikKfTsKCi8vID09
PT09IFRFUk1JTl9JTkZPICsgRmVpZXJ0YWctTW9kYWwgPT09PT0KCi8vIGFsbGVFaWdlbmVuTG9j
a3NGcmVpZ2ViZW5CZWFjb24gLT4ganMvc3luYy9zeW5jLWNsaWVudC5qcwoKLy8gZGF0ZW5MYWRl
biArIGFkbWluTGlzdGVuTm9ybWFsaXNpZXJlbiArIEFETUlOX0xJU1RfRkVMREVSIC0+IGpzL2Nv
cmUvZGF0ZW5MYWRlbi5qcwoKLy8gPT09PT0gRmVpZXJ0YWctL0Zlcmllbi1Nb2RhbCBtaXQgSGlu
dGVyZ3J1bmQtSW5mbyA9PT09PQovLyBTdGF0aXNjaGUgTWFwIG1pdCBrdXJhdGllcnRlbiBFcmts
YWVydW5nZW4gcHJvIEJlemVpY2hudW5nLgovLyBNYXRjaCBwZXIgQmV6ZWljaG51bmdzLVN0cmlu
ZyAoY2FzZS1pbnNlbnNpdGl2ZSBTdWJzdHJpbmctTWF0Y2gKLy8gdmlhIFRFUk1JTl9JTkZPX0tF
WVMtTG9va3VwIHVudGVuKSwgZGFtaXQgU3VmZml4ZSB3aWUg4oCeKEJlZ2lubikiIGdyZWlmZW4u
CmV4cG9ydCB2YXIgVEVSTUlOX0lORk8gPSB7CiAgICAvLyA9PT09PSBHZXNldHpsaWNoZSBGZWll
cnRhZ2UgTlJXID09PT09CiAgICAnTmV1amFocic6IHsKICAgICAgICBrYXRlZ29yaWU6ICdnZXNl
dHpsaWNoJywgd2lraTogJ05ldWphaHInLAogICAgICAgIHRleHQ6ICdFcnN0ZXIgVGFnIGRlcyBi
w7xyZ2VybGljaGVuIEthbGVuZGVyamFocmVzIHVuZCBpbiBhbGxlbiAxNiBCdW5kZXNsw6RuZGVy
biBnZXNldHpsaWNoZXIgRmVpZXJ0YWcuIEdlaHQgYXVmIGRlbiBFcmxhc3Mgdm9uIFBhcHN0IElu
bm96ZW56IFhJSS4gKDE2OTEpIHp1csO8Y2ssIGRlciBkZW4gMS4gSmFudWFyIGFscyBKYWhyZXNh
bmZhbmcgaW0ga2F0aG9saXNjaGVuIEthbGVuZGVyIGZlc3RsZWd0ZS4nCiAgICB9LAogICAgJ0th
cmZyZWl0YWcnOiB7CiAgICAgICAga2F0ZWdvcmllOiAnZ2VzZXR6bGljaCcsIHdpa2k6ICdLYXJm
cmVpdGFnJywKICAgICAgICB0ZXh0OiAnSMO2Y2hzdGVyIEZlaWVydGFnIGRlciBldmFuZ2VsaXNj
aGVuIEtpcmNoZSwgR2VkZW5rdGFnIGFuIGRpZSBLcmV1emlndW5nIEplc3UuIEluIERldXRzY2hs
YW5kIGJ1bmRlc3dlaXQgZ2VzZXR6bGljaGVyIEZlaWVydGFnIG1pdCBiZXNvbmRlcmVtIFRhbnot
IHVuZCBWZXJhbnN0YWx0dW5nc3ZlcmJvdCAo4oCec3RpbGxlciBGZWllcnRhZyIpLicKICAgIH0s
CiAgICAnT3N0ZXJtb250YWcnOiB7CiAgICAgICAga2F0ZWdvcmllOiAnZ2VzZXR6bGljaCcsIHdp
a2k6ICdPc3Rlcm1vbnRhZycsCiAgICAgICAgdGV4dDogJ1p3ZWl0ZXIgVGFnIGRlcyBPc3RlcmZl
c3Rlcy4gRXJpbm5lcnQgYW4gZGllIEJlZ2VnbnVuZyBkZXMgYXVmZXJzdGFuZGVuZW4gSmVzdXMg
bWl0IHp3ZWkgSsO8bmdlcm4gYXVmIGRlbSBXZWcgbmFjaCBFbW1hdXMgKExrIDI0KS4gR2VzZXR6
bGljaGVyIEZlaWVydGFnIGluIERldXRzY2hsYW5kIHVuZCB2aWVsZW4gYW5kZXJlbiBjaHJpc3Rs
aWNoIGdlcHLDpGd0ZW4gTMOkbmRlcm4uJwogICAgfSwKICAgICdUYWcgZGVyIEFyYmVpdCc6IHsK
ICAgICAgICBrYXRlZ29yaWU6ICdnZXNldHpsaWNoJywgd2lraTogJ0Vyc3Rlcl9NYWknLAogICAg
ICAgIHRleHQ6ICdJbnRlcm5hdGlvbmFsZXIgS2FtcGYtIHVuZCBGZWllcnRhZyBkZXIgQXJiZWl0
ZXJiZXdlZ3VuZywgaW4gRGV1dHNjaGxhbmQgc2VpdCAxOTMzIGdlc2V0emxpY2hlciBGZWllcnRh
Zy4gR2VodCB6dXLDvGNrIGF1ZiBkaWUgR2VuZXJhbHN0cmVpay1CZXdlZ3VuZyBpbiBDaGljYWdv
IDE4ODYgKEhheW1hcmtldC1BZmbDpHJlKSB1bmQgZGllIEZvcmRlcnVuZyBuYWNoIGRlbSBBY2h0
c3R1bmRlbnRhZy4nCiAgICB9LAogICAgJ0NocmlzdGkgSGltbWVsZmFocnQnOiB7CiAgICAgICAg
a2F0ZWdvcmllOiAnZ2VzZXR6bGljaCcsIHdpa2k6ICdDaHJpc3RpX0hpbW1lbGZhaHJ0JywKICAg
ICAgICB0ZXh0OiAnQ2hyaXN0bGljaGVzIEhvY2hmZXN0IDM5IFRhZ2UgbmFjaCBPc3Rlcm4gKGlt
bWVyIGVpbiBEb25uZXJzdGFnKS4gRXJpbm5lcnQgYW4gZGllIEVyaMO2aHVuZyBKZXN1IENocmlz
dGkgenUgR290dCAoQXBnIDEpLiBJbiBEZXV0c2NobGFuZCB6dWdsZWljaCBWYXRlcnRhZyB1bmQg
Z2VzZXR6bGljaGVyIEZlaWVydGFnLicKICAgIH0sCiAgICAnUGZpbmdzdG1vbnRhZyc6IHsKICAg
ICAgICBrYXRlZ29yaWU6ICdnZXNldHpsaWNoJywgd2lraTogJ1BmaW5nc3Rtb250YWcnLAogICAg
ICAgIHRleHQ6ICdad2VpdGVyIFRhZyBkZXMgUGZpbmdzdGZlc3RlcywgNTAgVGFnZSBuYWNoIE9z
dGVybi4gRXJpbm5lcnQgYW4gZGllIEF1c3NlbmR1bmcgZGVzIEhlaWxpZ2VuIEdlaXN0ZXMgKEFw
ZyAyKSDigJQgZGllIOKAnkdlYnVydHNzdHVuZGUgZGVyIEtpcmNoZSIuIEdlc2V0emxpY2hlciBG
ZWllcnRhZyBpbiBEZXV0c2NobGFuZCB1bmQgbWVocmVyZW4gZXVyb3DDpGlzY2hlbiBMw6RuZGVy
bi4nCiAgICB9LAogICAgJ0Zyb25sZWljaG5hbSc6IHsKICAgICAgICBrYXRlZ29yaWU6ICdnZXNl
dHpsaWNoJywgd2lraTogJ0Zyb25sZWljaG5hbScsCiAgICAgICAgdGV4dDogJ0hvY2hmZXN0IGRl
ciByw7ZtaXNjaC1rYXRob2xpc2NoZW4gS2lyY2hlIHp1IEVocmVuIGRlciBsZWlibGljaGVuIEdl
Z2Vud2FydCBKZXN1IENocmlzdGkgaW0gU2FrcmFtZW50IGRlciBFdWNoYXJpc3RpZS4gR2VmZWll
cnQgYW0gendlaXRlbiBEb25uZXJzdGFnIG5hY2ggUGZpbmdzdGVuICg2MCBUYWdlIG5hY2ggT3N0
ZXJuKS4gR2VzZXR6bGljaGVyIEZlaWVydGFnIHUuIGEuIGluIE5SVywgQmF5ZXJuLCBCYWRlbi1X
w7xydHRlbWJlcmcsIFJMUCwgU2FhcmxhbmQsIEhlc3Nlbi4nCiAgICB9LAogICAgJ1RhZyBkZXIg
RGV1dHNjaGVuIEVpbmhlaXQnOiB7CiAgICAgICAga2F0ZWdvcmllOiAnZ2VzZXR6bGljaCcsIHdp
a2k6ICdUYWdfZGVyX0RldXRzY2hlbl9FaW5oZWl0JywKICAgICAgICB0ZXh0OiAnTmF0aW9uYWxm
ZWllcnRhZyBkZXIgQnVuZGVzcmVwdWJsaWsgRGV1dHNjaGxhbmQsIGVyaW5uZXJ0IGFuIGRpZSBX
aWVkZXJ2ZXJlaW5pZ3VuZyBhbSAzLiBPa3RvYmVyIDE5OTAgKEJlaXRyaXR0IGRlciBERFIgenVy
IEJ1bmRlc3JlcHVibGlrKS4gRWluemlnZXIgYnVuZGVzd2VpdCBlaW5oZWl0bGljaCBnZXNldHps
aWNoZXIgRmVpZXJ0YWcuJwogICAgfSwKICAgICdBbGxlcmhlaWxpZ2VuJzogewogICAgICAgIGth
dGVnb3JpZTogJ2dlc2V0emxpY2gnLCB3aWtpOiAnQWxsZXJoZWlsaWdlbicsCiAgICAgICAgdGV4
dDogJ0NocmlzdGxpY2hlcyBIb2NoZmVzdCB6dSBFaHJlbiBhbGxlciDigJQgYXVjaCBkZXIgbmFt
ZW50bGljaCBuaWNodCBiZWthbm50ZW4g4oCUIEhlaWxpZ2VuLiBHZWZlaWVydCBhbSAxLiBOb3Zl
bWJlciwgZ2VzZXR6bGljaGVyIEZlaWVydGFnIGluIE5SVywgQmF5ZXJuLCBCYWRlbi1Xw7xydHRl
bWJlcmcsIFJMUCB1bmQgU2FhcmxhbmQuIEF1Y2ggZWluIOKAnnN0aWxsZXIgRmVpZXJ0YWciIG1p
dCBUYW56dmVyYm90LicKICAgIH0sCiAgICAnMS4gV2VpaG5hY2h0c3RhZyc6IHsKICAgICAgICBr
YXRlZ29yaWU6ICdnZXNldHpsaWNoJywgd2lraTogJ1dlaWhuYWNodGVuJywKICAgICAgICB0ZXh0
OiAnQ2hyaXN0bGljaGVzIEhvY2hmZXN0IHp1ciBHZWJ1cnQgSmVzdSBDaHJpc3RpLCBnZWZlaWVy
dCBhbSAyNS4gRGV6ZW1iZXIuIEJ1bmRlc3dlaXQgZ2VzZXR6bGljaGVyIEZlaWVydGFnLiBMaXR1
cmdpc2NoIHdpcmQgZGVyIFRhZyDigJ5Ib2NoZmVzdCBkZXIgR2VidXJ0IGRlcyBIZXJybiIgZ2Vu
YW5udC4nCiAgICB9LAogICAgJzIuIFdlaWhuYWNodHN0YWcnOiB7CiAgICAgICAga2F0ZWdvcmll
OiAnZ2VzZXR6bGljaCcsIHdpa2k6ICdTdGVwaGFuc3RhZycsCiAgICAgICAgdGV4dDogJ0F1Y2gg
4oCeU3RlcGhhbnN0YWciIOKAlCBHZWRlbmt0YWcgZGVzIGhlaWxpZ2VuIFN0ZXBoYW51cywgZGVz
IGVyc3RlbiBjaHJpc3RsaWNoZW4gTcOkcnR5cmVycy4gQnVuZGVzd2VpdCBnZXNldHpsaWNoZXIg
RmVpZXJ0YWcuIEluIGFuZ2Vsc8OkY2hzaXNjaGVuIEzDpG5kZXJuIGFscyDigJ5Cb3hpbmcgRGF5
IiBiZWthbm50LicKICAgIH0sCiAgICAnSGVpbGlnYWJlbmQnOiB7CiAgICAgICAga2F0ZWdvcmll
OiAnZ2VzZXR6bGljaCcsIHdpa2k6ICdIZWlsaWdhYmVuZCcsCiAgICAgICAgdGV4dDogJ1ZvcmFi
ZW5kIGRlcyBXZWlobmFjaHRzZmVzdGVzICgyNC4gRGV6ZW1iZXIpLiBLZWluIGdlc2V0emxpY2hl
ciBGZWllcnRhZyBpbiBEZXV0c2NobGFuZCwgamVkb2NoIHNpbmQgR2VzY2jDpGZ0ZSBhYiAxNCBV
aHIgbWVpc3QgZ2VzY2hsb3NzZW4sIHZpZWxlIFRhcmlmdmVydHLDpGdlIHJlZ2VsbiBlaW5lbiBo
YWxiZW4gQXJiZWl0c3RhZy4gWmVudHJhbC10cmFkaXRpb25lbGxlciBUYWcgZGVyIEJlc2NoZXJ1
bmcuJwogICAgfSwKICAgICdTaWx2ZXN0ZXInOiB7CiAgICAgICAga2F0ZWdvcmllOiAnZ2VzZXR6
bGljaCcsIHdpa2k6ICdTaWx2ZXN0ZXInLAogICAgICAgIHRleHQ6ICdMZXR6dGVyIFRhZyBkZXMg
SmFocmVzICgzMS4gRGV6ZW1iZXIpLCBiZW5hbm50IG5hY2ggUGFwc3QgU2lsdmVzdGVyIEkuIChn
ZXN0b3JiZW4gMzM1KS4gS2VpbiBnZXNldHpsaWNoZXIgRmVpZXJ0YWcsIGFiZXIgdHJhZGl0aW9u
ZWxsIGVpbiBoYWxiZXIgQXJiZWl0c3RhZyBtaXQgRmV1ZXJ3ZXJrLUJyYXVjaCB6dXIgTWl0dGVy
bmFjaHQuJwogICAgfSwKCiAgICAvLyA9PT09PSBUw7xya2lzY2hlIE5hdGlvbmFsZmVpZXJ0YWdl
ID09PT09CiAgICAnQ29jdWsgQmF5cmFtaSc6IHsKICAgICAgICBrYXRlZ29yaWU6ICd0dWVya2lz
Y2gnLCB3aWtpOiAnVGFnX2Rlc19LaW5kZXNfdW5kX2Rlcl9uYXRpb25hbGVuX1NvdXZlcsOkbml0
w6R0JywKICAgICAgICB0ZXh0OiAn4oCeVGFnIGRlcyBLaW5kZXMgdW5kIGRlciBuYXRpb25hbGVu
IFNvdXZlcsOkbml0w6R0IiAow4dvY3VrIHZlIFVsdXNhbCBFZ2VtZW5saWsgQmF5cmFtxLEpLCAy
My4gQXByaWwuIEVyaW5uZXJ0IGFuIGRpZSBlcnN0ZSBTaXR6dW5nIGRlciBHcm/Dn2VuIE5hdGlv
bmFsdmVyc2FtbWx1bmcgMTkyMCDigJQgQXRhdMO8cmsgd2lkbWV0ZSBkZW4gVGFnIGRlbiBLaW5k
ZXJuLiBFaW56aWdlciBuYXRpb25hbGVyIEtpbmRlcnRhZyBkZXIgV2VsdCBtaXQgZ2VzZXR6bGlj
aGVtIFN0YXR1cy4nCiAgICB9LAogICAgJ0F0YXR1ZXJrLUdlZGVua3RhZywgSnVnZW5kLSB1bmQg
U3BvcnQtVGFnJzogewogICAgICAgIGthdGVnb3JpZTogJ3R1ZXJraXNjaCcsIHdpa2k6ICdBdGF0
w7xyay1HZWRlbmt0YWcsX0p1Z2VuZC1fdW5kX1Nwb3J0ZmVzdCcsCiAgICAgICAgdGV4dDogJzE5
LiBNYWkg4oCUIGVyaW5uZXJ0IGFuIGRpZSBMYW5kdW5nIE11c3RhZmEgS2VtYWwgQXRhdMO8cmtz
IGluIFNhbXN1biAxOTE5LCBkZW0gQmVnaW5uIGRlcyB0w7xya2lzY2hlbiBCZWZyZWl1bmdza2Ft
cGZlcy4gR2xlaWNoemVpdGlnIGRlciBHZWJ1cnRzdGFnLCBkZW4gQXRhdMO8cmsgc2ljaCBzeW1i
b2xpc2NoIHfDpGhsdGUuIEdlc2V0emxpY2hlciBGZWllcnRhZywgZGVtIEp1Z2VuZC0gdW5kIFNw
b3J0LUdlaXN0IGdld2lkbWV0LicKICAgIH0sCiAgICAnVGFnIGRlciBEZW1va3JhdGllIHVuZCBu
YXRpb25hbGVuIEVpbmhlaXQnOiB7CiAgICAgICAga2F0ZWdvcmllOiAndHVlcmtpc2NoJywgd2lr
aTogJ0RlbW9rcmF0aWUtX3VuZF9GcmVpaGVpdHN0YWcnLAogICAgICAgIHRleHQ6ICcxNS4gSnVs
aSDigJQgZXJpbm5lcnQgYW4gZGVuIGdlc2NoZWl0ZXJ0ZW4gUHV0c2NodmVyc3VjaCAyMDE2IGdl
Z2VuIGRpZSB0w7xya2lzY2hlIFJlZ2llcnVuZy4gU2VpdCAyMDE3IGdlc2V0emxpY2hlciBHZWRl
bmt0YWcuJwogICAgfSwKICAgICdaYWZlciBCYXlyYW1pJzogewogICAgICAgIGthdGVnb3JpZTog
J3R1ZXJraXNjaCcsIHdpa2k6ICdaYWZlcl9CYXlyYW3EsScsCiAgICAgICAgdGV4dDogJ+KAnlNp
ZWctVGFnIiAoMzAuIEF1Z3VzdCkg4oCUIGdlZGVua3QgZGVyIFNjaGxhY2h0IHZvbiBEdW1sdXDE
sW5hciAxOTIyLCBkZW0gZW50c2NoZWlkZW5kZW4gU2llZyBpbSBUw7xya2lzY2hlbiBCZWZyZWl1
bmdza3JpZWcgZ2VnZW4gR3JpZWNoZW5sYW5kLiBXaWNodGlnc3RlciBtaWxpdMOkcmlzY2hlciBH
ZWRlbmt0YWcgZGVyIFTDvHJrZWkuJwogICAgfSwKICAgICdDdW1odXJpeWV0IEJheXJhbWknOiB7
CiAgICAgICAga2F0ZWdvcmllOiAndHVlcmtpc2NoJywgd2lraTogJ1RhZ19kZXJfUmVwdWJsaWtf
KFTDvHJrZWkpJywKICAgICAgICB0ZXh0OiAn4oCeVGFnIGRlciBSZXB1YmxpayIgKDI5LiBPa3Rv
YmVyKSDigJQgTmF0aW9uYWxmZWllcnRhZyBkZXIgVMO8cmtlaSwgZ2VkZW5rdCBkZXIgQXVzcnVm
dW5nIGRlciBSZXB1YmxpayAxOTIzIG5hY2ggZGVtIEVuZGUgZGVzIE9zbWFuaXNjaGVuIFJlaWNo
cy4gV2ljaHRpZ3N0ZXIgc3RhYXRsaWNoZXIgRmVpZXJ0YWcsIGdlZmVpZXJ0IG1pdCBQYXJhZGVu
IHVuZCBGZXVlcndlcmsuJwogICAgfSwKICAgICdBdGF0dWVyay1Ub2Rlc3RhZyc6IHsKICAgICAg
ICBrYXRlZ29yaWU6ICd0dWVya2lzY2gnLCB3aWtpOiAnTXVzdGFmYV9LZW1hbF9BdGF0w7xyaycs
CiAgICAgICAgdGV4dDogJzEwLiBOb3ZlbWJlciwgMDk6MDUgVWhyIOKAlCBUb2Rlc3plaXRwdW5r
dCB2b24gTXVzdGFmYSBLZW1hbCBBdGF0w7xyayAoMTkzOCksIFN0YWF0c2dyw7xuZGVyIHVuZCBl
cnN0ZXIgUHLDpHNpZGVudCBkZXIgdMO8cmtpc2NoZW4gUmVwdWJsaWsuIEltIGdhbnplbiBMYW5k
IHdpcmQgbWl0IFNpcmVuZW4gdW5kIFNjaHdlaWdlbWludXRlIGdlZGFjaHQ7IMO2ZmZlbnRsaWNo
ZSBWZXJhbnN0YWx0dW5nZW4gd2VyZGVuIG1laXN0IGFiZ2VzYWd0LicKICAgIH0sCgogICAgLy8g
PT09PT0gSsO8ZGlzY2hlIEhhdXB0ZmVzdGUgPT09PT0KICAgICdQdXJpbSc6IHsKICAgICAgICBr
YXRlZ29yaWU6ICdqdWVkaXNjaCcsIHdpa2k6ICdQdXJpbScsCiAgICAgICAgdGV4dDogJ0ZyZXVk
ZW5mZXN0IGFtIDE0LiBBZGFyIChGZWJydWFyL03DpHJ6KSwgZXJpbm5lcnQgYW4gZGllIEVycmV0
dHVuZyBkZXIgcGVyc2lzY2hlbiBKdWRlbiB2b3IgZGVyIFZlcm5pY2h0dW5nIGR1cmNoIEhhbWFu
IChCdWNoIEVzdGVyKS4gR2VwcsOkZ3Qgdm9uIFZlcmtsZWlkdW5nZW4sIEZlc3RtYWhsIHVuZCBW
b3JsZXN1bmcgZGVyIE1lZ2lsbGF0IEVzdGVyLiBXaXJkIGluIElzcmFlbCBtYW5jaGVyb3J0cyB3
aWUgZWluIEthcm5ldmFsIGJlZ2FuZ2VuLicKICAgIH0sCiAgICAnUGVzc2FjaCc6IHsKICAgICAg
ICBrYXRlZ29yaWU6ICdqdWVkaXNjaCcsIHdpa2k6ICdQZXNzYWNoJywKICAgICAgICB0ZXh0OiAn
U2llYmVudMOkZ2lnZXMgKGluIGRlciBEaWFzcG9yYSBhY2h0dMOkZ2lnZXMpIEZlc3QsIGRhcyBh
biBkZW4gQXVzenVnIGRlciBJc3JhZWxpdGVuIGF1cyBkZXIgw6RneXB0aXNjaGVuIFNrbGF2ZXJl
aSBlcmlubmVydCAoMi4gQnVjaCBNb3NlKS4gQmVnaW5udCBhbSAxNS4gTmlzYW4gbWl0IGRlbSBT
ZWRlcmFiZW5kLCBnZWZlaWVydCBtaXQgTWF6emVuICh1bmdlc8OkdWVydGVtIEJyb3QpIOKAlCBI
ZWZlIGlzdCBkaWUgZ2FuemUgV29jaGUgdmVyYm90ZW4uJwogICAgfSwKICAgICdTY2hhd3VvdCc6
IHsKICAgICAgICBrYXRlZ29yaWU6ICdqdWVkaXNjaCcsIHdpa2k6ICdTY2hhd3VvdCcsCiAgICAg
ICAgdGV4dDogJ1dvY2hlbmZlc3QsIDUwIFRhZ2UgbmFjaCBQZXNzYWNoLiBFcmlubmVydCBhbiBk
aWUgw5xiZXJnYWJlIGRlciBUb3JhIGFtIEJlcmcgU2luYWkuIEltIGNocmlzdGxpY2hlbiBQZmlu
Z3N0ZmVzdCBoYXQgU2NoYXd1b3Qgc2VpbmVuIFVyc3BydW5nIOKAlCBiZWlkZSBGZXN0ZSBtYXJr
aWVyZW4gZGVuIEJlZ2lubiBkZXIgamV3ZWlsaWdlbiByZWxpZ2nDtnNlbiBHZW1laW5zY2hhZnQu
JwogICAgfSwKICAgICdSb3NjaCBoYS1TY2hhbmEnOiB7CiAgICAgICAga2F0ZWdvcmllOiAnanVl
ZGlzY2gnLCB3aWtpOiAnUm9zY2hfaGEtU2NoYW5hJywKICAgICAgICB0ZXh0OiAnSsO8ZGlzY2hl
cyBOZXVqYWhyc2Zlc3QgYW0gMS4gVGlzY2hyaSAoU2VwdGVtYmVyL09rdG9iZXIpLiBCZWdpbm4g
ZGVyIOKAnkhvaGVuIEZlaWVydGFnZSIgdW5kIGRlciB6ZWhudMOkZ2lnZW4gQnXDn3plaXQuIFdl
c2VudGxpY2hlcyBSaXR1YWwgaXN0IGRhcyBCbGFzZW4gZGVzIFNjaG9mYXJzIChXaWRkZXJob3Ju
KSBhbHMgQXVmcnVmIHp1ciBpbm5lcmVuIEVpbmtlaHIuJwogICAgfSwKICAgICdKb20gS2lwcHVy
JzogewogICAgICAgIGthdGVnb3JpZTogJ2p1ZWRpc2NoJywgd2lraTogJ0pvbV9LaXBwdXInLAog
ICAgICAgIHRleHQ6ICdIw7ZjaHN0ZXIgasO8ZGlzY2hlciBGZWllcnRhZyDigJQg4oCeVGFnIGRl
ciBWZXJzw7ZobnVuZyIgYW0gMTAuIFRpc2NocmkuIFN0cmVuZ2VyIEZhc3QtIHVuZCBSdWhldGFn
ICgyNSBTdHVuZGVuIG9obmUgRXNzZW4sIFRyaW5rZW4sIEFyYmVpdCksIHplbnRyaWVydCBhdWYg
UmV1ZSwgVmVyc8O2aG51bmcgdW5kIGRhcyBCZWtlbm5lbiB2b24gU8O8bmRlbi4gSW4gSXNyYWVs
IHJ1aHQgZGVyIGdlc2FtdGUgw7ZmZmVudGxpY2hlIFZlcmtlaHIuJwogICAgfSwKICAgICdTdWtr
b3QnOiB7CiAgICAgICAga2F0ZWdvcmllOiAnanVlZGlzY2gnLCB3aWtpOiAnU3Vra290JywKICAg
ICAgICB0ZXh0OiAnTGF1YmjDvHR0ZW5mZXN0LCBiZWdpbm50IGFtIDE1LiBUaXNjaHJpIHVuZCBk
YXVlcnQgc2llYmVuIFRhZ2UuIEVyaW5uZXJ0IGFuIGRpZSBXw7xzdGVud2FuZGVydW5nIGRlciBJ
c3JhZWxpdGVuIOKAlCBnbMOkdWJpZ2UgRmFtaWxpZW4gZXNzZW4gdW5kIHRlaWxzIHNjaGxhZmVu
IGRpZSBXb2NoZSDDvGJlciBpbiBzZWxic3RnZWJhdXRlbiBIw7x0dGVuICjigJ5TdWtrb3QiKSBt
aXQgTGF1YmRhY2guJwogICAgfSwKICAgICdDaGFudWtrYSc6IHsKICAgICAgICBrYXRlZ29yaWU6
ICdqdWVkaXNjaCcsIHdpa2k6ICdDaGFudWtrYScsCiAgICAgICAgdGV4dDogJ0FjaHR0w6RnaWdl
cyBMaWNodGVyZmVzdCwgYmVnaW5udCBhbSAyNS4gS2lzbGV3IChOb3ZlbWJlci9EZXplbWJlciku
IEVyaW5uZXJ0IGFuIGRpZSBXaWVkZXJlaW53ZWlodW5nIGRlcyBUZW1wZWxzIGluIEplcnVzYWxl
bSBuYWNoIGRlbSBTaWVnIGRlciBNYWtrYWLDpGVyIDE2NCB2LiBDaHIuIOKAlCB1bmQgZGFzIMOW
bHd1bmRlciwgYmVpIGRlbSBlaW4gVGFnZXN2b3JyYXQgYWNodCBUYWdlIGJyYW5udGUuIEplZGVu
IEFiZW5kIHdpcmQgZWluZSBLZXJ6ZSBkZXMgQ2hhbnVra2EtTGV1Y2h0ZXJzIG1laHIgZW50esO8
bmRldC4nCiAgICB9LAoKICAgIC8vID09PT09IE11c2xpbWlzY2hlIEhhdXB0ZmVzdGUgPT09PT0K
ICAgICdSYW1hZGFuJzogewogICAgICAgIGthdGVnb3JpZTogJ211c2xpbWlzY2gnLCB3aWtpOiAn
UmFtYWRhbicsCiAgICAgICAgdGV4dDogJ05ldW50ZXIgTW9uYXQgZGVzIGlzbGFtaXNjaGVuIE1v
bmRrYWxlbmRlcnMgdW5kIOKAnkZhc3Rlbm1vbmF0Ii4gR2zDpHViaWdlIE11c2xpbWUgZmFzdGVu
IHZvbiBNb3JnZW5kw6RtbWVydW5nIGJpcyBTb25uZW51bnRlcmdhbmcgKGtlaW4gRXNzZW4sIFRy
aW5rZW4sIFJhdWNoZW4sIHNleHVlbGxlIEFrdGl2aXTDpHQpLiBTb2xsIGRhcyBCZXd1c3N0c2Vp
biBmw7xyIEdvdHQsIEVtcGF0aGllIGbDvHIgQmVkw7xyZnRpZ2UgdW5kIFNlbGJzdGRpc3ppcGxp
biBzY2jDpHJmZW4uIE1vbmRiZWRpbmd0IMKxMSBUYWcg4oCUIGRpZSBvZmZpemllbGxlIE1vbmQt
U2ljaHR1bmcgZXJmb2xndCBqw6RocmxpY2ggbmV1LicKICAgIH0sCiAgICAnUmFtYWRhbi1GZXN0
JzogewogICAgICAgIGthdGVnb3JpZTogJ211c2xpbWlzY2gnLCB3aWtpOiAnRWlkX2FsLUZpdHIn
LAogICAgICAgIHRleHQ6ICfigJ5GZXN0IGRlcyBGYXN0ZW5icmVjaGVucyIgKEVpZCBhbC1GaXRy
KSwgb2Z0IGF1Y2gg4oCeWnVja2VyZmVzdCIgZ2VuYW5udCDigJQgd2ljaHRpZ3N0ZXMgRmVzdCBk
ZXMgSXNsYW1zIG5hY2ggZGVtIEVuZGUgZGVzIFJhbWFkYW4tRmFzdGVucy4gMS7igJMzLiBTY2hh
d3dhbC4gRmFtaWxpZW5mZXN0ZSwgU8O8w59zcGVpc2VuLCBHZXNjaGVua2UgYW4gS2luZGVyLCBQ
ZmxpY2h0LUFsbW9zZW4gKFpha2F0IGFsLUZpdHIpIGbDvHIgQmVkw7xyZnRpZ2UuIEdlZmVpZXJ0
IHdpZSBXZWlobmFjaHRlbiBpbiBkZXIgY2hyaXN0bGljaGVuIFRyYWRpdGlvbi4nCiAgICB9LAog
ICAgJ09wZmVyZmVzdCc6IHsKICAgICAgICBrYXRlZ29yaWU6ICdtdXNsaW1pc2NoJywgd2lraTog
J0VpZF9hbC1BZGhhJywKICAgICAgICB0ZXh0OiAn4oCeT3BmZXJmZXN0IiAoRWlkIGFsLUFkaGEg
LyBLdXJiYW4gQmF5cmFtxLEpIOKAlCB3aWNodGlnc3RlcyBpc2xhbWlzY2hlcyBGZXN0LCA3MCBU
YWdlIG5hY2ggRWlkIGFsLUZpdHIuIEVyaW5uZXJ0IGFuIElicmFoaW1zIChBYnJhaGFtcykgQmVy
ZWl0c2NoYWZ0LCBzZWluZW4gU29obiBhdWYgR290dGVzIEdlaGVpw58genUgb3BmZXJuLiBUcmFk
aXRpb246IE9wZmVydW5nIGVpbmVzIFRpZXJlcyAoU2NoYWYsIFppZWdlLCBSaW5kKSwgRHJpdHRl
bCBhbiBCZWTDvHJmdGlnZSwgRHJpdHRlbCBhbiBWZXJ3YW5kdGUsIERyaXR0ZWwgaW0gZWlnZW5l
biBIYXVzaGFsdC4gSMO2aGVwdW5rdCBkZXIgSGFkc2NoLicKICAgIH0sCiAgICAnTWF3bGlkIGFu
LU5hYmknOiB7CiAgICAgICAga2F0ZWdvcmllOiAnbXVzbGltaXNjaCcsIHdpa2k6ICdNYXdsaWQn
LAogICAgICAgIHRleHQ6ICdHZWJ1cnRzdGFnIGRlcyBQcm9waGV0ZW4gTW9oYW1tZWQgKDEyLiBS
YWJpXCcgYWwtYXd3YWwpLiBJbiBzdW5uaXRpc2NoZW4gTMOkbmRlcm4gdW50ZXJzY2hpZWRsaWNo
IGdlZmVpZXJ0IOKAlCB2b24gZnJldWRpZ2VuIFByb3plc3Npb25lbiAoei4gQi4gVMO8cmtlaSwg
w4RneXB0ZW4pIGJpcyBoaW4genVyIEFibGVobnVuZyBhbHMg4oCedW56dWzDpHNzaWdlIE5ldWVy
dW5nIiAoc2F1ZGlzY2gtd2FoaGFiaXRpc2NoKS4gVMO8cmtpc2NoOiDigJ5NZXZsaWQgS2FuZGls
aSIuJwogICAgfSwKCiAgICAvLyA9PT09PSBOUlctU2NodWxmZXJpZW4gPT09PT0KICAgICdCZXdl
Z2xpY2hlciBGZXJpZW50YWcgKEthcm5ldmFsKSc6IHsKICAgICAgICBrYXRlZ29yaWU6ICdzY2h1
bGZlcmllbicsIHdpa2k6ICdLYXJuZXZhbF9pbl9EZXV0c2NobGFuZCcsCiAgICAgICAgdGV4dDog
J1ZvbSBTY2h1bHRyw6RnZXIgZnJlaSB2ZXJnZWJlbmUgRmVyaWVudGFnZSDigJQgaW4gTlJXIGlt
IFJoZWlubGFuZCB0cmFkaXRpb25lbGwgUm9zZW5tb250YWcgdW5kIFZlaWxjaGVuZGllbnN0YWcg
d2VnZW4gZGVzIFN0cmHDn2Vua2FybmV2YWxzLiBBdcOfZXJoYWxiIGRlcyBLYXJuZXZhbHNnZWJp
ZXRzIG9mdCBhbmRlcnMgdmVydGVpbHQuJwogICAgfSwKICAgICdPc3RlcmZlcmllbic6IHsKICAg
ICAgICBrYXRlZ29yaWU6ICdzY2h1bGZlcmllbicsIHdpa2k6ICdTY2h1bGZlcmllbicsCiAgICAg
ICAgdGV4dDogJ1NjaHVsZmVyaWVuIHJ1bmQgdW0gT3N0ZXJuIOKAlCBpbiBOUlcgbWVpc3QgMiBX
b2NoZW4sIGJld2VnbGljaCB1bSBkZW4gT3N0ZXJ0ZXJtaW4uIEVpbmUgZGVyIHZpZXIgZ3Jvw59l
biBGZXJpZW5wZXJpb2RlbiBpbSBTY2h1bGphaHIuJwogICAgfSwKICAgICdQZmluZ3N0ZmVyaWVu
JzogewogICAgICAgIGthdGVnb3JpZTogJ3NjaHVsZmVyaWVuJywgd2lraTogJ1NjaHVsZmVyaWVu
JywKICAgICAgICB0ZXh0OiAnSW4gTlJXIG51ciBlaW4gZWluemVsbmVyIEJyw7xja2VudGFnIChQ
ZmluZ3N0ZGllbnN0YWcpLCB6dXPDpHR6bGljaCB6dW0gZ2VzZXR6bGljaGVuIFBmaW5nc3Rtb250
YWcuIEluIG1hbmNoZW4gQnVuZGVzbMOkbmRlcm4gKHouIEIuIEJXLCBCWSkgZGV1dGxpY2ggbMOk
bmdlci4nCiAgICB9LAogICAgJ1NvbW1lcmZlcmllbic6IHsKICAgICAgICBrYXRlZ29yaWU6ICdz
Y2h1bGZlcmllbicsIHdpa2k6ICdTb21tZXJmZXJpZW4nLAogICAgICAgIHRleHQ6ICdTZWNocyBX
b2NoZW4gRmVyaWVuIHp3aXNjaGVuIGRlbiBTY2h1bGphaHJlbiwgaW4gTlJXIG1laXN0IEFuZmFu
ZyBKdWxpIGJpcyBNaXR0ZSBBdWd1c3QuIFRlcm1pbiByb3RpZXJ0IHp3aXNjaGVuIGRlbiBCdW5k
ZXNsw6RuZGVybiAoS01LLUJlc2NobHVzcyksIHVtIFN0YXUgYXVmIGRlbiBSZWlzZS1BY2hzZW4g
enUgdmVydGVpbGVuLicKICAgIH0sCiAgICAnSGVyYnN0ZmVyaWVuJzogewogICAgICAgIGthdGVn
b3JpZTogJ3NjaHVsZmVyaWVuJywgd2lraTogJ0hlcmJzdGZlcmllbicsCiAgICAgICAgdGV4dDog
J1p3ZWkgV29jaGVuIEZlcmllbiBydW5kIHVtIGRlbiBUYWcgZGVyIERldXRzY2hlbiBFaW5oZWl0
LiBJbiBOUlcgbWVpc3QgTWl0dGUgT2t0b2Jlci4nCiAgICB9LAogICAgJ1dlaWhuYWNodHNmZXJp
ZW4nOiB7CiAgICAgICAga2F0ZWdvcmllOiAnc2NodWxmZXJpZW4nLCB3aWtpOiAnV2VpaG5hY2h0
c2ZlcmllbicsCiAgICAgICAgdGV4dDogJ0ZlcmllbnplaXRyYXVtIHZvbiBrdXJ6IHZvciBXZWlo
bmFjaHRlbiBiaXMgY2EuIHp1bSBEcmVpa8O2bmlnc3RhZyAoNi4gSmFudWFyKS4gVW1mYXNzdCBk
aWUgYmVpZGVuIFdlaWhuYWNodHNmZWllcnRhZ2UsIFNpbHZlc3RlciB1bmQgTmV1amFoci4nCiAg
ICB9Cn07CgovLyBCZXplaWNobnVuZyAtPiBJbmZvOiBTdWJzdHJpbmctTWF0Y2ggKHouQi4gIlBl
c3NhY2ggKEJlZ2lubikiIC0+ICJQZXNzYWNoIikKZXhwb3J0IGZ1bmN0aW9uIHRlcm1pbkluZm9G
aW5kZW4oYmV6ZWljaG51bmcpIHsKICAgIGlmICghYmV6ZWljaG51bmcpIHJldHVybiBudWxsOwog
ICAgdmFyIGJlekwgPSBiZXplaWNobnVuZy50b0xvd2VyQ2FzZSgpOwogICAgLy8gRGlyZWt0ZXIg
TWF0Y2ggenVlcnN0CiAgICBpZiAoVEVSTUlOX0lORk9bYmV6ZWljaG51bmddKSByZXR1cm4gVEVS
TUlOX0lORk9bYmV6ZWljaG51bmddOwogICAgLy8gU3Vic3RyaW5nLU1hdGNoCiAgICB2YXIga2V5
cyA9IE9iamVjdC5rZXlzKFRFUk1JTl9JTkZPKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5
cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChiZXpMLmluZGV4T2Yoa2V5c1tpXS50b0xvd2Vy
Q2FzZSgpKSA+PSAwKSByZXR1cm4gVEVSTUlOX0lORk9ba2V5c1tpXV07CiAgICB9CiAgICByZXR1
cm4gbnVsbDsKfQoKLy8gTW9kYWwgbWl0IEhpbnRlcmdydW5kLUluZm8genUgZWluZW0gRmVpZXJ0
YWcvRmVyaWVuLVplaXRyYXVtCmV4cG9ydCBmdW5jdGlvbiBmZWllcnRhZ01vZGFsWmVpZ2VuKGRh
dHVtKSB7CiAgICB2YXIgaW5mbyA9IFoudGFnSW5mb3NbZGF0dW1dOwogICAgaWYgKCFpbmZvKSBy
ZXR1cm47CiAgICB2YXIgYmV6ID0gaW5mby5uYW1lIHx8ICcnOwogICAgdmFyIGthdCA9IGluZm8u
a2F0ZWdvcmllIHx8IChpbmZvLnR5cCA9PT0gJ2ZlcmllbicgPyAnc2NodWxmZXJpZW4nIDogJ2dl
c2V0emxpY2gnKTsKICAgIHZhciBkZXRhaWxzID0gdGVybWluSW5mb0ZpbmRlbihiZXopIHx8IHt9
OwogICAgdmFyIGthdEJhZGdlID0gewogICAgICAgIGdlc2V0emxpY2g6ICAnR2VzZXR6bGljaGVy
IEZlaWVydGFnIE5SVycsCiAgICAgICAganVlZGlzY2g6ICAgICdKw7xkaXNjaGVzIEhvY2hmZXN0
JywKICAgICAgICBtdXNsaW1pc2NoOiAgJ011c2xpbWlzY2hlcyBIb2NoZmVzdCcsCiAgICAgICAg
dHVlcmtpc2NoOiAgICdUw7xya2lzY2hlciBOYXRpb25hbGZlaWVydGFnJywKICAgICAgICBzY2h1
bGZlcmllbjogJ1NjaHVsZmVyaWVuIE5SVycKICAgIH1ba2F0XSB8fCAnVGVybWluJzsKICAgIHZh
ciBrYXRDbHMgPSAnZnQta2F0IGZ0LWthdC0nICsgKGthdCA9PT0gJ3NjaHVsZmVyaWVuJyA/ICdn
ZXNldHpsaWNoJyA6IGthdCk7CiAgICB2YXIgZGF0dW1ERSA9IGRhdHVtRm9ybWF0REUoZGF0dW0p
OwogICAgdmFyIGRhdGVPYmogPSBuZXcgRGF0ZShkYXR1bSArICdUMDA6MDA6MDAnKTsKICAgIHZh
ciB3b2NoZW50YWdlID0gWydTb25udGFnJywnTW9udGFnJywnRGllbnN0YWcnLCdNaXR0d29jaCcs
J0Rvbm5lcnN0YWcnLCdGcmVpdGFnJywnU2Ftc3RhZyddOwogICAgdmFyIHd0ID0gd29jaGVudGFn
ZVtkYXRlT2JqLmdldERheSgpXTsKCiAgICB2YXIga29lcnBlciA9ICc8ZGl2IHN0eWxlPSJwYWRk
aW5nOjRweCAwIj4nICsKICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0
ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tYm90dG9tOjE0cHgiPicgKwogICAgICAgICAgICAn
PHNwYW4gY2xhc3M9IicgKyBrYXRDbHMgKyAnIiBzdHlsZT0iZm9udC1zaXplOjExcHg7cGFkZGlu
ZzozcHggOXB4Ij4nICsgZXNjYXBlSFRNTChrYXRCYWRnZSkgKyAnPC9zcGFuPicgKwogICAgICAg
ICAgICAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQp
Ij4nICsgd3QgKyAnLCAnICsgZGF0dW1ERSArICc8L3NwYW4+JyArCiAgICAgICAgJzwvZGl2Picg
KwogICAgICAgICc8aDMgc3R5bGU9Im1hcmdpbjowIDAgMTJweDtmb250LXNpemU6MTZweDtmb250
LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKSI+JyArIGVzY2FwZUhUTUwoYmV6
KSArICc8L2gzPicgKwogICAgICAgICc8cCBzdHlsZT0ibWFyZ2luOjAgMCAxNHB4O2ZvbnQtc2l6
ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNTU7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpIj4nICsK
ICAgICAgICAgICAgKGRldGFpbHMudGV4dCA/IGVzY2FwZUhUTUwoZGV0YWlscy50ZXh0KSA6ICc8
ZW0+S2VpbmUgSGludGVyZ3J1bmRpbmZvcm1hdGlvbiBoaW50ZXJsZWd0IOKAlCBCZXplaWNobnVu
ZyBrYW5uIGltIEFkbWluLVRhYiDigJ5UZXJtaW5lIiBhbmdlcGFzc3Qgd2VyZGVuLjwvZW0+Jykg
KwogICAgICAgICc8L3A+JyArCiAgICAgICAgKGRldGFpbHMud2lraQogICAgICAgICAgICA/ICc8
cCBzdHlsZT0ibWFyZ2luOjhweCAwIDA7Zm9udC1zaXplOjExcHgiPjxhIGhyZWY9Imh0dHBzOi8v
ZGUud2lraXBlZGlhLm9yZy93aWtpLycgKyBlc2NhcGVBdHRyKGRldGFpbHMud2lraSkgKyAnIiB0
YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgc3R5bGU9ImNvbG9yOnZhcigtLWZhcmJlLWFr
emVudCk7dGV4dC1kZWNvcmF0aW9uOm5vbmUiPuKGkiBNZWhyIGF1ZiBXaWtpcGVkaWEgKGRlLndp
a2lwZWRpYS5vcmcpPC9hPjwvcD4nCiAgICAgICAgICAgIDogJycpICsKICAgICAgICAnPC9kaXY+
JzsKICAgIG1vZGFsWmVpZ2VuKGJleiwga29lcnBlciwgJzxidXR0b24gY2xhc3M9ImJ0biBidG4t
cHJpbWFlciIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCdtb2RhbC1zY2hsaWVz
c2VuLWJ0blwnKS5jbGljaygpIj5TY2hsaWXDn2VuPC9idXR0b24+JywgbnVsbCk7Cn0KCi8vID09
PT09IFRhZy1HZW5lcmF0aW9uICsgVGFnZXNpbmZvcyArIFN0w6Rya2UgKyBTY2hyYWZmdXIgPT09
PT0KZXhwb3J0IGZ1bmN0aW9uIHRhZ2VFcnpldWdlbigpIHsKICAgIHZhciBqYWhyID0gWi5hZG1p
bi5qYWhyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsKICAgIFoudGFnZSA9IFtdOwogICAg
Ly8gUGxhbnVuZ3NiZXJlaWNoOiAxLiBKYW51YXIgZGVzIFBsYW51bmdzamFocmVzIGJpcyBlaW5z
Y2hsaWVzc2xpY2ggMzEuIEphbnVhciBkZXMgRm9sZ2VqYWhyZXMuCiAgICAvLyBEZXIgQnVmZmVy
LU1vbmF0IGVybGF1YnQgVm9ycGxhbnVuZyBkZXMgRm9sZ2VqYWhyZXMgYmlzIHp1bSBKYWhyZXN3
ZWNoc2VsLUtub3BmLgogICAgdmFyIGQgPSBuZXcgRGF0ZShqYWhyLCAwLCAxKTsKICAgIHZhciBl
bmRlID0gbmV3IERhdGUoamFociArIDEsIDEsIDEpOyAvLyAxLiBGZWJydWFyIEZvbGdlamFociA9
IGV4a2x1c2l2ZSBPYmVyZ3JlbnplCiAgICB3aGlsZSAoZCA8IGVuZGUpIHsgWi50YWdlLnB1c2go
bmV3IERhdGUoZCkpOyBkLnNldERhdGUoZC5nZXREYXRlKCkgKyAxKTsgfQp9CgpleHBvcnQgZnVu
Y3Rpb24gdGFnSW5mb3NCZXJlY2huZW4oKSB7CiAgICBaLnRhZ0luZm9zID0ge307CiAgICAvLyBT
b25kZXJ0ZXJtaW5lIGdnZi4gbWl0IElEIG5hY2hyw7xzdGVuIChCQyBmw7xyIEFsdGRhdGVuKSB1
bmQgYXVmIGFsbGUgVGFnZSBkZXMgWmVpdHJhdW1zIG1hcHBlbgogICAgdmFyIHNvbmRlck1hcCA9
IHt9OwogICAgKFouYWRtaW4uc29uZGVydGVybWluZSB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihz
KSB7CiAgICAgICAgaWYgKCFzLmlkKSBzLmlkID0gJ3N0XycgKyAocy5kYXR1bSB8fCAneCcpICsg
J18nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDYpOwogICAgICAgIHZh
ciB2b24gPSBzLmRhdHVtLCBiaXMgPSBzLmRhdHVtQmlzIHx8IHMuZGF0dW07CiAgICAgICAgaWYg
KCF2b24pIHJldHVybjsKICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKHZvbiArICdUMDA6MDA6MDAn
KSwgYiA9IG5ldyBEYXRlKGJpcyArICdUMDA6MDA6MDAnKTsKICAgICAgICBpZiAoaXNOYU4oZC5n
ZXRUaW1lKCkpIHx8IGlzTmFOKGIuZ2V0VGltZSgpKSB8fCBiIDwgZCkgeyBzb25kZXJNYXBbdm9u
XSA9IHM7IHJldHVybjsgfQogICAgICAgIHdoaWxlIChkIDw9IGIpIHsgc29uZGVyTWFwW2RhdHVt
U3RyKGQpXSA9IHM7IGQuc2V0RGF0ZShkLmdldERhdGUoKSArIDEpOyB9CiAgICB9KTsKCiAgICBa
LnRhZ2UuZm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAgdmFyIGtleSA9IGRhdHVtU3RyKGQp
OwogICAgICAgIFoudGFnSW5mb3Nba2V5XSA9IHsgdHlwOiAnbm9ybWFsJywgbmFtZTogJycsIGdl
YnVydHN0YWdlOiBbXSB9OwogICAgICAgIGlmIChpc3RXb2NoZW5lbmRlKGQpKSBaLnRhZ0luZm9z
W2tleV0udHlwID0gJ3dvY2hlbmVuZGUnOwogICAgfSk7CgogICAgKFouYWRtaW4uZmVyaWVuIHx8
IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsKICAgICAgICAvLyBOdXIgYWt0aXZlIChkZWZhdWx0
IHRydWUgd2VubiBGZWxkIGZlaGx0KQogICAgICAgIGlmIChmLmFrdGl2ID09PSBmYWxzZSkgcmV0
dXJuOwogICAgICAgIHZhciBkID0gbmV3IERhdGUoZi52b24gKyAnVDAwOjAwOjAwJyk7CiAgICAg
ICAgdmFyIGJpcyA9IG5ldyBEYXRlKGYuYmlzICsgJ1QwMDowMDowMCcpOwogICAgICAgIHdoaWxl
IChkIDw9IGJpcykgewogICAgICAgICAgICB2YXIga2V5ID0gZGF0dW1TdHIoZCk7CiAgICAgICAg
ICAgIGlmIChaLnRhZ0luZm9zW2tleV0gJiYgWi50YWdJbmZvc1trZXldLnR5cCA9PT0gJ25vcm1h
bCcpIHsKICAgICAgICAgICAgICAgIFoudGFnSW5mb3Nba2V5XS50eXAgPSAnZmVyaWVuJzsKICAg
ICAgICAgICAgICAgIFoudGFnSW5mb3Nba2V5XS5uYW1lID0gZi5iZXplaWNobnVuZyB8fCBmLm5h
bWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZC5zZXREYXRlKGQuZ2V0RGF0ZSgpICsgMSk7
CiAgICAgICAgfQogICAgfSk7CgogICAgKFouYWRtaW4uZmVpZXJ0YWdlIHx8IFtdKS5mb3JFYWNo
KGZ1bmN0aW9uKGYpIHsKICAgICAgICBpZiAoZi5ha3RpdiA9PT0gZmFsc2UpIHJldHVybjsKICAg
ICAgICBpZiAoWi50YWdJbmZvc1tmLmRhdHVtXSkgewogICAgICAgICAgICBaLnRhZ0luZm9zW2Yu
ZGF0dW1dLnR5cCA9ICdmZWllcnRhZyc7CiAgICAgICAgICAgIFoudGFnSW5mb3NbZi5kYXR1bV0u
bmFtZSA9IGYuYmV6ZWljaG51bmcgfHwgZi5uYW1lOwogICAgICAgICAgICBaLnRhZ0luZm9zW2Yu
ZGF0dW1dLndpY2h0aWcgPSAhIWYud2ljaHRpZzsKICAgICAgICAgICAgWi50YWdJbmZvc1tmLmRh
dHVtXS5rYXRlZ29yaWUgPSBmLmthdGVnb3JpZSB8fCAnZ2VzZXR6bGljaCc7CiAgICAgICAgfQog
ICAgfSk7CgogICAgLy8gR2VidXJ0c3RhZ2UgcHJvIFRhZyAoYXVmIE1vbmF0LVRhZyBkZXMgUGxh
bnVuZ3NqYWhyZXMgKyBCdWZmZXItSmFudWFyIGRlcyBGb2xnZWphaHJlcyBtYXBwZW4pCiAgICB2
YXIgcGxhbkphaHIgPSBaLmFkbWluLmphaHIgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOwog
ICAgKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihwKSB7CiAgICAg
ICAgaWYgKCFwLmdlYnVydHNkYXR1bSB8fCAhcC5ha3RpdikgcmV0dXJuOwogICAgICAgIHZhciB0
ZWlsZSA9IHAuZ2VidXJ0c2RhdHVtLnNwbGl0KCctJyk7CiAgICAgICAgaWYgKHRlaWxlLmxlbmd0
aCAhPT0gMykgcmV0dXJuOwogICAgICAgIHZhciBuYW1lID0gcGVyc29uVm9sbE5hbWUocCk7CiAg
ICAgICAgdmFyIGphaHJBbHQgPSBwYXJzZUludCh0ZWlsZVswXSwgMTApIHx8IG51bGw7CiAgICAg
ICAgW3BsYW5KYWhyLCBwbGFuSmFociArIDFdLmZvckVhY2goZnVuY3Rpb24oaikgewogICAgICAg
ICAgICB2YXIga2V5ID0gaiArICctJyArIHRlaWxlWzFdICsgJy0nICsgdGVpbGVbMl07CiAgICAg
ICAgICAgIGlmIChaLnRhZ0luZm9zW2tleV0pIHsKICAgICAgICAgICAgICAgIFoudGFnSW5mb3Nb
a2V5XS5nZWJ1cnRzdGFnZS5wdXNoKHsgaWQ6IHAuaWQsIG5hbWU6IG5hbWUsIGphaHI6IGphaHJB
bHQgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0pOwoKICAgIE9iamVjdC5rZXlz
KHNvbmRlck1hcCkuZm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAgaWYgKFoudGFnSW5mb3Nb
ZF0pIHsKICAgICAgICAgICAgWi50YWdJbmZvc1tkXS5zb25kZXIgPSBzb25kZXJNYXBbZF07CiAg
ICAgICAgfQogICAgfSk7Cn0KCi8vID09PT09IFN0w6Rya2UgJiBTY2hyYWZmdXIgPT09PT0KCmV4
cG9ydCBmdW5jdGlvbiBzdGFlcmtlQmVyZWNobmVuKGRTdHIpIHsKICAgIHZhciBlID0gKFoucGxh
bnVuZy5laW50cmFlZ2UgfHwge30pW2RTdHJdIHx8IHt9OwogICAgdmFyIGYgPSAwLCBzID0gMCwg
biA9IDA7CiAgICBaLnBlcnNvbmVuLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgIGlmICgh
cC5ha3RpdikgcmV0dXJuOyAvLyBVbWdlc2V0enRlIHrDpGhsZW4gbmljaHQgenVyIFN0w6Rya2UK
ICAgICAgICB2YXIgdyA9IGVbU3RyaW5nKHAuaWQpXSB8fCAnJzsKICAgICAgICBpZiAody5zdWJz
dHJpbmcoMCwgNSkgPT09ICdGLURHTCcpIGYrKzsKICAgICAgICBpZiAody5zdWJzdHJpbmcoMCwg
NSkgPT09ICdTLURHTCcpIHMrKzsKICAgICAgICBpZiAody5zdWJzdHJpbmcoMCwgNSkgPT09ICdO
LURHTCcpIG4rKzsKICAgIH0pOwogICAgcmV0dXJuIHsgZjogZiwgczogcywgbjogbiwgb2s6IGYg
Pj0gMiAmJiBzID49IDIgJiYgbiA+PSAyLCB0ZXh0OiBmICsgJ3wnICsgcyArICd8JyArIG4gfTsK
fQoKZXhwb3J0IGZ1bmN0aW9uIHNjaHJhZmZ1ckJlcmVjaG5lbihkU3RyKSB7CiAgICB2YXIgZSA9
IChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9KVtkU3RyXSB8fCB7fTsKICAgIHZhciBzY2hpY2h0
ZW4gPSB7IEY6IFtdLCBTOiBbXSwgTjogW10gfTsKICAgIFoucGVyc29uZW4uZm9yRWFjaChmdW5j
dGlvbihwKSB7CiAgICAgICAgaWYgKCFwLmFrdGl2KSByZXR1cm47IC8vIFVtZ2VzZXR6dGUgbmlj
aHQgYWxzIFZlcmFudHdvcnRsaWNoZSBtYXJraWVyZW4KICAgICAgICB2YXIgdyA9IGVbU3RyaW5n
KHAuaWQpXSB8fCAnJzsKICAgICAgICBpZiAody5pbmRleE9mKCdER0wnKSA9PT0gLTEpIHJldHVy
bjsKICAgICAgICB2YXIgcHJlZml4ID0gdy5jaGFyQXQoMCk7CiAgICAgICAgaWYgKHNjaGljaHRl
bltwcmVmaXhdKSBzY2hpY2h0ZW5bcHJlZml4XS5wdXNoKHsgaWQ6IHAuaWQsIHBvczogcC5wb3Np
dGlvbiB8fCA5OTkgfSk7CiAgICB9KTsKICAgIHZhciBlcmcgPSB7fTsKICAgIFsnRicsJ1MnLCdO
J10uZm9yRWFjaChmdW5jdGlvbihwcikgewogICAgICAgIHZhciBsID0gc2NoaWNodGVuW3ByXS5z
b3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEucG9zIC0gYi5wb3M7IH0pOwogICAgICAgIGlm
IChsLmxlbmd0aCA+IDApIGVyZ1tsWzBdLmlkXSA9IHByICsgJzEnOwogICAgICAgIGlmIChsLmxl
bmd0aCA+IDEpIGVyZ1tsWzFdLmlkXSA9IHByICsgJzInOwogICAgfSk7CiAgICByZXR1cm4gZXJn
Owp9CgovLyA9PT09PSBQbGFudW5nIHJlbmRlcm4gPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBncmlk
UmVuZGVybigpIHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbnplaWdlLWphaHInKS50
ZXh0Q29udGVudCA9IFouYWRtaW4uamFociB8fCAnJzsKICAgIHZhciBoZXV0ZSA9IG5ldyBEYXRl
KCk7CiAgICB2YXIgaGV1dGVFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoZXV0ZS1kYXR1
bScpOwogICAgaWYgKGhldXRlRWwpIGhldXRlRWwudGV4dENvbnRlbnQgPSBkYXR1bUZvcm1hdERF
KFouaGV1dGVTdHIpICsgJyDigJQgJyArIHdvY2hlbnRhZ0t1cnooaGV1dGUpOwoKICAgIC8vIFVz
ZXItQmFkZ2U6IGJldm9yenVndCBLbGFybmFtZW4gYXVzIGRlciBQZXJzb25hbHZlcndhbHR1bmcg
YW56ZWlnZW4KICAgIC8vIChhdWNoIGVoZW1hbGlnZS9pbmFrdGl2ZSk7IEZhbGxiYWNrIGF1ZiBT
dXBlclVzZXItTGlzdGU7IGxldHp0ZXIKICAgIC8vIEZhbGxiYWNrIGlzdCBkaWUgTlctS2VubnVu
ZyBzZWxic3QuCiAgICB2YXIgbnV0emVyID0gWi5iZW51dHplciB8fCAnJzsKICAgIHZhciBudXR6
ZXJLdXJ6ID0gbnV0emVyLnJlcGxhY2UoL14uKlxcLywgJycpOyAgICAgLy8gIkRPTUFJTlxqZG9l
IiAtPiAiamRvZSIKICAgIHZhciBudXR6ZXJMb3dlciA9IG51dHplci50b0xvd2VyQ2FzZSgpOwog
ICAgdmFyIG51dHplckt1cnpMb3dlciA9IG51dHplckt1cnoudG9Mb3dlckNhc2UoKTsKICAgIGZ1
bmN0aW9uIF9rZW5udW5nTWF0Y2h0KGspIHsKICAgICAgICBpZiAoIWspIHJldHVybiBmYWxzZTsK
ICAgICAgICB2YXIgbCA9IFN0cmluZyhrKS50b0xvd2VyQ2FzZSgpOwogICAgICAgIHJldHVybiBs
ID09PSBudXR6ZXJMb3dlciB8fCBsID09PSBudXR6ZXJLdXJ6TG93ZXI7CiAgICB9CiAgICB2YXIg
YW56ZWlnZU5hbWUgPSAnJzsKICAgIHZhciBwZXJzb25lbiA9IChaLnBsYW51bmcgJiYgWi5wbGFu
dW5nLnBlcnNvbmVuKSB8fCBbXTsKICAgIGZvciAodmFyIHBpID0gMDsgcGkgPCBwZXJzb25lbi5s
ZW5ndGg7IHBpKyspIHsKICAgICAgICBpZiAoX2tlbm51bmdNYXRjaHQocGVyc29uZW5bcGldLm53
S2VubnVuZykpIHsKICAgICAgICAgICAgdmFyIHZvbGwgPSAoKHBlcnNvbmVuW3BpXS5kaWVuc3Rn
cmFkIHx8ICcnKSArICcgJyArIChwZXJzb25lbltwaV0ubmFjaG5hbWUgfHwgcGVyc29uZW5bcGld
Lm5hbWUgfHwgJycpKS50cmltKCk7CiAgICAgICAgICAgIGlmICh2b2xsKSBhbnplaWdlTmFtZSA9
IHZvbGwgKyAocGVyc29uZW5bcGldLmFrdGl2ID09PSBmYWxzZSA/ICcgKGVoZW1hbGlnKScgOiAn
Jyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGlmICghYW56ZWlnZU5h
bWUpIHsKICAgICAgICB2YXIgc3UgPSAoWi5hZG1pbiAmJiBaLmFkbWluLnN1cGVyVXNlcikgfHwg
W107CiAgICAgICAgZm9yICh2YXIgc2kgPSAwOyBzaSA8IHN1Lmxlbmd0aDsgc2krKykgewogICAg
ICAgICAgICBpZiAoX2tlbm51bmdNYXRjaHQoc3Vbc2ldLm53S2VubnVuZykpIHsKICAgICAgICAg
ICAgICAgIHZhciBkZyA9IChzdVtzaV0uZGllbnN0Z3JhZCB8fCAnJykudHJpbSgpOwogICAgICAg
ICAgICAgICAgdmFyIG5uID0gKHN1W3NpXS5uYWNobmFtZSB8fCAnJykudHJpbSgpOwogICAgICAg
ICAgICAgICAgYW56ZWlnZU5hbWUgPSAoZGcgJiYgbm4pID8gKGRnICsgJyAnICsgbm4pIDogKHN1
W3NpXS5uYW1lIHx8IG51dHplckt1cnopOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZiAoIWFuemVpZ2VOYW1lKSBhbnplaWdlTmFtZSA9
IG51dHplckt1cno7CiAgICAvLyBJbml0aWFsZW4gYXVzIGRlbSBBTlpFSUdFTkFNRU4gKFZvcm5h
bWUgKyBOYWNobmFtZSksIG5pY2h0IGF1cyBkZXIKICAgIC8vIE5XLUtlbm51bmcg4oCUIHNvbnN0
IHN0ZWhlbiBkYSBkaWUgQnVjaHN0YWJlbiBkZXMgTG9naW5zIHN0YXR0IGRlcgogICAgLy8gUGVy
c29uLgogICAgdmFyIGluaXRpYWxlblF1ZWxsZSA9IChhbnplaWdlTmFtZS5pbmRleE9mKCcgJykg
Pj0gMCkgPyBhbnplaWdlTmFtZSA6IG51dHplckt1cno7CiAgICB2YXIgaW5pdGlhbGVuID0gKGlu
aXRpYWxlblF1ZWxsZS5tYXRjaCgvW0EtWmEtesOEw5bDnMOkw7bDvMOfXSsvZykgfHwgWyc/J10p
CiAgICAgICAgLnNsaWNlKDAsIDIpLm1hcChmdW5jdGlvbih3KSB7IHJldHVybiB3LmNoYXJBdCgw
KS50b1VwcGVyQ2FzZSgpOyB9KS5qb2luKCcnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdiZW51dHplci1hbnplaWdlJykudGV4dENvbnRlbnQgPSBhbnplaWdlTmFtZTsKICAgIHZhciBh
dmF0YXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmVudXR6ZXItYXZhdGFyJyk7CiAgICBp
ZiAoYXZhdGFyKSBhdmF0YXIudGV4dENvbnRlbnQgPSBpbml0aWFsZW47CiAgICB2YXIgYmFkZ2Ug
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmVudXR6ZXItYmFkZ2UnKTsKICAgIGlmIChiYWRn
ZSkgYmFkZ2UudGl0bGUgPSAnQW5nZW1lbGRldCBhbHMgJyArIG51dHplciArIChhbnplaWdlTmFt
ZSAhPT0gbnV0emVyS3VyeiA/ICdcbktlbm51bmc6ICcgKyBudXR6ZXJLdXJ6IDogJycpOwoKICAg
IGtvcGZSZW5kZXJuKCk7CiAgICBuYW1lblJlbmRlcm4oKTsKICAgIGRhdGVuR3JpZFJlbmRlcm4o
KTsKfQoKLy8gPT09PT0gS29wZmJlcmVpY2ggKERhdHVtLCBXb2NoZW50YWcsIEZlcmllbiwgU3TD
pHJrZSwgU2NoaWNodGZvbGdlKSA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIGtvcGZSZW5kZXJuKCkg
ewogICAgLy8gU2NoaWNodGZvbGdlLVNla3Rpb24gaXN0IGltIFJlZGVzaWduIGVudGZhbGxlbiDi
gJQgZGVyIERPTS1Db250YWluZXIKICAgIC8vIGV4aXN0aWVydCBuaWNodCBtZWhyLCBhbHNvIGtl
aW4gUmVuZGVyLUF1ZnJ1Zi4KCiAgICAvLyBSZWNodGUgU2VpdGU6IERhdHVtc3plaWxlbgogICAg
dmFyIHRhZ0h0bWwgPSAnJywgd3RIdG1sID0gJycsIGZlcmllbkh0bWwgPSAnJywgZXZlbnRzSHRt
bCA9ICcnOwogICAgLy8gRkxELUhlYWRlci1aZWlsZW4gKERTTSArIFZvcmdhYmUgLyBTdMOkcmtl
LVNvbGwgLyBGLUwgLyBTLUwgLyBVbnQtRiAvIFVudC1OKQogICAgdmFyIGRzbUh0bWwgPSAnJzsK
ICAgIHZhciB0ZFZvcmdIdG1sID0gJycsIHRkU29sbEh0bWwgPSAnJywgdGRGTEh0bWwgPSAnJywg
dGRTTEh0bWwgPSAnJywgdGRVRkh0bWwgPSAnJywgdGRVTkh0bWwgPSAnJzsKCiAgICBaLnRhZ2Uu
Zm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAgdmFyIGRTdHIgPSBkYXR1bVN0cihkKTsKICAg
ICAgICB2YXIgaW5mbyA9IFoudGFnSW5mb3NbZFN0cl0gfHwgeyB0eXA6ICdub3JtYWwnLCBnZWJ1
cnRzdGFnZTogW10gfTsKICAgICAgICB2YXIgaXN0SGV1dGUgPSBkU3RyID09PSBaLmhldXRlU3Ry
OwogICAgICAgIHZhciB3ZSA9IGlzdFdvY2hlbmVuZGUoZCk7CgogICAgICAgIC8vIFJlaWNoaGFs
dGlnZXIgVG9vbHRpcDogRmVpZXJ0YWcsIEZlcmllbiwgU29uZGVydGVybWluLCBHZWJ1cnRzdGFn
ZQogICAgICAgIHZhciB0aXRsZVRlaWxlID0gW107CiAgICAgICAgaWYgKGluZm8ubmFtZSkgdGl0
bGVUZWlsZS5wdXNoKGluZm8udHlwID09PSAnZmVpZXJ0YWcnID8gJ/CfjokgJyArIGluZm8ubmFt
ZSA6IGluZm8ubmFtZSk7CiAgICAgICAgaWYgKGluZm8uc29uZGVyKSB7CiAgICAgICAgICAgIHZh
ciBzVGl0ZWwgPSBpbmZvLnNvbmRlci50aXRlbCB8fCByZW5kZXJIb29rcy5zb25kZXJUaXRlbEF1
c1RleHQoaW5mby5zb25kZXIudGV4dCkgfHwgJyc7CiAgICAgICAgICAgIHRpdGxlVGVpbGUucHVz
aCgoaW5mby5zb25kZXIudHlwID09PSAnd2FybnVuZycgPyAn4pqgICcgOiAn4oS5ICcpICsgc1Rp
dGVsKTsKICAgICAgICB9CiAgICAgICAgaWYgKGluZm8uZ2VidXJ0c3RhZ2UgJiYgaW5mby5nZWJ1
cnRzdGFnZS5sZW5ndGgpIHsKICAgICAgICAgICAgdmFyIGdiID0gaW5mby5nZWJ1cnRzdGFnZS5t
YXAoZnVuY3Rpb24oZykgewogICAgICAgICAgICAgICAgdmFyIGFsdGVyID0gZy5qYWhyID8gJyAo
JyArICgoWi5hZG1pbi5qYWhyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSkgLSBnLmphaHIp
ICsgJyknIDogJyc7CiAgICAgICAgICAgICAgICByZXR1cm4gZy5uYW1lICsgYWx0ZXI7CiAgICAg
ICAgICAgIH0pLmpvaW4oJywgJyk7CiAgICAgICAgICAgIHRpdGxlVGVpbGUucHVzaCgn8J+OgiBH
ZWJ1cnRzdGFnOiAnICsgZ2IpOwogICAgICAgIH0KICAgICAgICB2YXIgdGl0bGUgPSB0aXRsZVRl
aWxlLmpvaW4oJ1xuJyk7CgogICAgICAgIC8vIFRhZ2VzdHlwLUtsYXNzZSBmw7xyIEtvcGYKICAg
ICAgICB2YXIga29wZkNscyA9ICcnOwogICAgICAgIGlmIChpc3RIZXV0ZSkga29wZkNscyA9ICcg
a2QtaGV1dGUnOwogICAgICAgIGVsc2UgaWYgKGluZm8udHlwID09PSAnZmVpZXJ0YWcnKSBrb3Bm
Q2xzID0gJyBrZC1mZWllcnRhZy1iZycgKyAoaW5mby53aWNodGlnID8gJyBrZC1mZWllcnRhZy13
aWNodGlnJyA6ICcnKTsKICAgICAgICBlbHNlIGlmICh3ZSkga29wZkNscyA9ICcga2Qtd29jaGVu
ZW5kZSc7CiAgICAgICAgaWYgKGluZm8uc29uZGVyKSBrb3BmQ2xzICs9ICcga2Qtc29uZGVydGFn
LScgKyAoaW5mby5zb25kZXIudHlwIHx8ICdoaW53ZWlzJyk7CgogICAgICAgIC8vIFplaWxlIDE6
IERhdHVtIChkZC5tbS4pIOKAlCBHZWJ1cnRzdGFnL1NvbmRlcnRlcm1pbiB3YW5kZXJuIGluIGRp
ZSBFdmVudHMtWmVpbGUgKFM1KQogICAgICAgIHRhZ0h0bWwgKz0gJzxkaXYgY2xhc3M9ImtkLXpl
bGxlJyArIGtvcGZDbHMgKyAnIiB0aXRsZT0iJyArIGVzY2FwZUF0dHIodGl0bGUpICsgJyIgZGF0
YS1kYXR1bT0iJyArIGRTdHIgKyAnIj4nICsKICAgICAgICAgICAgZGF0dW1LdXJ6REUoZCkgKyAn
PC9kaXY+JzsKCiAgICAgICAgLy8gWmVpbGUgMjogV29jaGVudGFnCiAgICAgICAgd3RIdG1sICs9
ICc8ZGl2IGNsYXNzPSJrZC16ZWxsZScgKyBrb3BmQ2xzICsgJyI+JyArIHdvY2hlbnRhZ0t1cnoo
ZCkgKyAnPC9kaXY+JzsKCiAgICAgICAgLy8gWmVpbGUgMzogRXZlbnRzIChTb25kZXJ0ZXJtaW5l
ICsgR2VidXJ0c3RhZ2UgYWxzIGdyb3NzZSBJY29ucywgUzMpCiAgICAgICAgdmFyIGV2ZW50c1pl
bGxlSHRtbCA9ICcnOwogICAgICAgIHZhciBldmVudHNUaXRsZVRlaWxlID0gW107CiAgICAgICAg
aWYgKGluZm8uc29uZGVyKSB7CiAgICAgICAgICAgIHZhciBzSWNvbk5hbWUgPSBpbmZvLnNvbmRl
ci5pY29uIHx8IChpbmZvLnNvbmRlci50eXAgPT09ICd3YXJudW5nJyA/ICdhbGVydC10cmlhbmds
ZScgOiAnaW5mbycpOwogICAgICAgICAgICB2YXIgc1RpdGVsVGV4dCA9IGluZm8uc29uZGVyLnRp
dGVsIHx8IHJlbmRlckhvb2tzLnNvbmRlclRpdGVsQXVzVGV4dChpbmZvLnNvbmRlci50ZXh0KSB8
fCAnJzsKICAgICAgICAgICAgdmFyIHNDbHMgPSAna2QtZXZlbnQtaWNvbiBrZC1ldmVudC1zb25k
ZXIga2QtZXZlbnQtJyArIChpbmZvLnNvbmRlci50eXAgfHwgJ2hpbndlaXMnKTsKICAgICAgICAg
ICAgLy8gQmVpIEthdGVnb3JpZSBCVkIvU3BvcnQgbWl0IExvZ28ocyk6IFZlcmVpbnNsb2dvcyBy
ZW5kZXJuIHN0YXR0CiAgICAgICAgICAgIC8vIEx1Y2lkZS1JY29uLiBTdGV1ZXJ1bmcgw7xiZXIg
bG9nb0RhcnN0ZWxsdW5nIChiZWlkZS9lcnN0ZXMvendlaXRlcy9rZWluZXMpLgogICAgICAgICAg
ICB2YXIgbG9nb0h0bWwgPSByZW5kZXJIb29rcy5zb25kZXJMb2dvc0h0bWwoaW5mby5zb25kZXIp
OwogICAgICAgICAgICB2YXIgaW5oYWx0SHRtbCA9IGxvZ29IdG1sIHx8IGljb25TdmdIdG1sKHNJ
Y29uTmFtZSwgMTgpOwogICAgICAgICAgICB2YXIgc0Nsc0V4dCA9IHNDbHMgKyAobG9nb0h0bWwg
PyAnIGtkLWV2ZW50LWxvZ29zJyA6ICcnKTsKICAgICAgICAgICAgZXZlbnRzWmVsbGVIdG1sICs9
ICc8c3BhbiBjbGFzcz0iJyArIHNDbHNFeHQgKyAnIiBkYXRhLXNvbmRlci1kYXR1bT0iJyArIGVz
Y2FwZUF0dHIoaW5mby5zb25kZXIuZGF0dW0pICsKICAgICAgICAgICAgICAgICciIHRpdGxlPSIn
ICsgZXNjYXBlQXR0cihzVGl0ZWxUZXh0KSArICciPicgKyBpbmhhbHRIdG1sICsgJzwvc3Bhbj4n
OwogICAgICAgICAgICBldmVudHNUaXRsZVRlaWxlLnB1c2goc1RpdGVsVGV4dCk7CiAgICAgICAg
fQogICAgICAgIGlmIChpbmZvLmdlYnVydHN0YWdlICYmIGluZm8uZ2VidXJ0c3RhZ2UubGVuZ3Ro
KSB7CiAgICAgICAgICAgIHZhciBnYk5hbWVuID0gaW5mby5nZWJ1cnRzdGFnZS5tYXAoZnVuY3Rp
b24oZykgewogICAgICAgICAgICAgICAgdmFyIGFsdGVyID0gZy5qYWhyID8gJyAoJyArICgoWi5h
ZG1pbi5qYWhyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSkgLSBnLmphaHIpICsgJyknIDog
Jyc7CiAgICAgICAgICAgICAgICByZXR1cm4gZy5uYW1lICsgYWx0ZXI7CiAgICAgICAgICAgIH0p
LmpvaW4oJywgJyk7CiAgICAgICAgICAgIGV2ZW50c1plbGxlSHRtbCArPSAnPHNwYW4gY2xhc3M9
ImtkLWV2ZW50LWljb24ga2QtZXZlbnQtZ2VidXJ0c3RhZyIgdGl0bGU9IkdlYnVydHN0YWc6ICcg
KwogICAgICAgICAgICAgICAgZXNjYXBlQXR0cihnYk5hbWVuKSArICciPicgKyBpY29uU3ZnSHRt
bCgnY2FrZScsIDE4KSArICc8L3NwYW4+JzsKICAgICAgICAgICAgZXZlbnRzVGl0bGVUZWlsZS5w
dXNoKCdHZWJ1cnRzdGFnOiAnICsgZ2JOYW1lbik7CiAgICAgICAgfQogICAgICAgIHZhciBldmVu
dHNLbGlja2JhciA9IGluZm8uc29uZGVyIHx8IFouaXN0U3VwZXJVc2VyOwogICAgICAgIGV2ZW50
c0h0bWwgKz0gJzxkaXYgY2xhc3M9ImtkLXplbGxlJyArIChldmVudHNLbGlja2JhciA/ICcga2Qt
ZXZlbnRzLWtsaWNrYmFyJyA6ICcnKSArCiAgICAgICAgICAgICciIHRpdGxlPSInICsgZXNjYXBl
QXR0cihldmVudHNUaXRsZVRlaWxlLmpvaW4oJ1xuJykpICsgJyIgZGF0YS1kYXR1bT0iJyArIGRT
dHIgKyAnIj4nICsKICAgICAgICAgICAgZXZlbnRzWmVsbGVIdG1sICsgJzwvZGl2Pic7CgogICAg
ICAgIC8vIFplaWxlIDQ6IEZlcmllbi9GZWllcnRhZy1NYXJraWVydW5nIChrbGlja2JhciAtPiBI
aW50ZXJncnVuZC1JbmZvLU1vZGFsKQogICAgICAgIHZhciBmZXJpZW5DbHMgPSAnJywgZmVyaWVu
VGV4dCA9ICcnLCBmZXJpZW5UaXRsZSA9ICcnOwogICAgICAgIGlmIChpbmZvLnR5cCA9PT0gJ2Zl
aWVydGFnJykgewogICAgICAgICAgICBmZXJpZW5DbHMgPSAnIGtkLWZlaWVydGFnIGtkLXRlcm1p
bi1rbGlja2Jhcic7CiAgICAgICAgICAgIGZlcmllblRleHQgPSAnRlQnOwogICAgICAgICAgICBm
ZXJpZW5UaXRsZSA9IChpbmZvLm5hbWUgfHwgJycpICsgJ1xuS2xpY2s6IEhpbnRlcmdydW5kLUlu
Zm8gYW56ZWlnZW4nOwogICAgICAgIH0gZWxzZSBpZiAoaW5mby50eXAgPT09ICdmZXJpZW4nKSB7
CiAgICAgICAgICAgIGZlcmllbkNscyA9ICcga2QtZmVyaWVuIGtkLXRlcm1pbi1rbGlja2Jhcic7
CiAgICAgICAgICAgIGZlcmllblRleHQgPSAn8J+Plu+4jyc7CiAgICAgICAgICAgIGZlcmllblRp
dGxlID0gKGluZm8ubmFtZSB8fCAnU2NodWxmZXJpZW4nKSArICdcbktsaWNrOiBIaW50ZXJncnVu
ZC1JbmZvIGFuemVpZ2VuJzsKICAgICAgICB9CiAgICAgICAgLy8gQi42OiBWZXJiaW5kbGljaGtl
aXRzLUZhcmJsZWlzdGUgYW0gdW50ZXJlbiBSYW5kIGRlciBGZXJpZW4tWmVpbGUgKGxldHp0ZSBE
YXR1bXMtSGVhZGVyLVplaWxlKQogICAgICAgIHZhciB2ZkdyZW56ZSA9IHZlcmJpbmRsaWNoa2Vp
dHNTdGFydERhdHVtKCk7CiAgICAgICAgdmFyIHZmQ2xzID0gJyc7CiAgICAgICAgaWYgKHZmR3Jl
bnplKSB7CiAgICAgICAgICAgIHZmQ2xzID0gaXN0SW5WZXJiaW5kbGljaGtlaXQoZFN0cikgPyAn
IGtkLXZlcmJpbmRsaWNoLWdlc3BlcnJ0JyA6ICcga2QtdmVyYmluZGxpY2gtb2ZmZW4nOwogICAg
ICAgIH0KICAgICAgICBmZXJpZW5IdG1sICs9ICc8ZGl2IGNsYXNzPSJrZC16ZWxsZScgKyBmZXJp
ZW5DbHMgKyB2ZkNscyArICciIHRpdGxlPSInICsgZXNjYXBlQXR0cihmZXJpZW5UaXRsZSkgKyAn
IiBkYXRhLWRhdHVtPSInICsgZFN0ciArICciPicgKyBlc2NhcGVIVE1MKGZlcmllblRleHQpICsg
JzwvZGl2Pic7CgogICAgICAgIC8vIEZMRDogRFNNLVRvZ2dsZS1aZWxsZS4gU3ltYm9sIHdpcmQg
aW5saW5lIGdlcmVuZGVydC4KICAgICAgICAvLyBTeW1ib2xlIGtvbmZpZ3VyaWVyYmFyIGluIGhl
YWRlcktvbmZpZy5kc20uc3ltYm9sR2VtYWNodC9OaWNodEdlbWFjaHQKICAgICAgICAvLyAoQXVk
aXQtSXRlci1ELCAyMDI2LTA1LTA1KSDigJQgRGVmYXVsdCDinJMgLyDDly4KICAgICAgICAvLyBU
b2dnbGUgbnVyIHBlciBEb3BwZWxrbGljayBmw7xyIFNVL0ZhY2hhdWZzaWNodC8xLiBFQiBWLiDi
gJQgc2llaGUgZGFyZkRzbVRvZ2dlbG4oKS4KICAgICAgICB2YXIgZHNtQWt0aXYgPSBkc21HZXNl
dHp0KGRTdHIpOwogICAgICAgIHZhciBfaGtEc20gPSAoaGVhZGVyS29uZmlnR2V0KCkuZHNtKSB8
fCB7fTsKICAgICAgICB2YXIgZHNtU3ltID0gZHNtQWt0aXYgPyAoX2hrRHNtLnN5bWJvbEdlbWFj
aHQgfHwgJ+KckycpIDogKF9oa0RzbS5zeW1ib2xOaWNodEdlbWFjaHQgfHwgJ8OXJyk7CiAgICAg
ICAgdmFyIGRzbVRpdCA9IGRhcmZEc21Ub2dnZWxuKCkKICAgICAgICAgICAgPyAoZHNtQWt0aXYg
PyAnSW4gRFNNIGdlcGZsZWd0IOKAlCBEb3BwZWxrbGljayB6dW0gWnVyw7xja3NldHplbicgOiAn
SW4gRFNNIG5vY2ggbmljaHQgZ2VwZmxlZ3Qg4oCUIERvcHBlbGtsaWNrIHp1bSBCZXN0w6R0aWdl
bicpCiAgICAgICAgICAgIDogKGRzbUFrdGl2ID8gJ0luIERTTSBnZXBmbGVndCcgOiAnSW4gRFNN
IG5vY2ggbmljaHQgZ2VwZmxlZ3QnKTsKICAgICAgICBkc21IdG1sICs9ICc8ZGl2IGNsYXNzPSJr
ZC16ZWxsZSB0ZC1kc20temVsbGUnICsgKGRzbUFrdGl2ID8gJyB0ZC1kc20tYWt0aXYgYWt0aXYn
IDogJycpICsgJyIgZGF0YS1kYXR1bT0iJyArIGRTdHIgKyAnIiB0aXRsZT0iJyArCiAgICAgICAg
ICAgIGVzY2FwZUF0dHIoZHNtVGl0KSArICciPjxzcGFuIGNsYXNzPSJ0ZC1kc20tc3ltIj4nICsg
ZHNtU3ltICsgJzwvc3Bhbj48L2Rpdj4nOwoKICAgICAgICAvLyBGTEQ6IEhlYWRlci1aZWxsZW4g
cHJvIFRhZyAodm9yZ2FiZSwgc29sbCwgRi9MLCBTL0wsIFVudC1GLCBVbnQtTikKICAgICAgICAv
LyBMb2dpayBsaWVndCB6ZW50cmFsIGluIHRhZ0hlYWRlclplbGxlbkh0bWwoKSDigJQgZnVlciBJ
bml0aWFsLVJlbmRlciBVTkQgTGl2ZS1VcGRhdGUuCiAgICAgICAgdmFyIHRoeiA9IHRhZ0hlYWRl
clplbGxlbkh0bWwoZCk7CiAgICAgICAgdGRWb3JnSHRtbCArPSB0aHoudm9yZ2FiZTsKICAgICAg
ICB0ZFNvbGxIdG1sICs9IHRoei5zb2xsOwogICAgICAgIHRkRkxIdG1sICAgKz0gdGh6LmZydWVo
TDsKICAgICAgICB0ZFNMSHRtbCAgICs9IHRoei5zcGFldEw7CiAgICAgICAgdGRVRkh0bWwgICAr
PSB0aHoudW50RnJ1ZWg7CiAgICAgICAgdGRVTkh0bWwgICArPSB0aHoudW50TmFjaHQ7CiAgICB9
KTsKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0dW0temVpbGUtdGFnJykuaW5uZXJI
VE1MID0gdGFnSHRtbDsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXR1bS16ZWlsZS13
b2NoZW50YWcnKS5pbm5lckhUTUwgPSB3dEh0bWw7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGF0dW0temVpbGUtZmVyaWVuJykuaW5uZXJIVE1MID0gZmVyaWVuSHRtbDsKICAgIC8vIFI1
OiBIZXV0ZS1CYW5uZXItRmVsZGVyIGJlZnVlbGxlbiAoaGV1dGlnZXMgRGF0dW0gKyBXb2NoZW50
YWcgbGlua3Mgb2JlbikKICAgIHZhciBoZXV0ZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2tsLWhldXRlLWRhdHVtJyk7CiAgICB2YXIgd3RhZ0VsICA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdrbC1oZXV0ZS13dGFnJyk7CiAgICBpZiAoaGV1dGVFbCB8fCB3dGFnRWwpIHsKICAgICAg
ICB2YXIgbW9uYXRlID0gWydKYW4uJywnRmViLicsJ03DpHJ6JywnQXByLicsJ01haScsJ0p1bmkn
LCdKdWxpJywnQXVnLicsJ1NlcC4nLCdPa3QuJywnTm92LicsJ0Rlei4nXTsKICAgICAgICB2YXIg
d29jaGVuID0gWydTb25udGFnJywnTW9udGFnJywnRGllbnN0YWcnLCdNaXR0d29jaCcsJ0Rvbm5l
cnN0YWcnLCdGcmVpdGFnJywnU2Ftc3RhZyddOwogICAgICAgIHZhciBqZXR6dCAgPSBuZXcgRGF0
ZSgpOwogICAgICAgIGlmIChoZXV0ZUVsKSBoZXV0ZUVsLnRleHRDb250ZW50ID0gamV0enQuZ2V0
RGF0ZSgpICsgJy4gJyArIG1vbmF0ZVtqZXR6dC5nZXRNb250aCgpXSArICcgJyArIGpldHp0Lmdl
dEZ1bGxZZWFyKCk7CiAgICAgICAgaWYgKHd0YWdFbCkgIHd0YWdFbC50ZXh0Q29udGVudCAgPSB3
b2NoZW5bamV0enQuZ2V0RGF5KCldOwogICAgfQogICAgLy8gRkxELUhlYWRlci1aZWlsZW4gcmVj
aHRzCiAgICB2YXIgc2V0SWYgPSBmdW5jdGlvbihpZCwgaHRtbCkgeyB2YXIgZWwgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChpZCk7IGlmIChlbCkgZWwuaW5uZXJIVE1MID0gaHRtbDsgfTsKICAg
IHNldElmKCdkYXR1bS16ZWlsZS1ldmVudHMnLCAgIGV2ZW50c0h0bWwpOwogICAgc2V0SWYoJ3Rk
LWRzbS16ZWlsZScsICAgICAgICAgZHNtSHRtbCk7CiAgICBzZXRJZigndGQtdm9yZ2FiZS16ZWls
ZScsICAgICB0ZFZvcmdIdG1sKTsKICAgIHNldElmKCd0ZC1zdGFlcmtlc29sbC16ZWlsZScsIHRk
U29sbEh0bWwpOwogICAgc2V0SWYoJ3RkLWZydWVoLWwtemVpbGUnLCAgICAgdGRGTEh0bWwpOwog
ICAgc2V0SWYoJ3RkLXNwYWV0LWwtemVpbGUnLCAgICAgdGRTTEh0bWwpOwogICAgc2V0SWYoJ3Rk
LXVudHN0dWV0ei1mLXplaWxlJywgdGRVRkh0bWwpOwogICAgc2V0SWYoJ3RkLXVudHN0dWV0ei1u
LXplaWxlJywgdGRVTkh0bWwpOwoKICAgIC8vIEtvbmZpZ3VyaWVyYmFyZSBTaWNodGJhcmtlaXQg
ZGVyIEhlYWRlci1aZWlsZW4gYW53ZW5kZW4KICAgIGNvdW50ZXJTaWNodGJhcmtlaXRBbndlbmRl
bigpOwp9CgovLyA9PT09PSBOYW1lbnNzcGFsdGUgPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBuYW1l
blJlbmRlcm4oKSB7CiAgICB2YXIgaHRtbCA9ICcnOwogICAgWi5wZXJzb25lbi5mb3JFYWNoKGZ1
bmN0aW9uKHApIHsKICAgICAgICB2YXIgdW1nQ2xzID0gIXAuYWt0aXYgPyAnIG5hbWVuLXplaWxl
LXVtZ2VzZXR6dCcgOiAnJzsKICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJuYW1lbi16ZWls
ZScgKyB1bWdDbHMgKyAnIiBkYXRhLXBlcnNvbi1pZD0iJyArIHAuaWQgKyAnIiB0aXRsZT0iJyAr
CiAgICAgICAgICAgIChwLmFrdGl2ID8gJycgOiAnVW1nZXNldHp0IOKAlCBudXIgenVyIFJlY2hl
cmNoZSBlaW5nZWJsZW5kZXQnKSArICciPicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0ibnot
bmFtZSI+JyArIGVzY2FwZUhUTUwocGVyc29uTmFtZShwKSkgKyAocC5ha3RpdiA/ICcnIDogJyBc
dTIwMjAnKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9Im56LW9lIj4nICsg
ZXNjYXBlSFRNTChwLm9lIHx8ICcnKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xh
c3M9Im56LWdydXBwZSIgdGl0bGU9IkRpZW5zdGdyYWQnICsgKHAuZnVua3Rpb24gPyAnIOKAlCBG
dW5rdGlvbiAnICsgZXNjYXBlQXR0cihwLmZ1bmt0aW9uKSA6ICcnKSArICciPicgKyBlc2NhcGVI
VE1MKHAuZGllbnN0Z3JhZCB8fCAnJykgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJuei1kbnIiPicgKyBlc2NhcGVIVE1MKHAuZGllbnN0bnVtbWVyIHx8ICcnKSArICc8L2Rp
dj4nICsKICAgICAgICAnPC9kaXY+JzsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ25hbWVuLWxpc3RlJykuaW5uZXJIVE1MID0gaHRtbDsKfQoKLy8gPT09PT0gRGF0ZW5ncmlk
ID09PT09CgovLyBMaWVmZXJ0IGRhcyBJbm5lci1IVE1MIGVpbmVyIFNjaGljaHQtWmVsbGUgZW50
c3ByZWNoZW5kIGRlbSBmYXJiTW9kdXMKLy8gZGVzIENvZGVzLiBCZWkgJ3plbGxlJyBudXIgZGFz
IGdlc2ljaGVydGUgS8O8cnplbCDigJQgZGllIEZhcmItQW53ZW5kdW5nCi8vIHBhc3NpZXJ0IGRh
bm4gYW0gQ2VsbC1FbGVtZW50IHNlbGJzdCAoYmFja2dyb3VuZCtjb2xvcikuCmV4cG9ydCBmdW5j
dGlvbiB6ZWxsZUFuemVpZ2VIdG1sKHdlcnQsIGZhcmJlbikgewogICAgdmFyIGt1ID0gKGZhcmJl
biAmJiBmYXJiZW4ua3VlcnplbCkgfHwgd2VydCB8fCAnJzsKICAgIGlmICghd2VydCkgcmV0dXJu
IGVzY2FwZUhUTUwoa3UpOwogICAgdmFyIG1vZHVzID0gKGZhcmJlbiAmJiBmYXJiZW4uZmFyYk1v
ZHVzKSB8fCAnemVsbGUnOwogICAgdmFyIGhnID0gKGZhcmJlbiAmJiBmYXJiZW4uaGludGVyZ3J1
bmQpIHx8ICcnOwogICAgdmFyIHNmID0gKGZhcmJlbiAmJiBmYXJiZW4uc2NocmlmdCkgfHwgJyMw
MDAnOwogICAgaWYgKG1vZHVzID09PSAnemVsbGUnIHx8ICFoZykgcmV0dXJuIGVzY2FwZUhUTUwo
a3UpOwogICAgaWYgKG1vZHVzID09PSAndGV4dCcpIHsKICAgICAgICByZXR1cm4gJzxzcGFuIGNs
YXNzPSJ6ZWxsZS1tb2QtdGV4dCIgc3R5bGU9ImNvbG9yOicgKyBlc2NhcGVBdHRyKGhnKSArICci
PicgKyBlc2NhcGVIVE1MKGt1KSArICc8L3NwYW4+JzsKICAgIH0KICAgIHZhciBjbHMgPSBtb2R1
cyA9PT0gJ3BpbGxlJyA/ICd6ZWxsZS1tb2QtcGlsbGUnIDogJ3plbGxlLW1vZC1ibG9jayc7CiAg
ICByZXR1cm4gJzxzcGFuIGNsYXNzPSInICsgY2xzICsgJyIgc3R5bGU9ImJhY2tncm91bmQ6JyAr
IGVzY2FwZUF0dHIoaGcpICsgJztjb2xvcjonICsgZXNjYXBlQXR0cihzZikgKyAnIj4nICsgZXNj
YXBlSFRNTChrdSkgKyAnPC9zcGFuPic7Cn0KCmV4cG9ydCBmdW5jdGlvbiBkYXRlbkdyaWRSZW5k
ZXJuKCkgewogICAgdmFyIGh0bWwgPSAnJzsKICAgIFoucGVyc29uZW4uZm9yRWFjaChmdW5jdGlv
bihwKSB7CiAgICAgICAgdmFyIHplaWxlQ2xzID0gJ2dyaWQtemVpbGUnICsgKCFwLmFrdGl2ID8g
JyBncmlkLXplaWxlLXVtZ2VzZXR6dCcgOiAnJyk7CiAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFz
cz0iJyArIHplaWxlQ2xzICsgJyIgZGF0YS1wZXJzb24taWQ9IicgKyBwLmlkICsgJyI+JzsKICAg
ICAgICBaLnRhZ2UuZm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAgICAgIHZhciBkU3RyID0g
ZGF0dW1TdHIoZCk7CiAgICAgICAgICAgIHZhciBlID0gKFoucGxhbnVuZy5laW50cmFlZ2UgfHwg
e30pW2RTdHJdIHx8IHt9OwogICAgICAgICAgICB2YXIgd2VydCA9IGVbU3RyaW5nKHAuaWQpXSB8
fCAnJzsKICAgICAgICAgICAgdmFyIGZhcmJlbiA9IFouY29kZU1hcFt3ZXJ0XSB8fCB7fTsKICAg
ICAgICAgICAgdmFyIGluZm8gPSBaLnRhZ0luZm9zW2RTdHJdIHx8IHsgdHlwOiAnbm9ybWFsJyB9
OwogICAgICAgICAgICB2YXIgc3R5bGUgPSAnJywga2xhc3NlbiA9ICdncmlkLXplbGxlJzsKICAg
ICAgICAgICAgdmFyIGFuemVpZ2VIdG1sID0gZXNjYXBlSFRNTCh3ZXJ0KTsKCiAgICAgICAgICAg
IGlmICh3ZXJ0ICYmIGZhcmJlbi5oaW50ZXJncnVuZCkgewogICAgICAgICAgICAgICAgdmFyIG1v
ZHVzID0gZmFyYmVuLmZhcmJNb2R1cyB8fCAnemVsbGUnOwogICAgICAgICAgICAgICAgaWYgKG1v
ZHVzID09PSAnemVsbGUnKSB7CiAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSAnYmFja2dyb3Vu
ZC1jb2xvcjonICsgZmFyYmVuLmhpbnRlcmdydW5kICsgJztjb2xvcjonICsgKGZhcmJlbi5zY2hy
aWZ0IHx8ICcjMDAwJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhbnplaWdl
SHRtbCA9IHplbGxlQW56ZWlnZUh0bWwod2VydCwgZmFyYmVuKTsKICAgICAgICAgICAgfSBlbHNl
IGlmIChpbmZvLnR5cCA9PT0gJ3dvY2hlbmVuZGUnKSBrbGFzc2VuICs9ICcgc3BhbHRlLXdvY2hl
bmVuZGUnOwogICAgICAgICAgICBlbHNlIGlmIChpbmZvLnR5cCA9PT0gJ2ZlaWVydGFnJykga2xh
c3NlbiArPSAnIHNwYWx0ZS1mZWllcnRhZyc7CiAgICAgICAgICAgIGVsc2UgaWYgKGluZm8udHlw
ID09PSAnZmVyaWVuJykga2xhc3NlbiArPSAnIHNwYWx0ZS1mZXJpZW4nOwoKICAgICAgICAgICAg
Ly8gRkxEOiBQZmxpY2h0LVNldHp1bmcgZ2VnZW4gV3Vuc2NoIC0+IHZpc3VlbGxlciBNYXJrZXIK
ICAgICAgICAgICAgdmFyIHBmbGljaHQgPSByZW5kZXJIb29rcy5wZmxpY2h0TGFkZW4oZFN0ciwg
cC5pZCk7CiAgICAgICAgICAgIHZhciB0aXRlbCA9IHdlcnQ7CiAgICAgICAgICAgIGlmIChwZmxp
Y2h0ICYmIHdlcnQpIHsKICAgICAgICAgICAgICAgIGtsYXNzZW4gKz0gJyBncmlkLXplbGxlLXBm
bGljaHQnOwogICAgICAgICAgICAgICAgdGl0ZWwgPSB3ZXJ0ICsgJyAoUGZsaWNodC1TZXR6dW5n
IGdlZ2VuIFd1bnNjaCknOwogICAgICAgICAgICB9CgogICAgICAgICAgICBodG1sICs9ICc8ZGl2
IGNsYXNzPSInICsga2xhc3NlbiArICciIGRhdGEtZGF0dW09IicgKyBkU3RyICsgJyIgZGF0YS1w
ZXJzb249IicgKyBwLmlkICsgJyIgc3R5bGU9IicgKyBzdHlsZSArICciIHRpdGxlPSInICsgZXNj
YXBlQXR0cih0aXRlbCkgKyAnIj4nICsgYW56ZWlnZUh0bWwgKyAnPC9kaXY+JzsKICAgICAgICB9
KTsKICAgICAgICBodG1sICs9ICc8L2Rpdj4nOwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZ3JpZC1kYXRlbicpLmlubmVySFRNTCA9IGh0bWw7CiAgICBzY2hyYWZmdXJlbkFu
d2VuZGVuKCk7CiAgICBpZiAodHlwZW9mIHJlbmRlckhvb2tzLmtvbW1lbnRhcmVJbUdyaWRBbnpl
aWdlbiA9PT0gJ2Z1bmN0aW9uJykgcmVuZGVySG9va3Mua29tbWVudGFyZUltR3JpZEFuemVpZ2Vu
KCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBzY2hyYWZmdXJlbkFud2VuZGVuKCkgewogICAgWi50YWdl
LmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAgIHZhciBkU3RyID0gZGF0dW1TdHIoZCk7CiAg
ICAgICAgdmFyIHNjaHIgPSBzY2hyYWZmdXJCZXJlY2huZW4oZFN0cik7CiAgICAgICAgT2JqZWN0
LmtleXMoc2NocikuZm9yRWFjaChmdW5jdGlvbihwaWQpIHsKICAgICAgICAgICAgdmFyIG0gPSBz
Y2hyW3BpZF0sIHogPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ3JpZC16ZWxsZVtkYXRhLWRh
dHVtPSInICsgZFN0ciArICciXVtkYXRhLXBlcnNvbj0iJyArIHBpZCArICciXScpOwogICAgICAg
ICAgICBpZiAoIXopIHJldHVybjsKICAgICAgICAgICAgdmFyIHByID0gbS5jaGFyQXQoMCksIHJn
ID0gbS5jaGFyQXQoMSk7CiAgICAgICAgICAgIHZhciBjbCA9ICcnOwogICAgICAgICAgICBpZiAo
cHIgPT09ICdGJykgY2wgPSByZyA9PT0gJzEnID8gJ3NjaHJhZmZ1ci1mcnVlaCcgOiAnc2NocmFm
ZnVyLWZydWVoLTInOwogICAgICAgICAgICBpZiAocHIgPT09ICdTJykgY2wgPSByZyA9PT0gJzEn
ID8gJ3NjaHJhZmZ1ci1zcGFldCcgOiAnc2NocmFmZnVyLXNwYWV0LTInOwogICAgICAgICAgICBp
ZiAocHIgPT09ICdOJykgY2wgPSByZyA9PT0gJzEnID8gJ3NjaHJhZmZ1ci1uYWNodCcgOiAnc2No
cmFmZnVyLW5hY2h0LTInOwogICAgICAgICAgICBpZiAoY2wpIHouY2xhc3NMaXN0LmFkZChjbCk7
CiAgICAgICAgICAgIC8vIFZlcmFudHdvcnRsaWNoZSBtYXJraWVyZW4gKFJhbmcgMSA9IFZlcmFu
dHdvcnRsaWNoZXIpCiAgICAgICAgICAgIGlmIChyZyA9PT0gJzEnKSB7CiAgICAgICAgICAgICAg
ICB6LmNsYXNzTGlzdC5hZGQoJ3ZlcmFudHdvcnRsaWNoJyk7CiAgICAgICAgICAgICAgICB6LnRp
dGxlID0gKHoudGl0bGUgfHwgJycpICsgJyBbVkVSQU5UV09SVExJQ0hdJzsKICAgICAgICAgICAg
fQogICAgICAgIH0pOwogICAgfSk7Cn0KCi8vID09PT09IFplbGxlIGFrdHVhbGlzaWVyZW4gKG5h
Y2ggw4RuZGVydW5nKSA9PT09PQoKLy8gc3luY0ZsYXNoICsgc3luY0ZsYXNoWmVsbGUgLT4ganMv
c3luYy9zeW5jLWNsaWVudC5qcwoKZXhwb3J0IGZ1bmN0aW9uIHplbGxlVmlzdWVsbEFrdHVhbGlz
aWVyZW4oZFN0ciwgcGlkLCB3ZXJ0KSB7CiAgICB2YXIgeiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJy5ncmlkLXplbGxlW2RhdGEtZGF0dW09IicgKyBkU3RyICsgJyJdW2RhdGEtcGVyc29uPSIn
ICsgcGlkICsgJyJdJyk7CiAgICBpZiAoIXopIHJldHVybjsKICAgIHZhciBmYXJiZW4gPSBaLmNv
ZGVNYXBbd2VydF0gfHwge307CiAgICB2YXIgaW5mbyA9IFoudGFnSW5mb3NbZFN0cl0gfHwgeyB0
eXA6ICdub3JtYWwnIH07CiAgICB2YXIgcGZsaWNodCA9IHJlbmRlckhvb2tzLnBmbGljaHRMYWRl
bihkU3RyLCBwaWQpOwogICAgLy8gUGhhc2UgQTogTG9jay1TdGF0ZSB1bmQgU2VsZWt0aW9uIHZv
ciBjbGFzc05hbWUtUmVzZXQgcmV0dGVuCiAgICB2YXIgZnJlbWRMb2NrID0gWi5mcmVtZGVMb2Nr
c1tsb2NrS2V5KGRTdHIsIHBpZCldIHx8IG51bGw7CiAgICB2YXIgaXN0U2VsZWt0aWVydCA9IHou
Y2xhc3NMaXN0LmNvbnRhaW5zKCdncmlkLXplbGxlLXNlbGVrdGllcnQnKTsKICAgIHZhciBkbmRa
aWVsICAgICAgID0gei5jbGFzc0xpc3QuY29udGFpbnMoJ2RuZC16aWVsJyk7CiAgICB6LmNsYXNz
TmFtZSA9ICdncmlkLXplbGxlJzsKICAgIHouc3R5bGUuY3NzVGV4dCA9ICcnOwogICAgei50aXRs
ZSA9IHdlcnQgfHwgJyc7CiAgICBpZiAod2VydCAmJiBmYXJiZW4uaGludGVyZ3J1bmQpIHsKICAg
ICAgICB2YXIgbW9kdXMgPSBmYXJiZW4uZmFyYk1vZHVzIHx8ICd6ZWxsZSc7CiAgICAgICAgaWYg
KG1vZHVzID09PSAnemVsbGUnKSB7CiAgICAgICAgICAgIHouc3R5bGUuYmFja2dyb3VuZENvbG9y
ID0gZmFyYmVuLmhpbnRlcmdydW5kOwogICAgICAgICAgICB6LnN0eWxlLmNvbG9yID0gZmFyYmVu
LnNjaHJpZnQgfHwgJyMwMDAnOwogICAgICAgIH0KICAgICAgICB6LmlubmVySFRNTCA9IHplbGxl
QW56ZWlnZUh0bWwod2VydCwgZmFyYmVuKTsKICAgIH0gZWxzZSB7CiAgICAgICAgei50ZXh0Q29u
dGVudCA9IHdlcnQ7CiAgICAgICAgaWYgKGluZm8udHlwID09PSAnd29jaGVuZW5kZScpIHouY2xh
c3NMaXN0LmFkZCgnc3BhbHRlLXdvY2hlbmVuZGUnKTsKICAgICAgICBlbHNlIGlmIChpbmZvLnR5
cCA9PT0gJ2ZlaWVydGFnJykgei5jbGFzc0xpc3QuYWRkKCdzcGFsdGUtZmVpZXJ0YWcnKTsKICAg
ICAgICBlbHNlIGlmIChpbmZvLnR5cCA9PT0gJ2ZlcmllbicpIHouY2xhc3NMaXN0LmFkZCgnc3Bh
bHRlLWZlcmllbicpOwogICAgfQogICAgaWYgKHBmbGljaHQgJiYgd2VydCkgewogICAgICAgIHou
Y2xhc3NMaXN0LmFkZCgnZ3JpZC16ZWxsZS1wZmxpY2h0Jyk7CiAgICAgICAgei50aXRsZSA9ICh6
LnRpdGxlIHx8ICcnKSArICcgKFBmbGljaHQtU2V0enVuZyBnZWdlbiBXdW5zY2gpJzsKICAgIH0K
ICAgIGlmIChmcmVtZExvY2spIHsKICAgICAgICB6LmNsYXNzTGlzdC5hZGQoJ2dyaWQtemVsbGUt
bG9ja2VkJyk7CiAgICAgICAgdmFyIG9yaWcgPSB6LnRpdGxlIHx8ICcnOwogICAgICAgIHouc2V0
QXR0cmlidXRlKCdkYXRhLW9yaWctdGl0bGUnLCBvcmlnKTsKICAgICAgICB6LnRpdGxlID0gbG9j
a1Rvb2x0aXBUZXh0KGZyZW1kTG9jaykgKyAob3JpZyA/ICcg4oCUICcgKyBvcmlnIDogJycpOwog
ICAgfQogICAgaWYgKGlzdFNlbGVrdGllcnQpIHouY2xhc3NMaXN0LmFkZCgnZ3JpZC16ZWxsZS1z
ZWxla3RpZXJ0Jyk7CiAgICBpZiAoZG5kWmllbCkgei5jbGFzc0xpc3QuYWRkKCdkbmQtemllbCcp
OwoKICAgIC8vIFN0w6Rya2UgZsO8ciBkaWVzZW4gVGFnIGFrdHVhbGlzaWVyZW4g4oCUIFVORCBh
bGxlIEhlYWRlci1Db3VudGVyIChGL0wsIFMvTCwgVW50LUYsIFVudC1OLCBWb3JnYWJlLCBTb2xs
KQogICAgc3RhZXJrZVplbGxlQWt0dWFsaXNpZXJlbihkU3RyKTsKICAgIHRhZ2VzZGF0ZW5aZWxs
ZW5Ba3R1YWxpc2llcmVuKGRTdHIpOwoKICAgIC8vIFNjaHJhZmZ1cgogICAgdmFyIGFsbGUgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3JpZC16ZWxsZVtkYXRhLWRhdHVtPSInICsgZFN0
ciArICciXScpOwogICAgYWxsZS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKICAgICAgICBhLmNsYXNz
TGlzdC5yZW1vdmUoJ3NjaHJhZmZ1ci1mcnVlaCcsJ3NjaHJhZmZ1ci1zcGFldCcsJ3NjaHJhZmZ1
ci1uYWNodCcsJ3NjaHJhZmZ1ci1mcnVlaC0yJywnc2NocmFmZnVyLXNwYWV0LTInLCdzY2hyYWZm
dXItbmFjaHQtMicpOwogICAgfSk7CiAgICB2YXIgc2NociA9IHNjaHJhZmZ1ckJlcmVjaG5lbihk
U3RyKTsKICAgIE9iamVjdC5rZXlzKHNjaHIpLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAg
IHZhciBtID0gc2NocltwXSwgenogPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ3JpZC16ZWxs
ZVtkYXRhLWRhdHVtPSInICsgZFN0ciArICciXVtkYXRhLXBlcnNvbj0iJyArIHAgKyAnIl0nKTsK
ICAgICAgICBpZiAoIXp6KSByZXR1cm47CiAgICAgICAgdmFyIHByID0gbS5jaGFyQXQoMCksIHJn
ID0gbS5jaGFyQXQoMSksIGNsID0gJyc7CiAgICAgICAgaWYgKHByID09PSAnRicpIGNsID0gcmcg
PT09ICcxJyA/ICdzY2hyYWZmdXItZnJ1ZWgnIDogJ3NjaHJhZmZ1ci1mcnVlaC0yJzsKICAgICAg
ICBpZiAocHIgPT09ICdTJykgY2wgPSByZyA9PT0gJzEnID8gJ3NjaHJhZmZ1ci1zcGFldCcgOiAn
c2NocmFmZnVyLXNwYWV0LTInOwogICAgICAgIGlmIChwciA9PT0gJ04nKSBjbCA9IHJnID09PSAn
MScgPyAnc2NocmFmZnVyLW5hY2h0JyA6ICdzY2hyYWZmdXItbmFjaHQtMic7CiAgICAgICAgaWYg
KGNsKSB6ei5jbGFzc0xpc3QuYWRkKGNsKTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gc3Rh
ZXJrZVplbGxlQWt0dWFsaXNpZXJlbihkU3RyKSB7CiAgICB2YXIgc3RaZWlsZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzdGFlcmtlLXplaWxlJyk7CiAgICBpZiAoIXN0WmVpbGUpIHJldHVy
bjsKICAgIHZhciBpZHggPSBaLnRhZ2UuZmluZEluZGV4KGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGRh
dHVtU3RyKGQpID09PSBkU3RyOyB9KTsKICAgIGlmIChpZHggPCAwIHx8IGlkeCA+PSBzdFplaWxl
LmNoaWxkcmVuLmxlbmd0aCkgcmV0dXJuOwogICAgdmFyIHN0ID0gc3RhZXJrZUJlcmVjaG5lbihk
U3RyKTsKICAgIHZhciB6ZWxsZSA9IHN0WmVpbGUuY2hpbGRyZW5baWR4XTsKICAgIHplbGxlLmNs
YXNzTmFtZSA9ICdrZC16ZWxsZSAnICsgKHN0Lm9rID8gJ3N0YWVya2Utb2snIDogJ3N0YWVya2Ut
d2FybnVuZycpOwogICAgemVsbGUudGV4dENvbnRlbnQgPSBzdC50ZXh0OwogICAgemVsbGUudGl0
bGUgPSAnRjonICsgc3QuZiArICcgUzonICsgc3QucyArICcgTjonICsgc3QubjsKfQoKLy8gPT09
PT0gS29uZmlnLURlZmF1bHRzIChzaWNoZXJoZWl0c2dlcG9sc3RlcnQsIGZhbGxzIGFkbWluLmpz
b24gYWx0IGlzdCkgPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBjb3VudGVyS29uZmlnKCkgewogICAg
Ly8gR2xvYmFsZSBXZXJ0ZSAoQmFja3dhcmQtQ29tcGF0IGZ1ZXIgYWx0ZSBDYWxsZXIpLiBQcm8t
WmVpbGUtV2VydGUKICAgIC8vIHVlYmVyIGNvdW50ZXJLb25maWdaZWlsZShrZXkpIOKAlCB3aXJk
IGluIGNvdW50ZXJGb3JtYXRpZXJlbiAvIGNvdW50ZXJFcmZ1ZWxsdAogICAgLy8gdmVyd2VuZGV0
LCBzb2JhbGQgZGVyIEF1ZnJ1ZmVyIGVpbmVuIEtleSB1ZWJlcmdpYnQuCiAgICB2YXIgYyA9ICha
LmFkbWluICYmIFouYWRtaW4uY291bnRlcktvbmZpZykgfHwge307CiAgICB2YXIgaGsgPSBoZWFk
ZXJLb25maWdHZXQoKTsKICAgIHZhciByb3dzID0gaGsucm93czsKICAgIHJldHVybiB7CiAgICAg
ICAgYW56ZWlnZUZvcm1hdDogICAgICAgYy5hbnplaWdlRm9ybWF0ICAgICAgIHx8ICdzb2xsJywK
ICAgICAgICBzY2h3ZWxsd2VydFRvbGVyYW56OiBjLnNjaHdlbGx3ZXJ0VG9sZXJhbnogIT0gbnVs
bCA/IGMuc2Nod2VsbHdlcnRUb2xlcmFueiA6IDAsCiAgICAgICAgc2NocmlmdGdyb2Vzc2U6ICAg
ICAgaGsuc2NocmlmdGdyb2Vzc2UgICAgIHx8IDEzLAogICAgICAgIGZldHQ6ICAgICAgICAgICAg
ICAgIGhrLmZldHQgIT09IGZhbHNlLAogICAgICAgIG1hcmtlclphZWhsZW46ICAgICAgICEhYy5t
YXJrZXJaYWVobGVuLAogICAgICAgIHNpY2h0YmFyOiB7CiAgICAgICAgICAgIHZvcmdhYmU6ICBy
b3dzLnZvcmdhYmUuc2ljaHRiYXIgICAgICE9PSBmYWxzZSwKICAgICAgICAgICAgc29sbDogICAg
IHJvd3Muc3RhZXJrZXNvbGwuc2ljaHRiYXIgIT09IGZhbHNlLAogICAgICAgICAgICBmcnVlaEw6
ICAgcm93cy5mcnVlaEwuc2ljaHRiYXIgICAgICAhPT0gZmFsc2UsCiAgICAgICAgICAgIHNwYWV0
TDogICByb3dzLnNwYWV0TC5zaWNodGJhciAgICAgICE9PSBmYWxzZSwKICAgICAgICAgICAgdW50
RnJ1ZWg6IHJvd3MudW50Ri5zaWNodGJhciAgICAgICAgIT09IGZhbHNlLAogICAgICAgICAgICB1
bnROYWNodDogcm93cy51bnROLnNpY2h0YmFyICAgICAgICAhPT0gZmFsc2UKICAgICAgICB9CiAg
ICB9Owp9CgovLyBQcm8tWmVpbGUtQ291bnRlci1Lb25maWcgKDIwMjYtMDUtMDUpLiBMaWVzdCBh
dXMgaGVhZGVyS29uZmlnLmNvdW50ZXJba2V5XTsKLy8gZmFsbGJhY2sgYXVmIGdsb2JhbGUgY291
bnRlcktvbmZpZygpIHdlbm4gbmljaHRzIGdlcGZsZWd0IGlzdC4KZXhwb3J0IGZ1bmN0aW9uIGNv
dW50ZXJLb25maWdaZWlsZShrZXkpIHsKICAgIHZhciBoayA9IGhlYWRlcktvbmZpZ0dldCgpOwog
ICAgdmFyIHogPSAoaGsuY291bnRlciAmJiBoay5jb3VudGVyW2tleV0pIHx8IHt9OwogICAgdmFy
IGdsb2IgPSBjb3VudGVyS29uZmlnKCk7CiAgICByZXR1cm4gewogICAgICAgIGFuemVpZ2VGb3Jt
YXQ6ICAgICAgIHouYW56ZWlnZUZvcm1hdCAgICAgICB8fCBnbG9iLmFuemVpZ2VGb3JtYXQsCiAg
ICAgICAgc2Nod2VsbHdlcnRUb2xlcmFuejogei5zY2h3ZWxsd2VydFRvbGVyYW56ICE9IG51bGwg
PyB6LnNjaHdlbGx3ZXJ0VG9sZXJhbnogOiBnbG9iLnNjaHdlbGx3ZXJ0VG9sZXJhbnosCiAgICAg
ICAgbWFya2VyWmFlaGxlbjogICAgICAgei5tYXJrZXJaYWVobGVuICE9IG51bGwgPyAhIXoubWFy
a2VyWmFlaGxlbiA6IGdsb2IubWFya2VyWmFlaGxlbgogICAgfTsKfQoKZXhwb3J0IGZ1bmN0aW9u
IG1hcmtlcktvbmZpZyhrdWVyemVsKSB7CiAgICB2YXIgaGsgPSBoZWFkZXJLb25maWdHZXQoKTsK
ICAgIC8vIE5ldWUgUXVlbGxlOiBoay5tYXJrZXJba3VlcnplbF0gKDIwMjYtMDUtMDUpLiBCYWNr
d2FyZC1Db21wYXQ6IFRvcC1MZXZlbAogICAgLy8gWi5hZG1pbi5tYXJrZXJLb25maWcg4oCUIHdp
cmQgaW4gaGVhZGVyS29uZmlnR2V0IGJlcmVpdHMgaW4gaGsubWFya2VyIGdlbWVyZ2VkLgogICAg
dmFyIGsgPSAoaGsubWFya2VyICYmIGhrLm1hcmtlcltrdWVyemVsXSkgfHwgKFouYWRtaW4gJiYg
Wi5hZG1pbi5tYXJrZXJLb25maWcgJiYgWi5hZG1pbi5tYXJrZXJLb25maWdba3VlcnplbF0pIHx8
IHt9OwogICAgcmV0dXJuIHsKICAgICAgICBidWNoc3RhYmU6ICAgICAgay5idWNoc3RhYmUgfHwg
a3VlcnplbCwKICAgICAgICBtb2R1czogICAgICAgICAgay5tb2R1cyB8fCAncGlsbCcsCiAgICAg
ICAgaGludGVyZ3J1bmQ6ICAgIGsuaGludGVyZ3J1bmQgfHwgJyM4ODgnLAogICAgICAgIHNjaHJp
ZnQ6ICAgICAgICBrLnNjaHJpZnQgfHwgJyNmZmYnLAogICAgICAgIHNjaHJpZnRncm9lc3NlOiBr
LnNjaHJpZnRncm9lc3NlIHx8IDExLAogICAgICAgIGZldHQ6ICAgICAgICAgICAhIWsuZmV0dCwK
ICAgICAgICBrdXJzaXY6ICAgICAgICAgISFrLmt1cnNpdiwKICAgICAgICBib3JkZXJUb3A6ICAg
ICAgay5ib3JkZXJUb3AgfHwgJycsCiAgICAgICAgYm9yZGVyTGVmdDogICAgIGsuYm9yZGVyTGVm
dCB8fCAnJywKICAgICAgICBib3JkZXJSaWdodDogICAgay5ib3JkZXJSaWdodCB8fCAnJwogICAg
fTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGNvdW50ZXJGb3JtYXRpZXJlbihpc3QsIHNvbGwsIGtleSkg
ewogICAgdmFyIGZtdCA9IGtleSA/IGNvdW50ZXJLb25maWdaZWlsZShrZXkpLmFuemVpZ2VGb3Jt
YXQgOiBjb3VudGVyS29uZmlnKCkuYW56ZWlnZUZvcm1hdDsKICAgIGlmIChmbXQgPT09ICdpc3Qn
KSAgICAgICAgcmV0dXJuIFN0cmluZyhpc3QpOwogICAgaWYgKGZtdCA9PT0gJ2lzdFZvblNvbGwn
KSByZXR1cm4gaXN0ICsgJyB2b24gJyArIHNvbGw7CiAgICBpZiAoZm10ID09PSAnc29sbCcpICAg
ICAgIHJldHVybiBTdHJpbmcoc29sbCk7CiAgICByZXR1cm4gaXN0ICsgJy8nICsgc29sbDsgICAv
LyBpc3RTb2xsIChEZWZhdWx0KQp9CgpleHBvcnQgZnVuY3Rpb24gY291bnRlckVyZnVlbGx0KGlz
dCwgc29sbCwgbWFya2VyLCBrZXkpIHsKICAgIHZhciBjayA9IGtleSA/IGNvdW50ZXJLb25maWda
ZWlsZShrZXkpIDogY291bnRlcktvbmZpZygpOwogICAgdmFyIHRvbCA9IGNrLnNjaHdlbGx3ZXJ0
VG9sZXJhbnogfHwgMDsKICAgIGlmICgoc29sbCAtIGlzdCkgPD0gdG9sKSByZXR1cm4gdHJ1ZTsK
ICAgIC8vIFdlbm4gYWt0aXZpZXJ0LCBnZWx0ZW4gZ2VzZXR6dGUgQS9CL0MtTWFya2VyIGFscyAi
VW50ZXJzdMO8dHp1bmcgZXJoYWx0ZW4iIOKGkiBncsO8bi4KICAgIGlmIChjay5tYXJrZXJaYWVo
bGVuICYmIG1hcmtlciAmJiBtYXJrZXIubGVuZ3RoID4gMCkgcmV0dXJuIHRydWU7CiAgICByZXR1
cm4gZmFsc2U7Cn0KCi8vIE1vZHVsLWdsb2JhbGUgTWFya2VyLVBpbGxzIOKAlCB3aXJkIHNvd29o
bCB2b24ga29wZlJlbmRlcm4gKEluaXRpYWwpCi8vIGFscyBhdWNoIHRhZ0hlYWRlclplbGxlbkh0
bWwgKExpdmUtVXBkYXRlKSBnZW51dHp0LgpleHBvcnQgZnVuY3Rpb24gdGRNYXJrZXJQaWxscyhh
cnIpIHsKICAgIGlmICghYXJyIHx8ICFhcnIubGVuZ3RoKSByZXR1cm4gJyc7CiAgICByZXR1cm4g
YXJyLm1hcChmdW5jdGlvbihtKSB7CiAgICAgICAgdmFyIGNmZyA9IG1hcmtlcktvbmZpZyhtKTsK
ICAgICAgICBpZiAoY2ZnLm1vZHVzID09PSAndmVyc3RlY2t0JykgcmV0dXJuICcnOwogICAgICAg
IHZhciBzdHlsZVBhcnRzID0gW107CiAgICAgICAgLy8gSGludGVyZ3J1bmQgbnVyIHNldHplbiwg
d2VubiBuaWNodCB0cmFuc3BhcmVudAogICAgICAgIGlmICh0eXBlb2YgbWFya2VySGludGVyZ3J1
bmRJc3RUcmFuc3BhcmVudCA9PT0gJ2Z1bmN0aW9uJwogICAgICAgICAgICA/ICFtYXJrZXJIaW50
ZXJncnVuZElzdFRyYW5zcGFyZW50KGNmZy5oaW50ZXJncnVuZCkKICAgICAgICAgICAgOiAhIWNm
Zy5oaW50ZXJncnVuZCkgewogICAgICAgICAgICBzdHlsZVBhcnRzLnB1c2goJ2JhY2tncm91bmQ6
JyArIGNmZy5oaW50ZXJncnVuZCk7CiAgICAgICAgfQogICAgICAgIHN0eWxlUGFydHMucHVzaCgn
Y29sb3I6JyArIGNmZy5zY2hyaWZ0KTsKICAgICAgICBzdHlsZVBhcnRzLnB1c2goJ2ZvbnQtc2l6
ZTonICsgY2ZnLnNjaHJpZnRncm9lc3NlICsgJ3B4Jyk7CiAgICAgICAgaWYgKGNmZy5mZXR0KSBz
dHlsZVBhcnRzLnB1c2goJ2ZvbnQtd2VpZ2h0OjYwMCcpOwogICAgICAgIHZhciBjbHMgPSAndGQt
bWFya2VyIHRkLW1hcmtlci0nICsgY2ZnLm1vZHVzOwogICAgICAgIHJldHVybiAnPHNwYW4gY2xh
c3M9IicgKyBjbHMgKyAnIiBzdHlsZT0iJyArIHN0eWxlUGFydHMuam9pbignOycpICsgJyI+JyAr
IGVzY2FwZUhUTUwoY2ZnLmJ1Y2hzdGFiZSkgKyAnPC9zcGFuPic7CiAgICB9KS5qb2luKCcnKTsK
fQoKLy8gTGllZmVydCBIVE1MLVNuaXBwZXRzIGZ1ZXIgZGllIEhlYWRlci1aZWxsZW4gRUlORVMg
VGFnZXMg4oCUIHdpcmQgdm9uCi8vIEluaXRpYWwtUmVuZGVyIFVORCBMaXZlLVVwZGF0ZSB2ZXJ3
ZW5kZXQuCmV4cG9ydCBmdW5jdGlvbiB0YWdIZWFkZXJaZWxsZW5IdG1sKGQpIHsKICAgIHZhciBk
U3RyID0gZGF0dW1TdHIoZCk7CiAgICB2YXIgYmVzID0gaXN0QmVzZXR6dW5nRnVlcihkU3RyKTsK
ICAgIHZhciB0ZCA9IGJlcy50ZDsKICAgIHZhciBjayA9IGNvdW50ZXJLb25maWcoKTsKICAgIHZh
ciBzdHlsZUF0dHIgPSAnIHN0eWxlPSJmb250LXNpemU6JyArIGNrLnNjaHJpZnRncm9lc3NlICsg
J3B4OycgKyAoY2suZmV0dCA/ICdmb250LXdlaWdodDo2MDAnIDogJycpICsgJyInOwoKICAgIC8v
IFZvcmdhYmUtWmVsbGU6IHZ6LXtmfHN8bn0gYXVmIGRlciBaZWxsZSArIC52cC1QaWxsZSBhbHMg
SW5oYWx0LgogICAgLy8gQm9keS1LbGFzc2UgInZvcmdhYmUtZmlsbCIgc2NoYWx0ZXQgendpc2No
ZW4gUGlsbGUgdW5kIFZvbGwtWmVsbGUuCiAgICB2YXIgdm9yZ0NsYXNzID0gJyc7CiAgICB2YXIg
dm9yZ0luaGFsdCA9IGVzY2FwZUhUTUwodGQudm9yZ2FiZVNjaGljaHQgfHwgJycpOwogICAgaWYg
KHRkLnZvcmdhYmVTY2hpY2h0ID09PSAnRicpIHsKICAgICAgICB2b3JnQ2xhc3MgPSAnIHZ6LWYn
OwogICAgICAgIHZvcmdJbmhhbHQgPSAnPHNwYW4gY2xhc3M9InZwIHZwLWYiPkY8L3NwYW4+JzsK
ICAgIH0gZWxzZSBpZiAodGQudm9yZ2FiZVNjaGljaHQgPT09ICdTJykgewogICAgICAgIHZvcmdD
bGFzcyA9ICcgdnotcyc7CiAgICAgICAgdm9yZ0luaGFsdCA9ICc8c3BhbiBjbGFzcz0idnAgdnAt
cyI+Uzwvc3Bhbj4nOwogICAgfSBlbHNlIGlmICh0ZC52b3JnYWJlU2NoaWNodCA9PT0gJ04nKSB7
CiAgICAgICAgdm9yZ0NsYXNzID0gJyB2ei1uJzsKICAgICAgICB2b3JnSW5oYWx0ID0gJzxzcGFu
IGNsYXNzPSJ2cCB2cC1uIj5OPC9zcGFuPic7CiAgICB9CiAgICB2YXIgdm9yZ2FiZSA9ICc8ZGl2
IGNsYXNzPSJrZC16ZWxsZScgKyB2b3JnQ2xhc3MgKyAnIiBkYXRhLWRhdHVtPSInICsgZFN0ciAr
ICciIHRpdGxlPSJWb3JnYWJlLVNjaGljaHQiPicgKwogICAgICAgICAgICAgICAgICAgdm9yZ0lu
aGFsdCArICc8L2Rpdj4nOwoKICAgIC8vIFNvbGwtWmVsbGUgKEZ1ZWhydW5nIDogTWFubnNjaGFm
dCkKICAgIHZhciBzb2xsRiA9ICh0ZC5zdGFlcmtlU29sbCB8fCBbMCwwXSlbMF07CiAgICB2YXIg
c29sbE0gPSAodGQuc3RhZXJrZVNvbGwgfHwgWzAsMF0pWzFdOwogICAgdmFyIHNvbGxGT2sgPSBj
b3VudGVyRXJmdWVsbHQoYmVzLmZ1ZWhydW5nSXN0LCBzb2xsRiwgW10sICdzb2xsJyk7CiAgICB2
YXIgc29sbE1PayA9IGNvdW50ZXJFcmZ1ZWxsdChiZXMubWFubnNjaGFmdElzdCwgc29sbE0sIFtd
LCAnc29sbCcpOwogICAgdmFyIHNvbGxFcmZ1ZWxsdCA9IHNvbGxGT2sgJiYgc29sbE1PazsKICAg
IHZhciB1ZWIgPSBiZXMuZnVlaHJ1bmdVZWJlcnNjaHVzcyB8fCAwOwogICAgdmFyIHNvbGxUaXRs
ZSA9ICdGw7xocnVuZyAnICsgYmVzLmZ1ZWhydW5nSXN0ICsgJy8nICsgc29sbEYgKwogICAgICAg
ICAgICAgICAgICAgICcgKFBvb2w6ICcgKyAoYmVzLmZ1ZWhydW5nS2VybiArIGJlcy5mdWVocnVu
Z1YpICsgJyA9IERHTCsxLkVCICcgKyBiZXMuZnVlaHJ1bmdLZXJuICsgJyArIFYuICcgKyBiZXMu
ZnVlaHJ1bmdWICsgJyknICsKICAgICAgICAgICAgICAgICAgICAodWViID4gMCA/ICcgWycgKyB1
ZWIgKyAnIEbDvGhydW5ncy1QZXJzb24oZW4pIGluIE1hbm5zY2hhZnQgZ2V6w6RobHRdJyA6ICcn
KSArCiAgICAgICAgICAgICAgICAgICAgJyDCtyBNYW5uc2NoYWZ0ICcgKyBiZXMubWFubnNjaGFm
dElzdCArICcvJyArIHNvbGxNOwogICAgdmFyIHNvbGxUZXh0ICA9ICc8c3BhbiBjbGFzcz0ic29s
bCI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJudW0iPicgKyBjb3VudGVy
Rm9ybWF0aWVyZW4oYmVzLmZ1ZWhydW5nSXN0LCBzb2xsRiwgJ3NvbGwnKSArICc8L3NwYW4+JyAr
CiAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJzZXAiPiA6IDwvc3Bhbj4nICsKICAg
ICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9Im51bSI+JyArIGNvdW50ZXJGb3JtYXRpZXJl
bihiZXMubWFubnNjaGFmdElzdCwgc29sbE0sICdzb2xsJykgKyAnPC9zcGFuPicgKwogICAgICAg
ICAgICAgICAgICAgICc8L3NwYW4+JzsKICAgIHZhciBzb2xsID0gJzxkaXYgY2xhc3M9ImtkLXpl
bGxlIHRkLXNvbGwnICsgKHNvbGxFcmZ1ZWxsdCA/ICcgZXJmdWVsbHQgdGQtZXJmdWVsbHQtdGlu
dCcgOiAnIHVudGVyYmVzZXR6dCB0ZC11bnRlcmJlc2V0enQnKSArICciIGRhdGEtZGF0dW09Iicg
KyBkU3RyICsgJyIgdGl0bGU9IicgKyBlc2NhcGVBdHRyKHNvbGxUaXRsZSkgKyAnIicgKyBzdHls
ZUF0dHIgKyAnPicgKyBzb2xsVGV4dCArICc8L2Rpdj4nOwoKICAgIGZ1bmN0aW9uIHJlbmRVbnQo
b2JqLCBpc3QsIGxhYmVsLCBja0tleSkgewogICAgICAgIGlmICghb2JqKSByZXR1cm4gJzxkaXYg
Y2xhc3M9ImtkLXplbGxlIHRkLXplbGxlIiBkYXRhLWRhdHVtPSInICsgZFN0ciArICciPjwvZGl2
Pic7CiAgICAgICAgdmFyIHNvbGwgPSBvYmouc29sbCB8fCAwOwogICAgICAgIHZhciBoYXRNYXJr
ZXIgPSBvYmoubWFya2VyICYmIG9iai5tYXJrZXIubGVuZ3RoID4gMDsKICAgICAgICB2YXIgbWFy
a2VyID0gdGRNYXJrZXJQaWxscyhvYmoubWFya2VyIHx8IFtdKTsKICAgICAgICB2YXIgZXJmdWVs
bHQgPSBjb3VudGVyRXJmdWVsbHQoaXN0LCBzb2xsLCBvYmoubWFya2VyIHx8IFtdLCBja0tleSk7
CiAgICAgICAgdmFyIGNscyA9ICcgdGQtemVsbGUnOwogICAgICAgIGlmIChzb2xsID4gMCkgY2xz
ICs9IGVyZnVlbGx0ID8gJyB0ZC1lcmZ1ZWxsdCcgOiAnIHRkLXVudGVyYmVzZXR6dCc7CiAgICAg
ICAgdmFyIHR4dCA9IHNvbGwgPiAwID8gY291bnRlckZvcm1hdGllcmVuKGlzdCwgc29sbCwgY2tL
ZXkpIDogJyc7CiAgICAgICAgdmFyIHRpdGxlID0gbGFiZWwgKyAoc29sbCA+IDAgPyAnOiBJc3Qg
JyArIGlzdCArICcgLyBTb2xsICcgKyBzb2xsIDogJycpICsKICAgICAgICAgICAgICAgICAgICho
YXRNYXJrZXIgPyAnIOKAlCBVbnRlcnN0w7x0enVuZyB2b24gR3J1cHBlICcgKyBvYmoubWFya2Vy
LmpvaW4oJywnKSA6ICcnKTsKICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImtkLXplbGxlJyAr
IGNscyArICciIGRhdGEtZGF0dW09IicgKyBkU3RyICsgJyIgdGl0bGU9IicgKyBlc2NhcGVBdHRy
KHRpdGxlKSArICciJyArIHN0eWxlQXR0ciArICc+JyArCiAgICAgICAgICAgICAgIGVzY2FwZUhU
TUwodHh0KSArIG1hcmtlciArICc8L2Rpdj4nOwogICAgfQogICAgcmV0dXJuIHsKICAgICAgICB2
b3JnYWJlOiAgdm9yZ2FiZSwKICAgICAgICBzb2xsOiAgICAgc29sbCwKICAgICAgICBmcnVlaEw6
ICAgcmVuZFVudCh0ZC5mcnVlaF9sLCAgICAgYmVzLmZsSXN0LCAgICdGL0wnLCAgICAgICAgICAg
ICAgJ2ZydWVoTCcpLAogICAgICAgIHNwYWV0TDogICByZW5kVW50KHRkLnNwYWV0X2wsICAgICBi
ZXMuc2xJc3QsICAgJ1MvTCcsICAgICAgICAgICAgICAnc3BhZXRMJyksCiAgICAgICAgdW50RnJ1
ZWg6IHJlbmRVbnQodGQudW50U3R1ZXR6X0YsIGJlcy51bnRGSXN0LCAnVW50LiBGcsO8aGRpZW5z
dCcsICAndW50RnJ1ZWgnKSwKICAgICAgICB1bnROYWNodDogcmVuZFVudCh0ZC51bnRTdHVldHpf
TiwgYmVzLnVudE5Jc3QsICdVbnQuIE5hY2h0ZGllbnN0JywgJ3VudE5hY2h0JykKICAgIH07Cn0K
Ci8vIExpdmUtVXBkYXRlIGFsbGVyIENvdW50ZXItSGVhZGVyLVplbGxlbiBmdWVyIEVJTkVOIFRh
ZwpleHBvcnQgZnVuY3Rpb24gdGFnZXNkYXRlblplbGxlbkFrdHVhbGlzaWVyZW4oZFN0cikgewog
ICAgdmFyIGlkeCA9IFoudGFnZS5maW5kSW5kZXgoZnVuY3Rpb24oZCkgeyByZXR1cm4gZGF0dW1T
dHIoZCkgPT09IGRTdHI7IH0pOwogICAgaWYgKGlkeCA8IDApIHJldHVybjsKICAgIHZhciBzID0g
dGFnSGVhZGVyWmVsbGVuSHRtbChaLnRhZ2VbaWR4XSk7CiAgICB2YXIgbWFwID0gewogICAgICAg
ICd0ZC12b3JnYWJlLXplaWxlJzogICAgIHMudm9yZ2FiZSwKICAgICAgICAndGQtc3RhZXJrZXNv
bGwtemVpbGUnOiBzLnNvbGwsCiAgICAgICAgJ3RkLWZydWVoLWwtemVpbGUnOiAgICAgcy5mcnVl
aEwsCiAgICAgICAgJ3RkLXNwYWV0LWwtemVpbGUnOiAgICAgcy5zcGFldEwsCiAgICAgICAgJ3Rk
LXVudHN0dWV0ei1mLXplaWxlJzogcy51bnRGcnVlaCwKICAgICAgICAndGQtdW50c3R1ZXR6LW4t
emVpbGUnOiBzLnVudE5hY2h0CiAgICB9OwogICAgT2JqZWN0LmtleXMobWFwKS5mb3JFYWNoKGZ1
bmN0aW9uKHplaWxlSWQpIHsKICAgICAgICB2YXIgemVpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCh6ZWlsZUlkKTsKICAgICAgICBpZiAoIXplaWxlIHx8IGlkeCA+PSB6ZWlsZS5jaGlsZHJl
bi5sZW5ndGgpIHJldHVybjsKICAgICAgICB6ZWlsZS5jaGlsZHJlbltpZHhdLm91dGVySFRNTCA9
IG1hcFt6ZWlsZUlkXTsKICAgIH0pOwp9CgovLyBTaWNodGJhcmtlaXQgKyBGYXJiZW4gKyBSZW5k
ZXItTW9kdXMgYWxsZXIgSGVhZGVyLVplaWxlbiBhbndlbmRlbi4KLy8gV2lyZCBuYWNoIGplZGVt
IGtvcGZSZW5kZXJuKCkgLyBLb25maWctU3BlaWNoZXJuIGF1ZmdlcnVmZW4uCmV4cG9ydCBmdW5j
dGlvbiBjb3VudGVyU2ljaHRiYXJrZWl0QW53ZW5kZW4oKSB7CiAgICBoZWFkZXJLb25maWdBbndl
bmRlbigpOwp9CmV4cG9ydCB2YXIgSEVBREVSX1pFSUxFTl9ET00gPSB7CiAgICB2b3JnYWJlOiAg
ICAgJ3RkLXZvcmdhYmUtemVpbGUnLAogICAgc3RhZXJrZXNvbGw6ICd0ZC1zdGFlcmtlc29sbC16
ZWlsZScsCiAgICBkc206ICAgICAgICAgJ3RkLWRzbS16ZWlsZScsCiAgICBkYXR1bTogICAgICAg
J2RhdHVtLXplaWxlLXRhZycsCiAgICB3b2NoZW50YWc6ICAgJ2RhdHVtLXplaWxlLXdvY2hlbnRh
ZycsCiAgICBldmVudHM6ICAgICAgJ2RhdHVtLXplaWxlLWV2ZW50cycsCiAgICBmZXJpZW46ICAg
ICAgJ2RhdHVtLXplaWxlLWZlcmllbicsCiAgICBmcnVlaEw6ICAgICAgJ3RkLWZydWVoLWwtemVp
bGUnLAogICAgc3BhZXRMOiAgICAgICd0ZC1zcGFldC1sLXplaWxlJywKICAgIHVudEY6ICAgICAg
ICAndGQtdW50c3R1ZXR6LWYtemVpbGUnLAogICAgdW50TjogICAgICAgICd0ZC11bnRzdHVldHot
bi16ZWlsZScKfTsKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIEhlbGZlcjogc2NocmVpYnQgZ2xvYmFs
ZSBDU1MtQ3VzdG9tLVByb3BlcnRpZXMgYXVmIDpyb290IChkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQpCi8vIGZ1ZXIgVGFnLU1hcmtlciwgRFNNLCBWb3JnYWJlIEYvUy9OLCBNYXJrZXIgQS9CL0Mu
IFdlcnRlIGF1cyBhZG1pbi5qc29uCi8vIChoZWFkZXJLb25maWcudGFnTWFya2VyIC8gLmRzbSAv
IC52b3JnYWJlU3R5bGVzIC8gLm1hcmtlcikg4oCUIGxlZXIgPSBDU1MtRGVmYXVsdC4KLy8gPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CmZ1bmN0aW9uIF9zZXRSb290VmFyRnJvbVN0aWwocHJlZml4LCBzdGlsKSB7
CiAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKICAgIHZhciBmaWVsZHMg
PSBbCiAgICAgICAgWydiZycsICAgICAnaGludGVyZ3J1bmQnLCAgICBudWxsXSwKICAgICAgICBb
J2ZnJywgICAgICdzY2hyaWZ0JywgICAgICAgIG51bGxdLAogICAgICAgIFsnc2l6ZScsICAgJ3Nj
aHJpZnRncm9lc3NlJywgZnVuY3Rpb24odikgeyByZXR1cm4gdiArICdweCc7IH1dLAogICAgICAg
IFsnd2VpZ2h0JywgJ2ZldHQnLCAgICAgICAgICAgZnVuY3Rpb24odikgeyByZXR1cm4gdiA/ICc3
MDAnIDogJzQwMCc7IH1dLAogICAgICAgIFsnc3R5bGUnLCAgJ2t1cnNpdicsICAgICAgICAgZnVu
Y3Rpb24odikgeyByZXR1cm4gdiA/ICdpdGFsaWMnIDogJ25vcm1hbCc7IH1dLAogICAgICAgIFsn
YnQnLCAgICAgJ2JvcmRlclRvcCcsICAgICAgbnVsbF0sCiAgICAgICAgWydibCcsICAgICAnYm9y
ZGVyTGVmdCcsICAgICBudWxsXSwKICAgICAgICBbJ2JyJywgICAgICdib3JkZXJSaWdodCcsICAg
IG51bGxdCiAgICBdOwogICAgZmllbGRzLmZvckVhY2goZnVuY3Rpb24oZikgewogICAgICAgIHZh
ciBrZXkgPSAnLS0nICsgcHJlZml4ICsgJy0nICsgZlswXTsKICAgICAgICB2YXIgdiA9IHN0aWwg
PyBzdGlsW2ZbMV1dIDogbnVsbDsKICAgICAgICBpZiAodiA9PSBudWxsIHx8IHYgPT09ICcnKSB7
CiAgICAgICAgICAgIHJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoa2V5KTsKICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICByb290LnN0eWxlLnNldFByb3BlcnR5KGtleSwgZlsyXSA/IGZbMl0o
dikgOiB2KTsKICAgICAgICB9CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGhlYWRlcktvbmZp
Z1N0aWxlc0Fud2VuZGVuKCkgewogICAgLy8gR2xvYmFsZSBDU1MtQ3VzdG9tLVByb3BlcnRpZXMg
YXVmIDpyb290IHNldHplbiDigJQgd2lya2VuIGF1ZiBhbGxlCiAgICAvLyAua2QtZmVpZXJ0YWct
YmcgLyAua2QtaGV1dGUgLyAudGQtZHNtLXplbGxlIC8gLnZwLWZ8c3xuIC8gLnRkLW1hcmtlci1B
fEJ8Qy1LbGFzc2VuLgogICAgdmFyIGhrID0gaGVhZGVyS29uZmlnR2V0KCk7CiAgICBpZiAoaGsu
dGFnTWFya2VyKSB7CiAgICAgICAgWydoZXV0ZScsICdmZWllcnRhZycsICdmZWllcnRhZ1dpY2h0
aWcnLCAnd29jaGVuZW5kZScsICdmZXJpZW4nXS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAg
ICAgICAgdmFyIHByZWZpeCA9ICdrZC0nICsgKGsgPT09ICdmZWllcnRhZ1dpY2h0aWcnID8gJ2Zl
aWVydGFnLXdpY2h0aWcnIDogayk7CiAgICAgICAgICAgIF9zZXRSb290VmFyRnJvbVN0aWwocHJl
Zml4LCBoay50YWdNYXJrZXJba10pOwogICAgICAgIH0pOwogICAgfQogICAgaWYgKGhrLmRzbSkg
ewogICAgICAgIF9zZXRSb290VmFyRnJvbVN0aWwoJ2RzbS1nZW0nLCAgaGsuZHNtLnN0aWxHZW1h
Y2h0KTsKICAgICAgICBfc2V0Um9vdFZhckZyb21TdGlsKCdkc20tbmdlbScsIGhrLmRzbS5zdGls
TmljaHRHZW1hY2h0KTsKICAgIH0KICAgIGlmIChoay52b3JnYWJlU3R5bGVzKSB7CiAgICAgICAg
WydGJywgJ1MnLCAnTiddLmZvckVhY2goZnVuY3Rpb24odCkgewogICAgICAgICAgICBfc2V0Um9v
dFZhckZyb21TdGlsKCd2cC0nICsgdC50b0xvd2VyQ2FzZSgpLCBoay52b3JnYWJlU3R5bGVzW3Rd
KTsKICAgICAgICB9KTsKICAgIH0KICAgIGlmIChoay5tYXJrZXIpIHsKICAgICAgICBbJ0EnLCAn
QicsICdDJ10uZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAgICAgIHZhciBtID0gaGsubWFy
a2VyW2tdOwogICAgICAgICAgICBpZiAoIW0pIHJldHVybjsKICAgICAgICAgICAgX3NldFJvb3RW
YXJGcm9tU3RpbCgndGQtbWFya2VyLScgKyBrLnRvTG93ZXJDYXNlKCksIG0pOwogICAgICAgIH0p
OwogICAgfQp9CgovLyBIZWxmZXI6IHNldHp0IHBybyBaZWxsZSBkaWUgemVpbGVuc3BlemlmaXNj
aGVuIFN0eWxlLVByb3BlcnRpZXMgYXVzIHJvdy4KLy8gV2VydGUgd2VyZGVuIGFscyBJbmxpbmUt
U3R5bGVzIGdlc2NocmllYmVuIOKAlCBzaWUgdWViZXJzY2hyZWliZW4gZGFkdXJjaAovLyBhdWNo
IENTUy1LbGFzc2VuLURlZmF1bHRzLiBXZW5uIGVpbiBGZWxkIGxlZXIvbnVsbCBpc3QsIHdpcmQg
ZGllIElubGluZS0KLy8gU3R5bGUtUHJvcGVydHkgZW50ZmVybnQgKEZhbGxiYWNrIGF1ZiBDU1Mt
RGVmYXVsdCkuCmZ1bmN0aW9uIF9zZXRaZWlsZVN0eWxlVmFycyh6ZWxsZSwgcm93LCBoaykgewog
ICAgdmFyIHNpemUgPSAocm93LnNjaHJpZnRncm9lc3NlICE9IG51bGwpID8gcm93LnNjaHJpZnRn
cm9lc3NlIDogbnVsbDsKICAgIGlmIChzaXplICE9IG51bGwpIHplbGxlLnN0eWxlLmZvbnRTaXpl
ID0gc2l6ZSArICdweCc7CiAgICBlbHNlICAgICAgICAgICAgICB6ZWxsZS5zdHlsZS5yZW1vdmVQ
cm9wZXJ0eSgnZm9udC1zaXplJyk7CiAgICBpZiAocm93LmZldHQgIT0gbnVsbCkgemVsbGUuc3R5
bGUuZm9udFdlaWdodCA9IHJvdy5mZXR0ID8gJzcwMCcgOiAnNDAwJzsKICAgIGVsc2UgICAgICAg
ICAgICAgICAgICB6ZWxsZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZm9udC13ZWlnaHQnKTsKICAg
IHplbGxlLnN0eWxlLmZvbnRTdHlsZSA9IHJvdy5rdXJzaXYgPyAnaXRhbGljJyA6ICcnOwogICAg
aWYgKHJvdy5ib3JkZXJUb3ApICAgemVsbGUuc3R5bGUuYm9yZGVyVG9wID0gcm93LmJvcmRlclRv
cDsKICAgIGVsc2UgICAgICAgICAgICAgICAgIHplbGxlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdi
b3JkZXItdG9wJyk7CiAgICBpZiAocm93LmJvcmRlckxlZnQpICB6ZWxsZS5zdHlsZS5ib3JkZXJM
ZWZ0ID0gcm93LmJvcmRlckxlZnQ7CiAgICBlbHNlICAgICAgICAgICAgICAgICB6ZWxsZS5zdHls
ZS5yZW1vdmVQcm9wZXJ0eSgnYm9yZGVyLWxlZnQnKTsKICAgIGlmIChyb3cuYm9yZGVyUmlnaHQp
IHplbGxlLnN0eWxlLmJvcmRlclJpZ2h0ID0gcm93LmJvcmRlclJpZ2h0OwogICAgLy8gYm9yZGVy
LXJpZ2h0IE5JQ0hUIGVudGZlcm5lbiB3ZW5uIGxlZXIg4oCUIGRhcyB3dWVyZGUgZGllIENTUy1U
cmVubmxpbmllbiBraWxsZW4uCn0KCmV4cG9ydCBmdW5jdGlvbiBoZWFkZXJLb25maWdBbndlbmRl
bigpIHsKICAgIHZhciBoayA9IGhlYWRlcktvbmZpZ0dldCgpOwogICAgLy8gR2xvYmFsZSBDdXN0
b20tUHJvcHMgKFRhZy1NYXJrZXIsIERTTSwgVm9yZ2FiZSwgTWFya2VyKSB6dWVyc3Qg4oCUCiAg
ICAvLyBzaWUgd2lya2VuIGF1ZiBzdGF0aXNjaCBpbSBET00gZ2VzZXR6dGUgS2xhc3Nlbi4KICAg
IGhlYWRlcktvbmZpZ1N0aWxlc0Fud2VuZGVuKCk7CiAgICBIRUFERVJfUkVJSEVORk9MR0UuZm9y
RWFjaChmdW5jdGlvbihrZXkpIHsKICAgICAgICB2YXIgZG9tSWQgPSBIRUFERVJfWkVJTEVOX0RP
TVtrZXldOwogICAgICAgIHZhciB6ZWlsZW5FbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRv
bUlkKTsKICAgICAgICBpZiAoIXplaWxlbkVsKSByZXR1cm47CiAgICAgICAgdmFyIHJvdyA9IGhr
LnJvd3Nba2V5XSB8fCB7fTsKICAgICAgICAvLyBTaWNodGJhcmtlaXQg4oCUIGJlaWRlIFNlaXRl
biAoa29wZi1yZWNodHM6IFRhZ2VzemVsbGVuOyBrb3BmLWxpbmtzOiBMYWJlbCkKICAgICAgICB2
YXIgcmVjaHRzID0gemVpbGVuRWw7CiAgICAgICAgdmFyIGxpbmtzICA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyNrb3BmLWxpbmtzIFtkYXRhLWhsPSInICsga2V5ICsgJyJdJyk7CiAgICAgICAg
dmFyIHZlcmJlcmdlbiA9IHJvdy5zaWNodGJhciA9PT0gZmFsc2U7CiAgICAgICAgaWYgKHJlY2h0
cykgcmVjaHRzLmNsYXNzTGlzdC50b2dnbGUoJ3ZlcnN0ZWNrdCcsIHZlcmJlcmdlbik7CiAgICAg
ICAgaWYgKGxpbmtzKSAgbGlua3MuY2xhc3NMaXN0LnRvZ2dsZSgndmVyc3RlY2t0JywgdmVyYmVy
Z2VuKTsKICAgICAgICAvLyBGYXJiZW4vTW9kdXMgcHJvIFRhZ2VzemVsbGUgYW53ZW5kZW4KICAg
ICAgICB2YXIgbW9kdXMgPSByb3cuZmFyYk1vZHVzIHx8ICd6ZWxsZSc7CiAgICAgICAgdmFyIGhn
ID0gcm93LmhpbnRlcmdydW5kIHx8ICcnOwogICAgICAgIHZhciBzZiA9IHJvdy5zY2hyaWZ0IHx8
ICcnOwogICAgICAgIHplaWxlbkVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5rZC16ZWxsZScpLmZvckVh
Y2goZnVuY3Rpb24oemVsbGUpIHsKICAgICAgICAgICAgLy8gRFNNIGJsZWlidCBUb2dnbGUtSW5k
aWthdG9yIChlaWdlbmUgRmFyYmUpLCBIRy9TY2hyaWZ0IE5JQ0hUIMO8YmVyc2NocmVpYmVuIOKA
lAogICAgICAgICAgICAvLyBHcsO2w59lL0ZldHQvS3Vyc2l2L0JvcmRlciBkdWVyZmVuIGFiZXIg
Z2VzZXR6dCB3ZXJkZW4uCiAgICAgICAgICAgIGlmIChrZXkgIT09ICdkc20nKSB7CiAgICAgICAg
ICAgICAgICB6ZWxsZS5jbGFzc0xpc3QucmVtb3ZlKCdoa3otYmxvY2snLCAnaGt6LXBpbGxlJywg
J2hrei10ZXh0Jyk7CiAgICAgICAgICAgICAgICB6ZWxsZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgn
LS1oa3otYmcnKTsKICAgICAgICAgICAgICAgIHplbGxlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCct
LWhrei1mZycpOwogICAgICAgICAgICAgICAgemVsbGUuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Jh
Y2tncm91bmQnKTsKICAgICAgICAgICAgICAgIHplbGxlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdi
YWNrZ3JvdW5kLWNvbG9yJyk7CiAgICAgICAgICAgICAgICB6ZWxsZS5zdHlsZS5yZW1vdmVQcm9w
ZXJ0eSgnY29sb3InKTsKICAgICAgICAgICAgICAgIGlmIChtb2R1cyA9PT0gJ3plbGxlJyAmJiBo
ZykgewogICAgICAgICAgICAgICAgICAgIHplbGxlLnN0eWxlLmJhY2tncm91bmQgPSBoZzsKICAg
ICAgICAgICAgICAgICAgICBpZiAoc2YpIHplbGxlLnN0eWxlLmNvbG9yID0gc2Y7CiAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGhnKSB7CiAgICAgICAgICAgICAgICAgICAgemVsbGUuY2xhc3NM
aXN0LmFkZCgnaGt6LScgKyBtb2R1cyk7CiAgICAgICAgICAgICAgICAgICAgemVsbGUuc3R5bGUu
c2V0UHJvcGVydHkoJy0taGt6LWJnJywgaGcpOwogICAgICAgICAgICAgICAgICAgIGlmIChzZikg
emVsbGUuc3R5bGUuc2V0UHJvcGVydHkoJy0taGt6LWZnJywgc2YpOwogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFN0eWxlLUVyd2VpdGVydW5nICgyMDI2LTA1
LTA1KTogR3LDtsOfZS9GZXR0L0t1cnNpdi9Cb3JkZXIgcHJvIFplbGxlCiAgICAgICAgICAgIF9z
ZXRaZWlsZVN0eWxlVmFycyh6ZWxsZSwgcm93LCBoayk7CiAgICAgICAgfSk7CiAgICB9KTsKICAg
IC8vIFRyZW5ubGluaWVuLVRvZ2dsZSAoQ2VsbC1Cb3JkZXJzIHp3aXNjaGVuIGRlbiBUYWdlbikK
ICAgIHZhciBncmlkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tvcGYtcmVjaHRzJyk7CiAg
ICBpZiAoZ3JpZCkgZ3JpZC5jbGFzc0xpc3QudG9nZ2xlKCdoZWFkZXItb2huZS10cmVubmxpbmll
bicsIGhrLnRyZW5ubGluaWVuID09PSBmYWxzZSk7Cn0KCi8vID09PT09IHNjcm9sbFN5bmMgLyB6
dW1IZXV0aWdlbkRhdHVtIC8gYW5zaWNodFdlY2hzZWxuID09PT09CmV4cG9ydCBmdW5jdGlvbiBz
Y3JvbGxTeW5jKCkgewogICAgdmFyIGdyaWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3Jp
ZC1zY3JvbGwtY29udGFpbmVyJyk7CiAgICB2YXIgbmFtZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbmFtZW4tbGlzdGUnKTsKICAgIGdyaWQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywg
ZnVuY3Rpb24oKSB7CiAgICAgICAgbmFtZW4uc2Nyb2xsVG9wID0gZ3JpZC5zY3JvbGxUb3A7CiAg
ICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHp1bUhldXRpZ2VuRGF0dW0oKSB7CiAgICB2YXIgemVs
bGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZGF0dW0temVpbGUtdGFnIC5rZC16ZWxsZVtk
YXRhLWRhdHVtPSInICsgWi5oZXV0ZVN0ciArICciXScpOwogICAgaWYgKHplbGxlKSB7CiAgICAg
ICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JpZC1zY3JvbGwtY29udGFpbmVy
Jyk7CiAgICAgICAgdmFyIHIgPSB6ZWxsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwgY3IgPSBj
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIGMuc2Nyb2xsTGVmdCArPSByLmxlZnQg
LSBjci5sZWZ0IC0gY3Iud2lkdGggLyAzOwogICAgfQp9CgovLyA9PT09PSBOYXZpZ2F0aW9uID09
PT09CgpleHBvcnQgZnVuY3Rpb24gYW5zaWNodFdlY2hzZWxuKG5hbWUpIHsKICAgIGlmIChuYW1l
ID09PSAnYWRtaW4nICYmICFkYXJmQWRtaW5UYWIoKSkgewogICAgICAgIHRvYXN0KCdBZG1pbmlz
dHJhdGlvbiBpc3QgbnVyIGbDvHIgU3VwZXJVc2VyIHp1Z8OkbmdsaWNoJywgJ3dhcm51bmcnKTsK
ICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAobmFtZSA9PT0gJ3N0YXRpc3RpaycgJiYgIWRh
cmZTdGF0aXN0aWtUYWIoKSkgewogICAgICAgIHRvYXN0KCdTdGF0aXN0aWsgaXN0IGbDvHIgZGlj
aCBuaWNodCBmcmVpZ2VzY2hhbHRldCcsICd3YXJudW5nJyk7CiAgICAgICAgcmV0dXJuOwogICAg
fQogICAgaWYgKG5hbWUgPT09ICdsb2didWNoJyAmJiAhZGFyZkxvZ2J1Y2hUYWIoKSkgewogICAg
ICAgIHRvYXN0KCdMb2didWNoIGlzdCBmw7xyIGRpY2ggbmljaHQgZnJlaWdlc2NoYWx0ZXQnLCAn
d2FybnVuZycpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIC8vIFdlbm4gd2lyIHZvbSBBZG1p
bi1UYWIgaW4gZWluZSBEYXRlbi1BbnNpY2h0IHdlY2hzZWxuLCBrb2VubmVuCiAgICAvLyBBZW5k
ZXJ1bmdlbiBwYXNzaWVydCBzZWluIChFeGNlbC1JbXBvcnQsIFBlcnNvbmVudmVyd2FsdHVuZywg
Li4uKS4KICAgIC8vIERhdGVuIG5ldSBsYWRlbiwgc29uc3Qgc2llaHQgZGVyIFVzZXIgU3RhbmQg
dm9yIHNlaW5lbiBFZGl0cy4KICAgIHZhciBrb21tdFZvbkFkbWluID0gKFouX2FrdHVlbGxlQW5z
aWNodCA9PT0gJ2FkbWluJyk7CiAgICBaLl9ha3R1ZWxsZUFuc2ljaHQgPSBuYW1lOwogICAgWydw
bGFudW5nJywnd29jaGVucGxhbicsJ3BlcnNwbGFuJywnYWRtaW4nLCdzdGF0aXN0aWsnLCdsb2di
dWNoJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7CiAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2Fuc2ljaHQtJyArIGEpOwogICAgICAgIGlmIChlbCkgZWwuY2xhc3NMaXN0
LnRvZ2dsZSgndmVyc3RlY2t0JywgYSAhPT0gbmFtZSk7CiAgICB9KTsKICAgIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoJy5uYXYtYnRuJykuZm9yRWFjaChmdW5jdGlvbihiKSB7CiAgICAgICAg
Yi5jbGFzc0xpc3QudG9nZ2xlKCdha3RpdicsIGIuZ2V0QXR0cmlidXRlKCdkYXRhLWFuc2ljaHQn
KSA9PT0gbmFtZSk7CiAgICB9KTsKICAgIHZhciBkYXRlbkFuc2ljaHRlbiA9IHsgcGxhbnVuZzog
MSwgd29jaGVucGxhbjogMSwgcGVyc3BsYW46IDEgfTsKICAgIGlmIChrb21tdFZvbkFkbWluICYm
IGRhdGVuQW5zaWNodGVuW25hbWVdKSB7CiAgICAgICAgZGF0ZW5MYWRlbigpLnRoZW4oZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgIGlmIChuYW1lID09PSAnd29jaGVucGxhbicpICh0eXBlb2YgcmVu
ZGVySG9va3Mud3BSZW5kZXJuID09PSAnZnVuY3Rpb24nICYmIHJlbmRlckhvb2tzLndwUmVuZGVy
bigpKTsKICAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PT0gJ3BlcnNwbGFuJykgKHR5cGVvZiBy
ZW5kZXJIb29rcy5wcFJlbmRlcm4gPT09ICdmdW5jdGlvbicgJiYgcmVuZGVySG9va3MucHBSZW5k
ZXJuKCkpOwogICAgICAgICAgICBlbHNlIGdyaWRSZW5kZXJuKCk7CiAgICAgICAgfSkuY2F0Y2go
ZnVuY3Rpb24oZSkgeyBjb25zb2xlLmVycm9yKCdbYW5zaWNodFdlY2hzZWxuLnJlbG9hZF0nLCBl
KTsgfSk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKG5hbWUgPT09ICd3b2NoZW5wbGFu
JykgKHR5cGVvZiByZW5kZXJIb29rcy53cFJlbmRlcm4gPT09ICdmdW5jdGlvbicgJiYgcmVuZGVy
SG9va3Mud3BSZW5kZXJuKCkpOwogICAgaWYgKG5hbWUgPT09ICdwZXJzcGxhbicpICh0eXBlb2Yg
cmVuZGVySG9va3MucHBSZW5kZXJuID09PSAnZnVuY3Rpb24nICYmIHJlbmRlckhvb2tzLnBwUmVu
ZGVybigpKTsKICAgIGlmIChuYW1lID09PSAnbG9nYnVjaCcpICh0eXBlb2YgcmVuZGVySG9va3Mu
bG9nYnVjaExhZGVuID09PSAnZnVuY3Rpb24nICYmIHJlbmRlckhvb2tzLmxvZ2J1Y2hMYWRlbigp
KTsKICAgIGlmIChuYW1lID09PSAnc3RhdGlzdGlrJykgKHR5cGVvZiByZW5kZXJIb29rcy5zdGF0
aXN0aWtMYWRlbiA9PT0gJ2Z1bmN0aW9uJyAmJiByZW5kZXJIb29rcy5zdGF0aXN0aWtMYWRlbigp
KTsKICAgIGlmIChuYW1lID09PSAnYWRtaW4nKSAodHlwZW9mIHJlbmRlckhvb2tzLmFkbWluUmVu
ZGVybiA9PT0gJ2Z1bmN0aW9uJyAmJiByZW5kZXJIb29rcy5hZG1pblJlbmRlcm4oKSk7Cn0KCi8v
ID09PT09IEhFQURFUi1Lb25maWctS29tcGxleCA9PT09PQpleHBvcnQgdmFyIEhFQURFUl9SRUlI
RU5GT0xHRSA9IFsndm9yZ2FiZScsICdzdGFlcmtlc29sbCcsICdkc20nLCAnZGF0dW0nLCAnd29j
aGVudGFnJywgJ2V2ZW50cycsICdmZXJpZW4nLCAnZnJ1ZWhMJywgJ3NwYWV0TCcsICd1bnRGJywg
J3VudE4nXTsKLy8gQWIgMjAyNi0wNS0wNSAoSGVhZGVyLUtvbmZpZy1SZWZhY3Rvcik6IHBybyBa
ZWlsZSB6dXNhZXR6bGljaCBTdHlsZS0KLy8gUHJvcGVydGllcyDigJQgc2NocmlmdGdyb2Vzc2Uv
ZmV0dC9rdXJzaXYgKG51bGwgPSBnbG9iYWwgYXVzIGhrLnNjaHJpZnQqKSwKLy8gYm9yZGVyVG9w
L0xlZnQvUmlnaHQgKGxlZXIgPSBrZWluIEJvcmRlcikuIFdlcmRlbiB1ZWJlciBDU1MtQ3VzdG9t
LQovLyBQcm9wZXJ0aWVzIGluIGhlYWRlcktvbmZpZ0Fud2VuZGVuIGF1ZiBkaWUgWmVsbGVuIGdl
c2NocmllYmVuLgpmdW5jdGlvbiBfemVpbGVTdHlsZURlZmF1bHQoKSB7CiAgICByZXR1cm4geyBz
Y2hyaWZ0Z3JvZXNzZTogbnVsbCwgZmV0dDogbnVsbCwga3Vyc2l2OiBmYWxzZSwgYm9yZGVyVG9w
OiAnJywgYm9yZGVyTGVmdDogJycsIGJvcmRlclJpZ2h0OiAnJyB9Owp9CmZ1bmN0aW9uIF9tZXJn
ZVplaWxlRGVmYXVsdCh6ZWlsZSkgewogICAgdmFyIHMgPSBfemVpbGVTdHlsZURlZmF1bHQoKTsK
ICAgIE9iamVjdC5rZXlzKHMpLmZvckVhY2goZnVuY3Rpb24oaykgeyB6ZWlsZVtrXSA9IHNba107
IH0pOwogICAgcmV0dXJuIHplaWxlOwp9CmV4cG9ydCB2YXIgSEVBREVSX0tPTkZJR19ERUZBVUxU
UyA9IHsKICAgIHZvcmdhYmU6ICAgICBfbWVyZ2VaZWlsZURlZmF1bHQoeyBsYWJlbDogJ1Zvcmdh
YmUnLCAgICAgICAgICAgICAgICAgICB3ZXJ0OiAnU2NoaWNodCcsICAgICAgICAgICAgICAgIHNp
Y2h0YmFyOiB0cnVlLCAgaGludGVyZ3J1bmQ6ICcnLCBzY2hyaWZ0OiAnJywgZmFyYk1vZHVzOiAn
emVsbGUnLCBoYXRXZXJ0OiB0cnVlICB9KSwKICAgIHN0YWVya2Vzb2xsOiBfbWVyZ2VaZWlsZURl
ZmF1bHQoeyBsYWJlbDogJ1NvbGwgRsO8aHJ1bmcgOiBNYW5uc2NoYWZ0Jywgd2VydDogJycsICAg
ICAgICAgICAgICAgICAgICAgICBzaWNodGJhcjogdHJ1ZSwgIGhpbnRlcmdydW5kOiAnJywgc2No
cmlmdDogJycsIGZhcmJNb2R1czogJ3plbGxlJywgaGF0V2VydDogdHJ1ZSAgfSksCiAgICBkc206
ICAgICAgICAgX21lcmdlWmVpbGVEZWZhdWx0KHsgbGFiZWw6ICdEU00gZ2VidWNodCcsICAgICAg
ICAgICAgICAgd2VydDogJycsICAgICAgICAgICAgICAgICAgICAgICBzaWNodGJhcjogdHJ1ZSwg
IGhpbnRlcmdydW5kOiAnJywgc2NocmlmdDogJycsIGZhcmJNb2R1czogJ3plbGxlJywgaGF0V2Vy
dDogdHJ1ZSAgfSksCiAgICBkYXR1bTogICAgICAgX21lcmdlWmVpbGVEZWZhdWx0KHsgbGFiZWw6
ICdEYXR1bScsICAgICAgICAgICAgICAgICAgICAgd2VydDogJycsICAgICAgICAgICAgICAgICAg
ICAgICBzaWNodGJhcjogdHJ1ZSwgIGhpbnRlcmdydW5kOiAnJywgc2NocmlmdDogJycsIGZhcmJN
b2R1czogJ3plbGxlJywgaGF0V2VydDogZmFsc2UgfSksCiAgICB3b2NoZW50YWc6ICAgX21lcmdl
WmVpbGVEZWZhdWx0KHsgbGFiZWw6ICdXb2NoZW50YWcnLCAgICAgICAgICAgICAgICAgd2VydDog
JycsICAgICAgICAgICAgICAgICAgICAgICBzaWNodGJhcjogdHJ1ZSwgIGhpbnRlcmdydW5kOiAn
Jywgc2NocmlmdDogJycsIGZhcmJNb2R1czogJ3plbGxlJywgaGF0V2VydDogZmFsc2UgfSksCiAg
ICBldmVudHM6ICAgICAgX21lcmdlWmVpbGVEZWZhdWx0KHsgbGFiZWw6ICdFdmVudHMnLCAgICAg
ICAgICAgICAgICAgICAgd2VydDogJycsICAgICAgICAgICAgICAgICAgICAgICBzaWNodGJhcjog
dHJ1ZSwgIGhpbnRlcmdydW5kOiAnJywgc2NocmlmdDogJycsIGZhcmJNb2R1czogJ3plbGxlJywg
aGF0V2VydDogZmFsc2UgfSksCiAgICBmZXJpZW46ICAgICAgX21lcmdlWmVpbGVEZWZhdWx0KHsg
bGFiZWw6ICdGZXJpZW4gLyBGVCcsICAgICAgICAgICAgICAgd2VydDogJycsICAgICAgICAgICAg
ICAgICAgICAgICBzaWNodGJhcjogdHJ1ZSwgIGhpbnRlcmdydW5kOiAnJywgc2NocmlmdDogJycs
IGZhcmJNb2R1czogJ3plbGxlJywgaGF0V2VydDogZmFsc2UgfSksCiAgICBmcnVlaEw6ICAgICAg
X21lcmdlWmVpbGVEZWZhdWx0KHsgbGFiZWw6ICdGcsO8aC1MYXBwZXIgKEYpJywgICAgICAgICAg
IHdlcnQ6ICcxMDozMCcsICAgICAgICAgICAgICAgICAgc2ljaHRiYXI6IHRydWUsICBoaW50ZXJn
cnVuZDogJycsIHNjaHJpZnQ6ICcnLCBmYXJiTW9kdXM6ICd6ZWxsZScsIGhhdFdlcnQ6IHRydWUg
IH0pLAogICAgc3BhZXRMOiAgICAgIF9tZXJnZVplaWxlRGVmYXVsdCh7IGxhYmVsOiAnU3DDpHQt
TGFwcGVyIChTKScsICAgICAgICAgICB3ZXJ0OiAnMTg6MzAnLCAgICAgICAgICAgICAgICAgIHNp
Y2h0YmFyOiB0cnVlLCAgaGludGVyZ3J1bmQ6ICcnLCBzY2hyaWZ0OiAnJywgZmFyYk1vZHVzOiAn
emVsbGUnLCBoYXRXZXJ0OiB0cnVlICB9KSwKICAgIHVudEY6ICAgICAgICBfbWVyZ2VaZWlsZURl
ZmF1bHQoeyBsYWJlbDogJ1VudC4gRnLDvGhkaWVuc3QnLCAgICAgICAgICAgd2VydDogJycsICAg
ICAgICAgICAgICAgICAgICAgICBzaWNodGJhcjogdHJ1ZSwgIGhpbnRlcmdydW5kOiAnJywgc2No
cmlmdDogJycsIGZhcmJNb2R1czogJ3plbGxlJywgaGF0V2VydDogdHJ1ZSAgfSksCiAgICB1bnRO
OiAgICAgICAgX21lcmdlWmVpbGVEZWZhdWx0KHsgbGFiZWw6ICdVbnQuIE5hY2h0ZGllbnN0Jywg
ICAgICAgICAgd2VydDogJycsICAgICAgICAgICAgICAgICAgICAgICBzaWNodGJhcjogdHJ1ZSwg
IGhpbnRlcmdydW5kOiAnJywgc2NocmlmdDogJycsIGZhcmJNb2R1czogJ3plbGxlJywgaGF0V2Vy
dDogdHJ1ZSAgfSkKfTsKCi8vIERlZmF1bHQtU3ViLUtvbmZpZ3VyYXRpb25lbiAoYWxsZSAyMDI2
LTA1LTA1KS4KLy8gV2VyZGVuIGluIGhlYWRlcktvbmZpZ0dldCgpIGluIGhrLiogZ2VtZXJnZWQg
ZmFsbHMgZmVobGVuZC4KZnVuY3Rpb24gX3N0aWxEZWZhdWx0KGV4dHJhKSB7CiAgICB2YXIgcyA9
IHsgaGludGVyZ3J1bmQ6ICcnLCBzY2hyaWZ0OiAnJywgc2NocmlmdGdyb2Vzc2U6IG51bGwsIGZl
dHQ6IG51bGwsIGt1cnNpdjogZmFsc2UsCiAgICAgICAgICAgICAgYm9yZGVyVG9wOiAnJywgYm9y
ZGVyTGVmdDogJycsIGJvcmRlclJpZ2h0OiAnJyB9OwogICAgaWYgKGV4dHJhKSBPYmplY3Qua2V5
cyhleHRyYSkuZm9yRWFjaChmdW5jdGlvbihrKSB7IHNba10gPSBleHRyYVtrXTsgfSk7CiAgICBy
ZXR1cm4gczsKfQpleHBvcnQgdmFyIFZPUkdBQkVfU1RZTEVTX0RFRkFVTFQgPSB7IEY6IF9zdGls
RGVmYXVsdCgpLCBTOiBfc3RpbERlZmF1bHQoKSwgTjogX3N0aWxEZWZhdWx0KCkgfTsKCi8vIERT
TS1TeW1ib2xlIOKAlCBBdXN3YWhsbGlzdGUgZnVlciBkZW4gQWRtaW4tRHJvcGRvd24KZXhwb3J0
IHZhciBEU01fU1lNQk9MRSA9IFsn4pyTJywgJ+KclycsICfDlycsICfiipcnLCAn4pePJywgJ+KX
iycsICfilqMnLCAn4pagJywgJ+KWoScsICcvJywgJy8vJywgJy0nLCAn4oCTJywgJ+KAlCcsICcr
JywgJ+KYhScsICfimIYnXTsKZXhwb3J0IHZhciBEU01fS09ORklHX0RFRkFVTFQgPSB7CiAgICBz
eW1ib2xHZW1hY2h0OiAgICAgJ+KckycsCiAgICBzeW1ib2xOaWNodEdlbWFjaHQ6J8OXJywKICAg
IHN0aWxHZW1hY2h0OiAgICAgICBfc3RpbERlZmF1bHQoeyBoaW50ZXJncnVuZDogJyMyQTYwMzAn
LCBzY2hyaWZ0OiAnI2ZmZicgfSksCiAgICBzdGlsTmljaHRHZW1hY2h0OiAgX3N0aWxEZWZhdWx0
KHsgaGludGVyZ3J1bmQ6ICcjOEIxQTFBJywgc2NocmlmdDogJyNmZmYnIH0pCn07CgovLyBUYWct
TWFya2VyOiBha3R1ZWxsZSBDU1MtSGFyZGNvZGVzIGFscyBEZWZhdWx0cyAoc3R5bGUuY3NzOjQ2
Ny03ODIpCmV4cG9ydCB2YXIgVEFHX01BUktFUl9ERUZBVUxUID0gewogICAgaGV1dGU6ICAgICAg
ICAgICBfc3RpbERlZmF1bHQoeyBoaW50ZXJncnVuZDogJyMxQjRBNkInLCBzY2hyaWZ0OiAnI2Zm
ZicgfSksCiAgICBmZWllcnRhZzogICAgICAgIF9zdGlsRGVmYXVsdCh7IGhpbnRlcmdydW5kOiAn
IzhCMUExQScsIHNjaHJpZnQ6ICcjRjhEMEQwJyB9KSwKICAgIGZlaWVydGFnV2ljaHRpZzogX3N0
aWxEZWZhdWx0KHsgaGludGVyZ3J1bmQ6ICcjQTAyMDIwJywgc2NocmlmdDogJyNGRkU4QTAnLCBm
ZXR0OiB0cnVlIH0pLAogICAgd29jaGVuZW5kZTogICAgICBfc3RpbERlZmF1bHQoeyBoaW50ZXJn
cnVuZDogJyMzRDU4NzQnLCBzY2hyaWZ0OiAnI0RGRThGMCcgfSksCiAgICBmZXJpZW46ICAgICAg
ICAgIF9zdGlsRGVmYXVsdCgpCn07CgovLyBDb3VudGVyIHBybyBaZWlsZSAoYW56ZWlnZUZvcm1h
dCAvIHRvbGVyYW56IC8gbWFya2VyWmFlaGxlbikg4oCUIHZvcmhlciBnbG9iYWwKZXhwb3J0IHZh
ciBDT1VOVEVSX0tFWVMgPSBbJ3ZvcmdhYmUnLCAnc29sbCcsICdmcnVlaEwnLCAnc3BhZXRMJywg
J3VudEZydWVoJywgJ3VudE5hY2h0J107CmV4cG9ydCB2YXIgQ09VTlRFUl9QUk9fWkVJTEVfREVG
QVVMVCA9IChmdW5jdGlvbigpIHsKICAgIHZhciBvdXQgPSB7fTsKICAgIENPVU5URVJfS0VZUy5m
b3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAgICBvdXRba10gPSB7IGFuemVpZ2VGb3JtYXQ6ICdz
b2xsJywgc2Nod2VsbHdlcnRUb2xlcmFuejogMCwgbWFya2VyWmFlaGxlbjogZmFsc2UgfTsKICAg
IH0pOwogICAgcmV0dXJuIG91dDsKfSkoKTsKCi8vIE1hcmtlciBBL0IvQyDigJQgZ2xlaWNoZSBT
dHJ1a3R1ciB3aWUgYmlzaGVyIGluIG1hcmtlcktvbmZpZywgcGx1cyBTdHlsZS1GZWxkZXIKZXhw
b3J0IHZhciBNQVJLRVJfREVGQVVMVCA9IHsKICAgIEE6IHsgYnVjaHN0YWJlOiAnQScsIG1vZHVz
OiAncGlsbCcsIGhpbnRlcmdydW5kOiAnIzg4OCcsIHNjaHJpZnQ6ICcjZmZmJywgc2NocmlmdGdy
b2Vzc2U6IDExLCBmZXR0OiB0cnVlLCAga3Vyc2l2OiBmYWxzZSwgYm9yZGVyVG9wOiAnJywgYm9y
ZGVyTGVmdDogJycsIGJvcmRlclJpZ2h0OiAnJyB9LAogICAgQjogeyBidWNoc3RhYmU6ICdCJywg
bW9kdXM6ICdwaWxsJywgaGludGVyZ3J1bmQ6ICcjODg4Jywgc2NocmlmdDogJyNmZmYnLCBzY2hy
aWZ0Z3JvZXNzZTogMTEsIGZldHQ6IHRydWUsICBrdXJzaXY6IGZhbHNlLCBib3JkZXJUb3A6ICcn
LCBib3JkZXJMZWZ0OiAnJywgYm9yZGVyUmlnaHQ6ICcnIH0sCiAgICBDOiB7IGJ1Y2hzdGFiZTog
J0MnLCBtb2R1czogJ3BpbGwnLCBoaW50ZXJncnVuZDogJyM4ODgnLCBzY2hyaWZ0OiAnI2ZmZics
IHNjaHJpZnRncm9lc3NlOiAxMSwgZmV0dDogdHJ1ZSwgIGt1cnNpdjogZmFsc2UsIGJvcmRlclRv
cDogJycsIGJvcmRlckxlZnQ6ICcnLCBib3JkZXJSaWdodDogJycgfQp9OwovLyBNYXBwaW5nIHp3
aXNjaGVuIGRlbiBjb3VudGVyLXNpY2h0YmFyLWtleXMgdW5kIGRlbiBoZWFkZXIta2V5cwpleHBv
cnQgdmFyIEhFQURFUl9LRVlfVk9OX0NPVU5URVIgPSB7IHZvcmdhYmU6ICd2b3JnYWJlJywgc29s
bDogJ3N0YWVya2Vzb2xsJywgZnJ1ZWhMOiAnZnJ1ZWhMJywgc3BhZXRMOiAnc3BhZXRMJywgdW50
RnJ1ZWg6ICd1bnRGJywgdW50TmFjaHQ6ICd1bnROJyB9OwoKZXhwb3J0IGZ1bmN0aW9uIGhlYWRl
cktvbmZpZ0dldCgpIHsKICAgIGlmICghWi5hZG1pbikgWi5hZG1pbiA9IHt9OwogICAgaWYgKCFa
LmFkbWluLmhlYWRlcktvbmZpZykgWi5hZG1pbi5oZWFkZXJLb25maWcgPSB7IHJvd3M6IHt9LCBz
Y2hyaWZ0Z3JvZXNzZTogMTMsIGZldHQ6IHRydWUsIHRyZW5ubGluaWVuOiB0cnVlIH07CiAgICB2
YXIgaGsgPSBaLmFkbWluLmhlYWRlcktvbmZpZzsKICAgIGlmICghaGsucm93cykgaGsucm93cyA9
IHt9OwogICAgLy8gTWlncmF0aW9uIGF1cyBoZWFkZXJMYWJlbHMgLyBjb3VudGVyS29uZmlnLnNp
Y2h0YmFyIC8gdm9yZ2FiZUFsc1BpbGxlCiAgICB2YXIgYWx0TGFiZWxzID0gKFouYWRtaW4gJiYg
Wi5hZG1pbi5oZWFkZXJMYWJlbHMpIHx8IHt9OwogICAgdmFyIGFsdENvdW50ZXIgPSAoWi5hZG1p
biAmJiBaLmFkbWluLmNvdW50ZXJLb25maWcpIHx8IHt9OwogICAgdmFyIGFsdFNpY2h0YmFyID0g
YWx0Q291bnRlci5zaWNodGJhciB8fCB7fTsKICAgIEhFQURFUl9SRUlIRU5GT0xHRS5mb3JFYWNo
KGZ1bmN0aW9uKGspIHsKICAgICAgICB2YXIgZGVmID0gSEVBREVSX0tPTkZJR19ERUZBVUxUU1tr
XTsKICAgICAgICBpZiAoIWhrLnJvd3Nba10pIHsKICAgICAgICAgICAgdmFyIGFsdEwgPSBhbHRM
YWJlbHNba10gfHwge307CiAgICAgICAgICAgIHZhciBjb3VudGVyS2V5ID0gT2JqZWN0LmtleXMo
SEVBREVSX0tFWV9WT05fQ09VTlRFUikuZmluZChmdW5jdGlvbihjaykgeyByZXR1cm4gSEVBREVS
X0tFWV9WT05fQ09VTlRFUltja10gPT09IGs7IH0pOwogICAgICAgICAgICB2YXIgc2ljaHRiYXJN
aWcgPSAoY291bnRlcktleSAmJiBhbHRTaWNodGJhcltjb3VudGVyS2V5XSAhPT0gdW5kZWZpbmVk
KSA/ICEhYWx0U2ljaHRiYXJbY291bnRlcktleV0gOiBkZWYuc2ljaHRiYXI7CiAgICAgICAgICAg
IGhrLnJvd3Nba10gPSB7CiAgICAgICAgICAgICAgICBsYWJlbDogICAgICAgKGFsdEwubGFiZWwg
IT09IHVuZGVmaW5lZCAmJiBhbHRMLmxhYmVsICE9PSBudWxsKSA/IGFsdEwubGFiZWwgOiBkZWYu
bGFiZWwsCiAgICAgICAgICAgICAgICB3ZXJ0OiAgICAgICAgKGFsdEwud2VydCAgIT09IHVuZGVm
aW5lZCAmJiBhbHRMLndlcnQgICE9PSBudWxsKSA/IGFsdEwud2VydCAgOiBkZWYud2VydCwKICAg
ICAgICAgICAgICAgIHNpY2h0YmFyOiAgICBzaWNodGJhck1pZywKICAgICAgICAgICAgICAgIGhp
bnRlcmdydW5kOiBkZWYuaGludGVyZ3J1bmQsCiAgICAgICAgICAgICAgICBzY2hyaWZ0OiAgICAg
ZGVmLnNjaHJpZnQsCiAgICAgICAgICAgICAgICBmYXJiTW9kdXM6ICAgZGVmLmZhcmJNb2R1cwog
ICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICAvLyBEZWZhdWx0cyBmw7xyIGZlaGxlbmRl
IEZlbGRlciAoU3R5bGUtRXJ3ZWl0ZXJ1bmcgMjAyNi0wNS0wNSkKICAgICAgICBPYmplY3Qua2V5
cyhkZWYpLmZvckVhY2goZnVuY3Rpb24oZikgewogICAgICAgICAgICBpZiAoaGsucm93c1trXVtm
XSA9PT0gdW5kZWZpbmVkKSBoay5yb3dzW2tdW2ZdID0gZGVmW2ZdOwogICAgICAgIH0pOwogICAg
fSk7CiAgICAvLyBWb3JnYWJlLWFscy1QaWxsZSDihpIgdm9yZ2FiZS5mYXJiTW9kdXMgPSAncGls
bGUnIChlaW5tYWxpZywgd2VubiBhbHQtRmxhZyBnZXNldHp0KQogICAgaWYgKFouYWRtaW4udm9y
Z2FiZUFsc1BpbGxlICYmIGhrLnJvd3Mudm9yZ2FiZS5mYXJiTW9kdXMgPT09ICd6ZWxsZScpIHsK
ICAgICAgICBoay5yb3dzLnZvcmdhYmUuZmFyYk1vZHVzID0gJ3BpbGxlJzsKICAgIH0KICAgIGlm
IChoay5zY2hyaWZ0Z3JvZXNzZSA9PSBudWxsKSBoay5zY2hyaWZ0Z3JvZXNzZSA9IChhbHRDb3Vu
dGVyLnNjaHJpZnRncm9lc3NlIHx8IDEzKTsKICAgIGlmIChoay5mZXR0ID09IG51bGwpICAgICAg
ICAgICBoay5mZXR0ID0gKGFsdENvdW50ZXIuZmV0dCAhPT0gZmFsc2UpOwogICAgaWYgKGhrLnRy
ZW5ubGluaWVuID09IG51bGwpICAgIGhrLnRyZW5ubGluaWVuID0gdHJ1ZTsKCiAgICAvLyA9PT0g
U3ViLUtvbmZpZ3MgKDIwMjYtMDUtMDUpOiB2b3JnYWJlU3R5bGVzLCBkc20sIHRhZ01hcmtlciwg
Y291bnRlciwgbWFya2VyCiAgICBpZiAoIWhrLnZvcmdhYmVTdHlsZXMpIGhrLnZvcmdhYmVTdHls
ZXMgPSB7fTsKICAgIFsnRicsICdTJywgJ04nXS5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKICAgICAg
ICBpZiAoIWhrLnZvcmdhYmVTdHlsZXNbdF0pIGhrLnZvcmdhYmVTdHlsZXNbdF0gPSB7fTsKICAg
ICAgICBPYmplY3Qua2V5cyhWT1JHQUJFX1NUWUxFU19ERUZBVUxUW3RdKS5mb3JFYWNoKGZ1bmN0
aW9uKGYpIHsKICAgICAgICAgICAgaWYgKGhrLnZvcmdhYmVTdHlsZXNbdF1bZl0gPT09IHVuZGVm
aW5lZCkgaGsudm9yZ2FiZVN0eWxlc1t0XVtmXSA9IFZPUkdBQkVfU1RZTEVTX0RFRkFVTFRbdF1b
Zl07CiAgICAgICAgfSk7CiAgICB9KTsKICAgIGlmICghaGsuZHNtKSBoay5kc20gPSB7fTsKICAg
IE9iamVjdC5rZXlzKERTTV9LT05GSUdfREVGQVVMVCkuZm9yRWFjaChmdW5jdGlvbihmKSB7CiAg
ICAgICAgaWYgKGhrLmRzbVtmXSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIGhrLmRzbVtm
XSA9ICh0eXBlb2YgRFNNX0tPTkZJR19ERUZBVUxUW2ZdID09PSAnb2JqZWN0JyAmJiBEU01fS09O
RklHX0RFRkFVTFRbZl0gIT09IG51bGwpCiAgICAgICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24o
e30sIERTTV9LT05GSUdfREVGQVVMVFtmXSkKICAgICAgICAgICAgICAgIDogRFNNX0tPTkZJR19E
RUZBVUxUW2ZdOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIERTTV9LT05GSUdfREVGQVVMVFtm
XSA9PT0gJ29iamVjdCcgJiYgRFNNX0tPTkZJR19ERUZBVUxUW2ZdICE9PSBudWxsKSB7CiAgICAg
ICAgICAgIC8vIFN1Yi1PYmplY3Q6IGZlaGxlbmRlIEZlbGRlciBlcmfDpG56ZW4KICAgICAgICAg
ICAgT2JqZWN0LmtleXMoRFNNX0tPTkZJR19ERUZBVUxUW2ZdKS5mb3JFYWNoKGZ1bmN0aW9uKHNm
KSB7CiAgICAgICAgICAgICAgICBpZiAoaGsuZHNtW2ZdW3NmXSA9PT0gdW5kZWZpbmVkKSBoay5k
c21bZl1bc2ZdID0gRFNNX0tPTkZJR19ERUZBVUxUW2ZdW3NmXTsKICAgICAgICAgICAgfSk7CiAg
ICAgICAgfQogICAgfSk7CiAgICBpZiAoIWhrLnRhZ01hcmtlcikgaGsudGFnTWFya2VyID0ge307
CiAgICBPYmplY3Qua2V5cyhUQUdfTUFSS0VSX0RFRkFVTFQpLmZvckVhY2goZnVuY3Rpb24odCkg
ewogICAgICAgIGlmICghaGsudGFnTWFya2VyW3RdKSBoay50YWdNYXJrZXJbdF0gPSB7fTsKICAg
ICAgICBPYmplY3Qua2V5cyhUQUdfTUFSS0VSX0RFRkFVTFRbdF0pLmZvckVhY2goZnVuY3Rpb24o
ZikgewogICAgICAgICAgICBpZiAoaGsudGFnTWFya2VyW3RdW2ZdID09PSB1bmRlZmluZWQpIGhr
LnRhZ01hcmtlclt0XVtmXSA9IFRBR19NQVJLRVJfREVGQVVMVFt0XVtmXTsKICAgICAgICB9KTsK
ICAgIH0pOwogICAgLy8gQ291bnRlciBwcm8gWmVpbGUg4oCUIE1pZ3JhdGlvbiBhdXMgYWx0ZW0g
Z2xvYmFsZW4gY291bnRlcktvbmZpZwogICAgaWYgKCFoay5jb3VudGVyKSBoay5jb3VudGVyID0g
e307CiAgICBDT1VOVEVSX0tFWVMuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAgaWYgKCFo
ay5jb3VudGVyW2tdKSBoay5jb3VudGVyW2tdID0ge307CiAgICAgICAgaWYgKGhrLmNvdW50ZXJb
a10uYW56ZWlnZUZvcm1hdCA9PSBudWxsKSB7CiAgICAgICAgICAgIGhrLmNvdW50ZXJba10uYW56
ZWlnZUZvcm1hdCA9IGFsdENvdW50ZXIuYW56ZWlnZUZvcm1hdCB8fCAnc29sbCc7CiAgICAgICAg
fQogICAgICAgIGlmIChoay5jb3VudGVyW2tdLnNjaHdlbGx3ZXJ0VG9sZXJhbnogPT0gbnVsbCkg
ewogICAgICAgICAgICBoay5jb3VudGVyW2tdLnNjaHdlbGx3ZXJ0VG9sZXJhbnogPSBhbHRDb3Vu
dGVyLnNjaHdlbGx3ZXJ0VG9sZXJhbnogIT0gbnVsbCA/IGFsdENvdW50ZXIuc2Nod2VsbHdlcnRU
b2xlcmFueiA6IDA7CiAgICAgICAgfQogICAgICAgIGlmIChoay5jb3VudGVyW2tdLm1hcmtlclph
ZWhsZW4gPT0gbnVsbCkgewogICAgICAgICAgICBoay5jb3VudGVyW2tdLm1hcmtlclphZWhsZW4g
PSAhIWFsdENvdW50ZXIubWFya2VyWmFlaGxlbjsKICAgICAgICB9CiAgICB9KTsKICAgIC8vIE1h
cmtlciBBL0IvQyDigJQgTWlncmF0aW9uIGF1cyBhbHRlbSB0b3AtbGV2ZWwgbWFya2VyS29uZmln
CiAgICBpZiAoIWhrLm1hcmtlcikgaGsubWFya2VyID0ge307CiAgICB2YXIgYWx0TWFya2VyID0g
KFouYWRtaW4gJiYgWi5hZG1pbi5tYXJrZXJLb25maWcpIHx8IHt9OwogICAgWydBJywgJ0InLCAn
QyddLmZvckVhY2goZnVuY3Rpb24oaykgewogICAgICAgIGlmICghaGsubWFya2VyW2tdKSBoay5t
YXJrZXJba10gPSB7fTsKICAgICAgICB2YXIgYWx0ID0gYWx0TWFya2VyW2tdIHx8IHt9OwogICAg
ICAgIHZhciBkZWYgPSBNQVJLRVJfREVGQVVMVFtrXTsKICAgICAgICBPYmplY3Qua2V5cyhkZWYp
LmZvckVhY2goZnVuY3Rpb24oZikgewogICAgICAgICAgICBpZiAoaGsubWFya2VyW2tdW2ZdID09
PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGhrLm1hcmtlcltrXVtmXSA9IChhbHRbZl0g
IT09IHVuZGVmaW5lZCAmJiBhbHRbZl0gIT09IG51bGwpID8gYWx0W2ZdIDogZGVmW2ZdOwogICAg
ICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHJldHVybiBoazsKfQpleHBvcnQgZnVu
Y3Rpb24gaGVhZGVyUm93KGtleSkgewogICAgdmFyIGhrID0gaGVhZGVyS29uZmlnR2V0KCk7CiAg
ICByZXR1cm4gaGsucm93c1trZXldIHx8IEhFQURFUl9LT05GSUdfREVGQVVMVFNba2V5XSB8fCB7
IGxhYmVsOiAnJywgd2VydDogJycsIHNpY2h0YmFyOiB0cnVlLCBoaW50ZXJncnVuZDogJycsIHNj
aHJpZnQ6ICcnLCBmYXJiTW9kdXM6ICd6ZWxsZScgfTsKfQpleHBvcnQgZnVuY3Rpb24gaGVhZGVy
TGFiZWxHZXQoa2V5KSB7CiAgICB2YXIgciA9IGhlYWRlclJvdyhrZXkpOwogICAgcmV0dXJuIHsg
bGFiZWw6IHIubGFiZWwgfHwgJycsIHdlcnQ6IHIud2VydCB8fCAnJyB9Owp9Ci8vIExlZ2FjeS1B
bGlhcyAoYWx0ZSBTdGVsbGVuIHJlZmVyZW56aWVyZW4gbm9jaCBIRUFERVJfTEFCRUxfREVGQVVM
VFMpCmV4cG9ydCB2YXIgSEVBREVSX0xBQkVMX0RFRkFVTFRTID0gKGZ1bmN0aW9uKCkgewogICAg
dmFyIG91dCA9IHt9OwogICAgSEVBREVSX1JFSUhFTkZPTEdFLmZvckVhY2goZnVuY3Rpb24oaykg
ewogICAgICAgIG91dFtrXSA9IHsgbGFiZWw6IEhFQURFUl9LT05GSUdfREVGQVVMVFNba10ubGFi
ZWwsIHdlcnQ6IEhFQURFUl9LT05GSUdfREVGQVVMVFNba10ud2VydCB9OwogICAgfSk7CiAgICBy
ZXR1cm4gb3V0Owp9KSgpOwpleHBvcnQgZnVuY3Rpb24gaGVhZGVyTGFiZWxzQW53ZW5kZW4oKSB7
CiAgICAvLyBTZXR6ZSBhbGxlIEhlYWRlci1aZWxsZW4gbWl0IGRhdGEtaGw9ImtleSIgZ2VtLiBo
ZWFkZXJLb25maWcKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNrb3BmLWxpbmtzIFtk
YXRhLWhsXScpLmZvckVhY2goZnVuY3Rpb24oZWwpIHsKICAgICAgICB2YXIga2V5ID0gZWwuZ2V0
QXR0cmlidXRlKCdkYXRhLWhsJyk7CiAgICAgICAgdmFyIGhsID0gaGVhZGVyTGFiZWxHZXQoa2V5
KTsKICAgICAgICB2YXIgbGFiZWxFbCA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5rbC1sYWJlbCcpOwog
ICAgICAgIHZhciB3ZXJ0RWwgID0gZWwucXVlcnlTZWxlY3RvcignLmtsLXdlcnQnKTsKICAgICAg
ICBpZiAobGFiZWxFbCAmJiBobC5sYWJlbCAhPT0gdW5kZWZpbmVkKSBsYWJlbEVsLnRleHRDb250
ZW50ID0gaGwubGFiZWw7CiAgICAgICAgLy8gRGF0dW0vV29jaGVudGFnL0V2ZW50cy9GZXJpZW4g
aGFiZW4ga2VpbmVuIC5rbC13ZXJ0IOKAlCBudXIgTGFiZWwgc2V0emVuCiAgICAgICAgaWYgKHdl
cnRFbCAgJiYgaGwud2VydCAgIT09IHVuZGVmaW5lZCkgd2VydEVsLnRleHRDb250ZW50ICA9IGhs
LndlcnQ7CiAgICB9KTsKfQo=
### FILE: js/grid/tagesdaten.js | 9703
Ly8gPT09IGdyaWQvdGFnZXNkYXRlbi5qcyA9PT0KLy8gVGFnZXNkYXRlbi1Mb29rdXAgKFJvdGF0
aW9uICsgT3ZlcnJpZGUpIHVuZCBTVS1PdmVycmlkZS1Nb2RhbCBhdWYKLy8gVGFnZXNkYXRlbi1a
ZWxsZW4gKFZvcmdhYmUgKyBTdMOkcmtlLVNvbGwpLiBpc3RCZXNldHp1bmdGdWVyIGJlcmVjaG5l
dAovLyBwcm8gVGFnIGRpZSBJc3QtQmVzZXR6dW5nIG1pdCBIaWVyYXJjaGllLWJhc2llcnRlciBG
w7xocnVuZy12cy1NYW5uc2NoYWZ0LQovLyBMb2dpayAoREdMID4gMS5FQiA+IDEuRUIgVi4g4oCU
IMOcYmVyc2NodXNzIHJ1dHNjaHQgaW4gZGllIE1hbm5zY2hhZnQpLgovLwovLyBDcm9zcy1Nb2R1
bGUtSG9va3MgKFBoYXNlIDVhLVdvcmthcm91bmQpOgovLyAgIHRhZ2VzZGF0ZW5aZWxsZW5Ba3R1
YWxpc2llcmVuICsga29wZlJlbmRlcm4gbGViZW4gaW4gZ3JpZC9yZW5kZXIuanMKLy8gICAoUGhh
c2UgNWIpLiBXZXJkZW4gw7xiZXIgYHRhZ2VzZGF0ZW5Ib29rc2AgaW5qaXppZXJ0LgoKaW1wb3J0
IHsgWiB9IGZyb20gJy4uL2NvcmUvc3RhdGUuanMnOwppbXBvcnQgeyBkYXR1bUZvcm1hdERFIH0g
ZnJvbSAnLi4vY29yZS91dGlsLmpzJzsKaW1wb3J0IHsgYXBpUG9zdCB9IGZyb20gJy4uL2NvcmUv
YXBpLmpzJzsKaW1wb3J0IHsgdG9hc3QgfSBmcm9tICcuLi91aS90b2FzdC5qcyc7CmltcG9ydCB7
IG1vZGFsWmVpZ2VuIH0gZnJvbSAnLi4vdWkvbW9kYWwuanMnOwoKZXhwb3J0IHZhciB0YWdlc2Rh
dGVuSG9va3MgPSB7CiAgICB0YWdlc2RhdGVuWmVsbGVuQWt0dWFsaXNpZXJlbjogbnVsbCwgIC8v
IChkYXR1bTogc3RyKSAtPiB2b2lkCiAgICBrb3BmUmVuZGVybjogbnVsbCAgICAgICAgICAgICAg
ICAgICAgIC8vICgpIC0+IHZvaWQKfTsKCi8vID09PT09IFRhZ2VzZGF0ZW4tTG9va3VwID09PT09
CgpleHBvcnQgZnVuY3Rpb24gdGFnZXNkYXRlbkZ1ZXIoZGF0dW0pIHsKICAgIHZhciBleHBsaXpp
dCA9IChaLnBsYW51bmcudGFnZXNkYXRlbiB8fCB7fSlbZGF0dW1dOwogICAgaWYgKGV4cGxpeml0
KSByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgcm90YXRpb25GdWVyKGRhdHVtKSwgZXhwbGl6aXQp
OwogICAgcmV0dXJuIHJvdGF0aW9uRnVlcihkYXR1bSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiByb3Rh
dGlvbkZ1ZXIoZGF0dW0pIHsKICAgIHZhciByb3QgPSBaLmFkbWluLnRhZ2VzZGF0ZW5Sb3RhdGlv
bjsKICAgIGlmICghcm90IHx8ICFyb3QudGFnZSB8fCAhcm90LnRhZ2UubGVuZ3RoKSByZXR1cm4g
e307CiAgICB2YXIgc3RhcnQgPSBuZXcgRGF0ZSgocm90LnN0YXJ0RGF0dW0gfHwgJzIwMjYtMDEt
MDUnKSArICdUMDA6MDA6MDAnKTsKICAgIHZhciBkID0gbmV3IERhdGUoZGF0dW0gKyAnVDAwOjAw
OjAwJyk7CiAgICB2YXIgZGlmZlRhZ2UgPSBNYXRoLnJvdW5kKChkIC0gc3RhcnQpIC8gODY0MDAw
MDApOwogICAgdmFyIG1vZHVsdXMgPSAocm90LndvY2hlbkFuemFobCB8fCAzKSAqIDc7CiAgICB2
YXIgaWR4ID0gKChkaWZmVGFnZSAlIG1vZHVsdXMpICsgbW9kdWx1cykgJSBtb2R1bHVzOwogICAg
aWYgKGlkeCA+PSByb3QudGFnZS5sZW5ndGgpIGlkeCA9IGlkeCAlIHJvdC50YWdlLmxlbmd0aDsK
ICAgIHJldHVybiByb3QudGFnZVtpZHhdIHx8IHt9Owp9CgpleHBvcnQgZnVuY3Rpb24gZHNtR2Vz
ZXR6dChkYXR1bSkgewogICAgcmV0dXJuICEhKFoucGxhbnVuZy5kc20gfHwge30pW2RhdHVtXTsK
fQoKLy8gPT09PT0gQi4yOiBTVS1PdmVycmlkZS1Nb2RhbCBhdWYgVGFnZXNkYXRlbi1aZWxsZW4g
PT09PT0KCmV4cG9ydCBmdW5jdGlvbiB0YWdlc2RhdGVuTW9kYWxPZWZmbmVuKGRhdHVtKSB7CiAg
ICB2YXIgdGQgPSB0YWdlc2RhdGVuRnVlcihkYXR1bSkgfHwge307CiAgICB2YXIgdm9yZ2FiZSA9
IHRkLnZvcmdhYmVTY2hpY2h0IHx8ICcnOwogICAgdmFyIHNvbGxGID0gKHRkLnN0YWVya2VTb2xs
IHx8IFswLCAwXSlbMF07CiAgICB2YXIgc29sbE0gPSAodGQuc3RhZXJrZVNvbGwgfHwgWzAsIDBd
KVsxXTsKICAgIHZhciBkYXR1bURlID0gZGF0dW1Gb3JtYXRERShkYXR1bSk7CiAgICB2YXIga29l
cnBlciA9CiAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNv
bHVtbnM6YXV0byAxZnI7Z2FwOjEwcHggMTRweDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJv
dHRvbToxNHB4Ij4nICsKICAgICAgICAgICAgJzxsYWJlbCBmb3I9InRkLXZvcmdhYmUiPlZvcmdh
YmUtU2NoaWNodDwvbGFiZWw+JyArCiAgICAgICAgICAgICc8c2VsZWN0IGlkPSJ0ZC12b3JnYWJl
IiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9Im1heC13aWR0aDoxNDBweCI+JyArCiAgICAgICAg
ICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iIicgICsgKHZvcmdhYmUgPT09ICcnICA/ICcgc2VsZWN0
ZWQnIDogJycpICsgJz7igJQ8L29wdGlvbj4nICsKICAgICAgICAgICAgICAgICc8b3B0aW9uIHZh
bHVlPSJGIicgKyAodm9yZ2FiZSA9PT0gJ0YnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPkYgKEZy
w7xoZGllbnN0KTwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9IlMi
JyArICh2b3JnYWJlID09PSAnUycgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+UyAoU3DDpHRkaWVu
c3QpPC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iTiInICsgKHZv
cmdhYmUgPT09ICdOJyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz5OIChOYWNodGRpZW5zdCk8L29w
dGlvbj4nICsKICAgICAgICAgICAgJzwvc2VsZWN0PicgKwogICAgICAgICAgICAnPGxhYmVsIGZv
cj0idGQtc29sbC1mIj5TdMOkcmtlLVNvbGwgRsO8aHJ1bmc8L2xhYmVsPicgKwogICAgICAgICAg
ICAnPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9InRkLXNvbGwtZiIgY2xhc3M9ImZvcm0taW5wdXQi
IHN0eWxlPSJtYXgtd2lkdGg6MTIwcHgiIG1pbj0iMCIgbWF4PSIyMCIgdmFsdWU9IicgKyBzb2xs
RiArICciPicgKwogICAgICAgICAgICAnPGxhYmVsIGZvcj0idGQtc29sbC1tIj5TdMOkcmtlLVNv
bGwgTWFubnNjaGFmdDwvbGFiZWw+JyArCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0ibnVtYmVy
IiBpZD0idGQtc29sbC1tIiBjbGFzcz0iZm9ybS1pbnB1dCIgc3R5bGU9Im1heC13aWR0aDoxMjBw
eCIgbWluPSIwIiBtYXg9IjIwIiB2YWx1ZT0iJyArIHNvbGxNICsgJyI+JyArCiAgICAgICAgJzwv
ZGl2PicgKwogICAgICAgICc8ZGl2IHN0eWxlPSJwYWRkaW5nOjhweCAxMHB4O2JhY2tncm91bmQ6
cmdiYSgyNTUsMTkzLDcsMC4xMCk7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkICNGRkMxMDc7Ym9yZGVy
LXJhZGl1czozcHg7Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpIj4n
ICsKICAgICAgICAgICAgJzxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gVmVyZ2FuZ2VuZSBUYWdl
IHdlcmRlbiA8ZW0+bmljaHQ8L2VtPiByw7xja3dpcmtlbmQgYW5nZXBhc3N0LiAnICsKICAgICAg
ICAgICAgJ+KAnkbDvHIgYWxsZSBrw7xuZnRpZ2VuIFRlcm1pbmUgaW0gWnlrbHVzIiBha3R1YWxp
c2llcnQgZGllIFJvdGF0aW9ucy1Wb3JsYWdlIHVuZCB3aXJrdCBkYW1pdCBhdWYgYWxsZSBUYWdl
IG1pdCBnbGVpY2hlbSBSb3RhdGlvbnMtU2xvdCBhYiBoZXV0ZS4nICsKICAgICAgICAnPC9kaXY+
JzsKICAgIHZhciBmdXNzID0KICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsiIHR5
cGU9ImJ1dHRvbiIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCdtb2RhbC1vdmVy
bGF5XCcpLmNsYXNzTGlzdC5hZGQoXCd2ZXJzdGVja3RcJykiPkFiYnJlY2hlbjwvYnV0dG9uPicg
KwogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayIgdHlwZT0iYnV0dG9uIiBpZD0i
YnRuLXRkLW51ci10YWciPk51ciBkaWVzZXIgVGFnPC9idXR0b24+JyArCiAgICAgICAgJzxidXR0
b24gY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgdHlwZT0iYnV0dG9uIiBpZD0iYnRuLXRkLXp5a2x1
cyI+RsO8ciBhbGxlIGvDvG5mdGlnZW4gVGVybWluZSBpbSBaeWtsdXM8L2J1dHRvbj4nOwogICAg
bW9kYWxaZWlnZW4oJ1RhZ2VzZGF0ZW4gZsO8ciAnICsgZGF0dW1EZSArICcgYW5wYXNzZW4nLCBr
b2VycGVyLCBmdXNzKTsKCiAgICB2YXIgYnRuVGFnICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2J0bi10ZC1udXItdGFnJyk7CiAgICB2YXIgYnRuWnlrbHVzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2J0bi10ZC16eWtsdXMnKTsKCiAgICBmdW5jdGlvbiBnZXNhbW1lbHQoKSB7CiAg
ICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgdm9yZ2FiZVNjaGljaHQ6IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZC12b3JnYWJlJykudmFsdWUgfHwgJycsCiAgICAgICAgICAgIHN0YWVya2VT
b2xsOiBbCiAgICAgICAgICAgICAgICBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGQtc29sbC1mJykudmFsdWUsIDEwKSB8fCAwLAogICAgICAgICAgICAgICAgcGFyc2VJbnQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RkLXNvbGwtbScpLnZhbHVlLCAxMCkgfHwgMAogICAgICAg
ICAgICBdCiAgICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGZlcnRpZygpIHsKICAgICAgICBa
Lm1vZGFsRGlydHkgPSBmYWxzZTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9k
YWwtb3ZlcmxheScpLmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwogICAgICAgIGlmICh0eXBl
b2YgdGFnZXNkYXRlbkhvb2tzLnRhZ2VzZGF0ZW5aZWxsZW5Ba3R1YWxpc2llcmVuID09PSAnZnVu
Y3Rpb24nKSB7CiAgICAgICAgICAgIHRhZ2VzZGF0ZW5Ib29rcy50YWdlc2RhdGVuWmVsbGVuQWt0
dWFsaXNpZXJlbihkYXR1bSk7CiAgICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZmVydGlnR2Vz
YW10UmVuZGVyKCkgewogICAgICAgIC8vIEJlaSBSb3RhdGlvbi1VcGRhdGUgd2lya2VuIGFsbGUg
VGFnZSBuZXUg4oCUIGtvbXBsZXR0IG5ldSByZW5kZXJuCiAgICAgICAgWi5tb2RhbERpcnR5ID0g
ZmFsc2U7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXknKS5j
bGFzc0xpc3QuYWRkKCd2ZXJzdGVja3QnKTsKICAgICAgICBpZiAodHlwZW9mIHRhZ2VzZGF0ZW5I
b29rcy5rb3BmUmVuZGVybiA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICB0YWdlc2RhdGVu
SG9va3Mua29wZlJlbmRlcm4oKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKGJ0blRhZykgYnRu
VGFnLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGRh
dGVuID0gZ2VzYW1tZWx0KCk7CiAgICAgICAgYXBpUG9zdCgnL2FwaS9wbGFudW5nL3RhZ2VzZGF0
ZW4nLCB7IGRhdHVtOiBkYXR1bSwgZGF0ZW46IGRhdGVuIH0pCiAgICAgICAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgICAgaWYgKCFaLnBsYW51bmcudGFnZXNkYXRlbikgWi5w
bGFudW5nLnRhZ2VzZGF0ZW4gPSB7fTsKICAgICAgICAgICAgICAgIFoucGxhbnVuZy50YWdlc2Rh
dGVuW2RhdHVtXSA9IGRhdGVuOwogICAgICAgICAgICAgICAgdG9hc3QoJ1RhZ2VzZGF0ZW4gZ2Vz
cGVpY2hlcnQgKG51ciAnICsgZGF0dW1EZSArICcpJywgJ2VyZm9sZycpOwogICAgICAgICAgICAg
ICAgZmVydGlnKCk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0Zl
aGxlcjogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKICAgIH0pOwogICAgaWYgKGJ0blp5
a2x1cykgYnRuWnlrbHVzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgdmFyIGRhdGVuID0gZ2VzYW1tZWx0KCk7CiAgICAgICAgYXBpUG9zdCgnL2FwaS9hZG1p
bi9yb3RhdGlvbi1zbG90JywgeyBkYXR1bTogZGF0dW0sIGRhdGVuOiBkYXRlbiB9KQogICAgICAg
ICAgICAudGhlbihmdW5jdGlvbihyZXNwKSB7CiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gcmVz
cCAmJiB0eXBlb2YgcmVzcC5pZHggPT09ICdudW1iZXInID8gcmVzcC5pZHggOiBudWxsOwogICAg
ICAgICAgICAgICAgaWYgKGlkeCAhPT0gbnVsbCAmJiBaLmFkbWluLnRhZ2VzZGF0ZW5Sb3RhdGlv
biAmJiBaLmFkbWluLnRhZ2VzZGF0ZW5Sb3RhdGlvbi50YWdlKSB7CiAgICAgICAgICAgICAgICAg
ICAgWi5hZG1pbi50YWdlc2RhdGVuUm90YXRpb24udGFnZVtpZHhdID0gZGF0ZW47CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICB0b2FzdCgnUm90YXRpb25zLVZvcmxhZ2UgZ2VzcGVp
Y2hlcnQg4oCUIHdpcmt0IGFiIGhldXRlIGF1ZiBhbGxlIFRhZ2UgZGVzIFp5a2x1cycsICdlcmZv
bGcnKTsKICAgICAgICAgICAgICAgIGZlcnRpZ0dlc2FtdFJlbmRlcigpOwogICAgICAgICAgICB9
KS5jYXRjaChmdW5jdGlvbihlKSB7IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhs
ZXInKTsgfSk7CiAgICB9KTsKfQoKLy8gPT09PT0gSXN0LUJlc2V0enVuZyBwcm8gVGFnID09PT09
Ci8vIExpZWZlcnQgeyBmdWVocnVuZ0lzdCwgbWFubnNjaGFmdElzdCwgZmwsIHNsLCB1bnRGLCB1
bnROLCAuLi4gfS4KLy8gSGllcmFyY2hpZTogcHJvIFZvcmdhYmUtU2NoaWNodCB3aXJkIGVpbiBG
w7xocnVuZ3MtUG9vbCBhdXMgUGVyc29uZW4gbWl0Ci8vIERHTCAoUHJpbyAxKSwgMS4gRUIgKFBy
aW8gMiksIDEuIEVCIFYuIChQcmlvIDMpIGdlYmlsZGV0LiBEaWUgZXJzdGVuIE4KLy8gKD0gc29s
bEYpIHrDpGhsZW4gYWxzIEbDvGhydW5nLCBkZXIgUmVzdCBydXRzY2h0IGluIGRpZSBNYW5uc2No
YWZ0LgovLyBVbnRlcnN0w7x0enVuZ3MtWsOkaGx1bmcgKHVudEYsIHVudE4pIGlzdCBmdW5rdGlv
bnNuZXV0cmFsIOKAlCBhbGxlIEYtL04tV2VydGUuCgpleHBvcnQgZnVuY3Rpb24gaXN0QmVzZXR6
dW5nRnVlcihkYXR1bSkgewogICAgdmFyIHRkID0gdGFnZXNkYXRlbkZ1ZXIoZGF0dW0pOwogICAg
dmFyIGUgPSAoWi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbZGF0dW1dIHx8IHt9OwogICAgdmFy
IHZvcmdTID0gdGQudm9yZ2FiZVNjaGljaHQgfHwgJyc7CiAgICB2YXIgc29sbEYgPSAodGQuc3Rh
ZXJrZVNvbGwgfHwgWzAsMF0pWzBdOwoKICAgIGZ1bmN0aW9uIGZ1ZWhydW5nc1ByaW8oZnVuaykg
ewogICAgICAgIGlmIChmdW5rID09PSAnREdMJykgICAgICAgcmV0dXJuIDE7CiAgICAgICAgaWYg
KGZ1bmsgPT09ICcxLiBFQicpICAgICByZXR1cm4gMjsKICAgICAgICBpZiAoZnVuayA9PT0gJzEu
IEVCIFYuJykgIHJldHVybiAzOwogICAgICAgIHJldHVybiA5OTsKICAgIH0KCiAgICB2YXIgdm9y
Z0Z1ZWhydW5nc3Bvb2wgPSBbXTsgICAvLyBbe3ByaW8sIHBlcnNvbn1dCiAgICB2YXIgdm9yZ01h
bm5aYWhsICAgICAgPSAwOwogICAgdmFyIGlzdEZMID0gMCwgaXN0U0wgPSAwOwogICAgdmFyIGlz
dFVudEYgPSAwLCBpc3RVbnROID0gMDsKCiAgICAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5m
b3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAgICBpZiAoIXAuYWt0aXYpIHJldHVybjsKICAgICAg
ICB2YXIgd2VydCA9IGVbU3RyaW5nKHAuaWQpXSB8fCAnJzsKICAgICAgICBpZiAoIXdlcnQpIHJl
dHVybjsKICAgICAgICB2YXIgZ3J1bmR6ZWljaGVuID0gd2VydC5jaGFyQXQoMCk7CiAgICAgICAg
dmFyIGlzdEZMV2VydCA9IHdlcnQgPT09ICdGTCc7CiAgICAgICAgdmFyIGlzdFNMV2VydCA9IHdl
cnQgPT09ICdTTCc7CiAgICAgICAgaWYgKGlzdEZMV2VydCkgaXN0RkwrKzsKICAgICAgICBpZiAo
aXN0U0xXZXJ0KSBpc3RTTCsrOwoKICAgICAgICAvLyBaYWVobHQgZGVyIFdlcnQgenVyIFZvcmdh
YmUtU2NoaWNodD8gKEZML1NMIHdlcmRlbiBWb3JnYWJlIEYvUyB6dWdlb3JkbmV0KQogICAgICAg
IHZhciB6YWVobHRadXJWb3JnYWJlID0gZmFsc2U7CiAgICAgICAgaWYgKHZvcmdTICYmIChncnVu
ZHplaWNoZW4gPT09IHZvcmdTIHx8ICh2b3JnUyA9PT0gJ0YnICYmIGlzdEZMV2VydCkgfHwgKHZv
cmdTID09PSAnUycgJiYgaXN0U0xXZXJ0KSkpIHsKICAgICAgICAgICAgemFlaGx0WnVyVm9yZ2Fi
ZSA9IHRydWU7CiAgICAgICAgfQogICAgICAgIGlmICh6YWVobHRadXJWb3JnYWJlKSB7CiAgICAg
ICAgICAgIHZhciBwcmlvID0gZnVlaHJ1bmdzUHJpbyhwLmZ1bmt0aW9uIHx8ICcnKTsKICAgICAg
ICAgICAgaWYgKHByaW8gPCA5OSkgdm9yZ0Z1ZWhydW5nc3Bvb2wucHVzaCh7IHByaW86IHByaW8s
IHBlcnNvbjogcCB9KTsKICAgICAgICAgICAgZWxzZSAgICAgICAgICAgdm9yZ01hbm5aYWhsKys7
CiAgICAgICAgfQoKICAgICAgICAvLyBVbnRlcnN0dWV0enVuZ3MtWmFlaGx1bmcgKGZ1bmt0aW9u
c25ldXRyYWwpCiAgICAgICAgaWYgKGdydW5kemVpY2hlbiA9PT0gJ0YnICYmICFpc3RGTFdlcnQp
IGlzdFVudEYrKzsKICAgICAgICBpZiAoZ3J1bmR6ZWljaGVuID09PSAnTicpIGlzdFVudE4rKzsK
ICAgIH0pOwoKICAgIC8vIEhpZXJhcmNoaWU6IGVyc3RlIHNvbGxGIFBlcnNvbmVuIGF1cyBkZW0g
UG9vbCA9IEZ1ZWhydW5nLCBSZXN0IC0+IE1hbm5zY2hhZnQKICAgIHZvcmdGdWVocnVuZ3Nwb29s
LnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS5wcmlvIC0gYi5wcmlvOyB9KTsKICAgIHZh
ciBmdWVocnVuZ0VmZmVrdGl2ICA9IE1hdGgubWluKHZvcmdGdWVocnVuZ3Nwb29sLmxlbmd0aCwg
c29sbEYpOwogICAgdmFyIGZ1ZWhydW5nVWViZXJzY2h1c3MgPSBNYXRoLm1heCgwLCB2b3JnRnVl
aHJ1bmdzcG9vbC5sZW5ndGggLSBzb2xsRik7CiAgICB2YXIgbWFubnNjaGFmdEVmZmVrdGl2ID0g
dm9yZ01hbm5aYWhsICsgZnVlaHJ1bmdVZWJlcnNjaHVzczsKCiAgICAvLyBBdWZzY2hsdWVzc2Vs
dW5nIGZ1ZXIgVG9vbHRpcAogICAgdmFyIG5ER0wgPSAwLCBuRUIgPSAwLCBuRUJWID0gMDsKICAg
IHZvcmdGdWVocnVuZ3Nwb29sLmZvckVhY2goZnVuY3Rpb24oeCkgewogICAgICAgIGlmICAgICAg
KHgucHJpbyA9PT0gMSkgbkRHTCsrOwogICAgICAgIGVsc2UgaWYgKHgucHJpbyA9PT0gMikgbkVC
Kys7CiAgICAgICAgZWxzZSBpZiAoeC5wcmlvID09PSAzKSBuRUJWKys7CiAgICB9KTsKCiAgICBy
ZXR1cm4gewogICAgICAgIGZ1ZWhydW5nSXN0OiAgICAgICAgZnVlaHJ1bmdFZmZla3RpdiwKICAg
ICAgICBmdWVocnVuZ0tlcm46ICAgICAgIG5ER0wgKyBuRUIsICAgICAgICAgLy8gREdMICsgMS4g
RUIgaW0gUG9vbCAoQmFja3dhcmRzLUNvbXBhdCkKICAgICAgICBmdWVocnVuZ1Y6ICAgICAgICAg
IG5FQlYsICAgICAgICAgICAgICAgIC8vIDEuIEVCIFYuIGltIFBvb2wKICAgICAgICBmdWVocnVu
Z1Bvb2w6ICAgICAgIHZvcmdGdWVocnVuZ3Nwb29sLmxlbmd0aCwKICAgICAgICBmdWVocnVuZ1Vl
YmVyc2NodXNzOiBmdWVocnVuZ1VlYmVyc2NodXNzLAogICAgICAgIG1hbm5zY2hhZnRJc3Q6ICAg
ICAgbWFubnNjaGFmdEVmZmVrdGl2LAogICAgICAgIG1hbm5zY2hhZnRLZXJuOiAgICAgdm9yZ01h
bm5aYWhsLCAgICAgICAgLy8gb2huZSB1ZWJlcmdlbGF1ZmVuZSBGdWVocnVuZ3MtUGVyc29uZW4K
ICAgICAgICBmbElzdDogICAgICAgICAgICAgIGlzdEZMLAogICAgICAgIHNsSXN0OiAgICAgICAg
ICAgICAgaXN0U0wsCiAgICAgICAgdW50RklzdDogICAgICAgICAgICBpc3RVbnRGLAogICAgICAg
IHVudE5Jc3Q6ICAgICAgICAgICAgaXN0VW50TiwKICAgICAgICB0ZDogICAgICAgICAgICAgICAg
IHRkCiAgICB9Owp9Cg==
### FILE: js/import/excel-import.js | 32687
Ly8gPT09IGltcG9ydC9leGNlbC1pbXBvcnQuanMgPT09Ci8vIEV4Y2VsLUltcG9ydC1XaXphcmQ6
IFNoZWV0SlMgbMOkZHQgLnhsc3gsIFBhcnNlciBlcmtlbm50IEZMRC1Wb3JsYWdlCi8vIChQZXJz
b25lbi1UYWJlbGxlIFozMi1aMTIxLCBUYWdlc2RhdGVuIFo0LVo5LCBUZXJtaW5lIFoyNS1aMjkp
LAovLyBQZXJzb25lbi1NYXRjaC1XaXphcmQgKE1hdGNoL05ldS9EZWFrdGl2aWVyZW4gbWl0IElu
YWt0aXYtQW5sYWdlKSwKLy8gVGFnZXNkYXRlbi1BYndlaWNodW5ncy1Wb3JzY2hhdSwgw5xiZXJz
aWNodCArIMOcYmVybmVobWVuLgoKaW1wb3J0IHsgWiB9IGZyb20gJy4uL2NvcmUvc3RhdGUuanMn
OwppbXBvcnQgewogICAgZXNjYXBlSFRNTCwgZXNjYXBlQXR0ciwgZGF0dW1TdHIsIGRhdHVtRm9y
bWF0REUsIGRhdHVtS3VyekRFLAogICAgcGVyc29uTmFtZSwgcGVyc29uVm9sbE5hbWUsIGRpZW5z
dGdyYWRSYW5nCn0gZnJvbSAnLi4vY29yZS91dGlsLmpzJzsKaW1wb3J0IHsgYXBpLCBhcGlQb3N0
LCBhcGlQdXQgfSBmcm9tICcuLi9jb3JlL2FwaS5qcyc7CmltcG9ydCB7IHRvYXN0IH0gZnJvbSAn
Li4vdWkvdG9hc3QuanMnOwppbXBvcnQgeyBtb2RhbFplaWdlbiwgbW9kYWxTY2hsaWVzc2VuLCBi
ZXN0YWV0aWdlbiB9IGZyb20gJy4uL3VpL21vZGFsLmpzJzsKaW1wb3J0IHsgdGFnZXNkYXRlbkZ1
ZXIgfSBmcm9tICcuLi9ncmlkL3RhZ2VzZGF0ZW4uanMnOwoKZXhwb3J0IHZhciBLUF9GVU5LVElP
TlNfSEVBREVSID0geyAnREdMJzogMSwgJzEuIEVCJzogMSwgJ0VCJzogMSwgJ0F1c3p1YmlsZGVu
ZGUnOiAxLCAnVGVtcG9yw6RyJzogMSwgJ1RlbXBvcmFlcic6IDEsICd0ZW1wb3LDpHInOiAxIH07
CmV4cG9ydCB2YXIgS1BfVEVSTUlOX1pFSUxFTiA9IHsgMjU6ICdiZXNwcmVjaHVuZycsIDI2OiAn
dWVidW5nJywgMjc6ICdiYW8nLCAyODogJ2J2YicsIDI5OiAnZmVyaWVuJyB9OwoKLy8gTW9kdWwt
U3RhdGUgKHdhciB2b3IgRVNNLU1pZ3JhdGlvbiBlaW5lIGFwcC5qcy1JSUZFLVZhcmlhYmxlKS4K
dmFyIGV4Y2VsSW1wb3J0ID0gewogICAgd29ya2Jvb2s6IG51bGwsCiAgICBwYXJzZWQ6IG51bGws
ICAgICAgICAvLyBPdXRwdXQgdm9uIGV4Y2VsSW1wb3J0UGFyc2Uod29ya2Jvb2spCiAgICB2b3Jz
Y2hhdTogbnVsbCwgICAgICAvLyBBbnR3b3J0IHZvbSAvdm9yc2NoYXUtRW5kcG9pbnQKICAgIHBl
cnNvbmVuQWt0aW9uZW46IFtdIC8vIFZvbSBXaXphcmQgenVzYW1tZW5nZXN0ZWxsdAp9OwoKLy8g
TGF6eS1Mb2FkIGRlciB4bHN4LmZ1bGwubWluLmpzLUxpYnJhcnkgKH45MzIgS0IpIOKAlCBudXIg
d2VubiBkZXIKLy8gRXhjZWwtSW1wb3J0LVRhYiB0YXRzYWVjaGxpY2ggZ2VvZWZmbmV0IHdpcmQu
CmV4cG9ydCBmdW5jdGlvbiBsYWRlWGxzeExpYigpIHsKICAgIGlmICh0eXBlb2Ygd2luZG93LlhM
U1ggIT09ICd1bmRlZmluZWQnKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CiAgICBpZiAoZXhj
ZWxJbXBvcnQuX2xpYlByb21pc2UpIHJldHVybiBleGNlbEltcG9ydC5fbGliUHJvbWlzZTsKICAg
IGV4Y2VsSW1wb3J0Ll9saWJQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CiAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQn
KTsKICAgICAgICBzLnNyYyA9ICd4bHN4LmZ1bGwubWluLmpzJzsKICAgICAgICBzLm9ubG9hZCA9
IGZ1bmN0aW9uKCkgeyByZXNvbHZlKCk7IH07CiAgICAgICAgcy5vbmVycm9yID0gZnVuY3Rpb24o
KSB7IHJlamVjdChuZXcgRXJyb3IoJ3hsc3guZnVsbC5taW4uanMga29ubnRlIG5pY2h0IGdlbGFk
ZW4gd2VyZGVuJykpOyB9OwogICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyk7CiAg
ICB9KTsKICAgIHJldHVybiBleGNlbEltcG9ydC5fbGliUHJvbWlzZTsKfQoKZXhwb3J0IGZ1bmN0
aW9uIGV4Y2VsSW1wb3J0SW5pdCgpIHsKICAgIC8vIFp1c3RhbmQgenVydWVja3NldHplbgogICAg
ZXhjZWxJbXBvcnQud29ya2Jvb2sgPSBudWxsOwogICAgZXhjZWxJbXBvcnQucGFyc2VkID0gbnVs
bDsKICAgIGV4Y2VsSW1wb3J0LnZvcnNjaGF1ID0gbnVsbDsKICAgIGV4Y2VsSW1wb3J0LnBlcnNv
bmVuQWt0aW9uZW4gPSBbXTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBv
cnQtc2Nocml0dDEnKS5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsKICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtc2Nocml0dDInKS5jbGFzc0xpc3QuYWRkKCd2
ZXJzdGVja3QnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtc2No
cml0dDMnKS5jbGFzc0xpc3QuYWRkKCd2ZXJzdGVja3QnKTsKICAgIHZhciBkYXRlaUlucHV0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4Y2VsLWltcG9ydC1kYXRlaScpOwogICAgaWYgKGRh
dGVpSW5wdXQpIGRhdGVpSW5wdXQudmFsdWUgPSAnJzsKICAgIHZhciBidG5QYXJzZW4gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWV4Y2VsLWltcG9ydC1wYXJzZW4nKTsKICAgIGlmIChi
dG5QYXJzZW4pIGJ0blBhcnNlbi5kaXNhYmxlZCA9IHRydWU7CiAgICB2YXIgc3RhdHVzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4Y2VsLWltcG9ydC1zdGF0dXMnKTsKICAgIGlmIChzdGF0
dXMpIHN0YXR1cy50ZXh0Q29udGVudCA9ICcnOwogICAgLy8gTGliIGltIEhpbnRlcmdydW5kIHZv
cmxhZW4KICAgIGxhZGVYbHN4TGliKCkuY2F0Y2goZnVuY3Rpb24oZSkgeyBjb25zb2xlLmVycm9y
KCdbZXhjZWxJbXBvcnQuaW5pdF0nLCBlKTsgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBleGNlbElt
cG9ydERhdGVpQWVuZGVybigpIHsKICAgIHZhciBkYXRlaUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2V4Y2VsLWltcG9ydC1kYXRlaScpOwogICAgdmFyIGJ0blBhcnNlbiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZXhjZWwtaW1wb3J0LXBhcnNlbicpOwogICAgYnRuUGFy
c2VuLmRpc2FibGVkID0gIShkYXRlaUlucHV0LmZpbGVzICYmIGRhdGVpSW5wdXQuZmlsZXNbMF0p
Owp9CgpleHBvcnQgZnVuY3Rpb24gZXhjZWxJbXBvcnRQYXJzZUZpbGUoKSB7CiAgICB2YXIgZGF0
ZWlJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtZGF0ZWknKTsK
ICAgIGlmICghZGF0ZWlJbnB1dC5maWxlcyB8fCAhZGF0ZWlJbnB1dC5maWxlc1swXSkgcmV0dXJu
OwogICAgdmFyIGZpbGUgPSBkYXRlaUlucHV0LmZpbGVzWzBdOwogICAgdmFyIHN0YXR1cyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtc3RhdHVzJyk7CiAgICBzdGF0dXMu
dGV4dENvbnRlbnQgPSAnTGFkZSBYTFNYLUxpYnJhcnkg4oCmJzsKICAgIGxhZGVYbHN4TGliKCku
dGhlbihmdW5jdGlvbigpIHsKICAgICAgICBzdGF0dXMudGV4dENvbnRlbnQgPSAnTGVzZSBEYXRl
aSDigKYnOwogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgICAg
ICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihlKSB7IHJlc29sdmUoZS50YXJnZXQucmVzdWx0
KTsgfTsKICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgcmVqZWN0KG5l
dyBFcnJvcignRGF0ZWkga29ubnRlIG5pY2h0IGdlbGVzZW4gd2VyZGVuJykpOyB9OwogICAgICAg
ICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICAgICAgfSk7CiAgICB9KS50
aGVuKGZ1bmN0aW9uKGFycmF5QnVmZmVyKSB7CiAgICAgICAgc3RhdHVzLnRleHRDb250ZW50ID0g
J1BhcnNlIEV4Y2VsIOKApic7CiAgICAgICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShhcnJh
eUJ1ZmZlcik7CiAgICAgICAgLy8gY2VsbERhdGVzOiBmYWxzZSAtPiB3aXIgYmVrb21tZW4gRGF0
dW0tU2VyaWFscyBhbHMgWmFobGVuLCBrb2VubmVuIGRpZSBzZWxic3QgdW1yZWNobmVuCiAgICAg
ICAgdmFyIHdiID0gd2luZG93LlhMU1gucmVhZChkYXRhLCB7IHR5cGU6ICdhcnJheScsIGNlbGxE
YXRlczogZmFsc2UsIGNlbGxORjogZmFsc2UsIGNlbGxUZXh0OiBmYWxzZSB9KTsKICAgICAgICBl
eGNlbEltcG9ydC53b3JrYm9vayA9IHdiOwogICAgICAgIGV4Y2VsSW1wb3J0LnBhcnNlZCA9IGV4
Y2VsSW1wb3J0UGFyc2Uod2IpOwogICAgICAgIHN0YXR1cy50ZXh0Q29udGVudCA9ICdTZW5kZSBW
b3JzY2hhdS1BbmZyYWdlIGFuIFNlcnZlciDigKYnOwogICAgICAgIHJldHVybiBhcGlQb3N0KCcv
YXBpL2ltcG9ydC9leGNlbC92b3JzY2hhdScsIHsKICAgICAgICAgICAgcGVyc29uZW5FeGNlbDog
ZXhjZWxJbXBvcnQucGFyc2VkLnBlcnNvbmVuLAogICAgICAgICAgICBqYWhyOiBleGNlbEltcG9y
dC5wYXJzZWQuamFocgogICAgICAgIH0pOwogICAgfSkudGhlbihmdW5jdGlvbih2b3JzY2hhdSkg
ewogICAgICAgIGV4Y2VsSW1wb3J0LnZvcnNjaGF1ID0gdm9yc2NoYXU7CiAgICAgICAgc3RhdHVz
LnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgZXhjZWxJbXBvcnRaZWlnZVBlcnNvbmVuV2l6YXJk
KCk7CiAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgY29uc29sZS5lcnJvcignW2V4
Y2VsSW1wb3J0LnBhcnNlXScsIGUpOwogICAgICAgIHN0YXR1cy50ZXh0Q29udGVudCA9ICdGZWhs
ZXI6ICcgKyBlLm1lc3NhZ2U7CiAgICAgICAgdG9hc3QoJ0V4Y2VsLUltcG9ydC1GZWhsZXI6ICcg
KyBlLm1lc3NhZ2UsICdmZWhsZXInKTsKICAgIH0pOwp9CgovLyBFeGNlbC1EYXR1bS1TZXJpYWwg
LT4gSVNPLURhdHVtICgxODk5LTEyLTMwIEJhc2lzLCBFeGNlbC0xOTAwLUJ1Zy1rb21wZW5zaWVy
dCkKZXhwb3J0IGZ1bmN0aW9uIGV4Y2VsU2VyaWFsWnVJc28oc2VyaWFsKSB7CiAgICB2YXIgbiA9
IHBhcnNlSW50KHNlcmlhbCwgMTApOwogICAgaWYgKGlzTmFOKG4pKSByZXR1cm4gbnVsbDsKICAg
IHZhciBtcyA9IChuIC0gMjU1NjkpICogODY0MDAgKiAxMDAwOyAvLyAyNTU2OSA9IFRhZ2Ugendp
c2NoZW4gMTg5OS0xMi0zMCB1bmQgMTk3MC0wMS0wMQogICAgdmFyIGQgPSBuZXcgRGF0ZShtcyk7
CiAgICBpZiAoaXNOYU4oZC5nZXRUaW1lKCkpKSByZXR1cm4gbnVsbDsKICAgIHZhciB5ID0gZC5n
ZXRVVENGdWxsWWVhcigpLCBtID0gZC5nZXRVVENNb250aCgpICsgMSwgZGF5ID0gZC5nZXRVVENE
YXRlKCk7CiAgICByZXR1cm4geSArICctJyArIChtIDwgMTAgPyAnMCcgOiAnJykgKyBtICsgJy0n
ICsgKGRheSA8IDEwID8gJzAnIDogJycpICsgZGF5Owp9CgovLyBSZXBhcmllcnQgZWluIGJla2Fu
bnRlcyBFbmNvZGluZy1BcnRlZmFrdCBhdXMgYWx0ZW4gRkxELUV4Y2VsLVZvcmxhZ2VuOgovLyBk
b3J0IGtvbW10IMOfIGFscyDDuCAoVSswMEY4KSBiencuIMOYIChVKzAwRDgpIHN0YXR0IFUrMDBE
RiB6dXJ1ZWNrLiBXaXIgbWFwcGVuCi8vIGhhcnQgenVydWVjayDigJQgaW0gQmVob2VyZGVuLUtv
bnRleHQgZ2lidCBlcyBrZWluZSBlY2h0ZW4gTmFtZW4gbWl0IMO4L8OYLgpmdW5jdGlvbiByZXBh
cmFlc2NoYXIocykgewogICAgaWYgKCFzKSByZXR1cm4gczsKICAgIHJldHVybiBzLnJlcGxhY2Uo
L8O4L2csICfDnycpLnJlcGxhY2UoL8OYL2csICdTUycpOwp9CgovLyBMaWVzdCBhdXMgQ2VsbC1P
YmplY3QgZGVuIENvbW1lbnQtVGV4dCB6dXJ1ZWNrIChTaGVldEpTIHNwZWljaGVydCBDb21tZW50
cwovLyBhbHMgY2VsbC5jID0gW3thOiAiQXV0aG9yIiwgdDogIlRleHQifV0pLiAnQXV0b3I6Jy1Q
cmFlZml4IHdpcmQgYWJnZXNjaG5pdHRlbi4KZXhwb3J0IGZ1bmN0aW9uIGV4Y2VsQ2VsbENvbW1l
bnQoY2VsbCkgewogICAgaWYgKCFjZWxsIHx8ICFjZWxsLmMgfHwgIWNlbGwuYy5sZW5ndGgpIHJl
dHVybiAnJzsKICAgIHZhciB0ZXh0ID0gY2VsbC5jLm1hcChmdW5jdGlvbihjKSB7IHJldHVybiBj
LnQgfHwgJyc7IH0pLmpvaW4oJ1xuJyk7CiAgICBpZiAodGV4dC5pbmRleE9mKCdBdXRvcjonKSA9
PT0gMCkgdGV4dCA9IHRleHQuc3Vic3RyaW5nKCdBdXRvcjonLmxlbmd0aCk7CiAgICByZXR1cm4g
cmVwYXJhZXNjaGFyKHRleHQucmVwbGFjZSgvXltcclxuXSsvLCAnJykucmVwbGFjZSgvXHMrJC8s
ICcnKSk7Cn0KCi8vIEhhdXB0cGFyc2VyOiBleHRyYWhpZXJ0IFBlcnNvbmVuLCBEYXR1bXNzcGFs
dGVuLCBTY2hpY2h0ZW4sIFBmbGljaHQsCi8vIEtvbW1lbnRhcmUgdW5kIFRlcm1pbmUgYW5hbG9n
IHp1IHBhcnNlX2tvcnJla3R1cnBsYW51bmdfZXhjZWwoKSBpbiBzZXJ2ZXIucHkuCmV4cG9ydCBm
dW5jdGlvbiBleGNlbEltcG9ydFBhcnNlKHdiKSB7CiAgICB2YXIgWCA9IHdpbmRvdy5YTFNYOwog
ICAgdmFyIHNoZWV0ID0gd2IuU2hlZXRzWydQbGFudW5nJ107CiAgICBpZiAoIXNoZWV0KSB0aHJv
dyBuZXcgRXJyb3IoIlNoZWV0ICdQbGFudW5nJyBuaWNodCBpbiBkZXIgRXhjZWwtRGF0ZWkiKTsK
ICAgIHZhciByYW5nZSA9IFgudXRpbHMuZGVjb2RlX3JhbmdlKHNoZWV0WychcmVmJ10pOwoKICAg
IC8vIEhlbHBlcjogQ2VsbC1XZXJ0IGFscyBTdHJpbmcgKG9kZXIgbGVlcikKICAgIGZ1bmN0aW9u
IGNlbGxWYWwoYywgcikgewogICAgICAgIHZhciBhZGRyID0gWC51dGlscy5lbmNvZGVfY2VsbCh7
IGM6IGMsIHI6IHIgfSk7CiAgICAgICAgdmFyIGNlbGwgPSBzaGVldFthZGRyXTsKICAgICAgICBp
ZiAoIWNlbGwpIHJldHVybiAnJzsKICAgICAgICBpZiAoY2VsbC52ID09PSBudWxsIHx8IGNlbGwu
diA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJyc7CiAgICAgICAgcmV0dXJuIHJlcGFyYWVzY2hhcihT
dHJpbmcoY2VsbC52KSk7CiAgICB9CgogICAgLy8gUjEgY29sIEEgLT4gR3J1cHBlCiAgICB2YXIg
cjFhID0gY2VsbFZhbCgwLCAwKTsKICAgIHZhciBncnVwcGUgPSAnJzsKICAgIHZhciBtID0gL0Rp
ZW5zdGdydXBwZVxzKyhbQS1aYS16XSkvLmV4ZWMocjFhKTsKICAgIGlmIChtKSBncnVwcGUgPSBt
WzFdLnRvVXBwZXJDYXNlKCk7CgogICAgLy8gUjIgY29sIEIgLT4gRXhjZWwtU2VyaWFsIGZ1ZXIg
UGxhbnVuZ3NzdGFydAogICAgdmFyIHIyYiA9IGNlbGxWYWwoMSwgMSk7CiAgICB2YXIgc3RhcnRJ
c28gPSBleGNlbFNlcmlhbFp1SXNvKHIyYik7CiAgICB2YXIgamFociA9IHN0YXJ0SXNvID8gcGFy
c2VJbnQoc3RhcnRJc28uc3Vic3RyaW5nKDAsIDQpLCAxMCkgOiBudWxsOwoKICAgIC8vIFIzMiAo
SW5kZXggMzEpOiBEYXR1bXNzcGFsdGVuIGFiIFNwYWx0ZSBDIChJbmRleCAyKQogICAgdmFyIGRh
dHVtc3NwYWx0ZW4gPSB7fTsKICAgIGZvciAodmFyIGMgPSAyOyBjIDw9IHJhbmdlLmUuYzsgYysr
KSB7CiAgICAgICAgdmFyIHYgPSBjZWxsVmFsKGMsIDMxKTsKICAgICAgICB2YXIgaXNvID0gZXhj
ZWxTZXJpYWxadUlzbyh2KTsKICAgICAgICBpZiAoaXNvKSBkYXR1bXNzcGFsdGVuW2NdID0gaXNv
OwogICAgfQogICAgaWYgKCFPYmplY3Qua2V5cyhkYXR1bXNzcGFsdGVuKS5sZW5ndGgpIHRocm93
IG5ldyBFcnJvcignS2VpbmUgRGF0dW1zc3BhbHRlbiBpbiBSMzIgZ2VmdW5kZW4nKTsKICAgIGlm
IChqYWhyID09PSBudWxsKSB7CiAgICAgICAgdmFyIG1pbiA9IG51bGw7CiAgICAgICAgZm9yICh2
YXIgayBpbiBkYXR1bXNzcGFsdGVuKSB7IGlmICghbWluIHx8IGRhdHVtc3NwYWx0ZW5ba10gPCBt
aW4pIG1pbiA9IGRhdHVtc3NwYWx0ZW5ba107IH0KICAgICAgICBpZiAobWluKSBqYWhyID0gcGFy
c2VJbnQobWluLnN1YnN0cmluZygwLCA0KSwgMTApOwogICAgfQoKICAgIC8vIFBlcnNvbmVuIGFi
IFIzNCAoSW5kZXggMzMpCiAgICB2YXIgcGVyc29uZW4gPSBbXTsKICAgIHZhciBmdW5rdGlvbkFr
dHVlbGwgPSAnJzsKICAgIGZvciAodmFyIHIgPSAzMzsgciA8IE1hdGgubWluKDEyMCwgcmFuZ2Uu
ZS5yICsgMSk7IHIrKykgewogICAgICAgIHZhciBhID0gY2VsbFZhbCgwLCByKS50cmltKCk7CiAg
ICAgICAgdmFyIGIgPSBjZWxsVmFsKDEsIHIpLnRyaW0oKTsKICAgICAgICBpZiAoIWEpIGNvbnRp
bnVlOwogICAgICAgIGlmIChLUF9GVU5LVElPTlNfSEVBREVSW2FdKSB7IGZ1bmt0aW9uQWt0dWVs
bCA9IGE7IGNvbnRpbnVlOyB9CiAgICAgICAgaWYgKGEuaW5kZXhPZignLCcpIDwgMCkgewogICAg
ICAgICAgICAvLyBUcmVubnplaWxlbiB3aWUgIkRpZW5zdGdydXBwZSBCIiwgIlN0YW5kOiAyNS4w
NS4yMDI2IiwgIkJlbWVya3VuZ2VuIgogICAgICAgICAgICAvLyB6d2lzY2hlbiBQZXJzb25lbi1C
bG9lY2tlbiAobWFuY2hlIEJlaG9lcmRlbi1Wb3JsYWdlbikgc2tpcHBlbiwKICAgICAgICAgICAg
Ly8gTklDSFQgYWxzIExlZ2VuZGUtU3RhcnQgaW50ZXJwcmV0aWVyZW4gLS0gc29uc3QgZ2VoZW4g
bmFjaGZvbGdlbmRlCiAgICAgICAgICAgIC8vIFBlcnNvbmVuIHZlcmxvcmVuIHVuZCB3ZXJkZW4g
aW0gV2l6YXJkIGFscyAibmV1IGFubGVnZW4iIGVpbnNvcnRpZXJ0LgogICAgICAgICAgICAvLyBI
ZXVyaXN0aWs6IGVjaHRlIFNjaGljaHRjb2RlLUxlZ2VuZGUtWmVpbGVuIGhhYmVuIG1heCB+OCBa
ZWljaGVuCiAgICAgICAgICAgIC8vIChsYWVuZ3N0ZXIgQ29kZSAnZGZyIG4uQS4nKSB1bmQgZW50
aGFsdGVuIGtlaW4gJzonLiBBbGxlcyBhbmRlcmUKICAgICAgICAgICAgLy8gb2huZSBLb21tYSBp
biBTcGFsdGUgQSBpc3QgZWluZSBUcmVubnplaWxlIC0tIHVlYmVyc3ByaW5nZW4uCiAgICAgICAg
ICAgIGlmIChhLmxlbmd0aCA+IDkgfHwgYS5pbmRleE9mKCc6JykgPj0gMCkgY29udGludWU7CiAg
ICAgICAgICAgIGlmIChwZXJzb25lbi5sZW5ndGgpIGJyZWFrOyAgLy8gU2NoaWNodGNvZGUtTGVn
ZW5kZSBlcnJlaWNodAogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgdmFy
IHBhcnRzID0gYS5zcGxpdCgnLCcpOwogICAgICAgIHZhciBuYWNoID0gcGFydHNbMF0udHJpbSgp
OwogICAgICAgIHZhciB2b3IgPSBwYXJ0cy5zbGljZSgxKS5qb2luKCcsJykudHJpbSgpOwogICAg
ICAgIHBlcnNvbmVuLnB1c2goewogICAgICAgICAgICBuYW1lOiBhLCBuYWNobmFtZTogbmFjaCwg
dm9ybmFtZTogdm9yLAogICAgICAgICAgICBkaWVuc3RncmFkOiBiLCBmdW5rdGlvbjogZnVua3Rp
b25Ba3R1ZWxsIHx8ICcnLAogICAgICAgICAgICBleGNlbFJvdzogciArIDEKICAgICAgICB9KTsK
ICAgIH0KCiAgICAvLyBTY2hpY2h0ZW4gKyBQZmxpY2h0CiAgICB2YXIgZWludHJhZWdlID0ge307
CiAgICB2YXIgcGZsaWNodCA9IHt9OwogICAgdmFyIHBlcnNvblJvd3MgPSB7fTsKICAgIHBlcnNv
bmVuLmZvckVhY2goZnVuY3Rpb24ocCkgeyBwZXJzb25Sb3dzW3AuZXhjZWxSb3ddID0gMTsgfSk7
CiAgICBwZXJzb25lbi5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAgICB2YXIgcnIgPSBwLmV4
Y2VsUm93IC0gMTsKICAgICAgICBmb3IgKHZhciBjb2wgaW4gZGF0dW1zc3BhbHRlbikgewogICAg
ICAgICAgICB2YXIgZGF0dW0gPSBkYXR1bXNzcGFsdGVuW2NvbF07CiAgICAgICAgICAgIHZhciB3
ZXJ0ID0gY2VsbFZhbChwYXJzZUludChjb2wsIDEwKSwgcnIpLnRyaW0oKTsKICAgICAgICAgICAg
aWYgKCF3ZXJ0KSBjb250aW51ZTsKICAgICAgICAgICAgdmFyIGlzdFBmbGljaHQgPSBmYWxzZTsK
ICAgICAgICAgICAgaWYgKC9cc1gkLy50ZXN0KHdlcnQpKSB7CiAgICAgICAgICAgICAgICB3ZXJ0
ID0gd2VydC5yZXBsYWNlKC9cc1gkLywgJycpLnRyaW0oKTsKICAgICAgICAgICAgICAgIGlzdFBm
bGljaHQgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghd2VydCkgY29udGlu
dWU7CiAgICAgICAgICAgIGlmICghZWludHJhZWdlW2RhdHVtXSkgZWludHJhZWdlW2RhdHVtXSA9
IHt9OwogICAgICAgICAgICBlaW50cmFlZ2VbZGF0dW1dW3AuZXhjZWxSb3ddID0gd2VydDsKICAg
ICAgICAgICAgaWYgKGlzdFBmbGljaHQpIHsKICAgICAgICAgICAgICAgIGlmICghcGZsaWNodFtk
YXR1bV0pIHBmbGljaHRbZGF0dW1dID0ge307CiAgICAgICAgICAgICAgICBwZmxpY2h0W2RhdHVt
XVtwLmV4Y2VsUm93XSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KTsKCiAg
ICAvLyBLb21tZW50YXJlIGF1cyBQZXJzb25lbi1aZWlsZW4KICAgIHZhciBrb21tZW50YXJlID0g
e307CiAgICBwZXJzb25lbi5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAgICB2YXIgcnIgPSBw
LmV4Y2VsUm93IC0gMTsKICAgICAgICBmb3IgKHZhciBjb2wgaW4gZGF0dW1zc3BhbHRlbikgewog
ICAgICAgICAgICB2YXIgYWRkciA9IFgudXRpbHMuZW5jb2RlX2NlbGwoeyBjOiBwYXJzZUludChj
b2wsIDEwKSwgcjogcnIgfSk7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gZXhjZWxDZWxsQ29tbWVu
dChzaGVldFthZGRyXSk7CiAgICAgICAgICAgIGlmICghdGV4dCkgY29udGludWU7CiAgICAgICAg
ICAgIGlmICgha29tbWVudGFyZVtkYXR1bXNzcGFsdGVuW2NvbF1dKSBrb21tZW50YXJlW2RhdHVt
c3NwYWx0ZW5bY29sXV0gPSB7fTsKICAgICAgICAgICAga29tbWVudGFyZVtkYXR1bXNzcGFsdGVu
W2NvbF1dW3AuZXhjZWxSb3ddID0gdGV4dDsKICAgICAgICB9CiAgICB9KTsKCiAgICAvLyBUYWdl
c2RhdGVuIFI0LVI5IChWb3JnYWJlLVNjaGljaHQsIFNvbGwsIFVudGVyc3R1ZXR6dW5nKQogICAg
ZnVuY3Rpb24gcGFyc2VNYXJrZXJPZGVyU29sbCh2YWwpIHsKICAgICAgICB2YXIgdiA9ICh2YWwg
fHwgJycpLnRvU3RyaW5nKCkudHJpbSgpOwogICAgICAgIGlmICghdikgcmV0dXJuIHsgc29sbDog
MCwgbWFya2VyOiBbXSB9OwogICAgICAgIGlmICh2LmluZGV4T2YoJzonKSA+PSAwKSB7CiAgICAg
ICAgICAgIHZhciBuID0gcGFyc2VJbnQodi5zcGxpdCgnOicsIDIpWzFdLnRyaW0oKSwgMTApOwog
ICAgICAgICAgICByZXR1cm4geyBzb2xsOiBpc05hTihuKSA/IDAgOiBuLCBtYXJrZXI6IFtdIH07
CiAgICAgICAgfQogICAgICAgIHJldHVybiB7IHNvbGw6IDAsIG1hcmtlcjogW3ZdIH07CiAgICB9
CiAgICBmdW5jdGlvbiBwYXJzZVN0YWVya2UodmFsKSB7CiAgICAgICAgdmFyIHYgPSAodmFsIHx8
ICcnKS50b1N0cmluZygpLnRyaW0oKTsKICAgICAgICBpZiAoIXYgfHwgdi5pbmRleE9mKCc6Jykg
PCAwKSByZXR1cm4gbnVsbDsKICAgICAgICB2YXIgcGFydHMgPSB2LnNwbGl0KCc6JywgMik7CiAg
ICAgICAgdmFyIGEgPSBwYXJzZUludChwYXJ0c1swXS50cmltKCksIDEwKTsKICAgICAgICB2YXIg
YiA9IHBhcnNlSW50KHBhcnRzWzFdLnRyaW0oKSwgMTApOwogICAgICAgIGlmIChpc05hTihhKSB8
fCBpc05hTihiKSkgcmV0dXJuIG51bGw7CiAgICAgICAgcmV0dXJuIFthLCBiXTsKICAgIH0KICAg
IHZhciB0YWdlc2RhdGVuID0ge307CiAgICBmb3IgKHZhciBjb2w0IGluIGRhdHVtc3NwYWx0ZW4p
IHsKICAgICAgICB2YXIgY2kgPSBwYXJzZUludChjb2w0LCAxMCk7CiAgICAgICAgdmFyIHI0diA9
IChjZWxsVmFsKGNpLCAzKSB8fCAnJykudHJpbSgpOwogICAgICAgIGlmICghcjR2KSBjb250aW51
ZTsKICAgICAgICB2YXIgc29sbCA9IHBhcnNlU3RhZXJrZShjZWxsVmFsKGNpLCA0KSk7CiAgICAg
ICAgdGFnZXNkYXRlbltkYXR1bXNzcGFsdGVuW2NvbDRdXSA9IHsKICAgICAgICAgICAgdm9yZ2Fi
ZVNjaGljaHQ6IHI0diwKICAgICAgICAgICAgc3RhZXJrZVNvbGw6IHNvbGwgfHwgWzAsIDBdLAog
ICAgICAgICAgICBmcnVlaF9sOiAgICAgcGFyc2VNYXJrZXJPZGVyU29sbChjZWxsVmFsKGNpLCA1
KSksCiAgICAgICAgICAgIHNwYWV0X2w6ICAgICBwYXJzZU1hcmtlck9kZXJTb2xsKGNlbGxWYWwo
Y2ksIDYpKSwKICAgICAgICAgICAgdW50U3R1ZXR6X0Y6IHBhcnNlTWFya2VyT2RlclNvbGwoY2Vs
bFZhbChjaSwgNykpLAogICAgICAgICAgICB1bnRTdHVldHpfTjogcGFyc2VNYXJrZXJPZGVyU29s
bChjZWxsVmFsKGNpLCA4KSkKICAgICAgICB9OwogICAgfQoKICAgIC8vIFRlcm1pbmUgUjI1LVIy
OTogcHJvIFplbGxlIEVJTiBUZXJtaW4gKHRpdGVsID0gc2ljaHRiYXJlciBXZXJ0LCB0ZXh0ID0g
Q29tbWVudCkKICAgIHZhciB0ZXJtaW5lID0ge307CiAgICBPYmplY3Qua2V5cyhLUF9URVJNSU5f
WkVJTEVOKS5mb3JFYWNoKGZ1bmN0aW9uKHJFeGNlbFN0cikgewogICAgICAgIHZhciByRXhjZWwg
PSBwYXJzZUludChyRXhjZWxTdHIsIDEwKTsKICAgICAgICB2YXIga2F0ZWdvcmllID0gS1BfVEVS
TUlOX1pFSUxFTltyRXhjZWxdOwogICAgICAgIHZhciByciA9IHJFeGNlbCAtIDE7CiAgICAgICAg
Zm9yICh2YXIgY29sIGluIGRhdHVtc3NwYWx0ZW4pIHsKICAgICAgICAgICAgdmFyIGRhdHVtID0g
ZGF0dW1zc3BhbHRlbltjb2xdOwogICAgICAgICAgICB2YXIgYWRkciA9IFgudXRpbHMuZW5jb2Rl
X2NlbGwoeyBjOiBwYXJzZUludChjb2wsIDEwKSwgcjogcnIgfSk7CiAgICAgICAgICAgIHZhciBj
ZWxsID0gc2hlZXRbYWRkcl07CiAgICAgICAgICAgIHZhciB3ZXJ0ID0gKGNlbGwgJiYgY2VsbC52
ICE9IG51bGwpID8gcmVwYXJhZXNjaGFyKFN0cmluZyhjZWxsLnYpLnRyaW0oKSkgOiAnJzsKICAg
ICAgICAgICAgdmFyIGNtdCA9IGV4Y2VsQ2VsbENvbW1lbnQoY2VsbCk7CiAgICAgICAgICAgIGlm
ICghd2VydCAmJiAhY210KSBjb250aW51ZTsKICAgICAgICAgICAgaWYgKCF0ZXJtaW5lW2RhdHVt
XSkgdGVybWluZVtkYXR1bV0gPSBbXTsKICAgICAgICAgICAgdGVybWluZVtkYXR1bV0ucHVzaCh7
CiAgICAgICAgICAgICAgICBrYXRlZ29yaWU6IGthdGVnb3JpZSwgICAvLyBEZWZhdWx0IGF1cyBF
eGNlbC1aZWlsZQogICAgICAgICAgICAgICAgdGl0ZWw6IHdlcnQsICAgICAgICAgICAgIC8vIHNp
Y2h0YmFyZXIgWmVsbGluaGFsdAogICAgICAgICAgICAgICAgdGV4dDogY210ICAgICAgICAgICAg
ICAgIC8vIEhvdmVyLUNvbW1lbnQgKG9mdCBsZWVyKQogICAgICAgICAgICB9KTsKICAgICAgICB9
CiAgICB9KTsKCiAgICByZXR1cm4gewogICAgICAgIGphaHI6IGphaHIsIGdydXBwZTogZ3J1cHBl
LCBkYXR1bXNzcGFsdGVuOiBkYXR1bXNzcGFsdGVuLAogICAgICAgIHBlcnNvbmVuOiBwZXJzb25l
biwgZWludHJhZWdlOiBlaW50cmFlZ2UsIHBmbGljaHQ6IHBmbGljaHQsCiAgICAgICAga29tbWVu
dGFyZToga29tbWVudGFyZSwgdGVybWluZTogdGVybWluZSwgdGFnZXNkYXRlbjogdGFnZXNkYXRl
bgogICAgfTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGV4Y2VsSW1wb3J0WmVpZ2VQZXJzb25lbldpemFy
ZCgpIHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtc2Nocml0dDEn
KS5jbGFzc0xpc3QuYWRkKCd2ZXJzdGVja3QnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdleGNlbC1pbXBvcnQtc2Nocml0dDInKS5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsK
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtc2Nocml0dDMnKS5jbGFz
c0xpc3QuYWRkKCd2ZXJzdGVja3QnKTsKICAgIHZhciBkaWZmID0gZXhjZWxJbXBvcnQudm9yc2No
YXUucGVyc29uZW47CiAgICB2YXIgYWt0aW9uZW4gPSBbXTsKICAgIHZhciBodG1sID0gJyc7Cgog
ICAgLy8gTWF0Y2ggKFZvcnNjaGxhZyBiZXN0YWV0aWd0KSDigJQgaW5ha3RpdmUgUGVyc29uZW4g
YmVrb21tZW4gZWluCiAgICAvLyBTdWItUmFkaW8gJ0luYWt0aXYgbGFzc2VuJyAoRGVmYXVsdCkg
LyAnUmVha3RpdmllcmVuJy4KICAgIGRpZmYubWF0Y2guZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7
CiAgICAgICAgdmFyIGZhcmJlID0gaXRlbS5jb25maWRlbmNlID09PSAnaG9jaCcgPyAn8J+foicg
OiAn8J+foSc7CiAgICAgICAgdmFyIGRlZmF1bHRBa3Rpb24gPSAnbWF0Y2gnOwogICAgICAgIHZh
ciBpc3RJbmFrdGl2ID0gaXRlbS5wbGFudW5nLmFrdGl2ID09PSBmYWxzZTsKICAgICAgICB2YXIg
YWt0aW9uc09iaiA9IHsgZXhjZWxSb3c6IGl0ZW0uZXhjZWwuZXhjZWxSb3csIGFrdGlvbjogZGVm
YXVsdEFrdGlvbiwgcGxhbnVuZ3NJZDogaXRlbS5wbGFudW5nLmlkIH07CiAgICAgICAgaWYgKGlz
dEluYWt0aXYpIGFrdGlvbnNPYmoucmVha3RpdmllcmVuID0gZmFsc2U7ICAgLy8gRGVmYXVsdDog
aW5ha3RpdiBsYXNzZW4KICAgICAgICBha3Rpb25lbi5wdXNoKGFrdGlvbnNPYmopOwogICAgICAg
IHZhciBpZHhBa3Rpb24gPSBha3Rpb25lbi5sZW5ndGggLSAxOwoKICAgICAgICB2YXIgbWF0Y2hI
dG1sID0gZmFyYmUgKyAnICcgKyBlc2NhcGVIVE1MKGl0ZW0ucGxhbnVuZy5uYWNobmFtZSB8fCAn
JykgKyAnLCAnICsgZXNjYXBlSFRNTChpdGVtLnBsYW51bmcudm9ybmFtZSB8fCAnJykgKyAnIChp
ZD0nICsgaXRlbS5wbGFudW5nLmlkICsgJywgJyArIGVzY2FwZUhUTUwoaXRlbS5wbGFudW5nLmRp
ZW5zdGdyYWQpICsgJyknOwogICAgICAgIHZhciByZWFrdGl2SHRtbCA9IG51bGw7CiAgICAgICAg
aWYgKGlzdEluYWt0aXYpIHsKICAgICAgICAgICAgbWF0Y2hIdG1sICs9ICcgPHNwYW4gc3R5bGU9
ImJhY2tncm91bmQ6I2ZmZjNjZDsgY29sb3I6Izg1NjQwNDsgcGFkZGluZzoxcHggNnB4OyBib3Jk
ZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEwcHgiPklOQUtUSVY8L3NwYW4+JzsKICAgICAgICAg
ICAgcmVha3Rpdkh0bWwgPSAnPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDo0cHg7IGZvbnQtc2l6ZTox
MXB4Ij4nICsKICAgICAgICAgICAgICAgICc8bGFiZWwgc3R5bGU9Im1hcmdpbi1yaWdodDoxMHB4
Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImV4aS1yZWFrdC0nICsgaWR4QWt0aW9uICsgJyIg
ZGF0YS1yZWFrdC1pZHg9IicgKyBpZHhBa3Rpb24gKyAnIiB2YWx1ZT0iZmFsc2UiIGNoZWNrZWQ+
IEluYWt0aXYgbGFzc2VuIDxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+KFNj
aGljaHRlbiArIEtvbW1lbnRhcmUgd2VyZGVuIGltcG9ydGllcnQsIFBlcnNvbiBibGVpYnQgaW5h
a3Rpdik8L3NwYW4+PC9sYWJlbD4nICsKICAgICAgICAgICAgICAgICc8bGFiZWw+PGlucHV0IHR5
cGU9InJhZGlvIiBuYW1lPSJleGktcmVha3QtJyArIGlkeEFrdGlvbiArICciIGRhdGEtcmVha3Qt
aWR4PSInICsgaWR4QWt0aW9uICsgJyIgdmFsdWU9InRydWUiPiBSZWFrdGl2aWVyZW48L2xhYmVs
PicgKwogICAgICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgfQogICAgICAgIGh0bWwgKz0g
emVpbGVIdG1sRXhjZWxQZXJzb24oaXRlbS5leGNlbCwgbWF0Y2hIdG1sLAogICAgICAgICAgICBp
ZHhBa3Rpb24sIFsnbWF0Y2gnLCAnbmV1JywgJ3NraXAnXSwgZGVmYXVsdEFrdGlvbiwgcmVha3Rp
dkh0bWwpOwogICAgfSk7CgogICAgLy8gVW5zaWNoZXIgKG1laHJlcmUgS2FuZGlkYXRlbikKICAg
IGRpZmYudW5zaWNoZXIuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7CiAgICAgICAgYWt0aW9uZW4u
cHVzaCh7IGV4Y2VsUm93OiBpdGVtLmV4Y2VsLmV4Y2VsUm93LCBha3Rpb246ICdza2lwJywgcGxh
bnVuZ3NJZDogbnVsbCB9KTsKICAgICAgICB2YXIgaWR4QWt0aW9uID0gYWt0aW9uZW4ubGVuZ3Ro
IC0gMTsKICAgICAgICB2YXIga2FuZGlkYXRlbkh0bWwgPSAnPHNlbGVjdCBkYXRhLWFrdGlvbi1p
ZHg9IicgKyBpZHhBa3Rpb24gKyAnIiBkYXRhLXJvbGxlPSJrYW5kaWRhdCIgY2xhc3M9ImZvcm0t
aW5wdXQiIHN0eWxlPSJmb250LXNpemU6MTFweDsgcGFkZGluZzoycHggNnB4Ij4nOwogICAgICAg
IGthbmRpZGF0ZW5IdG1sICs9ICc8b3B0aW9uIHZhbHVlPSIiPuKAlCB3w6RobGVuIOKAlDwvb3B0
aW9uPic7CiAgICAgICAgaXRlbS5rYW5kaWRhdGVuLmZvckVhY2goZnVuY3Rpb24oaykgewogICAg
ICAgICAgICB2YXIgaW5ha1N1ZmZpeCA9IGsuYWt0aXYgPT09IGZhbHNlID8gJyBbSU5BS1RJVl0n
IDogJyc7CiAgICAgICAgICAgIGthbmRpZGF0ZW5IdG1sICs9ICc8b3B0aW9uIHZhbHVlPSInICsg
ay5pZCArICciPicgKyBlc2NhcGVIVE1MKGsubmFjaG5hbWUgfHwgJycpICsgJywgJyArIGVzY2Fw
ZUhUTUwoay52b3JuYW1lIHx8ICcnKSArICcgKGlkPScgKyBrLmlkICsgJywgJyArIGVzY2FwZUhU
TUwoay5kaWVuc3RncmFkKSArICcpJyArIGluYWtTdWZmaXggKyAnPC9vcHRpb24+JzsKICAgICAg
ICB9KTsKICAgICAgICBrYW5kaWRhdGVuSHRtbCArPSAnPC9zZWxlY3Q+JzsKICAgICAgICBodG1s
ICs9IHplaWxlSHRtbEV4Y2VsUGVyc29uKGl0ZW0uZXhjZWwsICfwn5S0ICcgKyBpdGVtLmthbmRp
ZGF0ZW4ubGVuZ3RoICsgJyBLYW5kaWRhdGVuIOKAlCBtYW51ZWxsIHfDpGhsZW4nLAogICAgICAg
ICAgICBpZHhBa3Rpb24sIFsnbWF0Y2gnLCAnbmV1JywgJ3NraXAnXSwgJ3NraXAnLCBrYW5kaWRh
dGVuSHRtbCk7CiAgICB9KTsKCiAgICAvLyBOZXUg4oCUIHp1c8OkdHpsaWNoZXMgUmFkaW8g4oCe
QWt0aXYgLyBJbmFrdGl2IGFubGVnZW4iLgogICAgLy8gSW5ha3Rpdi1Nb2R1czogUGVyc29uIG1p
dCBhbGxlbiBEYXRlbiBhbmxlZ2VuLCBhYmVyIGFrdGl2OmZhbHNlIOKGkgogICAgLy8gdGF1Y2h0
IG5pY2h0IGluIGRlciBsYXVmZW5kZW4gUGxhbnVuZyBhdWYsIGJsZWlidCBhYmVyIGbDvHIgU3Rh
dGlzdGlrIC8KICAgIC8vIGhpc3RvcmlzY2hlIEF1c3dlcnR1bmdlbiBlcmhhbHRlbi4KICAgIGRp
ZmYubmV1LmZvckVhY2goZnVuY3Rpb24oaXRlbSkgewogICAgICAgIGFrdGlvbmVuLnB1c2goeyBl
eGNlbFJvdzogaXRlbS5leGNlbC5leGNlbFJvdywgYWt0aW9uOiAnbmV1JywgcGxhbnVuZ3NJZDog
bnVsbCwgYWt0aXY6IHRydWUgfSk7CiAgICAgICAgdmFyIGlkeEFrdGlvbiA9IGFrdGlvbmVuLmxl
bmd0aCAtIDE7CiAgICAgICAgdmFyIGluYWt0aXZIdG1sID0gJzxkaXYgc3R5bGU9Im1hcmdpbi10
b3A6NHB4OyBmb250LXNpemU6MTFweCI+JyArCiAgICAgICAgICAgICc8bGFiZWwgc3R5bGU9Im1h
cmdpbi1yaWdodDoxMHB4Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImV4aS1ha3Rpdi0nICsg
aWR4QWt0aW9uICsgJyIgZGF0YS1ha3Rpdi1pZHg9IicgKyBpZHhBa3Rpb24gKyAnIiB2YWx1ZT0i
dHJ1ZSIgY2hlY2tlZD4gQWt0aXYgYW5sZWdlbjwvbGFiZWw+JyArCiAgICAgICAgICAgICc8bGFi
ZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJleGktYWt0aXYtJyArIGlkeEFrdGlvbiArICci
IGRhdGEtYWt0aXYtaWR4PSInICsgaWR4QWt0aW9uICsgJyIgdmFsdWU9ImZhbHNlIj4gSW5ha3Rp
diBhbmxlZ2VuIDxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+KGhpc3Rvcmlz
Y2gg4oCUIGFsbGUgRGF0ZW4gZXJmYXNzdCwgdGF1Y2h0IG5pY2h0IGluIGFrdGl2ZXIgUGxhbnVu
ZyBhdWYpPC9zcGFuPjwvbGFiZWw+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIGh0
bWwgKz0gemVpbGVIdG1sRXhjZWxQZXJzb24oaXRlbS5leGNlbCwgJzxlbT5rZWluIE1hdGNoIOKA
lCBuZXUgYW5sZWdlbjwvZW0+JyArIGluYWt0aXZIdG1sLAogICAgICAgICAgICBpZHhBa3Rpb24s
IFsnbmV1JywgJ3NraXAnXSwgJ25ldScsIG51bGwpOwogICAgfSk7CgogICAgLy8gRW50ZmVybnQK
ICAgIGRpZmYuZW50ZmVybnQuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7CiAgICAgICAgYWt0aW9u
ZW4ucHVzaCh7IHBsYW51bmdzSWQ6IGl0ZW0ucGxhbnVuZy5pZCwgYWt0aW9uOiAnZGVha3Rpdmll
cmVuJyB9KTsKICAgICAgICB2YXIgaWR4QWt0aW9uID0gYWt0aW9uZW4ubGVuZ3RoIC0gMTsKICAg
ICAgICBodG1sICs9ICc8dHI+JzsKICAgICAgICBodG1sICs9ICc8dGQ+PGVtPihpbSBFeGNlbCBu
aWNodCBtZWhyIHZvcmhhbmRlbik8L2VtPjwvdGQ+JzsKICAgICAgICBodG1sICs9ICc8dGQ+4oCU
PC90ZD4nOwogICAgICAgIGh0bWwgKz0gJzx0ZD5pZD0nICsgaXRlbS5wbGFudW5nLmlkICsgJyAn
ICsgZXNjYXBlSFRNTChpdGVtLnBsYW51bmcubmFjaG5hbWUgfHwgJycpICsgJywgJyArIGVzY2Fw
ZUhUTUwoaXRlbS5wbGFudW5nLnZvcm5hbWUgfHwgJycpICsgJyAoJyArIGVzY2FwZUhUTUwoaXRl
bS5wbGFudW5nLmRpZW5zdGdyYWQpICsgJyk8L3RkPic7CiAgICAgICAgaHRtbCArPSAnPHRkPjxs
YWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImV4aS1ha3QtJyArIGlkeEFrdGlvbiArICci
IGRhdGEtYWt0aW9uLWlkeD0iJyArIGlkeEFrdGlvbiArICciIHZhbHVlPSJkZWFrdGl2aWVyZW4i
IGNoZWNrZWQ+IERlYWt0aXZpZXJlbjwvbGFiZWw+ICc7CiAgICAgICAgaHRtbCArPSAnPGxhYmVs
PjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZXhpLWFrdC0nICsgaWR4QWt0aW9uICsgJyIgZGF0
YS1ha3Rpb24taWR4PSInICsgaWR4QWt0aW9uICsgJyIgdmFsdWU9ImJlaGFsdGVuIj4gQmVoYWx0
ZW48L2xhYmVsPjwvdGQ+JzsKICAgICAgICBodG1sICs9ICc8L3RyPic7CiAgICB9KTsKCiAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhjZWwtaW1wb3J0LXBlcnNvbmVuLXRib2R5JykuaW5u
ZXJIVE1MID0gaHRtbDsKICAgIGV4Y2VsSW1wb3J0LnBlcnNvbmVuQWt0aW9uZW4gPSBha3Rpb25l
bjsKCiAgICAvLyBMaXN0ZW5lciBmdWVyIFJhZGlvcyArIFNlbGVjdHMKICAgIHZhciB0Ym9keSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtcGVyc29uZW4tdGJvZHknKTsK
ICAgIHRib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9InJhZGlvIl1bZGF0YS1ha3Rp
b24taWR4XScpLmZvckVhY2goZnVuY3Rpb24ocmIpIHsKICAgICAgICByYi5hZGRFdmVudExpc3Rl
bmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGlkeCA9IHBhcnNlSW50
KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWFrdGlvbi1pZHgnKSwgMTApOwogICAgICAgICAgICBl
eGNlbEltcG9ydC5wZXJzb25lbkFrdGlvbmVuW2lkeF0uYWt0aW9uID0gdGhpcy52YWx1ZTsKICAg
ICAgICB9KTsKICAgIH0pOwogICAgdGJvZHkucXVlcnlTZWxlY3RvckFsbCgnc2VsZWN0W2RhdGEt
YWt0aW9uLWlkeF0nKS5mb3JFYWNoKGZ1bmN0aW9uKHNlbCkgewogICAgICAgIHNlbC5hZGRFdmVu
dExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGlkeCA9IHBh
cnNlSW50KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWFrdGlvbi1pZHgnKSwgMTApOwogICAgICAg
ICAgICBpZiAodGhpcy52YWx1ZSkgewogICAgICAgICAgICAgICAgZXhjZWxJbXBvcnQucGVyc29u
ZW5Ba3Rpb25lbltpZHhdLmFrdGlvbiA9ICdtYXRjaCc7CiAgICAgICAgICAgICAgICBleGNlbElt
cG9ydC5wZXJzb25lbkFrdGlvbmVuW2lkeF0ucGxhbnVuZ3NJZCA9IHBhcnNlSW50KHRoaXMudmFs
dWUsIDEwKTsKICAgICAgICAgICAgICAgIC8vIFJhZGlvICJtYXRjaCIgYXVzd2FlaGxlbgogICAg
ICAgICAgICAgICAgdmFyIHJiID0gdGJvZHkucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT0icmFk
aW8iXVtkYXRhLWFrdGlvbi1pZHg9IicgKyBpZHggKyAnIl1bdmFsdWU9Im1hdGNoIl0nKTsKICAg
ICAgICAgICAgICAgIGlmIChyYikgcmIuY2hlY2tlZCA9IHRydWU7CiAgICAgICAgICAgIH0KICAg
ICAgICB9KTsKICAgIH0pOwogICAgLy8gUmVha3RpdmllcmVuLVJhZGlvcyBiZWkgaW5ha3RpdmVu
IE1hdGNoLVBlcnNvbmVuCiAgICB0Ym9keS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPSJy
YWRpbyJdW2RhdGEtcmVha3QtaWR4XScpLmZvckVhY2goZnVuY3Rpb24ocmIpIHsKICAgICAgICBy
Yi5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFy
IGlkeCA9IHBhcnNlSW50KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXJlYWt0LWlkeCcpLCAxMCk7
CiAgICAgICAgICAgIGV4Y2VsSW1wb3J0LnBlcnNvbmVuQWt0aW9uZW5baWR4XS5yZWFrdGl2aWVy
ZW4gPSAodGhpcy52YWx1ZSA9PT0gJ3RydWUnKTsKICAgICAgICB9KTsKICAgIH0pOwogICAgLy8g
QWt0aXYvSW5ha3Rpdi1SYWRpb3MgYmVpIE5FVUVOIFBlcnNvbmVuCiAgICB0Ym9keS5xdWVyeVNl
bGVjdG9yQWxsKCdpbnB1dFt0eXBlPSJyYWRpbyJdW2RhdGEtYWt0aXYtaWR4XScpLmZvckVhY2go
ZnVuY3Rpb24ocmIpIHsKICAgICAgICByYi5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgdmFyIGlkeCA9IHBhcnNlSW50KHRoaXMuZ2V0QXR0cmlidXRl
KCdkYXRhLWFrdGl2LWlkeCcpLCAxMCk7CiAgICAgICAgICAgIGV4Y2VsSW1wb3J0LnBlcnNvbmVu
QWt0aW9uZW5baWR4XS5ha3RpdiA9ICh0aGlzLnZhbHVlID09PSAndHJ1ZScpOwogICAgICAgIH0p
OwogICAgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiB6ZWlsZUh0bWxFeGNlbFBlcnNvbihlcCwgdm9y
c2NobGFnSHRtbCwgaWR4QWt0aW9uLCBha3Rpb25lbiwgZGVmYXVsdEFrdGlvbiwgZXh0cmFTZWxl
Y3RIdG1sKSB7CiAgICB2YXIgaHRtbCA9ICc8dHI+JzsKICAgIGh0bWwgKz0gJzx0ZD48c3Ryb25n
PicgKyBlc2NhcGVIVE1MKGVwLm5hbWUpICsgJzwvc3Ryb25nPiAoJyArIGVzY2FwZUhUTUwoZXAu
ZGllbnN0Z3JhZCkgKyAnKTwvdGQ+JzsKICAgIGh0bWwgKz0gJzx0ZD4nICsgZXNjYXBlSFRNTChl
cC5mdW5rdGlvbikgKyAnPC90ZD4nOwogICAgaHRtbCArPSAnPHRkPicgKyB2b3JzY2hsYWdIdG1s
ICsgKGV4dHJhU2VsZWN0SHRtbCA/ICc8YnI+JyArIGV4dHJhU2VsZWN0SHRtbCA6ICcnKSArICc8
L3RkPic7CiAgICBodG1sICs9ICc8dGQ+JzsKICAgIHZhciBsYWJlbHMgPSB7IG1hdGNoOiAnTWF0
Y2gnLCBuZXU6ICdOZXUnLCBza2lwOiAnU2tpcCcgfTsKICAgIGFrdGlvbmVuLmZvckVhY2goZnVu
Y3Rpb24oYSkgewogICAgICAgIGh0bWwgKz0gJzxsYWJlbCBzdHlsZT0ibWFyZ2luLXJpZ2h0Ojhw
eCI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJleGktYWt0LScgKyBpZHhBa3Rpb24gKyAnIiBk
YXRhLWFrdGlvbi1pZHg9IicgKyBpZHhBa3Rpb24gKyAnIiB2YWx1ZT0iJyArIGEgKyAnIicgKyAo
YSA9PT0gZGVmYXVsdEFrdGlvbiA/ICcgY2hlY2tlZCcgOiAnJykgKyAnPiAnICsgbGFiZWxzW2Fd
ICsgJzwvbGFiZWw+JzsKICAgIH0pOwogICAgaHRtbCArPSAnPC90ZD4nOwogICAgaHRtbCArPSAn
PC90cj4nOwogICAgcmV0dXJuIGh0bWw7Cn0KCmV4cG9ydCBmdW5jdGlvbiBleGNlbEltcG9ydFp1
clVlYmVyc2ljaHQoKSB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhjZWwtaW1wb3J0
LXNjaHJpdHQyJykuY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7CiAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZXhjZWwtaW1wb3J0LXNjaHJpdHQzJykuY2xhc3NMaXN0LnJlbW92ZSgndmVy
c3RlY2t0Jyk7CiAgICBleGNlbEltcG9ydFJlbmRlcm5VZWJlcnNpY2h0KCk7CiAgICBleGNlbElt
cG9ydFJlbmRlcm5UZXJtaW5lKCk7Cn0KCmV4cG9ydCB2YXIgS1BfS0FURUdPUklFX0xBQkVMUyA9
IHsKICAgIGJlc3ByZWNodW5nOiAnQmVzcHJlY2h1bmcnLAogICAgdWVidW5nOiAnw5xidW5nIC8g
Rm9ydGJpbGR1bmcnLAogICAgYmFvOiAnQkFPJywKICAgIGJ2YjogJ0J2QiAvIEdyb8OfdmVyYW5z
dGFsdHVuZycsCiAgICBmZXJpZW46ICdGZXJpZW4gLyBTb25kZXJ0YWcnCn07CgpleHBvcnQgZnVu
Y3Rpb24gZXhjZWxJbXBvcnRSZW5kZXJuVGVybWluZSgpIHsKICAgIHZhciBwID0gZXhjZWxJbXBv
cnQucGFyc2VkOwogICAgdmFyIHRib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4Y2Vs
LWltcG9ydC10ZXJtaW5lLXRib2R5Jyk7CiAgICBpZiAoIXRib2R5IHx8ICFwIHx8ICFwLnRlcm1p
bmUpIHJldHVybjsKICAgIC8vIEZsYWNoZSBMaXN0ZSBhbGxlciBUZXJtaW5lOiBbe2RhdHVtLCBp
ZHgsIHR9XQogICAgdmFyIHJvd3MgPSBbXTsKICAgIE9iamVjdC5rZXlzKHAudGVybWluZSkuc29y
dCgpLmZvckVhY2goZnVuY3Rpb24oZGF0dW0pIHsKICAgICAgICBwLnRlcm1pbmVbZGF0dW1dLmZv
ckVhY2goZnVuY3Rpb24odCwgaWR4KSB7CiAgICAgICAgICAgIHJvd3MucHVzaCh7IGRhdHVtOiBk
YXR1bSwgaWR4OiBpZHgsIHQ6IHQgfSk7CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHZhciBodG1s
ID0gJyc7CiAgICByb3dzLmZvckVhY2goZnVuY3Rpb24ocikgewogICAgICAgIHZhciB0ID0gci50
OwogICAgICAgIGlmICh0eXBlb2YgdC5za2lwICE9PSAnYm9vbGVhbicpIHQuc2tpcCA9IGZhbHNl
OwogICAgICAgIGh0bWwgKz0gJzx0ciBkYXRhLWRhdHVtPSInICsgZXNjYXBlQXR0cihyLmRhdHVt
KSArICciIGRhdGEtaWR4PSInICsgci5pZHggKyAnIj4nOwogICAgICAgIGh0bWwgKz0gJzx0ZD4n
ICsgZXNjYXBlSFRNTChkYXR1bUZvcm1hdERFKHIuZGF0dW0pKSArICc8L3RkPic7CiAgICAgICAg
aHRtbCArPSAnPHRkPicgKyBlc2NhcGVIVE1MKHQudGl0ZWwgfHwgJyhrZWluIFRpdGVsKScpICsg
JzwvdGQ+JzsKICAgICAgICBodG1sICs9ICc8dGQgc3R5bGU9Im1heC13aWR0aDozMDBweDsgb3Zl
cmZsb3c6aGlkZGVuOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyB3aGl0ZS1zcGFjZTpub3dyYXAi
IHRpdGxlPSInICsgZXNjYXBlQXR0cih0LnRleHQpICsgJyI+JyArIGVzY2FwZUhUTUwodC50ZXh0
IHx8ICfigJQnKSArICc8L3RkPic7CiAgICAgICAgaHRtbCArPSAnPHRkIHN0eWxlPSJ0ZXh0LWFs
aWduOmNlbnRlciI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZXhjZWwtdGVybWluLXNr
aXAiJyArICh0LnNraXAgPyAnIGNoZWNrZWQnIDogJycpICsgJz48L3RkPic7CiAgICAgICAgaHRt
bCArPSAnPC90cj4nOwogICAgfSk7CiAgICB0Ym9keS5pbm5lckhUTUwgPSBodG1sOwogICAgdGJv
ZHkucXVlcnlTZWxlY3RvckFsbCgnLmV4Y2VsLXRlcm1pbi1za2lwJykuZm9yRWFjaChmdW5jdGlv
bihjYikgewogICAgICAgIGNiLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICB2YXIgdHIgPSB0aGlzLmNsb3Nlc3QoJ3RyJyk7CiAgICAgICAgICAgIHZh
ciBkYXR1bSA9IHRyLmdldEF0dHJpYnV0ZSgnZGF0YS1kYXR1bScpOwogICAgICAgICAgICB2YXIg
aWR4ID0gcGFyc2VJbnQodHIuZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpLCAxMCk7CiAgICAgICAg
ICAgIHAudGVybWluZVtkYXR1bV1baWR4XS5za2lwID0gdGhpcy5jaGVja2VkOwogICAgICAgIH0p
OwogICAgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBleGNlbEltcG9ydFJlbmRlcm5VZWJlcnNpY2h0
KCkgewogICAgdmFyIHAgPSBleGNlbEltcG9ydC5wYXJzZWQ7CiAgICB2YXIgYWt0aW9uZW4gPSBl
eGNlbEltcG9ydC5wZXJzb25lbkFrdGlvbmVuOwogICAgdmFyIG5NYXRjaCA9IGFrdGlvbmVuLmZp
bHRlcihmdW5jdGlvbihhKSB7IHJldHVybiBhLmFrdGlvbiA9PT0gJ21hdGNoJzsgfSkubGVuZ3Ro
OwogICAgdmFyIG5OZXUgPSBha3Rpb25lbi5maWx0ZXIoZnVuY3Rpb24oYSkgeyByZXR1cm4gYS5h
a3Rpb24gPT09ICduZXUnOyB9KS5sZW5ndGg7CiAgICB2YXIgbk5ldUluYWt0aXYgPSBha3Rpb25l
bi5maWx0ZXIoZnVuY3Rpb24oYSkgeyByZXR1cm4gYS5ha3Rpb24gPT09ICduZXUnICYmIGEuYWt0
aXYgPT09IGZhbHNlOyB9KS5sZW5ndGg7CiAgICB2YXIgbkRlYWt0ID0gYWt0aW9uZW4uZmlsdGVy
KGZ1bmN0aW9uKGEpIHsgcmV0dXJuIGEuYWt0aW9uID09PSAnZGVha3RpdmllcmVuJzsgfSkubGVu
Z3RoOwogICAgdmFyIG5Ta2lwID0gYWt0aW9uZW4uZmlsdGVyKGZ1bmN0aW9uKGEpIHsgcmV0dXJu
IGEuYWt0aW9uID09PSAnc2tpcCcgfHwgYS5ha3Rpb24gPT09ICdiZWhhbHRlbic7IH0pLmxlbmd0
aDsKICAgIHZhciBuRWludHJhZWdlID0gMDsgZm9yICh2YXIgZCBpbiBwLmVpbnRyYWVnZSkgbkVp
bnRyYWVnZSArPSBPYmplY3Qua2V5cyhwLmVpbnRyYWVnZVtkXSkubGVuZ3RoOwogICAgdmFyIG5Q
ZmxpY2h0ID0gMDsgZm9yICh2YXIgZDIgaW4gcC5wZmxpY2h0KSBuUGZsaWNodCArPSBPYmplY3Qu
a2V5cyhwLnBmbGljaHRbZDJdKS5sZW5ndGg7CiAgICB2YXIgbktvbW1lbnRhcmUgPSAwOyBmb3Ig
KHZhciBkMyBpbiBwLmtvbW1lbnRhcmUpIG5Lb21tZW50YXJlICs9IE9iamVjdC5rZXlzKHAua29t
bWVudGFyZVtkM10pLmxlbmd0aDsKICAgIHZhciBuVGVybWluZSA9IDA7IGZvciAodmFyIGQ0IGlu
IHAudGVybWluZSkgblRlcm1pbmUgKz0gcC50ZXJtaW5lW2Q0XS5sZW5ndGg7CiAgICB2YXIgblRh
Z2VzZGF0ZW4gPSBwLnRhZ2VzZGF0ZW4gPyBPYmplY3Qua2V5cyhwLnRhZ2VzZGF0ZW4pLmxlbmd0
aCA6IDA7CgogICAgdmFyIG5ldUxhYmVsID0gbk5ldSArICcgUGVyc29uZW4gd2VyZGVuIG5ldSBh
bmdlbGVndCc7CiAgICBpZiAobk5ldUluYWt0aXYgPiAwKSBuZXVMYWJlbCArPSAnIDxzcGFuIHN0
eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MTFweCI+KCcgKyBuTmV1SW5h
a3RpdiArICcgZGF2b24gaW5ha3Rpdik8L3NwYW4+JzsKCiAgICB2YXIgaHRtbCA9ICc8ZGl2IHN0
eWxlPSJkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwxZnIpOyBn
YXA6OHB4IDI0cHg7IG1heC13aWR0aDo2MDBweCI+JzsKICAgIGh0bWwgKz0gJzxkaXY+PHN0cm9u
Zz4nICsgbk1hdGNoICsgJzwvc3Ryb25nPiBQZXJzb25lbiB3ZXJkZW4gZ2VtYXRjaHQgKFNjaGlj
aHRlbiB1ZWJlcnNjaHJpZWJlbik8L2Rpdj4nOwogICAgaHRtbCArPSAnPGRpdj48c3Ryb25nPicg
KyBuZXVMYWJlbCArICc8L3N0cm9uZz48L2Rpdj4nOwogICAgaHRtbCArPSAnPGRpdj48c3Ryb25n
PicgKyBuRGVha3QgKyAnPC9zdHJvbmc+IFBlcnNvbmVuIHdlcmRlbiBkZWFrdGl2aWVydDwvZGl2
Pic7CiAgICBodG1sICs9ICc8ZGl2PjxzdHJvbmc+JyArIG5Ta2lwICsgJzwvc3Ryb25nPiBQZXJz
b25lbiB3ZXJkZW4gdWViZXJzcHJ1bmdlbjwvZGl2Pic7CiAgICBodG1sICs9ICc8ZGl2PjxzdHJv
bmc+JyArIG5FaW50cmFlZ2UgKyAnPC9zdHJvbmc+IFNjaGljaHRlbjwvZGl2Pic7CiAgICBodG1s
ICs9ICc8ZGl2PjxzdHJvbmc+JyArIG5QZmxpY2h0ICsgJzwvc3Ryb25nPiBQZmxpY2h0LVNldHp1
bmdlbjwvZGl2Pic7CiAgICBodG1sICs9ICc8ZGl2PjxzdHJvbmc+JyArIG5Lb21tZW50YXJlICsg
Jzwvc3Ryb25nPiBTY2hpY2h0LUtvbW1lbnRhcmU8L2Rpdj4nOwogICAgaHRtbCArPSAnPGRpdj48
c3Ryb25nPicgKyBuVGVybWluZSArICc8L3N0cm9uZz4gU29uZGVydGVybWluZSAoWjI1LVoyOSwg
YWxsZSBhbHMgSGlud2Vpcyk8L2Rpdj4nOwogICAgaHRtbCArPSAnPGRpdj48c3Ryb25nPicgKyBu
VGFnZXNkYXRlbiArICc8L3N0cm9uZz4gVGFnZXNkYXRlbiAoWjQtWjk6IFZvcmdhYmUvU29sbC9G
LUwvUy1ML1VudC5GL1VudC5OKTwvZGl2Pic7CiAgICBodG1sICs9ICc8L2Rpdj4nOwoKICAgIC8v
IFRhZ2VzZGF0ZW4tQWJ3ZWljaHVuZ3MtVGFiZWxsZTogemVpZ3QgUFJPIFRBRyBkaWUgVW50ZXJz
Y2hpZWRlIHp3aXNjaGVuCiAgICAvLyBha3R1ZWxsZW0gU3lzdGVtLVN0YW5kIChSb3RhdGlvbiAr
IE92ZXJyaWRlcykgdW5kIEV4Y2VsLVdlcnRlbi4KICAgIHZhciBhYndlaWNodW5nZW4gPSBleGNl
bEltcG9ydFRhZ2VzZGF0ZW5BYndlaWNodW5nZW4ocC50YWdlc2RhdGVuIHx8IHt9KTsKICAgIGlm
IChhYndlaWNodW5nZW4ubGVuZ3RoID4gMCkgewogICAgICAgIGh0bWwgKz0gJzxkZXRhaWxzIHN0
eWxlPSJtYXJnaW4tdG9wOjE0cHg7bWF4LXdpZHRoOjkwMHB4IicgKyAoYWJ3ZWljaHVuZ2VuLmxl
bmd0aCA8PSA4ID8gJyBvcGVuJyA6ICcnKSArICc+JyArCiAgICAgICAgICAgICc8c3VtbWFyeSBz
dHlsZT0iY3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtaGVh
ZGluZykiPicgKwogICAgICAgICAgICAnVGFnZXNkYXRlbi1BYndlaWNodW5nZW4gPHNwYW4gc3R5
bGU9ImNvbG9yOnZhcigtLWZhcmJlLXdhcm51bmcpIj4oJyArIGFid2VpY2h1bmdlbi5sZW5ndGgg
KyAnKTwvc3Bhbj4g4oCUIEV4Y2VsIMO8YmVyc2NocmVpYnQgU3lzdGVtPC9zdW1tYXJ5PicgKwog
ICAgICAgICAgICAnPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBzdHlsZT0ibWFyZ2luLXRv
cDo4cHg7Zm9udC1zaXplOjEycHgiPicgKwogICAgICAgICAgICAgICAgJzx0aGVhZD48dHI+PHRo
PkRhdHVtPC90aD48dGg+RmVsZDwvdGg+PHRoPlN5c3RlbTwvdGg+PHRoIHN0eWxlPSJjb2xvcjp2
YXIoLS1mYXJiZS13YXJudW5nKSI+RXhjZWw8L3RoPjwvdHI+PC90aGVhZD4nICsKICAgICAgICAg
ICAgICAgICc8dGJvZHk+JyArCiAgICAgICAgICAgICAgICBhYndlaWNodW5nZW4ubWFwKGZ1bmN0
aW9uKGEpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzx0cj48dGQ+JyArIGVzY2FwZUhU
TUwoYS5kYXR1bSkgKyAnPC90ZD48dGQ+JyArIGVzY2FwZUhUTUwoYS5mZWxkKSArICc8L3RkPicg
KwogICAgICAgICAgICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11
dGVkKSI+JyArIGVzY2FwZUhUTUwoYS5zeXN0ZW0pICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAg
ICAgICAgICAgICc8dGQ+PHN0cm9uZz4nICsgZXNjYXBlSFRNTChhLmV4Y2VsKSArICc8L3N0cm9u
Zz48L3RkPjwvdHI+JzsKICAgICAgICAgICAgICAgIH0pLmpvaW4oJycpICsKICAgICAgICAgICAg
ICAgICc8L3Rib2R5PicgKwogICAgICAgICAgICAnPC90YWJsZT4nICsKICAgICAgICAgICAgJzxz
bWFsbCBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZGlzcGxheTpibG9jazttYXJnaW4t
dG9wOjZweCI+V2lyZCBiZWltIMOcYmVybmVobWVuIG1pdCBPcHRpb24g4oCeVGFnZXNkYXRlbiIg
YWxzIE92ZXJyaWRlIGluIDxjb2RlPnBsYW51bmcudGFnZXNkYXRlbjwvY29kZT4gZ2VzY2hyaWVi
ZW4uPC9zbWFsbD4nICsKICAgICAgICAnPC9kZXRhaWxzPic7CiAgICB9IGVsc2UgaWYgKG5UYWdl
c2RhdGVuID4gMCkgewogICAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTRw
eDtjb2xvcjp2YXIoLS1mYXJiZS1lcmZvbGcpO2ZvbnQtc2l6ZToxMnB4Ij7inJMgVGFnZXNkYXRl
biBkZXIgRXhjZWwgc2luZCBpZGVudGlzY2ggenVtIGFrdHVlbGxlbiBTeXN0ZW0tU3RhbmQg4oCU
IGtlaW5lIMOEbmRlcnVuZ2VuLjwvZGl2Pic7CiAgICB9CgogICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2V4Y2VsLWltcG9ydC11ZWJlcnNpY2h0JykuaW5uZXJIVE1MID0gaHRtbDsKfQoKLy8g
VmVyZ2xlaWNodCBkaWUgVGFnZXNkYXRlbiBhdXMgZGVyIEV4Y2VsIG1pdCBha3R1ZWxsZW0gU3lz
dGVtLVN0YW5kCi8vIChyb3RhdGlvbkZ1ZXIoZGF0dW0pICsgcGxhbnVuZy50YWdlc2RhdGVuW2Rh
dHVtXSkuIExpZWZlcnQgTGlzdGUgdm9uCi8vIEFid2VpY2h1bmdlbiBwcm8gRGF0dW0gdW5kIEZl
bGQuCmV4cG9ydCBmdW5jdGlvbiBleGNlbEltcG9ydFRhZ2VzZGF0ZW5BYndlaWNodW5nZW4oZXhj
ZWxUYWdlc2RhdGVuKSB7CiAgICB2YXIgb3V0ID0gW107CiAgICBpZiAodHlwZW9mIHJvdGF0aW9u
RnVlciAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIG91dDsKICAgIHZhciBmZWxkTGFiZWxzID0gewog
ICAgICAgIHZvcmdhYmVTY2hpY2h0OiAnVm9yZ2FiZScsCiAgICAgICAgc3RhZXJrZVNvbGw6ICAg
ICdTb2xsIEY6TScsCiAgICAgICAgZnJ1ZWhfbDogICAgICAgICdGL0wnLAogICAgICAgIHNwYWV0
X2w6ICAgICAgICAnUy9MJywKICAgICAgICB1bnRTdHVldHpfRjogICAgJ1VudC4gRicsCiAgICAg
ICAgdW50U3R1ZXR6X046ICAgICdVbnQuIE4nCiAgICB9OwogICAgZnVuY3Rpb24gZm10KGZlbGQs
IHZhbCkgewogICAgICAgIGlmICh2YWwgPT0gbnVsbCkgcmV0dXJuICfigJQnOwogICAgICAgIGlm
IChmZWxkID09PSAnc3RhZXJrZVNvbGwnICYmIEFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIHZh
bFswXSArICc6JyArIHZhbFsxXTsKICAgICAgICBpZiAoZmVsZCA9PT0gJ2ZydWVoX2wnIHx8IGZl
bGQgPT09ICdzcGFldF9sJyB8fCBmZWxkID09PSAndW50U3R1ZXR6X0YnIHx8IGZlbGQgPT09ICd1
bnRTdHVldHpfTicpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7
CiAgICAgICAgICAgICAgICB2YXIgcyA9ICh2YWwuc29sbCAhPSBudWxsID8gdmFsLnNvbGwgOiAw
KTsKICAgICAgICAgICAgICAgIHZhciBtID0gKHZhbC5tYXJrZXIgfHwgW10pLmpvaW4oJycpOwog
ICAgICAgICAgICAgICAgaWYgKHMgPT09IDAgJiYgIW0pIHJldHVybiAn4oCUJzsKICAgICAgICAg
ICAgICAgIGlmIChzID09PSAwKSByZXR1cm4gbTsKICAgICAgICAgICAgICAgIGlmICghbSkgcmV0
dXJuICcwOicgKyBzOwogICAgICAgICAgICAgICAgcmV0dXJuIG0gKyAnIC8gMDonICsgczsKICAg
ICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gU3RyaW5nKHZhbCk7CiAgICB9CiAg
ICBmdW5jdGlvbiBzYW1lVmFsKGZlbGQsIGEsIGIpIHsKICAgICAgICBpZiAoZmVsZCA9PT0gJ3N0
YWVya2VTb2xsJykgewogICAgICAgICAgICBhID0gYSB8fCBbMCwwXTsgYiA9IGIgfHwgWzAsMF07
CiAgICAgICAgICAgIHJldHVybiBhWzBdID09PSBiWzBdICYmIGFbMV0gPT09IGJbMV07CiAgICAg
ICAgfQogICAgICAgIGlmIChmZWxkID09PSAnZnJ1ZWhfbCcgfHwgZmVsZCA9PT0gJ3NwYWV0X2wn
IHx8IGZlbGQgPT09ICd1bnRTdHVldHpfRicgfHwgZmVsZCA9PT0gJ3VudFN0dWV0el9OJykgewog
ICAgICAgICAgICBhID0gYSB8fCB7c29sbDowLG1hcmtlcjpbXX07IGIgPSBiIHx8IHtzb2xsOjAs
bWFya2VyOltdfTsKICAgICAgICAgICAgaWYgKChhLnNvbGx8fDApICE9PSAoYi5zb2xsfHwwKSkg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICB2YXIgbWEgPSAoYS5tYXJrZXJ8fFtdKS5zbGljZSgp
LnNvcnQoKS5qb2luKCcsJyk7CiAgICAgICAgICAgIHZhciBtYiA9IChiLm1hcmtlcnx8W10pLnNs
aWNlKCkuc29ydCgpLmpvaW4oJywnKTsKICAgICAgICAgICAgcmV0dXJuIG1hID09PSBtYjsKICAg
ICAgICB9CiAgICAgICAgcmV0dXJuIChhIHx8ICcnKSA9PT0gKGIgfHwgJycpOwogICAgfQogICAg
T2JqZWN0LmtleXMoZXhjZWxUYWdlc2RhdGVuKS5zb3J0KCkuZm9yRWFjaChmdW5jdGlvbihkYXR1
bSkgewogICAgICAgIHZhciBleGNlbFRkID0gZXhjZWxUYWdlc2RhdGVuW2RhdHVtXTsKICAgICAg
ICAvLyBTeXN0ZW0tU3RhbmQ6IGV4cGxpeml0IGdlc2V0enRlIFRhZ2VzZGF0ZW4gaGFiZW4gVm9y
cmFuZyB2b3IgUm90YXRpb24KICAgICAgICB2YXIgb3ZlcnJpZGUgPSAoWi5wbGFudW5nICYmIFou
cGxhbnVuZy50YWdlc2RhdGVuICYmIFoucGxhbnVuZy50YWdlc2RhdGVuW2RhdHVtXSkgfHwgbnVs
bDsKICAgICAgICB2YXIgc3lzdGVtVGQgPSBPYmplY3QuYXNzaWduKHt9LCByb3RhdGlvbkZ1ZXIo
ZGF0dW0pLCBvdmVycmlkZSB8fCB7fSk7CiAgICAgICAgT2JqZWN0LmtleXMoZmVsZExhYmVscyku
Zm9yRWFjaChmdW5jdGlvbihmZWxkKSB7CiAgICAgICAgICAgIGlmICghc2FtZVZhbChmZWxkLCBz
eXN0ZW1UZFtmZWxkXSwgZXhjZWxUZFtmZWxkXSkpIHsKICAgICAgICAgICAgICAgIG91dC5wdXNo
KHsKICAgICAgICAgICAgICAgICAgICBkYXR1bTogZGF0dW0sCiAgICAgICAgICAgICAgICAgICAg
ZmVsZDogZmVsZExhYmVsc1tmZWxkXSwKICAgICAgICAgICAgICAgICAgICBzeXN0ZW06IGZtdChm
ZWxkLCBzeXN0ZW1UZFtmZWxkXSksCiAgICAgICAgICAgICAgICAgICAgZXhjZWw6IGZtdChmZWxk
LCBleGNlbFRkW2ZlbGRdKQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAg
ICB9KTsKICAgIH0pOwogICAgcmV0dXJuIG91dDsKfQoKZXhwb3J0IGZ1bmN0aW9uIGV4Y2VsSW1w
b3J0VWViZXJuZWhtZW4oKSB7CiAgICBpZiAoIWNvbmZpcm0oJ1dpcmtsaWNoIHVlYmVybmVobWVu
PyBCZXN0ZWhlbmRlIFNjaGljaHRlbiB3ZXJkZW4gdWViZXJzY2hyaWViZW4uXG5cblZvcmhlciBt
YW51ZWxsIGVpbiBCYWNrdXAgZ2VtYWNodD8nKSkgcmV0dXJuOwogICAgdmFyIHN0YXR1cyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtdWViZXJuYWhtZS1zdGF0dXMnKTsK
ICAgIHN0YXR1cy50ZXh0Q29udGVudCA9ICdTZW5kZSBEYXRlbiBhbiBTZXJ2ZXIg4oCmJzsKICAg
IHZhciBib2R5ID0gewogICAgICAgIHBhcnNlZERhdGVuOiBleGNlbEltcG9ydC5wYXJzZWQsCiAg
ICAgICAgcGVyc29uZW5Ba3Rpb25lbjogZXhjZWxJbXBvcnQucGVyc29uZW5Ba3Rpb25lbiwKICAg
ICAgICB1ZWJlcm5laG1lbjogewogICAgICAgICAgICBzY2hpY2h0ZW46IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtb3B0LXNjaGljaHRlbicpLmNoZWNrZWQsCiAgICAgICAg
ICAgIGtvbW1lbnRhcmU6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGNlbC1pbXBvcnQtb3B0
LWtvbW1lbnRhcmUnKS5jaGVja2VkLAogICAgICAgICAgICBzb25kZXJ0ZXJtaW5lOiBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZXhjZWwtaW1wb3J0LW9wdC1zb25kZXJ0ZXJtaW5lJykuY2hlY2tl
ZCwKICAgICAgICAgICAgdGFnZXNkYXRlbjogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4Y2Vs
LWltcG9ydC1vcHQtdGFnZXNkYXRlbicpLmNoZWNrZWQsCiAgICAgICAgICAgIHJlaWhlbmZvbGdl
OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhjZWwtaW1wb3J0LW9wdC1yZWloZW5mb2xnZScp
LmNoZWNrZWQKICAgICAgICB9CiAgICB9OwogICAgYXBpUG9zdCgnL2FwaS9pbXBvcnQvZXhjZWwv
dWViZXJuZWhtZW4nLCBib2R5KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICBzdGF0dXMudGV4
dENvbnRlbnQgPSAnRmVydGlnLiBCYWNrdXA6ICcgKyAoci5iYWNrdXAgfHwgJz8nKTsKICAgICAg
ICB0b2FzdCgnRXhjZWwtSW1wb3J0IGVyZm9sZ3JlaWNoLiAnICsgKHIuYW56YWhsID8gSlNPTi5z
dHJpbmdpZnkoci5hbnphaGwpIDogJycpLCAnZXJmb2xnJywgeyBkYXVlcjogODAwMCB9KTsKICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBkYXRlbkxhZGVuKCk7IH0sIDgwMCk7CiAgICB9
KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgY29uc29sZS5lcnJvcignW2V4Y2VsSW1wb3J0
LnVlYmVybmVobWVuXScsIGUpOwogICAgICAgIHN0YXR1cy50ZXh0Q29udGVudCA9ICdGZWhsZXI6
ICcgKyBlLm1lc3NhZ2U7CiAgICAgICAgdG9hc3QoJ0V4Y2VsLUltcG9ydC1GZWhsZXI6ICcgKyBl
Lm1lc3NhZ2UsICdmZWhsZXInKTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gaW5pdEV4Y2Vs
SW1wb3J0TGlzdGVuZXJzKCkgewogICAgdmFyIGRhdGVpSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZXhjZWwtaW1wb3J0LWRhdGVpJyk7CiAgICBpZiAoZGF0ZWlJbnB1dCkgZGF0ZWlJ
bnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBleGNlbEltcG9ydERhdGVpQWVuZGVybik7
CiAgICB2YXIgYnRuUGFyc2VuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1leGNlbC1p
bXBvcnQtcGFyc2VuJyk7CiAgICBpZiAoYnRuUGFyc2VuKSBidG5QYXJzZW4uYWRkRXZlbnRMaXN0
ZW5lcignY2xpY2snLCBleGNlbEltcG9ydFBhcnNlRmlsZSk7CiAgICB2YXIgYnRuWnVyVWViID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1leGNlbC1pbXBvcnQtenUtdWViZXJzaWNodCcp
OwogICAgaWYgKGJ0blp1clVlYikgYnRuWnVyVWViLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
ZXhjZWxJbXBvcnRadXJVZWJlcnNpY2h0KTsKICAgIHZhciBidG5adXJ1ZWNrMSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdidG4tZXhjZWwtaW1wb3J0LXp1cnVlY2stMScpOwogICAgaWYgKGJ0
blp1cnVlY2sxKSBidG5adXJ1ZWNrMS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV4Y2VsSW1w
b3J0SW5pdCk7CiAgICB2YXIgYnRuWnVydWVjazIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
YnRuLWV4Y2VsLWltcG9ydC16dXJ1ZWNrLTInKTsKICAgIGlmIChidG5adXJ1ZWNrMikgYnRuWnVy
dWVjazIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZXhjZWwtaW1wb3J0LXNjaHJpdHQzJykuY2xhc3NMaXN0LmFk
ZCgndmVyc3RlY2t0Jyk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4Y2VsLWlt
cG9ydC1zY2hyaXR0MicpLmNsYXNzTGlzdC5yZW1vdmUoJ3ZlcnN0ZWNrdCcpOwogICAgfSk7CiAg
ICB2YXIgYnRuVWViZXJuZWhtZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWV4Y2Vs
LWltcG9ydC11ZWJlcm5laG1lbicpOwogICAgaWYgKGJ0blVlYmVybmVobWVuKSBidG5VZWJlcm5l
aG1lbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV4Y2VsSW1wb3J0VWViZXJuZWhtZW4pOwog
ICAgdmFyIGJ0bkJhY2t1cCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tZXhjZWwtaW1w
b3J0LWJhY2t1cCcpOwogICAgaWYgKGJ0bkJhY2t1cCkgYnRuQmFja3VwLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgYXBpUG9zdCgnL2FwaS9wbGFudW5nL2Jh
Y2t1cCcsIHt9KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgdG9hc3QoJ0JhY2t1cCBl
cnN0ZWxsdDogJyArIChyLmRhdGVpbmFtZSB8fCAnT0snKSwgJ2VyZm9sZycpOwogICAgICAgIH0p
LmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0JhY2t1cC1GZWhsZXI6ICcgKyBlLm1lc3NhZ2Us
ICdmZWhsZXInKTsgfSk7CiAgICB9KTsKfQo=
### FILE: js/import/text-import.js | 11277
Ly8gPT09IGltcG9ydC90ZXh0LWltcG9ydC5qcyA9PT0KLy8gU2NoaWNodC1QYXN0ZS1JbXBvcnRl
ciAoRXhjZWwtWmVsbGVuIGtvcGllcmVuIC0+IFRleHRhcmVhIGVpbmbDvGdlbiAtPgovLyBJbXBv
cnRlciBwYXJzZWQgVGFiLWdldHJlbm50ZW4gVGV4dCBhbHMgU2NoaWNodGNvZGUtTWF0cml4IG1p
dCBQZXJzb25lbi0KLy8gTWF0Y2ggKyBLb25mbGlrdC1Fcmtlbm51bmcgKyBNYXBwaW5nLURpYWxv
ZykuCgppbXBvcnQgeyBaIH0gZnJvbSAnLi4vY29yZS9zdGF0ZS5qcyc7CmltcG9ydCB7CiAgICBl
c2NhcGVIVE1MLCBlc2NhcGVBdHRyLCBkYXR1bVN0ciwgZGF0dW1Gb3JtYXRERSwKICAgIHBlcnNv
bk5hbWUsIHBlcnNvblZvbGxOYW1lCn0gZnJvbSAnLi4vY29yZS91dGlsLmpzJzsKaW1wb3J0IHsg
YXBpLCBhcGlQb3N0LCBhcGlQdXQgfSBmcm9tICcuLi9jb3JlL2FwaS5qcyc7CmltcG9ydCB7IHRv
YXN0IH0gZnJvbSAnLi4vdWkvdG9hc3QuanMnOwppbXBvcnQgeyBtb2RhbFplaWdlbiwgbW9kYWxT
Y2hsaWVzc2VuLCBiZXN0YWV0aWdlbiB9IGZyb20gJy4uL3VpL21vZGFsLmpzJzsKCi8vIGFkbWlu
UmVuZGVybiAtPiBqcy9hZG1pbi9hZG1pbi5qcwoKLy8gd3RLdXJ6TmFtZW4gKyBtYXJrZXJfQUJD
ICsgcm90YXRpb24qICsgamFocmVzc3RhcnRXb2NoZSogLT4ganMvYWRtaW4vcm90YXRpb24taGVh
ZGVyLmpzCgovLyA9PT09PSBGTEQ6IFNjaGljaHQtSW1wb3J0IChQYXN0ZSBhdXMgRXhjZWwpID09
PT09CnZhciBpbXBvcnRTdGF0ZSA9IG51bGw7ICAvLyBoYWVsdCBnZXBhcnN0ZSBEYXRlbiB6d2lz
Y2hlbiAiQW5hbHlzaWVyZW4iIHVuZCAiVWViZXJuZWhtZW4iCgpleHBvcnQgZnVuY3Rpb24gaW1w
b3J0SW5pdCgpIHsKICAgIHZhciBzZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wb3J0
LXN0YXJ0LXBlcnNvbicpOwogICAgaWYgKCFzZWwpIHJldHVybjsKICAgIHZhciBha3RpdmUgPSAo
Wi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24ocCkgeyByZXR1cm4gcC5h
a3RpdjsgfSkKICAgICAgICAuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiAoYS5wb3NpdGlv
biB8fCA5OTkpIC0gKGIucG9zaXRpb24gfHwgOTk5KTsgfSk7CiAgICBzZWwuaW5uZXJIVE1MID0g
YWt0aXZlLm1hcChmdW5jdGlvbihwKSB7CiAgICAgICAgcmV0dXJuICc8b3B0aW9uIHZhbHVlPSIn
ICsgcC5pZCArICciPicgKyBlc2NhcGVIVE1MKHBlcnNvblZvbGxOYW1lKHApKSArICc8L29wdGlv
bj4nOwogICAgfSkuam9pbignJyk7CgogICAgLy8gU3RhcnRkYXR1bSBkZWZhdWx0OiAwMS4wMS4g
ZGVzIFBsYW51bmdzamFocmVzCiAgICB2YXIgZGF0ZUlucCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpbXBvcnQtc3RhcnQtZGF0dW0nKTsKICAgIGlmIChkYXRlSW5wICYmICFkYXRlSW5wLnZh
bHVlKSB7CiAgICAgICAgZGF0ZUlucC52YWx1ZSA9IChaLmFkbWluLmphaHIgfHwgbmV3IERhdGUo
KS5nZXRGdWxsWWVhcigpKSArICctMDEtMDEnOwogICAgfQp9CgpleHBvcnQgZnVuY3Rpb24gaW1w
b3J0VGV4dFBhcnNlbih0ZXh0KSB7CiAgICAvLyBFeGNlbC1QYXN0ZTogWmVpbGVuIG1pdCBcbiwg
WmVsbGVuIG1pdCBcdC4gTGVlcmUgRW5kemVpbGVuIGlnbm9yaWVyZW4uCiAgICB2YXIgemVpbGVu
ID0gdGV4dC5yZXBsYWNlKC9cci9nLCAnJykuc3BsaXQoJ1xuJyk7CiAgICB3aGlsZSAoemVpbGVu
Lmxlbmd0aCAmJiAhemVpbGVuW3plaWxlbi5sZW5ndGggLSAxXS50cmltKCkpIHplaWxlbi5wb3Ao
KTsKICAgIHJldHVybiB6ZWlsZW4ubWFwKGZ1bmN0aW9uKHopIHsgcmV0dXJuIHouc3BsaXQoJ1x0
Jyk7IH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gaW1wb3J0QW5hbHlzaWVyZW4oKSB7CiAgICB2YXIg
dGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXBvcnQtdGV4dGFyZWEnKS52YWx1ZTsK
ICAgIHZhciBzdGF0dXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wb3J0LXN0YXR1cycp
OwogICAgdmFyIGVyZ2VibmlzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wb3J0LWVy
Z2VibmlzJyk7CiAgICBzdGF0dXMudGV4dENvbnRlbnQgPSAnJzsKICAgIGVyZ2VibmlzRWwuY2xh
c3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7CiAgICBlcmdlYm5pc0VsLmlubmVySFRNTCA9ICcnOwog
ICAgaW1wb3J0U3RhdGUgPSBudWxsOwoKICAgIGlmICghdGV4dC50cmltKCkpIHsgdG9hc3QoJ0Jp
dHRlIGVyc3QgRGF0ZW4gZWluZsO8Z2VuJywgJ3dhcm51bmcnKTsgcmV0dXJuOyB9CiAgICB2YXIg
emVpbGVuID0gaW1wb3J0VGV4dFBhcnNlbih0ZXh0KTsKICAgIGlmICghemVpbGVuLmxlbmd0aCkg
eyB0b2FzdCgnS2VpbmUgRGF0ZW4gZXJrYW5udCcsICd3YXJudW5nJyk7IHJldHVybjsgfQoKICAg
IHZhciBzdGFydERhdHVtU3RyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcG9ydC1zdGFy
dC1kYXR1bScpLnZhbHVlOwogICAgaWYgKCFzdGFydERhdHVtU3RyKSB7IHRvYXN0KCdTdGFydGRh
dHVtIGZlaGx0JywgJ3dhcm51bmcnKTsgcmV0dXJuOyB9CiAgICB2YXIgc3RhcnRQZXJzb25JZCA9
IHBhcnNlSW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXBvcnQtc3RhcnQtcGVyc29uJyku
dmFsdWUsIDEwKTsKICAgIGlmICghc3RhcnRQZXJzb25JZCkgeyB0b2FzdCgnRXJzdGUgUGVyc29u
IGZlaGx0JywgJ3dhcm51bmcnKTsgcmV0dXJuOyB9CgogICAgLy8gUGVyc29uZW4gc29ydGllcnQg
bmFjaCBwb3NpdGlvbiwgYWIgc3RhcnRQZXJzb25JZAogICAgdmFyIGFrdGl2ZSA9IChaLnBsYW51
bmcucGVyc29uZW4gfHwgW10pLmZpbHRlcihmdW5jdGlvbihwKSB7IHJldHVybiBwLmFrdGl2OyB9
KQogICAgICAgIC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIChhLnBvc2l0aW9uIHx8IDk5
OSkgLSAoYi5wb3NpdGlvbiB8fCA5OTkpOyB9KTsKICAgIHZhciBzdGFydElkeCA9IGFrdGl2ZS5m
aW5kSW5kZXgoZnVuY3Rpb24ocCkgeyByZXR1cm4gcC5pZCA9PT0gc3RhcnRQZXJzb25JZDsgfSk7
CiAgICBpZiAoc3RhcnRJZHggPCAwKSB7IHRvYXN0KCdTdGFydHBlcnNvbiBuaWNodCBpbiBMaXN0
ZSBnZWZ1bmRlbicsICdmZWhsZXInKTsgcmV0dXJuOyB9CiAgICBpZiAoYWt0aXZlLmxlbmd0aCAt
IHN0YXJ0SWR4IDwgemVpbGVuLmxlbmd0aCkgewogICAgICAgIGlmICghY29uZmlybSgnRGllIFBh
c3RlLURhdGVuIGhhYmVuICcgKyB6ZWlsZW4ubGVuZ3RoICsgJyBaZWlsZW4sIGFiIGRlciBTdGFy
dHBlcnNvbiBzdGVoZW4gYWJlciBudXIgbm9jaCAnICsgKGFrdGl2ZS5sZW5ndGggLSBzdGFydElk
eCkgKyAnIGFrdGl2ZSBQZXJzb25lbiBpbiBkZXIgSGllcmFyY2hpZS4gRm9ydGZhaHJlbiB1bmQg
bnVyIHNvIHZpZWxlIHp1b3JkbmVuIHdpZSBQZXJzb25lbiB2ZXJmw7xnYmFyIHNpbmQ/JykpIHJl
dHVybjsKICAgIH0KCiAgICAvLyBadW9yZG51bmc6IFplaWxlIGkgLT4gUGVyc29uIGFrdGl2ZVtz
dGFydElkeCArIGldCiAgICB2YXIgenVvcmRudW5nID0gW107CiAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHplaWxlbi5sZW5ndGggJiYgKHN0YXJ0SWR4ICsgaSkgPCBha3RpdmUubGVuZ3RoOyBpKysp
IHsKICAgICAgICB6dW9yZG51bmcucHVzaChha3RpdmVbc3RhcnRJZHggKyBpXSk7CiAgICB9Cgog
ICAgLy8gRGF0dW1zLU1hcHBpbmcKICAgIHZhciBzdGFydEQgPSBuZXcgRGF0ZShzdGFydERhdHVt
U3RyICsgJ1QwMDowMDowMCcpOwogICAgZnVuY3Rpb24gZGF0dW1CZWlTcGFsdGUocykgewogICAg
ICAgIHZhciBkID0gbmV3IERhdGUoc3RhcnREKTsKICAgICAgICBkLnNldERhdGUoZC5nZXREYXRl
KCkgKyBzKTsKICAgICAgICByZXR1cm4gZGF0dW1TdHIoZCk7CiAgICB9CgogICAgLy8gU2NoaWNo
dGNvZGUtU2V0IGF1cyBBZG1pbgogICAgdmFyIGNvZGVzID0gKFouYWRtaW4uc2NoaWNodGNvZGVz
IHx8IFtdKS5tYXAoZnVuY3Rpb24oYykgeyByZXR1cm4gYy5jb2RlOyB9KTsKICAgIHZhciBjb2Rl
U2V0ID0ge307CiAgICBjb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsgY29kZVNldFtjXSA9IHRy
dWU7IH0pOwoKICAgIC8vIFplbGxlbiBhbmFseXNpZXJlbgogICAgdmFyIGVpbnRyYWVnZSA9IFtd
OyAgLy8ge3BpZCwgZGF0dW0sIHdlcnQsIHBmbGljaHQsIHJvaFplbGxlLCBrb25mbGlrdH0KICAg
IHZhciBrb25mbGlrdGVNYXAgPSB7fTsgIC8vIHJvaC13ZXJ0IC0+IHsgYW56YWhsLCBiZWlzcGll
bCB9CiAgICB6dW9yZG51bmcuZm9yRWFjaChmdW5jdGlvbihwZXJzb24sIHppKSB7CiAgICAgICAg
dmFyIHplaWxlID0gemVpbGVuW3ppXSB8fCBbXTsKICAgICAgICB6ZWlsZS5mb3JFYWNoKGZ1bmN0
aW9uKHplbGxlLCBzaSkgewogICAgICAgICAgICB2YXIgcm9oID0gKHplbGxlIHx8ICcnKS50cmlt
KCk7CiAgICAgICAgICAgIGlmICghcm9oKSByZXR1cm47CiAgICAgICAgICAgIHZhciBwZmxpY2h0
ID0gZmFsc2U7CiAgICAgICAgICAgIHZhciB3ZXJ0ID0gcm9oOwogICAgICAgICAgICBpZiAoLyBY
JC8udGVzdCh3ZXJ0KSkgewogICAgICAgICAgICAgICAgcGZsaWNodCA9IHRydWU7CiAgICAgICAg
ICAgICAgICB3ZXJ0ID0gd2VydC5zbGljZSgwLCAtMikudHJpbSgpOwogICAgICAgICAgICB9CiAg
ICAgICAgICAgIHZhciBrb25mbGlrdCA9ICFjb2RlU2V0W3dlcnRdOwogICAgICAgICAgICBpZiAo
a29uZmxpa3QpIHsKICAgICAgICAgICAgICAgIGlmICgha29uZmxpa3RlTWFwW3JvaF0pIGtvbmZs
aWt0ZU1hcFtyb2hdID0geyBhbnphaGw6IDAsIHJvaFplbGxlOiByb2ggfTsKICAgICAgICAgICAg
ICAgIGtvbmZsaWt0ZU1hcFtyb2hdLmFuemFobCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAg
IGVpbnRyYWVnZS5wdXNoKHsKICAgICAgICAgICAgICAgIHBpZDogcGVyc29uLmlkLAogICAgICAg
ICAgICAgICAgcGVyc29uTmFtZTogcGVyc29uVm9sbE5hbWUocGVyc29uKSwKICAgICAgICAgICAg
ICAgIGRhdHVtOiBkYXR1bUJlaVNwYWx0ZShzaSksCiAgICAgICAgICAgICAgICByb2haZWxsZTog
cm9oLAogICAgICAgICAgICAgICAgd2VydDogd2VydCwKICAgICAgICAgICAgICAgIHBmbGljaHQ6
IHBmbGljaHQsCiAgICAgICAgICAgICAgICBrb25mbGlrdDoga29uZmxpa3QKICAgICAgICAgICAg
fSk7CiAgICAgICAgfSk7CiAgICB9KTsKCiAgICB2YXIga29uZmxpa3RlID0gT2JqZWN0LmtleXMo
a29uZmxpa3RlTWFwKS5tYXAoZnVuY3Rpb24oaykgeyByZXR1cm4ga29uZmxpa3RlTWFwW2tdOyB9
KTsKICAgIGtvbmZsaWt0ZS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGIuYW56YWhsIC0g
YS5hbnphaGw7IH0pOwoKICAgIGltcG9ydFN0YXRlID0geyBlaW50cmFlZ2U6IGVpbnRyYWVnZSwg
a29uZmxpa3RlOiBrb25mbGlrdGUsIHp1b3JkbnVuZzogenVvcmRudW5nLCBjb2RlczogY29kZXMg
fTsKICAgIGltcG9ydEVyZ2VibmlzUmVuZGVybigpOwogICAgc3RhdHVzLnRleHRDb250ZW50ID0g
ZWludHJhZWdlLmxlbmd0aCArICcgRWludHLDpGdlIGFuYWx5c2llcnQsICcgKyBrb25mbGlrdGUu
bGVuZ3RoICsgJyBLb25mbGlrdC1XZXJ0ZS4nOwp9CgpleHBvcnQgZnVuY3Rpb24gaW1wb3J0RXJn
ZWJuaXNSZW5kZXJuKCkgewogICAgaWYgKCFpbXBvcnRTdGF0ZSkgcmV0dXJuOwogICAgdmFyIGVs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcG9ydC1lcmdlYm5pcycpOwogICAgZWwuY2xh
c3NMaXN0LnJlbW92ZSgndmVyc3RlY2t0Jyk7CgogICAgdmFyIGUgPSBpbXBvcnRTdGF0ZS5laW50
cmFlZ2U7CiAgICB2YXIgayA9IGltcG9ydFN0YXRlLmtvbmZsaWt0ZTsKCiAgICAvLyBadXNhbW1l
bmZhc3N1bmcKICAgIHZhciB1bmlxUGlkcyA9IHt9OyBlLmZvckVhY2goZnVuY3Rpb24oeCkgeyB1
bmlxUGlkc1t4LnBpZF0gPSB0cnVlOyB9KTsKICAgIHZhciB1bmlxRGF0ZW4gPSB7fTsgZS5mb3JF
YWNoKGZ1bmN0aW9uKHgpIHsgdW5pcURhdGVuW3guZGF0dW1dID0gdHJ1ZTsgfSk7CiAgICB2YXIg
cGZsaWNodENvdW50ID0gZS5maWx0ZXIoZnVuY3Rpb24oeCkgeyByZXR1cm4geC5wZmxpY2h0OyB9
KS5sZW5ndGg7CgogICAgdmFyIGh0bWwgPSAnPGRpdiBjbGFzcz0iaW1wb3J0LXp1c2FtbWVuZmFz
c3VuZyIgc3R5bGU9InBhZGRpbmc6MTJweCAxNHB4OyBiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQt
YWx0KTsgYm9yZGVyLXJhZGl1czo4cHg7IG1hcmdpbi1ib3R0b206MTRweCI+JyArCiAgICAgICAg
JzxzdHJvbmc+JyArIGUubGVuZ3RoICsgJyBFaW50csOkZ2U8L3N0cm9uZz4g4oCUICcgKwogICAg
ICAgIE9iamVjdC5rZXlzKHVuaXFQaWRzKS5sZW5ndGggKyAnIFBlcnNvbmVuLCAnICsKICAgICAg
ICBPYmplY3Qua2V5cyh1bmlxRGF0ZW4pLmxlbmd0aCArICcgVGFnZSwgJyArCiAgICAgICAgcGZs
aWNodENvdW50ICsgJyBkYXZvbiBQZmxpY2h0LVNldHp1bmcgKFgtU3VmZml4KS4nICsKICAgICAg
ICAnPC9kaXY+JzsKCiAgICAvLyBLb25mbGlrdGUKICAgIGlmIChrLmxlbmd0aCA+IDApIHsKICAg
ICAgICBodG1sICs9ICc8aDMgc3R5bGU9ImNvbG9yOnZhcigtLWZhcmJlLWZlaGxlcik7IG1hcmdp
bjoxNnB4IDAgOHB4Ij4nICsgay5sZW5ndGggKyAnIHVuYmVrYW5udGUgV2VydGU8L2gzPicgKwog
ICAgICAgICAgICAnPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyBmb250LXNpemU6
MTJweDsgbWFyZ2luLWJvdHRvbToxMHB4Ij4nICsKICAgICAgICAgICAgJ0RpZXNlIFdlcnRlIGF1
cyBkZXIgUGFzdGUgc3RpbW1lbiBtaXQga2VpbmVtIGRlZmluaWVydGVuIFNjaGljaHRjb2RlIMO8
YmVyZWluLiAnICsKICAgICAgICAgICAgJ1fDpGhsZSBqZXdlaWxzLCB3aWUgZGFtaXQgdW1nZWdh
bmdlbiB3ZXJkZW4gc29sbDo8L3A+JyArCiAgICAgICAgICAgICc8dGFibGUgY2xhc3M9ImFkbWlu
LXRhYmVsbGUiIHN0eWxlPSJtYXgtd2lkdGg6NzAwcHg7IG1hcmdpbi1ib3R0b206MTRweCI+PHRo
ZWFkPjx0cj4nICsKICAgICAgICAgICAgJzx0aCBzdHlsZT0id2lkdGg6MTAwcHgiPlJvaC1XZXJ0
PC90aD48dGggc3R5bGU9IndpZHRoOjcwcHg7IHRleHQtYWxpZ246Y2VudGVyIj5BbnphaGw8L3Ro
PicgKwogICAgICAgICAgICAnPHRoPkFrdGlvbjwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT4nOwog
ICAgICAgIGsuZm9yRWFjaChmdW5jdGlvbihrZikgewogICAgICAgICAgICB2YXIgb3B0cyA9ICc8
b3B0aW9uIHZhbHVlPSJfX2lnbm9yaWVyZW5fXyI+RWludHLDpGdlIGlnbm9yaWVyZW4gKG5pY2h0
IGltcG9ydGllcmVuKTwvb3B0aW9uPic7CiAgICAgICAgICAgIG9wdHMgKz0gJzxvcHRpb24gdmFs
dWU9Il9fbGVlcl9fIj5aZWxsZSBsZWVyZW4gKFdlcnQgZW50ZmVybmVuKTwvb3B0aW9uPic7CiAg
ICAgICAgICAgIG9wdHMgKz0gJzxvcHRncm91cCBsYWJlbD0iQXVmIGV4aXN0aWVyZW5kZW4gQ29k
ZSBtYXBwZW4iPic7CiAgICAgICAgICAgIGltcG9ydFN0YXRlLmNvZGVzLmZvckVhY2goZnVuY3Rp
b24oYykgewogICAgICAgICAgICAgICAgb3B0cyArPSAnPG9wdGlvbiB2YWx1ZT0iJyArIGVzY2Fw
ZUF0dHIoYykgKyAnIj4nICsgZXNjYXBlSFRNTChjKSArICc8L29wdGlvbj4nOwogICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgb3B0cyArPSAnPC9vcHRncm91cD4nOwogICAgICAgICAgICBodG1s
ICs9ICc8dHI+JyArCiAgICAgICAgICAgICAgICAnPHRkPjxjb2RlPicgKyBlc2NhcGVIVE1MKGtm
LnJvaFplbGxlKSArICc8L2NvZGU+PC90ZD4nICsKICAgICAgICAgICAgICAgICc8dGQgc3R5bGU9
InRleHQtYWxpZ246Y2VudGVyIj4nICsga2YuYW56YWhsICsgJzwvdGQ+JyArCiAgICAgICAgICAg
ICAgICAnPHRkPjxzZWxlY3QgY2xhc3M9ImZvcm0taW5wdXQgaW1wb3J0LW1hcHBpbmciIGRhdGEt
cm9oPSInICsgZXNjYXBlQXR0cihrZi5yb2haZWxsZSkgKyAnIiBzdHlsZT0id2lkdGg6MTAwJSI+
JyArIG9wdHMgKyAnPC9zZWxlY3Q+PC90ZD4nICsKICAgICAgICAgICAgICAgICc8L3RyPic7CiAg
ICAgICAgfSk7CiAgICAgICAgaHRtbCArPSAnPC90Ym9keT48L3RhYmxlPic7CiAgICB9CgogICAg
Ly8gVm9yc2NoYXUgKGVyc3RlIDUwIEVpbnRyw6RnZSkKICAgIGh0bWwgKz0gJzxkZXRhaWxzIHN0
eWxlPSJtYXJnaW4tdG9wOjE0cHgiPjxzdW1tYXJ5IHN0eWxlPSJjdXJzb3I6cG9pbnRlcjsgZm9u
dC13ZWlnaHQ6NjAwIj5Wb3JzY2hhdSAoZXJzdGUgNTAgRWludHLDpGdlKTwvc3VtbWFyeT4nICsK
ICAgICAgICAnPHRhYmxlIGNsYXNzPSJhZG1pbi10YWJlbGxlIiBzdHlsZT0ibWFyZ2luLXRvcDo4
cHg7IG1heC13aWR0aDo3MDBweCI+PHRoZWFkPjx0cj4nICsKICAgICAgICAnPHRoPlBlcnNvbjwv
dGg+PHRoPkRhdHVtPC90aD48dGg+WmVsbGU8L3RoPjx0aD5XZXJ0PC90aD48dGg+UGZsaWNodDwv
dGg+PC90cj48L3RoZWFkPjx0Ym9keT4nOwogICAgZS5zbGljZSgwLCA1MCkuZm9yRWFjaChmdW5j
dGlvbih4KSB7CiAgICAgICAgdmFyIHdhcm4gPSB4LmtvbmZsaWt0ID8gJyBzdHlsZT0iY29sb3I6
dmFyKC0tZmFyYmUtZmVobGVyKSInIDogJyc7CiAgICAgICAgaHRtbCArPSAnPHRyJyArIHdhcm4g
KyAnPjx0ZD4nICsgZXNjYXBlSFRNTCh4LnBlcnNvbk5hbWUpICsgJzwvdGQ+PHRkPicgKyB4LmRh
dHVtICsgJzwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+PGNvZGU+JyArIGVzY2FwZUhUTUwoeC5y
b2haZWxsZSkgKyAnPC9jb2RlPjwvdGQ+JyArCiAgICAgICAgICAgICc8dGQ+JyArIGVzY2FwZUhU
TUwoeC53ZXJ0KSArICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWdu
OmNlbnRlciI+JyArICh4LnBmbGljaHQgPyAn4pyTJyA6ICcnKSArICc8L3RkPjwvdHI+JzsKICAg
IH0pOwogICAgaHRtbCArPSAnPC90Ym9keT48L3RhYmxlPjwvZGV0YWlscz4nOwoKICAgIGh0bWwg
Kz0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDsgZ2FwOjEycHg7IG1hcmdpbi10b3A6MjBweCI+
JyArCiAgICAgICAgJzxidXR0b24gaWQ9ImJ0bi1pbXBvcnQtdWViZXJuZWhtZW4iIGNsYXNzPSJi
dG4gYnRuLWVyZm9sZyI+w5xiZXJuZWhtZW4gKMO8YmVyc2NocmVpYnQgYmVzdGVoZW5kZSBFaW50
csOkZ2UhKTwvYnV0dG9uPicgKwogICAgICAgICc8L2Rpdj4nOwoKICAgIGVsLmlubmVySFRNTCA9
IGh0bWw7CgogICAgdmFyIGJ0blUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWltcG9y
dC11ZWJlcm5laG1lbicpOwogICAgaWYgKGJ0blUpIGJ0blUuYWRkRXZlbnRMaXN0ZW5lcignY2xp
Y2snLCBpbXBvcnRVZWJlcm5laG1lbik7Cn0KCmV4cG9ydCBmdW5jdGlvbiBpbXBvcnRVZWJlcm5l
aG1lbigpIHsKICAgIGlmICghaW1wb3J0U3RhdGUpIHJldHVybjsKICAgIC8vIE1hcHBpbmcgZnVl
ciBLb25mbGlrdGUgYXVzIGRlbiBEcm9wZG93bnMgZWluc2FtbWVsbgogICAgdmFyIG1hcHBpbmcg
PSB7fTsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbXBvcnQtbWFwcGluZycpLmZv
ckVhY2goZnVuY3Rpb24oc2VsKSB7CiAgICAgICAgbWFwcGluZ1tzZWwuZ2V0QXR0cmlidXRlKCdk
YXRhLXJvaCcpXSA9IHNlbC52YWx1ZTsKICAgIH0pOwoKICAgIC8vIEZpbmFsZSBEYXRlbiBhdWZi
YXVlbgogICAgdmFyIGVpbnRyYWVnZU91dCA9IHt9OyAgLy8gZGF0dW0gLT4gcGlkIC0+IHdlcnQK
ICAgIHZhciBwZmxpY2h0T3V0ID0ge307ICAgLy8gZGF0dW0gLT4gcGlkIC0+IHRydWUKICAgIHZh
ciBpZ25vcmllcnQgPSAwOwogICAgaW1wb3J0U3RhdGUuZWludHJhZWdlLmZvckVhY2goZnVuY3Rp
b24oeCkgewogICAgICAgIHZhciB3ZXJ0ID0geC53ZXJ0OwogICAgICAgIHZhciBwZmxpY2h0ID0g
eC5wZmxpY2h0OwogICAgICAgIGlmICh4LmtvbmZsaWt0KSB7CiAgICAgICAgICAgIHZhciBtID0g
bWFwcGluZ1t4LnJvaFplbGxlXTsKICAgICAgICAgICAgaWYgKG0gPT09ICdfX2lnbm9yaWVyZW5f
XycgfHwgbSA9PT0gdW5kZWZpbmVkKSB7IGlnbm9yaWVydCsrOyByZXR1cm47IH0KICAgICAgICAg
ICAgaWYgKG0gPT09ICdfX2xlZXJfXycpIHsgd2VydCA9ICcnOyB9CiAgICAgICAgICAgIGVsc2Ug
eyB3ZXJ0ID0gbTsgfQogICAgICAgIH0KICAgICAgICBpZiAoIXdlcnQpIHJldHVybjsKICAgICAg
ICBlaW50cmFlZ2VPdXRbeC5kYXR1bV0gPSBlaW50cmFlZ2VPdXRbeC5kYXR1bV0gfHwge307CiAg
ICAgICAgZWludHJhZWdlT3V0W3guZGF0dW1dW3gucGlkXSA9IHdlcnQ7CiAgICAgICAgaWYgKHBm
bGljaHQpIHsKICAgICAgICAgICAgcGZsaWNodE91dFt4LmRhdHVtXSA9IHBmbGljaHRPdXRbeC5k
YXR1bV0gfHwge307CiAgICAgICAgICAgIHBmbGljaHRPdXRbeC5kYXR1bV1beC5waWRdID0gdHJ1
ZTsKICAgICAgICB9CiAgICB9KTsKCiAgICB2YXIgYW56ID0gMDsKICAgIE9iamVjdC5rZXlzKGVp
bnRyYWVnZU91dCkuZm9yRWFjaChmdW5jdGlvbihkKSB7IGFueiArPSBPYmplY3Qua2V5cyhlaW50
cmFlZ2VPdXRbZF0pLmxlbmd0aDsgfSk7CgogICAgaWYgKCFjb25maXJtKGFueiArICcgRWludHLD
pGdlIHdlcmRlbiBnZXNjaHJpZWJlbiB1bmQgw7xiZXJzY2hyZWliZW4gYmVzdGVoZW5kZSBXZXJ0
ZS4gJyArIGlnbm9yaWVydCArICcgaWdub3JpZXJ0LlxuXG5Wb3JoZXIgbWFudWVsbCBlaW4gQmFj
a3VwIGVyc3RlbGxlbiFcblxuRm9ydGZhaHJlbj8nKSkgcmV0dXJuOwoKICAgIGFwaVBvc3QoJy9h
cGkvaW1wb3J0L3NjaGljaHRlbi91ZWJlcm5laG1lbicsIHsKICAgICAgICBlaW50cmFlZ2U6IGVp
bnRyYWVnZU91dCwKICAgICAgICBwZmxpY2h0OiBwZmxpY2h0T3V0CiAgICB9KS50aGVuKGZ1bmN0
aW9uKHIpIHsKICAgICAgICB0b2FzdChyLmVpbnRyYWVnZSArICcgRWludHLDpGdlIGltcG9ydGll
cnQgKCcgKyBpZ25vcmllcnQgKyAnIGlnbm9yaWVydCknLCAnZXJmb2xnJyk7CiAgICAgICAgaW1w
b3J0U3RhdGUgPSBudWxsOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXBvcnQt
ZXJnZWJuaXMnKS5jbGFzc0xpc3QuYWRkKCd2ZXJzdGVja3QnKTsKICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW1wb3J0LXRleHRhcmVhJykudmFsdWUgPSAnJzsKICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wb3J0LXN0YXR1cycpLnRleHRDb250ZW50ID0gJ0ZlcnRp
Zy4gUGxhbnVuZyB3aXJkIG5ldSBnZWxhZGVu4oCmJzsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeyBkYXRlbkxhZGVuKCk7IH0sIDcwMCk7CiAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7
IHRvYXN0KCdGZWhsZXI6ICcgKyBlLm1lc3NhZ2UsICdmZWhsZXInKTsgfSk7Cn0K
### FILE: js/logbuch/logbuch.js | 5528
Ly8gPT09IGxvZ2J1Y2gvbG9nYnVjaC5qcyA9PT0KLy8gTG9nYnVjaC1UYWI6IFNlcnZlci1zZWl0
aWdlcyDDhG5kZXJ1bmdzcHJvdG9rb2xsIG1pdCBGaWx0ZXIKLy8gKEFrdGlvbi1UeXAgKyBQZXJz
b24gKyBEYXR1bXNiZXJlaWNoICsgU3VjaGUpLgoKaW1wb3J0IHsgWiB9IGZyb20gJy4uL2NvcmUv
c3RhdGUuanMnOwppbXBvcnQgeyBlc2NhcGVIVE1MLCBlc2NhcGVBdHRyLCBkYXR1bUZvcm1hdERF
LCBwZXJzb25OYW1lIH0gZnJvbSAnLi4vY29yZS91dGlsLmpzJzsKaW1wb3J0IHsgYXBpIH0gZnJv
bSAnLi4vY29yZS9hcGkuanMnOwppbXBvcnQgeyB0b2FzdCB9IGZyb20gJy4uL3VpL3RvYXN0Lmpz
JzsKCi8vIGJhY2t1cEVyc3RlbGxlbiAtPiBqcy9hZG1pbi9hZG1pbi5qcwovLyBpbmZvRmVuc3Rl
clplaWdlbiAtPiBqcy9hZG1pbi9pbmZvLXJ0ZS5qcwoKLy8gPT09PT0gTG9nYnVjaCA9PT09PQoK
ZXhwb3J0IGZ1bmN0aW9uIGxvZ2J1Y2hMYWRlbigpIHsKICAgIHZhciB0Ym9keSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdsb2didWNoLXRib2R5Jyk7CiAgICB0Ym9keS5pbm5lckhUTUwgPSAn
PHRyPjx0ZCBjb2xzcGFuPSI0IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoyMHB4
Ij5MYWRlLi4uPC90ZD48L3RyPic7CgogICAgYXBpKCcvYXBpL2xvZ2J1Y2gnKS50aGVuKGZ1bmN0
aW9uKGRhdGVuKSB7CiAgICAgICAgaWYgKCFkYXRlbiB8fCAhZGF0ZW4ubGVuZ3RoKSB7CiAgICAg
ICAgICAgIHRib2R5LmlubmVySFRNTCA9ICc8dHI+PHRkIGNvbHNwYW49IjQiIHN0eWxlPSJ0ZXh0
LWFsaWduOmNlbnRlcjtwYWRkaW5nOjIwcHgiPktlaW5lIEVpbnRyw6RnZTwvdGQ+PC90cj4nOwog
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHZhciBwTWFwID0ge307CiAgICAg
ICAgKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihwKSB7IHBNYXBb
U3RyaW5nKHAuaWQpXSA9IHBlcnNvbk5hbWUocCkgKyAnLCAnICsgcC52b3JuYW1lOyB9KTsKCiAg
ICAgICAgdmFyIHNvcnRpZXJ0ID0gZGF0ZW4uc2xpY2UoKS5yZXZlcnNlKCk7CiAgICAgICAgdmFy
IGh0bWwgPSAnJzsKICAgICAgICBzb3J0aWVydC5mb3JFYWNoKGZ1bmN0aW9uKGUpIHsKICAgICAg
ICAgICAgdmFyIGRldGFpbHMgPSAnJzsKICAgICAgICAgICAgdmFyIHBlcnNvbkxhYmVsID0gZnVu
Y3Rpb24ocGlkKSB7IHJldHVybiBwTWFwW3BpZF0gfHwgKCdJRCAnICsgcGlkKTsgfTsKICAgICAg
ICAgICAgaWYgKGUuYWt0aW9uID09PSAnemVsbGUuZ2VhZW5kZXJ0JykgewogICAgICAgICAgICAg
ICAgZGV0YWlscyA9IHBlcnNvbkxhYmVsKGUucGVyc29uSWQpICsgJyBhbSAnICsgZGF0dW1Gb3Jt
YXRERShlLmRhdHVtKSArCiAgICAgICAgICAgICAgICAgICAgJzogPGNvZGU+JyArIGVzY2FwZUhU
TUwoZS5hbHRlcldlcnQgfHwgJ+KIhScpICsgJzwvY29kZT4gJnJhcnI7IDxjb2RlPicgKyBlc2Nh
cGVIVE1MKGUubmV1ZXJXZXJ0IHx8ICfiiIUnKSArICc8L2NvZGU+JzsKICAgICAgICAgICAgICAg
IGlmIChlLnBmbGljaHQpIGRldGFpbHMgKz0gJyA8c3BhbiBjbGFzcz0ibGItdGFnIGxiLXRhZy1w
ZmxpY2h0Ij5QZmxpY2h0PC9zcGFuPic7CiAgICAgICAgICAgICAgICBpZiAoZS5vdmVycmlkZSkg
ZGV0YWlscyArPSAnIDxzcGFuIGNsYXNzPSJsYi10YWcgbGItdGFnLW92ZXJyaWRlIj7DnGJlcnNj
aHJpZWJlbjwvc3Bhbj4nOwogICAgICAgICAgICB9IGVsc2UgaWYgKGUuYWt0aW9uID09PSAnZHNt
LmdlYWVuZGVydCcpIHsKICAgICAgICAgICAgICAgIGRldGFpbHMgPSAnRFNNIGFtICcgKyBkYXR1
bUZvcm1hdERFKGUuZGF0dW0pICsgJzogJyArIChlLmFrdGl2ID8gJzxzdHJvbmc+Z2VwZmxlZ3Q8
L3N0cm9uZz4nIDogJzxlbT56dXLDvGNrZ2VzZXR6dDwvZW0+Jyk7CiAgICAgICAgICAgIH0gZWxz
ZSBpZiAoZS5ha3Rpb24gPT09ICdrb21tZW50YXIuZ2VhZW5kZXJ0JykgewogICAgICAgICAgICAg
ICAgZGV0YWlscyA9ICdLb21tZW50YXIgenUgJyArIHBlcnNvbkxhYmVsKGUucGVyc29uSWQpICsg
JyBhbSAnICsgZGF0dW1Gb3JtYXRERShlLmRhdHVtKSArCiAgICAgICAgICAgICAgICAgICAgKGUu
dGV4dCA/ICc6IOKAnicgKyBlc2NhcGVIVE1MKGUudGV4dCkgKyAnIicgOiAnIChnZWzDtnNjaHQp
Jyk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5ha3Rpb24gPT09ICdwZmxpY2h0LmdlYWVuZGVy
dCcpIHsKICAgICAgICAgICAgICAgIGRldGFpbHMgPSAnUGZsaWNodC1TZXR6dW5nICcgKyBwZXJz
b25MYWJlbChlLnBlcnNvbklkKSArICcgYW0gJyArIGRhdHVtRm9ybWF0REUoZS5kYXR1bSkgKwog
ICAgICAgICAgICAgICAgICAgICc6ICcgKyAoZS5ha3RpdiA/ICc8c3Ryb25nPmFrdGl2aWVydDwv
c3Ryb25nPicgOiAnZGVha3RpdmllcnQnKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChlLmFrdGlv
biA9PT0gJ3BlcnNvbi5hbmdlbGVndCcpIHsKICAgICAgICAgICAgICAgIGRldGFpbHMgPSAnTmV1
ZSBQZXJzb246ICcgKyBlc2NhcGVIVE1MKGUubmFtZSB8fCBwZXJzb25MYWJlbChlLnBlcnNvbklk
KSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5ha3Rpb24gPT09ICdwZXJzb24uZ2VhZW5kZXJ0
JykgewogICAgICAgICAgICAgICAgZGV0YWlscyA9IHBlcnNvbkxhYmVsKGUucGVyc29uSWQpICsg
JyBnZcOkbmRlcnQnOwogICAgICAgICAgICB9IGVsc2UgaWYgKGUuYWt0aW9uID09PSAncGVyc29u
ZW4ucmVpaGVuZm9sZ2UuZ2VhZW5kZXJ0JykgewogICAgICAgICAgICAgICAgZGV0YWlscyA9ICdS
ZWloZW5mb2xnZSBkZXIgUGVyc29uZW4gZ2XDpG5kZXJ0JzsKICAgICAgICAgICAgfSBlbHNlIGlm
IChlLmFrdGlvbiA9PT0gJ3JvbGxlbi5hdXRvX3N5bmMnKSB7CiAgICAgICAgICAgICAgICBkZXRh
aWxzID0gJ0F1dG8tUm9sbGVuLVN5bmMgKCcgKyAoZS5hdXNsb2VzZXIgfHwgJz8nKSArICcpJyAr
CiAgICAgICAgICAgICAgICAgICAgKGUucGVyc29uSWQgPyAnIOKAlCBhdXNnZWzDtnN0IGR1cmNo
ICcgKyBwZXJzb25MYWJlbChlLnBlcnNvbklkKSA6ICcnKTsKICAgICAgICAgICAgfSBlbHNlIGlm
IChlLmFrdGlvbiA9PT0gJ21hbmlwdWxhdGlvbi5lcmthbm50JykgewogICAgICAgICAgICAgICAg
ZGV0YWlscyA9ICc8c3Ryb25nIHN0eWxlPSJjb2xvcjp2YXIoLS1mYXJiZS1mZWhsZXIpIj4nICsg
KGUuYW56YWhsIHx8ICc/JykgKyAnIE1hbmlwdWxhdGlvbihlbikgZXJrYW5udDwvc3Ryb25nPicg
KwogICAgICAgICAgICAgICAgICAgIChlLmJlaXNwaWVsICYmIGUuYmVpc3BpZWwuZGF0dW0gPyAn
ICh6LiBCLiAnICsgZGF0dW1Gb3JtYXRERShlLmJlaXNwaWVsLmRhdHVtKSArCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcsIElEICcgKyAoZS5i
ZWlzcGllbC5wZXJzb25JZCB8fCAnPycpICsgJyknIDogJycpOwogICAgICAgICAgICB9IGVsc2Ug
aWYgKGUuYWt0aW9uID09PSAnZGllbnN0cGxhbi5nZW5lcmllcnQnKSB7CiAgICAgICAgICAgICAg
ICBkZXRhaWxzID0gKGUudm9uIHx8ICcnKSArICcgYmlzICcgKyAoZS5iaXMgfHwgJycpICsgJyDi
gJQgJyArIChlLmVpbnRyYWVnZSB8fCAwKSArICcgRWludHLDpGdlJzsKICAgICAgICAgICAgfSBl
bHNlIGlmIChlLmFrdGlvbiA9PT0gJ2FkbWluLmdlYWVuZGVydCcpIHsKICAgICAgICAgICAgICAg
IGRldGFpbHMgPSAnQWRtaW4tS29uZmlndXJhdGlvbiBha3R1YWxpc2llcnQnICsgKGUuYmVyZWlj
aCA/ICcgKCcgKyBlc2NhcGVIVE1MKGUuYmVyZWljaCkgKyAnKScgOiAnJyk7CiAgICAgICAgICAg
IH0gZWxzZSBpZiAoZS5ha3Rpb24gPT09ICdiYWNrdXAuZXJzdGVsbHQnKSB7CiAgICAgICAgICAg
ICAgICBkZXRhaWxzID0gJ0JhY2t1cCBhbmdlbGVndCcgKyAoZS5kYXRlaSA/ICcgKCcgKyBlc2Nh
cGVIVE1MKGUuZGF0ZWkpICsgJyknIDogJycpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgZGV0YWlscyA9IGVzY2FwZUhUTUwoZS5ha3Rpb24gfHwgJycpOwogICAgICAgICAg
ICAgICAgaWYgKGUuYmVyZWljaCkgZGV0YWlscyArPSAnICgnICsgZXNjYXBlSFRNTChlLmJlcmVp
Y2gpICsgJyknOwogICAgICAgICAgICAgICAgaWYgKGUuZGF0dW0pICAgZGV0YWlscyArPSAnICZt
aWRkb3Q7ICcgKyBkYXR1bUZvcm1hdERFKGUuZGF0dW0pOwogICAgICAgICAgICAgICAgaWYgKGUu
cGVyc29uSWQpZGV0YWlscyArPSAnICZtaWRkb3Q7ICcgKyBwZXJzb25MYWJlbChlLnBlcnNvbklk
KTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgcm9sbGVCYWRnZSA9IGUucm9sbGUKICAg
ICAgICAgICAgICAgID8gJzxzcGFuIGNsYXNzPSJsYi1yb2xsZSBsYi1yb2xsZS0nICsgZXNjYXBl
QXR0cihlLnJvbGxlKSArICciPicgKyBlc2NhcGVIVE1MKGUucm9sbGUpICsgJzwvc3Bhbj4gJwog
ICAgICAgICAgICAgICAgOiAnJzsKICAgICAgICAgICAgaHRtbCArPSAnPHRyPicgKwogICAgICAg
ICAgICAgICAgJzx0ZCBzdHlsZT0id2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1l
cmljOnRhYnVsYXItbnVtcyI+JyArIGVzY2FwZUhUTUwoZS56ZWl0c3RlbXBlbCkgKyAnPC90ZD4n
ICsKICAgICAgICAgICAgICAgICc8dGQ+PGNvZGUgc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2NvbG9y
OnZhcigtLXRleHQtc2Vjb25kYXJ5KSI+JyArIGVzY2FwZUhUTUwoZS5ha3Rpb24gfHwgJycpICsg
JzwvY29kZT48L3RkPicgKwogICAgICAgICAgICAgICAgJzx0ZD4nICsgZGV0YWlscyArICc8L3Rk
PicgKwogICAgICAgICAgICAgICAgJzx0ZD4nICsgcm9sbGVCYWRnZSArIGVzY2FwZUhUTUwoZS5i
ZW51dHplciB8fCAnJykgKyAnPC90ZD48L3RyPic7CiAgICAgICAgfSk7CiAgICAgICAgdGJvZHku
aW5uZXJIVE1MID0gaHRtbDsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCkgewogICAgICAgIHRib2R5
LmlubmVySFRNTCA9ICc8dHI+PHRkIGNvbHNwYW49IjQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRl
cjtwYWRkaW5nOjIwcHgiPkZlaGxlciBiZWltIExhZGVuPC90ZD48L3RyPic7CiAgICB9KTsKfQoK
ZXhwb3J0IGZ1bmN0aW9uIGxvZ2J1Y2hGaWx0ZXJuKCkgewogICAgdmFyIHN1Y2hlID0gKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdsb2didWNoLXN1Y2hlJykudmFsdWUgfHwgJycpLnRvTG93ZXJD
YXNlKCk7CiAgICB2YXIgemVpbGVuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI2xvZ2J1
Y2gtdGJvZHkgdHInKTsKICAgIHplaWxlbi5mb3JFYWNoKGZ1bmN0aW9uKHRyKSB7CiAgICAgICAg
dHIuc3R5bGUuZGlzcGxheSA9IHRyLnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihz
dWNoZSkgPj0gMCA/ICcnIDogJ25vbmUnOwogICAgfSk7Cn0KCgoKZXhwb3J0IGZ1bmN0aW9uIGlu
aXRMb2didWNoTGlzdGVuZXJzKCkgewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ2J1
Y2gtc3VjaGUnKS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGxvZ2J1Y2hGaWx0ZXJuKTsKfQo=
### FILE: js/stats/statistik.js | 14818
Ly8gPT09IHN0YXRzL3N0YXRpc3Rpay5qcyA9PT0KLy8gU3RhdGlzdGlrLVRhYjogS1BJLUthY2hl
bG4sIERvbnV0LCBCYWxrZW5kaWFncmFtbSwgRmFpcm5lc3MsIE11c3Rlci1BbmFseXNlLAovLyBB
Yndlc2VuaGVpdHMtS2FjaGVsbiwgRGV0YWlsLVRhYmVsbGUuIFNlcnZlci1EYXRlbiBhdXMgL2Fw
aS9zdGF0aXN0aWsuCgppbXBvcnQgeyBaIH0gZnJvbSAnLi4vY29yZS9zdGF0ZS5qcyc7CmltcG9y
dCB7CiAgICBlc2NhcGVIVE1MLCBlc2NhcGVBdHRyLCBkYXR1bUZvcm1hdERFLCBtb25hdHNOYW1l
LAogICAgcGVyc29uTmFtZSwgcGVyc29uVm9sbE5hbWUKfSBmcm9tICcuLi9jb3JlL3V0aWwuanMn
OwppbXBvcnQgeyBhcGkgfSBmcm9tICcuLi9jb3JlL2FwaS5qcyc7CmltcG9ydCB7IHRvYXN0IH0g
ZnJvbSAnLi4vdWkvdG9hc3QuanMnOwppbXBvcnQgeyBkYXJmU3RhdEJlcmVpY2gsIGVmZklzdFN1
cGVyVXNlciB9IGZyb20gJy4uL2NvcmUvcGVybWlzc2lvbnMuanMnOwppbXBvcnQgeyBmZWF0dXJl
SXN0QWt0aXYgfSBmcm9tICcuLi9hZG1pbi9saXN0ZW4uanMnOwppbXBvcnQgeyBwZXJzb25EYXJm
U3RhdGlzdGlrIH0gZnJvbSAnLi4vYWRtaW4vcGVyc29uZW4uanMnOwoKLy8gbWFya2VyS29uZmln
KiArIGhlYWRlcktvbmZpZ1JlbmRlcm4gKyBjb3VudGVyS29uZmlnUmVuZGVybiAtPiBqcy9hZG1p
bi9yb3RhdGlvbi1oZWFkZXIuanMKLy8gRmFjaGF1ZnNpY2h0IC0+IGpzL2FkbWluL2xpc3Rlbi5q
cwoKLy8gPT09PT0gU3RhdGlzdGlrID09PT09Ci8vIEVpbmUgRkxELUluc3RhbnogcHJvIERpZW5z
dGdydXBwZSAoZWlnZW5lcyBMYXVmd2Vyaykg4oCUIGtlaW5lCi8vIGdydXBwZW51ZWJlcmdyZWlm
ZW5kZSBGaWx0ZXJ1bmcgbWVociBub2V0aWcuCgpleHBvcnQgZnVuY3Rpb24gc3RhdGlzdGlrTGFk
ZW4oKSB7CiAgICBhcGkoJy9hcGkvc3RhdGlzdGlrJykudGhlbihmdW5jdGlvbihkYXRlbikgewog
ICAgICAgIFouc3RhdGlzdGlrID0gZGF0ZW47CiAgICAgICAgc3RhdGlzdGlrUmVuZGVybigpOwog
ICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2FzdCgnRmVobGVyIGJlaW0gTGFkZW4gZGVyIFN0
YXRpc3RpazogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOyB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9u
IHN0YXRpc3Rpa1JlbmRlcm4oKSB7CiAgICBpZiAoIVouc3RhdGlzdGlrKSByZXR1cm47CiAgICB2
YXIgc3RhdHMgPSBaLnN0YXRpc3RpazsKCiAgICAvLyBLUEktS2FjaGVsbiArIFN1bW1lbgogICAg
dmFyIHN1bUYgPSAwLCBzdW1TID0gMCwgc3VtTiA9IDAsIHN1bUtyID0gMCwgc3VtVXJsID0gMCwg
c3VtV0UgPSAwLCBzdW1HZXMgPSAwOwogICAgc3RhdHMuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAg
ICAgICAgc3VtRiArPSBzLmZydWVoOyBzdW1TICs9IHMuc3BhZXQ7IHN1bU4gKz0gcy5uYWNodDsK
ICAgICAgICBzdW1LciArPSBzLmtyYW5rOyBzdW1VcmwgKz0gcy51cmxhdWI7IHN1bVdFICs9IHMu
d29jaGVuZW5kVGFnZTsgc3VtR2VzICs9IHMuZ2VzYW10OwogICAgfSk7CgogICAgdmFyIGtwaUVs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXQta3BpcycpOwogICAgaWYgKGtwaUVsKSB7
CiAgICAgICAgdmFyIGtwaU9uID0gZGFyZlN0YXRCZXJlaWNoKCdzdGF0S3BpcycpOwogICAgICAg
IGtwaUVsLnN0eWxlLmRpc3BsYXkgPSBrcGlPbiA/ICcnIDogJ25vbmUnOwogICAgICAgIGlmIChr
cGlPbikgewogICAgICAgICAgICBrcGlFbC5pbm5lckhUTUwgPQogICAgICAgICAgICAgICAga3Bp
S2FydGUoc3RhdHMubGVuZ3RoLCAnUGVyc29uZW4nLCAndmFyKC0tdGV4dC1oZWFkaW5nKScpICsK
ICAgICAgICAgICAgICAgIGtwaUthcnRlKHN1bUdlcywgJ0RpZW5zdGUgZ2VzYW10JywgJ3Zhcigt
LXRleHQtaGVhZGluZyknKSArCiAgICAgICAgICAgICAgICBrcGlLYXJ0ZShzdW1GLCAnRnLDvGhk
aWVuc3RlJywgJ3ZhcigtLWZhcmJlLWZydWVoKScpICsKICAgICAgICAgICAgICAgIGtwaUthcnRl
KHN1bVMsICdTcMOkdGRpZW5zdGUnLCAndmFyKC0tZmFyYmUtc3BhZXQpJykgKwogICAgICAgICAg
ICAgICAga3BpS2FydGUoc3VtTiwgJ05hY2h0ZGllbnN0ZScsICd2YXIoLS1mYXJiZS1uYWNodCkn
KSArCiAgICAgICAgICAgICAgICBrcGlLYXJ0ZShzdW1XRSwgJ1dFLURpZW5zdGUnLCAnIzhFNDRB
RCcpICsKICAgICAgICAgICAgICAgIGtwaUthcnRlKHN1bUtyLCAnS3Jhbmt0YWdlJywgJ3Zhcigt
LWZhcmJlLWZlaGxlciknKSArCiAgICAgICAgICAgICAgICBrcGlLYXJ0ZShzdW1VcmwsICdVcmxh
dWJzdGFnZScsICcjNUQ2RDdFJyk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIFNjaGljaHR2ZXJ0
ZWlsdW5nIChudXIgQmFsa2VuKQogICAgdmFyIGJhbGtlbkVsID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3N0YXQtY2hhcnQtYmFsa2VuJyk7CiAgICB2YXIgdmVydGVpbHVuZ1BhbmVsID0gYmFs
a2VuRWwgPyBiYWxrZW5FbC5jbG9zZXN0KCcuc3RhdC1wYW5lbCcpIDogbnVsbDsKICAgIGlmICh2
ZXJ0ZWlsdW5nUGFuZWwpIHsKICAgICAgICB2YXIgdmVydGVpbHVuZ09uID0gZGFyZlN0YXRCZXJl
aWNoKCdzdGF0U2NoaWNodHZlcnRlaWx1bmcnKTsKICAgICAgICB2ZXJ0ZWlsdW5nUGFuZWwuc3R5
bGUuZGlzcGxheSA9IHZlcnRlaWx1bmdPbiA/ICcnIDogJ25vbmUnOwogICAgICAgIGlmICh2ZXJ0
ZWlsdW5nT24pIGJhbGtlblJlbmRlcm4oc3RhdHMpOwogICAgfQoKICAgIC8vIEZhaXJuZXNzCiAg
ICB2YXIgZmFpcm5lc3NQYW5lbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0LWZhaXJu
ZXNzJyk7CiAgICBpZiAoZmFpcm5lc3NQYW5lbCkgewogICAgICAgIHZhciBmcCA9IGZhaXJuZXNz
UGFuZWwuY2xvc2VzdCgnLnN0YXQtcGFuZWwnKTsKICAgICAgICB2YXIgZnRPbiA9IGZlYXR1cmVJ
c3RBa3RpdignZmFpcm5lc3NBbnplaWdlJykgJiYgZGFyZlN0YXRCZXJlaWNoKCdzdGF0RmFpcm5l
c3MnKTsKICAgICAgICBpZiAoZnApIGZwLnN0eWxlLmRpc3BsYXkgPSBmdE9uID8gJycgOiAnbm9u
ZSc7CiAgICAgICAgaWYgKGZ0T24pIGZhaXJuZXNzUmVuZGVybihzdGF0cyk7CiAgICB9CgogICAg
Ly8gTXVzdGVyCiAgICB2YXIgbXVzdGVyUGFuZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c3RhdC1tdXN0ZXInKTsKICAgIGlmIChtdXN0ZXJQYW5lbCkgewogICAgICAgIHZhciBtcCA9IG11
c3RlclBhbmVsLmNsb3Nlc3QoJy5zdGF0LXBhbmVsJyk7CiAgICAgICAgdmFyIG11T24gPSBmZWF0
dXJlSXN0QWt0aXYoJ211c3RlckFuYWx5c2UnKSAmJiBkYXJmU3RhdEJlcmVpY2goJ3N0YXRNdXN0
ZXInKTsKICAgICAgICBpZiAobXApIG1wLnN0eWxlLmRpc3BsYXkgPSBtdU9uID8gJycgOiAnbm9u
ZSc7CiAgICAgICAgaWYgKG11T24pIG11c3RlckFuYWx5c2VSZW5kZXJuKHN0YXRzKTsKICAgIH0K
CiAgICAvLyBBYndlc2VuaGVpdGVuCiAgICB2YXIgYWJ3UGFuZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3RhdC1hYndlc2VuaGVpdCcpOwogICAgaWYgKGFid1BhbmVsKSB7CiAgICAgICAg
dmFyIGFwID0gYWJ3UGFuZWwuY2xvc2VzdCgnLnN0YXQtcGFuZWwnKTsKICAgICAgICB2YXIgYWJ3
T24gPSBmZWF0dXJlSXN0QWt0aXYoJ2Fid2VzZW5oZWl0S2FjaGVsbicpICYmIGRhcmZTdGF0QmVy
ZWljaCgnc3RhdEFid2VzZW5oZWl0Jyk7CiAgICAgICAgaWYgKGFwKSBhcC5zdHlsZS5kaXNwbGF5
ID0gYWJ3T24gPyAnJyA6ICdub25lJzsKICAgICAgICBpZiAoYWJ3T24pIGFid2VzZW5oZWl0UmVu
ZGVybihzdGF0cyk7CiAgICB9CgogICAgLy8gRGV0YWlsdGFiZWxsZQogICAgdmFyIGRldGFpbEVs
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnN0YXQtZGV0YWlscycpOwogICAgaWYgKGRldGFp
bEVsKSB7CiAgICAgICAgdmFyIGR0T24gPSBmZWF0dXJlSXN0QWt0aXYoJ2RldGFpbFRhYmVsbGUn
KSAmJiBkYXJmU3RhdEJlcmVpY2goJ3N0YXREZXRhaWxUYWJlbGxlJyk7CiAgICAgICAgZGV0YWls
RWwuc3R5bGUuZGlzcGxheSA9IGR0T24gPyAnJyA6ICdub25lJzsKICAgICAgICBpZiAoZHRPbikg
ZGV0YWlsVGFiZWxsZVJlbmRlcm4oc3RhdHMpOwogICAgfQp9CgpleHBvcnQgZnVuY3Rpb24ga3Bp
S2FydGUod2VydCwgbGFiZWwsIGZhcmJlKSB7CiAgICByZXR1cm4gJzxkaXYgY2xhc3M9InN0YXQt
a3BpIj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0ic3RhdC1rcGktd2VydCIgc3R5bGU9ImNvbG9y
OicgKyBmYXJiZSArICciPicgKyB3ZXJ0ICsgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNz
PSJzdGF0LWtwaS1sYWJlbCI+JyArIGxhYmVsICsgJzwvZGl2PjwvZGl2Pic7Cn0KCmV4cG9ydCBm
dW5jdGlvbiBiYWxrZW5SZW5kZXJuKHN0YXRzKSB7CiAgICB2YXIgbWF4R2VzYW10ID0gTWF0aC5t
YXguYXBwbHkobnVsbCwgc3RhdHMubWFwKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMuZ2VzYW10IHx8
IDE7IH0pKTsKICAgIHZhciBodG1sID0gJyc7CiAgICBzdGF0cy5mb3JFYWNoKGZ1bmN0aW9uKHMp
IHsKICAgICAgICB2YXIgZkIgPSAocy5mcnVlaCAvIChtYXhHZXNhbXQgfHwgMSkpICogMTAwOwog
ICAgICAgIHZhciBzQiA9IChzLnNwYWV0IC8gKG1heEdlc2FtdCB8fCAxKSkgKiAxMDA7CiAgICAg
ICAgdmFyIG5CID0gKHMubmFjaHQgLyAobWF4R2VzYW10IHx8IDEpKSAqIDEwMDsKICAgICAgICBo
dG1sICs9ICc8ZGl2IGNsYXNzPSJzdGF0LWJhbGtlbi16ZWlsZSI+JyArCiAgICAgICAgICAgICc8
ZGl2IGNsYXNzPSJzdGF0LWJhbGtlbi1uYW1lIiB0aXRsZT0iJyArIGVzY2FwZUF0dHIocy5uYW1l
KSArICciPicgKyBlc2NhcGVIVE1MKHMubmFtZSkgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8
ZGl2IGNsYXNzPSJzdGF0LWJhbGtlbi1iYXItd3JhcCI+JyArCiAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJzdGF0LWJhbGtlbi1zZWdtZW50IiBzdHlsZT0id2lkdGg6JyArIGZCICsgJyU7YmFja2dy
b3VuZDp2YXIoLS1mYXJiZS1mcnVlaCkiPicgKyAocy5mcnVlaCA+IDAgPyBzLmZydWVoIDogJycp
ICsgJzwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0ic3RhdC1iYWxrZW4tc2VnbWVu
dCIgc3R5bGU9IndpZHRoOicgKyBzQiArICclO2JhY2tncm91bmQ6dmFyKC0tZmFyYmUtc3BhZXQp
Ij4nICsgKHMuc3BhZXQgPiAwID8gcy5zcGFldCA6ICcnKSArICc8L2Rpdj4nICsKICAgICAgICAg
ICAgJzxkaXYgY2xhc3M9InN0YXQtYmFsa2VuLXNlZ21lbnQiIHN0eWxlPSJ3aWR0aDonICsgbkIg
KyAnJTtiYWNrZ3JvdW5kOnZhcigtLWZhcmJlLW5hY2h0KSI+JyArIChzLm5hY2h0ID4gMCA/IHMu
bmFjaHQgOiAnJykgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAg
ICAgJzxkaXYgY2xhc3M9InN0YXQtYmFsa2VuLXRvdGFsIj4nICsgcy5nZXNhbXQgKyAnPC9kaXY+
JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc3RhdC1jaGFydC1iYWxrZW4nKS5pbm5lckhUTUwgPQogICAgICAgICc8ZGl2IGNsYXNz
PSJzdGF0LWJhbGtlbi1jb250YWluZXIiPicgKyBodG1sICsgJzwvZGl2Pic7Cn0KCmV4cG9ydCBm
dW5jdGlvbiBmYWlybmVzc1JlbmRlcm4oc3RhdHMpIHsKICAgIHZhciByZWxldmFudCA9IHN0YXRz
LmZpbHRlcihmdW5jdGlvbihzKSB7IHJldHVybiBzLmdlc2FtdCA+IDU7IH0pOwogICAgaWYgKHJl
bGV2YW50Lmxlbmd0aCA9PT0gMCkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz
dGF0LWZhaXJuZXNzJykuaW5uZXJIVE1MID0gJzxwIGNsYXNzPSJ0ZXh0LW11dGVkIiBzdHlsZT0i
cGFkZGluZzoxNnB4O3RleHQtYWxpZ246Y2VudGVyIj5OaWNodCBnZW7DvGdlbmQgRGF0ZW48L3A+
JzsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB2YXIgc3VtV0UgPSAwLCBzdW1GVCA9IDA7CiAg
ICByZWxldmFudC5mb3JFYWNoKGZ1bmN0aW9uKHMpIHsgc3VtV0UgKz0gcy53b2NoZW5lbmRUYWdl
OyBzdW1GVCArPSBzLmZlaWVydGFnVGFnZTsgfSk7CiAgICB2YXIgYXZnV0UgPSBzdW1XRSAvIHJl
bGV2YW50Lmxlbmd0aDsKICAgIHZhciBhdmdGVCA9IHN1bUZUIC8gcmVsZXZhbnQubGVuZ3RoOwog
ICAgdmFyIG1heFdFID0gTWF0aC5tYXguYXBwbHkobnVsbCwgcmVsZXZhbnQubWFwKGZ1bmN0aW9u
KHMpIHsgcmV0dXJuIHMud29jaGVuZW5kVGFnZTsgfSkpIHx8IDE7CiAgICB2YXIgbWF4RlQgPSBN
YXRoLm1heC5hcHBseShudWxsLCByZWxldmFudC5tYXAoZnVuY3Rpb24ocykgeyByZXR1cm4gcy5m
ZWllcnRhZ1RhZ2U7IH0pKSB8fCAxOwoKICAgIGZ1bmN0aW9uIGZLbGFzc2UodywgYXZnKSB7CiAg
ICAgICAgaWYgKGF2ZyA9PT0gMCkgcmV0dXJuICdmYWlybmVzcy1uZXV0cmFsJzsKICAgICAgICB2
YXIgciA9IE1hdGguYWJzKHcgLSBhdmcpIC8gYXZnOwogICAgICAgIHJldHVybiByIDw9IDAuMiA/
ICdmYWlybmVzcy1vaycgOiByIDw9IDAuNSA/ICdmYWlybmVzcy13YXJudW5nJyA6ICdmYWlybmVz
cy1rcml0aXNjaCc7CiAgICB9CgogICAgdmFyIGh0bWwgPSAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mt
Y29tcGFjdCI+JzsKICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9ImZhaXJuZXNzLXJvdyBmYWlybmVz
cy1oZWFkZXIiPjxzcGFuPldFLURpZW5zdGU8L3NwYW4+PHNwYW4gc3R5bGU9InRleHQtYWxpZ246
Y2VudGVyIj5cdTAwRDggJyArIGF2Z1dFLnRvRml4ZWQoMSkgKyAnPC9zcGFuPjxzcGFuPjwvc3Bh
bj48L2Rpdj4nOwogICAgcmVsZXZhbnQuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiBiLndv
Y2hlbmVuZFRhZ2UgLSBhLndvY2hlbmVuZFRhZ2U7IH0pLmZvckVhY2goZnVuY3Rpb24ocykgewog
ICAgICAgIHZhciBwY3QgPSBtYXhXRSA+IDAgPyAocy53b2NoZW5lbmRUYWdlIC8gbWF4V0UpICog
MTAwIDogMDsKICAgICAgICB2YXIgYXZnUGN0ID0gbWF4V0UgPiAwID8gKGF2Z1dFIC8gbWF4V0Up
ICogMTAwIDogMDsKICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJmYWlybmVzcy1yb3ciPicg
KwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mtcm93LW5hbWUiIHRpdGxlPSInICsg
ZXNjYXBlQXR0cihzLm5hbWUpICsgJyI+JyArIGVzY2FwZUhUTUwocy5uYW1lKSArICc8L2Rpdj4n
ICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZhaXJuZXNzLXJvdy1iYXIiPjxkaXYgY2xhc3M9
ImZhaXJuZXNzLXJvdy1hdmciIHN0eWxlPSJsZWZ0OicgKyBhdmdQY3QgKyAnJSI+PC9kaXY+JyAr
CiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmYWlybmVzcy1yb3ctZmlsbCAnICsgZktsYXNzZShz
LndvY2hlbmVuZFRhZ2UsIGF2Z1dFKSArICciIHN0eWxlPSJ3aWR0aDonICsgcGN0ICsgJyUiPjwv
ZGl2PjwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mtcm93LXZhbCI+
JyArIHMud29jaGVuZW5kVGFnZSArICc8L2Rpdj48L2Rpdj4nOwogICAgfSk7CgogICAgaHRtbCAr
PSAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mtcm93IGZhaXJuZXNzLWhlYWRlciIgc3R5bGU9Im1hcmdp
bi10b3A6OHB4Ij48c3Bhbj5GVC1EaWVuc3RlPC9zcGFuPjxzcGFuIHN0eWxlPSJ0ZXh0LWFsaWdu
OmNlbnRlciI+XHUwMEQ4ICcgKyBhdmdGVC50b0ZpeGVkKDEpICsgJzwvc3Bhbj48c3Bhbj48L3Nw
YW4+PC9kaXY+JzsKICAgIHJlbGV2YW50LnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYi5m
ZWllcnRhZ1RhZ2UgLSBhLmZlaWVydGFnVGFnZTsgfSkuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAg
ICAgICAgdmFyIHBjdCA9IG1heEZUID4gMCA/IChzLmZlaWVydGFnVGFnZSAvIG1heEZUKSAqIDEw
MCA6IDA7CiAgICAgICAgdmFyIGF2Z1BjdCA9IG1heEZUID4gMCA/IChhdmdGVCAvIG1heEZUKSAq
IDEwMCA6IDA7CiAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mtcm93Ij4nICsK
ICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZhaXJuZXNzLXJvdy1uYW1lIiB0aXRsZT0iJyArIGVz
Y2FwZUF0dHIocy5uYW1lKSArICciPicgKyBlc2NhcGVIVE1MKHMubmFtZSkgKyAnPC9kaXY+JyAr
CiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmYWlybmVzcy1yb3ctYmFyIj48ZGl2IGNsYXNzPSJm
YWlybmVzcy1yb3ctYXZnIiBzdHlsZT0ibGVmdDonICsgYXZnUGN0ICsgJyUiPjwvZGl2PicgKwog
ICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mtcm93LWZpbGwgJyArIGZLbGFzc2Uocy5m
ZWllcnRhZ1RhZ2UsIGF2Z0ZUKSArICciIHN0eWxlPSJ3aWR0aDonICsgcGN0ICsgJyUiPjwvZGl2
PjwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mtcm93LXZhbCI+JyAr
IHMuZmVpZXJ0YWdUYWdlICsgJzwvZGl2PjwvZGl2Pic7CiAgICB9KTsKICAgIGh0bWwgKz0gJzwv
ZGl2Pic7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdC1mYWlybmVzcycpLmlubmVy
SFRNTCA9IGh0bWw7Cn0KCmV4cG9ydCBmdW5jdGlvbiBtdXN0ZXJBbmFseXNlUmVuZGVybihzdGF0
cykgewogICAgdmFyIG11c3RlciA9IFtdOwogICAgdmFyIHN1bUdlc2FtdCA9IDAsIHN1bVdFID0g
MCwgbiA9IHN0YXRzLmxlbmd0aCB8fCAxOwogICAgc3RhdHMuZm9yRWFjaChmdW5jdGlvbihzKSB7
IHN1bUdlc2FtdCArPSBzLmdlc2FtdDsgc3VtV0UgKz0gcy53b2NoZW5lbmRUYWdlOyB9KTsKICAg
IHZhciBhdmdHZXNhbXQgPSBzdW1HZXNhbXQgLyBuLCBhdmdXRSA9IHN1bVdFIC8gbjsKCiAgICBz
dGF0cy5mb3JFYWNoKGZ1bmN0aW9uKHMpIHsKICAgICAgICBpZiAocy5nZXNhbXQgPiBhdmdHZXNh
bXQgKiAxLjMgJiYgcy5nZXNhbXQgPiA1KQogICAgICAgICAgICBtdXN0ZXIucHVzaCh7IHR5cDog
J3dhcm51bmcnLCB0ZXh0OiAnPHN0cm9uZz4nICsgZXNjYXBlSFRNTChzLm5hbWUpICsgJzwvc3Ry
b25nPiDigJQgw7xiZXJkdXJjaHNjaG5pdHRsaWNoIHZpZWxlIERpZW5zdGUgKCcgKyBzLmdlc2Ft
dCArICcgdnMuIFx1MDBEOCAnICsgTWF0aC5yb3VuZChhdmdHZXNhbXQpICsgJyknIH0pOwogICAg
ICAgIGlmIChzLmdlc2FtdCA8IGF2Z0dlc2FtdCAqIDAuNyAmJiBhdmdHZXNhbXQgPiA1KQogICAg
ICAgICAgICBtdXN0ZXIucHVzaCh7IHR5cDogJ2luZm8nLCB0ZXh0OiAnPHN0cm9uZz4nICsgZXNj
YXBlSFRNTChzLm5hbWUpICsgJzwvc3Ryb25nPiDigJQgd2VuaWdlIERpZW5zdGUgKCcgKyBzLmdl
c2FtdCArICcgdnMuIFx1MDBEOCAnICsgTWF0aC5yb3VuZChhdmdHZXNhbXQpICsgJyknIH0pOwog
ICAgfSk7CiAgICBzdGF0cy5mb3JFYWNoKGZ1bmN0aW9uKHMpIHsKICAgICAgICBpZiAocy53b2No
ZW5lbmRUYWdlID09PSAwICYmIHMuZ2VzYW10ID4gNSkKICAgICAgICAgICAgbXVzdGVyLnB1c2go
eyB0eXA6ICd3YXJudW5nJywgdGV4dDogJzxzdHJvbmc+JyArIGVzY2FwZUhUTUwocy5uYW1lKSAr
ICc8L3N0cm9uZz4g4oCUIGtlaW4gV29jaGVuZW5kZGllbnN0JyB9KTsKICAgICAgICBpZiAocy53
b2NoZW5lbmRUYWdlID4gYXZnV0UgKiAxLjUgJiYgcy53b2NoZW5lbmRUYWdlID4gMykKICAgICAg
ICAgICAgbXVzdGVyLnB1c2goeyB0eXA6ICd3YXJudW5nJywgdGV4dDogJzxzdHJvbmc+JyArIGVz
Y2FwZUhUTUwocy5uYW1lKSArICc8L3N0cm9uZz4g4oCUIHZpZWxlIFdFLURpZW5zdGUgKCcgKyBz
LndvY2hlbmVuZFRhZ2UgKyAnKScgfSk7CiAgICB9KTsKICAgIHN0YXRzLmZvckVhY2goZnVuY3Rp
b24ocykgewogICAgICAgIGlmIChzLmdlc2FtdCA8IDYpIHJldHVybjsKICAgICAgICBpZiAocy5u
YWNodCAvIHMuZ2VzYW10IDwgMC4xICYmIHMuZ2VzYW10ID4gMTApCiAgICAgICAgICAgIG11c3Rl
ci5wdXNoKHsgdHlwOiAnaW5mbycsIHRleHQ6ICc8c3Ryb25nPicgKyBlc2NhcGVIVE1MKHMubmFt
ZSkgKyAnPC9zdHJvbmc+IOKAlCBrYXVtIE5hY2h0ZGllbnN0ZSAoJyArIHMubmFjaHQgKyAnLycg
KyBzLmdlc2FtdCArICcpJyB9KTsKICAgICAgICBpZiAocy5mcnVlaCAvIHMuZ2VzYW10ID4gMC42
KQogICAgICAgICAgICBtdXN0ZXIucHVzaCh7IHR5cDogJ2luZm8nLCB0ZXh0OiAnPHN0cm9uZz4n
ICsgZXNjYXBlSFRNTChzLm5hbWUpICsgJzwvc3Ryb25nPiDigJQgJyArIE1hdGgucm91bmQocy5m
cnVlaCAvIHMuZ2VzYW10ICogMTAwKSArICclIEZyw7xoZGllbnN0JyB9KTsKICAgIH0pOwogICAg
c3RhdHMuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgaWYgKHMua3JhbmsgPiAxMCkgbXVz
dGVyLnB1c2goeyB0eXA6ICd3YXJudW5nJywgdGV4dDogJzxzdHJvbmc+JyArIGVzY2FwZUhUTUwo
cy5uYW1lKSArICc8L3N0cm9uZz4g4oCUICcgKyBzLmtyYW5rICsgJyBLcmFua3RhZ2UnIH0pOwog
ICAgfSk7CgogICAgaWYgKG11c3Rlci5sZW5ndGggPT09IDApCiAgICAgICAgbXVzdGVyLnB1c2go
eyB0eXA6ICdlcmZvbGcnLCB0ZXh0OiAnS2VpbmUgYXVmZsOkbGxpZ2VuIE11c3RlciDigJQgVmVy
dGVpbHVuZyBpc3QgYXVzZ2VnbGljaGVuLicgfSk7CgogICAgdmFyIHdhcm5Db3VudCA9IG11c3Rl
ci5maWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1cm4gbS50eXAgPT09ICd3YXJudW5nJzsgfSkubGVu
Z3RoOwogICAgdmFyIGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXQtbXVzdGVy
LWJhZGdlJyk7CiAgICBpZiAod2FybkNvdW50ID4gMCkgewogICAgICAgIGJhZGdlLnRleHRDb250
ZW50ID0gd2FybkNvdW50OwogICAgICAgIGJhZGdlLmNsYXNzTmFtZSA9ICdzdGF0LWJhZGdlJzsK
ICAgIH0gZWxzZSB7CiAgICAgICAgYmFkZ2UudGV4dENvbnRlbnQgPSAnXHUyNzEzJzsKICAgICAg
ICBiYWRnZS5jbGFzc05hbWUgPSAnc3RhdC1iYWRnZSBzdGF0LWJhZGdlLW9rJzsKICAgIH0KCiAg
ICB2YXIgaHRtbCA9ICcnOwogICAgbXVzdGVyLmZvckVhY2goZnVuY3Rpb24obSkgewogICAgICAg
IHZhciBpY29uID0gbS50eXAgPT09ICd3YXJudW5nJyA/ICchJyA6IChtLnR5cCA9PT0gJ2VyZm9s
ZycgPyAnXHUyNzEzJyA6ICdpJyk7CiAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0ibXVzdGVy
LWthcnRlIG11c3Rlci0nICsgbS50eXAgKyAnIj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9
Im11c3Rlci1pY29uIj4nICsgaWNvbiArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xh
c3M9Im11c3Rlci10ZXh0Ij4nICsgbS50ZXh0ICsgJzwvZGl2PjwvZGl2Pic7CiAgICB9KTsKICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0LW11c3RlcicpLmlubmVySFRNTCA9IGh0bWw7
Cn0KCmV4cG9ydCBmdW5jdGlvbiBhYndlc2VuaGVpdFJlbmRlcm4oc3RhdHMpIHsKICAgIHZhciB0
eXBlbiA9IFsKICAgICAgICB7IGtleTogJ2tyYW5rJywgbGFiZWw6ICdLcmFuaycsIGZhcmJlOiAn
I0MwMzkyQicsIGljb246ICdcdTI3MTYnIH0sCiAgICAgICAgeyBrZXk6ICd1cmxhdWInLCBsYWJl
bDogJ1VybGF1YicsIGZhcmJlOiAnIzVENkQ3RScsIGljb246ICdcdTI3MDgnIH0sCiAgICAgICAg
eyBrZXk6ICdsZWhyZ2FuZycsIGxhYmVsOiAnTGVocmdhbmcnLCBmYXJiZTogJyM3RTU3QzInLCBp
Y29uOiAnXHUyMzAyJyB9LAogICAgICAgIHsga2V5OiAnYXpBdXNnbGVpY2gnLCBsYWJlbDogJ0Fa
LUF1c2dsZWljaCcsIGZhcmJlOiAnIzVDOUVBRCcsIGljb246ICdcdTIzRjEnIH0KICAgIF07Cgog
ICAgdmFyIGh0bWwgPSAnPGRpdiBjbGFzcz0iYWJ3LWdyaWQiPic7CiAgICB0eXBlbi5mb3JFYWNo
KGZ1bmN0aW9uKHQpIHsKICAgICAgICB2YXIgdG90YWwgPSAwOwogICAgICAgIHZhciBwZXJzb25l
biA9IFtdOwogICAgICAgIHN0YXRzLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgICAgICB2
YXIgdyA9IHNbdC5rZXldIHx8IDA7CiAgICAgICAgICAgIGlmICh3ID4gMCkgewogICAgICAgICAg
ICAgICAgdG90YWwgKz0gdzsKICAgICAgICAgICAgICAgIHBlcnNvbmVuLnB1c2goeyBuYW1lOiBz
Lm5hbWUsIHRhZ2U6IHcgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBwZXJz
b25lbi5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGIudGFnZSAtIGEudGFnZTsgfSk7Cgog
ICAgICAgIHZhciBkZXRhaWxIdG1sID0gJyc7CiAgICAgICAgaWYgKHQua2V5ID09PSAna3Jhbmsn
KSB7CiAgICAgICAgICAgIHN0YXRzLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgICAgICAg
ICAgaWYgKCFzLmtyYW5rUGVyaW9kZW4gfHwgIXMua3JhbmtQZXJpb2Rlbi5sZW5ndGgpIHJldHVy
bjsKICAgICAgICAgICAgICAgIHMua3JhbmtQZXJpb2Rlbi5mb3JFYWNoKGZ1bmN0aW9uKHApIHsK
ICAgICAgICAgICAgICAgICAgICB2YXIgdm9uID0gbmV3IERhdGUocC52b24gKyAnVDAwOjAwOjAw
Jyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGJpcyA9IG5ldyBEYXRlKHAuYmlzICsgJ1QwMDow
MDowMCcpOwogICAgICAgICAgICAgICAgICAgIHZhciB0YWdlID0gTWF0aC5yb3VuZCgoYmlzIC0g
dm9uKSAvIDg2NDAwMDAwKSArIDE7CiAgICAgICAgICAgICAgICAgICAgZGV0YWlsSHRtbCArPSAn
PGRpdiBzdHlsZT0icGFkZGluZzoycHggMCI+JyArIGVzY2FwZUhUTUwocy5uYW1lKSArICc6ICcg
KwogICAgICAgICAgICAgICAgICAgICAgICBkYXR1bUZvcm1hdERFKHAudm9uKSArICfigJMnICsg
ZGF0dW1Gb3JtYXRERShwLmJpcykgKyAnICgnICsgdGFnZSArICdUKTwvZGl2Pic7CiAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgdG9wSHRt
bCA9ICcnOwogICAgICAgIHBlcnNvbmVuLnNsaWNlKDAsIDUpLmZvckVhY2goZnVuY3Rpb24ocCkg
ewogICAgICAgICAgICB0b3BIdG1sICs9ICc8ZGl2IHN0eWxlPSJwYWRkaW5nOjFweCAwIj4nICsg
ZXNjYXBlSFRNTChwZXJzb25OYW1lKHApKSArICc6ICcgKyBwLnRhZ2UgKyAnVDwvZGl2Pic7CiAg
ICAgICAgfSk7CiAgICAgICAgaWYgKHBlcnNvbmVuLmxlbmd0aCA+IDUpIHRvcEh0bWwgKz0gJzxk
aXYgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpIj4rJyArIChwZXJzb25lbi5sZW5ndGgg
LSA1KSArICcgd2VpdGVyZTwvZGl2Pic7CgogICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9ImFi
dy1rYXJ0ZSIgb25jbGljaz0idGhpcy5jbGFzc0xpc3QudG9nZ2xlKFwnb2ZmZW5cJykiPicgKwog
ICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWJ3LWthcnRlLWljb24iIHN0eWxlPSJjb2xvcjonICsg
dC5mYXJiZSArICciPicgKyB0Lmljb24gKyAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJhYncta2FydGUtd2VydCIgc3R5bGU9ImNvbG9yOicgKyB0LmZhcmJlICsgJyI+JyArIHRv
dGFsICsgJzwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWJ3LWthcnRlLWxhYmVs
Ij4nICsgdC5sYWJlbCArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImFidy1r
YXJ0ZS1kZXRhaWwiPicgKyBwZXJzb25lbi5sZW5ndGggKyAnIFBlcnNvbicgKyAocGVyc29uZW4u
bGVuZ3RoICE9PSAxID8gJ2VuJyA6ICcnKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9ImFidy1wZXJzb25lbiI+JyArIChkZXRhaWxIdG1sIHx8IHRvcEh0bWwpICsgJzwvZGl2
PicgKwogICAgICAgICAgICAnPC9kaXY+JzsKICAgIH0pOwogICAgaHRtbCArPSAnPC9kaXY+JzsK
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0LWFid2VzZW5oZWl0JykuaW5uZXJIVE1M
ID0gaHRtbDsKfQoKZXhwb3J0IGZ1bmN0aW9uIGRldGFpbFRhYmVsbGVSZW5kZXJuKHN0YXRzKSB7
CiAgICB2YXIgaHRtbCA9ICcnOwogICAgc3RhdHMuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAg
ICAgaHRtbCArPSAnPHRyPicgKwogICAgICAgICAgICAnPHRkPjxzdHJvbmc+JyArIGVzY2FwZUhU
TUwocy5uYW1lKSArICc8L3N0cm9uZz48L3RkPicgKwogICAgICAgICAgICAnPHRkIGNsYXNzPSJ6
YWhsIj4nICsgcy5nZXNhbXQgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBjbGFzcz0iemFo
bCIgc3R5bGU9ImNvbG9yOnZhcigtLWZhcmJlLWZydWVoKSI+JyArIHMuZnJ1ZWggKyAnPC90ZD4n
ICsKICAgICAgICAgICAgJzx0ZCBjbGFzcz0iemFobCIgc3R5bGU9ImNvbG9yOnZhcigtLWZhcmJl
LXNwYWV0KSI+JyArIHMuc3BhZXQgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBjbGFzcz0i
emFobCIgc3R5bGU9ImNvbG9yOnZhcigtLWZhcmJlLW5hY2h0KSI+JyArIHMubmFjaHQgKyAnPC90
ZD4nICsKICAgICAgICAgICAgJzx0ZCBjbGFzcz0iemFobCI+JyArIHMud29jaGVuZW5kVGFnZSAr
ICc8L3RkPicgKwogICAgICAgICAgICAnPHRkIGNsYXNzPSJ6YWhsIj4nICsgcy5mZWllcnRhZ1Rh
Z2UgKyAnPC90ZD4nICsKICAgICAgICAgICAgJzx0ZCBjbGFzcz0iemFobCIgc3R5bGU9ImNvbG9y
OnZhcigtLWZhcmJlLWZlaGxlcikiPicgKyBzLmtyYW5rICsgJzwvdGQ+JyArCiAgICAgICAgICAg
ICc8dGQgY2xhc3M9InphaGwiPicgKyBzLnVybGF1YiArICc8L3RkPicgKwogICAgICAgICAgICAn
PHRkIGNsYXNzPSJ6YWhsIj4nICsgcy5sZWhyZ2FuZyArICc8L3RkPicgKwogICAgICAgICAgICAn
PHRkIGNsYXNzPSJ6YWhsIj4nICsgKHMuYXpBdXNnbGVpY2ggfHwgMCkgKyAnPC90ZD4nICsKICAg
ICAgICAnPC90cj4nOwogICAgfSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdC10
Ym9keScpLmlubmVySFRNTCA9IGh0bWw7Cn0KCgoKZXhwb3J0IGZ1bmN0aW9uIGluaXRTdGF0aXN0
aWtMaXN0ZW5lcnMoKSB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXN0YXRpc3Rp
ay1sYWRlbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgc3RhdGlzdGlrTGFkZW4pOwp9Cg==
### FILE: js/sync/cell-lock.js | 5231
Ly8gPT09IHN5bmMvY2VsbC1sb2NrLmpzID09PQovLyBQZXNzaW1pc3RpYyBDZWxsLUxvY2stQ2xp
ZW50OiBBY3F1aXJlL0ZvcmNlL1JlbGVhc2UvSGVhcnRiZWF0LUVuZHBvaW50cywKLy8gRGlmZi1B
bndlbmR1bmcgZnJlbWRlciBMb2NrcyBhdWZzIEdyaWQsIFRvb2x0aXAtVGV4dGUgZsO8ciBsb2Nr
ZWQgWmVsbGVuLgovLwovLyBDcm9zcy1Nb2R1bGUtQWJow6RuZ2lna2VpdCAoUGhhc2UgNC1Xb3Jr
YXJvdW5kKToKLy8gICBgZWRpdG9yU2NobGllc3NlbmAgbGVidCBpbiBncmlkL2VkaXRvci5qcyAo
UGhhc2UgNSkuIFdpcmQgcGVyCi8vICAgYGNlbGxMb2NrSG9va3MuZWRpdG9yU2NobGllc3NlbmAg
enVyIExhdWZ6ZWl0IGluaml6aWVydC4KCmltcG9ydCB7IFogfSBmcm9tICcuLi9jb3JlL3N0YXRl
LmpzJzsKaW1wb3J0IHsgYXBpU2FmZSB9IGZyb20gJy4uL2NvcmUvYXBpLmpzJzsKaW1wb3J0IHsg
dG9hc3QgfSBmcm9tICcuLi91aS90b2FzdC5qcyc7CgpleHBvcnQgdmFyIGNlbGxMb2NrSG9va3Mg
PSB7CiAgICBlZGl0b3JTY2hsaWVzc2VuOiBudWxsICAgLy8gKG9obmVSZWxlYXNlOiBib29sKSAt
PiB2b2lkCn07CgovLyA9PT09PSBFbmRwb2ludHMgPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBsb2Nr
WmVsbGVBY3F1aXJlKGRhdHVtLCBwZXJzb25JZCkgewogICAgcmV0dXJuIGFwaVNhZmUoJy9hcGkv
bG9jay96ZWxsZScsIHsKICAgICAgICBtZXRob2Q6ICdQT1NUJywKICAgICAgICBoZWFkZXJzOiB7
ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSwKICAgICAgICBib2R5OiBKU09O
LnN0cmluZ2lmeSh7IGRhdHVtOiBkYXR1bSwgcGVyc29uSWQ6IFN0cmluZyhwZXJzb25JZCkgfSkK
ICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gbG9ja1plbGxlRm9yY2UoZGF0dW0sIHBlcnNvbklk
KSB7CiAgICByZXR1cm4gYXBpU2FmZSgnL2FwaS9sb2NrL3plbGxlL2ZvcmNlJywgewogICAgICAg
IG1ldGhvZDogJ1BPU1QnLAogICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBs
aWNhdGlvbi9qc29uJyB9LAogICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgZGF0dW06IGRh
dHVtLCBwZXJzb25JZDogU3RyaW5nKHBlcnNvbklkKSB9KQogICAgfSk7Cn0KCmV4cG9ydCBmdW5j
dGlvbiBsb2NrWmVsbGVSZWxlYXNlKHRva2VuKSB7CiAgICBpZiAoIXRva2VuKSByZXR1cm4gUHJv
bWlzZS5yZXNvbHZlKHsgc3RhdHVzOiAyMDAsIGJvZHk6IHsgb2s6IHRydWUgfSB9KTsKICAgIHJl
dHVybiBhcGlTYWZlKCcvYXBpL2xvY2svemVsbGUnLCB7CiAgICAgICAgbWV0aG9kOiAnREVMRVRF
JywKICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicg
fSwKICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHRva2VuOiB0b2tlbiB9KQogICAgfSk7
Cn0KCmV4cG9ydCBmdW5jdGlvbiBsb2NrWmVsbGVIZWFydGJlYXRTZW5kZW4odG9rZW4pIHsKICAg
IHJldHVybiBhcGlTYWZlKCcvYXBpL2xvY2svemVsbGUvaGVhcnRiZWF0JywgewogICAgICAgIG1l
dGhvZDogJ1BPU1QnLAogICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNh
dGlvbi9qc29uJyB9LAogICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgdG9rZW46IHRva2Vu
IH0pCiAgICB9KTsKfQoKLy8gPT09PT0gSGVhcnRiZWF0LUxvb3AgPT09PT0KCmV4cG9ydCBmdW5j
dGlvbiBsb2NrSGVhcnRiZWF0U3RhcnRlbih0b2tlbikgewogICAgbG9ja0hlYXJ0YmVhdFN0b3Bw
ZW4oKTsKICAgIFouemVsbExvY2suaGJUaW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgewog
ICAgICAgIGlmICghWi56ZWxsTG9jay50b2tlbikgeyBsb2NrSGVhcnRiZWF0U3RvcHBlbigpOyBy
ZXR1cm47IH0KICAgICAgICBsb2NrWmVsbGVIZWFydGJlYXRTZW5kZW4oWi56ZWxsTG9jay50b2tl
bikudGhlbihmdW5jdGlvbihyZXMpIHsKICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDQw
NCkgewogICAgICAgICAgICAgICAgLy8gTG9jayB3dXJkZSB6LkIuIHZvbiBGYWNoYXVmc2ljaHQg
dWViZXJzY2hyaWViZW4KICAgICAgICAgICAgICAgIHRvYXN0KCdEZWluIEVkaXQtTG9jayB3dXJk
ZSBhdWZnZWhvYmVuICh2ZXJtdXRsaWNoIEZhY2hhdWZzaWNodC1PdmVycmlkZSkuJywgJ3dhcm51
bmcnKTsKICAgICAgICAgICAgICAgIFouemVsbExvY2sudG9rZW4gPSBudWxsOwogICAgICAgICAg
ICAgICAgaWYgKHR5cGVvZiBjZWxsTG9ja0hvb2tzLmVkaXRvclNjaGxpZXNzZW4gPT09ICdmdW5j
dGlvbicpIHsKICAgICAgICAgICAgICAgICAgICBjZWxsTG9ja0hvb2tzLmVkaXRvclNjaGxpZXNz
ZW4odHJ1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KS5jYXRj
aChmdW5jdGlvbigpIHt9KTsKICAgIH0sIDIwMDAwKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGxvY2tI
ZWFydGJlYXRTdG9wcGVuKCkgewogICAgaWYgKFouemVsbExvY2suaGJUaW1lcikgeyBjbGVhcklu
dGVydmFsKFouemVsbExvY2suaGJUaW1lcik7IFouemVsbExvY2suaGJUaW1lciA9IG51bGw7IH0K
fQoKLy8gPT09PT0gTG9jay1TdGF0ZSBpbSBHcmlkID09PT09CgpleHBvcnQgZnVuY3Rpb24gbG9j
a0tleShkYXR1bSwgcGVyc29uSWQpIHsgcmV0dXJuIGRhdHVtICsgJ3wnICsgU3RyaW5nKHBlcnNv
bklkKTsgfQoKZXhwb3J0IGZ1bmN0aW9uIGxvY2tUb29sdGlwVGV4dChsb2NrKSB7CiAgICB0cnkg
ewogICAgICAgIHZhciBsb2NrTXMgPSBEYXRlLnBhcnNlKGxvY2subG9ja2VkQXQpOwogICAgICAg
IHZhciBzZWsgPSBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKChEYXRlLm5vdygpIC0gbG9ja01zKSAv
IDEwMDApKTsKICAgICAgICB2YXIgZGF1ZXIgPSBzZWsgPCA2MCA/IChzZWsgKyAnIFNlay4nKSA6
IChNYXRoLnJvdW5kKHNlayAvIDYwKSArICcgTWluLicpOwogICAgICAgIHZhciByb2xsZSA9IChs
b2NrLnJvbGxlICYmIGxvY2sucm9sbGUgIT09ICd1c2VyJykgPyAoJyBbJyArIGxvY2sucm9sbGUg
KyAnXScpIDogJyc7CiAgICAgICAgcmV0dXJuICdXaXJkIGJlYXJiZWl0ZXQgdm9uICcgKyBsb2Nr
LnVzZXJuYW1lICsgcm9sbGUgKyAnIHNlaXQgJyArIGRhdWVyOwogICAgfSBjYXRjaCAoZSkgewog
ICAgICAgIHJldHVybiAnV2lyZCBiZWFyYmVpdGV0IHZvbiAnICsgbG9jay51c2VybmFtZTsKICAg
IH0KfQoKZXhwb3J0IGZ1bmN0aW9uIGZyZW1kTG9ja1NldHplbihkYXR1bSwgcGVyc29uSWQsIGxv
Y2spIHsKICAgIHZhciBrZXkgPSBsb2NrS2V5KGRhdHVtLCBwZXJzb25JZCk7CiAgICBpZiAobG9j
aykgWi5mcmVtZGVMb2Nrc1trZXldID0gbG9jazsKICAgIGVsc2UgZGVsZXRlIFouZnJlbWRlTG9j
a3Nba2V5XTsKICAgIHZhciB6ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmdyaWQtemVsbGVb
ZGF0YS1kYXR1bT0iJyArIGRhdHVtICsgJyJdW2RhdGEtcGVyc29uPSInICsgU3RyaW5nKHBlcnNv
bklkKSArICciXScpOwogICAgaWYgKCF6KSByZXR1cm47CiAgICBpZiAobG9jaykgewogICAgICAg
IHouY2xhc3NMaXN0LmFkZCgnZ3JpZC16ZWxsZS1sb2NrZWQnKTsKICAgICAgICB2YXIgb3JpZyA9
IHouZ2V0QXR0cmlidXRlKCdkYXRhLW9yaWctdGl0bGUnKSB8fCB6LnRpdGxlIHx8ICcnOwogICAg
ICAgIGlmICghei5nZXRBdHRyaWJ1dGUoJ2RhdGEtb3JpZy10aXRsZScpKSB6LnNldEF0dHJpYnV0
ZSgnZGF0YS1vcmlnLXRpdGxlJywgb3JpZyk7CiAgICAgICAgei50aXRsZSA9IGxvY2tUb29sdGlw
VGV4dChsb2NrKSArIChvcmlnID8gJyDigJQgJyArIG9yaWcgOiAnJyk7CiAgICB9IGVsc2Ugewog
ICAgICAgIHouY2xhc3NMaXN0LnJlbW92ZSgnZ3JpZC16ZWxsZS1sb2NrZWQnKTsKICAgICAgICB2
YXIgc2F2ZWQgPSB6LmdldEF0dHJpYnV0ZSgnZGF0YS1vcmlnLXRpdGxlJyk7CiAgICAgICAgaWYg
KHNhdmVkICE9PSBudWxsKSB7IHoudGl0bGUgPSBzYXZlZDsgei5yZW1vdmVBdHRyaWJ1dGUoJ2Rh
dGEtb3JpZy10aXRsZScpOyB9CiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBsb2NrU3RhdGVBbndl
bmRlbihuZXVlTG9ja3MpIHsKICAgIC8vIG5ldWVMb2NrczogQXJyYXkgdm9uIExvY2stT2JqZWt0
ZW4gdm9tIC9hcGkvbG9jay96ZWxsZW4KICAgIHZhciBuZXVNYXAgPSB7fTsKICAgIHZhciBiZW51
dHplckxvd2VyID0gKFouYmVudXR6ZXIgfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IG5ldWVMb2Nrcy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBMID0gbmV1
ZUxvY2tzW2ldOwogICAgICAgIC8vIEVpZ2VuZSBMb2NrcyBOSUNIVCBhbHMgImZyZW1kIiByZW5k
ZXJuCiAgICAgICAgdmFyIGxVc2VyID0gKEwudXNlcm5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7
CiAgICAgICAgaWYgKGxVc2VyID09PSBiZW51dHplckxvd2VyKSBjb250aW51ZTsKICAgICAgICB2
YXIgYmVudXR6ZXJPaG5lRG9tYWluID0gYmVudXR6ZXJMb3dlci5pbmRleE9mKCdcXCcpID49IDAg
PyBiZW51dHplckxvd2VyLnNwbGl0KCdcXCcpLnBvcCgpIDogYmVudXR6ZXJMb3dlcjsKICAgICAg
ICBpZiAobFVzZXIgPT09IGJlbnV0emVyT2huZURvbWFpbikgY29udGludWU7CiAgICAgICAgbmV1
TWFwW2xvY2tLZXkoTC5kYXR1bSwgTC5wZXJzb25JZCldID0gTDsKICAgIH0KICAgIC8vIERpZmY6
IGFsdGUgTG9ja3MsIGRpZSBqZXR6dCB3ZWcgc2luZCAtPiBlbnRmZXJuZW4KICAgIE9iamVjdC5r
ZXlzKFouZnJlbWRlTG9ja3MpLmZvckVhY2goZnVuY3Rpb24oaykgewogICAgICAgIGlmICghbmV1
TWFwW2tdKSB7CiAgICAgICAgICAgIHZhciBwYXJ0cyA9IGsuc3BsaXQoJ3wnKTsKICAgICAgICAg
ICAgZnJlbWRMb2NrU2V0emVuKHBhcnRzWzBdLCBwYXJ0c1sxXSwgbnVsbCk7CiAgICAgICAgfQog
ICAgfSk7CiAgICAvLyBOZXVlIExvY2tzIChvZGVyIGdlYWVuZGVydGUpIC0+IHNldHplbgogICAg
T2JqZWN0LmtleXMobmV1TWFwKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAgICB2YXIgYWx0
ID0gWi5mcmVtZGVMb2Nrc1trXTsKICAgICAgICB2YXIgbmV1ID0gbmV1TWFwW2tdOwogICAgICAg
IGlmICghYWx0IHx8IGFsdC5sYXN0QmVhdCAhPT0gbmV1Lmxhc3RCZWF0KSB7CiAgICAgICAgICAg
IHZhciBwYXJ0cyA9IGsuc3BsaXQoJ3wnKTsKICAgICAgICAgICAgZnJlbWRMb2NrU2V0emVuKHBh
cnRzWzBdLCBwYXJ0c1sxXSwgbmV1KTsKICAgICAgICB9CiAgICB9KTsKfQo=
### FILE: js/sync/sync-client.js | 14124
Ly8gPT09IHN5bmMvc3luYy1jbGllbnQuanMgPT09Ci8vIExpdmUtU3luYy1DbGllbnQ6IFdlYi1X
b3JrZXItYmFzaWVydGVzIFBvbGxpbmcsIENyb3NzLUJyb3dzZXItQXVmbGV1Y2h0ZW4KLy8gdm9u
IHJlbW90ZS1nZcOkbmRlcnRlbiBaZWxsZW4sIFN5bmMtVG9hc3QtRGVib3VuY2UsIEhNQUMtSW50
ZWdyaXTDpHRzLUJhbm5lciwKLy8gSGVhcnRiZWF0IChTZXJ2ZXItU2h1dGRvd24tU2lnbmFsIGJl
aW0gQnJvd3Nlci1DbG9zZSkuCi8vCi8vIENyb3NzLU1vZHVsZS1BYmjDpG5naWdrZWl0IChQaGFz
ZSA0LVdvcmthcm91bmQpOgovLyAgIFJlbmRlcmVyLUZ1bmt0aW9uZW4gYXVzIGdyaWQvcmVuZGVy
LmpzIChQaGFzZSA1KSB1bmQgYWRtaW4vKiAoUGhhc2UgNikKLy8gICB3ZXJkZW4gw7xiZXIgYHN5
bmNIb29rc2AgenVyIExhdWZ6ZWl0IGluaml6aWVydC4gYXBwLmpzIHNldHp0IGRpZSBIb29rcwov
LyAgIG5hY2ggZGVuIEZ1bmt0aW9ucy1EZWZpbml0aW9uZW4uCgppbXBvcnQgeyBaIH0gZnJvbSAn
Li4vY29yZS9zdGF0ZS5qcyc7CmltcG9ydCB7IGFwaSwgYXBpUG9zdCB9IGZyb20gJy4uL2NvcmUv
YXBpLmpzJzsKaW1wb3J0IHsgZXNjYXBlSFRNTCwgZGF0dW1Gb3JtYXRERSB9IGZyb20gJy4uL2Nv
cmUvdXRpbC5qcyc7CmltcG9ydCB7IHRvYXN0IH0gZnJvbSAnLi4vdWkvdG9hc3QuanMnOwppbXBv
cnQgeyBsb2NrU3RhdGVBbndlbmRlbiB9IGZyb20gJy4vY2VsbC1sb2NrLmpzJzsKaW1wb3J0IHsg
YWRtaW5MaXN0ZW5Ob3JtYWxpc2llcmVuIH0gZnJvbSAnLi4vY29yZS9kYXRlbkxhZGVuLmpzJzsK
CmV4cG9ydCB2YXIgc3luY0hvb2tzID0gewogICAgZWRpdG9yU2NobGllc3NlbjogbnVsbCwgICAg
ICAgICAvLyBncmlkL2VkaXRvci5qcyAoUGhhc2UgNSkKICAgIHRhZ0luZm9zQmVyZWNobmVuOiBu
dWxsLCAgICAgICAgLy8gZ3JpZC9yZW5kZXIuanMgKFBoYXNlIDUpCiAgICBrb3BmUmVuZGVybjog
bnVsbCwgICAgICAgICAgICAgIC8vIGdyaWQvcmVuZGVyLmpzIChQaGFzZSA1KQogICAgemVsbGVW
aXN1ZWxsQWt0dWFsaXNpZXJlbjogbnVsbCwvLyBncmlkL3JlbmRlci5qcyAoUGhhc2UgNSkKICAg
IHNvbmRlcnRlcm1pbmVSZW5kZXJuOiBudWxsLCAgICAgLy8gYWRtaW4vbGlzdGVuLmpzIChQaGFz
ZSA2KQogICAgbWVkaWVuUmVuZGVybjogbnVsbCAgICAgICAgICAgICAvLyBhZG1pbi9tZWRpZW4u
anMgKFBoYXNlIDYpCn07CgovLyA9PT09PSBTeW5jLVRvYXN0LURlYm91bmNlID09PT09Ci8vIE1l
aHJlcmUgTGl2ZS1TeW5jLUV2ZW50cyBpbiBrdXJ6ZXIgRm9sZ2Ugc2FtbWVsbiB1bmQgenVzYW1t
ZW5mYXNzZW4sCi8vIHN0YXR0IGbDvHIgamVkZSBlaW56ZWxuZSBaZWxsLcOEbmRlcnVuZyBlaW5l
biBzZXBhcmF0ZW4gVG9hc3QgenUgemVpZ2VuLgoKdmFyIFNZTkNfVE9BU1RfUFVGRkVSID0gW107
CnZhciBTWU5DX1RPQVNUX1RJTUVSID0gbnVsbDsKCmV4cG9ydCBmdW5jdGlvbiBzeW5jVG9hc3RE
ZWJvdW5jZWQodGV4dCkgewogICAgU1lOQ19UT0FTVF9QVUZGRVIucHVzaCh0ZXh0KTsKICAgIGlm
IChTWU5DX1RPQVNUX1RJTUVSKSByZXR1cm47CiAgICBTWU5DX1RPQVNUX1RJTUVSID0gc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKICAgICAgICBTWU5DX1RPQVNUX1RJTUVSID0gbnVsbDsKICAgICAg
ICB2YXIgYW56YWhsID0gU1lOQ19UT0FTVF9QVUZGRVIubGVuZ3RoOwogICAgICAgIGlmIChhbnph
aGwgPT09IDEpIHRvYXN0KFNZTkNfVE9BU1RfUFVGRkVSWzBdLCAnaW5mbycsIHsgZGF1ZXI6IDMw
MDAgfSk7CiAgICAgICAgZWxzZSBpZiAoYW56YWhsID4gMSkgdG9hc3QoYW56YWhsICsgJyBMaXZl
LUFlbmRlcnVuZ2VuIOKAlCBsZXR6dGU6ICcgKyBTWU5DX1RPQVNUX1BVRkZFUlthbnphaGwgLSAx
XSwgJ2luZm8nLCB7IGRhdWVyOiAzNTAwIH0pOwogICAgICAgIFNZTkNfVE9BU1RfUFVGRkVSID0g
W107CiAgICB9LCAzNTApOwp9CgovLyA9PT09PSBWaXN1ZWxsZXMgQXVmbGV1Y2h0ZW4gKENTUy1L
bGFzc2UgemVsbGUtZmxhc2ggLyB6ZWxsZS1mbGFzaC1yb3cpID09PT09CgpleHBvcnQgZnVuY3Rp
b24gc3luY0ZsYXNoKGVsZW0sIGtsYXNzZSkgewogICAgaWYgKCFlbGVtKSByZXR1cm47CiAgICB2
YXIgayA9IGtsYXNzZSB8fCAnemVsbGUtZmxhc2gnOwogICAgLy8gV2VubiBzY2hvbiBsYWV1ZnQ6
IEtsYXNzZSBrdXJ6IGVudGZlcm5lbiArIHp1cnVlY2sgKGZvcmNpZXJ0IEFuaW1hdGlvbi1SZXN0
YXJ0KQogICAgZWxlbS5jbGFzc0xpc3QucmVtb3ZlKGspOwogICAgLy8gdm9pZCBlbGVtLm9mZnNl
dFdpZHRoIC0+IHJlZmxvdyBmb3JjaWVyZW4sIGRhbWl0IGRpZSBBbmltYXRpb24gbmV1IHN0YXJ0
ZXQKICAgIHZvaWQgZWxlbS5vZmZzZXRXaWR0aDsKICAgIGVsZW0uY2xhc3NMaXN0LmFkZChrKTsK
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGVsZW0uY2xhc3NMaXN0LnJlbW92ZShrKTsgfSwg
OTUwKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIHN5bmNGbGFzaFplbGxlKGRTdHIsIHBpZCkgewogICAg
dmFyIHogPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ3JpZC16ZWxsZVtkYXRhLWRhdHVtPSIn
ICsgZFN0ciArICciXVtkYXRhLXBlcnNvbj0iJyArIHBpZCArICciXScpOwogICAgc3luY0ZsYXNo
KHosICd6ZWxsZS1mbGFzaCcpOwp9CgovLyA9PT09PSBDaGFuZ2UtTG9nLUFud2VuZHVuZyA9PT09
PQoKZXhwb3J0IGZ1bmN0aW9uIHN5bmNDaGFuZ2VzQW53ZW5kZW4oY2hhbmdlcykgewogICAgaWYg
KCFjaGFuZ2VzIHx8ICFjaGFuZ2VzLmxlbmd0aCkgcmV0dXJuOwogICAgdmFyIGJlbnV0emVyTG93
ZXIgPSAoWi5iZW51dHplciB8fCAnJykudG9Mb3dlckNhc2UoKTsKICAgIHZhciBiZW51dHplckt1
cnogPSBiZW51dHplckxvd2VyLmluZGV4T2YoJ1xcJykgPj0gMCA/IGJlbnV0emVyTG93ZXIuc3Bs
aXQoJ1xcJykucG9wKCkgOiBiZW51dHplckxvd2VyOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBj
aGFuZ2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGMgPSBjaGFuZ2VzW2ldOwogICAgICAg
IHZhciB2b24gPSAoYy52b24gfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgdmFyIGVpZ2Vu
ID0gKHZvbiA9PT0gYmVudXR6ZXJMb3dlciB8fCB2b24gPT09IGJlbnV0emVyS3Vyeik7CiAgICAg
ICAgaWYgKGMua2luZCA9PT0gJ3plbGxlJykgewogICAgICAgICAgICBpZiAoIVoucGxhbnVuZy5l
aW50cmFlZ2UpIFoucGxhbnVuZy5laW50cmFlZ2UgPSB7fTsKICAgICAgICAgICAgaWYgKCFaLnBs
YW51bmcuZWludHJhZWdlW2MuZGF0dW1dKSBaLnBsYW51bmcuZWludHJhZWdlW2MuZGF0dW1dID0g
e307CiAgICAgICAgICAgIGlmIChjLm5ldSkgWi5wbGFudW5nLmVpbnRyYWVnZVtjLmRhdHVtXVtj
LnBlcnNvbklkXSA9IGMubmV1OwogICAgICAgICAgICBlbHNlIGRlbGV0ZSBaLnBsYW51bmcuZWlu
dHJhZWdlW2MuZGF0dW1dW2MucGVyc29uSWRdOwogICAgICAgICAgICAvLyBQZmxpY2h0LUZsYWcg
bWl0ZsO8aHJlbiB3ZW5uIHZvcmhhbmRlbgogICAgICAgICAgICBpZiAoYy5wZmxpY2h0ID09PSB0
cnVlIHx8IGMucGZsaWNodCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGlmICghWi5wbGFu
dW5nLnBmbGljaHQpIFoucGxhbnVuZy5wZmxpY2h0ID0ge307CiAgICAgICAgICAgICAgICBpZiAo
Yy5wZmxpY2h0ICYmIGMubmV1KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFaLnBsYW51bmcu
cGZsaWNodFtjLmRhdHVtXSkgWi5wbGFudW5nLnBmbGljaHRbYy5kYXR1bV0gPSB7fTsKICAgICAg
ICAgICAgICAgICAgICBaLnBsYW51bmcucGZsaWNodFtjLmRhdHVtXVtjLnBlcnNvbklkXSA9IHRy
dWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFoucGxhbnVuZy5wZmxpY2h0W2MuZGF0dW1d
KSB7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIFoucGxhbnVuZy5wZmxpY2h0W2MuZGF0dW1d
W2MucGVyc29uSWRdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAg
IGlmICh0eXBlb2Ygc3luY0hvb2tzLnplbGxlVmlzdWVsbEFrdHVhbGlzaWVyZW4gPT09ICdmdW5j
dGlvbicpIHsKICAgICAgICAgICAgICAgIHN5bmNIb29rcy56ZWxsZVZpc3VlbGxBa3R1YWxpc2ll
cmVuKGMuZGF0dW0sIGMucGVyc29uSWQsIGMubmV1IHx8ICcnKTsKICAgICAgICAgICAgfQogICAg
ICAgICAgICBpZiAoIWVpZ2VuKSB7CiAgICAgICAgICAgICAgICBzeW5jRmxhc2haZWxsZShjLmRh
dHVtLCBjLnBlcnNvbklkKTsKICAgICAgICAgICAgICAgIHZhciBsYWJlbCA9IGMubmV1ID8gYy5u
ZXUgOiAnKGxlZXIpJzsKICAgICAgICAgICAgICAgIHZhciByb2xsZUhpbndlaXMgPSAoYy5yb2xs
ZSAmJiBjLnJvbGxlICE9PSAndXNlcicpID8gKCcgWycgKyBjLnJvbGxlICsgJ10nKSA6ICcnOwog
ICAgICAgICAgICAgICAgc3luY1RvYXN0RGVib3VuY2VkKGMudm9uICsgcm9sbGVIaW53ZWlzICsg
JyBzZXR6dGUgJyArIGxhYmVsICsgJyBhbSAnICsgZGF0dW1Gb3JtYXRERShjLmRhdHVtKSk7CiAg
ICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGMua2luZCA9PT0gJ2tvbW1lbnRhcicpIHsK
ICAgICAgICAgICAgaWYgKCFaLnBsYW51bmcua29tbWVudGFyZSkgWi5wbGFudW5nLmtvbW1lbnRh
cmUgPSB7fTsKICAgICAgICAgICAgaWYgKCFaLnBsYW51bmcua29tbWVudGFyZVtjLmRhdHVtXSkg
Wi5wbGFudW5nLmtvbW1lbnRhcmVbYy5kYXR1bV0gPSB7fTsKICAgICAgICAgICAgaWYgKGMubmV1
KSB7CiAgICAgICAgICAgICAgICBaLnBsYW51bmcua29tbWVudGFyZVtjLmRhdHVtXVtjLnBlcnNv
bklkXSA9IHsKICAgICAgICAgICAgICAgICAgICB0ZXh0OiBjLm5ldSwKICAgICAgICAgICAgICAg
ICAgICBnZWFlbmRlcnRBbTogYy56ZWl0c3RlbXBlbCB8fCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5n
KCkucmVwbGFjZSgnVCcsICcgJykuc2xpY2UoMCwgMTkpLAogICAgICAgICAgICAgICAgICAgIGdl
YWVuZGVydFZvbjogYy52b24gfHwgJycKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICBkZWxldGUgWi5wbGFudW5nLmtvbW1lbnRhcmVbYy5kYXR1
bV1bYy5wZXJzb25JZF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHR5cGVvZiBzeW5j
SG9va3MuemVsbGVWaXN1ZWxsQWt0dWFsaXNpZXJlbiA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAg
ICAgICAgICAgc3luY0hvb2tzLnplbGxlVmlzdWVsbEFrdHVhbGlzaWVyZW4oYy5kYXR1bSwgYy5w
ZXJzb25JZCwgKChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9KVtjLmRhdHVtXSB8fCB7fSlbYy5w
ZXJzb25JZF0gfHwgJycpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghZWlnZW4pIHsK
ICAgICAgICAgICAgICAgIHN5bmNGbGFzaFplbGxlKGMuZGF0dW0sIGMucGVyc29uSWQpOwogICAg
ICAgICAgICAgICAgc3luY1RvYXN0RGVib3VuY2VkKGMudm9uICsgJyBhZW5kZXJ0ZSBLb21tZW50
YXIgYW0gJyArIGRhdHVtRm9ybWF0REUoYy5kYXR1bSkpOwogICAgICAgICAgICB9CiAgICAgICAg
fSBlbHNlIGlmIChjLmtpbmQgPT09ICdkc20nKSB7CiAgICAgICAgICAgIGlmICghWi5wbGFudW5n
LmRzbSkgWi5wbGFudW5nLmRzbSA9IHt9OwogICAgICAgICAgICBpZiAoYy5ha3RpdikgWi5wbGFu
dW5nLmRzbVtjLmRhdHVtXSA9IHRydWU7CiAgICAgICAgICAgIGVsc2UgZGVsZXRlIFoucGxhbnVu
Zy5kc21bYy5kYXR1bV07CiAgICAgICAgICAgIHZhciBkc21aID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignLnRkLWRzbS16ZWxsZVtkYXRhLWRhdHVtPSInICsgYy5kYXR1bSArICciXScpOwogICAg
ICAgICAgICBpZiAoZHNtWikgewogICAgICAgICAgICAgICAgZHNtWi5jbGFzc0xpc3QudG9nZ2xl
KCd0ZC1kc20tYWt0aXYnLCAhIWMuYWt0aXYpOwogICAgICAgICAgICAgICAgZHNtWi5jbGFzc0xp
c3QudG9nZ2xlKCdha3RpdicsICEhYy5ha3Rpdik7CiAgICAgICAgICAgICAgICB2YXIgc3ltID0g
ZHNtWi5xdWVyeVNlbGVjdG9yKCcudGQtZHNtLXN5bScpOwogICAgICAgICAgICAgICAgaWYgKHN5
bSkgewogICAgICAgICAgICAgICAgICAgIHZhciBoa0RzbSA9IChaLmFkbWluICYmIFouYWRtaW4u
aGVhZGVyS29uZmlnICYmIFouYWRtaW4uaGVhZGVyS29uZmlnLmRzbSkgfHwge307CiAgICAgICAg
ICAgICAgICAgICAgc3ltLnRleHRDb250ZW50ID0gYy5ha3RpdiA/IChoa0RzbS5zeW1ib2xHZW1h
Y2h0IHx8ICfinJMnKSA6IChoa0RzbS5zeW1ib2xOaWNodEdlbWFjaHQgfHwgJ8OXJyk7CiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIWVpZ2VuKSBzeW5jRmxhc2goZHNtWiwg
J3plbGxlLWZsYXNoLXJvdycpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChjLmtp
bmQgPT09ICdsb2NrX2ZvcmNlJykgewogICAgICAgICAgICBpZiAoIWVpZ2VuICYmIFouemVsbExv
Y2sgJiYgWi56ZWxsTG9jay5kYXR1bSA9PT0gYy5kYXR1bSAmJiBTdHJpbmcoWi56ZWxsTG9jay5w
ZXJzb25JZCkgPT09IFN0cmluZyhjLnBlcnNvbklkKSkgewogICAgICAgICAgICAgICAgdG9hc3Qo
J0RlaW5lIEJlYXJiZWl0dW5ncy1TcGVycmUgd3VyZGUgdm9uICcgKyBjLnZvbiArICcgdWViZXJu
b21tZW4uJywgJ3dhcm51bmcnLCB7IGRhdWVyOiA1MDAwIH0pOwogICAgICAgICAgICAgICAgWi56
ZWxsTG9jay50b2tlbiA9IG51bGw7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHN5bmNIb29r
cy5lZGl0b3JTY2hsaWVzc2VuID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICAgICAg
c3luY0hvb2tzLmVkaXRvclNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGMua2luZCA9PT0gJ3NvbmRlcnRlcm1pbmUnKSB7
CiAgICAgICAgICAgIGlmICghZWlnZW4pIHsKICAgICAgICAgICAgICAgIGFwaSgnL2FwaS9hZG1p
bicpLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICAgICAgICAgIFouYWRtaW4gPSBhZG1p
bkxpc3Rlbk5vcm1hbGlzaWVyZW4ocik7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBz
eW5jSG9va3MudGFnSW5mb3NCZXJlY2huZW4gPT09ICdmdW5jdGlvbicpIHN5bmNIb29rcy50YWdJ
bmZvc0JlcmVjaG5lbigpOwogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc3luY0hvb2tz
LmtvcGZSZW5kZXJuID09PSAnZnVuY3Rpb24nKSBzeW5jSG9va3Mua29wZlJlbmRlcm4oKTsKICAg
ICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHN5bmNIb29rcy5zb25kZXJ0ZXJtaW5lUmVuZGVy
biA9PT0gJ2Z1bmN0aW9uJykgc3luY0hvb2tzLnNvbmRlcnRlcm1pbmVSZW5kZXJuKCk7CiAgICAg
ICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IGNvbnNvbGUud2FybignW3N5bmMgc29u
ZGVydGVybWluZV0nLCBlICYmIGUubWVzc2FnZSk7IH0pOwogICAgICAgICAgICB9CiAgICAgICAg
fSBlbHNlIGlmIChjLmtpbmQgPT09ICdzdGFuZG9ydGUnKSB7CiAgICAgICAgICAgIGlmICghZWln
ZW4pIHsKICAgICAgICAgICAgICAgIGFwaSgnL2FwaS9hZG1pbicpLnRoZW4oZnVuY3Rpb24ocikg
ewogICAgICAgICAgICAgICAgICAgIFouYWRtaW4gPSBhZG1pbkxpc3Rlbk5vcm1hbGlzaWVyZW4o
cik7CiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7IGNvbnNvbGUud2Fybign
W3N5bmMgc3RhbmRvcnRlXScsIGUgJiYgZS5tZXNzYWdlKTsgfSk7CiAgICAgICAgICAgIH0KICAg
ICAgICB9IGVsc2UgaWYgKGMua2luZCA9PT0gJ21lZGllbicpIHsKICAgICAgICAgICAgaWYgKCFl
aWdlbikgewogICAgICAgICAgICAgICAgYXBpKCcvYXBpL21lZGllbicpLnRoZW4oZnVuY3Rpb24o
cikgewogICAgICAgICAgICAgICAgICAgIFoubWVkaWVuID0gKHIgJiYgci5tZWRpZW4pID8gci5t
ZWRpZW4gOiBbXTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHN5bmNIb29rcy5tZWRp
ZW5SZW5kZXJuID09PSAnZnVuY3Rpb24nICYmCiAgICAgICAgICAgICAgICAgICAgICAgICFkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW4tdGFiLW1lZGllbicpLmNsYXNzTGlzdC5jb250YWlu
cygndmVyc3RlY2t0JykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3luY0hvb2tzLm1lZGll
blJlbmRlcm4oKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KS5jYXRj
aChmdW5jdGlvbihlKSB7IGNvbnNvbGUud2FybignW3N5bmMgbWVkaWVuXScsIGUgJiYgZS5tZXNz
YWdlKTsgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCi8vID09PT09IFN5bmMt
V29ya2VyID09PT09CgpleHBvcnQgZnVuY3Rpb24gc3luY1dvcmtlclN0YXJ0ZW4oKSB7CiAgICBp
ZiAoWi5zeW5jV29ya2VyKSByZXR1cm47CiAgICB0cnkgewogICAgICAgIFouc3luY1dvcmtlciA9
IG5ldyBXb3JrZXIoJ3N5bmMtd29ya2VyLmpzJyk7CiAgICAgICAgWi5zeW5jV29ya2VyLm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKCFlLmRhdGEpIHJldHVybjsKICAg
ICAgICAgICAgaWYgKGUuZGF0YS50eXBlID09PSAnc3luYycpIHsKICAgICAgICAgICAgICAgIGlm
IChlLmRhdGEuc2VydmVyVHMpIFoubGFzdFN5bmNUcyA9IGUuZGF0YS5zZXJ2ZXJUczsKICAgICAg
ICAgICAgICAgIGlmIChlLmRhdGEuY2hhbmdlcykgc3luY0NoYW5nZXNBbndlbmRlbihlLmRhdGEu
Y2hhbmdlcyk7CiAgICAgICAgICAgICAgICBpZiAoZS5kYXRhLmxvY2tzKSAgIGxvY2tTdGF0ZUFu
d2VuZGVuKGUuZGF0YS5sb2Nrcyk7CiAgICAgICAgICAgICAgICBpZiAoZS5kYXRhLmludGVncml0
YWV0KSBpbnRlZ3JpdGFldEJhbm5lclJlbmRlcm4oZS5kYXRhLmludGVncml0YWV0KTsKICAgICAg
ICAgICAgfQogICAgICAgIH07CiAgICAgICAgWi5zeW5jV29ya2VyLnBvc3RNZXNzYWdlKHsgY21k
OiAnc3RhcnQnLCBzZWl0OiBaLmxhc3RTeW5jVHMgfSk7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBa
LnN5bmNXb3JrZXIucG9zdE1lc3NhZ2UoeyBjbWQ6IGRvY3VtZW50LmhpZGRlbiA/ICdwYXVzZScg
OiAncmVzdW1lJywgc2VpdDogWi5sYXN0U3luY1RzIH0pOwogICAgICAgIH0pOwogICAgfSBjYXRj
aCAoZSkgewogICAgICAgIC8vIEZhbGxiYWNrIHdlbm4gZGVyIFdvcmtlciBuaWNodCBnZXN0YXJ0
ZXQgd2VyZGVuIGthbm4gKFF1aXJrcy1Nb2R1cywKICAgICAgICAvLyBmaWxlOi8vIHN0YXR0IGh0
dHA6Ly8sIMOkbHRlcmVyIEJyb3dzZXIgZXRjLikuIFBvbGxpbmcgaW0gTWFpbnRocmVhZAogICAg
ICAgIC8vIGFsbGUgM3Mgd2llIGRlciBXb3JrZXIuCiAgICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgIGlmIChkb2N1bWVudC5oaWRkZW4pIHJldHVybjsKICAgICAgICAg
ICAgZmV0Y2goJy9hcGkvcGxhbnVuZy9jaGFuZ2VzP3NlaXQ9JyArIGVuY29kZVVSSUNvbXBvbmVu
dChaLmxhc3RTeW5jVHMgfHwgJycpKQogICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
eyByZXR1cm4gci5qc29uKCk7IH0pLnRoZW4oZnVuY3Rpb24oZCkgewogICAgICAgICAgICAgICAg
ICAgIGlmIChkLnNlcnZlclRzKSBaLmxhc3RTeW5jVHMgPSBkLnNlcnZlclRzOwogICAgICAgICAg
ICAgICAgICAgIHN5bmNDaGFuZ2VzQW53ZW5kZW4oZC5jaGFuZ2VzIHx8IFtdKTsKICAgICAgICAg
ICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgY29uc29sZS53YXJuKCdbc3luYyBjaGFuZ2Vz
XScsIGUgJiYgZS5tZXNzYWdlKTsgfSk7CiAgICAgICAgICAgIGZldGNoKCcvYXBpL2xvY2svemVs
bGVuJykKICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsgcmV0dXJuIHIuanNvbigp
OyB9KS50aGVuKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgICAgICAgICBsb2NrU3RhdGVBbndl
bmRlbihkLmxvY2tzIHx8IFtdKTsKICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUp
IHsgY29uc29sZS53YXJuKCdbc3luYyBsb2Nrc10nLCBlICYmIGUubWVzc2FnZSk7IH0pOwogICAg
ICAgICAgICBmZXRjaCgnL2FwaS9pbnRlZ3JpdGFldC9zdGF0dXMnKQogICAgICAgICAgICAgICAg
LnRoZW4oZnVuY3Rpb24ocikgeyByZXR1cm4gci5qc29uKCk7IH0pLnRoZW4oaW50ZWdyaXRhZXRC
YW5uZXJSZW5kZXJuKQogICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsgY29uc29s
ZS53YXJuKCdbc3luYyBpbnRlZ3JpdGFldF0nLCBlICYmIGUubWVzc2FnZSk7IH0pOwogICAgICAg
IH0sIDMwMDApOwogICAgfQp9CgovLyA9PT09PSBITUFDLUludGVncml0w6R0cy1CYW5uZXIgPT09
PT0KLy8gQmFubmVyIHVudGVyIGRlbSBIZWFkZXIsIGRhcyBhdWYgZXJrYW5udGUgTWFuaXB1bGF0
aW9ucy1WZXJsZXR6dW5nZW4gaGlud2Vpc3QuCi8vIFN1cGVyVXNlciBiZWtvbW10IGVpbmVuICJO
ZXUgc2lnbmllcmVuIi1CdXR0b24gKEFMTEUgYWt0dWVsbGVuIFdlcnRlIGFscwovLyBsZWdpdGlt
IGVya2zDpHJlbiDigJQgZGFuYWNoIHNpbmQgYWx0ZSBNYW5pcHVsYXRpb25lbiBOSUNIVCBtZWhy
IG5hY2h3ZWlzYmFyKS4KCmV4cG9ydCBmdW5jdGlvbiBpbnRlZ3JpdGFldEJhbm5lclJlbmRlcm4o
c3RhdHVzKSB7CiAgICBaLmludGVncml0YWV0V2FybnVuZyA9IHN0YXR1czsKICAgIHZhciBiYW5u
ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW50ZWdyaXRhZXQtYmFubmVyJyk7CiAgICBp
ZiAoIWJhbm5lcikgcmV0dXJuOwogICAgaWYgKCFzdGF0dXMgfHwgc3RhdHVzLm9rKSB7CiAgICAg
ICAgYmFubmVyLmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwogICAgICAgIGJhbm5lci5pbm5l
ckhUTUwgPSAnJzsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB2YXIgdiA9IHN0YXR1cy52ZXJs
ZXR6dW5nZW4gfHwgW107CiAgICB2YXIgbWlncmF0aW9uID0gdi5sZW5ndGggPT09IDEgJiYgdlsw
XS5raW5kID09PSAnbWlncmF0aW9uJzsKICAgIHZhciBodG1sOwogICAgaWYgKG1pZ3JhdGlvbikg
ewogICAgICAgIGh0bWwgPSAnPHNwYW4+SE1BQy1TaWduYXR1ciBmZWhsdCDigJQgTWFuaXB1bGF0
aW9ucy1Fcmtlbm51bmcgbm9jaCBuaWNodCBha3Rpdi4gJzsKICAgICAgICBpZiAoWi5pc3RTdXBl
clVzZXIpIHsKICAgICAgICAgICAgaHRtbCArPSAnPGJ1dHRvbiBpZD0iYnRuLWludGVncml0YWV0
LXNpZ25pZXJlbiI+SmV0enQgc2lnbmllcmVuPC9idXR0b24+JzsKICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICBodG1sICs9ICdCaXR0ZSBTdXBlclVzZXIgYml0dGVuLCDigJ5JbnRlZ3JpdGFl
dCBuZXUgc2lnbmllcmVuIiBhdXN6dWZ1ZWhyZW4uJzsKICAgICAgICB9CiAgICAgICAgaHRtbCAr
PSAnPC9zcGFuPic7CiAgICB9IGVsc2UgewogICAgICAgIHZhciBiZWlzcGllbCA9IHZbMF0gfHwg
e307CiAgICAgICAgdmFyIGJlaXNwaWVsVHh0ID0gYmVpc3BpZWwua2luZCA/IChiZWlzcGllbC5r
aW5kICsgKGJlaXNwaWVsLmRhdHVtID8gJyAnICsgYmVpc3BpZWwuZGF0dW0gOiAnJykgKyAoYmVp
c3BpZWwucGVyc29uSWQgPyAnIFAnICsgYmVpc3BpZWwucGVyc29uSWQgOiAnJykpIDogJyc7CiAg
ICAgICAgaHRtbCA9ICc8c3Bhbj48c3Ryb25nPk1hbmlwdWxhdGlvbnN2ZXJkYWNodDo8L3N0cm9u
Zz4gJyArIHYubGVuZ3RoICsgJyBWZXJsZXR6dW5nKGVuKSBlcmthbm50JyArCiAgICAgICAgICAg
ICAgIChiZWlzcGllbFR4dCA/ICcg4oCUIHouIEIuICcgKyBlc2NhcGVIVE1MKGJlaXNwaWVsVHh0
KSA6ICcnKSArCiAgICAgICAgICAgICAgICcuIEJpdHRlIGltIEFkbWluLVRhYiBwcnVlZmVuLic7
CiAgICAgICAgaWYgKFouaXN0U3VwZXJVc2VyKSB7CiAgICAgICAgICAgIGh0bWwgKz0gJzxidXR0
b24gaWQ9ImJ0bi1pbnRlZ3JpdGFldC1zaWduaWVyZW4iPk5hY2ggUHJ1ZWZ1bmcgbmV1IHNpZ25p
ZXJlbjwvYnV0dG9uPic7CiAgICAgICAgfQogICAgICAgIGh0bWwgKz0gJzwvc3Bhbj4nOwogICAg
fQogICAgYmFubmVyLmNsYXNzTmFtZSA9ICdpbnRlZ3JpdGFldC1iYW5uZXInOwogICAgYmFubmVy
LmlubmVySFRNTCA9IGh0bWw7CiAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2J0bi1pbnRlZ3JpdGFldC1zaWduaWVyZW4nKTsKICAgIGlmIChidG4pIGJ0bi5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIGlmICghY29uZmlybSgnU2ljaGVy
PyBEYW1pdCB3ZXJkZW4gQUxMRSBha3R1ZWxsZW4gV2VydGUgYWxzIGxlZ2l0aW0gZXJrbGFlcnQu
IEFsdGUgTWFuaXB1bGF0aW9uZW4gc2luZCBkYW5hY2ggTklDSFQgbWVociBuYWNod2Vpc2Jhci4n
KSkgcmV0dXJuOwogICAgICAgIGFwaVBvc3QoJy9hcGkvaW50ZWdyaXRhZXQvbmV1LXNpZ25pZXJl
bicsIHt9KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgdG9hc3QoJ0ludGVncml0YWV0
IG5ldSBzaWduaWVydCAoJyArIChyLnZlcmxldHp1bmdlblp1dm9yIHx8IDApICsgJyBWZXJsZXR6
dW5nZW4gYXVmZ2Vsb2VzdCkuJywgJ2VyZm9sZycpOwogICAgICAgICAgICBiYW5uZXIuY2xhc3NM
aXN0LmFkZCgndmVyc3RlY2t0Jyk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeyB0b2Fz
dCgnRmVobGVyOiAnICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwogICAgfSk7Cn0KCi8vID09
PT09IEhlYXJ0YmVhdCAoQnJvd3Nlci1MZWJlbnN6ZWljaGVuICsgQ2xlYW51cC1CZWFjb24pID09
PT09CgpleHBvcnQgZnVuY3Rpb24gYWxsZUVpZ2VuZW5Mb2Nrc0ZyZWlnZWJlbkJlYWNvbigpIHsK
ICAgIC8vIHNlbmRCZWFjb24ga2FubiBudXIgUE9TVC4gV2lyIG51dHplbiBlaW5lbiBrbGVpbmVu
IFRyaWNrOgogICAgLy8gU2VydmVyIGFremVwdGllcnQgYXVjaCBERUxFVEUtVmFyaWFudGUgcGVy
IEJvZHksIGFiZXIgc2VuZEJlYWNvbiBpc3QgUE9TVC4KICAgIC8vIERhaGVyIGZyZWlnZWJlbiB2
aWEgREVMRVRFIGltIG5vcm1hbGVuIGZldGNoIChtaXQga2VlcGFsaXZlOiB0cnVlKSAtCiAgICAv
LyB1bnRlcnN0w7x0enQgdm9uIENocm9tZS9FZGdlL0ZpcmVmb3guCiAgICBpZiAoWi56ZWxsTG9j
ayAmJiBaLnplbGxMb2NrLnRva2VuKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZmV0Y2go
Jy9hcGkvbG9jay96ZWxsZT90b2tlbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFouemVsbExvY2su
dG9rZW4pLCB7CiAgICAgICAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLAogICAgICAgICAgICAg
ICAga2VlcGFsaXZlOiB0cnVlCiAgICAgICAgICAgIH0pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsg
Y29uc29sZS5lcnJvcignW2xvY2sucmVsZWFzZS5iZWFjb25dJywgZSk7IH0KICAgICAgICBaLnpl
bGxMb2NrLnRva2VuID0gbnVsbDsKICAgIH0KfQoKZXhwb3J0IGZ1bmN0aW9uIGhlYXJ0YmVhdFN0
YXJ0ZW4oKSB7CiAgICB0cnkgewogICAgICAgIHZhciB3ID0gbmV3IFdvcmtlcignaGVhcnRiZWF0
LXdvcmtlci5qcycpOwogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxp
dHljaGFuZ2UnLCBmdW5jdGlvbigpIHsgdy5wb3N0TWVzc2FnZShkb2N1bWVudC5oaWRkZW4gPyAn
dW5zaWNodGJhcicgOiAnc2ljaHRiYXInKTsgfSk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAg
c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7IGlmICghZG9jdW1lbnQuaGlkZGVuKSBmZXRjaCgnL2Fw
aS9oZWFydGJlYXQnLCB7IG1ldGhvZDogJ1BPU1QnIH0pLmNhdGNoKGZ1bmN0aW9uKCl7fSk7IH0s
IDUwMDApOwogICAgfQogICAgLy8gUGhhc2UgQTogU3luYy1Xb3JrZXIgZnVlciBMaXZlLVVwZGF0
ZXMKICAgIHN5bmNXb3JrZXJTdGFydGVuKCk7CiAgICAvLyBCZWltIFNjaGxpZXNzZW4gYWxsZXMg
YXVmcmFldW1lbjogTG9jayBmcmVpZ2ViZW4gKyBTZXJ2ZXItU2h1dGRvd24gc2lnbmFsaXNpZXJl
bgogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsIGZ1bmN0aW9uKCkg
ewogICAgICAgIGFsbGVFaWdlbmVuTG9ja3NGcmVpZ2ViZW5CZWFjb24oKTsKICAgICAgICBuYXZp
Z2F0b3Iuc2VuZEJlYWNvbignL2FwaS9zaHV0ZG93bicpOwogICAgfSk7Cn0K
### FILE: js/ui/icons.js | 14857
Ly8gPT09IHVpL2ljb25zLmpzID09PQovLyBMdWNpZGUtU1ZHLUljb24tU2V0ICsgRW1vamktUGlj
a2VyIChJbmxpbmUtUG9wb3ZlcikuCi8vCi8vIEVNT0pJX1RPX0lDT04gaXN0IEJhY2t3YXJkLUNv
bXBhdC1NYXBwaW5nOiBhbHRlIFNvbmRlcnRlcm1pbmUgbWl0Ci8vIFVuaWNvZGUtRW1vamlzIHdl
cmRlbiBhdWYgZGllIG7DpGNoc3RnZWxlZ2VuZW4gTHVjaWRlLUljb25zIGdlbWFwcHQuCgppbXBv
cnQgeyBlc2NhcGVIVE1MLCBlc2NhcGVBdHRyIH0gZnJvbSAnLi4vY29yZS91dGlsLmpzJzsKCmV4
cG9ydCB2YXIgSUNPTl9TRVQgPSBbCiAgICB7IGthdDogJ0hpbndlaXMnLCBpY29uczogWwogICAg
ICAgIHsgbmFtZTogJ2luZm8nLCAgICAgICAgICBsYWJlbDogJ0luZm8nLCAgICAgICAgICBzdmc6
ICc8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxwYXRoIGQ9Ik0xMiAxNnYtNCIvPjxw
YXRoIGQ9Ik0xMiA4aC4wMSIvPicgfSwKICAgICAgICB7IG5hbWU6ICdoZWxwLWNpcmNsZScsICAg
bGFiZWw6ICdGcmFnZScsICAgICAgICAgc3ZnOiAnPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0i
MTAiLz48cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiLz48cGF0
aCBkPSJNMTIgMTdoLjAxIi8+JyB9LAogICAgICAgIHsgbmFtZTogJ2JlbGwnLCAgICAgICAgICBs
YWJlbDogJ0hpbndlaXMnLCAgICAgICBzdmc6ICc8cGF0aCBkPSJNNiA4YTYgNiAwIDAgMSAxMiAw
YzAgNyAzIDkgMyA5SDNzMy0yIDMtOSIvPjxwYXRoIGQ9Ik0xMC4zIDIxYTEuOTQgMS45NCAwIDAg
MCAzLjQgMCIvPicgfSwKICAgICAgICB7IG5hbWU6ICdtZWdhcGhvbmUnLCAgICAgbGFiZWw6ICdN
aXR0ZWlsdW5nJywgICAgc3ZnOiAnPHBhdGggZD0ibTMgMTEgMTgtNXYxMkwzIDE0di0zeiIvPjxw
YXRoIGQ9Ik0xMS42IDE2LjhhMyAzIDAgMSAxLTUuOC0xLjYiLz4nIH0sCiAgICAgICAgeyBuYW1l
OiAnbWVzc2FnZScsICAgICAgIGxhYmVsOiAnTWl0dGVpbHVuZycsICAgIHN2ZzogJzxwYXRoIGQ9
Ik0yMSAxNWEyIDIgMCAwIDEtMiAySDdsLTQgNFY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAx
IDIgMnoiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAnbGlnaHRidWxiJywgICAgIGxhYmVsOiAnSWRl
ZScsICAgICAgICAgIHN2ZzogJzxwYXRoIGQ9Ik0xNSAxNGMuMi0xIC43LTEuNyAxLjUtMi41IDEt
LjkgMS41LTIuMiAxLjUtMy41QTYgNiAwIDAgMCA2IDhjMCAxIC4yIDIuMiAxLjUgMy41LjcuNyAx
LjMgMS41IDEuNSAyLjUiLz48cGF0aCBkPSJNOSAxOGg2Ii8+PHBhdGggZD0iTTEwIDIyaDQiLz4n
IH0sCiAgICAgICAgeyBuYW1lOiAnYm9vay1vcGVuJywgICAgIGxhYmVsOiAnTGVzZW4nLCAgICAg
ICAgIHN2ZzogJzxwYXRoIGQ9Ik0yIDNoNmE0IDQgMCAwIDEgNCA0djE0YTMgMyAwIDAgMC0zLTNI
MnoiLz48cGF0aCBkPSJNMjIgM2gtNmE0IDQgMCAwIDAtNCA0djE0YTMgMyAwIDAgMSAzLTNoN3oi
Lz4nIH0sCiAgICAgICAgeyBuYW1lOiAnZmlsZS10ZXh0JywgICAgIGxhYmVsOiAnRG9rdW1lbnQn
LCAgICAgIHN2ZzogJzxwYXRoIGQ9Ik0xNC41IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAg
MCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3LjV6Ii8+PHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4
IDIwIDgiLz48bGluZSB4MT0iMTYiIHgyPSI4IiB5MT0iMTMiIHkyPSIxMyIvPjxsaW5lIHgxPSIx
NiIgeDI9IjgiIHkxPSIxNyIgeTI9IjE3Ii8+JyB9LAogICAgICAgIHsgbmFtZTogJ3BpbicsICAg
ICAgICAgICBsYWJlbDogJ0FucGlubmVuJywgICAgICBzdmc6ICc8bGluZSB4MT0iMTIiIHgyPSIx
MiIgeTE9IjE3IiB5Mj0iMjIiLz48cGF0aCBkPSJNNSAxN2gxNHYtMS43NmEyIDIgMCAwIDAtMS4x
MS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY2aDFhMiAyIDAgMCAwIDAtNEg4YTIg
MiAwIDAgMCAwIDRoMXY0Ljc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAg
NSAxNS4yNHoiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAnYm9va21hcmsnLCAgICAgIGxhYmVsOiAn
TGVzZXplaWNoZW4nLCAgIHN2ZzogJzxwYXRoIGQ9Im0xOSAyMS03LTQtNyA0VjVhMiAyIDAgMCAx
IDItMmgxMGEyIDIgMCAwIDEgMiAyeiIvPicgfQogICAgXX0sCiAgICB7IGthdDogJ1dhcm51bmcn
LCBpY29uczogWwogICAgICAgIHsgbmFtZTogJ2FsZXJ0LXRyaWFuZ2xlJyxsYWJlbDogJ1dhcm51
bmcnLCAgICAgICBzdmc6ICc8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAw
bC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTN6Ii8+PHBhdGggZD0iTTEy
IDl2NCIvPjxwYXRoIGQ9Ik0xMiAxN2guMDEiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAnYWxlcnQt
Y2lyY2xlJywgIGxhYmVsOiAnQWNodHVuZycsICAgICAgIHN2ZzogJzxjaXJjbGUgY3g9IjEyIiBj
eT0iMTIiIHI9IjEwIi8+PGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iMTIiLz48bGlu
ZSB4MT0iMTIiIHgyPSIxMi4wMSIgeTE9IjE2IiB5Mj0iMTYiLz4nIH0sCiAgICAgICAgeyBuYW1l
OiAnYWxlcnQtb2N0YWdvbicsIGxhYmVsOiAnU3RvcCcsICAgICAgICAgIHN2ZzogJzxwb2x5Z29u
IHBvaW50cz0iNy44NiAyIDE2LjE0IDIgMjIgNy44NiAyMiAxNi4xNCAxNi4xNCAyMiA3Ljg2IDIy
IDIgMTYuMTQgMiA3Ljg2Ii8+PGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iMTIiLz48
bGluZSB4MT0iMTIiIHgyPSIxMi4wMSIgeTE9IjE2IiB5Mj0iMTYiLz4nIH0sCiAgICAgICAgeyBu
YW1lOiAnYmFuJywgICAgICAgICAgIGxhYmVsOiAnVmVyYm90ZW4nLCAgICAgIHN2ZzogJzxjaXJj
bGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PGxpbmUgeDE9IjQuOTMiIHgyPSIxOS4wNyIgeTE9
IjQuOTMiIHkyPSIxOS4wNyIvPicgfSwKICAgICAgICB7IG5hbWU6ICd4LWNpcmNsZScsICAgICAg
bGFiZWw6ICdGZWhsZXInLCAgICAgICAgc3ZnOiAnPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0i
MTAiLz48bGluZSB4MT0iMTUiIHgyPSI5IiB5MT0iOSIgeTI9IjE1Ii8+PGxpbmUgeDE9IjkiIHgy
PSIxNSIgeTE9IjkiIHkyPSIxNSIvPicgfSwKICAgICAgICB7IG5hbWU6ICdzaGllbGQtYWxlcnQn
LCAgbGFiZWw6ICdTaWNoZXJoZWl0JywgICAgc3ZnOiAnPHBhdGggZD0iTTEyIDIyczgtNCA4LTEw
VjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEwIi8+PHBhdGggZD0iTTEyIDh2NCIvPjxwYXRoIGQ9
Ik0xMiAxNmguMDEiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAnZmxhbWUnLCAgICAgICAgIGxhYmVs
OiAnRHJpbmdlbmQnLCAgICAgIHN2ZzogJzxwYXRoIGQ9Ik04LjUgMTQuNUEyLjUgMi41IDAgMCAw
IDExIDEyYzAtMS4zOC0uNS0yLTEtMy0xLjA3Mi0yLjE0My0uMjI0LTQuMDU0IDItNiAuNSAyLjUg
MiA0LjkgNCA2LjUgMiAxLjYgMyAzLjUgMyA1LjVhNyA3IDAgMSAxLTE0IDBjMC0xLjE1My40MzMt
Mi4yOTQgMS0zYTIuNSAyLjUgMCAwIDAgMi41IDIuNXoiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAn
emFwJywgICAgICAgICAgIGxhYmVsOiAnQWNodHVuZyBCbGl0eicsIHN2ZzogJzxwb2x5Z29uIHBv
aW50cz0iMTMgMiAzIDE0IDEyIDE0IDExIDIyIDIxIDEwIDEyIDEwIDEzIDIiLz4nIH0KICAgIF19
LAogICAgeyBrYXQ6ICdFdmVudCcsIGljb25zOiBbCiAgICAgICAgeyBuYW1lOiAnc3RhcicsICAg
ICAgICAgIGxhYmVsOiAnV2ljaHRpZycsICAgICAgIHN2ZzogJzxwb2x5Z29uIHBvaW50cz0iMTIg
MiAxNS4wOSA4LjI2IDIyIDkuMjcgMTcgMTQuMTQgMTguMTggMjEuMDIgMTIgMTcuNzcgNS44MiAy
MS4wMiA3IDE0LjE0IDIgOS4yNyA4LjkxIDguMjYgMTIgMiIvPicgfSwKICAgICAgICB7IG5hbWU6
ICdoZWFydCcsICAgICAgICAgbGFiZWw6ICdCZWxpZWJ0JywgICAgICAgc3ZnOiAnPHBhdGggZD0i
TTE5IDE0YzEuNDktMS40NiAzLTMuMjEgMy01LjVBNS41IDUuNSAwIDAgMCAxNi41IDNjLTEuNzYg
MC0zIC41LTQuNSAyLTEuNS0xLjUtMi43NC0yLTQuNS0yQTUuNSA1LjUgMCAwIDAgMiA4LjVjMCAy
LjI5IDEuNTEgNC4wNCAzIDUuNWw3IDdaIi8+JyB9LAogICAgICAgIHsgbmFtZTogJ3Ryb3BoeScs
ICAgICAgICBsYWJlbDogJ0F1c3plaWNobnVuZycsICBzdmc6ICc8cGF0aCBkPSJNNiA5SDQuNWEy
LjUgMi41IDAgMCAxIDAtNUg2Ii8+PHBhdGggZD0iTTE4IDloMS41YTIuNSAyLjUgMCAwIDAgMC01
SDE4Ii8+PHBhdGggZD0iTTQgMjJoMTYiLz48cGF0aCBkPSJNMTAgMTQuNjZWMTdjMCAuNTUtLjQ3
Ljk4LS45NyAxLjIxQzcuODUgMTguNzUgNyAyMC4yNCA3IDIyIi8+PHBhdGggZD0iTTE0IDE0LjY2
VjE3YzAgLjU1LjQ3Ljk4Ljk3IDEuMjFDMTYuMTUgMTguNzUgMTcgMjAuMjQgMTcgMjIiLz48cGF0
aCBkPSJNMTggMkg2djdhNiA2IDAgMCAwIDEyIDBWMloiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAn
Z2lmdCcsICAgICAgICAgIGxhYmVsOiAnR2VzY2hlbmsnLCAgICAgIHN2ZzogJzxwb2x5bGluZSBw
b2ludHM9IjIwIDEyIDIwIDIyIDQgMjIgNCAxMiIvPjxyZWN0IHg9IjIiIHk9IjciIHdpZHRoPSIy
MCIgaGVpZ2h0PSI1Ii8+PGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSIyMiIgeTI9IjciLz48cGF0
aCBkPSJNMTIgN0g3LjVhMi41IDIuNSAwIDAgMSAwLTVDMTEgMiAxMiA3IDEyIDd6Ii8+PHBhdGgg
ZD0iTTEyIDdoNC41YTIuNSAyLjUgMCAwIDAgMC01QzEzIDIgMTIgNyAxMiA3eiIvPicgfSwKICAg
ICAgICB7IG5hbWU6ICdjYWtlJywgICAgICAgICAgbGFiZWw6ICdHZWJ1cnRzdGFnJywgICAgc3Zn
OiAnPHBhdGggZD0iTTIwIDIxdi04YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjgiLz48
cGF0aCBkPSJNNCAxNnMuNS0xIDItMSAyLjUgMiA0IDIgMi41LTIgNC0yIDIuNSAyIDQgMiAyLTEg
Mi0xIi8+PHBhdGggZD0iTTIgMjFoMjAiLz48cGF0aCBkPSJNNyA4djMiLz48cGF0aCBkPSJNMTIg
OHYzIi8+PHBhdGggZD0iTTE3IDh2MyIvPicgfSwKICAgICAgICB7IG5hbWU6ICdmbGFnJywgICAg
ICAgICAgbGFiZWw6ICdNYXJraWVydW5nJywgICAgc3ZnOiAnPHBhdGggZD0iTTQgMTVzMS0xIDQt
MSA1IDIgOCAyIDQtMSA0LTFWM3MtMSAxLTQgMS01LTItOC0yLTQgMS00IDF6Ii8+PGxpbmUgeDE9
IjQiIHgyPSI0IiB5MT0iMjIiIHkyPSIxNSIvPicgfSwKICAgICAgICB7IG5hbWU6ICd0YXJnZXQn
LCAgICAgICAgbGFiZWw6ICdaaWVsJywgICAgICAgICAgc3ZnOiAnPGNpcmNsZSBjeD0iMTIiIGN5
PSIxMiIgcj0iMTAiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI2Ii8+PGNpcmNsZSBjeD0i
MTIiIGN5PSIxMiIgcj0iMiIvPicgfSwKICAgICAgICB7IG5hbWU6ICdhd2FyZCcsICAgICAgICAg
bGFiZWw6ICdBdXN6ZWljaG51bmcnLCAgc3ZnOiAnPGNpcmNsZSBjeD0iMTIiIGN5PSI4IiByPSI2
Ii8+PHBhdGggZD0iTTE1LjQ3NyAxMi44OSAxNyAyMmwtNS0zLTUgMyAxLjUyMy05LjExIi8+JyB9
CiAgICBdfSwKICAgIHsga2F0OiAnWmVpdCcsIGljb25zOiBbCiAgICAgICAgeyBuYW1lOiAnY2Fs
ZW5kYXInLCAgICAgIGxhYmVsOiAnVGVybWluJywgICAgICAgIHN2ZzogJzxyZWN0IHg9IjMiIHk9
IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIi8+PGxpbmUgeDE9IjE2IiB4
Mj0iMTYiIHkxPSIyIiB5Mj0iNiIvPjxsaW5lIHgxPSI4IiB4Mj0iOCIgeTE9IjIiIHkyPSI2Ii8+
PGxpbmUgeDE9IjMiIHgyPSIyMSIgeTE9IjEwIiB5Mj0iMTAiLz4nIH0sCiAgICAgICAgeyBuYW1l
OiAnY2FsZW5kYXItZGF5cycsIGxhYmVsOiAnVGVybWluLVJlaWhlJywgIHN2ZzogJzxyZWN0IHg9
IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIi8+PGxpbmUgeDE9
IjE2IiB4Mj0iMTYiIHkxPSIyIiB5Mj0iNiIvPjxsaW5lIHgxPSI4IiB4Mj0iOCIgeTE9IjIiIHky
PSI2Ii8+PGxpbmUgeDE9IjMiIHgyPSIyMSIgeTE9IjEwIiB5Mj0iMTAiLz48Y2lyY2xlIGN4PSI4
IiBjeT0iMTQiIHI9IjAuNSIgZmlsbD0iY3VycmVudENvbG9yIi8+PGNpcmNsZSBjeD0iMTIiIGN5
PSIxNCIgcj0iMC41IiBmaWxsPSJjdXJyZW50Q29sb3IiLz48Y2lyY2xlIGN4PSIxNiIgY3k9IjE0
IiByPSIwLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIvPjxjaXJjbGUgY3g9IjgiIGN5PSIxOCIgcj0i
MC41IiBmaWxsPSJjdXJyZW50Q29sb3IiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjE4IiByPSIwLjUi
IGZpbGw9ImN1cnJlbnRDb2xvciIvPjxjaXJjbGUgY3g9IjE2IiBjeT0iMTgiIHI9IjAuNSIgZmls
bD0iY3VycmVudENvbG9yIi8+JyB9LAogICAgICAgIHsgbmFtZTogJ2Nsb2NrJywgICAgICAgICBs
YWJlbDogJ1VocnplaXQnLCAgICAgICBzdmc6ICc8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIx
MCIvPjxwb2x5bGluZSBwb2ludHM9IjEyIDYgMTIgMTIgMTYgMTQiLz4nIH0sCiAgICAgICAgeyBu
YW1lOiAnYWxhcm0nLCAgICAgICAgIGxhYmVsOiAnV2Vja2VyJywgICAgICAgIHN2ZzogJzxjaXJj
bGUgY3g9IjEyIiBjeT0iMTMiIHI9IjgiLz48cGF0aCBkPSJNMTIgOXY0bDIgMiIvPjxwYXRoIGQ9
Ik01IDMgMiA2Ii8+PHBhdGggZD0ibTIyIDYtMy0zIi8+JyB9LAogICAgICAgIHsgbmFtZTogJ2hv
dXJnbGFzcycsICAgICBsYWJlbDogJ0ZyaXN0JywgICAgICAgICBzdmc6ICc8cGF0aCBkPSJNNSAy
MmgxNCIvPjxwYXRoIGQ9Ik01IDJoMTQiLz48cGF0aCBkPSJNMTcgMjJ2LTQuMTcyYTIgMiAwIDAg
MC0uNTg2LTEuNDE0TDEyIDEybC00LjQxNCA0LjQxNEEyIDIgMCAwIDAgNyAxNy44MjhWMjIiLz48
cGF0aCBkPSJNNyAydjQuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0TDEyIDEybDQuNDE0LTQuNDE0
QTIgMiAwIDAgMCAxNyA2LjE3MlYyIi8+JyB9LAogICAgICAgIHsgbmFtZTogJ3RpbWVyJywgICAg
ICAgICBsYWJlbDogJ1N0b3BwdWhyJywgICAgICBzdmc6ICc8bGluZSB4MT0iMTAiIHgyPSIxNCIg
eTE9IjIiIHkyPSIyIi8+PGxpbmUgeDE9IjEyIiB4Mj0iMTUiIHkxPSIxNCIgeTI9IjExIi8+PGNp
cmNsZSBjeD0iMTIiIGN5PSIxNCIgcj0iOCIvPicgfQogICAgXX0sCiAgICB7IGthdDogJ1BlcnNv
bmVuIC8gT3JnJywgaWNvbnM6IFsKICAgICAgICB7IG5hbWU6ICd1c2VycycsICAgICAgICAgbGFi
ZWw6ICdUZWFtJywgICAgICAgICAgc3ZnOiAnPHBhdGggZD0iTTE2IDIxdi0yYTQgNCAwIDAgMC00
LTRINmE0IDQgMCAwIDAtNCA0djIiLz48Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIvPjxwYXRo
IGQ9Ik0yMiAyMXYtMmE0IDQgMCAwIDAtMy0zLjg3Ii8+PHBhdGggZD0iTTE2IDMuMTNhNCA0IDAg
MCAxIDAgNy43NSIvPicgfSwKICAgICAgICB7IG5hbWU6ICd1c2VyLWNoZWNrJywgICAgbGFiZWw6
ICdQZXJzb24gYmVzdMOkdC4nLHN2ZzogJzxwYXRoIGQ9Ik0xNiAyMXYtMmE0IDQgMCAwIDAtNC00
SDVhNCA0IDAgMCAwLTQgNHYyIi8+PGNpcmNsZSBjeD0iOC41IiBjeT0iNyIgcj0iNCIvPjxwb2x5
bGluZSBwb2ludHM9IjE3IDExIDE5IDEzIDIzIDkiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAnYnJp
ZWZjYXNlJywgICAgIGxhYmVsOiAnRGllbnN0bGljaCcsICAgIHN2ZzogJzxyZWN0IHg9IjIiIHk9
IjciIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIHJ5PSIyIi8+PHBhdGggZD0iTTE2IDIx
VjVhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjE2Ii8+JyB9LAogICAgICAgIHsgbmFt
ZTogJ2J1aWxkaW5nJywgICAgICBsYWJlbDogJ0RpZW5zdHN0ZWxsZScsICBzdmc6ICc8cmVjdCB4
PSI0IiB5PSIyIiB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHJ4PSIyIiByeT0iMiIvPjxwYXRoIGQ9
Ik05IDIydi00aDZ2NCIvPicgfSwKICAgICAgICB7IG5hbWU6ICdwaG9uZScsICAgICAgICAgbGFi
ZWw6ICdUZWxlZm9uJywgICAgICAgc3ZnOiAnPHBhdGggZD0iTTIyIDE2LjkydjNhMiAyIDAgMCAx
LTIuMTggMiAxOS43OSAxOS43OSAwIDAgMS04LjYzLTMuMDcgMTkuNSAxOS41IDAgMCAxLTYtNiAx
OS43OSAxOS43OSAwIDAgMS0zLjA3LTguNjdBMiAyIDAgMCAxIDQuMTEgMmgzYTIgMiAwIDAgMSAy
IDEuNzIgMTIuODQgMTIuODQgMCAwIDAgLjcgMi44MSAyIDIgMCAwIDEtLjQ1IDIuMTFMOC4wOSA5
LjkxYTE2IDE2IDAgMCAwIDYgNmwxLjI3LTEuMjdhMiAyIDAgMCAxIDIuMTEtLjQ1IDEyLjg0IDEy
Ljg0IDAgMCAwIDIuODEuN0EyIDIgMCAwIDEgMjIgMTYuOTJ6Ii8+JyB9LAogICAgICAgIHsgbmFt
ZTogJ21haWwnLCAgICAgICAgICBsYWJlbDogJ0UtTWFpbCcsICAgICAgICBzdmc6ICc8cmVjdCB4
PSIyIiB5PSI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHJ4PSIyIi8+PHBhdGggZD0ibTIyIDct
MTAgNUwyIDciLz4nIH0sCiAgICAgICAgeyBuYW1lOiAnc2hpZWxkJywgICAgICAgIGxhYmVsOiAn
U2NodXR6JywgICAgICAgIHN2ZzogJzxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAz
djdjMCA2IDggMTAgOCAxMCIvPicgfSwKICAgICAgICB7IG5hbWU6ICdrZXknLCAgICAgICAgICAg
bGFiZWw6ICdTY2hsdWVzc2VsJywgICAgc3ZnOiAnPGNpcmNsZSBjeD0iNy41IiBjeT0iMTUuNSIg
cj0iNS41Ii8+PHBhdGggZD0ibTIxIDItOS42IDkuNiIvPjxwYXRoIGQ9Im0xNS41IDcuNSAzIDNM
MjIgN2wtMy0zIi8+JyB9CiAgICBdfSwKICAgIHsga2F0OiAnU29uc3RpZ2VzJywgaWNvbnM6IFsK
ICAgICAgICB7IG5hbWU6ICdjaGVjaycsICAgICAgICAgbGFiZWw6ICdPSycsICAgICAgICAgICAg
c3ZnOiAnPHBvbHlsaW5lIHBvaW50cz0iMjAgNiA5IDE3IDQgMTIiLz4nIH0sCiAgICAgICAgeyBu
YW1lOiAnY2hlY2stY2lyY2xlJywgIGxhYmVsOiAnRXJsZWRpZ3QnLCAgICAgIHN2ZzogJzxwYXRo
IGQ9Ik0yMiAxMS4wOFYxMmExMCAxMCAwIDEgMS01LjkzLTkuMTQiLz48cG9seWxpbmUgcG9pbnRz
PSIyMiA0IDEyIDE0LjAxIDkgMTEuMDEiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAneCcsICAgICAg
ICAgICAgIGxhYmVsOiAnQWJnZXNhZ3QnLCAgICAgIHN2ZzogJzxsaW5lIHgxPSIxOCIgeDI9IjYi
IHkxPSI2IiB5Mj0iMTgiLz48bGluZSB4MT0iNiIgeDI9IjE4IiB5MT0iNiIgeTI9IjE4Ii8+JyB9
LAogICAgICAgIHsgbmFtZTogJ3BsYW5lJywgICAgICAgICBsYWJlbDogJ1JlaXNlJywgICAgICAg
ICBzdmc6ICc8cGF0aCBkPSJNMTcuOCAxOS4yIDE2IDExbDMuNS0zLjVDMjEgNiAyMS41IDQgMjEg
M2MtMS0uNS0zIDAtNC41IDEuNUwxMyA4IDQuOCA2LjJjLS41LS4xLS45LjEtMS4xLjVsLS4zLjVj
LS4yLjUtLjEgMSAuMyAxLjNMOSAxMmwtMiAzSDRsLTEgMSAzIDIgMiAzIDEtMXYtM2wzLTIgMy41
IDUuM2MuMy40LjguNSAxLjMuM2wuNS0uMmMuNC0uMy42LS43LjUtMS4yeiIvPicgfSwKICAgICAg
ICB7IG5hbWU6ICdjb2ZmZWUnLCAgICAgICAgbGFiZWw6ICdQYXVzZScsICAgICAgICAgc3ZnOiAn
PHBhdGggZD0iTTE3IDhoMWE0IDQgMCAxIDEgMCA4aC0xIi8+PHBhdGggZD0iTTMgOGgxNHY5YTQg
NCAwIDAgMS00IDRIN2E0IDQgMCAwIDEtNC00WiIvPjxsaW5lIHgxPSI2IiB4Mj0iNiIgeTE9IjIi
IHkyPSI0Ii8+PGxpbmUgeDE9IjEwIiB4Mj0iMTAiIHkxPSIyIiB5Mj0iNCIvPjxsaW5lIHgxPSIx
NCIgeDI9IjE0IiB5MT0iMiIgeTI9IjQiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAnd3JlbmNoJywg
ICAgICAgIGxhYmVsOiAnV2FydHVuZycsICAgICAgIHN2ZzogJzxwYXRoIGQ9Ik0xNC43IDYuM2Ex
IDEgMCAwIDAgMCAxLjRsMS42IDEuNmExIDEgMCAwIDAgMS40IDBsMy43Ny0zLjc3YTYgNiAwIDAg
MS03Ljk0IDcuOTRsLTYuOTEgNi45MWEyLjEyIDIuMTIgMCAwIDEtMy0zbDYuOTEtNi45MWE2IDYg
MCAwIDEgNy45NC03Ljk0bC0zLjc2IDMuNzZ6Ii8+JyB9LAogICAgICAgIHsgbmFtZTogJ2V5ZScs
ICAgICAgICAgICBsYWJlbDogJ0Jlb2JhY2h0ZW4nLCAgICBzdmc6ICc8cGF0aCBkPSJNMiAxMnMz
LTcgMTAtNyAxMCA3IDEwIDctMyA3LTEwIDctMTAtNy0xMC03WiIvPjxjaXJjbGUgY3g9IjEyIiBj
eT0iMTIiIHI9IjMiLz4nIH0sCiAgICAgICAgeyBuYW1lOiAndGh1bWJzLXVwJywgICAgIGxhYmVs
OiAnRGF1bWVuIGhvY2gnLCAgIHN2ZzogJzxwYXRoIGQ9Ik03IDEwdjEyIi8+PHBhdGggZD0iTTE1
IDUuODggMTQgMTBoNS44M2EyIDIgMCAwIDEgMS45MiAyLjU2bC0yLjMzIDhBMiAyIDAgMCAxIDE3
LjUgMjJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAyLTJoMi43NmEyIDIgMCAwIDAgMS43
OS0xLjExTDEyIDJoMGEzLjEzIDMuMTMgMCAwIDEgMyAzLjg4WiIvPicgfQogICAgXX0KXTsKCmV4
cG9ydCB2YXIgSUNPTl9CWV9OQU1FID0ge307CklDT05fU0VULmZvckVhY2goZnVuY3Rpb24oZykg
eyBnLmljb25zLmZvckVhY2goZnVuY3Rpb24oaSkgeyBJQ09OX0JZX05BTUVbaS5uYW1lXSA9IGk7
IH0pOyB9KTsKCi8vIEJhY2t3YXJkLUNvbXBhdDogYWx0ZSBFbW9qaS1TdHJpbmdzIHdlcmRlbiBh
dWYgTHVjaWRlLUljb25zIGdlbWFwcHQuCmV4cG9ydCB2YXIgRU1PSklfVE9fSUNPTiA9IHsKICAg
ICfihLnvuI8nOidpbmZvJywn4oS5JzonaW5mbycsJ/Cfk4wnOidwaW4nLCfwn5OdJzonZmlsZS10
ZXh0Jywn8J+UlCc6J2JlbGwnLCfwn5OiJzonbWVnYXBob25lJywKICAgICfwn5KsJzonbWVzc2Fn
ZScsJ/CfkqEnOidsaWdodGJ1bGInLCfwn5OWJzonYm9vay1vcGVuJywn8J+Ulic6J2Jvb2ttYXJr
JywKICAgICfimqDvuI8nOidhbGVydC10cmlhbmdsZScsJ+KaoCc6J2FsZXJ0LXRyaWFuZ2xlJywn
4p2XJzonYWxlcnQtY2lyY2xlJywn4oC877iPJzonYWxlcnQtY2lyY2xlJywKICAgICfwn5qoJzon
YWxlcnQtb2N0YWdvbicsJ/Cfm5EnOidiYW4nLCfwn5S0JzonYWxlcnQtY2lyY2xlJywn4p2MJzon
eC1jaXJjbGUnLCfim5QnOidiYW4nLAogICAgJ/CflKUnOidmbGFtZScsJ+KaoSc6J3phcCcsCiAg
ICAn8J+OiSc6J2dpZnQnLCfwn46CJzonY2FrZScsJ/CfjoonOidnaWZ0Jywn8J+lsyc6J3N0YXIn
LCfwn46BJzonZ2lmdCcsJ/Cfj4YnOid0cm9waHknLAogICAgJ+KtkCc6J3N0YXInLCfwn46vJzon
dGFyZ2V0Jywn8J+aqSc6J2ZsYWcnLCfwn46W77iPJzonYXdhcmQnLCfwn6WHJzonYXdhcmQnLAog
ICAgJ/Cfk4UnOidjYWxlbmRhcicsJ/Cfl5PvuI8nOidjYWxlbmRhci1kYXlzJywn8J+Thic6J2Nh
bGVuZGFyLWRheXMnLCfij7AnOidhbGFybScsCiAgICAn4o+zJzonaG91cmdsYXNzJywn8J+VkCc6
J2Nsb2NrJywn4o+x77iPJzondGltZXInLAogICAgJ/CfkaUnOid1c2VycycsJ/Cfj6InOididWls
ZGluZycsJ/Cfk54nOidwaG9uZScsJ+Kcie+4jyc6J21haWwnLCfwn5SRJzona2V5Jywn8J+boe+4
jyc6J3NoaWVsZCcsCiAgICAn4piVJzonY29mZmVlJywn8J+NsCc6J2Nha2UnLCfwn461JzonbXVz
aWMnLCfinaTvuI8nOidoZWFydCcsJ+KchSc6J2NoZWNrLWNpcmNsZScsCiAgICAn4pyTJzonY2hl
Y2snLCfinJcnOid4Jywn4pyI77iPJzoncGxhbmUnLCfwn5SnJzond3JlbmNoJywn8J+RgCc6J2V5
ZScsJ/CfkY0nOid0aHVtYnMtdXAnLAogICAgJ/CfjqwnOidmaWxtJywn8J+OpCc6J21pYycKfTsK
Ci8vIExpZWZlcnQgPHN2Zz4tSFRNTCBmw7xyIGVpbmVuIEljb24tTmFtZW4sIG9kZXIgZWluZW4g
RmFsbGJhY2sgKEVtb2ppLVRleHQpCi8vIGZhbGxzIGRlciBOYW1lIHVuYmVrYW5udCBpc3QgKEJh
Y2t3YXJkLUNvbXBhdCBhbHRlciBEYXRlbikuCmV4cG9ydCBmdW5jdGlvbiBpY29uU3ZnSHRtbChu
YW1lT3JFbW9qaSwgc2l6ZSkgewogICAgaWYgKCFuYW1lT3JFbW9qaSkgcmV0dXJuICcnOwogICAg
dmFyIHMgPSBzaXplIHx8IDE4OwogICAgdmFyIGVudHJ5ID0gSUNPTl9CWV9OQU1FW25hbWVPckVt
b2ppXTsKICAgIGlmICghZW50cnkgJiYgRU1PSklfVE9fSUNPTltuYW1lT3JFbW9qaV0pIGVudHJ5
ID0gSUNPTl9CWV9OQU1FW0VNT0pJX1RPX0lDT05bbmFtZU9yRW1vamldXTsKICAgIGlmIChlbnRy
eSkgewogICAgICAgIHJldHVybiAnPHN2ZyBjbGFzcz0iaWNvbi1zdmciIHdpZHRoPSInICsgcyAr
ICciIGhlaWdodD0iJyArIHMgKyAnIiB2aWV3Qm94PSIwIDAgMjQgMjQiICcgKwogICAgICAgICAg
ICAnZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgJyAr
CiAgICAgICAgICAgICdzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91
bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nICsKICAgICAgICAgICAgZW50cnkuc3ZnICsgJzwvc3Zn
Pic7CiAgICB9CiAgICByZXR1cm4gJzxzcGFuIGNsYXNzPSJpY29uLWZhbGxiYWNrIj4nICsgZXNj
YXBlSFRNTChuYW1lT3JFbW9qaSkgKyAnPC9zcGFuPic7Cn0KCmV4cG9ydCBmdW5jdGlvbiBpY29u
TGFiZWwobmFtZSkgewogICAgdmFyIGUgPSBJQ09OX0JZX05BTUVbbmFtZV07CiAgICByZXR1cm4g
ZSA/IGUubGFiZWwgOiBuYW1lOwp9Cgp2YXIgZW1vamlQaWNrZXJBa3RpdiA9IG51bGw7CgpleHBv
cnQgZnVuY3Rpb24gZW1vamlQaWNrZXJaZWlnZW4oYW5jaG9yLCBvblNlbGVjdCkgewogICAgZW1v
amlQaWNrZXJTY2hsaWVzc2VuKCk7CiAgICB2YXIgcG9wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICBwb3AuY2xhc3NOYW1lID0gJ2Vtb2ppLXBpY2tlcic7CiAgICB2YXIgYWt0
SW5wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlLWljb24nKTsKICAgIHZhciBha3ROYW1l
ID0gYWt0SW5wID8gYWt0SW5wLnZhbHVlIDogJyc7CiAgICBmdW5jdGlvbiBha3RpdkNscyhuYW1l
KSB7IHJldHVybiAobmFtZSA9PT0gYWt0TmFtZSkgPyAnIGFrdGl2JyA6ICcnOyB9CiAgICB2YXIg
aHRtbCA9ICc8ZGl2IGNsYXNzPSJlbW9qaS1waWNrZXItZ3JpZCI+PGJ1dHRvbiB0eXBlPSJidXR0
b24iIGNsYXNzPSJlbW9qaS1waWNrZXItb3B0IGtlaW5lcicgKyBha3RpdkNscygnJykgKyAnIiBk
YXRhLXY9IiIgdGl0bGU9IktlaW4gSWNvbiI+KGtlaW4gSWNvbik8L2J1dHRvbj48L2Rpdj4nOwog
ICAgSUNPTl9TRVQuZm9yRWFjaChmdW5jdGlvbihnKSB7CiAgICAgICAgaHRtbCArPSAnPGRpdiBj
bGFzcz0iZW1vamktcGlja2VyLWthdCI+JyArIGVzY2FwZUhUTUwoZy5rYXQpICsgJzwvZGl2Picg
KwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iZW1vamktcGlja2VyLWdyaWQiPicgKwogICAgICAg
ICAgICBnLmljb25zLm1hcChmdW5jdGlvbihpYykgewogICAgICAgICAgICAgICAgcmV0dXJuICc8
YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppLXBpY2tlci1vcHQgaWNvbi1vcHQnICsg
YWt0aXZDbHMoaWMubmFtZSkgKwogICAgICAgICAgICAgICAgICAgICciIGRhdGEtdj0iJyArIGVz
Y2FwZUF0dHIoaWMubmFtZSkgKwogICAgICAgICAgICAgICAgICAgICciIHRpdGxlPSInICsgZXNj
YXBlQXR0cihpYy5sYWJlbCkgKyAnIj4nICsgaWNvblN2Z0h0bWwoaWMubmFtZSwgMjIpICsgJzwv
YnV0dG9uPic7CiAgICAgICAgICAgIH0pLmpvaW4oJycpICsKICAgICAgICAgICAgJzwvZGl2Pic7
CiAgICB9KTsKICAgIHBvcC5pbm5lckhUTUwgPSBodG1sOwogICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChwb3ApOwogICAgLy8gUGlja2VyIHN5bW1ldHJpc2NoIHplbnRyaWVydCB1bnRlciBk
ZW0gQW5rZXIsIG1pdCBWaWV3cG9ydC1DbGFtcGluZy4KICAgIC8vIFBpY2tlci1Cb3ggaXN0IDI5
NiBweCBicmVpdCAoc2llaGUgQ1NTKS4KICAgIHZhciBwdyA9IDI5NiwgcGggPSAzNjAsIG1hcmcg
PSA4OwogICAgdmFyIHIgPSBhbmNob3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICB2YXIg
YW5rZXJDZW50ZXIgPSByLmxlZnQgKyByLndpZHRoIC8gMjsKICAgIHZhciBsZWZ0ID0gTWF0aC5y
b3VuZChhbmtlckNlbnRlciAtIHB3IC8gMik7CiAgICBpZiAobGVmdCA8IG1hcmcpIGxlZnQgPSBt
YXJnOwogICAgaWYgKGxlZnQgKyBwdyA+IHdpbmRvdy5pbm5lcldpZHRoIC0gbWFyZykgbGVmdCA9
IHdpbmRvdy5pbm5lcldpZHRoIC0gcHcgLSBtYXJnOwogICAgdmFyIHRvcCA9IHIuYm90dG9tICsg
NDsKICAgIGlmICh0b3AgKyBwaCA+IHdpbmRvdy5pbm5lckhlaWdodCkgdG9wID0gTWF0aC5tYXgo
bWFyZywgci50b3AgLSBwaCAtIDQpOwogICAgcG9wLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JzsK
ICAgIHBvcC5zdHlsZS50b3AgPSB0b3AgKyAncHgnOwogICAgcG9wLmFkZEV2ZW50TGlzdGVuZXIo
J2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgIHZhciBiID0gZS50YXJnZXQuY2xvc2VzdCgn
W2RhdGEtdl0nKTsKICAgICAgICBpZiAoIWIpIHJldHVybjsKICAgICAgICBvblNlbGVjdChiLmdl
dEF0dHJpYnV0ZSgnZGF0YS12JykpOwogICAgICAgIGVtb2ppUGlja2VyU2NobGllc3NlbigpOwog
ICAgfSk7CiAgICBlbW9qaVBpY2tlckFrdGl2ID0gcG9wOwogICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGVtb2ppUGlj
a2VyQXV0b0Nsb3NlLCB7IG9uY2U6IHRydWUgfSk7CiAgICB9LCAwKTsKfQoKZnVuY3Rpb24gZW1v
amlQaWNrZXJBdXRvQ2xvc2UoZSkgewogICAgaWYgKGVtb2ppUGlja2VyQWt0aXYgJiYgIWVtb2pp
UGlja2VyQWt0aXYuY29udGFpbnMoZS50YXJnZXQpKSBlbW9qaVBpY2tlclNjaGxpZXNzZW4oKTsK
ICAgIGVsc2UgaWYgKGVtb2ppUGlja2VyQWt0aXYpIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZW1vamlQaWNrZXJBdXRvQ2xvc2UsIHsg
b25jZTogdHJ1ZSB9KTsgfSwgMCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBlbW9qaVBpY2tlclNjaGxp
ZXNzZW4oKSB7CiAgICBpZiAoZW1vamlQaWNrZXJBa3RpdikgeyBlbW9qaVBpY2tlckFrdGl2LnJl
bW92ZSgpOyBlbW9qaVBpY2tlckFrdGl2ID0gbnVsbDsgfQp9Cg==
### FILE: js/ui/modal.js | 8892
Ly8gPT09IHVpL21vZGFsLmpzID09PQovLyBHZW5lcmlzY2hlcyBNb2RhbC1TeXN0ZW06IG1vZGFs
WmVpZ2VuIC8gbW9kYWxTY2hsaWVzc2VuLCBEaXJ0eS1UcmFja2luZywKLy8gRm9ybS1EYXRlbiBs
ZXNlbi9zY2hyZWliZW4sIExvY2FsU3RvcmFnZS1FbnR3w7xyZmUgKFRUTCAxNCBUYWdlKSwgYmVz
dGFldGlnZW4oKS4KLy8KLy8gWi1TdGF0ZSBwcm8gTW9kYWwtSW5zdGFuejoKLy8gICBaLm1vZGFs
RGlydHkgICAgICAgICAgIOKAlCB0cnVlLCBzb2JhbGQgZWluIElucHV0IGdlw6RuZGVydCB3dXJk
ZQovLyAgIFoubW9kYWxPblNwZWljaGVybiAgICAg4oCUIENhbGxiYWNrIGbDvHIgZGVuIFNwZWlj
aGVybi1CdXR0b24KLy8gICBaLm1vZGFsU3BlaWNoZXJGdXNzSHRtbOKAlCBPcmlnaW5hbC1Gb290
ZXItSFRNTCwgdW0gbmFjaCBEaXJ0eS1Db25maXJtIHp1csO8Y2t6dWtlaHJlbgovLyAgIFoubW9k
YWxLZXkgICAgICAgICAgICAg4oCUIFNjaGzDvHNzZWwgZsO8ciBMb2NhbFN0b3JhZ2UtRW50d3Vy
ZiAob3B0aW9uYWwpCgppbXBvcnQgeyBaIH0gZnJvbSAnLi4vY29yZS9zdGF0ZS5qcyc7CmltcG9y
dCB7IGVzY2FwZUhUTUwgfSBmcm9tICcuLi9jb3JlL3V0aWwuanMnOwppbXBvcnQgeyB0b2FzdCB9
IGZyb20gJy4vdG9hc3QuanMnOwoKZXhwb3J0IHZhciBFTlRXVVJGX1RUTF9UQUdFID0gMTQ7CnZh
ciBFTlRXVVJGX0xTX0tFWSA9ICdmbGQubW9kYWxFbnR3dWVyZmUnOwoKZnVuY3Rpb24gZW50d3Vl
cmZlTGFkZW4oKSB7CiAgICB0cnkgeyByZXR1cm4gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0
SXRlbShFTlRXVVJGX0xTX0tFWSkgfHwgJ3t9JykgfHwge307IH0KICAgIGNhdGNoIChlKSB7IHJl
dHVybiB7fTsgfQp9CgpmdW5jdGlvbiBlbnR3dWVyZmVTcGVpY2hlcm4obWFwKSB7CiAgICB0cnkg
eyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShFTlRXVVJGX0xTX0tFWSwgSlNPTi5zdHJpbmdpZnkobWFw
KSk7IH0gY2F0Y2ggKGUpIHsgY29uc29sZS5lcnJvcignW2VudHd1ZXJmZS5zcGVpY2hlcm5dJywg
ZSk7IH0KfQoKZXhwb3J0IGZ1bmN0aW9uIGVudHd1cmZGdWVyKG1vZGFsS2V5KSB7CiAgICBpZiAo
IW1vZGFsS2V5KSByZXR1cm4gbnVsbDsKICAgIHZhciBtYXAgPSBlbnR3dWVyZmVMYWRlbigpOwog
ICAgcmV0dXJuIG1hcFttb2RhbEtleV0gfHwgbnVsbDsKfQoKZXhwb3J0IGZ1bmN0aW9uIGVudHd1
cmZTcGVpY2hlcm4obW9kYWxLZXksIHRpdGVsLCBkYXRlbikgewogICAgaWYgKCFtb2RhbEtleSkg
cmV0dXJuOwogICAgdmFyIG1hcCA9IGVudHd1ZXJmZUxhZGVuKCk7CiAgICBtYXBbbW9kYWxLZXld
ID0geyB0czogRGF0ZS5ub3coKSwgdGl0ZWw6IHRpdGVsIHx8ICcnLCBkYXRlbjogZGF0ZW4gfHwg
e30gfTsKICAgIGVudHd1ZXJmZVNwZWljaGVybihtYXApOwp9CgpleHBvcnQgZnVuY3Rpb24gZW50
d3VyZkxvZXNjaGVuKG1vZGFsS2V5KSB7CiAgICBpZiAoIW1vZGFsS2V5KSByZXR1cm47CiAgICB2
YXIgbWFwID0gZW50d3VlcmZlTGFkZW4oKTsKICAgIGlmIChtb2RhbEtleSBpbiBtYXApIHsgZGVs
ZXRlIG1hcFttb2RhbEtleV07IGVudHd1ZXJmZVNwZWljaGVybihtYXApOyB9Cn0KCmV4cG9ydCBm
dW5jdGlvbiBlbnR3dXJmQXV0b0NsZWFudXAoKSB7CiAgICB2YXIgbWFwID0gZW50d3VlcmZlTGFk
ZW4oKTsKICAgIHZhciBudW4gPSBEYXRlLm5vdygpOwogICAgdmFyIG1heCA9IEVOVFdVUkZfVFRM
X1RBR0UgKiA4NjQwMDAwMDsKICAgIHZhciBnZWFlbmRlcnQgPSBmYWxzZTsKICAgIE9iamVjdC5r
ZXlzKG1hcCkuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAgaWYgKCFtYXBba10gfHwgIW1h
cFtrXS50cyB8fCAobnVuIC0gbWFwW2tdLnRzKSA+IG1heCkgewogICAgICAgICAgICBkZWxldGUg
bWFwW2tdOyBnZWFlbmRlcnQgPSB0cnVlOwogICAgICAgIH0KICAgIH0pOwogICAgaWYgKGdlYWVu
ZGVydCkgZW50d3VlcmZlU3BlaWNoZXJuKG1hcCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBtb2RhbEZv
cm1EYXRlbkxlc2VuKCkgewogICAgdmFyIGtvZXJwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbW9kYWwta29lcnBlcicpOwogICAgaWYgKCFrb2VycGVyKSByZXR1cm4ge307CiAgICB2YXIg
ZGF0ZW4gPSB7fTsKICAgIGtvZXJwZXIucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIHRleHRhcmVh
LCBzZWxlY3QnKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgaWYgKCFlbC5pZCkgcmV0
dXJuOwogICAgICAgIGlmIChlbC50eXBlID09PSAnY2hlY2tib3gnIHx8IGVsLnR5cGUgPT09ICdy
YWRpbycpIGRhdGVuW2VsLmlkXSA9ICEhZWwuY2hlY2tlZDsKICAgICAgICBlbHNlIGRhdGVuW2Vs
LmlkXSA9IGVsLnZhbHVlOwogICAgfSk7CiAgICBrb2VycGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tj
b250ZW50ZWRpdGFibGU9InRydWUiXScpLmZvckVhY2goZnVuY3Rpb24oZWwpIHsKICAgICAgICBp
ZiAoIWVsLmlkKSByZXR1cm47CiAgICAgICAgZGF0ZW5bZWwuaWRdID0gJ19faHRtbF9fJyArIGVs
LmlubmVySFRNTDsKICAgIH0pOwogICAgcmV0dXJuIGRhdGVuOwp9CgpleHBvcnQgZnVuY3Rpb24g
bW9kYWxGb3JtRGF0ZW5TY2hyZWliZW4oZGF0ZW4pIHsKICAgIGlmICghZGF0ZW4pIHJldHVybjsK
ICAgIE9iamVjdC5rZXlzKGRhdGVuKS5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CiAgICAgICAgdmFy
IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgICAgIGlmICghZWwpIHJldHVy
bjsKICAgICAgICB2YXIgd2VydCA9IGRhdGVuW2lkXTsKICAgICAgICBpZiAodHlwZW9mIHdlcnQg
PT09ICdzdHJpbmcnICYmIHdlcnQuaW5kZXhPZignX19odG1sX18nKSA9PT0gMCkgewogICAgICAg
ICAgICBlbC5pbm5lckhUTUwgPSB3ZXJ0LnNsaWNlKDgpOwogICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgfQogICAgICAgIGlmIChlbC50eXBlID09PSAnY2hlY2tib3gnIHx8IGVsLnR5cGUgPT09
ICdyYWRpbycpIGVsLmNoZWNrZWQgPSAhIXdlcnQ7CiAgICAgICAgZWxzZSBpZiAoZWwudGFnTmFt
ZSA9PT0gJ0lOUFVUJyB8fCBlbC50YWdOYW1lID09PSAnVEVYVEFSRUEnIHx8IGVsLnRhZ05hbWUg
PT09ICdTRUxFQ1QnKSBlbC52YWx1ZSA9IHdlcnQ7CiAgICAgICAgZWxzZSBlbC5pbm5lckhUTUwg
PSB3ZXJ0OwogICAgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBtb2RhbERpcnR5VHJhY2tpbmdBa3Rp
dmllcmVuKCkgewogICAgdmFyIGtvZXJwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9k
YWwta29lcnBlcicpOwogICAgaWYgKCFrb2VycGVyKSByZXR1cm47CiAgICBmdW5jdGlvbiBtYXJr
RGlydHkoKSB7IFoubW9kYWxEaXJ0eSA9IHRydWU7IH0KICAgIHZhciBpbnB1dHMgPSBrb2VycGVy
LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBbY29udGVudGVkaXRh
YmxlPSJ0cnVlIl0nKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsr
KSB7CiAgICAgICAgaW5wdXRzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgbWFya0RpcnR5
KTsKICAgICAgICBpbnB1dHNbaV0uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgbWFya0RpcnR5
KTsKICAgIH0KfQoKZXhwb3J0IGZ1bmN0aW9uIG1vZGFsU3BlaWNoZXJCdXR0b25CaW5kZW4oKSB7
CiAgICBpZiAoIVoubW9kYWxPblNwZWljaGVybikgcmV0dXJuOwogICAgdmFyIGJ0biA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdkbGctc3BlaWNoZXJuJyk7CiAgICBpZiAoIWJ0bikgcmV0dXJu
OwogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAg
Wi5tb2RhbERpcnR5ID0gZmFsc2U7CiAgICAgICAgWi5tb2RhbE9uU3BlaWNoZXJuKCk7CiAgICB9
KTsKfQoKLy8gbW9kYWxaZWlnZW4odGl0ZWwsIGtvZXJwZXJIdG1sLCBmdXNzSHRtbCwgb25TcGVp
Y2hlcm4sIG1vZGFsS2V5PykKZXhwb3J0IGZ1bmN0aW9uIG1vZGFsWmVpZ2VuKHRpdGVsLCBrb2Vy
cGVySHRtbCwgZnVzc0h0bWwsIG9uU3BlaWNoZXJuLCBtb2RhbEtleSkgewogICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ21vZGFsLXRpdGVsJykudGV4dENvbnRlbnQgPSB0aXRlbDsKICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1rb2VycGVyJykuaW5uZXJIVE1MID0ga29lcnBl
ckh0bWw7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtZnVzcycpLmlubmVySFRN
TCA9IGZ1c3NIdG1sOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXkn
KS5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsKCiAgICBaLm1vZGFsRGlydHkgPSBmYWxz
ZTsKICAgIFoubW9kYWxPblNwZWljaGVybiA9IG9uU3BlaWNoZXJuIHx8IG51bGw7CiAgICBaLm1v
ZGFsU3BlaWNoZXJGdXNzSHRtbCA9IGZ1c3NIdG1sIHx8ICcnOwogICAgWi5tb2RhbEtleSA9IG1v
ZGFsS2V5IHx8IG51bGw7CgogICAgbW9kYWxTcGVpY2hlckJ1dHRvbkJpbmRlbigpOwogICAgbW9k
YWxEaXJ0eVRyYWNraW5nQWt0aXZpZXJlbigpOwoKICAgIGlmIChtb2RhbEtleSkgewogICAgICAg
IHZhciBlbnR3dXJmID0gZW50d3VyZkZ1ZXIobW9kYWxLZXkpOwogICAgICAgIGlmIChlbnR3dXJm
KSBtb2RhbEVudHd1cmZCYW5uZXJaZWlnZW4oZW50d3VyZik7CiAgICB9Cn0KCmV4cG9ydCBmdW5j
dGlvbiBtb2RhbFNjaGxpZXNzZW4oZm9yY2UpIHsKICAgIGlmICghZm9yY2UgJiYgWi5tb2RhbERp
cnR5KSB7CiAgICAgICAgbW9kYWxEaXJ0eUJlc3RhZXRpZ3VuZ1plaWdlbigpOwogICAgICAgIHJl
dHVybjsKICAgIH0KICAgIFoubW9kYWxEaXJ0eSA9IGZhbHNlOwogICAgWi5tb2RhbE9uU3BlaWNo
ZXJuID0gbnVsbDsKICAgIFoubW9kYWxTcGVpY2hlckZ1c3NIdG1sID0gbnVsbDsKICAgIFoubW9k
YWxLZXkgPSBudWxsOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXkn
KS5jbGFzc0xpc3QuYWRkKCd2ZXJzdGVja3QnKTsKICAgIHZhciBpbmhhbHQgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjbW9kYWwtb3ZlcmxheSAubW9kYWwtaW5oYWx0Jyk7CiAgICBpZiAoaW5o
YWx0KSBpbmhhbHQuY2xhc3NMaXN0LnJlbW92ZSgnbW9kYWwtaW5oYWx0LWdyb3NzJyk7Cn0KCmZ1
bmN0aW9uIG1vZGFsRGlydHlCZXN0YWV0aWd1bmdaZWlnZW4oKSB7CiAgICB2YXIgZnVzcyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1mdXNzJyk7CiAgICBpZiAoIWZ1c3MpIHJldHVy
bjsKICAgIGlmIChmdXNzLnF1ZXJ5U2VsZWN0b3IoJy5kaXJ0eS13YXJuLXplaWxlJykpIHJldHVy
bjsKICAgIHZhciBlbnR3dXJmQnRuID0gWi5tb2RhbEtleQogICAgICAgID8gJzxidXR0b24gY2xh
c3M9ImJ0biBidG4tc2VrIiBpZD0iZGlydHktZW50d3VyZiIgdHlwZT0iYnV0dG9uIiB0aXRsZT0i
RWluZ2FiZW4gYWxzIEVudHd1cmYgendpc2NoZW5zcGVpY2hlcm4gKG1heCAnICsgRU5UV1VSRl9U
VExfVEFHRSArICcgVGFnZSkiPkFscyBFbnR3dXJmPC9idXR0b24+JwogICAgICAgIDogJyc7CiAg
ICBmdXNzLmlubmVySFRNTCA9CiAgICAgICAgJzxkaXYgY2xhc3M9ImRpcnR5LXdhcm4temVpbGUi
IHN0eWxlPSJtYXJnaW4tcmlnaHQ6YXV0bztjb2xvcjp2YXIoLS1mYXJiZS13YXJudW5nKTtmb250
LXdlaWdodDo2MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4Ij4nICsK
ICAgICAgICAgICAgJzxzcGFuPuKaoDwvc3Bhbj48c3Bhbj5Vbmdlc3BlaWNoZXJ0ZSDDhG5kZXJ1
bmdlbiDigJQgd2lya2xpY2ggdmVyd2VyZmVuPzwvc3Bhbj4nICsKICAgICAgICAnPC9kaXY+JyAr
CiAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biIgaWQ9ImRpcnR5LXp1cnVlY2siIHR5cGU9ImJ1
dHRvbiI+V2VpdGVyIGJlYXJiZWl0ZW48L2J1dHRvbj4nICsKICAgICAgICBlbnR3dXJmQnRuICsK
ICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1nZWZhaHIiIGlkPSJkaXJ0eS12ZXJ3ZXJm
ZW4iIHR5cGU9ImJ1dHRvbiI+VmVyd2VyZmVuPC9idXR0b24+JzsKICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkaXJ0eS16dXJ1ZWNrJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5j
dGlvbigpIHsKICAgICAgICBmdXNzLmlubmVySFRNTCA9IFoubW9kYWxTcGVpY2hlckZ1c3NIdG1s
IHx8ICcnOwogICAgICAgIG1vZGFsU3BlaWNoZXJCdXR0b25CaW5kZW4oKTsKICAgIH0pOwogICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpcnR5LXZlcndlcmZlbicpLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgbW9kYWxTY2hsaWVzc2VuKHRydWUpOwog
ICAgfSk7CiAgICB2YXIgZW50d3VyZkVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpcnR5
LWVudHd1cmYnKTsKICAgIGlmIChlbnR3dXJmRWwpIGVudHd1cmZFbC5hZGRFdmVudExpc3RlbmVy
KCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciB0aXRlbCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdtb2RhbC10aXRlbCcpID8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFs
LXRpdGVsJykudGV4dENvbnRlbnQgOiAnJzsKICAgICAgICBlbnR3dXJmU3BlaWNoZXJuKFoubW9k
YWxLZXksIHRpdGVsLCBtb2RhbEZvcm1EYXRlbkxlc2VuKCkpOwogICAgICAgIHRvYXN0KCdBbHMg
RW50d3VyZiBnZXNwZWljaGVydCAoJyArIEVOVFdVUkZfVFRMX1RBR0UgKyAnIFRhZ2UgaGFsdGJh
ciknLCAnZXJmb2xnJyk7CiAgICAgICAgbW9kYWxTY2hsaWVzc2VuKHRydWUpOwogICAgfSk7Cn0K
CmV4cG9ydCBmdW5jdGlvbiBtb2RhbEVudHd1cmZCYW5uZXJaZWlnZW4oZW50d3VyZikgewogICAg
dmFyIGtvZXJwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwta29lcnBlcicpOwog
ICAgaWYgKCFrb2VycGVyIHx8ICFlbnR3dXJmKSByZXR1cm47CiAgICB2YXIgYWx0VGFnZSA9IE1h
dGgubWF4KDAsIE1hdGguZmxvb3IoKERhdGUubm93KCkgLSBlbnR3dXJmLnRzKSAvIDg2NDAwMDAw
KSk7CiAgICB2YXIgYWx0VGV4dCA9IGFsdFRhZ2UgPT09IDAgPyAnaGV1dGUnIDogKGFsdFRhZ2Ug
PT09IDEgPyAnZ2VzdGVybicgOiAndm9yICcgKyBhbHRUYWdlICsgJyBUYWdlbicpOwogICAgdmFy
IGJhbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgYmFubmVyLmNsYXNz
TmFtZSA9ICdtb2RhbC1lbnR3dXJmLWJhbm5lcic7CiAgICBiYW5uZXIuaW5uZXJIVE1MID0KICAg
ICAgICAnPHNwYW4gY2xhc3M9Im1lYi1pY29uIj7wn5OdPC9zcGFuPicgKwogICAgICAgICc8c3Bh
biBjbGFzcz0ibWViLXRleHQiPkR1IGhhc3QgaGllciBlaW5lbiBFbnR3dXJmIHZvbiA8c3Ryb25n
PicgKyBlc2NhcGVIVE1MKGFsdFRleHQpICsgJzwvc3Ryb25nPiBsaWVnZW4uIFdpZWRlcmhlcnN0
ZWxsZW4/PC9zcGFuPicgKwogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWtsZWluIGJ0
bi1wcmltYWVyIiB0eXBlPSJidXR0b24iIGlkPSJtZWItcmVzdG9yZSI+V2llZGVyaGVyc3RlbGxl
bjwvYnV0dG9uPicgKwogICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWtsZWluIiB0eXBl
PSJidXR0b24iIGlkPSJtZWItdmVyd2VyZmVuIiB0aXRsZT0iRW50d3VyZiBlbmRnw7xsdGlnIGzD
tnNjaGVuIj5WZXJ3ZXJmZW48L2J1dHRvbj4nOwogICAga29lcnBlci5pbnNlcnRCZWZvcmUoYmFu
bmVyLCBrb2VycGVyLmZpcnN0Q2hpbGQpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21l
Yi1yZXN0b3JlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAg
ICBtb2RhbEZvcm1EYXRlblNjaHJlaWJlbihlbnR3dXJmLmRhdGVuKTsKICAgICAgICBlbnR3dXJm
TG9lc2NoZW4oWi5tb2RhbEtleSk7CiAgICAgICAgYmFubmVyLnJlbW92ZSgpOwogICAgICAgIFou
bW9kYWxEaXJ0eSA9IHRydWU7CiAgICAgICAgdG9hc3QoJ0VudHd1cmYgd2llZGVyaGVyZ2VzdGVs
bHQnLCAnZXJmb2xnJyk7CiAgICB9KTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWIt
dmVyd2VyZmVuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAg
ICBlbnR3dXJmTG9lc2NoZW4oWi5tb2RhbEtleSk7CiAgICAgICAgYmFubmVyLnJlbW92ZSgpOwog
ICAgICAgIHRvYXN0KCdFbnR3dXJmIGdlbMO2c2NodCcsICdpbmZvJyk7CiAgICB9KTsKfQoKZXhw
b3J0IGZ1bmN0aW9uIGJlc3RhZXRpZ2VuKHRleHQsIG9uSmEsIHRpdGVsKSB7CiAgICB2YXIga29l
cnBlciA9ICc8ZGl2IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUtbGluZTtsaW5lLWhlaWdodDoxLjU7
cGFkZGluZzo4cHggMCI+JyArIGVzY2FwZUhUTUwodGV4dCkgKyAnPC9kaXY+JzsKICAgIHZhciBm
dXNzID0gJzxidXR0b24gY2xhc3M9ImJ0biIgaWQ9ImJlc3QtbmVpbiIgdHlwZT0iYnV0dG9uIj5B
YmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBi
dG4tcHJpbWFlciIgaWQ9ImJlc3QtamEiIHR5cGU9ImJ1dHRvbiI+QmVzdMOkdGlnZW48L2J1dHRv
bj4nOwogICAgbW9kYWxaZWlnZW4odGl0ZWwgfHwgJ0Jlc3TDpHRpZ3VuZycsIGtvZXJwZXIsIGZ1
c3MsIG51bGwpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jlc3QtamEnKS5hZGRFdmVu
dExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIG1vZGFsU2NobGllc3Nlbih0
cnVlKTsKICAgICAgICBpZiAodHlwZW9mIG9uSmEgPT09ICdmdW5jdGlvbicpIG9uSmEoKTsKICAg
IH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jlc3QtbmVpbicpLmFkZEV2ZW50TGlz
dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7IG1vZGFsU2NobGllc3Nlbih0cnVlKTsgfSk7Cn0K
### FILE: js/ui/rte.js | 5310
Ly8gPT09IHVpL3J0ZS5qcyA9PT0KLy8gUmljaC1UZXh0LUVkaXRvcjogY29udGVudEVkaXRhYmxl
ICsgVG9vbGJhciArIEhUTUwtU2FuaXRpemVyLgovLwovLyBzYW5pdGl6ZVJpY2hIdG1sOiBET01Q
YXJzZXItYmFzaWVydCBtaXQgVGFnLVdoaXRlbGlzdCArIGhyZWYtU2FuaXRpemF0aW9uLgovLyBX
aXJkIHNvd29obCBiZWltIFBhc3RlLUhhbmRsZXIgaW0gRWRpdG9yIGFscyBhdWNoIGJlaW0gTGFk
ZW4vU3BlaWNoZXJuCi8vIHZvbiBBZG1pbi1UZXh0ZW4gKGluZm8tcnRlLCBFcmlubmVydW5nZW4p
IHZlcndlbmRldC4gRGVyIGZydWVoZXIgc2VwYXJhdGUKLy8gcnRlU2FuaXRpemUtTWluaS1GaWx0
ZXIgd3VyZGUgaW4gQXVkaXQtUGhhc2UtMiBlbnRmZXJudCwgd2VpbCBlciBhbHMKLy8gUmVnZXgt
YmFzaWVydGVyIFN0cmlwcGVyIFNWRy0vaWZyYW1lLS9vYmplY3QtVGFncyBkdXJjaGxpZXNzIChD
VkUtVmVrdG9yCi8vIHJ0ZVNhbml0aXplIHdhciBXaGl0ZWxpc3QtT2ZmLCBzYW5pdGl6ZVJpY2hI
dG1sIGlzdCBXaGl0ZWxpc3QtT24pLgoKaW1wb3J0IHsgZXNjYXBlSFRNTCB9IGZyb20gJy4uL2Nv
cmUvdXRpbC5qcyc7CgpleHBvcnQgZnVuY3Rpb24gc2FuaXRpemVSaWNoSHRtbChodG1sKSB7CiAg
ICBpZiAoIWh0bWwpIHJldHVybiAnJzsKICAgIHZhciBhbGxvd2VkID0geyBCOjEsIFNUUk9ORzox
LCBJOjEsIEVNOjEsIFU6MSwgQlI6MSwgUDoxLCBVTDoxLCBPTDoxLCBMSToxLCBBOjEsIERJVjox
LCBTUEFOOjEgfTsKICAgIHZhciBkb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5n
KCc8IWRvY3R5cGUgaHRtbD48Ym9keT4nICsgaHRtbCArICc8L2JvZHk+JywgJ3RleHQvaHRtbCcp
OwogICAgKGZ1bmN0aW9uIHdhbGsobm9kZSkgewogICAgICAgIHZhciBjaGlsZCA9IG5vZGUuZmly
c3RDaGlsZDsKICAgICAgICB3aGlsZSAoY2hpbGQpIHsKICAgICAgICAgICAgdmFyIG5leHQgPSBj
aGlsZC5uZXh0U2libGluZzsKICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlID09PSAxKSB7
CiAgICAgICAgICAgICAgICB2YXIgdGFnID0gY2hpbGQudGFnTmFtZTsKICAgICAgICAgICAgICAg
IGlmICghYWxsb3dlZFt0YWddKSB7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNoaWxkLmZp
cnN0Q2hpbGQpIG5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkLmZpcnN0Q2hpbGQsIGNoaWxkKTsKICAg
ICAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKGNoaWxkKTsKICAgICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IGNoaWxkLmF0dHJpYnV0
ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IGF0dHIgPSBjaGlsZC5hdHRyaWJ1dGVzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBrZWVwID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWcgPT09ICdB
JyAmJiAoYXR0ciA9PT0gJ2hyZWYnIHx8IGF0dHIgPT09ICd0YXJnZXQnIHx8IGF0dHIgPT09ICdy
ZWwnKSkga2VlcCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgha2VlcCkgY2hp
bGQucmVtb3ZlQXR0cmlidXRlKGF0dHIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICBpZiAodGFnID09PSAnQScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IGhyZWYgPSBjaGlsZC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSB8fCAnJzsKICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKC9eXHMqKGphdmFzY3JpcHR8ZGF0YSk6L2kudGVzdChocmVmKSkgY2hpbGQu
cmVtb3ZlQXR0cmlidXRlKCdocmVmJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLnNl
dEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpOwogICAgICAgICAgICAgICAgICAgICAgICBj
aGlsZC5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdub29wZW5lciBub3JlZmVycmVyJyk7CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHdhbGsoY2hpbGQpOwogICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkLm5vZGVUeXBlICE9PSAzICYmIGNo
aWxkLm5vZGVUeXBlICE9PSA4KSB7CiAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKGNo
aWxkKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjaGlsZCA9IG5leHQ7CiAgICAgICAgfQog
ICAgfSkoZG9jLmJvZHkpOwogICAgcmV0dXJuIGRvYy5ib2R5LmlubmVySFRNTDsKfQoKLy8gVG9v
bGJhci1CdWlsZGVyIGbDvHIgZGllIHJlZHV6aWVydGUgUlRFLVRvb2xiYXIgKEJvbGQvSXRhbGlj
L1VuZGVybGluZS9MaXN0ZW4vCi8vIEVpbnLDvGNrdW5nL0Zvcm1hdC1lbnRmZXJuZW4pLiBHZW51
dHp0IHZvbiBpbmZvUnRlUmVuZGVybigpIHVuZCBFcmlubmVydW5ncy1UZXh0LQovLyBFZGl0b3Ig
aW4gZWluc3RlbGx1bmdlblJlbmRlcm4oKS4KZXhwb3J0IGZ1bmN0aW9uIHJ0ZVRvb2xiYXJCYXVl
bih0YiwgZWQpIHsKICAgIGlmICghdGIgfHwgIWVkIHx8IHRiLmRhdGFzZXQuYmVyZWl0KSByZXR1
cm47CiAgICB0Yi5pbm5lckhUTUwgPQogICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0
YS1jbWQ9ImJvbGQiIHRpdGxlPSJGZXR0IChTdHJnK0IpIj48Yj5CPC9iPjwvYnV0dG9uPicgKwog
ICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1jbWQ9Iml0YWxpYyIgdGl0bGU9Ikt1
cnNpdiAoU3RyZytJKSI+PGk+STwvaT48L2J1dHRvbj4nICsKICAgICAgICAnPGJ1dHRvbiB0eXBl
PSJidXR0b24iIGRhdGEtY21kPSJ1bmRlcmxpbmUiIHRpdGxlPSJVbnRlcnN0cmljaGVuIChTdHJn
K1UpIj48dT5VPC91PjwvYnV0dG9uPicgKwogICAgICAgICc8c3BhbiBjbGFzcz0icnRlLXNlcCI+
PC9zcGFuPicgKwogICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1jbWQ9Imluc2Vy
dFVub3JkZXJlZExpc3QiIHRpdGxlPSJBdWZ6w6RobHVuZ3NsaXN0ZSI+4oCiIExpc3RlPC9idXR0
b24+JyArCiAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBkYXRhLWNtZD0iaW5zZXJ0T3Jk
ZXJlZExpc3QiIHRpdGxlPSJOdW1tZXJpZXJ0ZSBMaXN0ZSI+MS4gTGlzdGU8L2J1dHRvbj4nICsK
ICAgICAgICAnPHNwYW4gY2xhc3M9InJ0ZS1zZXAiPjwvc3Bhbj4nICsKICAgICAgICAnPGJ1dHRv
biB0eXBlPSJidXR0b24iIGRhdGEtY21kPSJvdXRkZW50IiB0aXRsZT0iRWlucsO8Y2t1bmcgdmVy
cmluZ2VybiI+4oaQPC9idXR0b24+JyArCiAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBk
YXRhLWNtZD0iaW5kZW50IiB0aXRsZT0iRWlucsO8Y2t1bmcgZXJow7ZoZW4iPuKGkjwvYnV0dG9u
PicgKwogICAgICAgICc8c3BhbiBjbGFzcz0icnRlLXNlcCI+PC9zcGFuPicgKwogICAgICAgICc8
YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1jbWQ9InJlbW92ZUZvcm1hdCIgdGl0bGU9IkZvcm1h
dGllcnVuZyBlbnRmZXJuZW4iPsOXPC9idXR0b24+JzsKICAgIHRiLmRhdGFzZXQuYmVyZWl0ID0g
JzEnOwogICAgdGIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAg
ICAgdmFyIGJ0biA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2J1dHRvbltkYXRhLWNtZF0nKTsKICAgICAg
ICBpZiAoIWJ0bikgcmV0dXJuOwogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICBl
ZC5mb2N1cygpOwogICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKGJ0bi5nZXRBdHRyaWJ1dGUo
J2RhdGEtY21kJyksIGZhbHNlLCBudWxsKTsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gcnRl
SW5pdChlZGl0b3IpIHsKICAgIHZhciB0b29sYmFyID0gZWRpdG9yLnBhcmVudEVsZW1lbnQucXVl
cnlTZWxlY3RvcignLnJ0ZS10b29sYmFyJyk7CiAgICBpZiAodG9vbGJhcikgewogICAgICAgIHRv
b2xiYXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAg
ICAgICB2YXIgYnRuID0gZS50YXJnZXQuY2xvc2VzdCgnW2RhdGEtY21kXScpOwogICAgICAgICAg
ICBpZiAoIWJ0bikgcmV0dXJuOwogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7IC8vIGJl
aMOkbHQgU2VsZWN0aW9uIGltIEVkaXRvcgogICAgICAgICAgICB2YXIgY21kID0gYnRuLmdldEF0
dHJpYnV0ZSgnZGF0YS1jbWQnKTsKICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoY21k
LCBmYWxzZSwgbnVsbCk7CiAgICAgICAgICAgIHJ0ZUJ1dHRvblN0YXRlcyhlZGl0b3IsIHRvb2xi
YXIpOwogICAgICAgIH0pOwogICAgICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcs
IGZ1bmN0aW9uKCkgeyBydGVCdXR0b25TdGF0ZXMoZWRpdG9yLCB0b29sYmFyKTsgfSk7CiAgICAg
ICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmdW5jdGlvbigpIHsgcnRlQnV0
dG9uU3RhdGVzKGVkaXRvciwgdG9vbGJhcik7IH0pOwogICAgfQogICAgLy8gUGFzdGU6IEhUTUwg
YmVyZWluaWdlbgogICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgZnVuY3Rpb24o
ZSkgewogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB2YXIgaHRtbCA9IChlLmNs
aXBib2FyZERhdGEgfHwgd2luZG93LmNsaXBib2FyZERhdGEpLmdldERhdGEoJ3RleHQvaHRtbCcp
OwogICAgICAgIHZhciB0ZXh0ID0gKGUuY2xpcGJvYXJkRGF0YSB8fCB3aW5kb3cuY2xpcGJvYXJk
RGF0YSkuZ2V0RGF0YSgndGV4dC9wbGFpbicpOwogICAgICAgIHZhciBpbnNlcnQgPSBodG1sID8g
c2FuaXRpemVSaWNoSHRtbChodG1sKSA6IGVzY2FwZUhUTUwodGV4dCkucmVwbGFjZSgvXHI/XG4v
ZywgJzxicj4nKTsKICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0SFRNTCcsIGZh
bHNlLCBpbnNlcnQpOwogICAgfSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBydGVCdXR0b25TdGF0ZXMo
ZWRpdG9yLCB0b29sYmFyKSB7CiAgICB0b29sYmFyLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWNt
ZF0nKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0bikgewogICAgICAgIHZhciBjbWQgPSBidG4uZ2V0QXR0
cmlidXRlKCdkYXRhLWNtZCcpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmIChkb2N1bWVu
dC5xdWVyeUNvbW1hbmRTdGF0ZShjbWQpKSBidG4uY2xhc3NMaXN0LmFkZCgnYWt0aXYnKTsKICAg
ICAgICAgICAgZWxzZSBidG4uY2xhc3NMaXN0LnJlbW92ZSgnYWt0aXYnKTsKICAgICAgICB9IGNh
dGNoIChlKSB7IGNvbnNvbGUuZXJyb3IoJ1tydGUuYnV0dG9uU3RhdGVdJywgY21kLCBlKTsgfQog
ICAgfSk7Cn0K
### FILE: js/ui/theme-branding.js | 2847
Ly8gPT09IHVpL3RoZW1lLWJyYW5kaW5nLmpzID09PQovLyBUaGVtZS1Ub2dnbGUgKGxpZ2h0L2Rh
cmspICsgQ3VzdG9tLUxvZ28gKyBWb3JnYWJlLUFuemVpZ2UtTW9kdXMuCi8vCi8vIGBhcHBCcmFu
ZGluZ0Fud2VuZGVuYCAoQnJvd3Nlci1UaXRlbCArIEhlYWRlci1IMSkgYmxlaWJ0IHZvcmVyc3Qg
aW4gYXBwLmpzLAovLyB3ZWlsIHNpZSBhdWYgaGVhZGVyTGFiZWxzQW53ZW5kZW4oKSB6dWdyZWlm
dCwgZGFzIGVyc3QgaW4gUGhhc2UgNS82Ci8vIGV4dHJhaGllcnQgd2lyZC4gU29iYWxkIGdyaWQv
cmVuZGVyLmpzIGRyaW4gaXN0LCB6aWVodCBhcHBCcmFuZGluZyBoaWVyaGVyLgoKaW1wb3J0IHsg
WiB9IGZyb20gJy4uL2NvcmUvc3RhdGUuanMnOwppbXBvcnQgeyBlc2NhcGVBdHRyIH0gZnJvbSAn
Li4vY29yZS91dGlsLmpzJzsKCmV4cG9ydCBmdW5jdGlvbiB0aGVtZVVtc2NoYWx0ZW4oKSB7CiAg
ICB2YXIgYWt0dWVsbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rh
dGEtdGhlbWUnKTsKICAgIHZhciBuZXUgPSBha3R1ZWxsID09PSAnbmlnaHQnID8gJycgOiAnbmln
aHQnOwogICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS10aGVt
ZScsIG5ldSk7CiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndmkzLXRoZW1lJywgbmV1KTsKICAg
IHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXRoZW1lJyk7CiAgICBpZiAo
YnRuKSBidG4udGl0bGUgPSBuZXUgPT09ICduaWdodCcgPyAnQXVmIFRhZy1Nb2R1cyB1bXNjaGFs
dGVuJyA6ICdBdWYgTmFjaHQtTW9kdXMgdW1zY2hhbHRlbic7Cn0KCmV4cG9ydCBmdW5jdGlvbiB0
aGVtZVdpZWRlcmhlcnN0ZWxsZW4oKSB7CiAgICB2YXIgZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVt
KCd2aTMtdGhlbWUnKSB8fCAnJzsKICAgIGlmIChnID09PSAnbmlnaHQnKSB7CiAgICAgICAgZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS10aGVtZScsICduaWdodCcp
OwogICAgICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXRoZW1lJyk7
CiAgICAgICAgaWYgKGJ0bikgYnRuLnRpdGxlID0gJ0F1ZiBUYWctTW9kdXMgdW1zY2hhbHRlbic7
CiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBjdXN0b21Mb2dvQW53ZW5kZW4oKSB7CiAgICB2YXIg
aG9laGUgPSBwYXJzZUludCgoWi5hZG1pbiAmJiBaLmFkbWluLmN1c3RvbUxvZ29Ib2VoZSkgfHwg
MjgsIDEwKTsKICAgIGlmIChpc05hTihob2VoZSkgfHwgaG9laGUgPCAyNCkgaG9laGUgPSAyNDsK
ICAgIGlmIChob2VoZSA+IDEyMCkgaG9laGUgPSAxMjA7CiAgICBkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3VzdG9tLWxvZ28taG9laGUnLCBob2VoZSArICdw
eCcpOwoKICAgIHZhciBzbG90ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N1c3RvbS1sb2dv
LXNsb3QnKTsKICAgIGlmICghc2xvdCkgcmV0dXJuOwogICAgdmFyIHVybCA9IChaLmFkbWluICYm
IFouYWRtaW4uY3VzdG9tTG9nbykgfHwgJyc7CiAgICBpZiAodXJsKSB7CiAgICAgICAgc2xvdC5p
bm5lckhUTUwgPSAnPGltZyBzcmM9IicgKyBlc2NhcGVBdHRyKHVybCkgKyAnIiBhbHQ9IkxvZ28i
IGNsYXNzPSJjdXN0b20tbG9nbyI+JzsKICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5h
ZGQoJ2N1c3RvbS1sb2dvLWFrdGl2Jyk7CiAgICB9IGVsc2UgewogICAgICAgIHNsb3QuaW5uZXJI
VE1MID0gJyc7CiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjdXN0b20t
bG9nby1ha3RpdicpOwogICAgfQogICAgLy8gVm9yc2NoYXUgaW0gRWluc3RlbGx1bmdlbi1UYWIg
c3luY2hyb24gaGFsdGVuCiAgICB2YXIgdm9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vp
bnMtbG9nby12b3JzY2hhdScpOwogICAgaWYgKHZvcikgewogICAgICAgIHZvci5pbm5lckhUTUwg
PSB1cmwKICAgICAgICAgICAgPyAnPGltZyBzcmM9IicgKyBlc2NhcGVBdHRyKHVybCkgKyAnIiBz
dHlsZT0ibWF4LWhlaWdodDozNnB4O21heC13aWR0aDo1NnB4O29iamVjdC1maXQ6Y29udGFpbiI+
JwogICAgICAgICAgICA6ICdrZWluIExvZ28nOwogICAgfQogICAgLy8gU2xpZGVyL051bWJlciBz
eW5jaHJvbiBoYWx0ZW4KICAgIHZhciBzbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlaW5z
LWxvZ28taG9laGUnKTsKICAgIHZhciBudW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWlu
cy1sb2dvLWhvZWhlLW51bScpOwogICAgaWYgKHNsKSAgc2wudmFsdWUgID0gaG9laGU7CiAgICBp
ZiAobnVtKSBudW0udmFsdWUgPSBob2VoZTsKfQoKLy8gRGVmYXVsdCA9IGdhbnplIFplbGxlIGlu
IFNjaGljaHRmYXJiZSAoa2VpbiBCb2R5LUNsYXNzKS4KLy8gUGlsbGUtTW9kdXMgPSBib2R5LnZv
cmdhYmUtcGlsbGUg4oCUIG9wdC1pbiB2aWEgYWRtaW4udm9yZ2FiZUFsc1BpbGxlLgpleHBvcnQg
ZnVuY3Rpb24gdm9yZ2FiZUFuemVpZ2VBbndlbmRlbigpIHsKICAgIHZhciBhbHNQaWxsZSA9ICEh
KFouYWRtaW4gJiYgWi5hZG1pbi52b3JnYWJlQWxzUGlsbGUpOwogICAgZG9jdW1lbnQuYm9keS5j
bGFzc0xpc3QudG9nZ2xlKCd2b3JnYWJlLXBpbGxlJywgYWxzUGlsbGUpOwogICAgLy8gQWx0ZSBC
b2R5LUtsYXNzZW4gKyBsb2NhbFN0b3JhZ2UtS2V5IGF1ZnLDpHVtZW4uCiAgICBkb2N1bWVudC5i
b2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3ZvcmdhYmUtZmlsbCcpOwogICAgdHJ5IHsgbG9jYWxTdG9y
YWdlLnJlbW92ZUl0ZW0oJ2ZsZF92b3JnYWJlX21vZHVzJyk7IH0gY2F0Y2ggKGUpIHt9Cn0K
### FILE: js/ui/toast.js | 742
Ly8gPT09IHVpL3RvYXN0LmpzID09PQovLyBUb2FzdC1IaW53ZWlzZSAoRXJmb2xnL1dhcm51bmcv
RmVobGVyL0luZm8pLgovLyBgc3luY1RvYXN0RGVib3VuY2VkYCBsZWJ0IGluIHN5bmMvc3luYy1j
bGllbnQuanMgKGVpZ2VuZSBMb2dpayBtaXQgUHVmZmVyKS4KCmV4cG9ydCBmdW5jdGlvbiB0b2Fz
dCh0ZXh0LCB0eXAsIG9wdCkgewogICAgb3B0ID0gb3B0IHx8IHt9OwogICAgdmFyIGMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndG9hc3QtY29udGFpbmVyJyk7CiAgICB2YXIgZWwgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGVsLmNsYXNzTmFtZSA9ICd0b2FzdCB0b2Fz
dC0nICsgKHR5cCB8fCAnaW5mbycpOwogICAgZWwudGV4dENvbnRlbnQgPSB0ZXh0OwogICAgaWYg
KHR5cGVvZiBvcHQub25DbGljayA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIGVsLnN0eWxlLmN1
cnNvciA9ICdwb2ludGVyJzsKICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1
bmN0aW9uKCkgewogICAgICAgICAgICB0cnkgeyBvcHQub25DbGljaygpOyB9IGNhdGNoIChlKSB7
IGNvbnNvbGUuZXJyb3IoJ1t0b2FzdC5vbkNsaWNrXScsIGUpOyB9CiAgICAgICAgICAgIGVsLnJl
bW92ZSgpOwogICAgICAgIH0pOwogICAgfQogICAgYy5hcHBlbmRDaGlsZChlbCk7CiAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyBlbC5yZW1vdmUoKTsgfSwgb3B0LmRhdWVyIHx8IDQwMDApOwp9
Cg==
### FILE: js/wochenplan/wochenplan.js | 22123
Ly8gPT09IHdvY2hlbnBsYW4vd29jaGVucGxhbi5qcyA9PT0KLy8gV29jaGVucGxhbi1BbnNpY2h0
ICg3LVRhZ2Utw5xiZXJzaWNodCBkZXIgRGllbnN0dm9ycGxhbnVuZykgKwovLyBwZXJzw7ZubGlj
aGVyIFBsYW4tRHJ1Y2sgKFBQIOKAlCBNb25hdHMtS2FsZW5kZXIgbWl0IGVpZ2VuZW4gU2NoaWNo
dGVuKS4KCmltcG9ydCB7IFogfSBmcm9tICcuLi9jb3JlL3N0YXRlLmpzJzsKaW1wb3J0IHsKICAg
IGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIsIGRhdHVtU3RyLCBkYXR1bUZvcm1hdERFLCBkYXR1bUt1
cnpERSwKICAgIHdvY2hlbnRhZ0t1cnosIG1vbmF0c05hbWUsIGlzb0thbGVuZGVyd29jaGUsIGlz
dFdvY2hlbmVuZGUsCiAgICBwZXJzb25OYW1lLCBwZXJzb25Wb2xsTmFtZSwgZGllbnN0Z3JhZFJh
bmcKfSBmcm9tICcuLi9jb3JlL3V0aWwuanMnOwppbXBvcnQgeyBhcGksIGFwaVBvc3QsIGFwaVB1
dCB9IGZyb20gJy4uL2NvcmUvYXBpLmpzJzsKaW1wb3J0IHsgdG9hc3QgfSBmcm9tICcuLi91aS90
b2FzdC5qcyc7CmltcG9ydCB7IG1vZGFsWmVpZ2VuLCBtb2RhbFNjaGxpZXNzZW4sIGJlc3RhZXRp
Z2VuIH0gZnJvbSAnLi4vdWkvbW9kYWwuanMnOwppbXBvcnQgeyBkYXJmRGF0dW1FZGl0aWVyZW4s
IGlzdEluVmVyYmluZGxpY2hrZWl0IH0gZnJvbSAnLi4vY29yZS9wZXJtaXNzaW9ucy5qcyc7Cmlt
cG9ydCB7IHRhZ2VzZGF0ZW5GdWVyLCBpc3RCZXNldHp1bmdGdWVyIH0gZnJvbSAnLi4vZ3JpZC90
YWdlc2RhdGVuLmpzJzsKaW1wb3J0IHsgc2FuaXRpemVSaWNoSHRtbCwgcnRlVG9vbGJhckJhdWVu
IH0gZnJvbSAnLi4vdWkvcnRlLmpzJzsKCi8vIE1vZHVsLXByaXZhdGUgU3RhdGUgKHdhcmVuIGZy
w7xoZXIgVG9wLUxldmVsIHp3aXNjaGVuIGRlbiBGdW5rdGlvbmVuIGluIGFwcC5qcykKdmFyIHdw
T2Zmc2V0ID0gMDsgLy8gV29jaGVub2Zmc2V0IHJlbGF0aXYgenVyIGFrdHVlbGxlbiBXb2NoZQoK
CmV4cG9ydCBmdW5jdGlvbiB3cFdvY2hlVGFnZShvZmZzZXQpIHsKICAgIHZhciBoZXV0ZSA9IG5l
dyBEYXRlKCk7CiAgICAvLyBNb250YWcgZGVyIGFrdHVlbGxlbiBXb2NoZSBiZXJlY2huZW4KICAg
IHZhciB0YWcgPSBoZXV0ZS5nZXREYXkoKTsgLy8gMD1TbywgMT1NbywgLi4uCiAgICB2YXIgZGlm
ZiA9IHRhZyA9PT0gMCA/IC02IDogMSAtIHRhZzsKICAgIHZhciBtb250YWcgPSBuZXcgRGF0ZSho
ZXV0ZSk7CiAgICBtb250YWcuc2V0RGF0ZShtb250YWcuZ2V0RGF0ZSgpICsgZGlmZiArIChvZmZz
ZXQgKiA3KSk7CiAgICBtb250YWcuc2V0SG91cnMoMCwgMCwgMCwgMCk7CgogICAgdmFyIHRhZ2Ug
PSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNzsgaSsrKSB7CiAgICAgICAgdmFyIGQgPSBu
ZXcgRGF0ZShtb250YWcpOwogICAgICAgIGQuc2V0RGF0ZShkLmdldERhdGUoKSArIGkpOwogICAg
ICAgIHRhZ2UucHVzaChkKTsKICAgIH0KICAgIHJldHVybiB0YWdlOwp9CgovLyBJU08tS2FsZW5k
ZXJ3b2NoZSAoTW8tU28pIGbDvHIgZWluIERhdHVtCi8vIGlzb0thbGVuZGVyd29jaGU6IGpldHp0
IGluIGpzL2NvcmUvdXRpbC5qcwoKZXhwb3J0IGZ1bmN0aW9uIHdwS3dLZXkoZCkgewogICAgdmFy
IGl3ID0gaXNvS2FsZW5kZXJ3b2NoZShkKTsKICAgIHJldHVybiBpdy5qYWhyICsgJy1XJyArIChp
dy5rdyA8IDEwID8gJzAnICsgaXcua3cgOiBpdy5rdyk7Cn0KCi8vIE1pbmRlc3QtWmVpbGVuemFo
bCBpbSBXb2NoZW5wbGFuIChlbnRzcHJpY2h0IGRlciBFeGNlbC1Wb3JsYWdlIG1pdCBTbG90cyAx
Li4zNikuCi8vIEF1Y2ggb2huZSBha3RpdmUgUGVyc29uZW4gd2lyZCBzbyBlaW4gdm9sbHN0w6Ru
ZGlnZXMgVGVtcGxhdGUgYW5nZXplaWd0LgpleHBvcnQgdmFyIFdQX01JTl9aRUlMRU4gPSAzNjsK
CmV4cG9ydCBmdW5jdGlvbiB3cFJlbmRlcm4oKSB7CiAgICB0cnkgeyByZXR1cm4gX3dwUmVuZGVy
bklubmVyKCk7IH0KICAgIGNhdGNoIChlKSB7CiAgICAgICAgY29uc29sZS5lcnJvcignW3dwUmVu
ZGVybl0nLCBlKTsKICAgICAgICB2YXIgcGFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3
cC1wYWdlJyk7CiAgICAgICAgaWYgKHBhZ2UpIHsKICAgICAgICAgICAgcGFnZS5pbm5lckhUTUwg
PSAnPGRpdiBjbGFzcz0id3Atc2VpdGUiPjxkaXYgc3R5bGU9InBhZGRpbmc6NDBweDtjb2xvcjoj
YzAzOTJiIj4nICsKICAgICAgICAgICAgICAgICc8aDI+RmVobGVyIGJlaW0gUmVuZGVybiBkZXMg
V29jaGVucGxhbnM8L2gyPicgKwogICAgICAgICAgICAgICAgJzxwPjxzdHJvbmc+JyArIGVzY2Fw
ZUhUTUwoZSAmJiBlLm1lc3NhZ2UgfHwgU3RyaW5nKGUpKSArICc8L3N0cm9uZz48L3A+JyArCiAg
ICAgICAgICAgICAgICAnPHByZSBzdHlsZT0iZm9udC1zaXplOjExcHg7d2hpdGUtc3BhY2U6cHJl
LXdyYXA7YmFja2dyb3VuZDojZmVlO3BhZGRpbmc6OHB4O2JvcmRlci1yYWRpdXM6M3B4Ij4nICsg
ZXNjYXBlSFRNTChlICYmIGUuc3RhY2sgfHwgJycpICsgJzwvcHJlPicgKwogICAgICAgICAgICAg
ICAgJzwvZGl2PjwvZGl2Pic7CiAgICAgICAgfQogICAgICAgIHRvYXN0KCdGZWhsZXIgaW0gV29j
aGVucGxhbjogJyArIChlICYmIGUubWVzc2FnZSB8fCBlKSwgJ2ZlaGxlcicsIHsgZGF1ZXI6IDgw
MDAgfSk7CiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBfd3BSZW5kZXJuSW5uZXIoKSB7CiAgICB2
YXIgdGFnZSA9IHdwV29jaGVUYWdlKHdwT2Zmc2V0KTsKICAgIHZhciBoZXV0ZUtleSA9IFouaGV1
dGVTdHI7CiAgICB2YXIgaGV1dGVEID0gbmV3IERhdGUoaGV1dGVLZXkgKyAnVDAwOjAwOjAwJyk7
CiAgICB2YXIgdm9uID0gdGFnZVswXSwgYmlzID0gdGFnZVs2XTsKICAgIHZhciBpdyA9IGlzb0th
bGVuZGVyd29jaGUodm9uKTsKICAgIHZhciBrd0tleSA9IHdwS3dLZXkodm9uKTsKICAgIC8vICJ2
ZXJnYW5nZW4iID0gU29ubnRhZyBkZXIgS1cgbGllZ3Qgdm9yIGhldXRlCiAgICB2YXIgYmlzRW5k
ZSA9IG5ldyBEYXRlKGJpcyk7IGJpc0VuZGUuc2V0SG91cnMoMjMsIDU5LCA1OSwgOTk5KTsKICAg
IHZhciBpc3RWZXJnYW5nZW4gPSBiaXNFbmRlIDwgaGV1dGVEOwogICAgdmFyIGRhcmZFZGl0aWVy
ZW4gPSAhaXN0VmVyZ2FuZ2VuOwogICAgdmFyIHd0TmFtZW4gPSBbJ01vJywnRGknLCdNaScsJ0Rv
JywnRnInLCdTYScsJ1NvJ107CiAgICAvLyBEZWZlbnNpdmUgRGVmYXVsdHMg4oCUIGZhbGxzIEJv
b3Qgbm9jaCBuaWNodCBkdXJjaCBvZGVyIERhdGVuIHVudm9sbHN0w6RuZGlnCiAgICBpZiAoIVou
dGFnSW5mb3MpIFoudGFnSW5mb3MgPSB7fTsKICAgIGlmICghWi5jb2RlTWFwKSAgWi5jb2RlTWFw
ICA9IHt9OwoKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC16ZWl0cmF1bScpLmlubmVy
SFRNTCA9CiAgICAgICAgJzxzdHJvbmc+S1cgJyArIGl3Lmt3ICsgJyAmbWlkZG90OyAnICsgZGF0
dW1LdXJ6REUodm9uKSArICfigJMnICsgZGF0dW1LdXJ6REUoYmlzKSArICcgJyArIHZvbi5nZXRG
dWxsWWVhcigpICsgJzwvc3Ryb25nPic7CgogICAgLy8gQWt0aXZlIFBlcnNvbmVuLCBzb3J0aWVy
dCBuYWNoIERpZW5zdGdyYWQtSW5kZXgg4oaSIFBvc2l0aW9uIGFscyBUaWUtQnJlYWsKICAgIC8v
IChJbmFrdGl2ZSB3ZXJkZW4gaW0gV29jaGVucGxhbiBuaWNodCBhbmdlemVpZ3QsIGRhIHNpZSBh
dWNoIGltIEdyaWQgbmljaHQgc3RlaGVuKQogICAgdmFyIHBlcnNvbmVuID0gKFoucGxhbnVuZy5w
ZXJzb25lbiB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uKHApIHsgcmV0dXJuIHAuYWt0aXYgIT09IGZh
bHNlOyB9KQogICAgICAgIC5zbGljZSgpLnNvcnQoZnVuY3Rpb24oYSwgYikgewogICAgICAgICAg
ICB2YXIgcmEgPSBkaWVuc3RncmFkUmFuZyhhLmRpZW5zdGdyYWQpIC0gZGllbnN0Z3JhZFJhbmco
Yi5kaWVuc3RncmFkKTsKICAgICAgICAgICAgaWYgKHJhICE9PSAwKSByZXR1cm4gcmE7CiAgICAg
ICAgICAgIHJldHVybiAoYS5wb3NpdGlvbiB8fCA5OTkpIC0gKGIucG9zaXRpb24gfHwgOTk5KTsK
ICAgICAgICB9KTsKCiAgICAvLyBUYWdlc2RhdGVuIChWb3JnYWJlLVNjaGljaHQpIHBybyBUYWcK
ICAgIHZhciB0YWdEYXRlbiA9IHRhZ2UubWFwKGZ1bmN0aW9uKGQsIGkpIHsKICAgICAgICB2YXIg
ZFN0ciA9IGRhdHVtU3RyKGQpOwogICAgICAgIHZhciB0ZCA9IHRhZ2VzZGF0ZW5GdWVyKGRTdHIp
IHx8IHt9OwogICAgICAgIHZhciBpbmZvID0gWi50YWdJbmZvc1tkU3RyXSB8fCB7IHR5cDogJ25v
cm1hbCcgfTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBkOiBkLCBkU3RyOiBkU3RyLCBp
ZHg6IGksCiAgICAgICAgICAgIHd0OiB3dE5hbWVuW2ldLAogICAgICAgICAgICB2b3JnYWJlOiB0
ZC52b3JnYWJlU2NoaWNodCB8fCAnJywKICAgICAgICAgICAgaXN0SGV1dGU6IGRTdHIgPT09IGhl
dXRlS2V5LAogICAgICAgICAgICBpc3RGVDogaW5mby50eXAgPT09ICdmZWllcnRhZycsCiAgICAg
ICAgICAgIGlzdFdFOiBpID49IDUsCiAgICAgICAgICAgIGluZm86IGluZm8KICAgICAgICB9Owog
ICAgfSk7CgogICAgLy8gSGVhZGVyIChrb25maWd1cmllcmJhciB2aWEgQWRtaW4g4oaSIEVpbnN0
ZWxsdW5nZW4g4oaSICJXb2NoZW5wbGFuLURydWNrYW5zaWNodCIpCiAgICB2YXIgd3BLb3BmID0g
KFouYWRtaW4ud29jaGVucGxhbktvcGYgfHwge30pOwogICAgdmFyIGRpZW5zdHN0ZWxsZSA9IHdw
S29wZi5kaWVuc3RzdGVsbGUgfHwgJyc7CiAgICB2YXIgZHJ1Y2tUaXRlbCA9IHdwS29wZi50aXRl
bCB8fCAnNy1UYWdlIERpZW5zdHZvcnBsYW51bmcnOwogICAgdmFyIHplaWdlTG9nbyA9IHdwS29w
Zi56ZWlnZUxvZ28gIT09IGZhbHNlICYmIFouYWRtaW4uY3VzdG9tTG9nbzsKICAgIHZhciBwbGFu
dW5nc05hbWUgPSAoWi5hZG1pbi5wbGFudW5nc05hbWUgfHwgJ0ZMRC1QbGFudW5nJyk7CiAgICB2
YXIgc3BlcnJCYWRnZSA9IGlzdFZlcmdhbmdlbgogICAgICAgID8gJzxzcGFuIGNsYXNzPSJ3cC12
ZXJnYW5nZW4tYmFkZ2UiIHRpdGxlPSJWZXJnYW5nZW5lIFdvY2hlIOKAlCBFZGl0aWVyZW4gbmlj
aHQgbcO2Z2xpY2ggKGtlaW5lIHJldHJvZ3JhZGVuIEFucGFzc3VuZ2VuKSI+8J+TlSBBYmdlbGF1
ZmVuIOKAlCBzY2hyZWliZ2VzY2jDvHR6dDwvc3Bhbj4nCiAgICAgICAgOiAnJzsKCiAgICB2YXIg
bG9nb0h0bWwgPSB6ZWlnZUxvZ28KICAgICAgICA/ICc8aW1nIGNsYXNzPSJ3cC1rb3BmLWxvZ28i
IHNyYz0iJyArIGVzY2FwZUF0dHIoWi5hZG1pbi5jdXN0b21Mb2dvKSArICciIGFsdD0iIj4nCiAg
ICAgICAgOiAnJzsKCiAgICB2YXIgaHRtbCA9ICc8ZGl2IGNsYXNzPSJ3cC1zZWl0ZSI+JzsKICAg
IGh0bWwgKz0gJzxkaXYgY2xhc3M9IndwLXNlaXRlLWtvcGYiPicgKwogICAgICAgICAgICAgICAg
JzxkaXYgY2xhc3M9IndwLWtvcGYtaGF1cHQiPicgKwogICAgICAgICAgICAgICAgICAgIGxvZ29I
dG1sICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0id3Ata29wZi10ZXh0Ij4nICsK
ICAgICAgICAgICAgICAgICAgICAgICAgKGRpZW5zdHN0ZWxsZSA/ICc8ZGl2IGNsYXNzPSJ3cC1r
b3BmLWRpZW5zdHN0ZWxsZSI+JyArIGVzY2FwZUhUTUwoZGllbnN0c3RlbGxlKSArICc8L2Rpdj4n
IDogJycpICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxoMT4nICsgZXNjYXBlSFRNTChkcnVj
a1RpdGVsKSArICc8L2gxPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0i
d3Ata29wZi11bnRlcnRpdGVsIj4nICsgZXNjYXBlSFRNTChwbGFudW5nc05hbWUpICsgJzwvZGl2
PicgKwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAn
PGRpdiBjbGFzcz0id3Ata29wZi1rdyI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2
IGNsYXNzPSJ3cC1rb3BmLWt3LW5yIj5LVyA8c3Ryb25nPicgKyBpdy5rdyArICc8L3N0cm9uZz48
L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9IndwLWtvcGYta3ct
ZGF0dW0iPicgKyBkYXR1bUZvcm1hdERFKGRhdHVtU3RyKHZvbikpICsgJyAmbmRhc2g7ICcgKyBk
YXR1bUZvcm1hdERFKGRhdHVtU3RyKGJpcykpICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAg
ICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAg
IChzcGVyckJhZGdlID8gJzxkaXYgY2xhc3M9IndwLWtvcGYtc3BlcnIiPicgKyBzcGVyckJhZGdl
ICsgJzwvZGl2PicgOiAnJykgKwogICAgICAgICAgICAnPC9kaXY+JzsKCiAgICAvLyBUYWJlbGxl
CiAgICBodG1sICs9ICc8dGFibGUgY2xhc3M9IndwLXRhYiI+PGNvbGdyb3VwPicgKwogICAgICAg
ICAgICAgICAgJzxjb2wgY2xhc3M9IndwLWNvbC1uciI+JyArCiAgICAgICAgICAgICAgICAnPGNv
bCBjbGFzcz0id3AtY29sLW5hbWUiPicgKwogICAgICAgICAgICAgICAgJzxjb2wgY2xhc3M9Indw
LWNvbC1hbXRzIj4nOwogICAgdGFnRGF0ZW4uZm9yRWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAg
dmFyIGNscyA9ICd3cC1jb2wtdGFnJzsKICAgICAgICBpZiAodC5pc3RIZXV0ZSkgY2xzICs9ICcg
d3AtY29sLWhldXRlJzsKICAgICAgICBlbHNlIGlmICh0LmlzdEZUKSBjbHMgKz0gJyB3cC1jb2wt
ZnQnOwogICAgICAgIGVsc2UgaWYgKHQuaXN0V0UpIGNscyArPSAnIHdwLWNvbC13ZSc7CiAgICAg
ICAgaHRtbCArPSAnPGNvbCBjbGFzcz0iJyArIGNscyArICciPic7CiAgICB9KTsKICAgIGh0bWwg
Kz0gJzwvY29sZ3JvdXA+JzsKCiAgICAvLyBUYWdlc2xhZ2UtQmxvY2s6IFZvcmdhYmUgKyBXb2No
ZW50YWcgKyBEYXR1bQogICAgaHRtbCArPSAnPHRoZWFkPic7CiAgICAvLyBWb3JnYWJlLVplaWxl
IChsaW5rZXMgTGFiZWwtRmVsZCBibGVpYnQgbGVlciDigJQgZGllIFZvcmdhYmUtTWFya2VyCiAg
ICAvLyBwcm8gVGFnIHN0ZWhlbiByZWNodHMgZGFuZWJlbi4pCiAgICBodG1sICs9ICc8dHIgY2xh
c3M9IndwLWgtdm9yZyI+PHRoIGNvbHNwYW49IjMiIGNsYXNzPSJ3cC1oLWxhYmVsIj48L3RoPic7
CiAgICB0YWdEYXRlbi5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKICAgICAgICB2YXIgdiA9IHQudm9y
Z2FiZSB8fCAn4oCUJzsKICAgICAgICB2YXIgdkNscyA9IHYgPyAnd3Atdm9yZyB3cC12b3JnLScg
KyB2IDogJ3dwLXZvcmcnOwogICAgICAgIGh0bWwgKz0gJzx0aCBjbGFzcz0iJyArIHZDbHMgKyAn
Ij4nICsgZXNjYXBlSFRNTCh2KSArICc8L3RoPic7CiAgICB9KTsKICAgIGh0bWwgKz0gJzwvdHI+
JzsKICAgIC8vIFdvY2hlbnRhZy1aZWlsZQogICAgaHRtbCArPSAnPHRyIGNsYXNzPSJ3cC1oLXd0
Ij48dGggY29sc3Bhbj0iMyI+PC90aD4nOwogICAgdGFnRGF0ZW4uZm9yRWFjaChmdW5jdGlvbih0
KSB7IGh0bWwgKz0gJzx0aD4nICsgdC53dCArICc8L3RoPic7IH0pOwogICAgaHRtbCArPSAnPC90
cj4nOwogICAgLy8gRGF0dW0tWmVpbGUgKyBnZ2YuIEZUL1NvbmRlci1IaW53ZWlzCiAgICBodG1s
ICs9ICc8dHIgY2xhc3M9IndwLWgtZGF0dW0iPjx0aCBjbGFzcz0id3AtaC1zcGFsdGVudGl0ZWwi
PkxmZC5Oci48L3RoPjx0aCBjbGFzcz0id3AtaC1zcGFsdGVudGl0ZWwiPk5hbWU8L3RoPjx0aCBj
bGFzcz0id3AtaC1zcGFsdGVudGl0ZWwiPkFtdHNiZXplaWNobnVuZzwvdGg+JzsKICAgIHRhZ0Rh
dGVuLmZvckVhY2goZnVuY3Rpb24odCkgewogICAgICAgIHZhciB0aXRsZVp1c2F0eiA9ICcnOwog
ICAgICAgIGlmICh0LmlzdEZUICYmIHQuaW5mby5uYW1lKSB0aXRsZVp1c2F0eiA9ICcgdGl0bGU9
IicgKyBlc2NhcGVBdHRyKHQuaW5mby5uYW1lKSArICciJzsKICAgICAgICBlbHNlIGlmICh0Lmlu
Zm8udHlwID09PSAnZmVyaWVuJyAmJiB0LmluZm8ubmFtZSkgdGl0bGVadXNhdHogPSAnIHRpdGxl
PSInICsgZXNjYXBlQXR0cih0LmluZm8ubmFtZSkgKyAnIic7CiAgICAgICAgaHRtbCArPSAnPHRo
JyArIHRpdGxlWnVzYXR6ICsgJz4nICsgZGF0dW1LdXJ6REUodC5kKSArICc8L3RoPic7CiAgICB9
KTsKICAgIGh0bWwgKz0gJzwvdHI+PC90aGVhZD4nOwoKICAgIC8vIFBlcnNvbmVuLVplaWxlbiDi
gJQgYW5hbG9nIEV4Y2VsLVZvcmxhZ2U6IG1pbmQuIFdQX01JTl9aRUlMRU4gU2xvdHMsCiAgICAv
LyBkYW1pdCBkYXMgVGVtcGxhdGUgYXVjaCBvaG5lIFZvcnBsYW51bmcgdm9sbHN0w6RuZGlnIGF1
c3NpZWh0LgogICAgaHRtbCArPSAnPHRib2R5Pic7CiAgICB2YXIgYW56YWhsU2xvdHMgPSBNYXRo
Lm1heChXUF9NSU5fWkVJTEVOLCBwZXJzb25lbi5sZW5ndGgpOwogICAgZm9yICh2YXIgaWR4ID0g
MDsgaWR4IDwgYW56YWhsU2xvdHM7IGlkeCsrKSB7CiAgICAgICAgdmFyIHAgPSBwZXJzb25lbltp
ZHhdOyAvLyBrYW5uIHVuZGVmaW5lZCBzZWluIOKGkiBMZWVyLVNsb3QKICAgICAgICBpZiAocCkg
ewogICAgICAgICAgICB2YXIgbmFtZSA9IHBlcnNvbk5hbWUocCkgKyAocC52b3JuYW1lID8gJywg
JyArIHAudm9ybmFtZSA6ICcnKTsKICAgICAgICAgICAgdmFyIGRnciA9IHAuZGllbnN0Z3JhZCA/
IHAuZGllbnN0Z3JhZCA6ICcnOwogICAgICAgICAgICBodG1sICs9ICc8dHIgZGF0YS1wZXJzb249
IicgKyBlc2NhcGVBdHRyKHAuaWQpICsgJyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0ZCBj
bGFzcz0id3AtbnIiPicgKyAoaWR4ICsgMSkgKyAnPC90ZD4nICsKICAgICAgICAgICAgICAgICAg
ICAnPHRkIGNsYXNzPSJ3cC1uYW1lIj4nICsgZXNjYXBlSFRNTChuYW1lKSArICc8L3RkPicgKwog
ICAgICAgICAgICAgICAgICAgICc8dGQgY2xhc3M9IndwLWFtdHMiPicgKyBlc2NhcGVIVE1MKGRn
cikgKyAnPC90ZD4nOwogICAgICAgICAgICB0YWdEYXRlbi5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsK
ICAgICAgICAgICAgICAgIHZhciB3ID0gKChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9KVt0LmRT
dHJdIHx8IHt9KVtTdHJpbmcocC5pZCldIHx8ICcnOwogICAgICAgICAgICAgICAgdmFyIGZhcmJl
ID0gdyA/IChaLmNvZGVNYXBbd10gfHwge30pIDoge307CiAgICAgICAgICAgICAgICB2YXIgc3R5
bGVBdHRyID0gJyc7CiAgICAgICAgICAgICAgICBpZiAodyAmJiBmYXJiZS5oaW50ZXJncnVuZCkg
c3R5bGVBdHRyID0gJyBzdHlsZT0iYmFja2dyb3VuZDonICsgZmFyYmUuaGludGVyZ3J1bmQgKyAn
O2NvbG9yOicgKyAoZmFyYmUuc2NocmlmdCB8fCAnI2ZmZicpICsgJyInOwogICAgICAgICAgICAg
ICAgdmFyIGxhYmVsID0gdyA/IChmYXJiZS5rdWVyemVsIHx8IHcpIDogJyc7CiAgICAgICAgICAg
ICAgICB2YXIgZWRpdGFibGVDbGFzcyA9IGRhcmZFZGl0aWVyZW4gJiYgWi5kYXJmVWViZXJzY2hy
ZWliZW4gPyAnIHdwLXplbGxlLWVkaXQnIDogJyc7CiAgICAgICAgICAgICAgICBodG1sICs9ICc8
dGQgY2xhc3M9IndwLXplbGxlJyArIGVkaXRhYmxlQ2xhc3MgKyAnIiBkYXRhLWRhdHVtPSInICsg
ZXNjYXBlQXR0cih0LmRTdHIpICsgJyIgZGF0YS1wZXJzb249IicgKyBlc2NhcGVBdHRyKHAuaWQp
ICsgJyInICsgc3R5bGVBdHRyICsgJz4nICsgZXNjYXBlSFRNTChsYWJlbCkgKyAnPC90ZD4nOwog
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgaHRtbCArPSAnPC90cj4nOwogICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgIC8vIExlZXJlciBTbG90ICh3aWUgTGZkLk5yLiAyNi0zNiBpbiBkZXIg
RXhjZWwtVm9ybGFnZSkKICAgICAgICAgICAgaHRtbCArPSAnPHRyIGNsYXNzPSJ3cC1sZWVyLXNs
b3QiPjx0ZCBjbGFzcz0id3AtbnIiPicgKyAoaWR4ICsgMSkgKyAnPC90ZD48dGQgY2xhc3M9Indw
LW5hbWUiPjwvdGQ+PHRkIGNsYXNzPSJ3cC1hbXRzIj48L3RkPic7CiAgICAgICAgICAgIGZvciAo
dmFyIGogPSAwOyBqIDwgNzsgaisrKSBodG1sICs9ICc8dGQgY2xhc3M9IndwLXplbGxlIj48L3Rk
Pic7CiAgICAgICAgICAgIGh0bWwgKz0gJzwvdHI+JzsKICAgICAgICB9CiAgICB9CiAgICBodG1s
ICs9ICc8L3Rib2R5PjwvdGFibGU+JzsKCiAgICAvLyBOb3RpemVuLUJlcmVpY2ggKHBlcnNpc3Rl
bnQgcHJvIEtXKQogICAgdmFyIG5vdGl6ID0gKChaLnBsYW51bmcud29jaGVubm90aXplbiB8fCB7
fSlba3dLZXldKSB8fCAnJzsKICAgIHZhciBub3RpelRleHQgPSB0eXBlb2Ygbm90aXogPT09ICdz
dHJpbmcnID8gbm90aXogOiAobm90aXoudGV4dCB8fCAnJyk7CiAgICB2YXIgZGlzYWJsZWRBdHRy
ID0gZGFyZkVkaXRpZXJlbiA/ICcnIDogJyByZWFkb25seSc7CiAgICBodG1sICs9ICc8ZGl2IGNs
YXNzPSJ3cC1ub3RpemVuIj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJ3cC1ub3Rp
emVuLXRpdGVsIj5Ob3RpemVuIC8gSGlud2Vpc2UgenVyIEthbGVuZGVyd29jaGUgJyArIGl3Lmt3
ICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzx0ZXh0YXJlYSBpZD0id3Atbm90aXotJyAr
IGt3S2V5ICsgJyIgY2xhc3M9IndwLW5vdGl6LXRleHRhcmVhIiBkYXRhLWt3PSInICsga3dLZXkg
KyAnIicgKyBkaXNhYmxlZEF0dHIgKyAnIHBsYWNlaG9sZGVyPSInICsgKGRhcmZFZGl0aWVyZW4g
PyAnTm90aXplbiBmw7xyIGRpZXNlIFdvY2hlIGVpbnRyYWdlbiDigJQgd2VyZGVuIHBlcnNpc3Rl
bnQgZ2VzcGVpY2hlcnQnIDogJ1ZlcmdhbmdlbmUgV29jaGUg4oCUIGtlaW5lIMOEbmRlcnVuZ2Vu
IG1laHIgbcO2Z2xpY2gnKSArICciPicgKyBlc2NhcGVIVE1MKG5vdGl6VGV4dCkgKyAnPC90ZXh0
YXJlYT4nICsKICAgICAgICAgICAgJzwvZGl2Pic7CgogICAgLy8gRm9vdGVyIG1pdCBEcnVja2Rh
dHVtCiAgICB2YXIgamV0enQgPSBuZXcgRGF0ZSgpOwogICAgdmFyIHBhZCA9IGZ1bmN0aW9uKG4p
IHsgcmV0dXJuIChuIDwgMTAgPyAnMCcgOiAnJykgKyBuOyB9OwogICAgdmFyIGRydWNrWmVpdCA9
IGRhdHVtRm9ybWF0REUoWi5oZXV0ZVN0cikgKyAnICcgKyBwYWQoamV0enQuZ2V0SG91cnMoKSkg
KyAnOicgKyBwYWQoamV0enQuZ2V0TWludXRlcygpKTsKICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9
IndwLXNlaXRlLWZ1c3MiPicgKwogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJ3cC1mdXNz
LW5vdGUiPlN0YW5kOiAnICsgZHJ1Y2taZWl0ICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgICAg
IChaLmFkbWluLnBsYW51bmdzTmFtZSA/ICc8c3BhbiBjbGFzcz0id3AtZnVzcy10aXRlbCI+JyAr
IGVzY2FwZUhUTUwoWi5hZG1pbi5wbGFudW5nc05hbWUpICsgJzwvc3Bhbj4nIDogJycpICsKICAg
ICAgICAgICAgJzwvZGl2Pic7CgogICAgaHRtbCArPSAnPC9kaXY+JzsKCiAgICB2YXIgcGFnZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC1wYWdlJyk7CiAgICBpZiAocGFnZSkgewogICAg
ICAgIHBhZ2UuaW5uZXJIVE1MID0gaHRtbDsKICAgICAgICAvLyBOb3Rpei1MaXN0ZW5lciAoZGVi
b3VuY2VkIFNhdmUpCiAgICAgICAgdmFyIHRhID0gcGFnZS5xdWVyeVNlbGVjdG9yKCcud3Atbm90
aXotdGV4dGFyZWEnKTsKICAgICAgICBpZiAodGEgJiYgZGFyZkVkaXRpZXJlbikgewogICAgICAg
ICAgICB2YXIgc2F2ZVRpbWVyID0gbnVsbDsKICAgICAgICAgICAgdGEuYWRkRXZlbnRMaXN0ZW5l
cignaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChzYXZl
VGltZXIpOwogICAgICAgICAgICAgICAgdmFyIHZhbCA9IHRhLnZhbHVlOwogICAgICAgICAgICAg
ICAgdmFyIGt3ID0gdGEuZ2V0QXR0cmlidXRlKCdkYXRhLWt3Jyk7CiAgICAgICAgICAgICAgICBz
YXZlVGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHdw
Tm90aXpTcGVpY2hlcm4oa3csIHZhbCk7CiAgICAgICAgICAgICAgICB9LCA4MDApOwogICAgICAg
ICAgICB9KTsKICAgICAgICB9CiAgICAgICAgLy8gU2NoaWNodC1FZGl0IHBlciBLbGljayAobnVy
IFNVL0ZhY2hhdWZzaWNodCB1bmQgV29jaGUgbmljaHQgdmVyZ2FuZ2VuKQogICAgICAgIGlmIChk
YXJmRWRpdGllcmVuICYmIFouZGFyZlVlYmVyc2NocmVpYmVuKSB7CiAgICAgICAgICAgIHBhZ2Uu
cXVlcnlTZWxlY3RvckFsbCgnLndwLXplbGxlLWVkaXQnKS5mb3JFYWNoKGZ1bmN0aW9uKHRkKSB7
CiAgICAgICAgICAgICAgICB0ZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgICAgICAgIC8vIEhhdXB0YW5zaWNodCDDtmZmbmVuIG1pdCBkZW0gRWRp
dG9yIGFuIGRpZXNlciBaZWxsZQogICAgICAgICAgICAgICAgICAgIC8vIHByYWdtYXRpc2NoOiB6
dXIgUGxhbnVuZyB3ZWNoc2VsbiB1bmQgZG9ydCBkZW4gRWRpdG9yIMO2ZmZuZW4KICAgICAgICAg
ICAgICAgICAgICBhbnNpY2h0V2VjaHNlbG4oJ3BsYW51bmcnKTsKICAgICAgICAgICAgICAgICAg
ICB2YXIgZGF0dW0gPSB0ZC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGF0dW0nKTsKICAgICAgICAgICAg
ICAgICAgICB2YXIgcGlkID0gdGQuZ2V0QXR0cmlidXRlKCdkYXRhLXBlcnNvbicpOwogICAgICAg
ICAgICAgICAgICAgIHp1RGF0dW1TY3JvbGxlbihkYXR1bSk7CiAgICAgICAgICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHogPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ3JpZC16ZWxsZVtkYXRhLWRhdHVtPSInICsgZGF0dW0g
KyAnIl1bZGF0YS1wZXJzb249IicgKyBwaWQgKyAnIl0nKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHopIGVkaXRvck9lZmZuZW4oeik7CiAgICAgICAgICAgICAgICAgICAgfSwgMjUwKTsK
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9Cn0KCmV4
cG9ydCBmdW5jdGlvbiB3cE5vdGl6U3BlaWNoZXJuKGt3S2V5LCB0ZXh0KSB7CiAgICBpZiAoIVou
cGxhbnVuZy53b2NoZW5ub3RpemVuKSBaLnBsYW51bmcud29jaGVubm90aXplbiA9IHt9OwogICAg
Wi5wbGFudW5nLndvY2hlbm5vdGl6ZW5ba3dLZXldID0gdGV4dDsKICAgIGFwaVBvc3QoJy9hcGkv
cGxhbnVuZy93b2NoZW5ub3RpeicsIHsga3dLZXk6IGt3S2V5LCB0ZXh0OiB0ZXh0IH0pCiAgICAg
ICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ05vdGl6IG5pY2h0IGdlc3BlaWNoZXJ0OiAn
ICsgZS5tZXNzYWdlLCAnZmVobGVyJyk7IH0pOwp9CgovLyA9PT09PSBQZXJzw7ZubGljaGVyIFBs
YW4gPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBwcFJlbmRlcm4oKSB7CiAgICAvLyBQZXJzb25lbi1E
cm9wZG93biBiZWbDvGxsZW4KICAgIHZhciBzZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cHAtcGVyc29uLWF1c3dhaGwnKTsKICAgIGlmIChzZWwub3B0aW9ucy5sZW5ndGggPT09IDApIHsK
ICAgICAgICBaLnBlcnNvbmVuLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgICAgICB2YXIg
b3B0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgIG9wdC52
YWx1ZSA9IHAuaWQ7CiAgICAgICAgICAgIG9wdC50ZXh0Q29udGVudCA9IHBlcnNvbk5hbWUocCkg
KyAocC52b3JuYW1lID8gJywgJyArIHAudm9ybmFtZSA6ICcnKTsKICAgICAgICAgICAgc2VsLmFw
cGVuZENoaWxkKG9wdCk7CiAgICAgICAgfSk7CiAgICB9CgogICAgLy8gSmFoci1Ecm9wZG93biBi
ZWltIGVyc3RlbiBSZW5kZXIgYmVmw7xsbGVuIChha3R1ZWxsZXMgSmFociDCsTIpCiAgICB2YXIg
anNlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcC1qYWhyLWF1c3dhaGwnKTsKICAgIGlm
IChqc2VsICYmIGpzZWwub3B0aW9ucy5sZW5ndGggPT09IDApIHsKICAgICAgICB2YXIgYmFzaXNK
YWhyID0gWi5hZG1pbi5qYWhyIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsKICAgICAgICBm
b3IgKHZhciBqeSA9IGJhc2lzSmFociAtIDI7IGp5IDw9IGJhc2lzSmFociArIDI7IGp5KyspIHsK
ICAgICAgICAgICAgdmFyIGpvcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsK
ICAgICAgICAgICAgam9wdC52YWx1ZSA9IFN0cmluZyhqeSk7CiAgICAgICAgICAgIGpvcHQudGV4
dENvbnRlbnQgPSBTdHJpbmcoankpOwogICAgICAgICAgICBpZiAoankgPT09IGJhc2lzSmFocikg
am9wdC5zZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgIGpzZWwuYXBwZW5kQ2hpbGQoam9wdCk7
CiAgICAgICAgfQogICAgfQoKICAgIHZhciBwaWQgPSBzZWwudmFsdWU7CiAgICBpZiAoIXBpZCAm
JiBaLnBlcnNvbmVuLmxlbmd0aCA+IDApIHsKICAgICAgICBwaWQgPSBTdHJpbmcoWi5wZXJzb25l
blswXS5pZCk7CiAgICAgICAgc2VsLnZhbHVlID0gcGlkOwogICAgfQogICAgdmFyIHBlcnNvbiA9
IFoucGVyc29uZW4uZmluZChmdW5jdGlvbihwKSB7IHJldHVybiBTdHJpbmcocC5pZCkgPT09IFN0
cmluZyhwaWQpOyB9KTsKICAgIGlmICghcGVyc29uKSByZXR1cm47CgogICAgdmFyIGphaHIgPSBw
YXJzZUludCgoanNlbCAmJiBqc2VsLnZhbHVlKSB8fCBaLmFkbWluLmphaHIgfHwgbmV3IERhdGUo
KS5nZXRGdWxsWWVhcigpLCAxMCk7CgogICAgLy8gTW9kdXMgYXVzIExheW91dC1BdHRyaWJ1dCAo
ZGF0YS1tb2R1cz0iamFociJ8Im1vbmF0IikKICAgIHZhciBsYXlvdXQgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcjYW5zaWNodC1wZXJzcGxhbiAucHAtbGF5b3V0Jyk7CiAgICB2YXIgbW9kdXMg
PSAobGF5b3V0ICYmIGxheW91dC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbW9kdXMnKSkgfHwgJ2phaHIn
OwoKICAgIC8vIFRpdGVsOiBzdHJ1a3R1cmllcnRlcyBNYXJrdXAgbWl0IE5hbWUgLyBSb2xsZSAv
IE1ldGEKICAgIHZhciBuYW1lVm9sbCA9IHBlcnNvbk5hbWUocGVyc29uKSArIChwZXJzb24udm9y
bmFtZSA/ICcsICcgKyBwZXJzb24udm9ybmFtZSA6ICcnKTsKICAgIHZhciByb2xsZVRlaWxlID0g
W107CiAgICBpZiAocGVyc29uLmZ1bmt0aW9uKSByb2xsZVRlaWxlLnB1c2gocGVyc29uLmZ1bmt0
aW9uKTsKICAgIHZhciByb2xsZVRleHQgPSByb2xsZVRlaWxlLmpvaW4oJyDCtyAnKTsKICAgIHZh
ciBkYXRTdGFuZCA9IGRhdHVtRm9ybWF0REUoWi5oZXV0ZVN0ciB8fCBkYXR1bVN0cihuZXcgRGF0
ZSgpKSk7CiAgICB2YXIgdGl0ZWxFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcC10aXRl
bCcpOwogICAgdGl0ZWxFbC5pbm5lckhUTUwgPQogICAgICAgICc8aDIgY2xhc3M9InBwLW5hbWUi
PicgKyBlc2NhcGVIVE1MKG5hbWVWb2xsKSArICc8L2gyPicgKwogICAgICAgIChyb2xsZVRleHQg
PyAnPHNwYW4gY2xhc3M9InBwLXJvbGxlIj4nICsgZXNjYXBlSFRNTChyb2xsZVRleHQpICsgJzwv
c3Bhbj4nIDogJycpICsKICAgICAgICAnPHNwYW4gY2xhc3M9InBwLW1ldGEiPkphaHIgJyArIGph
aHIgKyAnIMK3IFN0YW5kICcgKyBkYXRTdGFuZCArICc8L3NwYW4+JzsKCiAgICAvLyBXZWxjaGUg
TW9uYXRlIHJlbmRlcm4/CiAgICB2YXIgaGV1dGVEYXRlID0gbmV3IERhdGUoKTsKICAgIHZhciBh
a3RNb25hdCA9IChoZXV0ZURhdGUuZ2V0RnVsbFllYXIoKSA9PT0gamFocikgPyBoZXV0ZURhdGUu
Z2V0TW9udGgoKSA6IDA7CiAgICB2YXIgbW9uYXRlWnVSZW5kZXJuID0gW107CiAgICBpZiAobW9k
dXMgPT09ICdtb25hdCcpIHsKICAgICAgICBtb25hdGVadVJlbmRlcm4ucHVzaChha3RNb25hdCk7
CiAgICB9IGVsc2UgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTM7IGkrKykgbW9uYXRl
WnVSZW5kZXJuLnB1c2goaSk7IC8vIDAuLjExICsgQnVmZmVyLUphbnVhcgogICAgfQoKICAgIHZh
ciBtb05hbWVuID0gWydKYW51YXInLCdGZWJydWFyJywnTcOkcnonLCdBcHJpbCcsJ01haScsJ0p1
bmknLCdKdWxpJywnQXVndXN0JywnU2VwdGVtYmVyJywnT2t0b2JlcicsJ05vdmVtYmVyJywnRGV6
ZW1iZXInXTsKICAgIHZhciB3dEt1cnogPSBbJ01vJywnRGknLCdNaScsJ0RvJywnRnInLCdTYScs
J1NvJ107CiAgICB2YXIgbW9uYXRlSHRtbCA9ICcnOwogICAgdmFyIHN0YXRzID0geyBmcnVlaDog
MCwgc3BhZXQ6IDAsIG5hY2h0OiAwLCB1cmxhdWI6IDAsIGtyYW5rOiAwLCBsZWhyZ2FuZzogMCwg
ZnJlaTogMCwgc29uZGVyOiAwLCBnZXNhbXQ6IDAgfTsKCiAgICBtb25hdGVadVJlbmRlcm4uZm9y
RWFjaChmdW5jdGlvbihtKSB7CiAgICAgICAgLy8gbT0xMiDihpIgQnVmZmVyLUphbnVhciBkZXMg
Rm9sZ2VqYWhyZXMgKERhdGUtS29uc3RydWt0b3Igbm9ybWFsaXNpZXJ0OiBqYWhyPTIwMjYsIG09
MTIg4oaSIDIwMjctMDEpCiAgICAgICAgdmFyIG1vbmF0TGFiZWwgPSBtID09PSAxMiA/IG1vTmFt
ZW5bMF0gOiBtb05hbWVuW21dOwogICAgICAgIHZhciBtb25hdEphaHIgID0gbSA9PT0gMTIgPyAo
amFociArIDEpIDogamFocjsKICAgICAgICB2YXIgbW9uYXRTdGF0cyA9IHsgZjogMCwgczogMCwg
bjogMCB9OwoKICAgICAgICB2YXIgdGFnZUh0bWwgPSAnJzsKICAgICAgICB3dEt1cnouZm9yRWFj
aChmdW5jdGlvbih3KSB7IHRhZ2VIdG1sICs9ICc8ZGl2IGNsYXNzPSJwcC13dCI+JyArIHcgKyAn
PC9kaXY+JzsgfSk7CgogICAgICAgIHZhciBlcnN0ZXJUYWcgPSBuZXcgRGF0ZShqYWhyLCBtLCAx
KTsKICAgICAgICB2YXIgc3RhcnRXdCA9IGVyc3RlclRhZy5nZXREYXkoKTsgICAgICAgICAgICAg
Ly8gMD1TbwogICAgICAgIHN0YXJ0V3QgPSBzdGFydFd0ID09PSAwID8gNiA6IHN0YXJ0V3QgLSAx
OyAgICAgLy8gMD1NbwogICAgICAgIGZvciAodmFyIGxlZXIgPSAwOyBsZWVyIDwgc3RhcnRXdDsg
bGVlcisrKSB7CiAgICAgICAgICAgIHRhZ2VIdG1sICs9ICc8ZGl2IGNsYXNzPSJwcC10YWcgbGVl
ciI+PC9kaXY+JzsKICAgICAgICB9CgogICAgICAgIHZhciB0YWdlSW1Nb25hdCA9IG5ldyBEYXRl
KGphaHIsIG0gKyAxLCAwKS5nZXREYXRlKCk7CiAgICAgICAgZm9yICh2YXIgdCA9IDE7IHQgPD0g
dGFnZUltTW9uYXQ7IHQrKykgewogICAgICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKGphaHIsIG0s
IHQpOwogICAgICAgICAgICB2YXIgZFN0ciA9IGRhdHVtU3RyKGQpOwogICAgICAgICAgICB2YXIg
aW5mbyA9IFoudGFnSW5mb3NbZFN0cl0gfHwgeyB0eXA6ICdub3JtYWwnIH07CiAgICAgICAgICAg
IHZhciBlaW50ciA9IChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9KVtkU3RyXSB8fCB7fTsKICAg
ICAgICAgICAgdmFyIHdlcnQgPSBlaW50cltTdHJpbmcocGlkKV0gfHwgJyc7CiAgICAgICAgICAg
IHZhciBmYXJiZW4gPSBaLmNvZGVNYXBbd2VydF0gfHwge307CiAgICAgICAgICAgIHZhciBrb21t
ZW50YXIgPSAoKFoucGxhbnVuZy5rb21tZW50YXJlIHx8IHt9KVtkU3RyXSB8fCB7fSlbU3RyaW5n
KHBpZCldIHx8ICcnOwogICAgICAgICAgICB2YXIgd2UgPSBpc3RXb2NoZW5lbmRlKGQpOwoKICAg
ICAgICAgICAgdmFyIHRhZ0NscyA9ICdwcC10YWcnOwogICAgICAgICAgICBpZiAoZFN0ciA9PT0g
Wi5oZXV0ZVN0cikgdGFnQ2xzICs9ICcgaGV1dGUnOwogICAgICAgICAgICBpZiAoaW5mby50eXAg
PT09ICdmZWllcnRhZycpIHRhZ0NscyArPSAnIGZ0JzsKICAgICAgICAgICAgZWxzZSBpZiAod2Up
IHRhZ0NscyArPSAnIHdlJzsKCiAgICAgICAgICAgIC8vIFNjaGljaHQtS2xhc3NlIGYvcy9uIGF1
cyBkZW0gQ29kZS1BbmZhbmdzYnVjaHN0YWJlbiAoRi9TL04gKyBTdWZmaXhlKQogICAgICAgICAg
ICB2YXIgZXJzdGVyQ2hhciA9IHdlcnQgPyB3ZXJ0LmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpIDog
Jyc7CiAgICAgICAgICAgIGlmIChlcnN0ZXJDaGFyID09PSAnZicpIHRhZ0NscyArPSAnIGYnOwog
ICAgICAgICAgICBlbHNlIGlmIChlcnN0ZXJDaGFyID09PSAncycpIHRhZ0NscyArPSAnIHMnOwog
ICAgICAgICAgICBlbHNlIGlmIChlcnN0ZXJDaGFyID09PSAnbicpIHRhZ0NscyArPSAnIG4nOwog
ICAgICAgICAgICBpZiAod2VydCA9PT0gJ1VybCcpIHRhZ0NscyArPSAnIHVybGF1Yic7CiAgICAg
ICAgICAgIGlmICh3ZXJ0ID09PSAna3InIHx8IHdlcnQgPT09ICdLdXInKSB0YWdDbHMgKz0gJyBr
cmFuayc7CiAgICAgICAgICAgIGlmIChrb21tZW50YXIpIHRhZ0NscyArPSAnIGtvbW1lbnRhcic7
CgogICAgICAgICAgICB2YXIgd2VydFRleHQgPSBmYXJiZW4ua3VlcnplbCB8fCB3ZXJ0IHx8ICcn
OwoKICAgICAgICAgICAgLy8gU3RhdGlzdGlrCiAgICAgICAgICAgIGlmICh3ZXJ0KSB7CiAgICAg
ICAgICAgICAgICBpZiAod2VydC5pbmRleE9mKCdGLURHTCcpID09PSAwKSB7IHN0YXRzLmZydWVo
Kys7IG1vbmF0U3RhdHMuZisrOyB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICh3ZXJ0LmluZGV4
T2YoJ1MtREdMJykgPT09IDApIHsgc3RhdHMuc3BhZXQrKzsgbW9uYXRTdGF0cy5zKys7IH0KICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKHdlcnQuaW5kZXhPZignTi1ER0wnKSA9PT0gMCkgeyBzdGF0
cy5uYWNodCsrOyBtb25hdFN0YXRzLm4rKzsgfQogICAgICAgICAgICAgICAgaWYgKHdlcnQgPT09
ICdVcmwnKSBzdGF0cy51cmxhdWIrKzsKICAgICAgICAgICAgICAgIGlmICh3ZXJ0ID09PSAna3In
IHx8IHdlcnQgPT09ICdLdXInKSBzdGF0cy5rcmFuaysrOwogICAgICAgICAgICAgICAgaWYgKHdl
cnQgPT09ICdMRycgfHwgd2VydCA9PT0gJ1NlbScpIHN0YXRzLmxlaHJnYW5nKys7CiAgICAgICAg
ICAgICAgICBpZiAod2VydCA9PT0gJ3dmcicgfHwgd2VydCA9PT0gJ2RmcicpIHN0YXRzLmZyZWkr
KzsKICAgICAgICAgICAgICAgIGlmICh3ZXJ0LmluZGV4T2YoJ0RHTCcpID49IDAgfHwgd2VydC5p
bmRleE9mKCdXREYnKSA+PSAwIHx8IHdlcnQuaW5kZXhPZignRkJQJykgPj0gMCkgc3RhdHMuZ2Vz
YW10Kys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0aXRsZSA9IHdlcnQ7CiAgICAg
ICAgICAgIGlmIChrb21tZW50YXIpIHRpdGxlICs9ICcgfCAnICsga29tbWVudGFyOwogICAgICAg
ICAgICBpZiAoaW5mby5uYW1lKSB0aXRsZSArPSAnIHwgJyArIGluZm8ubmFtZTsKCiAgICAgICAg
ICAgIHRhZ2VIdG1sICs9ICc8ZGl2IGNsYXNzPSInICsgdGFnQ2xzICsgJyIgdGl0bGU9IicgKyBl
c2NhcGVBdHRyKHRpdGxlKSArICciPicgKwogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJw
cC10YWctbnVtIj4nICsgdCArICc8L3NwYW4+JzsKICAgICAgICAgICAgaWYgKHdlcnRUZXh0KSB7
CiAgICAgICAgICAgICAgICB0YWdlSHRtbCArPSAnPHNwYW4gY2xhc3M9InBwLXRhZy1jb2RlIj4n
ICsgZXNjYXBlSFRNTCh3ZXJ0VGV4dCkgKyAnPC9zcGFuPic7CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgdGFnZUh0bWwgKz0gJzwvZGl2Pic7CiAgICAgICAgfQoKICAgICAgICAvLyBNb25hdHMt
S1BJICh6LkIuICJGNMK3UzXCt04zIikgbnVyLCB3ZW5uIHdhcyB6dSB6ZWlnZW4gaXN0CiAgICAg
ICAgdmFyIGtwaVRlaWxlID0gW107CiAgICAgICAgaWYgKG1vbmF0U3RhdHMuZikga3BpVGVpbGUu
cHVzaCgnRicgKyBtb25hdFN0YXRzLmYpOwogICAgICAgIGlmIChtb25hdFN0YXRzLnMpIGtwaVRl
aWxlLnB1c2goJ1MnICsgbW9uYXRTdGF0cy5zKTsKICAgICAgICBpZiAobW9uYXRTdGF0cy5uKSBr
cGlUZWlsZS5wdXNoKCdOJyArIG1vbmF0U3RhdHMubik7CiAgICAgICAgdmFyIG1vbmF0S3BpID0g
a3BpVGVpbGUubGVuZ3RoID8gJzxzcGFuIGNsYXNzPSJwcC1tb25hdC1rcGkiPicgKyBrcGlUZWls
ZS5qb2luKCfCtycpICsgJzwvc3Bhbj4nIDogJyc7CgogICAgICAgIG1vbmF0ZUh0bWwgKz0gJzxk
aXYgY2xhc3M9InBwLW1vbmF0Ij4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9InBwLW1vbmF0
LWtvcGYiPicgKwogICAgICAgICAgICAgICAgJzxoMz4nICsgbW9uYXRMYWJlbCArICc8L2gzPicg
KwogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJwcC1qYWhyIj4nICsgbW9uYXRKYWhyICsg
Jzwvc3Bhbj4nICsKICAgICAgICAgICAgICAgIG1vbmF0S3BpICsKICAgICAgICAgICAgJzwvZGl2
PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0icHAtdGFnZSI+JyArIHRhZ2VIdG1sICsgJzwv
ZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JzsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3BwLW1vbmF0ZScpLmlubmVySFRNTCA9IG1vbmF0ZUh0bWw7CgogICAgLy8gWnVz
YW1tZW5mYXNzdW5nIGFscyBLUEktS2FjaGVsbiAoS3JhbmstS2FjaGVsIGVudGZlcm50IOKAlCBE
YXRlbnNjaHV0eikKICAgIHZhciBrcGlJdGVtcyA9IFsKICAgICAgICB7IGt1ZXJ6ZWw6ICdmJywg
ICAgIGxhYmVsOiAnRnLDvGhkaWVuc3RlJywgICAgd2VydDogc3RhdHMuZnJ1ZWggfSwKICAgICAg
ICB7IGt1ZXJ6ZWw6ICdzJywgICAgIGxhYmVsOiAnU3DDpHRkaWVuc3RlJywgICAgd2VydDogc3Rh
dHMuc3BhZXQgfSwKICAgICAgICB7IGt1ZXJ6ZWw6ICduJywgICAgIGxhYmVsOiAnTmFjaHRkaWVu
c3RlJywgICB3ZXJ0OiBzdGF0cy5uYWNodCB9LAogICAgICAgIHsga3VlcnplbDogJ2dlc2FtdCcs
bGFiZWw6ICdEaWVuc3RlIGdlc2FtdCcsIHdlcnQ6IHN0YXRzLmdlc2FtdCB9LAogICAgICAgIHsg
a3VlcnplbDogJ3VybGF1YicsbGFiZWw6ICdVcmxhdWInLCAgICAgICAgIHdlcnQ6IHN0YXRzLnVy
bGF1YiB9LAogICAgICAgIHsga3VlcnplbDogJ2xlaHJnJywgbGFiZWw6ICdMZWhyZy4vU2VtaW5h
cicsIHdlcnQ6IHN0YXRzLmxlaHJnYW5nIH0sCiAgICAgICAgeyBrdWVyemVsOiAnZnJlaScsICBs
YWJlbDogJ0RpZW5zdGZyZWknLCAgICAgd2VydDogc3RhdHMuZnJlaSB9CiAgICBdOwogICAgdmFy
IHN1bUh0bWwgPSBrcGlJdGVtcy5tYXAoZnVuY3Rpb24oaykgewogICAgICAgIHJldHVybiAnPGRp
diBjbGFzcz0ia3BpIGtwaS0nICsgay5rdWVyemVsICsgJyI+JyArCiAgICAgICAgICAgICc8c3Bh
biBjbGFzcz0ia3BpLWxhYmVsIj4nICsgZXNjYXBlSFRNTChrLmxhYmVsKSArICc8L3NwYW4+JyAr
CiAgICAgICAgICAgICc8c3BhbiBjbGFzcz0ia3BpLXdlcnQiPicgKyBrLndlcnQgKyAnPC9zcGFu
PjwvZGl2Pic7CiAgICB9KS5qb2luKCcnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdw
cC1zdW1tYXJ5JykuaW5uZXJIVE1MID0gc3VtSHRtbDsKCiAgICAvLyBaZWl0cmF1bS1JbmZvCiAg
ICB2YXIgemVpdHJhdW1FbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcC16ZWl0cmF1bScp
OwogICAgaWYgKHplaXRyYXVtRWwpIHsKICAgICAgICB6ZWl0cmF1bUVsLnRleHRDb250ZW50ID0g
KG1vZHVzID09PSAnbW9uYXQnKQogICAgICAgICAgICA/IChtb05hbWVuW2FrdE1vbmF0XSArICcg
JyArIGphaHIpCiAgICAgICAgICAgIDogKCdKYW4gJyArIGphaHIgKyAnIOKAkyBKYW4gJyArIChq
YWhyICsgMSkpOwogICAgfQp9CgoKLy8gaW5pdE1lZGllbkxpc3RlbmVycyAtPiBqcy9hZG1pbi9t
ZWRpZW4uanMKCmV4cG9ydCBmdW5jdGlvbiBpbml0V29jaGVucGxhbkxpc3RlbmVycygpIHsKICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC12b3J3b2NoZScpLmFkZEV2ZW50TGlzdGVuZXIo
J2NsaWNrJywgZnVuY3Rpb24oKSB7IHdwT2Zmc2V0LS07IHdwUmVuZGVybigpOyB9KTsKICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC1uYWVjaHN0ZS13b2NoZScpLmFkZEV2ZW50TGlzdGVu
ZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7IHdwT2Zmc2V0Kys7IHdwUmVuZGVybigpOyB9KTsKICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC1ha3R1ZWxsZS13b2NoZScpLmFkZEV2ZW50TGlz
dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7IHdwT2Zmc2V0ID0gMDsgd3BSZW5kZXJuKCk7IH0p
OwogICAgdmFyIGJ0bldwRHJ1Y2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd3AtZHJ1Y2tl
bicpOwogICAgaWYgKGJ0bldwRHJ1Y2spIGJ0bldwRHJ1Y2suYWRkRXZlbnRMaXN0ZW5lcignY2xp
Y2snLCBmdW5jdGlvbigpIHsKICAgICAgICAvLyBGcmlzY2ggcmVuZGVybiwgZGFtaXQgU3RhbmQt
RGF0dW0vLVVocnplaXQgYWt0dWVsbCBpc3QKICAgICAgICB3cFJlbmRlcm4oKTsKICAgICAgICBk
b2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2RydWNrZW4td29jaGVucGxhbicpOwogICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHdpbmRvdy5wcmludCgpOwogICAg
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5y
ZW1vdmUoJ2RydWNrZW4td29jaGVucGxhbicpOyB9LCA1MDApOwogICAgICAgIH0sIDgwKTsKICAg
IH0pOwp9Cg==
