Content-Type: multipart/related; start=; boundary=----------fIzuf6Oyt4t75FHoI40g63
Content-Location: http://ege.edu.ru/ru/main/scaling/
Subject: =?utf-8?Q?=D0=A1=D0=BE=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80=D0=B2=D0=B8=D1=87=D0=BD=D1=8B=D1=85=20=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D1=85=20=D0=B1=D0=B0=D0=BB=D0=BB=D0=BE=D0=B2=20/=20=D0=9E=D1=84=D0=B8=D1=86=D0=B8=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=BE=D0=BD=D0=BD=D1=8B=D0=B9=20=D0=BF=D0=BE=D1=80=D1=82=D0=B0=D0=BB=20=D0=B5=D0=B4=D0=B8=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B3=D0=BE=D1=81=D1=83=D0=B4=D0=B0=D1=80=D1=81=D1=82=D0=B2=D0=B5=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=8D=D0=BA=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D0=B0=20(=D0=95=D0=93=D0=AD=202017)?=
MIME-Version: 1.0
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=default.htm
Content-Type: text/html; charset=utf-8; name=default.htm
Content-ID:
Content-Location: http://ege.edu.ru/ru/main/scaling/
Content-Transfer-Encoding: Base64
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJh
bnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3Nl
LmR0ZCI+Cgo8aHRtbD4KPGhlYWQ+Cgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CiAgICA8
bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iIj4KICAgIDxtZXRhIG5hbWU9
ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiPgoJPHRpdGxlPtCh0L7QvtGC0LLQtdGC
0YHRgtCy0LjQtSDQv9C10YDQstC40YfQvdGL0YUg0Lgg0YLQtdGB0YLQvtCy0YvR
hSDQsdCw0LvQu9C+0LIgLyDQntGE0LjRhtC40LDQu9GM0L3Ri9C5INC40L3RhNC+
0YDQvNCw0YbQuNC+0L3QvdGL0Lkg0L/QvtGA0YLQsNC7INC10LTQuNC90L7Qs9C+
INCz0L7RgdGD0LTQsNGA0YHRgtCy0LXQvdC90L7Qs9C+INGN0LrQt9Cw0LzQtdC9
0LAgKNCV0JPQrSAyMDE3KTwvdGl0bGU+CjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0i
L2NvbW1vbi9pbWcvZWdlX25ldy9mYXZpY29uX2VnZS5naWYiIHR5cGU9ImljbyI+
CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9j
b21tb24vY3NzL3N0eWxlX2VnZV9uZXcuY3NzIiBtZWRpYT0iYWxsIj4KPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL2NvbW1vbi9j
c3Mvc3R5bGVfZWdlXzIwMTUuY3NzIiBtZWRpYT0iYWxsIj4KPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2NvbW1vbi9qcy9tb290b29scy5qcyI+
PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9j
b21tb24vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iL2NvbW1vbi9qcy9qcXVlcnkuY29va2llLmpzIj48
L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2Nv
bW1vbi9qcy9lZ2VfbmV3LmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iL2NvbW1vbi9qcy9lZ2Vfc2Vjb25kLmpzIj48L3Nj
cmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL2NvbW1v
bi9qcy9jdXN0b20tZm9ybS1lbGVtZW50cy5qcyI+PC9zY3JpcHQ+CjxsaW5rIG1l
ZGlhPSJzY3JlZW4iIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL2NvbW1vbi9jc3Mv
Y29sb3Jib3guY3NzIj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iL2NvbW1vbi9qcy9qcXVlcnkuY29sb3Jib3guanMiPjwvc2NyaXB0Pgo8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvY29tbW9uL2pzL2p3cGxh
eWVyL2p3cGxheWVyLmpzIj48L3NjcmlwdD4KCgo8L2hlYWQ+Cjxib2R5IGlkPSJz
ZWNvbmQiIGNsYXNzPSJFR0UiPgo8ZGl2IGlkPSJjb250ZW50Ij4KCTxkaXYgY2xh
c3M9Im1haW5fdG9wIj4KCQk8YSBjbGFzcz0icmVnaW9ucyBleGFtcGxlNiIgIGhy
ZWY9Ii9ydS9rYXJ0YV9ydXNzaWEvIj7QktCw0Ygg0YDQtdCz0LjQvtC9PC9hPgo8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmpRdWVyeShkb2N1bWVudCku
cmVhZHkoZnVuY3Rpb24oKXsKICAgIGpRdWVyeSgnLmRpdl9uZXdfc2NyMicpLmNz
cygnZGlzcGxheScsICdibG9jaycpOwoJalF1ZXJ5KCcuZGl2X25ld19zY3IxJyku
Y3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCgkvLyBpZighZ2V0X2Nvb2tpZSgncmVn
aW9uX2lkJykpewoJLy8gCWxvY2F0aW9uLmhyZWYgPSAiLi8/cmVnaW9uX2NvZGU9
NzciOwoJLy8gfQp9KTsKCmZ1bmN0aW9uIGdldF9jb29raWUgKCBjb29raWVfbmFt
ZSApewogIHZhciByZXN1bHRzID0gZG9jdW1lbnQuY29va2llLm1hdGNoICggJyhe
fDspID8nICsgY29va2llX25hbWUgKyAnPShbXjtdKikoO3wkKScgKTsKIAogIGlm
ICggcmVzdWx0cyApCiAgICByZXR1cm4gKCB1bmVzY2FwZSAoIHJlc3VsdHNbMl0g
KSApOwogIGVsc2UKICAgIHJldHVybiBudWxsOwp9Cjwvc2NyaXB0PgogIDxzcGFu
IGlkPSJyYmNjb250ZW50c19lZV9ibG9jay4xNjgyLkNPTlRFTlRfVEVYVC44MC45
NDkiPjwvc3Bhbj4KCjxkaXYgY2xhc3M9InRvcF9yaWdodF9uYXYiPg0KDQo8ZGl2
IGNsYXNzPSJ0cF9yaWdfbmF2MSI+DQogICAgPGEgaHJlZj0iL3J1L21vYmlsZS8i
PtCc0L7QsdC40LvRjNC90LDRjyDQstC10YDRgdC40Y88L2E+DQo8L2Rpdj4NCg0K
PC9kaXY+DQoNCg0KDQoNCg0KPGRpdiBjbGFzcz0idG9wX3JpZ2h0X3NvYyI+DQog
ICAgIDwhLS08YSBjbGFzcz0ic29jX3NlMCIgIGhyZWY9Imh0dHA6Ly9ibG9nLWVn
ZS5saXZlam91cm5hbC5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PC9hPi0tPg0KICAg
ICAgPGEgY2xhc3M9InNvY19zZTEiICBocmVmPSJodHRwOi8vdHdpdHRlci5jb20v
IyEvb3Nva29ydSIgdGFyZ2V0PSJfYmxhbmsiPjwvYT4NCiAgICA8YSBjbGFzcz0i
c29jX3NlMiIgaHJlZj0iaHR0cDovL3d3dy5mYWNlYm9vay5jb20vcGFnZXMv0J7Q
odCe0JrQni3QldCT0K0t0JPQmNCQLzEyMjE0MjUyNzkxMTYzOSIgdGFyZ2V0PSJf
YmxhbmsiPjwvYT4NCiAgICA8YSBjbGFzcz0ic29jX3NlMyIgaHJlZj0iaHR0cDov
L3ZrLmNvbS9vc29rb3J1IiB0YXJnZXQ9Il9ibGFuayI+PC9hPg0KICAgIDxhIGNs
YXNzPSJzb2Nfc2U0IiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS91c2Vy
L1Jvc09ick5hZHpvciIgdGFyZ2V0PSJfYmxhbmsiPjwvYT4NCjwvZGl2Pg0KDQoK
ICA8ZGl2IGNsYXNzPSJ0b3BfcmlnaHRfM19pY28iPjxzcGFuPjwvc3Bhbj48L2Rp
dj4KPGRpdiBjbGFzcz0idG9wX3JpZ2h0XzMiPgo8Zm9ybSBhY3Rpb249Ii9ydS9z
ZWFyY2gvIiBpZD0ic2VhcmNoX2Zvcm0iPgoKICAgICAgICAgIDxpbnB1dCB0eXBl
PSJUZXh0IiBjbGFzcz0iaW5wMSIgdGl0bGU9ItCf0L7QuNGB0LoiIG5hbWU9InEi
IHZhbHVlPSLQn9C+0LjRgdC6IiBvbmZvY3VzPSJqYXZhc2NyaXB0OnRoaXMudmFs
dWU9JyciPgogICAgICAgICAgPGlucHV0IGFsdD0i0J3QsNC50YLQuCIgY2xhc3M9
ImlucDIiIHR5cGU9ImltYWdlIiBzcmM9Ii9jb21tb24vaW1nL2ltZ18yMDEzL3Nl
YXJjaF9iZzEuanBnIiB2YWx1ZT0i0J/QvtC40YHQuiI+CiAgICAgCgogIDwvZm9y
bT4KPC9kaXY+Cgk8L2Rpdj4KCTxzcGFuIGlkPSJyYmNjb250ZW50c19lZV9ibG9j
ay4xNjg4LkNPTlRFTlRfVEVYVC42Ljk1NSI+PC9zcGFuPgoKPGRpdiBjbGFzcz0i
ZWdlX3NpdGVfaGVhZGVyIj4NCgk8ZGl2IGNsYXNzPSJoZWFkZXJfc2xvZ2FuIj4N
CgkJPGRpdj7QntGE0LjRhtC40LDQu9GM0L3Ri9C5PGJyPtC40L3RhNC+0YDQvNCw
0YbQuNC+0L3QvdGL0Lkg0L/QvtGA0YLQsNC7PC9kaXY+DQogICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0naGVhZGVyX3Nsb2dhbjInPtC10LTQuNC90L7Qs9C+INCz
0L7RgdGD0LTQsNGA0YHRgtCy0LXQvdC90L7Qs9C+PGJyPtGN0LrQt9Cw0LzQtdC9
0LA8L2Rpdj4NCgk8L2Rpdj4NCgk8YSBocmVmPSIvcnUvc3BlY2lhbC9tYWluLyI+
PGRpdiBjbGFzcz0iaGVhZGVyX3NwZWNfbGluayI+PC9kaXY+PC9hPg0KCTxhIGhy
ZWY9Imh0dHA6Ly9lZ2UuZWR1LnJ1LyI+PGRpdiBjbGFzcz0iaGVhZGVyX2xvZ29f
bWFpbiI+PGltZyBzcmM9Ii9jb21tb24vdXBsb2FkL2ltZy8yMDE4LnBuZyI+PC9k
aXY+PC9hPg0KPC9kaXY+CQ0KDQoNCg0KDQoNCjwhLS08ZGl2IGNsYXNzPSJoZWFk
ZXJfbG9nb19tYWluIj48YSBocmVmPSIvcnUvIj48aW1nIHNyYz0iL2NvbW1vbi9p
bWcvaW1nXzIwMTUvdnlib3I0LnBuZyI+PC9hPjwvZGl2Pg0KPC9kaXY+LS0+DQo8
IS0tDQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KLmxvZ29fbmV3ew0KYmFja2dy
b3VuZDogbm9uZTsNCn0NCi5sb2dvX25ldyAubG9nb19pY297DQpiYWNrZ3JvdW5k
OiB1cmwoIi9jb21tb24vdXBsb2FkL2ltZy9sb2dvLmdpZiIpIG5vLXJlcGVhdCB0
b3AgbGVmdDsNCn0NCiNwcmludCAubG9nb19uZXcgew0KYmFja2dyb3VuZDogdXJs
KCIvY29tbW9uL3VwbG9hZC9pbWcvbG9nb19wcmludC5naWYiKSBuby1yZXBlYXQg
MHB4IDQ1cHg7DQp9DQoubG9nb19uZXcgLnZlcnNfc3BlY2lhbCB7DQpiYWNrZ3Jv
dW5kOiB1cmwoIi9jb21tb24vdXBsb2FkL3BpY3MvaWNvX3NwZWNpYWwuZ2lmIikg
bm8tcmVwZWF0IGxlZnQgdG9wOw0KZm9udC1zaXplOiAxM3B4Ow0KcGFkZGluZy1s
ZWZ0OiAzMHB4Ow0Kd2lkdGg6IDEzNXB4Ow0KfQ0KLmxvZ29fbmV3IC5uZXdfc2xv
Z2Fuew0KcG9zaXRpb246IGFic29sdXRlOw0KcmlnaHQ6IDIxMHB4Ow0KdG9wOiA0
NnB4Ow0KdGV4dC1hbGlnbjogcmlnaHQ7DQpmb250LWZhbWlseTogY2FsaWJyaTsN
Cn0NCi5sb2dvX25ldyAubmV3X3Nsb2dhbiAudGV4dHsNCmZvbnQtc2l6ZTogMTZw
eDsNCnRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQpmb250LXdlaWdodDogYm9s
ZDsNCmNvbG9yOiAjZTYyNjMxOw0KfQ0KLmxvZ29fbmV3IC5uZXdfc2xvZ2FuIC50
ZXh0IC5wcmVmew0KY29sb3I6ICM5ZDlkOWM7DQp9DQoubG9nb19uZXcgLm5ld19z
bG9nYW4gLnllYXJ7DQpjb2xvcjogIzExNzNiOTsNCmZvbnQtc2l6ZTogNTJweDsN
CnRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQpmb250LXdlaWdodDogYm9sZDsN
CmxpbmUtaGVpZ2h0OiAxZW07DQp9DQoubG9nb19uZXcgLmxvZ29fdGV4dHsNCmZv
bnQtZmFtaWx5OiAnT3Blbi1TYW5zLUNvbmRlbnNlZC1MaWdodCc7DQp9DQo8L3N0
eWxlPg0KPGRpdiBjbGFzcz0ibG9nb19uZXciPg0KPGRpdiBjbGFzcz0ibG9nb19p
Y28iIG9uY2xpY2s9ImxvY2F0aW9uLmhyZWY9Jy8nIj48L2Rpdj4NCjxkaXYgY2xh
c3M9ImxvZ29fdGV4dCIgb25jbGljaz0ibG9jYXRpb24uaHJlZj0nLyciPg0KPGRp
diBjbGFzcz0ibG9nb190ZXh0MSI+0J7RhNC40YbQuNCw0LvRjNC90YvQuSDQuNC9
0YTQvtGA0LzQsNGG0LjQvtC90L3Ri9C5INC/0L7RgNGC0LDQuzwvZGl2Pg0KPGRp
diBjbGFzcz0ibG9nb190ZXh0MiI+0JXQtNC40L3QvtCz0L4g0LPQvtGB0YPQtNCw
0YDRgdGC0LLQtdC90L3QvtCz0L4g0Y3QutC30LDQvNC10L3QsDwvZGl2Pg0KPC9k
aXY+DQo8ZGl2IGNsYXNzPSJuZXdfc2xvZ2FuIj4NCjxkaXYgY2xhc3M9InRleHQi
PjxzcGFuIGNsYXNzPSJwcmVmIj4jPC9zcGFuPtC10LPRjV/QstGL0LHQvtGAX9Cx
0YPQtNGD0YnQtdCz0L48L2Rpdj4NCjxkaXYgY2xhc3M9InllYXIiPjIwMTU8L2Rp
dj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0idmVyc19zcGVjaWFsIj48YSBocmVmPSIv
cnUvc3BlY2lhbC9tYWluLyI+0LLQtdGA0YHQuNGPINC00LvRjyDRgdC70LDQsdC+
0LLQuNC00Y/RidC40YU8L2E+PC9kaXY+DQo8L2Rpdj4NCi0tPgogIDxkaXYgY2xh
c3M9Im1lbnVfdG9wIj4KCTxkaXYgY2xhc3M9Im1lbnVfdG9wX2FsbCI+CgkJPHRh
YmxlIGNsYXNzPSJtZW51X3RvcF90YmwgY291bnRfIj4KCQkJPHRyPgoJCQkJCQkJ
CQkJPHRkPgoJCQkJCTxkaXYgY2xhc3M9Im1lbnVfbSBtZW51X21fMSI+CgkJCQkJ
CTxhIGhyZWY9Ii9ydS9tYWluLyIgY2xhc3M9Im1lbnUxIHNlbCI+0J7QsdGJ0LDR
jyDQuNC90YTQvtGA0LzQsNGG0LjRjyDQviDQldCT0K0gPGRpdiBjbGFzcz0ic3Rf
dHJldWciPjwvZGl2PjwvYT4KCgkJCQkJCTxkaXYgY2xhc3M9Im1lbnVfdmlldyI+
CgkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQk8dGFibGUgY2xhc3M9Im1lbnVfdmll
d190YmwiPgoJCQkJCQkJCTx0cj4KCQkJCQkJCQkJPHRkIGNsYXNzPSJ0ZDEiPgoJ
CQkJCQkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZW51NSI+CgkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iL3J1L21haW4vbWFpbl9pdGVtLyIgPtCe
0YHQvdC+0LLQvdGL0LUg0YHQstC10LTQtdC90LjRjyDQviDQldCT0K08L2E+CgkJ
CQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQoJCQkJCQkJCQkJCTxk
aXYgY2xhc3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8YSBocmVm
PSIvcnUvbWFpbi9zY2hlZHVsZS8iID7QoNCw0YHQv9C40YHQsNC90LjQtSDQk9CY
0JAgMjAxODwvYT4KCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQkJCgkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJ
CgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVudTUiPgoJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCTxhIGhyZWY9Ii9ydS9tYWluL2JyaWVmLWdsb3NzYXJ5LyIgPtCh0LvQ
vtCy0LDRgNGMINCV0JPQrTwvYT4KCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJ
CQkJCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkK
CQkJCQkJCQkJCgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVudTUiPgoJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9Ii9ydS9tYWluL2xlZ2FsLWRvY3VtZW50
cy8iID7QlNC+0LrRg9C80LXQvdGC0Ys8L2E+CgkJCQkJCQkJCQkJPC9kaXY+CgoJ
CQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCgkJCQkJCQkJCQoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lbnU1Ij4K
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8YSBocmVmPSIvcnUvbWFpbi9zaWMvIiA+
0KHQmNCmINCg0L7RgdC+0LHRgNC90LDQtNC30L7RgNCwPC9hPgoJCQkJCQkJCQkJ
CTwvZGl2PgoKCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNz
PSJtZW51NSI+CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iL3J1L21h
aW4vcmVsZWFzZS8iID5TTU9UUklFR0UuUlU8L2E+CgkJCQkJCQkJCQkJPC9kaXY+
CgoJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCTwvdGQ+PHRkIGNsYXNzPSJ0ZDIiPgkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQoJCQkJCQkJ
CQkJCTxkaXYgY2xhc3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8
YSBocmVmPSIvcnUvbWFpbi9pbmZvcm1hdGlvbl9tYXRlcmlhbHMvIiA+0JjQvdGE
0L7RgNC80LDRhtC40L7QvdC90YvQtSDQvNCw0YLQtdGA0LjQsNC70Ys8L2E+CgkJ
CQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQoJCQkJCQkJCQkJCTxk
aXYgY2xhc3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8YSBocmVm
PSIvcnUvbWFpbi9zY2FsaW5nLyIgIGNsYXNzPSJzZWxfMnVyIj7QodC+0L7RgtCy
0LXRgtGB0YLQstC40LUg0L/QtdGA0LLQuNGH0L3Ri9GFINC4INGC0LXRgdGC0L7Q
stGL0YUg0LHQsNC70LvQvtCyPC9hPgoJCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJ
CQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQoJCQkJCQkJCQkJCQkJCQkJCQk8L3RkPgoJCQkJCQkJCQkKCQkJCQkJCQk8L3Ry
PgoJCQkJCQkJCTwvdGFibGU+CgkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJPC9kaXY+
CgoJCQkJCTwvZGl2PgoJCQkJPC90ZD4KCQkJCQkJCQkJCQkJCTx0ZD4KCQkJCQk8
ZGl2IGNsYXNzPSJtZW51X20gbWVudV9tXzIiPgoJCQkJCQk8YSBocmVmPSIvcnUv
Y2xhc3Nlcy0xMS8iIGNsYXNzPSJtZW51MSI+0KPRh9Cw0YHRgtC90LjQutCw0Lwg
0JXQk9CtPC9hPgoKCQkJCQkJPGRpdiBjbGFzcz0ibWVudV92aWV3Ij4KCQkJCQkJ
CQkKCQkJCQkJCQkJCQkJCQkJCTx0YWJsZSBjbGFzcz0ibWVudV92aWV3X3RibCI+
CgkJCQkJCQkJPHRyPgoJCQkJCQkJCQk8dGQgY2xhc3M9InRkMSI+CgkJCQkJCQkJ
CQoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQk8YSBocmVmPSIvcnUvY2xhc3Nlcy0xMS9yZXMvIiA+0J/RgNC+0LLQ
tdGA0LjRgtGMINGA0LXQt9GD0LvRjNGC0LDRgtGLINCV0JPQrTwvYT4KCQkJCQkJ
CQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCgkJCQkJCQkJCQkJPGRpdiBj
bGFzcz0ibWVudTUiPgoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9Ii9y
dS9jbGFzc2VzLTExL3NvY2hpbmVuaWUvIiA+0JjRgtC+0LPQvtCy0L7QtSDRgdC+
0YfQuNC90LXQvdC40LUgKNC40LfQu9C+0LbQtdC90LjQtSk8L2E+CgkJCQkJCQkJ
CQkJPC9kaXY+CgoJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQoJCQkJCQkJCQkJCTxkaXYgY2xh
c3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8YSBocmVmPSIvcnUv
Y2xhc3Nlcy0xMS9wcmVwYXJhdGlvbi8iID7Qn9C+0LTQs9C+0YLQvtCy0LrQsCDQ
uiDQldCT0K08L2E+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQoJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJ
CQoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQk8YSBocmVmPSIvcnUvY2xhc3Nlcy0xMS9lbnRlcmluZy8iID7Qn9C+
0YHRgtGD0L/Qu9C10L3QuNC1INCyINCy0YPQt9GLPC9hPgoJCQkJCQkJCQkJCTwv
ZGl2PgoKCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJt
ZW51NSI+CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iL3J1L2NsYXNz
ZXMtMTEvb2x5bXBpY3MvIiA+0J7Qu9C40LzQv9C40LDQtNGLINC4INCV0JPQrTwv
YT4KCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCgkJCQkJCQkJ
CQkJPGRpdiBjbGFzcz0ibWVudTUiPgoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxh
IGhyZWY9Ii9ydS9jbGFzc2VzLTExL3BhcnRpY2lwYW50LyIgPtCj0YfQsNGB0YLQ
vdC40LrQuCDRgSDQntCS0JcsINC00LXRgtC4LdC40L3QstCw0LvQuNC00Ysg0Lgg
0LjQvdCy0LDQu9C40LTRizwvYT4KCQkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJ
CQkJCgkJCQkJCQkJCQkJPC90ZD48dGQgY2xhc3M9InRkMiI+CQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCgkJCQkJCQkJCQkJPGRpdiBj
bGFzcz0ibWVudTUiPgoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9Ii9y
dS9jbGFzc2VzLTExL2FwcGVsLyIgPtCQ0L/QtdC70LvRj9GG0LjRjzwvYT4KCQkJ
CQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCgkJCQkJCQkJCQkJPGRp
diBjbGFzcz0ibWVudTUiPgoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9
Ii9ydS9jbGFzc2VzLTExL3BzeWNoLyIgPtCh0L7QstC10YLRiyDRg9GH0LDRgdGC
0L3QuNC60LDQvCDQldCT0K08L2E+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJ
CQkJCQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CgkJCQkJCQkJCQoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lbnU1Ij4KCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQk8YSBocmVmPSIvcnUvY2xhc3Nlcy0xMS9RX2FuZF9B
LyIgPtCS0L7Qv9GA0L7RgS3QvtGC0LLQtdGCPC9hPgoJCQkJCQkJCQkJCTwvZGl2
PgoKCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQoJCQkJCQkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZW51
NSI+CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iL3J1L2NsYXNzZXMt
MTEvYW5rZXRzLyIgPtCQ0L3QutC10YLQuNGA0L7QstCw0L3QuNC1PC9hPgoJCQkJ
CQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJCQk8L3RkPgoJ
CQkJCQkJCQkKCQkJCQkJCQk8L3RyPgoJCQkJCQkJCTwvdGFibGU+CgkJCQkJCQkJ
CQkJCQkJCQkKCQkJCQkJPC9kaXY+CgoJCQkJCTwvZGl2PgoJCQkJPC90ZD4KCQkJ
CQkJCQkJCQkJCTx0ZD4KCQkJCQk8ZGl2IGNsYXNzPSJtZW51X20gbWVudV9tXzMi
PgoJCQkJCQk8YSBocmVmPSIvcnUvdG9fb3JnYW5pemVycy8iIGNsYXNzPSJtZW51
MSI+0J7RgNCz0LDQvdC40LfQsNGC0L7RgNCw0Lwg0JXQk9CtPC9hPgoKCQkJCQkJ
PGRpdiBjbGFzcz0ibWVudV92aWV3Ij4KCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJ
CTx0YWJsZSBjbGFzcz0ibWVudV92aWV3X3RibCI+CgkJCQkJCQkJPHRyPgoJCQkJ
CQkJCQk8dGQgY2xhc3M9InRkMSI+CgkJCQkJCQkJCQoJCQkJCQkJCQkJCTxkaXYg
Y2xhc3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8YSBocmVmPSIv
cnUvdG9fb3JnYW5pemVycy9lZHVjYXRpb25hbF9vcmdhbml6YXRpb25zLyIgPtCe
0LHRgNCw0LfQvtCy0LDRgtC10LvRjNC90YvQvCDQvtGA0LPQsNC90LjQt9Cw0YbQ
uNGP0Lw8L2E+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQoJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQoJ
CQkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQk8YSBocmVmPSIvcnUvdG9fb3JnYW5pemVycy9vZmZpY2lhbHMvIiA+0KPR
h9C10LHQvdGL0LUg0LzQsNGC0LXRgNC40LDQu9GLPC9hPgoJCQkJCQkJCQkJCTwv
ZGl2PgoKCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQoJCQkJCQkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJt
ZW51NSI+CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iL3J1L3RvX29y
Z2FuaXplcnMvZmluYWwvIiA+0JjRgtC+0LPQvtCy0L7QtSDRgdC+0YfQuNC90LXQ
vdC40LUgKNC40LfQu9C+0LbQtdC90LjQtSk8L2E+CgkJCQkJCQkJCQkJPC9kaXY+
CgoJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCTwvdGQ+CgkJCQkJCQkJCQoJCQkJ
CQkJCTwvdHI+CgkJCQkJCQkJPC90YWJsZT4KCQkJCQkJCQkJCQkJCQkJCQoJCQkJ
CQk8L2Rpdj4KCgkJCQkJPC9kaXY+CgkJCQk8L3RkPgoJCQkJCQkJCQkJCQkJPHRk
PgoJCQkJCTxkaXYgY2xhc3M9Im1lbnVfbSBtZW51X21fNCI+CgkJCQkJCTxhIGhy
ZWY9Ii9ydS9uZXdzLyIgY2xhc3M9Im1lbnUxIj7QndC+0LLQvtGB0YLQuDwvYT4K
CgkJCQkJCTxkaXYgY2xhc3M9Im1lbnVfdmlldyI+CgkJCQkJCQkJCgkJCQkJCQkJ
CQkJCQkJCQk8dGFibGUgY2xhc3M9Im1lbnVfdmlld190YmwiPgoJCQkJCQkJCTx0
cj4KCQkJCQkJCQkJPHRkIGNsYXNzPSJ0ZDEiPgoJCQkJCQkJCQkKCQkJCQkJCQkJ
CQk8ZGl2IGNsYXNzPSJtZW51NSI+CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGEg
aHJlZj0iL3J1L25ld3MvTmV3cy8iID7QpNC10LTQtdGA0LDQu9GM0L3Ri9C1INC9
0L7QstC+0YHRgtC4PC9hPgoJCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCQkK
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQoJCQkJ
CQkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZW51NSI+CgkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJPGEgaHJlZj0iL3J1L25ld3MvcmVnaW9uYWxfbmV3cy8iID7Q
oNC10LPQuNC+0L3QsNC70YzQvdGL0LUg0L3QvtCy0L7RgdGC0Lg8L2E+CgkJCQkJ
CQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQkJCTwvdGQ+CgkJ
CQkJCQkJCQoJCQkJCQkJCTwvdHI+CgkJCQkJCQkJPC90YWJsZT4KCQkJCQkJCQkJ
CQkJCQkJCQoJCQkJCQk8L2Rpdj4KCgkJCQkJPC9kaXY+CgkJCQk8L3RkPgoJCQkJ
CQkJCQkJCQkJPHRkPgoJCQkJCTxkaXYgY2xhc3M9Im1lbnVfbSBtZW51X21fNSI+
CgkJCQkJCTxhIGhyZWY9Ii9ydS9jb250YWN0cy8iIGNsYXNzPSJtZW51MSI+0JrQ
vtC90YLQsNC60YLRizwvYT4KCgkJCQkJCTxkaXYgY2xhc3M9Im1lbnVfdmlldyI+
CgkJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCQk8dGFibGUgY2xhc3M9Im1lbnVfdmll
d190YmwiPgoJCQkJCQkJCTx0cj4KCQkJCQkJCQkJPHRkIGNsYXNzPSJ0ZDEiPgoJ
CQkJCQkJCQkKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZW51NSI+CgkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iL3J1L2NvbnRhY3RzL2NvbnRhY3RfaW5m
b3JtYXRpb24vIiA+0JrQvtC90YLQsNC60YLQvdCw0Y8g0LjQvdGE0L7RgNC80LDR
htC40Y88L2E+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQoJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQoJ
CQkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQk8YSBocmVmPSIvcnUvY29udGFjdHMvbWVkaWEvIiA+0JTQu9GPINCh0JzQ
mCA8L2E+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJCQoJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCgkJCQkJCQkJCQoJCQkJ
CQkJCQkJCTxkaXYgY2xhc3M9Im1lbnU1Ij4KCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQk8YSBocmVmPSIvcnUvY29udGFjdHMvcGhvbmUvIiA+0KLQtdC70LXRhNC+0L0g
0LTQvtCy0LXRgNC40Y8g0JXQk9CtPC9hPgoJCQkJCQkJCQkJCTwvZGl2PgoKCQkJ
CQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQoJCQkJCQkJCQkJCQkJCQkJCQk8L3RkPgoJCQkJCQkJCQkKCQkJCQkJCQk8
L3RyPgoJCQkJCQkJCTwvdGFibGU+CgkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJPC9k
aXY+CgoJCQkJCTwvZGl2PgoJCQkJPC90ZD4KCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPC90cj4KCQk8L3RhYmxlPgoJ
PC9kaXY+CjwvZGl2PiAgPGRpdiBjbGFzcz0ic3RhdHVzX21lbnUiPgoJCQk8YSBo
cmVmPSIvIj7Qk9C70LDQstC90LDRjzwvYT4JCQk8YSAgaHJlZj0iL3J1L21haW4v
Ij7QntCx0YnQsNGPINC40L3RhNC+0YDQvNCw0YbQuNGPINC+INCV0JPQrSA8L2E+
IAkJCTxzcGFuPtCh0L7QvtGC0LLQtdGC0YHRgtCy0LjQtSDQv9C10YDQstC40YfQ
vdGL0YUg0Lgg0YLQtdGB0YLQvtCy0YvRhSDQsdCw0LvQu9C+0LI8L3NwYW4+CTwv
ZGl2PiAgPHRhYmxlIGNsYXNzPSJzZWNvbmRfY29udF90YmwiPgogICAgPHRyPgog
ICAgICA8dGQgY2xhc3M9InNlY29uZF9jb250X3RibF8xIj48ZGl2IGNsYXNzPSJt
ZW51X2xlZnQiPgo8ZGl2IGNsYXNzPSJ2eWJyX3JhemRlbCI+PGEgaHJlZj0iL3J1
L21haW4vIj7QntCx0YnQsNGPINC40L3RhNC+0YDQvNCw0YbQuNGPINC+INCV0JPQ
rSA8L2E+PC9kaXY+CgoJCgkJCQoJCQkJPHVsPgoJCQkJCgkJCQkJPGxpPgoJCQkJ
CQkJCQkJPGEgaHJlZj0iL3J1L21haW4vbWFpbl9pdGVtLyI+0J7RgdC90L7QstC9
0YvQtSDRgdCy0LXQtNC10L3QuNGPINC+INCV0JPQrTwvYT4KCgkJCQkJCQkKCQkJ
CQkJCQkJCQkJCQkKCgkJCQkKCQkJCQoJCQkJCTxsaT4KCQkJCQkJCQkJCTxhIGhy
ZWY9Ii9ydS9tYWluL3NjaGVkdWxlLyI+0KDQsNGB0L/QuNGB0LDQvdC40LUg0JPQ
mNCQIDIwMTg8L2E+CgoJCQkJCQkJCgkJCQkJCQkJCQkJCQkJCgoJCQkJCgkJCQkK
CQkJCQk8bGk+CgkJCQkJCQkJCQk8YSBocmVmPSIvcnUvbWFpbi9icmllZi1nbG9z
c2FyeS8iPtCh0LvQvtCy0LDRgNGMINCV0JPQrTwvYT4KCgkJCQkJCQkKCQkJCQkJ
CQkJCQkJCQkKCgkJCQkKCQkJCQoJCQkJCTxsaT4KCQkJCQkJCQkJCTxhIGhyZWY9
Ii9ydS9tYWluL2xlZ2FsLWRvY3VtZW50cy8iPtCU0L7QutGD0LzQtdC90YLRizwv
YT4KCgkJCQkJCQkKCQkJCQkJCQkJCQkJCQkKCgkJCQkKCQkJCQoJCQkJCTxsaT4K
CQkJCQkJCQkJCTxhIGhyZWY9Ii9ydS9tYWluL3NpYy8iPtCh0JjQpiDQoNC+0YHQ
vtCx0YDQvdCw0LTQt9C+0YDQsDwvYT4KCgkJCQkJCQkKCQkJCQkJCQkJCQkJCQkK
CgkJCQkKCQkJCQoJCQkJCTxsaT4KCQkJCQkJCQkJCTxhIGhyZWY9Ii9ydS9tYWlu
L3JlbGVhc2UvIj5TTU9UUklFR0UuUlU8L2E+CgoJCQkJCQkJCgkJCQkJCQkJCQkJ
CQkJCgoJCQkJCgkJCQkKCQkJCQk8bGk+CgkJCQkJCQkJCQk8YSBocmVmPSIvcnUv
bWFpbi9pbmZvcm1hdGlvbl9tYXRlcmlhbHMvIj7QmNC90YTQvtGA0LzQsNGG0LjQ
vtC90L3Ri9C1INC80LDRgtC10YDQuNCw0LvRizwvYT4KCgkJCQkJCQkKCQkJCQkJ
CQkJCQkJCQkKCgkJCQkKCQkJCQoJCQkJCTxsaSBjbGFzcz0iYWN0aXYiPgoJCQkJ
CQkJCQkJPGEgY2xhc3M9InNlbF8yX3VyIiBocmVmPSIvcnUvbWFpbi9zY2FsaW5n
LyI+0KHQvtC+0YLQstC10YLRgdGC0LLQuNC1INC/0LXRgNCy0LjRh9C90YvRhSDQ
uCDRgtC10YHRgtC+0LLRi9GFINCx0LDQu9C70L7QsjwvYT4KCgkJCQkJCQkKCQkJ
CQkJCQkJCQkJCQkKCgkJCQkKCQkJCQkJCQk8L3VsPgoJCQkJCQkKCgkKCjwvZGl2
Pgo8L3RkPgogICAgICA8dGQgY2xhc3M9InNlY29uZF9jb250X3RibF8yIj48ZGl2
IGNsYXNzPSJjb250ZW50Ij4gICAgICAgICAgIDxIMSBjbGFzcz0iaGVhZF90dGwi
PtCh0L7QvtGC0LLQtdGC0YHRgtCy0LjQtSDQv9C10YDQstC40YfQvdGL0YUg0Lgg
0YLQtdGB0YLQvtCy0YvRhSDQsdCw0LvQu9C+0LI8L0gxPgogICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgPHNwYW4gaWQ9InJiY2NvbnRlbnRzX2VlX2Jsb2Nr
LjEyMDYuQ09OVEVOVF9URVhULjQuNTcyIj48L3NwYW4+Cgo8cD48YSBocmVmPSJo
dHRwOi8vd3d3LmVnZS5lZHUucnUvcnUvbWFpbi9sZWdhbC1kb2N1bWVudHMvcm9z
b2JybmFkem9yL2luc3RydWN0aW9ucy9pbmRleC5waHA/aWRfND0yMzUzMyI+0JzQ
tdGC0L7QtNC40LrQsCDQvtC/0YDQtdC00LXQu9C10L3QuNGPINC80LjQvdC40LzQ
sNC70YzQvdC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDQsdCw0LvQu9C+0LIg
0LXQtNC40L3QvtCz0L4g0LPQvtGB0YPQtNCw0YDRgdGC0LLQtdC90L3QvtCz0L4g
0Y3QutC30LDQvNC10L3QsCwg0L/QvtC00YLQstC10YDQttC00LDRjtGJ0LXQs9C+
INC+0YHQstC+0LXQvdC40LUg0L7QsdGA0LDQt9C+0LLQsNGC0LXQu9GM0L3QvtC5
INC/0YDQvtCz0YDQsNC80LzRiyDRgdGA0LXQtNC90LXQs9C+INC+0LHRidC10LPQ
viDQvtCx0YDQsNC30L7QstCw0L3QuNGPLCDQuCDQvNC40L3QuNC80LDQu9GM0L3Q
vtCz0L4g0LrQvtC70LjRh9C10YHRgtCy0LAg0LHQsNC70LvQvtCyINC10LTQuNC9
0L7Qs9C+INCz0L7RgdGD0LTQsNGA0YHRgtCy0LXQvdC90L7Qs9C+INGN0LrQt9Cw
0LzQtdC90LAsINC90LXQvtCx0YXQvtC00LjQvNC+0LPQviDQtNC70Y8g0L/QvtGB
0YLRg9C/0LvQtdC90LjRjyDQsiDQvtCx0YDQsNC30L7QstCw0YLQtdC70YzQvdGL
0LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQstGL0YHRiNC10LPQviDQvtCx0YDQ
sNC30L7QstCw0L3QuNGPINC90LAg0L7QsdGD0YfQtdC90LjQtSDQv9C+INC/0YDQ
vtCz0YDQsNC80LzQsNC8INCx0LDQutCw0LvQsNCy0YDQuNCw0YLQsCDQuCDQv9GA
0L7Qs9GA0LDQvNC80LDQvCDRgdC/0LXRhtC40LDQu9C40YLQtdGC0LA8L2E+PC9w
Pg0KDQo8cD48YSBocmVmPSIvY29tbW9uL3VwbG9hZC9kb2NzLzkyMC0xMF9SYXNw
b3J5YXpoZW5pZV9vX3ZuZXNlbmlpX2l6bWVuZW5peS5wZGYiPtCeINCy0L3QtdGB
0LXQvdC40Lgg0LjQt9C80LXQvdC10L3QuNC5INCyINC/0YDQuNC70L7QttC10L3Q
uNC1IDIg0Log0LzQtdGC0L7QtNC40LrQtSDQvtC/0YDQtdC00LXQu9C10L3QuNGP
INC80LjQvdC40LzQsNC70YzQvdC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDQ
sdCw0LvQu9C+0LIg0LXQtNC40L3QvtCz0L4g0LPQvtGB0YPQtNCw0YDRgdGC0LLQ
tdC90L3QvtCz0L4g0Y3QutC30LDQvNC10L3QsCwg0L/QvtC00YLQstC10YDQttC0
0LDRjtGJ0LXQs9C+INC+0YHQstC+0LXQvdC40LUg0L7QsdGA0LDQt9C+0LLQsNGC
0LXQu9GM0L3QvtC5INC/0YDQvtCz0YDQsNC80LzRiyDRgdGA0LXQtNC90LXQs9C+
INC+0LHRidC10LPQviDQvtCx0YDQsNC30L7QstCw0L3QuNGPLCDQuCDQvNC40L3Q
uNC80LDQu9GM0L3QvtCz0L4g0LrQvtC70LjRh9C10YHRgtCy0LAg0LHQsNC70LvQ
vtCyINC10LTQuNC90L7Qs9C+INCz0L7RgdGD0LTQsNGA0YHRgtCy0LXQvdC90L7Q
s9C+INGN0LrQt9Cw0LzQtdC90LAsINC90LXQvtCx0YXQvtC00LjQvNC+0LPQviDQ
tNC70Y8g0L/QvtGB0YLRg9C/0LvQtdC90LjRjyDQsiDQvtCx0YDQsNC30L7QstCw
0YLQtdC70YzQvdGL0LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQstGL0YHRiNC1
0LPQviDQvtCx0YDQsNC30L7QstCw0L3QuNGPINC90LAg0L7QsdGD0YfQtdC90LjQ
tSDQv9C+INC/0YDQvtCz0YDQsNC80LzQsNC8INCx0LDQutCw0LvQsNCy0YDQuNCw
0YLQsCDQuCDQv9GA0L7Qs9GA0LDQvNC80LDQvCDRgdC/0LXRhtC40LDQu9C40YLQ
tdGC0LAsINGD0YLQstC10YDQttC00LXQvdC90L7QuSDRgNCw0YHQv9C+0YDRj9C2
0LXQvdC40LXQvCDQpNC10LTQtdGA0LDQu9GM0L3QvtC5INGB0LvRg9C20LHRiyDQ
v9C+INC90LDQtNC30L7RgNGDINCyINGB0YTQtdGA0LUg0L7QsdGA0LDQt9C+0LLQ
sNC90LjRjyDQuCDQvdCw0YPQutC4INC+0YIgMzAuMTIuMjAxNiDihJYgMzQyMi0x
MDwvYT48L3A+DQoNCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij48Yj7Q
odC+0L7RgtCy0LXRgtGB0YLQstC40LUg0LzQtdC20LTRgyDQvNC40L3QuNC80LDQ
u9GM0L3Ri9C80Lgg0L/QtdGA0LLQuNGH0L3Ri9C80Lgg0LHQsNC70LvQsNC80Lgg
0Lgg0LzQuNC90LjQvNCw0LvRjNC90YvQvNC4INGC0LXRgdGC0L7QstGL0LzQuCDQ
sdCw0LvQu9Cw0LzQuCDQv9C+INGB0YLQvtCx0LDQu9C70YzQvdC+0Lkg0YHQuNGB
0YLQtdC80LUg0L7RhtC10L3QuNCy0LDQvdC40Y8sINC/0L7QtNGC0LLQtdGA0LbQ
tNCw0Y7RidC40LzQuCDQvtGB0LLQvtC10L3QuNC1INC+0LHRgNCw0LfQvtCy0LDR
gtC10LvRjNC90L7QuSDQv9GA0L7Qs9GA0LDQvNC80Ysg0YHRgNC10LTQvdC10LPQ
viDQvtCx0YnQtdCz0L4g0L7QsdGA0LDQt9C+0LLQsNC90LjRjyDQv9C+INC+0LHR
j9C30LDRgtC10LvRjNC90YvQvCDRg9GH0LXQsdC90YvQvCDQv9GA0LXQtNC80LXR
gtCw0Lw8L2I+PC9wPg0KPGRpdiBjbGFzcz0idGFibGVfYmxvY2siPg0KPHRhYmxl
IGNsYXNzPSJ0YWJsZSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPg0KIDx0
Ym9keT48dHI+DQogICAgPHRoIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij7Q
n9GA0LXQtNC80LXRgjwvdGg+DQogICAgPHRoIHN0eWxlPSJ0ZXh0LWFsaWduOiBj
ZW50ZXI7Ij7QnNC40L3QuNC80LDQu9GM0L3Ri9C5INC/0LXRgNCy0LjRh9C90YvQ
uSDQsdCw0LvQuyA8L3RoPg0KICAgIDx0aCBzdHlsZT0idGV4dC1hbGlnbjogY2Vu
dGVyOyI+0JzQuNC90LjQvNCw0LvRjNC90YvQuSDRgtC10YHRgtC+0LLRi9C5INCx
0LDQu9C7ICA8L3RoPg0KICAgICA8L3RyPg0KIDx0cj4NCiAgICA8dGQgc3R5bGU9
InRleHQtYWxpZ246IGNlbnRlcjsiPtCg0YPRgdGB0LrQuNC5INGP0LfRi9C6PC90
ZD4NCiAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjEwPC90ZD4N
CiAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjI0PC90ZD4NCiAg
ICA8L3RyPg0KPHRyPg0KICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVy
OyI+0JzQsNGC0LXQvNCw0YLQuNC60LAg0L/RgNC+0YTQuNC70YzQvdC+0LPQviDR
g9GA0L7QstC90Y88L3RkPg0KICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2Vu
dGVyOyI+NjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7
Ij4yNzwvdGQ+DQogICAgIDwvdHI+DQo8L3Rib2R5PjwvdGFibGU+DQo8L2Rpdj4N
Cg0KPHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjxiPtCh0L7QvtGC0LLQ
tdGC0YHRgtCy0LjQtSDQvNC10LbQtNGDINC80LjQvdC40LzQsNC70YzQvdGL0LzQ
uCDQv9C10YDQstC40YfQvdGL0LzQuCDQsdCw0LvQu9Cw0LzQuCANCtC4INC80LjQ
vdC40LzQsNC70YzQvdGL0LzQuCDRgtC10YHRgtC+0LLRi9C80Lgg0LHQsNC70LvQ
sNC80Lgg0L/QviDRg9GH0LXQsdC90YvQvCDQv9GA0LXQtNC80LXRgtCw0Lwg0L/Q
viDRgdGC0L7QsdCw0LvQu9GM0L3QvtC5INGB0LjRgdGC0LXQvNC1INC+0YbQtdC9
0LjQstCw0L3QuNGPLCDQv9C+0LTRgtCy0LXRgNC20LTQsNGO0YnQuNC80Lgg0L7R
gdCy0L7QtdC90LjQtSDQvtCx0YDQsNC30L7QstCw0YLQtdC70YzQvdC+0Lkg0L/R
gNC+0LPRgNCw0LzQvNGLINGB0YDQtdC00L3QtdCz0L4g0L7QsdGJ0LXQs9C+INC+
0LHRgNCw0LfQvtCy0LDQvdC40Y8g0L/QviDQstGB0LXQvCDQvtCx0YnQtdC+0LHR
gNCw0LfQvtCy0LDRgtC10LvRjNC90YvQvCDQv9GA0LXQtNC80LXRgtCw0LwsIA0K
0Lgg0L3QtdC+0LHRhdC+0LTQuNC80L7QtSDQtNC70Y8g0L/QvtGB0YLRg9C/0LvQ
tdC90LjRjyDQsiDQvtCx0YDQsNC30L7QstCw0YLQtdC70YzQvdGL0LUg0L7RgNCz
0LDQvdC40LfQsNGG0LjQuCDQstGL0YHRiNC10LPQviDQvtCx0YDQsNC30L7QstCw
0L3QuNGPINC90LAg0L7QsdGD0YfQtdC90LjQtSDQv9C+INC/0YDQvtCz0YDQsNC8
0LzQsNC8INCx0LDQutCw0LvQsNCy0YDQuNCw0YLQsCDQuCDQv9GA0L7Qs9GA0LDQ
vNC80LDQvCDRgdC/0LXRhtC40LDQu9C40YLQtdGC0LANCjwvYj48L3A+DQo8ZGl2
IGNsYXNzPSJ0YWJsZV9ibG9jayI+DQo8dGFibGUgY2xhc3M9InRhYmxlIiBzdHls
ZT0idGV4dC1hbGlnbjogY2VudGVyOyI+DQogPHRib2R5Pjx0cj4NCiAgICA8dGgg
c3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPtCf0YDQtdC00LzQtdGCPC90aD4N
CiAgICA8dGggc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPtCc0LjQvdC40LzQ
sNC70YzQvdGL0Lkg0L/QtdGA0LLQuNGH0L3Ri9C5INCx0LDQu9C7IDwvdGg+DQog
ICAgPHRoIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij7QnNC40L3QuNC80LDQ
u9GM0L3Ri9C5INGC0LXRgdGC0L7QstGL0Lkg0LHQsNC70LsgIDwvdGg+DQogICAg
ICA8L3RyPg0KIDx0cj4NCiAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRl
cjsiPtCg0YPRgdGB0LrQuNC5INGP0LfRi9C6PC90ZD4NCiAgICA8dGQgc3R5bGU9
InRleHQtYWxpZ246IGNlbnRlcjsiPjE2PC90ZD4NCiAgICA8dGQgc3R5bGU9InRl
eHQtYWxpZ246IGNlbnRlcjsiPjM2PC90ZD4NCiAgICAgPC90cj4NCjx0cj4NCiAg
ICA8dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPtCc0LDRgtC10LzQsNGC
0LjQutCwINC/0YDQvtGE0LjQu9GM0L3QvtCz0L4g0YPRgNC+0LLQvdGPPC90ZD4N
CiAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjY8L3RkPg0KICAg
IDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+Mjc8L3RkPg0KICAgICA8
L3RyPg0KPHRyPg0KICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+
0J7QsdGJ0LXRgdGC0LLQvtC30L3QsNC90LjQtTwvdGQ+DQogICAgPHRkIHN0eWxl
PSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4xOSA8L3RkPg0KICAgIDx0ZCBzdHlsZT0i
dGV4dC1hbGlnbjogY2VudGVyOyI+NDI8L3RkPg0KICAgICAgPC90cj4NCjx0cj4N
CiAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPtCY0YHRgtC+0YDQ
uNGPPC90ZD4NCiAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjk8
L3RkPg0KICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+MzI8L3Rk
Pg0KICAgICAgPC90cj4NCjx0cj4NCiAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246
IGNlbnRlcjsiPtCk0LjQt9C40LrQsDwvdGQ+DQogICAgPHRkIHN0eWxlPSJ0ZXh0
LWFsaWduOiBjZW50ZXI7Ij45PC90ZD4NCiAgICA8dGQgc3R5bGU9InRleHQtYWxp
Z246IGNlbnRlcjsiPjM2PC90ZD4NCiAgICA8L3RyPg0KPHRyPg0KICAgIDx0ZCBz
dHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+0KXQuNC80LjRjzwvdGQ+DQogICAg
PHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4xMzwvdGQ+DQogICAgPHRk
IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4zNjwvdGQ+DQogICAgICA8L3Ry
Pg0KPHRyPg0KICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+0JHQ
uNC+0LvQvtCz0LjRjzwvdGQ+DQogICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBj
ZW50ZXI7Ij4xNjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50
ZXI7Ij4zNjwvdGQ+DQogIDwvdHI+DQo8dHI+DQogICAgPHRkIHN0eWxlPSJ0ZXh0
LWFsaWduOiBjZW50ZXI7Ij7Qk9C10L7Qs9GA0LDRhNC40Y88L3RkPg0KICAgIDx0
ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+MTE8L3RkPg0KICAgIDx0ZCBz
dHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+Mzc8L3RkPg0KICAgICAgPC90cj4N
Cjx0cj4NCiAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPtCY0L3R
hNC+0YDQvNCw0YLQuNC60LAg0Lgg0JjQmtCiPC90ZD4NCiAgICA8dGQgc3R5bGU9
InRleHQtYWxpZ246IGNlbnRlcjsiPjY8L3RkPg0KICAgIDx0ZCBzdHlsZT0idGV4
dC1hbGlnbjogY2VudGVyOyI+NDA8L3RkPg0KICAgPC90cj4NCjx0cj4NCiAgICA8
dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPtCY0L3QvtGB0YLRgNCw0L3Q
vdGL0LUg0Y/Qt9GL0LrQuDwvdGQ+DQogICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWdu
OiBjZW50ZXI7Ij4yMjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBj
ZW50ZXI7Ij4yMjwvdGQ+DQogIDwvdHI+DQo8dHI+DQogICAgPHRkIHN0eWxlPSJ0
ZXh0LWFsaWduOiBjZW50ZXI7Ij7Qm9C40YLQtdGA0LDRgtGD0YDQsDwvdGQ+DQog
ICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij44PC90ZD4NCiAgICA8
dGQgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjMyPC90ZD4NCiAgIDwvdHI+
DQo8L3Rib2R5PjwvdGFibGU+DQo8L2Rpdj4NCg0KDQo8cD48Yj48YSBocmVmPSIv
Y29tbW9uL3VwbG9hZC9kb2NzL1ByaWxvemhlbmllX05fMi5kb2MiPtCh0L7QvtGC
0LLQtdGC0YHRgtCy0LjQtSDQvNC10LbQtNGDINC/0LXRgNCy0LjRh9C90YvQvNC4
INCx0LDQu9C70LDQvNC4INC4INGC0LXRgdGC0L7QstGL0LzQuCDQsdCw0LvQu9Cw
0LzQuCDQv9C+INCy0YHQtdC8INGD0YfQtdCx0L3Ri9C8INC/0YDQtdC00LzQtdGC
0LDQvCANCtC/0L4g0YHRgtC+0LHQsNC70LvRjNC90L7QuSDRgdC40YHRgtC10LzQ
tSDQvtGG0LXQvdC40LLQsNC90LjRjzwvYT4NCjwvYj48L3A+DQo8YnI+DQo8IS0t
PHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjxiPtCh0L7QvtGC0LLQtdGC
0YHRgtCy0LjQtSDQvNC10LbQtNGDINCx0LDQu9C70LDQvNC4INCV0JPQrSDQv9C+
INC80LDRgtC10LzQsNGC0LjQutC1INCx0LDQt9C+0LLQvtCz0L4g0YPRgNC+0LLQ
vdGPIA0K0Lgg0L7RgtC80LXRgtC60LDQvNC4INC/0L4g0L/Rj9GC0LjQsdCw0LvQ
u9GM0L3QvtC5INGB0LjRgdGC0LXQvNC1INC+0YbQtdC90LjQstCw0L3QuNGPPC9i
PjwvcD4NCjxkaXYgY2xhc3M9InRhYmxlX2Jsb2NrIj4NCjx0YWJsZSBjbGFzcz0i
dGFibGUiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4NCjx0Ym9keT48dHI+
DQogICAgPHRoIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij7QntGC0LzQtdGC
0LrQsCDQv9C+INC/0Y/RgtC40LHQsNC70LvRjNC90L7QuSDRiNC60LDQu9C1PC90
aD4NCiAgICA8dGggc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPsKrMsK7ICjQ
vdC10YPQtNC+0LLQu9C10YLQstC+0YDQuNGCLikgPC90aD4NCiAgICA8dGggc3R5
bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPsKrM8K7ICjRg9C00L7QstC70LXRgtCy
0L7RgNC40YIuKSA8L3RoPg0KPHRoIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7
Ij7CqzTCuyAo0YXQvtGA0L7RiNC+KTwvdGg+DQo8dGggc3R5bGU9InRleHQtYWxp
Z246IGNlbnRlcjsiPsKrNcK7ICjQvtGC0LvQuNGH0L3Qvik8L3RoPg0KICA8L3Ry
Pg0KPHRyPg0KICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+0J/Q
tdGA0LLQuNGH0L3Ri9C5INCx0LDQu9C7PC90ZD4NCiAgICA8dGQgc3R5bGU9InRl
eHQtYWxpZ246IGNlbnRlcjsiPjAtNjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ0ZXh0
LWFsaWduOiBjZW50ZXI7Ij43LTExPC90ZD4NCjx0ZCBzdHlsZT0idGV4dC1hbGln
bjogY2VudGVyOyI+MTItMTY8L3RkPg0KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBj
ZW50ZXI7Ij4xNy0yMDwvdGQ+DQogIDwvdHI+DQo8L3Rib2R5PjwvdGFibGU+DQo8
L2Rpdj4NCtCd0LAg0L7RgdC90L7QstCw0L3QuNC4INC/0YPQvdC60YLQvtCyIDE1
LCAxOSDQoNCw0YHQv9C+0YDRj9C20LXQvdC40Y8g0KTQtdC00LXRgNCw0LvRjNC9
0L7QuSDRgdC70YPQttCx0Ysg0L/QviDQvdCw0LTQt9C+0YDRgyDQsiDRgdGE0LXR
gNC1INC+0LHRgNCw0LfQvtCy0LDQvdC40Y8g0Lgg0L3QsNGD0LrQuCDQvtGCIDMw
LjEyLjIwMTYg4oSWIDM0MjItMTAgwqvQntCxINGD0YLQstC10YDQttC00LXQvdC4
0Lgg0LzQtdGC0L7QtNC40LrQuCDQvtC/0YDQtdC00LXQu9C10L3QuNGPINC80LjQ
vdC40LzQsNC70YzQvdC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDQsdCw0LvQ
u9C+0LIg0LXQtNC40L3QvtCz0L4g0LPQvtGB0YPQtNCw0YDRgdGC0LLQtdC90L3Q
vtCz0L4g0Y3QutC30LDQvNC10L3QsCwg0L/QvtC00YLQstC10YDQttC00LDRjtGJ
0LXQs9C+INC+0YHQstC+0LXQvdC40LUg0L7QsdGA0LDQt9C+0LLQsNGC0LXQu9GM
0L3QvtC5INC/0YDQvtCz0YDQsNC80LzRiyDRgdGA0LXQtNC90LXQs9C+INC+0LHR
idC10LPQviDQvtCx0YDQsNC30L7QstCw0L3QuNGPLCDQuCDQvNC40L3QuNC80LDQ
u9GM0L3QvtCz0L4g0LrQvtC70LjRh9C10YHRgtCy0LAg0LHQsNC70LvQvtCyINC1
0LTQuNC90L7Qs9C+INCz0L7RgdGD0LTQsNGA0YHRgtCy0LXQvdC90L7Qs9C+INGN
0LrQt9Cw0LzQtdC90LAsINC90LXQvtCx0YXQvtC00LjQvNC+0LPQviDQtNC70Y8g
0L/QvtGB0YLRg9C/0LvQtdC90LjRjyDQsiDQvtCx0YDQsNC30L7QstCw0YLQtdC7
0YzQvdGL0LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQstGL0YHRiNC10LPQviDQ
vtCx0YDQsNC30L7QstCw0L3QuNGPINC90LAg0L7QsdGD0YfQtdC90LjQtSDQv9C+
INC/0YDQvtCz0YDQsNC80LzQsNC8INCx0LDQutCw0LvQsNCy0YDQuNCw0YLQsCDQ
uCDQv9GA0L7Qs9GA0LDQvNC80LDQvCDRgdC/0LXRhtC40LDQu9C40YLQtdGC0LDC
uywg0L/RgNC+0YLQvtC60L7Qu9CwINGB0L7QstC10YnQsNC90LjRjyDQmtC+0LzQ
uNGB0YHQuNC4INC/0L4g0YPRgdGC0LDQvdC+0LLQu9C10L3QuNGOINGB0L7QvtGC
0LLQtdGC0YHRgtCy0LjRjyDQvNC10LbQtNGDINC80LjQvdC40LzQsNC70YzQvdGL
0LzQuCDQv9C10YDQstC40YfQvdGL0LzQuCDQsdCw0LvQu9Cw0LzQuCDQtdC00LjQ
vdC+0LPQviDQs9C+0YHRg9C00LDRgNGB0YLQstC10L3QvdC+0LPQviDRjdC60LfQ
sNC80LXQvdCwINC4INC80LjQvdC40LzQsNC70YzQvdGL0LzQuCDRgtC10YHRgtC+
0LLRi9C80Lgg0LHQsNC70LvQsNC80Lgg0L/QviDQutCw0LbQtNC+0LzRgyDRg9GH
0LXQsdC90L7QvNGDINC/0YDQtdC00LzQtdGC0YMg0L/RgNC4INC+0L/RgNC10LTQ
tdC70LXQvdC40Lgg0LzQuNC90LjQvNCw0LvRjNC90L7Qs9C+INC60L7Qu9C40YfQ
tdGB0YLQstCwINCx0LDQu9C70L7QsiDQtdC00LjQvdC+0LPQviDQs9C+0YHRg9C0
0LDRgNGB0YLQstC10L3QvdC+0LPQviDRjdC60LfQsNC80LXQvdCwLCDQv9C+0LTR
gtCy0LXRgNC20LTQsNGO0YnQtdCz0L4g0L7RgdCy0L7QtdC90LjQtSDQvtCx0YDQ
sNC30L7QstCw0YLQtdC70YzQvdC+0Lkg0L/RgNC+0LPRgNCw0LzQvNGLINGB0YDQ
tdC00L3QtdCz0L4g0L7QsdGJ0LXQs9C+INC+0LHRgNCw0LfQvtCy0LDQvdC40Y8s
INC4INC80LjQvdC40LzQsNC70YzQvdC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQ
sCDQsdCw0LvQu9C+0LIg0LXQtNC40L3QvtCz0L4g0LPQvtGB0YPQtNCw0YDRgdGC
0LLQtdC90L3QvtCz0L4g0Y3QutC30LDQvNC10L3QsCDQvdC10L7QsdGF0L7QtNC4
0LzQvtCz0L4g0LTQu9GPINC/0L7RgdGC0YPQv9C70LXQvdC40Y8g0LIg0L7QsdGA
0LDQt9C+0LLQsNGC0LXQu9GM0L3Ri9C1INC+0YDQs9Cw0L3QuNC30LDRhtC40Lgg
0LLRi9GB0YjQtdCz0L4g0L7QsdGA0LDQt9C+0LLQsNC90LjRjyDQvdCwINC+0LHR
g9GH0LXQvdC40LUg0L/QviDQv9GA0L7Qs9GA0LDQvNC80LDQvCDQsdCw0LrQsNC7
0LDQstGA0LjQsNGC0LAg0Lgg0L/RgNC+0LPRgNCw0LzQvNCw0Lwg0YHQv9C10YbQ
uNCw0LvQuNGC0LXRgtCwINCyIDIwMTcg0LPQvtC00YMg0L7RgiAwNi4wNC4yMDE3
IOKEliAxMC00L9C/0YAg0YPRgdGC0LDQvdC+0LLQu9C10L3Qvjo8YnI+PGJyPjx1
bD48bGk+0YHQvtC+0YLQstC10YLRgdGC0LLQuNC1INC/0LXRgNCy0LjRh9C90YvR
hSDQsdCw0LvQu9C+0LIg0LXQtNC40L3QvtCz0L4g0LPQvtGB0YPQtNCw0YDRgdGC
0LLQtdC90L3QvtCz0L4g0Y3QutC30LDQvNC10L3QsCDQuCDRgtC10YHRgtC+0LLR
i9GFINCx0LDQu9C70L7QsiDQv9C+INC40YHRgtC+0YDQuNC4INCyIDIwMTcg0LPQ
vtC00YMg0YHQvtCz0LvQsNGB0L3QviANCjxhIGhyZWYgPSIvY29tbW9uL3VwbG9h
ZC9uZXdzL1ByaWxvemhlbmllXzFfa19wcm90b2tvbHVfb3RfMDYuMDQuMjAxNy5k
b2N4Ij7Qv9GA0LjQu9C+0LbQtdC90LjRjiAxPC9hPjs8L2xpPjxsaT7RgdC+0L7R
gtCy0LXRgtGB0YLQstC40LUg0LzQtdC20LTRgyAxMyDQv9C10YDQstC40YfQvdGL
0LzQuCDQsdCw0LvQu9Cw0LzQuCDQuCAzNiDRgtC10YHRgtC+0LLRi9C80Lgg0LHQ
sNC70LvQsNC80LgsINC90LXQvtCx0YXQvtC00LjQvNGL0LzQuCDQtNC70Y8g0L/Q
vtGB0YLRg9C/0LvQtdC90LjRjyDQsiDQvtCx0YDQsNC30L7QstCw0YLQtdC70YzQ
vdGL0LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQstGL0YHRiNC10LPQviDQvtCx
0YDQsNC30L7QstCw0L3QuNGPINC90LAg0L7QsdGD0YfQtdC90LjQtSDQv9C+INC/
0YDQvtCz0YDQsNC80LzQsNC8INCx0LDQutCw0LvQsNCy0YDQuNCw0YLQsCDQuCDQ
v9GA0L7Qs9GA0LDQvNC80LDQvCDRgdC/0LXRhtC40LDQu9C40YLQtdGC0LAsINC/
0L4g0YXQuNC80LjQuDs8L2xpPjxsaT7RgdC+0L7RgtCy0LXRgtGB0YLQstC40LUg
0L/QtdGA0LLQuNGH0L3Ri9GFINCx0LDQu9C70L7QsiDQtdC00LjQvdC+0LPQviDQ
s9C+0YHRg9C00LDRgNGB0YLQstC10L3QvdC+0LPQviDRjdC60LfQsNC80LXQvdCw
INC4INGC0LXRgdGC0L7QstGL0YUg0LHQsNC70LvQvtCyINC/0L4g0YXQuNC80LjQ
uCDQsiAyMDE3INCz0L7QtNGDINGB0L7Qs9C70LDRgdC90L4gDQo8YSBocmVmID0i
L2NvbW1vbi91cGxvYWQvbmV3cy9Qcmlsb3poZW5pZV8yX2tfcHJvdG9rb2x1X290
XzA2LjA0LjIwMTcuZG9jeCI+0L/RgNC40LvQvtC20LXQvdC40Y4gMjwvYT4uPC9s
aT48L3VsPg0K0J3QsCDQvtGB0L3QvtCy0LDQvdC40Lgg0L/Rg9C90LrRgtC+0LIg
MTUsIDE5INCg0LDRgdC/0L7RgNGP0LbQtdC90LjRjyDQpNC10LTQtdGA0LDQu9GM
0L3QvtC5INGB0LvRg9C20LHRiyDQv9C+INC90LDQtNC30L7RgNGDINCyINGB0YTQ
tdGA0LUg0L7QsdGA0LDQt9C+0LLQsNC90LjRjyDQuCDQvdCw0YPQutC4INC+0YIg
MzAuMTIuMjAxNiDihJYgMzQyMi0xMCDCq9Ce0LEg0YPRgtCy0LXRgNC20LTQtdC9
0LjQuCDQvNC10YLQvtC00LjQutC4INC+0L/RgNC10LTQtdC70LXQvdC40Y8g0LzQ
uNC90LjQvNCw0LvRjNC90L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINCx0LDQ
u9C70L7QsiDQtdC00LjQvdC+0LPQviDQs9C+0YHRg9C00LDRgNGB0YLQstC10L3Q
vdC+0LPQviDRjdC60LfQsNC80LXQvdCwLCDQv9C+0LTRgtCy0LXRgNC20LTQsNGO
0YnQtdCz0L4g0L7RgdCy0L7QtdC90LjQtSDQvtCx0YDQsNC30L7QstCw0YLQtdC7
0YzQvdC+0Lkg0L/RgNC+0LPRgNCw0LzQvNGLINGB0YDQtdC00L3QtdCz0L4g0L7Q
sdGJ0LXQs9C+INC+0LHRgNCw0LfQvtCy0LDQvdC40Y8sINC4INC80LjQvdC40LzQ
sNC70YzQvdC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDQsdCw0LvQu9C+0LIg
0LXQtNC40L3QvtCz0L4g0LPQvtGB0YPQtNCw0YDRgdGC0LLQtdC90L3QvtCz0L4g
0Y3QutC30LDQvNC10L3QsCwg0L3QtdC+0LHRhdC+0LTQuNC80L7Qs9C+INC00LvR
jyDQv9C+0YHRgtGD0L/Qu9C10L3QuNGPINCyINC+0LHRgNCw0LfQvtCy0LDRgtC1
0LvRjNC90YvQtSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4INCy0YvRgdGI0LXQs9C+
INC+0LHRgNCw0LfQvtCy0LDQvdC40Y8g0L3QsCDQvtCx0YPRh9C10L3QuNC1INC/
0L4g0L/RgNC+0LPRgNCw0LzQvNCw0Lwg0LHQsNC60LDQu9Cw0LLRgNC40LDRgtCw
INC4INC/0YDQvtCz0YDQsNC80LzQsNC8INGB0L/QtdGG0LjQsNC70LjRgtC10YLQ
sMK7LCDQv9GA0L7RgtC+0LrQvtC70LAg0YHQvtCy0LXRidCw0L3QuNGPINCa0L7Q
vNC40YHRgdC40Lgg0L/QviDRg9GB0YLQsNC90L7QstC70LXQvdC40Y4g0YHQvtC+
0YLQstC10YLRgdGC0LLQuNGPINC80LXQttC00YMg0LzQuNC90LjQvNCw0LvRjNC9
0YvQvNC4INC/0LXRgNCy0LjRh9C90YvQvNC4INCx0LDQu9C70LDQvNC4INC10LTQ
uNC90L7Qs9C+INCz0L7RgdGD0LTQsNGA0YHRgtCy0LXQvdC90L7Qs9C+INGN0LrQ
t9Cw0LzQtdC90LAg0Lgg0LzQuNC90LjQvNCw0LvRjNC90YvQvNC4INGC0LXRgdGC
0L7QstGL0LzQuCDQsdCw0LvQu9Cw0LzQuCDQv9C+INC60LDQttC00L7QvNGDINGD
0YfQtdCx0L3QvtC80YMg0L/RgNC10LTQvNC10YLRgyDQv9GA0Lgg0L7Qv9GA0LXQ
tNC10LvQtdC90LjQuCDQvNC40L3QuNC80LDQu9GM0L3QvtCz0L4g0LrQvtC70LjR
h9C10YHRgtCy0LAg0LHQsNC70LvQvtCyINC10LTQuNC90L7Qs9C+INCz0L7RgdGD
0LTQsNGA0YHRgtCy0LXQvdC90L7Qs9C+INGN0LrQt9Cw0LzQtdC90LAsINC/0L7Q
tNGC0LLQtdGA0LbQtNCw0Y7RidC10LPQviDQvtGB0LLQvtC10L3QuNC1INC+0LHR
gNCw0LfQvtCy0LDRgtC10LvRjNC90L7QuSDQv9GA0L7Qs9GA0LDQvNC80Ysg0YHR
gNC10LTQvdC10LPQviDQvtCx0YnQtdCz0L4g0L7QsdGA0LDQt9C+0LLQsNC90LjR
jywg0Lgg0LzQuNC90LjQvNCw0LvRjNC90L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQ
stCwINCx0LDQu9C70L7QsiDQtdC00LjQvdC+0LPQviDQs9C+0YHRg9C00LDRgNGB
0YLQstC10L3QvdC+0LPQviDRjdC60LfQsNC80LXQvdCwINC90LXQvtCx0YXQvtC0
0LjQvNC+0LPQviDQtNC70Y8g0L/QvtGB0YLRg9C/0LvQtdC90LjRjyDQsiDQvtCx
0YDQsNC30L7QstCw0YLQtdC70YzQvdGL0LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQ
uCDQstGL0YHRiNC10LPQviDQvtCx0YDQsNC30L7QstCw0L3QuNGPINC90LAg0L7Q
sdGD0YfQtdC90LjQtSDQv9C+INC/0YDQvtCz0YDQsNC80LzQsNC8INCx0LDQutCw
0LvQsNCy0YDQuNCw0YLQsCDQuCDQv9GA0L7Qs9GA0LDQvNC80LDQvCDRgdC/0LXR
htC40LDQu9C40YLQtdGC0LAg0LIgMjAxNyDQs9C+0LTRgyDQvtGCIDEzLjA0LjIw
MTcg4oSWIDAyLTEzL9C/0YAg0YPRgdGC0LDQvdC+0LLQu9C10L3Qvjo8YnI+PGJy
Pjx1bD48bGk+DQrRgdC+0L7RgtCy0LXRgtGB0YLQstC40LUg0LzQtdC20LTRgyAx
NiDQv9C10YDQstC40YfQvdGL0LzQuCDQsdCw0LvQu9Cw0LzQuCDQuCAzNiDRgtC1
0YHRgtC+0LLRi9C80Lgg0LHQsNC70LvQsNC80LgsINC90LXQvtCx0YXQvtC00LjQ
vNGL0LzQuCDQtNC70Y8g0L/QvtGB0YLRg9C/0LvQtdC90LjRjyDQsiDQvtCx0YDQ
sNC30L7QstCw0YLQtdC70YzQvdGL0LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQ
stGL0YHRiNC10LPQviDQvtCx0YDQsNC30L7QstCw0L3QuNGPINC90LAg0L7QsdGD
0YfQtdC90LjQtSDQv9C+INC/0YDQvtCz0YDQsNC80LzQsNC8INCx0LDQutCw0LvQ
sNCy0YDQuNCw0YLQsCDQuCDQv9GA0L7Qs9GA0LDQvNC80LDQvCDRgdC/0LXRhtC4
0LDQu9C40YLQtdGC0LAsINC/0L4g0LHQuNC+0LvQvtCz0LjQuDs8L2xpPjxsaT4N
CtGB0L7QvtGC0LLQtdGC0YHRgtCy0LjQtSDQv9C10YDQstC40YfQvdGL0YUg0LHQ
sNC70LvQvtCyINC10LTQuNC90L7Qs9C+INCz0L7RgdGD0LTQsNGA0YHRgtCy0LXQ
vdC90L7Qs9C+INGN0LrQt9Cw0LzQtdC90LAg0Lgg0YLQtdGB0YLQvtCy0YvRhSDQ
sdCw0LvQu9C+0LIg0L/QviDQsdC40L7Qu9C+0LPQuNC4INCyIDIwMTcg0LPQvtC0
0YMg0YHQvtCz0LvQsNGB0L3QviA8YSBocmVmID0iL2NvbW1vbi91cGxvYWQvbmV3
cy9Qcmlsb3poZW5pZV8xX2tfcHJvdG9rb2x1X290XzEzLjA0LjIwMTcuZG9jeCI+
0L/RgNC40LvQvtC20LXQvdC40Y4gMTwvYT47PC9saT48bGk+DQrRgdC+0L7RgtCy
0LXRgtGB0YLQstC40LUg0LzQtdC20LTRgyA5INC/0LXRgNCy0LjRh9C90YvQvNC4
INCx0LDQu9C70LDQvNC4INC4IDM2INGC0LXRgdGC0L7QstGL0LzQuCDQsdCw0LvQ
u9Cw0LzQuCwg0L3QtdC+0LHRhdC+0LTQuNC80YvQvNC4INC00LvRjyDQv9C+0YHR
gtGD0L/Qu9C10L3QuNGPINCyINC+0LHRgNCw0LfQvtCy0LDRgtC10LvRjNC90YvQ
tSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4INCy0YvRgdGI0LXQs9C+INC+0LHRgNCw
0LfQvtCy0LDQvdC40Y8g0L3QsCDQvtCx0YPRh9C10L3QuNC1INC/0L4g0L/RgNC+
0LPRgNCw0LzQvNCw0Lwg0LHQsNC60LDQu9Cw0LLRgNC40LDRgtCwINC4INC/0YDQ
vtCz0YDQsNC80LzQsNC8INGB0L/QtdGG0LjQsNC70LjRgtC10YLQsCwg0L/QviDR
hNC40LfQuNC60LU7PC9saT48bGk+DQrRgdC+0L7RgtCy0LXRgtGB0YLQstC40LUg
0L/QtdGA0LLQuNGH0L3Ri9GFINCx0LDQu9C70L7QsiDQtdC00LjQvdC+0LPQviDQ
s9C+0YHRg9C00LDRgNGB0YLQstC10L3QvdC+0LPQviDRjdC60LfQsNC80LXQvdCw
INC4INGC0LXRgdGC0L7QstGL0YUg0LHQsNC70LvQvtCyINC/0L4g0YTQuNC30LjQ
utC1INCyIDIwMTcg0LPQvtC00YMg0YHQvtCz0LvQsNGB0L3QviA8YSBocmVmID0i
L2NvbW1vbi91cGxvYWQvbmV3cy9Qcmlsb3poZW5pZV8yX2tfcHJvdG9rb2x1X290
XzEzLjA0LjIwMTcuZG9jeCI+0L/RgNC40LvQvtC20LXQvdC40Y4gMjwvYT4uPC9s
aT48L3VsPi0tPg0KDQoNCg0KCiA8L2Rpdj48L3RkPgogICAgPC90cj4KICA8L3Rh
YmxlPgogIDxzcGFuIGlkPSJyYmNjb250ZW50c19lZV9ibG9jay4xNjg3LkNPTlRF
TlRfVEVYVC4xNy45NTQiPjwvc3Bhbj4KCjx0YWJsZSBjbGFzcz0ibWFpbl9sbmtf
dGJsIj4NCiAgPHRyPg0KICAgIDx0ZCBjbGFzcz0idGQwIj4mbmJzcDs8L3RkPg0K
ICAgIDx0ZCBjbGFzcz0idGQxIj48YSBocmVmPSJodHRwOi8vd3d3Lm9icm5hZHpv
ci5nb3YucnUvIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImljX3N0X3MxIj48c3Bh
bj7QoNCe0KHQntCR0KDQndCQ0JTQl9Ce0KA8L3NwYW4+DQrQpNC10LTQtdGA0LDQ
u9GM0L3QsNGPINGB0LvRg9C20LHQsCDQv9C+INC90LDQtNC30L7RgNGDDQrQsiDR
gdGE0LXRgNC1INC+0LHRgNCw0LfQvtCy0LDQvdC40Y8g0Lgg0L3QsNGD0LrQuDwv
YT48L3RkPg0KICAgIDx0ZCBjbGFzcz0idGRfciI+Jm5ic3A7PC90ZD4NCiAgICA8
dGQgY2xhc3M9InRkMSI+PGEgaHJlZj0iaHR0cDovL2ZpcGkucnUvIiAgdGFyZ2V0
PSJfYmxhbmsiIGNsYXNzPSJpY19zdF9zMiI+PHNwYW4+0KTQmNCf0Jg8L3NwYW4+
DQrQpNC10LTQtdGA0LDQu9GM0L3Ri9C5INC40L3RgdGC0LjRgtGD0YINCtC/0LXQ
tNCw0LPQvtCz0LjRh9C10YHQutC40YUg0LjQt9C80LXRgNC10L3QuNC5PC9hPjwv
dGQ+DQogICAgPHRkIGNsYXNzPSJ0ZF9yIj4mbmJzcDs8L3RkPg0KICAgIDx0ZCBj
bGFzcz0idGQxIj48YSBocmVmPSJodHRwOi8vd3d3LnJ1c3Rlc3QucnUvIiB0YXJn
ZXQ9Il9ibGFuayIgY2xhc3M9ImljX3N0X3MzIj48c3Bhbj7QpNCm0KI8L3NwYW4+
DQrQpNC10LTQtdGA0LDQu9GM0L3Ri9C5INGG0LXQvdGC0YANCtGC0LXRgdGC0LjR
gNC+0LLQsNC90LjRjzwvYT48L3RkPg0KICAgIDx0ZCBjbGFzcz0idGRfciI+Jm5i
c3A7PC90ZD4NCiAgICA8dGQgY2xhc3M9InRkMSI+PGEgaHJlZj0iaHR0cDovL21v
bi5nb3YucnUvIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImljX3N0X3M0Ij48c3Bh
bj7QnNC40L3QvtCx0YDQvdCw0YPQutC4PC9zcGFuPg0K0JzQuNC90LjRgdGC0LXR
gNGB0YLQstC+INC+0LHRgNCw0LfQvtCy0LDQvdC40Y8NCtC4INC90LDRg9C60Lgg
0KDQpDwvYT48L3RkPg0KICAgIDx0ZCBjbGFzcz0idGRfciI+Jm5ic3A7PC90ZD4N
CiAgICA8dGQgY2xhc3M9InRkMSI+PGEgaHJlZj0iaHR0cDovL3d3dy5lZHUucnUv
IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImljX3N0X3M1Ij48c3Bhbj7QoNC+0YHR
gdC40LnRgdC60L7QtSDQvtCx0YDQsNC30L7QstCw0L3QuNC1PC9zcGFuPg0K0KTQ
tdC00LXRgNCw0LvRjNC90YvQuSDQv9C+0YDRgtCw0Ls8L2E+PC90ZD4NCiAgIDx0
ZCBjbGFzcz0idGQwIj4mbmJzcDs8L3RkPg0KDQoNCiAgPC90cj4NCjwvdGFibGU+
DQoKICA8ZGl2IGNsYXNzPSJjb250X2JvdHRvbSI+PC9kaXY+CjwvZGl2PgoKPGRp
diBpZD0iZm9vdGVyIj4gPHNwYW4gaWQ9InJiY2NvbnRlbnRzX2VlX2Jsb2NrLjE1
MDQuQ09OVEVOVF9URVhULjc1Ljg2NSI+PC9zcGFuPgoKPGRpdiBjbGFzcz0iZm90
X2xpbmUiPjwvZGl2Pg0KDQoNCjxhIGNsYXNzPSJuZXdfc3Rfa24yIiBocmVmPSIv
cnUvZmVlZGJhY2svIj7QntCx0YDQsNGC0L3QsNGPINGB0LLRj9C30Yw8L2E+DQo8
ZGl2IGNsYXNzPSJkaXYxIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyI+
DQo8IS0t0KHQu9GD0LbQsdCwINC/0L7QtNC00LXRgNC20LrQuDogZS1tYWlsIC0g
c2l0ZXNfc3VwcG9ydEBvYnJuYWR6b3IuZ292LnJ1LCDRgtC10LsuIDxhIGhyZWY9
InRlbDorNy00OTUtMTA0LTc1LTI1Ij4rNy00OTUtMTA0LTc1LTI1PC9hPjxicj4N
CtCT0YDQsNGE0LjQuiDRgNCw0LHQvtGC0Ysg0YHQu9GD0LbQsdGLINC/0L7QtNC0
0LXRgNC20LrQuDog0YEgMDg6MDAg0LTQviAxOTowMCDQsiDRgNCw0LHQvtGH0LjQ
tSDQtNC90Lgg0L/QviDQvNC+0YHQutC+0LLRgdC60L7QvNGDINCy0YDQtdC80LXQ
vdC4PGJyPi0tPg0K0KLQtdC70LXRhNC+0L0g0LTQvtCy0LXRgNC40Y8g0JXQk9Ct
OiA8YSBocmVmPSJ0ZWw6KzctNDk1LTEwNC02OC0zOCI+KzctNDk1LTEwNC02OC0z
ODwvYT48YnI+DQrCqSAyMDAxLTIwMTcg0KTQtdC00LXRgNCw0LvRjNC90LDRjyDR
gdC70YPQttCx0LAg0L/QviDQvdCw0LTQt9C+0YDRgyDQsiDRgdGE0LXRgNC1INC+
0LHRgNCw0LfQvtCy0LDQvdC40Y8g0Lgg0L3QsNGD0LrQuDxicj4NCiAg0J/RgNC4
INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC4INC80LDRgtC10YDQuNCw0LvQvtCy
INC/0L7RgNGC0LDQu9CwINCV0JPQrSDQvdCwINCy0L3QtdGI0L3QuNGFINCY0L3R
gtC10YDQvdC10YIt0YDQtdGB0YPRgNGB0LDRhSANCiAg0YHRgdGL0LvQutCwINC9
0LAgPGEgaHJlZj0iaHR0cDovL3d3dy5lZ2UuZWR1LnJ1LyI+0L/QtdGA0LLQvtC4
0YHRgtC+0YfQvdC40Lo8L2E+INC+0LHRj9C30LDRgtC10LvRjNC90LA8L3NwYW4+
PGJyPjxicj48YnI+PGJyPg0KPC9kaXY+DQoNCg0KPGRpdiBjbGFzcz0icmFtYmxl
cl90b3AiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4NCg0KPCEtLSBiZWdpbiBvZiBU
b3AxMDAgY29kZSAtLT4NCg0KPHNjcmlwdCBpZD0idG9wMTAwQ291bnRlciIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9jb3VudGVyLnJhbWJsZXIu
cnUvdG9wMTAwLmpjbj8yNjc5MzExIj48L3NjcmlwdD4NCjxub3NjcmlwdD4NCjxh
IGhyZWY9Imh0dHA6Ly90b3AxMDAucmFtYmxlci5ydS9uYXZpLzI2NzkzMTEvIj4N
CjxpbWcgc3JjPSJodHRwOi8vY291bnRlci5yYW1ibGVyLnJ1L3RvcDEwMC5jbnQ/
MjY3OTMxMSIgYWx0PSJSYW1ibGVyJ3MgVG9wMTAwIiBib3JkZXI9IjAiIC8+DQo8
L2E+DQoNCjwvbm9zY3JpcHQ+DQo8IS0tIGVuZCBvZiBUb3AxMDAgY29kZSAtLT4N
CjwvZGl2Pg0KDQoNCg0KICA8ZGl2IGNsYXNzPSJkaXZfcmlnaHQiPg0KICA8L2Rp
dj4NCg0KDQo8IS0tIFlhbmRleC5NZXRyaWthIGNvdW50ZXIgLS0+DQo8ZGl2IHN0
eWxlPSJkaXNwbGF5Om5vbmU7Ij48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+DQooZnVuY3Rpb24odywgYykgew0KICAgICh3W2NdID0gd1tjXSB8fCBbXSku
cHVzaChmdW5jdGlvbigpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHcu
eWFDb3VudGVyMTIyNDI1MzAgPSBuZXcgWWEuTWV0cmlrYSh7aWQ6MTIyNDI1MzAs
IGVuYWJsZUFsbDogdHJ1ZSwgd2Vidmlzb3I6dHJ1ZX0pOw0KICAgICAgICB9DQog
ICAgICAgIGNhdGNoKGUpIHsgfQ0KICAgIH0pOw0KfSkod2luZG93LCAieWFuZGV4
X21ldHJpa2FfY2FsbGJhY2tzIik7DQo8L3NjcmlwdD48L2Rpdj4NCjxzY3JpcHQg
c3JjPSIvL21jLnlhbmRleC5ydS9tZXRyaWthL3dhdGNoLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIGRlZmVyPSJkZWZlciI+PC9zY3JpcHQ+DQo8bm9zY3JpcHQ+
PGRpdj48aW1nIHNyYz0iLy9tYy55YW5kZXgucnUvd2F0Y2gvMTIyNDI1MzAiIHN0
eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotOTk5OXB4OyIgYWx0PSIiIC8+
PC9kaXY+PC9ub3NjcmlwdD4NCjwhLS0gL1lhbmRleC5NZXRyaWthIGNvdW50ZXIg
LS0+DQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCg0KICB2YXIg
X2dhcSA9IF9nYXEgfHwgW107DQogIF9nYXEucHVzaChbJ19zZXRBY2NvdW50Jywg
J1VBLTI4ODQyMDE1LTEnXSk7DQogIF9nYXEucHVzaChbJ190cmFja1BhZ2V2aWV3
J10pOw0KDQogIChmdW5jdGlvbigpIHsNCiAgICB2YXIgZ2EgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgZ2EudHlwZSA9ICd0ZXh0L2phdmFzY3Jp
cHQnOyBnYS5hc3luYyA9IHRydWU7DQogICAgZ2Euc3JjID0gKCdodHRwczonID09
IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sID8gJ2h0dHBzOi8vc3NsJyA6ICdo
dHRwOi8vd3d3JykgKyAnLmdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJzsNCiAg
ICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQn
KVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnYSwgcyk7DQogIH0pKCk7
DQoNCjwvc2NyaXB0Pg0KDQoKPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=favicon_ege.gif
Content-Type: image/gif; name=favicon_ege.gif
Content-Location: http://ege.edu.ru/common/img/ege_new/favicon_ege.gif
Content-Transfer-Encoding: Base64
R0lGODlhEAAQAPeSAAB7zQBesgBvugRzvP8FANnq9e/2+wBmtrza7fD3+6/S6q7S
6iyFxgB0yytjoSpjov4GCQFwui6Cv/YaH/cZHQBfs/X6/Pb6/a7S6eny+P8AAq92
kP8LAwCD2wR90prF5BRPldQmNQBltQCB1v8QECKDxA1yvv8UFqLL5tW6xyyExJjF
4jJjoecdJpoiQtmir/gnK0CWzQBcsQBwudOUoi1gnb3Z7c8+Tlmazj+Qytpuev4B
BPgZH0GRyrTV68tdbr/c7sbf8FeazgB0vNLS4AByvN6nscyuvXOx2gBUrYi938Zt
gAB8zgBwuMjh8Mnh8AB3xejy+TqSysqRoQB3xPUaH/wAAKGMqSaGxTmRyrva7e31
+segstvr9QV0vb7b7f7+/7vZ7QB8z9eAjPQwNLjX7M+CkFmn3PD6/s5sep/K5fcL
EM3k8vAAANvd6O3q7wBasAB2xLrY7PD3+gBjvfQaIL7b7tK9yo/C4dgqOABtud47
R/gAABd4vvIYHmOm1QBZsABTrUWVzXCcxwRasABktL0qPNYSIb3a7Y7L7NZLWv8C
ABJUmgBKqYK63gBsyP8AAP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78i
IGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxu
czp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4z
LWMwMDcgMS4xNDQxMDksIDIwMTEvMDkvMjAtMTg6MDk6MTAgICAgICAgICI+IDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y
ZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1w
TU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVm
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYj
IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKDEzLjAyMDEx
MTAxMi5tLjI1OCAyMDExLzEwLzEyOjIxOjAwOjAwKSAgKFdpbmRvd3MpIiB4bXBN
TTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI5MzQwNERBNEM2NTExRTM5RkY1RTE3MUM5
OEI2QjE1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI5MzQwNERCNEM2NTEx
RTM5RkY1RTE3MUM5OEI2QjE1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmlu
c3RhbmNlSUQ9InhtcC5paWQ6MjkzNDA0RDg0QzY1MTFFMzlGRjVFMTcxQzk4QjZC
MTUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjkzNDA0RDk0QzY1MTFFMzlG
RjVFMTcxQzk4QjZCMTUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g
PC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx
8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LB
wL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KR
kI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh
YF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIx
MC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIB
AAAh+QQBAACSACwAAAAAEAAQAAAI2AAlCRxIsCDBBVoKJPgjBM2bNFwKsjEQaUuJ
QHQkwIDE5w7BLpFCeoHTgBEBDpCMCFQQ5gsGFB8cqWCQaIOLJURSHJETqYASQIRy
4FkhyEOHK2Qg7SkT0kKEAwcGDCgUh8qhRTsUqQmZQECSIQL0NBkBIAQJSDeeILgA
JkiPCkVmMGFhyM+aMW4EIgoZqY8IKCZaEIDwgyACvjFkiKlxoo6GKQSd8JUSAIAD
ClWsmCEIhG+Wyg8m8GjzgqABOyGxNHoEAhKkPHMKRvFhAwmOM4N00MhgsLfBgAA7
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: text/css
Content-Location: http://ege.edu.ru/common/css/spec.css
Content-Transfer-Encoding: 8bit
/*================= кнопка "Задать вопрос" ===========================*/
.button_yel{
background: #ffffff; /* Old browsers */
background: -moz-linear-gradient(top, #ffffff 30%, #d3d3d2 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(30%,#ffffff), color-stop(100%,#d3d3d2)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #ffffff 30%,#d3d3d2 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #ffffff 30%,#d3d3d2 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #ffffff 30%,#d3d3d2 100%); /* IE10+ */
background: linear-gradient(top, #ffffff 30%,#d3d3d2 100%); /* W3C */
-pie-background: linear-gradient(#ffffff, #d3d3d2);
behavior: url(/common/PIE/PIE.htc);
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
border: 8px solid #f8c525;
text-align: center;
margin: 5px auto;
text-align: center;
width: 130px;
cursor:pointer;
}
.inp5 {background:none; border:0; padding: 4px 3px 6px; font:bold 13px arial; color:#646464; text-shadow: 0 1px 0 #FFFFFF;cursor:pointer;}
/*================= /кнопка "Задать вопрос" ===========================*/
.likes td{vertical-align:top}
.likes .fb_but{padding-right:30px}
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/jpeg
Content-Location: http://ege.edu.ru/common/img/img_2013/back_main.jpg
Content-Transfer-Encoding: Base64
/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/
4QNUaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49
Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRh
IHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29y
ZSA1LjMtYzAwNyAxLjE0NDEwOSwgMjAxMS8wOS8yMC0xODowOToxMCAgICAgICAg
Ij4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAy
LzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9
IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxu
czp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6
c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJj
ZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMu
MDIwMTExMDEyLm0uMjU4IDIwMTEvMTAvMTI6MjE6MDA6MDApICAoV2luZG93cyki
IHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0ZGRjYzN0Y0ODRCMTFFMzgyN0Y4
OTYzM0M3QTYyOUQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0ZGRjYzODA0
ODRCMTFFMzgyN0Y4OTYzM0M3QTYyOUQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RS
ZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3RkZGNjM3RDQ4NEIxMUUzODI3Rjg5NjMz
QzdBNjI5RCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3RkZGNjM3RTQ4NEIx
MUUzODI3Rjg5NjMzQzdBNjI5RCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6
UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBk
wAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQECAgICAgICAgICAgMDAwMDAwMDAwMBAQEBAQEBAgEBAgICAQICAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//AABEI
CtIAAQMBEQACEQEDEQH/xABdAAEBAQEBAAAAAAAAAAAAAAAAAQIDCgEBAQEBAQEA
AAAAAAAAAAAAAAECAwUGEAEAAwEBAQAAAAAAAAAAAAAAARESUWGhEQEBAQEBAAAA
AAAAAAAAAAAAEQESIf/aAAwDAQACEQMRAD8A9qL7V44AAAAACWsZ61nUdWak1zab
AAAAAAAARi6CApcZVzAAY1PixqYyrQAAAAACWsZ6RWQAAEuOwE1zabAAAAZacwAA
EYugipcdgJrm02AXCpcZVgAAAAAABybbuMq5gAAAAAAM2eM9OWp8SLMRVAAAAAS4
EuMqwAxqetTG5iKoAACCXGVYAAZ1HqxZrLTSOagM2RnpFZAAATUdWaTWGmwGFcwA
AAAE1HVmrNcrbh1qDIz0qMgAACWsZ6ctT1qYTEVQAAAEtYnWIMM6jqzVmsNNgAAM
2xE6xBgABybdAAEtYz0gyAAA56nrUxqYiqzcqxdBAAEc1AY141F5c2mboAAAACXC
pcc9efWonLCqAAAAlrGekTrEY14ka5YVQAAEuVYuoqAM68WNcsK0AKlxlWAAAGde
LF5c2braWRnpFZAAAAZ159WLy5NpdBAAAAALjnqPWoxNYaaEuKjAAAlkTrGVYTUd
Was1hpoAABLIz0yrIBcdgWa5ttgAM2lxi6yygAADGp61MbmIqs2sY61BAAAAGdR6
sWa523DrUGQAABi6qIJaxnrHLU9amExFUAAAAC4y05gOdz2Wm5iAAAAlrGekVlGe
sUZHPU9WY3MRQABlWLoqAAAM6j0jU1hpoBlXO6KAAAAAM6j1F51ysi9IrIAAAAAA
DFx2Fc5rm22AAAAAAAzcqxdQQBybbAGOtUQAAQLjKuYAAADk22AAAAlkZ61FZAAA
AAAY1PjUbmMqoADKuYCOd0AAAAAAAAAcm3RLIz0isgAAAP/Z
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/jpeg
Content-Location: http://ege.edu.ru/common/img/img_2013/ico_socseti_gia.jpg
Content-Transfer-Encoding: Base64
/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/
4QNUaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49
Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRh
IHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29y
ZSA1LjMtYzAwNyAxLjE0NDEwOSwgMjAxMS8wOS8yMC0xODowOToxMCAgICAgICAg
Ij4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAy
LzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9
IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxu
czp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6
c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJj
ZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMu
MDIwMTExMDEyLm0uMjU4IDIwMTEvMTAvMTI6MjE6MDA6MDApICAoV2luZG93cyki
IHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzZFRURGMEY0Q0Y0MTFFM0E3RDZD
MzkyNUIzODQ5NDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzZFRURGMTA0
Q0Y0MTFFM0E3RDZDMzkyNUIzODQ5NDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RS
ZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNkVFREYwRDRDRjQxMUUzQTdENkMzOTI1
QjM4NDk0OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNkVFREYwRTRDRjQx
MUUzQTdENkMzOTI1QjM4NDk0OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6
UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBk
wAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQECAgICAgICAgICAgMDAwMDAwMDAwMBAQEBAQEBAgEBAgICAQICAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//AABEI
AcsAEAMBEQACEQEDEQH/xACPAAEAAgMBAQAAAAAAAAAAAAAACAoFBwkGCwEBAAMB
AQAAAAAAAAAAAAAAAAECAwQFEAAABgIBAgUCBQMFAAAAAAACAwQFBgcAAQgTCRIU
FRYXESEiIyYYClEkeDe3OLgZEQACAgEDAQQIBwAAAAAAAAAAARECAyExEkFRcYEy
YaGx0eFCEwTwkcFygjMU/9oADAMBAAIRAxEAPwCUf8nCx+QdbyziQ417YNnQSvFT
ZYRoj4TJnqLNBtitTnG1CRUtWR5zRKVD+jZFARI/MB15cvqiTC+o1Phy+0VWrSlJ
OVtNQWU+HB1kKOJXGVTcSx9cLXVUJUqqx1ko0H3KfNVUFYz5IKQC0Yds1706mG6V
GDFsww/QhD+g9i1nLeOb47SzWuyneCvj3K+C3eQ7h0jRsLyn4vwajYHOHGUVdBGO
eOXq5Z5Za5qZJJMpItiCxxdpQBjWGAMAm2jbixHD8Cbxa0ZvpxZMGJTryaMrVvbs
g7S8DTO4ehh79GO4C30k5yNjLZgwqyKielJjhME4wLC3oudxv0ZpZG54RmFEGEqm
wtMlUgOGDaUoRXUOwyfSmccx6TSvL5ifWZlhgDAGAMAYAwBgDAGAMAYAwBgDAGAQ
PrzmpPLVgEHtCBcCuYD9BbIh8ZnsLfPc/Bdr9ZicwZUUhjjt6Y881W54bvUWdxJO
6CtOQpJ8fgNLAPQg60eNJw7Vld/uKq06w/V7ySFE3G23zXKexGyJTCB/rC0YE8Q2
e6ifuyNyynrRmVQTZpdjIJLJ1D1XlZhBV2iD253XJlCbpmhM/HsIaWrxcb/HUlOV
Jp/t6/8AATg7/h/xo/2XhWWy/wBlv3P2kV8q7hwd/wBF5r/mB3Cv+/fJfGTzfxr7
EK7eL9pWSZf493LBsjK1jV1V2ynZwUM9NtgX1VbnObStStrKUq5BM5C5/VqNVpni
+GpSBnk4GRQxt6VASATGmaFWxKBdf+mkzN+vRfjQy+m/R6yyr27eOMy4l8QavoOf
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
zI//2Q==
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://ege.edu.ru/common/img/img_2013/ico_vagn_ssylk_gr.gif
Content-Transfer-Encoding: Base64
R0lGODlhRAFUA+Z/AJianerq63ez293s9oS73vX19kiZzvv7+9PU1TONyX233OHh
4srh8cHc7pPD4qLL5qmrraKkpuXl5lii0/z8/Al2vQBxu0SXzbvZ7d3d3p2foe31
+rK0trm6vGyt2NjZ2vX5/KrQ6LbW7Pr8/ubx+MPExq3R6TqRyqSmqeHu9xyBw/Hx
8bGytMvMzhZ9wZeZnAx3vsnKy2aq1qusryuJx/j4+fLy88bHyZ+ho6Gjpenz+Z7J
5SGDxCWGxWmr1xF6wPb6/TWPybW2uL/AwsHCxM/k8hl/wq2usVGf0QFyu7LU6sDB
wyKExLy9v9bX2E2c0AZ1vdPm8/P4/KjP6PD3+8fIyqaoq5jG5OLj5MTFx97f4Nfp
9La4upSWmdvc3XCv2c3Oz4i935udoJWXmv7+/vz9/QNzvNfY2Q95v/3+/trb3K+x
s/f7/bDT6vf4+GGn1RR8wMrLzNDR0iiHxrO1t0eZzrCxs+Pk5d/g4bfX7PPz8+7u
77XW647A4c3O0P///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78i
IGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxu
czp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4z
LWMwMDcgMS4xNDQxMDksIDIwMTEvMDkvMjAtMTg6MDk6MTAgICAgICAgICI+IDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y
ZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1w
TU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVm
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYj
IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKDEzLjAyMDEx
MTAxMi5tLjI1OCAyMDExLzEwLzEyOjIxOjAwOjAwKSAgKFdpbmRvd3MpIiB4bXBN
TTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc0ODhBNzE1NTVDNDExRTM5RUJFODZBQkNG
RDAzRTIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjc0ODhBNzE2NTVDNDEx
RTM5RUJFODZBQkNGRDAzRTIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmlu
c3RhbmNlSUQ9InhtcC5paWQ6NzQ4OEE3MTM1NUM0MTFFMzlFQkU4NkFCQ0ZEMDNF
MjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzQ4OEE3MTQ1NUM0MTFFMzlF
QkU4NkFCQ0ZEMDNFMjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g
PC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx
8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LB
wL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KR
kI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh
YF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIx
MC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIB
AAAh+QQBAAB/ACwAAAAARAFUAwAH/4B/goOEgwUSGRkSBYWNjo+QkZKTlJWWl5iZ
mpucnZ6bOg0mJg06nhRyR2NdAABdY0dyFJ+0tba3uLm6u7dsfSdmFjAwFmYnDmya
XjliS1gHggdYS2I5GbzY2drb3N21ISo/PhgggiAYPj8qJpdkN2NZbo9uJWNVZN75
+vv8/ZppApJ82fBow5ckAtJUKgHgmqQMALL4m0ixokVsX2Cwk2SiwhdKH8ZoqaRl
jJqLKFOqXOnoQRIlldokmSKphoY4l2JoqMGyp8+f3qjAUXBJgQsqkWLggGbpAI4Y
QKNKnfpJgQogl0AYIQoph59MYHJQHUu27CMVYTKF4QEpQJc9mf/2dAlgtq7dqEUs
bMm0xUKUR07EbBLj5K7hwyh3/NiEZoejOy+6yMkkp8sLCYgza86HoUKSPpn6JKnQ
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
lPx4ly4plj5JlnxplnLZlYFJPztZ/5V58pbzGJdb+ZR0qZYO2T6N6ZaFCZccQHkf
sCIRUHmVwhwfQHkccJnsYwAGAHoPMCBMEHqj8h149HmqqY0KySzScZtd8B63iZrr
c4oTKZHBCSDBSYhHeJzImZzKuZzM2ZzO+ZzQGZ3SOZ3UWZ3WeZ3YmZ3auZ3c2Z3e
+Z3gGZ7iOZ7kWZ7meZ7omZ7quZ7s2Z7u+Z7wGZ/yOZ/0WZ/2eZ/4mZ/6uZ/82Z/+
+Z8AGqACOqAEWqAGeqAImqAKuqAM2qAO+qAQGqESOqEUWqEWeqEYmqEauqEc2qEe
+qEgGqIiOqIkWqImeqIomqIquqIs2qLEgwUdgAIpM6M0OgMlsP9UJTADNLqjKNAB
LkM/eTABc4AzRFqkQfAFVPUFQVCkTDoHE2AvGdAFQtACSoh8N4ACOIADVnADVQoG
LSAEXeAQ8mMCSfAEBPCE0ScAc6ACRkADAoCmYUAAT5AEbWAFRCAkTHRnf0AEcwk/
NOABkyAFaIAGTyYJPpAAY4AHlJADWyIJijU/ZgBYksADbDEJSmAGiucIKUMJjJd3
jtcIlEoJZBcJmzoJnTp4n1oIoToJowoJpSoJp7p5qUoIqyoJrfoIrxoJsco+hPcI
tRoJt6qpL2KqmserszoIvwoJwdoIuQoJu7o+veoIyfoIy1oIzfoIz6o+0QqqlWqr
hoerwwr/q8UKrccqCNPqCNVKCNfqCNmaPtuqqt0KrN8qrJw6rtparn9wro2QroOw
ro3QrujzrrQar8o6r8warrpqr+6Kr/paCPwqCP5aCAB7PgKLrARLrQZrrQjrrAob
sAx7seiaseq6sdjasRT7saIqsv1KsuxqsuZTseYKsvuqshDLsv/qsuUDs/kqsw5L
s38QsYQwsS+LsqxqATVGCUA7CHKAA/TjAjQyCQ1LCA5gBFmgARmQj43ICJvKiFi7
Al6gAeQyPwLgAiYgkJcoS6FaiWY7MCHgAgJAAQujmwxDHckhtwwzBI/4PmzwMcGJ
iiowqEbQtxqTBDLQSfjYtSsQAETALSwlEACIuwIFRj8BubYDwAAekDEewACUOwAO
RglNJEE/AAe5cANVIEEQZwmBAAA7
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://ege.edu.ru/common/img/img_2013/menu_str_all.gif
Content-Transfer-Encoding: Base64
R0lGODlhCQAqArMAAAAAAP///+wcJABxuxyn7P+LAft4B/ZXEe4rH////wAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAJACoCAATiEMk5E6XJXpQ17leXfWIl
jtw5qmzrvnAsz3Rt33iu73zv/8CgcEg8CY5IZCKZzDCPnaeIaVRWBSxotsjter/g
sHhMLpvP6LS6e2i73Yn3OyNvd+oi+Wm+t6v8f2uCg4SFhoeIiYplBo2OjgmPjxmS
jR2VIpInk5uWKp6fi6KjpKWmp6ipLgWsra0Jrq4ZsawdtCKxJ7K6tSq9vqrBwsPE
xcbHyMnKy8zNzs/QYgPT1NQJ1dUZ2NMd2yLYJ9nh3Crk5dHo6err7O3u70AE8vPz
CfT0GffyHfoi9yf4AO5TMZBgBAA7
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://ege.edu.ru/common/img/bul_2.gif
Content-Transfer-Encoding: Base64
R0lGODlhCwAHAIABAIaGhP///yH5BAEAAAEALAAAAAALAAcAAAIKjI+py+0AowQu
FAA7
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://ege.edu.ru/common/img/img_2013/file_doc.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAABgAAALzCAYAAAALa8eQAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA0tpVFh0WE1MOmNvbS5hZG9iZS54bXAA
AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U
Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6
eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDA3IDEuMTQ0MTA5LCAyMDExLzA5
LzIwLTE4OjA5OjEwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRl
c2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29t
L3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94
YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9i
ZSBQaG90b3Nob3AgQ1M2ICgxMy4wMjAxMTEwMTIubS4yNTggMjAxMS8xMC8xMjoy
MTowMDowMCkgIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1
MTg0RjUyMzU4MzExMUUzODE0M0ExQkZFRDZGOEE0NSIgeG1wTU06RG9jdW1lbnRJ
RD0ieG1wLmRpZDo1MTg0RjUyNDU4MzExMUUzODE0M0ExQkZFRDZGOEE0NSI+IDx4
bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjUxODRG
NTIxNTgzMTExRTM4MTQzQTFCRkVENkY4QTQ1IiBzdFJlZjpkb2N1bWVudElEPSJ4
bXAuZGlkOjUxODRGNTIyNTgzMTExRTM4MTQzQTFCRkVENkY4QTQ1Ii8+IDwvcmRm
OkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQg
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
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://ege.edu.ru/common/img/img_2013/storon_site_ico.gif
Content-Transfer-Encoding: Base64
R0lGODlhHAMqAPf/AEpXcMnU1pWlvLy7vLOys4K1tsPDw9vb29fd5ubt9MvLy9PT
0yg1UaurrJirw4WZtGqFp8TM2XeEnKKio6TIxtvi6fn16lhzl+zy+Fyb2EZjiCw2
aXmIpWR5mJOSk4mOLbvAyABdZczW4nyytDZvmfn6+m5sFpubnIuLjIKCgwZzxIqU
qoq6vL3DyjhSeWloalt6oBs3YvDw8VdjdfX19uXm5p6rUe3t7beuDHt7e9fLBPL6
/ShJdKCot////1FniDpIaEpXgjtbgiRye2+DPLTB0unp6trk3E6RlUpqkgZptmWA
op2cpODg4Gp2jDVMcnmUthRZkVhaXQcnVfj9/3NydKq70a26y4yhu7SwOfHx5hVo
c/z8/OPp7/Xz6Nrm9FBqTjZAWebcBvP2+eDl7Mi6A3h+hFdskKK0y9PGx7jE5IqN
nI+etCVDbrnF1BsnRfnzAOPp4BAeLX2RrTOHz298l3KNrhsoVS1SfAVbp6exvbOp
qRwwYff06QAZSY+axe/x6/v//5+wxra1t9Pf2ouUoOvt477J1CJytU1ym5ihroe4
uZC9vbPPzL/L2qDGxDeChrG+z2Fth4WFhpOVJam0w7m4ud7d3a2npGOfoqe4zY6N
jvj6/K+ur0uGwoS2t3KqrKWlppfAv7rH2ZWVlri5u8XLz9LY4bbF12trbXFsaoCO
or+/wJ6dnYeGhnV2eczc1h5rljNYXsfGxe71+evl5l12dHh0c8XQ3tnV1c/OzxJJ
fvv8/ujq7H9+gFxugp6sv+ru8Ozr63Bvcaq2yPv7+/Ty86CaE3h3eB4+aoiIicHX
0WRiYeLk5KCfoJCPkJeWmA8uW/f27tjX2MjIyOjn6KenqPz7/QBYYeTj46ClJu/v
70RYPff4+Pz58FRgnsbFxkBwa9LR0ampqTQ8eHRwbsHIUrjCQ8HK8ZmYmp+YlZOf
pZGIhLy+76ahnXmvsfLy8vT09PPz87ivr+bt6Hp5ev7+/v39/Y6ABvz366alFuPj
4+Tk5OTk5bC7w////yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78i
IGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxu
czp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4z
LWMwMDcgMS4xNDQxMDksIDIwMTEvMDkvMjAtMTg6MDk6MTAgICAgICAgICI+IDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y
ZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1w
TU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVm
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYj
IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKDEzLjAyMDEx
MTAxMi5tLjI1OCAyMDExLzEwLzEyOjIxOjAwOjAwKSAgKFdpbmRvd3MpIiB4bXBN
TTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYyODc5MTBDNEFERjExRTNCQjcxRDU0Q0Mw
NkE0QzUzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYyODc5MTBENEFERjEx
RTNCQjcxRDU0Q0MwNkE0QzUzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmlu
c3RhbmNlSUQ9InhtcC5paWQ6NjI4NzkxMEE0QURGMTFFM0JCNzFENTRDQzA2QTRD
NTMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjI4NzkxMEI0QURGMTFFM0JC
NzFENTRDQzA2QTRDNTMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g
PC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx
8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LB
wL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KR
kI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh
YF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIx
MC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIB
AAAh+QQBAAD/ACwAAAAAHAMqAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLF
ixgzatzIsaPHjyBDdpSx6Z7IkyhTqlzJsqXLlzBjypxpMV6wLhUqNEFQAcFOnwiA
9uwJtGiTnDmbkaHJtKnFErOcSp0a0Z4Pe1xKlOjGtVsJmeMIUB1LVuAjQxa8qF3b
x9CjEZ/iyi1AQUvatV76aKEAV67cRRTKCj6pJwyQJ4cPP1nMuLHjx4mBAAEwuDJN
e/ucIZsgzLJnmT54daGFa50TAEAYhGEAQBc8GlxcWmL1uTbLT6LQ4lVrQcujdwWC
Cx/xyO7u3nyFK39ku/nEOnceP3FBvbr169QdH25zx7l3kFymNf9gBm7A9/MdA2EQ
wQHAmzDwUaOGz2AGCE72VG5j5SsFOHjoBWgRCyPkdhdevb2lXHDEGYegF8ktGJiA
FAokQRs//KDBhhpqkOGHP1zQwxwanPGDiR96yOEPQTBQ4YsOTaPAPzWE8swA1fxj
zVcw9njQPQmIUAcDqgEhCTARoNNOO+utMINqTmAQSENcdFORMM5sIoUUyoQCIEXd
mOSjZSwUUKBux+0F3IINHsjbXiNIOOZ5EjAgSQQrAPBDHUtomOEFfULQzBU/dLAE
ihp0AIETQpxhChsAxDDnpAIpEMo/B5wwwCawuZIjpTD6QEUFHLyhGgCFJJAjGUPK
UclVXRT/stoMGDR0jwE3ULQPKVpKgQI0n0pUDTigClammQbu5gVycbJZnJvLwqnc
hMV+JkEyP7hxygNsCBBJJB1owIEgApRbBLkCACPABRqw4Ya6q1xRwSouSFotjPAQ
gIwuBzRACgHwKOBLJ1/ei14guLTIgBQnnEJQJakxcIgPAlGxChAbPJDfQjSI00A8
ExVDwC3KKFPFALFJtE0DluRqsFTHIosmgtI66+BazApH7cuCXQtABxGQwcYVRQDT
wQWRADOHICIcEoEbbDxQxAM/PHAF1IeQ0YMGLrjIM3pcFLMNKa6gIAw/ClRzQDqT
TCBDCSl/bVsEAPBBThWETDkQJysQ/8lBAlQMRIsLG7hwDUNGWAKNAUY4VMMg0whE
jRTDDCOFOAJNM0jjDRlhQDrjHCA3UzHLDG1eEDarXJtpRrjz6FNdK0QHkXQBDAQd
YPEADMA8IEARIvRSgSNoPODAHBAc38EcIiDAxg/1wm4bDTdUQ8MC4kzQAAHUXFLM
AtQQMM44ulxCQw3bWCm9YBUAwAAQHCBQkD0RPHEHABXoLVAgkpCzQdwJuccgJmAJ
BXhPIfewRBV8UQ952EMXVRgEAVIxDXvEYxi+qAIrNoaQYhxAF6UIRSk4uD6XlA5Z
cciHsizQhwit7lmti9PrSkgTCcSgDsBggyAEsYQ5AKMIF0jCA/80MYcHiOAKyeOh
BrBQBCwswWo5fECkaDiYEgijG01QQDfAUYpxGIAagyiGD7rRCXFYgoCzkAE1alCC
JlCRKnXYwAbqkACD0EICd2CAAEj4j0DUAQhh4EVDmsCKcTTAGs5oGUIGUAXLSQEc
4tlEP/aBggZMgxVbqhw1ECKMAVqjAQ0wwD7eaMIFoVCFx7GAC4cDQ5rxhTmkrGEM
VgCMSlygAlfoAAwecAEYCCISWBAEGXARzKklYQ5zgMEcEhA1YABDA/aK5VS4QMgF
TOMApejEAeDRBEvwwwcHGMA3LeEMayhgAIOgxgKk2RQGbCAIIqBYQUzxgztooALy
HMgOALD/AQAAECE3iAcrDECAZwyjCs9QAMgIUowXvKIK9XCFB6Dxggb4wAeheAE0
PDCJetziFTkwCDzA8YwqIJQABmCFPDjHzpOckEGMSOEKW6g6Vt7sTRSAZUtfYsM5
RIADdhDAKXjYy11qAgJQIAMqYCAANEBgCTB44hEF0IEiFCEI0dwpTbZxAAKIbiA1
MMAEWqEAGbACGidghRbhVgJWDKIJ8tBqTMLAhzocziAgoCsb+GiPIsCHA2JSiAwI
0AkvOiMHL6iHMk4gDpPcIx7TGAY0OpGKCLKCFB7ohjx+xQoCDCMVBCBFFaZBA5Nw
QRzpUEY9UuELZxjAGp0YxDbkGpKX/8JUpsfxQiNqyqBW4kwLR6BtS2x4hjmsQAAa
eAAGKoAKBzzADtAVQAIiAF07GE8TIoiHCJIQVDZwIHrChYk8dNGEGhQjcmD1wCAs
UdhBNGACKbBePDRLDSPw4xK6cFl4U8IAcnyjCwZJgCLu4AIE5PMfVMDADDYQBhHw
ESHTGEcpWjEBZOQgBQtEwSAUsABdhMIDoSCFFKwxDfD5Ihfi8AU4xHGACTBsHB6w
hi7EAUZl5OAVvshBPcY6gNDt1yO2vS0q8dKHPuzWlKwjsjd+nBIbTsdqcxDCEoqA
gFPgAhWCeAAaukBMB0QCF6dAgAgckIQLEIMYHVhMVpmckmoYYP8W8nisDGQgkGqE
ohWsGMAECDqBEyhAbB0+ANqcsYAasPkkCw6DGVrwhQRgIHAicMEb7BA4gnyBA0B4
gwR2cOCElIAaBgAHCp6BgkmgIAUoUMYExrEJD1DDGSlQxitYwY9Z+GIFhUjBLJrB
SBT4IhQk9cA4JlA2VJfMA5sAh1p5dGiMBFnIyirykW0GLWk0OyQciAF1hGCHOSQh
CYmAgibALIJRoKILIgCemB3hAAhcIBFLwEIHhCAE8F4bJfyQwTZoQAMjXGIbN7CE
nlsxCBQQwBqhCO0BZMSPLB5gHzS4N0h08aQ3SOEMdehBIOIBDD4AoREcDAQ9VhGG
N8zgC5X/Zkg39jMBkzmjCh7ozyRaO9BBlIJ7z2jFHsyQCDrQIRG+mIc6PDALAlhi
EAYYwAlyoIwU+EK0rUCGqlmRPokPyJRsiumQ2WKBab/wpta2OkdsuG0XaCARUYWA
HRyAC55UoAtkyAkCUIEF6EIABuyid73XLHaP3IAfNYjH32/gDBCHFtnPmAABQrGJ
ExxAAdRrAjgC2/eNBEARtpCCZMzwjwrMgA9nCEbFfHAKCZQcACIIhD3IEIEerKEQ
hejBKTo92FYcsgopIIAyPEAK1j7DF76ARgMwgQlfSIEEecgDHoYQhSgkAQCtxcQ4
SJEDXzwjBanYqDIIgGHYtoIAEa98/0SePRytR7vrvDWTb8Mu/ovUQdsuEIIGwA0o
KGBBAJo4RQISEIxgJGCYaOAAWAAFdxdEGyIET8B37YcRKyUDTSAMj7cABLAATdBw
oEYNzVADTaALoDMOrCAMTbAP1bBQC5gRp2AKEWAK0xAMlXAHfPAAgSAqXSAAM/AG
d1AHp2APtAAMp8EAb2AqQPAL64AB+WQPRpAO1kANE1APz0AAk5AD0IACqYBBvvAC
UYAISqAE4aANOiAGXogDRJAHSoAIQnAL/VEFqYACpOALk0AAHpADEzALiKRfJcgQ
5DccLIBbRIZ+SFYXd8F+dSgR7/cEeCB/ZwcBWOAAmoAKjiACjv+GARhACxWAC1em
CQK4BAbINQkYiBoRcOhkCbqgC+DQBDfQDRd1ihfVDcJwCZYgDgtgAEinUJTHiRdB
N/21AiLQAxJQcTPQAwkQCF0gCUQCP0VwCAIAAHLAAFFCEPcgDG7YAL7ADClgDQz0
SZuQAjkgBVmYhbFABMdQBjqgD7YQCypQjiSgCv1RSdZQfaGQAtIIYxNwAA9GiwVx
h3h4BFunFn2QD143HH7oBYBIjw1RB9GAB/EnBMckCIzYdghABhjQFWPwfz0hArgQ
Ce2WBBpAb5sokBQhD9TQANmAPYHXcKfYBBPYBCVwigtQDd2wD9fUTQRAZxxpERVw
B3JkGET/EgaScAUBUCsI8AtEUkQdIAESwAa4gEcMsAqcQBAyQAqDoAudsAnMQEAn
gEHOQAonkAp5IAsmsAsqsIVZEJbkSAJgEA5JgAytQAoT4AvDcAIDxAzP0ADiMAge
cAkziRD2eI/5mBf8mH5tEpB3iRAESYjxZwfE4Aa44Ain0AUJ0AUYcA3XcA+c4H/B
QAYUiQujIAh55wI8oICBqRA3oAD7oAvV0AmX0AmE5QPhcXQHZwA0oJrpUAqs0C9G
oAvXpD6fCRH24Ag2OQNEqQiKEAH7cANYUQE/wAAu8Aff0CJyIAdAQAs7sA6mUgQp
RwMGcALpYAkNUAUGZwCM5wopkAIz/xAOJoAPJiAEr2AD5nAONkACtoAD4AgGMzAJ
KWBqezYImzAM4zAI6UBWcZWbA5GXenl+y+CXdbFkACqY0cADeIAHSfBLjiAIDmAF
uAB3bceYzYMBw2QFaDAKjuAGJFJvnZmgVKILBDAA5xRqBAAORlAM1MAPZzQIrHAD
PlANPXZOrACVnRB+JNoQCTAH96MHRhAMD0kQtOAEMcAAUPAN5JCUy0AICcAJ9xAM
QXAH8UMQ2/ArhOUMr5AKz4Ca4zAADWAGJMAN5WkCSYAOUCCGUaAPYlAGxyAFKdAJ
lhAWnWBQVeAMqAkNz0CCCSqgA7obfWABBdqH9NCjBkGQbUCIS//gBo6QTHYABVAg
CAiQmY5QBJqAALgggANoB1eAC4KQBNTRBp6JqAKxDe4VPqy4D16kAMLwkQTQCl50
DT4wCwPQCvwADtWQTpDzT6ZqEKdQT05QRwdBDAwQAw8QBHJkBbRABRe1PytwB0Hw
BwVRDdaQAhNQCqUQjange7DmCUoQBSaAA5RgBSygAnlABDoAB/pAAnPwDDaCfakg
jesVCpPQAMFCorYVF1jHIIuAj8qyLIVqSjPUo4rKoA9QAQ+gAWkXqVYwZhyKCiIg
AJIKXVEVALhwBnjwBG3AB7+KEM0IirPQBLkggf1QAuBAAAogDicqDrogD1hEANMw
Dc0wm9P/wA88+rEG0Q9EsgqzKBA+MCRBcJwboAZUsJQEEQjNcAfkEATzYwQT4AEN
MAAEkA7PsAkXhgwvkAjliAc4oANZ4Al5AAZlAAfaEAUZ4ATlUA/YiAIokA4EUAr+
EgrCMI+fWSZ/wQKLYCafoLdYNwL/upeDOrDLobP/UAdTEANtgAfEUAEbgnZqZwdY
cGVoQKGjULF2gHca4AAJsAR40AbJ4LGGWxCQJQ7CIJri8Awy8EDiYAxKNwji4AwH
4AM14AqXcAnlxWK4OboDgQFs8AYA4Aj6UxA/8E7woQmqdxDBEAbkQA4HYQS7RwqT
5VadNQ7lQALl+JVlUAZEwA1l+wEw/0AHGSAF9RAKnUC1rNAJ6YBZKMBSiHosn7AI
oIAEQzAEWzAEkJAJi/AJSBa4AUuovFWwJIq4ZyAEyXAIDsADiWAHkBupqIBlFIoG
UABdS6B2CNkMS5AMaRYNvFsQwjALDZALm1C71eADA2AJsSqmrBAK0+AD0xBf0PAP
AzANJVAMHUwQwbAKJmdgB2EMQYAxDCABvPCzAkGlG+C8B5ELrNB0z5AODdBZlsAO
v5C9iJAD21u2RJAIGUAHnmAGGtYJrNAAJ/AMpsYK6PWrZbK3kBAC2NDGbIwNIQAJ
gNu/ACuo+bAMcqKziKs0GhABELBEVpAEMBBVdmAFzWUFo9BuEP8AAeEWCXagAY7w
AGcQCT/AwTcsEG1ECtPgDKwwAdTQDQPQCRNgDeIjDgQHD50AbDc7AdUgk5f8DzkM
vP6AEAgQBHzQT816DxzEQQlAOBuAEFgBD6UADbGWApuQDqHgC0pQjlz8AeCID2i7
xZ6gDOMwxrE2CdAwAPDABXYLoHo7AkMAxyEwzuTMxkMACnvLJp9Qx0R2x6ojwAmK
uGxwNBGAPOQiBGgHAxCABqjQVHS3BFAFb8DUqALwAwVtyZfMBQFDY6DmCgPQBOcr
DgOQZ8+gxL4wAAZQDfBgPa88EPbACVzhqwJBDP6zAeuAHyB7AEzrtAgkDASFAjng
CspwCzz/kAcqQAdEgANigAPn6Ql0kAdSwHQ2ZnDgcANE/L6fEM7lvNRsvAXvkM6r
swiEILh3rDOGWwd+IAR1sLkXAAEPgJHgBm+Vazx0h3aJkAgaILkXgAUQcAYdEAMI
fckb3QTUUIpU6wM3MADgQA0bKA7WSQ0ygLv3MA0F09EMwQFH/ASAE0CjALxO4BDx
QNce8Ay38AJ4sAvcgANwgAPcYJ6IEAWyoAo54AGu1gQ5O7qMgATizNTljA2QANWr
8wlTHW35AAtmAs8AKgFTcAFswAZF8wBYgAVJgJCCrAkSjAVWgAVnjZFrF9xuUC4P
8ARxfcnVwA+sQGMHYAkLcAmmeFE0/3AAZlQNoKYLMuC+hq0Q18AB5HAHf7AD3XwN
f3AHMwAMEFEMMpCrzuAOLiALYqADeJAHZioLv4AJoaAL/SADNvzKBbAFq83a5ay/
fyvbVG3bOvWrEuAHF6AIWIAAbuA7dlCIw70EyR2pAfhtGZkIAsAGDoAAkdDb3HHe
/1ANRue2A+AM1HAAHTYNrDgBrMBR1mAJxcBsMJ4Q9iABG8AHXyDSQIsBVSoBuCAR
V3EDBLAOu0AEtlCOSjAE3DC122AV550JDs7arh1kcDHbKwQLjXDVfhANbaABV3A7
QtCghchtmrAEdvBEmpAIeleIvH0Fc+ACyTAF3WHY9qAAE8B4L//wDDmgp1Qrph6A
DM/wAinQCpZg3kMumBvAAGrAaf+QHyR0Dby5AWxACxVxAL4QBruACFiOB2GQArVw
6aod5kuNDUPwbGW+l3kBCGo+BVOQDOWyBIor50LgAG7Q1bsUAZ4b53iQDMlVCWcQ
Dbw+6B19D6GJQc9ACiiwCVS3D/xQcBKlDL6QCgdAh5cumP7zDSh3EMXQDU5wB98Q
ACknEdTgDqrADLZAAonwCsygCqGwTkMe67JOzrQO20gm4QELmD3qBH7A69HwAyIA
BWzOAwyKBxrg1RKaucqOB50pBBEADG0A7YI+5A/kCpuAAq0AYqt2As4QCrAmUWdc
7grhBP7/wwe2cAo7QAWBQAVcQQv2oAfuVAc7gLQScQ+pnA45oArswA7lkAMnEAqD
AOsNLuu0zr/9yiCfAAt7ifAkqvC8PgXRkJHRkAzJ0AYSL/EIyTUMWvag2wZnwAPR
APJyMOTyQAPWAA2k0Mm+4NCuMDADgFmW8DYwvxBOAHpPYCoX8AdYIAFAIAdSkAA1
GAQIMAYV4QP7QOknUA+qkApMT06G9u9RL+u1XvXDUQBYvxtan6BM4AcL3/XREAMx
IPZtEPs8IPuzP/ugK/Zw/fa87ge/fN4haQTO0ABNkA0oZQkGIHAEUAMRNg438MmB
nxDt/gVX4ASAlJM6uQIrYCp/MAaC/1QRN3ACR9cJr1APsWUJreDK5w0KAd/aSMAI
or8gpb8Wpw+gaYBHqr/6b+/6Yg/7Yw8QydokI5gsRrRoU6b4YciAyT+IESVOpFjR
4kWMGTVu5NjR48eKMgYRKEaj04lxuho0GKBr3IkBMuQNUEAD5E2cOXXu5NkTopM3
uOxhQFCqFIgWERKgYcDASRebOxf4GmSt1KBQg3Ic8NnV61ewO1kMwRbC7Fm0ZrFt
GcGiwFu4ceUWgJXPy11pYfXu5YuzWDZMdQC0SbhQ4ZRoMQwujnHwsB/EMZ7MWCOu
Vl/MmTWDLKHgAA1xBMR1OmBM3IJim1WvZu2x0J1V9ija6xHmzf8MBJx6lrD26pku
BZtejUvd2vhxsIwypWWuFsmiudHlwrKAF/l17Bi5FKuVax6rTopW1AnyJMbhgwmj
tXEhaZWiHgMsWbq07Vp2/PlBcjGgwMCAz/QTcECdTAkjjAB8kEgGPWwDYBpeutqm
AV86aWASZ4wgcEMBWVgEibKaUwuST6Qz8a0R6vIiLw5b1Myea3i55pp7bqjGiEHW
kCQGyJ6og4kDjNjmnu3umVE2F5PEr5tp/jFgmgWUlNJFLgBgAAh/esGgl1MKkcOp
LhT0qoROnGnFAC6QnHLNvlj45MMQQkQLG2wgKaDEE01M0QIW2fTzKx+KESaXUoL4
RYFLSrCIR80/G2VNmGqEcXTS4yoI4g0GAJiBgTfeCKIHefQqppNBSqD01J2g+4SF
TCCJk86yhsjkEzzz1HMZL1DVFSR74kkjDUZ3FfarbQzoZlhkwepFj1Wc+MUJNq6o
gAq+prkkWWwtamQRFlhghJF3MkECiUxA6fZcdNNVV91PHqEnW3jjlXdeel0MCAA7
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://ege.edu.ru/common/img/img_2013/slider_str.gif
Content-Transfer-Encoding: Base64
R0lGODlhEAB+AMQUAN/f3yEhIZqamvv7+15eXioqKpubm5ycnJ2dneXl5SAgIJmZ
mZaWlpWVlSYmJubm5uPj45eXl5iYmP///////wAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78i
IGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxu
czp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4z
LWMwMDcgMS4xNDQxMDksIDIwMTEvMDkvMjAtMTg6MDk6MTAgICAgICAgICI+IDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y
ZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1w
TU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVm
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYj
IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKDEzLjAyMDEx
MTAxMi5tLjI1OCAyMDExLzEwLzEyOjIxOjAwOjAwKSAgKFdpbmRvd3MpIiB4bXBN
TTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc2Q0I2NkNGNEMzNDExRTNCMTYxRjJGQzYw
Q0FDMDYwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjc2Q0I2NkQwNEMzNDEx
RTNCMTYxRjJGQzYwQ0FDMDYwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmlu
c3RhbmNlSUQ9InhtcC5paWQ6NzZDQjY2Q0Q0QzM0MTFFM0IxNjFGMkZDNjBDQUMw
NjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzZDQjY2Q0U0QzM0MTFFM0Ix
NjFGMkZDNjBDQUMwNjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g
PC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx
8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LB
wL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KR
kI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh
YF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIx
MC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIB
AAAh+QQBAAAUACwAAAAAEAB+AAAFd+BAPFRpngkxUEsAnCegCKbgwhQQ0KdxmzoD
jnL46Q7DEsIB0SGSpkahwICeIhKrdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4
vH7P7/v/gIGCg4SFhoeIiYqAExNcjY1akJBQlBSWMJiXkSeaJZieJpShnY0hADs=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://ege.edu.ru/common/img/img_2013/banner_gia.gif
Content-Transfer-Encoding: Base64
R0lGODlhvgAZAdU9AGVlZ87Oz9LS02BhY1VWV0lKTN3d3cjIyGtsbpycnYCAgn5/
gJaWl4GCg5eYmZ2en4uMjZOTlISEhurq6pmZmmBhYpqbnIKDhJSVlrO0tOPj44eH
iNbW1oeIiX19f0dISo6PkJKTlIWFhomJi5CQkUxNT05PUcrKyo2NjpCRkoqLjI2O
j1xdX0ZHSNzc3Glqa4yNjpGSk1VWWIqKi8rLy4iJioaHiIWGh4+Qkefn6D4/QfLy
8v///////wAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78i
IGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxu
czp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4z
LWMwMDcgMS4xNDQxMDksIDIwMTEvMDkvMjAtMTg6MDk6MTAgICAgICAgICI+IDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y
ZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1w
TU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVm
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYj
IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKDEzLjAyMDEx
MTAxMi5tLjI1OCAyMDExLzEwLzEyOjIxOjAwOjAwKSAgKFdpbmRvd3MpIiB4bXBN
TTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJFNDZEQjkxNEI2RDExRTNCNjJBQjI4QUQ0
RkREMTlDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJFNDZEQjkyNEI2RDEx
RTNCNjJBQjI4QUQ0RkREMTlDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmlu
c3RhbmNlSUQ9InhtcC5paWQ6QkU0NkRCOEY0QjZEMTFFM0I2MkFCMjhBRDRGREQx
OUMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkU0NkRCOTA0QjZEMTFFM0I2
MkFCMjhBRDRGREQxOUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g
PC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx
8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LB
wL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KR
kI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh
YF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIx
MC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIB
AAAh+QQBAAA9ACwAAAAAvgAZAQAG/0CdcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvt
er/gMJNHLpvP6LR6zW673/C4fE5/G+v4vH7P7/vNd3+Cg4SFhmiBh4qLjI1piY6R
kpN7kJSXmJmIRZqdnpeWn6Kjg6Gkp6h1pqmsrWurrrGxsLK1qLS2uZ+4ur2YvL7B
kcDCxYrExsmlnMrNjsjO0XjQ0tVx1NbZbNja3Wfc3uHg4d3j5Nnm59Xp6tHs7c3v
8Mny88X19sH4+b37/Ln+/tUKKHAWs4LtCCJkpXDhrYMOxUGMWG4iRXQWL67LqNEd
x47xPoKkJ3LkvZIm9aFM2W8lS4AuXw6MKdMgkZohb+IkqXPnyf+ePlUCDdpyKFGY
Ro/OTKrU5pCmRZ9CRSp16tKqVp0KyXp1K1etOr6CFeuqIdlKNM9KMqt2Wtq2jdjC
nSN37rW3dg/VzetmL99teP8uYyp4WODCfvwi/nZ4MVrCjo81juwWMuVCiilnjrzZ
cefFnxGHLjxacOm/p/mmzrvabuu5r+HGbjtbbe2zt8nmFrv7a2+uv7MGtzp8anGo
x5smV7r8aHOiz4NG9zl9Z3Wc12tml7n9ZXeW31OGNzl+ZHmQ5zum17j+YnuK7yPG
dzh/YX2E9wvmF7j/X39+/+UToD0DzlMgPAcmNNlldC3I4F2WPfhHgupQeI6F5GAo
UYQS9qH/oTcfVsRhh49hRSJmDp74SooqPsJii4yNCGODMs4IoYk28hGiNjtiVGOO
fb2YY4/WELnRj0AChmSSahgpjZMeLcnkJlJOCYiQNkLpjJY54WgljV5+eaMQO5Rp
5plopqnmmmy26eabcMYp55x01gmnEXbmqeeefPbp559n4gnooIQWauihaQqK6KKM
Nuqomoo+KumklPIZaaWYZqppokVs6umnmF4K6qikEipqqaimauepqrbqKpusviqr
rLHOamuqtd6qK6i57uprpr3+KqykwQ5r7KLFHqusqZ0u6+yjyT4rbZ7RTmutnNVe
q22b2W7rLZrdfituuOJ6S2652p6L/6616q4rbbvuOgtvvMrOS6+x9t4rbL76+spv
v7r+C7CtAg9Ma7MGu1twwq0uzDCuCD88bsQSm0txxelejDG7Gm/8bsceywtyyPWO
TDK+Jp+8b8oq+8tyywG/DDPBMs98MBE2i4xzziXvzDPKPv+8ctBCu0x00TEfjTTN
Si998xBOGw111ElPTTXTVl/9NJlaz+pw139+DXafYo+9Z9lmU1tz2pOizTadbr+N
7dpyN2pEAHjnrffefPft99+ABy744IQXbnjeHPg5weEBiOH445ATUUIGetJQQeSY
Z655EhDkebkVAIQu+uikl2766ainrvrqrLfu+uulszCECnVOIP/EB7CP3sPuvPfu
++/ABy/88MQXb/zxyCcPPARDzEDnAUIgoPz01Fdv/fXYZ98DDEOMMCf0Okiv/fjk
l2/++SgMUYOc4It//vvwxy+/7ysM0UGcJwjxwvz89+//9SAYwgbgJAAhDOB/CEyg
AoGHgyHY4E0F1MEBF0jBCvaPBEO4gZsiOEELevCD5UvBEETQJg6C8IQovF4MhiAB
NpkwhTCMofFCwMI1vVCGOMxh7yIwhAuoyQVCkIEOh6hDHgrBh2gygBAIQMQmyhAD
Q2hAEpfoxCqmEIpCkKKZlKgDJlrxix9kwBAUsEUqgvGMFRSjEMi4Ay56EY1wTKAD
hrCAHWhOQAgmiKMeEThHISwgB0IowB4H2T8KDMEDgSSkIuVnSCIIcpGQPJ8FHBnJ
SpZvkom0pCazlwAhtGCToLxeJ3UQylJS7wGkNKUqkfcA6wUBADs=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://ege.edu.ru/common/img/img_2013/str_status_menu.gif
Content-Transfer-Encoding: Base64
R0lGODlhCAAHAJEDAG9vcH5/fzAxM////yH/C1hNUCBEYXRhWE1QPD94cGFja2V0
IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6
eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUg
WE1QIENvcmUgNS4zLWMwMDcgMS4xNDQxMDksIDIwMTEvMDkvMjAtMTg6MDk6MTAg
ICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRm
OmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4w
LyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8i
IHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUv
UmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBD
UzYgKDEzLjAyMDExMTAxMi5tLjI1OCAyMDExLzEwLzEyOjIxOjAwOjAwKSAgKFdp
bmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkFEMEZDNzAwNEJBODEx
RTM5NDBGQkY1MjhBRUM3RkYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkFE
MEZDNzAxNEJBODExRTM5NDBGQkY1MjhBRUM3RkYyIj4gPHhtcE1NOkRlcml2ZWRG
cm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QUQwRkM2RkU0QkE4MTFFMzk0
MEZCRjUyOEFFQzdGRjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QUQwRkM2
RkY0QkE4MTFFMzk0MEZCRjUyOEFFQzdGRjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+
IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79
/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87N
zMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56d
nJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25t
bGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49
PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4N
DAsKCQgHBgUEAwIBAAAh+QQBAAADACwAAAAACAAHAAACD4xmo3i56RQ8bACarmx0
FAA7
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=style_ege_new.css
Content-Type: text/css; name=style_ege_new.css
Content-Location: http://ege.edu.ru/common/css/style_ege_new.css
Content-Transfer-Encoding: 8bit
@import url("/common/css/spec.css");
@font-face {
font-family:"Open Sans Condensed Light";
src:url("font/OpenSans-CondLight.eot");
src:url("font/OpenSans-CondLight.eot?#iefix") format("embedded-opentype"),
url("font/OpenSans-CondLight.woff") format("woff"),
url("font/OpenSans-CondLight.ttf") format("truetype"),
url("font/OpenSans-CondLight.svg#OpenSans-CondensedLight") format("svg");
font-weight:normal;
font-style:normal;
}
@font-face {
font-family:"OpenSansCondLight";
src:url("font/OpenSansCondLight.ttf");
}
@font-face {
font-family: 'open_sanscondensed_light';
src: url('font/opensanscondlight-webfont.eot');
src: url('font/opensanscondlight-webfont.eot?#iefix') format('embedded-opentype'),
url('font/opensanscondlight-webfont.woff2') format('woff2'),
url('font/opensanscondlight-webfont.woff') format('woff'),
url('font/opensanscondlight-webfont.ttf') format('truetype'),
url('font/opensanscondlight-webfont.svg#open_sanscondensed_light') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Open-Sans-Condensed-Light';
src:url("font/Open-Sans-Condensed-Light.ttf.eot");
src:url('font/Open-Sans-Condensed-Light.ttf.eot?#iefix') format('embedded-opentype'),
url("font/Open-Sans-Condensed-Light.ttf.woff") format("woff"),
url("font/OpenSansCondLight.ttf") format("truetype"),
url('font/Open-Sans-Condensed-Light.ttf.svg#Open-Sans-Condensed-Light') format('svg');
font-weight:normal;
font-style:normal;
}
@font-face {
font-family:"Deja Vu";
src:url("font/dejavu.eot");
src:url("font/dejavu.eot?#iefix") format("embedded-opentype"),
url("font/dejavu.woff") format("woff"),
url("font/dejavu.ttf") format("truetype"),
url("font/dejavu.svg#DejaVu") format("svg");
font-weight:normal;
font-style:normal;
}
/* Default */
* { margin: 0px;
padding: 0px;
font-size:100%;}
td {vertical-align:top;}
html, body, form, table {
margin: 0px;
padding: 0px;
}
body {
color: #1f262d;
font-size: 12px;
line-height: normal;
font-family: Verdana;
background: url("/common/img/img_2013/back_main.jpg") repeat-x left top #bcc7e6;
}
body.GIA {background: url("/common/img/img_2013/back_main_gia.jpg") repeat-x left top #e8dbc2;}
table {
border-collapse: collapse;
border-spacing: 0px;
border: none;
}
table td {
vertical-align: top;
padding: 0px;
border: none;
}
img {border: none;}
a {color: #0071bb; text-decoration:underline; outline: none;}
a:hover {text-decoration:none;}
body>* a {
cursor: pointer;
}
.spacer {
font-size: 0px;
line-height: 0px;
margin: 0px;
padding: 0px;
border: none;
display: block;
visibility: hidden;
}
.br0 {
font-size: 0px;
line-height: 0px;
margin: 0px;
padding: 0px;
}
html, body {
width:100%;
height:100%;
}
* html #content {
height: 100%;
}
#content {position:relative; min-height:100%; width:1000px; margin:0 auto; background:#fff;
box-shadow: 0 0px 30px rgba(0,0,0,0.3); -moz-box-shadow: 0 0px 30px rgba(0,0,0,0.3); -webkit-box-shadow: 0 0px 30px rgba(0,0,0,0.3);}
#footer {
position: relative;
margin-top: -137px;
height: 150px;
padding:0px 29px 0 31px;
width:940px;
color:#e6e6e6;
margin-left:auto;
margin-right:auto;
background:#f2f2f2;
box-shadow: 0 30px 30px rgba(0,0,0,0.3); -moz-box-shadow: 0 30px 30px rgba(0,0,0,0.3); -webkit-box-shadow: 0 30px 30px rgba(0,0,0,0.3);
}
#footer .fot_line {margin:0px 0px 0px 0px; border-top:1px solid #d5d6d6;}
#footer .div1 { line-height:16px; color:#949699;}
#footer .div2 {line-height:16px; color:#949699;}
#footer .div2 a {color:#7aa2d1; text-decoration:none}
#footer .div2 a:hover {color:#8ab3e2; text-decoration:underline}
#footer .div1 {margin:0 auto; padding-top:8px; text-align: center; width: 896px;}
#footer .div1 a {color: #0071bb;}
#footer .div1 a:hover {color:#0071bb}
#footer .div_right{float:right; padding-right: 25px;}
#footer .div_right div{float:left;}
#footer .div_right .link_web {border-right:2px solid #bebebe; padding-right:7px}
#footer .div_right .link_web a{background: url("/common/img/ege_new/webmast_bg.gif") no-repeat left 3px; padding-left:16px; color: #0071bb;}
#footer .div_right .link_web a:hover{color:#0071bb}
#footer .div_right .link_mapsit {padding:0 7px}
#footer .div_right .link_mapsit a{background: url("/common/img/ege_new/mapsite_bg.gif") no-repeat left 3px; padding-left:16px; text-decoration:none}
#footer .div_right .link_mapsit a:hover{text-decoration:underline}
#footer .div_right .link_stat {padding-left:7px}
#footer .div_right .link_stat a{background: url("/common/img/ege_new/stat_bg.gif") no-repeat left 3px; padding-left:16px; text-decoration:none}
#footer .div_right .link_stat a:hover{text-decoration:underline}
#footer .rambler_top {position: absolute; right: 29px; top: 20px; width: 89px;}
.cont_bottom {height:137px;}
/* =============================================== GIA ================================================*/
.EGE a{color: #0071bb;}
.EGE a:hover{}
/* =============================================== MAIN ================================================*/
.color_red {color:red;}
.color_green {color:green;}
.main_top {height:38px; position:relative; background:#f2f2f2; z-index:200;}
.procedure_main .main_top {background:none;}
.logo {}
.logo .img1 {position:absolute; left:0; top:22px;}
.logo .img2 {position:absolute; left:135px; top:22px;}
.logo .img3 {position:absolute; left:135px; top:97px;}
.logo .img4 {position:absolute; left:20px; top:22px;}
.logo_new {background: url("/common/img/img_2013/logo.gif") no-repeat 30px 45px; height:151px; position:relative;}
.logo_new .logo_ico {background: url("/common/img/img_2013/logo.gif") no-repeat left top; width:138px; height:50px; cursor:pointer; position:absolute; left:30px; top:45px;}
/*.logo_new .logo_ico:hover {background: url("/common/img/img_2013/logo_hov.gif") no-repeat left top;}*/
.logo_new .logo_text {font-family: calibri; font-size:24px; line-height:32px; position:absolute; left:209px; top:39px;}
.logo_new .logo_text .logo_text1 {color:#949699;}
.logo_new .logo_text .logo_text2 {color:#303133; font-weight: bold; text-transform: uppercase;}
.logo_new .vers_special {color:#303133; font-size:14px; text-transform: uppercase; background: url("/common/img/img_2013/ico_special.gif") no-repeat left top; width:145px;
height:66px; padding:24px 0px 0px 38px; position:absolute; right:29px; top:26px; line-height:24px;}
.logo_new .vers_special a {color:#303133;}
.GIA .logo_new {background: url("/common/img/img_2013/logo_gia.gif") no-repeat 30px 45px;}
.GIA .logo_new .logo_text {left:241px;}
.GIA .logo_new .logo_ico {background: url("/common/img/img_2013/logo_gia.gif") no-repeat left top; width:180px;}
/*.GIA .logo_new .logo_ico:hover {background: url("/common/img/img_2013/logo_gia_hov.gif") no-repeat left top;}*/
.top_right_1 {position:absolute; right:-1px; top:36px; text-align:right; width:160px;}
.top_right_1 img {margin-right:3px;}
.top_right_1 .img1 {margin-right:10px;}
.top_right_1 a {text-decoration:none}
.top_right_1 a:hover {text-decoration:none}
.top_right_2 {position:absolute; right:0px; top:57px;}
.top_right_2 a {background:url(/common/img/ege_new/o4ki.gif) no-repeat left 4px; text-decoration:none; color:#1f262d; font-size:16px; font-weight:bold; padding-left:33px;}
.top_right_3 {position:absolute; left:191px; top:10px; width:175px; border-bottom:1px solid #c3c4c5; height:18px;}
.top_right_3 .inp1 {background:none; border:0px solid red; color:#949699; font:12px; margin:0px 0px 0px 0px; padding:1px 0px 2px 0px; width:155px;}
.top_right_3 .inp2 {position:absolute; right:2px; top:1px;}
.top_right_nav {}
.top_right_nav .tp_rig_nav1 {position:absolute; right:236px; top:11px;}
.top_right_nav .tp_rig_nav1 a {background: url("/common/img/img_2013/ico_socseti_gia.jpg") no-repeat left -85px; /*background: url("/common/img/img_2013/ico_top_mb.jpg") no-repeat left -149px;*/ padding-left:20px; text-decoration:underline; color:#303133; padding-top: 2px; display: inline-block; height: 15px;}
.top_right_nav .tp_rig_nav1 a:hover {color:#303133; text-decoration:none;}
.top_right_nav .tp_rig_nav2 {height:38px; width:41px; background: url(/common/img/img_2013/ico_lov.jpg) no-repeat center 13px #0071bb; position:absolute; right:29px; top:0px; cursor:pointer;}
.coz_set_okn {position:absolute; background:#d2d2d1 url(/common/img/ege_new/menu_top_bl_bg.gif) repeat-x left -70px; padding: 20px 30px 20px 30px; /*border-radius:10px;*/ box-shadow:0px 1px 3px #939393; width:322px; z-index:1000; right:0px; top:38px; display:none;}
.coz_set_okn .client_top_bl_str {right:37px;}
.coz_set_okn a {color:#1f262d; text-decoration:none;}
.coz_set_okn a:hover {text-decoration:underline;}
.coz_set_okn .authorize { margin-bottom: 10px; font-size: 14px; font-weight: 900; }
.cboxIframe body {background:#fff;}
/*
.top_right_soc {width:135px; height:18px; right:50px; top:11px; position:absolute;}
.top_right_soc a {display:block; width:18px; height:18px; margin-left:11px; float:left; }
.top_right_soc .soc_se1 {background: url("/common/img/img_2013/ico_socseti_gia.jpg") no-repeat 1px -187px #f2f1ed;}
.top_right_soc .soc_se2 {background: url("/common/img/img_2013/ico_socseti_gia.jpg") no-repeat 6px -273px #f2f1ed;}
.top_right_soc .soc_se3 {background: url("/common/img/img_2013/ico_socseti_gia.jpg") no-repeat 3px -347px #f2f1ed;}
.top_right_soc .soc_se4 {background: url("/common/img/img_2013/ico_socseti_gia.jpg") no-repeat 2px -444px #f2f1ed;}
*/
.top_right_soc {width:170px/*132*/; height:24px; right:29px; top:6px; position:absolute;}
.top_right_soc a {display:block; width:24px; height:24px; margin-left:12px; float:left; }
.top_right_soc .soc_se0 {background: url("/common/img/img_2013/livejournal_ico.gif") no-repeat 0px 0px; margin:0px;}
.top_right_soc .soc_se1 {background: url("/common/img/img_2013/ico_soc_snew.gif") no-repeat 0px 0px;}
.top_right_soc .soc_se2 {background: url("/common/img/img_2013/ico_soc_snew.gif") no-repeat -35px 0px;}
.top_right_soc .soc_se3 {background: url("/common/img/img_2013/ico_soc_snew.gif") no-repeat -71px 0px;}
.top_right_soc .soc_se4 {background: url("/common/img/img_2013/ico_soc_snew.gif") no-repeat -108px 0px;}
.top_right_soc .soc_se0:hover {background: url("/common/img/img_2013/livejournal_ico.gif") no-repeat 0px -36px;}
.top_right_soc .soc_se1:hover {background: url("/common/img/img_2013/ico_soc_snew.gif") no-repeat 0px -36px;}
.top_right_soc .soc_se2:hover {background: url("/common/img/img_2013/ico_soc_snew.gif") no-repeat -35px -36px;}
.top_right_soc .soc_se3:hover {background: url("/common/img/img_2013/ico_soc_snew.gif") no-repeat -71px -36px;}
.top_right_soc .soc_se4:hover {background: url("/common/img/img_2013/ico_soc_snew.gif") no-repeat -108px -36px;}
.main_lnk {height:107px; padding:25px 29px 0px 31px;}
.main_lnk_1 {float:left; font-size:14px;}
.main_lnk_1 a {display:block; padding:50px 0px 0px 0px; font:14px; text-decoration:none; color:#949699;}
.main_lnk_1 a:hover {color:#0071BB;}
.main_lnk .div1 {margin-right:70px;}
.main_lnk .div1 a {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat 90px 0px; width:214px;} /*/common/img/img_2013/ico_vagn_ssylk.gif*/
.main_lnk .div2 {margin-right:94px;}
.main_lnk .div2 a {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat 51px -189px; width:136px;}
.main_lnk .div3 {margin-right:48px;}
.main_lnk .div3 a {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat 62px -374px; width:160px;}
.main_lnk .div4 {}
.main_lnk .div4 a {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat 38px -584px; width:110px;}
.main_lnk .div5 {}
.main_lnk .div5 a {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat 93px -816px; width:218px;}
.main_lnk .div1 a:hover {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat -202px 0px;} /*-228*/
.main_lnk .div2 a:hover {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat -241px -189px;}
.main_lnk .div3 a:hover {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat -230px -374px;}
.main_lnk .div4 a:hover {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat -252px -584px;}
.main_lnk .div5 a:hover {background: url("/common/img/img_2013/ico_vagn_ssylk_gr.gif") no-repeat -199px -816px;}
.main_block_1 {padding:0px 29px 0px 31px; width:940px; overflow-x: hidden; margin-bottom:21px;}
.main_block_reg {display:none;}
.second_cont_tbl_2 .main_block_1 {padding:0px;}
.main_block_grey {/*background:#f2f2f2;*/ padding-top:19px;}
.GIA .main_block_grey {background:none;}
.main_block_menu {height:40px; margin-bottom:16px;}
.main_block_menu .div1 {height:58px;}
.main_block_menu a {display:inline-block; padding:14px 22px 12px 22px; float:left; font-size:14px; line-height:14px; color:#303133; position:relative; text-transform: uppercase; margin-right:7px;}
.main_block_menu .a1 {z-index:50;}
.main_block_menu .a2 {z-index:40;}
.main_block_menu .a3 {z-index:30;}
.main_block_menu a.selected {background:#0071bb; color:#fff; z-index:60; text-decoration:none; position:relative;}
.main_block_menu a.selected .str_men_str {display:block; background: url("/common/img/img_2013/menu_str_all.gif") no-repeat left -446px; /*background: url("/common/img/img_2013/str_men_blue.gif") no-repeat left top;*/ width:9px; height:9px; position:absolute; bottom:-9px; right:20px;}
.main_block_menu_red a.selected .str_men_str {background: url("/common/img/img_2013/menu_str_all.gif") no-repeat left top; /*background: url("/common/img/img_2013/str_men_red.gif") no-repeat left top;*/}
.main_block_menu_red a.selected {background:#ec1c24;}
.main_block_menu a:hover {background:#0071bb; color:#fff; z-index:55;}
.main_block_menu_red a:hover {background:#ec1c24; color:#fff; z-index:55;}
.main_vote .main_block_menu a.selected {background:url(/common/img/ege_new/menu2_yell.gif) repeat-x left top;}
.main_vote .main_block_menu a:hover {background:url(/common/img/ege_new/menu2_yell.gif) repeat-x left top;}
.main_video .main_block_menu a.selected {background:url(/common/img/ege_new/menu2_blue.gif) repeat-x left top;}
.main_video .main_block_menu a:hover {background:url(/common/img/ege_new/menu2_blue.gif) repeat-x left top;}
/*.main_block_2 .main_block_menu a.selected {background:url(/common/img/ege_new/menu2_roz.gif) repeat-x left top;}
.main_block_2 .main_block_menu a:hover {background:url(/common/img/ege_new/menu2_roz.gif) repeat-x left top;}*/
.main_block_menu a.selected2 {background:#1ca7ec; color:#fff; z-index:60; text-decoration:none; position:relative;}
.main_block_menu a.selected2 .str_men_str {display:block; background: url("/common/img/img_2013/menu_str_all.gif") no-repeat left -546px; /*background: url("/common/img/img_2013/str_men_blue.gif") no-repeat left top;*/ width:9px; height:9px; position:absolute; bottom:-9px; right:20px;}
/* =============================================== SECOND ================================================*/
.second_cont_tbl {width:100%;}
.second_cont_tbl_1 {width:300px; padding-top:36px; background:#dae1f7;}
.second_cont_tbl_2 {padding-left:32px; padding-top:20px; padding-right:29px;}
.GIA .second_cont_tbl_1 {background:#f0e8d8;}
/* =============================================== Content and Elements ================================================*/
.left {float:left;}
.right {float:right;}
.img_left {float:left; margin:5px 15px 5px 0;}
h1 {font-family:calibri; font-size:24px; font-weight:normal; line-height:20px; color:#202731; padding-bottom:15px; font-weight: bold;}
h1.head_ttl {margin-bottom:22px; padding-bottom:0px; text-transform: uppercase;}
h2 {font-family:calibri; font-size:20px; font-weight:normal; line-height:normal; color:#202731; padding-bottom:15px;}
h3 {font-family:calibri; font-size:16px; font-weight:bold; line-height:normal; color:#202731; padding-bottom:15px;}
p {padding-bottom:1.2em;}
ul {list-style:none; padding:0 0 7px 10px;}
ul li {padding:0 0 5px 20px; background:url(/common/img/bul_2.gif) no-repeat left 5px;}
ol {padding:0 0 7px 26px; margin:0; }
ol li {padding:0 0 15px 0px; margin:0;}
ol li a {padding:0; margin:0; display:inline;}
ol ul {padding:5px 0 0px 16px;}
ol ul li {padding:0 0 5px 15px; /*background:url(/common/img/li1.gif) no-repeat left 6px;*/}
ol ul li ul li {padding:0 0 5px 10px; background:url(/common/img/li1.gif) no-repeat left 7px;}
.content {font-size:12px; line-height: 1.4em; position:relative; padding-bottom:10px; min-height:424px;}
.content p {padding-bottom:1.2em;}
.content ul {list-style:none; padding:0 0 15px 10px;}
.content ul li {padding:0 0 8px 19px; background:url(/common/img/img_2013/bul_3.gif) no-repeat 7px 6px;}
.sub_print_top {position:absolute; width:24px; height:24px; right:0px; top:-60px;}
.sub_print_top a {text-decoration:none;}
.checkbox, .radio {
width: 16px;
height: 16px;
padding: 0 0px 0 0;
background: url(/common/img/img_2013/checkbox2013.gif) no-repeat;
display: block;
clear: left;
float: left;
cursor:pointer;
}
.radio {
background: url(/common/img/img_2013/radiobutton2013.gif) no-repeat;
}
.select {
position: absolute;
width: 158px; /* With the padding included, the width is 190 pixels: the actual width of the image. */
height: 21px;
padding: 0 24px 0 8px;
color: #fff;
font: 12px/21px arial,sans-serif;
background: url(/common/img/ege_new/select.gif) no-repeat;
overflow: hidden;
}
.ban_gia {float:right; padding-bottom:30px;}
.gia_ban {background: url(/common/img/ege_new/ban_gia.png) no-repeat; display:block; width:451px; height:95px;}
.gia_ban:hover {background-position:left -100px;}
.lnk_back {font-size:18px;}
.lnk_back a {font-size:14px;}
.inp {border:1px solid #aeaeae; border-top:1px solid #757575; border-bottom:1px solid #e5e5e5; /*border-radius:3px;*/ width: 100%; padding:7px 10px; margin:0; color: #A1A1A1; font: 15px/normal arial; color:#262626; font-weight:bold;}
/*
.button {background:url(/common/img/ege_new/menu2_green.gif) repeat-x left top; border:none; border-radius:5px; padding:7px 15px; font:15px/normal arial; color:#fff; text-shadow:1px 1px 0px #1f262d; font-weight:bold; text-decoration:none; cursor:pointer;}
.button:hover {box-shadow:1px 1px 3px #828282;}
*/
.button {min-width: 64px; font-weight: bold; text-decoration:none; display:inline-block; color:#303133; background:#f2f2f2; padding:9px 30px; font-size:12px; line-height:14px; font-weight:block; text-align:center; text-transform: uppercase; border: none; box-shadow: none; outline: none; cursor:pointer;}
.button:hover {background:#0071bb; color:#fff;}
.GIA .button:hover {background:#FF8E00;}
.razd_work {width:623px; height:260px;}
.razd_work img {position:absolute; top:0px; left:0px;}
/* =============================================== Table ================================================*/
.table_block {/*background:#b4d3aa; padding:15px 0 15px 0;*/ padding:0px; margin-bottom:15px;}
.table {width:100%;}
.table th {background:#dae1f7; text-align:left; padding:11px 19px 11px 19px; border:1px solid #a9abad; font-weight: normal;}
.table td {background:#fff; text-align:left; padding:16px 19px; border:1px solid #a9abad;}
#settings .table td {background:#fff; text-align:left; padding:5px 0px 5px 0px; border:1px solid #a9abad;}
#settings .table td.td2,
#settings .table td.td3 {
text-align:center;
}
.table tr.alt td {background:none;}
.table tr.over td {background:#f2f2f2;}
/*.table tr:nth-child(2n+1) td {background:none;}
.ege_rezult_b_nb tr:nth-child(2n+1) td {background: #F2F2F2;}*/
.table tr.tr_n1 td {background:none;}
.ege_rezult_b_nb tr.tr_n2 td {background: #F2F2F2;}
.table tr.ovhov td {background:#dadada;}
.table_min {width:100%;}
.table_min th {background:#b4d3aa; font-size:15px; text-align:left; padding:2px 3px 10px 3px; font-weight: normal;}
.table_min td {background:#fff; text-align:left; padding:5px 3px; border-top:1px solid #adb0c1;}
.table_min tr.alt td {background:none;}
.table_min tr.over td {background:#f2f2f2;}
.table_min tr:nth-child(2n+1) td {background:none;}
.table_min tr.ovhov td {background:#dadada;}
/*.exam_top{border-radius:15px 15px 0 0 ; border:1px solid #d7dadc; background:#93e739; border-bottom:none; height:10px;}
.exam_bot{border-radius:0 0 15px 15px ; border:1px solid #d7dadc; background:#f5f7f8; border-top:none; height:10px}
.table_exam {width:100%; text-align:center; background:#f5f7f8; border-left:1px solid #d7dadc; border-right:1px solid #d7dadc;}
*/
.table_exam {width:100%;}
.table_exam th {background:#dae1f7; text-align:left; padding:11px 19px 11px 19px; border:1px solid #a9abad; font-weight: normal;}
.table_exam td {background:#fff; text-align:left; padding:16px 19px; border:1px solid #a9abad;}
.table_exam tr.alt td {background:none;}
.table_exam tr.over td {background:#f2f2f2;}
.table_exam tr:nth-child(2n+1) td {background:none;}
.table_exam tr.ovhov td {background:#dadada;}
.table_exam .subject {text-align:left}
/* =============================================== MENU ================================================*/
.menu_top {height:46px; margin-bottom:0px; background: url("/common/img/img_2013/backg_menu.jpg") no-repeat left top; position:relative; z-index:100;}
.menu_top .menu1 { padding:15px 5px 0 5px; height:31px; display:block; text-align:center; font-size:14px; font-weight:bold; color:#fff; text-decoration:none; text-transform:uppercase; position:relative;}
.GIA .menu_top {background: url("/common/img/img_2013/backg_menu_gia.jpg") no-repeat left top;}
.menu_top .menu_m .sel:before {
left:71%;
bottom:-26px;
content:"\2666";
font-family: monospace;
font-size:50px;
line-height:52px;
text-align:center;
position:absolute;
overflow:hidden;
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
clip: rect(26px, 15px, 38px, 0px);
}
.menu_top .menu_m_1 .sel:before {color:#d12636;}
.menu_top .menu_m_2 .sel:before {color:#824267;}
.menu_top .menu_m_3 .sel:before {color:#315f9b;}
.menu_top .menu_m_4 .sel:before {color:#0e6bb0; left:50%;}
.GIA .menu_top .menu_m_1 .sel:before {color:#ef2e1e;}
.GIA .menu_top .menu_m_2 .sel:before {color:#f65911;}
.GIA .menu_top .menu_m_3 .sel:before {color:#fb7508;}
.GIA .menu_top .menu_m_4 .sel:before {color:#fd8403;}
.menu_top .menu1:hover {color:#000; background:#f2f2f2;}
.menu_top .hocl .menu1 {color:#000; background:#f2f2f2;}
.menu_top .sel {/*background: url("/common/img/img_2013/menu_str.gif") no-repeat center top;*/}
.menu_top .sel .st_treug {}
.menu_top_left {width:190px; height:48px; float:left; }
.menu_m {/*position:relative;*/}
.menu_view {position:absolute; left:0px; top:46px; z-index:1000; background:#f2f2f2; padding:28px 31px 28px 31px; visibility:hidden; /*min-height:240px;*/ width:938px;}
.menu_view_1 {width:260px; float:left; padding-right:10px; }
.menu_view_2 {width:155px; padding-left:0; font-size:12px; line-height: 12px;}
.menu_view_str {position:absolute; top:-11px; left:85px; background:url(/common/img/ege_new/menu_str_1.png) no-repeat left top; height:11px; width:25px; z-index:1100;}
.menu_view a {text-decoration:underline; color:#303133;}
.menu_view a:hover {color:#303133; text-decoration:none;}
.menu_view .menu5 {font-size:12px; line-height: 12px;}
.menu_view .menu5 a {display:block; padding:0px 0px 12px 0; color:#303133}
.menu_view .menu5 a:hover {color:#303133;}
.menu_view .menu5 a.sel_2ur {text-decoration:none; font-weight: bold;}
.menu_view_tbl {border-collapse: separate; border-spacing: 0px 0px;}
.menu_view_tbl .td1 {padding-right:10px; padding-left:0px;}
.menu_view_tbl .td2 {padding-right:10px; padding-left:31px; border-left:1px solid #dadbdc;}
.menu_view_tbl .td3 {padding-right:10px; padding-left:31px; border-left:1px solid #fff;}
.menu_m_1 {}
.menu_m_1 .menu1 {padding-left:31px; text-align:left;}
.menu_m_2 {}
.menu_m_2 .menu_view_str {left:0px;}
.menu_m_3 {}
.menu_m_3 .menu_view_str {left:0px;}
.menu_m_3 .menu_view {left:0px;}
@media all and (-webkit-min-device-pixel-ratio:0) {
.menu_m_3 .menu_view {left:0px;}
}
.menu_m_4 {}
.menu_m_4 .menu1 {padding-right:29px; text-align:right;}
.menu_m_4 .menu_view {left:0px;}
.menu_m_4 .menu_view_str {left:0px;}
.menu_top_left .menu_view {width:935px;}
.menu_top_left .menu_view .menu5 {width:320px;}
#menu_view_forimg_3 {width:163px;}
#menu_view_forimg_4 {width:163px;}
.menu_top_right {width:739px; height:48px; float:right;}
.menu_top_tbl {width:100%;}
.menu_top_tbl .td_r {display:none;}
.GIA .menu_top_tbl td {width:33%;}
.GIA .menu_m_4 .menu1 {padding-left: 29px;}
.GIA .menu_top .menu_m .sel:before {left: 60%;}
.GIA .menu_top .menu_m_4 .sel:before {left:50%;}
.menu_center {height:247px; margin-bottom:17px;}
.menu_center_left {height:247px; width:471px; background:url(/common/img/ege_new/doska.jpg) no-repeat left top; float:left; position:relative;}
.menu_center_r1 {height:120px; width:458px; background:url(/common/img/ege_new/ege_mat.jpg) no-repeat left top; float:right; margin-bottom:6px; cursor:pointer;}
.menu_center_r2 {height:121px; width:458px; background:url(/common/img/ege_new/ege_rus.jpg) no-repeat left top; float:right; cursor:pointer;}
.lnk_left_ege {height:117px; width:25px; background:url(/common/img/ege_new/lnk_arh.gif) no-repeat left top; display:block; position:fixed; top:34%; margin-top:-117px; left:0;
-position: absolute;
}
.lnk_left_osoko {height:141px; width:25px; background:url(/common/img/ege_new/lnk_osoko.gif) no-repeat left top; display:block; position:fixed; top:34%; margin-top:9px; left:0;
-position: absolute;
}
.vybr_razdel {border-bottom:1px solid #bec3d1; padding-bottom:8px; margin-bottom:10px; text-transform: uppercase; width:240px; margin-left:31px; font-weight: bold;}
.vybr_razdel a {color:#3e3f41; text-decoration:none;}
#second .second_cont_tbl_1 .menu_left {/*min-height:400px;*/}
.menu_left {padding-left:0px; padding-bottom:40px;}
.menu_left ul {padding:0; margin:0; list-style:none;}
.menu_left ul li {padding:0 0 1px 0; margin:0; background:none; font-weight:normal; line-height:14px;}
.menu_left ul a {color:#3e3f41; display:block; padding:11px 29px 10px 31px; text-decoration:none;width: 150px;}
.menu_left ul li a:hover {background:#0071bb; color:#fff;}
.menu_left ul a.sel_2_ur {background:#0071bb; color:#fff;}
.menu_left ul li li {padding:1px 0 0px 20px; margin:0; background:none; font-weight:normal;}
.menu_left ul a.sel_4_ur {background:#a3dc66; text-decoration:none; color:#1f262e; /*border-bottom:3px solid #a3dc66; border-top:2px solid #a3dc66;*/}
.GIA .menu_left ul li a:hover {background:#ff8e00;}
.GIA .menu_left ul a.sel_2_ur {background:#ff8e00;}
.EGE .menu_left ul a.sel_2_ur, .EGE .menu_left ul a.sel_3_ur, .EGE .menu_left ul a.sel_4_ur, #wawes .active {
background:#0071bb;
color:#fff;
}
.EGE .menu_left ul a:hover {
background:#0071bb;
color:#fff;
}
/* pod menu */
.infa_main {width:100%;}
.infa_main .infa_main_td1 {width:560px;}
.infa_main .infa_main_td2 {width:440px;}
.infa_mtd2_div {position:relative; width:440px; height:380px; background: url("/common/img/img_2013/infa_sprava.jpg") no-repeat left top; text-transform: uppercase; font-size:18px; font-family: calibri; font-weight: bold; line-height: 24px;}
.infa_mtd2_div span {color:#ec1c24;}
.infa_mtd2_div a {text-decoration:none; color:#303133;}
.infa_mtd2_div a:hover {text-decoration:underline;}
.infa_mtd2_div .infa_mtd2_d1 {position:absolute; left:0px; top:34px; padding:0px 22px; width:174px; text-align:right;}
.infa_mtd2_div .infa_mtd2_d2 {position:absolute; right:0px; top:214px; padding:0px 22px; width:174px; text-align:left;}
/* =============================================== NEWS ================================================*/
#anons_news {height:289px;}
#anons_news2 {height:289px;}
#news_tab, #news1_tab, #docs_tab, #docs1_tab, #mer_tab, #seminars_tab {position:relative;}
#news1_tab, #docs1_tab { /*margin-bottom: 25px;*/ }
.main_news {}
.main_news_line {}
.news_item_ov {overflow: hidden; height: 193px;}
.main_news .news_item, .main_news1 .news1_item {width:186px; height:192px; padding:14px 16px; overflow: hidden; border:2px solid #babbbd; float:left; font-size:12px; color:#1f262d; margin-bottom:20px; margin-right:17px; border-radius:3px; position:relative;}
.main_news .news_data, .main_news1 .news_data {display:inline-block; padding:2px 6px; padding:0px 0px 8px 0px;}
.main_news .news_ttl, .main_news1 .news_ttl {padding:0 0px 6px 0px; line-height:18px;}
.main_news .news_ttl a, .main_news1 .news_ttl a {}
.main_news .news_ttl a:hover, .main_news1 .news_ttl a:hover {}
.main_news .news_anons, .main_news1 .news_anons {padding:0 0px 0px 0px; line-height:18px;}
.main_news .news_anons a, .main_news1 .news_anons a {color:#1f262d; text-decoration:none;}
.main_news .news_anons a:hover, .main_news1 .news_anons a:hover {color:#353d45;}
.main_mer_line {}
.main_mer .news_item {width:186px; height:192px; padding:14px 16px; overflow: hidden; border:2px solid #babbbd; float:left; font-size:12px; color:#1f262d; margin-bottom:20px; margin-right:17px; border-radius:3px; position:relative;}
.main_mer .news_data {display:inline-block; padding:2px 6px; padding:0px 0px 8px 0px;}
.main_mer .news_ttl {padding:0 0px 6px 0px; line-height:18px;}
.main_mer .news_ttl a {}
.main_mer .news_ttl a:hover {}
.main_mer .news_anons {padding:0 0px 0px 0px; line-height:18px;}
.main_mer .news_anons a {color:#1f262d; text-decoration:none;}
.main_mer .news_anons a:hover {color:#353d45;}
/* старые
.ikonki {background: url(/common/upload/img/file_html.gif) no-repeat; width:42px; float:left; height:42px; margin-left:-42px }
.ikonki_doc, .ikonki_docx {background: url(/common/upload/img/file_doc.gif) no-repeat; width:42px; float:left; height:42px; margin-left:-42px }
.ikonki_pdf, .ikonki_pdfx {background: url(/common/upload/img/file_pdf.gif) no-repeat; width:42px; float:left; height:42px; margin-left:-42px }
.ikonki_ppt, .ikonki_pptx {background: url(/common/upload/img/file_ppt.gif) no-repeat; width:42px; float:left; height:42px; margin-left:-42px }
.ikonki_html {background: url(/common/upload/img/file_html.gif) no-repeat; width:42px; float:left; height:42px; margin-left:-42px }
.ikonki_xls, .ikonki_xlsx {background: url(/common/upload/img/file_xls.gif) no-repeat; width:42px; float:left; height:42px; margin-left:-42px }
.main_news .news_item_docs {width:186px;}
.main_news .news_item_docs .news_item_ov {padding-left:42px; height: 196px;}
.main_news .news_item_docs .news_item_ov .news_ttl {padding-left:6px;}
*/
.ikonki {background: url(/common/img/img_2013/file_doc.png) no-repeat 0px 0px; width:24px; float:left; height:33px; margin-left:-24px; margin-top:10px; }
.ikonki_doc, .ikonki_docx {background: url(/common/img/img_2013/file_doc.png) no-repeat 0px 0px; width:24px; float:left; height:33px; margin-left:-24px }
.ikonki_pdf, .ikonki_pdfx {background: url(/common/img/img_2013/file_doc.png) no-repeat 0px -326px; width:24px; float:left; height:33px; margin-left:-24px }
.ikonki_ppt, .ikonki_pptx {background: url(/common/img/img_2013/file_doc.png) no-repeat 0px -496px; width:24px; float:left; height:33px; margin-left:-24px }
.ikonki_html {background: url(/common/img/img_2013/file_doc.png) no-repeat 0px -722px; width:24px; float:left; height:33px; margin-left:-24px }
.ikonki_xls, .ikonki_xlsx {background: url(/common/img/img_2013/file_doc.png) no-repeat 0px -147px; width:24px; float:left; height:33px; margin-left:-24px }
.main_news .news_item_docs {width:186px; padding-top:12px; height: 194px;}
.main_news .news_item_docs .news_item_ov {padding-left:24px; height: 196px;}
.main_news .news_item_docs .news_item_ov .news_ttl {padding-left:6px;}
.main_news .news_item_docs .news_item_ov .news_anons {margin-left: -24px;}
.doc_item1 {margin-left: 0px;}
.doc_item2 {padding-left:35px}
.main_news, .main_news1 {
position: relative; /*leave this value alone*/
border: 0px solid black;
overflow: scroll; /*leave this value alone*/
width: 942px; /*Width of Carousel Viewer itself*/
height: 250px; /*Height should enough to fit largest content's height*/
margin-left:0px;
}
#seminars_tab{
width: 478px;
}
#seminars_tab .main_news{
width: 478px;
}
.main_news .news_belt, .main_news1 .news1_belt{
position: absolute; /*leave this value alone*/
left: 0;
top: 0;
}
.main_mer{
position: relative; /*leave this value alone*/
border: 0px solid black;
overflow: scroll; /*leave this value alone*/
width: 942px; /*Width of Carousel Viewer itself*/
height: 250px; /*Height should enough to fit largest content's height*/
margin-left:0px;
}
.main_mer .mer_belt{
position: absolute; /*leave this value alone*/
left: 0;
top: 0;
}
.main_news .main_news_line, .main_news1 .main_news1_line{
float: left; /*leave this value alone*/
overflow: hidden; /*clip content that go outside dimensions of holding panel DIV*/
margin: 0px; /*margin around each panel*/
width: 956px; /*Width of each panel holding each content. If removed, widths should be individually defined on each content DIV then. */
}
.main_mer .main_mer_line{
float: left; /*leave this value alone*/
overflow: hidden; /*clip content that go outside dimensions of holding panel DIV*/
margin: 0px; /*margin around each panel*/
width: 956px; /*Width of each panel holding each content. If removed, widths should be individually defined on each content DIV then. */
}
.docs_belt, .docs1_belt{
position: absolute; /*leave this value alone*/
left: 0;
top: 0;
}
.main_docs_line, .main_docs1_line {
float: left; /*leave this value alone*/
overflow: hidden; /*clip content that go outside dimensions of holding panel DIV*/
margin: 0px; /*margin around each panel*/
width: 956px; /*Width of each panel holding each content. If removed, widths should be individually defined on each content DIV then. */
}
.grad_white {background:url(/common/img/ege_new/grad_white.png) repeat-x left bottom; height:30px; margin-top:-30px; position:relative; z-index:900;}
.grad_white_min {background:url(/common/img/ege_new/grad_white.png) repeat-x left bottom; height:30px; bottom:0px; position:absolute; left:18px; width: 184px; display:none;}
.main_news_all, .main_news1_all {position:absolute; bottom:0px; right:0px;}
.main_news_all a, .main_news1_all a {/*background:url("/common/img/ege_new/rss_bg.gif") no-repeat right center;*/ padding-left:10px;}
.main_news_all a.new_a_1, .main_news1_all a.new_a_1 {display:inline-block; padding-top:1px; float:right;}
.main_news_all a.new_a_2, .main_news1_all a.new_a_2 {float:right;}
.main_mer_all {position:absolute; bottom:0px; right:0px;}
.main_mer_all a {padding-left:10px;}
.main_mer_all a.new_a_1 {display:inline-block; padding-top:1px; float:right;}
.main_mer_all a.new_a_2 {float:right;}
#news-paginate {margin:0 auto; width:60px; height:10px;}
#news-paginate img {margin:0px 2px 0px 3px; float:left;}
#news1-paginate {margin:0 auto; width:60px; height:10px;}
#news1-paginate img {margin:0px 2px 0px 3px; float:left;}
#docs-paginate {margin:0 auto; width:60px; height:10px;}
#docs-paginate img {margin:0px 2px 0px 3px; float:left;}
#docs1-paginate {margin:0 auto; width:60px; height:10px;}
#docs1-paginate img {margin:0px 2px 0px 3px; float:left;}
#mer-paginate {margin:0 auto; width:60px; height:10px;}
#mer-paginate img {margin:0px 2px 0px 3px; float:left;}
.news-list {}
.news-list .cl {padding-bottom:2em;}
.news-list .news-date {font-size:12px;}
.news-list .news-title {font-size:14px; line-height:normal;}
/* */
.main_cont_tbl {background:#f2f2f2; width:100%; margin-bottom:30px;}
.main_cont_tbl td {}
.main_cont_tbl .main_cont_td_1 {padding-left:31px; padding-right:60px; padding-top:36px; padding-bottom:36px; width:320px;}
.main_cont_tbl .main_cont_td_2 {padding-right:29px; padding-top:36px; padding-bottom:36px;}
/* =============================================== VOTE ================================================*/
#op_tab {position:relative; }
#op {}
.main_vote_vote {
position: relative; /*leave this value alone*/
border: 0px solid black;
overflow: scroll; /*leave this value alone*/
width: 320px; /*Width of Carousel Viewer itself*/
height: 280px; /*Height should enough to fit largest content's height*/
}
.op_belt{
position: absolute; /*leave this value alone*/
left: 0;
top: 0;
}
.main_vote {width:320px;}
.main_vote_block {padding:0px; width:320px;}
.main_vote_block .bac_white {background:#fff; padding-top:20px;}
.naz_opros {height:30px; font-size:14px; color:#303133; position:relative; font-weight:bold;}
.kol_op_nav {position:absolute; top:-3px; right:35px; font-size:18px; font-weight:normal;}
.kol_op_nav span {float: right;}
.for_bloc_all {}
.main_vote_block .bac_txt {background:#7da7d8; padding:16px 21px 12px 21px}
.GIA .main_vote_block .bac_txt {background:#ffcd40;}
.main_vote_block .div1 {color:#fff/*b2b2b2*/; text-align:center; background:url("/common/img/img_2013/backg_kol_prog.gif") no-repeat left center; font-style: italic;}
.main_vote_block .div2 {float:left; color:#f6b61b; font-size:30px; font-weight:bold; line-height:30px; letter-spacing:-1px; padding-right:5px;}
.main_vote_block .div3 {color:#62676c; font-size:12px; font-weight:; line-height:13px;}
.main_vote_block .txt {line-height:18px; padding-bottom:10px; color:#ffffff;}
.main_vote_block .btn1 {text-align:center;}
.vote_vote_tbl {margin-bottom:20px; color:#949699; width:100%; background:#fff;}
.vote_vote_tbl td {vertical-align: middle; padding:10px 0px;}
.vote_vote_tbl .td1 {padding: 3px 16px 3px 21px; border-bottom:1px solid #e5e6e6; width:16px;}
.vote_vote_tbl .td2 {padding-right:10px; border-bottom:1px solid #e5e6e6; text-align:left; line-height:14px;}
.vote_vote_tbl .td2 label {cursor:pointer;}
.vote_vote_tbl .td2 .vv_lab_sel {color:#303133}
.vote_line {height: 12px; margin-right:5px; background:#EC1C24;
/*background: url("/common/img/ege_new/line_vote_result.gif") repeat-x scroll 0 0 transparent;*/}
.vote_prozent {margin-top:-13px}
.main_vote_arh {padding-left:40px; font-size:13px;}
.main_vote_arh a {color:#1F262D;}
.main_vote_arh a:hover {text-decoration:none;}
.vote_resultat {line-height:14px; font-size:12px;}
.vote_resultat .td_res1 {padding-left:21px;}
.vote_resultat .td_resl_l {padding-left:21px; padding-bottom:20px;}
.krasn_knopka {color:#fff; background:#ec1c24; padding:14px 0px; width:100%; font-size:14px; line-height:14px; font-weight:block; text-align:center; text-transform: uppercase; border: none; box-shadow: none; outline: none; cursor:pointer; font-weight: bold;}
.krasn_knopka:hover {background:#f04249;}
.main_zad_vot {padding-top:16px;}
.main_zad_vot .vote_zad_v {background: url("/common/img/img_2013/ico_zad_vote.gif") no-repeat left top; padding-left:26px; color:#3e3f41; display: inline-block; height: 17px;}
.second_cont_tbl .main_vote_block {width:100%;}
.second_cont_tbl .main_vote_block .div1 {background:none; text-align:left;}
/* =============================================== VIDEO ================================================*/
.main_video {width:433px; float:left; margin-bottom:20px;}
.main_video_block {margin:-5px 0 0 -3px;}
/* =============================================== FORUM&BLOG ================================================*/
#forum_tab, #blog_tab {position:relative;}
#main_block_2_body {padding-bottom:40px;}
//.main_block_2 {width:478px; float:right;}
.main_forum_block {}
.main_forum_block .forum_item {color:#3e3f41; margin-bottom:16px; background:#fff; height:49px;}
.forum_item_tab {width:100%;}
.forum_item_tab .forum_item_t1 {width:49px; vertical-align: middle;}
.forum_item_tab .forum_item_t2 { vertical-align: middle; background:url("/common/img/img_2013/ico_zad_vote.gif") no-repeat 484px -426px;}
.main_forum_block .forum_data {display:block; width:49px; padding:6px 0px 0px 0px; background:#7da7d8; height:43px; color:#fff; text-align:center; font-size:18px; line-height: 16px; font-family: calibri; text-transform: lowercase;}
.main_forum_block .forum_data span {font-size:24px; display:block; line-height: 20px; font-family: calibri;}
.main_forum_block .forum_ttl {padding:0 40px 0px 15px; line-height:16px; max-height: 32px; overflow: hidden;}
.main_forum_block .forum_ttl a {color:#1f262d; text-decoration:none;}
.main_forum_block .forum_ttl a:hover {color:#1f262d; text-decoration:underline;}
.main_forum_block .forum_name {padding:0 15px 0px 6px; color:#747474;}
.GIA .main_forum_block .forum_data {background:#ffcd40}
.main_forum_all {border-top:1px solid #ededed; padding-top:3px; margin:0px;}
.main_forum_all .a1 {color:#1f262d; font-size:13px; text-decoration:none; background:none /*url(/common/img/ege_new/ico_forum.gif) no-repeat left 5px; padding-left:15px;*/}
.main_forum_all .a1:hover {text-decoration:none;}
#forum-paginate {float:right; padding-right:20px;}
#forum-paginate img {margin-left:7px;}
.main_blog_all {border-top:1px solid #ededed; padding-top:7px; margin:0 37px;}
.main_blog_all .a1 {color:#1f262d; font-size:13px; text-decoration:none; background:url(/common/img/ege_new/ico_forum.gif) no-repeat left 5px; padding-left:15px;}
.main_blog_all .a1:hover {text-decoration:none;}
#blog-paginate {float:right; padding-right:20px;}
#blog-paginate img {margin-left:7px;}
.main_forum_block {
position: relative; /*leave this value alone*/
border: 0px solid black;
overflow: scroll; /*leave this value alone*/
width: 560px; /*Width of Carousel Viewer itself*/
height: 500px; /*Height should enough to fit largest content's height*/
margin-left:0px;
}
.main_forum_line {
float: left; /*leave this value alone*/
overflow: hidden; /*clip content that go outside dimensions of holding panel DIV*/
margin: 0px; /*margin around each panel*/
width: 560px; /*Width of each panel holding each content. If removed, widths should be individually defined on each content DIV then. */
}
.forum_belt {
position: absolute; /*leave this value alone*/
left: 0;
top: 0;
}
.forum_i_tii {height:30px; font-size:14px; color:#303133; position:relative; font-weight:bold; text-transform: uppercase;}
.krasn_blue {font-weight: bold; text-decoration:none; display:inline-block; color:#fff; background:#0071bb; padding:14px 0px; width:100%; font-size:14px; line-height:14px; font-weight:block; text-align:center; text-transform: uppercase; border: none; box-shadow: none; outline: none; cursor:pointer;}
.krasn_blue:hover {background:#1989d3;}
.GIA .krasn_blue {background:#ff8e00;}
.GIA .krasn_blue:hover {background:#fca12f;}
.main_forum_all .krasn_blue {color:#fff;}
.main_forum_all .per_for_blog {background: url("/common/img/img_2013/ico_zad_vote.gif") no-repeat left -179px; padding-left:26px; color:#3e3f41; display: inline-block; height: 17px; margin-top:16px;}
/* =============================================== BAN================================================*/
.main_lnk_tbl {width:100%; background:#f2f2f2; font-family: calibri;}
.main_lnk_tbl .td0 {width:40px;}
.main_lnk_tbl .td1 {width:177px; text-align:center; padding-top:18px; padding-bottom:28px;}
.main_lnk_tbl .td1 a {display:inline-block; padding-top:52px; text-decoration:none; color:#949699;}
.main_lnk_tbl .td1 a span {font-weight:bold; display:block; text-transform: uppercase; color:#3e3f41;}
.main_lnk_tbl .td1 a:hover {color:#399fe1;}
.main_lnk_tbl .td1 a:hover span {color:#0071BB;}
.main_lnk_tbl .td1 .ic_st_s1 {background: url("/common/img/img_2013/storon_site_ico.gif") no-repeat 57px 2px;}
.main_lnk_tbl .td1 .ic_st_s2 {background: url("/common/img/img_2013/storon_site_ico.gif") no-repeat -127px 2px;}
.main_lnk_tbl .td1 .ic_st_s3 {background: url("/common/img/img_2013/storon_site_ico.gif") no-repeat -314px 2px;}
.main_lnk_tbl .td1 .ic_st_s4 {background: url("/common/img/img_2013/storon_site_ico.gif") no-repeat -504px 2px;}
.main_lnk_tbl .td1 .ic_st_s5 {background: url("/common/img/img_2013/storon_site_ico.gif") no-repeat -706px 2px;}
#second .main_lnk_tbl td {border-top:1px solid #b4b8c3;}
/* =============================================== BAN================================================*/
/* black
.client_top {position:absolute; left:706px; top:0px; border-left:1px solid #57595c; border-right:1px solid #57595c; padding-top:12px; padding-left:19px; width:72px; height:26px;}
.client_top_enter {font-size:12px;}
.client_top_enter a.a1 {text-decoration:none; color:#e5e5e5; cursor:pointer; padding-left:23px; background: url("/common/img/img_2013/ico_top_mb.jpg") no-repeat left -71px;}
.client_top_enter a.a1:hover {border-bottom:none; color:#fff;}
*/
.client_top {position:absolute; left:564px; top:0px; padding-top:12px; padding-left:19px; width:72px; height:26px;}
.client_top_enter {font-size:12px;}
.client_top_enter a.a1 {text-decoration:underline; color:#303133; cursor:pointer; padding-left:23px; background: url("/common/img/img_2013/ico_socseti_gia.jpg") no-repeat left top;}
.client_top_enter a.a1:hover {border-bottom:none; text-decoration:none; color:#303133;}
.sub-links {padding-top:4px}
.sub-links a {color:#000; text-decoration:none;}
/**/.client_top_bl {position:absolute; background:#f2f1ed; padding:0px; box-shadow:0px 3px 6px #939393; width:261px; height:134px; z-index:1000; right:-147px; top:38px; display:none;}
.client_top_bl a {color:#1f262d; text-decoration:none;}
.client_top_bl a:hover {text-decoration:underline;}
/**/.client_top_bl_str {position:absolute; top:-9px; right:175px; background:url(/common/img/img_2013/menu_str_1b.gif) no-repeat left top; height:9px; width:9px; z-index:1100; display:block !important;}
.client_top_bl .div1 {font:14px; font-weight:bold; float:left; padding-bottom:7px;}
.client_top_bl .div2 {float:right; padding-top:3px; padding-right:5px;}
.client_top_bl .inp1 {border:1px solid #c3c3c3; border-top:1px solid #7c7c7c; padding:3px 5px; color:#a3a4a5; width:127px; font:11px/normal arial; background:#fff; margin-right:8px;}
.client_top_bl .inp2 {border:1px solid #c3c3c3; border-top:1px solid #7c7c7c; padding:3px 5px 3px 19px; color:#a3a4a5; width:109px; font:11px/normal arial; background:#fff url(/common/img/ege_new/zamok.gif) no-repeat 5px 4px; margin-bottom:5px;}
.client_top_bl .btn1 {background:url(/common/img/ege_new/btn_enter.png) no-repeat left top; width:67px; height:29px; padding-bottom:5px; font:11px Trebuchet MS; font-weight:bold; border:none; cursor:pointer; color:#5b5b5b; margin-right:-5px;}
.client_top_bl .div5 {font:12px Trebuchet MS; font-weight:bold; }
.client_top_bl .div5 span {font-size:16px; line-height:16px;}
.client_top_bl .div5 span {font-size:16px; line-height:16px;}
.client_top_bl .client_top_b_red {color:red; padding-left: 4px; padding-top: 4px; font-size: 12px;}
.client_top_bl .inp_eror_bor_aut {border: 1px solid red;}
/*
.soc_ico {display: inline-block; border:1px solid #fff; padding-left:24px; padding-top:4px; padding-bottom:5px; padding-right:6px; font-size:11px; font-family: trebuchet MS;}
.soc_ico a {color:#1F262D !important; text-decoration:none !important;}
.soc_ico:hover {border:1px solid #bcbcbc; color:#1F262D !important; text-decoration:none !important;}
.soc1 {background:url("/common/img/ege_new/ico_f.gif") no-repeat 3px 3px;}
.soc1:hover {background:url("/common/img/ege_new/ico_f.gif") no-repeat 3px 3px #fff;}
.soc2 {background:url("/common/img/ege_new/ico_t.gif") no-repeat 3px 3px;}
.soc2:hover {background:url("/common/img/ege_new/ico_t.gif") no-repeat 3px 3px #fff;}
.soc3 {background:url("/common/img/ege_new/ico_g.gif") no-repeat 3px 3px;}
.soc3:hover {background:url("/common/img/ege_new/ico_g.gif") no-repeat 3px 3px #fff;}
.soc4 {background:url("/common/img/ege_new/ico_yt.gif") no-repeat 3px 3px;}
.soc4:hover {background:url("/common/img/ege_new/ico_yt.gif") no-repeat 3px 3px #fff;}
.soc6 {background:url("/common/img/ege_new/ico_b.gif") no-repeat 3px 3px;}
.soc6:hover {background:url("/common/img/ege_new/ico_b.gif") no-repeat 3px 3px #fff;}
*/
.soc_ico2 {display:block; width:24px; height:24px; margin-right:14px; float:left; }
.soc1 {background: url("/common/img/img_2013/ico_soc_snew2.gif") no-repeat 0px -2px;}
.soc2 {background: url("/common/img/img_2013/ico_soc_snew2.gif") no-repeat -38px -2px;}
.soc3 {background: url("/common/img/img_2013/ico_soc_snew2.gif") no-repeat -75px -2px; width:26px; height:25px;}
.soc5 {background: url("/common/img/img_2013/ico_soc_snew2.gif") no-repeat -115px -2px;}
.soc1:hover {background: url("/common/img/img_2013/ico_soc_snew2.gif") no-repeat 0px -36px;}
.soc2:hover {background: url("/common/img/img_2013/ico_soc_snew2.gif") no-repeat -38px -36px;}
.soc3:hover {background: url("/common/img/img_2013/ico_soc_snew2.gif") no-repeat -75px -36px;}
.soc5:hover {background: url("/common/img/img_2013/ico_soc_snew2.gif") no-repeat -115px -36px;}
.soc_ico3 {display:block; width:32px; height:25px; float:left;}
.soc7 { border: 1px solid #fefffe; padding: 4px; }
.soc7:hover {background:#fff}
.soc7 img { diplay: inline-block; margin-right: 4px; }
/**/.main_top_1_in {text-align:center;}
/**/.main_top_1_in .div1a_vh {font-weight:bold; font-size:14px; background:#0071bb; height:32px; color:#fff; text-transform: uppercase; padding-top:16px;}
/**/.main_top_1_in .div1a { font-size:14px; padding: 13px 0px 0px 0px; height:24px; width:259px; border-left:1px solid #949699; border-right:1px solid #949699;}
/**/.main_top_1_in .div1a a { display: inline-block; float: right; font-size:11px; line-height: 19px; }
.soc_lan_button_out {position:absolute; right: 4px; top: 87px;}
.tblink { width: auto; margin-left: 4px; font-size: 11px; color: #a9aaab; padding: 2px 6px; border-radius: 0; }
.td3 .tblink { width: 114px; background: #fff url("/common/img/ege_new/author_social.gif") 6px 50% no-repeat; padding-left: 17px; }
.auth_tbl { }
.auth_tbl td { font-family: trebuchet MS; width: 50% !important; }
.auth_tbl td.splitter { height: 6px; }
.auth_tbl .td4 { line-height: 19px; }
.auth_tbl .td4 a span { font-weight: 900 !important; }
.auth_tbl .td4 span.plus { font-size: 15px; padding-top: 4px; position: relative; margin-left: -7px; top: 1px; }
.auth_tbl .td4 a:hover { text-decoration:none; font-weight: 900 !important; }
.auth_tbl .td5 { text-align: right; }
.btn_blue { border: none; width: 65px; height: 29px; font-size: 11px; color: #5b5c5b; background: url("/common/img/ege_new/btn_blue.png") 0 0 no-repeat; cursor: pointer; }
#vote_tab { padding: 0px; }
.div2a { margin-top: 6px; padding-top: 6px; background: url("/common/img/ege_new/autorize-split.png") 0 0 repeat-x; }
/**/.main_top_1 .div2a { margin-top: 0px; height:42px; padding-left:60px; width:199px; border-left:1px solid #949699; border-bottom:1px solid #949699; border-right:1px solid #949699;}
/**/.main_top_1 .div2a_s {padding-left:10px; padding-right:70px; width:179px;}
/**/.main_top_1 .div2a_s a {float:left; display: block; font-size: 16px; padding-top: 2px;}
/**/.main_top_1 .div2a_s .soc_lan_button_out {padding-top: 1px;}
.div2a .authorize { margin-bottom: 10px; font-size: 14px; font-weight: 900; }
.main_top_1 .div2a .authorize { font-size: 14px; font-family: trebuchet MS; }
.inline_vote{ border-color:#ffff !important;}
.reg_tbl .td2 { padding-bottom: 22px; }
.reg_tbl .td1 { padding-top: 4px; font-size: 18px; width: 210px; }
.reg_tbl .td2 input, .reg_tbl .td2 select { width:385px; padding: 3px 6px 4px 6px; border-radius: 6px; border: 2px solid #dbddde; font-family: trebuchet MS; background: url("/common/img/ege_new/field-bckgr.jpg") 0 0 repeat-x; }
.reg_tbl .td2 select { width:400px; padding-bottom: 2px; }
.reg_tbl .td2 .new_st_kn {width: auto; border-radius:0px; min-width: 64px; font-weight: bold; text-decoration:none; display:inline-block; color:#303133; background:#f2f2f2; padding:12px 40px; font-size:12px; line-height:14px; font-weight:block; text-align:center; text-transform: uppercase; border: none; box-shadow: none; outline: none; cursor:pointer;}
.reg_tbl .td2 .new_st_kn:hover {background:#0071bb; color:#fff;}
/*.reg_tbl .td2 #post { width: 216px; height: 44px; background: url("/common/img/ege_new/lets-reg.jpg") 0 0 no-repeat; border: none; cursor: pointer; }*/
.reg_tbl .td2 .post22 { background: url("/common/img/ege_new/buttom_save_izmen.gif") 0 0 no-repeat !important;}
#bch_pass { width: 177px; height: 38px; color: #656565; text-transform: uppercase; background: url("/common/img/ege_new/change_pass.jpg") 0 0 no-repeat; border: none; cursor: pointer; }
#set-new-appil .border p { width: 182px; margin: 4px 15px 0px 0; padding: 0; display: inline-block; }
#set-new-appil input, #set-new-appil select { width: 100%; background-color: #f5f6f8; border: 2px solid #e5e5e5; border-radius: 0px; }
#set-new-appil .checkbox { display: inline; }
#set-new-appil .border p.half { width: 47%; }
#set-new-appil .border p.half select option { line-height: 14px; }
#set-new-appil span { font-size: 12px; }
#set-new-appil span.red { color: #e92444; }
.appil_but { display: block !important; float: left; }
input.appil_save_but { border: none !important; background-color: none !important; background: url("/common/img/apil-save.jpg") no-repeat left top; height: 44px !important; width: 134px !important; cursor: pointer; margin-right: 17px;}
.appil_save_but:hover { background: url("/common/img/apil-save.jpg") no-repeat left bottom;}
.appil_back_but { float: right; border: none !important; background-color: none !important; background: url("/common/img/apil-back.jpg") no-repeat left top; height: 44px !important; width: 107px !important; cursor: pointer;}
.appil_back_but:hover { background: url("/common/img/apil-back.jpg") no-repeat left bottom;}
.appil_print_but { border: none !important; background-color: none !important; background: url("/common/img/apil-print.jpg") no-repeat left top; height: 44px !important; width: 107px !important; cursor: pointer;}
.appil_print_but:hover { background: url("/common/img/apil-print.jpg") no-repeat left bottom;}
#block_change_pass { margin-top: 10px; }
#block_change_pass .reg_tbl .td1 { font-size: 14px; }
#block_change_pass .reg_tbl .td2 input, .reg_tbl .td2 select { width:255px; }
#cboxClose {right: 9px !important; top: 9px !important;}
#cboxMiddleRight {display:none !important;}
#cboxTopRight {display:none !important;}
#cboxTopLeft {display:none !important;}
#cboxTopCenter {display:none !important;}
#cboxMiddleLeft {display:none !important;}
#cboxBottomLeft {display:none !important;}
#cboxBottomCenter {display:none !important;}
#cboxBottomLeft {display:none !important;}
#cboxContent { padding-top:10px !important; border-radius:0px !important;}
#inline_content {padding:58px; padding-top:34px; padding-bottom:0px; background:#fff; font-size:14px; width:810px; height:auto;}
.banner {/*border-radius: 10px; overflow: hidden;*/ margin: 4px 0 30px 31px;}
/* =============================================== SLIDER ================================================*/
ul.slider {list-style:none; padding:0 0 10px 0px;}
ul.slider li {padding:0 0 15px 0px; background:none;}
ul.slider li .a_first {background:url(/common/img/img_2013/slider_str.gif) no-repeat 97% 21px #f2f2f2; color:#303133; text-decoration:none; font-weight:bold; text-transform:uppercase; padding:17px 40px 17px 20px; display:block;}
.GIA ul.slider li .a_first {background:url(/common/img/img_2013/slider_str.gif) no-repeat 97% 21px #f2f2f2;}
ul.slider li.activ .a_first {background:url(/common/img/img_2013/slider_str.gif) no-repeat 97% -97px #0071bb; color:#fff;}
.GIA ul.slider li.activ .a_first {background:url(/common/img/img_2013/slider_str.gif) no-repeat 97% -97px #ff8e00;}
ul.slider p {padding-bottom:0px;}
.slider_div {background:#f2f2f2; padding:26px 20px 40px 20px; margin-bottom:0px;}
ul.slider li ul {list-style:none; padding:0 0 7px 10px;}
ul.slider li ul li {padding:0 0 5px 20px; background:url(/common/img/bul_2.gif) no-repeat left 5px;}
/* =============================================== LIST ================================================*/
.list_links {}
.list_links .div1 {position:absolute; left:105px; top:18px; width:245px; height:65px;}
.list_links a .div1{background:none; display:block; }
.list_links a:hover .div1{background:url("/common/img/ege_new/doska_menu_ege.gif") no-repeat left top}
.list_links .div2 {position:absolute; left:47px; top:62px; width:253px; height:67px;}
.list_links a .div2{background:none; display:block; }
.list_links a:hover .div2{background:url("/common/img/ege_new/doska_menu_rasp.gif") no-repeat 53px top}
.list_links .div3 {position:absolute; left:113px; top:118px; width:290px; height:50px;}
.list_links a .div3{background:none; display:block; }
.list_links a:hover .div3{background:url("/common/img/ege_new/doska_menu_consult.gif") no-repeat left top}
.list_links .div4 {position:absolute; left:51px; top:155px; width:296px; height:70px;}
.list_links a .div4{background:none; display:block; }
.list_links a:hover .div4{background:url("/common/img/ege_new/doska_menu_vote.gif") no-repeat 46px top}
/* =============================================== Regions ================================================*/
a.regions {color: #0071bb; position:absolute; left:31px; width: 80px; text-align: left; top:14px; font-size:12px; display:inline-block; text-decoration:underline; /*background: url("/common/img/img_2013/str_blue2.gif") no-repeat right 4px;*/ line-height: 12px;}
a.regions:hover {color:#0071bb; text-decoration:none;}
/* =============================================== Navigation ================================================*/
.page-num {padding-top:10px; height:40px;}
.page-num .nums {float:left; padding-right: 4px;}
.page-num .nums a {display:inline-block; padding:3px 7px;}
.page-num .nums a:hover {background:#1989d3; color:#fff;}
.page-num .nums span {display:inline-block; padding:3px 6px; background:#0071BB; color:#fff;}
/* =============================================== Search ================================================*/
.search_top {padding-bottom:20px;}
.search_top .inp {width: 350px; float:left; margin-right:10px;}
.mt_left_item {padding-bottom:10px;}
/* =============================================== main_feedback ================================================*/
.main_feedback {}
.main_feedback .div12 {float:left; padding:0 20px 15px 0; width:350px;}
.main_feedback .div1 {padding-bottom:5px;}
.main_feedback .div2 .inp {width:320px;}
.main_feedback .div2 .sel_cont {width:340px; padding-right:3px;}
.main_feedback .div2 .tarea1 {width:693px; min-height:295px}
.item_quest {background:none; font-size:14px; height:auto; padding: 34px 0 0 90px; width:810px;}
.attach_txt {font:11px arial; color:#747474; padding-right:110px}
.attach_button {float:left; padding-right:10px}
/* =============================================== creative ================================================*/
.creative {position:fixed; bottom:0; width:100%; z-index:1000;}
.creat_1 {border-top:1px solid #93e739; border-bottom:1px solid #489e1c; background:#74c82d; height:1px; position:relative; cursor:pointer;}
.creat_1 .div1 {width:52px; height:17px; background:url(/common/img/ege_new/str_top_5.png) no-repeat left top; position:absolute; bottom:2px; left:50%; margin-left:-26px;}
.creat_1 .div2 {background:url(/common/img/ege_new/str_top_6.png) no-repeat left top;}
.creat_2 {height:595px; display:none; background:#000; position:relative;
-ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=65)";
filter: alpha(opacity=65);
opacity: 0.65;
}
.creat_3 {height:504px; width:933px; background:url(/common/img/ege_new/creative_img1.png) no-repeat center center; position:absolute; top:40px; left:50%; margin-left:-467px; }
.creat_3 .btn1 {height:69px; width:165px; background:url(/common/img/ege_new/creative_btn1.png) no-repeat left top; position:absolute; top:292px; left:298px;}
.creat_3 .btn1:hover {background:url(/common/img/ege_new/creative_btn1a.png) no-repeat left top;}
.creat_3 .btn2 {height:69px; width:165px; background:url(/common/img/ege_new/creative_btn2.png) no-repeat left top; position:absolute; top:292px; left:473px;}
.creat_3 .btn2:hover {background:url(/common/img/ege_new/creative_btn2a.png) no-repeat left top;}
.creat_3 .creat_close {background:url("images/close.png") no-repeat center center; height:25px; width:25px; position:absolute; top:10px; right:10px; z-index:1010;}
.creat_4 {background:url(/common/img/ege_new/creative_img2.png) no-repeat center center;}
.creat_4 .btn1 {display:none;}
.creat_4 .btn2 {display:none;}
.creat_4 .creat_close {top:20px;}
.creat_5 {background:url(/common/img/ege_new/creative_img3.png) no-repeat center center;}
.creat_5 .btn1 {display:none;}
.creat_5 .btn2 {display:none;}
.creat_5 .creat_close {top:10px;}
.but_main {}
.EGE .client_top .client_top_enter a{}
#print a{color:#000; text-decoration:none; cursor:inherit;}
#print .main_top {background:none; padding-bottom: 20px;}
#print #content, #print #footer {width:940px; padding-left:31px; padding-right:29px;}
#print .logo_new {background: url("/common/img/img_2013/logo_print.gif") no-repeat 0px 45px;}
#print .logo_new .logo_text {left:169px}
#print .slider a{font-weight:bold; font-size:14px;}
#print #footer a{color: #747474; text-decoration:none; cursor:inherit;}
#print #footer .div_right{display:none}
#print #footer .fot_line {display:none;}
#print .print_line {float:right; width:240px; padding:45px 15px 0 0}
#print .print_line a{font:15px arial}
#print .print_line a:hover{text-decoration:underline; cursor:pointer}
#print .print_line .print_up{float:left;}
#print .print_line .print_up a{float:left; background:url(/common/img/ege_new/print.gif) no-repeat left top; padding:2px 0 0 25px }
#print .print_line .close_up{float:right; padding:2px 0 0 0px}
#print #footer {border-top: 1px solid #000; background:none;}
#print #footer .div1 {color: #000000;}
#print .table_block {background:none; border-radius:0px; margin-bottom: 15px; padding:0px;}
#print .table th {background:#d0d0d0; font-size: 12px;}
#print .ege_rezult_b_nb .td3nm {text-align: center;}
#print #footer .new_st_kn2 {background: #CCCCCC; color:#fff;}
#print #footer .new_st_kn2:hover {background: #CCCCCC; color:#fff; cursor: inherit;}
#print .main_lnk_tbl {display:none;}
#print.GIA .logo_new {background: url("/common/img/img_2013/logo_gia_print.gif") no-repeat 0px 45px;}
#print.GIA .logo_new .logo_text {left: 210px;}
.yellow {color:#e2b322 !important;}
.content .link_doc {background:url(/common/img/ico_word.gif) no-repeat left top; padding: 5px 0 0 30px;}
.result_page {padding-top:0px; position:absolute; left: 0; top: 320px;}
.result_page .img_exam {float:left; padding:0 30px 10px 0}
.result_page .tit_exam{font:24px arial; color:#1f262d; padding:0px 0 10px 0 }
.result_page .link_exam a {font:17px;}
.head_tt2nm_pos {position:relative;}
h1.head_tt2nm {border-bottom:1px solid #e3e3e3; padding-bottom:7px; margin-bottom:12px;}
.result_page2nm {padding-top:0px; position:absolute; right: 0px !important; left: auto; top: -5px;}
.result_page2nm .img_exam {float:left; padding:0 30px 10px 0}
.result_page2nm .tit_exam{font:24px arial; color:#1f262d; padding:0px 0 10px 0 }
.result_page2nm .link_exam a{font:17px arial; color:#469b1b}
.infa_rzo_div {border:1px solid #DAE1F7; background:#F2F2F2; padding:10px 10px; position:relative; margin-bottom: 20px; min-height:13px}
.infa_rzo_div_tel {position:absolute; top:-1px; right:-1px; color:#5f4141; font-size:12px; background:url(/common/img/backgr_tel_rzo.png) no-repeat left top;
width:240px; line-height: 12px; padding:2px 0px; text-align:center; height:29px;}
.infa_rzo_div_tel span {display:block; color:#d64747; font-size:14px; font-weight: bold; padding-top: 3px;}
.infa_rzo_div_tit {color:#d64747; font-size:14px; padding-bottom:10px; line-height: 14px; font-weight: bold;}
.infa_rzo_div_text {color:#1b1d1b; font-size:12px; line-height: 16px;}
.infa_rzo_div1 .infa_rzo_div_tel {display:none}
.infa_rzo_div2 {border:none; background:none;}
.infa_rzo_div2 .infa_rzo_div_tit {display:none}
.infa_rzo_div2 .infa_rzo_div_text {display:none}
.infa_rzo_div3 {display:none}
.check_res {width:100%}
.check_res .check_left {width:170px; vertical-align: middle; font:21px; color:#1f262d; padding-right:10px}
.check_res .check_right {padding:10px 0px; width: 390px;}
.check_res .check_right input{
/*height:25px; */
font-size: 24px;
width:448px;
border:1px solid #c7c8ca;/*#dfe0e0; */
padding:1px 5px;
/*border-radius: 8px;*/
background: #f7f8f8;
}
.check_res .check_right input#login_code,
.check_res .check_right input#login_doc_number{
width:175px;
}
.fields_2{
width:460px;
}
.fields_2 .fields_td{
width:175px;
vertical-align: bottom;
text-align: left;
}
.fields_2 .delimeter {
text-align: center;
vertical-align: middle;
text-transform: uppercase;
color: #6d6e71;
font-weight: bold;
font-size: 22px;
}
.field_label{
font-size: 15px;
color: #6d6e71;
padding-bottom: 10px;
}
.check_res .check_right input.auth_submit{
float: right;
color: #f3f3f4;
background: #727376;
text-transform: capitalize;
width: auto;
padding: 5px 10px;
font-size: 30px;
cursor: pointer;
}
.check_res .check_right input.auth_submit:hover{
background: #828386;
}
/*.check_res .check_right input#login_doc_number{
float: right;
margin-right: 26px;
}*/
.check_res .check_right select{
padding: 3px 5px;
width: 460px;
border:1px solid #dfe0e0;
/*border-radius: 8px;*/
background: #f7f8f8;
font:16px arial;
color:#242525;
font-size: 14px;
}
.check_res .chek16 {padding-top: 14px;}
#divvote16 {padding: 10px;width: 550px;}
.hiddenvote16 {display: none;position: relative;}
.check_res16 {}
.check_res16 .check_res {width: 550px;}
.check_res16 .check_left {padding-left: 30px;}
.label16 {font-size: 20px;padding-bottom: 15px;}
.btn_kod16 {font-size: 15px; height: 44px; width: 228px;}
.getkod16 {padding-left: 170px;padding-top: 10px;padding-bottom: 30px;}
.txt_kod16 {font-size: 15px;padding-left: 115px;padding-bottom: 15px;}
.txt_kod16 .txt16_2 {color: red; font-weight: bold;}
.txt_dang {font-style: italic;font-size: 12px;padding-left: 30px;padding-right: 30px;}
.borderkod16 {border: 1px solid #ccc; padding-bottom: 15px;}
.check_res16 .check_right {width: 200px;}
.check_res16 .check_left {width: 100px;}
.look {
background: url("/common/img/look_but.gif") no-repeat left bottom;
float: right;
height: 44px;
margin: 15px 104px 0 0;
width: 147px;
}
.look:hover {
background: url("/common/img/look_but.gif") no-repeat left top;
float: right;
height: 44px;
margin: 15px 104px 0 0;
width: 147px;
cursor:pointer;
}
.look2nm {float: left; margin: 15px 104px 0px 160px;}
.look2nm:hover {float: left; margin: 15px 104px 0px 160px;}
.look4nm {float: left; margin: 15px 104px 0px 182px;}
.look4nm:hover {float: left; margin: 15px 104px 0px 182px;}
/* карты округов */
#tooltip {
background: #ec1c24;
position: absolute;
z-index: 3000;
color:#fff !important;
padding: 11px 14px;
font-size:14px;
/*height:14px;*/
/*overflow:hidden;*/
box-shadow: none;
}
#tooltip .url {display:none !important;}
#tooltip:before {
left:135px;
bottom:-26px;
content:"\2666";
font-family: monospace;
font-size:50px;
line-height:52px;
text-align:center;
position:absolute;
overflow:hidden;
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
clip: rect(26px, 15px, 38px, 0px);
color:#ec1c24;
}
#tooltip h3 {
color:#fff !important;
font-size:14px;
padding:0px;
font-family: verdana;
line-height: 14px;
}
.none_reg_d {
display:none !important;
}
/* карты округов */
.karta_russia {
padding-top:10px;
padding-left:95px;
BACKGROUND: #fff;
}
.maps div {
background: url(/common/upload/img/bg_maps.png);
width: 640px;
height: 320px;
margin-bottom: 20px;
}
.maps table {
width: 630px;
}
.maps table td {
padding: 0 12px;
border: 0;
}
.maps h2 {
margin: 9px 0 4px 0;
font-weight: bold;
}
.maps p {
margin: 0 0 14px 0;
}
/* /карты округов */
/* регионы */
.regions table td {
border: 0;
}
.regions div {
margin-bottom: 25px;
}
.regions td {
width: 200px;
}
.regions p {
margin: 0 0 7px 0;
}
/* /регионы */
/* форма обратной связи */
.form table td {
border: 0;
padding: 5px 10px 0 10px;
}
.form {
background-color: #e5e5e5;
margin-bottom: 15px;
padding: 9px 20px 24px 24px;
}
.form td {
padding: 5px 10px 0 10px;
}
.form td span {
display: block;
margin-top: 5px;
}
.form .inp {
width: 500px;
font: 100% Arial, sans-serif;
padding: 3px;
}
.form .ta {
width: 500px;
font: 100% Arial, sans-serif;
padding: 3px;
}
.form .sel {
font: 100% Arial, sans-serif;
padding: 3px;
}
/* /форма обратной связи */
/* карта */
.terr {
position: absolute;
margin: 0 0 0 25px;
}
#regions {
width:570px;
background:url(/common/img/russia.gif) no-repeat;
margin-left: 5px;
}
#russia {
width:570px;
background:url(/common/img/act.gif) no-repeat;
}
.map {
background-position: 3000px 0 !important;
}
.o-sz {
background-position: 0px 1px !important;
-ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
opacity: 0.8;
}
.o-c {
background-position: -2140px -1px !important;
-ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
opacity: 0.8;
}
.o-p {
background-position: -2656px 4px !important;
-ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
opacity: 0.8;
}
.o-y {
background-position: -3234px 1px !important;
-ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
opacity: 0.8;
}
.o-k {
background-position: -3805px 0 !important;
-ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
opacity: 0.8;
}
.o-s {
background-position: -1049px 2px !important;
-ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
opacity: 0.8;
}
.o-u {
background-position: -525px 1px !important;
-ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
opacity: 0.8;
}
.o-d {
background-position: -1573px -2px !important;
-ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
opacity: 0.8;
}
#cluetip-close img {
border: 0;
display:none
}
#cluetip-title {
overflow: hidden;
text-align:center;
}
#cluetip-title #cluetip-close {
float: right;
position: relative;
}
#cluetip-extra {
display: none;
}
.cluetip-default {
background: #fff;
opacity: 1;
filter: alpha(opacity=100);
border-radius: 15px;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
-khtml-border-radius: 15px;
width: 600px !important;
left:100px !important;
}
.cluetip-default li {
padding:5px 0
}
.cluetip-default #cluetip-outer {
position: relative;
margin: 0;
height:380px !important;
padding-left:0px;
}
.cluetip-default h3#cluetip-title {
padding-bottom:24px;
font-size: 24px;
font-weight: bold;
color: #303133;
text-transform: uppercase;
}
.cluetip-default #cluetip-title a {
font-size: 14px;
}
.cluetip-default #cluetip-inner {
padding: 0;
font-size: 12px;
line-height: 14px;
}
.cluetip-default #cluetip-inner a {
color:#303133;
font:14px;
text-decoration:underline;
}
.cluetip-default #cluetip-inner a:hover {
color:#0772ba;
text-decoration:underline;
}
.cluetip-default div#cluetip-close {
text-align: right;
margin: 0 5px 5px 0;
}
.cluetip-default #cluetip-inner table {
margin-left: 0px !important;
}
.cluetip-default #cluetip-inner table td {
width: 300px !important;
padding-right: 0px;
}
.cluetip-default #cluetip-inner table td ul {
margin: 0;
padding:0;
}
.cluetip-default #cluetip-inner table td ul li {
margin: 0;
padding:0px;
background:0;
font-size:14px;
line-height:16px;
}
.cluetip-default #cluetip-inner table td ul li a {padding:4px 0px 5px 18px; background:0; background:none; display:inline-block;}
.cluetip-default #cluetip-inner table td ul li a:hover {background:url(/common/img/img_2013/regions_li_ege.gif) no-repeat left 5px;}
/* /карта */
/*=================================== login ===============================*/
.login_worker{}
.login_worker .td1{width:150px; font-size:21px; padding-top:6px; padding-bottom:22px;}
.login_worker .td2 input{width:391px; border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:5px}
.login_worker .td2 select{width:405px; border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:5px;}
.login_worker .login_worker_bottom {background:url("/common/img/login_worker_submit.gif") no-repeat left top; border: none; height: 44px; width: 95px; cursor:pointer}
.login_worker .login_worker_bottom:hover {background:url("/common/img/login_worker_submit.gif") no-repeat left bottom;}
/*============================== appil ====================================*/
.poisk_appil {font-size:14px; margin-bottom:18px}
.poisk_appil .td1{width:50px; padding-top:9px; padding-left:100px}
.poisk_appil .td2 input{border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:5px; width:200px; margin-top: 3px; color:#000;}
.poisk_appil .td3 select{border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:4px; width:200px; margin-left:10px; margin-top: 3px; color:#000;}
.poisk_appil .login_worker_poisk{background:url("/common/img/login_worker_poisk2.png") no-repeat left top; border: none; height: 38px; width: 86px; cursor:pointer; margin-left:10px;}
.appil_resultat {width:100%; /*text-align:center;*/}
.appil_resultat th{background:#dae1f7; padding:11px 19px 11px 19px; border:1px solid #a9abad; font-weight: normal; text-align:center;}
.appil_resultat .th1{ padding: 6px 15px 15px;}
.appil_resultat td{background:#fff; text-align:left; padding:10px 19px; border:1px solid #a9abad; text-align:center;}
.appil_resultat td.td1nm_kriter,
.appil_resultat td.td2nm_kriter,
.appil_resultat td.td3nm_kriter{
padding: 5px 5px;
height: auto;
border-top: 0;
border-bottom: 0;
}
.appil_resultat td.td2nm,
.appil_resultat td.td3nm,
.appil_resultat td.td1{
border-bottom: 0;
}
.ege_rezult_b .td3nm{
font-size: 15px;
}
.appil_resultat .alt th{
/*font-size: 15px;*/
font-weight: bold;
}
.appil_resultat .td_last{}
.appil_resultat .appil_tab_a {padding:4px}
.appil_resultat .appil_tab_a:hover {padding:3px; background:#fff; /*border-radius:5px;*/ text-decoration:none; border:1px solid #000}
.poisk_appil_bottom td {padding-right:10px}
.page_bottom_nums {width:100%}
.page_bottom_nums .td2 img{padding-top:10px; right:0px; position: absolute;}
.appil_table_block {/*background: #92e639; border-radius: 10px 10px 10px 10px; margin-bottom: 15px; padding: 6px 0;*/}
.appil_prew {background:url("/common/img/appil_prew.png") no-repeat left top; width:95px; height:44px; display:block; cursor: pointer;}
.appil_prew:hover {background:url("/common/img/appil_prew.png") no-repeat left bottom;}
.appil_new {background:url("/common/img/appil_new.png") no-repeat left top; width:193px; height:44px; display:block; cursor: pointer;}
.appil_new:hover {background:url("/common/img/appil_new.png") no-repeat left bottom;}
.appil_open {background:url("/common/img/appil_open.png") no-repeat left top; width:213px; height:44px; display:block; border: none; cursor: pointer;}
.appil_open:hover {background:url("/common/img/appil_open.png") no-repeat left bottom;}
.appil_expor {background: url("/common/img/appil_expor.png") no-repeat left top; width:120px; height:48px; display:block; border: none; cursor: pointer;}
.appil_expor:hover {background:url("/common/img/appil_expor.png") no-repeat left bottom;}
/*================================ appil new =====================================*/
.div_border {padding:15px 30px; padding-bottom:20px; border:2px solid #dcdcdc; /*border-radius:5px;*/ margin-bottom:15px}
.div_border .applicant {width:100%; font-size:16px}
.div_border .applicant td{padding-right:5px; padding-top:7px; font-size: 15px; font-weight: bold;}
.div_border .applicant td input{border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:3px; padding-left:8px; width:185px; color:#000;}
.div_border .applicant td input:disabled {background:#d0d0d0;}
.div_border .applicant td select:disabled {background:#d0d0d0;}
.div_border .red_sp {color:red}
.div_border .black_sp {font-size:18px; font-weight: bold; padding-bottom:5px; display:block}
.div_border .docs {width:100%; font-size:16px}
.div_border .docs td{padding-right:5px; padding-top:5px}
.div_border .docs td input{border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:3px; padding-left:8px; width:298px; color:#969797}
.div_border .educational {width:100%; font-size:16px}
.div_border .educational td {padding-right:5px; padding-top:7px; font-size:15px; font-weight: bold;}
.div_border .educational td input {border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:3px; padding-left:8px; width:298px; font-weight: normal; color:#000;/*969797*/}
.div_border .educational td input:disabled {background:#d0d0d0;}
.div_border .educational td select:disabled {background:#d0d0d0;}
.div_border .educational td .apel_new_in_nm .input_chx_kv:disabled {background:#d0d0d0;}
.div_border .educational td select {border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:2px; padding-left:8px; width:315px; font-weight: normal; color:#000}
.div_border .educational .td3 {padding-top:10px; padding-left:10px;}
.div_border .educational .td3 input {width:15px; margin-left:5px; padding:0px; backgroun:none margin-top:3px; border-radius:none}
.div_border .educational .td3 span{position: absolute;}
#set-new-appil .div_border {padding:15px 30px; padding-bottom:20px; border:2px solid #dcdcdc; /*border-radius:5px;*/ margin-bottom:15px}
#set-new-appil .div_border .applicant {width:100%; font-size:16px}
#set-new-appil .div_border .applicant td{padding-right:5px; padding-top:7px; font-size: 15px; font-weight: bold;}
#set-new-appil .div_border .applicant td input{border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:3px; padding-left:8px; width:185px; color:#000}
#set-new-appil .div_border .applicant td select {color:#000;}
#set-new-appil .div_border .red_sp {color:red; font-size: 16px;}
#set-new-appil .div_border .black_sp {font-size:18px; font-weight: bold; padding-bottom:5px; display:block}
#set-new-appil .div_border .docs {width:100%; font-size:16px}
#set-new-appil .div_border .docs td{padding-right:5px; padding-top:5px}
#set-new-appil .div_border .docs td input{border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:3px; padding-left:8px; width:298px; color:#000}
#set-new-appil .div_border .docs td select {color:#000;}
#set-new-appil .div_border td input:disabled {background:#d0d0d0;}
#set-new-appil .div_border td select:disabled {background:#d0d0d0;}
#set-new-appil .div_border td .apel_new_in_nm .input_chx_kv:disabled {background:#d0d0d0;}
#set-new-appil .div_border .educational {width:100%; font-size:16px}
#set-new-appil .div_border .educational td{padding-right:5px; padding-top:7px; font-size: 15px; font-weight: bold;}
#set-new-appil .div_border .educational td input {border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:3px; padding-left:8px; width:298px; color:#000}
#set-new-appil .div_border .educational td select {border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:2px; padding-left:8px; width:315px; color:#000}
#set-new-appil .div_border .educational .td3 {padding-top:10px; padding-left:10px;}
#set-new-appil .div_border .educational .td3 input {width:15px; margin-left:5px; padding:0px; backgroun:none margin-top:3px; border-radius:none}
#set-new-appil .div_border .educational .td3 span{position: absolute;}
#set-new-appil .div_border .educational td input:disabled {background:#d0d0d0;}
#set-new-appil .div_border .educational td select:disabled {background:#d0d0d0;}
#set-new-appil .div_border .educational td .apel_new_in_nm .input_chx_kv:disabled {background:#d0d0d0;}
.div_border .educational td .app_w_err_red .apel_new_in_nm input {/*border:1px solid red !important;*/}
.div_border .educational td .apel_new_in_nm .app_w_err_red_sp {display:block; float:left;}
.div_border .educational td .apel_new_in_nm .div_chexb_pd {padding-left:5px; float:left; line-height: 13px;}
.div_border .educational td .app_w_err_red .apel_new_in_nm .app_w_err_red_sp {border:1px solid red !important;}
.new_appel_save {background:url("/common/img/new_appel_save.gif") no-repeat left top; width:137px; height:44px; display:block; border:none; cursor:pointer;}
.new_appel_save:hover {background:url("/common/img/new_appel_save.gif") no-repeat left bottom;}
.new_appel_epz {background:url("/common/img/new_appel_epz.gif") no-repeat left top; width:155px; height:44px; display:block; margin-left:10px}
#appel_epz a { display: inline-block; margin-right: 20px; }
.new_appel_epz:hover {background:url("/common/img/new_appel_epz.gif") no-repeat left bottom;}
.new_appel_print {background:url("/common/img/new_appel_print.gif") no-repeat left top; width:112px; height:44px; display:block; margin-left:10px}
.new_appel_print:hover {background:url("/common/img/new_appel_print.gif") no-repeat left bottom;}
.appil_prew {background:url("/common/img/appil_prew.png") no-repeat left top; width:95px; height:44px; display:block; position:absolute; right:0px;}
.appil_prew:hover {background:url("/common/img/appil_prew.png") no-repeat left bottom;}
.line_apill {border-bottom:none; height: 10px; font-size: 24px; margin-bottom: 20px; padding-top:5px; position: absolute; right: 0; top: -2px; font-family: calibri;}
.appil_history {padding-bottom:10px}
.appil_a_strukture {padding:10px 0px}
.appil_a_strukture_fl_r {float:right;}
.appil_a_strukture a {display:block; float:left; text-decoration:underline}
.appil_a_strukture a:hover {text-decoration:none}
.appil_a_strukture span{color: #0071BB; display: block; float: left; font: bold 30px trebuchet MS; margin-top: -17px;}
/* .ege_rezult_name{background:#92E639; height:20px; padding-left:5px; color:#fff; font-size: 14px; padding-top: 2px;} */
.ege_rezult_a td{width:26px; height:18px; text-align:center; padding: 0px; font-size: 13px; padding: 3px 3px;}
.ege_rezult_b {width:100%}
.ege_rezult_b td{height:18px; text-align:left; padding-left:10px; padding-right:10px}
.ege_rezult_b .td1 {width:6px; text-align:center;}
/*================================= appil buttom =============================*/
.appil_add_but {background: url("/common/img/appil_add.png") no-repeat left top; display: block; height: 44px; width: 220px; border:none;}
.appil_add_but:hover { background: url("/common/img/appil_add.png") no-repeat left bottom;}
.appil_add_but:disabled {cursor: default; opacity: 0.8; background: url("/common/img/appil_add.png") no-repeat left top;}
.appil_add_but_grey {background: url("/common/img/appil_add_grey.png") no-repeat left top; display: block; height: 44px; width: 220px; border:none; cursor: default;}
.appil_history_but {background: url("/common/img/appil_history.png") no-repeat left top; display: block; height: 44px; width: 220px;}
.appil_history_but:hover { background: url("/common/img/appil_history.png") no-repeat left bottom;}
.appil_cansel_but {background: url("/common/img/appil_cansel.png") no-repeat left top; display: block; height: 44px; width: 220px;}
.appil_cansel_but:hover { background: url("/common/img/appil_cansel.png") no-repeat left bottom;}
.appil_buttom_da {background: url("/common/img/buttom_da.png") no-repeat left top; display: block; height: 44px; width: 67px; float:left}
.appil_buttom_da:hover { background: url("/common/img/buttom_da.png") no-repeat left bottom;}
.appil_buttom_net {background: url("/common/img/buttom_net.png") no-repeat left top; display: block; height: 44px; width: 67px; margin-left:90px;}
.appil_buttom_net:hover { background: url("/common/img/buttom_net.png") no-repeat left bottom;}
#inline_content2 {padding:20px; padding-bottom:0px;}
#inline_content2 .text_inline_content2{padding-left:16px; font-size:20px; font-weight: bold;}
.new_text_okno {padding:30px; font-size:16px; font-weight: bold;}
/*=============================== likes ================================*/
.likes_div {padding:5px 0px; padding-bottom:10px}
.likes_div .fb_but {padding-right:30px;}
.likes_div .tweet_but {padding-right:30px;}
.likes_div .vk_but {}
/*================================= comment_comment =========================*/
.comment_add textarea {width:660px}
.comment_name_title {border-bottom: 1px solid #E3E3E3; font-style: normal; padding: 10px 10px 10px 0px; margin-left:0px; margin-bottom:20px; text-transform: uppercase;}
.comment_add {margin-bottom:20px; }
.comment_item {position:relative; padding:10px; padding-bottom:0px}
.comment_data { display: inline-block; color:#fff; margin-bottom: 6px; margin-right: 20px; padding: 2px 6px; background:#0071BB;}
.name_img {padding-bottom:5px; padding-left:6px}
.name_img img{width:25px; height:25px}
.comment_name {position:absolute; left: 51px; top: 44px;}
.comment_anons {padding: 0 19px 0px 6px;}
.comment_buttom {background:url("/common/img/ege_new/comment_buttom.png") no-repeat left top; width:120px; height:29px; border:none; margin-top:10px; cursor:pointer}
.alert { padding: 18px 0 0 150px; font:16px Trebuchet MS; font-weight:bold; color: #df0821; }
.good-request { font:16px Trebuchet MS; font-weight:bold; color: #348b00; }
p.good-request { width: 290px; display: inline-block; line-height: 12px; }
#send_pass { width: 80px; height: 30px; background: url(/common/img/btn_submit.png) no-repeat 0 0 !important; border: none; margin-left: 10px; font-size:0px; margin-top: 10px;}
#answer_serv { font-size: 11px; font-weight: 900; }
#answer_serv .good { color: #348b00; }
#answer_serv .wrong { color: #df0821; }
/*================================= proc =========================*/
.proc_op_1 {padding:90px 14px 30px 35px; font-size:12px; width: 525px;}
.proc_select {position:absolute; right:0; top:38px; width:250px;}
.proc_select .div1 {padding-bottom:10px; font-size:12px;}
.buttom_dem_kim_zad_div {width:400px; padding-top:25px}
.EGE .buttom_dem_kim_zad_sel {width: 165px; display:inline-block; padding:10px 15px 5px 15px; float:left; /*border-radius:10px;*/ font-size:17px; color:#fff; font-weight:bold; text-decoration:none;
box-shadow:2px 2px 4px #828282; position:relative; background:url(/common/img/ege_new/menu2_yell.gif) repeat-x left top #f39a09; color:#fff; z-index:60;}
.EGE .buttom_dem_kim_zad_sel2 {float:right;}
.EGE .buttom_dem_kim_zad_sel:hover {color:#fff; background:url(/common/img/ege_new/menu2_yell2.gif) repeat-x left top #f5a92e;}
/* === ????????? ? ??????? ????????? === */
.table.exp .td1 {vertical-align: middle;}
.table.exp .td2, .table.exp .td3, .table.exp .th2, .table.exp .th3{text-align:center; vertical-align: middle;}
.table.exp .date_ex {padding-right:10px}
.table.exp .name_ex {font-weight:bold}
.table.sett .th2, .table.sett .th3{width:1%; text-align:center;}
.table.sett .th4 {padding-left:40px; width: 255px;}
.table.sett .td1 {vertical-align: middle;}
.table.sett .td2, .table.sett .td3{text-align:center; vertical-align: middle;}
.table.sett .td4{vertical-align: middle; padding: 5px 0;}
.table.sett .td4 input{padding:2px 5px; margin:3px 0}
#wawes {padding-bottom: 15px; padding-left:0}
#wawes {padding-bottom: 15px; padding-left:0}
#wawes ul li {display:inline}
.table.sett .date_ex {padding-right:10px}
.table.sett .name_ex {font-weight:bold}
.table.sett .cal_span1 {padding-right:15px}
.div_apel_fl_red {float:left; padding:6px; background:#f1dbd9; border:1px solid #d8958f; width: 348px; margin-bottom:10px;}
.div_apel_fl_red a {color:#3d5c8a; text-decoration:underline;}
.div_apel_fl_red a:hover {text-decoration:none; color:#3d5c8a;}
.div_resul_pometki {font-style: italic; text-align:right; font-size: 12px;}
.div_resul_pometki12 {padding-right:416px;}
.pometki_red {color:red}
.pometki_green {color:green}
.appil_table_block_new_mar {margin-bottom:6px;}
.div_resul_pometki2 {padding-bottom:3px;}
.appil_resultat th.th_no_b_nm {background:#DAE1F7; border:1px solid #A9ABAD;}
.appil_resultat th.th_no_b_nm2 {background:#DAE1F7; border:1px solid #A9ABAD; padding: 10px 5px 10px;}
.ege_rezult_b_nb td {width:auto;}
.ege_rezult_b_nb td {/*background:#D5E7CF;*/}
.ege_rezult_b_nb .td2nm {text-align:left}
.ege_rezult_b_nb .td2nm .td2nm_kriter {/*padding-bottom:7px;*/ font-style: italic; font-size: 12px; line-height: 14px; color:#0071BB; }
.ege_rezult_b_nb .td2nm .td2nm_kriter span {display:inline-block; font-size: 14px; width:26px;}
.ege_rezult_b_nb .td3nm {text-align:center}
.ege_rezult_b_nb .td3nm .td2nm_kriter {padding-bottom:7px; font-style: italic; color: #0071BB; font-size: 12px; line-height: 14px;}
.ege_rezult_b_nb .td3nm .td3nm_fn_s {font-size:15px;}
.ege_rezult_b_nb .td4nm {text-align:right;}
.ege_rezult_b_nb .th_none_apl_zeb {padding:0px; height:0px;}
.ege_rezult_b_nb .td_w_bol {font-weight: bold; font-size: 15px; color:#0b2302;}
.ege_rezult_b_nb .td_w_bol_text {font-weight: bold; background:#D5E7CF;}
.ege_rezult_b_nb .alt .td_w_bol_text {font-weight: bold; background:#DAE1F7;}
.td2nm .td2nm_kriter:first-child{
/*margin-top: 10px;*/
}
.td3nm .td2nm_kriter:first-child{
/*margin-top: 10px;*/
}
.ege_rezult_b_nb .td15_pr {width:45px;}
.kn_blank_otvet_apel {background:url(/common/img/kn_blank_otvet.png) no-repeat left top; display: inline-block; height: 46px; width: 243px;}
.kn_blank_otvet_apel:hover {background:url(/common/img/kn_blank_otvet.png) no-repeat left -55px;}
.div_border .educational td .apel_new_in_nm {}
.div_border .educational td .apel_new_in_nm .input_chx_kv {width: 14px; /* margin-right: 6px;*/ background:none; padding:0px; border: 1px solid #DCDCDC; border-radius: 0px;}
.knopka_ico_apgek_gray {width:100%; height:29px; background:url(/common/img/ege_new/akt_gek_gray.png) no-repeat center center; cursor:pointer;}
.knopka_ico_apgek_green {width:100%; height:29px; background:url(/common/img/ege_new/akt_gek_blue.png) no-repeat center center; cursor:pointer;}
.knopka_ico_apgek_cl_cl {padding:20px 20px 0px 20px; width:408px;}
.div_border_ap_set .green_sp {font-size:18px; color:green; padding-bottom:10px; display:block; text-align: center; font-weight: bold;}
.div_border_ap_set .blue_sp {color:#0071bb;}
.div_border_ap_set .applicant {width:100%; font-size:16px}
.div_border_ap_set .applicant td {padding-right:5px;}
.div_border_ap_set .applicant td input {border:2px solid #dcdcdc; background:#f3f6f7; /*border-radius:5px;*/ padding:3px; padding-left:8px; width:178px; color:#000; margin-bottom: 12px;}
.div_border_ap_set .applicant .td1 { font-weight: bold; padding-top:3px; padding-bottom:12px;}
.div_border_ap_set .applicant .td1 span {font-weight: normal;}
.div_border_ap_set .applicant .td1 input {width:388px;}
.div_border_ap_set .applicant .td2 {padding-left:5px;}
.div_border_ap_set .applicant .td3 input {width:240px;}
.div_border_ap_set .applicant .td4 input {width:194px;}
.div_border_ap_set .applicant .td4 a {display:block; position:absolute; right:10px; top:3px;}
.div_border_ap_set .applicant .td4 .td4_div {position:relative}
.div_border_ap_set .applicant .td4 img {width:22px;}
.button_ap_mr_div .button_ap_mr { margin-left: 14px;}
.knopka_ico_apgek_cl_cl .new_st_kn {padding: 12px 26px;}
.knopka_ico_apgek_pod {position:relative; /*width:28px; height:34px;*/}
.knopka_ico_apgek_pod_2 {position:relative; width:auto; height:auto;}
.knopka_ico_apgek_pod1 {position:absolute; left:30px; top:36px; display:none; border:1px solid #b6bab3; background:/*#ebf1df*/#dae1f7; padding:5px; font-size:12px; width: 154px;z-index: 101;}
.knopka_ico_apgek_pod2 {position:absolute; left:50%; margin-left:10px; top:0 ; display:none; border:1px solid #b6bab3; background:/*#ebf1df*/#dae1f7; padding:5px; font-size:12px; width: 154px;z-index: 101;}
.knopka_ico_apgek_pod:hover .knopka_ico_apgek_pod1 {display:block}
.appil_a_strukture_div_w {width:500px;}
.appil_a_strukture_div_w_11 {width:100%;}
.div_res_ap_gek_inf {float:right; width: 396px; text-align:right; font-size: 12px; line-height: 16px; padding-right: 6px; padding-top: 26px;}
.div_res_ap_gek_inf a {color:#0070c0;}
.div_res_ap_gek_inf a:hover {color:#0070c0;}
.div_res_ap_gek_inf2 {width: 396px; font-size: 12px; line-height: 16px; padding: 5px 0px 12px 0px;}
.div_res_ap_gek_inf2 a {color:#0070c0; text-align:right;}
.div_res_ap_gek_inf2 a:hover {color:#0070c0;}
.apel_bl_otv_ss a {color: #0070C0; text-decoration:underline;}
.apel_bl_otv_ss a:hover {color: #0070C0; text-decoration:none;}
.table_block .tabl_udal_resul_ap .td2 {width:50px;}
.table_block .tabl_udal_resul_ap .th3 {text-align:left; width:auto;}
.table_block .tabl_udal_resul_ap .td3 {text-align:left; width:auto;}
.table_block .tabl_udal_resul_ap .th4 {text-align:center; width:auto;}
.table_block .tabl_udal_resul_ap .td4 {text-align:center; width:auto;}
.div_border_udal_rez {border:none; padding:0px;}
.div_border_udal_rez select {
background: none repeat scroll 0 0 #F3F6F7;
border: 2px solid #DCDCDC;
/*border-radius: 5px 5px 5px 5px;*/
color: #969797;
padding: 2px 2px 2px 8px;
width: 185px;
color:#000;
}
.div_border_udal_rez .applicant .button {
background: url("/common/img/ege_new/menu2_green.gif") repeat-x scroll left top transparent;
border: medium none;
/*border-radius: 5px 5px 5px 5px;*/
color: #FFFFFF;
cursor: pointer;
font: bold 15px arial;
padding: 7px 15px;
text-decoration: none;
text-shadow: 1px 1px 0 #1F262D;
float: right;
}
.wh_space_now_cs {white-space: nowrap;}
.main_block_menu_apel {height: 25px; border-bottom:none;}
.palk_all {color:#0071bb;}
.main_block_menu_apel a.selected {margin-right:10px; background:#ec1c24;}
.main_block_menu_apel a {
display:inline-block;
padding:14px 22px 12px 22px;
float:left;
font-size:14px;
line-height:14px;
color:#303133;
position:relative;
text-transform: uppercase;
margin-right:7px;
}
.main_block_menu_apel a:hover,
.main_block_menu_apel a.current {
background:#0071bb;
color:#fff;
z-index:55;
}
#main_block_2_body > div{
/*display: none;*/
}
.main_block_menu_apel .a2 {margin-left:10px;}
.main_block_menu_apel .div1 {padding-left:0px; border:none}
.div_border_net_bordera_pad {border:none; padding:0px;}
.div_border_net_bordera_pad .educational td input {width: 350px; margin-bottom:3px;}
.div_border_net_bordera_pad .educational td select {width: 366px; margin-bottom:3px;}
.div_border_net_bordera_pad .green_sp {color:green; display: inline-block; padding: 10px 0px;}
.div_border_net_bordera_pad .blue_sp {color:#0071bb;}
.div_border_net_bordera_pad .gray_sp_text {color:#000;}
.div_border_net_bordera_pad .pods_inp_te {color:#969797; font-size:12px; font-style: italic; line-height: 12px; padding-bottom: 3px;}
.div_border_net_bordera_pad textarea { background: #F3F6F7; border: 2px solid #DCDCDC; /*border-radius: 5px 5px 5px 5px;*/ color: #000;
padding: 3px 3px 3px 8px; width: 640px; height:100px; margin-bottom:3px;}
.ul_menu_apel_all {width: 220px;}
.ul_menu_apel_all li.ico_menu_apel1 { background: url("/common/img/ico_menu_apel.png") no-repeat left 4px; border-top: 1px solid #A5A5A5; padding-top: 3px;}
.ul_menu_apel_all li.ico_menu_apel1_b {border:none;}
.ul_menu_apel_all li.ico_menu_apel2 { background: url("/common/img/ico_menu_apel.png") no-repeat left -85px;}
.ul_menu_apel_all li.ico_menu_apel_d { background: url("/common/img/ico_doc_ap.gif") no-repeat 3px 2px;}
.ul_menu_apel_all12 {width: 226px;}
.content .ul_menu_apel_all13 {width:auto; padding:0px 0px 5px 0px;}
.content .ul_menu_apel_all13 li {background:none; padding-left:0px;}
.kn_grenn_m_b {margin-bottom:10px;}
.kn_grenn_m_r {margin-right:10px;}
.kn_grenn_iskat { background: url("/common/img/mnog_knop_ap.png") no-repeat -146px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 105px; }
.kn_grenn_iskat:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -146px -57px;}
.kn_grenn_ochistit {background: url("/common/img/mnog_knop_ap.png") no-repeat left top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 128px; }
.kn_grenn_ochistit:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat left -57px;}
.kn_grenn_new_user {background: url("/common/img/mnog_knop_ap.png") no-repeat -280px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 214px; }
.kn_grenn_new_user:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -280px -57px;}
.kn_grenn_edit_user {background: url("/common/img/mnog_knop_ap.png") no-repeat -514px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 162px; }
.kn_grenn_edit_user:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -514px -57px;}
.kn_grenn_edit_delete_user {background: url("/common/img/mnog_knop_ap.png") no-repeat -1039px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 110px;}
.kn_grenn_edit_delete_user:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -1039px -57px;}
.kn_grenn_edit_save {background: url("/common/img/mnog_knop_ap.png") no-repeat -1167px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 126px;}
.kn_grenn_edit_save:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -1167px -57px;}
.kn_grenn_edit_back {background: url("/common/img/mnog_knop_ap.png") no-repeat -1321px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 96px;}
.kn_grenn_edit_back:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -1321px -57px;}
.kn_grenn_edit_show {background: url("/common/img/mnog_knop_ap.png") no-repeat -1438px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 118px;}
.kn_grenn_edit_show:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -1438px -57px;}
.kn_grenn_edit_dobav {background: url("/common/img/mnog_knop_ap.png") no-repeat -906px top !important; border: none !important;
cursor: pointer; display: inline-block; height: 44px; width: 122px !important; padding:0px !important;}
.kn_grenn_edit_dobav:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -906px -57px !important;}
.kn_grenn_edit_dobav_right {float:right; margin-top:10px;}
.kn_grenn_edit_delete_spisok {background: url("/common/img/mnog_knop_ap.png") no-repeat -692px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 192px;}
.kn_grenn_edit_delete_spisok:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -692px -57px;}
.kn_grenn_edit_scrut_rezul_uchast {background: url("/common/img/kn_grenn_edit_scrut_rezul_uchast.png") no-repeat left top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 309px;}
.kn_grenn_edit_scrut_rezul_uchast:hover {background: url("/common/img/kn_grenn_edit_scrut_rezul_uchast.png") no-repeat left -64px;}
.kn_grenn_edit_scrut_rezul_uchast2 {background: url("/common/img/kn_grenn_edit_scrut_rezul_uchast2.png") no-repeat left top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 215px;}
.kn_grenn_edit_scrut_rezul_uchast2:hover {background: url("/common/img/kn_grenn_edit_scrut_rezul_uchast2.png") no-repeat left -64px;}
.kn_grenn_pokazat {background: url("/common/img/mnog_knop_ap.png") no-repeat -1438px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 127px;}
.kn_grenn_pokazat:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -1438px -57px;}
.kn_grenn_edit_apil_otmena {background: url("/common/img/apil_otmena.png") no-repeat left top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 114px;}
.kn_grenn_edit_apil_otmena:hover {background: url("/common/img/apil_otmena.png") no-repeat left -54px;}
.kn_grenn_edit_ok {background: url("/common/img/kn_grenn_edit_ok.png") no-repeat left top; border: none;
cursor: pointer; display: inline-block; height: 31px; width: 48px;}
.kn_grenn_edit_ok:hover {background: url("/common/img/kn_grenn_edit_ok.png") no-repeat left -35px;}
.kn_grenn_edit_seting {background: url("/common/img/kn_grenn_edit_seting.png") no-repeat left top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 137px;}
.kn_grenn_edit_seting:hover {background: url("/common/img/kn_grenn_edit_seting.png") no-repeat left -52px;}
.kn_grenn_edit_delit {background: url("/common/img/kn_grenn_edit_delit.png") no-repeat left top; border: none;
cursor: pointer; display: inline-block; height: 29px; width: 76px;}
.kn_grenn_edit_delit:hover {background: url("/common/img/kn_grenn_edit_delit.png") no-repeat left -34px;}
.kn_grenn_edit_apil_export {background: url("/common/img/apil_export.png") no-repeat left top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 118px;}
.kn_grenn_edit_apil_export:hover {background: url("/common/img/apil_export.png") no-repeat left -60px;}
.div_border_net_bordera_pad .educational td input.kn_grenn_edit_ok {background: url("/common/img/kn_grenn_edit_ok.png") no-repeat left top; border: none;
cursor: pointer; display: inline-block; height: 31px; width: 48px;}
.div_border_net_bordera_pad .educational td input.kn_grenn_edit_ok:hover {background: url("/common/img/kn_grenn_edit_ok.png") no-repeat left -35px;}
.kn_grenn_edit_apil_prodol {background: url("/common/img/kn_ap_otm_prod.png") no-repeat -139px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 146px;}
.kn_grenn_edit_apil_prodol:hover {background: url("/common/img/kn_ap_otm_prod.png") no-repeat -139px -59px;}
.kn_grenn_edit_apil_prodol:disabled {cursor: default; opacity: 0.8; background: url("/common/img/kn_ap_otm_prod.png") no-repeat -139px top;}
.kn_grenn_edit_apil_mar_r {margin-right: 25px;}
.kn_grenn_edit_apil_neaktivna {cursor: default; opacity: 0.4;}
.form_div_apel_soglash {width:450px; font-size:14px;}
.form_div_apel_soglash .form_div_apel_soglash_t {padding:20px;}
.form_div_apel_soglash .form_div_apel_soglash_in {padding:0px 20px;}
.form_div_apel_soglash .form_div_apel_soglash_sp {display: block; padding-right: 20px; width: 130px; padding-bottom: 15px; float:left; padding-top: 14px;}
.form_div_apel_soglash .form_div_apel_soglash_sp input {margin-right:10px}
.form_div_apel_soglash .form_div_apel_soglash_sp label {}
.form_div_apel_soglash .form_div_apel_soglash_centr {text-align:center;}
.form_div_apel_soglash .form_div_apel_soglash_centr .form_div_apel_soglash_sp {padding-left: 142px;}
.form_div_apel_soglash .form_div_apel_soglash_centr .appil_add_but {display:inline-block;}
.height_but_men_ap {height:12px; width: 500px;}
.page_num_apel .nums a:hover {text-decoration:none;}
.div_class_er_red {color:red; padding-bottom:5px; font-size:14px;}
.div_class_pl_green {color:green; padding-bottom:5px; font-size:14px;}
.div_border_net_bordera_pad .educational td input.kn_grenn_edit_show {background: url("/common/img/mnog_knop_ap.png") no-repeat -1438px top; border: none;
cursor: pointer; display: inline-block; height: 44px; width: 118px;}
.div_border_net_bordera_pad .educational td input.kn_grenn_edit_show:hover {background: url("/common/img/mnog_knop_ap.png") no-repeat -1438px -57px;}
.div_border_net_bordera_pad .educational .kn_grenn_edit_show_td {width:380px}
.div_border_net_bordera_pad .educational .kn_grenn_edit_show_td2 .kn_grenn_edit_show {margin-top:9px;}
.menu_left_ul_wnm {width:500px;}
.menu_left_ul_wnm li {display:block;}
.table_block_nm_heig {padding: 10px 0px 10px 0px;}
.table_block_nm_heig .table th {padding: 0px 0px 5px 20px; font-size: 15px;}
#settings .table_block_nm_heig .table th {
padding: 0 !important;
text-align:center;
font-weight: bold;
font-size: 13px;
border-bottom: medium none;
border-top: 1px solid #a9abad;
}
#settings .table_block_nm_heig .table tbody th {
border-top: medium none;
border-bottom: 1px solid #a9abad;
}
.mass_checkbox{
margin: 5px 0 5px 5px;
}
.table_block_nm_heig .table .th1 {padding: 0px 0px 5px 20px;}
.table_block_nm_heig .table .th3 {width:120px; padding: 0px 0px 5px 0px;}
.table_block_nm_heig .table .th4 {width:280px; padding: 0px 0px 5px 0px; text-align:center;}
.table_block_nm_heig .table .th5 {width:30px; padding: 0px 20px 5px 20px;}
.table_block_nm_heig .table .th5_nn {width:30px; padding: 0px 5px 5px 0px; text-align:center;}
.table_block_nm_heig .td1 {line-height: 17px;}
/* ================== auth ==================== */
.client1_top_bl_vn {display:block; position:relative; background:#d2d2d1 url(/common/img/ege_new/menu_top_bl_bg.gif) repeat-x left top; padding:20px 30px 7px 35px; /*border-radius:10px; */
box-shadow:0px 1px 3px #939393; width:292px;}
.client1_top_bl_vn a {color:#1f262d; text-decoration:none; line-height:15px;}
.client1_top_bl_vn a:hover {text-decoration:underline;}
.client1_top_bl_vn .div1 {font:14px Trebuchet MS; font-weight:bold; float:left; padding-bottom:7px;}
.client1_top_bl_vn .div2 {float:right; padding-top:3px; padding-right:5px;}
.client1_top_bl_vn .inp1 {border:1px solid #c3c3c3; border-top:1px solid #7c7c7c; padding:3px 5px; color:#a3a4a5; width:127px; font:11px/normal arial; background:#fff; margin-right:8px;}
.client1_top_bl_vn .inp2 {border:1px solid #c3c3c3; border-top:1px solid #7c7c7c; padding:3px 5px 3px 19px; color:#a3a4a5; width:109px; font:11px/normal arial; background:#fff url(/common/img/ege_new/zamok.gif) no-repeat 5px 4px; margin-bottom:5px;}
.client1_top_bl_vn .btn1 {background:url(/common/img/ege_new/btn_enter.png) no-repeat left top; width:67px; height:29px; padding-bottom:5px; font:11px Trebuchet MS; font-weight:bold; border:none; cursor:pointer; color:#5b5b5b; margin-right:-5px;}
.client1_top_bl_vn .div5 {font:12px Trebuchet MS; font-weight:bold; }
.client1_top_bl_vn .div5 span {font-size:16px; line-height:16px;}
.client1_top_bl_vn .div5 span {font-size:16px; line-height:16px;}
.client1_top_bl_vn .auth_tbl .td4 a span { font-size: 12px;}
.client1_top_bl_vn .auth_tbl .auth_tbl .td4 span.plus {top:0px;}
.client1_top_bl_vn {padding: 20px 30px 20px 30px;}
.client1_top_bl_vn .client1_top_bl_vn_red {color:red; padding-left: 4px; padding-top: 4px;}
.client1_top_bl_vn .inp_eror_bor_aut {border:1px solid red}
/*=================*/
.sett_answ {padding-top: 25px;}
.sett_answ .div1 {font-size: 17px;}
.sett_answ_c .td2, .sett_answ_c .td4 {text-align: center;}
.sett_answ .sett_answ_plus {cursor: pointer;width: 20px;height: 20px; margin-left: 75px; background: url(/common/img/sett_answ_plus.png) 0 0 no-repeat;}
.sett_answ .sett_answ_plus:hover {background: url(/common/img/sett_answ_plus.png) 0 -21px no-repeat;}
.sett_answ .btn1{cursor: pointer;margin-top: 20px;width: 192px;height: 44px;background: url(/common/img/sett_answ_addstr.png) no-repeat;}
.sett_answ .btn1:hover{background: url(/common/img/sett_answ_addstr.png) 0 -47px no-repeat;}
.sett_answ .btn2{cursor: pointer;margin-top: 5px;width: 192px;height: 44px;background: url(/common/img/sett_answ_deletestr.png) no-repeat;}
.sett_answ .btn2:hover{background: url(/common/img/sett_answ_deletestr.png) 0 -47px no-repeat;}
.sett_answ .btn3{cursor: pointer;margin-top: 20px;width: 137px;height: 44px;background: url(/common/img/sett_answ_save.png) no-repeat;}
.sett_answ .btn3:hover{background: url(/common/img/sett_answ_save.png) 0 -47px no-repeat;}
.sett_answ_addkrit {border:1px solid gray;width: 700px;padding: 20px 10px 100px 10px;}
.sett_answ_addkrit .sett_answ_addkrit_btnl {float: left;}
.sett_answ_addkrit .sett_answ_addkrit_btnr {float: right;padding-top: 15px;}
.sett_answ_addkrit_btn {padding: 10px 10px;}
.sett_answ_addkrit_btnl .btn1{cursor: pointer;width: 192px;height: 44px;background: url(/common/img/sett_answ_addstr.png) no-repeat;}
.sett_answ_addkrit_btnl .btn1:hover{background: url(/common/img/sett_answ_addstr.png) 0 -47px no-repeat;}
.sett_answ_addkrit_btnl .btn2{cursor: pointer;margin-top: 10px;width: 192px;height: 44px;background: url(/common/img/sett_answ_deletestr.png) no-repeat;}
.sett_answ_addkrit_btnl .btn2:hover{background: url(/common/img/sett_answ_deletestr.png) 0 -47px no-repeat;}
.sett_answ_addkrit_btnr .btn3{cursor: pointer;margin-right: 10px;float: right;width: 137px;height: 44px;background: url(/common/img/sett_answ_save.png) no-repeat;}
.sett_answ_addkrit_btnr .btn3:hover{background: url(/common/img/sett_answ_save.png) 0 -47px no-repeat;}
.sett_answ_addkrit_btnr .btn4{cursor: pointer;float: right;width: 111px;height: 44px;background: url(/common/img/sett_answ_done.png) no-repeat;}
.sett_answ_addkrit_btnr .btn4:hover{background: url(/common/img/sett_answ_done.png) 0 -46px no-repeat;}
.div_all_pos_rel {position:relative;}
.div_all_pos_rel .but_nazad_fag_r {position:absolute; right:0px; top:0px; font-size: 18px; text-decoration: underline; top: -40px;}
.div_all_pos_rel .but_nazad_fag_r:hover {text-decoration: none;}
.tab_doc_apel {margin-bottom:10px;}
.tab_doc_apel .td1 {color:#0071bb; padding-bottom:5px;}
.tab_doc_apel .td2 {width:78px; padding-left:10px; vertical-align: middle; padding-bottom:2px;}
.tab_doc_apel .td3 {vertical-align: middle; padding:3px 5px; border:1px solid #000;}
.div_border_nn {border:none;}
.error {color:red; border:1px solid red !important;}
#settings .error {border:none !important;}
.b_fon_siz_sogl {font-size:16px;}
.tab_ap_rez_34 {}
.tab_ap_rez_34 .td1 {padding-right:40px;}
.tab_ap_rez_34 .td2 {width:322px; font-size: 14px; line-height: 18px;}
.sp_zvezd_red {color:red; font-size: 14px;}
.form_quest .td_right .QapTcha{margin:4px 0 3px 0 }
.form_quest .td_right .QapTcha .Icons {margin-top: 3px;}
.vote_form {
background-color: #F7FAFA;
border: 1px solid #CDCDCD;
/*border-radius: 4px 4px 4px 4px; */
padding: 20px;
width: 630px;
}
.form_quest .td_left {
padding: 0 10px 10px 0;
text-align: right;
}
.div_form_quest {
padding-top: 5px;
position: relative;
}
.form_quest .td_right {
padding: 0 0 10px;
width: 435px;
}
.form_quest .td_right input {
/*border-radius: 4px;*/
width:400px;
height:19px;
vertical-align:top;
padding:3px 10px 5px 10px;
border:1px solid #e3e3eb;
border-top:1px solid #acadb2;
}
.form_quest .td_right textarea {
/*border-radius: 4px; */
width:405px;
height:120px;
vertical-align:top;
padding:3px 5px 5px 10px;
border:1px solid #e3e3eb;
border-top:1px solid #acadb2;
}
.form_quest .td_right select {
width:435px;
height:27px;
vertical-align:top;
padding:3px 10px 5px 10px;
border:1px solid #e3e3eb;
border-top:1px solid #acadb2;
}
input.button[disabled]{z-index:0}
.subutton {
background: none;
border:none;
/*border-radius: 5px 5px 5px 5px; */
cursor: pointer;
text-decoration: none;
width:112px;
height:33px;
position:absolute;
z-index:100
}
.ios .subutton {background: url("/common/img/ege_new/onepic.png") no-repeat 0 0;}
.android .subutton {background: url("/common/img/ege_new/onepic.png") no-repeat 0 0;}
.qaptext {font-size:13px; color:red; display:none}
/* video new */
.main_cont2_tbl {width:100%;}
.main_cont2_tbl .main_cont2_td_1 {width:780px;}
.main_cont2_tbl .main_cont2_td_2 {padding-top:3px;}
#videon_tab {position:relative; height: 310px; padding-left:31px; width: 708px; overflow: hidden;}
#videon {position:relative;}
.videon_news {
position: relative; /*leave this value alone*/
border: 0px solid black;
overflow: scroll; /*leave this value alone*/
width: 708px; /*Width of Carousel Viewer itself*/
height: 310px; /*Height should enough to fit largest content's height*/
margin-left:0px;
}
.videon_belt {
position: absolute; /*leave this value alone*/
left: 0;
top: 0;
}
.main_videon_line {
float: left; /*leave this value alone*/
overflow: hidden; /*clip content that go outside dimensions of holding panel DIV*/
margin: 0px; /*margin around each panel*/
width: 708px; /*Width of each panel holding each content. If removed, widths should be individually defined on each content DIV then. */
}
.videon_news .videon_item {width:160px; float:left; margin-right:17px; position:relative;}
.videon_news .videon_item .strelka_video {position:absolute; width:90px; height:90px; display:none;}
.videon_news .videon_item .scrin_video {width:160px; height:128px; overflow: hidden; margin-bottom:18px;}
.videon_news .videon_item .scrin_video img {width:160px;}
.videon_news .videon_item .text {height: 154px; overflow: hidden;}
.videon_news .videon_item .text .div1 {line-height:16px; padding-bottom:10px;}
.vid_tab_tit {height:34px; font-size:14px; color:#303133; position:relative; font-weight:bold; text-transform: uppercase;}
/* */
.banner_all_p {}
.banner_all_p .stan_ban {display:inline-block; width:190px; height:281px; background:url(/common/img/img_2013/banner_gia.gif) no-repeat left top; position:relative; font-family: calibri; color:#3e3f41;}
.banner_all_p a {color:#3e3f41; text-decoration:underline;}
.banner_all_p a:hover {text-decoration:none;}
.banner_all_p .tex_st_b1 {position:absolute; left:24px; top:23px; line-height: 43px; font-size:36px; font-weight:bold; text-transform: uppercase;}
.banner_all_p .tex_st_b2 {position:absolute; left:24px; top:190px; font-size:14px; width: 145px;}
.GIA .banner_all_p .stan_ban {background:url(/common/img/img_2013/banner_ege.gif) no-repeat left top;}
.GIA .banner_all_p .tex_st_b2 {font-size:18px; top: 154px;}
.GIA .banner_all_p .tex_st_b1 {top:32px;}
/* buttom */
.new_st_kn {min-width: 64px; width:auto; font-weight: bold; text-decoration:none; display:inline-block; color:#303133; background:#f2f2f2; padding:12px 40px; font-size:12px; line-height:14px; font-weight:block; text-align:center; text-transform: uppercase; border: none; box-shadow: none; outline: none; cursor:pointer;}
.new_st_kn:hover {background:#0071bb; color:#fff;}
#second #content .new_st_kn {min-width: 64px; width:auto; font-weight: bold; text-decoration:none; display:inline-block; color:#303133; background:#f2f2f2; padding:12px 40px; font-size:12px; line-height:14px; font-weight:block; text-align:center; text-transform: uppercase; border: none; box-shadow: none; outline: none; cursor:pointer;}
#second #content .new_st_kn:hover {background:#0071bb; color:#fff;}
#second #content .new_st_kn_m {padding:6px 20px 5px 20px;}
#second #content .new_st_kn_p2 {padding:12px 20px;}
#second #content .new_st_kn_dis {cursor:default; background:#c7c7c7; color:#303133;}
#second #content .new_st_kn_dis:hover {background:#c7c7c7; color:#303133; cursor:default;}
#second .new_st_kn:disabled {cursor:default !important; color:#303133 !important; background:#c7c7c7 !important;}
#second #content .new_st_kn_naz {position: absolute; right: 0; display: block; bottom:11px;}
#footer .new_st_kn2 {margin:0 auto; margin-top:15px; width: 159px; font-weight: bold; text-decoration:none; display:block; color:#fff; background:#0071bb; padding:12px 0px; font-size:12px; line-height:14px; font-weight:block;
text-align:center; text-transform: uppercase; border: none; box-shadow: none; outline: none; cursor:pointer;}
#footer .new_st_kn2:hover {background:#1989d3; color:#fff;}
.GIA #footer .new_st_kn2 {background:#ff8e00;}
.GIA #footer .new_st_kn2:hover {background:#fca12f;}
.GIA .new_st_kn:hover {background:#ff8e00;}
#second.GIA #content .new_st_kn:hover {background:#ff8e00;}
.EGE .new_st_kn {color:#303133;}
.EGE .new_st_kn:hover {color:#fff;}
.new_stkn_mg {margin-left:330px; margin-top:40px;}
.otp_otvet {height:150px; width:640px;}
.otp_otvet1 {padding: 30px 20px 0 176px; height:120px; background:url("/common/img/img_2013/logo.gif") no-repeat 30px 56px;}
.otp_otvet2 {font-size:14px; margin: 0px 39px; margin-top:-68px; padding-left:140px;}
/* main gal */
#vagnoe_tab {position:relative; width: 560px; height: 380px; background:url("/common/img/img_2013/back_gal_ege.jpg") no-repeat left top;}
.GIA #vagnoe_tab {background:url("/common/img/img_2013/back_gal_gia.jpg") no-repeat left top;}
.main_vagnoe {
position: relative; /*leave this value alone*/
border: 0px solid black;
overflow: scroll; /*leave this value alone*/
width: 560px; /*Width of Carousel Viewer itself*/
height: 380px; /*Height should enough to fit largest content's height*/
margin-left:0px;
}
.main_vagnoe .vagnoe_belt {
position: absolute; /*leave this value alone*/
left: 0;
top: 0;
}
.main_vagnoe .main_vagnoe_line {
float: left; /*leave this value alone*/
overflow: hidden; /*clip content that go outside dimensions of holding panel DIV*/
margin: 0px; /*margin around each panel*/
width: 956px; /*Width of each panel holding each content. If removed, widths should be individually defined on each content DIV then. */
}
#vagnoe-paginate {position:absolute; right:28px; top:293px; width:60px; height:10px;}
#vagnoe-paginate img {margin:0px 2px 0px 3px; float:left;}
.main_vagnoe .vagnoe_item {width: 529px; height: 312px; padding-top:68px; padding-left:31px; color:#fff;}
.main_vagnoe .vagnoe_item a {color:#fff; text-decoration:none;}
.main_vagnoe .vagnoe_item .vagnoe_it_tit1 {height: 75px; width:100%;}
.main_vagnoe .vagnoe_item .vagnoe_it_tit {float:left; text-transform: uppercase; padding-bottom:14px; border-bottom:3px solid #ec1c24; font-family: calibri; font-size: 30px; font-weight: bold; line-height: 24px; margin-bottom:34px; display: inline-block;}
.main_vagnoe .vagnoe_item .vagnoe_it_tit a:hover {color:#ec1c24;}
.main_vagnoe .vagnoe_item .vagnoe_it_tex {font-size:14px; line-height:20px; width:440px; height:114px; padding-bottom:20px;}
.main_vagnoe .vagnoe_item .vagnoe_it_tex a {color:#EC1C24;}
.main_vagnoe .vagnoe_item .vagnoe_it_tex a:hover {text-decoration: underline;}
.main_vagnoe .vagnoe_item .vagnoe_it_kn a {text-transform: uppercase; display:block; border:1px solid #fff; font-size: 14px; padding:12px 0px 12px 30px; width:106px; line-height: 12px; background:url("/common/img/img_2013/str_podrobn.gif") no-repeat 11px 10px;}
.main_vagnoe .vagnoe_item .vagnoe_it_kn a:hover {background:url("/common/img/img_2013/str_podrobn.gif") no-repeat 11px 10px #EC1C24;}
.GIA .main_vagnoe .vagnoe_item {height: 322px; padding-top:58px;}
.GIA .main_vagnoe .vagnoe_item .vagnoe_it_tit1 {height: 104px;}
.GIA .main_vagnoe .vagnoe_item .vagnoe_it_tit {line-height: 37px; border-bottom:3px solid #ff8e00; margin-bottom:0px;}
.GIA .main_vagnoe .vagnoe_item .vagnoe_it_tit a:hover {color:#ff8e00;}
.GIA .main_vagnoe .vagnoe_item .vagnoe_it_kn a:hover {background:url("/common/img/img_2013/str_podrobn.gif") no-repeat 11px 10px #ff8e00;}
/* status menu */
.status_menu {padding:18px 29px 18px 31px; background:#f2f2f2; border-bottom:1px solid #bebfc1; color:#949699; line-height: 14px;}
.status_menu a {color:#303133; background:url("/common/img/img_2013/str_status_menu.gif") no-repeat right 5px; padding-right:11px;}
.status_menu span {padding-left:2px;}
.abc .tit {font-weight:bold;}
/* h4 */
h4 {
position:relative;
display:inline-block;
padding:9px 18px 9px 17px;
margin-bottom:18px;
border: 2px solid #ed1c24;
line-height:14px;
font-size:12px;
font-family: verdana;
}
h4:before,
h4:after {
left:78%;
bottom:-27px;
content:"\2666";
font-family: monospace;
font-size:50px;
line-height:52px;
text-align:center;
position:absolute;
overflow:hidden;
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
}
h4:before {
color:#ed1c24;
clip: rect(25px, 15px, 38px, 0px);
}
h4:after {
bottom:-25px;
color:#fff;
clip: rect(27px, 15px, 38px, 0px);
border-right:2px solid #ed1c24;
width:13px;
}
#print h4 {border:2px solid #000}
#print h4:before {color:#000;}
#print h4:after {border-right:2px solid #000;}
/* form guest new */
.vote_form_new {background:none; width:486px; border:none; padding:0px 0px 50px 0px; font-family: verdana; font-size: 14px;}
.form_quest_new {margin-top:10px;}
.form_quest_new .td_right .QapTcha {margin: 5px 0px 20px 0px;}
.form_quest_new .td_right {width:486px;}
.form_quest_new .td_right .imp_write {color:#949699; margin-top:10px; margin-bottom:0px;}
.form_quest_new .td_right input {width:448px; padding:10px 18px 10px 17px; font-family: verdana; font-size: 14px; color:#303133; border:1px solid #a9abad; background:#f2f2f2;}
.form_quest_new .td_right input[type='checkbox'] {width:19px;}
.form_quest_new .td_right input[type='radio'] {width:19px;}
.form_quest_new .td_right textarea {width:448px; height:142px; padding:12px 18px 13px 17px; font-family: verdana; font-size: 14px; color:#303133; border:1px solid #a9abad; background:#f2f2f2;}
.form_quest_new .td_right .QapTcha .Icons {margin-top: 0px;}
.form_quest_new .button_wa_b {color:#fff}
.form_quest_new .button_wa_b:disabled {color:#bbcee8; background:#7da7d8;}
.form_quest_new .td_right br{
}
.form_quest_new .subutton {width:486px; height: 50px;}
.form_quest_new .td_right .red_zv1.red_zv_g {background:url("/common/img/img_2013/red_zvezd_g.jpg") no-repeat 65px 12px #f2f2f2;}
.form_quest_new .td_right .red_zv2.red_zv_g {background:url("/common/img/img_2013/red_zvezd_g.jpg") no-repeat 143px 13px #f2f2f2;}
.form_quest_new .td_right .red_zv1.red_zvezd {background:url("/common/img/img_2013/red_zvezd.jpg") no-repeat 65px 12px #f2f2f2;}
.form_quest_new .td_right .red_zv2.red_zvezd {background:url("/common/img/img_2013/red_zvezd.jpg") no-repeat 143px 13px #f2f2f2;}
.form_quest_new .td_right .net_zvez {background:#f2f2f2 !important; background-image:none !important;}
.tab_spis_vid {}
.tab_spis_vid1 {padding-right: 10px; padding-bottom:30px;}
.tab_spis_div {width:125px; overflow: hidden; max-height:176px;}
.tab_spis_div img {width:125px;}
.tab_spis_vid .text {padding-right:5px;}
.vid_tab_stan {}
.vid_tab_stan .vid_tab_stan1 {padding-right: 10px; padding-bottom:30px;}
.vid_tab_stan .vid_tab_stan2 {padding-right:5px;}
#print .color_green {color:#000;}
#print .div_apel_fl_red {background:#D0D0D0; border:1px solid #D0D0D0;}
#print .ege_rezult_b_nb .td_w_bol_text {background:#D0D0D0;}
#print .infa_rzo_div_tit {color:#000;}
#print .infa_rzo_div_tel span {color:#000;}
#print .ege_rezult_b_nb .td2nm .td2nm_kriter {color:#000;}
#print .ege_rezult_b_nb .td3nm .td2nm_kriter {color:#000;}
#print .new_st_kn {background: #F2F2F2;}
#print .sp_zvezd_red {color:#000;}
#print .pometki_red {color:#000;}
#print .pometki_green {color:#000;}
#print .infa_rzo_div_tel {background:#D0D0D0; color:#000;}
.ico_za_ch {display:block; width:100px; position: absolute; top: 24px; right: 226px; height:100px; text-decoration:none; background:url("/common/img/img_2013/ico_za_ch_ege.gif") no-repeat left top;}
.ico_za_ch:hover {opacity: 0.9; filter: alpha(opacity:90);}
.disabled_link{
/*text-decoration: underline;*/
cursor: pointer;
}
.subm_wrapper{
text-align: right;
/*margin-top: -40px;*/
}
.manage_users{
color: #000;
text-decoration: none;
}
.deactivation_disclaimer{
position: absolute;
bottom: 10px;
}
.operator_region{
display: inline-block;
margin: -10px 0 10px;
text-decoration: none;
color: #949699;
}
.faq_cont ul li{
background: none !important;
list-style: disc !important;
}
.faq_cont ul{
list-style: disc !important;
}
.infa_rzo_div_tel2 {
position:absolute;
top:-1px;
right:-1px;
color:#5f4141;
font-size:12px;
background:url(/common/img/backgr_tel_rzo2.png) no-repeat left top;
width:auto;
line-height: 12px;
padding:2px 30px;
text-align:center;
height:29px;
}
.button_wa_b {width:100%; padding-left:0xp; padding-right:0xp; background:#0071bb; font-size: 14px; padding:15px 0px;}
.button_wa_b:hover {background:#1989d3; color:#fff;}
.check_res .button_wa_b {width:100%; padding-left:0xp; padding-right:0xp; background:#0071bb !important; font-size: 14px; padding:15px 0px;}
.check_res .button_wa_b:hover {background:#1989d3 !important; color:#fff;}
.check_res .button_wa_b:disabled {background:#7da7d8 !important; color:#bbcee8 !important;}
.tr_field_header{
font-weight: bold;
}
.tr_field_header td{
padding: 10px 0 5px;
}
.tr_field_content{
}
.tr_field_content td{
}
.tr_buttons{
}
.tr_buttons td{
padding: 10px 0 5px;
}
.tr_buttons td .button_submit{
padding: 15px 10px;
font-size: 14px;
background: #0071bb;
color: #fff;
}
.tr_buttons td .button_submit:hover{
background:#1989d3;
color:#fff;
}
.form_quest_new .td_right .field_option{
padding: 5px 0 5px 5px;
}
.form_quest_new .td_right .field_option input[type='text']{
margin-left: -5px;
margin-top: 10px;
}
.anketa_form .form_quest_new .td_right input[type='text']{
padding: 5px 15px;
}
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://ege.edu.ru/common/img/img_2015/grey_menu.png
Content-Transfer-Encoding: Base64
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
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://ege.edu.ru/common/img/img_2015/slider_bg.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAjEAAAFBCAYAAACGpf6oAAAACXBIWXMAAAsTAAAL
EwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5Jf
xUYAAak0SURBVHja7P3rmiS5cSQMuyOiqg/Tc+BBFKnVXs13Se9N72pXK1EcznRX
ZcC/HxFAuDvMAURW9XAoVj1Pz/ShKjMyDoC5ubkZ0//v//uJRIhIiIiJ6PgfJ6pf
240oH7+2G9H2RPT8+fj1E9Hn/yJ6/rK/Bi9EKe0/z3z8fzle6HgP5vO163vrL1Y/
m+w/SW6/X47/SD5+yfG658s170vl9YmI1LGi95Hjz+Uc5G1/fU5E6fi89dyxei+2
B2mOCZwDyce/lddd93PH6vXqedWvL+pzZ/u6ks/r15xncM7NMRM41+p65eN8541I
tvP40nL+Yt7Pb/kq90a9xuU9RZ0HOj+HbOffZ/1e6homcJ8Q2+te/r2cJ31N9PnP
2/mrfE5O7Xlh3j9fve7pvKb19dRxUz4+13act81eK3NPsnsO3D2lLvv5GuV9wL3W
nPvjtetzmvSD4l5DnSPzTAi4p5O9P1ld65TMEmCeR072Fzrmso6k5Xxuy/fWc8bx
fUvgtmZ9DvVfULsWwHWK+u8J70luf87cWqkcVFmI7WuLWuf8tfH3nf572fZ1oNx3
Atajeu2Wdj30n88/E8ztPafXhrJmmufPva++3/VaoO9HZnAJgnWrrhcZfAbwOmhv
0eu63s+a6xg8c3VtLvfR5p4nsmsYL0TrA9HjN0Qff0P04Yf99w/viNb3ROs7ouVh
//6yP5DYz+nPkV6HyvqzPR/7+dP+++2Z6PaF6MtfiZ7+SvT8876n3z7v9w0d5xLd
7+X5TOvxOZb9GNfH41jX47ldzv1hWY/jT/vv656QOo+XwOu9EqcPRLl9+DTwSIlI
gptNL7x6gULPukQ3oLt3IOig+AYjsTcngxeEAIYdYFKbUPk8RER8PEz15PG5vpgN
xj1UZv05/oxu9Hruknvg2L2H3iAW96DQfqP5RS+4HO1C6o7ZvIRbcAtoLL8vPyto
YWG82LB+2NzNqc8BJwvwwo3DHTu5601g0dHHItQer354kgZjYjdovcihzTKl49Jk
Ilr2l9lysMkld/978KLPoZzHJPkEChksxnVTYgwyzLOoiw05f7HaROu1zGq/De5R
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
Wk8AAAAASUVORK5CYII=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://ege.edu.ru/common/img/img_2015/right_block1.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAANwAAACfCAYAAACSlrdDAAAACXBIWXMAAAsTAAAL
EwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5Jf
xUYAAAFkSURBVHja7NOxDQAgEAOxPIszetiADip7hJNu2u4kE+C1Lg3gH8OB4cBw
gOHAcIDhwHBgOMBwYDjAcGA4MBxgODAcYDgwHGA4MBwYDjAcGA4wHBgODAcYDgwH
GA4MBxgODAeGAwwHhgMMB4YDwwGGA8MBhgPDAYYDw4HhAMOB4QDDgeHAcIDhwHCA
4cBwYDjAcGA4wHBgOMBwYDgwHGA4MBxgODAcGA4wHBgOMBwYDjAcGA4MBxgODAcY
DgwHhgMMB4YDDAeGAwwHhgPDAYYDwwGGA8OB4QDDgeEAw4HhwHCA4cBwgOHAcIDh
wHBgOMBwYDjAcGA4MBxgODAcYDgwHGA4MBwYDjAcGA4wHBgODAcYDgwHGA4MBxgO
DAeGAwwHhgMMB4YDwwGGA8MBhgPDgeEAw4HhAMOB4QDDgeHAcIDhwHCA4cBwYDjA
cGA4wHBgOMBwYDgwHGA4MBxwdQAAAP//AwDzLgW693Y4ZgAAAABJRU5ErkJggg==
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://ege.edu.ru/common/img/img_2015/pen.png
Content-Transfer-Encoding: Base64
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
rkJggg==
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://ege.edu.ru/common/img/img_2015/header_left.png
Content-Transfer-Encoding: Base64
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
F2xu8llfXJAGABcuXIDf7zcvQSIzlCG89NJLKJfLSCQSaGtrw/379/GNb3wDkUik
iVnH7mp7exvvvfceXnvtNTx8+BBnz55FPB7HSy+9ZF56pHh/8MEHmJmZsWKdHTKL
bBaxnEe3694IL0sY1x5Gg40b4BkwCcOw4qHYrFgs2g5zWjzTE0tNJd35jttVuJRl
vS4X3uro6EAkEkFvby+2traQTCYtUPMGqwrcS+HquhnoZk7+/2eeecaSCys4L8cD
1d1oUlRoyg0OPMi0meHMgVocPkyvnT7shlih6bBSu0syntSGxe/3WyLidRCOYwVF
qIvLqqiZIaSpHQyTsjIQ/X4/ZmZm0NXVhcXFRcOVGaionmZXSxoyNRqkliYSCWvZ
e3p6bIjKn82lZKzkmHjIpuIgmEGVq2/7+/sxMzOD69ev2/BXYRFCs9vb20YJ5dlS
I0yfz2d28bu7u0aX5XVQIf5lNpyeVq27FjAKF7LC5jyCXWB/f7/dO31HdLCv7wkN
QLWwIWWfFTPnafqOqkODGiy6K6u/qi/1tmPBzIKEy/XcRMJrJbysxZ/aU3E2Wq1W
Ua1Wsb29jf7+fmPPUQfHf7O7u4vt7W2sra01FTunQWL1et2EumSBsoAnIrO7u4ti
sYhcLoeFhQWsrKwgEokgkUjg4cOHePDgQZM/HTvwjY0NvPnmm3jzzTexvr6Ob33r
W/j93/99vPXWW/ijP/ojQy6+/e1v4+LFi0Y395J3KKpk0KC6o7pzAVegpiwrFfcp
pMaXn/ADDzHdZJlU/H5/k0JcISNXfKnJT+EgNyky4OuAl4e4s7MT8XgcjUbDllSx
A9Dg7sJiXlvgtFtoNBqYnZ3Fr/7qr1pV8UUdqTkD0qpON38yCTBgkJHCz1itVm0Q
q5iqClNVyKjDfIWx2N4TGtB1CcoS4mfw+XyYnJxEf38/1tfXUSgUbPuoMgGVJUZ2
jcJ/DNo0EWU1z0qIiZGfnQWMVtvd3d0Ih8P2/0kH1+Vaw8PDNhtR2rwKPYk137p1
C3fu3MH09DTGxsZM40TVNiEEJvZqtYpkMomxsTHT4DA4MZHE43EsLCwgk8nYugAO
mumdRgeEr6KKZyCkuzU1LTrw5vvB3T0jIyNmfaK6LJUw6IqFg4MDFAqFJsiNSU1h
TFW7e73L/D1lR35VnZwmGSY6UrDpmkyURY1fq9Wqdck8ozoTZlLWM84No41GwyjJ
dALgWdnd3UU6ncb8/DwmJiY8ndSp3yuXy7b6g+830R92T+zGxsfHUSwWUSqVbJnh
0NAQtre38dFHH2FkZMTsq6rVKpaXl/H222/j7bffRiqVwi/8wi/gf/gf/gdMTU3h
n/2zfwbgL3zNXnjhBZw7d86KD0KfhKQJHbrD/v+3o2n/BAPItS3Rl14rax46JgpW
pxwel0ol25/h8/kQDAYtSLib6bxU/Pr3XEaNmz3dZKNKVb7g7e3tSCQS2N/fRyqV
slZZXQm8duG4mh/eF1bqP/dzP4fBwUFbbuYVHLy6Qq9V1dqNKTOPP4+QIhW2/DNy
88kuc7s91d3oki4NIGpmSUiTQVwFlTpABv5iVWt/fz92dnbMKJKKZmLHHNgra0zh
CzX25EwiEonYi88XnaQEJjIy1WgFQrqpdmy8hyQBaOJkB8MucG9vD8vLy7h//z4C
gYARIKLRKHZ2dqwL4PUSkjs6OsL29jbGxsasaOF7QT+8oaEhE3Bms1nb4eLz+Qwe
HBkZQblcbrKD/2m+WPAQ9iM9mWdZHaGHh4cRi8WavMz0WfOZ6bvLYM2OVdd0M4kw
ybJocbt4HaR/0cV7n/WlFP2enh5EIhH09PRgaGgIJycnyOfzyGazTYp/djT06zs6
OjKKNpMIGXicv/DaucSOnS0TFT8r51Xlctm20boJplQqmT8gt8Cq9EBjBedqfr8f
iUQCtVoN9Xod9+/fR7VaxezsLC5duoRbt24hFovhypUrttL5rbfewvXr11EoFPAr
v/Ir+G//2/8WwWAQr7/+Ojo7O3Hx4kVcuXIF586dw8DAgK2mZwF5WoJhTGptbf3/
WGRaPfNDKF1Rh5caIHmolEba3t6ObDZrdh30atLDpYfThZI+zVZGE8BpiYCBzK24
yYShSSXZR6pOVtEm4SKvpMBq99FHH8Wjjz7aZDjpzkJOY425yl/3pXCJB+xcWEmx
g+LfpYCO1FiF81xbC84ICGNql6EHRyEbTVDanTFwjI6OIhQKYWNjA/l83iCs3d1d
q2aV6qi7RgjZkHlFzyYGBbJc6ADd2tqKS5cuIZlMolQq2QIpl/BB6IudEl8OtVBR
Wnc6ncbHH3+Mo6MjPPLII/Zz6brMooQwRU9Pj/lb0Y6fMwod9NLmZ2hoyNYAbG1t
WUeQSqXQ2tqKJ554AqlUCnfu3EGxWPxKGFTVahWNRsOgLJ4/0qQTiYTNP3Uwr+fX
JXKwSCAyQKozgwu7GNW16QoFpeFrl/9VMsuY4PU6R0ZGDGY6OjrC0NCQQVulUgnF
YhEbGxtm0hoIBAxxoZ6FrFfGEJ098fMyAKsbCok0pMIXCgXcvn0bY2NjiMViNs/I
5XI4Pj7G8PCwGceSNcY5pBZnunV2bGzM1pYkk0lzplhaWkK9XrdZ4r1792z1x6/+
6q/iv/wv/0vs7u7iX/7Lf4nNzU0MDQ3hl37pl2xDLqG+3t5e8/5T8fdpO2HalTHE
wKFCKZeWrCpf2n8wwDGT7+zsIJvN2tCrt7fXMr8KkbQacpOLl7mlG5Q1GWow5fdV
Ly+dFZEyyI6Lh51tpy4r0mtjFUe2jd/vx7e+9S3b1qjD4tM6lNN+rWsT3A5Ok6q6
O7OT4QY+slRc1p8XBZmfjy8hOxctKnRNgnZVar3i2ut0dHSY9fnS0pI5GqgtDdkp
rHZpBslrovs0h8c9PT32vXO5HHZ2dsx6h5DEyckJisWi2dVwD7rqM8j40X3xOn/j
C7+4uIiBgQGMjIwYlMqNoZw16Tvj8/lQqVSMxROLxZqsdPb29qxTpkaBL3kmk7G5
0djYGK5cuYJUKoV0Ot2EwX8VcJkWMf39/ZiensbIyIjNAXRG44qZFdFgUdjR0YFY
LGa7Yfj3FMblvWJXyXdPE4pCcV4d7peFxlgkkQZOosfh4aHtL2JBxg2s1Jfwv3K5
bEUpHYVJEiKczJku4wnjB6E3/awsWrn3aH19HS+//DIuXbpk5qihUMjOaaPRwNHR
EVZWVvDOO+/gypUrePrpp5u6Pz4Pdl/UWd28eRPz8/PIZDJYWlrC8fExPvroI1Qq
FWxvb+Pg4ADPPPMMfvEXfxG3b9/GW2+9hWKxiHg8bnOj9vZ2BINBg1nJ9tTk4uWW
bw2EUkE1YOjgTZWr/FDqLcWB5vHxMdLpNHK5HAKBAKLRqAUjpd66nYmXs6cLkRGm
I75ZrVZNaEeqHTUZDLCsgFndMrkRy6QRnMJQLuNFLWTUnrxer9s+BL1v7kDf3Xlz
2j4cZeq5W+W0o9EBs1J/yRKib5ZrcKf+WKqz4QHl91ZjS7V51wJDn6FqcBiE2tra
EAgEMDY2Br/fb90DB4ulUsmMAflMWT0yqfD5cVjMxE62TrVatTnJ7u4uXnjhBSQS
CUQiEYyPj6OlpcXUzOxW+H11LxA/f6FQwMLCApaXl3F4eGg7Xnp6emynEBOMQqFk
9/CcbGxsmKiNFTufT19fn0HKNDy8deuWmSDG43HE43GzreFsJplMNjkwfxWwUTgc
xujoKILBYFPRqB2zsqVU1MtnwISta6sJ5XCfjrpd6DZXhd0UCmRg/So6GQpLZ2dn
jbbO3T+ElGj6ys/GDoGOA5RS8Fxz/TXjn65qUGq+eglqoiOBgH8O/IUDeCqVso6J
iAKRARbKH3zwARYWFjA8PIwzZ858Ym5F0sWHH36IF198ESsrK2htbUUmkzHYj0QA
bjydnJzET37yE8zPzwOAGYDy3eOSNjVLVcq2xkqXNQsA7Zp5XejCS6Wvxoo6+OM+
ilKphFAoZNlYhUdqx34afVezodKaK5UKisUiKpWKBSYGQWW8uENlBuGBgQGMjo5a
EIrH41haWjK2m1b3WvXpvSEfngmVrArX4NMlArjWL64NtiYZzf68fnf2xX+3u7vb
RJGsVquGN5OjrqwhvQaXDq1Jg59R1cvsQrSDYgfiGqQSXuzv70c8Hsfh4SFKpZIN
yZko1OMpGAzavIPfV7Fdfn5qFzo7O7G9vY3r16+bT9L3vvc9+2wbGxtN+ipWnrqA
TF2Y7927hwcPHmBvbw9DQ0M2WA0Gg+bOTOYj5yX83rVazbzSSPem7T0rUmLq3H5J
thzX79KROpfLobW1FWfOnMHe3p7BZFy7/FXsXuFyOWqo3K2F2lWrizbPBdX/3PTI
AMTzkc1mrSvjUF3tm5Q85HYqOh/7Ml2LvnssLsjoYvdQr9eRTqexsbHRxCBTwSgh
sb6+PpRKJYN4CY/xfjDJdnZ2mnqfcZGECtUZUdMViUQwMTGBqakpKy5IktBOku/V
9PQ0vv3tb+Oll17Ce++9h8HBwSZn8lqthvn5ebz44ot45ZVXkEwm4fP5EI1GcebM
GQQCAWM7VqtVjI6OYnBwEIuLi1hdXUVHRwempqYwODiIvr4+O/tcr6GQmOuUf1py
OT4+/osZjCYVL7jK3T/CboIV2sHBAZLJJOr1ullcazWklvBuO6VVug6Fi8Ui0uk0
0ul0k50J6bR8OdRTTNvQw8ND63TK5bLteJicnMTMzAzm5uZw9+5dG8CpD5oX00Vx
VmovxsbGPvE5vO6Vu53zNCaZlw6Jh9prH4ouG2MlSYZJo9FoYp0pZOP6TWkXos/I
a++G6gJ0RYJ2PYeHh2Z5Ho1G7Tmx5eamRX6m3t5eRCIRzM7OWpLUe9bf328WLSwo
gsEgPvzwQ/zxH/8xtre38eabb+I73/kOgsEg0ul0U7LlC+73++1+8nvl83ksLi5i
aWkJ1WrVhsA8293d3UgkEkZRDofD5lfF+zs8PIzNzU2DM/L5vNnAMyHEYjGUy2VM
Tk6iVCrhzp07TXNI2sUnk0nzDevq6sLOzo7NNlOpFDKZzE8NH1H7EAwGMTY2ZhAv
K3WeFb7buhSO/54wlp5f7kFqNBoYGRlpKpZ006N6n3kVWSqo/jKKfX4Fg0HbuMjZ
Gc8b1zFw2ZwmBq4soAhZdWU+nw97e3tG+ybxRFci8Kz19fXZuaHJbjQaxcjICC5c
uIDZ2VlMTEwgGo3aeEGLP41p3d3deOGFF6yYrNfrZveztraGt956C//u3/073L59
2+jLvCehUMhidD6fN7h3e3vb3sWxsTFjtHHmQn81vitecJgrI3HjW9s/+Sf/5Act
LS0+r70tOpRXGjAposzIPFQUsSmU5gZcVwui7INGo2E278vLy2YCyKEvYQu2pYpx
aoLiQWZV4ff7TXG6vr6ObDaLaDSKk5MT29TH7kqHctpZabAul8uYnp7GU089ZawQ
zeouddoLMjtt2O/10HSwrnod4teqsna7LsJC/Ps69NdBv8uec6nrXgQF3T+j9wkA
UqkUksmkDfipDTo4OLCd96wy2WFGo1GEw2F7XqyIqaGiE3IgEMDAwADGx8dxcnKC
jz76CHfu3DEXZ6755WCUi+EUFjs+PkahUMCDBw/w8OFDM7KMRqMWRAcGBpo0DIVC
Ab29vTg+PrZOQy1zurq6bP4yNDRkNP2dnR0Eg0EcHByYvU82m0WhULAkyBkBB+xa
FbKwod3NT+tEzME/NTCEtPic1KJIizYOm/UdYefCd6lcLtvQn8mVWi0WCSR/uNR/
dt0sYH8aiCwej2N2dtZmRJzVaRAn4UQhL35OukCQuckzQaIQExCvVe14COOrOW1r
aysGBwfxxBNP4KmnnsKVK1cwNTVlxTjjn7umnfefSWN8fBxDQ0Po7OxEKpXCa6+9
hv/j//g/8P/8P/8PlpeXbTar9kctLS1IJpMGlYVCIezt7SGfz6O7uxuTk5OYmpoy
a6RIJIJQKGTmnYyxGmf1f12Ji8T3Wru7oEq7AR3s8cHwxjHjp1Ip7O3tIR6PN9k4
e4k39c/0wur1Ora3t7G+vo58Pm9DObZnukpX1zi7rBN3n4y29jqHYVJhQszn800M
G4W8eNAJNxF+Gh8fb4LHXNjLa9jvJbrUuY17r1yasmqOmNyZKDh3oRGkCrHooKsL
n1RUxs/Gl0m1Ueoj5bo66MHXl6KnpwfDw8PI5XLIZrO2IrlUKhmTRuE7wlccuhPT
JszJ6j6VSmFjY8NW+U5PT+PXfu3X0NXVhT/4gz/AP//n/xxHR0f423/7b3/CsoTY
caPRQKVSMbJALpezDiMQCNhn1sE6SQeEaJkkisViExVZYSX+Pd2ZxK2ZoVAI09PT
TQaXvJe5XA7xeNwEwBSb8v5z6P/TCjJJirh9+7Zh/xzgKluKhJZarYZCodBk5knY
h67S9XrdKOuExtgZcf7Js6nEGve6TutePk9X097ejpGREUxMTNhgvrW11aybCoWC
MVpZfJDRFYvFTD/FhNve3m72+iRz0DGbu274TNitcGtpuVxGX18fBgcHcfnyZdtB
RBiKBWG5XMZPfvITvPXWW0gkEvjud7+Lubk5i7n6/tNA8/3338eLL76IN954A5ub
mwZt8z1Wpuv29jZyuZx1aozhgUAAExMTmJ6exujoKCKRiEGnbmLRmO1qJ13iUpO+
TyEh14PLrWI426BGgis5eajceYr+rztn4Qwhm81ieXkZ6XTa7F1Ih1PRlepPXAdX
l5ig8wb37wWDQQBAsVhsCmautb06NJMJpFYhsVjsE1ix1w12tS+neZ251+uy5/jC
K92TswolOHD7IDsZDlvVF0v59Ht7e1ZlaTfkUqa18OAhc7+X/hnpuPPz88hms5ac
WdWpOlyZKdqBMokSE2f3Uy6XbVgbj8cxNzeH3/qt38Ldu3fR29uLfD5vL5EKNlOp
FDY3N5HNZo31RfoqadEuG4/3mVUxK296qWWzWYTDYSQSCXshCb0NDg5a1UshJaGi
gYEBDA4O4sGDB9bZkSjDzZc8s0NDQwiHw8b8yefz2N7e/krmMfv7+8hms5YsdT8S
iwlCztQyMbCqCziv0+fzWdLu6upqco8gU43Jx/3iZ1PTzC/iLM2uNhQKNa1L4P/2
9PRYodLf3w+fz2cL2Y6Pj1Eqlez3yc7kzKVcLhv01dXVhUqlYn5mPT09tliOGi3q
V6ampnDp0iVcuXIF09PTGBgYsHPCz/PRRx/hv//v/3usrKzA7/djZ2cHv/3bv42J
iQmLvWTfLS0t4fXXX8crr7xiM2Q11nTjEQ2AqXkqFouGCE1PT+PcuXOYnJxEIpHA
wMCAETUUldFY7tqIuTMvTTxHR0do7+7ubgrcCiFoNc5DwZeAySUej1t779IavTy2
iL+WSiUsLy9b9o1EIuYP5uVD5g7uXIsal4apy8xc3yO2xnxhdG+Fa4nDg8q5y/7+
vkE0p81Q3NXHLtTk5WB9msOpDl3dVl01SGzr6U1GXH1/f980EOZwKoGbFhcDAwNm
hOkFfbk6Bd2FoVg7n1tnZycGBwfNs+zu3bvY3t629bGkh/I8HRwcmLuDQp1usiO0
wVkTDSwHBwftMxQKBYPU2L2trq5ieXkZ2WzWXkR2Qqxc1W+P7CHCjR0dHWZ1v7Gx
YdTpVCqFjo4O0wCRMs5/f3R0hGq1amSBrq6uJpt8LjCjZX84HDZtE9k8DI7hcNiq
6/39fWQyma9EM6L7jlxKNIsTFhGk9LII4BlMJBLWJZC8weG/Jtl8Pm+MOP5bDpGH
hoZw6dIlDA0NYW9vD6lUCu+//z4ePHjwmZ8hEokYK47UaLVzYUxgQUmIkxIKnime
J0K0hPNYXHPOzG2YtVrNvPV4r0jSuHz5Mi5cuIDp6WljBXoVpaurq1hcXAQAFAoF
vPvuu/gbf+NvYHx83CDiZDKJt956Cy+++CLm5+eNaMD45HoGuuxVFiy0zrp48SLO
nz+PyclJ694Jw7pdiysncWctXno7xnlLMF47AlTcx87l5OTENtLFYjFLLu4w2+W1
M/AUi0Vsbm5ic3MT1WrV2Aoccikn3l385ZpgalA7bWiuGyh16K5DPbdrY/tOvQgH
nqzAaDniZQfjbrRTKq9rvOc+MNeKxz0oTDJ8JmzHiVvT2oLwBZMLEwwp2cT0eSg5
6ONLRRjQi+ThJnolBvB7ukwb6i22trZw+/Zt3LlzB1tbW1Z1BgIB9PX1YWBgwDZe
EnLShEzYiKt4iTcT/uIMrVgsWrKldoYzGVbTPp/PGIWc6emmzVAohM3NTXt2vKdM
AMlkEn19fUilUlhfX7cZJBdaUfdFaDCRSNiAmMuhlKXU2dmJra0tHB8fIxaLWUXK
QSs9vyKRiG2qzOfzpw78lRX1RU0h+ZzpkcYgR68yvjvE91WLwSVmhCLpg8aZ6Jkz
Z/D4448b5q8qeMKegUDApAAPHz7Ef/ff/Xf46KOPPJNpW1ubeW5poatrzjUA0yKG
e2HYOfIZc3spCygSPZSazg6Iz2Z/f9++VyKRwGOPPYYnn3wSc3NzGB4eblpdoVtD
GStmZmZw5coVfPzxx0ZRJ2kinU7jww8/xI9+9CO8/fbbtipDZ5hqicX/mCSVYdvX
14ezZ8/iypUrOH/+PMbGxkxz4yXe1KTiur57xV/1aGMsb3f3j6gSWh8Qh2BUKzPr
ucHdi+LM4LCysmLZt6+vD0NDQ017BE5LFvqhvOAoL5dnXRHgrmHmwaQvEEVgLqtN
4SseJFahnNm4g31lenmtM3Btb1whqBvQ3evWSp4MH12HS54+Ax27mFqtZjRDVViz
6uTGSB5eMtfc+6xbSfXaGJhVxUxBGdv48fFxTExM4KmnnsL169fx7rvvYmVlBcfH
xwgGgwiHw4hGo2afQqZSqVSyoE+qrIo3eT947ZVKxRaAcTCuz5jnndUz4Q2y8rjq
mnMh1SLQDoS6FkJCtEZKJpOIx+Pw+XzI5/OWbNbW1hAOh43509rainA4jIGBAaRS
KeuUdnZ27J1QM096lhFuTKfTptnxmk+cViwqEcOd7WlwVmIN4TgmTMJKfM/UPJLB
jaa2sVgMly9fxqVLlzA1NYVwOGzPlv9xZ/3u7m6TAeTu7q7Nz06jW4dCITvrPK+u
eaYXWYYFWDabNRGhK9NgVa7eajzbLGLITOvp6cGFCxfw9NNP4/Llyzhz5gwGBgYs
Kbm7i4hEHBwcYHp6Gr/7u7+Lt99+G7VaDWfPnoXP58P777+Pl156Ca+99hrW19eb
5ixEaNRXT3dtsWAi8jQ0NIQrV67giSeesI5K4TCNZUpecWOWCr5dSzHtZHgu213l
q9qTsHXmoaHiWrnjXkM4V7tRr9exsLCADz/8EC0tLRgeHrahu5fP2GkKYq8XyGve
4SY3TU5apbJKUXqil48ZW0dWs+qsqjMmt9tyoUKvxKk/57SKUqEp/n1VSzcaDWPL
7e/vo1wuo6OjwxyImYi0MlMnAO7mocU6uxhabLhCTV0Hm8/nUSgUmtYPKzGDFEfd
pRKNRvHLv/zLeP7553Hv3j1cu3YNd+/excrKClKplLFYyNjiILxarZp1B2cF6ixA
y36KTsn0qdfrVinr/U4mk8hms+jv70cikbBFYCRGqPWMdn5tbW0IBoMoFAqIRqNm
Lnj58mX09/ebRT2pqa2trdja2sLs7KxVi5VKxcTIqVTKMP62tjak02kb7pP9xO6h
paUFAwMDePjw4SfO+qfNZHQGSjhHg57CHUy0dLugfxmrcO45YgzgM9KOmh5WFy9e
xMTEhLFL+b05i2FxwvNZqVTMh62rqwsLCwu4d+/eJ7oX+rgp+qFVNYsTjSGumSxp
65yjca2FO1/g2SIrUN23Dw8PEYlEcOXKFTz//POYm5szmI4/h/GC7wgTqy4pfO65
53Dp0iVkMhkUi0W8+uqr+NGPfoTFxcUmijjjlNuVKRuUxAxuYH3kkUfw5JNP4uLF
ixgbGzOCgavdcynIpxXGSujRLbTuf00Jxj2siluyKqjVavD7/SaiVDjLhVP4YCgA
unnzJrq6ujA6OmpZnywV11PM9SbSw6EiMP357l5pdzClL5DqD7R61QelMBDnBHq4
1djN7WT0XmjCdhPoaYHAtb9WurN2R7pFsl6vw+fzYWBgALVaDZlMpmkDIQ8ch5JK
Y/T5fNb5UK/CJMMXwq1g+Dn29vZsCM8XqFqtolgsGqxKPQGvh7CWz+fD1atX8cgj
j2B5eRnXr1/Hhx9+iJWVFWxubqK3t9f0BITPFCfW88CElkql7HOwymai4tyGswOe
l0KhgEKhgOXlZaNxEhZVfykAtpvm+PgYo6OjRr5YXFzEwsICpqamDPLjXIMd5Pb2
NsbHx9HX14dCoYD+/n5Eo1EkEgk7HxSgMgERwuF5VLGoK+j9PLMWVs3u++Y1cC+X
y59Q2jOo0GeQy9kODw8xNDSEs2fPGjMpHA5bJc3vybNKOFe99AjpqtMDYSFN8mRL
ajGjhq66JoLFh7uhVqn9JBdwhwsH9a4ujEUdE2M8Hsfly5fxjW98A5cuXcL4+LjN
nMj40k6A7uXsYhhHeE729vZw//59vPjii/jggw/sHCuSpMlSoXjOkBmre3p6MDk5
iccee8y6llAoZIXZabIRRXfcs6GwGc8fE7KLPlkh6h5A/aZqCc2qghfpkgHci6QD
6Y0bN7CwsIBgMIjBwUGr6LyWin0euvRpannX28xlYinDTNcdE+bI5/Oeg23Fl3kN
+hl0qO/OjNyAfNrKZFd346phvWiaOhugwzALAIoBU6kURkZG0NPTY4uxWGXq5sr+
/n6Uy2WjX3KozBfV6zMpO4dQFF8gQgq5XM4M9ui5xYRDWI+WFCMjIxgdHcXVq1fx
wQcf4IMPPsDGxobRqGOxGBKJhNFpyTxjsmJ1WSgUUK1WbaiqnRohAzoN8Jr5WQ8P
D42hRaonKzT+fVa+HNIrFv/w4UN8+OGHiEQieOKJJwwK4r1eW1vD2NgYent7USwW
jTHFobmuwmZCTCaT9kyZuAgbasfyZZyXNTB7nUnOvLyK0IODA+zs7JhP29NPP41f
+IVfwODgYJPITxeWsbsm3bvRaBgporu7G6VSCel02oqdpaUl25vjJpe+vj6juiuT
VNcbu7NLMgt1URbPeqPRMEq9Unk1DhCWPjk5wblz5/Dss8/i8ccfx8zMjMF6Gg+8
zG45LlDCTiaTwe3bt/HjH/8Yb775pvnQsQhSjzO3G9XYy05ncnISjz76KK5evYpz
5855EgzcuYr+ntf6FiXceMkuvNClTyQYl9mkw2m+6GTleEE/vDiqma9du4aVlRXE
YjFEIpEmk0CdV6hlideMwsvM0k0qbrfjpT/hQdcXisGKh4nJgz+TyZRVhmsp7pVc
lJZJaEEJBTqv0vmBFxzorljmA9UWm4GSGLnf7zelcl9fn8GRhCUYcPW64/G4Gfzx
8/X09DStJXC57qVSCRsbG7bLnNdDLJyDdr7QtIUnK6lUKiGfz9vLRBji8uXLCIfD
uHnzJu7cuYNMJoNMJmMW+oRGBgYGzJYoGAyanxnXHrM61d0suspYRZKs+nw+n1WZ
DHSsJHW+RE8u6kbC4TBmZ2dx//593Lp1C6urq+js7LRZZTKZRC6XQ6FQQDgcth0p
4XDYzlhXVxcKhYK9d9xnz8qZHmn1et0s5l1izecZ7nsVZU3qa+nO9Z1yTVEPDw9R
Lpfx/PPP41d+5VcQjUatO9BFfrTSoRs2xaKEe/b397G1tYWdnR3TqmxubhoUx86O
FiZuZ89nrN2XWhu581DO49T1mvBnqVQyA1OFgJgoh4eH8cQTT+DJJ5+0zY883+q2
oZIOd6cOYcJKpYKlpSW88cYbeOWVV7C8vNyEzujw3itOa7zlEP/xxx/H888/jwsX
LhiL052lfprVi2swrD6JenZcHzmvM9eUYE6rqvkC0sBQyQCuUp0flgtukskkhoaG
MDAwYK2qYqVu6+XVEWjmdjPoaRRfrwTkDs35EtOMUAO23RyBUngz3eG/64isNG4K
nLijQV9mspJ0vSy9f2jAp9im/izXekbX0JIxRv+rVCpl8wRCXrS3UMEkaaKrq6tN
okEOpTn01/vOjXi5XM4o5vy+uVzOBHY6SCZJgpUoEyfZblSXA8D58+eRSCRsVsJE
Q3iGbt1zc3OYnp5u6l4ikYjNGLyGveqnRZo3n6/6u1FAx0DkmpOSkcjuKhaLob+/
H5lMxuYK1I2wIyEkVqlUjF1WKpVMCEcyCZ/n1taWORFkMhlsbW2hUqlYMqSy36uy
PO3Lfa+0aNKVxvprzm30vXr22WfxG7/xGwiHwxbYCcOxCOF+E5I9CGsVi0UUCgVs
bGyY/Q4p5hobOI9jQca5Hp8rg7gLhVO5r1C/vsv8Ptr1UA9DMfD+/j5KpRJ8Ph++
9a1v2axkeHjYCpjNzU08fPgQiUQC586dM4d5dh5qgVWtVs0K691338VLL72EW7du
WdLTpKZxUiEx7YwIoc7NzeGZZ57BN7/5TZw5c8beR9cCzIW5vKytTutw1COR+rfT
EBYrtBV20pdR/alYwVIl7s4YdA9EMpnEO++8g1wuh6GhIVNH6wVqNe41f9BsqS+B
O7DzsofWh+Bi9O6sh3+Xg10KKRUac0Vf5MK7ehcG142NDXz00UdYW1uzF0oDEV8M
VrD6echY8fv9GBoaMjq0l4mc/q87j6rVaujv70ckErHdLByycsBKpa6KaAcGBhAO
hw3OIiTBe+MeTtr2ENbQ7ZfsCFVDpTsyXLdqpR/7fD7rxgYHBxEIBCwIMEivra1h
Y2MDa2tr6OzsRCAQQKFQQFdXl4l+WZnypfWiWzPZuEu2OJ/iwJ9zFAZRrfY5/6Gd
0De/+U2sr6/bdkE6W3d0dCCfzxttlx0ltRhUV5+cnKBcLtt9XFxchN/vx7e//W1U
q1XcvHnT7HWKxaI9Gy1IPmvo7zV3dd8xJXdwaM5KvaurC9/4xjfwa7/2a7ZJlEgA
XQm4cLBWqyEQCGByctKK1Hq9jmKxiLW1NWObNRoNbGxsYHV11eY/7MYVOdDZA8+J
zloVodDZhNeaYxaRfAf5c2hw2dvbiyeffBLf/OY38cQTT2BkZAQDAwO2rOzevXv4
4Q9/iI8//hjf+973mhyx6YeoM61CoYD79+/jpZdewvvvv2+FBd8LBnC3G1BSEp9N
T0+Pwcrf+MY3MDMzY2QFN2Z6JRUXCnMH/BpH9dq0APIiWOkcut1dF6zKfW2TyX5R
d1W3iygUCrh+/TrS6TSGh4etndWKRzsEl0HlWsC7sxl3D7S2v6fRfl1igB5EBi3C
ZEwc2sFwuKZ7HKrVatNCJrbIb731Fq5du2YvBudVqkxX+MzFaTkfKhQKSCaTmJ+f
x+DgIMbGxmy7ozoVqLCTB5AVbWdnJwYGBqzyJzSlXQwrOH0GXMCUSqVMjU86I92D
CZH09/djYmLCgia/P4egPOi8R5xJ6OFkNaSwqdutKZtvaGgIIyMjuHLlim1+3N3d
xc7ODur1up07dXpWeFQrV3d4qgNZ142CNkOc4ej7oXtQ2A329fVha2vLGGH8t6xg
2dW4rCCeRSrJSVB4//33MTIyYptTOTtiZ6xJhZ9ZC4/P2hXjJZLWQkDJJ93d3Xj+
+efxH//H/zGGh4dtAM6fv7u7i1wuh3w+b+7UnD3pZ+3u7sa5c+dw+fJlI1Ps7e0h
k8lgeXkZ9+7dMxNRHUzz3DA5uAwrjQGqF3EJQmq1xM+pQTwQCOCv/JW/ghdeeAFz
c3OWSOv1OtbX1/Hv/t2/w5/8yZ+YOn5+fh73799HKBRqcoWuVCrIZrNYWVnBG2+8
gddeew1bW1v2XjCueJGZtACiwwA383Lj5OzsLKLRaBMrl++Rl6bFLbL0z/T9U1RH
XdLdWHuak0lLS8tfuCnzIGkC0HmFUnO9driwrfz444+RSqUwOjpqYilWrsot91L5
e0FzXhTo0zxvXOrvaUJMvYE8dKxSi8WiBSHFb9UDjUI+VsSdnZ1oNBr4kz/5Eywu
LiKRSDRt99NKWjni7upYHkjOuehvtLq6au339PQ0YrGYHUoN0mrfQhdpWqCsr6+j
XC4bfk8MWLsSfu6uri6Mj4/jzp07BnESlmAFy1laZ2cnzp49i66uLty9e9cctcmi
UbYOKbacNTDAK+ym3bQunVLmE63yOWcJh8NYXFxEoVBo0kSwc+Iz5DXpfWKC0YLE
pb27HbTCaspIUj0Czw/tY8hQSqfTtkqXwYC0V7/fb4k6Ho+bcLanpwdzc3O4du0a
XnzxRZw9e9ZmBIRd6BrgogGun9zncSLWglM7TFb53d3d+MVf/EX82q/9GqLRqHXu
DLyFQsEs4f1+P2ZnZxGPxw1S1XPhOkYQIqSNyTPPPIPV1VXs7OzYPWYXSacIavEI
zd+4cQM7OztQAbkLufPeUAvDYlGZZ0888QR+7ud+DleuXDGHgMPDQ+zs7OCNN97A
H//xH+PWrVsmEB0ZGcEjjzzStPOHIubl5WW8/fbb+NGPfoSFhQWbKSktXAXfblzk
Tqve3l5Eo1HMzc2ZWSahU3cUoIiNlyOGl05K/40WAiwCddb1aQxGzQ3tWuFpkmGA
ZIvpDkZ18VStVsO9e/dw//59hMNhY1S4w2/9We5+lE/zG/o0PNnLQFJbe4VHXB2A
7oxxV8VSUwHAEgYPqEI+e3t7+D//z/8Ty8vLuHjxYlOrq9RT9yF7OTBrK0p2ES2/
t7a2sLm5ibGxMUxPT5sNvjuE5WerVCo2o6CpI2dhDEaEPl0SRG9vL86cOWMV5Ojo
qHkokXnDJNfd3Y0LFy5gamoKOzs7WF5extraGtLptFWwNOMsFovGhKJuh1Cdtv4K
I5LKzvuqWiaq3+fn59Hd3Y3R0VFTy2ulpd2LCmHV9kZhXk0qah3vztpc+q86XhMe
DQQCNuhOJpNIJpNN85N6vW4sMlK9CVHyfsdiMczMzODmzZvY29vD+Ph4E9GA7D0X
VuG86/Ms73JhQ2WHMmB0dHTgO9/5Dn7913/dvPhYbFSrVWSzWRONjo6OmqsyGXLV
atXmhXRFYILXc8BOvrOzE3NzcxgfH29a2cGYNDw8jP7+foO2eZ5/+MMf2p4nt9rm
2SG9nkmGhdfo6CheeOEFPP3005iYmLCxAGHlra0t/Mt/+S9x8+ZNzM3NmTr+F37h
F/DYY49Z7CuXy9jY2MB7772Hl156CR9++CFqtZpJBLQzcPfkuDPpzs5ODA8PY3Z2
FhcvXmxihnm5nruiWhf+dOctboej74cupPRKLl5WWHqe2vVlUuNL/n9Xc+HlpplO
p3H//n10d3ebRsaF3Vy4S1923ZapVaxbRboDdhc3dBON/n22wbrPhNCMuuHy72lV
yt/n4I5q7+7ubvzJn/wJ/uzP/gx//a//9aaux2sJmaqelTVHmMslTvAgdnV1GXTF
AH7mzBmcPXsWAwMDn2DK+Hw+1Go15HI5Sw6klHZ1dRkdlkppJkDiq1x+NTExgeXl
ZWxtbaG1tdUWIik8qLDJ5OQkRkdHUavVkEqlsL29jVQqhZ2dHaTTaaOnslLt6+uz
fecaKKmN0JWsOsPheSyXy7hz5w4ODw8xNzeHSCTSBIdo0nBfEq1u+Xd16Mvz6RIb
vGj53DFCXJ/3ULHw2dlZ0whRlEiyhfresWAjXZwGn5OTk8hkMtjY2DD9DC1MSNF2
2VQcAjOoui7eXiu9XSKNQrff/OY38eu//uuIRqOW3GjHn8/nzdFgeHgYsVjMmIdk
hhFW5UxPd0qxO9bhNbsLnlUWNyyOuBqA3ZPSznnO3JktCwBasZBQ0tvbi8cffxx/
9a/+VVy6dMngbc7eWISOj4/ju9/9Lo6PjzE2Noa/8lf+Cq5evWoCxt3dXWxubuLG
jRt46aWX8NZbbyGdTje5baiziMLdrti9tbUVkUgEV69exdNPP40LFy6YoagO772Y
ZW5H4nYnXkN8TXzsWnR1vMtkdZOMF7TdruIp9fh35x4aUBRqKhQKuHv3rlUtugdC
s6Frr6+sFZdq6QWLKYTiNXc5rWVzF57xgJGto/vteaB0+K0QDYMOf79SqeCP//iP
MTo6apWU243pzEETrmLcp+1UUFydQXxwcBDFYhHz8/PY3NzExYsXMTk5aR0Xf6bf
7zdWVSQSQSqVQj6fx/DwsM1qKGwj7kznXD7vRCKBg4MDbGxs4ODgAGfOnEF/f7+9
8EzKLlGB2qKJiQljUmWzWayvr5tanw4A9AVjt0Z6KHUJhI+4dEy7kbt376JUKpn1
Bc+GruZVmFa3ceoKZn2uOtx0zfv0s+rQWZmByspTD7Ouri48/vjjCAQC2NnZQT6f
ty6Hw3HOMfRnk6mUzWaNLJBOp5sWsPX19TUFS7eQIxyjljCfBpO5qMDh4SHOnTuH
3/iN38DIyIiJVVlwUahKvRK7Xbp4kIpOZhNhXcKDTFIqJGSidtl77Arp6MBunT8r
m83aYF2fv64Dd9lT09PTeO655/DUU0/ZGg7+GcW61IgNDQ3hV3/1VzExMYGhoSFc
vnzZJACbm5uYn5/HT37yE7z22mtYWVkxmynVs6gOz8uehoa8ZIY9+eSTJtBVIbjX
kF4L1dN2TLkJSKUdhMK0I/YSjH/W7MXYmjrUpwhP6Yhs1XWJmL5whG7C4TCCwWAT
zObyz10n5NM2PLqwmVeW9qLvuj/H7STcqkE3+dEMki89KypVAiuPHoDRkB955JGm
l0OhFiZuV6HP7+1a9nv9WrtA+mR1dnYin8/jrbfeMpsSVtHcgFiv15HJZDAyMmLi
vng83mQFs7e317Rn22V2xWIxHB8fY319HQsLC5ienm5SqSud2osNyCDo9/sxPDyM
CxcuGNV2fX0dW1tbyOVy2N7eNmU4q1zi5DosZZdD6vLU1BSGh4ebdvWoa7S+iAxm
eoZdCFdndTon0K7SS1isX4R69OXloPbixYuIRqNYW1szCjQ/K987wntq+z4/P49G
o4FYLNakp6EZ5Wm6F1V5fx7bey3CmAji8Tj+9t/+27h8+XITlE5mVLVaNWdqJhHO
H8rlMlpbW23HCC1/tHvL5/OW+Fn4uJb+Pp8PoVAIY2NjNodkcuM+l3w+j2w228Ry
UuKQ+iK2trYikUjgySefxDPPPIPZ2VnzDuNZUT0YWXGdnZ0YGxuzQo2rPx48eIA3
33wTL7/8Mu7cudNUMGhR5ArGXd1Sd3e3+fV985vfxOzsrDkde0FQLrzlzkA+iy2o
hTnJPxq73VjtJbj+NLlIuwZzVqZUeisO7DJMSDXc3t5GV1eXrXhV/x8OPPXmul5n
XhCXZnXik17aD6/VnZpkvDK4S1FmG0+Ihj9PqyYV67EK5tCZlbXrhuyK19wlZF6U
addmx8swU4Mch/a3bt1CPp/H1atXbVkVl6SVSiXs7e2ZO7AGNHeXDH8+gypftHA4
jOPjY6yuruLu3bs4c+YM/H5/UyVLYgFxcGLqfFF1rsSFZOfOnUMul8Pm5iYePHiA
5eVlrKysoFar2d4Rbrf0+XwYGhrC0NAQDg8PkcvlMDIygkQiYTRQZUTpjE1dD/Ts
sbJ1z5HCxqz+lZaulaOX2Sn/V9lK/H0yykKhEFZXV83sk1U7gzA/B+c0TEB+v9/m
HZQAcOur154VRSe89nichh7wPQiHw/g7f+fv4LnnnvvEDKxer6NUKqGnp6epKKCI
lhCsrmAgC4/PjPNB3QzJQDswMGDGp7QLGh0dtX073Aq6ubmJpaUltLe3Y2hoyKx4
XCIBu5dQKITJyUnrDug+oDCsS/Do6+tDLpdDqVQyB+5yuYz19XVcu3YNL7/8Mt59
912USiVzMlZNi3aPbjfMWebQ0BCuXr2KZ555BhcuXDBx+mmbbrXbPm0u7TrT69/X
zoVJXen8LklKz4+7TNJr7xWAv2CRuVVbo9Fo0gHowFC/UaFQQC6XM2W1ezjdKk6H
2O6L6eVp5v6vwkr6790uhfMjd2Ga/hkfvGog2MqqvbhL1+ZnqNfrJo5UZbxrfunu
TXDZdy4mrv9eg6EbFPjv6Ly7ubmJYrGIp556ClNTU01zAF4rh81KaODcRavuT9g9
/L8K/PHxcaysrODOnTsYHh62OQAXxzGZMbEw0JMirQGa5ysWiyEajWJmZgabm5u4
e/cu5ufnsbq6ilQqhZWVFXR1deH8+fMYGRmx4FooFCwYkdnlzoWUEagBn/MKdW5Q
ZwV315CXmyzhZKW/MvC6okQmGaXYci98LBbD+vq6bfvkc+K55ZZEXisXn2UyGdua
qbt1CJOeZg2jmqPPGv4Hg0F8//vfx3e+8x0r9gij0oSTdHh2eVT3cz00u0YWLgy2
hUIB6+vrphcitNnf32+0ZmWJcb6VTCbR0tJiXVy9XjcHgPHx8aaigcUx99P09PRg
amoKV69exZNPPmmQL+OJQqtukqaTQLFYtF1Y169fxyuvvIK33noLm5ub1qmTcOBl
UuuiBK2trRgaGsJjjz2GZ555BpcvX0YikWgyo/QqkNUFxKvQ8WLTusxaNTblPMyL
zesyd732W51GGGlXPzFlW1GExEOtexP4RZX6+Pg4/H6/Db9d52I3W7o2z64QyBV6
6ZD/NFsbL1ty1xDRNWJzCQHxeBypVApbW1v2ELV74TUR6x0fHzcRmMuacwkLpxES
lDap66t5Te6hcAdtDKDBYBDpdBovv/yyVUCEO+nGS/qzbulkR8bvw2et9vY0fezr
68PY2JjBoqQ+qyU/kzLPEP22aDHE7pisJE0KiUQCwWAQ586dM/iMA1Ji4+VyGQsL
C0b37Ovrw8jICEZGRsyokti8a8tDLZeKxZTmrbNGhVpdfZb7fb3cx1WfxDmPUn4J
L05MTKCvrw8tLS1YWloyC3j+bFr78LqZuLiLhs+Va8wJ7XoN9F0Wo1rbu1/hcBjf
//738df+2l8zTQ7PDGFY/mwNblydTKse3k+KDrPZLNbW1vDw4UOkUimb5SUSCfOj
Y+Wuu4/o5M4Ew3tdKpWwvb2Nvb09bG9vY3Fx0dYk6D0YHBzElStX8M1vfhOXLl0y
pwdlXio0fJoryObmJm7fvo2VlRW8//77uHv3rqn+ea1eaI0Wb4QsI5EILly4YJ5m
9A10h/On7Y5y1fleHanGCWU56ljEHeR/mrfdp0FiXnOfdpd6ptmVSYasDz1MAAx/
pWmhMqjUnl3V8C4bwYvl4LZlXji3u+1RE5VXV+Oys5RuTSiI8AsrJN0dztkL4aB0
Oo2enh5bDsWKkAfWC6f0wjH1QLtJWA+RW124nR7X8KbTafz4xz/G8fExLl26ZLqY
/f19Y9fQ9oUvKSt6t9rU2QMJEMFgED09PUin0+ZFpp+Z10KmWEdHB6rVqhUbKvAk
dMROklUkVwRPTU2hUCg0dUbDw8NGQMjlcqZJyufz9n0o6qTw0e2QyZxjomFl7epA
eE50eOo6R3itYnD/XOE5Fzo9OjpCKBTCo48+ir6+PiwuLtq/ZbJSMogWfel0GoVC
AcPDw/aZCC+6+Lo7H2TB6LX2OpFI4Pvf/z6++93voqWlBdVqtWkHDwfXLpxHSx3C
ZapnqlQq2NzcNGshaqii0SgGBwcRDodtQRYX1tGLjXMTamD4fHZ2dvDBBx9geXnZ
khkdAJjgg8Egpqam8PTTT+OJJ57A6OhoU3fgJWVw4SUuFLt58yb+9E//FG+88QbS
6bQFa8Y+1zvMfYdZbA8MDGBubs7cAaampgyJ8GJ3uaxdL7G6C51pYa3EAk1GKjL2
mme7M53TkovXyhWDyDTDuYMdYpY9PT3WervfnOtEOWB2nQHU9trLMeC0IdWnsclc
U0ivvSsKbXk5mvIhKGOOA7bu7m48ePAAGxsb5pHF4SsDIysp2pi4q1Bddpj7smtF
rDoQr9mNO5jmNTA4qC4pGAwilUrhjTfeQHd3N6ampmy1K+FOZe/o4iLtqFzxFytx
qtA50K3Vakin08hms2aFo/ocDRD6kvl8PnPD1S6X7svlchmVSsWU6sFg0Fhm09PT
TdU0n5FqmNTiRF86Bm1V+Stsx+Dk2o7we7n0XffFc1mYpynktejivOns2bNoa2vD
gwcPmsSTnIXSCp7VOe8/NR90AVDRpXvuFNaj1kThsv7+fvzmb/4mvvOd75iXWK1W
s2E37fe1oGJ3QsNFDreZLIrFItbX15HL5eD3+237ZH9/v8GbPJdMItROVavVpp0/
ZI0tLi7iww8/xNbWlrHwKHDkDGd6ehqXL1/G448/jrm5OQQCAc81Hl5zK56FarWK
xcVF/PjHP8Yrr7yCe/fuNS1543V7zUzV64/XNDMzg6effhpPPvmkDfDVpUCvy0uF
70XKUKTEq4DRAsr9rC6y4xbAXo4tXvZe7vzFYGMvmxa98WSWEQNl1UIBYa1Ww+rq
Ks6fP28UVnKoXfqzV7Z0bfXd6sGLRulazKiOxHVYdg+Qdht6XezaqBDmMHZpaQmF
QsEgDXYy6+vrho2z01Mev9e+DTfRnbYHxuuBuWacXjRtHmp2Mq+//roF5UKhYN9D
lybxxVT/I167u2NC4Uvax3AGsLW1hUKhgMHBwSbbDiYm3msy10qlUpP9DrssQiz8
TFwTzMVh9Xodu7u7Rtll0Ovr6zNaq54/hbCU/qqFijoiaBLXe8t74WV2ehpRQ61n
WGwow8mdTba1tWFsbMw8utSmnV1Za2urJd2+vj6bR5EaTA0Ur/fThMtEKXgfent7
8Su/8it4/vnncXBwgEwmg3q9boNxJjYGNP570oLpW8fnzuSys7ODarWKUCiEYDDY
RKzgc6fmhwmTxpDKgDs4OEAul8P8/Dzm5+etqOEKZ+7LGR4extmzZ/HEE0/g7Nmz
nxiWq9jWq2imwHBtbc0U+B9++GFTstP1wKeJDPlnbW1tOHPmDJ544gk888wzOHv2
rG1n9YK8TlPge7FovSz19bMxuZxGKHJZq58XeTnt/7u/364X6VJOlUNO+w33q1wu
4+2338bc3BwuXrxoWV8DBH2sXLz301Sg7t5qry7L7UrcF0qrcS/80v1+KrSkOWR3
dzfu3btnLwHvCbcQ9vT0WPDWh6hUaS+rClaOrjbIdf3VB+i6S7vDO7VB6e/vx+bm
Jt544w18+9vfNksbDky1W6LHkBYD/KwqRtTBqVqtDA4OYm5uDm+++SZyuZwNTjnz
cJX6JFKQrkrhIZMCrTFYzJCc0Gg0muAifh8mfe4WIZSkHaSyGd35D4fxOrdRk1LX
JcKLbKFQnPpauedOt0hqclcfrUQigaGhISwuLjaJEdk9sLDhHqNisWgDdc6aCIm4
gcOdMfAs9fb24nvf+x6++93vGgW/0Wj8/0h7l6c47/R6/EHc+0Y3d4G4CCGEpICx
sO6WpdQsprJIvMhUKpvkr0gWqcp/kEVS2UxVFtlkNZWkKpPKeGRrZHvGM7YT22XL
ninQWEJIIAHiTjc0YIS+i+R86vTR83kb/35UqWwJqel+38/7XM5zznksnU5bd3d3
6Iy4cEQiADuQgziSBaBLWJrwfE9JFUhWuNc4k+Vy2ZaXl21lZcUWFhZsbm7ODg8P
LZ/PBwfu9vZ2Gx0dteHhYTtz5oyNjo5aX19fhaalmnsIL1P77LPP7N1337Vf//rX
tri4WEF71w5GYxoH/76+vpBYzp07F65DjGYc8w5LmofwedeVDbEVJzGoLWnWEkss
nkQhrFjXBVbergGexehO7NXVVfvyyy/t8PDQ/uqv/sp6enoqRDo8j2GGTewG6dyF
A7VesBj85V0opS0zhVTdA/DfXC5np0+ftoaGBnv8+HEQcdXU1ISFUfAwY4cD1vvw
fIgdDLwVBMoy82661/kpNRvBvbm52aampqyzs9POnTsXrj8ChYpJEbx1rw5fcwzx
kXDxHs+ePWsrKyv2y1/+0hYWFkLwABSGZIMEyIwunZ2w4SCSPndZTN1FpYgkBSiC
uxDAaTxnYEcABA62pucHl5OKioYVClYdGMMkanAKESEzjQBbDQwM2NLSki0tLYUu
uVgshv3xYHClUqlAD4fYF/MPPRf6XHFCvHr1qr399tvW1NQUhu/pdNra29sDJR3X
AawjdFZwYuDnER0I6PRYGcxwJZ9XXtMM2xa4K8/Pz9uzZ8/CriIl8BQKBbt06ZJd
uXLFTp06FVzc0U3FqnUNxMVi0aampuz27dt29+5de/DgQYUlFp6ZGMmIA3VnZ6dN
TEzYW2+9ZRMTE0HGoWQmlnR47sexuTWfYy6EPB+92FJHb2NlEuLiISsey7JiyO8F
Lr6oDClx5WpmAT9cWFiwf//3f7d0Om1/8zd/E4wuubpDlaxDMN59UGGS9n/VnyYY
XiPgbXVThSvj6doaM7TENw+fHZAgVqE2NDTYzMyMvXjxworFoi0sLFhHR0eorNmH
jFtp/gzaPakNuboUKPdcmWQsElQrH2D0X3zxhXV0dFh7e3uoDBGMda92rEvi6wya
N9479A4XL160mpqasKoAxpfLy8sBfgQjDf9FMmG/MezPgRU7zh5gHC6IkGzYH07X
PqCaZpgLeD26A66oOUHgzOpcTS1nvEqRve5wzpAk+XnTdbgvXrywTCZjg4ODoSvj
DkfvP7yv0ul0GNzjM2pg4XuG12pra7OrV68G920wu5DMOBHye0ERw5Y4fE9wvzC/
RFeH54Vnc2DMoXvZ3Ny0R48e2cOHD61YLIZ13LBJwUxxdHQ02NWfOnXKCoVC0OMo
FB9bEbKzs2Nzc3P24Ycf2s9//nO7d+9eWJbHz3C1ah6zwrGxMbt27ZpNTk6GLiop
sfAzW20DqfcZdIsvU/RjsSSJepzEFotB/LFup84TNSp1EwcZlSKw4Gw2a+3t7cHl
9ic/+YmNjo7aX/zFX1g2m7VisRiMEcHa0YCLhxjVBl9AT5AUM1zTlo8vtHYXyjJT
tb5qGhobG627uzsctpmZGVtbW7Pf/e539qd/+qcBkoDRosJ73k3WzYEMg3kVkQ6j
lW2n1wafOZPJ2Orqqk1NTdmlS5fCIL1cLrvGewodskiP2Xg8l8H9T6fTdvHiRevv
7w8Mw83NzTC0L5fLtru7a1tbWxWfCbAOq/b39/fDkB8dMYwTmWHEnQ2z0pjCzQEC
kCC68r29vVdsgpiyyv5xCNBgUnmeeXzGcP2YUALYhwkU7InHQ9n29nY7fvy4PXv2
rEKcCIcEiFpR9YOODqFfqVRyDTC1Cu7v77e+vr5wvaH5YIsZCHLx73mnPJ9TJBco
2Rkm5HUSQAJYG1MsFm11dTXQ4HnXDWyJ4BrQ29trZ86cscuXL9vrr78e5qbaHXpL
txjGW15etv/+7/+2n/3sZ/bpp5/a8vKyC4d5c1LuGJqbm21sbMyuX79uk5OTwZuM
mWFqCcVmqpoQYy4nug8Kei5ejMhWL96csBoElrTEMfa9WLKpU/M+FWRx5scDAvwX
GoRUKhUGtz/+8Y9tcHDQbt26FXBarpJRvbBmAAeIg4Nnqa4XgNkeiqHz+9bWk6sB
1gyopxYCCSi7bW1tdubMGTt27FgYNP7Zn/2ZtbS02Pb2dqBxI1l7ilhmvnmKW+5C
VKSqCUoTpufBBkX9gwcPgm5nZ2cnVIAcSHlJmJra6ewDwRlzKizPqq+vDwwzwCRI
CDykh4Mtvre+vh7uE89s8P+YA8I8kYM4q+dRCCEQ8wxR4RUW3uJaoqLWtp81Myz2
jW1g5WSGmRvrERg25gSIwIjE3tnZaRsbGxVEFB7yIimDbg5SBxADwFL8XDBU2Nzc
bBMTE9bS0hK2oaZSqVB84HnHzEi7ZC7MMFvi2SsHd3wudMCAxLBOGQvkkFiYuYcO
NpfL2fnz5+3KlSs2NjZmg4ODYebHXVpDQ4Ntb2/b3t5e6Hr5GS8Wi/bNN9/Yz3/+
c7t7967Nz89XuJCon2KMeVVXV2ejo6N27do1u3Tpkp06dSp4hmliSZrxeUG/mm2U
rlZhEomXPLzPk2T5oolUnwmvG3plZbL3AxlWUsoxKkjw8fv7+y2fz9vW1pbV19fb
73//e/uHf/gHO3nypJ04ccLW19fDQYbFOlecyLTQTPDFQoJhczgd6Cu119v74MFn
Gji4o2D2hxIG2traQpUNu4pcLmcrKyvW09PjYt8Ky2klwrY6CsHoQfP8vlR1qx1P
U1NT8EsaHx+33d1d29zcDAI/vuaeeSjDktwpQIgKuAvYPB5wzFQQRMDgYuYSqKlY
rYu/pw8UnxUldqAYAYzJEAkzaNAp8XnBeYBRKc/J+F4g+CBRgMLPyZDvke5g4eDL
Ijc2QOR5DHtwtbW1hWsH0SVgJwQwJPPW1taAGEDZrw89n/mTJ0/a2NhY+NmpVCpU
3rhGuPb4zJjx4MxwgQJncjwj6suHf1NXV2fFYtEePXpkMzMzwYYFn4nXDqMbwnIy
0I7hIMDBEZ8d15eDIAre2dlZu3v3rt2+fdumpqbCamVmanrrfzVQDw8P25UrV+zy
5cs2MjJSwZBTq3wt/BgW97asagfjqfJZs+ahNzFYK0mk7vnVxa5FUpKpgMh04RJj
zvpBcDhLpZI1NjYGi/alpaWg+v71r39tP/7xj+1v//ZvQ/WAG8x6Gaw83d/fD8It
tuOGGEzZVTH6Miv/PcjJu6CsavUuGldFqIZbWlpsZGTEZmZmbGNjw+rq6mxpaamC
Tqw2Md4iIX3fOodhOicfMsXxY+4ADE0cO3bMHj16ZN3d3QHX7+zsrPiZHOCYPaZD
YrZ6AWUW1Sq6IHY2xrAccxl0TpixZLNZ6+joCF1NqVSyra2tUIEqFMY6HQQV3jKJ
ogQVPkNdDPmxCI2hMIVnOWCws4XX9XMxoDoZhoc5wWBFAc9p2A0gn88H40hAWBwM
cX8BPyHhw11Dkwy+UqmUXbx4MXjaMZLgzYk8mjM6ESQFdFS8ZhmwIAoQwKTT09P2
5Zdf2tOnT0NngwKBLav6+/vt4sWLNjk5aSMjI8Hskp8NdNJItih0uKNdWlqyjz76
yP7rv/7LvvrqK9vY2HhlvfpRAizez/Xr1+3s2bNh26zSi70ZB6MAuqMl9vP5zHuB
Xmew1fa2VKMeJ4kuY2yx2GvXJbG31MqErVBw0EdHR+2tt96y2dnZsBO9XC7bv/zL
v9jY2Jj9+Z//eUUrhyDCAkFVk+PnYtDGKmb19lGVNHcNXD0yjBGzyNbtf/qz+ToB
HgQE9PTp0wrdiLa+vPdDRUyeIwHbwrMuRUWAXkWvA0CojUulUrDeh70/1O6oUrXQ
wIPKO1M8O3d0m3iYeRcH/MjQYYDxxYNj9jzLZrPW2tpaYdcOrQySzt7enm1tbQUl
P/YQqbMwzgcwdbwegh8nKggaec6lvk8sqGXRptdRezbnHJh5XTTPvJj4giSZy+UC
zJhKpcJ9wIyQK3YmLTQ0NAQvLi6+zMzOnTtnExMT4TrncrlQJGjHqmQBpVejY2JI
CEkFSQZD/I2NDZuenrbf/OY3trKyEtzBWQvz8uVLa29vt7GxsQCHdXd3vyL0BDoC
2A0MNN7UurGxYd988439x3/8h3344Ye2srLySgI9yhqDrq4um5ycDHYzSHQ8Z2G6
sGddxWdLSUhakHqiXi+YewWxt36hmq1LNYbcUS1iKiAypk9yNlVGg3rqvHz50paW
luz48eP2J3/yJ3b//n37zW9+E5JCsVi0f/zHf7TR0VG7cOFCuEjNzc0BI2bojQVX
PPxnWqvurNaMrXYq+n71e+pxFrNg0CEvAhSEbmDewPo+tttFdTkagPRnqVOBt9dB
CwMlRigzbn5+3nZ3d629vT2I6BTb1ZZbrSX4OkIXg3kMAjdb+bN9DJhOqLQxu+FF
bnyN0NVCRIelTuVy2QqFgrW0tAS/sr6+vgpGGj/0qhtCVa37XdgBQIOOuux6rrR8
jrjqR1IBTMazRoaaOOHg/qFAgG28QsHoPLAimudiDPPxc9Pd3W23bt2yfD4fikV0
DkziUN9AXAOw65DMwF5j5ignIcBTS0tL9vXXX9sXX3xhCwsLQbANIS2G+GNjY3bz
5s0wMMd8k2MBzhgWjqF7xvc3NzdtZmbG7ty5Y7dv37aHDx8GskRMxe995XI5m5yc
tOvXr9v4+Lh1d3cHohM/W1wMamLRbjdpn5UiFtoJJzG6YsmlWmI6iko/Zg+TaBWj
OH+s8lLeOsRvi4uLYRnR4uJihQnhgwcP7O///u/t7/7u76yrqyvst0DrDp482mFY
XvCSKFZkaxXmrXnlYKw26942P0/ZqiueGRpSy3f4ZLW1tdn29ral0+nw91FVcUDB
e2eIgx9cvu74PPzg8GHjh1khMX4NnisUi0VbXl4OwV237DEDhbd5MmXTI0yAsYMZ
BWjDXGmq8SQCE6w+AJdi5oZrx0GZgy0MSnO5nB0eHlpnZ2dYccsDeV2ohKpanZa1
qGAWmFrJaOBV2rjO+Zjdg2uqQll0ajrERQfMzDAOPDpXgaYI/mQQOuM9NzQ02Btv
vGEjIyMVNjOcbLk7xfViphKIPjxzYJNQ7m5g+7KwsGAzMzO2ubkZVn4vLy+HLZ8H
BwfW19dnN27csJs3b9rw8HCYs7A8Au8NJqLYOAnGYLlctqdPn9ovf/lLe+edd+zr
r7+uQEOOmliam5ttfHzc3nzzTbtw4YKdOHEiPN84M55/mBKLYq7DnkecQtZe1xLb
z1JtTqKQXxIVWRNTUjLyILhAgmButWZWdZJlqAtVEpbw3LhxwxYWFuwnP/mJPXz4
0HZ2diydTttHH31k//RP/2R//dd/bel0OjxoEIqxiAmOvOwgAChCBZq600NbTIWY
1NBOeemeUaXX5jJNFQ82uP5bW1uWy+UqYATGXT1nAmY78cxDOxc1AFUFf4yowV0I
w5zAwlmrwUmGjQ216tIZAxsG8oPHcwoO1LwvBdcTCn6QAHDPuVrmeRKSEO5/fX29
5fP5V0SSGI7z0BjBSenXXMAwXIjPr87gfM006bOYlqFATg78PQzRvTOCGRcCOixL
cL3RHTA0A3gMxRyvUwbUA3o5q/C5e8Rm0YODgwB/Af7kfVHq28bvfX9/v4IhhhUD
hULBBgYGbGZmxqampqy5udlu3rxpf/iHf2ivv/66dXR0VMxycP+YeMRMNuhZ1tfX
7YsvvrD//M//tI8//tg2NzcrNsMe5auxsbFim+Tg4GCFQzfOFhMZYgkmaaGg0tvV
BcTrEDwkJuZb6PmJxRhhSbOY2DyqWuI0s/+FyJTRlDQc5wcLldLy8rJ1dXXZj370
I0un0/bP//zPNj09HSrpf/u3f7PR0VH70Y9+FIRbqVQqLJNiLyKeM3Cw8yi4nPk9
uInZIzq8TVLJe12QsrZ4HS2+VlZWrKGhwVpbW91WVysDXEMV7DEzhm8yB2xvKKkM
k9gaauhJ0DHgGrEhJQIYY+o6I1LfN8Bk+MW0Wm9NgvonwYFZ9VIIwAx3AeIC3Acm
GOtJuHPDe2AnZ5wtvG9lPXGwAPOt2vVXC382jmU6L/4tZhM4+1oRMgwKfzzeZ8Nd
D16b6dfNzc2h80FyGB8ft56ensAGhSWPikZ5ZxK7HYCkodbv/NlQMK6urtr09LQ9
fPiwQrvEZ/3SpUv2+uuv261bt2xoaCi4AiCBeVsV+frv7+/b5uam3b9/39577z37
xS9+YU+fPq2Ac4+SXGpra+3UqVN25coVu3r1qp0+fdrVsugeFmWL6f3zIH1vpuXF
G29Yf9QhfrVZSzUrmGrwWJLgNCQYXabl+dh4H4jxYbS/J06csD/+4z+2zc1N++lP
f2pbW1shkL3//vv2xhtvWH9/f2CT5XK5YHPBgYHnCKoTQAXLegDvg+kH5rlHzPhN
k5NqThiKYOgNv9/d3bXFxUWrqakJnUxsaKbBltcr69/jP9P5UFL14kEtvDueqaf4
PTpG3nqpDCm28fccEThx8pY8dWjg66csNWbjISjp+tmdnZ2KdQp6Hnj+w/ON7e3t
sLYAZw02K8q48t4fvy7/OcNKnDihSVHYgucTzN7T1c08I2ppaQmaEHTNuF88nMe1
hhEoPm93d7e9/vrrFe7JKAY4weE6cwLiwMoaNT5vbGCK5XCzs7P25MmT8DMAh3d0
dNj169ft6tWrdubMmbC0kJd/eewo/B6iztnZ2cAOm56eDmclZvbpfTEz7MyZM0GO
wOsWNLnw7CXJyslb4ud1qVrsxlhl1eCpmBi02vymmsAyqduJdTh1DIWpyI4rT8aJ
+YLiwu/v79vi4qJ1dXXZ22+/bf39/ba4uBgCWE1Nja2trQXmBVxQ8WADI+WBMAcX
Ft3FnGxjFD9d3uXd+CQ76pj4CQ8DY9O8FAndTcyBgLFWThDaceneeK0uvPmBQja8
axwLpBD8EXzZ5h33mTeDKubMlhR4HwhyvEcFGhP+bB5bkedOnucS+5AhEeAac4HA
AZsDOeCy7e3tCmsWFEEKK7CiH90PErDSUdk/jZlnbBjKhRGfCw7MGhgZZsWsJJvN
hsIMiXx7e7tiMyM/17B02d/ft0uXLllPT4/t7u5aPp8PMzNeLc0wI2x98Lk5AbCz
AFfmuEebm5s2Pz9vjx8/DlTkg4ODMDT/wQ9+YBMTE9bZ2Vlhs8/PqmdQCYr70tKS
/c///I+988479umnn1q5XK6IY0dRm7e3t9vFixftzTfftLNnz1ZQoL2uhbsVRT1i
Q3iOq97ixVjc8aComDt2kiO7971qyef7sMVirvEVQku1umCGimZWHdpC4wDfqXQ6
bePj40HUt76+Hswhnzx5YkNDQ9bU1BSsVfBwsd5CNQqgwPJA1mNhxDK7VgxeotLX
YsNPb9+DBmJAB0gyOKxe98edlQpbPWWtWuXokJ23VLIdPQdfTkC7u7th5wgHGaZ9
s2usQkg8iOfZCK4XgrB2Uxz4khguWomBvoohN/4+EiWvKOZZB2A0UFhVeIf3Alaj
p48CgYEH89zBAkLi5MvkDA5YnNCR1Nl8lAMkWFI4+yhm0ul0uH9g1AEVwPVF4mUb
+8HBQbtw4YIdHByENQe6zZBnPoATMefhGSQXHbjOIGiAwLO4uGi/+93vwn6bxsZG
GxkZsR/+8Id28+ZN6+/vD7MdTYzePBHXZG1tzX7729/au+++ax9++GHQoB11znLs
2DHLZDI2MTFht27dsomJibASIgaH8S/PJdvzQ4yhQEnJz5t3xDzUvM7Fs92PaWdi
Sv+jzmaqscqCVYz+Ba8CUBdZTkBYRIUOZ3t7O6jzX758GRILuPqFQiGok/FwwUBS
nVKVKaO7DVTkxg8KV4N8ozVBehWC0gp1tTG/F8BGbAeytbVlNTU1odVWoZS+J4V0
PJt4Xces1ZBncaKHkSE+2LSwQzLeKwIsghpbUsRwZ6bdwhgVVTC7N3i2P7qrQ/2t
oPTnTgeGo3t7e2FVMncsPFxHQMdnQdJBF6Rn2ptNqk0Hd024/6j4uWvBUJxnHDD0
RILkc8zBTGnRMJnMZDLB3w1CR2+7K6CzQqFgk5OTgXEHh2QWxrJoEZ+DVxngczDE
ieQHeHF7e9vW19dtZWXF7t+/b9PT01Yqlayjo8N+8IMf2B/90R/Z2bNnLZvNViQs
deNQRALedDMzM/b+++/b7du37cGDB4mO6bHEMjo6ajdu3LCLFy9ab29vgACVHaaz
lmoiSm925hncJlGOk9T4sQF70qwkKTHErGCSEkmMVeZ1RmHhmKebYAaMVs5sbYFD
CKsQFpJBgAUjQ9iCPHz4MGyzY5gGB55NANXWXm9QtYytUJmaYHpsD+4KFGbT98JV
PQeRFy9e2ObmZnBYjXUjrDLXGYK3oc5bx+vNWjwcmG1eampqbGtrKwy4eZ0CKjRA
f0xP9/Zq6IZIpmAjwbDIkQfvaknEw2JeTgZzRLP/XVK1sbFhCwsLtrq6GuxfICjk
YbfStNkLjCEZvqf6npgyyomS/dug8gftG4UXYEG+TyisWHDKgUu1S6rorqurs0wm
Y4VCwdbX1yvgZRQG3FliHXhvb68dHBxYJpOp6L61qkXAx71l9hQnTb6ebHS5trZm
s7OzNj09bcVi0S5cuGBvv/223bp1y7q6usI5BotUiz6VSuzs7Nj8/Lx9/vnn9rOf
/cw+//zzio7Pq/A10DY1NdnIyIi9+eabdunSJevv7w9aFp2nePRjjyWmGrTYKgCO
aUlLFL1YlmQX5YkoY7qUo2hckjodjUHVqMsVOpijeNVwwEAFj+E8EgiEe6gSYQuC
mwefoK2tLVtcXLSenp4gugRO7NFwdZlXkmJVqwZPz1ONA67XgjsQb6DOEBfTKREI
Dw8PraWlpcJCHZ+DBaeKZbMGxVsD7THFFOpSSxP+N+hgNDl5RpsoJoLHEDGL2LHa
C8pqMOoJWvFaYFShOmeV/8HBgW1tbdn6+rqtra1VWNRD5c8Ucl6ahiCCouXFixcV
DED2suJrygaIDG+xaSfs9bPZbLhPvFCOVzmzvQpTsfnas7koV+Z4rnBNW1tbQwfE
UC1gLZyhXC5nQ0NDAaqDvkz3s+M6o8BQZ3MkHg7EvDhtb2/PVlZWAiU5lUrZX/7l
X9oPf/hDO3XqVEi+TPFVNIHP8d7enj1//ty+/vpre/fdd+1Xv/qVbWxsuGc5Fkwb
GxttYGDArl27ZteuXbNTp04FLQsnZcQ1XfilK4x17lJtiZcnDI8ljWoEnmpeYtWS
SbUZSizxxaDro3RFdew5xa6nPMxX/yG+8BgMZ7PZ4KoMOiWoiqwMxsF69uxZUPXz
rnHVYnAgjwklNRF6rZpeNB2mxpyNuYNSV2OtVlhgiYenXC5bsVgMVSd/Nh1is9Cz
2lpT7crws+HLpbYy2qqzQy5mXJzgOPmxHYbH3/d8uBj2Yw2L2sMAd0dFz9b+KEgQ
yMBK2tjYCN8HkwrBkYWKKIKQJPhns8MtPh9+MXuInwnY1RSLxWBZA1ZUfX29DQ0N
WW9vb8XgniFFJhmgi1G3Cfx93SWklTOe2e7ubtvc3LS1tbUKaJPPZFdXl7W2toYu
W2cH2r141aw6XSPh4vxsb2/b0tKS3b9/3xYXF21oaMhu3Lhhk5OT1tLSUpHUqw3h
UUjcv3/fPvjgA7tz5449evQoGni9r4aGBuvp6bHLly/b9evXbWRkJDDmlF6syYUT
vWfvEosV3qzRs6GJFchJnysGxSUF/6ROJua5eNSElcRGqzC7VKEPXyAWg7FdP1tw
gAEGXQubVML4rq6uzrLZbHjoUOVDpAlogSshHvgz9ZXxX8/GPumi6z4T5v4ry8xb
7qWQFWsPeBiJahyzjb29PVtfXw/mj9xJ8c/h5M0sLE0k6tbLAR0JQRef8Q4SVPL4
BdsWvVaoiPnfsbU9V75qf6MECRV98foGKLkBo5XL5VDdI5EA34fjMrvj8lyHd9g3
NjZaJpMJrgFcqYI5hqVoeH0kVfYoU7r7sWPHrKOjw5qbm8MzMDc3Z0tLS1YoFCyV
SlVAR0x8YCeBmD1QjBqtpA6u0FkYC6gaxqw9PT2vrNVlWxe+14AzPeGo6qFw3eCK
jA2Qt27dsrfeest6enrCNeOOV+2GOCiBdvzxxx/bnTt37IsvvnhlVpn0VVdXF5hh
N2/etHPnzlk+n6/ornlYr4N8z+LFC+ae47KyQj3YrxpVODbsj80tk+CpJFgsltS+
z86XJEr1KxCZDs89EZm+KQQzQC25XC7MYngvSm1tbWiP8XAhyAAeg4AMAQOwAjv8
Ar7wTOG4pVcXaP0MSoNUK2zPFcBbIsY2KN76UVYgf/fdd1YsFoMaWw0tNVEyxMTY
Oh9KT1CprDRlxPHDhDkRU42V6aX7Q7jbwt/R3eo8K1AWHn4hMLFNCDsyM0TW3Nz8
ilEqEhEzsNLptLW2tlqhULBCoWD5fN4ymUx4XfxX5254Pzh/gL54AI8gm06nA8We
EzkU5NPT0zY8PGytra0V5Ai2qcE9AuSoA31vI6HXPfMAH90VU8EzmYz19vZaLpcL
s1AuXLSj142yWuUjSKNzgf5tdnbWnj9/bn19ffbGG2/Y6dOng40L3qdaPCkUtL+/
b0tLS/bZZ5/Z7du37dNPP7Xt7e0jdy2ADF977TW7ceNGcAPANWaLK69j0QSjfowe
tOXFRSXfVHM4rqY18TzMkrQxR7WLOcocKNaVxDom77XqVJ0fg45UhMWVT21trZVK
pVAtwtGU/bWA4QMO4SFuOp0OFSeCAFdu6tWl6n2viogtCdItdbyXwRNAeYO8mI+Z
ijX1PSNAYu1rzEdKxXgew4arLN3rztdIEyIHDARWpuuysFMPFz6bLtxiF2mdX3gC
NNBYIf5DF7C4uBgSU7lcDrAPICzWsoBem8lkrLW11dra2kJSwfUFhMYCUfWbw1nL
ZDKBnq2mn5zotVNC8sVe+nfffdcePnwYtF4MD6sIUkkiXBxpgaRCXw6IBwcH1tra
aqurq+G1sCCvtbU1IARMJOCzpKsluMJnISE7KxSLRZudnbVHjx5ZbW2tXb582c6e
PWttbW0VFj58jj120sHBga2vr9tvf/tbu3v3rt29ezes/qgmMsRXPp+3c+fO2Y0b
N+zChQvW29tb0Ynx5/GgMO3UjgoLqb5NITGPwRqDrzxGmMcOPYqivtqWSg9yTzK8
TEooMagzdDAKjakHDkMfeOBYCAg4AnADKnQOdggQMNbjCoLNHnmZEjOyeD7gMcI8
HFTnJ17Q9ixZ+CbpqgKtMlVbojeGbWDwMLG5IA/DWbiI98XzAP7MurvG82hChcxr
hDnY42FjuxiGgTzqukI26nzAjB5NgnxtYYQJh9y6ujrb3Ny0ubk5W1tbs6amprC5
slwuV7CxcN5aW1vtxIkT1t/fX7EEjs8Jayu0imUCiZ4R3qaJbprhHYb9eOdJa2ur
Xbp0yT744ANbWVmx48ePv9J9steeshFjMIM+7GxGibkIiAblctnq6uqsUCiEFQYq
HOQk5HWiSlsGdI0zvLOzY0+ePLHV1VU7ceKEnTt3znp7e8NnA9HAs9Phc1Aqlezb
b7+1X/3qV3bnzh2bmpqy7/OVTqdteHg4uAH09/cH006ds2jhqtsmPdZUjJmqBWjM
aFJXbyTNbo5i65IkAv8+sxNPP3iU5BKD9TzzzVAwK3uJxWTc1uqLIBByEtjb27NM
JhMsYHh/C2jK7AXFwQo0T3Dt4VnGdE1PpBQzhPSSkM4y+DMrK4yZTfpvqkGJPCvi
14M1S7FYtJqamoqHwUsg6mPEwZMxfH2QlebKEABfLyQYhqg44GgC8TQaOlDmZKbV
MhImBI9wUea9LsxO3NjYsO3tbctms5bJZKytrc06Ozvt+PHj1tHREaAfXsymdjMK
hSk8phtI9V6z8wD+PeudeI/O/v5+CLhTU1NWKBQsnU67y+z4YeQuh4sfrZB1ZqKK
e0B2LS0t1tvba5lMJuxKYfqxdkZ6rbib4q4FHTjYohMTEzYwMFDB/kRC5+5Vf97+
/r7Nz8/bxx9/bO+99559/vnn0aVoMWbY4OCgXblyxa5cuWLDw8PW0tLyioWVkjZi
kFhMN+Il/djq4thWyiSNS1KnEft9kro/tvfFIwYlfU6PAKD/rwVrrJOq4yqfee3e
Cl28KOivDF2xMA0VEx582GlDd9DY2GgbGxsV+1Xw0PBeC+0KPAtphYO4G+OHROEr
HsLyofSEmjzb0G5FuyUNUF7AA0SE7k6hKSYxsF7Hmyt5LgRqUc/Xj2nmeNgx3Ebn
oGI91YfwtWDBndfyqwAWLLfFxcXwmUqlkm1ubtrW1lYFvv/y5Us7efKkDQ0NWU9P
jx0/frxiORWfMXVqjgUH7+Fiiq46PSjll2dNnJD4M58+fdoeP34c5hJcGOgqAM/G
iAscdqxWA0+l3cM9ubu721paWiybzb5iL68rLDw4hr3IeF8TtEidnZ3W0dERjCDx
XMdWafDrLy8v25dffmnvvfdeWDhWjfHEBRGYYW+++aaNjIwE+j8XYYySxIospRwr
g1MdjmPwucf2jPl8Jc1BuGDT33+fXTCxv6eCYc9AVB1FYrrCWKftJa06hYL4YVI6
rVY3HHBZI4DKHEELgbtcLlsqlbJ8Pl9hJcIPGtx0YXfBpIAYt9ujKsdaWa5gVdfi
UZS9ioJposoeid0s3h3P2wcxhOYHX3eP6DZOhew8pwIPOmOtBzPn4LTLvlJ8DVkL
gj/jrpeLCw/H5vdXX19vvb29NjMzYw8fPqwwSdzd3Q3dbnd3tw0PD9vIyIh1dHS4
MI/CcB5MqbCdxwLk19E5pFdFskBRcfYXL15YPp+306dP21dffRU6MB3W6mZSZa2h
c+IzxYWQWqgAMmpvb7dCoRCICNyFc+GlRZQ+10i8LEqFzT6SPFO8tWvR5wW047t3
79qHH34YaMdHnbN0d3fb5OSkXb161cbHx629vb3ifishQcknnpA1yebEW/2hRZu3
1rhaIPY6BaU/J0F11XzHYtrAmGjS61KSuqvY92OQXx2vjuUZDIIe8FfeW8JzEcaj
scaWV+PiTaHqLJVKYROh2oMjcGUymQAnqU26ekHFMEUviHhKeFW6axBQ40/1E+IA
EWtBecgI2i/vMgeM4cF+nmO0Z7Kn78Mb5KniGL+H+aMHQaJa1gqNLeF1sOm5UrNw
9Pjx4/baa6/Z5uambWxsWH19fdBR5fN56+zstL6+vgovt6PoAXhepklA31fMXsdL
AN7wlDsLJjUA6h0eHrYHDx7Y6uqqpVKpKN2VGWP68HLA5udEffvwPBYKhbDbBaQF
78yq+69+Lg2aDQ0N1tLSEhaYsZWMPjd6X8rlsj158sQ++ugju3Pnjn3zzTduwRj7
KhQKNj4+btevX7eJiQnr7u6uKMg4kTApgQ1IlRRRbYD//2VlcczLK2muVs2L7//P
fKaagNLrhLyi3SM0JTHKFPWq4wrJUxazj5QOOfkmssHf7u5ucG/lIAXFNTbaQRQH
/Prw8DA8IFgPy7sn+NDHXI75+7qDxbNP8fBMruRiGxw5uPPgVY0slQjAegwMTBWH
5wTOVFdP9KqHQNX+/B5jbKFSqRQSuc5i1BhUl9DFhK46E+Hv7+/v29DQkLW3twd/
sYaGBkulUsHRgTtErxhQJbVeZ638lBHoORezEDhW9et5YiiNrXHa29ttYGDA7t27
F5htnCz1rOlqXHx+Fojii5EF3naZzWaDeJk/B99vdeH2WJQoBOrq6kIXhP9C38bF
pgYnIBrPnz+3zz77zO7cuWOff/75Kyr8pC94hl2/ft0mJyftxIkTgezBZ5eTi7pb
a5ET6w68cxIzp9XuPom15XUZuggwVnjEOo5qf57kNB8bL8QIADqTTrKRidnZ1MGL
ylsKxcNvDDahU2DPKNzMxsbGUJmjwmFVckNDg21tbdnS0lLYr46fVSqVbHt7O/D1
0QUhwakWI4Yb8yHwLOA9OrPn7Kv+WnqjGE5EReUpeDWQcKUFGJFZdApBeaQF3n6p
S6pYsMmVmxppsv0HLG3a29tfeTDZR4vhFv1ZHOwVZuFFYfxnbW1t1tXV9YqFvc58
lO3nOTFw4leo0tM8edUmzyjUn07PiyZZfEY8JzU1NXb69Gm7d++eLS0tWW9vb5hB
eYNvTuaAp9U/DoGbE29DQ4Nls9kwc0GS1g2JzDzjgkY1VPy85/N5a25utrW1NTs8
PAyJi/21PIhlY2PD7t27Z7/4xS/sk08+sfn5+e81wB8eHrarV6/axYsXbXBw0FKp
1CtdPZ4hpR5z4kkafCdV+56uLJZcYmQfz5/MQxGOMp/RuOVZ1Hj2ObFk5BVMsZ+Z
ZHipRRoXomGOCC0E7+TmBx52Fhz4PLGaqnVx+Hd2dipot6jAtra2QrcCNwAEOliJ
p1Ip29nZqVD283DTs/X2Wldm3vANYHKBdiSsLWGc2hvO6XpcHeZ6NvuAytDxYQ0u
Gw3qnhgdFOsuGSUk6HyEK2Sufsvlsq2vr9v+/n7YJuhBR7pigBMlnw9PS+VpqHjN
r840dM+NXkdvP486RnvECF0Yx6QKTk5e8orpr3iDJkMxPT091t/fHxhlHNz5eiBp
6FBZZ24KcR07dix0LqlUKog/PeNUvD5Ymgpv89lqamqyXC4XrFXgXabPnQbGcrls
MzMz9sEHH9j7779vDx48ODIcVltbaydPnrTLly/b5cuXbWhoyHK5XMX58qxd2F2i
WteeRIzRAByD3L2q30sUSTMOZfIdVdTokQi85BbrYLzlil7XEZODeJ2QmsO+IrSE
qI09w7QyZmdattbm7kRFgoeHh9bU1GSlUskODg4qmGXZbDaomtERYR5RKpVsbm7O
2tvbLZPJVCQYxtCZTq1889hcRoMOVydcLfODr8lCA5AyvNRnSReLcfDEsB2WKYCm
+DWYNaSbLZUxx++PnZo54SiVFw/g+vq6lctly2QyoStVcgDDSN7qA+0uFGrUZVye
zkhnJtol8Jnk8xqzQ1dLntjyN4WdPGhJ74m3y0dhwfPnz9tXX31lq6urFVodhfiY
2eh10+xmgfcA2/50Om2pVKqi+9QV3Eguqj9jJX1NTY1ls9ngdI7P1NLSYisrK7a+
vm75fP6VgPLdd9/Z0tKSffLJJ2HOUiqVjty19Pf324ULF+zKlSt29uzZwAzjZ5aH
9+gUY2JJrwpP0hsl/Yp1ONVoyUl7Wo46QznKxsikRYveLNaDszykpZoAM2lrJheR
dczwQhfjuYCqOy2v31WMnSGfdDoddB+6npa9x/BwNTQ02LNnz2xubs7Onz9v2Ww2
/F1eCetdGK9F9IzovB0f6NpY98Nwjc47Yn5Bqrr2DO84kKEC++677wJ1WQf8On9i
iIY7GY9qyZ0fG21yMK+rqwtU4dbW1go2leffxjCNpyVgbNzT9HA3q9Rq3Q0S4+jz
9VAvMu0APcaYml56LttK1eYix0uqDP/hq6enx06cOGHz8/OWy+WCAFb1RExNRrBX
d23oxHCd0ul0MItlGJH94TCbgP6MEzHDQCDk5PN5a2pqqig08bOwNIwXmwEOu3Pn
jn366ae2vLx85MSC9c2XLl2ys2fPBmsXhoK82QoLr73ZnMeq8ii1SZYvR7F6icFJ
SS7I1aCppBmRF+eO0pEddRNmkkO7t2Y+SYQZzjPj8DhAzGDxuOxIIBjYqvsrIAc4
JMM5lttZ0JF5BwkEf2Zm3377rdXX19v4+HhISFx14UGMZeIYXVUTBesQmDKtw/rY
ANnTmrC7sFKFPVoifj5IESwM406CEwn7WOmcgQOd5wKgg3gILhcXF+348eMVD7km
Ta20Aal5tGS+V/wz0YEqlAP4lJOPioDV4dhLvjpP4BmUdlNqGqqzPu9zeZ2Tenoh
uTY0NNhrr71m09PTYWU4d6L6wHvFCGAqzGBQuCG5MOKglGNAYpxctDNiFilo1dwh
gAINs1F03r///e8DHPbkyZMjw2GFQsFee+01u3r1qp0/fz7Q0HlexPAXQ/Keh5jC
iN4sxZu9xuYono1KUqJK0urFlnh9HxZYjO14lE7G614UXlO/xaPOYpJeN5xd6FHq
6+sDDg9lLgIa24rzQqPGxsaKQ6FZGskHxndgh+HAb29v29bWlpmZNTc3h/XKdXV1
1tTUZMvLy1YqlSybzQbPLDYBZDNMr7LUto2DRyyrK76sdN2km60LrhS/1z3regNR
SfLCL54H6eCWldaehkc7MA935Y5jZWXFisViYHExXMisJr7+mnQ18TKEqtoZzxvM
W7imcBwvNKvm1sDXQosMDUhgUSo92YPoPKKDxw6rqamxgYEBO3HihM3NzQUTTF60
xbMQdg5Q63jAzqlUKkBl6OxVra42KAr/4ZrwZz44OLC1tTWrr6+31tbWQEjAs5vP
521xcdHu3btnU1NT9v7779vU1FQwpaz21dTUZGNjY3bt2jUbHx+348ePhwKF9wwx
M8xzPPZ2tSR1F5pQYn5hWq0f1Y+rmn1Ltf0tSXYt3pA/loS8/49Bg14iiu27qtZx
JXV6dSzwgnaFB2pMlVR3UcUiteVnM8S9vb3gNYYExgNoUC2Xl5dtf3/fstmsHRwc
2KNHj+z06dOWy+UCjMTeXbxAioVVeqDYUl8PlRfQ9GZxVe1V3uoSoDMIfj2eQTCr
C1brxWLRXr58GQIJghGqN67CeLeKQiC8QVJnQLrCuaGhwUqlki0vL1tbW1tFMMVr
qdsuKn4P9lO6uAZjThKsmNe5FnctXgXKiQwB2ltR67kKKPMvRgvmbkiZZvpamjBq
amoslUrZH/zBH9i3335bwShjYgHOBbspKDECDDFW9asNPndY3CkqsYDRBi68tre3
7fnz51ZbWxts7pm9Nj09bf/6r/9qDx48CBtbq33V1NTYmTNnAuW4r6+vwiZJ/fGU
eqxq/Jh5o84G2MEjKQl5kFAMDYnpVzztVDUYLMm1OOnvV6MXJy1kjI0PPGab1wVV
Y5Dqa9exUheaEyxKUkotezLpHhWej+iynsPDQ1tdXbV8Ph+qN+wBgZUFDBDT6bSt
ra2F15mdnbWamhobGRmxdDpdwWpDQOFVzd6QlmcvMYttVX172zAZ248xShRz5WFl
DANmPyus/uUAj4dRhZQMeama3HN69ZTJ+sDMzc3Z4OBg2FPvBTrWWLATsyYOprFz
de7RNrUT0K40aRW2zg25C+GNoNqVqBGo18HqdYw5cWtRo4vWBgYGrK+vz2ZmZiyd
TluhUKh4Tzxf4TXMuF719fUVBqlwvQBzjIsKvqfemmteT64FyIsXL2x9fT3AU1iz
sbS0ZB9//LG98847NjMz496L+vp6y+VyYbdObW2t9fX12eXLl+3KlSs2MDBQsaaY
tTieWJLnL1pNexB1tZlFzHm9GuvKY21xkaldeKwT+j6dSdLcJ0lYnpRodH6Z9NmS
EqBeMw/WDRAZKhgkGoa0YLvPlR8YHDi0UPaC0gwOPaoeYMfFYjG8Nnue7e7uWlNT
kx0eHtrW1pbV19dbe3u7ra6uhgD0/PlzKxQK1tHRYZlMJnQxvCIWFRYPfBW64mSq
EEqMYquqdx5+xyiNOq/RCgsPEw9soffhbYi6mtjjm3MXyN9j6qsnHtNDg+u2trZm
S0tLIZhpJ6PGjwzTefMPrqwZLmNDR/4ZvNZYfz7+nSYEXWympA4udHSuFkuUamWv
ol1eU6DBhNdV49+3tbXZ5OSk/fSnP7WZmRkbGRkJolI8Eww3YyssB1gEXSSbTCYT
ulzsGyoWixWGmezozV0cP/cM3WKvDJ7d+vp6u3//vr333nt27969IAzWxNLR0WGd
nZ2hC0+lUjY0NGRjY2PBM0zZhZpYvM96FHV80kbIGIsqpns5inq92s6Val3LUTqW
2HuNUZaTbGu8FScxq5eYINXrGqt1WYeHh/87g8GchR9G4PC8dxyB77vvvquAbiCO
5EVhrPTFv8XmRDinwggTB35/fz9UZnBTRvJ5+vSppVIpS6VSwXwPH76pqamik1EN
iqd297QqOmfRagUzJW+uotWHBkLFZVVprXYzbJWjWLoaMnKHxskL+LweRl0AxjBg
qVSyx48fW29vbwWbSAfoOo9SSrLHxuJuIqZmrqh+/i+xxio6j5bMCVMhQdWWMDyl
mD7TwlGceOaragLKZAFOyLW1tTY4OGjnz5+3L7/80rq6uqylpSXMMXH2eWUFi5Vx
PZBQmpubLZVKBfEjnkv4yvESOThlcADiBMML0ZBgtra2rFQq2eLion3yySe2vLwc
BvFwfWhsbLSOjg7r7e0NZJ76+no7deqUnT171jo7O62lpaWiIFVGmHYu2rklQT5J
/+8N9mMWStXYoZ72zZurxGYtR90SWa1r8SCuasshtetIIkLFBvrerDHG4lWSRZ1X
zfDNZW69mtox24iDDh4WVOjQssCTaW9vL+wlh9gQBwtVYVNTU4U+ZmVlxZqbm21w
cDB8j/2tAOsxPKRDWr2JnnrcSwo861ELlNiuboXZVLmNgM4rD9gaHf+FEzXPGXS/
jXoleeQBhXt4JsWBqLa21hYWFmxtbc26u7ujw2H++bpUi4O/wmw8R9IZFdPFec6g
lGYVSuK8cZWm5p/6Pe7qVDCqQ322oVdWoGcwqmJX/Jt8Pm+Tk5O2s7MTunxmDqIz
4RUETKSAmBISADx/EOvyviYUjni2FOpjmAzne3d3NySnra0tm5+ftwcPHlipVLJr
166Zmdn09LStrKxYLpezgYEBa21tDc/e0NCQnTt3zk6ePPkKFKau4pxcdBGeR4lN
WjAY+/8YrdfraJLsXvQzeEnFg5c8m5ik2Yy3hvmoEFkSWckjvyjM5W3vjEFksfeu
Rdzh4aHVHRwc1CLBcNBmLJ1nG+hctILf398P8xV+E+yyjEqK976gIkKiQNXNjs54
EGdmZqy5udm6u7uDrT+6LTxQzDbTCj+2aIcDW2zPiS4+4wPH18dbx+vBbWofw1We
BirMpwCleBgpB09cTwQOhg09No2uk97e3rbZ2VkrFAqvLD3z2HRqKqhKfO4adEsn
Q1D8GrxWWI1F1TfKU+urrkkpy7rRUjtOz73B0014JA5OVJiJwHsuk8nYyMiIwaIJ
95M9vlC8sfCWOxoWS0IjhoV/KP54xuIFDTWyRTGH1yqXy/b8+XNbXFy0jo4OOzg4
sLm5Odvb27Ph4WHr7e212tpa29vbs0KhYKdPn7ahoaEwZ+XO30ssqsj39hV57ug8
Jz1KN+NBR9UWaXkwmL4vL5lUY5ol6XO8M+ZBUtXcS7Srrzan8pKlx8RUm5tqbLX/
ew+1dbu7u0tm9vLFixeHzMBhuAZJgg8Os2pwYFBJsu8UV1aAfkqlUsCXodJHMkGb
jjeKdvzly5eBwgz1MmC9+vr60NVwF6PUXKY484FjuEhFnOrLpUlGYRPeAe6RCmK+
ZggigBoZKy+Xy+HPWDCn3kQ6mNbDpl5puh4YP/Pg4MAeP35sQ0ND1tbWVjHPQYcK
ajur+5k2DmgHsCU74Co0yA8gJy9lo2ki5MJAE4+3AwjngQ1UPRorPwN8DXWmhDOr
mhpl7e3v79vW1patrq7a8+fPg2KeNSqApNm7DfeZq33umPBzseoASAFbMjHFnj8r
sy8Br2GhWLFYtLW1NZubmwvD+mfPnlkul7Nz585ZV1eX7ezsBHbYyMiItbW1vbLb
iJMGPgMzxbhj0W5Tg2NsTbHHjvICqWdQmWT1osxYTT4eXJo0xE8SYlZjmR0lSWhy
8WaunvlvTKOTNG+JEQqkizl2eHj4/P8NAOzVMDPS6KDSAAAAAElFTkSuQmCC
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://ege.edu.ru/common/img/img_2015/logo_spec.png
Content-Transfer-Encoding: Base64
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
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://ege.edu.ru/common/img/img_2015/ico_soc_snew_bw.gif
Content-Transfer-Encoding: Base64
R0lGODlhsQA8AOYAALCwsOrq6tLS0pWVlfv7+7+/v3t7e9zc3G1tba6uruXl5d7e
3vPz89ra2oSEhL6+vn9/f9vb27e3t6+vr7+/v9PT05eXl4aGhr+/v2dnZ319fZWV
laCgoMXFxdLS0s/Pz8XFxYKCgpOTk5+fn6WlpZ+fn729vcvLy6WlpbKysoiIiJKS
kqOjo8fHx66uru/v73p6erS0tHl5eebm5qmpqcTExLm5ue/v78fHx8vLy/j4+MHB
wdPT07q6uo+Pj7e3t9ra2ubm5mBgYJaWluDg4Pf392ZmZpCQkJGRkbGxsZubm4KC
goqKinBwcHh4eJGRkYyMjMnJyd3d3YmJiZiYmKioqG1tbbKysuvr68rKyqKiotzc
3NPT021tbZ6enunp6YqKire3t+Tk5KWlpZ2dncTExMLCwrCwsKqqqpCQkMjIyNLS
0lxcXOPj43JyctTU1J+fn5eXl5+fn2JiYmNjY7W1tYSEhJGRkenp6YyMjNHR0e7u
7oKCgouLi////////yH5BAEAAH8ALAAAAACxADwAAAf/gH9/RQKFhoeIhjOCjI2O
f3hVTA6UlZaWTEM4j5yMRVhEEaKjpKREWEWdqgQEfq6vsLF+rKq1jQQSfXy7vL2+
vH0SBH83Al9SyMnKy1JtyLaCRBwA1NXW19VVFNCCDBFERbLifkWhDNyCrOPrrqno
nBIDPRL09fb39S4oJn/Gif+I2gjAAo0ah4MIEypECICDGGhFIjBgN86bO2gTWWnc
yHEjuXPvHPXR9avkr1x7PkgByNJQBFt7OFRRQrOmzZs1D2KABoriulPc9uyZ1bEo
xyIKQjrio8tFDiALgkiV2oLXgBc7eEngowAEoi/tWhZSY0sBzSFo06pFi4QmByVo
/5XUgQbO57hy3BQEIFCkL4MfezoQmVVEY9/DRRoobcSnxwsg84K4epHDRK8Bfqru
2qqggIAooKX4+bKFHOjTqEGTraUAyZAnsGPLfqIJCwMGWJTAnmsrgiwsFIIHx1Gh
layX0BQoIHCbQRE0KTYoONFgTwMiCpo397CYER8/OXipWOAKhS/MmvlwLgCa/Y0b
YUiUlhLlc5QC7PNvYs3kCZP/AAboQAWwFDHEJElA41ssFSDQxIMQyrAgLMiVBY52
DXQBHQsbPLABGj9ox8Ae3HX3x3cDXDbZeZlpxVUMBdggYxFfkEDCGrHcgJ+MMe6n
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
n4BhF9YBGhYS7TqvkAWvJmJnw8qZI9FnBBAIADs=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=style_ege_2015.css
Content-Type: text/css; name=style_ege_2015.css
Content-Location: http://ege.edu.ru/common/css/style_ege_2015.css
Content-Transfer-Encoding: 8bit
/** Generated by FG **/
/*@font-face {
font-family: 'Helvetica';
src: url('fonts/948646.eot');
src: local('O'), url('fonts/948646.woff') format('woff'), url('fonts/948646.ttf') format('truetype'), url('fonts/948646.svg') format('svg');
font-weight: normal;
font-style: normal;
}*/
@font-face {
font-family: 'Helvetica';
src: url('fonts/HelveticaNeueCyr-Medium.eot');
src: local('O'), url('fonts/HelveticaNeueCyr-Medium.woff') format('woff'), url('fonts/HelveticaNeueCyr-Medium.ttf') format('truetype'), url('fonts/HelveticaNeueCyr-Medium.svg') format('svg');
font-weight: normal;
font-style: normal;
}
body {
color: #1f262d;
font-size: 12px;
line-height: normal !important;
/*font-family: Helvetica,Sans-Serif !important;*/
background: url("/common/img/img_2013/back_main.jpg") repeat-x left top #bcc7e6;
}
.main_top *,
.ege_site_header *,
.menu_top *,
.infa_main *{
font-family: Helvetica,Sans-Serif !important;
}
.menu_top {
height: 32px !important;
margin-bottom: 0px;
background: url("/common/img/img_2015/grey_menu.png") no-repeat center -10px !important;
position: relative;
z-index: 100;
}
.menu_top .menu1 {
padding: 8px 10px 2px 10px !important;
height: 23px !important;
display: block;
text-align: left !important;
font-size: 15px !important;
font-weight: normal !important;
color: #000 !important;
text-decoration: none;
text-transform: uppercase;
position: relative;
}
.menu_view {
position: absolute;
left: 0px;
top: 32px !important;
z-index: 1000;
background: #f2f2f2;
padding: 28px 31px 28px 31px;
visibility: hidden;
/* min-height: 240px; */
width: 938px;
}
#vagnoe_tab {
position: relative;
width: 560px;
height: 320px !important;
background: url("/common/img/img_2015/slider_bg.png") no-repeat left top !important;
}
.infa_mtd2_div {
position: relative;
width: 440px;
height: 320px !important;
background: url("/common/img/img_2013/infa_sprava.jpg") no-repeat left top;
text-transform: uppercase;
font-size: 18px;
font-family: calibri;
font-weight: normal !important;
line-height: 24px;
}
#vagnoe-paginate {
position: absolute;
left: 37px !important;
right: auto !important;
top: 260px !important;
width: auto !important;
height: 10px;
}
.menu_top_tbl {
width: auto !important;
}
.menu_m_1 .menu1 {
padding-left: 20px !important;
text-align: left !important;
}
.main_vagnoe .vagnoe_item {
width: 529px;
height: 312px;
padding-top: 20px !important;
padding-left: 40px !important;
color: #fff;
}
.main_vagnoe .vagnoe_item .vagnoe_it_link a{
text-decoration: underline;
font-size: 14px;
}
.main_vagnoe .vagnoe_item .vagnoe_it_tex{
height: auto !important;
padding-bottom: 5px !important;
line-height: 1.2em !important;
font-size: 12px !important;
font-weight: normal !important;
}
.main_vagnoe .vagnoe_item .vagnoe_it_tit1 {
height: 65px !important;
width: 100%;
}
.main_vagnoe .vagnoe_item .vagnoe_it_tit {
float: left;
text-transform: uppercase;
padding-bottom: 5px !important;
border-bottom: none !important;
font-family: Helvetica,Sans-Serif !important;
font-size: 30px;
font-weight: normal !important;
line-height: 25px !important;
margin-bottom: 0px !important;
display: inline-block;
margin-top: 12px;
}
.infa_mtd2_div {
position: relative;
width: 440px;
height: 380px;
background: url("/common/img/img_2013/infa_sprava.jpg") no-repeat left top;
text-transform: uppercase;
font-size: 16px !important;
font-family: Helvetica,Sans-Serif !important;
font-weight: normal !important;
line-height: 24px;
}
.infa_mtd2_d_1{
position: absolute;
width: 50%;
height: 50%;
left: 0;
top: 0;
background: url('/common/img/img_2015/right_block1.png') center center;
}
.infa_mtd2_d_2{
position: absolute;
width: 50%;
height: 50%;
left: 0;
bottom: 0;
vertical-align: middle;
}
.infa_mtd2_d_3{
position: absolute;
width: 50%;
height: 50%;
right: 0;
top: 0;
background: #e30613;
}
.infa_mtd2_d_4{
position: absolute;
width: 50%;
height: 50%;
right: 0;
bottom: 0;
vertical-align: middle;
background: url('/common/img/img_2015/pen.png') center center;
}
.infa_mtd2_d_1 a {
display: block;
padding: 40px 25px;
color: #0069b4 !important;
line-height: 1.2em;
}
.infa_mtd2_d_2 a {
margin-top: 80px;
display: block;
padding: 0px 25px;
color: #fff !important;
line-height: 1.2em;
}
.infa_mtd2_d_3 a {
padding: 40px 25px;
display: block;
color: #fff !important;
font-weight: normal !important;
line-height: 1.2em;
}
.infa_mtd2_d_4 a {
margin-top: 80px;
display: block;
padding: 0px 25px;
color: #e30613 !important;
line-height: 1.2em;
}
.ege_site_header{
background: url('/common/img/img_2015/header_left.png') no-repeat 0 -10px;
height: 200px;
}
.ege_site_header .header_slogan {
position: absolute;
left: 375px;
top: 110px;
color: #e30613;
text-transform: uppercase;
font-weight: normal !important;
width: 200px;
font-size: 11px;
text-align: center;
}
.ege_site_header .header_slogan .header_slogan2{
color: #000;
}
.ege_site_header .header_spec_link {
position: absolute;
top: 95px;
width: 162px;
height: 95px;
background: url('/common/img/img_2015/logo_spec.png') no-repeat;
right: 250px;
}
.ege_site_header .header_logo_main {
position: absolute;
top: 95px;
right: 45px;
}
.menu_top .menu_m .sel:before{
display: none;
}
.top_right_soc .soc_se0 {
background: url("/common/img/img_2015/livejournal_ico_bw.gif") no-repeat 0px 0px !important;
}
.top_right_soc .soc_se1 {
background: url("/common/img/img_2015/ico_soc_snew_bw.gif") no-repeat 0px 0px !important;
}
.top_right_soc .soc_se2 {
background: url("/common/img/img_2015/ico_soc_snew_bw.gif") no-repeat -35px 0px !important;
}
.top_right_soc .soc_se3 {
background: url("/common/img/img_2015/ico_soc_snew_bw.gif") no-repeat -71px 0px !important;
}
.top_right_soc .soc_se4 {
background: url("/common/img/img_2015/ico_soc_snew_bw.gif") no-repeat -108px 0px !important;
}
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=mootools.js
Content-Type: application/x-javascript; name=mootools.js
Content-Location: http://ege.edu.ru/common/js/mootools.js
Content-Transfer-Encoding: Base64
dmFyIE1vb1Rvb2xzPXt2ZXJzaW9uOiIxLjIuNCIsYnVpbGQ6IjBkOTExMzI0MWE5
MGI5Y2Q1NjQzYjkyNjc5NTg1MmEyMDI2NzEwZDQifTt2YXIgTmF0aXZlPWZ1bmN0
aW9uKGspe2s9a3x8e307dmFyIGE9ay5uYW1lO3ZhciBpPWsubGVnYWN5O3ZhciBi
PWsucHJvdGVjdDt2YXIgYz1rLmltcGxlbWVudDt2YXIgaD1rLmdlbmVyaWNzO3Zh
ciBmPWsuaW5pdGlhbGl6ZTt2YXIgZz1rLmFmdGVySW1wbGVtZW50fHxmdW5jdGlv
bigpe307dmFyIGQ9Znx8aTtoPWghPT1mYWxzZTtkLmNvbnN0cnVjdG9yPU5hdGl2
ZTtkLiRmYW1pbHk9e25hbWU6Im5hdGl2ZSJ9O2lmKGkmJmYpe2QucHJvdG90eXBl
PWkucHJvdG90eXBlfWQucHJvdG90eXBlLmNvbnN0cnVjdG9yPWQ7aWYoYSl7dmFy
IGU9YS50b0xvd2VyQ2FzZSgpO2QucHJvdG90eXBlLiRmYW1pbHk9e25hbWU6ZX07
TmF0aXZlLnR5cGl6ZShkLGUpfXZhciBqPWZ1bmN0aW9uKG4sbCxvLG0pe2lmKCFi
fHxtfHwhbi5wcm90b3R5cGVbbF0pe24ucHJvdG90eXBlW2xdPW99aWYoaCl7TmF0
aXZlLmdlbmVyaWNpemUobixsLGIpfWcuY2FsbChuLGwsbyk7cmV0dXJuIG59O2Qu
YWxpYXM9ZnVuY3Rpb24obixsLHApe2lmKHR5cGVvZiBuPT0ic3RyaW5nIil7dmFy
IG89dGhpcy5wcm90b3R5cGVbbl07aWYoKG49bykpe3JldHVybiBqKHRoaXMsbCxu
LHApfX1mb3IodmFyIG0gaW4gbil7dGhpcy5hbGlhcyhtLG5bbV0sbCl9cmV0dXJu
IHRoaXN9O2QuaW1wbGVtZW50PWZ1bmN0aW9uKG0sbCxvKXtpZih0eXBlb2YgbT09
InN0cmluZyIpe3JldHVybiBqKHRoaXMsbSxsLG8pfWZvcih2YXIgbiBpbiBtKXtq
KHRoaXMsbixtW25dLGwpfXJldHVybiB0aGlzfTtpZihjKXtkLmltcGxlbWVudChj
KX1yZXR1cm4gZH07TmF0aXZlLmdlbmVyaWNpemU9ZnVuY3Rpb24oYixjLGEpe2lm
KCghYXx8IWJbY10pJiZ0eXBlb2YgYi5wcm90b3R5cGVbY109PSJmdW5jdGlvbiIp
e2JbY109ZnVuY3Rpb24oKXt2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2Fs
bChhcmd1bWVudHMpO3JldHVybiBiLnByb3RvdHlwZVtjXS5hcHBseShkLnNoaWZ0
KCksZCl9fX07TmF0aXZlLmltcGxlbWVudD1mdW5jdGlvbihkLGMpe2Zvcih2YXIg
Yj0wLGE9ZC5sZW5ndGg7YjxhO2IrKyl7ZFtiXS5pbXBsZW1lbnQoYyl9fTtOYXRp
dmUudHlwaXplPWZ1bmN0aW9uKGEsYil7aWYoIWEudHlwZSl7YS50eXBlPWZ1bmN0
aW9uKGMpe3JldHVybigkdHlwZShjKT09PWIpfX19OyhmdW5jdGlvbigpe3ZhciBh
PXtBcnJheTpBcnJheSxEYXRlOkRhdGUsRnVuY3Rpb246RnVuY3Rpb24sTnVtYmVy
Ok51bWJlcixSZWdFeHA6UmVnRXhwLFN0cmluZzpTdHJpbmd9O2Zvcih2YXIgaCBp
biBhKXtuZXcgTmF0aXZlKHtuYW1lOmgsaW5pdGlhbGl6ZTphW2hdLHByb3RlY3Q6
dHJ1ZX0pfXZhciBkPXsiYm9vbGVhbiI6Qm9vbGVhbiwibmF0aXZlIjpOYXRpdmUs
b2JqZWN0Ok9iamVjdH07Zm9yKHZhciBjIGluIGQpe05hdGl2ZS50eXBpemUoZFtj
XSxjKX12YXIgZj17QXJyYXk6WyJjb25jYXQiLCJpbmRleE9mIiwiam9pbiIsImxh
c3RJbmRleE9mIiwicG9wIiwicHVzaCIsInJldmVyc2UiLCJzaGlmdCIsInNsaWNl
Iiwic29ydCIsInNwbGljZSIsInRvU3RyaW5nIiwidW5zaGlmdCIsInZhbHVlT2Yi
XSxTdHJpbmc6WyJjaGFyQXQiLCJjaGFyQ29kZUF0IiwiY29uY2F0IiwiaW5kZXhP
ZiIsImxhc3RJbmRleE9mIiwibWF0Y2giLCJyZXBsYWNlIiwic2VhcmNoIiwic2xp
Y2UiLCJzcGxpdCIsInN1YnN0ciIsInN1YnN0cmluZyIsInRvTG93ZXJDYXNlIiwi
dG9VcHBlckNhc2UiLCJ2YWx1ZU9mIl19O2Zvcih2YXIgZSBpbiBmKXtmb3IodmFy
IGI9ZltlXS5sZW5ndGg7Yi0tOyl7TmF0aXZlLmdlbmVyaWNpemUoYVtlXSxmW2Vd
W2JdLHRydWUpfX19KSgpO3ZhciBIYXNoPW5ldyBOYXRpdmUoe25hbWU6Ikhhc2gi
LGluaXRpYWxpemU6ZnVuY3Rpb24oYSl7aWYoJHR5cGUoYSk9PSJoYXNoIil7YT0k
dW5saW5rKGEuZ2V0Q2xlYW4oKSl9Zm9yKHZhciBiIGluIGEpe3RoaXNbYl09YVti
XX1yZXR1cm4gdGhpc319KTtIYXNoLmltcGxlbWVudCh7Zm9yRWFjaDpmdW5jdGlv
bihiLGMpe2Zvcih2YXIgYSBpbiB0aGlzKXtpZih0aGlzLmhhc093blByb3BlcnR5
KGEpKXtiLmNhbGwoYyx0aGlzW2FdLGEsdGhpcyl9fX0sZ2V0Q2xlYW46ZnVuY3Rp
b24oKXt2YXIgYj17fTtmb3IodmFyIGEgaW4gdGhpcyl7aWYodGhpcy5oYXNPd25Q
cm9wZXJ0eShhKSl7YlthXT10aGlzW2FdfX1yZXR1cm4gYn0sZ2V0TGVuZ3RoOmZ1
bmN0aW9uKCl7dmFyIGI9MDtmb3IodmFyIGEgaW4gdGhpcyl7aWYodGhpcy5oYXNP
d25Qcm9wZXJ0eShhKSl7YisrfX1yZXR1cm4gYn19KTtIYXNoLmFsaWFzKCJmb3JF
YWNoIiwiZWFjaCIpO0FycmF5LmltcGxlbWVudCh7Zm9yRWFjaDpmdW5jdGlvbihj
LGQpe2Zvcih2YXIgYj0wLGE9dGhpcy5sZW5ndGg7YjxhO2IrKyl7Yy5jYWxsKGQs
dGhpc1tiXSxiLHRoaXMpfX19KTtBcnJheS5hbGlhcygiZm9yRWFjaCIsImVhY2gi
KTtmdW5jdGlvbiAkQShiKXtpZihiLml0ZW0pe3ZhciBhPWIubGVuZ3RoLGM9bmV3
IEFycmF5KGEpO3doaWxlKGEtLSl7Y1thXT1iW2FdfXJldHVybiBjfXJldHVybiBB
cnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChiKX1mdW5jdGlvbiAkYXJndW1lbnRz
KGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHNbYV19fWZ1bmN0
aW9uICRjaGsoYSl7cmV0dXJuICEhKGF8fGE9PT0wKX1mdW5jdGlvbiAkY2xlYXIo
YSl7Y2xlYXJUaW1lb3V0KGEpO2NsZWFySW50ZXJ2YWwoYSk7cmV0dXJuIG51bGx9
ZnVuY3Rpb24gJGRlZmluZWQoYSl7cmV0dXJuKGEhPXVuZGVmaW5lZCl9ZnVuY3Rp
b24gJGVhY2goYyxiLGQpe3ZhciBhPSR0eXBlKGMpOygoYT09ImFyZ3VtZW50cyJ8
fGE9PSJjb2xsZWN0aW9uInx8YT09ImFycmF5Iik/QXJyYXk6SGFzaCkuZWFjaChj
LGIsZCl9ZnVuY3Rpb24gJGVtcHR5KCl7fWZ1bmN0aW9uICRleHRlbmQoYyxhKXtm
b3IodmFyIGIgaW4gKGF8fHt9KSl7Y1tiXT1hW2JdfXJldHVybiBjfWZ1bmN0aW9u
ICRIKGEpe3JldHVybiBuZXcgSGFzaChhKX1mdW5jdGlvbiAkbGFtYmRhKGEpe3Jl
dHVybigkdHlwZShhKT09ImZ1bmN0aW9uIik/YTpmdW5jdGlvbigpe3JldHVybiBh
fX1mdW5jdGlvbiAkbWVyZ2UoKXt2YXIgYT1BcnJheS5zbGljZShhcmd1bWVudHMp
O2EudW5zaGlmdCh7fSk7cmV0dXJuICRtaXhpbi5hcHBseShudWxsLGEpfWZ1bmN0
aW9uICRtaXhpbihlKXtmb3IodmFyIGQ9MSxhPWFyZ3VtZW50cy5sZW5ndGg7ZDxh
O2QrKyl7dmFyIGI9YXJndW1lbnRzW2RdO2lmKCR0eXBlKGIpIT0ib2JqZWN0Iil7
Y29udGludWV9Zm9yKHZhciBjIGluIGIpe3ZhciBnPWJbY10sZj1lW2NdO2VbY109
KGYmJiR0eXBlKGcpPT0ib2JqZWN0IiYmJHR5cGUoZik9PSJvYmplY3QiKT8kbWl4
aW4oZixnKTokdW5saW5rKGcpfX1yZXR1cm4gZX1mdW5jdGlvbiAkcGljaygpe2Zv
cih2YXIgYj0wLGE9YXJndW1lbnRzLmxlbmd0aDtiPGE7YisrKXtpZihhcmd1bWVu
dHNbYl0hPXVuZGVmaW5lZCl7cmV0dXJuIGFyZ3VtZW50c1tiXX19cmV0dXJuIG51
bGx9ZnVuY3Rpb24gJHJhbmRvbShiLGEpe3JldHVybiBNYXRoLmZsb29yKE1hdGgu
cmFuZG9tKCkqKGEtYisxKStiKX1mdW5jdGlvbiAkc3BsYXQoYil7dmFyIGE9JHR5
cGUoYik7cmV0dXJuKGEpPygoYSE9ImFycmF5IiYmYSE9ImFyZ3VtZW50cyIpP1ti
XTpiKTpbXX12YXIgJHRpbWU9RGF0ZS5ub3d8fGZ1bmN0aW9uKCl7cmV0dXJuICtu
ZXcgRGF0ZX07ZnVuY3Rpb24gJHRyeSgpe2Zvcih2YXIgYj0wLGE9YXJndW1lbnRz
Lmxlbmd0aDtiPGE7YisrKXt0cnl7cmV0dXJuIGFyZ3VtZW50c1tiXSgpfWNhdGNo
KGMpe319cmV0dXJuIG51bGx9ZnVuY3Rpb24gJHR5cGUoYSl7aWYoYT09dW5kZWZp
bmVkKXtyZXR1cm4gZmFsc2V9aWYoYS4kZmFtaWx5KXtyZXR1cm4oYS4kZmFtaWx5
Lm5hbWU9PSJudW1iZXIiJiYhaXNGaW5pdGUoYSkpP2ZhbHNlOmEuJGZhbWlseS5u
YW1lfWlmKGEubm9kZU5hbWUpe3N3aXRjaChhLm5vZGVUeXBlKXtjYXNlIDE6cmV0
dXJuImVsZW1lbnQiO2Nhc2UgMzpyZXR1cm4oL1xTLykudGVzdChhLm5vZGVWYWx1
ZSk/InRleHRub2RlIjoid2hpdGVzcGFjZSJ9fWVsc2V7aWYodHlwZW9mIGEubGVu
Z3RoPT0ibnVtYmVyIil7aWYoYS5jYWxsZWUpe3JldHVybiJhcmd1bWVudHMifWVs
c2V7aWYoYS5pdGVtKXtyZXR1cm4iY29sbGVjdGlvbiJ9fX19cmV0dXJuIHR5cGVv
ZiBhfWZ1bmN0aW9uICR1bmxpbmsoYyl7dmFyIGI7c3dpdGNoKCR0eXBlKGMpKXtj
YXNlIm9iamVjdCI6Yj17fTtmb3IodmFyIGUgaW4gYyl7YltlXT0kdW5saW5rKGNb
ZV0pfWJyZWFrO2Nhc2UiaGFzaCI6Yj1uZXcgSGFzaChjKTticmVhaztjYXNlImFy
cmF5IjpiPVtdO2Zvcih2YXIgZD0wLGE9Yy5sZW5ndGg7ZDxhO2QrKyl7YltkXT0k
dW5saW5rKGNbZF0pfWJyZWFrO2RlZmF1bHQ6cmV0dXJuIGN9cmV0dXJuIGJ9dmFy
IEJyb3dzZXI9JG1lcmdlKHtFbmdpbmU6e25hbWU6InVua25vd24iLHZlcnNpb246
MH0sUGxhdGZvcm06e25hbWU6KHdpbmRvdy5vcmllbnRhdGlvbiE9dW5kZWZpbmVk
KT8iaXBvZCI6KG5hdmlnYXRvci5wbGF0Zm9ybS5tYXRjaCgvbWFjfHdpbnxsaW51
eC9pKXx8WyJvdGhlciJdKVswXS50b0xvd2VyQ2FzZSgpfSxGZWF0dXJlczp7eHBh
dGg6ISEoZG9jdW1lbnQuZXZhbHVhdGUpLGFpcjohISh3aW5kb3cucnVudGltZSks
cXVlcnk6ISEoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcil9LFBsdWdpbnM6e30sRW5n
aW5lczp7cHJlc3RvOmZ1bmN0aW9uKCl7cmV0dXJuKCF3aW5kb3cub3BlcmEpP2Zh
bHNlOigoYXJndW1lbnRzLmNhbGxlZS5jYWxsZXIpPzk2MDooKGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUpPzk1MDo5MjUpKX0sdHJpZGVudDpmdW5jdGlv
bigpe3JldHVybighd2luZG93LkFjdGl2ZVhPYmplY3QpP2ZhbHNlOigod2luZG93
LlhNTEh0dHBSZXF1ZXN0KT8oKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwpPzY6
NSk6NCl9LHdlYmtpdDpmdW5jdGlvbigpe3JldHVybihuYXZpZ2F0b3IudGFpbnRF
bmFibGVkKT9mYWxzZTooKEJyb3dzZXIuRmVhdHVyZXMueHBhdGgpPygoQnJvd3Nl
ci5GZWF0dXJlcy5xdWVyeSk/NTI1OjQyMCk6NDE5KX0sZ2Vja286ZnVuY3Rpb24o
KXtyZXR1cm4oIWRvY3VtZW50LmdldEJveE9iamVjdEZvciYmd2luZG93Lm1veklu
bmVyU2NyZWVuWD09bnVsbCk/ZmFsc2U6KChkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKT8xOToxOCl9fX0sQnJvd3Nlcnx8e30pO0Jyb3dzZXIuUGxhdGZv
cm1bQnJvd3Nlci5QbGF0Zm9ybS5uYW1lXT10cnVlO0Jyb3dzZXIuZGV0ZWN0PWZ1
bmN0aW9uKCl7Zm9yKHZhciBiIGluIHRoaXMuRW5naW5lcyl7dmFyIGE9dGhpcy5F
bmdpbmVzW2JdKCk7aWYoYSl7dGhpcy5FbmdpbmU9e25hbWU6Yix2ZXJzaW9uOmF9
O3RoaXMuRW5naW5lW2JdPXRoaXMuRW5naW5lW2IrYV09dHJ1ZTticmVha319cmV0
dXJue25hbWU6Yix2ZXJzaW9uOmF9fTtCcm93c2VyLmRldGVjdCgpO0Jyb3dzZXIu
UmVxdWVzdD1mdW5jdGlvbigpe3JldHVybiAkdHJ5KGZ1bmN0aW9uKCl7cmV0dXJu
IG5ldyBYTUxIdHRwUmVxdWVzdCgpfSxmdW5jdGlvbigpe3JldHVybiBuZXcgQWN0
aXZlWE9iamVjdCgiTVNYTUwyLlhNTEhUVFAiKX0sZnVuY3Rpb24oKXtyZXR1cm4g
bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9KX07QnJvd3Nl
ci5GZWF0dXJlcy54aHI9ISEoQnJvd3Nlci5SZXF1ZXN0KCkpO0Jyb3dzZXIuUGx1
Z2lucy5GbGFzaD0oZnVuY3Rpb24oKXt2YXIgYT0oJHRyeShmdW5jdGlvbigpe3Jl
dHVybiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl0uZGVzY3Jp
cHRpb259LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCJTaG9j
a3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaCIpLkdldFZhcmlhYmxlKCIkdmVyc2lv
biIpfSl8fCIwIHIwIikubWF0Y2goL1xkKy9nKTtyZXR1cm57dmVyc2lvbjpwYXJz
ZUludChhWzBdfHwwKyIuIithWzFdLDEwKXx8MCxidWlsZDpwYXJzZUludChhWzJd
LDEwKXx8MH19KSgpO2Z1bmN0aW9uICRleGVjKGIpe2lmKCFiKXtyZXR1cm4gYn1p
Zih3aW5kb3cuZXhlY1NjcmlwdCl7d2luZG93LmV4ZWNTY3JpcHQoYil9ZWxzZXt2
YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTthLnNldEF0dHJp
YnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpO2FbKEJyb3dzZXIuRW5naW5l
LndlYmtpdCYmQnJvd3Nlci5FbmdpbmUudmVyc2lvbjw0MjApPyJpbm5lclRleHQi
OiJ0ZXh0Il09Yjtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpO2RvY3VtZW50
LmhlYWQucmVtb3ZlQ2hpbGQoYSl9cmV0dXJuIGJ9TmF0aXZlLlVJRD0xO3ZhciAk
dWlkPShCcm93c2VyLkVuZ2luZS50cmlkZW50KT9mdW5jdGlvbihhKXtyZXR1cm4o
YS51aWR8fChhLnVpZD1bTmF0aXZlLlVJRCsrXSkpWzBdfTpmdW5jdGlvbihhKXty
ZXR1cm4gYS51aWR8fChhLnVpZD1OYXRpdmUuVUlEKyspfTt2YXIgV2luZG93PW5l
dyBOYXRpdmUoe25hbWU6IldpbmRvdyIsbGVnYWN5OihCcm93c2VyLkVuZ2luZS50
cmlkZW50KT9udWxsOndpbmRvdy5XaW5kb3csaW5pdGlhbGl6ZTpmdW5jdGlvbihh
KXskdWlkKGEpO2lmKCFhLkVsZW1lbnQpe2EuRWxlbWVudD0kZW1wdHk7aWYoQnJv
d3Nlci5FbmdpbmUud2Via2l0KXthLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpfWEuRWxlbWVudC5wcm90b3R5cGU9KEJyb3dzZXIuRW5naW5lLndlYmtp
dCk/d2luZG93WyJbW0RPTUVsZW1lbnQucHJvdG90eXBlXV0iXTp7fX1hLmRvY3Vt
ZW50LndpbmRvdz1hO3JldHVybiAkZXh0ZW5kKGEsV2luZG93LlByb3RvdHlwZSl9
LGFmdGVySW1wbGVtZW50OmZ1bmN0aW9uKGIsYSl7d2luZG93W2JdPVdpbmRvdy5Q
cm90b3R5cGVbYl09YX19KTtXaW5kb3cuUHJvdG90eXBlPXskZmFtaWx5OntuYW1l
OiJ3aW5kb3cifX07bmV3IFdpbmRvdyh3aW5kb3cpO3ZhciBEb2N1bWVudD1uZXcg
TmF0aXZlKHtuYW1lOiJEb2N1bWVudCIsbGVnYWN5OihCcm93c2VyLkVuZ2luZS50
cmlkZW50KT9udWxsOndpbmRvdy5Eb2N1bWVudCxpbml0aWFsaXplOmZ1bmN0aW9u
KGEpeyR1aWQoYSk7YS5oZWFkPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQi
KVswXTthLmh0bWw9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpWzBdO2lm
KEJyb3dzZXIuRW5naW5lLnRyaWRlbnQmJkJyb3dzZXIuRW5naW5lLnZlcnNpb248
PTQpeyR0cnkoZnVuY3Rpb24oKXthLmV4ZWNDb21tYW5kKCJCYWNrZ3JvdW5kSW1h
Z2VDYWNoZSIsZmFsc2UsdHJ1ZSl9KX1pZihCcm93c2VyLkVuZ2luZS50cmlkZW50
KXthLndpbmRvdy5hdHRhY2hFdmVudCgib251bmxvYWQiLGZ1bmN0aW9uKCl7YS53
aW5kb3cuZGV0YWNoRXZlbnQoIm9udW5sb2FkIixhcmd1bWVudHMuY2FsbGVlKTth
LmhlYWQ9YS5odG1sPWEud2luZG93PW51bGx9KX1yZXR1cm4gJGV4dGVuZChhLERv
Y3VtZW50LlByb3RvdHlwZSl9LGFmdGVySW1wbGVtZW50OmZ1bmN0aW9uKGIsYSl7
ZG9jdW1lbnRbYl09RG9jdW1lbnQuUHJvdG90eXBlW2JdPWF9fSk7RG9jdW1lbnQu
UHJvdG90eXBlPXskZmFtaWx5OntuYW1lOiJkb2N1bWVudCJ9fTtuZXcgRG9jdW1l
bnQoZG9jdW1lbnQpO0FycmF5LmltcGxlbWVudCh7ZXZlcnk6ZnVuY3Rpb24oYyxk
KXtmb3IodmFyIGI9MCxhPXRoaXMubGVuZ3RoO2I8YTtiKyspe2lmKCFjLmNhbGwo
ZCx0aGlzW2JdLGIsdGhpcykpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9LGZp
bHRlcjpmdW5jdGlvbihkLGUpe3ZhciBjPVtdO2Zvcih2YXIgYj0wLGE9dGhpcy5s
ZW5ndGg7YjxhO2IrKyl7aWYoZC5jYWxsKGUsdGhpc1tiXSxiLHRoaXMpKXtjLnB1
c2godGhpc1tiXSl9fXJldHVybiBjfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiB0
aGlzLmZpbHRlcigkZGVmaW5lZCl9LGluZGV4T2Y6ZnVuY3Rpb24oYyxkKXt2YXIg
YT10aGlzLmxlbmd0aDtmb3IodmFyIGI9KGQ8MCk/TWF0aC5tYXgoMCxhK2QpOmR8
fDA7YjxhO2IrKyl7aWYodGhpc1tiXT09PWMpe3JldHVybiBifX1yZXR1cm4gLTF9
LG1hcDpmdW5jdGlvbihkLGUpe3ZhciBjPVtdO2Zvcih2YXIgYj0wLGE9dGhpcy5s
ZW5ndGg7YjxhO2IrKyl7Y1tiXT1kLmNhbGwoZSx0aGlzW2JdLGIsdGhpcyl9cmV0
dXJuIGN9LHNvbWU6ZnVuY3Rpb24oYyxkKXtmb3IodmFyIGI9MCxhPXRoaXMubGVu
Z3RoO2I8YTtiKyspe2lmKGMuY2FsbChkLHRoaXNbYl0sYix0aGlzKSl7cmV0dXJu
IHRydWV9fXJldHVybiBmYWxzZX0sYXNzb2NpYXRlOmZ1bmN0aW9uKGMpe3ZhciBk
PXt9LGI9TWF0aC5taW4odGhpcy5sZW5ndGgsYy5sZW5ndGgpO2Zvcih2YXIgYT0w
O2E8YjthKyspe2RbY1thXV09dGhpc1thXX1yZXR1cm4gZH0sbGluazpmdW5jdGlv
bihjKXt2YXIgYT17fTtmb3IodmFyIGU9MCxiPXRoaXMubGVuZ3RoO2U8YjtlKysp
e2Zvcih2YXIgZCBpbiBjKXtpZihjW2RdKHRoaXNbZV0pKXthW2RdPXRoaXNbZV07
ZGVsZXRlIGNbZF07YnJlYWt9fX1yZXR1cm4gYX0sY29udGFpbnM6ZnVuY3Rpb24o
YSxiKXtyZXR1cm4gdGhpcy5pbmRleE9mKGEsYikhPS0xfSxleHRlbmQ6ZnVuY3Rp
b24oYyl7Zm9yKHZhciBiPTAsYT1jLmxlbmd0aDtiPGE7YisrKXt0aGlzLnB1c2go
Y1tiXSl9cmV0dXJuIHRoaXN9LGdldExhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4odGhp
cy5sZW5ndGgpP3RoaXNbdGhpcy5sZW5ndGgtMV06bnVsbH0sZ2V0UmFuZG9tOmZ1
bmN0aW9uKCl7cmV0dXJuKHRoaXMubGVuZ3RoKT90aGlzWyRyYW5kb20oMCx0aGlz
Lmxlbmd0aC0xKV06bnVsbH0saW5jbHVkZTpmdW5jdGlvbihhKXtpZighdGhpcy5j
b250YWlucyhhKSl7dGhpcy5wdXNoKGEpfXJldHVybiB0aGlzfSxjb21iaW5lOmZ1
bmN0aW9uKGMpe2Zvcih2YXIgYj0wLGE9Yy5sZW5ndGg7YjxhO2IrKyl7dGhpcy5p
bmNsdWRlKGNbYl0pfXJldHVybiB0aGlzfSxlcmFzZTpmdW5jdGlvbihiKXtmb3Io
dmFyIGE9dGhpcy5sZW5ndGg7YS0tO2Epe2lmKHRoaXNbYV09PT1iKXt0aGlzLnNw
bGljZShhLDEpfX1yZXR1cm4gdGhpc30sZW1wdHk6ZnVuY3Rpb24oKXt0aGlzLmxl
bmd0aD0wO3JldHVybiB0aGlzfSxmbGF0dGVuOmZ1bmN0aW9uKCl7dmFyIGQ9W107
Zm9yKHZhciBiPTAsYT10aGlzLmxlbmd0aDtiPGE7YisrKXt2YXIgYz0kdHlwZSh0
aGlzW2JdKTtpZighYyl7Y29udGludWV9ZD1kLmNvbmNhdCgoYz09ImFycmF5Inx8
Yz09ImNvbGxlY3Rpb24ifHxjPT0iYXJndW1lbnRzIik/QXJyYXkuZmxhdHRlbih0
aGlzW2JdKTp0aGlzW2JdKX1yZXR1cm4gZH0saGV4VG9SZ2I6ZnVuY3Rpb24oYil7
aWYodGhpcy5sZW5ndGghPTMpe3JldHVybiBudWxsfXZhciBhPXRoaXMubWFwKGZ1
bmN0aW9uKGMpe2lmKGMubGVuZ3RoPT0xKXtjKz1jfXJldHVybiBjLnRvSW50KDE2
KX0pO3JldHVybihiKT9hOiJyZ2IoIithKyIpIn0scmdiVG9IZXg6ZnVuY3Rpb24o
ZCl7aWYodGhpcy5sZW5ndGg8Myl7cmV0dXJuIG51bGx9aWYodGhpcy5sZW5ndGg9
PTQmJnRoaXNbM109PTAmJiFkKXtyZXR1cm4idHJhbnNwYXJlbnQifXZhciBiPVtd
O2Zvcih2YXIgYT0wO2E8MzthKyspe3ZhciBjPSh0aGlzW2FdLTApLnRvU3RyaW5n
KDE2KTtiLnB1c2goKGMubGVuZ3RoPT0xKT8iMCIrYzpjKX1yZXR1cm4oZCk/Yjoi
IyIrYi5qb2luKCIiKX19KTtGdW5jdGlvbi5pbXBsZW1lbnQoe2V4dGVuZDpmdW5j
dGlvbihhKXtmb3IodmFyIGIgaW4gYSl7dGhpc1tiXT1hW2JdfXJldHVybiB0aGlz
fSxjcmVhdGU6ZnVuY3Rpb24oYil7dmFyIGE9dGhpcztiPWJ8fHt9O3JldHVybiBm
dW5jdGlvbihkKXt2YXIgYz1iLmFyZ3VtZW50cztjPShjIT11bmRlZmluZWQpPyRz
cGxhdChjKTpBcnJheS5zbGljZShhcmd1bWVudHMsKGIuZXZlbnQpPzE6MCk7aWYo
Yi5ldmVudCl7Yz1bZHx8d2luZG93LmV2ZW50XS5leHRlbmQoYyl9dmFyIGU9ZnVu
Y3Rpb24oKXtyZXR1cm4gYS5hcHBseShiLmJpbmR8fG51bGwsYyl9O2lmKGIuZGVs
YXkpe3JldHVybiBzZXRUaW1lb3V0KGUsYi5kZWxheSl9aWYoYi5wZXJpb2RpY2Fs
KXtyZXR1cm4gc2V0SW50ZXJ2YWwoZSxiLnBlcmlvZGljYWwpfWlmKGIuYXR0ZW1w
dCl7cmV0dXJuICR0cnkoZSl9cmV0dXJuIGUoKX19LHJ1bjpmdW5jdGlvbihhLGIp
e3JldHVybiB0aGlzLmFwcGx5KGIsJHNwbGF0KGEpKX0scGFzczpmdW5jdGlvbihh
LGIpe3JldHVybiB0aGlzLmNyZWF0ZSh7YmluZDpiLGFyZ3VtZW50czphfSl9LGJp
bmQ6ZnVuY3Rpb24oYixhKXtyZXR1cm4gdGhpcy5jcmVhdGUoe2JpbmQ6Yixhcmd1
bWVudHM6YX0pfSxiaW5kV2l0aEV2ZW50OmZ1bmN0aW9uKGIsYSl7cmV0dXJuIHRo
aXMuY3JlYXRlKHtiaW5kOmIsYXJndW1lbnRzOmEsZXZlbnQ6dHJ1ZX0pfSxhdHRl
bXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuY3JlYXRlKHtiaW5kOmIsYXJn
dW1lbnRzOmEsYXR0ZW1wdDp0cnVlfSkoKX0sZGVsYXk6ZnVuY3Rpb24oYixjLGEp
e3JldHVybiB0aGlzLmNyZWF0ZSh7YmluZDpjLGFyZ3VtZW50czphLGRlbGF5OmJ9
KSgpfSxwZXJpb2RpY2FsOmZ1bmN0aW9uKGMsYixhKXtyZXR1cm4gdGhpcy5jcmVh
dGUoe2JpbmQ6Yixhcmd1bWVudHM6YSxwZXJpb2RpY2FsOmN9KSgpfX0pO051bWJl
ci5pbXBsZW1lbnQoe2xpbWl0OmZ1bmN0aW9uKGIsYSl7cmV0dXJuIE1hdGgubWlu
KGEsTWF0aC5tYXgoYix0aGlzKSl9LHJvdW5kOmZ1bmN0aW9uKGEpe2E9TWF0aC5w
b3coMTAsYXx8MCk7cmV0dXJuIE1hdGgucm91bmQodGhpcyphKS9hfSx0aW1lczpm
dW5jdGlvbihiLGMpe2Zvcih2YXIgYT0wO2E8dGhpczthKyspe2IuY2FsbChjLGEs
dGhpcyl9fSx0b0Zsb2F0OmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlRmxvYXQodGhp
cyl9LHRvSW50OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUludCh0aGlzLGF8fDEw
KX19KTtOdW1iZXIuYWxpYXMoInRpbWVzIiwiZWFjaCIpOyhmdW5jdGlvbihiKXt2
YXIgYT17fTtiLmVhY2goZnVuY3Rpb24oYyl7aWYoIU51bWJlcltjXSl7YVtjXT1m
dW5jdGlvbigpe3JldHVybiBNYXRoW2NdLmFwcGx5KG51bGwsW3RoaXNdLmNvbmNh
dCgkQShhcmd1bWVudHMpKSl9fX0pO051bWJlci5pbXBsZW1lbnQoYSl9KShbImFi
cyIsImFjb3MiLCJhc2luIiwiYXRhbiIsImF0YW4yIiwiY2VpbCIsImNvcyIsImV4
cCIsImZsb29yIiwibG9nIiwibWF4IiwibWluIiwicG93Iiwic2luIiwic3FydCIs
InRhbiJdKTtTdHJpbmcuaW1wbGVtZW50KHt0ZXN0OmZ1bmN0aW9uKGEsYil7cmV0
dXJuKCh0eXBlb2YgYT09InN0cmluZyIpP25ldyBSZWdFeHAoYSxiKTphKS50ZXN0
KHRoaXMpfSxjb250YWluczpmdW5jdGlvbihhLGIpe3JldHVybihiKT8oYit0aGlz
K2IpLmluZGV4T2YoYithK2IpPi0xOnRoaXMuaW5kZXhPZihhKT4tMX0sdHJpbTpm
dW5jdGlvbigpe3JldHVybiB0aGlzLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0s
Y2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC9ccysvZywiICIp
LnRyaW0oKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVwbGFj
ZSgvLVxEL2csZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2hhckF0KDEpLnRvVXBwZXJD
YXNlKCl9KX0saHlwaGVuYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVwbGFj
ZSgvW0EtWl0vZyxmdW5jdGlvbihhKXtyZXR1cm4oIi0iK2EuY2hhckF0KDApLnRv
TG93ZXJDYXNlKCkpfSl9LGNhcGl0YWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy5yZXBsYWNlKC9cYlthLXpdL2csZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9VcHBl
ckNhc2UoKX0pfSxlc2NhcGVSZWdFeHA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5y
ZXBsYWNlKC8oWy0uKis/XiR7fSgpfFtcXVwvXFxdKS9nLCJcXCQxIil9LHRvSW50
OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUludCh0aGlzLGF8fDEwKX0sdG9GbG9h
dDpmdW5jdGlvbigpe3JldHVybiBwYXJzZUZsb2F0KHRoaXMpfSxoZXhUb1JnYjpm
dW5jdGlvbihiKXt2YXIgYT10aGlzLm1hdGNoKC9eIz8oXHd7MSwyfSkoXHd7MSwy
fSkoXHd7MSwyfSkkLyk7cmV0dXJuKGEpP2Euc2xpY2UoMSkuaGV4VG9SZ2IoYik6
bnVsbH0scmdiVG9IZXg6ZnVuY3Rpb24oYil7dmFyIGE9dGhpcy5tYXRjaCgvXGR7
MSwzfS9nKTtyZXR1cm4oYSk/YS5yZ2JUb0hleChiKTpudWxsfSxzdHJpcFNjcmlw
dHM6ZnVuY3Rpb24oYil7dmFyIGE9IiI7dmFyIGM9dGhpcy5yZXBsYWNlKC88c2Ny
aXB0W14+XSo+KFtcc1xTXSo/KTxcL3NjcmlwdD4vZ2ksZnVuY3Rpb24oKXthKz1h
cmd1bWVudHNbMV0rIlxuIjtyZXR1cm4iIn0pO2lmKGI9PT10cnVlKXskZXhlYyhh
KX1lbHNle2lmKCR0eXBlKGIpPT0iZnVuY3Rpb24iKXtiKGEsYyl9fXJldHVybiBj
fSxzdWJzdGl0dXRlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucmVwbGFjZShi
fHwoL1xcP1x7KFtee31dKylcfS9nKSxmdW5jdGlvbihkLGMpe2lmKGQuY2hhckF0
KDApPT0iXFwiKXtyZXR1cm4gZC5zbGljZSgxKX1yZXR1cm4oYVtjXSE9dW5kZWZp
bmVkKT9hW2NdOiIifSl9fSk7SGFzaC5pbXBsZW1lbnQoe2hhczpPYmplY3QucHJv
dG90eXBlLmhhc093blByb3BlcnR5LGtleU9mOmZ1bmN0aW9uKGIpe2Zvcih2YXIg
YSBpbiB0aGlzKXtpZih0aGlzLmhhc093blByb3BlcnR5KGEpJiZ0aGlzW2FdPT09
Yil7cmV0dXJuIGF9fXJldHVybiBudWxsfSxoYXNWYWx1ZTpmdW5jdGlvbihhKXty
ZXR1cm4oSGFzaC5rZXlPZih0aGlzLGEpIT09bnVsbCl9LGV4dGVuZDpmdW5jdGlv
bihhKXtIYXNoLmVhY2goYXx8e30sZnVuY3Rpb24oYyxiKXtIYXNoLnNldCh0aGlz
LGIsYyl9LHRoaXMpO3JldHVybiB0aGlzfSxjb21iaW5lOmZ1bmN0aW9uKGEpe0hh
c2guZWFjaChhfHx7fSxmdW5jdGlvbihjLGIpe0hhc2guaW5jbHVkZSh0aGlzLGIs
Yyl9LHRoaXMpO3JldHVybiB0aGlzfSxlcmFzZTpmdW5jdGlvbihhKXtpZih0aGlz
Lmhhc093blByb3BlcnR5KGEpKXtkZWxldGUgdGhpc1thXX1yZXR1cm4gdGhpc30s
Z2V0OmZ1bmN0aW9uKGEpe3JldHVybih0aGlzLmhhc093blByb3BlcnR5KGEpKT90
aGlzW2FdOm51bGx9LHNldDpmdW5jdGlvbihhLGIpe2lmKCF0aGlzW2FdfHx0aGlz
Lmhhc093blByb3BlcnR5KGEpKXt0aGlzW2FdPWJ9cmV0dXJuIHRoaXN9LGVtcHR5
OmZ1bmN0aW9uKCl7SGFzaC5lYWNoKHRoaXMsZnVuY3Rpb24oYixhKXtkZWxldGUg
dGhpc1thXX0sdGhpcyk7cmV0dXJuIHRoaXN9LGluY2x1ZGU6ZnVuY3Rpb24oYSxi
KXtpZih0aGlzW2FdPT11bmRlZmluZWQpe3RoaXNbYV09Yn1yZXR1cm4gdGhpc30s
bWFwOmZ1bmN0aW9uKGIsYyl7dmFyIGE9bmV3IEhhc2g7SGFzaC5lYWNoKHRoaXMs
ZnVuY3Rpb24oZSxkKXthLnNldChkLGIuY2FsbChjLGUsZCx0aGlzKSl9LHRoaXMp
O3JldHVybiBhfSxmaWx0ZXI6ZnVuY3Rpb24oYixjKXt2YXIgYT1uZXcgSGFzaDtI
YXNoLmVhY2godGhpcyxmdW5jdGlvbihlLGQpe2lmKGIuY2FsbChjLGUsZCx0aGlz
KSl7YS5zZXQoZCxlKX19LHRoaXMpO3JldHVybiBhfSxldmVyeTpmdW5jdGlvbihi
LGMpe2Zvcih2YXIgYSBpbiB0aGlzKXtpZih0aGlzLmhhc093blByb3BlcnR5KGEp
JiYhYi5jYWxsKGMsdGhpc1thXSxhKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1
ZX0sc29tZTpmdW5jdGlvbihiLGMpe2Zvcih2YXIgYSBpbiB0aGlzKXtpZih0aGlz
Lmhhc093blByb3BlcnR5KGEpJiZiLmNhbGwoYyx0aGlzW2FdLGEpKXtyZXR1cm4g
dHJ1ZX19cmV0dXJuIGZhbHNlfSxnZXRLZXlzOmZ1bmN0aW9uKCl7dmFyIGE9W107
SGFzaC5lYWNoKHRoaXMsZnVuY3Rpb24oYyxiKXthLnB1c2goYil9KTtyZXR1cm4g
YX0sZ2V0VmFsdWVzOmZ1bmN0aW9uKCl7dmFyIGE9W107SGFzaC5lYWNoKHRoaXMs
ZnVuY3Rpb24oYil7YS5wdXNoKGIpfSk7cmV0dXJuIGF9LHRvUXVlcnlTdHJpbmc6
ZnVuY3Rpb24oYSl7dmFyIGI9W107SGFzaC5lYWNoKHRoaXMsZnVuY3Rpb24oZixl
KXtpZihhKXtlPWErIlsiK2UrIl0ifXZhciBkO3N3aXRjaCgkdHlwZShmKSl7Y2Fz
ZSJvYmplY3QiOmQ9SGFzaC50b1F1ZXJ5U3RyaW5nKGYsZSk7YnJlYWs7Y2FzZSJh
cnJheSI6dmFyIGM9e307Zi5lYWNoKGZ1bmN0aW9uKGgsZyl7Y1tnXT1ofSk7ZD1I
YXNoLnRvUXVlcnlTdHJpbmcoYyxlKTticmVhaztkZWZhdWx0OmQ9ZSsiPSIrZW5j
b2RlVVJJQ29tcG9uZW50KGYpfWlmKGYhPXVuZGVmaW5lZCl7Yi5wdXNoKGQpfX0p
O3JldHVybiBiLmpvaW4oIiYiKX19KTtIYXNoLmFsaWFzKHtrZXlPZjoiaW5kZXhP
ZiIsaGFzVmFsdWU6ImNvbnRhaW5zIn0pO3ZhciBFdmVudD1uZXcgTmF0aXZlKHtu
YW1lOiJFdmVudCIsaW5pdGlhbGl6ZTpmdW5jdGlvbihhLGYpe2Y9Znx8d2luZG93
O3ZhciBrPWYuZG9jdW1lbnQ7YT1hfHxmLmV2ZW50O2lmKGEuJGV4dGVuZGVkKXty
ZXR1cm4gYX10aGlzLiRleHRlbmRlZD10cnVlO3ZhciBqPWEudHlwZTt2YXIgZz1h
LnRhcmdldHx8YS5zcmNFbGVtZW50O3doaWxlKGcmJmcubm9kZVR5cGU9PTMpe2c9
Zy5wYXJlbnROb2RlfWlmKGoudGVzdCgva2V5Lykpe3ZhciBiPWEud2hpY2h8fGEu
a2V5Q29kZTt2YXIgbT1FdmVudC5LZXlzLmtleU9mKGIpO2lmKGo9PSJrZXlkb3du
Iil7dmFyIGQ9Yi0xMTE7aWYoZD4wJiZkPDEzKXttPSJmIitkfX1tPW18fFN0cmlu
Zy5mcm9tQ2hhckNvZGUoYikudG9Mb3dlckNhc2UoKX1lbHNle2lmKGoubWF0Y2go
LyhjbGlja3xtb3VzZXxtZW51KS9pKSl7az0oIWsuY29tcGF0TW9kZXx8ay5jb21w
YXRNb2RlPT0iQ1NTMUNvbXBhdCIpP2suaHRtbDprLmJvZHk7dmFyIGk9e3g6YS5w
YWdlWHx8YS5jbGllbnRYK2suc2Nyb2xsTGVmdCx5OmEucGFnZVl8fGEuY2xpZW50
WStrLnNjcm9sbFRvcH07dmFyIGM9e3g6KGEucGFnZVgpP2EucGFnZVgtZi5wYWdl
WE9mZnNldDphLmNsaWVudFgseTooYS5wYWdlWSk/YS5wYWdlWS1mLnBhZ2VZT2Zm
c2V0OmEuY2xpZW50WX07aWYoai5tYXRjaCgvRE9NTW91c2VTY3JvbGx8bW91c2V3
aGVlbC8pKXt2YXIgaD0oYS53aGVlbERlbHRhKT9hLndoZWVsRGVsdGEvMTIwOi0o
YS5kZXRhaWx8fDApLzN9dmFyIGU9KGEud2hpY2g9PTMpfHwoYS5idXR0b249PTIp
O3ZhciBsPW51bGw7aWYoai5tYXRjaCgvb3ZlcnxvdXQvKSl7c3dpdGNoKGope2Nh
c2UibW91c2VvdmVyIjpsPWEucmVsYXRlZFRhcmdldHx8YS5mcm9tRWxlbWVudDti
cmVhaztjYXNlIm1vdXNlb3V0IjpsPWEucmVsYXRlZFRhcmdldHx8YS50b0VsZW1l
bnR9aWYoIShmdW5jdGlvbigpe3doaWxlKGwmJmwubm9kZVR5cGU9PTMpe2w9bC5w
YXJlbnROb2RlfXJldHVybiB0cnVlfSkuY3JlYXRlKHthdHRlbXB0OkJyb3dzZXIu
RW5naW5lLmdlY2tvfSkoKSl7bD1mYWxzZX19fX1yZXR1cm4gJGV4dGVuZCh0aGlz
LHtldmVudDphLHR5cGU6aixwYWdlOmksY2xpZW50OmMscmlnaHRDbGljazplLHdo
ZWVsOmgscmVsYXRlZFRhcmdldDpsLHRhcmdldDpnLGNvZGU6YixrZXk6bSxzaGlm
dDphLnNoaWZ0S2V5LGNvbnRyb2w6YS5jdHJsS2V5LGFsdDphLmFsdEtleSxtZXRh
OmEubWV0YUtleX0pfX0pO0V2ZW50LktleXM9bmV3IEhhc2goe2VudGVyOjEzLHVw
OjM4LGRvd246NDAsbGVmdDozNyxyaWdodDozOSxlc2M6Mjcsc3BhY2U6MzIsYmFj
a3NwYWNlOjgsdGFiOjksImRlbGV0ZSI6NDZ9KTtFdmVudC5pbXBsZW1lbnQoe3N0
b3A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb24oKS5wcmV2
ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXtpZih0aGlz
LmV2ZW50LnN0b3BQcm9wYWdhdGlvbil7dGhpcy5ldmVudC5zdG9wUHJvcGFnYXRp
b24oKX1lbHNle3RoaXMuZXZlbnQuY2FuY2VsQnViYmxlPXRydWV9cmV0dXJuIHRo
aXN9LHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5ldmVudC5wcmV2
ZW50RGVmYXVsdCl7dGhpcy5ldmVudC5wcmV2ZW50RGVmYXVsdCgpfWVsc2V7dGhp
cy5ldmVudC5yZXR1cm5WYWx1ZT1mYWxzZX1yZXR1cm4gdGhpc319KTtmdW5jdGlv
biBDbGFzcyhiKXtpZihiIGluc3RhbmNlb2YgRnVuY3Rpb24pe2I9e2luaXRpYWxp
emU6Yn19dmFyIGE9ZnVuY3Rpb24oKXtPYmplY3QucmVzZXQodGhpcyk7aWYoYS5f
cHJvdG90eXBpbmcpe3JldHVybiB0aGlzfXRoaXMuX2N1cnJlbnQ9JGVtcHR5O3Zh
ciBjPSh0aGlzLmluaXRpYWxpemUpP3RoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlz
LGFyZ3VtZW50cyk6dGhpcztkZWxldGUgdGhpcy5fY3VycmVudDtkZWxldGUgdGhp
cy5jYWxsZXI7cmV0dXJuIGN9LmV4dGVuZCh0aGlzKTthLmltcGxlbWVudChiKTth
LmNvbnN0cnVjdG9yPUNsYXNzO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7cmV0
dXJuIGF9RnVuY3Rpb24ucHJvdG90eXBlLnByb3RlY3Q9ZnVuY3Rpb24oKXt0aGlz
Ll9wcm90ZWN0ZWQ9dHJ1ZTtyZXR1cm4gdGhpc307T2JqZWN0LnJlc2V0PWZ1bmN0
aW9uKGEsYyl7aWYoYz09bnVsbCl7Zm9yKHZhciBlIGluIGEpe09iamVjdC5yZXNl
dChhLGUpfXJldHVybiBhfWRlbGV0ZSBhW2NdO3N3aXRjaCgkdHlwZShhW2NdKSl7
Y2FzZSJvYmplY3QiOnZhciBkPWZ1bmN0aW9uKCl7fTtkLnByb3RvdHlwZT1hW2Nd
O3ZhciBiPW5ldyBkO2FbY109T2JqZWN0LnJlc2V0KGIpO2JyZWFrO2Nhc2UiYXJy
YXkiOmFbY109JHVubGluayhhW2NdKTticmVha31yZXR1cm4gYX07bmV3IE5hdGl2
ZSh7bmFtZToiQ2xhc3MiLGluaXRpYWxpemU6Q2xhc3N9KS5leHRlbmQoe2luc3Rh
bnRpYXRlOmZ1bmN0aW9uKGIpe2IuX3Byb3RvdHlwaW5nPXRydWU7dmFyIGE9bmV3
IGI7ZGVsZXRlIGIuX3Byb3RvdHlwaW5nO3JldHVybiBhfSx3cmFwOmZ1bmN0aW9u
KGEsYixjKXtpZihjLl9vcmlnaW4pe2M9Yy5fb3JpZ2lufXJldHVybiBmdW5jdGlv
bigpe2lmKGMuX3Byb3RlY3RlZCYmdGhpcy5fY3VycmVudD09bnVsbCl7dGhyb3cg
bmV3IEVycm9yKCdUaGUgbWV0aG9kICInK2IrJyIgY2Fubm90IGJlIGNhbGxlZC4n
KX12YXIgZT10aGlzLmNhbGxlcixmPXRoaXMuX2N1cnJlbnQ7dGhpcy5jYWxsZXI9
Zjt0aGlzLl9jdXJyZW50PWFyZ3VtZW50cy5jYWxsZWU7dmFyIGQ9Yy5hcHBseSh0
aGlzLGFyZ3VtZW50cyk7dGhpcy5fY3VycmVudD1mO3RoaXMuY2FsbGVyPWU7cmV0
dXJuIGR9LmV4dGVuZCh7X293bmVyOmEsX29yaWdpbjpjLF9uYW1lOmJ9KX19KTtD
bGFzcy5pbXBsZW1lbnQoe2ltcGxlbWVudDpmdW5jdGlvbihhLGQpe2lmKCR0eXBl
KGEpPT0ib2JqZWN0Iil7Zm9yKHZhciBlIGluIGEpe3RoaXMuaW1wbGVtZW50KGUs
YVtlXSl9cmV0dXJuIHRoaXN9dmFyIGY9Q2xhc3MuTXV0YXRvcnNbYV07aWYoZil7
ZD1mLmNhbGwodGhpcyxkKTtpZihkPT1udWxsKXtyZXR1cm4gdGhpc319dmFyIGM9
dGhpcy5wcm90b3R5cGU7c3dpdGNoKCR0eXBlKGQpKXtjYXNlImZ1bmN0aW9uIjpp
ZihkLl9oaWRkZW4pe3JldHVybiB0aGlzfWNbYV09Q2xhc3Mud3JhcCh0aGlzLGEs
ZCk7YnJlYWs7Y2FzZSJvYmplY3QiOnZhciBiPWNbYV07aWYoJHR5cGUoYik9PSJv
YmplY3QiKXskbWl4aW4oYixkKX1lbHNle2NbYV09JHVubGluayhkKX1icmVhaztj
YXNlImFycmF5IjpjW2FdPSR1bmxpbmsoZCk7YnJlYWs7ZGVmYXVsdDpjW2FdPWR9
cmV0dXJuIHRoaXN9fSk7Q2xhc3MuTXV0YXRvcnM9e0V4dGVuZHM6ZnVuY3Rpb24o
YSl7dGhpcy5wYXJlbnQ9YTt0aGlzLnByb3RvdHlwZT1DbGFzcy5pbnN0YW50aWF0
ZShhKTt0aGlzLmltcGxlbWVudCgicGFyZW50IixmdW5jdGlvbigpe3ZhciBiPXRo
aXMuY2FsbGVyLl9uYW1lLGM9dGhpcy5jYWxsZXIuX293bmVyLnBhcmVudC5wcm90
b3R5cGVbYl07aWYoIWMpe3Rocm93IG5ldyBFcnJvcignVGhlIG1ldGhvZCAiJyti
KyciIGhhcyBubyBwYXJlbnQuJyl9cmV0dXJuIGMuYXBwbHkodGhpcyxhcmd1bWVu
dHMpfS5wcm90ZWN0KCkpfSxJbXBsZW1lbnRzOmZ1bmN0aW9uKGEpeyRzcGxhdChh
KS5lYWNoKGZ1bmN0aW9uKGIpe2lmKGIgaW5zdGFuY2VvZiBGdW5jdGlvbil7Yj1D
bGFzcy5pbnN0YW50aWF0ZShiKX10aGlzLmltcGxlbWVudChiKX0sdGhpcyl9fTt2
YXIgQ2hhaW49bmV3IENsYXNzKHskY2hhaW46W10sY2hhaW46ZnVuY3Rpb24oKXt0
aGlzLiRjaGFpbi5leHRlbmQoQXJyYXkuZmxhdHRlbihhcmd1bWVudHMpKTtyZXR1
cm4gdGhpc30sY2FsbENoYWluOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuJGNoYWlu
Lmxlbmd0aCk/dGhpcy4kY2hhaW4uc2hpZnQoKS5hcHBseSh0aGlzLGFyZ3VtZW50
cyk6ZmFsc2V9LGNsZWFyQ2hhaW46ZnVuY3Rpb24oKXt0aGlzLiRjaGFpbi5lbXB0
eSgpO3JldHVybiB0aGlzfX0pO3ZhciBFdmVudHM9bmV3IENsYXNzKHskZXZlbnRz
Ont9LGFkZEV2ZW50OmZ1bmN0aW9uKGMsYixhKXtjPUV2ZW50cy5yZW1vdmVPbihj
KTtpZihiIT0kZW1wdHkpe3RoaXMuJGV2ZW50c1tjXT10aGlzLiRldmVudHNbY118
fFtdO3RoaXMuJGV2ZW50c1tjXS5pbmNsdWRlKGIpO2lmKGEpe2IuaW50ZXJuYWw9
dHJ1ZX19cmV0dXJuIHRoaXN9LGFkZEV2ZW50czpmdW5jdGlvbihhKXtmb3IodmFy
IGIgaW4gYSl7dGhpcy5hZGRFdmVudChiLGFbYl0pfXJldHVybiB0aGlzfSxmaXJl
RXZlbnQ6ZnVuY3Rpb24oYyxiLGEpe2M9RXZlbnRzLnJlbW92ZU9uKGMpO2lmKCF0
aGlzLiRldmVudHN8fCF0aGlzLiRldmVudHNbY10pe3JldHVybiB0aGlzfXRoaXMu
JGV2ZW50c1tjXS5lYWNoKGZ1bmN0aW9uKGQpe2QuY3JlYXRlKHtiaW5kOnRoaXMs
ZGVsYXk6YSwiYXJndW1lbnRzIjpifSkoKX0sdGhpcyk7cmV0dXJuIHRoaXN9LHJl
bW92ZUV2ZW50OmZ1bmN0aW9uKGIsYSl7Yj1FdmVudHMucmVtb3ZlT24oYik7aWYo
IXRoaXMuJGV2ZW50c1tiXSl7cmV0dXJuIHRoaXN9aWYoIWEuaW50ZXJuYWwpe3Ro
aXMuJGV2ZW50c1tiXS5lcmFzZShhKX1yZXR1cm4gdGhpc30scmVtb3ZlRXZlbnRz
OmZ1bmN0aW9uKGMpe3ZhciBkO2lmKCR0eXBlKGMpPT0ib2JqZWN0Iil7Zm9yKGQg
aW4gYyl7dGhpcy5yZW1vdmVFdmVudChkLGNbZF0pfXJldHVybiB0aGlzfWlmKGMp
e2M9RXZlbnRzLnJlbW92ZU9uKGMpfWZvcihkIGluIHRoaXMuJGV2ZW50cyl7aWYo
YyYmYyE9ZCl7Y29udGludWV9dmFyIGI9dGhpcy4kZXZlbnRzW2RdO2Zvcih2YXIg
YT1iLmxlbmd0aDthLS07YSl7dGhpcy5yZW1vdmVFdmVudChkLGJbYV0pfX1yZXR1
cm4gdGhpc319KTtFdmVudHMucmVtb3ZlT249ZnVuY3Rpb24oYSl7cmV0dXJuIGEu
cmVwbGFjZSgvXm9uKFtBLVpdKS8sZnVuY3Rpb24oYixjKXtyZXR1cm4gYy50b0xv
d2VyQ2FzZSgpfSl9O3ZhciBPcHRpb25zPW5ldyBDbGFzcyh7c2V0T3B0aW9uczpm
dW5jdGlvbigpe3RoaXMub3B0aW9ucz0kbWVyZ2UucnVuKFt0aGlzLm9wdGlvbnNd
LmV4dGVuZChhcmd1bWVudHMpKTtpZighdGhpcy5hZGRFdmVudCl7cmV0dXJuIHRo
aXN9Zm9yKHZhciBhIGluIHRoaXMub3B0aW9ucyl7aWYoJHR5cGUodGhpcy5vcHRp
b25zW2FdKSE9ImZ1bmN0aW9uInx8ISgvXm9uW0EtWl0vKS50ZXN0KGEpKXtjb250
aW51ZX10aGlzLmFkZEV2ZW50KGEsdGhpcy5vcHRpb25zW2FdKTtkZWxldGUgdGhp
cy5vcHRpb25zW2FdfXJldHVybiB0aGlzfX0pO3ZhciBFbGVtZW50PW5ldyBOYXRp
dmUoe25hbWU6IkVsZW1lbnQiLGxlZ2FjeTp3aW5kb3cuRWxlbWVudCxpbml0aWFs
aXplOmZ1bmN0aW9uKGEsYil7dmFyIGM9RWxlbWVudC5Db25zdHJ1Y3RvcnMuZ2V0
KGEpO2lmKGMpe3JldHVybiBjKGIpfWlmKHR5cGVvZiBhPT0ic3RyaW5nIil7cmV0
dXJuIGRvY3VtZW50Lm5ld0VsZW1lbnQoYSxiKX1yZXR1cm4gZG9jdW1lbnQuaWQo
YSkuc2V0KGIpfSxhZnRlckltcGxlbWVudDpmdW5jdGlvbihhLGIpe0VsZW1lbnQu
UHJvdG90eXBlW2FdPWI7aWYoQXJyYXlbYV0pe3JldHVybn1FbGVtZW50cy5pbXBs
ZW1lbnQoYSxmdW5jdGlvbigpe3ZhciBjPVtdLGc9dHJ1ZTtmb3IodmFyIGU9MCxk
PXRoaXMubGVuZ3RoO2U8ZDtlKyspe3ZhciBmPXRoaXNbZV1bYV0uYXBwbHkodGhp
c1tlXSxhcmd1bWVudHMpO2MucHVzaChmKTtpZihnKXtnPSgkdHlwZShmKT09ImVs
ZW1lbnQiKX19cmV0dXJuKGcpP25ldyBFbGVtZW50cyhjKTpjfSl9fSk7RWxlbWVu
dC5Qcm90b3R5cGU9eyRmYW1pbHk6e25hbWU6ImVsZW1lbnQifX07RWxlbWVudC5D
b25zdHJ1Y3RvcnM9bmV3IEhhc2g7dmFyIElGcmFtZT1uZXcgTmF0aXZlKHtuYW1l
OiJJRnJhbWUiLGdlbmVyaWNzOmZhbHNlLGluaXRpYWxpemU6ZnVuY3Rpb24oKXt2
YXIgZj1BcnJheS5saW5rKGFyZ3VtZW50cyx7cHJvcGVydGllczpPYmplY3QudHlw
ZSxpZnJhbWU6JGRlZmluZWR9KTt2YXIgZD1mLnByb3BlcnRpZXN8fHt9O3ZhciBj
PWRvY3VtZW50LmlkKGYuaWZyYW1lKTt2YXIgZT1kLm9ubG9hZHx8JGVtcHR5O2Rl
bGV0ZSBkLm9ubG9hZDtkLmlkPWQubmFtZT0kcGljayhkLmlkLGQubmFtZSxjPyhj
LmlkfHxjLm5hbWUpOiJJRnJhbWVfIiskdGltZSgpKTtjPW5ldyBFbGVtZW50KGN8
fCJpZnJhbWUiLGQpO3ZhciBiPWZ1bmN0aW9uKCl7dmFyIGc9JHRyeShmdW5jdGlv
bigpe3JldHVybiBjLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaG9zdH0pO2lmKCFn
fHxnPT13aW5kb3cubG9jYXRpb24uaG9zdCl7dmFyIGg9bmV3IFdpbmRvdyhjLmNv
bnRlbnRXaW5kb3cpO25ldyBEb2N1bWVudChjLmNvbnRlbnRXaW5kb3cuZG9jdW1l
bnQpOyRleHRlbmQoaC5FbGVtZW50LnByb3RvdHlwZSxFbGVtZW50LlByb3RvdHlw
ZSl9ZS5jYWxsKGMuY29udGVudFdpbmRvdyxjLmNvbnRlbnRXaW5kb3cuZG9jdW1l
bnQpfTt2YXIgYT0kdHJ5KGZ1bmN0aW9uKCl7cmV0dXJuIGMuY29udGVudFdpbmRv
d30pOygoYSYmYS5kb2N1bWVudC5ib2R5KXx8d2luZG93LmZyYW1lc1tkLmlkXSk/
YigpOmMuYWRkTGlzdGVuZXIoImxvYWQiLGIpO3JldHVybiBjfX0pO3ZhciBFbGVt
ZW50cz1uZXcgTmF0aXZlKHtpbml0aWFsaXplOmZ1bmN0aW9uKGYsYil7Yj0kZXh0
ZW5kKHtkZHVwOnRydWUsY2FzaDp0cnVlfSxiKTtmPWZ8fFtdO2lmKGIuZGR1cHx8
Yi5jYXNoKXt2YXIgZz17fSxlPVtdO2Zvcih2YXIgYz0wLGE9Zi5sZW5ndGg7Yzxh
O2MrKyl7dmFyIGQ9ZG9jdW1lbnQuaWQoZltjXSwhYi5jYXNoKTtpZihiLmRkdXAp
e2lmKGdbZC51aWRdKXtjb250aW51ZX1nW2QudWlkXT10cnVlfWlmKGQpe2UucHVz
aChkKX19Zj1lfXJldHVybihiLmNhc2gpPyRleHRlbmQoZix0aGlzKTpmfX0pO0Vs
ZW1lbnRzLmltcGxlbWVudCh7ZmlsdGVyOmZ1bmN0aW9uKGEsYil7aWYoIWEpe3Jl
dHVybiB0aGlzfXJldHVybiBuZXcgRWxlbWVudHMoQXJyYXkuZmlsdGVyKHRoaXMs
KHR5cGVvZiBhPT0ic3RyaW5nIik/ZnVuY3Rpb24oYyl7cmV0dXJuIGMubWF0Y2go
YSl9OmEsYikpfX0pO0RvY3VtZW50LmltcGxlbWVudCh7bmV3RWxlbWVudDpmdW5j
dGlvbihhLGIpe2lmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQmJmIpe1sibmFtZSIs
InR5cGUiLCJjaGVja2VkIl0uZWFjaChmdW5jdGlvbihjKXtpZighYltjXSl7cmV0
dXJufWErPSIgIitjKyc9IicrYltjXSsnIic7aWYoYyE9ImNoZWNrZWQiKXtkZWxl
dGUgYltjXX19KTthPSI8IithKyI+In1yZXR1cm4gZG9jdW1lbnQuaWQodGhpcy5j
cmVhdGVFbGVtZW50KGEpKS5zZXQoYil9LG5ld1RleHROb2RlOmZ1bmN0aW9uKGEp
e3JldHVybiB0aGlzLmNyZWF0ZVRleHROb2RlKGEpfSxnZXREb2N1bWVudDpmdW5j
dGlvbigpe3JldHVybiB0aGlzfSxnZXRXaW5kb3c6ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy53aW5kb3d9LGlkOihmdW5jdGlvbigpe3ZhciBhPXtzdHJpbmc6ZnVuY3Rp
b24oZCxjLGIpe2Q9Yi5nZXRFbGVtZW50QnlJZChkKTtyZXR1cm4oZCk/YS5lbGVt
ZW50KGQsYyk6bnVsbH0sZWxlbWVudDpmdW5jdGlvbihiLGUpeyR1aWQoYik7aWYo
IWUmJiFiLiRmYW1pbHkmJiEoL15vYmplY3R8ZW1iZWQkL2kpLnRlc3QoYi50YWdO
YW1lKSl7dmFyIGM9RWxlbWVudC5Qcm90b3R5cGU7Zm9yKHZhciBkIGluIGMpe2Jb
ZF09Y1tkXX19cmV0dXJuIGJ9LG9iamVjdDpmdW5jdGlvbihjLGQsYil7aWYoYy50
b0VsZW1lbnQpe3JldHVybiBhLmVsZW1lbnQoYy50b0VsZW1lbnQoYiksZCl9cmV0
dXJuIG51bGx9fTthLnRleHRub2RlPWEud2hpdGVzcGFjZT1hLndpbmRvdz1hLmRv
Y3VtZW50PSRhcmd1bWVudHMoMCk7cmV0dXJuIGZ1bmN0aW9uKGMsZSxkKXtpZihj
JiZjLiRmYW1pbHkmJmMudWlkKXtyZXR1cm4gY312YXIgYj0kdHlwZShjKTtyZXR1
cm4oYVtiXSk/YVtiXShjLGUsZHx8ZG9jdW1lbnQpOm51bGx9fSkoKX0pO2lmKHdp
bmRvdy4kPT1udWxsKXtXaW5kb3cuaW1wbGVtZW50KHskOmZ1bmN0aW9uKGEsYil7
cmV0dXJuIGRvY3VtZW50LmlkKGEsYix0aGlzLmRvY3VtZW50KX19KX1XaW5kb3cu
aW1wbGVtZW50KHskJDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoPT0x
JiZ0eXBlb2YgYT09InN0cmluZyIpe3JldHVybiB0aGlzLmRvY3VtZW50LmdldEVs
ZW1lbnRzKGEpfXZhciBmPVtdO3ZhciBjPUFycmF5LmZsYXR0ZW4oYXJndW1lbnRz
KTtmb3IodmFyIGQ9MCxiPWMubGVuZ3RoO2Q8YjtkKyspe3ZhciBlPWNbZF07c3dp
dGNoKCR0eXBlKGUpKXtjYXNlImVsZW1lbnQiOmYucHVzaChlKTticmVhaztjYXNl
InN0cmluZyI6Zi5leHRlbmQodGhpcy5kb2N1bWVudC5nZXRFbGVtZW50cyhlLHRy
dWUpKX19cmV0dXJuIG5ldyBFbGVtZW50cyhmKX0sZ2V0RG9jdW1lbnQ6ZnVuY3Rp
b24oKXtyZXR1cm4gdGhpcy5kb2N1bWVudH0sZ2V0V2luZG93OmZ1bmN0aW9uKCl7
cmV0dXJuIHRoaXN9fSk7TmF0aXZlLmltcGxlbWVudChbRWxlbWVudCxEb2N1bWVu
dF0se2dldEVsZW1lbnQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZG9jdW1lbnQuaWQo
dGhpcy5nZXRFbGVtZW50cyhhLHRydWUpWzBdfHxudWxsLGIpfSxnZXRFbGVtZW50
czpmdW5jdGlvbihhLGQpe2E9YS5zcGxpdCgiLCIpO3ZhciBjPVtdO3ZhciBiPShh
Lmxlbmd0aD4xKTthLmVhY2goZnVuY3Rpb24oZSl7dmFyIGY9dGhpcy5nZXRFbGVt
ZW50c0J5VGFnTmFtZShlLnRyaW0oKSk7KGIpP2MuZXh0ZW5kKGYpOmM9Zn0sdGhp
cyk7cmV0dXJuIG5ldyBFbGVtZW50cyhjLHtkZHVwOmIsY2FzaDohZH0pfX0pOyhm
dW5jdGlvbigpe3ZhciBoPXt9LGY9e307dmFyIGk9e2lucHV0OiJjaGVja2VkIixv
cHRpb246InNlbGVjdGVkIix0ZXh0YXJlYTooQnJvd3Nlci5FbmdpbmUud2Via2l0
JiZCcm93c2VyLkVuZ2luZS52ZXJzaW9uPDQyMCk/ImlubmVySFRNTCI6InZhbHVl
In07dmFyIGM9ZnVuY3Rpb24obCl7cmV0dXJuKGZbbF18fChmW2xdPXt9KSl9O3Zh
ciBnPWZ1bmN0aW9uKG4sbCl7aWYoIW4pe3JldHVybn12YXIgbT1uLnVpZDtpZihC
cm93c2VyLkVuZ2luZS50cmlkZW50KXtpZihuLmNsZWFyQXR0cmlidXRlcyl7dmFy
IHE9bCYmbi5jbG9uZU5vZGUoZmFsc2UpO24uY2xlYXJBdHRyaWJ1dGVzKCk7aWYo
cSl7bi5tZXJnZUF0dHJpYnV0ZXMocSl9fWVsc2V7aWYobi5yZW1vdmVFdmVudHMp
e24ucmVtb3ZlRXZlbnRzKCl9fWlmKCgvb2JqZWN0L2kpLnRlc3Qobi50YWdOYW1l
KSl7Zm9yKHZhciBvIGluIG4pe2lmKHR5cGVvZiBuW29dPT0iZnVuY3Rpb24iKXtu
W29dPSRlbXB0eX19RWxlbWVudC5kaXNwb3NlKG4pfX1pZighbSl7cmV0dXJufWhb
bV09ZlttXT1udWxsfTt2YXIgZD1mdW5jdGlvbigpe0hhc2guZWFjaChoLGcpO2lm
KEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpeyRBKGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJvYmplY3QiKSkuZWFjaChnKX1pZih3aW5kb3cuQ29sbGVjdEdh
cmJhZ2Upe0NvbGxlY3RHYXJiYWdlKCl9aD1mPW51bGx9O3ZhciBqPWZ1bmN0aW9u
KG4sbCxzLG0scCxyKXt2YXIgbz1uW3N8fGxdO3ZhciBxPVtdO3doaWxlKG8pe2lm
KG8ubm9kZVR5cGU9PTEmJighbXx8RWxlbWVudC5tYXRjaChvLG0pKSl7aWYoIXAp
e3JldHVybiBkb2N1bWVudC5pZChvLHIpfXEucHVzaChvKX1vPW9bbF19cmV0dXJu
KHApP25ldyBFbGVtZW50cyhxLHtkZHVwOmZhbHNlLGNhc2g6IXJ9KTpudWxsfTt2
YXIgZT17aHRtbDoiaW5uZXJIVE1MIiwiY2xhc3MiOiJjbGFzc05hbWUiLCJmb3Ii
OiJodG1sRm9yIixkZWZhdWx0VmFsdWU6ImRlZmF1bHRWYWx1ZSIsdGV4dDooQnJv
d3Nlci5FbmdpbmUudHJpZGVudHx8KEJyb3dzZXIuRW5naW5lLndlYmtpdCYmQnJv
d3Nlci5FbmdpbmUudmVyc2lvbjw0MjApKT8iaW5uZXJUZXh0IjoidGV4dENvbnRl
bnQifTt2YXIgYj1bImNvbXBhY3QiLCJub3dyYXAiLCJpc21hcCIsImRlY2xhcmUi
LCJub3NoYWRlIiwiY2hlY2tlZCIsImRpc2FibGVkIiwicmVhZG9ubHkiLCJtdWx0
aXBsZSIsInNlbGVjdGVkIiwibm9yZXNpemUiLCJkZWZlciJdO3ZhciBrPVsidmFs
dWUiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWNjZXNzS2V5IiwiY2VsbFBhZGRp
bmciLCJjZWxsU3BhY2luZyIsImNvbFNwYW4iLCJmcmFtZUJvcmRlciIsIm1heExl
bmd0aCIsInJlYWRPbmx5Iiwicm93U3BhbiIsInRhYkluZGV4IiwidXNlTWFwIl07
Yj1iLmFzc29jaWF0ZShiKTtIYXNoLmV4dGVuZChlLGIpO0hhc2guZXh0ZW5kKGUs
ay5hc3NvY2lhdGUoay5tYXAoU3RyaW5nLnRvTG93ZXJDYXNlKSkpO3ZhciBhPXti
ZWZvcmU6ZnVuY3Rpb24obSxsKXtpZihsLnBhcmVudE5vZGUpe2wucGFyZW50Tm9k
ZS5pbnNlcnRCZWZvcmUobSxsKX19LGFmdGVyOmZ1bmN0aW9uKG0sbCl7aWYoIWwu
cGFyZW50Tm9kZSl7cmV0dXJufXZhciBuPWwubmV4dFNpYmxpbmc7KG4pP2wucGFy
ZW50Tm9kZS5pbnNlcnRCZWZvcmUobSxuKTpsLnBhcmVudE5vZGUuYXBwZW5kQ2hp
bGQobSl9LGJvdHRvbTpmdW5jdGlvbihtLGwpe2wuYXBwZW5kQ2hpbGQobSl9LHRv
cDpmdW5jdGlvbihtLGwpe3ZhciBuPWwuZmlyc3RDaGlsZDsobik/bC5pbnNlcnRC
ZWZvcmUobSxuKTpsLmFwcGVuZENoaWxkKG0pfX07YS5pbnNpZGU9YS5ib3R0b207
SGFzaC5lYWNoKGEsZnVuY3Rpb24obCxtKXttPW0uY2FwaXRhbGl6ZSgpO0VsZW1l
bnQuaW1wbGVtZW50KCJpbmplY3QiK20sZnVuY3Rpb24obil7bCh0aGlzLGRvY3Vt
ZW50LmlkKG4sdHJ1ZSkpO3JldHVybiB0aGlzfSk7RWxlbWVudC5pbXBsZW1lbnQo
ImdyYWIiK20sZnVuY3Rpb24obil7bChkb2N1bWVudC5pZChuLHRydWUpLHRoaXMp
O3JldHVybiB0aGlzfSl9KTtFbGVtZW50LmltcGxlbWVudCh7c2V0OmZ1bmN0aW9u
KG8sbSl7c3dpdGNoKCR0eXBlKG8pKXtjYXNlIm9iamVjdCI6Zm9yKHZhciBuIGlu
IG8pe3RoaXMuc2V0KG4sb1tuXSl9YnJlYWs7Y2FzZSJzdHJpbmciOnZhciBsPUVs
ZW1lbnQuUHJvcGVydGllcy5nZXQobyk7KGwmJmwuc2V0KT9sLnNldC5hcHBseSh0
aGlzLEFycmF5LnNsaWNlKGFyZ3VtZW50cywxKSk6dGhpcy5zZXRQcm9wZXJ0eShv
LG0pfXJldHVybiB0aGlzfSxnZXQ6ZnVuY3Rpb24obSl7dmFyIGw9RWxlbWVudC5Q
cm9wZXJ0aWVzLmdldChtKTtyZXR1cm4obCYmbC5nZXQpP2wuZ2V0LmFwcGx5KHRo
aXMsQXJyYXkuc2xpY2UoYXJndW1lbnRzLDEpKTp0aGlzLmdldFByb3BlcnR5KG0p
fSxlcmFzZTpmdW5jdGlvbihtKXt2YXIgbD1FbGVtZW50LlByb3BlcnRpZXMuZ2V0
KG0pOyhsJiZsLmVyYXNlKT9sLmVyYXNlLmFwcGx5KHRoaXMpOnRoaXMucmVtb3Zl
UHJvcGVydHkobSk7cmV0dXJuIHRoaXN9LHNldFByb3BlcnR5OmZ1bmN0aW9uKG0s
bil7dmFyIGw9ZVttXTtpZihuPT11bmRlZmluZWQpe3JldHVybiB0aGlzLnJlbW92
ZVByb3BlcnR5KG0pfWlmKGwmJmJbbV0pe249ISFufShsKT90aGlzW2xdPW46dGhp
cy5zZXRBdHRyaWJ1dGUobSwiIituKTtyZXR1cm4gdGhpc30sc2V0UHJvcGVydGll
czpmdW5jdGlvbihsKXtmb3IodmFyIG0gaW4gbCl7dGhpcy5zZXRQcm9wZXJ0eSht
LGxbbV0pfXJldHVybiB0aGlzfSxnZXRQcm9wZXJ0eTpmdW5jdGlvbihtKXt2YXIg
bD1lW21dO3ZhciBuPShsKT90aGlzW2xdOnRoaXMuZ2V0QXR0cmlidXRlKG0sMik7
cmV0dXJuKGJbbV0pPyEhbjoobCk/bjpufHxudWxsfSxnZXRQcm9wZXJ0aWVzOmZ1
bmN0aW9uKCl7dmFyIGw9JEEoYXJndW1lbnRzKTtyZXR1cm4gbC5tYXAodGhpcy5n
ZXRQcm9wZXJ0eSx0aGlzKS5hc3NvY2lhdGUobCl9LHJlbW92ZVByb3BlcnR5OmZ1
bmN0aW9uKG0pe3ZhciBsPWVbbV07KGwpP3RoaXNbbF09KGwmJmJbbV0pP2ZhbHNl
OiIiOnRoaXMucmVtb3ZlQXR0cmlidXRlKG0pO3JldHVybiB0aGlzfSxyZW1vdmVQ
cm9wZXJ0aWVzOmZ1bmN0aW9uKCl7QXJyYXkuZWFjaChhcmd1bWVudHMsdGhpcy5y
ZW1vdmVQcm9wZXJ0eSx0aGlzKTtyZXR1cm4gdGhpc30saGFzQ2xhc3M6ZnVuY3Rp
b24obCl7cmV0dXJuIHRoaXMuY2xhc3NOYW1lLmNvbnRhaW5zKGwsIiAiKX0sYWRk
Q2xhc3M6ZnVuY3Rpb24obCl7aWYoIXRoaXMuaGFzQ2xhc3MobCkpe3RoaXMuY2xh
c3NOYW1lPSh0aGlzLmNsYXNzTmFtZSsiICIrbCkuY2xlYW4oKX1yZXR1cm4gdGhp
c30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24obCl7dGhpcy5jbGFzc05hbWU9dGhpcy5j
bGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXHMpIitsKyIoPzpcXHN8
JCkiKSwiJDEiKTtyZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24obCl7
cmV0dXJuIHRoaXMuaGFzQ2xhc3MobCk/dGhpcy5yZW1vdmVDbGFzcyhsKTp0aGlz
LmFkZENsYXNzKGwpfSxhZG9wdDpmdW5jdGlvbigpe0FycmF5LmZsYXR0ZW4oYXJn
dW1lbnRzKS5lYWNoKGZ1bmN0aW9uKGwpe2w9ZG9jdW1lbnQuaWQobCx0cnVlKTtp
ZihsKXt0aGlzLmFwcGVuZENoaWxkKGwpfX0sdGhpcyk7cmV0dXJuIHRoaXN9LGFw
cGVuZFRleHQ6ZnVuY3Rpb24obSxsKXtyZXR1cm4gdGhpcy5ncmFiKHRoaXMuZ2V0
RG9jdW1lbnQoKS5uZXdUZXh0Tm9kZShtKSxsKX0sZ3JhYjpmdW5jdGlvbihtLGwp
e2FbbHx8ImJvdHRvbSJdKGRvY3VtZW50LmlkKG0sdHJ1ZSksdGhpcyk7cmV0dXJu
IHRoaXN9LGluamVjdDpmdW5jdGlvbihtLGwpe2FbbHx8ImJvdHRvbSJdKHRoaXMs
ZG9jdW1lbnQuaWQobSx0cnVlKSk7cmV0dXJuIHRoaXN9LHJlcGxhY2VzOmZ1bmN0
aW9uKGwpe2w9ZG9jdW1lbnQuaWQobCx0cnVlKTtsLnBhcmVudE5vZGUucmVwbGFj
ZUNoaWxkKHRoaXMsbCk7cmV0dXJuIHRoaXN9LHdyYXBzOmZ1bmN0aW9uKG0sbCl7
bT1kb2N1bWVudC5pZChtLHRydWUpO3JldHVybiB0aGlzLnJlcGxhY2VzKG0pLmdy
YWIobSxsKX0sZ2V0UHJldmlvdXM6ZnVuY3Rpb24obCxtKXtyZXR1cm4gaih0aGlz
LCJwcmV2aW91c1NpYmxpbmciLG51bGwsbCxmYWxzZSxtKX0sZ2V0QWxsUHJldmlv
dXM6ZnVuY3Rpb24obCxtKXtyZXR1cm4gaih0aGlzLCJwcmV2aW91c1NpYmxpbmci
LG51bGwsbCx0cnVlLG0pfSxnZXROZXh0OmZ1bmN0aW9uKGwsbSl7cmV0dXJuIGoo
dGhpcywibmV4dFNpYmxpbmciLG51bGwsbCxmYWxzZSxtKX0sZ2V0QWxsTmV4dDpm
dW5jdGlvbihsLG0pe3JldHVybiBqKHRoaXMsIm5leHRTaWJsaW5nIixudWxsLGws
dHJ1ZSxtKX0sZ2V0Rmlyc3Q6ZnVuY3Rpb24obCxtKXtyZXR1cm4gaih0aGlzLCJu
ZXh0U2libGluZyIsImZpcnN0Q2hpbGQiLGwsZmFsc2UsbSl9LGdldExhc3Q6ZnVu
Y3Rpb24obCxtKXtyZXR1cm4gaih0aGlzLCJwcmV2aW91c1NpYmxpbmciLCJsYXN0
Q2hpbGQiLGwsZmFsc2UsbSl9LGdldFBhcmVudDpmdW5jdGlvbihsLG0pe3JldHVy
biBqKHRoaXMsInBhcmVudE5vZGUiLG51bGwsbCxmYWxzZSxtKX0sZ2V0UGFyZW50
czpmdW5jdGlvbihsLG0pe3JldHVybiBqKHRoaXMsInBhcmVudE5vZGUiLG51bGws
bCx0cnVlLG0pfSxnZXRTaWJsaW5nczpmdW5jdGlvbihsLG0pe3JldHVybiB0aGlz
LmdldFBhcmVudCgpLmdldENoaWxkcmVuKGwsbSkuZXJhc2UodGhpcyl9LGdldENo
aWxkcmVuOmZ1bmN0aW9uKGwsbSl7cmV0dXJuIGoodGhpcywibmV4dFNpYmxpbmci
LCJmaXJzdENoaWxkIixsLHRydWUsbSl9LGdldFdpbmRvdzpmdW5jdGlvbigpe3Jl
dHVybiB0aGlzLm93bmVyRG9jdW1lbnQud2luZG93fSxnZXREb2N1bWVudDpmdW5j
dGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnR9LGdldEVsZW1lbnRCeUlk
OmZ1bmN0aW9uKG8sbil7dmFyIG09dGhpcy5vd25lckRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKG8pO2lmKCFtKXtyZXR1cm4gbnVsbH1mb3IodmFyIGw9bS5wYXJlbnRO
b2RlO2whPXRoaXM7bD1sLnBhcmVudE5vZGUpe2lmKCFsKXtyZXR1cm4gbnVsbH19
cmV0dXJuIGRvY3VtZW50LmlkKG0sbil9LGdldFNlbGVjdGVkOmZ1bmN0aW9uKCl7
cmV0dXJuIG5ldyBFbGVtZW50cygkQSh0aGlzLm9wdGlvbnMpLmZpbHRlcihmdW5j
dGlvbihsKXtyZXR1cm4gbC5zZWxlY3RlZH0pKX0sZ2V0Q29tcHV0ZWRTdHlsZTpm
dW5jdGlvbihtKXtpZih0aGlzLmN1cnJlbnRTdHlsZSl7cmV0dXJuIHRoaXMuY3Vy
cmVudFN0eWxlW20uY2FtZWxDYXNlKCldfXZhciBsPXRoaXMuZ2V0RG9jdW1lbnQo
KS5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHRoaXMsbnVsbCk7cmV0dXJu
KGwpP2wuZ2V0UHJvcGVydHlWYWx1ZShbbS5oeXBoZW5hdGUoKV0pOm51bGx9LHRv
UXVlcnlTdHJpbmc6ZnVuY3Rpb24oKXt2YXIgbD1bXTt0aGlzLmdldEVsZW1lbnRz
KCJpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSIsdHJ1ZSkuZWFjaChmdW5jdGlvbiht
KXtpZighbS5uYW1lfHxtLmRpc2FibGVkfHxtLnR5cGU9PSJzdWJtaXQifHxtLnR5
cGU9PSJyZXNldCJ8fG0udHlwZT09ImZpbGUiKXtyZXR1cm59dmFyIG49KG0udGFn
TmFtZS50b0xvd2VyQ2FzZSgpPT0ic2VsZWN0Iik/RWxlbWVudC5nZXRTZWxlY3Rl
ZChtKS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIG8udmFsdWV9KTooKG0udHlwZT09
InJhZGlvInx8bS50eXBlPT0iY2hlY2tib3giKSYmIW0uY2hlY2tlZCk/bnVsbDpt
LnZhbHVlOyRzcGxhdChuKS5lYWNoKGZ1bmN0aW9uKG8pe2lmKHR5cGVvZiBvIT0i
dW5kZWZpbmVkIil7bC5wdXNoKG0ubmFtZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50
KG8pKX19KX0pO3JldHVybiBsLmpvaW4oIiYiKX0sY2xvbmU6ZnVuY3Rpb24obyxs
KXtvPW8hPT1mYWxzZTt2YXIgcj10aGlzLmNsb25lTm9kZShvKTt2YXIgbj1mdW5j
dGlvbih2LHUpe2lmKCFsKXt2LnJlbW92ZUF0dHJpYnV0ZSgiaWQiKX1pZihCcm93
c2VyLkVuZ2luZS50cmlkZW50KXt2LmNsZWFyQXR0cmlidXRlcygpO3YubWVyZ2VB
dHRyaWJ1dGVzKHUpO3YucmVtb3ZlQXR0cmlidXRlKCJ1aWQiKTtpZih2Lm9wdGlv
bnMpe3ZhciB3PXYub3B0aW9ucyxzPXUub3B0aW9ucztmb3IodmFyIHQ9dy5sZW5n
dGg7dC0tOyl7d1t0XS5zZWxlY3RlZD1zW3RdLnNlbGVjdGVkfX19dmFyIHg9aVt1
LnRhZ05hbWUudG9Mb3dlckNhc2UoKV07aWYoeCYmdVt4XSl7dlt4XT11W3hdfX07
aWYobyl7dmFyIHA9ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLHE9dGhpcy5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpO2Zvcih2YXIgbT1wLmxlbmd0aDttLS07
KXtuKHBbbV0scVttXSl9fW4ocix0aGlzKTtyZXR1cm4gZG9jdW1lbnQuaWQocil9
LGRlc3Ryb3k6ZnVuY3Rpb24oKXtFbGVtZW50LmVtcHR5KHRoaXMpO0VsZW1lbnQu
ZGlzcG9zZSh0aGlzKTtnKHRoaXMsdHJ1ZSk7cmV0dXJuIG51bGx9LGVtcHR5OmZ1
bmN0aW9uKCl7JEEodGhpcy5jaGlsZE5vZGVzKS5lYWNoKGZ1bmN0aW9uKGwpe0Vs
ZW1lbnQuZGVzdHJveShsKX0pO3JldHVybiB0aGlzfSxkaXNwb3NlOmZ1bmN0aW9u
KCl7cmV0dXJuKHRoaXMucGFyZW50Tm9kZSk/dGhpcy5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKHRoaXMpOnRoaXN9LGhhc0NoaWxkOmZ1bmN0aW9uKGwpe2w9ZG9jdW1l
bnQuaWQobCx0cnVlKTtpZighbCl7cmV0dXJuIGZhbHNlfWlmKEJyb3dzZXIuRW5n
aW5lLndlYmtpdCYmQnJvd3Nlci5FbmdpbmUudmVyc2lvbjw0MjApe3JldHVybiAk
QSh0aGlzLmdldEVsZW1lbnRzQnlUYWdOYW1lKGwudGFnTmFtZSkpLmNvbnRhaW5z
KGwpfXJldHVybih0aGlzLmNvbnRhaW5zKT8odGhpcyE9bCYmdGhpcy5jb250YWlu
cyhsKSk6ISEodGhpcy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihsKSYxNil9LG1h
dGNoOmZ1bmN0aW9uKGwpe3JldHVybighbHx8KGw9PXRoaXMpfHwoRWxlbWVudC5n
ZXQodGhpcywidGFnIik9PWwpKX19KTtOYXRpdmUuaW1wbGVtZW50KFtFbGVtZW50
LFdpbmRvdyxEb2N1bWVudF0se2FkZExpc3RlbmVyOmZ1bmN0aW9uKG8sbil7aWYo
bz09InVubG9hZCIpe3ZhciBsPW4sbT10aGlzO249ZnVuY3Rpb24oKXttLnJlbW92
ZUxpc3RlbmVyKCJ1bmxvYWQiLG4pO2woKX19ZWxzZXtoW3RoaXMudWlkXT10aGlz
fWlmKHRoaXMuYWRkRXZlbnRMaXN0ZW5lcil7dGhpcy5hZGRFdmVudExpc3RlbmVy
KG8sbixmYWxzZSl9ZWxzZXt0aGlzLmF0dGFjaEV2ZW50KCJvbiIrbyxuKX1yZXR1
cm4gdGhpc30scmVtb3ZlTGlzdGVuZXI6ZnVuY3Rpb24obSxsKXtpZih0aGlzLnJl
bW92ZUV2ZW50TGlzdGVuZXIpe3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihtLGws
ZmFsc2UpfWVsc2V7dGhpcy5kZXRhY2hFdmVudCgib24iK20sbCl9cmV0dXJuIHRo
aXN9LHJldHJpZXZlOmZ1bmN0aW9uKG0sbCl7dmFyIG89Yyh0aGlzLnVpZCksbj1v
W21dO2lmKGwhPXVuZGVmaW5lZCYmbj09dW5kZWZpbmVkKXtuPW9bbV09bH1yZXR1
cm4gJHBpY2sobil9LHN0b3JlOmZ1bmN0aW9uKG0sbCl7dmFyIG49Yyh0aGlzLnVp
ZCk7blttXT1sO3JldHVybiB0aGlzfSxlbGltaW5hdGU6ZnVuY3Rpb24obCl7dmFy
IG09Yyh0aGlzLnVpZCk7ZGVsZXRlIG1bbF07cmV0dXJuIHRoaXN9fSk7d2luZG93
LmFkZExpc3RlbmVyKCJ1bmxvYWQiLGQpfSkoKTtFbGVtZW50LlByb3BlcnRpZXM9
bmV3IEhhc2g7RWxlbWVudC5Qcm9wZXJ0aWVzLnN0eWxlPXtzZXQ6ZnVuY3Rpb24o
YSl7dGhpcy5zdHlsZS5jc3NUZXh0PWF9LGdldDpmdW5jdGlvbigpe3JldHVybiB0
aGlzLnN0eWxlLmNzc1RleHR9LGVyYXNlOmZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5j
c3NUZXh0PSIifX07RWxlbWVudC5Qcm9wZXJ0aWVzLnRhZz17Z2V0OmZ1bmN0aW9u
KCl7cmV0dXJuIHRoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpfX07RWxlbWVudC5Q
cm9wZXJ0aWVzLmh0bWw9KGZ1bmN0aW9uKCl7dmFyIGM9ZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7dmFyIGE9e3RhYmxlOlsxLCI8dGFibGU+IiwiPC90YWJs
ZT4iXSxzZWxlY3Q6WzEsIjxzZWxlY3Q+IiwiPC9zZWxlY3Q+Il0sdGJvZHk6WzIs
Ijx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRyOlszLCI8dGFi
bGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXX07YS50aGVh
ZD1hLnRmb290PWEudGJvZHk7dmFyIGI9e3NldDpmdW5jdGlvbigpe3ZhciBlPUFy
cmF5LmZsYXR0ZW4oYXJndW1lbnRzKS5qb2luKCIiKTt2YXIgZj1Ccm93c2VyLkVu
Z2luZS50cmlkZW50JiZhW3RoaXMuZ2V0KCJ0YWciKV07aWYoZil7dmFyIGc9Yztn
LmlubmVySFRNTD1mWzFdK2UrZlsyXTtmb3IodmFyIGQ9ZlswXTtkLS07KXtnPWcu
Zmlyc3RDaGlsZH10aGlzLmVtcHR5KCkuYWRvcHQoZy5jaGlsZE5vZGVzKX1lbHNl
e3RoaXMuaW5uZXJIVE1MPWV9fX07Yi5lcmFzZT1iLnNldDtyZXR1cm4gYn0pKCk7
aWYoQnJvd3Nlci5FbmdpbmUud2Via2l0JiZCcm93c2VyLkVuZ2luZS52ZXJzaW9u
PDQyMCl7RWxlbWVudC5Qcm9wZXJ0aWVzLnRleHQ9e2dldDpmdW5jdGlvbigpe2lm
KHRoaXMuaW5uZXJUZXh0KXtyZXR1cm4gdGhpcy5pbm5lclRleHR9dmFyIGE9dGhp
cy5vd25lckRvY3VtZW50Lm5ld0VsZW1lbnQoImRpdiIse2h0bWw6dGhpcy5pbm5l
ckhUTUx9KS5pbmplY3QodGhpcy5vd25lckRvY3VtZW50LmJvZHkpO3ZhciBiPWEu
aW5uZXJUZXh0O2EuZGVzdHJveSgpO3JldHVybiBifX19RWxlbWVudC5Qcm9wZXJ0
aWVzLmV2ZW50cz17c2V0OmZ1bmN0aW9uKGEpe3RoaXMuYWRkRXZlbnRzKGEpfX07
TmF0aXZlLmltcGxlbWVudChbRWxlbWVudCxXaW5kb3csRG9jdW1lbnRdLHthZGRF
dmVudDpmdW5jdGlvbihlLGcpe3ZhciBoPXRoaXMucmV0cmlldmUoImV2ZW50cyIs
e30pO2hbZV09aFtlXXx8e2tleXM6W10sdmFsdWVzOltdfTtpZihoW2VdLmtleXMu
Y29udGFpbnMoZykpe3JldHVybiB0aGlzfWhbZV0ua2V5cy5wdXNoKGcpO3ZhciBm
PWUsYT1FbGVtZW50LkV2ZW50cy5nZXQoZSksYz1nLGk9dGhpcztpZihhKXtpZihh
Lm9uQWRkKXthLm9uQWRkLmNhbGwodGhpcyxnKX1pZihhLmNvbmRpdGlvbil7Yz1m
dW5jdGlvbihqKXtpZihhLmNvbmRpdGlvbi5jYWxsKHRoaXMsaikpe3JldHVybiBn
LmNhbGwodGhpcyxqKX1yZXR1cm4gdHJ1ZX19Zj1hLmJhc2V8fGZ9dmFyIGQ9ZnVu
Y3Rpb24oKXtyZXR1cm4gZy5jYWxsKGkpfTt2YXIgYj1FbGVtZW50Lk5hdGl2ZUV2
ZW50c1tmXTtpZihiKXtpZihiPT0yKXtkPWZ1bmN0aW9uKGope2o9bmV3IEV2ZW50
KGosaS5nZXRXaW5kb3coKSk7aWYoYy5jYWxsKGksaik9PT1mYWxzZSl7ai5zdG9w
KCl9fX10aGlzLmFkZExpc3RlbmVyKGYsZCl9aFtlXS52YWx1ZXMucHVzaChkKTty
ZXR1cm4gdGhpc30scmVtb3ZlRXZlbnQ6ZnVuY3Rpb24oYyxiKXt2YXIgYT10aGlz
LnJldHJpZXZlKCJldmVudHMiKTtpZighYXx8IWFbY10pe3JldHVybiB0aGlzfXZh
ciBmPWFbY10ua2V5cy5pbmRleE9mKGIpO2lmKGY9PS0xKXtyZXR1cm4gdGhpc31h
W2NdLmtleXMuc3BsaWNlKGYsMSk7dmFyIGU9YVtjXS52YWx1ZXMuc3BsaWNlKGYs
MSlbMF07dmFyIGQ9RWxlbWVudC5FdmVudHMuZ2V0KGMpO2lmKGQpe2lmKGQub25S
ZW1vdmUpe2Qub25SZW1vdmUuY2FsbCh0aGlzLGIpfWM9ZC5iYXNlfHxjfXJldHVy
bihFbGVtZW50Lk5hdGl2ZUV2ZW50c1tjXSk/dGhpcy5yZW1vdmVMaXN0ZW5lcihj
LGUpOnRoaXN9LGFkZEV2ZW50czpmdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYSl7
dGhpcy5hZGRFdmVudChiLGFbYl0pfXJldHVybiB0aGlzfSxyZW1vdmVFdmVudHM6
ZnVuY3Rpb24oYSl7dmFyIGM7aWYoJHR5cGUoYSk9PSJvYmplY3QiKXtmb3IoYyBp
biBhKXt0aGlzLnJlbW92ZUV2ZW50KGMsYVtjXSl9cmV0dXJuIHRoaXN9dmFyIGI9
dGhpcy5yZXRyaWV2ZSgiZXZlbnRzIik7aWYoIWIpe3JldHVybiB0aGlzfWlmKCFh
KXtmb3IoYyBpbiBiKXt0aGlzLnJlbW92ZUV2ZW50cyhjKX10aGlzLmVsaW1pbmF0
ZSgiZXZlbnRzIil9ZWxzZXtpZihiW2FdKXt3aGlsZShiW2FdLmtleXNbMF0pe3Ro
aXMucmVtb3ZlRXZlbnQoYSxiW2FdLmtleXNbMF0pfWJbYV09bnVsbH19cmV0dXJu
IHRoaXN9LGZpcmVFdmVudDpmdW5jdGlvbihkLGIsYSl7dmFyIGM9dGhpcy5yZXRy
aWV2ZSgiZXZlbnRzIik7aWYoIWN8fCFjW2RdKXtyZXR1cm4gdGhpc31jW2RdLmtl
eXMuZWFjaChmdW5jdGlvbihlKXtlLmNyZWF0ZSh7YmluZDp0aGlzLGRlbGF5OmEs
ImFyZ3VtZW50cyI6Yn0pKCl9LHRoaXMpO3JldHVybiB0aGlzfSxjbG9uZUV2ZW50
czpmdW5jdGlvbihkLGEpe2Q9ZG9jdW1lbnQuaWQoZCk7dmFyIGM9ZC5yZXRyaWV2
ZSgiZXZlbnRzIik7aWYoIWMpe3JldHVybiB0aGlzfWlmKCFhKXtmb3IodmFyIGIg
aW4gYyl7dGhpcy5jbG9uZUV2ZW50cyhkLGIpfX1lbHNle2lmKGNbYV0pe2NbYV0u
a2V5cy5lYWNoKGZ1bmN0aW9uKGUpe3RoaXMuYWRkRXZlbnQoYSxlKX0sdGhpcyl9
fXJldHVybiB0aGlzfX0pO0VsZW1lbnQuTmF0aXZlRXZlbnRzPXtjbGljazoyLGRi
bGNsaWNrOjIsbW91c2V1cDoyLG1vdXNlZG93bjoyLGNvbnRleHRtZW51OjIsbW91
c2V3aGVlbDoyLERPTU1vdXNlU2Nyb2xsOjIsbW91c2VvdmVyOjIsbW91c2VvdXQ6
Mixtb3VzZW1vdmU6MixzZWxlY3RzdGFydDoyLHNlbGVjdGVuZDoyLGtleWRvd246
MixrZXlwcmVzczoyLGtleXVwOjIsZm9jdXM6MixibHVyOjIsY2hhbmdlOjIscmVz
ZXQ6MixzZWxlY3Q6MixzdWJtaXQ6Mixsb2FkOjEsdW5sb2FkOjEsYmVmb3JldW5s
b2FkOjIscmVzaXplOjEsbW92ZToxLERPTUNvbnRlbnRMb2FkZWQ6MSxyZWFkeXN0
YXRlY2hhbmdlOjEsZXJyb3I6MSxhYm9ydDoxLHNjcm9sbDoxfTsoZnVuY3Rpb24o
KXt2YXIgYT1mdW5jdGlvbihiKXt2YXIgYz1iLnJlbGF0ZWRUYXJnZXQ7aWYoYz09
dW5kZWZpbmVkKXtyZXR1cm4gdHJ1ZX1pZihjPT09ZmFsc2Upe3JldHVybiBmYWxz
ZX1yZXR1cm4oJHR5cGUodGhpcykhPSJkb2N1bWVudCImJmMhPXRoaXMmJmMucHJl
Zml4IT0ieHVsIiYmIXRoaXMuaGFzQ2hpbGQoYykpfTtFbGVtZW50LkV2ZW50cz1u
ZXcgSGFzaCh7bW91c2VlbnRlcjp7YmFzZToibW91c2VvdmVyIixjb25kaXRpb246
YX0sbW91c2VsZWF2ZTp7YmFzZToibW91c2VvdXQiLGNvbmRpdGlvbjphfSxtb3Vz
ZXdoZWVsOntiYXNlOihCcm93c2VyLkVuZ2luZS5nZWNrbyk/IkRPTU1vdXNlU2Ny
b2xsIjoibW91c2V3aGVlbCJ9fSl9KSgpO0VsZW1lbnQuUHJvcGVydGllcy5zdHls
ZXM9e3NldDpmdW5jdGlvbihhKXt0aGlzLnNldFN0eWxlcyhhKX19O0VsZW1lbnQu
UHJvcGVydGllcy5vcGFjaXR5PXtzZXQ6ZnVuY3Rpb24oYSxiKXtpZighYil7aWYo
YT09MCl7aWYodGhpcy5zdHlsZS52aXNpYmlsaXR5IT0iaGlkZGVuIil7dGhpcy5z
dHlsZS52aXNpYmlsaXR5PSJoaWRkZW4ifX1lbHNle2lmKHRoaXMuc3R5bGUudmlz
aWJpbGl0eSE9InZpc2libGUiKXt0aGlzLnN0eWxlLnZpc2liaWxpdHk9InZpc2li
bGUifX19aWYoIXRoaXMuY3VycmVudFN0eWxlfHwhdGhpcy5jdXJyZW50U3R5bGUu
aGFzTGF5b3V0KXt0aGlzLnN0eWxlLnpvb209MX1pZihCcm93c2VyLkVuZ2luZS50
cmlkZW50KXt0aGlzLnN0eWxlLmZpbHRlcj0oYT09MSk/IiI6ImFscGhhKG9wYWNp
dHk9IithKjEwMCsiKSJ9dGhpcy5zdHlsZS5vcGFjaXR5PWE7dGhpcy5zdG9yZSgi
b3BhY2l0eSIsYSl9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJldHJpZXZl
KCJvcGFjaXR5IiwxKX19O0VsZW1lbnQuaW1wbGVtZW50KHtzZXRPcGFjaXR5OmZ1
bmN0aW9uKGEpe3JldHVybiB0aGlzLnNldCgib3BhY2l0eSIsYSx0cnVlKX0sZ2V0
T3BhY2l0eTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgib3BhY2l0eSIpfSxz
ZXRTdHlsZTpmdW5jdGlvbihiLGEpe3N3aXRjaChiKXtjYXNlIm9wYWNpdHkiOnJl
dHVybiB0aGlzLnNldCgib3BhY2l0eSIscGFyc2VGbG9hdChhKSk7Y2FzZSJmbG9h
dCI6Yj0oQnJvd3Nlci5FbmdpbmUudHJpZGVudCk/InN0eWxlRmxvYXQiOiJjc3NG
bG9hdCJ9Yj1iLmNhbWVsQ2FzZSgpO2lmKCR0eXBlKGEpIT0ic3RyaW5nIil7dmFy
IGM9KEVsZW1lbnQuU3R5bGVzLmdldChiKXx8IkAiKS5zcGxpdCgiICIpO2E9JHNw
bGF0KGEpLm1hcChmdW5jdGlvbihlLGQpe2lmKCFjW2RdKXtyZXR1cm4iIn1yZXR1
cm4oJHR5cGUoZSk9PSJudW1iZXIiKT9jW2RdLnJlcGxhY2UoIkAiLE1hdGgucm91
bmQoZSkpOmV9KS5qb2luKCIgIil9ZWxzZXtpZihhPT1TdHJpbmcoTnVtYmVyKGEp
KSl7YT1NYXRoLnJvdW5kKGEpfX10aGlzLnN0eWxlW2JdPWE7cmV0dXJuIHRoaXN9
LGdldFN0eWxlOmZ1bmN0aW9uKGcpe3N3aXRjaChnKXtjYXNlIm9wYWNpdHkiOnJl
dHVybiB0aGlzLmdldCgib3BhY2l0eSIpO2Nhc2UiZmxvYXQiOmc9KEJyb3dzZXIu
RW5naW5lLnRyaWRlbnQpPyJzdHlsZUZsb2F0IjoiY3NzRmxvYXQifWc9Zy5jYW1l
bENhc2UoKTt2YXIgYT10aGlzLnN0eWxlW2ddO2lmKCEkY2hrKGEpKXthPVtdO2Zv
cih2YXIgZiBpbiBFbGVtZW50LlNob3J0U3R5bGVzKXtpZihnIT1mKXtjb250aW51
ZX1mb3IodmFyIGUgaW4gRWxlbWVudC5TaG9ydFN0eWxlc1tmXSl7YS5wdXNoKHRo
aXMuZ2V0U3R5bGUoZSkpfXJldHVybiBhLmpvaW4oIiAiKX1hPXRoaXMuZ2V0Q29t
cHV0ZWRTdHlsZShnKX1pZihhKXthPVN0cmluZyhhKTt2YXIgYz1hLm1hdGNoKC9y
Z2JhP1woW1xkXHMsXStcKS8pO2lmKGMpe2E9YS5yZXBsYWNlKGNbMF0sY1swXS5y
Z2JUb0hleCgpKX19aWYoQnJvd3Nlci5FbmdpbmUucHJlc3RvfHwoQnJvd3Nlci5F
bmdpbmUudHJpZGVudCYmISRjaGsocGFyc2VJbnQoYSwxMCkpKSl7aWYoZy50ZXN0
KC9eKGhlaWdodHx3aWR0aCkkLykpe3ZhciBiPShnPT0id2lkdGgiKT9bImxlZnQi
LCJyaWdodCJdOlsidG9wIiwiYm90dG9tIl0sZD0wO2IuZWFjaChmdW5jdGlvbiho
KXtkKz10aGlzLmdldFN0eWxlKCJib3JkZXItIitoKyItd2lkdGgiKS50b0ludCgp
K3RoaXMuZ2V0U3R5bGUoInBhZGRpbmctIitoKS50b0ludCgpfSx0aGlzKTtyZXR1
cm4gdGhpc1sib2Zmc2V0IitnLmNhcGl0YWxpemUoKV0tZCsicHgifWlmKChCcm93
c2VyLkVuZ2luZS5wcmVzdG8pJiZTdHJpbmcoYSkudGVzdCgicHgiKSl7cmV0dXJu
IGF9aWYoZy50ZXN0KC8oYm9yZGVyKC4rKVdpZHRofG1hcmdpbnxwYWRkaW5nKS8p
KXtyZXR1cm4iMHB4In19cmV0dXJuIGF9LHNldFN0eWxlczpmdW5jdGlvbihiKXtm
b3IodmFyIGEgaW4gYil7dGhpcy5zZXRTdHlsZShhLGJbYV0pfXJldHVybiB0aGlz
fSxnZXRTdHlsZXM6ZnVuY3Rpb24oKXt2YXIgYT17fTtBcnJheS5mbGF0dGVuKGFy
Z3VtZW50cykuZWFjaChmdW5jdGlvbihiKXthW2JdPXRoaXMuZ2V0U3R5bGUoYil9
LHRoaXMpO3JldHVybiBhfX0pO0VsZW1lbnQuU3R5bGVzPW5ldyBIYXNoKHtsZWZ0
OiJAcHgiLHRvcDoiQHB4Iixib3R0b206IkBweCIscmlnaHQ6IkBweCIsd2lkdGg6
IkBweCIsaGVpZ2h0OiJAcHgiLG1heFdpZHRoOiJAcHgiLG1heEhlaWdodDoiQHB4
IixtaW5XaWR0aDoiQHB4IixtaW5IZWlnaHQ6IkBweCIsYmFja2dyb3VuZENvbG9y
OiJyZ2IoQCwgQCwgQCkiLGJhY2tncm91bmRQb3NpdGlvbjoiQHB4IEBweCIsY29s
b3I6InJnYihALCBALCBAKSIsZm9udFNpemU6IkBweCIsbGV0dGVyU3BhY2luZzoi
QHB4IixsaW5lSGVpZ2h0OiJAcHgiLGNsaXA6InJlY3QoQHB4IEBweCBAcHggQHB4
KSIsbWFyZ2luOiJAcHggQHB4IEBweCBAcHgiLHBhZGRpbmc6IkBweCBAcHggQHB4
IEBweCIsYm9yZGVyOiJAcHggQCByZ2IoQCwgQCwgQCkgQHB4IEAgcmdiKEAsIEAs
IEApIEBweCBAIHJnYihALCBALCBAKSIsYm9yZGVyV2lkdGg6IkBweCBAcHggQHB4
IEBweCIsYm9yZGVyU3R5bGU6IkAgQCBAIEAiLGJvcmRlckNvbG9yOiJyZ2IoQCwg
QCwgQCkgcmdiKEAsIEAsIEApIHJnYihALCBALCBAKSByZ2IoQCwgQCwgQCkiLHpJ
bmRleDoiQCIsem9vbToiQCIsZm9udFdlaWdodDoiQCIsdGV4dEluZGVudDoiQHB4
IixvcGFjaXR5OiJAIn0pO0VsZW1lbnQuU2hvcnRTdHlsZXM9e21hcmdpbjp7fSxw
YWRkaW5nOnt9LGJvcmRlcjp7fSxib3JkZXJXaWR0aDp7fSxib3JkZXJTdHlsZTp7
fSxib3JkZXJDb2xvcjp7fX07WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQi
XS5lYWNoKGZ1bmN0aW9uKGcpe3ZhciBmPUVsZW1lbnQuU2hvcnRTdHlsZXM7dmFy
IGI9RWxlbWVudC5TdHlsZXM7WyJtYXJnaW4iLCJwYWRkaW5nIl0uZWFjaChmdW5j
dGlvbihoKXt2YXIgaT1oK2c7ZltoXVtpXT1iW2ldPSJAcHgifSk7dmFyIGU9ImJv
cmRlciIrZztmLmJvcmRlcltlXT1iW2VdPSJAcHggQCByZ2IoQCwgQCwgQCkiO3Zh
ciBkPWUrIldpZHRoIixhPWUrIlN0eWxlIixjPWUrIkNvbG9yIjtmW2VdPXt9O2Yu
Ym9yZGVyV2lkdGhbZF09ZltlXVtkXT1iW2RdPSJAcHgiO2YuYm9yZGVyU3R5bGVb
YV09ZltlXVthXT1iW2FdPSJAIjtmLmJvcmRlckNvbG9yW2NdPWZbZV1bY109Yltj
XT0icmdiKEAsIEAsIEApIn0pOyhmdW5jdGlvbigpe0VsZW1lbnQuaW1wbGVtZW50
KHtzY3JvbGxUbzpmdW5jdGlvbihoLGkpe2lmKGIodGhpcykpe3RoaXMuZ2V0V2lu
ZG93KCkuc2Nyb2xsVG8oaCxpKX1lbHNle3RoaXMuc2Nyb2xsTGVmdD1oO3RoaXMu
c2Nyb2xsVG9wPWl9cmV0dXJuIHRoaXN9LGdldFNpemU6ZnVuY3Rpb24oKXtpZihi
KHRoaXMpKXtyZXR1cm4gdGhpcy5nZXRXaW5kb3coKS5nZXRTaXplKCl9cmV0dXJu
e3g6dGhpcy5vZmZzZXRXaWR0aCx5OnRoaXMub2Zmc2V0SGVpZ2h0fX0sZ2V0U2Ny
b2xsU2l6ZTpmdW5jdGlvbigpe2lmKGIodGhpcykpe3JldHVybiB0aGlzLmdldFdp
bmRvdygpLmdldFNjcm9sbFNpemUoKX1yZXR1cm57eDp0aGlzLnNjcm9sbFdpZHRo
LHk6dGhpcy5zY3JvbGxIZWlnaHR9fSxnZXRTY3JvbGw6ZnVuY3Rpb24oKXtpZihi
KHRoaXMpKXtyZXR1cm4gdGhpcy5nZXRXaW5kb3coKS5nZXRTY3JvbGwoKX1yZXR1
cm57eDp0aGlzLnNjcm9sbExlZnQseTp0aGlzLnNjcm9sbFRvcH19LGdldFNjcm9s
bHM6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLGg9e3g6MCx5OjB9O3doaWxlKGkmJiFi
KGkpKXtoLngrPWkuc2Nyb2xsTGVmdDtoLnkrPWkuc2Nyb2xsVG9wO2k9aS5wYXJl
bnROb2RlfXJldHVybiBofSxnZXRPZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXt2YXIg
aD10aGlzO2lmKGIoaCkpe3JldHVybiBudWxsfWlmKCFCcm93c2VyLkVuZ2luZS50
cmlkZW50KXtyZXR1cm4gaC5vZmZzZXRQYXJlbnR9d2hpbGUoKGg9aC5wYXJlbnRO
b2RlKSYmIWIoaCkpe2lmKGQoaCwicG9zaXRpb24iKSE9InN0YXRpYyIpe3JldHVy
biBofX1yZXR1cm4gbnVsbH0sZ2V0T2Zmc2V0czpmdW5jdGlvbigpe2lmKHRoaXMu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2YXIgaj10aGlzLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLG09ZG9jdW1lbnQuaWQodGhpcy5nZXREb2N1bWVudCgpLmRvY3Vt
ZW50RWxlbWVudCkscD1tLmdldFNjcm9sbCgpLGs9dGhpcy5nZXRTY3JvbGxzKCks
aT10aGlzLmdldFNjcm9sbCgpLGg9KGQodGhpcywicG9zaXRpb24iKT09ImZpeGVk
Iik7cmV0dXJue3g6ai5sZWZ0LnRvSW50KCkray54LWkueCsoKGgpPzA6cC54KS1t
LmNsaWVudExlZnQseTpqLnRvcC50b0ludCgpK2sueS1pLnkrKChoKT8wOnAueSkt
bS5jbGllbnRUb3B9fXZhciBsPXRoaXMsbj17eDowLHk6MH07aWYoYih0aGlzKSl7
cmV0dXJuIG59d2hpbGUobCYmIWIobCkpe24ueCs9bC5vZmZzZXRMZWZ0O24ueSs9
bC5vZmZzZXRUb3A7aWYoQnJvd3Nlci5FbmdpbmUuZ2Vja28pe2lmKCFmKGwpKXtu
LngrPWMobCk7bi55Kz1nKGwpfXZhciBvPWwucGFyZW50Tm9kZTtpZihvJiZkKG8s
Im92ZXJmbG93IikhPSJ2aXNpYmxlIil7bi54Kz1jKG8pO24ueSs9ZyhvKX19ZWxz
ZXtpZihsIT10aGlzJiZCcm93c2VyLkVuZ2luZS53ZWJraXQpe24ueCs9YyhsKTtu
LnkrPWcobCl9fWw9bC5vZmZzZXRQYXJlbnR9aWYoQnJvd3Nlci5FbmdpbmUuZ2Vj
a28mJiFmKHRoaXMpKXtuLngtPWModGhpcyk7bi55LT1nKHRoaXMpfXJldHVybiBu
fSxnZXRQb3NpdGlvbjpmdW5jdGlvbihrKXtpZihiKHRoaXMpKXtyZXR1cm57eDow
LHk6MH19dmFyIGw9dGhpcy5nZXRPZmZzZXRzKCksaT10aGlzLmdldFNjcm9sbHMo
KTt2YXIgaD17eDpsLngtaS54LHk6bC55LWkueX07dmFyIGo9KGsmJihrPWRvY3Vt
ZW50LmlkKGspKSk/ay5nZXRQb3NpdGlvbigpOnt4OjAseTowfTtyZXR1cm57eDpo
Lngtai54LHk6aC55LWoueX19LGdldENvb3JkaW5hdGVzOmZ1bmN0aW9uKGope2lm
KGIodGhpcykpe3JldHVybiB0aGlzLmdldFdpbmRvdygpLmdldENvb3JkaW5hdGVz
KCl9dmFyIGg9dGhpcy5nZXRQb3NpdGlvbihqKSxpPXRoaXMuZ2V0U2l6ZSgpO3Zh
ciBrPXtsZWZ0OmgueCx0b3A6aC55LHdpZHRoOmkueCxoZWlnaHQ6aS55fTtrLnJp
Z2h0PWsubGVmdCtrLndpZHRoO2suYm90dG9tPWsudG9wK2suaGVpZ2h0O3JldHVy
biBrfSxjb21wdXRlUG9zaXRpb246ZnVuY3Rpb24oaCl7cmV0dXJue2xlZnQ6aC54
LWUodGhpcywibWFyZ2luLWxlZnQiKSx0b3A6aC55LWUodGhpcywibWFyZ2luLXRv
cCIpfX0sc2V0UG9zaXRpb246ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuc2V0U3R5
bGVzKHRoaXMuY29tcHV0ZVBvc2l0aW9uKGgpKX19KTtOYXRpdmUuaW1wbGVtZW50
KFtEb2N1bWVudCxXaW5kb3ddLHtnZXRTaXplOmZ1bmN0aW9uKCl7aWYoQnJvd3Nl
ci5FbmdpbmUucHJlc3RvfHxCcm93c2VyLkVuZ2luZS53ZWJraXQpe3ZhciBpPXRo
aXMuZ2V0V2luZG93KCk7cmV0dXJue3g6aS5pbm5lcldpZHRoLHk6aS5pbm5lckhl
aWdodH19dmFyIGg9YSh0aGlzKTtyZXR1cm57eDpoLmNsaWVudFdpZHRoLHk6aC5j
bGllbnRIZWlnaHR9fSxnZXRTY3JvbGw6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLmdl
dFdpbmRvdygpLGg9YSh0aGlzKTtyZXR1cm57eDppLnBhZ2VYT2Zmc2V0fHxoLnNj
cm9sbExlZnQseTppLnBhZ2VZT2Zmc2V0fHxoLnNjcm9sbFRvcH19LGdldFNjcm9s
bFNpemU6ZnVuY3Rpb24oKXt2YXIgaT1hKHRoaXMpLGg9dGhpcy5nZXRTaXplKCk7
cmV0dXJue3g6TWF0aC5tYXgoaS5zY3JvbGxXaWR0aCxoLngpLHk6TWF0aC5tYXgo
aS5zY3JvbGxIZWlnaHQsaC55KX19LGdldFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0
dXJue3g6MCx5OjB9fSxnZXRDb29yZGluYXRlczpmdW5jdGlvbigpe3ZhciBoPXRo
aXMuZ2V0U2l6ZSgpO3JldHVybnt0b3A6MCxsZWZ0OjAsYm90dG9tOmgueSxyaWdo
dDpoLngsaGVpZ2h0OmgueSx3aWR0aDpoLnh9fX0pO3ZhciBkPUVsZW1lbnQuZ2V0
Q29tcHV0ZWRTdHlsZTtmdW5jdGlvbiBlKGgsaSl7cmV0dXJuIGQoaCxpKS50b0lu
dCgpfHwwfWZ1bmN0aW9uIGYoaCl7cmV0dXJuIGQoaCwiLW1vei1ib3gtc2l6aW5n
Iik9PSJib3JkZXItYm94In1mdW5jdGlvbiBnKGgpe3JldHVybiBlKGgsImJvcmRl
ci10b3Atd2lkdGgiKX1mdW5jdGlvbiBjKGgpe3JldHVybiBlKGgsImJvcmRlci1s
ZWZ0LXdpZHRoIil9ZnVuY3Rpb24gYihoKXtyZXR1cm4oL14oPzpib2R5fGh0bWwp
JC9pKS50ZXN0KGgudGFnTmFtZSl9ZnVuY3Rpb24gYShoKXt2YXIgaT1oLmdldERv
Y3VtZW50KCk7cmV0dXJuKCFpLmNvbXBhdE1vZGV8fGkuY29tcGF0TW9kZT09IkNT
UzFDb21wYXQiKT9pLmh0bWw6aS5ib2R5fX0pKCk7RWxlbWVudC5hbGlhcygic2V0
UG9zaXRpb24iLCJwb3NpdGlvbiIpO05hdGl2ZS5pbXBsZW1lbnQoW1dpbmRvdyxE
b2N1bWVudCxFbGVtZW50XSx7Z2V0SGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRo
aXMuZ2V0U2l6ZSgpLnl9LGdldFdpZHRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu
Z2V0U2l6ZSgpLnh9LGdldFNjcm9sbFRvcDpmdW5jdGlvbigpe3JldHVybiB0aGlz
LmdldFNjcm9sbCgpLnl9LGdldFNjcm9sbExlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy5nZXRTY3JvbGwoKS54fSxnZXRTY3JvbGxIZWlnaHQ6ZnVuY3Rpb24oKXty
ZXR1cm4gdGhpcy5nZXRTY3JvbGxTaXplKCkueX0sZ2V0U2Nyb2xsV2lkdGg6ZnVu
Y3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRTY3JvbGxTaXplKCkueH0sZ2V0VG9wOmZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UG9zaXRpb24oKS55fSxnZXRMZWZ0OmZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UG9zaXRpb24oKS54fX0pO05hdGl2ZS5p
bXBsZW1lbnQoW0RvY3VtZW50LEVsZW1lbnRdLHtnZXRFbGVtZW50czpmdW5jdGlv
bihoLGcpe2g9aC5zcGxpdCgiLCIpO3ZhciBjLGU9e307Zm9yKHZhciBkPTAsYj1o
Lmxlbmd0aDtkPGI7ZCsrKXt2YXIgYT1oW2RdLGY9U2VsZWN0b3JzLlV0aWxzLnNl
YXJjaCh0aGlzLGEsZSk7aWYoZCE9MCYmZi5pdGVtKXtmPSRBKGYpfWM9KGQ9PTAp
P2Y6KGMuaXRlbSk/JEEoYykuY29uY2F0KGYpOmMuY29uY2F0KGYpfXJldHVybiBu
ZXcgRWxlbWVudHMoYyx7ZGR1cDooaC5sZW5ndGg+MSksY2FzaDohZ30pfX0pO0Vs
ZW1lbnQuaW1wbGVtZW50KHttYXRjaDpmdW5jdGlvbihiKXtpZighYnx8KGI9PXRo
aXMpKXtyZXR1cm4gdHJ1ZX12YXIgZD1TZWxlY3RvcnMuVXRpbHMucGFyc2VUYWdB
bmRJRChiKTt2YXIgYT1kWzBdLGU9ZFsxXTtpZighU2VsZWN0b3JzLkZpbHRlcnMu
YnlJRCh0aGlzLGUpfHwhU2VsZWN0b3JzLkZpbHRlcnMuYnlUYWcodGhpcyxhKSl7
cmV0dXJuIGZhbHNlfXZhciBjPVNlbGVjdG9ycy5VdGlscy5wYXJzZVNlbGVjdG9y
KGIpO3JldHVybihjKT9TZWxlY3RvcnMuVXRpbHMuZmlsdGVyKHRoaXMsYyx7fSk6
dHJ1ZX19KTt2YXIgU2VsZWN0b3JzPXtDYWNoZTp7bnRoOnt9LHBhcnNlZDp7fX19
O1NlbGVjdG9ycy5SZWdFeHBzPXtpZDooLyMoW1x3LV0rKS8pLHRhZzooL14oXHcr
fFwqKS8pLHF1aWNrOigvXihcdyt8XCopJC8pLHNwbGl0dGVyOigvXHMqKFsrPn5c
c10pXHMqKFthLXpBLVojLio6XFtdKS9nKSxjb21iaW5lZDooL1wuKFtcdy1dKyl8
XFsoXHcrKSg/OihbISpeJH58XT89KShbIiddPykoW15cNF0qPylcNCk/XF18Oihb
XHctXSspKD86XChbIiddPyguKj8pP1siJ10/XCl8JCkvZyl9O1NlbGVjdG9ycy5V
dGlscz17Y2hrOmZ1bmN0aW9uKGIsYyl7aWYoIWMpe3JldHVybiB0cnVlfXZhciBh
PSR1aWQoYik7aWYoIWNbYV0pe3JldHVybiBjW2FdPXRydWV9cmV0dXJuIGZhbHNl
fSxwYXJzZU50aEFyZ3VtZW50OmZ1bmN0aW9uKGgpe2lmKFNlbGVjdG9ycy5DYWNo
ZS5udGhbaF0pe3JldHVybiBTZWxlY3RvcnMuQ2FjaGUubnRoW2hdfXZhciBlPWgu
bWF0Y2goL14oWystXT9cZCopPyhbYS16XSspPyhbKy1dP1xkKik/JC8pO2lmKCFl
KXtyZXR1cm4gZmFsc2V9dmFyIGc9cGFyc2VJbnQoZVsxXSwxMCk7dmFyIGQ9KGd8
fGc9PT0wKT9nOjE7dmFyIGY9ZVsyXXx8ZmFsc2U7dmFyIGM9cGFyc2VJbnQoZVsz
XSwxMCl8fDA7aWYoZCE9MCl7Yy0tO3doaWxlKGM8MSl7Yys9ZH13aGlsZShjPj1k
KXtjLT1kfX1lbHNle2Q9YztmPSJpbmRleCJ9c3dpdGNoKGYpe2Nhc2UibiI6ZT17
YTpkLGI6YyxzcGVjaWFsOiJuIn07YnJlYWs7Y2FzZSJvZGQiOmU9e2E6MixiOjAs
c3BlY2lhbDoibiJ9O2JyZWFrO2Nhc2UiZXZlbiI6ZT17YToyLGI6MSxzcGVjaWFs
OiJuIn07YnJlYWs7Y2FzZSJmaXJzdCI6ZT17YTowLHNwZWNpYWw6ImluZGV4In07
YnJlYWs7Y2FzZSJsYXN0IjplPXtzcGVjaWFsOiJsYXN0LWNoaWxkIn07YnJlYWs7
Y2FzZSJvbmx5IjplPXtzcGVjaWFsOiJvbmx5LWNoaWxkIn07YnJlYWs7ZGVmYXVs
dDplPXthOihkLTEpLHNwZWNpYWw6ImluZGV4In19cmV0dXJuIFNlbGVjdG9ycy5D
YWNoZS5udGhbaF09ZX0scGFyc2VTZWxlY3RvcjpmdW5jdGlvbihlKXtpZihTZWxl
Y3RvcnMuQ2FjaGUucGFyc2VkW2VdKXtyZXR1cm4gU2VsZWN0b3JzLkNhY2hlLnBh
cnNlZFtlXX12YXIgZCxoPXtjbGFzc2VzOltdLHBzZXVkb3M6W10sYXR0cmlidXRl
czpbXX07d2hpbGUoKGQ9U2VsZWN0b3JzLlJlZ0V4cHMuY29tYmluZWQuZXhlYyhl
KSkpe3ZhciBpPWRbMV0sZz1kWzJdLGY9ZFszXSxiPWRbNV0sYz1kWzZdLGo9ZFs3
XTtpZihpKXtoLmNsYXNzZXMucHVzaChpKX1lbHNle2lmKGMpe3ZhciBhPVNlbGVj
dG9ycy5Qc2V1ZG8uZ2V0KGMpO2lmKGEpe2gucHNldWRvcy5wdXNoKHtwYXJzZXI6
YSxhcmd1bWVudDpqfSl9ZWxzZXtoLmF0dHJpYnV0ZXMucHVzaCh7bmFtZTpjLG9w
ZXJhdG9yOiI9Iix2YWx1ZTpqfSl9fWVsc2V7aWYoZyl7aC5hdHRyaWJ1dGVzLnB1
c2goe25hbWU6ZyxvcGVyYXRvcjpmLHZhbHVlOmJ9KX19fX1pZighaC5jbGFzc2Vz
Lmxlbmd0aCl7ZGVsZXRlIGguY2xhc3Nlc31pZighaC5hdHRyaWJ1dGVzLmxlbmd0
aCl7ZGVsZXRlIGguYXR0cmlidXRlc31pZighaC5wc2V1ZG9zLmxlbmd0aCl7ZGVs
ZXRlIGgucHNldWRvc31pZighaC5jbGFzc2VzJiYhaC5hdHRyaWJ1dGVzJiYhaC5w
c2V1ZG9zKXtoPW51bGx9cmV0dXJuIFNlbGVjdG9ycy5DYWNoZS5wYXJzZWRbZV09
aH0scGFyc2VUYWdBbmRJRDpmdW5jdGlvbihiKXt2YXIgYT1iLm1hdGNoKFNlbGVj
dG9ycy5SZWdFeHBzLnRhZyk7dmFyIGM9Yi5tYXRjaChTZWxlY3RvcnMuUmVnRXhw
cy5pZCk7cmV0dXJuWyhhKT9hWzFdOiIqIiwoYyk/Y1sxXTpmYWxzZV19LGZpbHRl
cjpmdW5jdGlvbihmLGMsZSl7dmFyIGQ7aWYoYy5jbGFzc2VzKXtmb3IoZD1jLmNs
YXNzZXMubGVuZ3RoO2QtLTtkKXt2YXIgZz1jLmNsYXNzZXNbZF07aWYoIVNlbGVj
dG9ycy5GaWx0ZXJzLmJ5Q2xhc3MoZixnKSl7cmV0dXJuIGZhbHNlfX19aWYoYy5h
dHRyaWJ1dGVzKXtmb3IoZD1jLmF0dHJpYnV0ZXMubGVuZ3RoO2QtLTtkKXt2YXIg
Yj1jLmF0dHJpYnV0ZXNbZF07aWYoIVNlbGVjdG9ycy5GaWx0ZXJzLmJ5QXR0cmli
dXRlKGYsYi5uYW1lLGIub3BlcmF0b3IsYi52YWx1ZSkpe3JldHVybiBmYWxzZX19
fWlmKGMucHNldWRvcyl7Zm9yKGQ9Yy5wc2V1ZG9zLmxlbmd0aDtkLS07ZCl7dmFy
IGE9Yy5wc2V1ZG9zW2RdO2lmKCFTZWxlY3RvcnMuRmlsdGVycy5ieVBzZXVkbyhm
LGEucGFyc2VyLGEuYXJndW1lbnQsZSkpe3JldHVybiBmYWxzZX19fXJldHVybiB0
cnVlfSxnZXRCeVRhZ0FuZElEOmZ1bmN0aW9uKGIsYSxkKXtpZihkKXt2YXIgYz0o
Yi5nZXRFbGVtZW50QnlJZCk/Yi5nZXRFbGVtZW50QnlJZChkLHRydWUpOkVsZW1l
bnQuZ2V0RWxlbWVudEJ5SWQoYixkLHRydWUpO3JldHVybihjJiZTZWxlY3RvcnMu
RmlsdGVycy5ieVRhZyhjLGEpKT9bY106W119ZWxzZXtyZXR1cm4gYi5nZXRFbGVt
ZW50c0J5VGFnTmFtZShhKX19LHNlYXJjaDpmdW5jdGlvbihvLGgsdCl7dmFyIGI9
W107dmFyIGM9aC50cmltKCkucmVwbGFjZShTZWxlY3RvcnMuUmVnRXhwcy5zcGxp
dHRlcixmdW5jdGlvbihrLGosaSl7Yi5wdXNoKGopO3JldHVybiI6KSIraX0pLnNw
bGl0KCI6KSIpO3ZhciBwLGUsQTtmb3IodmFyIHo9MCx2PWMubGVuZ3RoO3o8djt6
Kyspe3ZhciB5PWNbel07aWYoej09MCYmU2VsZWN0b3JzLlJlZ0V4cHMucXVpY2su
dGVzdCh5KSl7cD1vLmdldEVsZW1lbnRzQnlUYWdOYW1lKHkpO2NvbnRpbnVlfXZh
ciBhPWJbei0xXTt2YXIgcT1TZWxlY3RvcnMuVXRpbHMucGFyc2VUYWdBbmRJRCh5
KTt2YXIgQj1xWzBdLHI9cVsxXTtpZih6PT0wKXtwPVNlbGVjdG9ycy5VdGlscy5n
ZXRCeVRhZ0FuZElEKG8sQixyKX1lbHNle3ZhciBkPXt9LGc9W107Zm9yKHZhciB4
PTAsdz1wLmxlbmd0aDt4PHc7eCsrKXtnPVNlbGVjdG9ycy5HZXR0ZXJzW2FdKGcs
cFt4XSxCLHIsZCl9cD1nfXZhciBmPVNlbGVjdG9ycy5VdGlscy5wYXJzZVNlbGVj
dG9yKHkpO2lmKGYpe2U9W107Zm9yKHZhciB1PTAscz1wLmxlbmd0aDt1PHM7dSsr
KXtBPXBbdV07aWYoU2VsZWN0b3JzLlV0aWxzLmZpbHRlcihBLGYsdCkpe2UucHVz
aChBKX19cD1lfX1yZXR1cm4gcH19O1NlbGVjdG9ycy5HZXR0ZXJzPXsiICI6ZnVu
Y3Rpb24oaCxnLGosYSxlKXt2YXIgZD1TZWxlY3RvcnMuVXRpbHMuZ2V0QnlUYWdB
bmRJRChnLGosYSk7Zm9yKHZhciBjPTAsYj1kLmxlbmd0aDtjPGI7YysrKXt2YXIg
Zj1kW2NdO2lmKFNlbGVjdG9ycy5VdGlscy5jaGsoZixlKSl7aC5wdXNoKGYpfX1y
ZXR1cm4gaH0sIj4iOmZ1bmN0aW9uKGgsZyxqLGEsZil7dmFyIGM9U2VsZWN0b3Jz
LlV0aWxzLmdldEJ5VGFnQW5kSUQoZyxqLGEpO2Zvcih2YXIgZT0wLGQ9Yy5sZW5n
dGg7ZTxkO2UrKyl7dmFyIGI9Y1tlXTtpZihiLnBhcmVudE5vZGU9PWcmJlNlbGVj
dG9ycy5VdGlscy5jaGsoYixmKSl7aC5wdXNoKGIpfX1yZXR1cm4gaH0sIisiOmZ1
bmN0aW9uKGMsYixhLGUsZCl7d2hpbGUoKGI9Yi5uZXh0U2libGluZykpe2lmKGIu
bm9kZVR5cGU9PTEpe2lmKFNlbGVjdG9ycy5VdGlscy5jaGsoYixkKSYmU2VsZWN0
b3JzLkZpbHRlcnMuYnlUYWcoYixhKSYmU2VsZWN0b3JzLkZpbHRlcnMuYnlJRChi
LGUpKXtjLnB1c2goYil9YnJlYWt9fXJldHVybiBjfSwifiI6ZnVuY3Rpb24oYyxi
LGEsZSxkKXt3aGlsZSgoYj1iLm5leHRTaWJsaW5nKSl7aWYoYi5ub2RlVHlwZT09
MSl7aWYoIVNlbGVjdG9ycy5VdGlscy5jaGsoYixkKSl7YnJlYWt9aWYoU2VsZWN0
b3JzLkZpbHRlcnMuYnlUYWcoYixhKSYmU2VsZWN0b3JzLkZpbHRlcnMuYnlJRChi
LGUpKXtjLnB1c2goYil9fX1yZXR1cm4gY319O1NlbGVjdG9ycy5GaWx0ZXJzPXti
eVRhZzpmdW5jdGlvbihiLGEpe3JldHVybihhPT0iKiJ8fChiLnRhZ05hbWUmJmIu
dGFnTmFtZS50b0xvd2VyQ2FzZSgpPT1hKSl9LGJ5SUQ6ZnVuY3Rpb24oYSxiKXty
ZXR1cm4oIWJ8fChhLmlkJiZhLmlkPT1iKSl9LGJ5Q2xhc3M6ZnVuY3Rpb24oYixh
KXtyZXR1cm4oYi5jbGFzc05hbWUmJmIuY2xhc3NOYW1lLmNvbnRhaW5zJiZiLmNs
YXNzTmFtZS5jb250YWlucyhhLCIgIikpfSxieVBzZXVkbzpmdW5jdGlvbihhLGQs
YyxiKXtyZXR1cm4gZC5jYWxsKGEsYyxiKX0sYnlBdHRyaWJ1dGU6ZnVuY3Rpb24o
YyxkLGIsZSl7dmFyIGE9RWxlbWVudC5wcm90b3R5cGUuZ2V0UHJvcGVydHkuY2Fs
bChjLGQpO2lmKCFhKXtyZXR1cm4oYj09IiE9Iil9aWYoIWJ8fGU9PXVuZGVmaW5l
ZCl7cmV0dXJuIHRydWV9c3dpdGNoKGIpe2Nhc2UiPSI6cmV0dXJuKGE9PWUpO2Nh
c2UiKj0iOnJldHVybihhLmNvbnRhaW5zKGUpKTtjYXNlIl49IjpyZXR1cm4oYS5z
dWJzdHIoMCxlLmxlbmd0aCk9PWUpO2Nhc2UiJD0iOnJldHVybihhLnN1YnN0cihh
Lmxlbmd0aC1lLmxlbmd0aCk9PWUpO2Nhc2UiIT0iOnJldHVybihhIT1lKTtjYXNl
In49IjpyZXR1cm4gYS5jb250YWlucyhlLCIgIik7Y2FzZSJ8PSI6cmV0dXJuIGEu
Y29udGFpbnMoZSwiLSIpfXJldHVybiBmYWxzZX19O1NlbGVjdG9ycy5Qc2V1ZG89
bmV3IEhhc2goe2NoZWNrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGVja2Vk
fSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiAhKHRoaXMuaW5uZXJUZXh0fHx0aGlz
LnRleHRDb250ZW50fHwiIikubGVuZ3RofSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJu
ICFFbGVtZW50Lm1hdGNoKHRoaXMsYSl9LGNvbnRhaW5zOmZ1bmN0aW9uKGEpe3Jl
dHVybih0aGlzLmlubmVyVGV4dHx8dGhpcy50ZXh0Q29udGVudHx8IiIpLmNvbnRh
aW5zKGEpfSwiZmlyc3QtY2hpbGQiOmZ1bmN0aW9uKCl7cmV0dXJuIFNlbGVjdG9y
cy5Qc2V1ZG8uaW5kZXguY2FsbCh0aGlzLDApfSwibGFzdC1jaGlsZCI6ZnVuY3Rp
b24oKXt2YXIgYT10aGlzO3doaWxlKChhPWEubmV4dFNpYmxpbmcpKXtpZihhLm5v
ZGVUeXBlPT0xKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfSwib25seS1jaGls
ZCI6ZnVuY3Rpb24oKXt2YXIgYj10aGlzO3doaWxlKChiPWIucHJldmlvdXNTaWJs
aW5nKSl7aWYoYi5ub2RlVHlwZT09MSl7cmV0dXJuIGZhbHNlfX12YXIgYT10aGlz
O3doaWxlKChhPWEubmV4dFNpYmxpbmcpKXtpZihhLm5vZGVUeXBlPT0xKXtyZXR1
cm4gZmFsc2V9fXJldHVybiB0cnVlfSwibnRoLWNoaWxkIjpmdW5jdGlvbihnLGUp
e2c9KGc9PXVuZGVmaW5lZCk/Im4iOmc7dmFyIGM9U2VsZWN0b3JzLlV0aWxzLnBh
cnNlTnRoQXJndW1lbnQoZyk7aWYoYy5zcGVjaWFsIT0ibiIpe3JldHVybiBTZWxl
Y3RvcnMuUHNldWRvW2Muc3BlY2lhbF0uY2FsbCh0aGlzLGMuYSxlKX12YXIgZj0w
O2UucG9zaXRpb25zPWUucG9zaXRpb25zfHx7fTt2YXIgZD0kdWlkKHRoaXMpO2lm
KCFlLnBvc2l0aW9uc1tkXSl7dmFyIGI9dGhpczt3aGlsZSgoYj1iLnByZXZpb3Vz
U2libGluZykpe2lmKGIubm9kZVR5cGUhPTEpe2NvbnRpbnVlfWYrKzt2YXIgYT1l
LnBvc2l0aW9uc1skdWlkKGIpXTtpZihhIT11bmRlZmluZWQpe2Y9YStmO2JyZWFr
fX1lLnBvc2l0aW9uc1tkXT1mfXJldHVybihlLnBvc2l0aW9uc1tkXSVjLmE9PWMu
Yil9LGluZGV4OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz0wO3doaWxlKChiPWIu
cHJldmlvdXNTaWJsaW5nKSl7aWYoYi5ub2RlVHlwZT09MSYmKytjPmEpe3JldHVy
biBmYWxzZX19cmV0dXJuKGM9PWEpfSxldmVuOmZ1bmN0aW9uKGIsYSl7cmV0dXJu
IFNlbGVjdG9ycy5Qc2V1ZG9bIm50aC1jaGlsZCJdLmNhbGwodGhpcywiMm4rMSIs
YSl9LG9kZDpmdW5jdGlvbihiLGEpe3JldHVybiBTZWxlY3RvcnMuUHNldWRvWyJu
dGgtY2hpbGQiXS5jYWxsKHRoaXMsIjJuIixhKX0sc2VsZWN0ZWQ6ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5zZWxlY3RlZH0sZW5hYmxlZDpmdW5jdGlvbigpe3JldHVy
bih0aGlzLmRpc2FibGVkPT09ZmFsc2UpfX0pO0VsZW1lbnQuRXZlbnRzLmRvbXJl
YWR5PXtvbkFkZDpmdW5jdGlvbihhKXtpZihCcm93c2VyLmxvYWRlZCl7YS5jYWxs
KHRoaXMpfX19OyhmdW5jdGlvbigpe3ZhciBiPWZ1bmN0aW9uKCl7aWYoQnJvd3Nl
ci5sb2FkZWQpe3JldHVybn1Ccm93c2VyLmxvYWRlZD10cnVlO3dpbmRvdy5maXJl
RXZlbnQoImRvbXJlYWR5Iik7ZG9jdW1lbnQuZmlyZUV2ZW50KCJkb21yZWFkeSIp
fTt3aW5kb3cuYWRkRXZlbnQoImxvYWQiLGIpO2lmKEJyb3dzZXIuRW5naW5lLnRy
aWRlbnQpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOyhmdW5j
dGlvbigpeygkdHJ5KGZ1bmN0aW9uKCl7YS5kb1Njcm9sbCgpO3JldHVybiBkb2N1
bWVudC5pZChhKS5pbmplY3QoZG9jdW1lbnQuYm9keSkuc2V0KCJodG1sIiwidGVt
cCIpLmRpc3Bvc2UoKX0pKT9iKCk6YXJndW1lbnRzLmNhbGxlZS5kZWxheSg1MCl9
KSgpfWVsc2V7aWYoQnJvd3Nlci5FbmdpbmUud2Via2l0JiZCcm93c2VyLkVuZ2lu
ZS52ZXJzaW9uPDUyNSl7KGZ1bmN0aW9uKCl7KFsibG9hZGVkIiwiY29tcGxldGUi
XS5jb250YWlucyhkb2N1bWVudC5yZWFkeVN0YXRlKSk/YigpOmFyZ3VtZW50cy5j
YWxsZWUuZGVsYXkoNTApfSkoKX1lbHNle2RvY3VtZW50LmFkZEV2ZW50KCJET01D
b250ZW50TG9hZGVkIixiKX19fSkoKTt2YXIgSlNPTj1uZXcgSGFzaCh0aGlzLkpT
T04mJntzdHJpbmdpZnk6SlNPTi5zdHJpbmdpZnkscGFyc2U6SlNPTi5wYXJzZX0p
LmV4dGVuZCh7JHNwZWNpYWxDaGFyczp7IlxiIjoiXFxiIiwiXHQiOiJcXHQiLCJc
biI6IlxcbiIsIlxmIjoiXFxmIiwiXHIiOiJcXHIiLCciJzonXFwiJywiXFwiOiJc
XFxcIn0sJHJlcGxhY2VDaGFyczpmdW5jdGlvbihhKXtyZXR1cm4gSlNPTi4kc3Bl
Y2lhbENoYXJzW2FdfHwiXFx1MDAiK01hdGguZmxvb3IoYS5jaGFyQ29kZUF0KCkv
MTYpLnRvU3RyaW5nKDE2KSsoYS5jaGFyQ29kZUF0KCklMTYpLnRvU3RyaW5nKDE2
KX0sZW5jb2RlOmZ1bmN0aW9uKGIpe3N3aXRjaCgkdHlwZShiKSl7Y2FzZSJzdHJp
bmciOnJldHVybiciJytiLnJlcGxhY2UoL1tceDAwLVx4MWZcXCJdL2csSlNPTi4k
cmVwbGFjZUNoYXJzKSsnIic7Y2FzZSJhcnJheSI6cmV0dXJuIlsiK1N0cmluZyhi
Lm1hcChKU09OLmVuY29kZSkuY2xlYW4oKSkrIl0iO2Nhc2Uib2JqZWN0IjpjYXNl
Imhhc2giOnZhciBhPVtdO0hhc2guZWFjaChiLGZ1bmN0aW9uKGUsZCl7dmFyIGM9
SlNPTi5lbmNvZGUoZSk7aWYoYyl7YS5wdXNoKEpTT04uZW5jb2RlKGQpKyI6Iitj
KX19KTtyZXR1cm4ieyIrYSsifSI7Y2FzZSJudW1iZXIiOmNhc2UiYm9vbGVhbiI6
cmV0dXJuIFN0cmluZyhiKTtjYXNlIGZhbHNlOnJldHVybiJudWxsIn1yZXR1cm4g
bnVsbH0sZGVjb2RlOmZ1bmN0aW9uKHN0cmluZyxzZWN1cmUpe2lmKCR0eXBlKHN0
cmluZykhPSJzdHJpbmcifHwhc3RyaW5nLmxlbmd0aCl7cmV0dXJuIG51bGx9aWYo
c2VjdXJlJiYhKC9eWyw6e31cW1xdMC05LlwtK0VhZWZsbnItdSBcblxyXHRdKiQv
KS50ZXN0KHN0cmluZy5yZXBsYWNlKC9cXC4vZywiQCIpLnJlcGxhY2UoLyJbXiJc
XFxuXHJdKiIvZywiIikpKXtyZXR1cm4gbnVsbH1yZXR1cm4gZXZhbCgiKCIrc3Ry
aW5nKyIpIil9fSk7TmF0aXZlLmltcGxlbWVudChbSGFzaCxBcnJheSxTdHJpbmcs
TnVtYmVyXSx7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJuIEpTT04uZW5jb2RlKHRo
aXMpfX0pO3ZhciBDb29raWU9bmV3IENsYXNzKHtJbXBsZW1lbnRzOk9wdGlvbnMs
b3B0aW9uczp7cGF0aDpmYWxzZSxkb21haW46ZmFsc2UsZHVyYXRpb246ZmFsc2Us
c2VjdXJlOmZhbHNlLGRvY3VtZW50OmRvY3VtZW50fSxpbml0aWFsaXplOmZ1bmN0
aW9uKGIsYSl7dGhpcy5rZXk9Yjt0aGlzLnNldE9wdGlvbnMoYSl9LHdyaXRlOmZ1
bmN0aW9uKGIpe2I9ZW5jb2RlVVJJQ29tcG9uZW50KGIpO2lmKHRoaXMub3B0aW9u
cy5kb21haW4pe2IrPSI7IGRvbWFpbj0iK3RoaXMub3B0aW9ucy5kb21haW59aWYo
dGhpcy5vcHRpb25zLnBhdGgpe2IrPSI7IHBhdGg9Iit0aGlzLm9wdGlvbnMucGF0
aH1pZih0aGlzLm9wdGlvbnMuZHVyYXRpb24pe3ZhciBhPW5ldyBEYXRlKCk7YS5z
ZXRUaW1lKGEuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5kdXJhdGlvbioyNCo2MCo2
MCoxMDAwKTtiKz0iOyBleHBpcmVzPSIrYS50b0dNVFN0cmluZygpfWlmKHRoaXMu
b3B0aW9ucy5zZWN1cmUpe2IrPSI7IHNlY3VyZSJ9dGhpcy5vcHRpb25zLmRvY3Vt
ZW50LmNvb2tpZT10aGlzLmtleSsiPSIrYjtyZXR1cm4gdGhpc30scmVhZDpmdW5j
dGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucy5kb2N1bWVudC5jb29raWUubWF0Y2go
Iig/Ol58OylcXHMqIit0aGlzLmtleS5lc2NhcGVSZWdFeHAoKSsiPShbXjtdKiki
KTtyZXR1cm4oYSk/ZGVjb2RlVVJJQ29tcG9uZW50KGFbMV0pOm51bGx9LGRpc3Bv
c2U6ZnVuY3Rpb24oKXtuZXcgQ29va2llKHRoaXMua2V5LCRtZXJnZSh0aGlzLm9w
dGlvbnMse2R1cmF0aW9uOi0xfSkpLndyaXRlKCIiKTtyZXR1cm4gdGhpc319KTtD
b29raWUud3JpdGU9ZnVuY3Rpb24oYixjLGEpe3JldHVybiBuZXcgQ29va2llKGIs
YSkud3JpdGUoYyl9O0Nvb2tpZS5yZWFkPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcg
Q29va2llKGEpLnJlYWQoKX07Q29va2llLmRpc3Bvc2U9ZnVuY3Rpb24oYixhKXty
ZXR1cm4gbmV3IENvb2tpZShiLGEpLmRpc3Bvc2UoKX07dmFyIFN3aWZmPW5ldyBD
bGFzcyh7SW1wbGVtZW50czpbT3B0aW9uc10sb3B0aW9uczp7aWQ6bnVsbCxoZWln
aHQ6MSx3aWR0aDoxLGNvbnRhaW5lcjpudWxsLHByb3BlcnRpZXM6e30scGFyYW1z
OntxdWFsaXR5OiJoaWdoIixhbGxvd1NjcmlwdEFjY2VzczoiYWx3YXlzIix3TW9k
ZToidHJhbnNwYXJlbnQiLHN3TGl2ZUNvbm5lY3Q6dHJ1ZX0sY2FsbEJhY2tzOnt9
LHZhcnM6e319LHRvRWxlbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9iamVj
dH0saW5pdGlhbGl6ZTpmdW5jdGlvbihsLG0pe3RoaXMuaW5zdGFuY2U9IlN3aWZm
XyIrJHRpbWUoKTt0aGlzLnNldE9wdGlvbnMobSk7bT10aGlzLm9wdGlvbnM7dmFy
IGI9dGhpcy5pZD1tLmlkfHx0aGlzLmluc3RhbmNlO3ZhciBhPWRvY3VtZW50Lmlk
KG0uY29udGFpbmVyKTtTd2lmZi5DYWxsQmFja3NbdGhpcy5pbnN0YW5jZV09e307
dmFyIGU9bS5wYXJhbXMsZz1tLnZhcnMsZj1tLmNhbGxCYWNrczt2YXIgaD0kZXh0
ZW5kKHtoZWlnaHQ6bS5oZWlnaHQsd2lkdGg6bS53aWR0aH0sbS5wcm9wZXJ0aWVz
KTt2YXIgaz10aGlzO2Zvcih2YXIgZCBpbiBmKXtTd2lmZi5DYWxsQmFja3NbdGhp
cy5pbnN0YW5jZV1bZF09KGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3Jl
dHVybiBuLmFwcGx5KGsub2JqZWN0LGFyZ3VtZW50cyl9fSkoZltkXSk7Z1tkXT0i
U3dpZmYuQ2FsbEJhY2tzLiIrdGhpcy5pbnN0YW5jZSsiLiIrZH1lLmZsYXNoVmFy
cz1IYXNoLnRvUXVlcnlTdHJpbmcoZyk7aWYoQnJvd3Nlci5FbmdpbmUudHJpZGVu
dCl7aC5jbGFzc2lkPSJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1
NTM1NDAwMDAiO2UubW92aWU9bH1lbHNle2gudHlwZT0iYXBwbGljYXRpb24veC1z
aG9ja3dhdmUtZmxhc2giO2guZGF0YT1sfXZhciBqPSc8b2JqZWN0IGlkPSInK2Ir
JyInO2Zvcih2YXIgaSBpbiBoKXtqKz0iICIraSsnPSInK2hbaV0rJyInfWorPSI+
Ijtmb3IodmFyIGMgaW4gZSl7aWYoZVtjXSl7ais9JzxwYXJhbSBuYW1lPSInK2Mr
JyIgdmFsdWU9IicrZVtjXSsnIiAvPid9fWorPSI8L29iamVjdD4iO3RoaXMub2Jq
ZWN0PSgoYSk/YS5lbXB0eSgpOm5ldyBFbGVtZW50KCJkaXYiKSkuc2V0KCJodG1s
IixqKS5maXJzdENoaWxkfSxyZXBsYWNlczpmdW5jdGlvbihhKXthPWRvY3VtZW50
LmlkKGEsdHJ1ZSk7YS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCh0aGlzLnRvRWxl
bWVudCgpLGEpO3JldHVybiB0aGlzfSxpbmplY3Q6ZnVuY3Rpb24oYSl7ZG9jdW1l
bnQuaWQoYSx0cnVlKS5hcHBlbmRDaGlsZCh0aGlzLnRvRWxlbWVudCgpKTtyZXR1
cm4gdGhpc30scmVtb3RlOmZ1bmN0aW9uKCl7cmV0dXJuIFN3aWZmLnJlbW90ZS5h
cHBseShTd2lmZixbdGhpcy50b0VsZW1lbnQoKV0uZXh0ZW5kKGFyZ3VtZW50cykp
fX0pO1N3aWZmLkNhbGxCYWNrcz17fTtTd2lmZi5yZW1vdGU9ZnVuY3Rpb24ob2Jq
LGZuKXt2YXIgcnM9b2JqLkNhbGxGdW5jdGlvbignPGludm9rZSBuYW1lPSInK2Zu
KyciIHJldHVybnR5cGU9ImphdmFzY3JpcHQiPicrX19mbGFzaF9fYXJndW1lbnRz
VG9YTUwoYXJndW1lbnRzLDIpKyI8L2ludm9rZT4iKTtyZXR1cm4gZXZhbChycyl9
O3ZhciBGeD1uZXcgQ2xhc3Moe0ltcGxlbWVudHM6W0NoYWluLEV2ZW50cyxPcHRp
b25zXSxvcHRpb25zOntmcHM6NTAsdW5pdDpmYWxzZSxkdXJhdGlvbjo1MDAsbGlu
azoiaWdub3JlIn0saW5pdGlhbGl6ZTpmdW5jdGlvbihhKXt0aGlzLnN1YmplY3Q9
dGhpcy5zdWJqZWN0fHx0aGlzO3RoaXMuc2V0T3B0aW9ucyhhKTt0aGlzLm9wdGlv
bnMuZHVyYXRpb249RnguRHVyYXRpb25zW3RoaXMub3B0aW9ucy5kdXJhdGlvbl18
fHRoaXMub3B0aW9ucy5kdXJhdGlvbi50b0ludCgpO3ZhciBiPXRoaXMub3B0aW9u
cy53YWl0O2lmKGI9PT1mYWxzZSl7dGhpcy5vcHRpb25zLmxpbms9ImNhbmNlbCJ9
fSxnZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3Jl
dHVybiAtKE1hdGguY29zKE1hdGguUEkqYSktMSkvMn19LHN0ZXA6ZnVuY3Rpb24o
KXt2YXIgYT0kdGltZSgpO2lmKGE8dGhpcy50aW1lK3RoaXMub3B0aW9ucy5kdXJh
dGlvbil7dmFyIGI9dGhpcy50cmFuc2l0aW9uKChhLXRoaXMudGltZSkvdGhpcy5v
cHRpb25zLmR1cmF0aW9uKTt0aGlzLnNldCh0aGlzLmNvbXB1dGUodGhpcy5mcm9t
LHRoaXMudG8sYikpfWVsc2V7dGhpcy5zZXQodGhpcy5jb21wdXRlKHRoaXMuZnJv
bSx0aGlzLnRvLDEpKTt0aGlzLmNvbXBsZXRlKCl9fSxzZXQ6ZnVuY3Rpb24oYSl7
cmV0dXJuIGF9LGNvbXB1dGU6ZnVuY3Rpb24oYyxiLGEpe3JldHVybiBGeC5jb21w
dXRlKGMsYixhKX0sY2hlY2s6ZnVuY3Rpb24oKXtpZighdGhpcy50aW1lcil7cmV0
dXJuIHRydWV9c3dpdGNoKHRoaXMub3B0aW9ucy5saW5rKXtjYXNlImNhbmNlbCI6
dGhpcy5jYW5jZWwoKTtyZXR1cm4gdHJ1ZTtjYXNlImNoYWluIjp0aGlzLmNoYWlu
KHRoaXMuY2FsbGVyLmJpbmQodGhpcyxhcmd1bWVudHMpKTtyZXR1cm4gZmFsc2V9
cmV0dXJuIGZhbHNlfSxzdGFydDpmdW5jdGlvbihiLGEpe2lmKCF0aGlzLmNoZWNr
KGIsYSkpe3JldHVybiB0aGlzfXRoaXMuZnJvbT1iO3RoaXMudG89YTt0aGlzLnRp
bWU9MDt0aGlzLnRyYW5zaXRpb249dGhpcy5nZXRUcmFuc2l0aW9uKCk7dGhpcy5z
dGFydFRpbWVyKCk7dGhpcy5vblN0YXJ0KCk7cmV0dXJuIHRoaXN9LGNvbXBsZXRl
OmZ1bmN0aW9uKCl7aWYodGhpcy5zdG9wVGltZXIoKSl7dGhpcy5vbkNvbXBsZXRl
KCl9cmV0dXJuIHRoaXN9LGNhbmNlbDpmdW5jdGlvbigpe2lmKHRoaXMuc3RvcFRp
bWVyKCkpe3RoaXMub25DYW5jZWwoKX1yZXR1cm4gdGhpc30sb25TdGFydDpmdW5j
dGlvbigpe3RoaXMuZmlyZUV2ZW50KCJzdGFydCIsdGhpcy5zdWJqZWN0KX0sb25D
b21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuZmlyZUV2ZW50KCJjb21wbGV0ZSIsdGhp
cy5zdWJqZWN0KTtpZighdGhpcy5jYWxsQ2hhaW4oKSl7dGhpcy5maXJlRXZlbnQo
ImNoYWluQ29tcGxldGUiLHRoaXMuc3ViamVjdCl9fSxvbkNhbmNlbDpmdW5jdGlv
bigpe3RoaXMuZmlyZUV2ZW50KCJjYW5jZWwiLHRoaXMuc3ViamVjdCkuY2xlYXJD
aGFpbigpfSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuc3RvcFRpbWVyKCk7cmV0dXJu
IHRoaXN9LHJlc3VtZTpmdW5jdGlvbigpe3RoaXMuc3RhcnRUaW1lcigpO3JldHVy
biB0aGlzfSxzdG9wVGltZXI6ZnVuY3Rpb24oKXtpZighdGhpcy50aW1lcil7cmV0
dXJuIGZhbHNlfXRoaXMudGltZT0kdGltZSgpLXRoaXMudGltZTt0aGlzLnRpbWVy
PSRjbGVhcih0aGlzLnRpbWVyKTtyZXR1cm4gdHJ1ZX0sc3RhcnRUaW1lcjpmdW5j
dGlvbigpe2lmKHRoaXMudGltZXIpe3JldHVybiBmYWxzZX10aGlzLnRpbWU9JHRp
bWUoKS10aGlzLnRpbWU7dGhpcy50aW1lcj10aGlzLnN0ZXAucGVyaW9kaWNhbChN
YXRoLnJvdW5kKDEwMDAvdGhpcy5vcHRpb25zLmZwcyksdGhpcyk7cmV0dXJuIHRy
dWV9fSk7RnguY29tcHV0ZT1mdW5jdGlvbihjLGIsYSl7cmV0dXJuKGItYykqYStj
fTtGeC5EdXJhdGlvbnM9eyJzaG9ydCI6MjUwLG5vcm1hbDo1MDAsImxvbmciOjEw
MDB9O0Z4LkNTUz1uZXcgQ2xhc3Moe0V4dGVuZHM6RngscHJlcGFyZTpmdW5jdGlv
bihkLGUsYil7Yj0kc3BsYXQoYik7dmFyIGM9YlsxXTtpZighJGNoayhjKSl7Ylsx
XT1iWzBdO2JbMF09ZC5nZXRTdHlsZShlKX12YXIgYT1iLm1hcCh0aGlzLnBhcnNl
KTtyZXR1cm57ZnJvbTphWzBdLHRvOmFbMV19fSxwYXJzZTpmdW5jdGlvbihhKXth
PSRsYW1iZGEoYSkoKTthPSh0eXBlb2YgYT09InN0cmluZyIpP2Euc3BsaXQoIiAi
KTokc3BsYXQoYSk7cmV0dXJuIGEubWFwKGZ1bmN0aW9uKGMpe2M9U3RyaW5nKGMp
O3ZhciBiPWZhbHNlO0Z4LkNTUy5QYXJzZXJzLmVhY2goZnVuY3Rpb24oZixlKXtp
ZihiKXtyZXR1cm59dmFyIGQ9Zi5wYXJzZShjKTtpZigkY2hrKGQpKXtiPXt2YWx1
ZTpkLHBhcnNlcjpmfX19KTtiPWJ8fHt2YWx1ZTpjLHBhcnNlcjpGeC5DU1MuUGFy
c2Vycy5TdHJpbmd9O3JldHVybiBifSl9LGNvbXB1dGU6ZnVuY3Rpb24oZCxjLGIp
e3ZhciBhPVtdOyhNYXRoLm1pbihkLmxlbmd0aCxjLmxlbmd0aCkpLnRpbWVzKGZ1
bmN0aW9uKGUpe2EucHVzaCh7dmFsdWU6ZFtlXS5wYXJzZXIuY29tcHV0ZShkW2Vd
LnZhbHVlLGNbZV0udmFsdWUsYikscGFyc2VyOmRbZV0ucGFyc2VyfSl9KTthLiRm
YW1pbHk9e25hbWU6ImZ4OmNzczp2YWx1ZSJ9O3JldHVybiBhfSxzZXJ2ZTpmdW5j
dGlvbihjLGIpe2lmKCR0eXBlKGMpIT0iZng6Y3NzOnZhbHVlIil7Yz10aGlzLnBh
cnNlKGMpfXZhciBhPVtdO2MuZWFjaChmdW5jdGlvbihkKXthPWEuY29uY2F0KGQu
cGFyc2VyLnNlcnZlKGQudmFsdWUsYikpfSk7cmV0dXJuIGF9LHJlbmRlcjpmdW5j
dGlvbihhLGQsYyxiKXthLnNldFN0eWxlKGQsdGhpcy5zZXJ2ZShjLGIpKX0sc2Vh
cmNoOmZ1bmN0aW9uKGEpe2lmKEZ4LkNTUy5DYWNoZVthXSl7cmV0dXJuIEZ4LkNT
Uy5DYWNoZVthXX12YXIgYj17fTtBcnJheS5lYWNoKGRvY3VtZW50LnN0eWxlU2hl
ZXRzLGZ1bmN0aW9uKGUsZCl7dmFyIGM9ZS5ocmVmO2lmKGMmJmMuY29udGFpbnMo
IjovLyIpJiYhYy5jb250YWlucyhkb2N1bWVudC5kb21haW4pKXtyZXR1cm59dmFy
IGY9ZS5ydWxlc3x8ZS5jc3NSdWxlcztBcnJheS5lYWNoKGYsZnVuY3Rpb24oaixn
KXtpZighai5zdHlsZSl7cmV0dXJufXZhciBoPShqLnNlbGVjdG9yVGV4dCk/ai5z
ZWxlY3RvclRleHQucmVwbGFjZSgvXlx3Ky8sZnVuY3Rpb24oaSl7cmV0dXJuIGku
dG9Mb3dlckNhc2UoKX0pOm51bGw7aWYoIWh8fCFoLnRlc3QoIl4iK2ErIiQiKSl7
cmV0dXJufUVsZW1lbnQuU3R5bGVzLmVhY2goZnVuY3Rpb24oayxpKXtpZighai5z
dHlsZVtpXXx8RWxlbWVudC5TaG9ydFN0eWxlc1tpXSl7cmV0dXJufWs9U3RyaW5n
KGouc3R5bGVbaV0pO2JbaV09KGsudGVzdCgvXnJnYi8pKT9rLnJnYlRvSGV4KCk6
a30pfSl9KTtyZXR1cm4gRnguQ1NTLkNhY2hlW2FdPWJ9fSk7RnguQ1NTLkNhY2hl
PXt9O0Z4LkNTUy5QYXJzZXJzPW5ldyBIYXNoKHtDb2xvcjp7cGFyc2U6ZnVuY3Rp
b24oYSl7aWYoYS5tYXRjaCgvXiNbMC05YS1mXXszLDZ9JC9pKSl7cmV0dXJuIGEu
aGV4VG9SZ2IodHJ1ZSl9cmV0dXJuKChhPWEubWF0Y2goLyhcZCspLFxzKihcZCsp
LFxzKihcZCspLykpKT9bYVsxXSxhWzJdLGFbM11dOmZhbHNlfSxjb21wdXRlOmZ1
bmN0aW9uKGMsYixhKXtyZXR1cm4gYy5tYXAoZnVuY3Rpb24oZSxkKXtyZXR1cm4g
TWF0aC5yb3VuZChGeC5jb21wdXRlKGNbZF0sYltkXSxhKSl9KX0sc2VydmU6ZnVu
Y3Rpb24oYSl7cmV0dXJuIGEubWFwKE51bWJlcil9fSxOdW1iZXI6e3BhcnNlOnBh
cnNlRmxvYXQsY29tcHV0ZTpGeC5jb21wdXRlLHNlcnZlOmZ1bmN0aW9uKGIsYSl7
cmV0dXJuKGEpP2IrYTpifX0sU3RyaW5nOntwYXJzZTokbGFtYmRhKGZhbHNlKSxj
b21wdXRlOiRhcmd1bWVudHMoMSksc2VydmU6JGFyZ3VtZW50cygwKX19KTtGeC5U
d2Vlbj1uZXcgQ2xhc3Moe0V4dGVuZHM6RnguQ1NTLGluaXRpYWxpemU6ZnVuY3Rp
b24oYixhKXt0aGlzLmVsZW1lbnQ9dGhpcy5zdWJqZWN0PWRvY3VtZW50LmlkKGIp
O3RoaXMucGFyZW50KGEpfSxzZXQ6ZnVuY3Rpb24oYixhKXtpZihhcmd1bWVudHMu
bGVuZ3RoPT0xKXthPWI7Yj10aGlzLnByb3BlcnR5fHx0aGlzLm9wdGlvbnMucHJv
cGVydHl9dGhpcy5yZW5kZXIodGhpcy5lbGVtZW50LGIsYSx0aGlzLm9wdGlvbnMu
dW5pdCk7cmV0dXJuIHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKGMsZSxkKXtpZighdGhp
cy5jaGVjayhjLGUsZCkpe3JldHVybiB0aGlzfXZhciBiPUFycmF5LmZsYXR0ZW4o
YXJndW1lbnRzKTt0aGlzLnByb3BlcnR5PXRoaXMub3B0aW9ucy5wcm9wZXJ0eXx8
Yi5zaGlmdCgpO3ZhciBhPXRoaXMucHJlcGFyZSh0aGlzLmVsZW1lbnQsdGhpcy5w
cm9wZXJ0eSxiKTtyZXR1cm4gdGhpcy5wYXJlbnQoYS5mcm9tLGEudG8pfX0pO0Vs
ZW1lbnQuUHJvcGVydGllcy50d2Vlbj17c2V0OmZ1bmN0aW9uKGEpe3ZhciBiPXRo
aXMucmV0cmlldmUoInR3ZWVuIik7aWYoYil7Yi5jYW5jZWwoKX1yZXR1cm4gdGhp
cy5lbGltaW5hdGUoInR3ZWVuIikuc3RvcmUoInR3ZWVuOm9wdGlvbnMiLCRleHRl
bmQoe2xpbms6ImNhbmNlbCJ9LGEpKX0sZ2V0OmZ1bmN0aW9uKGEpe2lmKGF8fCF0
aGlzLnJldHJpZXZlKCJ0d2VlbiIpKXtpZihhfHwhdGhpcy5yZXRyaWV2ZSgidHdl
ZW46b3B0aW9ucyIpKXt0aGlzLnNldCgidHdlZW4iLGEpfXRoaXMuc3RvcmUoInR3
ZWVuIixuZXcgRnguVHdlZW4odGhpcyx0aGlzLnJldHJpZXZlKCJ0d2VlbjpvcHRp
b25zIikpKX1yZXR1cm4gdGhpcy5yZXRyaWV2ZSgidHdlZW4iKX19O0VsZW1lbnQu
aW1wbGVtZW50KHt0d2VlbjpmdW5jdGlvbihhLGMsYil7dGhpcy5nZXQoInR3ZWVu
Iikuc3RhcnQoYXJndW1lbnRzKTtyZXR1cm4gdGhpc30sZmFkZTpmdW5jdGlvbihj
KXt2YXIgZT10aGlzLmdldCgidHdlZW4iKSxkPSJvcGFjaXR5IixhO2M9JHBpY2so
YywidG9nZ2xlIik7c3dpdGNoKGMpe2Nhc2UiaW4iOmUuc3RhcnQoZCwxKTticmVh
aztjYXNlIm91dCI6ZS5zdGFydChkLDApO2JyZWFrO2Nhc2Uic2hvdyI6ZS5zZXQo
ZCwxKTticmVhaztjYXNlImhpZGUiOmUuc2V0KGQsMCk7YnJlYWs7Y2FzZSJ0b2dn
bGUiOnZhciBiPXRoaXMucmV0cmlldmUoImZhZGU6ZmxhZyIsdGhpcy5nZXQoIm9w
YWNpdHkiKT09MSk7ZS5zdGFydChkLChiKT8wOjEpO3RoaXMuc3RvcmUoImZhZGU6
ZmxhZyIsIWIpO2E9dHJ1ZTticmVhaztkZWZhdWx0OmUuc3RhcnQoZCxhcmd1bWVu
dHMpfWlmKCFhKXt0aGlzLmVsaW1pbmF0ZSgiZmFkZTpmbGFnIil9cmV0dXJuIHRo
aXN9LGhpZ2hsaWdodDpmdW5jdGlvbihjLGEpe2lmKCFhKXthPXRoaXMucmV0cmll
dmUoImhpZ2hsaWdodDpvcmlnaW5hbCIsdGhpcy5nZXRTdHlsZSgiYmFja2dyb3Vu
ZC1jb2xvciIpKTthPShhPT0idHJhbnNwYXJlbnQiKT8iI2ZmZiI6YX12YXIgYj10
aGlzLmdldCgidHdlZW4iKTtiLnN0YXJ0KCJiYWNrZ3JvdW5kLWNvbG9yIixjfHwi
I2ZmZmY4OCIsYSkuY2hhaW4oZnVuY3Rpb24oKXt0aGlzLnNldFN0eWxlKCJiYWNr
Z3JvdW5kLWNvbG9yIix0aGlzLnJldHJpZXZlKCJoaWdobGlnaHQ6b3JpZ2luYWwi
KSk7Yi5jYWxsQ2hhaW4oKX0uYmluZCh0aGlzKSk7cmV0dXJuIHRoaXN9fSk7Rngu
TW9ycGg9bmV3IENsYXNzKHtFeHRlbmRzOkZ4LkNTUyxpbml0aWFsaXplOmZ1bmN0
aW9uKGIsYSl7dGhpcy5lbGVtZW50PXRoaXMuc3ViamVjdD1kb2N1bWVudC5pZChi
KTt0aGlzLnBhcmVudChhKX0sc2V0OmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0i
c3RyaW5nIil7YT10aGlzLnNlYXJjaChhKX1mb3IodmFyIGIgaW4gYSl7dGhpcy5y
ZW5kZXIodGhpcy5lbGVtZW50LGIsYVtiXSx0aGlzLm9wdGlvbnMudW5pdCl9cmV0
dXJuIHRoaXN9LGNvbXB1dGU6ZnVuY3Rpb24oZSxkLGMpe3ZhciBhPXt9O2Zvcih2
YXIgYiBpbiBlKXthW2JdPXRoaXMucGFyZW50KGVbYl0sZFtiXSxjKX1yZXR1cm4g
YX0sc3RhcnQ6ZnVuY3Rpb24oYil7aWYoIXRoaXMuY2hlY2soYikpe3JldHVybiB0
aGlzfWlmKHR5cGVvZiBiPT0ic3RyaW5nIil7Yj10aGlzLnNlYXJjaChiKX12YXIg
ZT17fSxkPXt9O2Zvcih2YXIgYyBpbiBiKXt2YXIgYT10aGlzLnByZXBhcmUodGhp
cy5lbGVtZW50LGMsYltjXSk7ZVtjXT1hLmZyb207ZFtjXT1hLnRvfXJldHVybiB0
aGlzLnBhcmVudChlLGQpfX0pO0VsZW1lbnQuUHJvcGVydGllcy5tb3JwaD17c2V0
OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucmV0cmlldmUoIm1vcnBoIik7aWYoYil7
Yi5jYW5jZWwoKX1yZXR1cm4gdGhpcy5lbGltaW5hdGUoIm1vcnBoIikuc3RvcmUo
Im1vcnBoOm9wdGlvbnMiLCRleHRlbmQoe2xpbms6ImNhbmNlbCJ9LGEpKX0sZ2V0
OmZ1bmN0aW9uKGEpe2lmKGF8fCF0aGlzLnJldHJpZXZlKCJtb3JwaCIpKXtpZihh
fHwhdGhpcy5yZXRyaWV2ZSgibW9ycGg6b3B0aW9ucyIpKXt0aGlzLnNldCgibW9y
cGgiLGEpfXRoaXMuc3RvcmUoIm1vcnBoIixuZXcgRnguTW9ycGgodGhpcyx0aGlz
LnJldHJpZXZlKCJtb3JwaDpvcHRpb25zIikpKX1yZXR1cm4gdGhpcy5yZXRyaWV2
ZSgibW9ycGgiKX19O0VsZW1lbnQuaW1wbGVtZW50KHttb3JwaDpmdW5jdGlvbihh
KXt0aGlzLmdldCgibW9ycGgiKS5zdGFydChhKTtyZXR1cm4gdGhpc319KTtGeC5p
bXBsZW1lbnQoe2dldFRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9w
dGlvbnMudHJhbnNpdGlvbnx8RnguVHJhbnNpdGlvbnMuU2luZS5lYXNlSW5PdXQ7
aWYodHlwZW9mIGE9PSJzdHJpbmciKXt2YXIgYj1hLnNwbGl0KCI6Iik7YT1GeC5U
cmFuc2l0aW9uczthPWFbYlswXV18fGFbYlswXS5jYXBpdGFsaXplKCldO2lmKGJb
MV0pe2E9YVsiZWFzZSIrYlsxXS5jYXBpdGFsaXplKCkrKGJbMl0/YlsyXS5jYXBp
dGFsaXplKCk6IiIpXX19cmV0dXJuIGF9fSk7RnguVHJhbnNpdGlvbj1mdW5jdGlv
bihiLGEpe2E9JHNwbGF0KGEpO3JldHVybiAkZXh0ZW5kKGIse2Vhc2VJbjpmdW5j
dGlvbihjKXtyZXR1cm4gYihjLGEpfSxlYXNlT3V0OmZ1bmN0aW9uKGMpe3JldHVy
biAxLWIoMS1jLGEpfSxlYXNlSW5PdXQ6ZnVuY3Rpb24oYyl7cmV0dXJuKGM8PTAu
NSk/YigyKmMsYSkvMjooMi1iKDIqKDEtYyksYSkpLzJ9fSl9O0Z4LlRyYW5zaXRp
b25zPW5ldyBIYXNoKHtsaW5lYXI6JGFyZ3VtZW50cygwKX0pO0Z4LlRyYW5zaXRp
b25zLmV4dGVuZD1mdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYSl7RnguVHJhbnNp
dGlvbnNbYl09bmV3IEZ4LlRyYW5zaXRpb24oYVtiXSl9fTtGeC5UcmFuc2l0aW9u
cy5leHRlbmQoe1BvdzpmdW5jdGlvbihiLGEpe3JldHVybiBNYXRoLnBvdyhiLGFb
MF18fDYpfSxFeHBvOmZ1bmN0aW9uKGEpe3JldHVybiBNYXRoLnBvdygyLDgqKGEt
MSkpfSxDaXJjOmZ1bmN0aW9uKGEpe3JldHVybiAxLU1hdGguc2luKE1hdGguYWNv
cyhhKSl9LFNpbmU6ZnVuY3Rpb24oYSl7cmV0dXJuIDEtTWF0aC5zaW4oKDEtYSkq
TWF0aC5QSS8yKX0sQmFjazpmdW5jdGlvbihiLGEpe2E9YVswXXx8MS42MTg7cmV0
dXJuIE1hdGgucG93KGIsMikqKChhKzEpKmItYSl9LEJvdW5jZTpmdW5jdGlvbihm
KXt2YXIgZTtmb3IodmFyIGQ9MCxjPTE7MTtkKz1jLGMvPTIpe2lmKGY+PSg3LTQq
ZCkvMTEpe2U9YypjLU1hdGgucG93KCgxMS02KmQtMTEqZikvNCwyKTticmVha319
cmV0dXJuIGV9LEVsYXN0aWM6ZnVuY3Rpb24oYixhKXtyZXR1cm4gTWF0aC5wb3co
MiwxMCotLWIpKk1hdGguY29zKDIwKmIqTWF0aC5QSSooYVswXXx8MSkvMyl9fSk7
WyJRdWFkIiwiQ3ViaWMiLCJRdWFydCIsIlF1aW50Il0uZWFjaChmdW5jdGlvbihi
LGEpe0Z4LlRyYW5zaXRpb25zW2JdPW5ldyBGeC5UcmFuc2l0aW9uKGZ1bmN0aW9u
KGMpe3JldHVybiBNYXRoLnBvdyhjLFthKzJdKX0pfSk7dmFyIFJlcXVlc3Q9bmV3
IENsYXNzKHtJbXBsZW1lbnRzOltDaGFpbixFdmVudHMsT3B0aW9uc10sb3B0aW9u
czp7dXJsOiIiLGRhdGE6IiIsaGVhZGVyczp7IlgtUmVxdWVzdGVkLVdpdGgiOiJY
TUxIdHRwUmVxdWVzdCIsQWNjZXB0OiJ0ZXh0L2phdmFzY3JpcHQsIHRleHQvaHRt
bCwgYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCwgKi8qIn0sYXN5bmM6dHJ1ZSxm
b3JtYXQ6ZmFsc2UsbWV0aG9kOiJwb3N0IixsaW5rOiJpZ25vcmUiLGlzU3VjY2Vz
czpudWxsLGVtdWxhdGlvbjp0cnVlLHVybEVuY29kZWQ6dHJ1ZSxlbmNvZGluZzoi
dXRmLTgiLGV2YWxTY3JpcHRzOmZhbHNlLGV2YWxSZXNwb25zZTpmYWxzZSxub0Nh
Y2hlOmZhbHNlfSxpbml0aWFsaXplOmZ1bmN0aW9uKGEpe3RoaXMueGhyPW5ldyBC
cm93c2VyLlJlcXVlc3QoKTt0aGlzLnNldE9wdGlvbnMoYSk7dGhpcy5vcHRpb25z
LmlzU3VjY2Vzcz10aGlzLm9wdGlvbnMuaXNTdWNjZXNzfHx0aGlzLmlzU3VjY2Vz
czt0aGlzLmhlYWRlcnM9bmV3IEhhc2godGhpcy5vcHRpb25zLmhlYWRlcnMpfSxv
blN0YXRlQ2hhbmdlOmZ1bmN0aW9uKCl7aWYodGhpcy54aHIucmVhZHlTdGF0ZSE9
NHx8IXRoaXMucnVubmluZyl7cmV0dXJufXRoaXMucnVubmluZz1mYWxzZTt0aGlz
LnN0YXR1cz0wOyR0cnkoZnVuY3Rpb24oKXt0aGlzLnN0YXR1cz10aGlzLnhoci5z
dGF0dXN9LmJpbmQodGhpcykpO3RoaXMueGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT0k
ZW1wdHk7aWYodGhpcy5vcHRpb25zLmlzU3VjY2Vzcy5jYWxsKHRoaXMsdGhpcy5z
dGF0dXMpKXt0aGlzLnJlc3BvbnNlPXt0ZXh0OnRoaXMueGhyLnJlc3BvbnNlVGV4
dCx4bWw6dGhpcy54aHIucmVzcG9uc2VYTUx9O3RoaXMuc3VjY2Vzcyh0aGlzLnJl
c3BvbnNlLnRleHQsdGhpcy5yZXNwb25zZS54bWwpfWVsc2V7dGhpcy5yZXNwb25z
ZT17dGV4dDpudWxsLHhtbDpudWxsfTt0aGlzLmZhaWx1cmUoKX19LGlzU3VjY2Vz
czpmdW5jdGlvbigpe3JldHVybigodGhpcy5zdGF0dXM+PTIwMCkmJih0aGlzLnN0
YXR1czwzMDApKX0scHJvY2Vzc1NjcmlwdHM6ZnVuY3Rpb24oYSl7aWYodGhpcy5v
cHRpb25zLmV2YWxSZXNwb25zZXx8KC8oZWNtYXxqYXZhKXNjcmlwdC8pLnRlc3Qo
dGhpcy5nZXRIZWFkZXIoIkNvbnRlbnQtdHlwZSIpKSl7cmV0dXJuICRleGVjKGEp
fXJldHVybiBhLnN0cmlwU2NyaXB0cyh0aGlzLm9wdGlvbnMuZXZhbFNjcmlwdHMp
fSxzdWNjZXNzOmZ1bmN0aW9uKGIsYSl7dGhpcy5vblN1Y2Nlc3ModGhpcy5wcm9j
ZXNzU2NyaXB0cyhiKSxhKX0sb25TdWNjZXNzOmZ1bmN0aW9uKCl7dGhpcy5maXJl
RXZlbnQoImNvbXBsZXRlIixhcmd1bWVudHMpLmZpcmVFdmVudCgic3VjY2VzcyIs
YXJndW1lbnRzKS5jYWxsQ2hhaW4oKX0sZmFpbHVyZTpmdW5jdGlvbigpe3RoaXMu
b25GYWlsdXJlKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe3RoaXMuZmlyZUV2ZW50
KCJjb21wbGV0ZSIpLmZpcmVFdmVudCgiZmFpbHVyZSIsdGhpcy54aHIpfSxzZXRI
ZWFkZXI6ZnVuY3Rpb24oYSxiKXt0aGlzLmhlYWRlcnMuc2V0KGEsYik7cmV0dXJu
IHRoaXN9LGdldEhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4gJHRyeShmdW5jdGlv
bigpe3JldHVybiB0aGlzLnhoci5nZXRSZXNwb25zZUhlYWRlcihhKX0uYmluZCh0
aGlzKSl9LGNoZWNrOmZ1bmN0aW9uKCl7aWYoIXRoaXMucnVubmluZyl7cmV0dXJu
IHRydWV9c3dpdGNoKHRoaXMub3B0aW9ucy5saW5rKXtjYXNlImNhbmNlbCI6dGhp
cy5jYW5jZWwoKTtyZXR1cm4gdHJ1ZTtjYXNlImNoYWluIjp0aGlzLmNoYWluKHRo
aXMuY2FsbGVyLmJpbmQodGhpcyxhcmd1bWVudHMpKTtyZXR1cm4gZmFsc2V9cmV0
dXJuIGZhbHNlfSxzZW5kOmZ1bmN0aW9uKGspe2lmKCF0aGlzLmNoZWNrKGspKXty
ZXR1cm4gdGhpc310aGlzLnJ1bm5pbmc9dHJ1ZTt2YXIgaT0kdHlwZShrKTtpZihp
PT0ic3RyaW5nInx8aT09ImVsZW1lbnQiKXtrPXtkYXRhOmt9fXZhciBkPXRoaXMu
b3B0aW9ucztrPSRleHRlbmQoe2RhdGE6ZC5kYXRhLHVybDpkLnVybCxtZXRob2Q6
ZC5tZXRob2R9LGspO3ZhciBnPWsuZGF0YSxiPVN0cmluZyhrLnVybCksYT1rLm1l
dGhvZC50b0xvd2VyQ2FzZSgpO3N3aXRjaCgkdHlwZShnKSl7Y2FzZSJlbGVtZW50
IjpnPWRvY3VtZW50LmlkKGcpLnRvUXVlcnlTdHJpbmcoKTticmVhaztjYXNlIm9i
amVjdCI6Y2FzZSJoYXNoIjpnPUhhc2gudG9RdWVyeVN0cmluZyhnKX1pZih0aGlz
Lm9wdGlvbnMuZm9ybWF0KXt2YXIgaj0iZm9ybWF0PSIrdGhpcy5vcHRpb25zLmZv
cm1hdDtnPShnKT9qKyImIitnOmp9aWYodGhpcy5vcHRpb25zLmVtdWxhdGlvbiYm
IVsiZ2V0IiwicG9zdCJdLmNvbnRhaW5zKGEpKXt2YXIgaD0iX21ldGhvZD0iK2E7
Zz0oZyk/aCsiJiIrZzpoO2E9InBvc3QifWlmKHRoaXMub3B0aW9ucy51cmxFbmNv
ZGVkJiZhPT0icG9zdCIpe3ZhciBjPSh0aGlzLm9wdGlvbnMuZW5jb2RpbmcpPyI7
IGNoYXJzZXQ9Iit0aGlzLm9wdGlvbnMuZW5jb2Rpbmc6IiI7dGhpcy5oZWFkZXJz
LnNldCgiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxl
bmNvZGVkIitjKX1pZih0aGlzLm9wdGlvbnMubm9DYWNoZSl7dmFyIGY9Im5vQ2Fj
aGU9IituZXcgRGF0ZSgpLmdldFRpbWUoKTtnPShnKT9mKyImIitnOmZ9dmFyIGU9
Yi5sYXN0SW5kZXhPZigiLyIpO2lmKGU+LTEmJihlPWIuaW5kZXhPZigiIyIpKT4t
MSl7Yj1iLnN1YnN0cigwLGUpfWlmKGcmJmE9PSJnZXQiKXtiPWIrKGIuY29udGFp
bnMoIj8iKT8iJiI6Ij8iKStnO2c9bnVsbH10aGlzLnhoci5vcGVuKGEudG9VcHBl
ckNhc2UoKSxiLHRoaXMub3B0aW9ucy5hc3luYyk7dGhpcy54aHIub25yZWFkeXN0
YXRlY2hhbmdlPXRoaXMub25TdGF0ZUNoYW5nZS5iaW5kKHRoaXMpO3RoaXMuaGVh
ZGVycy5lYWNoKGZ1bmN0aW9uKG0sbCl7dHJ5e3RoaXMueGhyLnNldFJlcXVlc3RI
ZWFkZXIobCxtKX1jYXRjaChuKXt0aGlzLmZpcmVFdmVudCgiZXhjZXB0aW9uIixb
bCxtXSl9fSx0aGlzKTt0aGlzLmZpcmVFdmVudCgicmVxdWVzdCIpO3RoaXMueGhy
LnNlbmQoZyk7aWYoIXRoaXMub3B0aW9ucy5hc3luYyl7dGhpcy5vblN0YXRlQ2hh
bmdlKCl9cmV0dXJuIHRoaXN9LGNhbmNlbDpmdW5jdGlvbigpe2lmKCF0aGlzLnJ1
bm5pbmcpe3JldHVybiB0aGlzfXRoaXMucnVubmluZz1mYWxzZTt0aGlzLnhoci5h
Ym9ydCgpO3RoaXMueGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT0kZW1wdHk7dGhpcy54
aHI9bmV3IEJyb3dzZXIuUmVxdWVzdCgpO3RoaXMuZmlyZUV2ZW50KCJjYW5jZWwi
KTtyZXR1cm4gdGhpc319KTsoZnVuY3Rpb24oKXt2YXIgYT17fTtbImdldCIsInBv
c3QiLCJwdXQiLCJkZWxldGUiLCJHRVQiLCJQT1NUIiwiUFVUIiwiREVMRVRFIl0u
ZWFjaChmdW5jdGlvbihiKXthW2JdPWZ1bmN0aW9uKCl7dmFyIGM9QXJyYXkubGlu
ayhhcmd1bWVudHMse3VybDpTdHJpbmcudHlwZSxkYXRhOiRkZWZpbmVkfSk7cmV0
dXJuIHRoaXMuc2VuZCgkZXh0ZW5kKGMse21ldGhvZDpifSkpfX0pO1JlcXVlc3Qu
aW1wbGVtZW50KGEpfSkoKTtFbGVtZW50LlByb3BlcnRpZXMuc2VuZD17c2V0OmZ1
bmN0aW9uKGEpe3ZhciBiPXRoaXMucmV0cmlldmUoInNlbmQiKTtpZihiKXtiLmNh
bmNlbCgpfXJldHVybiB0aGlzLmVsaW1pbmF0ZSgic2VuZCIpLnN0b3JlKCJzZW5k
Om9wdGlvbnMiLCRleHRlbmQoe2RhdGE6dGhpcyxsaW5rOiJjYW5jZWwiLG1ldGhv
ZDp0aGlzLmdldCgibWV0aG9kIil8fCJwb3N0Iix1cmw6dGhpcy5nZXQoImFjdGlv
biIpfSxhKSl9LGdldDpmdW5jdGlvbihhKXtpZihhfHwhdGhpcy5yZXRyaWV2ZSgi
c2VuZCIpKXtpZihhfHwhdGhpcy5yZXRyaWV2ZSgic2VuZDpvcHRpb25zIikpe3Ro
aXMuc2V0KCJzZW5kIixhKX10aGlzLnN0b3JlKCJzZW5kIixuZXcgUmVxdWVzdCh0
aGlzLnJldHJpZXZlKCJzZW5kOm9wdGlvbnMiKSkpfXJldHVybiB0aGlzLnJldHJp
ZXZlKCJzZW5kIil9fTtFbGVtZW50LmltcGxlbWVudCh7c2VuZDpmdW5jdGlvbihh
KXt2YXIgYj10aGlzLmdldCgic2VuZCIpO2Iuc2VuZCh7ZGF0YTp0aGlzLHVybDph
fHxiLm9wdGlvbnMudXJsfSk7cmV0dXJuIHRoaXN9fSk7UmVxdWVzdC5IVE1MPW5l
dyBDbGFzcyh7RXh0ZW5kczpSZXF1ZXN0LG9wdGlvbnM6e3VwZGF0ZTpmYWxzZSxh
cHBlbmQ6ZmFsc2UsZXZhbFNjcmlwdHM6dHJ1ZSxmaWx0ZXI6ZmFsc2V9LHByb2Nl
c3NIVE1MOmZ1bmN0aW9uKGMpe3ZhciBiPWMubWF0Y2goLzxib2R5W14+XSo+KFtc
c1xTXSo/KTxcL2JvZHk+L2kpO2M9KGIpP2JbMV06Yzt2YXIgYT1uZXcgRWxlbWVu
dCgiZGl2Iik7cmV0dXJuICR0cnkoZnVuY3Rpb24oKXt2YXIgZD0iPHJvb3Q+Iitj
KyI8L3Jvb3Q+IixnO2lmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpe2c9bmV3IEFj
dGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKTtnLmFzeW5jPWZhbHNlO2cu
bG9hZFhNTChkKX1lbHNle2c9bmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmlu
ZyhkLCJ0ZXh0L3htbCIpfWQ9Zy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicm9vdCIp
WzBdO2lmKCFkKXtyZXR1cm4gbnVsbH1mb3IodmFyIGY9MCxlPWQuY2hpbGROb2Rl
cy5sZW5ndGg7ZjxlO2YrKyl7dmFyIGg9RWxlbWVudC5jbG9uZShkLmNoaWxkTm9k
ZXNbZl0sdHJ1ZSx0cnVlKTtpZihoKXthLmdyYWIoaCl9fXJldHVybiBhfSl8fGEu
c2V0KCJodG1sIixjKX0sc3VjY2VzczpmdW5jdGlvbihkKXt2YXIgYz10aGlzLm9w
dGlvbnMsYj10aGlzLnJlc3BvbnNlO2IuaHRtbD1kLnN0cmlwU2NyaXB0cyhmdW5j
dGlvbihlKXtiLmphdmFzY3JpcHQ9ZX0pO3ZhciBhPXRoaXMucHJvY2Vzc0hUTUwo
Yi5odG1sKTtiLnRyZWU9YS5jaGlsZE5vZGVzO2IuZWxlbWVudHM9YS5nZXRFbGVt
ZW50cygiKiIpO2lmKGMuZmlsdGVyKXtiLnRyZWU9Yi5lbGVtZW50cy5maWx0ZXIo
Yy5maWx0ZXIpfWlmKGMudXBkYXRlKXtkb2N1bWVudC5pZChjLnVwZGF0ZSkuZW1w
dHkoKS5zZXQoImh0bWwiLGIuaHRtbCl9ZWxzZXtpZihjLmFwcGVuZCl7ZG9jdW1l
bnQuaWQoYy5hcHBlbmQpLmFkb3B0KGEuZ2V0Q2hpbGRyZW4oKSl9fWlmKGMuZXZh
bFNjcmlwdHMpeyRleGVjKGIuamF2YXNjcmlwdCl9dGhpcy5vblN1Y2Nlc3MoYi50
cmVlLGIuZWxlbWVudHMsYi5odG1sLGIuamF2YXNjcmlwdCl9fSk7RWxlbWVudC5Q
cm9wZXJ0aWVzLmxvYWQ9e3NldDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnJldHJp
ZXZlKCJsb2FkIik7aWYoYil7Yi5jYW5jZWwoKX1yZXR1cm4gdGhpcy5lbGltaW5h
dGUoImxvYWQiKS5zdG9yZSgibG9hZDpvcHRpb25zIiwkZXh0ZW5kKHtkYXRhOnRo
aXMsbGluazoiY2FuY2VsIix1cGRhdGU6dGhpcyxtZXRob2Q6ImdldCJ9LGEpKX0s
Z2V0OmZ1bmN0aW9uKGEpe2lmKGF8fCF0aGlzLnJldHJpZXZlKCJsb2FkIikpe2lm
KGF8fCF0aGlzLnJldHJpZXZlKCJsb2FkOm9wdGlvbnMiKSl7dGhpcy5zZXQoImxv
YWQiLGEpfXRoaXMuc3RvcmUoImxvYWQiLG5ldyBSZXF1ZXN0LkhUTUwodGhpcy5y
ZXRyaWV2ZSgibG9hZDpvcHRpb25zIikpKX1yZXR1cm4gdGhpcy5yZXRyaWV2ZSgi
bG9hZCIpfX07RWxlbWVudC5pbXBsZW1lbnQoe2xvYWQ6ZnVuY3Rpb24oKXt0aGlz
LmdldCgibG9hZCIpLnNlbmQoQXJyYXkubGluayhhcmd1bWVudHMse2RhdGE6T2Jq
ZWN0LnR5cGUsdXJsOlN0cmluZy50eXBlfSkpO3JldHVybiB0aGlzfX0pO1JlcXVl
c3QuSlNPTj1uZXcgQ2xhc3Moe0V4dGVuZHM6UmVxdWVzdCxvcHRpb25zOntzZWN1
cmU6dHJ1ZX0saW5pdGlhbGl6ZTpmdW5jdGlvbihhKXt0aGlzLnBhcmVudChhKTt0
aGlzLmhlYWRlcnMuZXh0ZW5kKHtBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJY
LVJlcXVlc3QiOiJKU09OIn0pfSxzdWNjZXNzOmZ1bmN0aW9uKGEpe3RoaXMucmVz
cG9uc2UuanNvbj1KU09OLmRlY29kZShhLHRoaXMub3B0aW9ucy5zZWN1cmUpO3Ro
aXMub25TdWNjZXNzKHRoaXMucmVzcG9uc2UuanNvbixhKX19KTtNb29Ub29scy5N
b3JlPXt2ZXJzaW9uOiIxLjIuNC4yIixidWlsZDoiYmQ1YTkzYzA5MTNjY2UyNTkx
N2M0OGNiZGFjZGU1NjhlMTVlMDJlZiJ9O0Z4LkVsZW1lbnRzPW5ldyBDbGFzcyh7
RXh0ZW5kczpGeC5DU1MsaW5pdGlhbGl6ZTpmdW5jdGlvbihiLGEpe3RoaXMuZWxl
bWVudHM9dGhpcy5zdWJqZWN0PSQkKGIpO3RoaXMucGFyZW50KGEpfSxjb21wdXRl
OmZ1bmN0aW9uKGcsaCxqKXt2YXIgYz17fTtmb3IodmFyIGQgaW4gZyl7dmFyIGE9
Z1tkXSxlPWhbZF0sZj1jW2RdPXt9O2Zvcih2YXIgYiBpbiBhKXtmW2JdPXRoaXMu
cGFyZW50KGFbYl0sZVtiXSxqKX19cmV0dXJuIGN9LHNldDpmdW5jdGlvbihiKXtm
b3IodmFyIGMgaW4gYil7dmFyIGE9YltjXTtmb3IodmFyIGQgaW4gYSl7dGhpcy5y
ZW5kZXIodGhpcy5lbGVtZW50c1tjXSxkLGFbZF0sdGhpcy5vcHRpb25zLnVuaXQp
fX1yZXR1cm4gdGhpc30sc3RhcnQ6ZnVuY3Rpb24oYyl7aWYoIXRoaXMuY2hlY2so
Yykpe3JldHVybiB0aGlzfXZhciBoPXt9LGo9e307Zm9yKHZhciBkIGluIGMpe3Zh
ciBmPWNbZF0sYT1oW2RdPXt9LGc9altkXT17fTtmb3IodmFyIGIgaW4gZil7dmFy
IGU9dGhpcy5wcmVwYXJlKHRoaXMuZWxlbWVudHNbZF0sYixmW2JdKTthW2JdPWUu
ZnJvbTtnW2JdPWUudG99fXJldHVybiB0aGlzLnBhcmVudChoLGopfX0pO3ZhciBB
Y2NvcmRpb249RnguQWNjb3JkaW9uPW5ldyBDbGFzcyh7RXh0ZW5kczpGeC5FbGVt
ZW50cyxvcHRpb25zOntkaXNwbGF5OjAsc2hvdzpmYWxzZSxoZWlnaHQ6dHJ1ZSx3
aWR0aDpmYWxzZSxvcGFjaXR5OnRydWUsYWx3YXlzSGlkZTpmYWxzZSx0cmlnZ2Vy
OiJjbGljayIsaW5pdGlhbERpc3BsYXlGeDp0cnVlLHJldHVybkhlaWdodFRvQXV0
bzp0cnVlfSxpbml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIGM9QXJyYXkubGluayhh
cmd1bWVudHMse2NvbnRhaW5lcjpFbGVtZW50LnR5cGUsb3B0aW9uczpPYmplY3Qu
dHlwZSx0b2dnbGVyczokZGVmaW5lZCxlbGVtZW50czokZGVmaW5lZH0pO3RoaXMu
cGFyZW50KGMuZWxlbWVudHMsYy5vcHRpb25zKTt0aGlzLnRvZ2dsZXJzPSQkKGMu
dG9nZ2xlcnMpO3RoaXMuY29udGFpbmVyPWRvY3VtZW50LmlkKGMuY29udGFpbmVy
KTt0aGlzLnByZXZpb3VzPS0xO3RoaXMuaW50ZXJuYWxDaGFpbj1uZXcgQ2hhaW4o
KTtpZih0aGlzLm9wdGlvbnMuYWx3YXlzSGlkZSl7dGhpcy5vcHRpb25zLndhaXQ9
dHJ1ZX1pZigkY2hrKHRoaXMub3B0aW9ucy5zaG93KSl7dGhpcy5vcHRpb25zLmRp
c3BsYXk9ZmFsc2U7dGhpcy5wcmV2aW91cz10aGlzLm9wdGlvbnMuc2hvd31pZih0
aGlzLm9wdGlvbnMuc3RhcnQpe3RoaXMub3B0aW9ucy5kaXNwbGF5PWZhbHNlO3Ro
aXMub3B0aW9ucy5zaG93PWZhbHNlfXRoaXMuZWZmZWN0cz17fTtpZih0aGlzLm9w
dGlvbnMub3BhY2l0eSl7dGhpcy5lZmZlY3RzLm9wYWNpdHk9ImZ1bGxPcGFjaXR5
In1pZih0aGlzLm9wdGlvbnMud2lkdGgpe3RoaXMuZWZmZWN0cy53aWR0aD10aGlz
Lm9wdGlvbnMuZml4ZWRXaWR0aD8iZnVsbFdpZHRoIjoib2Zmc2V0V2lkdGgifWlm
KHRoaXMub3B0aW9ucy5oZWlnaHQpe3RoaXMuZWZmZWN0cy5oZWlnaHQ9dGhpcy5v
cHRpb25zLmZpeGVkSGVpZ2h0PyJmdWxsSGVpZ2h0Ijoic2Nyb2xsSGVpZ2h0In1m
b3IodmFyIGI9MCxhPXRoaXMudG9nZ2xlcnMubGVuZ3RoO2I8YTtiKyspe3RoaXMu
YWRkU2VjdGlvbih0aGlzLnRvZ2dsZXJzW2JdLHRoaXMuZWxlbWVudHNbYl0pfXRo
aXMuZWxlbWVudHMuZWFjaChmdW5jdGlvbihlLGQpe2lmKHRoaXMub3B0aW9ucy5z
aG93PT09ZCl7dGhpcy5maXJlRXZlbnQoImFjdGl2ZSIsW3RoaXMudG9nZ2xlcnNb
ZF0sZV0pfWVsc2V7Zm9yKHZhciBmIGluIHRoaXMuZWZmZWN0cyl7ZS5zZXRTdHls
ZShmLDApfX19LHRoaXMpO2lmKCRjaGsodGhpcy5vcHRpb25zLmRpc3BsYXkpKXt0
aGlzLmRpc3BsYXkodGhpcy5vcHRpb25zLmRpc3BsYXksdGhpcy5vcHRpb25zLmlu
aXRpYWxEaXNwbGF5RngpfXRoaXMuYWRkRXZlbnQoImNvbXBsZXRlIix0aGlzLmlu
dGVybmFsQ2hhaW4uY2FsbENoYWluLmJpbmQodGhpcy5pbnRlcm5hbENoYWluKSl9
LGFkZFNlY3Rpb246ZnVuY3Rpb24oZSxjKXtlPWRvY3VtZW50LmlkKGUpO2M9ZG9j
dW1lbnQuaWQoYyk7dmFyIGY9dGhpcy50b2dnbGVycy5jb250YWlucyhlKTt0aGlz
LnRvZ2dsZXJzLmluY2x1ZGUoZSk7dGhpcy5lbGVtZW50cy5pbmNsdWRlKGMpO3Zh
ciBhPXRoaXMudG9nZ2xlcnMuaW5kZXhPZihlKTt2YXIgYj10aGlzLmRpc3BsYXku
YmluZCh0aGlzLGEpO2Uuc3RvcmUoImFjY29yZGlvbjpkaXNwbGF5IixiKTtlLmFk
ZEV2ZW50KHRoaXMub3B0aW9ucy50cmlnZ2VyLGIpO2lmKHRoaXMub3B0aW9ucy5o
ZWlnaHQpe2Muc2V0U3R5bGVzKHsicGFkZGluZy10b3AiOjAsImJvcmRlci10b3Ai
OiJub25lIiwicGFkZGluZy1ib3R0b20iOjAsImJvcmRlci1ib3R0b20iOiJub25l
In0pfWlmKHRoaXMub3B0aW9ucy53aWR0aCl7Yy5zZXRTdHlsZXMoeyJwYWRkaW5n
LWxlZnQiOjAsImJvcmRlci1sZWZ0Ijoibm9uZSIsInBhZGRpbmctcmlnaHQiOjAs
ImJvcmRlci1yaWdodCI6Im5vbmUifSl9Yy5mdWxsT3BhY2l0eT0xO2lmKHRoaXMu
b3B0aW9ucy5maXhlZFdpZHRoKXtjLmZ1bGxXaWR0aD10aGlzLm9wdGlvbnMuZml4
ZWRXaWR0aH1pZih0aGlzLm9wdGlvbnMuZml4ZWRIZWlnaHQpe2MuZnVsbEhlaWdo
dD10aGlzLm9wdGlvbnMuZml4ZWRIZWlnaHR9Yy5zZXRTdHlsZSgib3ZlcmZsb3ci
LCJoaWRkZW4iKTtpZighZil7Zm9yKHZhciBkIGluIHRoaXMuZWZmZWN0cyl7Yy5z
ZXRTdHlsZShkLDApfX1yZXR1cm4gdGhpc30sZGV0YWNoOmZ1bmN0aW9uKCl7dGhp
cy50b2dnbGVycy5lYWNoKGZ1bmN0aW9uKGEpe2EucmVtb3ZlRXZlbnQodGhpcy5v
cHRpb25zLnRyaWdnZXIsYS5yZXRyaWV2ZSgiYWNjb3JkaW9uOmRpc3BsYXkiKSl9
LHRoaXMpfSxkaXNwbGF5OmZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuY2hlY2soYSxi
KSl7cmV0dXJuIHRoaXN9Yj0kcGljayhiLHRydWUpO2lmKHRoaXMub3B0aW9ucy5y
ZXR1cm5IZWlnaHRUb0F1dG8pe3ZhciBkPXRoaXMuZWxlbWVudHNbdGhpcy5wcmV2
aW91c107aWYoZCYmIXRoaXMuc2VsZkhpZGRlbil7Zm9yKHZhciBjIGluIHRoaXMu
ZWZmZWN0cyl7ZC5zZXRTdHlsZShjLGRbdGhpcy5lZmZlY3RzW2NdXSl9fX1hPSgk
dHlwZShhKT09ImVsZW1lbnQiKT90aGlzLmVsZW1lbnRzLmluZGV4T2YoYSk6YTtp
ZigodGhpcy50aW1lciYmdGhpcy5vcHRpb25zLndhaXQpfHwoYT09PXRoaXMucHJl
dmlvdXMmJiF0aGlzLm9wdGlvbnMuYWx3YXlzSGlkZSkpe3JldHVybiB0aGlzfXRo
aXMucHJldmlvdXM9YTt2YXIgZT17fTt0aGlzLmVsZW1lbnRzLmVhY2goZnVuY3Rp
b24oaCxnKXtlW2ddPXt9O3ZhciBmO2lmKGchPWEpe2Y9dHJ1ZX1lbHNle2lmKHRo
aXMub3B0aW9ucy5hbHdheXNIaWRlJiYoKGgub2Zmc2V0SGVpZ2h0PjAmJnRoaXMu
b3B0aW9ucy5oZWlnaHQpfHxoLm9mZnNldFdpZHRoPjAmJnRoaXMub3B0aW9ucy53
aWR0aCkpe2Y9dHJ1ZTt0aGlzLnNlbGZIaWRkZW49dHJ1ZX19dGhpcy5maXJlRXZl
bnQoZj8iYmFja2dyb3VuZCI6ImFjdGl2ZSIsW3RoaXMudG9nZ2xlcnNbZ10saF0p
O2Zvcih2YXIgaiBpbiB0aGlzLmVmZmVjdHMpe2VbZ11bal09Zj8wOmhbdGhpcy5l
ZmZlY3RzW2pdXX19LHRoaXMpO3RoaXMuaW50ZXJuYWxDaGFpbi5jaGFpbihmdW5j
dGlvbigpe2lmKHRoaXMub3B0aW9ucy5yZXR1cm5IZWlnaHRUb0F1dG8mJiF0aGlz
LnNlbGZIaWRkZW4pe3ZhciBmPXRoaXMuZWxlbWVudHNbYV07aWYoZil7Zi5zZXRT
dHlsZSgiaGVpZ2h0IiwiYXV0byIpfX19LmJpbmQodGhpcykpO3JldHVybiBiP3Ro
aXMuc3RhcnQoZSk6dGhpcy5zZXQoZSl9fSk7RnguU2Nyb2xsPW5ldyBDbGFzcyh7
RXh0ZW5kczpGeCxvcHRpb25zOntvZmZzZXQ6e3g6MCx5OjB9LHdoZWVsU3RvcHM6
dHJ1ZX0saW5pdGlhbGl6ZTpmdW5jdGlvbihiLGEpe3RoaXMuZWxlbWVudD10aGlz
LnN1YmplY3Q9ZG9jdW1lbnQuaWQoYik7dGhpcy5wYXJlbnQoYSk7dmFyIGQ9dGhp
cy5jYW5jZWwuYmluZCh0aGlzLGZhbHNlKTtpZigkdHlwZSh0aGlzLmVsZW1lbnQp
IT0iZWxlbWVudCIpe3RoaXMuZWxlbWVudD1kb2N1bWVudC5pZCh0aGlzLmVsZW1l
bnQuZ2V0RG9jdW1lbnQoKS5ib2R5KX12YXIgYz10aGlzLmVsZW1lbnQ7aWYodGhp
cy5vcHRpb25zLndoZWVsU3RvcHMpe3RoaXMuYWRkRXZlbnQoInN0YXJ0IixmdW5j
dGlvbigpe2MuYWRkRXZlbnQoIm1vdXNld2hlZWwiLGQpfSx0cnVlKTt0aGlzLmFk
ZEV2ZW50KCJjb21wbGV0ZSIsZnVuY3Rpb24oKXtjLnJlbW92ZUV2ZW50KCJtb3Vz
ZXdoZWVsIixkKX0sdHJ1ZSl9fSxzZXQ6ZnVuY3Rpb24oKXt2YXIgYT1BcnJheS5m
bGF0dGVuKGFyZ3VtZW50cyk7aWYoQnJvd3Nlci5FbmdpbmUuZ2Vja28pe2E9W01h
dGgucm91bmQoYVswXSksTWF0aC5yb3VuZChhWzFdKV19dGhpcy5lbGVtZW50LnNj
cm9sbFRvKGFbMF0sYVsxXSl9LGNvbXB1dGU6ZnVuY3Rpb24oYyxiLGEpe3JldHVy
blswLDFdLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gRnguY29tcHV0ZShjW2RdLGJb
ZF0sYSl9KX0sc3RhcnQ6ZnVuY3Rpb24oYyxnKXtpZighdGhpcy5jaGVjayhjLGcp
KXtyZXR1cm4gdGhpc312YXIgZT10aGlzLmVsZW1lbnQuZ2V0U2Nyb2xsU2l6ZSgp
LGI9dGhpcy5lbGVtZW50LmdldFNjcm9sbCgpLGQ9e3g6Yyx5Omd9O2Zvcih2YXIg
ZiBpbiBkKXt2YXIgYT1lW2ZdO2lmKCRjaGsoZFtmXSkpe2RbZl09KCR0eXBlKGRb
Zl0pPT0ibnVtYmVyIik/ZFtmXTphfWVsc2V7ZFtmXT1iW2ZdfWRbZl0rPXRoaXMu
b3B0aW9ucy5vZmZzZXRbZl19cmV0dXJuIHRoaXMucGFyZW50KFtiLngsYi55XSxb
ZC54LGQueV0pfSx0b1RvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0KGZh
bHNlLDApfSx0b0xlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGFydCgwLGZh
bHNlKX0sdG9SaWdodDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0KCJyaWdo
dCIsZmFsc2UpfSx0b0JvdHRvbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0
KGZhbHNlLCJib3R0b20iKX0sdG9FbGVtZW50OmZ1bmN0aW9uKGIpe3ZhciBhPWRv
Y3VtZW50LmlkKGIpLmdldFBvc2l0aW9uKHRoaXMuZWxlbWVudCk7cmV0dXJuIHRo
aXMuc3RhcnQoYS54LGEueSl9LHNjcm9sbEludG9WaWV3OmZ1bmN0aW9uKGMsZSxk
KXtlPWU/JHNwbGF0KGUpOlsieCIsInkiXTt2YXIgaD17fTtjPWRvY3VtZW50Lmlk
KGMpO3ZhciBmPWMuZ2V0UG9zaXRpb24odGhpcy5lbGVtZW50KTt2YXIgaT1jLmdl
dFNpemUoKTt2YXIgZz10aGlzLmVsZW1lbnQuZ2V0U2Nyb2xsKCk7dmFyIGE9dGhp
cy5lbGVtZW50LmdldFNpemUoKTt2YXIgYj17eDpmLngraS54LHk6Zi55K2kueX07
WyJ4IiwieSJdLmVhY2goZnVuY3Rpb24oail7aWYoZS5jb250YWlucyhqKSl7aWYo
YltqXT5nW2pdK2Fbal0pe2hbal09YltqXS1hW2pdfWlmKGZbal08Z1tqXSl7aFtq
XT1mW2pdfX1pZihoW2pdPT1udWxsKXtoW2pdPWdbal19aWYoZCYmZFtqXSl7aFtq
XT1oW2pdK2Rbal19fSx0aGlzKTtpZihoLnghPWcueHx8aC55IT1nLnkpe3RoaXMu
c3RhcnQoaC54LGgueSl9cmV0dXJuIHRoaXN9LHNjcm9sbFRvQ2VudGVyOmZ1bmN0
aW9uKGMsZSxkKXtlPWU/JHNwbGF0KGUpOlsieCIsInkiXTtjPSQoYyk7dmFyIGg9
e30sZj1jLmdldFBvc2l0aW9uKHRoaXMuZWxlbWVudCksaT1jLmdldFNpemUoKSxn
PXRoaXMuZWxlbWVudC5nZXRTY3JvbGwoKSxhPXRoaXMuZWxlbWVudC5nZXRTaXpl
KCksYj17eDpmLngraS54LHk6Zi55K2kueX07WyJ4IiwieSJdLmVhY2goZnVuY3Rp
b24oail7aWYoZS5jb250YWlucyhqKSl7aFtqXT1mW2pdLShhW2pdLWlbal0pLzJ9
aWYoaFtqXT09bnVsbCl7aFtqXT1nW2pdfWlmKGQmJmRbal0pe2hbal09aFtqXStk
W2pdfX0sdGhpcyk7aWYoaC54IT1nLnh8fGgueSE9Zy55KXt0aGlzLnN0YXJ0KGgu
eCxoLnkpfXJldHVybiB0aGlzfX0pO0Z4LlNsaWRlPW5ldyBDbGFzcyh7RXh0ZW5k
czpGeCxvcHRpb25zOnttb2RlOiJ2ZXJ0aWNhbCIsaGlkZU92ZXJmbG93OnRydWV9
LGluaXRpYWxpemU6ZnVuY3Rpb24oYixhKXt0aGlzLmFkZEV2ZW50KCJjb21wbGV0
ZSIsZnVuY3Rpb24oKXt0aGlzLm9wZW49KHRoaXMud3JhcHBlclsib2Zmc2V0Iit0
aGlzLmxheW91dC5jYXBpdGFsaXplKCldIT0wKTtpZih0aGlzLm9wZW4mJkJyb3dz
ZXIuRW5naW5lLndlYmtpdDQxOSl7dGhpcy5lbGVtZW50LmRpc3Bvc2UoKS5pbmpl
Y3QodGhpcy53cmFwcGVyKX19LHRydWUpO3RoaXMuZWxlbWVudD10aGlzLnN1Ympl
Y3Q9ZG9jdW1lbnQuaWQoYik7dGhpcy5wYXJlbnQoYSk7dmFyIGQ9dGhpcy5lbGVt
ZW50LnJldHJpZXZlKCJ3cmFwcGVyIik7dmFyIGM9dGhpcy5lbGVtZW50LmdldFN0
eWxlcygibWFyZ2luIiwicG9zaXRpb24iLCJvdmVyZmxvdyIpO2lmKHRoaXMub3B0
aW9ucy5oaWRlT3ZlcmZsb3cpe2M9JGV4dGVuZChjLHtvdmVyZmxvdzoiaGlkZGVu
In0pfXRoaXMud3JhcHBlcj1kfHxuZXcgRWxlbWVudCgiZGl2Iix7c3R5bGVzOmN9
KS53cmFwcyh0aGlzLmVsZW1lbnQpO3RoaXMuZWxlbWVudC5zdG9yZSgid3JhcHBl
ciIsdGhpcy53cmFwcGVyKS5zZXRTdHlsZSgibWFyZ2luIiwwKTt0aGlzLm5vdz1b
XTt0aGlzLm9wZW49dHJ1ZX0sdmVydGljYWw6ZnVuY3Rpb24oKXt0aGlzLm1hcmdp
bj0ibWFyZ2luLXRvcCI7dGhpcy5sYXlvdXQ9ImhlaWdodCI7dGhpcy5vZmZzZXQ9
dGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodH0saG9yaXpvbnRhbDpmdW5jdGlvbigp
e3RoaXMubWFyZ2luPSJtYXJnaW4tbGVmdCI7dGhpcy5sYXlvdXQ9IndpZHRoIjt0
aGlzLm9mZnNldD10aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGh9LHNldDpmdW5jdGlv
bihhKXt0aGlzLmVsZW1lbnQuc2V0U3R5bGUodGhpcy5tYXJnaW4sYVswXSk7dGhp
cy53cmFwcGVyLnNldFN0eWxlKHRoaXMubGF5b3V0LGFbMV0pO3JldHVybiB0aGlz
fSxjb21wdXRlOmZ1bmN0aW9uKGMsYixhKXtyZXR1cm5bMCwxXS5tYXAoZnVuY3Rp
b24oZCl7cmV0dXJuIEZ4LmNvbXB1dGUoY1tkXSxiW2RdLGEpfSl9LHN0YXJ0OmZ1
bmN0aW9uKGIsZSl7aWYoIXRoaXMuY2hlY2soYixlKSl7cmV0dXJuIHRoaXN9dGhp
c1tlfHx0aGlzLm9wdGlvbnMubW9kZV0oKTt2YXIgZD10aGlzLmVsZW1lbnQuZ2V0
U3R5bGUodGhpcy5tYXJnaW4pLnRvSW50KCk7dmFyIGM9dGhpcy53cmFwcGVyLmdl
dFN0eWxlKHRoaXMubGF5b3V0KS50b0ludCgpO3ZhciBhPVtbZCxjXSxbMCx0aGlz
Lm9mZnNldF1dO3ZhciBnPVtbZCxjXSxbLXRoaXMub2Zmc2V0LDBdXTt2YXIgZjtz
d2l0Y2goYil7Y2FzZSJpbiI6Zj1hO2JyZWFrO2Nhc2Uib3V0IjpmPWc7YnJlYWs7
Y2FzZSJ0b2dnbGUiOmY9KGM9PTApP2E6Z31yZXR1cm4gdGhpcy5wYXJlbnQoZlsw
XSxmWzFdKX0sc2xpZGVJbjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5zdGFydCgi
aW4iLGEpfSxzbGlkZU91dDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5zdGFydCgi
b3V0IixhKX0saGlkZTpmdW5jdGlvbihhKXt0aGlzW2F8fHRoaXMub3B0aW9ucy5t
b2RlXSgpO3RoaXMub3Blbj1mYWxzZTtyZXR1cm4gdGhpcy5zZXQoWy10aGlzLm9m
ZnNldCwwXSl9LHNob3c6ZnVuY3Rpb24oYSl7dGhpc1thfHx0aGlzLm9wdGlvbnMu
bW9kZV0oKTt0aGlzLm9wZW49dHJ1ZTtyZXR1cm4gdGhpcy5zZXQoWzAsdGhpcy5v
ZmZzZXRdKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnN0YXJ0KCJ0
b2dnbGUiLGEpfX0pO0VsZW1lbnQuUHJvcGVydGllcy5zbGlkZT17c2V0OmZ1bmN0
aW9uKGIpe3ZhciBhPXRoaXMucmV0cmlldmUoInNsaWRlIik7aWYoYSl7YS5jYW5j
ZWwoKX1yZXR1cm4gdGhpcy5lbGltaW5hdGUoInNsaWRlIikuc3RvcmUoInNsaWRl
Om9wdGlvbnMiLCRleHRlbmQoe2xpbms6ImNhbmNlbCJ9LGIpKX0sZ2V0OmZ1bmN0
aW9uKGEpe2lmKGF8fCF0aGlzLnJldHJpZXZlKCJzbGlkZSIpKXtpZihhfHwhdGhp
cy5yZXRyaWV2ZSgic2xpZGU6b3B0aW9ucyIpKXt0aGlzLnNldCgic2xpZGUiLGEp
fXRoaXMuc3RvcmUoInNsaWRlIixuZXcgRnguU2xpZGUodGhpcyx0aGlzLnJldHJp
ZXZlKCJzbGlkZTpvcHRpb25zIikpKX1yZXR1cm4gdGhpcy5yZXRyaWV2ZSgic2xp
ZGUiKX19O0VsZW1lbnQuaW1wbGVtZW50KHtzbGlkZTpmdW5jdGlvbihkLGUpe2Q9
ZHx8InRvZ2dsZSI7dmFyIGI9dGhpcy5nZXQoInNsaWRlIiksYTtzd2l0Y2goZCl7
Y2FzZSJoaWRlIjpiLmhpZGUoZSk7YnJlYWs7Y2FzZSJzaG93IjpiLnNob3coZSk7
YnJlYWs7Y2FzZSJ0b2dnbGUiOnZhciBjPXRoaXMucmV0cmlldmUoInNsaWRlOmZs
YWciLGIub3Blbik7YltjPyJzbGlkZU91dCI6InNsaWRlSW4iXShlKTt0aGlzLnN0
b3JlKCJzbGlkZTpmbGFnIiwhYyk7YT10cnVlO2JyZWFrO2RlZmF1bHQ6Yi5zdGFy
dChkLGUpfWlmKCFhKXt0aGlzLmVsaW1pbmF0ZSgic2xpZGU6ZmxhZyIpfXJldHVy
biB0aGlzfX0pO3ZhciBTbW9vdGhTY3JvbGw9RnguU21vb3RoU2Nyb2xsPW5ldyBD
bGFzcyh7RXh0ZW5kczpGeC5TY3JvbGwsaW5pdGlhbGl6ZTpmdW5jdGlvbihiLGMp
e2M9Y3x8ZG9jdW1lbnQ7dGhpcy5kb2M9Yy5nZXREb2N1bWVudCgpO3ZhciBkPWMu
Z2V0V2luZG93KCk7dGhpcy5wYXJlbnQodGhpcy5kb2MsYik7dGhpcy5saW5rcz0k
JCh0aGlzLm9wdGlvbnMubGlua3N8fHRoaXMuZG9jLmxpbmtzKTt2YXIgYT1kLmxv
Y2F0aW9uLmhyZWYubWF0Y2goL15bXiNdKi8pWzBdKyIjIjt0aGlzLmxpbmtzLmVh
Y2goZnVuY3Rpb24oZil7aWYoZi5ocmVmLmluZGV4T2YoYSkhPTApe3JldHVybn12
YXIgZT1mLmhyZWYuc3Vic3RyKGEubGVuZ3RoKTtpZihlKXt0aGlzLnVzZUxpbmso
ZixlKX19LHRoaXMpO2lmKCFCcm93c2VyLkVuZ2luZS53ZWJraXQ0MTkpe3RoaXMu
YWRkRXZlbnQoImNvbXBsZXRlIixmdW5jdGlvbigpe2QubG9jYXRpb24uaGFzaD10
aGlzLmFuY2hvcn0sdHJ1ZSl9fSx1c2VMaW5rOmZ1bmN0aW9uKGMsYSl7dmFyIGI7
Yy5hZGRFdmVudCgiY2xpY2siLGZ1bmN0aW9uKGQpe2lmKGIhPT1mYWxzZSYmIWIp
e2I9ZG9jdW1lbnQuaWQoYSl8fHRoaXMuZG9jLmdldEVsZW1lbnQoImFbbmFtZT0i
K2ErIl0iKX1pZihiKXtkLnByZXZlbnREZWZhdWx0KCk7dGhpcy5hbmNob3I9YTt0
aGlzLnRvRWxlbWVudChiKS5jaGFpbihmdW5jdGlvbigpe3RoaXMuZmlyZUV2ZW50
KCJzY3JvbGxlZFRvIixbYyxiXSl9LmJpbmQodGhpcykpO2MuYmx1cigpfX0uYmlu
ZCh0aGlzKSl9fSk7dmFyIERyYWc9bmV3IENsYXNzKHtJbXBsZW1lbnRzOltFdmVu
dHMsT3B0aW9uc10sb3B0aW9uczp7c25hcDo2LHVuaXQ6InB4IixncmlkOmZhbHNl
LHN0eWxlOnRydWUsbGltaXQ6ZmFsc2UsaGFuZGxlOmZhbHNlLGludmVydDpmYWxz
ZSxwcmV2ZW50RGVmYXVsdDpmYWxzZSxzdG9wUHJvcGFnYXRpb246ZmFsc2UsbW9k
aWZpZXJzOnt4OiJsZWZ0Iix5OiJ0b3AifX0saW5pdGlhbGl6ZTpmdW5jdGlvbigp
e3ZhciBiPUFycmF5LmxpbmsoYXJndW1lbnRzLHtvcHRpb25zOk9iamVjdC50eXBl
LGVsZW1lbnQ6JGRlZmluZWR9KTt0aGlzLmVsZW1lbnQ9ZG9jdW1lbnQuaWQoYi5l
bGVtZW50KTt0aGlzLmRvY3VtZW50PXRoaXMuZWxlbWVudC5nZXREb2N1bWVudCgp
O3RoaXMuc2V0T3B0aW9ucyhiLm9wdGlvbnN8fHt9KTt2YXIgYT0kdHlwZSh0aGlz
Lm9wdGlvbnMuaGFuZGxlKTt0aGlzLmhhbmRsZXM9KChhPT0iYXJyYXkifHxhPT0i
Y29sbGVjdGlvbiIpPyQkKHRoaXMub3B0aW9ucy5oYW5kbGUpOmRvY3VtZW50Lmlk
KHRoaXMub3B0aW9ucy5oYW5kbGUpKXx8dGhpcy5lbGVtZW50O3RoaXMubW91c2U9
e25vdzp7fSxwb3M6e319O3RoaXMudmFsdWU9e3N0YXJ0Ont9LG5vdzp7fX07dGhp
cy5zZWxlY3Rpb249KEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpPyJzZWxlY3RzdGFy
dCI6Im1vdXNlZG93biI7dGhpcy5ib3VuZD17c3RhcnQ6dGhpcy5zdGFydC5iaW5k
KHRoaXMpLGNoZWNrOnRoaXMuY2hlY2suYmluZCh0aGlzKSxkcmFnOnRoaXMuZHJh
Zy5iaW5kKHRoaXMpLHN0b3A6dGhpcy5zdG9wLmJpbmQodGhpcyksY2FuY2VsOnRo
aXMuY2FuY2VsLmJpbmQodGhpcyksZXZlbnRTdG9wOiRsYW1iZGEoZmFsc2UpfTt0
aGlzLmF0dGFjaCgpfSxhdHRhY2g6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZXMuYWRk
RXZlbnQoIm1vdXNlZG93biIsdGhpcy5ib3VuZC5zdGFydCk7cmV0dXJuIHRoaXN9
LGRldGFjaDpmdW5jdGlvbigpe3RoaXMuaGFuZGxlcy5yZW1vdmVFdmVudCgibW91
c2Vkb3duIix0aGlzLmJvdW5kLnN0YXJ0KTtyZXR1cm4gdGhpc30sc3RhcnQ6ZnVu
Y3Rpb24oYyl7aWYoYy5yaWdodENsaWNrKXtyZXR1cm59aWYodGhpcy5vcHRpb25z
LnByZXZlbnREZWZhdWx0KXtjLnByZXZlbnREZWZhdWx0KCl9aWYodGhpcy5vcHRp
b25zLnN0b3BQcm9wYWdhdGlvbil7Yy5zdG9wUHJvcGFnYXRpb24oKX10aGlzLm1v
dXNlLnN0YXJ0PWMucGFnZTt0aGlzLmZpcmVFdmVudCgiYmVmb3JlU3RhcnQiLHRo
aXMuZWxlbWVudCk7dmFyIGE9dGhpcy5vcHRpb25zLmxpbWl0O3RoaXMubGltaXQ9
e3g6W10seTpbXX07Zm9yKHZhciBkIGluIHRoaXMub3B0aW9ucy5tb2RpZmllcnMp
e2lmKCF0aGlzLm9wdGlvbnMubW9kaWZpZXJzW2RdKXtjb250aW51ZX1pZih0aGlz
Lm9wdGlvbnMuc3R5bGUpe3RoaXMudmFsdWUubm93W2RdPXRoaXMuZWxlbWVudC5n
ZXRTdHlsZSh0aGlzLm9wdGlvbnMubW9kaWZpZXJzW2RdKS50b0ludCgpfWVsc2V7
dGhpcy52YWx1ZS5ub3dbZF09dGhpcy5lbGVtZW50W3RoaXMub3B0aW9ucy5tb2Rp
ZmllcnNbZF1dfWlmKHRoaXMub3B0aW9ucy5pbnZlcnQpe3RoaXMudmFsdWUubm93
W2RdKj0tMX10aGlzLm1vdXNlLnBvc1tkXT1jLnBhZ2VbZF0tdGhpcy52YWx1ZS5u
b3dbZF07aWYoYSYmYVtkXSl7Zm9yKHZhciBiPTI7Yi0tO2Ipe2lmKCRjaGsoYVtk
XVtiXSkpe3RoaXMubGltaXRbZF1bYl09JGxhbWJkYShhW2RdW2JdKSgpfX19fWlm
KCR0eXBlKHRoaXMub3B0aW9ucy5ncmlkKT09Im51bWJlciIpe3RoaXMub3B0aW9u
cy5ncmlkPXt4OnRoaXMub3B0aW9ucy5ncmlkLHk6dGhpcy5vcHRpb25zLmdyaWR9
fXRoaXMuZG9jdW1lbnQuYWRkRXZlbnRzKHttb3VzZW1vdmU6dGhpcy5ib3VuZC5j
aGVjayxtb3VzZXVwOnRoaXMuYm91bmQuY2FuY2VsfSk7dGhpcy5kb2N1bWVudC5h
ZGRFdmVudCh0aGlzLnNlbGVjdGlvbix0aGlzLmJvdW5kLmV2ZW50U3RvcCl9LGNo
ZWNrOmZ1bmN0aW9uKGEpe2lmKHRoaXMub3B0aW9ucy5wcmV2ZW50RGVmYXVsdCl7
YS5wcmV2ZW50RGVmYXVsdCgpfXZhciBiPU1hdGgucm91bmQoTWF0aC5zcXJ0KE1h
dGgucG93KGEucGFnZS54LXRoaXMubW91c2Uuc3RhcnQueCwyKStNYXRoLnBvdyhh
LnBhZ2UueS10aGlzLm1vdXNlLnN0YXJ0LnksMikpKTtpZihiPnRoaXMub3B0aW9u
cy5zbmFwKXt0aGlzLmNhbmNlbCgpO3RoaXMuZG9jdW1lbnQuYWRkRXZlbnRzKHtt
b3VzZW1vdmU6dGhpcy5ib3VuZC5kcmFnLG1vdXNldXA6dGhpcy5ib3VuZC5zdG9w
fSk7dGhpcy5maXJlRXZlbnQoInN0YXJ0IixbdGhpcy5lbGVtZW50LGFdKS5maXJl
RXZlbnQoInNuYXAiLHRoaXMuZWxlbWVudCl9fSxkcmFnOmZ1bmN0aW9uKGEpe2lm
KHRoaXMub3B0aW9ucy5wcmV2ZW50RGVmYXVsdCl7YS5wcmV2ZW50RGVmYXVsdCgp
fXRoaXMubW91c2Uubm93PWEucGFnZTtmb3IodmFyIGIgaW4gdGhpcy5vcHRpb25z
Lm1vZGlmaWVycyl7aWYoIXRoaXMub3B0aW9ucy5tb2RpZmllcnNbYl0pe2NvbnRp
bnVlfXRoaXMudmFsdWUubm93W2JdPXRoaXMubW91c2Uubm93W2JdLXRoaXMubW91
c2UucG9zW2JdO2lmKHRoaXMub3B0aW9ucy5pbnZlcnQpe3RoaXMudmFsdWUubm93
W2JdKj0tMX1pZih0aGlzLm9wdGlvbnMubGltaXQmJnRoaXMubGltaXRbYl0pe2lm
KCRjaGsodGhpcy5saW1pdFtiXVsxXSkmJih0aGlzLnZhbHVlLm5vd1tiXT50aGlz
LmxpbWl0W2JdWzFdKSl7dGhpcy52YWx1ZS5ub3dbYl09dGhpcy5saW1pdFtiXVsx
XX1lbHNle2lmKCRjaGsodGhpcy5saW1pdFtiXVswXSkmJih0aGlzLnZhbHVlLm5v
d1tiXTx0aGlzLmxpbWl0W2JdWzBdKSl7dGhpcy52YWx1ZS5ub3dbYl09dGhpcy5s
aW1pdFtiXVswXX19fWlmKHRoaXMub3B0aW9ucy5ncmlkW2JdKXt0aGlzLnZhbHVl
Lm5vd1tiXS09KCh0aGlzLnZhbHVlLm5vd1tiXS0odGhpcy5saW1pdFtiXVswXXx8
MCkpJXRoaXMub3B0aW9ucy5ncmlkW2JdKX1pZih0aGlzLm9wdGlvbnMuc3R5bGUp
e3RoaXMuZWxlbWVudC5zZXRTdHlsZSh0aGlzLm9wdGlvbnMubW9kaWZpZXJzW2Jd
LHRoaXMudmFsdWUubm93W2JdK3RoaXMub3B0aW9ucy51bml0KX1lbHNle3RoaXMu
ZWxlbWVudFt0aGlzLm9wdGlvbnMubW9kaWZpZXJzW2JdXT10aGlzLnZhbHVlLm5v
d1tiXX19dGhpcy5maXJlRXZlbnQoImRyYWciLFt0aGlzLmVsZW1lbnQsYV0pfSxj
YW5jZWw6ZnVuY3Rpb24oYSl7dGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudCgibW91
c2Vtb3ZlIix0aGlzLmJvdW5kLmNoZWNrKTt0aGlzLmRvY3VtZW50LnJlbW92ZUV2
ZW50KCJtb3VzZXVwIix0aGlzLmJvdW5kLmNhbmNlbCk7aWYoYSl7dGhpcy5kb2N1
bWVudC5yZW1vdmVFdmVudCh0aGlzLnNlbGVjdGlvbix0aGlzLmJvdW5kLmV2ZW50
U3RvcCk7dGhpcy5maXJlRXZlbnQoImNhbmNlbCIsdGhpcy5lbGVtZW50KX19LHN0
b3A6ZnVuY3Rpb24oYSl7dGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudCh0aGlzLnNl
bGVjdGlvbix0aGlzLmJvdW5kLmV2ZW50U3RvcCk7dGhpcy5kb2N1bWVudC5yZW1v
dmVFdmVudCgibW91c2Vtb3ZlIix0aGlzLmJvdW5kLmRyYWcpO3RoaXMuZG9jdW1l
bnQucmVtb3ZlRXZlbnQoIm1vdXNldXAiLHRoaXMuYm91bmQuc3RvcCk7aWYoYSl7
dGhpcy5maXJlRXZlbnQoImNvbXBsZXRlIixbdGhpcy5lbGVtZW50LGFdKX19fSk7
RWxlbWVudC5pbXBsZW1lbnQoe21ha2VSZXNpemFibGU6ZnVuY3Rpb24oYSl7dmFy
IGI9bmV3IERyYWcodGhpcywkbWVyZ2Uoe21vZGlmaWVyczp7eDoid2lkdGgiLHk6
ImhlaWdodCJ9fSxhKSk7dGhpcy5zdG9yZSgicmVzaXplciIsYik7cmV0dXJuIGIu
YWRkRXZlbnQoImRyYWciLGZ1bmN0aW9uKCl7dGhpcy5maXJlRXZlbnQoInJlc2l6
ZSIsYil9LmJpbmQodGhpcykpfX0pO0RyYWcuTW92ZT1uZXcgQ2xhc3Moe0V4dGVu
ZHM6RHJhZyxvcHRpb25zOntkcm9wcGFibGVzOltdLGNvbnRhaW5lcjpmYWxzZSxw
cmVjYWxjdWxhdGU6ZmFsc2UsaW5jbHVkZU1hcmdpbnM6dHJ1ZSxjaGVja0Ryb3Bw
YWJsZXM6dHJ1ZX0saW5pdGlhbGl6ZTpmdW5jdGlvbihiLGEpe3RoaXMucGFyZW50
KGIsYSk7Yj10aGlzLmVsZW1lbnQ7dGhpcy5kcm9wcGFibGVzPSQkKHRoaXMub3B0
aW9ucy5kcm9wcGFibGVzKTt0aGlzLmNvbnRhaW5lcj1kb2N1bWVudC5pZCh0aGlz
Lm9wdGlvbnMuY29udGFpbmVyKTtpZih0aGlzLmNvbnRhaW5lciYmJHR5cGUodGhp
cy5jb250YWluZXIpIT0iZWxlbWVudCIpe3RoaXMuY29udGFpbmVyPWRvY3VtZW50
LmlkKHRoaXMuY29udGFpbmVyLmdldERvY3VtZW50KCkuYm9keSl9dmFyIGM9Yi5n
ZXRTdHlsZXMoImxlZnQiLCJyaWdodCIsInBvc2l0aW9uIik7aWYoYy5sZWZ0PT0i
YXV0byJ8fGMudG9wPT0iYXV0byIpe2Iuc2V0UG9zaXRpb24oYi5nZXRQb3NpdGlv
bihiLmdldE9mZnNldFBhcmVudCgpKSl9aWYoYy5wb3NpdGlvbj09InN0YXRpYyIp
e2Iuc2V0U3R5bGUoInBvc2l0aW9uIiwiYWJzb2x1dGUiKX10aGlzLmFkZEV2ZW50
KCJzdGFydCIsdGhpcy5jaGVja0Ryb3BwYWJsZXMsdHJ1ZSk7dGhpcy5vdmVyZWQ9
bnVsbH0sc3RhcnQ6ZnVuY3Rpb24oYSl7aWYodGhpcy5jb250YWluZXIpe3RoaXMu
b3B0aW9ucy5saW1pdD10aGlzLmNhbGN1bGF0ZUxpbWl0KCl9aWYodGhpcy5vcHRp
b25zLnByZWNhbGN1bGF0ZSl7dGhpcy5wb3NpdGlvbnM9dGhpcy5kcm9wcGFibGVz
Lm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5nZXRDb29yZGluYXRlcygpfSl9dGhp
cy5wYXJlbnQoYSl9LGNhbGN1bGF0ZUxpbWl0OmZ1bmN0aW9uKCl7dmFyIGQ9dGhp
cy5lbGVtZW50LmdldE9mZnNldFBhcmVudCgpLGc9dGhpcy5jb250YWluZXIuZ2V0
Q29vcmRpbmF0ZXMoZCksZj17fSxjPXt9LGI9e30saT17fSxrPXt9O1sidG9wIiwi
cmlnaHQiLCJib3R0b20iLCJsZWZ0Il0uZWFjaChmdW5jdGlvbihvKXtmW29dPXRo
aXMuY29udGFpbmVyLmdldFN0eWxlKCJib3JkZXItIitvKS50b0ludCgpO2Jbb109
dGhpcy5lbGVtZW50LmdldFN0eWxlKCJib3JkZXItIitvKS50b0ludCgpO2Nbb109
dGhpcy5lbGVtZW50LmdldFN0eWxlKCJtYXJnaW4tIitvKS50b0ludCgpO2lbb109
dGhpcy5jb250YWluZXIuZ2V0U3R5bGUoIm1hcmdpbi0iK28pLnRvSW50KCk7a1tv
XT1kLmdldFN0eWxlKCJwYWRkaW5nLSIrbykudG9JbnQoKX0sdGhpcyk7dmFyIGU9
dGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoK2MubGVmdCtjLnJpZ2h0LG49dGhpcy5l
bGVtZW50Lm9mZnNldEhlaWdodCtjLnRvcCtjLmJvdHRvbSxoPTAsaj0wLG09Zy5y
aWdodC1mLnJpZ2h0LWUsYT1nLmJvdHRvbS1mLmJvdHRvbS1uO2lmKHRoaXMub3B0
aW9ucy5pbmNsdWRlTWFyZ2lucyl7aCs9Yy5sZWZ0O2orPWMudG9wfWVsc2V7bSs9
Yy5yaWdodDthKz1jLmJvdHRvbX1pZih0aGlzLmVsZW1lbnQuZ2V0U3R5bGUoInBv
c2l0aW9uIik9PSJyZWxhdGl2ZSIpe3ZhciBsPXRoaXMuZWxlbWVudC5nZXRDb29y
ZGluYXRlcyhkKTtsLmxlZnQtPXRoaXMuZWxlbWVudC5nZXRTdHlsZSgibGVmdCIp
LnRvSW50KCk7bC50b3AtPXRoaXMuZWxlbWVudC5nZXRTdHlsZSgidG9wIikudG9J
bnQoKTtoKz1mLmxlZnQtbC5sZWZ0O2orPWYudG9wLWwudG9wO20rPWMubGVmdC1s
LmxlZnQ7YSs9Yy50b3AtbC50b3A7aWYodGhpcy5jb250YWluZXIhPWQpe2grPWku
bGVmdCtrLmxlZnQ7ais9KEJyb3dzZXIuRW5naW5lLnRyaWRlbnQ0PzA6aS50b3Ap
K2sudG9wfX1lbHNle2gtPWMubGVmdDtqLT1jLnRvcDtpZih0aGlzLmNvbnRhaW5l
cj09ZCl7bS09Zi5sZWZ0O2EtPWYudG9wfWVsc2V7aCs9Zy5sZWZ0K2YubGVmdDtq
Kz1nLnRvcCtmLnRvcH19cmV0dXJue3g6W2gsbV0seTpbaixhXX19LGNoZWNrQWdh
aW5zdDpmdW5jdGlvbihjLGIpe2M9KHRoaXMucG9zaXRpb25zKT90aGlzLnBvc2l0
aW9uc1tiXTpjLmdldENvb3JkaW5hdGVzKCk7dmFyIGE9dGhpcy5tb3VzZS5ub3c7
cmV0dXJuKGEueD5jLmxlZnQmJmEueDxjLnJpZ2h0JiZhLnk8Yy5ib3R0b20mJmEu
eT5jLnRvcCl9LGNoZWNrRHJvcHBhYmxlczpmdW5jdGlvbigpe3ZhciBhPXRoaXMu
ZHJvcHBhYmxlcy5maWx0ZXIodGhpcy5jaGVja0FnYWluc3QsdGhpcykuZ2V0TGFz
dCgpO2lmKHRoaXMub3ZlcmVkIT1hKXtpZih0aGlzLm92ZXJlZCl7dGhpcy5maXJl
RXZlbnQoImxlYXZlIixbdGhpcy5lbGVtZW50LHRoaXMub3ZlcmVkXSl9aWYoYSl7
dGhpcy5maXJlRXZlbnQoImVudGVyIixbdGhpcy5lbGVtZW50LGFdKX10aGlzLm92
ZXJlZD1hfX0sZHJhZzpmdW5jdGlvbihhKXt0aGlzLnBhcmVudChhKTtpZih0aGlz
Lm9wdGlvbnMuY2hlY2tEcm9wcGFibGVzJiZ0aGlzLmRyb3BwYWJsZXMubGVuZ3Ro
KXt0aGlzLmNoZWNrRHJvcHBhYmxlcygpfX0sc3RvcDpmdW5jdGlvbihhKXt0aGlz
LmNoZWNrRHJvcHBhYmxlcygpO3RoaXMuZmlyZUV2ZW50KCJkcm9wIixbdGhpcy5l
bGVtZW50LHRoaXMub3ZlcmVkLGFdKTt0aGlzLm92ZXJlZD1udWxsO3JldHVybiB0
aGlzLnBhcmVudChhKX19KTtFbGVtZW50LmltcGxlbWVudCh7bWFrZURyYWdnYWJs
ZTpmdW5jdGlvbihhKXt2YXIgYj1uZXcgRHJhZy5Nb3ZlKHRoaXMsYSk7dGhpcy5z
dG9yZSgiZHJhZ2dlciIsYik7cmV0dXJuIGJ9fSk7Q2xhc3MuTXV0YXRvcnMuQmlu
ZHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O0NsYXNzLk11dGF0b3JzLmluaXRpYWxp
emU9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7JHNwbGF0KHRoaXMuQmlu
ZHMpLmVhY2goZnVuY3Rpb24oYil7dmFyIGM9dGhpc1tiXTtpZihjKXt0aGlzW2Jd
PWMuYmluZCh0aGlzKX19LHRoaXMpO3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1l
bnRzKX19O0VsZW1lbnQuaW1wbGVtZW50KHttZWFzdXJlOmZ1bmN0aW9uKGUpe3Zh
ciBnPWZ1bmN0aW9uKGgpe3JldHVybiAhISghaHx8aC5vZmZzZXRIZWlnaHR8fGgu
b2Zmc2V0V2lkdGgpfTtpZihnKHRoaXMpKXtyZXR1cm4gZS5hcHBseSh0aGlzKX12
YXIgZD10aGlzLmdldFBhcmVudCgpLGY9W10sYj1bXTt3aGlsZSghZyhkKSYmZCE9
ZG9jdW1lbnQuYm9keSl7Yi5wdXNoKGQuZXhwb3NlKCkpO2Q9ZC5nZXRQYXJlbnQo
KX12YXIgYz10aGlzLmV4cG9zZSgpO3ZhciBhPWUuYXBwbHkodGhpcyk7YygpO2Iu
ZWFjaChmdW5jdGlvbihoKXtoKCl9KTtyZXR1cm4gYX0sZXhwb3NlOmZ1bmN0aW9u
KCl7aWYodGhpcy5nZXRTdHlsZSgiZGlzcGxheSIpIT0ibm9uZSIpe3JldHVybiAk
ZW1wdHl9dmFyIGE9dGhpcy5zdHlsZS5jc3NUZXh0O3RoaXMuc2V0U3R5bGVzKHtk
aXNwbGF5OiJibG9jayIscG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJo
aWRkZW4ifSk7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5jc3NUZXh0PWF9
LmJpbmQodGhpcyl9LGdldERpbWVuc2lvbnM6ZnVuY3Rpb24oYSl7YT0kbWVyZ2Uo
e2NvbXB1dGVTaXplOmZhbHNlfSxhKTt2YXIgZj17fTt2YXIgZD1mdW5jdGlvbihn
LGUpe3JldHVybihlLmNvbXB1dGVTaXplKT9nLmdldENvbXB1dGVkU2l6ZShlKTpn
LmdldFNpemUoKX07dmFyIGI9dGhpcy5nZXRQYXJlbnQoImJvZHkiKTtpZihiJiZ0
aGlzLmdldFN0eWxlKCJkaXNwbGF5Iik9PSJub25lIil7Zj10aGlzLm1lYXN1cmUo
ZnVuY3Rpb24oKXtyZXR1cm4gZCh0aGlzLGEpfSl9ZWxzZXtpZihiKXt0cnl7Zj1k
KHRoaXMsYSl9Y2F0Y2goYyl7fX1lbHNle2Y9e3g6MCx5OjB9fX1yZXR1cm4gJGNo
ayhmLngpPyRleHRlbmQoZix7d2lkdGg6Zi54LGhlaWdodDpmLnl9KTokZXh0ZW5k
KGYse3g6Zi53aWR0aCx5OmYuaGVpZ2h0fSl9LGdldENvbXB1dGVkU2l6ZTpmdW5j
dGlvbihhKXthPSRtZXJnZSh7c3R5bGVzOlsicGFkZGluZyIsImJvcmRlciJdLHBs
YWluczp7aGVpZ2h0OlsidG9wIiwiYm90dG9tIl0sd2lkdGg6WyJsZWZ0Iiwicmln
aHQiXX0sbW9kZToiYm90aCJ9LGEpO3ZhciBjPXt3aWR0aDowLGhlaWdodDowfTtz
d2l0Y2goYS5tb2RlKXtjYXNlInZlcnRpY2FsIjpkZWxldGUgYy53aWR0aDtkZWxl
dGUgYS5wbGFpbnMud2lkdGg7YnJlYWs7Y2FzZSJob3Jpem9udGFsIjpkZWxldGUg
Yy5oZWlnaHQ7ZGVsZXRlIGEucGxhaW5zLmhlaWdodDticmVha312YXIgYj1bXTsk
ZWFjaChhLnBsYWlucyxmdW5jdGlvbihnLGYpe2cuZWFjaChmdW5jdGlvbihoKXth
LnN0eWxlcy5lYWNoKGZ1bmN0aW9uKGkpe2IucHVzaCgoaT09ImJvcmRlciIpP2kr
Ii0iK2grIi13aWR0aCI6aSsiLSIraCl9KX0pfSk7dmFyIGU9e307Yi5lYWNoKGZ1
bmN0aW9uKGYpe2VbZl09dGhpcy5nZXRDb21wdXRlZFN0eWxlKGYpfSx0aGlzKTt2
YXIgZD1bXTskZWFjaChhLnBsYWlucyxmdW5jdGlvbihnLGYpe3ZhciBoPWYuY2Fw
aXRhbGl6ZSgpO2NbInRvdGFsIitoXT1jWyJjb21wdXRlZCIraF09MDtnLmVhY2go
ZnVuY3Rpb24oaSl7Y1siY29tcHV0ZWQiK2kuY2FwaXRhbGl6ZSgpXT0wO2IuZWFj
aChmdW5jdGlvbihrLGope2lmKGsudGVzdChpKSl7ZVtrXT1lW2tdLnRvSW50KCl8
fDA7Y1sidG90YWwiK2hdPWNbInRvdGFsIitoXStlW2tdO2NbImNvbXB1dGVkIitp
LmNhcGl0YWxpemUoKV09Y1siY29tcHV0ZWQiK2kuY2FwaXRhbGl6ZSgpXStlW2td
fWlmKGsudGVzdChpKSYmZiE9ayYmKGsudGVzdCgiYm9yZGVyIil8fGsudGVzdCgi
cGFkZGluZyIpKSYmIWQuY29udGFpbnMoaykpe2QucHVzaChrKTtjWyJjb21wdXRl
ZCIraF09Y1siY29tcHV0ZWQiK2hdLWVba119fSl9KX0pO1siV2lkdGgiLCJIZWln
aHQiXS5lYWNoKGZ1bmN0aW9uKGcpe3ZhciBmPWcudG9Mb3dlckNhc2UoKTtpZigh
JGNoayhjW2ZdKSl7cmV0dXJufWNbZl09Y1tmXSt0aGlzWyJvZmZzZXQiK2ddK2Nb
ImNvbXB1dGVkIitnXTtjWyJ0b3RhbCIrZ109Y1tmXStjWyJ0b3RhbCIrZ107ZGVs
ZXRlIGNbImNvbXB1dGVkIitnXX0sdGhpcyk7cmV0dXJuICRleHRlbmQoZSxjKX19
KTt2YXIgU2xpZGVyPW5ldyBDbGFzcyh7SW1wbGVtZW50czpbRXZlbnRzLE9wdGlv
bnNdLEJpbmRzOlsiY2xpY2tlZEVsZW1lbnQiLCJkcmFnZ2VkS25vYiIsInNjcm9s
bGVkRWxlbWVudCJdLG9wdGlvbnM6e29uVGljazpmdW5jdGlvbihhKXtpZih0aGlz
Lm9wdGlvbnMuc25hcCl7YT10aGlzLnRvUG9zaXRpb24odGhpcy5zdGVwKX10aGlz
Lmtub2Iuc2V0U3R5bGUodGhpcy5wcm9wZXJ0eSxhKX0saW5pdGlhbFN0ZXA6MCxz
bmFwOmZhbHNlLG9mZnNldDowLHJhbmdlOmZhbHNlLHdoZWVsOmZhbHNlLHN0ZXBz
OjEwMCxtb2RlOiJob3Jpem9udGFsIn0saW5pdGlhbGl6ZTpmdW5jdGlvbihmLGEs
ZSl7dGhpcy5zZXRPcHRpb25zKGUpO3RoaXMuZWxlbWVudD1kb2N1bWVudC5pZChm
KTt0aGlzLmtub2I9ZG9jdW1lbnQuaWQoYSk7dGhpcy5wcmV2aW91c0NoYW5nZT10
aGlzLnByZXZpb3VzRW5kPXRoaXMuc3RlcD0tMTt2YXIgZyxiPXt9LGQ9e3g6ZmFs
c2UseTpmYWxzZX07c3dpdGNoKHRoaXMub3B0aW9ucy5tb2RlKXtjYXNlInZlcnRp
Y2FsIjp0aGlzLmF4aXM9InkiO3RoaXMucHJvcGVydHk9InRvcCI7Zz0ib2Zmc2V0
SGVpZ2h0IjticmVhaztjYXNlImhvcml6b250YWwiOnRoaXMuYXhpcz0ieCI7dGhp
cy5wcm9wZXJ0eT0ibGVmdCI7Zz0ib2Zmc2V0V2lkdGgifXRoaXMuZnVsbD10aGlz
LmVsZW1lbnQubWVhc3VyZShmdW5jdGlvbigpe3RoaXMuaGFsZj10aGlzLmtub2Jb
Z10vMjtyZXR1cm4gdGhpcy5lbGVtZW50W2ddLXRoaXMua25vYltnXSsodGhpcy5v
cHRpb25zLm9mZnNldCoyKX0uYmluZCh0aGlzKSk7dGhpcy5taW49JGNoayh0aGlz
Lm9wdGlvbnMucmFuZ2VbMF0pP3RoaXMub3B0aW9ucy5yYW5nZVswXTowO3RoaXMu
bWF4PSRjaGsodGhpcy5vcHRpb25zLnJhbmdlWzFdKT90aGlzLm9wdGlvbnMucmFu
Z2VbMV06dGhpcy5vcHRpb25zLnN0ZXBzO3RoaXMucmFuZ2U9dGhpcy5tYXgtdGhp
cy5taW47dGhpcy5zdGVwcz10aGlzLm9wdGlvbnMuc3RlcHN8fHRoaXMuZnVsbDt0
aGlzLnN0ZXBTaXplPU1hdGguYWJzKHRoaXMucmFuZ2UpL3RoaXMuc3RlcHM7dGhp
cy5zdGVwV2lkdGg9dGhpcy5zdGVwU2l6ZSp0aGlzLmZ1bGwvTWF0aC5hYnModGhp
cy5yYW5nZSk7dGhpcy5rbm9iLnNldFN0eWxlKCJwb3NpdGlvbiIsInJlbGF0aXZl
Iikuc2V0U3R5bGUodGhpcy5wcm9wZXJ0eSx0aGlzLm9wdGlvbnMuaW5pdGlhbFN0
ZXA/dGhpcy50b1Bvc2l0aW9uKHRoaXMub3B0aW9ucy5pbml0aWFsU3RlcCk6LXRo
aXMub3B0aW9ucy5vZmZzZXQpO2RbdGhpcy5heGlzXT10aGlzLnByb3BlcnR5O2Jb
dGhpcy5heGlzXT1bLXRoaXMub3B0aW9ucy5vZmZzZXQsdGhpcy5mdWxsLXRoaXMu
b3B0aW9ucy5vZmZzZXRdO3ZhciBjPXtzbmFwOjAsbGltaXQ6Yixtb2RpZmllcnM6
ZCxvbkRyYWc6dGhpcy5kcmFnZ2VkS25vYixvblN0YXJ0OnRoaXMuZHJhZ2dlZEtu
b2Isb25CZWZvcmVTdGFydDooZnVuY3Rpb24oKXt0aGlzLmlzRHJhZ2dpbmc9dHJ1
ZX0pLmJpbmQodGhpcyksb25DYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLmlzRHJhZ2dp
bmc9ZmFsc2V9LmJpbmQodGhpcyksb25Db21wbGV0ZTpmdW5jdGlvbigpe3RoaXMu
aXNEcmFnZ2luZz1mYWxzZTt0aGlzLmRyYWdnZWRLbm9iKCk7dGhpcy5lbmQoKX0u
YmluZCh0aGlzKX07aWYodGhpcy5vcHRpb25zLnNuYXApe2MuZ3JpZD1NYXRoLmNl
aWwodGhpcy5zdGVwV2lkdGgpO2MubGltaXRbdGhpcy5heGlzXVsxXT10aGlzLmZ1
bGx9dGhpcy5kcmFnPW5ldyBEcmFnKHRoaXMua25vYixjKTt0aGlzLmF0dGFjaCgp
fSxhdHRhY2g6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuYWRkRXZlbnQoIm1vdXNl
ZG93biIsdGhpcy5jbGlja2VkRWxlbWVudCk7aWYodGhpcy5vcHRpb25zLndoZWVs
KXt0aGlzLmVsZW1lbnQuYWRkRXZlbnQoIm1vdXNld2hlZWwiLHRoaXMuc2Nyb2xs
ZWRFbGVtZW50KX10aGlzLmRyYWcuYXR0YWNoKCk7cmV0dXJuIHRoaXN9LGRldGFj
aDpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVFdmVudCgibW91c2Vkb3du
Iix0aGlzLmNsaWNrZWRFbGVtZW50KTt0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnQo
Im1vdXNld2hlZWwiLHRoaXMuc2Nyb2xsZWRFbGVtZW50KTt0aGlzLmRyYWcuZGV0
YWNoKCk7cmV0dXJuIHRoaXN9LHNldDpmdW5jdGlvbihhKXtpZighKCh0aGlzLnJh
bmdlPjApXihhPHRoaXMubWluKSkpe2E9dGhpcy5taW59aWYoISgodGhpcy5yYW5n
ZT4wKV4oYT50aGlzLm1heCkpKXthPXRoaXMubWF4fXRoaXMuc3RlcD1NYXRoLnJv
dW5kKGEpO3RoaXMuY2hlY2tTdGVwKCk7dGhpcy5maXJlRXZlbnQoInRpY2siLHRo
aXMudG9Qb3NpdGlvbih0aGlzLnN0ZXApKTt0aGlzLmVuZCgpO3JldHVybiB0aGlz
fSxjbGlja2VkRWxlbWVudDpmdW5jdGlvbihjKXtpZih0aGlzLmlzRHJhZ2dpbmd8
fGMudGFyZ2V0PT10aGlzLmtub2Ipe3JldHVybn12YXIgYj10aGlzLnJhbmdlPDA/
LTE6MTt2YXIgYT1jLnBhZ2VbdGhpcy5heGlzXS10aGlzLmVsZW1lbnQuZ2V0UG9z
aXRpb24oKVt0aGlzLmF4aXNdLXRoaXMuaGFsZjthPWEubGltaXQoLXRoaXMub3B0
aW9ucy5vZmZzZXQsdGhpcy5mdWxsLXRoaXMub3B0aW9ucy5vZmZzZXQpO3RoaXMu
c3RlcD1NYXRoLnJvdW5kKHRoaXMubWluK2IqdGhpcy50b1N0ZXAoYSkpO3RoaXMu
Y2hlY2tTdGVwKCk7dGhpcy5maXJlRXZlbnQoInRpY2siLGEpO3RoaXMuZW5kKCl9
LHNjcm9sbGVkRWxlbWVudDpmdW5jdGlvbihhKXt2YXIgYj0odGhpcy5vcHRpb25z
Lm1vZGU9PSJob3Jpem9udGFsIik/KGEud2hlZWw8MCk6KGEud2hlZWw+MCk7dGhp
cy5zZXQoYj90aGlzLnN0ZXAtdGhpcy5zdGVwU2l6ZTp0aGlzLnN0ZXArdGhpcy5z
dGVwU2l6ZSk7YS5zdG9wKCl9LGRyYWdnZWRLbm9iOmZ1bmN0aW9uKCl7dmFyIGI9
dGhpcy5yYW5nZTwwPy0xOjE7dmFyIGE9dGhpcy5kcmFnLnZhbHVlLm5vd1t0aGlz
LmF4aXNdO2E9YS5saW1pdCgtdGhpcy5vcHRpb25zLm9mZnNldCx0aGlzLmZ1bGwt
dGhpcy5vcHRpb25zLm9mZnNldCk7dGhpcy5zdGVwPU1hdGgucm91bmQodGhpcy5t
aW4rYip0aGlzLnRvU3RlcChhKSk7dGhpcy5jaGVja1N0ZXAoKX0sY2hlY2tTdGVw
OmZ1bmN0aW9uKCl7aWYodGhpcy5wcmV2aW91c0NoYW5nZSE9dGhpcy5zdGVwKXt0
aGlzLnByZXZpb3VzQ2hhbmdlPXRoaXMuc3RlcDt0aGlzLmZpcmVFdmVudCgiY2hh
bmdlIix0aGlzLnN0ZXApfX0sZW5kOmZ1bmN0aW9uKCl7aWYodGhpcy5wcmV2aW91
c0VuZCE9PXRoaXMuc3RlcCl7dGhpcy5wcmV2aW91c0VuZD10aGlzLnN0ZXA7dGhp
cy5maXJlRXZlbnQoImNvbXBsZXRlIix0aGlzLnN0ZXArIiIpfX0sdG9TdGVwOmZ1
bmN0aW9uKGEpe3ZhciBiPShhK3RoaXMub3B0aW9ucy5vZmZzZXQpKnRoaXMuc3Rl
cFNpemUvdGhpcy5mdWxsKnRoaXMuc3RlcHM7cmV0dXJuIHRoaXMub3B0aW9ucy5z
dGVwcz9NYXRoLnJvdW5kKGItPWIldGhpcy5zdGVwU2l6ZSk6Yn0sdG9Qb3NpdGlv
bjpmdW5jdGlvbihhKXtyZXR1cm4odGhpcy5mdWxsKk1hdGguYWJzKHRoaXMubWlu
LWEpKS8odGhpcy5zdGVwcyp0aGlzLnN0ZXBTaXplKS10aGlzLm9wdGlvbnMub2Zm
c2V0fX0pO3ZhciBTb3J0YWJsZXM9bmV3IENsYXNzKHtJbXBsZW1lbnRzOltFdmVu
dHMsT3B0aW9uc10sb3B0aW9uczp7c25hcDo0LG9wYWNpdHk6MSxjbG9uZTpmYWxz
ZSxyZXZlcnQ6ZmFsc2UsaGFuZGxlOmZhbHNlLGNvbnN0cmFpbjpmYWxzZX0saW5p
dGlhbGl6ZTpmdW5jdGlvbihhLGIpe3RoaXMuc2V0T3B0aW9ucyhiKTt0aGlzLmVs
ZW1lbnRzPVtdO3RoaXMubGlzdHM9W107dGhpcy5pZGxlPXRydWU7dGhpcy5hZGRM
aXN0cygkJChkb2N1bWVudC5pZChhKXx8YSkpO2lmKCF0aGlzLm9wdGlvbnMuY2xv
bmUpe3RoaXMub3B0aW9ucy5yZXZlcnQ9ZmFsc2V9aWYodGhpcy5vcHRpb25zLnJl
dmVydCl7dGhpcy5lZmZlY3Q9bmV3IEZ4Lk1vcnBoKG51bGwsJG1lcmdlKHtkdXJh
dGlvbjoyNTAsbGluazoiY2FuY2VsIn0sdGhpcy5vcHRpb25zLnJldmVydCkpfX0s
YXR0YWNoOmZ1bmN0aW9uKCl7dGhpcy5hZGRMaXN0cyh0aGlzLmxpc3RzKTtyZXR1
cm4gdGhpc30sZGV0YWNoOmZ1bmN0aW9uKCl7dGhpcy5saXN0cz10aGlzLnJlbW92
ZUxpc3RzKHRoaXMubGlzdHMpO3JldHVybiB0aGlzfSxhZGRJdGVtczpmdW5jdGlv
bigpe0FycmF5LmZsYXR0ZW4oYXJndW1lbnRzKS5lYWNoKGZ1bmN0aW9uKGEpe3Ro
aXMuZWxlbWVudHMucHVzaChhKTt2YXIgYj1hLnJldHJpZXZlKCJzb3J0YWJsZXM6
c3RhcnQiLHRoaXMuc3RhcnQuYmluZFdpdGhFdmVudCh0aGlzLGEpKTsodGhpcy5v
cHRpb25zLmhhbmRsZT9hLmdldEVsZW1lbnQodGhpcy5vcHRpb25zLmhhbmRsZSl8
fGE6YSkuYWRkRXZlbnQoIm1vdXNlZG93biIsYil9LHRoaXMpO3JldHVybiB0aGlz
fSxhZGRMaXN0czpmdW5jdGlvbigpe0FycmF5LmZsYXR0ZW4oYXJndW1lbnRzKS5l
YWNoKGZ1bmN0aW9uKGEpe3RoaXMubGlzdHMucHVzaChhKTt0aGlzLmFkZEl0ZW1z
KGEuZ2V0Q2hpbGRyZW4oKSl9LHRoaXMpO3JldHVybiB0aGlzfSxyZW1vdmVJdGVt
czpmdW5jdGlvbigpe3JldHVybiAkJChBcnJheS5mbGF0dGVuKGFyZ3VtZW50cyku
bWFwKGZ1bmN0aW9uKGEpe3RoaXMuZWxlbWVudHMuZXJhc2UoYSk7dmFyIGI9YS5y
ZXRyaWV2ZSgic29ydGFibGVzOnN0YXJ0Iik7KHRoaXMub3B0aW9ucy5oYW5kbGU/
YS5nZXRFbGVtZW50KHRoaXMub3B0aW9ucy5oYW5kbGUpfHxhOmEpLnJlbW92ZUV2
ZW50KCJtb3VzZWRvd24iLGIpO3JldHVybiBhfSx0aGlzKSl9LHJlbW92ZUxpc3Rz
OmZ1bmN0aW9uKCl7cmV0dXJuICQkKEFycmF5LmZsYXR0ZW4oYXJndW1lbnRzKS5t
YXAoZnVuY3Rpb24oYSl7dGhpcy5saXN0cy5lcmFzZShhKTt0aGlzLnJlbW92ZUl0
ZW1zKGEuZ2V0Q2hpbGRyZW4oKSk7cmV0dXJuIGF9LHRoaXMpKX0sZ2V0Q2xvbmU6
ZnVuY3Rpb24oYixhKXtpZighdGhpcy5vcHRpb25zLmNsb25lKXtyZXR1cm4gbmV3
IEVsZW1lbnQoImRpdiIpLmluamVjdChkb2N1bWVudC5ib2R5KX1pZigkdHlwZSh0
aGlzLm9wdGlvbnMuY2xvbmUpPT0iZnVuY3Rpb24iKXtyZXR1cm4gdGhpcy5vcHRp
b25zLmNsb25lLmNhbGwodGhpcyxiLGEsdGhpcy5saXN0KX1yZXR1cm4gYS5jbG9u
ZSh0cnVlKS5zZXRTdHlsZXMoe21hcmdpbjoiMHB4Iixwb3NpdGlvbjoiYWJzb2x1
dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsd2lkdGg6YS5nZXRTdHlsZSgid2lkdGgi
KX0pLmluamVjdCh0aGlzLmxpc3QpLnNldFBvc2l0aW9uKGEuZ2V0UG9zaXRpb24o
YS5nZXRPZmZzZXRQYXJlbnQoKSkpfSxnZXREcm9wcGFibGVzOmZ1bmN0aW9uKCl7
dmFyIGE9dGhpcy5saXN0LmdldENoaWxkcmVuKCk7aWYoIXRoaXMub3B0aW9ucy5j
b25zdHJhaW4pe2E9dGhpcy5saXN0cy5jb25jYXQoYSkuZXJhc2UodGhpcy5saXN0
KX1yZXR1cm4gYS5lcmFzZSh0aGlzLmNsb25lKS5lcmFzZSh0aGlzLmVsZW1lbnQp
fSxpbnNlcnQ6ZnVuY3Rpb24oYyxiKXt2YXIgYT0iaW5zaWRlIjtpZih0aGlzLmxp
c3RzLmNvbnRhaW5zKGIpKXt0aGlzLmxpc3Q9Yjt0aGlzLmRyYWcuZHJvcHBhYmxl
cz10aGlzLmdldERyb3BwYWJsZXMoKX1lbHNle2E9dGhpcy5lbGVtZW50LmdldEFs
bFByZXZpb3VzKCkuY29udGFpbnMoYik/ImJlZm9yZSI6ImFmdGVyIn10aGlzLmVs
ZW1lbnQuaW5qZWN0KGIsYSk7dGhpcy5maXJlRXZlbnQoInNvcnQiLFt0aGlzLmVs
ZW1lbnQsdGhpcy5jbG9uZV0pfSxzdGFydDpmdW5jdGlvbihiLGEpe2lmKCF0aGlz
LmlkbGUpe3JldHVybn10aGlzLmlkbGU9ZmFsc2U7dGhpcy5lbGVtZW50PWE7dGhp
cy5vcGFjaXR5PWEuZ2V0KCJvcGFjaXR5Iik7dGhpcy5saXN0PWEuZ2V0UGFyZW50
KCk7dGhpcy5jbG9uZT10aGlzLmdldENsb25lKGIsYSk7dGhpcy5kcmFnPW5ldyBE
cmFnLk1vdmUodGhpcy5jbG9uZSx7c25hcDp0aGlzLm9wdGlvbnMuc25hcCxjb250
YWluZXI6dGhpcy5vcHRpb25zLmNvbnN0cmFpbiYmdGhpcy5lbGVtZW50LmdldFBh
cmVudCgpLGRyb3BwYWJsZXM6dGhpcy5nZXREcm9wcGFibGVzKCksb25TbmFwOmZ1
bmN0aW9uKCl7Yi5zdG9wKCk7dGhpcy5jbG9uZS5zZXRTdHlsZSgidmlzaWJpbGl0
eSIsInZpc2libGUiKTt0aGlzLmVsZW1lbnQuc2V0KCJvcGFjaXR5Iix0aGlzLm9w
dGlvbnMub3BhY2l0eXx8MCk7dGhpcy5maXJlRXZlbnQoInN0YXJ0IixbdGhpcy5l
bGVtZW50LHRoaXMuY2xvbmVdKX0uYmluZCh0aGlzKSxvbkVudGVyOnRoaXMuaW5z
ZXJ0LmJpbmQodGhpcyksb25DYW5jZWw6dGhpcy5yZXNldC5iaW5kKHRoaXMpLG9u
Q29tcGxldGU6dGhpcy5lbmQuYmluZCh0aGlzKX0pO3RoaXMuY2xvbmUuaW5qZWN0
KHRoaXMuZWxlbWVudCwiYmVmb3JlIik7dGhpcy5kcmFnLnN0YXJ0KGIpfSxlbmQ6
ZnVuY3Rpb24oKXt0aGlzLmRyYWcuZGV0YWNoKCk7dGhpcy5lbGVtZW50LnNldCgi
b3BhY2l0eSIsdGhpcy5vcGFjaXR5KTtpZih0aGlzLmVmZmVjdCl7dmFyIGE9dGhp
cy5lbGVtZW50LmdldFN0eWxlcygid2lkdGgiLCJoZWlnaHQiKTt2YXIgYj10aGlz
LmNsb25lLmNvbXB1dGVQb3NpdGlvbih0aGlzLmVsZW1lbnQuZ2V0UG9zaXRpb24o
dGhpcy5jbG9uZS5vZmZzZXRQYXJlbnQpKTt0aGlzLmVmZmVjdC5lbGVtZW50PXRo
aXMuY2xvbmU7dGhpcy5lZmZlY3Quc3RhcnQoe3RvcDpiLnRvcCxsZWZ0OmIubGVm
dCx3aWR0aDphLndpZHRoLGhlaWdodDphLmhlaWdodCxvcGFjaXR5OjAuMjV9KS5j
aGFpbih0aGlzLnJlc2V0LmJpbmQodGhpcykpfWVsc2V7dGhpcy5yZXNldCgpfX0s
cmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmlkbGU9dHJ1ZTt0aGlzLmNsb25lLmRlc3Ry
b3koKTt0aGlzLmZpcmVFdmVudCgiY29tcGxldGUiLHRoaXMuZWxlbWVudCl9LHNl
cmlhbGl6ZTpmdW5jdGlvbigpe3ZhciBjPUFycmF5LmxpbmsoYXJndW1lbnRzLHtt
b2RpZmllcjpGdW5jdGlvbi50eXBlLGluZGV4OiRkZWZpbmVkfSk7dmFyIGI9dGhp
cy5saXN0cy5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQuZ2V0Q2hpbGRyZW4oKS5t
YXAoYy5tb2RpZmllcnx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0KCJpZCIpfSx0
aGlzKX0sdGhpcyk7dmFyIGE9Yy5pbmRleDtpZih0aGlzLmxpc3RzLmxlbmd0aD09
MSl7YT0wfXJldHVybiAkY2hrKGEpJiZhPj0wJiZhPHRoaXMubGlzdHMubGVuZ3Ro
P2JbYV06Yn19KTt2YXIgQ29sb3I9bmV3IE5hdGl2ZSh7aW5pdGlhbGl6ZTpmdW5j
dGlvbihiLGMpe2lmKGFyZ3VtZW50cy5sZW5ndGg+PTMpe2M9InJnYiI7Yj1BcnJh
eS5zbGljZShhcmd1bWVudHMsMCwzKX1lbHNle2lmKHR5cGVvZiBiPT0ic3RyaW5n
Iil7aWYoYi5tYXRjaCgvcmdiLykpe2I9Yi5yZ2JUb0hleCgpLmhleFRvUmdiKHRy
dWUpfWVsc2V7aWYoYi5tYXRjaCgvaHNiLykpe2I9Yi5oc2JUb1JnYigpfWVsc2V7
Yj1iLmhleFRvUmdiKHRydWUpfX19fWM9Y3x8InJnYiI7c3dpdGNoKGMpe2Nhc2Ui
aHNiIjp2YXIgYT1iO2I9Yi5oc2JUb1JnYigpO2IuaHNiPWE7YnJlYWs7Y2FzZSJo
ZXgiOmI9Yi5oZXhUb1JnYih0cnVlKTticmVha31iLnJnYj1iLnNsaWNlKDAsMyk7
Yi5oc2I9Yi5oc2J8fGIucmdiVG9Ic2IoKTtiLmhleD1iLnJnYlRvSGV4KCk7cmV0
dXJuICRleHRlbmQoYix0aGlzKX19KTtDb2xvci5pbXBsZW1lbnQoe21peDpmdW5j
dGlvbigpe3ZhciBhPUFycmF5LnNsaWNlKGFyZ3VtZW50cyk7dmFyIGM9KCR0eXBl
KGEuZ2V0TGFzdCgpKT09Im51bWJlciIpP2EucG9wKCk6NTA7dmFyIGI9dGhpcy5z
bGljZSgpO2EuZWFjaChmdW5jdGlvbihkKXtkPW5ldyBDb2xvcihkKTtmb3IodmFy
IGU9MDtlPDM7ZSsrKXtiW2VdPU1hdGgucm91bmQoKGJbZV0vMTAwKigxMDAtYykp
KyhkW2VdLzEwMCpjKSl9fSk7cmV0dXJuIG5ldyBDb2xvcihiLCJyZ2IiKX0saW52
ZXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBDb2xvcih0aGlzLm1hcChmdW5jdGlv
bihhKXtyZXR1cm4gMjU1LWF9KSl9LHNldEh1ZTpmdW5jdGlvbihhKXtyZXR1cm4g
bmV3IENvbG9yKFthLHRoaXMuaHNiWzFdLHRoaXMuaHNiWzJdXSwiaHNiIil9LHNl
dFNhdHVyYXRpb246ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBDb2xvcihbdGhpcy5o
c2JbMF0sYSx0aGlzLmhzYlsyXV0sImhzYiIpfSxzZXRCcmlnaHRuZXNzOmZ1bmN0
aW9uKGEpe3JldHVybiBuZXcgQ29sb3IoW3RoaXMuaHNiWzBdLHRoaXMuaHNiWzFd
LGFdLCJoc2IiKX19KTt2YXIgJFJHQj1mdW5jdGlvbihkLGMsYSl7cmV0dXJuIG5l
dyBDb2xvcihbZCxjLGFdLCJyZ2IiKX07dmFyICRIU0I9ZnVuY3Rpb24oZCxjLGEp
e3JldHVybiBuZXcgQ29sb3IoW2QsYyxhXSwiaHNiIil9O3ZhciAkSEVYPWZ1bmN0
aW9uKGEpe3JldHVybiBuZXcgQ29sb3IoYSwiaGV4Iil9O0FycmF5LmltcGxlbWVu
dCh7cmdiVG9Ic2I6ZnVuY3Rpb24oKXt2YXIgYj10aGlzWzBdLGM9dGhpc1sxXSxq
PXRoaXNbMl0sZz0wO3ZhciBpPU1hdGgubWF4KGIsYyxqKSxlPU1hdGgubWluKGIs
YyxqKTt2YXIgaz1pLWU7dmFyIGg9aS8yNTUsZj0oaSE9MCk/ay9pOjA7aWYoZiE9
MCl7dmFyIGQ9KGktYikvazt2YXIgYT0oaS1jKS9rO3ZhciBsPShpLWopL2s7aWYo
Yj09aSl7Zz1sLWF9ZWxzZXtpZihjPT1pKXtnPTIrZC1sfWVsc2V7Zz00K2EtZH19
Zy89NjtpZihnPDApe2crK319cmV0dXJuW01hdGgucm91bmQoZyozNjApLE1hdGgu
cm91bmQoZioxMDApLE1hdGgucm91bmQoaCoxMDApXX0saHNiVG9SZ2I6ZnVuY3Rp
b24oKXt2YXIgYz1NYXRoLnJvdW5kKHRoaXNbMl0vMTAwKjI1NSk7aWYodGhpc1sx
XT09MCl7cmV0dXJuW2MsYyxjXX1lbHNle3ZhciBhPXRoaXNbMF0lMzYwO3ZhciBl
PWElNjA7dmFyIGc9TWF0aC5yb3VuZCgodGhpc1syXSooMTAwLXRoaXNbMV0pKS8x
MDAwMCoyNTUpO3ZhciBkPU1hdGgucm91bmQoKHRoaXNbMl0qKDYwMDAtdGhpc1sx
XSplKSkvNjAwMDAwKjI1NSk7dmFyIGI9TWF0aC5yb3VuZCgodGhpc1syXSooNjAw
MC10aGlzWzFdKig2MC1lKSkpLzYwMDAwMCoyNTUpO3N3aXRjaChNYXRoLmZsb29y
KGEvNjApKXtjYXNlIDA6cmV0dXJuW2MsYixnXTtjYXNlIDE6cmV0dXJuW2QsYyxn
XTtjYXNlIDI6cmV0dXJuW2csYyxiXTtjYXNlIDM6cmV0dXJuW2csZCxjXTtjYXNl
IDQ6cmV0dXJuW2IsZyxjXTtjYXNlIDU6cmV0dXJuW2MsZyxkXX19cmV0dXJuIGZh
bHNlfX0pO1N0cmluZy5pbXBsZW1lbnQoe3JnYlRvSHNiOmZ1bmN0aW9uKCl7dmFy
IGE9dGhpcy5tYXRjaCgvXGR7MSwzfS9nKTtyZXR1cm4oYSk/YS5yZ2JUb0hzYigp
Om51bGx9LGhzYlRvUmdiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5tYXRjaCgvXGR7
MSwzfS9nKTtyZXR1cm4oYSk/YS5oc2JUb1JnYigpOm51bGx9fSk7dmFyIEdyb3Vw
PW5ldyBDbGFzcyh7aW5pdGlhbGl6ZTpmdW5jdGlvbigpe3RoaXMuaW5zdGFuY2Vz
PUFycmF5LmZsYXR0ZW4oYXJndW1lbnRzKTt0aGlzLmV2ZW50cz17fTt0aGlzLmNo
ZWNrZXI9e319LGFkZEV2ZW50OmZ1bmN0aW9uKGIsYSl7dGhpcy5jaGVja2VyW2Jd
PXRoaXMuY2hlY2tlcltiXXx8e307dGhpcy5ldmVudHNbYl09dGhpcy5ldmVudHNb
Yl18fFtdO2lmKHRoaXMuZXZlbnRzW2JdLmNvbnRhaW5zKGEpKXtyZXR1cm4gZmFs
c2V9ZWxzZXt0aGlzLmV2ZW50c1tiXS5wdXNoKGEpfXRoaXMuaW5zdGFuY2VzLmVh
Y2goZnVuY3Rpb24oYyxkKXtjLmFkZEV2ZW50KGIsdGhpcy5jaGVjay5iaW5kKHRo
aXMsW2IsYyxkXSkpfSx0aGlzKTtyZXR1cm4gdGhpc30sY2hlY2s6ZnVuY3Rpb24o
YyxhLGIpe3RoaXMuY2hlY2tlcltjXVtiXT10cnVlO3ZhciBkPXRoaXMuaW5zdGFu
Y2VzLmV2ZXJ5KGZ1bmN0aW9uKGYsZSl7cmV0dXJuIHRoaXMuY2hlY2tlcltjXVtl
XXx8ZmFsc2V9LHRoaXMpO2lmKCFkKXtyZXR1cm59dGhpcy5jaGVja2VyW2NdPXt9
O3RoaXMuZXZlbnRzW2NdLmVhY2goZnVuY3Rpb24oZSl7ZS5jYWxsKHRoaXMsdGhp
cy5pbnN0YW5jZXMsYSl9LHRoaXMpfX0pO0hhc2guQ29va2llPW5ldyBDbGFzcyh7
RXh0ZW5kczpDb29raWUsb3B0aW9uczp7YXV0b1NhdmU6dHJ1ZX0saW5pdGlhbGl6
ZTpmdW5jdGlvbihiLGEpe3RoaXMucGFyZW50KGIsYSk7dGhpcy5sb2FkKCl9LHNh
dmU6ZnVuY3Rpb24oKXt2YXIgYT1KU09OLmVuY29kZSh0aGlzLmhhc2gpO2lmKCFh
fHxhLmxlbmd0aD40MDk2KXtyZXR1cm4gZmFsc2V9aWYoYT09Int9Iil7dGhpcy5k
aXNwb3NlKCl9ZWxzZXt0aGlzLndyaXRlKGEpfXJldHVybiB0cnVlfSxsb2FkOmZ1
bmN0aW9uKCl7dGhpcy5oYXNoPW5ldyBIYXNoKEpTT04uZGVjb2RlKHRoaXMucmVh
ZCgpLHRydWUpKTtyZXR1cm4gdGhpc319KTtIYXNoLmVhY2goSGFzaC5wcm90b3R5
cGUsZnVuY3Rpb24oYixhKXtpZih0eXBlb2YgYj09ImZ1bmN0aW9uIil7SGFzaC5D
b29raWUuaW1wbGVtZW50KGEsZnVuY3Rpb24oKXt2YXIgYz1iLmFwcGx5KHRoaXMu
aGFzaCxhcmd1bWVudHMpO2lmKHRoaXMub3B0aW9ucy5hdXRvU2F2ZSl7dGhpcy5z
YXZlKCl9cmV0dXJuIGN9KX19KTt2YXIgU2Nyb2xsZXI9bmV3IENsYXNzKHtJbXBs
ZW1lbnRzOltFdmVudHMsT3B0aW9uc10sb3B0aW9uczp7YXJlYToyMCx2ZWxvY2l0
eToxLG9uQ2hhbmdlOmZ1bmN0aW9uKGEsYil7dGhpcy5lbGVtZW50LnNjcm9sbFRv
KGEsYil9LGZwczo1MH0saW5pdGlhbGl6ZTpmdW5jdGlvbihiLGEpe3RoaXMuc2V0
T3B0aW9ucyhhKTt0aGlzLmVsZW1lbnQ9ZG9jdW1lbnQuaWQoYik7dGhpcy5saXN0
ZW5lcj0oJHR5cGUodGhpcy5lbGVtZW50KSE9ImVsZW1lbnQiKT9kb2N1bWVudC5p
ZCh0aGlzLmVsZW1lbnQuZ2V0RG9jdW1lbnQoKS5ib2R5KTp0aGlzLmVsZW1lbnQ7
dGhpcy50aW1lcj1udWxsO3RoaXMuYm91bmQ9e2F0dGFjaDp0aGlzLmF0dGFjaC5i
aW5kKHRoaXMpLGRldGFjaDp0aGlzLmRldGFjaC5iaW5kKHRoaXMpLGdldENvb3Jk
czp0aGlzLmdldENvb3Jkcy5iaW5kKHRoaXMpfX0sc3RhcnQ6ZnVuY3Rpb24oKXt0
aGlzLmxpc3RlbmVyLmFkZEV2ZW50cyh7bW91c2VvdmVyOnRoaXMuYm91bmQuYXR0
YWNoLG1vdXNlb3V0OnRoaXMuYm91bmQuZGV0YWNofSl9LHN0b3A6ZnVuY3Rpb24o
KXt0aGlzLmxpc3RlbmVyLnJlbW92ZUV2ZW50cyh7bW91c2VvdmVyOnRoaXMuYm91
bmQuYXR0YWNoLG1vdXNlb3V0OnRoaXMuYm91bmQuZGV0YWNofSk7dGhpcy5kZXRh
Y2goKTt0aGlzLnRpbWVyPSRjbGVhcih0aGlzLnRpbWVyKX0sYXR0YWNoOmZ1bmN0
aW9uKCl7dGhpcy5saXN0ZW5lci5hZGRFdmVudCgibW91c2Vtb3ZlIix0aGlzLmJv
dW5kLmdldENvb3Jkcyl9LGRldGFjaDpmdW5jdGlvbigpe3RoaXMubGlzdGVuZXIu
cmVtb3ZlRXZlbnQoIm1vdXNlbW92ZSIsdGhpcy5ib3VuZC5nZXRDb29yZHMpO3Ro
aXMudGltZXI9JGNsZWFyKHRoaXMudGltZXIpfSxnZXRDb29yZHM6ZnVuY3Rpb24o
YSl7dGhpcy5wYWdlPSh0aGlzLmxpc3RlbmVyLmdldCgidGFnIik9PSJib2R5Iik/
YS5jbGllbnQ6YS5wYWdlO2lmKCF0aGlzLnRpbWVyKXt0aGlzLnRpbWVyPXRoaXMu
c2Nyb2xsLnBlcmlvZGljYWwoTWF0aC5yb3VuZCgxMDAwL3RoaXMub3B0aW9ucy5m
cHMpLHRoaXMpfX0sc2Nyb2xsOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50
LmdldFNpemUoKSxhPXRoaXMuZWxlbWVudC5nZXRTY3JvbGwoKSxmPXRoaXMuZWxl
bWVudC5nZXRPZmZzZXRzKCksYz10aGlzLmVsZW1lbnQuZ2V0U2Nyb2xsU2l6ZSgp
LGU9e3g6MCx5OjB9O2Zvcih2YXIgZCBpbiB0aGlzLnBhZ2Upe2lmKHRoaXMucGFn
ZVtkXTwodGhpcy5vcHRpb25zLmFyZWErZltkXSkmJmFbZF0hPTApe2VbZF09KHRo
aXMucGFnZVtkXS10aGlzLm9wdGlvbnMuYXJlYS1mW2RdKSp0aGlzLm9wdGlvbnMu
dmVsb2NpdHl9ZWxzZXtpZih0aGlzLnBhZ2VbZF0rdGhpcy5vcHRpb25zLmFyZWE+
KGJbZF0rZltkXSkmJmFbZF0rYltkXSE9Y1tkXSl7ZVtkXT0odGhpcy5wYWdlW2Rd
LWJbZF0rdGhpcy5vcHRpb25zLmFyZWEtZltkXSkqdGhpcy5vcHRpb25zLnZlbG9j
aXR5fX19aWYoZS55fHxlLngpe3RoaXMuZmlyZUV2ZW50KCJjaGFuZ2UiLFthLngr
ZS54LGEueStlLnldKX19fSk7KGZ1bmN0aW9uKCl7dmFyIGE9ZnVuY3Rpb24oYyxi
KXtyZXR1cm4oYyk/KCR0eXBlKGMpPT0iZnVuY3Rpb24iP2MoYik6Yi5nZXQoYykp
OiIifTt0aGlzLlRpcHM9bmV3IENsYXNzKHtJbXBsZW1lbnRzOltFdmVudHMsT3B0
aW9uc10sb3B0aW9uczp7b25TaG93OmZ1bmN0aW9uKCl7dGhpcy50aXAuc2V0U3R5
bGUoImRpc3BsYXkiLCJibG9jayIpfSxvbkhpZGU6ZnVuY3Rpb24oKXt0aGlzLnRp
cC5zZXRTdHlsZSgiZGlzcGxheSIsIm5vbmUiKX0sdGl0bGU6InRpdGxlIix0ZXh0
OmZ1bmN0aW9uKGIpe3JldHVybiBiLmdldCgicmVsIil8fGIuZ2V0KCJocmVmIil9
LHNob3dEZWxheToxMDAsaGlkZURlbGF5OjEwMCxjbGFzc05hbWU6InRpcC13cmFw
IixvZmZzZXQ6e3g6MTYseToxNn0sd2luZG93UGFkZGluZzp7eDowLHk6MH0sZml4
ZWQ6ZmFsc2V9LGluaXRpYWxpemU6ZnVuY3Rpb24oKXt2YXIgYj1BcnJheS5saW5r
KGFyZ3VtZW50cyx7b3B0aW9uczpPYmplY3QudHlwZSxlbGVtZW50czokZGVmaW5l
ZH0pO3RoaXMuc2V0T3B0aW9ucyhiLm9wdGlvbnMpO2lmKGIuZWxlbWVudHMpe3Ro
aXMuYXR0YWNoKGIuZWxlbWVudHMpfXRoaXMuY29udGFpbmVyPW5ldyBFbGVtZW50
KCJkaXYiLHsiY2xhc3MiOiJ0aXAifSl9LHRvRWxlbWVudDpmdW5jdGlvbigpe2lm
KHRoaXMudGlwKXtyZXR1cm4gdGhpcy50aXB9dGhpcy5jb250YWluZXI9bmV3IEVs
ZW1lbnQoImRpdiIseyJjbGFzcyI6InRpcCJ9KTtyZXR1cm4gdGhpcy50aXA9bmV3
IEVsZW1lbnQoImRpdiIseyJjbGFzcyI6dGhpcy5vcHRpb25zLmNsYXNzTmFtZSxz
dHlsZXM6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVmdDowfX0pLmFkb3B0
KG5ldyBFbGVtZW50KCJkaXYiLHsiY2xhc3MiOiJ0aXAtdG9wIn0pLHRoaXMuY29u
dGFpbmVyLG5ldyBFbGVtZW50KCJkaXYiLHsiY2xhc3MiOiJ0aXAtYm90dG9tIn0p
KS5pbmplY3QoZG9jdW1lbnQuYm9keSl9LGF0dGFjaDpmdW5jdGlvbihiKXskJChi
KS5lYWNoKGZ1bmN0aW9uKGQpe3ZhciBmPWEodGhpcy5vcHRpb25zLnRpdGxlLGQp
LGU9YSh0aGlzLm9wdGlvbnMudGV4dCxkKTtkLmVyYXNlKCJ0aXRsZSIpLnN0b3Jl
KCJ0aXA6bmF0aXZlIixmKS5yZXRyaWV2ZSgidGlwOnRpdGxlIixmKTtkLnJldHJp
ZXZlKCJ0aXA6dGV4dCIsZSk7dGhpcy5maXJlRXZlbnQoImF0dGFjaCIsW2RdKTt2
YXIgYz1bImVudGVyIiwibGVhdmUiXTtpZighdGhpcy5vcHRpb25zLmZpeGVkKXtj
LnB1c2goIm1vdmUiKX1jLmVhY2goZnVuY3Rpb24oaCl7dmFyIGc9ZC5yZXRyaWV2
ZSgidGlwOiIraCk7aWYoIWcpe2c9dGhpc1siZWxlbWVudCIraC5jYXBpdGFsaXpl
KCldLmJpbmRXaXRoRXZlbnQodGhpcyxkKX1kLnN0b3JlKCJ0aXA6IitoLGcpLmFk
ZEV2ZW50KCJtb3VzZSIraCxnKX0sdGhpcyl9LHRoaXMpO3JldHVybiB0aGlzfSxk
ZXRhY2g6ZnVuY3Rpb24oYil7JCQoYikuZWFjaChmdW5jdGlvbihkKXtbImVudGVy
IiwibGVhdmUiLCJtb3ZlIl0uZWFjaChmdW5jdGlvbihlKXtkLnJlbW92ZUV2ZW50
KCJtb3VzZSIrZSxkLnJldHJpZXZlKCJ0aXA6IitlKSkuZWxpbWluYXRlKCJ0aXA6
IitlKX0pO3RoaXMuZmlyZUV2ZW50KCJkZXRhY2giLFtkXSk7aWYodGhpcy5vcHRp
b25zLnRpdGxlPT0idGl0bGUiKXt2YXIgYz1kLnJldHJpZXZlKCJ0aXA6bmF0aXZl
Iik7aWYoYyl7ZC5zZXQoInRpdGxlIixjKX19fSx0aGlzKTtyZXR1cm4gdGhpc30s
ZWxlbWVudEVudGVyOmZ1bmN0aW9uKGMsYil7dGhpcy5jb250YWluZXIuZW1wdHko
KTtbInRpdGxlIiwidGV4dCJdLmVhY2goZnVuY3Rpb24oZSl7dmFyIGQ9Yi5yZXRy
aWV2ZSgidGlwOiIrZSk7aWYoZCl7dGhpcy5maWxsKG5ldyBFbGVtZW50KCJkaXYi
LHsiY2xhc3MiOiJ0aXAtIitlfSkuaW5qZWN0KHRoaXMuY29udGFpbmVyKSxkKX19
LHRoaXMpOyRjbGVhcih0aGlzLnRpbWVyKTt0aGlzLnRpbWVyPShmdW5jdGlvbigp
e3RoaXMuc2hvdyhiKTt0aGlzLnBvc2l0aW9uKCh0aGlzLm9wdGlvbnMuZml4ZWQp
P3twYWdlOmIuZ2V0UG9zaXRpb24oKX06Yyl9KS5kZWxheSh0aGlzLm9wdGlvbnMu
c2hvd0RlbGF5LHRoaXMpfSxlbGVtZW50TGVhdmU6ZnVuY3Rpb24oYyxiKXskY2xl
YXIodGhpcy50aW1lcik7dGhpcy50aW1lcj10aGlzLmhpZGUuZGVsYXkodGhpcy5v
cHRpb25zLmhpZGVEZWxheSx0aGlzLGIpO3RoaXMuZmlyZUZvclBhcmVudChjLGIp
fSxmaXJlRm9yUGFyZW50OmZ1bmN0aW9uKGMsYil7Yj1iLmdldFBhcmVudCgpO2lm
KCFifHxiPT1kb2N1bWVudC5ib2R5KXtyZXR1cm59aWYoYi5yZXRyaWV2ZSgidGlw
OmVudGVyIikpe2IuZmlyZUV2ZW50KCJtb3VzZWVudGVyIixjKX1lbHNle3RoaXMu
ZmlyZUZvclBhcmVudChjLGIpfX0sZWxlbWVudE1vdmU6ZnVuY3Rpb24oYyxiKXt0
aGlzLnBvc2l0aW9uKGMpfSxwb3NpdGlvbjpmdW5jdGlvbihlKXtpZighdGhpcy50
aXApe2RvY3VtZW50LmlkKHRoaXMpfXZhciBjPXdpbmRvdy5nZXRTaXplKCksYj13
aW5kb3cuZ2V0U2Nyb2xsKCksZj17eDp0aGlzLnRpcC5vZmZzZXRXaWR0aCx5OnRo
aXMudGlwLm9mZnNldEhlaWdodH0sZD17eDoibGVmdCIseToidG9wIn0sZz17fTtm
b3IodmFyIGggaW4gZCl7Z1tkW2hdXT1lLnBhZ2VbaF0rdGhpcy5vcHRpb25zLm9m
ZnNldFtoXTtpZigoZ1tkW2hdXStmW2hdLWJbaF0pPmNbaF0tdGhpcy5vcHRpb25z
LndpbmRvd1BhZGRpbmdbaF0pe2dbZFtoXV09ZS5wYWdlW2hdLXRoaXMub3B0aW9u
cy5vZmZzZXRbaF0tZltoXX19dGhpcy50aXAuc2V0U3R5bGVzKGcpfSxmaWxsOmZ1
bmN0aW9uKGIsYyl7aWYodHlwZW9mIGM9PSJzdHJpbmciKXtiLnNldCgiaHRtbCIs
Yyl9ZWxzZXtiLmFkb3B0KGMpfX0sc2hvdzpmdW5jdGlvbihiKXtpZighdGhpcy50
aXApe2RvY3VtZW50LmlkKHRoaXMpfXRoaXMuZmlyZUV2ZW50KCJzaG93IixbdGhp
cy50aXAsYl0pfSxoaWRlOmZ1bmN0aW9uKGIpe2lmKCF0aGlzLnRpcCl7ZG9jdW1l
bnQuaWQodGhpcyl9dGhpcy5maXJlRXZlbnQoImhpZGUiLFt0aGlzLnRpcCxiXSl9
fSl9KSgpO3ZhciBBc3NldD17amF2YXNjcmlwdDpmdW5jdGlvbihmLGQpe2Q9JGV4
dGVuZCh7b25sb2FkOiRlbXB0eSxkb2N1bWVudDpkb2N1bWVudCxjaGVjazokbGFt
YmRhKHRydWUpfSxkKTt2YXIgYj1uZXcgRWxlbWVudCgic2NyaXB0Iix7c3JjOmYs
dHlwZToidGV4dC9qYXZhc2NyaXB0In0pO3ZhciBlPWQub25sb2FkLmJpbmQoYiks
YT1kLmNoZWNrLGc9ZC5kb2N1bWVudDtkZWxldGUgZC5vbmxvYWQ7ZGVsZXRlIGQu
Y2hlY2s7ZGVsZXRlIGQuZG9jdW1lbnQ7Yi5hZGRFdmVudHMoe2xvYWQ6ZSxyZWFk
eXN0YXRlY2hhbmdlOmZ1bmN0aW9uKCl7aWYoWyJsb2FkZWQiLCJjb21wbGV0ZSJd
LmNvbnRhaW5zKHRoaXMucmVhZHlTdGF0ZSkpe2UoKX19fSkuc2V0KGQpO2lmKEJy
b3dzZXIuRW5naW5lLndlYmtpdDQxOSl7dmFyIGM9KGZ1bmN0aW9uKCl7aWYoISR0
cnkoYSkpe3JldHVybn0kY2xlYXIoYyk7ZSgpfSkucGVyaW9kaWNhbCg1MCl9cmV0
dXJuIGIuaW5qZWN0KGcuaGVhZCl9LGNzczpmdW5jdGlvbihiLGEpe3JldHVybiBu
ZXcgRWxlbWVudCgibGluayIsJG1lcmdlKHtyZWw6InN0eWxlc2hlZXQiLG1lZGlh
OiJzY3JlZW4iLHR5cGU6InRleHQvY3NzIixocmVmOmJ9LGEpKS5pbmplY3QoZG9j
dW1lbnQuaGVhZCl9LGltYWdlOmZ1bmN0aW9uKGMsYil7Yj0kbWVyZ2Uoe29ubG9h
ZDokZW1wdHksb25hYm9ydDokZW1wdHksb25lcnJvcjokZW1wdHl9LGIpO3ZhciBk
PW5ldyBJbWFnZSgpO3ZhciBhPWRvY3VtZW50LmlkKGQpfHxuZXcgRWxlbWVudCgi
aW1nIik7WyJsb2FkIiwiYWJvcnQiLCJlcnJvciJdLmVhY2goZnVuY3Rpb24oZSl7
dmFyIGY9Im9uIitlO3ZhciBnPWJbZl07ZGVsZXRlIGJbZl07ZFtmXT1mdW5jdGlv
bigpe2lmKCFkKXtyZXR1cm59aWYoIWEucGFyZW50Tm9kZSl7YS53aWR0aD1kLndp
ZHRoO2EuaGVpZ2h0PWQuaGVpZ2h0fWQ9ZC5vbmxvYWQ9ZC5vbmFib3J0PWQub25l
cnJvcj1udWxsO2cuZGVsYXkoMSxhLGEpO2EuZmlyZUV2ZW50KGUsYSwxKX19KTtk
LnNyYz1hLnNyYz1jO2lmKGQmJmQuY29tcGxldGUpe2Qub25sb2FkLmRlbGF5KDEp
fXJldHVybiBhLnNldChiKX0saW1hZ2VzOmZ1bmN0aW9uKGQsYyl7Yz0kbWVyZ2Uo
e29uQ29tcGxldGU6JGVtcHR5LG9uUHJvZ3Jlc3M6JGVtcHR5LG9uRXJyb3I6JGVt
cHR5LHByb3BlcnRpZXM6e319LGMpO2Q9JHNwbGF0KGQpO3ZhciBhPVtdO3ZhciBi
PTA7cmV0dXJuIG5ldyBFbGVtZW50cyhkLm1hcChmdW5jdGlvbihlKXtyZXR1cm4g
QXNzZXQuaW1hZ2UoZSwkZXh0ZW5kKGMucHJvcGVydGllcyx7b25sb2FkOmZ1bmN0
aW9uKCl7Yy5vblByb2dyZXNzLmNhbGwodGhpcyxiLGQuaW5kZXhPZihlKSk7Yisr
O2lmKGI9PWQubGVuZ3RoKXtjLm9uQ29tcGxldGUoKX19LG9uZXJyb3I6ZnVuY3Rp
b24oKXtjLm9uRXJyb3IuY2FsbCh0aGlzLGIsZC5pbmRleE9mKGUpKTtiKys7aWYo
Yj09ZC5sZW5ndGgpe2Mub25Db21wbGV0ZSgpfX19KSl9KSl9fTtpZighd2luZG93
LmNvbnNvbGUpe3ZhciBjb25zb2xlPXt9fWlmKCFjb25zb2xlLmxvZyl7Y29uc29s
ZS5sb2c9ZnVuY3Rpb24oKXt9fWlmKCFjb25zb2xlLndhcm4pe2NvbnNvbGUud2Fy
bj1jb25zb2xlLmxvZ31pZighY29uc29sZS5lcnJvcil7Y29uc29sZS5lcnJvcj1j
b25zb2xlLndhcm59TW9vVG9vbHMudXBncmFkZUxvZz1mdW5jdGlvbigpe2lmKGNv
bnNvbGVbdGhpcy51cGdyYWRlTG9nTGV2ZWxdKXtjb25zb2xlW3RoaXMudXBncmFk
ZUxvZ0xldmVsXS5hcHBseShjb25zb2xlLGFyZ3VtZW50cyl9fTsoZnVuY3Rpb24o
KXtvbGRBPSRBO3dpbmRvdy4kQT1mdW5jdGlvbihrLG0sail7aWYobSE9dW5kZWZp
bmVkJiZqIT11bmRlZmluZWQpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEu
MjogJEEgbm8gbG9uZ2VyIHRha2VzIHN0YXJ0IGFuZCBsZW5ndGggYXJndW1lbnRz
LiIpO2lmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQmJiR0eXBlKGspPT0iY29sbGVj
dGlvbiIpe209bXx8MDtpZihtPDApe209ay5sZW5ndGgrbX1qPWp8fChrLmxlbmd0
aC1tKTt2YXIgbD1bXTtmb3IodmFyIGg9MDtoPGo7aCsrKXtsW2hdPWtbbSsrXX1y
ZXR1cm4gbH1tPShtfHwwKSsoKG08MCk/ay5sZW5ndGg6MCk7dmFyIGc9KCghJGNo
ayhqKSk/ay5sZW5ndGg6aikrbTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNl
LmNhbGwoayxtLGcpfXJldHVybiBvbGRBKGspfTt2YXIgZT1bIkFycmF5IiwiRnVu
Y3Rpb24iLCJTdHJpbmciLCJSZWdFeHAiLCJOdW1iZXIiLCJXaW5kb3ciLCJEb2N1
bWVudCIsIkVsZW1lbnQiLCJFbGVtZW50cyJdO2Zvcih2YXIgYz0wLGI9ZS5sZW5n
dGg7YzxiO2MrKyl7dmFyIGQ9ZVtjXTt2YXIgYT13aW5kb3dbZF07aWYoYSl7dmFy
IGY9YS5leHRlbmQ7YS5leHRlbmQ9ZnVuY3Rpb24oZyl7TW9vVG9vbHMudXBncmFk
ZUxvZygiMS4xID4gMS4yOiBuYXRpdmUgdHlwZXMgbm8gbG9uZ2VyIHVzZSAuZXh0
ZW5kIHRvIGFkZCBtZXRob2RzIHRvIHByb3RvdHlwZXMgYnV0IGluc3RlYWQgdXNl
IC5pbXBsZW1lbnQuIE5PVEU6IFlPVVIgTUVUSE9EUyBXRVJFIE5PVCBJTVBMRU1F
TlRFRCBPTiBUSEUgTkFUSVZFICIrZC50b1VwcGVyQ2FzZSgpKyIgUFJPVE9UWVBF
LiIpO3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fX0pKCk7d2luZG93
Lm9uRG9tUmVhZHk9V2luZG93Lm9uRG9tUmVhZHk9ZnVuY3Rpb24oYSl7TW9vVG9v
bHMudXBncmFkZUxvZygnMS4xID4gMS4yOiB3aW5kb3cub25Eb21SZWFkeSBpcyBu
byBsb25nZXIgc3VwcG9ydGVkLiBVc2Ugd2luZG93LmFkZEV2ZW50KCJkb21yZWFk
eSIpIGluc3RlYWQnKTtyZXR1cm4gd2luZG93LmFkZEV2ZW50KCJkb21yZWFkeSIs
YSl9O2lmKEJyb3dzZXIuX19kZWZpbmVHZXR0ZXJfXyl7QnJvd3Nlci5fX2RlZmlu
ZUdldHRlcl9fKCJoYXNHZXR0ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRydWV9KX1p
ZihCcm93c2VyLmhhc0dldHRlcil7d2luZG93Ll9fZGVmaW5lR2V0dGVyX18oImll
IixmdW5jdGlvbigpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjogd2lu
ZG93LmllIGlzIGRlcHJlY2F0ZWQuIFVzZSBCcm93c2VyLkVuZ2luZS50cmlkZW50
Iik7cmV0dXJuKEJyb3dzZXIuRW5naW5lLm5hbWU9PSJ0cmlkZW50Iik/dHJ1ZTpm
YWxzZX0pO3dpbmRvdy5fX2RlZmluZUdldHRlcl9fKCJpZTYiLGZ1bmN0aW9uKCl7
TW9vVG9vbHMudXBncmFkZUxvZygiMS4xID4gMS4yOiB3aW5kb3cuaWU2IGlzIGRl
cHJlY2F0ZWQuIFVzZSBCcm93c2VyLkVuZ2luZS50cmlkZW50IGFuZCBCcm93c2Vy
LkVuZ2luZS52ZXJzaW9uIik7cmV0dXJuKEJyb3dzZXIuRW5naW5lLm5hbWU9PSJ0
cmlkZW50IiYmQnJvd3Nlci5FbmdpbmUudmVyc2lvbj09NCk/dHJ1ZTpmYWxzZX0p
O3dpbmRvdy5fX2RlZmluZUdldHRlcl9fKCJpZTciLGZ1bmN0aW9uKCl7TW9vVG9v
bHMudXBncmFkZUxvZygiMS4xID4gMS4yOiB3aW5kb3cuaWU3IGlzIGRlcHJlY2F0
ZWQuIFVzZSBCcm93c2VyLkVuZ2luZS50cmlkZW50IGFuZCBCcm93c2VyLkVuZ2lu
ZS52ZXJzaW9uIik7cmV0dXJuKEJyb3dzZXIuRW5naW5lLm5hbWU9PSJ0cmlkZW50
IiYmQnJvd3Nlci5FbmdpbmUudmVyc2lvbj09NSk/dHJ1ZTpmYWxzZX0pO3dpbmRv
dy5fX2RlZmluZUdldHRlcl9fKCJnZWNrbyIsZnVuY3Rpb24oKXtNb29Ub29scy51
cGdyYWRlTG9nKCIxLjEgPiAxLjI6IHdpbmRvdy5nZWNrbyBpcyBkZXByZWNhdGVk
LiBVc2UgQnJvd3Nlci5FbmdpbmUuZ2Vja28iKTtyZXR1cm4oQnJvd3Nlci5Fbmdp
bmUubmFtZT09ImdlY2tvIik/dHJ1ZTpmYWxzZX0pO3dpbmRvdy5fX2RlZmluZUdl
dHRlcl9fKCJ3ZWJraXQiLGZ1bmN0aW9uKCl7TW9vVG9vbHMudXBncmFkZUxvZygi
MS4xID4gMS4yOiB3aW5kb3cud2Via2l0IGlzIGRlcHJlY2F0ZWQuIFVzZSBCcm93
c2VyLkVuZ2luZS53ZWJraXQiKTtyZXR1cm4oQnJvd3Nlci5FbmdpbmUubmFtZT09
IndlYmtpdCIpP3RydWU6ZmFsc2V9KTt3aW5kb3cuX19kZWZpbmVHZXR0ZXJfXygi
d2Via2l0NDE5IixmdW5jdGlvbigpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+
IDEuMjogd2luZG93LndlYmtpdCBpcyBkZXByZWNhdGVkLiBVc2UgQnJvd3Nlci5F
bmdpbmUud2Via2l0IGFuZCBCcm93c2VyLkVuZ2luZS52ZXJzaW9uIik7cmV0dXJu
KEJyb3dzZXIuRW5naW5lLm5hbWU9PSJ3ZWJraXQiJiZCcm93c2VyLkVuZ2luZS52
ZXJzaW9uPT00MTkpP3RydWU6ZmFsc2V9KTt3aW5kb3cuX19kZWZpbmVHZXR0ZXJf
Xygid2Via2l0NDIwIixmdW5jdGlvbigpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEu
MSA+IDEuMjogd2luZG93LndlYmtpdCBpcyBkZXByZWNhdGVkLiBVc2UgQnJvd3Nl
ci5FbmdpbmUud2Via2l0IGFuZCBCcm93c2VyLkVuZ2luZS52ZXJzaW9uIik7cmV0
dXJuKEJyb3dzZXIuRW5naW5lLm5hbWU9PSJ3ZWJraXQiJiZCcm93c2VyLkVuZ2lu
ZS52ZXJzaW9uPT00MjApP3RydWU6ZmFsc2V9KTt3aW5kb3cuX19kZWZpbmVHZXR0
ZXJfXygib3BlcmEiLGZ1bmN0aW9uKCl7TW9vVG9vbHMudXBncmFkZUxvZygiMS4x
ID4gMS4yOiB3aW5kb3cub3BlcmEgaXMgZGVwcmVjYXRlZC4gVXNlIEJyb3dzZXIu
RW5naW5lLnByZXN0byIpO3JldHVybihCcm93c2VyLkVuZ2luZS5uYW1lPT0icHJl
c3RvIik/dHJ1ZTpmYWxzZX0pfWVsc2V7d2luZG93W0Jyb3dzZXIuRW5naW5lLm5h
bWVdPXdpbmRvd1tCcm93c2VyLkVuZ2luZS5uYW1lK0Jyb3dzZXIuRW5naW5lLnZl
cnNpb25dPXRydWU7d2luZG93LmllPXdpbmRvdy50cmlkZW50O3dpbmRvdy5pZTY9
d2luZG93LnRyaWRlbnQ0O3dpbmRvdy5pZTc9d2luZG93LnRyaWRlbnQ1fUFycmF5
LmltcGxlbWVudCh7Y29weTpmdW5jdGlvbihiLGEpe01vb1Rvb2xzLnVwZ3JhZGVM
b2coIjEuMSA+IDEuMjogQXJyYXkuY29weSBpcyBkZXByZWNhdGVkLiBVc2UgQXJy
YXkuc3BsaWNlIik7cmV0dXJuICRBKHRoaXMsYixhKX0scmVtb3ZlOmZ1bmN0aW9u
KGEpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjogQXJyYXkucmVtb3Zl
IGlzIGRlcHJlY2F0ZWQuIFVzZSBBcnJheS5lcmFzZSIpO3JldHVybiB0aGlzLmVy
YXNlKGEpfSxtZXJnZTpmdW5jdGlvbihhKXtNb29Ub29scy51cGdyYWRlTG9nKCIx
LjEgPiAxLjI6IEFycmF5Lm1lcmdlIGlzIGRlcHJlY2F0ZWQuIFVzZSBBcnJheS5j
b21iaW5lIik7cmV0dXJuIHRoaXMuY29tYmluZShhKX19KTtGdW5jdGlvbi5pbXBs
ZW1lbnQoe2JpbmRBc0V2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYixhKXtNb29Ub29s
cy51cGdyYWRlTG9nKCIxLjEgPiAxLjI6IEZ1bmN0aW9uLmJpbmRBc0V2ZW50TGlz
dGVuZXIgaXMgZGVwcmVjYXRlZC4gVXNlIGJpbmRXaXRoRXZlbnQuIik7cmV0dXJu
IHRoaXMuYmluZFdpdGhFdmVudC5jYWxsKHRoaXMsYixhKX19KTtGdW5jdGlvbi5l
bXB0eT1mdW5jdGlvbigpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjog
RnVuY3Rpb24uZW1wdHkgaXMgbm93IGp1c3QgJGVtcHR5LiIpfTtIYXNoLmltcGxl
bWVudCh7a2V5czpmdW5jdGlvbigpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+
IDEuMjogSGFzaC5rZXlzIGlzIGRlcHJlY2F0ZWQuIFVzZSBIYXNoLmdldEtleXMi
KTtyZXR1cm4gdGhpcy5nZXRLZXlzKCl9LHZhbHVlczpmdW5jdGlvbigpe01vb1Rv
b2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjogSGFzaC52YWx1ZXMgaXMgZGVwcmVj
YXRlZC4gVXNlIEhhc2guZ2V0VmFsdWVzIik7cmV0dXJuIHRoaXMuZ2V0VmFsdWVz
KCl9LGhhc0tleTpmdW5jdGlvbihhKXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEg
PiAxLjI6IEhhc2guaGFzS2V5IGlzIGRlcHJlY2F0ZWQuIFVzZSBIYXNoLmhhcyIp
O3JldHVybiB0aGlzLmhhcyhhKX0sbWVyZ2U6ZnVuY3Rpb24oYSl7TW9vVG9vbHMu
dXBncmFkZUxvZygiMS4xID4gMS4yOiBIYXNoLm1lcmdlIGlzIGRlcHJlY2F0ZWQu
IFVzZSBIYXNoLmNvbWJpbmUiKTtyZXR1cm4gdGhpcy5leHRlbmQoYSl9LHJlbW92
ZTpmdW5jdGlvbihhKXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEgPiAxLjI6IEhh
c2gucmVtb3ZlIGlzIGRlcHJlY2F0ZWQuIHVzZSBIYXNoLmVyYXNlIik7cmV0dXJu
IHRoaXMuZXJhc2UoYSl9fSk7T2JqZWN0LnRvUXVlcnlTdHJpbmc9ZnVuY3Rpb24o
YSl7TW9vVG9vbHMudXBncmFkZUxvZygiMS4xID4gMS4yOiBPYmplY3QudG9RdWVy
eVN0cmluZygpIGlzIGRlcHJlY2F0ZWQuIHVzZSBIYXNoLnRvUXVlcnlTdHJpbmco
KSBpbnN0ZWFkIik7JEgoYSkuZWFjaChmdW5jdGlvbihjLGIpe2lmKCR0eXBlKGMp
PT0ib2JqZWN0Inx8JHR5cGUoYyk9PSJhcnJheSIpe2FbYl09Yy50b1N0cmluZygp
fX0pO3JldHVybiBIYXNoLnRvUXVlcnlTdHJpbmcoYSl9O3ZhciBBYnN0cmFjdD1m
dW5jdGlvbihhKXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEgPiAxLjI6IEFic3Ry
YWN0IGlzIGRlcHJlY2F0ZWQuIFVzZSBIYXNoIik7cmV0dXJuIG5ldyBIYXNoKGEp
fTtDbGFzcy5lbXB0eT1mdW5jdGlvbigpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEu
MSA+IDEuMjogcmVwbGFjZSBDbGFzcy5lbXB0eSB3aXRoICRlbXB0eSIpO3JldHVy
biAkZW1wdHl9OyhmdW5jdGlvbigpe3ZhciBhPWZ1bmN0aW9uKGQpe3ZhciBjPWZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXN9O2MucHJvdG90eXBlPWQ7cmV0dXJuIGN9O0Ns
YXNzLnByb3RvdHlwZS5leHRlbmQ9ZnVuY3Rpb24oZCl7TW9vVG9vbHMudXBncmFk
ZUxvZygiMS4xID4gMS4yOiBDbGFzcy5leHRlbmQgaXMgZGVwcmVjYXRlZC4gU2Vl
IHRoZSBjbGFzcyBFeHRlbmQgbXV0YXRvci4iKTt2YXIgYz1hKGQpO3ZhciBlPW5l
dyBjKCk7ZS5FeHRlbmRzPXRoaXM7cmV0dXJuIG5ldyBDbGFzcyhlKX07dmFyIGI9
Q2xhc3MucHJvdG90eXBlLmltcGxlbWVudDtDbGFzcy5wcm90b3R5cGUuaW1wbGVt
ZW50PWZ1bmN0aW9uKCl7aWYoYXJndW1lbnRzLmxlbmd0aD4xJiZBcnJheS5ldmVy
eShhcmd1bWVudHMsT2JqZWN0LnR5cGUpKXtNb29Ub29scy51cGdyYWRlTG9nKCIx
LjEgPiAxLjI6IENsYXNzLmltcGxlbWVudCBubyBsb25nZXIgdGFrZXMgbW9yZSB0
aGFuIG9uZSB0aGluZyBhdCBhIHRpbWUsIGVpdGhlciBNeUNsYXNzLmltcGxlbWVu
dChrZXksIHZhbHVlKSBvciBNeUNsYXNzLmltcGxlbWVudChvYmplY3QpIGJ1dCBO
T1QgTXlDbGFzcy5pbXBsZW1lbnQobmV3IEZvbywgbmV3IEJhciwgbmV3IEJheiku
IFNlZSBhbHNvOiB0aGUgY2xhc3MgSW1wbGVtZW50cyBtdXRhdG9yLiIpO0FycmF5
LmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKGMpe2IuY2FsbCh0aGlzLGMpfSx0aGlz
KTtyZXR1cm4gdGhpc31yZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSko
KTsoZnVuY3Rpb24oKXt2YXIgYz1FbGVtZW50LnByb3RvdHlwZS5nZXRQb3NpdGlv
bjt2YXIgYT1FbGVtZW50LnByb3RvdHlwZS5nZXRDb29yZGluYXRlcztmdW5jdGlv
biBiKGUpe3JldHVybigvXig/OmJvZHl8aHRtbCkkL2kpLnRlc3QoZS50YWdOYW1l
KX12YXIgZD1FbGVtZW50LnByb3RvdHlwZS5nZXRTaXplO0VsZW1lbnQuaW1wbGVt
ZW50KHtnZXRTaXplOmZ1bmN0aW9uKCl7TW9vVG9vbHMudXBncmFkZUxvZygiMS4x
ID4gMS4yOiBOT1RFOiBnZXRTaXplIGlzIGRpZmZlcmVudCBpbiAxLjI7IGl0IG5v
IGxvbmdlciByZXR1cm5zIHZhbHVlcyBmb3Igc2l6ZSwgc2Nyb2xsLCBhbmQgc2Ny
b2xsU2l6ZSwgYnV0IGluc3RlYWQganVzdCByZXR1cm5zIHgveSB2YWx1ZXMgZm9y
IHRoZSBkaW1lbnNpb25zIG9mIHRoZSBlbGVtZW50LiIpO3ZhciBlPWQuYXBwbHko
dGhpcyxhcmd1bWVudHMpO3JldHVybiAkbWVyZ2UoZSx7c2l6ZTplLHNjcm9sbDp0
aGlzLmdldFNjcm9sbCgpLHNjcm9sbFNpemU6dGhpcy5nZXRTY3JvbGxTaXplKCl9
KX0sZ2V0UG9zaXRpb246ZnVuY3Rpb24oZSl7aWYoZSYmJHR5cGUoZSk9PSJhcnJh
eSIpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjogRWxlbWVudC5nZXRQ
b3NpdGlvbiBubyBsb25nZXIgYWNjZXB0cyBhbiBhcnJheSBvZiBvdmVyZmxvd24g
ZWxlbWVudHMgYnV0IHJhdGhlciwgb3B0aW9uYWxseSwgYSBzaW5nbGUgZWxlbWVu
dCB0byBnZXQgcmVsYXRpdmUgY29vcmRpbmF0ZXMuIik7ZT1udWxsfXJldHVybiBj
LmFwcGx5KHRoaXMsW2VdKX0sZ2V0Q29vcmRpbmF0ZXM6ZnVuY3Rpb24oZSl7aWYo
ZSYmJHR5cGUoZSk9PSJhcnJheSIpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+
IDEuMjogRWxlbWVudC5nZXRDb29yZGluYXRlcyBubyBsb25nZXIgYWNjZXB0cyBh
biBhcnJheSBvZiBvdmVyZmxvd24gZWxlbWVudHMgYnV0IHJhdGhlciwgb3B0aW9u
YWxseSwgYSBzaW5nbGUgZWxlbWVudCB0byBnZXQgcmVsYXRpdmUgY29vcmRpbmF0
ZXMuIik7ZT1udWxsfXJldHVybiBhLmFwcGx5KHRoaXMsW2VdKX19KTtOYXRpdmUu
aW1wbGVtZW50KFtEb2N1bWVudCxXaW5kb3ddLHtnZXRTaXplOmZ1bmN0aW9uKCl7
TW9vVG9vbHMudXBncmFkZUxvZygiMS4xID4gMS4yOiBOT1RFOiBnZXRTaXplIGlz
IGRpZmZlcmVudCBpbiAxLjI7IGl0IG5vIGxvbmdlciByZXR1cm5zIHZhbHVlcyBm
b3Igc2l6ZSwgc2Nyb2xsLCBhbmQgc2Nyb2xsU2l6ZSwgYnV0IGluc3RlYWQganVz
dCByZXR1cm5zIHgveSB2YWx1ZXMgZm9yIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBl
bGVtZW50LiIpO3ZhciBlO3ZhciBnPXRoaXMuZ2V0V2luZG93KCk7dmFyIGY9dGhp
cy5nZXREb2N1bWVudCgpO2Y9KCFmLmNvbXBhdE1vZGV8fGYuY29tcGF0TW9kZT09
IkNTUzFDb21wYXQiKT9mLmh0bWw6Zi5ib2R5O2lmKEJyb3dzZXIuRW5naW5lLnBy
ZXN0b3x8QnJvd3Nlci5FbmdpbmUud2Via2l0KXtlPXt4OmcuaW5uZXJXaWR0aCx5
OmcuaW5uZXJIZWlnaHR9fWVsc2V7ZT17eDpmLmNsaWVudFdpZHRoLHk6Zi5jbGll
bnRIZWlnaHR9fXJldHVybiAkZXh0ZW5kKGUse3NpemU6ZSxzY3JvbGw6e3g6Zy5w
YWdlWE9mZnNldHx8Zi5zY3JvbGxMZWZ0LHk6Zy5wYWdlWU9mZnNldHx8Zi5zY3Jv
bGxUb3B9LHNjcm9sbFNpemU6e3g6TWF0aC5tYXgoZi5zY3JvbGxXaWR0aCxlLngp
LHk6TWF0aC5tYXgoZi5zY3JvbGxIZWlnaHQsZS55KX19KX19KX0pKCk7RXZlbnQu
a2V5cz1FdmVudC5LZXlzOyhmdW5jdGlvbigpe3ZhciBhPUVsZW1lbnQucHJvdG90
eXBlLnRvUXVlcnlTdHJpbmc7RWxlbWVudC5pbXBsZW1lbnQoe2dldEZvcm1FbGVt
ZW50czpmdW5jdGlvbigpe01vb1Rvb2xzLnVwZ3JhZGVMb2coJzEuMSA+IDEuMjog
RWxlbWVudC5nZXRGb3JtRWxlbWVudHMgaXMgZGVwcmVjYXRlZCwgdXNlIEVsZW1l
bnQuZ2V0RWxlbWVudHMoImlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0Iik7Jyk7cmV0
dXJuIHRoaXMuZ2V0RWxlbWVudHMoImlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0Iil9
LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKGIpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEu
MSA+IDEuMjogRWxlbWVudC5yZXBsYWNlV2l0aCBpcyBkZXByZWNhdGVkLCB1c2Ug
RWxlbWVudC5yZXBsYWNlcyBpbnN0ZWFkLiIpO2I9JChiKTt0aGlzLnBhcmVudE5v
ZGUucmVwbGFjZUNoaWxkKGIsdGhpcyk7cmV0dXJuIGJ9LHJlbW92ZTpmdW5jdGlv
bigpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjogRWxlbWVudC5yZW1v
dmUgaXMgZGVwcmVjYXRlZCAtIHVzZSBFbGVtZW50LmRpc3Bvc2UuIik7cmV0dXJu
IHRoaXMuZGlzcG9zZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGdldFRleHQ6ZnVu
Y3Rpb24oKXtNb29Ub29scy51cGdyYWRlTG9nKCcxLjEgPiAxLjI6IEVsZW1lbnQu
Z2V0VGV4dCBpcyBkZXByZWNhdGVkIC0gdXNlIEVsZW1lbnQuZ2V0KCJ0ZXh0Iiku
Jyk7cmV0dXJuIHRoaXMuZ2V0KCJ0ZXh0Iil9LHNldFRleHQ6ZnVuY3Rpb24oYil7
TW9vVG9vbHMudXBncmFkZUxvZygnMS4xID4gMS4yOiBFbGVtZW50LnNldFRleHQg
aXMgZGVwcmVjYXRlZCAtIHVzZSBFbGVtZW50LnNldCgidGV4dCIsIHRleHQpLicp
O3JldHVybiB0aGlzLnNldCgidGV4dCIsYil9LHNldEhUTUw6ZnVuY3Rpb24oKXtN
b29Ub29scy51cGdyYWRlTG9nKCcxLjEgPiAxLjI6IEVsZW1lbnQuc2V0SFRNTCBp
cyBkZXByZWNhdGVkIC0gdXNlIEVsZW1lbnQuc2V0KCJodG1sIiwgSFRNTCkuJyk7
cmV0dXJuIHRoaXMuc2V0KCJodG1sIixhcmd1bWVudHMpfSxnZXRIVE1MOmZ1bmN0
aW9uKCl7TW9vVG9vbHMudXBncmFkZUxvZygnMS4xID4gMS4yOiBFbGVtZW50Lmdl
dEhUTUwgaXMgZGVwcmVjYXRlZCAtIHVzZSBFbGVtZW50LmdldCgiaHRtbCIpLicp
O3JldHVybiB0aGlzLmdldCgiaHRtbCIpfSxnZXRUYWc6ZnVuY3Rpb24oKXtNb29U
b29scy51cGdyYWRlTG9nKCcxLjEgPiAxLjI6IEVsZW1lbnQuZ2V0VGFnIGlzIGRl
cHJlY2F0ZWQgLSB1c2UgRWxlbWVudC5nZXQoInRhZyIpLicpO3JldHVybiB0aGlz
LmdldCgidGFnIil9LGdldFZhbHVlOmZ1bmN0aW9uKCl7TW9vVG9vbHMudXBncmFk
ZUxvZygnMS4xID4gMS4yOiBFbGVtZW50LmdldFZhbHVlIGlzIGRlcHJlY2F0ZWQg
LSB1c2UgRWxlbWVudC5nZXQoInZhbHVlIikuJyk7c3dpdGNoKHRoaXMuZ2V0VGFn
KCkpe2Nhc2Uic2VsZWN0Ijp2YXIgYj1bXTskZWFjaCh0aGlzLm9wdGlvbnMsZnVu
Y3Rpb24oYyl7aWYoYy5zZWxlY3RlZCl7Yi5wdXNoKCRwaWNrKGMudmFsdWUsYy50
ZXh0KSl9fSk7cmV0dXJuKHRoaXMubXVsdGlwbGUpP2I6YlswXTtjYXNlImlucHV0
IjppZighKHRoaXMuY2hlY2tlZCYmWyJjaGVja2JveCIsInJhZGlvIl0uY29udGFp
bnModGhpcy50eXBlKSkmJiFbImhpZGRlbiIsInRleHQiLCJwYXNzd29yZCJdLmNv
bnRhaW5zKHRoaXMudHlwZSkpe2JyZWFrfWNhc2UidGV4dGFyZWEiOnJldHVybiB0
aGlzLnZhbHVlfXJldHVybiBmYWxzZX0sdG9RdWVyeVN0cmluZzpmdW5jdGlvbigp
e01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjogd2FybmluZyBFbGVtZW50
LnRvUXVlcnlTdHJpbmcgaXMgc2xpZ2h0bHkgZGlmZmVyZW50OyBpbnB1dHMgd2l0
aG91dCBuYW1lcyBhcmUgZXhjbHVkZWQsIGlucHV0cyB3aXRoIHR5cGUgPT0gc3Vi
bWl0LCByZXNldCwgYW5kIGZpbGUgYXJlIGV4Y2x1ZGVkLCBhbmQgaW5wdXRzIHdp
dGggdW5kZWZpbmVkIHZhbHVlcyBhcmUgZXhjbHVkZWQuIik7cmV0dXJuIGEuYXBw
bHkodGhpcyxhcmd1bWVudHMpfX0pfSkoKTtFbGVtZW50LlByb3BlcnRpZXMucHJv
cGVydGllcz17c2V0OmZ1bmN0aW9uKGEpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEu
MSA+IDEuMjogRWxlbWVudC5zZXQoe3Byb3BlcnRpZXM6IHt9fSkgaXMgZGVwcmVj
YXRlZDsgaW5zdGVhZCBvZiBwcm9wZXJ0aWVzLCBqdXN0IG5hbWUgdGhlIHZhbHVl
cyBhdCB0aGUgcm9vdCBvZiB0aGUgb2JqZWN0IChFbGVtZW50LnNldCh7c3JjOiB1
cmx9KSkuIik7JEgoYSkuZWFjaChmdW5jdGlvbihjLGIpe3RoaXMuc2V0KGIsYyl9
LHRoaXMpfX07RWxlbWVudC5pbXBsZW1lbnQoe3NldE9wYWNpdHk6ZnVuY3Rpb24o
YSl7TW9vVG9vbHMudXBncmFkZUxvZygnMS4xID4gMS4yOiBFbGVtZW50LnNldE9w
YWNpdHkgaXMgZGVwcmVjYXRlZDsgdXNlIEVsZW1lbnQuc2V0U3R5bGUoIm9wYWNp
dHkiLCB2YWx1ZSkuJyk7cmV0dXJuIHRoaXMuc2V0U3R5bGUoIm9wYWNpdHkiLGEp
fX0pO0VsZW1lbnQuUHJvcGVydGllcy5zdHlsZXM9e3NldDpmdW5jdGlvbihhKXtN
b29Ub29scy51cGdyYWRlTG9nKCcxLjEgPiAxLjI6IEVsZW1lbnQuc2V0KCJzdHls
ZXMiKSBubyBsb25nZXIgYWNjZXB0cyBhIHN0cmluZyBhcyBhbiBhcmd1bWVudC4g
UGFzcyBhbiBvYmplY3QgaW5zdGVhZC4nKTtpZigkdHlwZShhKT09InN0cmluZyIp
e2Euc3BsaXQoIjsiKS5lYWNoKGZ1bmN0aW9uKGIpe3RoaXMuc2V0U3R5bGUoYi5z
cGxpdCgiOiIpWzBdLGIuc3BsaXQoIjoiKVsxXSl9LHRoaXMpfWVsc2V7dGhpcy5z
ZXRTdHlsZXMoYSl9fX07RnguaW1wbGVtZW50KHtjdXN0b206ZnVuY3Rpb24oYixh
KXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEgPiAxLjI6IEZ4LmN1c3RvbSBpcyBk
ZXByZWNhdGVkLiB1c2UgRnguc3RhcnQuIik7cmV0dXJuIHRoaXMuc3RhcnQoYixh
KX0sY2xlYXJUaW1lcjpmdW5jdGlvbigpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEu
MSA+IDEuMjogRnguY2xlYXJUaW1lciBpcyBkZXByZWNhdGVkLiB1c2UgRnguY2Fu
Y2VsLiIpO3JldHVybiB0aGlzLmNhbmNlbCgpfSxzdG9wOmZ1bmN0aW9uKCl7TW9v
VG9vbHMudXBncmFkZUxvZygiMS4xID4gMS4yOiBGeC5zdG9wIGlzIGRlcHJlY2F0
ZWQuIHVzZSBGeC5jYW5jZWwuIik7cmV0dXJuIHRoaXMuY2FuY2VsKCl9fSk7Rngu
QmFzZT1uZXcgQ2xhc3Moe0V4dGVuZHM6RngsaW5pdGlhbGl6ZTpmdW5jdGlvbigp
e01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjogRnguQmFzZSBpcyBkZXBy
ZWNhdGVkLiB1c2UgRnguIik7dGhpcy5wYXJlbnQuYXBwbHkodGhpcyxhcmd1bWVu
dHMpfX0pO0Z4LlN0eWxlPW5ldyBDbGFzcyh7RXh0ZW5kczpGeC5Ud2Vlbixpbml0
aWFsaXplOmZ1bmN0aW9uKGIsYyxhKXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEg
PiAxLjI6IEZ4LlN0eWxlIGlzIGRlcHJlY2F0ZWQuIHVzZSBGeC5Ud2Vlbi4iKTt0
aGlzLnByb3BlcnR5PWM7dGhpcy5wYXJlbnQoYixhKX0sc3RhcnQ6ZnVuY3Rpb24o
YixhKXtyZXR1cm4gdGhpcy5wYXJlbnQodGhpcy5wcm9wZXJ0eSxiLGEpfSxzZXQ6
ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucGFyZW50KHRoaXMucHJvcGVydHksYSl9
LGhpZGU6ZnVuY3Rpb24oKXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEgPiAxLjI6
IEZ4LlN0eWxlIC5oaWRlKCkgaXMgZGVwcmVjYXRlZDsgdXNlIEZ4LlR3ZWVuIC5z
ZXQoMCkgaW5zdGVhZCIpO3JldHVybiB0aGlzLnNldCgwKX19KTtFbGVtZW50Lmlt
cGxlbWVudCh7ZWZmZWN0OmZ1bmN0aW9uKGIsYSl7TW9vVG9vbHMudXBncmFkZUxv
ZygiMS4xID4gMS4yOiBFbGVtZW50LmVmZmVjdCBpcyBkZXByZWNhdGVkOyB1c2Ug
RnguVHdlZW4gb3IgRWxlbWVudC50d2Vlbi4iKTtyZXR1cm4gbmV3IEZ4LlN0eWxl
KHRoaXMsYixhKX19KTtGeC5TdHlsZXM9bmV3IENsYXNzKHtFeHRlbmRzOkZ4Lk1v
cnBoLGluaXRpYWxpemU6ZnVuY3Rpb24oKXtNb29Ub29scy51cGdyYWRlTG9nKCIx
LjEgPiAxLjI6IEZ4LlN0eWxlcyBpcyBkZXByZWNhdGVkLiB1c2UgRnguTW9ycGgu
Iik7dGhpcy5wYXJlbnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pO0VsZW1lbnQu
aW1wbGVtZW50KHtlZmZlY3RzOmZ1bmN0aW9uKGEpe01vb1Rvb2xzLnVwZ3JhZGVM
b2coIjEuMSA+IDEuMjogRWxlbWVudC5lZmZlY3RzIGlzIGRlcHJlY2F0ZWQ7IHVz
ZSBGeC5Nb3JwaCBvciBFbGVtZW50Lm1vcnBoLiIpO3JldHVybiBuZXcgRnguTW9y
cGgodGhpcyxhKX19KTtGeC5TY3JvbGwuaW1wbGVtZW50KHtzY3JvbGxUbzpmdW5j
dGlvbihiLGEpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjogRnguU2Ny
b2xsJ3MgLnNjcm9sbFRvIGlzIGRlcHJlY2F0ZWQ7IHVzZSAuc3RhcnQuIik7cmV0
dXJuIHRoaXMuc3RhcnQoYixhKX19KTtSZXF1ZXN0LmltcGxlbWVudCh7b25TdGF0
ZUNoYW5nZTpmdW5jdGlvbigpe2lmKHRoaXMueGhyLnJlYWR5U3RhdGUhPTR8fCF0
aGlzLnJ1bm5pbmcpe3JldHVybn10aGlzLnJ1bm5pbmc9ZmFsc2U7dGhpcy5zdGF0
dXM9MDskdHJ5KGZ1bmN0aW9uKCl7dGhpcy5zdGF0dXM9dGhpcy54aHIuc3RhdHVz
fS5iaW5kKHRoaXMpKTt0aGlzLnhoci5vbnJlYWR5c3RhdGVjaGFuZ2U9JGVtcHR5
O3RoaXMucmVzcG9uc2U9e3RleHQ6dGhpcy54aHIucmVzcG9uc2VUZXh0LHhtbDp0
aGlzLnhoci5yZXNwb25zZVhNTH07aWYodGhpcy5vcHRpb25zLmlzU3VjY2Vzcy5j
YWxsKHRoaXMsdGhpcy5zdGF0dXMpKXt0aGlzLnN1Y2Nlc3ModGhpcy5yZXNwb25z
ZS50ZXh0LHRoaXMucmVzcG9uc2UueG1sKX1lbHNle3RoaXMuZmFpbHVyZSh0aGlz
LnJlc3BvbnNlLnRleHQsdGhpcy5yZXNwb25zZS54bWwpfX0sZmFpbHVyZTpmdW5j
dGlvbigpe3RoaXMub25GYWlsdXJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sb25G
YWlsdXJlOmZ1bmN0aW9uKCl7TW9vVG9vbHMudXBncmFkZUxvZygiMS4xID4gMS4y
OiBOb3RlIHRoYXQgb25Db21wbGV0ZSBkb2VzIG5vdCByZWNlaXZlIGFyZ3VtZW50
cyBpbiAxLjIuIEFsc28gbm90ZSB0aGF0IG9uQ29tcGxldGUgaXMgaW52b2tlZCBv
biBCT1RIIHN1Y2Nlc3MgYW5kIGZhaWx1cmUgKHdoaWxlIGluIDEuMSBpdCB3YXMg
b25seSBpbnZva2VkIG9uIHN1Y2Nlc3MpLiBVc2UgdGhlIG9uU3VjY2VzcyBldmVu
dCBpbnN0ZWFkIGlmIHlvdSB3aXNoIHRvIGxpbWl0IHRoaXMgaW52b2NhdGlvbiB0
byBzdWNjZXNzLiIpO3RoaXMuZmlyZUV2ZW50KCJjb21wbGV0ZSIsYXJndW1lbnRz
KS5maXJlRXZlbnQoImZhaWx1cmUiLHRoaXMueGhyKX19KTt2YXIgWEhSPW5ldyBD
bGFzcyh7RXh0ZW5kczpSZXF1ZXN0LG9wdGlvbnM6e3VwZGF0ZTpmYWxzZX0saW5p
dGlhbGl6ZTpmdW5jdGlvbihhKXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEgPiAx
LjI6IFhIUiBpcyBkZXByZWNhdGVkLiBVc2UgUmVxdWVzdC4iKTt0aGlzLnBhcmVu
dChhKTt0aGlzLnRyYW5zcG9ydD10aGlzLnhocn0scmVxdWVzdDpmdW5jdGlvbihh
KXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEgPiAxLjI6IFhIUi5yZXF1ZXN0KCkg
aXMgZGVwcmVjYXRlZC4gVXNlIFJlcXVlc3Quc2VuZCgpIGluc3RlYWQuIik7cmV0
dXJuIHRoaXMuc2VuZCh0aGlzLnVybCxhfHx0aGlzLm9wdGlvbnMuZGF0YSl9LHNl
bmQ6ZnVuY3Rpb24oYSxiKXtpZighdGhpcy5jaGVjayhhcmd1bWVudHMuY2FsbGVl
LGEsYikpe3JldHVybiB0aGlzfXJldHVybiB0aGlzLnBhcmVudCh7dXJsOmEsZGF0
YTpifSl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYixhKXtiPXRoaXMucHJvY2Vzc1Njcmlw
dHMoYik7aWYodGhpcy5vcHRpb25zLnVwZGF0ZSl7JCh0aGlzLm9wdGlvbnMudXBk
YXRlKS5lbXB0eSgpLnNldCgiaHRtbCIsYil9dGhpcy5vblN1Y2Nlc3MoYixhKX0s
ZmFpbHVyZTpmdW5jdGlvbigpe3RoaXMuZmlyZUV2ZW50KCJmYWlsdXJlIix0aGlz
Lnhocil9fSk7dmFyIEFqYXg9bmV3IENsYXNzKHtFeHRlbmRzOlhIUixpbml0aWFs
aXplOmZ1bmN0aW9uKGIsYSl7TW9vVG9vbHMudXBncmFkZUxvZygiMS4xID4gMS4y
OiBBamF4IGlzIGRlcHJlY2F0ZWQuIFVzZSBSZXF1ZXN0LiIpO3RoaXMudXJsPWI7
dGhpcy5wYXJlbnQoYSl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYixhKXt0aGlzLnByb2Nl
c3NTY3JpcHRzKGIpO3Jlc3BvbnNlPXRoaXMucmVzcG9uc2U7cmVzcG9uc2UuaHRt
bD1iLnN0cmlwU2NyaXB0cyhmdW5jdGlvbihjKXtyZXNwb25zZS5qYXZhc2NyaXB0
PWN9KTtpZih0aGlzLm9wdGlvbnMudXBkYXRlKXskKHRoaXMub3B0aW9ucy51cGRh
dGUpLmVtcHR5KCkuc2V0KCJodG1sIixyZXNwb25zZS5odG1sKX1pZih0aGlzLm9w
dGlvbnMuZXZhbFNjcmlwdHMpeyRleGVjKHJlc3BvbnNlLmphdmFzY3JpcHQpfXRo
aXMub25TdWNjZXNzKGIsYSl9fSk7KGZ1bmN0aW9uKCl7dmFyIGE9RWxlbWVudC5w
cm90b3R5cGUuc2VuZDtFbGVtZW50LmltcGxlbWVudCh7c2VuZDpmdW5jdGlvbihi
KXtpZigkdHlwZShiKT09InN0cmluZyIpe3JldHVybiBhLmFwcGx5KHRoaXMsYXJn
dW1lbnRzKX1pZigkdHlwZShiKT09Im9iamVjdCIpe01vb1Rvb2xzLnVwZ3JhZGVM
b2coIjEuMSA+IDEuMjogRWxlbWVudC5zZW5kIG5vIGxvbmdlciB0YWtlcyBhbiBv
cHRpb25zIGFyZ3VtZW50IGFzIGl0cyBvYmplY3QgYnV0IHJhdGhlciBhIHVybC4g
U2VlIGRvY3MuIik7dGhpcy5zZXQoInNlbmQiLGIpO2EuY2FsbCh0aGlzKX1yZXR1
cm4gdGhpc319KX0pKCk7SlNPTi5SZW1vdGU9bmV3IENsYXNzKHtvcHRpb25zOntr
ZXk6Impzb24ifSxFeHRlbmRzOlJlcXVlc3QuSlNPTixpbml0aWFsaXplOmZ1bmN0
aW9uKGIsYSl7TW9vVG9vbHMudXBncmFkZUxvZygiSlNPTi5SZW1vdGUgaXMgZGVw
cmVjYXRlZC4gVXNlIFJlcXVlc3QuSlNPTiIpO3RoaXMucGFyZW50KGEpO3RoaXMu
b25Db21wbGV0ZT0kZW1wdHk7dGhpcy51cmw9Yn0sc2VuZDpmdW5jdGlvbihhKXtp
ZighdGhpcy5jaGVjayhhcmd1bWVudHMuY2FsbGVlLGEpKXtyZXR1cm4gdGhpc31y
ZXR1cm4gdGhpcy5wYXJlbnQoe3VybDp0aGlzLnVybCxkYXRhOntqc29uOkpzb24u
ZW5jb2RlKGEpfX0pfSxmYWlsdXJlOmZ1bmN0aW9uKCl7dGhpcy5maXJlRXZlbnQo
ImZhaWx1cmUiLHRoaXMueGhyKX19KTtDb29raWUuc2V0PWZ1bmN0aW9uKGIsYyxh
KXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEgPiAxLjI6IENvb2tpZS5zZXQgaXMg
ZGVwcmVjYXRlZC4gVXNlIENvb2tpZS53cml0ZSIpO3JldHVybiBuZXcgQ29va2ll
KGIsYSkud3JpdGUoYyl9O0Nvb2tpZS5nZXQ9ZnVuY3Rpb24oYSl7TW9vVG9vbHMu
dXBncmFkZUxvZygiMS4xID4gMS4yOiBDb29raWUuZ2V0IGlzIGRlcHJlY2F0ZWQu
IFVzZSBDb29raWUucmVhZCIpO3JldHVybiBuZXcgQ29va2llKGEpLnJlYWQoKX07
Q29va2llLnJlbW92ZT1mdW5jdGlvbihiLGEpe01vb1Rvb2xzLnVwZ3JhZGVMb2co
IjEuMSA+IDEuMjogQ29va2llLnJlbW92ZSBpcyBkZXByZWNhdGVkLiBVc2UgQ29v
a2llLmRpc3Bvc2UiKTtyZXR1cm4gbmV3IENvb2tpZShiLGEpLmRpc3Bvc2UoKX07
SlNPTi50b1N0cmluZz1mdW5jdGlvbihhKXtNb29Ub29scy51cGdyYWRlTG9nKCIx
LjEgPiAxLjI6IEpTT04udG9TdHJpbmcgaXMgZGVwcmVjYXRlZC4gVXNlIEpTT04u
ZW5jb2RlIik7cmV0dXJuIEpTT04uZW5jb2RlKGEpfTtKU09OLmV2YWx1YXRlPWZ1
bmN0aW9uKGEpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEuMjogSlNPTi5l
dmFsdWF0ZSBpcyBkZXByZWNhdGVkLiBVc2UgSlNPTi5kZWNvZGUiKTtyZXR1cm4g
SlNPTi5kZWNvZGUoYSl9O3ZhciBKc29uPUpTT047TmF0aXZlLmltcGxlbWVudChb
RWxlbWVudCxEb2N1bWVudF0se2dldEVsZW1lbnRzQnlDbGFzc05hbWU6ZnVuY3Rp
b24oYSl7TW9vVG9vbHMudXBncmFkZUxvZygiMS4xID4gMS4yOiBFbGVtZW50LmZp
bHRlckJ5VGFnIGlzIGRlcHJlY2F0ZWQuIik7cmV0dXJuIHRoaXMuZ2V0RWxlbWVu
dHMoIi4iK2EpfSxnZXRFbGVtZW50c0J5U2VsZWN0b3I6ZnVuY3Rpb24oYSl7TW9v
VG9vbHMudXBncmFkZUxvZygiMS4xID4gMS4yOiBFbGVtZW50LmdldEVsZW1lbnRz
QnlTZWxlY3RvciBpcyBkZXByZWNhdGVkLiBVc2UgZ2V0RWxlbWVudHMoKSIpO3Jl
dHVybiB0aGlzLmdldEVsZW1lbnRzKGEpfX0pO0VsZW1lbnRzLmltcGxlbWVudCh7
ZmlsdGVyQnlUYWc6ZnVuY3Rpb24oYSl7TW9vVG9vbHMudXBncmFkZUxvZygiMS4x
ID4gMS4yOiBFbGVtZW50cy5maWx0ZXJCeVRhZyBpcyBkZXByZWNhdGVkLiBVc2Ug
RWxlbWVudHMuZmlsdGVyLiIpO3JldHVybiB0aGlzLmZpbHRlcihhKX0sZmlsdGVy
QnlDbGFzczpmdW5jdGlvbihhKXtNb29Ub29scy51cGdyYWRlTG9nKCIxLjEgPiAx
LjI6IEVsZW1lbnRzLmZpbHRlckJ5Q2xhc3MgaXMgZGVwcmVjYXRlZC4gVXNlIEVs
ZW1lbnRzLmZpbHRlci4iKTtyZXR1cm4gdGhpcy5maWx0ZXIoIi4iK2EpfSxmaWx0
ZXJCeUlkOmZ1bmN0aW9uKGEpe01vb1Rvb2xzLnVwZ3JhZGVMb2coIjEuMSA+IDEu
MjogRWxlbWVudHMuZmlsdGVyQnlJZCBpcyBkZXByZWNhdGVkLiBVc2UgRWxlbWVu
dHMuZmlsdGVyLiIpO3JldHVybiB0aGlzLmZpbHRlcigiIyIrYSl9LGZpbHRlckJ5
QXR0cmlidXRlOmZ1bmN0aW9uKGMsYSxkKXtNb29Ub29scy51cGdyYWRlTG9nKCIx
LjEgPiAxLjI6IEVsZW1lbnRzLmZpbHRlckJ5QXR0cmlidXRlIGlzIGRlcHJlY2F0
ZWQuIFVzZSBFbGVtZW50cy5maWx0ZXIuIik7dmFyIGI9dGhpcy5maWx0ZXIoIlsi
K2MrKGF8fCIiKSsoZHx8IiIpKyJdIik7aWYoZCl7Yj1iLmZpbHRlcigiWyIrYysi
XSIpfXJldHVybiBifX0pO3ZhciAkRT1mdW5jdGlvbihhLGIpe01vb1Rvb2xzLnVw
Z3JhZGVMb2coIjEuMSA+IDEuMjogJEUgaXMgZGVwcmVjYXRlZCwgdXNlIGRvY3Vt
ZW50LmdldEVsZW1lbnQuIik7cmV0dXJuKCQoYil8fGRvY3VtZW50KS5nZXRFbGVt
ZW50KGEpfTt2YXIgJEVTPWZ1bmN0aW9uKGEsYil7TW9vVG9vbHMudXBncmFkZUxv
ZygiMS4xID4gMS4yOiAkRVMgaXMgZGVwcmVjYXRlZC4gVXNlICQkLiIpO3JldHVy
bigkKGIpfHxkb2N1bWVudCkuZ2V0RWxlbWVudHMoYSl9OyhmdW5jdGlvbigpe2lm
KCF3aW5kb3cuVGlwcyl7cmV0dXJufVRpcHMuaW1wbGVtZW50KHtpbml0aWFsaXpl
OmZ1bmN0aW9uKCl7TW9vVG9vbHMudXBncmFkZUxvZygiMS4xID4gMS4yOiBUaXBz
IERPTSBlbGVtZW50IGxheW91dCBoYXMgY2hhbmdlZCBhbmQgeW91ciBDU1MgY2xh
c3NlcyBtYXkgbmVlZCB0byBjaGFuZ2UuIik7dmFyIGE9QXJyYXkubGluayhhcmd1
bWVudHMse29wdGlvbnM6T2JqZWN0LnR5cGUsZWxlbWVudHM6JGRlZmluZWR9KTt0
aGlzLnNldE9wdGlvbnMoYS5vcHRpb25zKTtpZih0aGlzLm9wdGlvbnMub2Zmc2V0
cyl7TW9vVG9vbHMudXBncmFkZUxvZygnMS4xID4gMS4yOiBUaXBzIG5vIGxvbmdl
ciBoYXZlIGFuICJvZmZzZXRzIiBvcHRpb247IHVzZSAib2Zmc2V0Ii4nKTt0aGlz
Lm9wdGlvbnMub2Zmc2V0PXRoaXMub3B0aW9ucy5vZmZzZXRzfWRvY3VtZW50Lmlk
KHRoaXMpO3RoaXMuYWRkRXZlbnQoInNob3ciLGZ1bmN0aW9uKCl7dGhpcy50aXAu
YWRkQ2xhc3MoInRvb2wtdGlwIik7dGhpcy50aXAuZ2V0RWxlbWVudCgiLnRpcC10
aXRsZSIpLmFkZENsYXNzKCJ0b29sLXRpdGxlIik7dGhpcy50aXAuZ2V0RWxlbWVu
dCgiLnRpcC10ZXh0IikuYWRkQ2xhc3MoInRvb2wtdGV4dCIpfSk7dGhpcy5wYXJz
ZVRpdGxlKGEuZWxlbWVudHMpO2lmKGEuZWxlbWVudHMpe3RoaXMuYXR0YWNoKGEu
ZWxlbWVudHMpfX0scGFyc2VUaXRsZTpmdW5jdGlvbihhKXthLmVhY2goZnVuY3Rp
b24oYil7dmFyIGM9Yi5nZXQoInRpdGxlIik7aWYoYy50ZXN0KCI6OiIpKXtNb29U
b29scy51cGdyYWRlTG9nKCcxLjEgPiAxLjI6IFRpcHMgbm8gbG9uZ2VyIHBhcnNl
IHRoZSB0aXRsZSBhdHRyaWJ1dGUgZm9yICI6OiIgZm9yIHRpdGxlL2NhcHRpb247
IHVzZSB0aXRsZSBhbmQgcmVsIGF0dHJpYnV0ZXMgaW5zdGVhZC4nKTtiLnN0b3Jl
KCJ0aXA6dGl0bGUiLGMuc3BsaXQoIjo6IilbMF0pO2Iuc3RvcmUoInRpcDp0ZXh0
IixjLnNwbGl0KCI6OiIpWzFdKTtiLnNldCgidGl0bGUiLCIiKX19KX19KX0pKCk7
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=jquery.js
Content-Type: application/x-javascript; name=jquery.js
Content-Location: http://ege.edu.ru/common/js/jquery.js
Content-Transfer-Encoding: Base64
LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNy4yCiAqIGh0dHA6
Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMSwgSm9obiBSZXNpZwog
KiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBs
aWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNs
dWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJp
Z2h0IDIwMTEsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIg
dGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBXZWQg
TWFyIDIxIDEyOjQ2OjM0IDIwMTIgLTA3MDAKICovCihmdW5jdGlvbiggd2luZG93
LCB1bmRlZmluZWQgKSB7CgovLyBVc2UgdGhlIGNvcnJlY3QgZG9jdW1lbnQgYWNj
b3JkaW5nbHkgd2l0aCB3aW5kb3cgYXJndW1lbnQgKHNhbmRib3gpCnZhciBkb2N1
bWVudCA9IHdpbmRvdy5kb2N1bWVudCwKCW5hdmlnYXRvciA9IHdpbmRvdy5uYXZp
Z2F0b3IsCglsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbjsKdmFyIGpRdWVyeSA9
IChmdW5jdGlvbigpIHsKCi8vIERlZmluZSBhIGxvY2FsIGNvcHkgb2YgalF1ZXJ5
CnZhciBqUXVlcnkgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7CgkJ
Ly8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBj
b25zdHJ1Y3RvciAnZW5oYW5jZWQnCgkJcmV0dXJuIG5ldyBqUXVlcnkuZm4uaW5p
dCggc2VsZWN0b3IsIGNvbnRleHQsIHJvb3RqUXVlcnkgKTsKCX0sCgoJLy8gTWFw
IG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlCglfalF1ZXJ5ID0gd2lu
ZG93LmpRdWVyeSwKCgkvLyBNYXAgb3ZlciB0aGUgJCBpbiBjYXNlIG9mIG92ZXJ3
cml0ZQoJXyQgPSB3aW5kb3cuJCwKCgkvLyBBIGNlbnRyYWwgcmVmZXJlbmNlIHRv
IHRoZSByb290IGpRdWVyeShkb2N1bWVudCkKCXJvb3RqUXVlcnksCgoJLy8gQSBz
aW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Mgb3IgSUQgc3RyaW5n
cwoJLy8gUHJpb3JpdGl6ZSAjaWQgb3ZlciA8dGFnPiB0byBhdm9pZCBYU1Mgdmlh
IGxvY2F0aW9uLmhhc2ggKCM5NTIxKQoJcXVpY2tFeHByID0gL14oPzpbXiM8XSoo
PFtcd1xXXSs+KVtePl0qJHwjKFtcd1wtXSopJCkvLAoKCS8vIENoZWNrIGlmIGEg
c3RyaW5nIGhhcyBhIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlciBpbiBpdAoJcm5v
dHdoaXRlID0gL1xTLywKCgkvLyBVc2VkIGZvciB0cmltbWluZyB3aGl0ZXNwYWNl
Cgl0cmltTGVmdCA9IC9eXHMrLywKCXRyaW1SaWdodCA9IC9ccyskLywKCgkvLyBN
YXRjaCBhIHN0YW5kYWxvbmUgdGFnCglyc2luZ2xlVGFnID0gL148KFx3Kylccypc
Lz8+KD86PFwvXDE+KT8kLywKCgkvLyBKU09OIFJlZ0V4cAoJcnZhbGlkY2hhcnMg
PSAvXltcXSw6e31cc10qJC8sCglydmFsaWRlc2NhcGUgPSAvXFwoPzpbIlxcXC9i
Zm5ydF18dVswLTlhLWZBLUZdezR9KS9nLAoJcnZhbGlkdG9rZW5zID0gLyJbXiJc
XFxuXHJdKiJ8dHJ1ZXxmYWxzZXxudWxsfC0/XGQrKD86XC5cZCopPyg/OltlRV1b
K1wtXT9cZCspPy9nLAoJcnZhbGlkYnJhY2VzID0gLyg/Ol58OnwsKSg/OlxzKlxb
KSsvZywKCgkvLyBVc2VyYWdlbnQgUmVnRXhwCglyd2Via2l0ID0gLyh3ZWJraXQp
WyBcL10oW1x3Ll0rKS8sCglyb3BlcmEgPSAvKG9wZXJhKSg/Oi4qdmVyc2lvbik/
WyBcL10oW1x3Ll0rKS8sCglybXNpZSA9IC8obXNpZSkgKFtcdy5dKykvLAoJcm1v
emlsbGEgPSAvKG1vemlsbGEpKD86Lio/IHJ2OihbXHcuXSspKT8vLAoKCS8vIE1h
dGNoZXMgZGFzaGVkIHN0cmluZyBmb3IgY2FtZWxpemluZwoJcmRhc2hBbHBoYSA9
IC8tKFthLXpdfFswLTldKS9pZywKCXJtc1ByZWZpeCA9IC9eLW1zLS8sCgoJLy8g
VXNlZCBieSBqUXVlcnkuY2FtZWxDYXNlIGFzIGNhbGxiYWNrIHRvIHJlcGxhY2Uo
KQoJZmNhbWVsQ2FzZSA9IGZ1bmN0aW9uKCBhbGwsIGxldHRlciApIHsKCQlyZXR1
cm4gKCBsZXR0ZXIgKyAiIiApLnRvVXBwZXJDYXNlKCk7Cgl9LAoKCS8vIEtlZXAg
YSBVc2VyQWdlbnQgc3RyaW5nIGZvciB1c2Ugd2l0aCBqUXVlcnkuYnJvd3NlcgoJ
dXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudCwKCgkvLyBGb3IgbWF0Y2hp
bmcgdGhlIGVuZ2luZSBhbmQgdmVyc2lvbiBvZiB0aGUgYnJvd3NlcgoJYnJvd3Nl
ck1hdGNoLAoKCS8vIFRoZSBkZWZlcnJlZCB1c2VkIG9uIERPTSByZWFkeQoJcmVh
ZHlMaXN0LAoKCS8vIFRoZSByZWFkeSBldmVudCBoYW5kbGVyCglET01Db250ZW50
TG9hZGVkLAoKCS8vIFNhdmUgYSByZWZlcmVuY2UgdG8gc29tZSBjb3JlIG1ldGhv
ZHMKCXRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKCWhhc093
biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCglwdXNoID0gQXJy
YXkucHJvdG90eXBlLnB1c2gsCglzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGlj
ZSwKCXRyaW0gPSBTdHJpbmcucHJvdG90eXBlLnRyaW0sCglpbmRleE9mID0gQXJy
YXkucHJvdG90eXBlLmluZGV4T2YsCgoJLy8gW1tDbGFzc11dIC0+IHR5cGUgcGFp
cnMKCWNsYXNzMnR5cGUgPSB7fTsKCmpRdWVyeS5mbiA9IGpRdWVyeS5wcm90b3R5
cGUgPSB7Cgljb25zdHJ1Y3RvcjogalF1ZXJ5LAoJaW5pdDogZnVuY3Rpb24oIHNl
bGVjdG9yLCBjb250ZXh0LCByb290alF1ZXJ5ICkgewoJCXZhciBtYXRjaCwgZWxl
bSwgcmV0LCBkb2M7CgoJCS8vIEhhbmRsZSAkKCIiKSwgJChudWxsKSwgb3IgJCh1
bmRlZmluZWQpCgkJaWYgKCAhc2VsZWN0b3IgKSB7CgkJCXJldHVybiB0aGlzOwoJ
CX0KCgkJLy8gSGFuZGxlICQoRE9NRWxlbWVudCkKCQlpZiAoIHNlbGVjdG9yLm5v
ZGVUeXBlICkgewoJCQl0aGlzLmNvbnRleHQgPSB0aGlzWzBdID0gc2VsZWN0b3I7
CgkJCXRoaXMubGVuZ3RoID0gMTsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQkvLyBU
aGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGltaXplIGZpbmRp
bmcgaXQKCQlpZiAoIHNlbGVjdG9yID09PSAiYm9keSIgJiYgIWNvbnRleHQgJiYg
ZG9jdW1lbnQuYm9keSApIHsKCQkJdGhpcy5jb250ZXh0ID0gZG9jdW1lbnQ7CgkJ
CXRoaXNbMF0gPSBkb2N1bWVudC5ib2R5OwoJCQl0aGlzLnNlbGVjdG9yID0gc2Vs
ZWN0b3I7CgkJCXRoaXMubGVuZ3RoID0gMTsKCQkJcmV0dXJuIHRoaXM7CgkJfQoK
CQkvLyBIYW5kbGUgSFRNTCBzdHJpbmdzCgkJaWYgKCB0eXBlb2Ygc2VsZWN0b3Ig
PT09ICJzdHJpbmciICkgewoJCQkvLyBBcmUgd2UgZGVhbGluZyB3aXRoIEhUTUwg
c3RyaW5nIG9yIGFuIElEPwoJCQlpZiAoIHNlbGVjdG9yLmNoYXJBdCgwKSA9PT0g
IjwiICYmIHNlbGVjdG9yLmNoYXJBdCggc2VsZWN0b3IubGVuZ3RoIC0gMSApID09
PSAiPiIgJiYgc2VsZWN0b3IubGVuZ3RoID49IDMgKSB7CgkJCQkvLyBBc3N1bWUg
dGhhdCBzdHJpbmdzIHRoYXQgc3RhcnQgYW5kIGVuZCB3aXRoIDw+IGFyZSBIVE1M
IGFuZCBza2lwIHRoZSByZWdleCBjaGVjawoJCQkJbWF0Y2ggPSBbIG51bGwsIHNl
bGVjdG9yLCBudWxsIF07CgoJCQl9IGVsc2UgewoJCQkJbWF0Y2ggPSBxdWlja0V4
cHIuZXhlYyggc2VsZWN0b3IgKTsKCQkJfQoKCQkJLy8gVmVyaWZ5IGEgbWF0Y2gs
IGFuZCB0aGF0IG5vIGNvbnRleHQgd2FzIHNwZWNpZmllZCBmb3IgI2lkCgkJCWlm
ICggbWF0Y2ggJiYgKG1hdGNoWzFdIHx8ICFjb250ZXh0KSApIHsKCgkJCQkvLyBI
QU5ETEU6ICQoaHRtbCkgLT4gJChhcnJheSkKCQkJCWlmICggbWF0Y2hbMV0gKSB7
CgkJCQkJY29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgPyBjb250
ZXh0WzBdIDogY29udGV4dDsKCQkJCQlkb2MgPSAoIGNvbnRleHQgPyBjb250ZXh0
Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCA6IGRvY3VtZW50ICk7CgoJCQkJCS8v
IElmIGEgc2luZ2xlIHN0cmluZyBpcyBwYXNzZWQgaW4gYW5kIGl0J3MgYSBzaW5n
bGUgdGFnCgkJCQkJLy8ganVzdCBkbyBhIGNyZWF0ZUVsZW1lbnQgYW5kIHNraXAg
dGhlIHJlc3QKCQkJCQlyZXQgPSByc2luZ2xlVGFnLmV4ZWMoIHNlbGVjdG9yICk7
CgoJCQkJCWlmICggcmV0ICkgewoJCQkJCQlpZiAoIGpRdWVyeS5pc1BsYWluT2Jq
ZWN0KCBjb250ZXh0ICkgKSB7CgkJCQkJCQlzZWxlY3RvciA9IFsgZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCggcmV0WzFdICkgXTsKCQkJCQkJCWpRdWVyeS5mbi5hdHRy
LmNhbGwoIHNlbGVjdG9yLCBjb250ZXh0LCB0cnVlICk7CgoJCQkJCQl9IGVsc2Ug
ewoJCQkJCQkJc2VsZWN0b3IgPSBbIGRvYy5jcmVhdGVFbGVtZW50KCByZXRbMV0g
KSBdOwoJCQkJCQl9CgoJCQkJCX0gZWxzZSB7CgkJCQkJCXJldCA9IGpRdWVyeS5i
dWlsZEZyYWdtZW50KCBbIG1hdGNoWzFdIF0sIFsgZG9jIF0gKTsKCQkJCQkJc2Vs
ZWN0b3IgPSAoIHJldC5jYWNoZWFibGUgPyBqUXVlcnkuY2xvbmUocmV0LmZyYWdt
ZW50KSA6IHJldC5mcmFnbWVudCApLmNoaWxkTm9kZXM7CgkJCQkJfQoKCQkJCQly
ZXR1cm4galF1ZXJ5Lm1lcmdlKCB0aGlzLCBzZWxlY3RvciApOwoKCQkJCS8vIEhB
TkRMRTogJCgiI2lkIikKCQkJCX0gZWxzZSB7CgkJCQkJZWxlbSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsyXSApOwoKCQkJCQkvLyBDaGVjayBwYXJl
bnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJ
CS8vIG5vZGVzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgZG9jdW1lbnQgIzY5
NjMKCQkJCQlpZiAoIGVsZW0gJiYgZWxlbS5wYXJlbnROb2RlICkgewoJCQkJCQkv
LyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVt
cwoJCQkJCQkvLyBieSBuYW1lIGluc3RlYWQgb2YgSUQKCQkJCQkJaWYgKCBlbGVt
LmlkICE9PSBtYXRjaFsyXSApIHsKCQkJCQkJCXJldHVybiByb290alF1ZXJ5LmZp
bmQoIHNlbGVjdG9yICk7CgkJCQkJCX0KCgkJCQkJCS8vIE90aGVyd2lzZSwgd2Ug
aW5qZWN0IHRoZSBlbGVtZW50IGRpcmVjdGx5IGludG8gdGhlIGpRdWVyeSBvYmpl
Y3QKCQkJCQkJdGhpcy5sZW5ndGggPSAxOwoJCQkJCQl0aGlzWzBdID0gZWxlbTsK
CQkJCQl9CgoJCQkJCXRoaXMuY29udGV4dCA9IGRvY3VtZW50OwoJCQkJCXRoaXMu
c2VsZWN0b3IgPSBzZWxlY3RvcjsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0KCgkJ
CS8vIEhBTkRMRTogJChleHByLCAkKC4uLikpCgkJCX0gZWxzZSBpZiAoICFjb250
ZXh0IHx8IGNvbnRleHQuanF1ZXJ5ICkgewoJCQkJcmV0dXJuICggY29udGV4dCB8
fCByb290alF1ZXJ5ICkuZmluZCggc2VsZWN0b3IgKTsKCgkJCS8vIEhBTkRMRTog
JChleHByLCBjb250ZXh0KQoJCQkvLyAod2hpY2ggaXMganVzdCBlcXVpdmFsZW50
IHRvOiAkKGNvbnRleHQpLmZpbmQoZXhwcikKCQkJfSBlbHNlIHsKCQkJCXJldHVy
biB0aGlzLmNvbnN0cnVjdG9yKCBjb250ZXh0ICkuZmluZCggc2VsZWN0b3IgKTsK
CQkJfQoKCQkvLyBIQU5ETEU6ICQoZnVuY3Rpb24pCgkJLy8gU2hvcnRjdXQgZm9y
IGRvY3VtZW50IHJlYWR5CgkJfSBlbHNlIGlmICggalF1ZXJ5LmlzRnVuY3Rpb24o
IHNlbGVjdG9yICkgKSB7CgkJCXJldHVybiByb290alF1ZXJ5LnJlYWR5KCBzZWxl
Y3RvciApOwoJCX0KCgkJaWYgKCBzZWxlY3Rvci5zZWxlY3RvciAhPT0gdW5kZWZp
bmVkICkgewoJCQl0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3Iuc2VsZWN0b3I7CgkJ
CXRoaXMuY29udGV4dCA9IHNlbGVjdG9yLmNvbnRleHQ7CgkJfQoKCQlyZXR1cm4g
alF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IsIHRoaXMgKTsKCX0sCgoJLy8gU3Rh
cnQgd2l0aCBhbiBlbXB0eSBzZWxlY3RvcgoJc2VsZWN0b3I6ICIiLAoKCS8vIFRo
ZSBjdXJyZW50IHZlcnNpb24gb2YgalF1ZXJ5IGJlaW5nIHVzZWQKCWpxdWVyeTog
IjEuNy4yIiwKCgkvLyBUaGUgZGVmYXVsdCBsZW5ndGggb2YgYSBqUXVlcnkgb2Jq
ZWN0IGlzIDAKCWxlbmd0aDogMCwKCgkvLyBUaGUgbnVtYmVyIG9mIGVsZW1lbnRz
IGNvbnRhaW5lZCBpbiB0aGUgbWF0Y2hlZCBlbGVtZW50IHNldAoJc2l6ZTogZnVu
Y3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMubGVuZ3RoOwoJfSwKCgl0b0FycmF5OiBm
dW5jdGlvbigpIHsKCQlyZXR1cm4gc2xpY2UuY2FsbCggdGhpcywgMCApOwoJfSwK
CgkvLyBHZXQgdGhlIE50aCBlbGVtZW50IGluIHRoZSBtYXRjaGVkIGVsZW1lbnQg
c2V0IE9SCgkvLyBHZXQgdGhlIHdob2xlIG1hdGNoZWQgZWxlbWVudCBzZXQgYXMg
YSBjbGVhbiBhcnJheQoJZ2V0OiBmdW5jdGlvbiggbnVtICkgewoJCXJldHVybiBu
dW0gPT0gbnVsbCA/CgoJCQkvLyBSZXR1cm4gYSAnY2xlYW4nIGFycmF5CgkJCXRo
aXMudG9BcnJheSgpIDoKCgkJCS8vIFJldHVybiBqdXN0IHRoZSBvYmplY3QKCQkJ
KCBudW0gPCAwID8gdGhpc1sgdGhpcy5sZW5ndGggKyBudW0gXSA6IHRoaXNbIG51
bSBdICk7Cgl9LAoKCS8vIFRha2UgYW4gYXJyYXkgb2YgZWxlbWVudHMgYW5kIHB1
c2ggaXQgb250byB0aGUgc3RhY2sKCS8vIChyZXR1cm5pbmcgdGhlIG5ldyBtYXRj
aGVkIGVsZW1lbnQgc2V0KQoJcHVzaFN0YWNrOiBmdW5jdGlvbiggZWxlbXMsIG5h
bWUsIHNlbGVjdG9yICkgewoJCS8vIEJ1aWxkIGEgbmV3IGpRdWVyeSBtYXRjaGVk
IGVsZW1lbnQgc2V0CgkJdmFyIHJldCA9IHRoaXMuY29uc3RydWN0b3IoKTsKCgkJ
aWYgKCBqUXVlcnkuaXNBcnJheSggZWxlbXMgKSApIHsKCQkJcHVzaC5hcHBseSgg
cmV0LCBlbGVtcyApOwoKCQl9IGVsc2UgewoJCQlqUXVlcnkubWVyZ2UoIHJldCwg
ZWxlbXMgKTsKCQl9CgoJCS8vIEFkZCB0aGUgb2xkIG9iamVjdCBvbnRvIHRoZSBz
dGFjayAoYXMgYSByZWZlcmVuY2UpCgkJcmV0LnByZXZPYmplY3QgPSB0aGlzOwoK
CQlyZXQuY29udGV4dCA9IHRoaXMuY29udGV4dDsKCgkJaWYgKCBuYW1lID09PSAi
ZmluZCIgKSB7CgkJCXJldC5zZWxlY3RvciA9IHRoaXMuc2VsZWN0b3IgKyAoIHRo
aXMuc2VsZWN0b3IgPyAiICIgOiAiIiApICsgc2VsZWN0b3I7CgkJfSBlbHNlIGlm
ICggbmFtZSApIHsKCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICIu
IiArIG5hbWUgKyAiKCIgKyBzZWxlY3RvciArICIpIjsKCQl9CgoJCS8vIFJldHVy
biB0aGUgbmV3bHktZm9ybWVkIGVsZW1lbnQgc2V0CgkJcmV0dXJuIHJldDsKCX0s
CgoJLy8gRXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRo
ZSBtYXRjaGVkIHNldC4KCS8vIChZb3UgY2FuIHNlZWQgdGhlIGFyZ3VtZW50cyB3
aXRoIGFuIGFycmF5IG9mIGFyZ3MsIGJ1dCB0aGlzIGlzCgkvLyBvbmx5IHVzZWQg
aW50ZXJuYWxseS4pCgllYWNoOiBmdW5jdGlvbiggY2FsbGJhY2ssIGFyZ3MgKSB7
CgkJcmV0dXJuIGpRdWVyeS5lYWNoKCB0aGlzLCBjYWxsYmFjaywgYXJncyApOwoJ
fSwKCglyZWFkeTogZnVuY3Rpb24oIGZuICkgewoJCS8vIEF0dGFjaCB0aGUgbGlz
dGVuZXJzCgkJalF1ZXJ5LmJpbmRSZWFkeSgpOwoKCQkvLyBBZGQgdGhlIGNhbGxi
YWNrCgkJcmVhZHlMaXN0LmFkZCggZm4gKTsKCgkJcmV0dXJuIHRoaXM7Cgl9LAoK
CWVxOiBmdW5jdGlvbiggaSApIHsKCQlpID0gK2k7CgkJcmV0dXJuIGkgPT09IC0x
ID8KCQkJdGhpcy5zbGljZSggaSApIDoKCQkJdGhpcy5zbGljZSggaSwgaSArIDEg
KTsKCX0sCgoJZmlyc3Q6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLmVxKCAw
ICk7Cgl9LAoKCWxhc3Q6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLmVxKCAt
MSApOwoJfSwKCglzbGljZTogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMucHVz
aFN0YWNrKCBzbGljZS5hcHBseSggdGhpcywgYXJndW1lbnRzICksCgkJCSJzbGlj
ZSIsIHNsaWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikgKTsKCX0sCgoJbWFw
OiBmdW5jdGlvbiggY2FsbGJhY2sgKSB7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNr
KCBqUXVlcnkubWFwKHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBpICkgewoJCQlyZXR1
cm4gY2FsbGJhY2suY2FsbCggZWxlbSwgaSwgZWxlbSApOwoJCX0pKTsKCX0sCgoJ
ZW5kOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5wcmV2T2JqZWN0IHx8IHRo
aXMuY29uc3RydWN0b3IobnVsbCk7Cgl9LAoKCS8vIEZvciBpbnRlcm5hbCB1c2Ug
b25seS4KCS8vIEJlaGF2ZXMgbGlrZSBhbiBBcnJheSdzIG1ldGhvZCwgbm90IGxp
a2UgYSBqUXVlcnkgbWV0aG9kLgoJcHVzaDogcHVzaCwKCXNvcnQ6IFtdLnNvcnQs
CglzcGxpY2U6IFtdLnNwbGljZQp9OwoKLy8gR2l2ZSB0aGUgaW5pdCBmdW5jdGlv
biB0aGUgalF1ZXJ5IHByb3RvdHlwZSBmb3IgbGF0ZXIgaW5zdGFudGlhdGlvbgpq
UXVlcnkuZm4uaW5pdC5wcm90b3R5cGUgPSBqUXVlcnkuZm47CgpqUXVlcnkuZXh0
ZW5kID0galF1ZXJ5LmZuLmV4dGVuZCA9IGZ1bmN0aW9uKCkgewoJdmFyIG9wdGlv
bnMsIG5hbWUsIHNyYywgY29weSwgY29weUlzQXJyYXksIGNsb25lLAoJCXRhcmdl
dCA9IGFyZ3VtZW50c1swXSB8fCB7fSwKCQlpID0gMSwKCQlsZW5ndGggPSBhcmd1
bWVudHMubGVuZ3RoLAoJCWRlZXAgPSBmYWxzZTsKCgkvLyBIYW5kbGUgYSBkZWVw
IGNvcHkgc2l0dWF0aW9uCglpZiAoIHR5cGVvZiB0YXJnZXQgPT09ICJib29sZWFu
IiApIHsKCQlkZWVwID0gdGFyZ2V0OwoJCXRhcmdldCA9IGFyZ3VtZW50c1sxXSB8
fCB7fTsKCQkvLyBza2lwIHRoZSBib29sZWFuIGFuZCB0aGUgdGFyZ2V0CgkJaSA9
IDI7Cgl9CgoJLy8gSGFuZGxlIGNhc2Ugd2hlbiB0YXJnZXQgaXMgYSBzdHJpbmcg
b3Igc29tZXRoaW5nIChwb3NzaWJsZSBpbiBkZWVwIGNvcHkpCglpZiAoIHR5cGVv
ZiB0YXJnZXQgIT09ICJvYmplY3QiICYmICFqUXVlcnkuaXNGdW5jdGlvbih0YXJn
ZXQpICkgewoJCXRhcmdldCA9IHt9OwoJfQoKCS8vIGV4dGVuZCBqUXVlcnkgaXRz
ZWxmIGlmIG9ubHkgb25lIGFyZ3VtZW50IGlzIHBhc3NlZAoJaWYgKCBsZW5ndGgg
PT09IGkgKSB7CgkJdGFyZ2V0ID0gdGhpczsKCQktLWk7Cgl9CgoJZm9yICggOyBp
IDwgbGVuZ3RoOyBpKysgKSB7CgkJLy8gT25seSBkZWFsIHdpdGggbm9uLW51bGwv
dW5kZWZpbmVkIHZhbHVlcwoJCWlmICggKG9wdGlvbnMgPSBhcmd1bWVudHNbIGkg
XSkgIT0gbnVsbCApIHsKCQkJLy8gRXh0ZW5kIHRoZSBiYXNlIG9iamVjdAoJCQlm
b3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7CgkJCQlzcmMgPSB0YXJnZXRbIG5hbWUg
XTsKCQkJCWNvcHkgPSBvcHRpb25zWyBuYW1lIF07CgoJCQkJLy8gUHJldmVudCBu
ZXZlci1lbmRpbmcgbG9vcAoJCQkJaWYgKCB0YXJnZXQgPT09IGNvcHkgKSB7CgkJ
CQkJY29udGludWU7CgkJCQl9CgoJCQkJLy8gUmVjdXJzZSBpZiB3ZSdyZSBtZXJn
aW5nIHBsYWluIG9iamVjdHMgb3IgYXJyYXlzCgkJCQlpZiAoIGRlZXAgJiYgY29w
eSAmJiAoIGpRdWVyeS5pc1BsYWluT2JqZWN0KGNvcHkpIHx8IChjb3B5SXNBcnJh
eSA9IGpRdWVyeS5pc0FycmF5KGNvcHkpKSApICkgewoJCQkJCWlmICggY29weUlz
QXJyYXkgKSB7CgkJCQkJCWNvcHlJc0FycmF5ID0gZmFsc2U7CgkJCQkJCWNsb25l
ID0gc3JjICYmIGpRdWVyeS5pc0FycmF5KHNyYykgPyBzcmMgOiBbXTsKCgkJCQkJ
fSBlbHNlIHsKCQkJCQkJY2xvbmUgPSBzcmMgJiYgalF1ZXJ5LmlzUGxhaW5PYmpl
Y3Qoc3JjKSA/IHNyYyA6IHt9OwoJCQkJCX0KCgkJCQkJLy8gTmV2ZXIgbW92ZSBv
cmlnaW5hbCBvYmplY3RzLCBjbG9uZSB0aGVtCgkJCQkJdGFyZ2V0WyBuYW1lIF0g
PSBqUXVlcnkuZXh0ZW5kKCBkZWVwLCBjbG9uZSwgY29weSApOwoKCQkJCS8vIERv
bid0IGJyaW5nIGluIHVuZGVmaW5lZCB2YWx1ZXMKCQkJCX0gZWxzZSBpZiAoIGNv
cHkgIT09IHVuZGVmaW5lZCApIHsKCQkJCQl0YXJnZXRbIG5hbWUgXSA9IGNvcHk7
CgkJCQl9CgkJCX0KCQl9Cgl9CgoJLy8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmpl
Y3QKCXJldHVybiB0YXJnZXQ7Cn07CgpqUXVlcnkuZXh0ZW5kKHsKCW5vQ29uZmxp
Y3Q6IGZ1bmN0aW9uKCBkZWVwICkgewoJCWlmICggd2luZG93LiQgPT09IGpRdWVy
eSApIHsKCQkJd2luZG93LiQgPSBfJDsKCQl9CgoJCWlmICggZGVlcCAmJiB3aW5k
b3cualF1ZXJ5ID09PSBqUXVlcnkgKSB7CgkJCXdpbmRvdy5qUXVlcnkgPSBfalF1
ZXJ5OwoJCX0KCgkJcmV0dXJuIGpRdWVyeTsKCX0sCgoJLy8gSXMgdGhlIERPTSBy
ZWFkeSB0byBiZSB1c2VkPyBTZXQgdG8gdHJ1ZSBvbmNlIGl0IG9jY3Vycy4KCWlz
UmVhZHk6IGZhbHNlLAoKCS8vIEEgY291bnRlciB0byB0cmFjayBob3cgbWFueSBp
dGVtcyB0byB3YWl0IGZvciBiZWZvcmUKCS8vIHRoZSByZWFkeSBldmVudCBmaXJl
cy4gU2VlICM2NzgxCglyZWFkeVdhaXQ6IDEsCgoJLy8gSG9sZCAob3IgcmVsZWFz
ZSkgdGhlIHJlYWR5IGV2ZW50Cglob2xkUmVhZHk6IGZ1bmN0aW9uKCBob2xkICkg
ewoJCWlmICggaG9sZCApIHsKCQkJalF1ZXJ5LnJlYWR5V2FpdCsrOwoJCX0gZWxz
ZSB7CgkJCWpRdWVyeS5yZWFkeSggdHJ1ZSApOwoJCX0KCX0sCgoJLy8gSGFuZGxl
IHdoZW4gdGhlIERPTSBpcyByZWFkeQoJcmVhZHk6IGZ1bmN0aW9uKCB3YWl0ICkg
ewoJCS8vIEVpdGhlciBhIHJlbGVhc2VkIGhvbGQgb3IgYW4gRE9NcmVhZHkvbG9h
ZCBldmVudCBhbmQgbm90IHlldCByZWFkeQoJCWlmICggKHdhaXQgPT09IHRydWUg
JiYgIS0talF1ZXJ5LnJlYWR5V2FpdCkgfHwgKHdhaXQgIT09IHRydWUgJiYgIWpR
dWVyeS5pc1JlYWR5KSApIHsKCQkJLy8gTWFrZSBzdXJlIGJvZHkgZXhpc3RzLCBh
dCBsZWFzdCwgaW4gY2FzZSBJRSBnZXRzIGEgbGl0dGxlIG92ZXJ6ZWFsb3VzICh0
aWNrZXQgIzU0NDMpLgoJCQlpZiAoICFkb2N1bWVudC5ib2R5ICkgewoJCQkJcmV0
dXJuIHNldFRpbWVvdXQoIGpRdWVyeS5yZWFkeSwgMSApOwoJCQl9CgoJCQkvLyBS
ZW1lbWJlciB0aGF0IHRoZSBET00gaXMgcmVhZHkKCQkJalF1ZXJ5LmlzUmVhZHkg
PSB0cnVlOwoKCQkJLy8gSWYgYSBub3JtYWwgRE9NIFJlYWR5IGV2ZW50IGZpcmVk
LCBkZWNyZW1lbnQsIGFuZCB3YWl0IGlmIG5lZWQgYmUKCQkJaWYgKCB3YWl0ICE9
PSB0cnVlICYmIC0talF1ZXJ5LnJlYWR5V2FpdCA+IDAgKSB7CgkJCQlyZXR1cm47
CgkJCX0KCgkJCS8vIElmIHRoZXJlIGFyZSBmdW5jdGlvbnMgYm91bmQsIHRvIGV4
ZWN1dGUKCQkJcmVhZHlMaXN0LmZpcmVXaXRoKCBkb2N1bWVudCwgWyBqUXVlcnkg
XSApOwoKCQkJLy8gVHJpZ2dlciBhbnkgYm91bmQgcmVhZHkgZXZlbnRzCgkJCWlm
ICggalF1ZXJ5LmZuLnRyaWdnZXIgKSB7CgkJCQlqUXVlcnkoIGRvY3VtZW50ICku
dHJpZ2dlciggInJlYWR5IiApLm9mZiggInJlYWR5IiApOwoJCQl9CgkJfQoJfSwK
CgliaW5kUmVhZHk6IGZ1bmN0aW9uKCkgewoJCWlmICggcmVhZHlMaXN0ICkgewoJ
CQlyZXR1cm47CgkJfQoKCQlyZWFkeUxpc3QgPSBqUXVlcnkuQ2FsbGJhY2tzKCAi
b25jZSBtZW1vcnkiICk7CgoJCS8vIENhdGNoIGNhc2VzIHdoZXJlICQoZG9jdW1l
bnQpLnJlYWR5KCkgaXMgY2FsbGVkIGFmdGVyIHRoZQoJCS8vIGJyb3dzZXIgZXZl
bnQgaGFzIGFscmVhZHkgb2NjdXJyZWQuCgkJaWYgKCBkb2N1bWVudC5yZWFkeVN0
YXRlID09PSAiY29tcGxldGUiICkgewoJCQkvLyBIYW5kbGUgaXQgYXN5bmNocm9u
b3VzbHkgdG8gYWxsb3cgc2NyaXB0cyB0aGUgb3Bwb3J0dW5pdHkgdG8gZGVsYXkg
cmVhZHkKCQkJcmV0dXJuIHNldFRpbWVvdXQoIGpRdWVyeS5yZWFkeSwgMSApOwoJ
CX0KCgkJLy8gTW96aWxsYSwgT3BlcmEgYW5kIHdlYmtpdCBuaWdodGxpZXMgY3Vy
cmVudGx5IHN1cHBvcnQgdGhpcyBldmVudAoJCWlmICggZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lciApIHsKCQkJLy8gVXNlIHRoZSBoYW5keSBldmVudCBjYWxsYmFj
awoJCQlkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCAiRE9NQ29udGVudExvYWRl
ZCIsIERPTUNvbnRlbnRMb2FkZWQsIGZhbHNlICk7CgoJCQkvLyBBIGZhbGxiYWNr
IHRvIHdpbmRvdy5vbmxvYWQsIHRoYXQgd2lsbCBhbHdheXMgd29yawoJCQl3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lciggImxvYWQiLCBqUXVlcnkucmVhZHksIGZhbHNl
ICk7CgoJCS8vIElmIElFIGV2ZW50IG1vZGVsIGlzIHVzZWQKCQl9IGVsc2UgaWYg
KCBkb2N1bWVudC5hdHRhY2hFdmVudCApIHsKCQkJLy8gZW5zdXJlIGZpcmluZyBi
ZWZvcmUgb25sb2FkLAoJCQkvLyBtYXliZSBsYXRlIGJ1dCBzYWZlIGFsc28gZm9y
IGlmcmFtZXMKCQkJZG9jdW1lbnQuYXR0YWNoRXZlbnQoICJvbnJlYWR5c3RhdGVj
aGFuZ2UiLCBET01Db250ZW50TG9hZGVkICk7CgoJCQkvLyBBIGZhbGxiYWNrIHRv
IHdpbmRvdy5vbmxvYWQsIHRoYXQgd2lsbCBhbHdheXMgd29yawoJCQl3aW5kb3cu
YXR0YWNoRXZlbnQoICJvbmxvYWQiLCBqUXVlcnkucmVhZHkgKTsKCgkJCS8vIElm
IElFIGFuZCBub3QgYSBmcmFtZQoJCQkvLyBjb250aW51YWxseSBjaGVjayB0byBz
ZWUgaWYgdGhlIGRvY3VtZW50IGlzIHJlYWR5CgkJCXZhciB0b3BsZXZlbCA9IGZh
bHNlOwoKCQkJdHJ5IHsKCQkJCXRvcGxldmVsID0gd2luZG93LmZyYW1lRWxlbWVu
dCA9PSBudWxsOwoJCQl9IGNhdGNoKGUpIHt9CgoJCQlpZiAoIGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC5kb1Njcm9sbCAmJiB0b3BsZXZlbCApIHsKCQkJCWRvU2Ny
b2xsQ2hlY2soKTsKCQkJfQoJCX0KCX0sCgoJLy8gU2VlIHRlc3QvdW5pdC9jb3Jl
LmpzIGZvciBkZXRhaWxzIGNvbmNlcm5pbmcgaXNGdW5jdGlvbi4KCS8vIFNpbmNl
IHZlcnNpb24gMS4zLCBET00gbWV0aG9kcyBhbmQgZnVuY3Rpb25zIGxpa2UgYWxl
cnQKCS8vIGFyZW4ndCBzdXBwb3J0ZWQuIFRoZXkgcmV0dXJuIGZhbHNlIG9uIElF
ICgjMjk2OCkuCglpc0Z1bmN0aW9uOiBmdW5jdGlvbiggb2JqICkgewoJCXJldHVy
biBqUXVlcnkudHlwZShvYmopID09PSAiZnVuY3Rpb24iOwoJfSwKCglpc0FycmF5
OiBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIGpR
dWVyeS50eXBlKG9iaikgPT09ICJhcnJheSI7Cgl9LAoKCWlzV2luZG93OiBmdW5j
dGlvbiggb2JqICkgewoJCXJldHVybiBvYmogIT0gbnVsbCAmJiBvYmogPT0gb2Jq
LndpbmRvdzsKCX0sCgoJaXNOdW1lcmljOiBmdW5jdGlvbiggb2JqICkgewoJCXJl
dHVybiAhaXNOYU4oIHBhcnNlRmxvYXQob2JqKSApICYmIGlzRmluaXRlKCBvYmog
KTsKCX0sCgoJdHlwZTogZnVuY3Rpb24oIG9iaiApIHsKCQlyZXR1cm4gb2JqID09
IG51bGwgPwoJCQlTdHJpbmcoIG9iaiApIDoKCQkJY2xhc3MydHlwZVsgdG9TdHJp
bmcuY2FsbChvYmopIF0gfHwgIm9iamVjdCI7Cgl9LAoKCWlzUGxhaW5PYmplY3Q6
IGZ1bmN0aW9uKCBvYmogKSB7CgkJLy8gTXVzdCBiZSBhbiBPYmplY3QuCgkJLy8g
QmVjYXVzZSBvZiBJRSwgd2UgYWxzbyBoYXZlIHRvIGNoZWNrIHRoZSBwcmVzZW5j
ZSBvZiB0aGUgY29uc3RydWN0b3IgcHJvcGVydHkuCgkJLy8gTWFrZSBzdXJlIHRo
YXQgRE9NIG5vZGVzIGFuZCB3aW5kb3cgb2JqZWN0cyBkb24ndCBwYXNzIHRocm91
Z2gsIGFzIHdlbGwKCQlpZiAoICFvYmogfHwgalF1ZXJ5LnR5cGUob2JqKSAhPT0g
Im9iamVjdCIgfHwgb2JqLm5vZGVUeXBlIHx8IGpRdWVyeS5pc1dpbmRvdyggb2Jq
ICkgKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCXRyeSB7CgkJCS8vIE5vdCBv
d24gY29uc3RydWN0b3IgcHJvcGVydHkgbXVzdCBiZSBPYmplY3QKCQkJaWYgKCBv
YmouY29uc3RydWN0b3IgJiYKCQkJCSFoYXNPd24uY2FsbChvYmosICJjb25zdHJ1
Y3RvciIpICYmCgkJCQkhaGFzT3duLmNhbGwob2JqLmNvbnN0cnVjdG9yLnByb3Rv
dHlwZSwgImlzUHJvdG90eXBlT2YiKSApIHsKCQkJCXJldHVybiBmYWxzZTsKCQkJ
fQoJCX0gY2F0Y2ggKCBlICkgewoJCQkvLyBJRTgsOSBXaWxsIHRocm93IGV4Y2Vw
dGlvbnMgb24gY2VydGFpbiBob3N0IG9iamVjdHMgIzk4OTcKCQkJcmV0dXJuIGZh
bHNlOwoJCX0KCgkJLy8gT3duIHByb3BlcnRpZXMgYXJlIGVudW1lcmF0ZWQgZmly
c3RseSwgc28gdG8gc3BlZWQgdXAsCgkJLy8gaWYgbGFzdCBvbmUgaXMgb3duLCB0
aGVuIGFsbCBwcm9wZXJ0aWVzIGFyZSBvd24uCgoJCXZhciBrZXk7CgkJZm9yICgg
a2V5IGluIG9iaiApIHt9CgoJCXJldHVybiBrZXkgPT09IHVuZGVmaW5lZCB8fCBo
YXNPd24uY2FsbCggb2JqLCBrZXkgKTsKCX0sCgoJaXNFbXB0eU9iamVjdDogZnVu
Y3Rpb24oIG9iaiApIHsKCQlmb3IgKCB2YXIgbmFtZSBpbiBvYmogKSB7CgkJCXJl
dHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9LAoKCWVycm9yOiBmdW5j
dGlvbiggbXNnICkgewoJCXRocm93IG5ldyBFcnJvciggbXNnICk7Cgl9LAoKCXBh
cnNlSlNPTjogZnVuY3Rpb24oIGRhdGEgKSB7CgkJaWYgKCB0eXBlb2YgZGF0YSAh
PT0gInN0cmluZyIgfHwgIWRhdGEgKSB7CgkJCXJldHVybiBudWxsOwoJCX0KCgkJ
Ly8gTWFrZSBzdXJlIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyByZW1v
dmVkIChJRSBjYW4ndCBoYW5kbGUgaXQpCgkJZGF0YSA9IGpRdWVyeS50cmltKCBk
YXRhICk7CgoJCS8vIEF0dGVtcHQgdG8gcGFyc2UgdXNpbmcgdGhlIG5hdGl2ZSBK
U09OIHBhcnNlciBmaXJzdAoJCWlmICggd2luZG93LkpTT04gJiYgd2luZG93LkpT
T04ucGFyc2UgKSB7CgkJCXJldHVybiB3aW5kb3cuSlNPTi5wYXJzZSggZGF0YSAp
OwoJCX0KCgkJLy8gTWFrZSBzdXJlIHRoZSBpbmNvbWluZyBkYXRhIGlzIGFjdHVh
bCBKU09OCgkJLy8gTG9naWMgYm9ycm93ZWQgZnJvbSBodHRwOi8vanNvbi5vcmcv
anNvbjIuanMKCQlpZiAoIHJ2YWxpZGNoYXJzLnRlc3QoIGRhdGEucmVwbGFjZSgg
cnZhbGlkZXNjYXBlLCAiQCIgKQoJCQkucmVwbGFjZSggcnZhbGlkdG9rZW5zLCAi
XSIgKQoJCQkucmVwbGFjZSggcnZhbGlkYnJhY2VzLCAiIikpICkgewoKCQkJcmV0
dXJuICggbmV3IEZ1bmN0aW9uKCAicmV0dXJuICIgKyBkYXRhICkgKSgpOwoKCQl9
CgkJalF1ZXJ5LmVycm9yKCAiSW52YWxpZCBKU09OOiAiICsgZGF0YSApOwoJfSwK
CgkvLyBDcm9zcy1icm93c2VyIHhtbCBwYXJzaW5nCglwYXJzZVhNTDogZnVuY3Rp
b24oIGRhdGEgKSB7CgkJaWYgKCB0eXBlb2YgZGF0YSAhPT0gInN0cmluZyIgfHwg
IWRhdGEgKSB7CgkJCXJldHVybiBudWxsOwoJCX0KCQl2YXIgeG1sLCB0bXA7CgkJ
dHJ5IHsKCQkJaWYgKCB3aW5kb3cuRE9NUGFyc2VyICkgeyAvLyBTdGFuZGFyZAoJ
CQkJdG1wID0gbmV3IERPTVBhcnNlcigpOwoJCQkJeG1sID0gdG1wLnBhcnNlRnJv
bVN0cmluZyggZGF0YSAsICJ0ZXh0L3htbCIgKTsKCQkJfSBlbHNlIHsgLy8gSUUK
CQkJCXhtbCA9IG5ldyBBY3RpdmVYT2JqZWN0KCAiTWljcm9zb2Z0LlhNTERPTSIg
KTsKCQkJCXhtbC5hc3luYyA9ICJmYWxzZSI7CgkJCQl4bWwubG9hZFhNTCggZGF0
YSApOwoJCQl9CgkJfSBjYXRjaCggZSApIHsKCQkJeG1sID0gdW5kZWZpbmVkOwoJ
CX0KCQlpZiAoICF4bWwgfHwgIXhtbC5kb2N1bWVudEVsZW1lbnQgfHwgeG1sLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCAicGFyc2VyZXJyb3IiICkubGVuZ3RoICkgewoJ
CQlqUXVlcnkuZXJyb3IoICJJbnZhbGlkIFhNTDogIiArIGRhdGEgKTsKCQl9CgkJ
cmV0dXJuIHhtbDsKCX0sCgoJbm9vcDogZnVuY3Rpb24oKSB7fSwKCgkvLyBFdmFs
dWF0ZXMgYSBzY3JpcHQgaW4gYSBnbG9iYWwgY29udGV4dAoJLy8gV29ya2Fyb3Vu
ZHMgYmFzZWQgb24gZmluZGluZ3MgYnkgSmltIERyaXNjb2xsCgkvLyBodHRwOi8v
d2VibG9ncy5qYXZhLm5ldC9ibG9nL2RyaXNjb2xsL2FyY2hpdmUvMjAwOS8wOS8w
OC9ldmFsLWphdmFzY3JpcHQtZ2xvYmFsLWNvbnRleHQKCWdsb2JhbEV2YWw6IGZ1
bmN0aW9uKCBkYXRhICkgewoJCWlmICggZGF0YSAmJiBybm90d2hpdGUudGVzdCgg
ZGF0YSApICkgewoJCQkvLyBXZSB1c2UgZXhlY1NjcmlwdCBvbiBJbnRlcm5ldCBF
eHBsb3JlcgoJCQkvLyBXZSB1c2UgYW4gYW5vbnltb3VzIGZ1bmN0aW9uIHNvIHRo
YXQgY29udGV4dCBpcyB3aW5kb3cKCQkJLy8gcmF0aGVyIHRoYW4galF1ZXJ5IGlu
IEZpcmVmb3gKCQkJKCB3aW5kb3cuZXhlY1NjcmlwdCB8fCBmdW5jdGlvbiggZGF0
YSApIHsKCQkJCXdpbmRvd1sgImV2YWwiIF0uY2FsbCggd2luZG93LCBkYXRhICk7
CgkJCX0gKSggZGF0YSApOwoJCX0KCX0sCgoJLy8gQ29udmVydCBkYXNoZWQgdG8g
Y2FtZWxDYXNlOyB1c2VkIGJ5IHRoZSBjc3MgYW5kIGRhdGEgbW9kdWxlcwoJLy8g
TWljcm9zb2Z0IGZvcmdvdCB0byBodW1wIHRoZWlyIHZlbmRvciBwcmVmaXggKCM5
NTcyKQoJY2FtZWxDYXNlOiBmdW5jdGlvbiggc3RyaW5nICkgewoJCXJldHVybiBz
dHJpbmcucmVwbGFjZSggcm1zUHJlZml4LCAibXMtIiApLnJlcGxhY2UoIHJkYXNo
QWxwaGEsIGZjYW1lbENhc2UgKTsKCX0sCgoJbm9kZU5hbWU6IGZ1bmN0aW9uKCBl
bGVtLCBuYW1lICkgewoJCXJldHVybiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9k
ZU5hbWUudG9VcHBlckNhc2UoKSA9PT0gbmFtZS50b1VwcGVyQ2FzZSgpOwoJfSwK
CgkvLyBhcmdzIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5CgllYWNoOiBmdW5j
dGlvbiggb2JqZWN0LCBjYWxsYmFjaywgYXJncyApIHsKCQl2YXIgbmFtZSwgaSA9
IDAsCgkJCWxlbmd0aCA9IG9iamVjdC5sZW5ndGgsCgkJCWlzT2JqID0gbGVuZ3Ro
ID09PSB1bmRlZmluZWQgfHwgalF1ZXJ5LmlzRnVuY3Rpb24oIG9iamVjdCApOwoK
CQlpZiAoIGFyZ3MgKSB7CgkJCWlmICggaXNPYmogKSB7CgkJCQlmb3IgKCBuYW1l
IGluIG9iamVjdCApIHsKCQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3Rb
IG5hbWUgXSwgYXJncyApID09PSBmYWxzZSApIHsKCQkJCQkJYnJlYWs7CgkJCQkJ
fQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBpIDwgbGVuZ3RoOyApIHsK
CQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3RbIGkrKyBdLCBhcmdzICkg
PT09IGZhbHNlICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJ
Ly8gQSBzcGVjaWFsLCBmYXN0LCBjYXNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNl
IG9mIGVhY2gKCQl9IGVsc2UgewoJCQlpZiAoIGlzT2JqICkgewoJCQkJZm9yICgg
bmFtZSBpbiBvYmplY3QgKSB7CgkJCQkJaWYgKCBjYWxsYmFjay5jYWxsKCBvYmpl
Y3RbIG5hbWUgXSwgbmFtZSwgb2JqZWN0WyBuYW1lIF0gKSA9PT0gZmFsc2UgKSB7
CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWZvciAo
IDsgaSA8IGxlbmd0aDsgKSB7CgkJCQkJaWYgKCBjYWxsYmFjay5jYWxsKCBvYmpl
Y3RbIGkgXSwgaSwgb2JqZWN0WyBpKysgXSApID09PSBmYWxzZSApIHsKCQkJCQkJ
YnJlYWs7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gb2JqZWN0OwoJ
fSwKCgkvLyBVc2UgbmF0aXZlIFN0cmluZy50cmltIGZ1bmN0aW9uIHdoZXJldmVy
IHBvc3NpYmxlCgl0cmltOiB0cmltID8KCQlmdW5jdGlvbiggdGV4dCApIHsKCQkJ
cmV0dXJuIHRleHQgPT0gbnVsbCA/CgkJCQkiIiA6CgkJCQl0cmltLmNhbGwoIHRl
eHQgKTsKCQl9IDoKCgkJLy8gT3RoZXJ3aXNlIHVzZSBvdXIgb3duIHRyaW1taW5n
IGZ1bmN0aW9uYWxpdHkKCQlmdW5jdGlvbiggdGV4dCApIHsKCQkJcmV0dXJuIHRl
eHQgPT0gbnVsbCA/CgkJCQkiIiA6CgkJCQl0ZXh0LnRvU3RyaW5nKCkucmVwbGFj
ZSggdHJpbUxlZnQsICIiICkucmVwbGFjZSggdHJpbVJpZ2h0LCAiIiApOwoJCX0s
CgoJLy8gcmVzdWx0cyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seQoJbWFrZUFy
cmF5OiBmdW5jdGlvbiggYXJyYXksIHJlc3VsdHMgKSB7CgkJdmFyIHJldCA9IHJl
c3VsdHMgfHwgW107CgoJCWlmICggYXJyYXkgIT0gbnVsbCApIHsKCQkJLy8gVGhl
IHdpbmRvdywgc3RyaW5ncyAoYW5kIGZ1bmN0aW9ucykgYWxzbyBoYXZlICdsZW5n
dGgnCgkJCS8vIFR3ZWFrZWQgbG9naWMgc2xpZ2h0bHkgdG8gaGFuZGxlIEJsYWNr
YmVycnkgNC43IFJlZ0V4cCBpc3N1ZXMgIzY5MzAKCQkJdmFyIHR5cGUgPSBqUXVl
cnkudHlwZSggYXJyYXkgKTsKCgkJCWlmICggYXJyYXkubGVuZ3RoID09IG51bGwg
fHwgdHlwZSA9PT0gInN0cmluZyIgfHwgdHlwZSA9PT0gImZ1bmN0aW9uIiB8fCB0
eXBlID09PSAicmVnZXhwIiB8fCBqUXVlcnkuaXNXaW5kb3coIGFycmF5ICkgKSB7
CgkJCQlwdXNoLmNhbGwoIHJldCwgYXJyYXkgKTsKCQkJfSBlbHNlIHsKCQkJCWpR
dWVyeS5tZXJnZSggcmV0LCBhcnJheSApOwoJCQl9CgkJfQoKCQlyZXR1cm4gcmV0
OwoJfSwKCglpbkFycmF5OiBmdW5jdGlvbiggZWxlbSwgYXJyYXksIGkgKSB7CgkJ
dmFyIGxlbjsKCgkJaWYgKCBhcnJheSApIHsKCQkJaWYgKCBpbmRleE9mICkgewoJ
CQkJcmV0dXJuIGluZGV4T2YuY2FsbCggYXJyYXksIGVsZW0sIGkgKTsKCQkJfQoK
CQkJbGVuID0gYXJyYXkubGVuZ3RoOwoJCQlpID0gaSA/IGkgPCAwID8gTWF0aC5t
YXgoIDAsIGxlbiArIGkgKSA6IGkgOiAwOwoKCQkJZm9yICggOyBpIDwgbGVuOyBp
KysgKSB7CgkJCQkvLyBTa2lwIGFjY2Vzc2luZyBpbiBzcGFyc2UgYXJyYXlzCgkJ
CQlpZiAoIGkgaW4gYXJyYXkgJiYgYXJyYXlbIGkgXSA9PT0gZWxlbSApIHsKCQkJ
CQlyZXR1cm4gaTsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuIC0xOwoJfSwKCglt
ZXJnZTogZnVuY3Rpb24oIGZpcnN0LCBzZWNvbmQgKSB7CgkJdmFyIGkgPSBmaXJz
dC5sZW5ndGgsCgkJCWogPSAwOwoKCQlpZiAoIHR5cGVvZiBzZWNvbmQubGVuZ3Ro
ID09PSAibnVtYmVyIiApIHsKCQkJZm9yICggdmFyIGwgPSBzZWNvbmQubGVuZ3Ro
OyBqIDwgbDsgaisrICkgewoJCQkJZmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqIF07
CgkJCX0KCgkJfSBlbHNlIHsKCQkJd2hpbGUgKCBzZWNvbmRbal0gIT09IHVuZGVm
aW5lZCApIHsKCQkJCWZpcnN0WyBpKysgXSA9IHNlY29uZFsgaisrIF07CgkJCX0K
CQl9CgoJCWZpcnN0Lmxlbmd0aCA9IGk7CgoJCXJldHVybiBmaXJzdDsKCX0sCgoJ
Z3JlcDogZnVuY3Rpb24oIGVsZW1zLCBjYWxsYmFjaywgaW52ICkgewoJCXZhciBy
ZXQgPSBbXSwgcmV0VmFsOwoJCWludiA9ICEhaW52OwoKCQkvLyBHbyB0aHJvdWdo
IHRoZSBhcnJheSwgb25seSBzYXZpbmcgdGhlIGl0ZW1zCgkJLy8gdGhhdCBwYXNz
IHRoZSB2YWxpZGF0b3IgZnVuY3Rpb24KCQlmb3IgKCB2YXIgaSA9IDAsIGxlbmd0
aCA9IGVsZW1zLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCQlyZXRWYWwg
PSAhIWNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpICk7CgkJCWlmICggaW52ICE9PSBy
ZXRWYWwgKSB7CgkJCQlyZXQucHVzaCggZWxlbXNbIGkgXSApOwoJCQl9CgkJfQoK
CQlyZXR1cm4gcmV0OwoJfSwKCgkvLyBhcmcgaXMgZm9yIGludGVybmFsIHVzYWdl
IG9ubHkKCW1hcDogZnVuY3Rpb24oIGVsZW1zLCBjYWxsYmFjaywgYXJnICkgewoJ
CXZhciB2YWx1ZSwga2V5LCByZXQgPSBbXSwKCQkJaSA9IDAsCgkJCWxlbmd0aCA9
IGVsZW1zLmxlbmd0aCwKCQkJLy8ganF1ZXJ5IG9iamVjdHMgYXJlIHRyZWF0ZWQg
YXMgYXJyYXlzCgkJCWlzQXJyYXkgPSBlbGVtcyBpbnN0YW5jZW9mIGpRdWVyeSB8
fCBsZW5ndGggIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgbGVuZ3RoID09PSAibnVt
YmVyIiAmJiAoICggbGVuZ3RoID4gMCAmJiBlbGVtc1sgMCBdICYmIGVsZW1zWyBs
ZW5ndGggLTEgXSApIHx8IGxlbmd0aCA9PT0gMCB8fCBqUXVlcnkuaXNBcnJheSgg
ZWxlbXMgKSApIDsKCgkJLy8gR28gdGhyb3VnaCB0aGUgYXJyYXksIHRyYW5zbGF0
aW5nIGVhY2ggb2YgdGhlIGl0ZW1zIHRvIHRoZWlyCgkJaWYgKCBpc0FycmF5ICkg
ewoJCQlmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHsKCQkJCXZhbHVlID0gY2Fs
bGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApOwoKCQkJCWlmICggdmFsdWUgIT0g
bnVsbCApIHsKCQkJCQlyZXRbIHJldC5sZW5ndGggXSA9IHZhbHVlOwoJCQkJfQoJ
CQl9CgoJCS8vIEdvIHRocm91Z2ggZXZlcnkga2V5IG9uIHRoZSBvYmplY3QsCgkJ
fSBlbHNlIHsKCQkJZm9yICgga2V5IGluIGVsZW1zICkgewoJCQkJdmFsdWUgPSBj
YWxsYmFjayggZWxlbXNbIGtleSBdLCBrZXksIGFyZyApOwoKCQkJCWlmICggdmFs
dWUgIT0gbnVsbCApIHsKCQkJCQlyZXRbIHJldC5sZW5ndGggXSA9IHZhbHVlOwoJ
CQkJfQoJCQl9CgkJfQoKCQkvLyBGbGF0dGVuIGFueSBuZXN0ZWQgYXJyYXlzCgkJ
cmV0dXJuIHJldC5jb25jYXQuYXBwbHkoIFtdLCByZXQgKTsKCX0sCgoJLy8gQSBn
bG9iYWwgR1VJRCBjb3VudGVyIGZvciBvYmplY3RzCglndWlkOiAxLAoKCS8vIEJp
bmQgYSBmdW5jdGlvbiB0byBhIGNvbnRleHQsIG9wdGlvbmFsbHkgcGFydGlhbGx5
IGFwcGx5aW5nIGFueQoJLy8gYXJndW1lbnRzLgoJcHJveHk6IGZ1bmN0aW9uKCBm
biwgY29udGV4dCApIHsKCQlpZiAoIHR5cGVvZiBjb250ZXh0ID09PSAic3RyaW5n
IiApIHsKCQkJdmFyIHRtcCA9IGZuWyBjb250ZXh0IF07CgkJCWNvbnRleHQgPSBm
bjsKCQkJZm4gPSB0bXA7CgkJfQoKCQkvLyBRdWljayBjaGVjayB0byBkZXRlcm1p
bmUgaWYgdGFyZ2V0IGlzIGNhbGxhYmxlLCBpbiB0aGUgc3BlYwoJCS8vIHRoaXMg
dGhyb3dzIGEgVHlwZUVycm9yLCBidXQgd2Ugd2lsbCBqdXN0IHJldHVybiB1bmRl
ZmluZWQuCgkJaWYgKCAhalF1ZXJ5LmlzRnVuY3Rpb24oIGZuICkgKSB7CgkJCXJl
dHVybiB1bmRlZmluZWQ7CgkJfQoKCQkvLyBTaW11bGF0ZWQgYmluZAoJCXZhciBh
cmdzID0gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAyICksCgkJCXByb3h5ID0gZnVu
Y3Rpb24oKSB7CgkJCQlyZXR1cm4gZm4uYXBwbHkoIGNvbnRleHQsIGFyZ3MuY29u
Y2F0KCBzbGljZS5jYWxsKCBhcmd1bWVudHMgKSApICk7CgkJCX07CgoJCS8vIFNl
dCB0aGUgZ3VpZCBvZiB1bmlxdWUgaGFuZGxlciB0byB0aGUgc2FtZSBvZiBvcmln
aW5hbCBoYW5kbGVyLCBzbyBpdCBjYW4gYmUgcmVtb3ZlZAoJCXByb3h5Lmd1aWQg
PSBmbi5ndWlkID0gZm4uZ3VpZCB8fCBwcm94eS5ndWlkIHx8IGpRdWVyeS5ndWlk
Kys7CgoJCXJldHVybiBwcm94eTsKCX0sCgoJLy8gTXV0aWZ1bmN0aW9uYWwgbWV0
aG9kIHRvIGdldCBhbmQgc2V0IHZhbHVlcyB0byBhIGNvbGxlY3Rpb24KCS8vIFRo
ZSB2YWx1ZS9zIGNhbiBvcHRpb25hbGx5IGJlIGV4ZWN1dGVkIGlmIGl0J3MgYSBm
dW5jdGlvbgoJYWNjZXNzOiBmdW5jdGlvbiggZWxlbXMsIGZuLCBrZXksIHZhbHVl
LCBjaGFpbmFibGUsIGVtcHR5R2V0LCBwYXNzICkgewoJCXZhciBleGVjLAoJCQli
dWxrID0ga2V5ID09IG51bGwsCgkJCWkgPSAwLAoJCQlsZW5ndGggPSBlbGVtcy5s
ZW5ndGg7CgoJCS8vIFNldHMgbWFueSB2YWx1ZXMKCQlpZiAoIGtleSAmJiB0eXBl
b2Yga2V5ID09PSAib2JqZWN0IiApIHsKCQkJZm9yICggaSBpbiBrZXkgKSB7CgkJ
CQlqUXVlcnkuYWNjZXNzKCBlbGVtcywgZm4sIGksIGtleVtpXSwgMSwgZW1wdHlH
ZXQsIHZhbHVlICk7CgkJCX0KCQkJY2hhaW5hYmxlID0gMTsKCgkJLy8gU2V0cyBv
bmUgdmFsdWUKCQl9IGVsc2UgaWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkgewoJ
CQkvLyBPcHRpb25hbGx5LCBmdW5jdGlvbiB2YWx1ZXMgZ2V0IGV4ZWN1dGVkIGlm
IGV4ZWMgaXMgdHJ1ZQoJCQlleGVjID0gcGFzcyA9PT0gdW5kZWZpbmVkICYmIGpR
dWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApOwoKCQkJaWYgKCBidWxrICkgewoJCQkJ
Ly8gQnVsayBvcGVyYXRpb25zIG9ubHkgaXRlcmF0ZSB3aGVuIGV4ZWN1dGluZyBm
dW5jdGlvbiB2YWx1ZXMKCQkJCWlmICggZXhlYyApIHsKCQkJCQlleGVjID0gZm47
CgkJCQkJZm4gPSBmdW5jdGlvbiggZWxlbSwga2V5LCB2YWx1ZSApIHsKCQkJCQkJ
cmV0dXJuIGV4ZWMuY2FsbCggalF1ZXJ5KCBlbGVtICksIHZhbHVlICk7CgkJCQkJ
fTsKCgkJCQkvLyBPdGhlcndpc2UgdGhleSBydW4gYWdhaW5zdCB0aGUgZW50aXJl
IHNldAoJCQkJfSBlbHNlIHsKCQkJCQlmbi5jYWxsKCBlbGVtcywgdmFsdWUgKTsK
CQkJCQlmbiA9IG51bGw7CgkJCQl9CgkJCX0KCgkJCWlmICggZm4gKSB7CgkJCQlm
b3IgKDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCQkJCWZuKCBlbGVtc1tpXSwga2V5
LCBleGVjID8gdmFsdWUuY2FsbCggZWxlbXNbaV0sIGksIGZuKCBlbGVtc1tpXSwg
a2V5ICkgKSA6IHZhbHVlLCBwYXNzICk7CgkJCQl9CgkJCX0KCgkJCWNoYWluYWJs
ZSA9IDE7CgkJfQoKCQlyZXR1cm4gY2hhaW5hYmxlID8KCQkJZWxlbXMgOgoKCQkJ
Ly8gR2V0cwoJCQlidWxrID8KCQkJCWZuLmNhbGwoIGVsZW1zICkgOgoJCQkJbGVu
Z3RoID8gZm4oIGVsZW1zWzBdLCBrZXkgKSA6IGVtcHR5R2V0OwoJfSwKCglub3c6
IGZ1bmN0aW9uKCkgewoJCXJldHVybiAoIG5ldyBEYXRlKCkgKS5nZXRUaW1lKCk7
Cgl9LAoKCS8vIFVzZSBvZiBqUXVlcnkuYnJvd3NlciBpcyBmcm93bmVkIHVwb24u
CgkvLyBNb3JlIGRldGFpbHM6IGh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVXRpbGl0
aWVzL2pRdWVyeS5icm93c2VyCgl1YU1hdGNoOiBmdW5jdGlvbiggdWEgKSB7CgkJ
dWEgPSB1YS50b0xvd2VyQ2FzZSgpOwoKCQl2YXIgbWF0Y2ggPSByd2Via2l0LmV4
ZWMoIHVhICkgfHwKCQkJcm9wZXJhLmV4ZWMoIHVhICkgfHwKCQkJcm1zaWUuZXhl
YyggdWEgKSB8fAoJCQl1YS5pbmRleE9mKCJjb21wYXRpYmxlIikgPCAwICYmIHJt
b3ppbGxhLmV4ZWMoIHVhICkgfHwKCQkJW107CgoJCXJldHVybiB7IGJyb3dzZXI6
IG1hdGNoWzFdIHx8ICIiLCB2ZXJzaW9uOiBtYXRjaFsyXSB8fCAiMCIgfTsKCX0s
CgoJc3ViOiBmdW5jdGlvbigpIHsKCQlmdW5jdGlvbiBqUXVlcnlTdWIoIHNlbGVj
dG9yLCBjb250ZXh0ICkgewoJCQlyZXR1cm4gbmV3IGpRdWVyeVN1Yi5mbi5pbml0
KCBzZWxlY3RvciwgY29udGV4dCApOwoJCX0KCQlqUXVlcnkuZXh0ZW5kKCB0cnVl
LCBqUXVlcnlTdWIsIHRoaXMgKTsKCQlqUXVlcnlTdWIuc3VwZXJjbGFzcyA9IHRo
aXM7CgkJalF1ZXJ5U3ViLmZuID0galF1ZXJ5U3ViLnByb3RvdHlwZSA9IHRoaXMo
KTsKCQlqUXVlcnlTdWIuZm4uY29uc3RydWN0b3IgPSBqUXVlcnlTdWI7CgkJalF1
ZXJ5U3ViLnN1YiA9IHRoaXMuc3ViOwoJCWpRdWVyeVN1Yi5mbi5pbml0ID0gZnVu
Y3Rpb24gaW5pdCggc2VsZWN0b3IsIGNvbnRleHQgKSB7CgkJCWlmICggY29udGV4
dCAmJiBjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5ICYmICEoY29udGV4dCBpbnN0
YW5jZW9mIGpRdWVyeVN1YikgKSB7CgkJCQljb250ZXh0ID0galF1ZXJ5U3ViKCBj
b250ZXh0ICk7CgkJCX0KCgkJCXJldHVybiBqUXVlcnkuZm4uaW5pdC5jYWxsKCB0
aGlzLCBzZWxlY3RvciwgY29udGV4dCwgcm9vdGpRdWVyeVN1YiApOwoJCX07CgkJ
alF1ZXJ5U3ViLmZuLmluaXQucHJvdG90eXBlID0galF1ZXJ5U3ViLmZuOwoJCXZh
ciByb290alF1ZXJ5U3ViID0galF1ZXJ5U3ViKGRvY3VtZW50KTsKCQlyZXR1cm4g
alF1ZXJ5U3ViOwoJfSwKCglicm93c2VyOiB7fQp9KTsKCi8vIFBvcHVsYXRlIHRo
ZSBjbGFzczJ0eXBlIG1hcApqUXVlcnkuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3Ry
aW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCIuc3BsaXQoIiAi
KSwgZnVuY3Rpb24oaSwgbmFtZSkgewoJY2xhc3MydHlwZVsgIltvYmplY3QgIiAr
IG5hbWUgKyAiXSIgXSA9IG5hbWUudG9Mb3dlckNhc2UoKTsKfSk7Cgpicm93c2Vy
TWF0Y2ggPSBqUXVlcnkudWFNYXRjaCggdXNlckFnZW50ICk7CmlmICggYnJvd3Nl
ck1hdGNoLmJyb3dzZXIgKSB7CglqUXVlcnkuYnJvd3NlclsgYnJvd3Nlck1hdGNo
LmJyb3dzZXIgXSA9IHRydWU7CglqUXVlcnkuYnJvd3Nlci52ZXJzaW9uID0gYnJv
d3Nlck1hdGNoLnZlcnNpb247Cn0KCi8vIERlcHJlY2F0ZWQsIHVzZSBqUXVlcnku
YnJvd3Nlci53ZWJraXQgaW5zdGVhZAppZiAoIGpRdWVyeS5icm93c2VyLndlYmtp
dCApIHsKCWpRdWVyeS5icm93c2VyLnNhZmFyaSA9IHRydWU7Cn0KCi8vIElFIGRv
ZXNuJ3QgbWF0Y2ggbm9uLWJyZWFraW5nIHNwYWNlcyB3aXRoIFxzCmlmICggcm5v
dHdoaXRlLnRlc3QoICJceEEwIiApICkgewoJdHJpbUxlZnQgPSAvXltcc1x4QTBd
Ky87Cgl0cmltUmlnaHQgPSAvW1xzXHhBMF0rJC87Cn0KCi8vIEFsbCBqUXVlcnkg
b2JqZWN0cyBzaG91bGQgcG9pbnQgYmFjayB0byB0aGVzZQpyb290alF1ZXJ5ID0g
alF1ZXJ5KGRvY3VtZW50KTsKCi8vIENsZWFudXAgZnVuY3Rpb25zIGZvciB0aGUg
ZG9jdW1lbnQgcmVhZHkgbWV0aG9kCmlmICggZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lciApIHsKCURPTUNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpIHsKCQlkb2N1
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCAiRE9NQ29udGVudExvYWRlZCIsIERP
TUNvbnRlbnRMb2FkZWQsIGZhbHNlICk7CgkJalF1ZXJ5LnJlYWR5KCk7Cgl9OwoK
fSBlbHNlIGlmICggZG9jdW1lbnQuYXR0YWNoRXZlbnQgKSB7CglET01Db250ZW50
TG9hZGVkID0gZnVuY3Rpb24oKSB7CgkJLy8gTWFrZSBzdXJlIGJvZHkgZXhpc3Rz
LCBhdCBsZWFzdCwgaW4gY2FzZSBJRSBnZXRzIGEgbGl0dGxlIG92ZXJ6ZWFsb3Vz
ICh0aWNrZXQgIzU0NDMpLgoJCWlmICggZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0g
ImNvbXBsZXRlIiApIHsKCQkJZG9jdW1lbnQuZGV0YWNoRXZlbnQoICJvbnJlYWR5
c3RhdGVjaGFuZ2UiLCBET01Db250ZW50TG9hZGVkICk7CgkJCWpRdWVyeS5yZWFk
eSgpOwoJCX0KCX07Cn0KCi8vIFRoZSBET00gcmVhZHkgY2hlY2sgZm9yIEludGVy
bmV0IEV4cGxvcmVyCmZ1bmN0aW9uIGRvU2Nyb2xsQ2hlY2soKSB7CglpZiAoIGpR
dWVyeS5pc1JlYWR5ICkgewoJCXJldHVybjsKCX0KCgl0cnkgewoJCS8vIElmIElF
IGlzIHVzZWQsIHVzZSB0aGUgdHJpY2sgYnkgRGllZ28gUGVyaW5pCgkJLy8gaHR0
cDovL2phdmFzY3JpcHQubndib3guY29tL0lFQ29udGVudExvYWRlZC8KCQlkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwoImxlZnQiKTsKCX0gY2F0Y2go
ZSkgewoJCXNldFRpbWVvdXQoIGRvU2Nyb2xsQ2hlY2ssIDEgKTsKCQlyZXR1cm47
Cgl9CgoJLy8gYW5kIGV4ZWN1dGUgYW55IHdhaXRpbmcgZnVuY3Rpb25zCglqUXVl
cnkucmVhZHkoKTsKfQoKcmV0dXJuIGpRdWVyeTsKCn0pKCk7CgoKLy8gU3RyaW5n
IHRvIE9iamVjdCBmbGFncyBmb3JtYXQgY2FjaGUKdmFyIGZsYWdzQ2FjaGUgPSB7
fTsKCi8vIENvbnZlcnQgU3RyaW5nLWZvcm1hdHRlZCBmbGFncyBpbnRvIE9iamVj
dC1mb3JtYXR0ZWQgb25lcyBhbmQgc3RvcmUgaW4gY2FjaGUKZnVuY3Rpb24gY3Jl
YXRlRmxhZ3MoIGZsYWdzICkgewoJdmFyIG9iamVjdCA9IGZsYWdzQ2FjaGVbIGZs
YWdzIF0gPSB7fSwKCQlpLCBsZW5ndGg7CglmbGFncyA9IGZsYWdzLnNwbGl0KCAv
XHMrLyApOwoJZm9yICggaSA9IDAsIGxlbmd0aCA9IGZsYWdzLmxlbmd0aDsgaSA8
IGxlbmd0aDsgaSsrICkgewoJCW9iamVjdFsgZmxhZ3NbaV0gXSA9IHRydWU7Cgl9
CglyZXR1cm4gb2JqZWN0Owp9CgovKgogKiBDcmVhdGUgYSBjYWxsYmFjayBsaXN0
IHVzaW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoKICoKICoJZmxhZ3M6CWFu
IG9wdGlvbmFsIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIGZsYWdzIHRoYXQgd2ls
bCBjaGFuZ2UgaG93CiAqCQkJdGhlIGNhbGxiYWNrIGxpc3QgYmVoYXZlcwogKgog
KiBCeSBkZWZhdWx0IGEgY2FsbGJhY2sgbGlzdCB3aWxsIGFjdCBsaWtlIGFuIGV2
ZW50IGNhbGxiYWNrIGxpc3QgYW5kIGNhbiBiZQogKiAiZmlyZWQiIG11bHRpcGxl
IHRpbWVzLgogKgogKiBQb3NzaWJsZSBmbGFnczoKICoKICoJb25jZToJCQl3aWxs
IGVuc3VyZSB0aGUgY2FsbGJhY2sgbGlzdCBjYW4gb25seSBiZSBmaXJlZCBvbmNl
IChsaWtlIGEgRGVmZXJyZWQpCiAqCiAqCW1lbW9yeToJCQl3aWxsIGtlZXAgdHJh
Y2sgb2YgcHJldmlvdXMgdmFsdWVzIGFuZCB3aWxsIGNhbGwgYW55IGNhbGxiYWNr
IGFkZGVkCiAqCQkJCQlhZnRlciB0aGUgbGlzdCBoYXMgYmVlbiBmaXJlZCByaWdo
dCBhd2F5IHdpdGggdGhlIGxhdGVzdCAibWVtb3JpemVkIgogKgkJCQkJdmFsdWVz
IChsaWtlIGEgRGVmZXJyZWQpCiAqCiAqCXVuaXF1ZToJCQl3aWxsIGVuc3VyZSBh
IGNhbGxiYWNrIGNhbiBvbmx5IGJlIGFkZGVkIG9uY2UgKG5vIGR1cGxpY2F0ZSBp
biB0aGUgbGlzdCkKICoKICoJc3RvcE9uRmFsc2U6CWludGVycnVwdCBjYWxsaW5n
cyB3aGVuIGEgY2FsbGJhY2sgcmV0dXJucyBmYWxzZQogKgogKi8KalF1ZXJ5LkNh
bGxiYWNrcyA9IGZ1bmN0aW9uKCBmbGFncyApIHsKCgkvLyBDb252ZXJ0IGZsYWdz
IGZyb20gU3RyaW5nLWZvcm1hdHRlZCB0byBPYmplY3QtZm9ybWF0dGVkCgkvLyAo
d2UgY2hlY2sgaW4gY2FjaGUgZmlyc3QpCglmbGFncyA9IGZsYWdzID8gKCBmbGFn
c0NhY2hlWyBmbGFncyBdIHx8IGNyZWF0ZUZsYWdzKCBmbGFncyApICkgOiB7fTsK
Cgl2YXIgLy8gQWN0dWFsIGNhbGxiYWNrIGxpc3QKCQlsaXN0ID0gW10sCgkJLy8g
U3RhY2sgb2YgZmlyZSBjYWxscyBmb3IgcmVwZWF0YWJsZSBsaXN0cwoJCXN0YWNr
ID0gW10sCgkJLy8gTGFzdCBmaXJlIHZhbHVlIChmb3Igbm9uLWZvcmdldHRhYmxl
IGxpc3RzKQoJCW1lbW9yeSwKCQkvLyBGbGFnIHRvIGtub3cgaWYgbGlzdCB3YXMg
YWxyZWFkeSBmaXJlZAoJCWZpcmVkLAoJCS8vIEZsYWcgdG8ga25vdyBpZiBsaXN0
IGlzIGN1cnJlbnRseSBmaXJpbmcKCQlmaXJpbmcsCgkJLy8gRmlyc3QgY2FsbGJh
Y2sgdG8gZmlyZSAodXNlZCBpbnRlcm5hbGx5IGJ5IGFkZCBhbmQgZmlyZVdpdGgp
CgkJZmlyaW5nU3RhcnQsCgkJLy8gRW5kIG9mIHRoZSBsb29wIHdoZW4gZmlyaW5n
CgkJZmlyaW5nTGVuZ3RoLAoJCS8vIEluZGV4IG9mIGN1cnJlbnRseSBmaXJpbmcg
Y2FsbGJhY2sgKG1vZGlmaWVkIGJ5IHJlbW92ZSBpZiBuZWVkZWQpCgkJZmlyaW5n
SW5kZXgsCgkJLy8gQWRkIG9uZSBvciBzZXZlcmFsIGNhbGxiYWNrcyB0byB0aGUg
bGlzdAoJCWFkZCA9IGZ1bmN0aW9uKCBhcmdzICkgewoJCQl2YXIgaSwKCQkJCWxl
bmd0aCwKCQkJCWVsZW0sCgkJCQl0eXBlLAoJCQkJYWN0dWFsOwoJCQlmb3IgKCBp
ID0gMCwgbGVuZ3RoID0gYXJncy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKyApIHsK
CQkJCWVsZW0gPSBhcmdzWyBpIF07CgkJCQl0eXBlID0galF1ZXJ5LnR5cGUoIGVs
ZW0gKTsKCQkJCWlmICggdHlwZSA9PT0gImFycmF5IiApIHsKCQkJCQkvLyBJbnNw
ZWN0IHJlY3Vyc2l2ZWx5CgkJCQkJYWRkKCBlbGVtICk7CgkJCQl9IGVsc2UgaWYg
KCB0eXBlID09PSAiZnVuY3Rpb24iICkgewoJCQkJCS8vIEFkZCBpZiBub3QgaW4g
dW5pcXVlIG1vZGUgYW5kIGNhbGxiYWNrIGlzIG5vdCBpbgoJCQkJCWlmICggIWZs
YWdzLnVuaXF1ZSB8fCAhc2VsZi5oYXMoIGVsZW0gKSApIHsKCQkJCQkJbGlzdC5w
dXNoKCBlbGVtICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfSwKCQkvLyBGaXJlIGNh
bGxiYWNrcwoJCWZpcmUgPSBmdW5jdGlvbiggY29udGV4dCwgYXJncyApIHsKCQkJ
YXJncyA9IGFyZ3MgfHwgW107CgkJCW1lbW9yeSA9ICFmbGFncy5tZW1vcnkgfHwg
WyBjb250ZXh0LCBhcmdzIF07CgkJCWZpcmVkID0gdHJ1ZTsKCQkJZmlyaW5nID0g
dHJ1ZTsKCQkJZmlyaW5nSW5kZXggPSBmaXJpbmdTdGFydCB8fCAwOwoJCQlmaXJp
bmdTdGFydCA9IDA7CgkJCWZpcmluZ0xlbmd0aCA9IGxpc3QubGVuZ3RoOwoJCQlm
b3IgKCA7IGxpc3QgJiYgZmlyaW5nSW5kZXggPCBmaXJpbmdMZW5ndGg7IGZpcmlu
Z0luZGV4KysgKSB7CgkJCQlpZiAoIGxpc3RbIGZpcmluZ0luZGV4IF0uYXBwbHko
IGNvbnRleHQsIGFyZ3MgKSA9PT0gZmFsc2UgJiYgZmxhZ3Muc3RvcE9uRmFsc2Ug
KSB7CgkJCQkJbWVtb3J5ID0gdHJ1ZTsgLy8gTWFyayBhcyBoYWx0ZWQKCQkJCQli
cmVhazsKCQkJCX0KCQkJfQoJCQlmaXJpbmcgPSBmYWxzZTsKCQkJaWYgKCBsaXN0
ICkgewoJCQkJaWYgKCAhZmxhZ3Mub25jZSApIHsKCQkJCQlpZiAoIHN0YWNrICYm
IHN0YWNrLmxlbmd0aCApIHsKCQkJCQkJbWVtb3J5ID0gc3RhY2suc2hpZnQoKTsK
CQkJCQkJc2VsZi5maXJlV2l0aCggbWVtb3J5WyAwIF0sIG1lbW9yeVsgMSBdICk7
CgkJCQkJfQoJCQkJfSBlbHNlIGlmICggbWVtb3J5ID09PSB0cnVlICkgewoJCQkJ
CXNlbGYuZGlzYWJsZSgpOwoJCQkJfSBlbHNlIHsKCQkJCQlsaXN0ID0gW107CgkJ
CQl9CgkJCX0KCQl9LAoJCS8vIEFjdHVhbCBDYWxsYmFja3Mgb2JqZWN0CgkJc2Vs
ZiA9IHsKCQkJLy8gQWRkIGEgY2FsbGJhY2sgb3IgYSBjb2xsZWN0aW9uIG9mIGNh
bGxiYWNrcyB0byB0aGUgbGlzdAoJCQlhZGQ6IGZ1bmN0aW9uKCkgewoJCQkJaWYg
KCBsaXN0ICkgewoJCQkJCXZhciBsZW5ndGggPSBsaXN0Lmxlbmd0aDsKCQkJCQlh
ZGQoIGFyZ3VtZW50cyApOwoJCQkJCS8vIERvIHdlIG5lZWQgdG8gYWRkIHRoZSBj
YWxsYmFja3MgdG8gdGhlCgkJCQkJLy8gY3VycmVudCBmaXJpbmcgYmF0Y2g/CgkJ
CQkJaWYgKCBmaXJpbmcgKSB7CgkJCQkJCWZpcmluZ0xlbmd0aCA9IGxpc3QubGVu
Z3RoOwoJCQkJCS8vIFdpdGggbWVtb3J5LCBpZiB3ZSdyZSBub3QgZmlyaW5nIHRo
ZW4KCQkJCQkvLyB3ZSBzaG91bGQgY2FsbCByaWdodCBhd2F5LCB1bmxlc3MgcHJl
dmlvdXMKCQkJCQkvLyBmaXJpbmcgd2FzIGhhbHRlZCAoc3RvcE9uRmFsc2UpCgkJ
CQkJfSBlbHNlIGlmICggbWVtb3J5ICYmIG1lbW9yeSAhPT0gdHJ1ZSApIHsKCQkJ
CQkJZmlyaW5nU3RhcnQgPSBsZW5ndGg7CgkJCQkJCWZpcmUoIG1lbW9yeVsgMCBd
LCBtZW1vcnlbIDEgXSApOwoJCQkJCX0KCQkJCX0KCQkJCXJldHVybiB0aGlzOwoJ
CQl9LAoJCQkvLyBSZW1vdmUgYSBjYWxsYmFjayBmcm9tIHRoZSBsaXN0CgkJCXJl
bW92ZTogZnVuY3Rpb24oKSB7CgkJCQlpZiAoIGxpc3QgKSB7CgkJCQkJdmFyIGFy
Z3MgPSBhcmd1bWVudHMsCgkJCQkJCWFyZ0luZGV4ID0gMCwKCQkJCQkJYXJnTGVu
Z3RoID0gYXJncy5sZW5ndGg7CgkJCQkJZm9yICggOyBhcmdJbmRleCA8IGFyZ0xl
bmd0aCA7IGFyZ0luZGV4KysgKSB7CgkJCQkJCWZvciAoIHZhciBpID0gMDsgaSA8
IGxpc3QubGVuZ3RoOyBpKysgKSB7CgkJCQkJCQlpZiAoIGFyZ3NbIGFyZ0luZGV4
IF0gPT09IGxpc3RbIGkgXSApIHsKCQkJCQkJCQkvLyBIYW5kbGUgZmlyaW5nSW5k
ZXggYW5kIGZpcmluZ0xlbmd0aAoJCQkJCQkJCWlmICggZmlyaW5nICkgewoJCQkJ
CQkJCQlpZiAoIGkgPD0gZmlyaW5nTGVuZ3RoICkgewoJCQkJCQkJCQkJZmlyaW5n
TGVuZ3RoLS07CgkJCQkJCQkJCQlpZiAoIGkgPD0gZmlyaW5nSW5kZXggKSB7CgkJ
CQkJCQkJCQkJZmlyaW5nSW5kZXgtLTsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJfQoJ
CQkJCQkJCX0KCQkJCQkJCQkvLyBSZW1vdmUgdGhlIGVsZW1lbnQKCQkJCQkJCQls
aXN0LnNwbGljZSggaS0tLCAxICk7CgkJCQkJCQkJLy8gSWYgd2UgaGF2ZSBzb21l
IHVuaWNpdHkgcHJvcGVydHkgdGhlbgoJCQkJCQkJCS8vIHdlIG9ubHkgbmVlZCB0
byBkbyB0aGlzIG9uY2UKCQkJCQkJCQlpZiAoIGZsYWdzLnVuaXF1ZSApIHsKCQkJ
CQkJCQkJYnJlYWs7CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJ
CQkJfQoJCQkJcmV0dXJuIHRoaXM7CgkJCX0sCgkJCS8vIENvbnRyb2wgaWYgYSBn
aXZlbiBjYWxsYmFjayBpcyBpbiB0aGUgbGlzdAoJCQloYXM6IGZ1bmN0aW9uKCBm
biApIHsKCQkJCWlmICggbGlzdCApIHsKCQkJCQl2YXIgaSA9IDAsCgkJCQkJCWxl
bmd0aCA9IGxpc3QubGVuZ3RoOwoJCQkJCWZvciAoIDsgaSA8IGxlbmd0aDsgaSsr
ICkgewoJCQkJCQlpZiAoIGZuID09PSBsaXN0WyBpIF0gKSB7CgkJCQkJCQlyZXR1
cm4gdHJ1ZTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCXJldHVybiBmYWxzZTsK
CQkJfSwKCQkJLy8gUmVtb3ZlIGFsbCBjYWxsYmFja3MgZnJvbSB0aGUgbGlzdAoJ
CQllbXB0eTogZnVuY3Rpb24oKSB7CgkJCQlsaXN0ID0gW107CgkJCQlyZXR1cm4g
dGhpczsKCQkJfSwKCQkJLy8gSGF2ZSB0aGUgbGlzdCBkbyBub3RoaW5nIGFueW1v
cmUKCQkJZGlzYWJsZTogZnVuY3Rpb24oKSB7CgkJCQlsaXN0ID0gc3RhY2sgPSBt
ZW1vcnkgPSB1bmRlZmluZWQ7CgkJCQlyZXR1cm4gdGhpczsKCQkJfSwKCQkJLy8g
SXMgaXQgZGlzYWJsZWQ/CgkJCWRpc2FibGVkOiBmdW5jdGlvbigpIHsKCQkJCXJl
dHVybiAhbGlzdDsKCQkJfSwKCQkJLy8gTG9jayB0aGUgbGlzdCBpbiBpdHMgY3Vy
cmVudCBzdGF0ZQoJCQlsb2NrOiBmdW5jdGlvbigpIHsKCQkJCXN0YWNrID0gdW5k
ZWZpbmVkOwoJCQkJaWYgKCAhbWVtb3J5IHx8IG1lbW9yeSA9PT0gdHJ1ZSApIHsK
CQkJCQlzZWxmLmRpc2FibGUoKTsKCQkJCX0KCQkJCXJldHVybiB0aGlzOwoJCQl9
LAoJCQkvLyBJcyBpdCBsb2NrZWQ/CgkJCWxvY2tlZDogZnVuY3Rpb24oKSB7CgkJ
CQlyZXR1cm4gIXN0YWNrOwoJCQl9LAoJCQkvLyBDYWxsIGFsbCBjYWxsYmFja3Mg
d2l0aCB0aGUgZ2l2ZW4gY29udGV4dCBhbmQgYXJndW1lbnRzCgkJCWZpcmVXaXRo
OiBmdW5jdGlvbiggY29udGV4dCwgYXJncyApIHsKCQkJCWlmICggc3RhY2sgKSB7
CgkJCQkJaWYgKCBmaXJpbmcgKSB7CgkJCQkJCWlmICggIWZsYWdzLm9uY2UgKSB7
CgkJCQkJCQlzdGFjay5wdXNoKCBbIGNvbnRleHQsIGFyZ3MgXSApOwoJCQkJCQl9
CgkJCQkJfSBlbHNlIGlmICggISggZmxhZ3Mub25jZSAmJiBtZW1vcnkgKSApIHsK
CQkJCQkJZmlyZSggY29udGV4dCwgYXJncyApOwoJCQkJCX0KCQkJCX0KCQkJCXJl
dHVybiB0aGlzOwoJCQl9LAoJCQkvLyBDYWxsIGFsbCB0aGUgY2FsbGJhY2tzIHdp
dGggdGhlIGdpdmVuIGFyZ3VtZW50cwoJCQlmaXJlOiBmdW5jdGlvbigpIHsKCQkJ
CXNlbGYuZmlyZVdpdGgoIHRoaXMsIGFyZ3VtZW50cyApOwoJCQkJcmV0dXJuIHRo
aXM7CgkJCX0sCgkJCS8vIFRvIGtub3cgaWYgdGhlIGNhbGxiYWNrcyBoYXZlIGFs
cmVhZHkgYmVlbiBjYWxsZWQgYXQgbGVhc3Qgb25jZQoJCQlmaXJlZDogZnVuY3Rp
b24oKSB7CgkJCQlyZXR1cm4gISFmaXJlZDsKCQkJfQoJCX07CgoJcmV0dXJuIHNl
bGY7Cn07CgoKCgp2YXIgLy8gU3RhdGljIHJlZmVyZW5jZSB0byBzbGljZQoJc2xp
Y2VEZWZlcnJlZCA9IFtdLnNsaWNlOwoKalF1ZXJ5LmV4dGVuZCh7CgoJRGVmZXJy
ZWQ6IGZ1bmN0aW9uKCBmdW5jICkgewoJCXZhciBkb25lTGlzdCA9IGpRdWVyeS5D
YWxsYmFja3MoICJvbmNlIG1lbW9yeSIgKSwKCQkJZmFpbExpc3QgPSBqUXVlcnku
Q2FsbGJhY2tzKCAib25jZSBtZW1vcnkiICksCgkJCXByb2dyZXNzTGlzdCA9IGpR
dWVyeS5DYWxsYmFja3MoICJtZW1vcnkiICksCgkJCXN0YXRlID0gInBlbmRpbmci
LAoJCQlsaXN0cyA9IHsKCQkJCXJlc29sdmU6IGRvbmVMaXN0LAoJCQkJcmVqZWN0
OiBmYWlsTGlzdCwKCQkJCW5vdGlmeTogcHJvZ3Jlc3NMaXN0CgkJCX0sCgkJCXBy
b21pc2UgPSB7CgkJCQlkb25lOiBkb25lTGlzdC5hZGQsCgkJCQlmYWlsOiBmYWls
TGlzdC5hZGQsCgkJCQlwcm9ncmVzczogcHJvZ3Jlc3NMaXN0LmFkZCwKCgkJCQlz
dGF0ZTogZnVuY3Rpb24oKSB7CgkJCQkJcmV0dXJuIHN0YXRlOwoJCQkJfSwKCgkJ
CQkvLyBEZXByZWNhdGVkCgkJCQlpc1Jlc29sdmVkOiBkb25lTGlzdC5maXJlZCwK
CQkJCWlzUmVqZWN0ZWQ6IGZhaWxMaXN0LmZpcmVkLAoKCQkJCXRoZW46IGZ1bmN0
aW9uKCBkb25lQ2FsbGJhY2tzLCBmYWlsQ2FsbGJhY2tzLCBwcm9ncmVzc0NhbGxi
YWNrcyApIHsKCQkJCQlkZWZlcnJlZC5kb25lKCBkb25lQ2FsbGJhY2tzICkuZmFp
bCggZmFpbENhbGxiYWNrcyApLnByb2dyZXNzKCBwcm9ncmVzc0NhbGxiYWNrcyAp
OwoJCQkJCXJldHVybiB0aGlzOwoJCQkJfSwKCQkJCWFsd2F5czogZnVuY3Rpb24o
KSB7CgkJCQkJZGVmZXJyZWQuZG9uZS5hcHBseSggZGVmZXJyZWQsIGFyZ3VtZW50
cyApLmZhaWwuYXBwbHkoIGRlZmVycmVkLCBhcmd1bWVudHMgKTsKCQkJCQlyZXR1
cm4gdGhpczsKCQkJCX0sCgkJCQlwaXBlOiBmdW5jdGlvbiggZm5Eb25lLCBmbkZh
aWwsIGZuUHJvZ3Jlc3MgKSB7CgkJCQkJcmV0dXJuIGpRdWVyeS5EZWZlcnJlZChm
dW5jdGlvbiggbmV3RGVmZXIgKSB7CgkJCQkJCWpRdWVyeS5lYWNoKCB7CgkJCQkJ
CQlkb25lOiBbIGZuRG9uZSwgInJlc29sdmUiIF0sCgkJCQkJCQlmYWlsOiBbIGZu
RmFpbCwgInJlamVjdCIgXSwKCQkJCQkJCXByb2dyZXNzOiBbIGZuUHJvZ3Jlc3Ms
ICJub3RpZnkiIF0KCQkJCQkJfSwgZnVuY3Rpb24oIGhhbmRsZXIsIGRhdGEgKSB7
CgkJCQkJCQl2YXIgZm4gPSBkYXRhWyAwIF0sCgkJCQkJCQkJYWN0aW9uID0gZGF0
YVsgMSBdLAoJCQkJCQkJCXJldHVybmVkOwoJCQkJCQkJaWYgKCBqUXVlcnkuaXNG
dW5jdGlvbiggZm4gKSApIHsKCQkJCQkJCQlkZWZlcnJlZFsgaGFuZGxlciBdKGZ1
bmN0aW9uKCkgewoJCQkJCQkJCQlyZXR1cm5lZCA9IGZuLmFwcGx5KCB0aGlzLCBh
cmd1bWVudHMgKTsKCQkJCQkJCQkJaWYgKCByZXR1cm5lZCAmJiBqUXVlcnkuaXNG
dW5jdGlvbiggcmV0dXJuZWQucHJvbWlzZSApICkgewoJCQkJCQkJCQkJcmV0dXJu
ZWQucHJvbWlzZSgpLnRoZW4oIG5ld0RlZmVyLnJlc29sdmUsIG5ld0RlZmVyLnJl
amVjdCwgbmV3RGVmZXIubm90aWZ5ICk7CgkJCQkJCQkJCX0gZWxzZSB7CgkJCQkJ
CQkJCQluZXdEZWZlclsgYWN0aW9uICsgIldpdGgiIF0oIHRoaXMgPT09IGRlZmVy
cmVkID8gbmV3RGVmZXIgOiB0aGlzLCBbIHJldHVybmVkIF0gKTsKCQkJCQkJCQkJ
fQoJCQkJCQkJCX0pOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlkZWZlcnJlZFsg
aGFuZGxlciBdKCBuZXdEZWZlclsgYWN0aW9uIF0gKTsKCQkJCQkJCX0KCQkJCQkJ
fSk7CgkJCQkJfSkucHJvbWlzZSgpOwoJCQkJfSwKCQkJCS8vIEdldCBhIHByb21p
c2UgZm9yIHRoaXMgZGVmZXJyZWQKCQkJCS8vIElmIG9iaiBpcyBwcm92aWRlZCwg
dGhlIHByb21pc2UgYXNwZWN0IGlzIGFkZGVkIHRvIHRoZSBvYmplY3QKCQkJCXBy
b21pc2U6IGZ1bmN0aW9uKCBvYmogKSB7CgkJCQkJaWYgKCBvYmogPT0gbnVsbCAp
IHsKCQkJCQkJb2JqID0gcHJvbWlzZTsKCQkJCQl9IGVsc2UgewoJCQkJCQlmb3Ig
KCB2YXIga2V5IGluIHByb21pc2UgKSB7CgkJCQkJCQlvYmpbIGtleSBdID0gcHJv
bWlzZVsga2V5IF07CgkJCQkJCX0KCQkJCQl9CgkJCQkJcmV0dXJuIG9iajsKCQkJ
CX0KCQkJfSwKCQkJZGVmZXJyZWQgPSBwcm9taXNlLnByb21pc2Uoe30pLAoJCQlr
ZXk7CgoJCWZvciAoIGtleSBpbiBsaXN0cyApIHsKCQkJZGVmZXJyZWRbIGtleSBd
ID0gbGlzdHNbIGtleSBdLmZpcmU7CgkJCWRlZmVycmVkWyBrZXkgKyAiV2l0aCIg
XSA9IGxpc3RzWyBrZXkgXS5maXJlV2l0aDsKCQl9CgoJCS8vIEhhbmRsZSBzdGF0
ZQoJCWRlZmVycmVkLmRvbmUoIGZ1bmN0aW9uKCkgewoJCQlzdGF0ZSA9ICJyZXNv
bHZlZCI7CgkJfSwgZmFpbExpc3QuZGlzYWJsZSwgcHJvZ3Jlc3NMaXN0LmxvY2sg
KS5mYWlsKCBmdW5jdGlvbigpIHsKCQkJc3RhdGUgPSAicmVqZWN0ZWQiOwoJCX0s
IGRvbmVMaXN0LmRpc2FibGUsIHByb2dyZXNzTGlzdC5sb2NrICk7CgoJCS8vIENh
bGwgZ2l2ZW4gZnVuYyBpZiBhbnkKCQlpZiAoIGZ1bmMgKSB7CgkJCWZ1bmMuY2Fs
bCggZGVmZXJyZWQsIGRlZmVycmVkICk7CgkJfQoKCQkvLyBBbGwgZG9uZSEKCQly
ZXR1cm4gZGVmZXJyZWQ7Cgl9LAoKCS8vIERlZmVycmVkIGhlbHBlcgoJd2hlbjog
ZnVuY3Rpb24oIGZpcnN0UGFyYW0gKSB7CgkJdmFyIGFyZ3MgPSBzbGljZURlZmVy
cmVkLmNhbGwoIGFyZ3VtZW50cywgMCApLAoJCQlpID0gMCwKCQkJbGVuZ3RoID0g
YXJncy5sZW5ndGgsCgkJCXBWYWx1ZXMgPSBuZXcgQXJyYXkoIGxlbmd0aCApLAoJ
CQljb3VudCA9IGxlbmd0aCwKCQkJcENvdW50ID0gbGVuZ3RoLAoJCQlkZWZlcnJl
ZCA9IGxlbmd0aCA8PSAxICYmIGZpcnN0UGFyYW0gJiYgalF1ZXJ5LmlzRnVuY3Rp
b24oIGZpcnN0UGFyYW0ucHJvbWlzZSApID8KCQkJCWZpcnN0UGFyYW0gOgoJCQkJ
alF1ZXJ5LkRlZmVycmVkKCksCgkJCXByb21pc2UgPSBkZWZlcnJlZC5wcm9taXNl
KCk7CgkJZnVuY3Rpb24gcmVzb2x2ZUZ1bmMoIGkgKSB7CgkJCXJldHVybiBmdW5j
dGlvbiggdmFsdWUgKSB7CgkJCQlhcmdzWyBpIF0gPSBhcmd1bWVudHMubGVuZ3Ro
ID4gMSA/IHNsaWNlRGVmZXJyZWQuY2FsbCggYXJndW1lbnRzLCAwICkgOiB2YWx1
ZTsKCQkJCWlmICggISggLS1jb3VudCApICkgewoJCQkJCWRlZmVycmVkLnJlc29s
dmVXaXRoKCBkZWZlcnJlZCwgYXJncyApOwoJCQkJfQoJCQl9OwoJCX0KCQlmdW5j
dGlvbiBwcm9ncmVzc0Z1bmMoIGkgKSB7CgkJCXJldHVybiBmdW5jdGlvbiggdmFs
dWUgKSB7CgkJCQlwVmFsdWVzWyBpIF0gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/
IHNsaWNlRGVmZXJyZWQuY2FsbCggYXJndW1lbnRzLCAwICkgOiB2YWx1ZTsKCQkJ
CWRlZmVycmVkLm5vdGlmeVdpdGgoIHByb21pc2UsIHBWYWx1ZXMgKTsKCQkJfTsK
CQl9CgkJaWYgKCBsZW5ndGggPiAxICkgewoJCQlmb3IgKCA7IGkgPCBsZW5ndGg7
IGkrKyApIHsKCQkJCWlmICggYXJnc1sgaSBdICYmIGFyZ3NbIGkgXS5wcm9taXNl
ICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCBhcmdzWyBpIF0ucHJvbWlzZSApICkgewoJ
CQkJCWFyZ3NbIGkgXS5wcm9taXNlKCkudGhlbiggcmVzb2x2ZUZ1bmMoaSksIGRl
ZmVycmVkLnJlamVjdCwgcHJvZ3Jlc3NGdW5jKGkpICk7CgkJCQl9IGVsc2UgewoJ
CQkJCS0tY291bnQ7CgkJCQl9CgkJCX0KCQkJaWYgKCAhY291bnQgKSB7CgkJCQlk
ZWZlcnJlZC5yZXNvbHZlV2l0aCggZGVmZXJyZWQsIGFyZ3MgKTsKCQkJfQoJCX0g
ZWxzZSBpZiAoIGRlZmVycmVkICE9PSBmaXJzdFBhcmFtICkgewoJCQlkZWZlcnJl
ZC5yZXNvbHZlV2l0aCggZGVmZXJyZWQsIGxlbmd0aCA/IFsgZmlyc3RQYXJhbSBd
IDogW10gKTsKCQl9CgkJcmV0dXJuIHByb21pc2U7Cgl9Cn0pOwoKCgoKalF1ZXJ5
LnN1cHBvcnQgPSAoZnVuY3Rpb24oKSB7CgoJdmFyIHN1cHBvcnQsCgkJYWxsLAoJ
CWEsCgkJc2VsZWN0LAoJCW9wdCwKCQlpbnB1dCwKCQlmcmFnbWVudCwKCQl0ZHMs
CgkJZXZlbnRzLAoJCWV2ZW50TmFtZSwKCQlpLAoJCWlzU3VwcG9ydGVkLAoJCWRp
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJkaXYiICksCgkJZG9jdW1lbnRF
bGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwoKCS8vIFByZWxpbWlu
YXJ5IHRlc3RzCglkaXYuc2V0QXR0cmlidXRlKCJjbGFzc05hbWUiLCAidCIpOwoJ
ZGl2LmlubmVySFRNTCA9ICIgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJl
Zj0nL2EnIHN0eWxlPSd0b3A6MXB4O2Zsb2F0OmxlZnQ7b3BhY2l0eTouNTU7Jz5h
PC9hPjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiI7CgoJYWxsID0gZGl2LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCAiKiIgKTsKCWEgPSBkaXYuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoICJhIiApWyAwIF07CgoJLy8gQ2FuJ3QgZ2V0IGJhc2ljIHRlc3Qgc3Vw
cG9ydAoJaWYgKCAhYWxsIHx8ICFhbGwubGVuZ3RoIHx8ICFhICkgewoJCXJldHVy
biB7fTsKCX0KCgkvLyBGaXJzdCBiYXRjaCBvZiBzdXBwb3J0cyB0ZXN0cwoJc2Vs
ZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNlbGVjdCIgKTsKCW9wdCA9
IHNlbGVjdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0
aW9uIikgKTsKCWlucHV0ID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiaW5w
dXQiIClbIDAgXTsKCglzdXBwb3J0ID0gewoJCS8vIElFIHN0cmlwcyBsZWFkaW5n
IHdoaXRlc3BhY2Ugd2hlbiAuaW5uZXJIVE1MIGlzIHVzZWQKCQlsZWFkaW5nV2hp
dGVzcGFjZTogKCBkaXYuZmlyc3RDaGlsZC5ub2RlVHlwZSA9PT0gMyApLAoKCQkv
LyBNYWtlIHN1cmUgdGhhdCB0Ym9keSBlbGVtZW50cyBhcmVuJ3QgYXV0b21hdGlj
YWxseSBpbnNlcnRlZAoJCS8vIElFIHdpbGwgaW5zZXJ0IHRoZW0gaW50byBlbXB0
eSB0YWJsZXMKCQl0Ym9keTogIWRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJv
ZHkiKS5sZW5ndGgsCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IGxpbmsgZWxlbWVudHMg
Z2V0IHNlcmlhbGl6ZWQgY29ycmVjdGx5IGJ5IGlubmVySFRNTAoJCS8vIFRoaXMg
cmVxdWlyZXMgYSB3cmFwcGVyIGVsZW1lbnQgaW4gSUUKCQlodG1sU2VyaWFsaXpl
OiAhIWRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCwKCgkJ
Ly8gR2V0IHRoZSBzdHlsZSBpbmZvcm1hdGlvbiBmcm9tIGdldEF0dHJpYnV0ZQoJ
CS8vIChJRSB1c2VzIC5jc3NUZXh0IGluc3RlYWQpCgkJc3R5bGU6IC90b3AvLnRl
c3QoIGEuZ2V0QXR0cmlidXRlKCJzdHlsZSIpICksCgoJCS8vIE1ha2Ugc3VyZSB0
aGF0IFVSTHMgYXJlbid0IG1hbmlwdWxhdGVkCgkJLy8gKElFIG5vcm1hbGl6ZXMg
aXQgYnkgZGVmYXVsdCkKCQlocmVmTm9ybWFsaXplZDogKCBhLmdldEF0dHJpYnV0
ZSgiaHJlZiIpID09PSAiL2EiICksCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IGVsZW1l
bnQgb3BhY2l0eSBleGlzdHMKCQkvLyAoSUUgdXNlcyBmaWx0ZXIgaW5zdGVhZCkK
CQkvLyBVc2UgYSByZWdleCB0byB3b3JrIGFyb3VuZCBhIFdlYktpdCBpc3N1ZS4g
U2VlICM1MTQ1CgkJb3BhY2l0eTogL14wLjU1Ly50ZXN0KCBhLnN0eWxlLm9wYWNp
dHkgKSwKCgkJLy8gVmVyaWZ5IHN0eWxlIGZsb2F0IGV4aXN0ZW5jZQoJCS8vIChJ
RSB1c2VzIHN0eWxlRmxvYXQgaW5zdGVhZCBvZiBjc3NGbG9hdCkKCQljc3NGbG9h
dDogISFhLnN0eWxlLmNzc0Zsb2F0LAoKCQkvLyBNYWtlIHN1cmUgdGhhdCBpZiBu
byB2YWx1ZSBpcyBzcGVjaWZpZWQgZm9yIGEgY2hlY2tib3gKCQkvLyB0aGF0IGl0
IGRlZmF1bHRzIHRvICJvbiIuCgkJLy8gKFdlYktpdCBkZWZhdWx0cyB0byAiIiBp
bnN0ZWFkKQoJCWNoZWNrT246ICggaW5wdXQudmFsdWUgPT09ICJvbiIgKSwKCgkJ
Ly8gTWFrZSBzdXJlIHRoYXQgYSBzZWxlY3RlZC1ieS1kZWZhdWx0IG9wdGlvbiBo
YXMgYSB3b3JraW5nIHNlbGVjdGVkIHByb3BlcnR5LgoJCS8vIChXZWJLaXQgZGVm
YXVsdHMgdG8gZmFsc2UgaW5zdGVhZCBvZiB0cnVlLCBJRSB0b28sIGlmIGl0J3Mg
aW4gYW4gb3B0Z3JvdXApCgkJb3B0U2VsZWN0ZWQ6IG9wdC5zZWxlY3RlZCwKCgkJ
Ly8gVGVzdCBzZXRBdHRyaWJ1dGUgb24gY2FtZWxDYXNlIGNsYXNzLiBJZiBpdCB3
b3Jrcywgd2UgbmVlZCBhdHRyRml4ZXMgd2hlbiBkb2luZyBnZXQvc2V0QXR0cmli
dXRlIChpZTYvNykKCQlnZXRTZXRBdHRyaWJ1dGU6IGRpdi5jbGFzc05hbWUgIT09
ICJ0IiwKCgkJLy8gVGVzdHMgZm9yIGVuY3R5cGUgc3VwcG9ydCBvbiBhIGZvcm0o
IzY3NDMpCgkJZW5jdHlwZTogISFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3Jt
IikuZW5jdHlwZSwKCgkJLy8gTWFrZXMgc3VyZSBjbG9uaW5nIGFuIGh0bWw1IGVs
ZW1lbnQgZG9lcyBub3QgY2F1c2UgcHJvYmxlbXMKCQkvLyBXaGVyZSBvdXRlckhU
TUwgaXMgdW5kZWZpbmVkLCB0aGlzIHN0aWxsIHdvcmtzCgkJaHRtbDVDbG9uZTog
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibmF2IikuY2xvbmVOb2RlKCB0cnVlICku
b3V0ZXJIVE1MICE9PSAiPDpuYXY+PC86bmF2PiIsCgoJCS8vIFdpbGwgYmUgZGVm
aW5lZCBsYXRlcgoJCXN1Ym1pdEJ1YmJsZXM6IHRydWUsCgkJY2hhbmdlQnViYmxl
czogdHJ1ZSwKCQlmb2N1c2luQnViYmxlczogZmFsc2UsCgkJZGVsZXRlRXhwYW5k
bzogdHJ1ZSwKCQlub0Nsb25lRXZlbnQ6IHRydWUsCgkJaW5saW5lQmxvY2tOZWVk
c0xheW91dDogZmFsc2UsCgkJc2hyaW5rV3JhcEJsb2NrczogZmFsc2UsCgkJcmVs
aWFibGVNYXJnaW5SaWdodDogdHJ1ZSwKCQlwaXhlbE1hcmdpbjogdHJ1ZQoJfTsK
CgkvLyBqUXVlcnkuYm94TW9kZWwgREVQUkVDQVRFRCBpbiAxLjMsIHVzZSBqUXVl
cnkuc3VwcG9ydC5ib3hNb2RlbCBpbnN0ZWFkCglqUXVlcnkuYm94TW9kZWwgPSBz
dXBwb3J0LmJveE1vZGVsID0gKGRvY3VtZW50LmNvbXBhdE1vZGUgPT09ICJDU1Mx
Q29tcGF0Iik7CgoJLy8gTWFrZSBzdXJlIGNoZWNrZWQgc3RhdHVzIGlzIHByb3Bl
cmx5IGNsb25lZAoJaW5wdXQuY2hlY2tlZCA9IHRydWU7CglzdXBwb3J0Lm5vQ2xv
bmVDaGVja2VkID0gaW5wdXQuY2xvbmVOb2RlKCB0cnVlICkuY2hlY2tlZDsKCgkv
LyBNYWtlIHN1cmUgdGhhdCB0aGUgb3B0aW9ucyBpbnNpZGUgZGlzYWJsZWQgc2Vs
ZWN0cyBhcmVuJ3QgbWFya2VkIGFzIGRpc2FibGVkCgkvLyAoV2ViS2l0IG1hcmtz
IHRoZW0gYXMgZGlzYWJsZWQpCglzZWxlY3QuZGlzYWJsZWQgPSB0cnVlOwoJc3Vw
cG9ydC5vcHREaXNhYmxlZCA9ICFvcHQuZGlzYWJsZWQ7CgoJLy8gVGVzdCB0byBz
ZWUgaWYgaXQncyBwb3NzaWJsZSB0byBkZWxldGUgYW4gZXhwYW5kbyBmcm9tIGFu
IGVsZW1lbnQKCS8vIEZhaWxzIGluIEludGVybmV0IEV4cGxvcmVyCgl0cnkgewoJ
CWRlbGV0ZSBkaXYudGVzdDsKCX0gY2F0Y2goIGUgKSB7CgkJc3VwcG9ydC5kZWxl
dGVFeHBhbmRvID0gZmFsc2U7Cgl9CgoJaWYgKCAhZGl2LmFkZEV2ZW50TGlzdGVu
ZXIgJiYgZGl2LmF0dGFjaEV2ZW50ICYmIGRpdi5maXJlRXZlbnQgKSB7CgkJZGl2
LmF0dGFjaEV2ZW50KCAib25jbGljayIsIGZ1bmN0aW9uKCkgewoJCQkvLyBDbG9u
aW5nIGEgbm9kZSBzaG91bGRuJ3QgY29weSBvdmVyIGFueQoJCQkvLyBib3VuZCBl
dmVudCBoYW5kbGVycyAoSUUgZG9lcyB0aGlzKQoJCQlzdXBwb3J0Lm5vQ2xvbmVF
dmVudCA9IGZhbHNlOwoJCX0pOwoJCWRpdi5jbG9uZU5vZGUoIHRydWUgKS5maXJl
RXZlbnQoICJvbmNsaWNrIiApOwoJfQoKCS8vIENoZWNrIGlmIGEgcmFkaW8gbWFp
bnRhaW5zIGl0cyB2YWx1ZQoJLy8gYWZ0ZXIgYmVpbmcgYXBwZW5kZWQgdG8gdGhl
IERPTQoJaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwoJ
aW5wdXQudmFsdWUgPSAidCI7CglpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAi
cmFkaW8iKTsKCXN1cHBvcnQucmFkaW9WYWx1ZSA9IGlucHV0LnZhbHVlID09PSAi
dCI7CgoJaW5wdXQuc2V0QXR0cmlidXRlKCJjaGVja2VkIiwgImNoZWNrZWQiKTsK
CgkvLyAjMTEyMTcgLSBXZWJLaXQgbG9zZXMgY2hlY2sgd2hlbiB0aGUgbmFtZSBp
cyBhZnRlciB0aGUgY2hlY2tlZCBhdHRyaWJ1dGUKCWlucHV0LnNldEF0dHJpYnV0
ZSggIm5hbWUiLCAidCIgKTsKCglkaXYuYXBwZW5kQ2hpbGQoIGlucHV0ICk7Cglm
cmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKCWZy
YWdtZW50LmFwcGVuZENoaWxkKCBkaXYubGFzdENoaWxkICk7CgoJLy8gV2ViS2l0
IGRvZXNuJ3QgY2xvbmUgY2hlY2tlZCBzdGF0ZSBjb3JyZWN0bHkgaW4gZnJhZ21l
bnRzCglzdXBwb3J0LmNoZWNrQ2xvbmUgPSBmcmFnbWVudC5jbG9uZU5vZGUoIHRy
dWUgKS5jbG9uZU5vZGUoIHRydWUgKS5sYXN0Q2hpbGQuY2hlY2tlZDsKCgkvLyBD
aGVjayBpZiBhIGRpc2Nvbm5lY3RlZCBjaGVja2JveCB3aWxsIHJldGFpbiBpdHMg
Y2hlY2tlZAoJLy8gdmFsdWUgb2YgdHJ1ZSBhZnRlciBhcHBlbmRlZCB0byB0aGUg
RE9NIChJRTYvNykKCXN1cHBvcnQuYXBwZW5kQ2hlY2tlZCA9IGlucHV0LmNoZWNr
ZWQ7CgoJZnJhZ21lbnQucmVtb3ZlQ2hpbGQoIGlucHV0ICk7CglmcmFnbWVudC5h
cHBlbmRDaGlsZCggZGl2ICk7CgoJLy8gVGVjaG5pcXVlIGZyb20gSnVyaXkgWmF5
dHNldgoJLy8gaHR0cDovL3BlcmZlY3Rpb25raWxscy5jb20vZGV0ZWN0aW5nLWV2
ZW50LXN1cHBvcnQtd2l0aG91dC1icm93c2VyLXNuaWZmaW5nLwoJLy8gV2Ugb25s
eSBjYXJlIGFib3V0IHRoZSBjYXNlIHdoZXJlIG5vbi1zdGFuZGFyZCBldmVudCBz
eXN0ZW1zCgkvLyBhcmUgdXNlZCwgbmFtZWx5IGluIElFLiBTaG9ydC1jaXJjdWl0
aW5nIGhlcmUgaGVscHMgdXMgdG8KCS8vIGF2b2lkIGFuIGV2YWwgY2FsbCAoaW4g
c2V0QXR0cmlidXRlKSB3aGljaCBjYW4gY2F1c2UgQ1NQCgkvLyB0byBnbyBoYXl3
aXJlLiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL1NlY3Vy
aXR5L0NTUAoJaWYgKCBkaXYuYXR0YWNoRXZlbnQgKSB7CgkJZm9yICggaSBpbiB7
CgkJCXN1Ym1pdDogMSwKCQkJY2hhbmdlOiAxLAoJCQlmb2N1c2luOiAxCgkJfSkg
ewoJCQlldmVudE5hbWUgPSAib24iICsgaTsKCQkJaXNTdXBwb3J0ZWQgPSAoIGV2
ZW50TmFtZSBpbiBkaXYgKTsKCQkJaWYgKCAhaXNTdXBwb3J0ZWQgKSB7CgkJCQlk
aXYuc2V0QXR0cmlidXRlKCBldmVudE5hbWUsICJyZXR1cm47IiApOwoJCQkJaXNT
dXBwb3J0ZWQgPSAoIHR5cGVvZiBkaXZbIGV2ZW50TmFtZSBdID09PSAiZnVuY3Rp
b24iICk7CgkJCX0KCQkJc3VwcG9ydFsgaSArICJCdWJibGVzIiBdID0gaXNTdXBw
b3J0ZWQ7CgkJfQoJfQoKCWZyYWdtZW50LnJlbW92ZUNoaWxkKCBkaXYgKTsKCgkv
LyBOdWxsIGVsZW1lbnRzIHRvIGF2b2lkIGxlYWtzIGluIElFCglmcmFnbWVudCA9
IHNlbGVjdCA9IG9wdCA9IGRpdiA9IGlucHV0ID0gbnVsbDsKCgkvLyBSdW4gdGVz
dHMgdGhhdCBuZWVkIGEgYm9keSBhdCBkb2MgcmVhZHkKCWpRdWVyeShmdW5jdGlv
bigpIHsKCQl2YXIgY29udGFpbmVyLCBvdXRlciwgaW5uZXIsIHRhYmxlLCB0ZCwg
b2Zmc2V0U3VwcG9ydCwKCQkJbWFyZ2luRGl2LCBjb25NYXJnaW5Ub3AsIHN0eWxl
LCBodG1sLCBwb3NpdGlvblRvcExlZnRXaWR0aEhlaWdodCwKCQkJcGFkZGluZ01h
cmdpbkJvcmRlclZpc2liaWxpdHksIHBhZGRpbmdNYXJnaW5Cb3JkZXIsCgkJCWJv
ZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdOwoK
CQlpZiAoICFib2R5ICkgewoJCQkvLyBSZXR1cm4gZm9yIGZyYW1lc2V0IGRvY3Mg
dGhhdCBkb24ndCBoYXZlIGEgYm9keQoJCQlyZXR1cm47CgkJfQoKCQljb25NYXJn
aW5Ub3AgPSAxOwoJCXBhZGRpbmdNYXJnaW5Cb3JkZXIgPSAicGFkZGluZzowO21h
cmdpbjowO2JvcmRlcjoiOwoJCXBvc2l0aW9uVG9wTGVmdFdpZHRoSGVpZ2h0ID0g
InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxcHg7aGVpZ2h0
OjFweDsiOwoJCXBhZGRpbmdNYXJnaW5Cb3JkZXJWaXNpYmlsaXR5ID0gcGFkZGlu
Z01hcmdpbkJvcmRlciArICIwO3Zpc2liaWxpdHk6aGlkZGVuOyI7CgkJc3R5bGUg
PSAic3R5bGU9JyIgKyBwb3NpdGlvblRvcExlZnRXaWR0aEhlaWdodCArIHBhZGRp
bmdNYXJnaW5Cb3JkZXIgKyAiNXB4IHNvbGlkICMwMDA7IjsKCQlodG1sID0gIjxk
aXYgIiArIHN0eWxlICsgImRpc3BsYXk6YmxvY2s7Jz48ZGl2IHN0eWxlPSciICsg
cGFkZGluZ01hcmdpbkJvcmRlciArICIwO2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6
aGlkZGVuOyc+PC9kaXY+PC9kaXY+IiArCgkJCSI8dGFibGUgIiArIHN0eWxlICsg
IicgY2VsbHBhZGRpbmc9JzAnIGNlbGxzcGFjaW5nPScwJz4iICsKCQkJIjx0cj48
dGQ+PC90ZD48L3RyPjwvdGFibGU+IjsKCgkJY29udGFpbmVyID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CgkJY29udGFpbmVyLnN0eWxlLmNzc1RleHQg
PSBwYWRkaW5nTWFyZ2luQm9yZGVyVmlzaWJpbGl0eSArICJ3aWR0aDowO2hlaWdo
dDowO3Bvc2l0aW9uOnN0YXRpYzt0b3A6MDttYXJnaW4tdG9wOiIgKyBjb25NYXJn
aW5Ub3AgKyAicHgiOwoJCWJvZHkuaW5zZXJ0QmVmb3JlKCBjb250YWluZXIsIGJv
ZHkuZmlyc3RDaGlsZCApOwoKCQkvLyBDb25zdHJ1Y3QgdGhlIHRlc3QgZWxlbWVu
dAoJCWRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoJCWNvbnRh
aW5lci5hcHBlbmRDaGlsZCggZGl2ICk7CgoJCS8vIENoZWNrIGlmIHRhYmxlIGNl
bGxzIHN0aWxsIGhhdmUgb2Zmc2V0V2lkdGgvSGVpZ2h0IHdoZW4gdGhleSBhcmUg
c2V0CgkJLy8gdG8gZGlzcGxheTpub25lIGFuZCB0aGVyZSBhcmUgc3RpbGwgb3Ro
ZXIgdmlzaWJsZSB0YWJsZSBjZWxscyBpbiBhCgkJLy8gdGFibGUgcm93OyBpZiBz
bywgb2Zmc2V0V2lkdGgvSGVpZ2h0IGFyZSBub3QgcmVsaWFibGUgZm9yIHVzZSB3
aGVuCgkJLy8gZGV0ZXJtaW5pbmcgaWYgYW4gZWxlbWVudCBoYXMgYmVlbiBoaWRk
ZW4gZGlyZWN0bHkgdXNpbmcKCQkvLyBkaXNwbGF5Om5vbmUgKGl0IGlzIHN0aWxs
IHNhZmUgdG8gdXNlIG9mZnNldHMgaWYgYSBwYXJlbnQgZWxlbWVudCBpcwoJCS8v
IGhpZGRlbjsgZG9uIHNhZmV0eSBnb2dnbGVzIGFuZCBzZWUgYnVnICM0NTEyIGZv
ciBtb3JlIGluZm9ybWF0aW9uKS4KCQkvLyAob25seSBJRSA4IGZhaWxzIHRoaXMg
dGVzdCkKCQlkaXYuaW5uZXJIVE1MID0gIjx0YWJsZT48dHI+PHRkIHN0eWxlPSci
ICsgcGFkZGluZ01hcmdpbkJvcmRlciArICIwO2Rpc3BsYXk6bm9uZSc+PC90ZD48
dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiI7CgkJdGRzID0gZGl2LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCAidGQiICk7CgkJaXNTdXBwb3J0ZWQgPSAoIHRkc1sgMCBdLm9m
ZnNldEhlaWdodCA9PT0gMCApOwoKCQl0ZHNbIDAgXS5zdHlsZS5kaXNwbGF5ID0g
IiI7CgkJdGRzWyAxIF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCgkJLy8gQ2hl
Y2sgaWYgZW1wdHkgdGFibGUgY2VsbHMgc3RpbGwgaGF2ZSBvZmZzZXRXaWR0aC9I
ZWlnaHQKCQkvLyAoSUUgPD0gOCBmYWlsIHRoaXMgdGVzdCkKCQlzdXBwb3J0LnJl
bGlhYmxlSGlkZGVuT2Zmc2V0cyA9IGlzU3VwcG9ydGVkICYmICggdGRzWyAwIF0u
b2Zmc2V0SGVpZ2h0ID09PSAwICk7CgoJCS8vIENoZWNrIGlmIGRpdiB3aXRoIGV4
cGxpY2l0IHdpZHRoIGFuZCBubyBtYXJnaW4tcmlnaHQgaW5jb3JyZWN0bHkKCQkv
LyBnZXRzIGNvbXB1dGVkIG1hcmdpbi1yaWdodCBiYXNlZCBvbiB3aWR0aCBvZiBj
b250YWluZXIuIEZvciBtb3JlCgkJLy8gaW5mbyBzZWUgYnVnICMzMzMzCgkJLy8g
RmFpbHMgaW4gV2ViS2l0IGJlZm9yZSBGZWIgMjAxMSBuaWdodGxpZXMKCQkvLyBX
ZWJLaXQgQnVnIDEzMzQzIC0gZ2V0Q29tcHV0ZWRTdHlsZSByZXR1cm5zIHdyb25n
IHZhbHVlIGZvciBtYXJnaW4tcmlnaHQKCQlpZiAoIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlICkgewoJCQlkaXYuaW5uZXJIVE1MID0gIiI7CgkJCW1hcmdpbkRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJkaXYiICk7CgkJCW1hcmdpbkRpdi5z
dHlsZS53aWR0aCA9ICIwIjsKCQkJbWFyZ2luRGl2LnN0eWxlLm1hcmdpblJpZ2h0
ID0gIjAiOwoJCQlkaXYuc3R5bGUud2lkdGggPSAiMnB4IjsKCQkJZGl2LmFwcGVu
ZENoaWxkKCBtYXJnaW5EaXYgKTsKCQkJc3VwcG9ydC5yZWxpYWJsZU1hcmdpblJp
Z2h0ID0KCQkJCSggcGFyc2VJbnQoICggd2luZG93LmdldENvbXB1dGVkU3R5bGUo
IG1hcmdpbkRpdiwgbnVsbCApIHx8IHsgbWFyZ2luUmlnaHQ6IDAgfSApLm1hcmdp
blJpZ2h0LCAxMCApIHx8IDAgKSA9PT0gMDsKCQl9CgoJCWlmICggdHlwZW9mIGRp
di5zdHlsZS56b29tICE9PSAidW5kZWZpbmVkIiApIHsKCQkJLy8gQ2hlY2sgaWYg
bmF0aXZlbHkgYmxvY2stbGV2ZWwgZWxlbWVudHMgYWN0IGxpa2UgaW5saW5lLWJs
b2NrCgkJCS8vIGVsZW1lbnRzIHdoZW4gc2V0dGluZyB0aGVpciBkaXNwbGF5IHRv
ICdpbmxpbmUnIGFuZCBnaXZpbmcKCQkJLy8gdGhlbSBsYXlvdXQKCQkJLy8gKElF
IDwgOCBkb2VzIHRoaXMpCgkJCWRpdi5pbm5lckhUTUwgPSAiIjsKCQkJZGl2LnN0
eWxlLndpZHRoID0gZGl2LnN0eWxlLnBhZGRpbmcgPSAiMXB4IjsKCQkJZGl2LnN0
eWxlLmJvcmRlciA9IDA7CgkJCWRpdi5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4i
OwoJCQlkaXYuc3R5bGUuZGlzcGxheSA9ICJpbmxpbmUiOwoJCQlkaXYuc3R5bGUu
em9vbSA9IDE7CgkJCXN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dCA9ICgg
ZGl2Lm9mZnNldFdpZHRoID09PSAzICk7CgoJCQkvLyBDaGVjayBpZiBlbGVtZW50
cyB3aXRoIGxheW91dCBzaHJpbmstd3JhcCB0aGVpciBjaGlsZHJlbgoJCQkvLyAo
SUUgNiBkb2VzIHRoaXMpCgkJCWRpdi5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsK
CQkJZGl2LnN0eWxlLm92ZXJmbG93ID0gInZpc2libGUiOwoJCQlkaXYuaW5uZXJI
VE1MID0gIjxkaXYgc3R5bGU9J3dpZHRoOjVweDsnPjwvZGl2PiI7CgkJCXN1cHBv
cnQuc2hyaW5rV3JhcEJsb2NrcyA9ICggZGl2Lm9mZnNldFdpZHRoICE9PSAzICk7
CgkJfQoKCQlkaXYuc3R5bGUuY3NzVGV4dCA9IHBvc2l0aW9uVG9wTGVmdFdpZHRo
SGVpZ2h0ICsgcGFkZGluZ01hcmdpbkJvcmRlclZpc2liaWxpdHk7CgkJZGl2Lmlu
bmVySFRNTCA9IGh0bWw7CgoJCW91dGVyID0gZGl2LmZpcnN0Q2hpbGQ7CgkJaW5u
ZXIgPSBvdXRlci5maXJzdENoaWxkOwoJCXRkID0gb3V0ZXIubmV4dFNpYmxpbmcu
Zmlyc3RDaGlsZC5maXJzdENoaWxkOwoKCQlvZmZzZXRTdXBwb3J0ID0gewoJCQlk
b2VzTm90QWRkQm9yZGVyOiAoIGlubmVyLm9mZnNldFRvcCAhPT0gNSApLAoJCQlk
b2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZWxsczogKCB0ZC5vZmZzZXRUb3AgPT09
IDUgKQoJCX07CgoJCWlubmVyLnN0eWxlLnBvc2l0aW9uID0gImZpeGVkIjsKCQlp
bm5lci5zdHlsZS50b3AgPSAiMjBweCI7CgoJCS8vIHNhZmFyaSBzdWJ0cmFjdHMg
cGFyZW50IGJvcmRlciB3aWR0aCBoZXJlIHdoaWNoIGlzIDVweAoJCW9mZnNldFN1
cHBvcnQuZml4ZWRQb3NpdGlvbiA9ICggaW5uZXIub2Zmc2V0VG9wID09PSAyMCB8
fCBpbm5lci5vZmZzZXRUb3AgPT09IDE1ICk7CgkJaW5uZXIuc3R5bGUucG9zaXRp
b24gPSBpbm5lci5zdHlsZS50b3AgPSAiIjsKCgkJb3V0ZXIuc3R5bGUub3ZlcmZs
b3cgPSAiaGlkZGVuIjsKCQlvdXRlci5zdHlsZS5wb3NpdGlvbiA9ICJyZWxhdGl2
ZSI7CgoJCW9mZnNldFN1cHBvcnQuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dO
b3RWaXNpYmxlID0gKCBpbm5lci5vZmZzZXRUb3AgPT09IC01ICk7CgkJb2Zmc2V0
U3VwcG9ydC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCA9ICggYm9k
eS5vZmZzZXRUb3AgIT09IGNvbk1hcmdpblRvcCApOwoKCQlpZiAoIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlICkgewoJCQlkaXYuc3R5bGUubWFyZ2luVG9wID0gIjEl
IjsKCQkJc3VwcG9ydC5waXhlbE1hcmdpbiA9ICggd2luZG93LmdldENvbXB1dGVk
U3R5bGUoIGRpdiwgbnVsbCApIHx8IHsgbWFyZ2luVG9wOiAwIH0gKS5tYXJnaW5U
b3AgIT09ICIxJSI7CgkJfQoKCQlpZiAoIHR5cGVvZiBjb250YWluZXIuc3R5bGUu
em9vbSAhPT0gInVuZGVmaW5lZCIgKSB7CgkJCWNvbnRhaW5lci5zdHlsZS56b29t
ID0gMTsKCQl9CgoJCWJvZHkucmVtb3ZlQ2hpbGQoIGNvbnRhaW5lciApOwoJCW1h
cmdpbkRpdiA9IGRpdiA9IGNvbnRhaW5lciA9IG51bGw7CgoJCWpRdWVyeS5leHRl
bmQoIHN1cHBvcnQsIG9mZnNldFN1cHBvcnQgKTsKCX0pOwoKCXJldHVybiBzdXBw
b3J0Owp9KSgpOwoKCgoKdmFyIHJicmFjZSA9IC9eKD86XHsuKlx9fFxbLipcXSkk
LywKCXJtdWx0aURhc2ggPSAvKFtBLVpdKS9nOwoKalF1ZXJ5LmV4dGVuZCh7Cglj
YWNoZToge30sCgoJLy8gUGxlYXNlIHVzZSB3aXRoIGNhdXRpb24KCXV1aWQ6IDAs
CgoJLy8gVW5pcXVlIGZvciBlYWNoIGNvcHkgb2YgalF1ZXJ5IG9uIHRoZSBwYWdl
CgkvLyBOb24tZGlnaXRzIHJlbW92ZWQgdG8gbWF0Y2ggcmlubGluZWpRdWVyeQoJ
ZXhwYW5kbzogImpRdWVyeSIgKyAoIGpRdWVyeS5mbi5qcXVlcnkgKyBNYXRoLnJh
bmRvbSgpICkucmVwbGFjZSggL1xEL2csICIiICksCgoJLy8gVGhlIGZvbGxvd2lu
ZyBlbGVtZW50cyB0aHJvdyB1bmNhdGNoYWJsZSBleGNlcHRpb25zIGlmIHlvdQoJ
Ly8gYXR0ZW1wdCB0byBhZGQgZXhwYW5kbyBwcm9wZXJ0aWVzIHRvIHRoZW0uCglu
b0RhdGE6IHsKCQkiZW1iZWQiOiB0cnVlLAoJCS8vIEJhbiBhbGwgb2JqZWN0cyBl
eGNlcHQgZm9yIEZsYXNoICh3aGljaCBoYW5kbGUgZXhwYW5kb3MpCgkJIm9iamVj
dCI6ICJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAi
LAoJCSJhcHBsZXQiOiB0cnVlCgl9LAoKCWhhc0RhdGE6IGZ1bmN0aW9uKCBlbGVt
ICkgewoJCWVsZW0gPSBlbGVtLm5vZGVUeXBlID8galF1ZXJ5LmNhY2hlWyBlbGVt
W2pRdWVyeS5leHBhbmRvXSBdIDogZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCQly
ZXR1cm4gISFlbGVtICYmICFpc0VtcHR5RGF0YU9iamVjdCggZWxlbSApOwoJfSwK
CglkYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZGF0YSwgcHZ0IC8qIEludGVy
bmFsIFVzZSBPbmx5ICovICkgewoJCWlmICggIWpRdWVyeS5hY2NlcHREYXRhKCBl
bGVtICkgKSB7CgkJCXJldHVybjsKCQl9CgoJCXZhciBwcml2YXRlQ2FjaGUsIHRo
aXNDYWNoZSwgcmV0LAoJCQlpbnRlcm5hbEtleSA9IGpRdWVyeS5leHBhbmRvLAoJ
CQlnZXRCeU5hbWUgPSB0eXBlb2YgbmFtZSA9PT0gInN0cmluZyIsCgoJCQkvLyBX
ZSBoYXZlIHRvIGhhbmRsZSBET00gbm9kZXMgYW5kIEpTIG9iamVjdHMgZGlmZmVy
ZW50bHkgYmVjYXVzZSBJRTYtNwoJCQkvLyBjYW4ndCBHQyBvYmplY3QgcmVmZXJl
bmNlcyBwcm9wZXJseSBhY3Jvc3MgdGhlIERPTS1KUyBib3VuZGFyeQoJCQlpc05v
ZGUgPSBlbGVtLm5vZGVUeXBlLAoKCQkJLy8gT25seSBET00gbm9kZXMgbmVlZCB0
aGUgZ2xvYmFsIGpRdWVyeSBjYWNoZTsgSlMgb2JqZWN0IGRhdGEgaXMKCQkJLy8g
YXR0YWNoZWQgZGlyZWN0bHkgdG8gdGhlIG9iamVjdCBzbyBHQyBjYW4gb2NjdXIg
YXV0b21hdGljYWxseQoJCQljYWNoZSA9IGlzTm9kZSA/IGpRdWVyeS5jYWNoZSA6
IGVsZW0sCgoJCQkvLyBPbmx5IGRlZmluaW5nIGFuIElEIGZvciBKUyBvYmplY3Rz
IGlmIGl0cyBjYWNoZSBhbHJlYWR5IGV4aXN0cyBhbGxvd3MKCQkJLy8gdGhlIGNv
ZGUgdG8gc2hvcnRjdXQgb24gdGhlIHNhbWUgcGF0aCBhcyBhIERPTSBub2RlIHdp
dGggbm8gY2FjaGUKCQkJaWQgPSBpc05vZGUgPyBlbGVtWyBpbnRlcm5hbEtleSBd
IDogZWxlbVsgaW50ZXJuYWxLZXkgXSAmJiBpbnRlcm5hbEtleSwKCQkJaXNFdmVu
dHMgPSBuYW1lID09PSAiZXZlbnRzIjsKCgkJLy8gQXZvaWQgZG9pbmcgYW55IG1v
cmUgd29yayB0aGFuIHdlIG5lZWQgdG8gd2hlbiB0cnlpbmcgdG8gZ2V0IGRhdGEg
b24gYW4KCQkvLyBvYmplY3QgdGhhdCBoYXMgbm8gZGF0YSBhdCBhbGwKCQlpZiAo
ICghaWQgfHwgIWNhY2hlW2lkXSB8fCAoIWlzRXZlbnRzICYmICFwdnQgJiYgIWNh
Y2hlW2lkXS5kYXRhKSkgJiYgZ2V0QnlOYW1lICYmIGRhdGEgPT09IHVuZGVmaW5l
ZCApIHsKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKCAhaWQgKSB7CgkJCS8vIE9ubHkg
RE9NIG5vZGVzIG5lZWQgYSBuZXcgdW5pcXVlIElEIGZvciBlYWNoIGVsZW1lbnQg
c2luY2UgdGhlaXIgZGF0YQoJCQkvLyBlbmRzIHVwIGluIHRoZSBnbG9iYWwgY2Fj
aGUKCQkJaWYgKCBpc05vZGUgKSB7CgkJCQllbGVtWyBpbnRlcm5hbEtleSBdID0g
aWQgPSArK2pRdWVyeS51dWlkOwoJCQl9IGVsc2UgewoJCQkJaWQgPSBpbnRlcm5h
bEtleTsKCQkJfQoJCX0KCgkJaWYgKCAhY2FjaGVbIGlkIF0gKSB7CgkJCWNhY2hl
WyBpZCBdID0ge307CgoJCQkvLyBBdm9pZHMgZXhwb3NpbmcgalF1ZXJ5IG1ldGFk
YXRhIG9uIHBsYWluIEpTIG9iamVjdHMgd2hlbiB0aGUgb2JqZWN0CgkJCS8vIGlz
IHNlcmlhbGl6ZWQgdXNpbmcgSlNPTi5zdHJpbmdpZnkKCQkJaWYgKCAhaXNOb2Rl
ICkgewoJCQkJY2FjaGVbIGlkIF0udG9KU09OID0galF1ZXJ5Lm5vb3A7CgkJCX0K
CQl9CgoJCS8vIEFuIG9iamVjdCBjYW4gYmUgcGFzc2VkIHRvIGpRdWVyeS5kYXRh
IGluc3RlYWQgb2YgYSBrZXkvdmFsdWUgcGFpcjsgdGhpcyBnZXRzCgkJLy8gc2hh
bGxvdyBjb3BpZWQgb3ZlciBvbnRvIHRoZSBleGlzdGluZyBjYWNoZQoJCWlmICgg
dHlwZW9mIG5hbWUgPT09ICJvYmplY3QiIHx8IHR5cGVvZiBuYW1lID09PSAiZnVu
Y3Rpb24iICkgewoJCQlpZiAoIHB2dCApIHsKCQkJCWNhY2hlWyBpZCBdID0galF1
ZXJ5LmV4dGVuZCggY2FjaGVbIGlkIF0sIG5hbWUgKTsKCQkJfSBlbHNlIHsKCQkJ
CWNhY2hlWyBpZCBdLmRhdGEgPSBqUXVlcnkuZXh0ZW5kKCBjYWNoZVsgaWQgXS5k
YXRhLCBuYW1lICk7CgkJCX0KCQl9CgoJCXByaXZhdGVDYWNoZSA9IHRoaXNDYWNo
ZSA9IGNhY2hlWyBpZCBdOwoKCQkvLyBqUXVlcnkgZGF0YSgpIGlzIHN0b3JlZCBp
biBhIHNlcGFyYXRlIG9iamVjdCBpbnNpZGUgdGhlIG9iamVjdCdzIGludGVybmFs
IGRhdGEKCQkvLyBjYWNoZSBpbiBvcmRlciB0byBhdm9pZCBrZXkgY29sbGlzaW9u
cyBiZXR3ZWVuIGludGVybmFsIGRhdGEgYW5kIHVzZXItZGVmaW5lZAoJCS8vIGRh
dGEuCgkJaWYgKCAhcHZ0ICkgewoJCQlpZiAoICF0aGlzQ2FjaGUuZGF0YSApIHsK
CQkJCXRoaXNDYWNoZS5kYXRhID0ge307CgkJCX0KCgkJCXRoaXNDYWNoZSA9IHRo
aXNDYWNoZS5kYXRhOwoJCX0KCgkJaWYgKCBkYXRhICE9PSB1bmRlZmluZWQgKSB7
CgkJCXRoaXNDYWNoZVsgalF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApIF0gPSBkYXRh
OwoJCX0KCgkJLy8gVXNlcnMgc2hvdWxkIG5vdCBhdHRlbXB0IHRvIGluc3BlY3Qg
dGhlIGludGVybmFsIGV2ZW50cyBvYmplY3QgdXNpbmcgalF1ZXJ5LmRhdGEsCgkJ
Ly8gaXQgaXMgdW5kb2N1bWVudGVkIGFuZCBzdWJqZWN0IHRvIGNoYW5nZS4gQnV0
IGRvZXMgYW55b25lIGxpc3Rlbj8gTm8uCgkJaWYgKCBpc0V2ZW50cyAmJiAhdGhp
c0NhY2hlWyBuYW1lIF0gKSB7CgkJCXJldHVybiBwcml2YXRlQ2FjaGUuZXZlbnRz
OwoJCX0KCgkJLy8gQ2hlY2sgZm9yIGJvdGggY29udmVydGVkLXRvLWNhbWVsIGFu
ZCBub24tY29udmVydGVkIGRhdGEgcHJvcGVydHkgbmFtZXMKCQkvLyBJZiBhIGRh
dGEgcHJvcGVydHkgd2FzIHNwZWNpZmllZAoJCWlmICggZ2V0QnlOYW1lICkgewoK
CQkJLy8gRmlyc3QgVHJ5IHRvIGZpbmQgYXMtaXMgcHJvcGVydHkgZGF0YQoJCQly
ZXQgPSB0aGlzQ2FjaGVbIG5hbWUgXTsKCgkJCS8vIFRlc3QgZm9yIG51bGx8dW5k
ZWZpbmVkIHByb3BlcnR5IGRhdGEKCQkJaWYgKCByZXQgPT0gbnVsbCApIHsKCgkJ
CQkvLyBUcnkgdG8gZmluZCB0aGUgY2FtZWxDYXNlZCBwcm9wZXJ0eQoJCQkJcmV0
ID0gdGhpc0NhY2hlWyBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lICkgXTsKCQkJfQoJ
CX0gZWxzZSB7CgkJCXJldCA9IHRoaXNDYWNoZTsKCQl9CgoJCXJldHVybiByZXQ7
Cgl9LAoKCXJlbW92ZURhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBwdnQgLyog
SW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7CgkJaWYgKCAhalF1ZXJ5LmFjY2VwdERh
dGEoIGVsZW0gKSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIHRoaXNDYWNoZSwg
aSwgbCwKCgkJCS8vIFJlZmVyZW5jZSB0byBpbnRlcm5hbCBkYXRhIGNhY2hlIGtl
eQoJCQlpbnRlcm5hbEtleSA9IGpRdWVyeS5leHBhbmRvLAoKCQkJaXNOb2RlID0g
ZWxlbS5ub2RlVHlwZSwKCgkJCS8vIFNlZSBqUXVlcnkuZGF0YSBmb3IgbW9yZSBp
bmZvcm1hdGlvbgoJCQljYWNoZSA9IGlzTm9kZSA/IGpRdWVyeS5jYWNoZSA6IGVs
ZW0sCgoJCQkvLyBTZWUgalF1ZXJ5LmRhdGEgZm9yIG1vcmUgaW5mb3JtYXRpb24K
CQkJaWQgPSBpc05vZGUgPyBlbGVtWyBpbnRlcm5hbEtleSBdIDogaW50ZXJuYWxL
ZXk7CgoJCS8vIElmIHRoZXJlIGlzIGFscmVhZHkgbm8gY2FjaGUgZW50cnkgZm9y
IHRoaXMgb2JqZWN0LCB0aGVyZSBpcyBubwoJCS8vIHB1cnBvc2UgaW4gY29udGlu
dWluZwoJCWlmICggIWNhY2hlWyBpZCBdICkgewoJCQlyZXR1cm47CgkJfQoKCQlp
ZiAoIG5hbWUgKSB7CgoJCQl0aGlzQ2FjaGUgPSBwdnQgPyBjYWNoZVsgaWQgXSA6
IGNhY2hlWyBpZCBdLmRhdGE7CgoJCQlpZiAoIHRoaXNDYWNoZSApIHsKCgkJCQkv
LyBTdXBwb3J0IGFycmF5IG9yIHNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgbmFtZXMg
Zm9yIGRhdGEga2V5cwoJCQkJaWYgKCAhalF1ZXJ5LmlzQXJyYXkoIG5hbWUgKSAp
IHsKCgkJCQkJLy8gdHJ5IHRoZSBzdHJpbmcgYXMgYSBrZXkgYmVmb3JlIGFueSBt
YW5pcHVsYXRpb24KCQkJCQlpZiAoIG5hbWUgaW4gdGhpc0NhY2hlICkgewoJCQkJ
CQluYW1lID0gWyBuYW1lIF07CgkJCQkJfSBlbHNlIHsKCgkJCQkJCS8vIHNwbGl0
IHRoZSBjYW1lbCBjYXNlZCB2ZXJzaW9uIGJ5IHNwYWNlcyB1bmxlc3MgYSBrZXkg
d2l0aCB0aGUgc3BhY2VzIGV4aXN0cwoJCQkJCQluYW1lID0galF1ZXJ5LmNhbWVs
Q2FzZSggbmFtZSApOwoJCQkJCQlpZiAoIG5hbWUgaW4gdGhpc0NhY2hlICkgewoJ
CQkJCQkJbmFtZSA9IFsgbmFtZSBdOwoJCQkJCQl9IGVsc2UgewoJCQkJCQkJbmFt
ZSA9IG5hbWUuc3BsaXQoICIgIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoKCQkJ
CWZvciAoIGkgPSAwLCBsID0gbmFtZS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJ
CQkJZGVsZXRlIHRoaXNDYWNoZVsgbmFtZVtpXSBdOwoJCQkJfQoKCQkJCS8vIElm
IHRoZXJlIGlzIG5vIGRhdGEgbGVmdCBpbiB0aGUgY2FjaGUsIHdlIHdhbnQgdG8g
Y29udGludWUKCQkJCS8vIGFuZCBsZXQgdGhlIGNhY2hlIG9iamVjdCBpdHNlbGYg
Z2V0IGRlc3Ryb3llZAoJCQkJaWYgKCAhKCBwdnQgPyBpc0VtcHR5RGF0YU9iamVj
dCA6IGpRdWVyeS5pc0VtcHR5T2JqZWN0ICkoIHRoaXNDYWNoZSApICkgewoJCQkJ
CXJldHVybjsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gU2VlIGpRdWVyeS5kYXRhIGZv
ciBtb3JlIGluZm9ybWF0aW9uCgkJaWYgKCAhcHZ0ICkgewoJCQlkZWxldGUgY2Fj
aGVbIGlkIF0uZGF0YTsKCgkJCS8vIERvbid0IGRlc3Ryb3kgdGhlIHBhcmVudCBj
YWNoZSB1bmxlc3MgdGhlIGludGVybmFsIGRhdGEgb2JqZWN0CgkJCS8vIGhhZCBi
ZWVuIHRoZSBvbmx5IHRoaW5nIGxlZnQgaW4gaXQKCQkJaWYgKCAhaXNFbXB0eURh
dGFPYmplY3QoY2FjaGVbIGlkIF0pICkgewoJCQkJcmV0dXJuOwoJCQl9CgkJfQoK
CQkvLyBCcm93c2VycyB0aGF0IGZhaWwgZXhwYW5kbyBkZWxldGlvbiBhbHNvIHJl
ZnVzZSB0byBkZWxldGUgZXhwYW5kb3Mgb24KCQkvLyB0aGUgd2luZG93LCBidXQg
aXQgd2lsbCBhbGxvdyBpdCBvbiBhbGwgb3RoZXIgSlMgb2JqZWN0czsgb3RoZXIg
YnJvd3NlcnMKCQkvLyBkb24ndCBjYXJlCgkJLy8gRW5zdXJlIHRoYXQgYGNhY2hl
YCBpcyBub3QgYSB3aW5kb3cgb2JqZWN0ICMxMDA4MAoJCWlmICggalF1ZXJ5LnN1
cHBvcnQuZGVsZXRlRXhwYW5kbyB8fCAhY2FjaGUuc2V0SW50ZXJ2YWwgKSB7CgkJ
CWRlbGV0ZSBjYWNoZVsgaWQgXTsKCQl9IGVsc2UgewoJCQljYWNoZVsgaWQgXSA9
IG51bGw7CgkJfQoKCQkvLyBXZSBkZXN0cm95ZWQgdGhlIGNhY2hlIGFuZCBuZWVk
IHRvIGVsaW1pbmF0ZSB0aGUgZXhwYW5kbyBvbiB0aGUgbm9kZSB0byBhdm9pZAoJ
CS8vIGZhbHNlIGxvb2t1cHMgaW4gdGhlIGNhY2hlIGZvciBlbnRyaWVzIHRoYXQg
bm8gbG9uZ2VyIGV4aXN0CgkJaWYgKCBpc05vZGUgKSB7CgkJCS8vIElFIGRvZXMg
bm90IGFsbG93IHVzIHRvIGRlbGV0ZSBleHBhbmRvIHByb3BlcnRpZXMgZnJvbSBu
b2RlcywKCQkJLy8gbm9yIGRvZXMgaXQgaGF2ZSBhIHJlbW92ZUF0dHJpYnV0ZSBm
dW5jdGlvbiBvbiBEb2N1bWVudCBub2RlczsKCQkJLy8gd2UgbXVzdCBoYW5kbGUg
YWxsIG9mIHRoZXNlIGNhc2VzCgkJCWlmICggalF1ZXJ5LnN1cHBvcnQuZGVsZXRl
RXhwYW5kbyApIHsKCQkJCWRlbGV0ZSBlbGVtWyBpbnRlcm5hbEtleSBdOwoJCQl9
IGVsc2UgaWYgKCBlbGVtLnJlbW92ZUF0dHJpYnV0ZSApIHsKCQkJCWVsZW0ucmVt
b3ZlQXR0cmlidXRlKCBpbnRlcm5hbEtleSApOwoJCQl9IGVsc2UgewoJCQkJZWxl
bVsgaW50ZXJuYWxLZXkgXSA9IG51bGw7CgkJCX0KCQl9Cgl9LAoKCS8vIEZvciBp
bnRlcm5hbCB1c2Ugb25seS4KCV9kYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwg
ZGF0YSApIHsKCQlyZXR1cm4galF1ZXJ5LmRhdGEoIGVsZW0sIG5hbWUsIGRhdGEs
IHRydWUgKTsKCX0sCgoJLy8gQSBtZXRob2QgZm9yIGRldGVybWluaW5nIGlmIGEg
RE9NIG5vZGUgY2FuIGhhbmRsZSB0aGUgZGF0YSBleHBhbmRvCglhY2NlcHREYXRh
OiBmdW5jdGlvbiggZWxlbSApIHsKCQlpZiAoIGVsZW0ubm9kZU5hbWUgKSB7CgkJ
CXZhciBtYXRjaCA9IGpRdWVyeS5ub0RhdGFbIGVsZW0ubm9kZU5hbWUudG9Mb3dl
ckNhc2UoKSBdOwoKCQkJaWYgKCBtYXRjaCApIHsKCQkJCXJldHVybiAhKG1hdGNo
ID09PSB0cnVlIHx8IGVsZW0uZ2V0QXR0cmlidXRlKCJjbGFzc2lkIikgIT09IG1h
dGNoKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRydWU7Cgl9Cn0pOwoKalF1ZXJ5LmZu
LmV4dGVuZCh7CglkYXRhOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsKCQl2YXIg
cGFydHMsIHBhcnQsIGF0dHIsIG5hbWUsIGwsCgkJCWVsZW0gPSB0aGlzWzBdLAoJ
CQlpID0gMCwKCQkJZGF0YSA9IG51bGw7CgoJCS8vIEdldHMgYWxsIHZhbHVlcwoJ
CWlmICgga2V5ID09PSB1bmRlZmluZWQgKSB7CgkJCWlmICggdGhpcy5sZW5ndGgg
KSB7CgkJCQlkYXRhID0galF1ZXJ5LmRhdGEoIGVsZW0gKTsKCgkJCQlpZiAoIGVs
ZW0ubm9kZVR5cGUgPT09IDEgJiYgIWpRdWVyeS5fZGF0YSggZWxlbSwgInBhcnNl
ZEF0dHJzIiApICkgewoJCQkJCWF0dHIgPSBlbGVtLmF0dHJpYnV0ZXM7CgkJCQkJ
Zm9yICggbCA9IGF0dHIubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCQluYW1l
ID0gYXR0cltpXS5uYW1lOwoKCQkJCQkJaWYgKCBuYW1lLmluZGV4T2YoICJkYXRh
LSIgKSA9PT0gMCApIHsKCQkJCQkJCW5hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBu
YW1lLnN1YnN0cmluZyg1KSApOwoKCQkJCQkJCWRhdGFBdHRyKCBlbGVtLCBuYW1l
LCBkYXRhWyBuYW1lIF0gKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQlqUXVlcnkuX2Rh
dGEoIGVsZW0sICJwYXJzZWRBdHRycyIsIHRydWUgKTsKCQkJCX0KCQkJfQoKCQkJ
cmV0dXJuIGRhdGE7CgkJfQoKCQkvLyBTZXRzIG11bHRpcGxlIHZhbHVlcwoJCWlm
ICggdHlwZW9mIGtleSA9PT0gIm9iamVjdCIgKSB7CgkJCXJldHVybiB0aGlzLmVh
Y2goZnVuY3Rpb24oKSB7CgkJCQlqUXVlcnkuZGF0YSggdGhpcywga2V5ICk7CgkJ
CX0pOwoJCX0KCgkJcGFydHMgPSBrZXkuc3BsaXQoICIuIiwgMiApOwoJCXBhcnRz
WzFdID0gcGFydHNbMV0gPyAiLiIgKyBwYXJ0c1sxXSA6ICIiOwoJCXBhcnQgPSBw
YXJ0c1sxXSArICIhIjsKCgkJcmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMsIGZ1
bmN0aW9uKCB2YWx1ZSApIHsKCgkJCWlmICggdmFsdWUgPT09IHVuZGVmaW5lZCAp
IHsKCQkJCWRhdGEgPSB0aGlzLnRyaWdnZXJIYW5kbGVyKCAiZ2V0RGF0YSIgKyBw
YXJ0LCBbIHBhcnRzWzBdIF0gKTsKCgkJCQkvLyBUcnkgdG8gZmV0Y2ggYW55IGlu
dGVybmFsbHkgc3RvcmVkIGRhdGEgZmlyc3QKCQkJCWlmICggZGF0YSA9PT0gdW5k
ZWZpbmVkICYmIGVsZW0gKSB7CgkJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCBlbGVt
LCBrZXkgKTsKCQkJCQlkYXRhID0gZGF0YUF0dHIoIGVsZW0sIGtleSwgZGF0YSAp
OwoJCQkJfQoKCQkJCXJldHVybiBkYXRhID09PSB1bmRlZmluZWQgJiYgcGFydHNb
MV0gPwoJCQkJCXRoaXMuZGF0YSggcGFydHNbMF0gKSA6CgkJCQkJZGF0YTsKCQkJ
fQoKCQkJcGFydHNbMV0gPSB2YWx1ZTsKCQkJdGhpcy5lYWNoKGZ1bmN0aW9uKCkg
ewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkoIHRoaXMgKTsKCgkJCQlzZWxmLnRyaWdn
ZXJIYW5kbGVyKCAic2V0RGF0YSIgKyBwYXJ0LCBwYXJ0cyApOwoJCQkJalF1ZXJ5
LmRhdGEoIHRoaXMsIGtleSwgdmFsdWUgKTsKCQkJCXNlbGYudHJpZ2dlckhhbmRs
ZXIoICJjaGFuZ2VEYXRhIiArIHBhcnQsIHBhcnRzICk7CgkJCX0pOwoJCX0sIG51
bGwsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSwgbnVsbCwgZmFsc2UgKTsK
CX0sCgoJcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGtleSApIHsKCQlyZXR1cm4gdGhp
cy5lYWNoKGZ1bmN0aW9uKCkgewoJCQlqUXVlcnkucmVtb3ZlRGF0YSggdGhpcywg
a2V5ICk7CgkJfSk7Cgl9Cn0pOwoKZnVuY3Rpb24gZGF0YUF0dHIoIGVsZW0sIGtl
eSwgZGF0YSApIHsKCS8vIElmIG5vdGhpbmcgd2FzIGZvdW5kIGludGVybmFsbHks
IHRyeSB0byBmZXRjaCBhbnkKCS8vIGRhdGEgZnJvbSB0aGUgSFRNTDUgZGF0YS0q
IGF0dHJpYnV0ZQoJaWYgKCBkYXRhID09PSB1bmRlZmluZWQgJiYgZWxlbS5ub2Rl
VHlwZSA9PT0gMSApIHsKCgkJdmFyIG5hbWUgPSAiZGF0YS0iICsga2V5LnJlcGxh
Y2UoIHJtdWx0aURhc2gsICItJDEiICkudG9Mb3dlckNhc2UoKTsKCgkJZGF0YSA9
IGVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lICk7CgoJCWlmICggdHlwZW9mIGRhdGEg
PT09ICJzdHJpbmciICkgewoJCQl0cnkgewoJCQkJZGF0YSA9IGRhdGEgPT09ICJ0
cnVlIiA/IHRydWUgOgoJCQkJZGF0YSA9PT0gImZhbHNlIiA/IGZhbHNlIDoKCQkJ
CWRhdGEgPT09ICJudWxsIiA/IG51bGwgOgoJCQkJalF1ZXJ5LmlzTnVtZXJpYygg
ZGF0YSApID8gK2RhdGEgOgoJCQkJCXJicmFjZS50ZXN0KCBkYXRhICkgPyBqUXVl
cnkucGFyc2VKU09OKCBkYXRhICkgOgoJCQkJCWRhdGE7CgkJCX0gY2F0Y2goIGUg
KSB7fQoKCQkJLy8gTWFrZSBzdXJlIHdlIHNldCB0aGUgZGF0YSBzbyBpdCBpc24n
dCBjaGFuZ2VkIGxhdGVyCgkJCWpRdWVyeS5kYXRhKCBlbGVtLCBrZXksIGRhdGEg
KTsKCgkJfSBlbHNlIHsKCQkJZGF0YSA9IHVuZGVmaW5lZDsKCQl9Cgl9CgoJcmV0
dXJuIGRhdGE7Cn0KCi8vIGNoZWNrcyBhIGNhY2hlIG9iamVjdCBmb3IgZW1wdGlu
ZXNzCmZ1bmN0aW9uIGlzRW1wdHlEYXRhT2JqZWN0KCBvYmogKSB7Cglmb3IgKCB2
YXIgbmFtZSBpbiBvYmogKSB7CgoJCS8vIGlmIHRoZSBwdWJsaWMgZGF0YSBvYmpl
Y3QgaXMgZW1wdHksIHRoZSBwcml2YXRlIGlzIHN0aWxsIGVtcHR5CgkJaWYgKCBu
YW1lID09PSAiZGF0YSIgJiYgalF1ZXJ5LmlzRW1wdHlPYmplY3QoIG9ialtuYW1l
XSApICkgewoJCQljb250aW51ZTsKCQl9CgkJaWYgKCBuYW1lICE9PSAidG9KU09O
IiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KCglyZXR1cm4gdHJ1ZTsKfQoK
CgoKZnVuY3Rpb24gaGFuZGxlUXVldWVNYXJrRGVmZXIoIGVsZW0sIHR5cGUsIHNy
YyApIHsKCXZhciBkZWZlckRhdGFLZXkgPSB0eXBlICsgImRlZmVyIiwKCQlxdWV1
ZURhdGFLZXkgPSB0eXBlICsgInF1ZXVlIiwKCQltYXJrRGF0YUtleSA9IHR5cGUg
KyAibWFyayIsCgkJZGVmZXIgPSBqUXVlcnkuX2RhdGEoIGVsZW0sIGRlZmVyRGF0
YUtleSApOwoJaWYgKCBkZWZlciAmJgoJCSggc3JjID09PSAicXVldWUiIHx8ICFq
UXVlcnkuX2RhdGEoZWxlbSwgcXVldWVEYXRhS2V5KSApICYmCgkJKCBzcmMgPT09
ICJtYXJrIiB8fCAhalF1ZXJ5Ll9kYXRhKGVsZW0sIG1hcmtEYXRhS2V5KSApICkg
ewoJCS8vIEdpdmUgcm9vbSBmb3IgaGFyZC1jb2RlZCBjYWxsYmFja3MgdG8gZmly
ZSBmaXJzdAoJCS8vIGFuZCBldmVudHVhbGx5IG1hcmsvcXVldWUgc29tZXRoaW5n
IGVsc2Ugb24gdGhlIGVsZW1lbnQKCQlzZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsK
CQkJaWYgKCAhalF1ZXJ5Ll9kYXRhKCBlbGVtLCBxdWV1ZURhdGFLZXkgKSAmJgoJ
CQkJIWpRdWVyeS5fZGF0YSggZWxlbSwgbWFya0RhdGFLZXkgKSApIHsKCQkJCWpR
dWVyeS5yZW1vdmVEYXRhKCBlbGVtLCBkZWZlckRhdGFLZXksIHRydWUgKTsKCQkJ
CWRlZmVyLmZpcmUoKTsKCQkJfQoJCX0sIDAgKTsKCX0KfQoKalF1ZXJ5LmV4dGVu
ZCh7CgoJX21hcms6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkgewoJCWlmICggZWxl
bSApIHsKCQkJdHlwZSA9ICggdHlwZSB8fCAiZngiICkgKyAibWFyayI7CgkJCWpR
dWVyeS5fZGF0YSggZWxlbSwgdHlwZSwgKGpRdWVyeS5fZGF0YSggZWxlbSwgdHlw
ZSApIHx8IDApICsgMSApOwoJCX0KCX0sCgoJX3VubWFyazogZnVuY3Rpb24oIGZv
cmNlLCBlbGVtLCB0eXBlICkgewoJCWlmICggZm9yY2UgIT09IHRydWUgKSB7CgkJ
CXR5cGUgPSBlbGVtOwoJCQllbGVtID0gZm9yY2U7CgkJCWZvcmNlID0gZmFsc2U7
CgkJfQoJCWlmICggZWxlbSApIHsKCQkJdHlwZSA9IHR5cGUgfHwgImZ4IjsKCQkJ
dmFyIGtleSA9IHR5cGUgKyAibWFyayIsCgkJCQljb3VudCA9IGZvcmNlID8gMCA6
ICggKGpRdWVyeS5fZGF0YSggZWxlbSwga2V5ICkgfHwgMSkgLSAxICk7CgkJCWlm
ICggY291bnQgKSB7CgkJCQlqUXVlcnkuX2RhdGEoIGVsZW0sIGtleSwgY291bnQg
KTsKCQkJfSBlbHNlIHsKCQkJCWpRdWVyeS5yZW1vdmVEYXRhKCBlbGVtLCBrZXks
IHRydWUgKTsKCQkJCWhhbmRsZVF1ZXVlTWFya0RlZmVyKCBlbGVtLCB0eXBlLCAi
bWFyayIgKTsKCQkJfQoJCX0KCX0sCgoJcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0
eXBlLCBkYXRhICkgewoJCXZhciBxOwoJCWlmICggZWxlbSApIHsKCQkJdHlwZSA9
ICggdHlwZSB8fCAiZngiICkgKyAicXVldWUiOwoJCQlxID0galF1ZXJ5Ll9kYXRh
KCBlbGVtLCB0eXBlICk7CgoJCQkvLyBTcGVlZCB1cCBkZXF1ZXVlIGJ5IGdldHRp
bmcgb3V0IHF1aWNrbHkgaWYgdGhpcyBpcyBqdXN0IGEgbG9va3VwCgkJCWlmICgg
ZGF0YSApIHsKCQkJCWlmICggIXEgfHwgalF1ZXJ5LmlzQXJyYXkoZGF0YSkgKSB7
CgkJCQkJcSA9IGpRdWVyeS5fZGF0YSggZWxlbSwgdHlwZSwgalF1ZXJ5Lm1ha2VB
cnJheShkYXRhKSApOwoJCQkJfSBlbHNlIHsKCQkJCQlxLnB1c2goIGRhdGEgKTsK
CQkJCX0KCQkJfQoJCQlyZXR1cm4gcSB8fCBbXTsKCQl9Cgl9LAoKCWRlcXVldWU6
IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkgewoJCXR5cGUgPSB0eXBlIHx8ICJmeCI7
CgoJCXZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggZWxlbSwgdHlwZSApLAoJCQlm
biA9IHF1ZXVlLnNoaWZ0KCksCgkJCWhvb2tzID0ge307CgoJCS8vIElmIHRoZSBm
eCBxdWV1ZSBpcyBkZXF1ZXVlZCwgYWx3YXlzIHJlbW92ZSB0aGUgcHJvZ3Jlc3Mg
c2VudGluZWwKCQlpZiAoIGZuID09PSAiaW5wcm9ncmVzcyIgKSB7CgkJCWZuID0g
cXVldWUuc2hpZnQoKTsKCQl9CgoJCWlmICggZm4gKSB7CgkJCS8vIEFkZCBhIHBy
b2dyZXNzIHNlbnRpbmVsIHRvIHByZXZlbnQgdGhlIGZ4IHF1ZXVlIGZyb20gYmVp
bmcKCQkJLy8gYXV0b21hdGljYWxseSBkZXF1ZXVlZAoJCQlpZiAoIHR5cGUgPT09
ICJmeCIgKSB7CgkJCQlxdWV1ZS51bnNoaWZ0KCAiaW5wcm9ncmVzcyIgKTsKCQkJ
fQoKCQkJalF1ZXJ5Ll9kYXRhKCBlbGVtLCB0eXBlICsgIi5ydW4iLCBob29rcyAp
OwoJCQlmbi5jYWxsKCBlbGVtLCBmdW5jdGlvbigpIHsKCQkJCWpRdWVyeS5kZXF1
ZXVlKCBlbGVtLCB0eXBlICk7CgkJCX0sIGhvb2tzICk7CgkJfQoKCQlpZiAoICFx
dWV1ZS5sZW5ndGggKSB7CgkJCWpRdWVyeS5yZW1vdmVEYXRhKCBlbGVtLCB0eXBl
ICsgInF1ZXVlICIgKyB0eXBlICsgIi5ydW4iLCB0cnVlICk7CgkJCWhhbmRsZVF1
ZXVlTWFya0RlZmVyKCBlbGVtLCB0eXBlLCAicXVldWUiICk7CgkJfQoJfQp9KTsK
CmpRdWVyeS5mbi5leHRlbmQoewoJcXVldWU6IGZ1bmN0aW9uKCB0eXBlLCBkYXRh
ICkgewoJCXZhciBzZXR0ZXIgPSAyOwoKCQlpZiAoIHR5cGVvZiB0eXBlICE9PSAi
c3RyaW5nIiApIHsKCQkJZGF0YSA9IHR5cGU7CgkJCXR5cGUgPSAiZngiOwoJCQlz
ZXR0ZXItLTsKCQl9CgoJCWlmICggYXJndW1lbnRzLmxlbmd0aCA8IHNldHRlciAp
IHsKCQkJcmV0dXJuIGpRdWVyeS5xdWV1ZSggdGhpc1swXSwgdHlwZSApOwoJCX0K
CgkJcmV0dXJuIGRhdGEgPT09IHVuZGVmaW5lZCA/CgkJCXRoaXMgOgoJCQl0aGlz
LmVhY2goZnVuY3Rpb24oKSB7CgkJCQl2YXIgcXVldWUgPSBqUXVlcnkucXVldWUo
IHRoaXMsIHR5cGUsIGRhdGEgKTsKCgkJCQlpZiAoIHR5cGUgPT09ICJmeCIgJiYg
cXVldWVbMF0gIT09ICJpbnByb2dyZXNzIiApIHsKCQkJCQlqUXVlcnkuZGVxdWV1
ZSggdGhpcywgdHlwZSApOwoJCQkJfQoJCQl9KTsKCX0sCglkZXF1ZXVlOiBmdW5j
dGlvbiggdHlwZSApIHsKCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJ
CQlqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApOwoJCX0pOwoJfSwKCS8vIEJh
c2VkIG9mZiBvZiB0aGUgcGx1Z2luIGJ5IENsaW50IEhlbGZlcnMsIHdpdGggcGVy
bWlzc2lvbi4KCS8vIGh0dHA6Ly9ibGluZHNpZ25hbHMuY29tL2luZGV4LnBocC8y
MDA5LzA3L2pxdWVyeS1kZWxheS8KCWRlbGF5OiBmdW5jdGlvbiggdGltZSwgdHlw
ZSApIHsKCQl0aW1lID0galF1ZXJ5LmZ4ID8galF1ZXJ5LmZ4LnNwZWVkc1sgdGlt
ZSBdIHx8IHRpbWUgOiB0aW1lOwoJCXR5cGUgPSB0eXBlIHx8ICJmeCI7CgoJCXJl
dHVybiB0aGlzLnF1ZXVlKCB0eXBlLCBmdW5jdGlvbiggbmV4dCwgaG9va3MgKSB7
CgkJCXZhciB0aW1lb3V0ID0gc2V0VGltZW91dCggbmV4dCwgdGltZSApOwoJCQlo
b29rcy5zdG9wID0gZnVuY3Rpb24oKSB7CgkJCQljbGVhclRpbWVvdXQoIHRpbWVv
dXQgKTsKCQkJfTsKCQl9KTsKCX0sCgljbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlw
ZSApIHsKCQlyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSB8fCAiZngiLCBbXSApOwoJ
fSwKCS8vIEdldCBhIHByb21pc2UgcmVzb2x2ZWQgd2hlbiBxdWV1ZXMgb2YgYSBj
ZXJ0YWluIHR5cGUKCS8vIGFyZSBlbXB0aWVkIChmeCBpcyB0aGUgdHlwZSBieSBk
ZWZhdWx0KQoJcHJvbWlzZTogZnVuY3Rpb24oIHR5cGUsIG9iamVjdCApIHsKCQlp
ZiAoIHR5cGVvZiB0eXBlICE9PSAic3RyaW5nIiApIHsKCQkJb2JqZWN0ID0gdHlw
ZTsKCQkJdHlwZSA9IHVuZGVmaW5lZDsKCQl9CgkJdHlwZSA9IHR5cGUgfHwgImZ4
IjsKCQl2YXIgZGVmZXIgPSBqUXVlcnkuRGVmZXJyZWQoKSwKCQkJZWxlbWVudHMg
PSB0aGlzLAoJCQlpID0gZWxlbWVudHMubGVuZ3RoLAoJCQljb3VudCA9IDEsCgkJ
CWRlZmVyRGF0YUtleSA9IHR5cGUgKyAiZGVmZXIiLAoJCQlxdWV1ZURhdGFLZXkg
PSB0eXBlICsgInF1ZXVlIiwKCQkJbWFya0RhdGFLZXkgPSB0eXBlICsgIm1hcmsi
LAoJCQl0bXA7CgkJZnVuY3Rpb24gcmVzb2x2ZSgpIHsKCQkJaWYgKCAhKCAtLWNv
dW50ICkgKSB7CgkJCQlkZWZlci5yZXNvbHZlV2l0aCggZWxlbWVudHMsIFsgZWxl
bWVudHMgXSApOwoJCQl9CgkJfQoJCXdoaWxlKCBpLS0gKSB7CgkJCWlmICgoIHRt
cCA9IGpRdWVyeS5kYXRhKCBlbGVtZW50c1sgaSBdLCBkZWZlckRhdGFLZXksIHVu
ZGVmaW5lZCwgdHJ1ZSApIHx8CgkJCQkJKCBqUXVlcnkuZGF0YSggZWxlbWVudHNb
IGkgXSwgcXVldWVEYXRhS2V5LCB1bmRlZmluZWQsIHRydWUgKSB8fAoJCQkJCQlq
UXVlcnkuZGF0YSggZWxlbWVudHNbIGkgXSwgbWFya0RhdGFLZXksIHVuZGVmaW5l
ZCwgdHJ1ZSApICkgJiYKCQkJCQlqUXVlcnkuZGF0YSggZWxlbWVudHNbIGkgXSwg
ZGVmZXJEYXRhS2V5LCBqUXVlcnkuQ2FsbGJhY2tzKCAib25jZSBtZW1vcnkiICks
IHRydWUgKSApKSB7CgkJCQljb3VudCsrOwoJCQkJdG1wLmFkZCggcmVzb2x2ZSAp
OwoJCQl9CgkJfQoJCXJlc29sdmUoKTsKCQlyZXR1cm4gZGVmZXIucHJvbWlzZSgg
b2JqZWN0ICk7Cgl9Cn0pOwoKCgoKdmFyIHJjbGFzcyA9IC9bXG5cdFxyXS9nLAoJ
cnNwYWNlID0gL1xzKy8sCglycmV0dXJuID0gL1xyL2csCglydHlwZSA9IC9eKD86
YnV0dG9ufGlucHV0KSQvaSwKCXJmb2N1c2FibGUgPSAvXig/OmJ1dHRvbnxpbnB1
dHxvYmplY3R8c2VsZWN0fHRleHRhcmVhKSQvaSwKCXJjbGlja2FibGUgPSAvXmEo
PzpyZWEpPyQvaSwKCXJib29sZWFuID0gL14oPzphdXRvZm9jdXN8YXV0b3BsYXl8
YXN5bmN8Y2hlY2tlZHxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58bG9v
cHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZHxzZWxlY3Rl
ZCkkL2ksCglnZXRTZXRBdHRyaWJ1dGUgPSBqUXVlcnkuc3VwcG9ydC5nZXRTZXRB
dHRyaWJ1dGUsCglub2RlSG9vaywgYm9vbEhvb2ssIGZpeFNwZWNpZmllZDsKCmpR
dWVyeS5mbi5leHRlbmQoewoJYXR0cjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkg
ewoJCXJldHVybiBqUXVlcnkuYWNjZXNzKCB0aGlzLCBqUXVlcnkuYXR0ciwgbmFt
ZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7Cgl9LAoKCXJlbW92ZUF0
dHI6IGZ1bmN0aW9uKCBuYW1lICkgewoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rp
b24oKSB7CgkJCWpRdWVyeS5yZW1vdmVBdHRyKCB0aGlzLCBuYW1lICk7CgkJfSk7
Cgl9LAoKCXByb3A6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHsKCQlyZXR1cm4g
alF1ZXJ5LmFjY2VzcyggdGhpcywgalF1ZXJ5LnByb3AsIG5hbWUsIHZhbHVlLCBh
cmd1bWVudHMubGVuZ3RoID4gMSApOwoJfSwKCglyZW1vdmVQcm9wOiBmdW5jdGlv
biggbmFtZSApIHsKCQluYW1lID0galF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBu
YW1lOwoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRyeS9j
YXRjaCBoYW5kbGVzIGNhc2VzIHdoZXJlIElFIGJhbGtzIChzdWNoIGFzIHJlbW92
aW5nIGEgcHJvcGVydHkgb24gd2luZG93KQoJCQl0cnkgewoJCQkJdGhpc1sgbmFt
ZSBdID0gdW5kZWZpbmVkOwoJCQkJZGVsZXRlIHRoaXNbIG5hbWUgXTsKCQkJfSBj
YXRjaCggZSApIHt9CgkJfSk7Cgl9LAoKCWFkZENsYXNzOiBmdW5jdGlvbiggdmFs
dWUgKSB7CgkJdmFyIGNsYXNzTmFtZXMsIGksIGwsIGVsZW0sCgkJCXNldENsYXNz
LCBjLCBjbDsKCgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggdmFsdWUgKSApIHsK
CQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaiApIHsKCQkJCWpRdWVyeSgg
dGhpcyApLmFkZENsYXNzKCB2YWx1ZS5jYWxsKHRoaXMsIGosIHRoaXMuY2xhc3NO
YW1lKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdmFsdWUgJiYgdHlwZW9mIHZhbHVl
ID09PSAic3RyaW5nIiApIHsKCQkJY2xhc3NOYW1lcyA9IHZhbHVlLnNwbGl0KCBy
c3BhY2UgKTsKCgkJCWZvciAoIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBs
OyBpKysgKSB7CgkJCQllbGVtID0gdGhpc1sgaSBdOwoKCQkJCWlmICggZWxlbS5u
b2RlVHlwZSA9PT0gMSApIHsKCQkJCQlpZiAoICFlbGVtLmNsYXNzTmFtZSAmJiBj
bGFzc05hbWVzLmxlbmd0aCA9PT0gMSApIHsKCQkJCQkJZWxlbS5jbGFzc05hbWUg
PSB2YWx1ZTsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJc2V0Q2xhc3MgPSAiICIgKyBl
bGVtLmNsYXNzTmFtZSArICIgIjsKCgkJCQkJCWZvciAoIGMgPSAwLCBjbCA9IGNs
YXNzTmFtZXMubGVuZ3RoOyBjIDwgY2w7IGMrKyApIHsKCQkJCQkJCWlmICggIX5z
ZXRDbGFzcy5pbmRleE9mKCAiICIgKyBjbGFzc05hbWVzWyBjIF0gKyAiICIgKSAp
IHsKCQkJCQkJCQlzZXRDbGFzcyArPSBjbGFzc05hbWVzWyBjIF0gKyAiICI7CgkJ
CQkJCQl9CgkJCQkJCX0KCQkJCQkJZWxlbS5jbGFzc05hbWUgPSBqUXVlcnkudHJp
bSggc2V0Q2xhc3MgKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiB0
aGlzOwoJfSwKCglyZW1vdmVDbGFzczogZnVuY3Rpb24oIHZhbHVlICkgewoJCXZh
ciBjbGFzc05hbWVzLCBpLCBsLCBlbGVtLCBjbGFzc05hbWUsIGMsIGNsOwoKCQlp
ZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApICkgewoJCQlyZXR1cm4gdGhp
cy5lYWNoKGZ1bmN0aW9uKCBqICkgewoJCQkJalF1ZXJ5KCB0aGlzICkucmVtb3Zl
Q2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaiwgdGhpcy5jbGFzc05hbWUpICk7CgkJ
CX0pOwoJCX0KCgkJaWYgKCAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAic3Ry
aW5nIikgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCApIHsKCQkJY2xhc3NOYW1lcyA9
ICggdmFsdWUgfHwgIiIgKS5zcGxpdCggcnNwYWNlICk7CgoJCQlmb3IgKCBpID0g
MCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJZWxlbSA9IHRo
aXNbIGkgXTsKCgkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgZWxlbS5j
bGFzc05hbWUgKSB7CgkJCQkJaWYgKCB2YWx1ZSApIHsKCQkJCQkJY2xhc3NOYW1l
ID0gKCIgIiArIGVsZW0uY2xhc3NOYW1lICsgIiAiKS5yZXBsYWNlKCByY2xhc3Ms
ICIgIiApOwoJCQkJCQlmb3IgKCBjID0gMCwgY2wgPSBjbGFzc05hbWVzLmxlbmd0
aDsgYyA8IGNsOyBjKysgKSB7CgkJCQkJCQljbGFzc05hbWUgPSBjbGFzc05hbWUu
cmVwbGFjZSgiICIgKyBjbGFzc05hbWVzWyBjIF0gKyAiICIsICIgIik7CgkJCQkJ
CX0KCQkJCQkJZWxlbS5jbGFzc05hbWUgPSBqUXVlcnkudHJpbSggY2xhc3NOYW1l
ICk7CgoJCQkJCX0gZWxzZSB7CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0gIiI7CgkJ
CQkJfQoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJdG9nZ2xl
Q2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSwgc3RhdGVWYWwgKSB7CgkJdmFyIHR5cGUg
PSB0eXBlb2YgdmFsdWUsCgkJCWlzQm9vbCA9IHR5cGVvZiBzdGF0ZVZhbCA9PT0g
ImJvb2xlYW4iOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApICkg
ewoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCBpICkgewoJCQkJalF1ZXJ5
KCB0aGlzICkudG9nZ2xlQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgdGhpcy5j
bGFzc05hbWUsIHN0YXRlVmFsKSwgc3RhdGVWYWwgKTsKCQkJfSk7CgkJfQoKCQly
ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQlpZiAoIHR5cGUgPT09ICJz
dHJpbmciICkgewoJCQkJLy8gdG9nZ2xlIGluZGl2aWR1YWwgY2xhc3MgbmFtZXMK
CQkJCXZhciBjbGFzc05hbWUsCgkJCQkJaSA9IDAsCgkJCQkJc2VsZiA9IGpRdWVy
eSggdGhpcyApLAoJCQkJCXN0YXRlID0gc3RhdGVWYWwsCgkJCQkJY2xhc3NOYW1l
cyA9IHZhbHVlLnNwbGl0KCByc3BhY2UgKTsKCgkJCQl3aGlsZSAoIChjbGFzc05h
bWUgPSBjbGFzc05hbWVzWyBpKysgXSkgKSB7CgkJCQkJLy8gY2hlY2sgZWFjaCBj
bGFzc05hbWUgZ2l2ZW4sIHNwYWNlIHNlcGVyYXRlZCBsaXN0CgkJCQkJc3RhdGUg
PSBpc0Jvb2wgPyBzdGF0ZSA6ICFzZWxmLmhhc0NsYXNzKCBjbGFzc05hbWUgKTsK
CQkJCQlzZWxmWyBzdGF0ZSA/ICJhZGRDbGFzcyIgOiAicmVtb3ZlQ2xhc3MiIF0o
IGNsYXNzTmFtZSApOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggdHlwZSA9PT0gInVu
ZGVmaW5lZCIgfHwgdHlwZSA9PT0gImJvb2xlYW4iICkgewoJCQkJaWYgKCB0aGlz
LmNsYXNzTmFtZSApIHsKCQkJCQkvLyBzdG9yZSBjbGFzc05hbWUgaWYgc2V0CgkJ
CQkJalF1ZXJ5Ll9kYXRhKCB0aGlzLCAiX19jbGFzc05hbWVfXyIsIHRoaXMuY2xh
c3NOYW1lICk7CgkJCQl9CgoJCQkJLy8gdG9nZ2xlIHdob2xlIGNsYXNzTmFtZQoJ
CQkJdGhpcy5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZSB8fCB2YWx1ZSA9PT0g
ZmFsc2UgPyAiIiA6IGpRdWVyeS5fZGF0YSggdGhpcywgIl9fY2xhc3NOYW1lX18i
ICkgfHwgIiI7CgkJCX0KCQl9KTsKCX0sCgoJaGFzQ2xhc3M6IGZ1bmN0aW9uKCBz
ZWxlY3RvciApIHsKCQl2YXIgY2xhc3NOYW1lID0gIiAiICsgc2VsZWN0b3IgKyAi
ICIsCgkJCWkgPSAwLAoJCQlsID0gdGhpcy5sZW5ndGg7CgkJZm9yICggOyBpIDwg
bDsgaSsrICkgewoJCQlpZiAoIHRoaXNbaV0ubm9kZVR5cGUgPT09IDEgJiYgKCIg
IiArIHRoaXNbaV0uY2xhc3NOYW1lICsgIiAiKS5yZXBsYWNlKHJjbGFzcywgIiAi
KS5pbmRleE9mKCBjbGFzc05hbWUgKSA+IC0xICkgewoJCQkJcmV0dXJuIHRydWU7
CgkJCX0KCQl9CgoJCXJldHVybiBmYWxzZTsKCX0sCgoJdmFsOiBmdW5jdGlvbigg
dmFsdWUgKSB7CgkJdmFyIGhvb2tzLCByZXQsIGlzRnVuY3Rpb24sCgkJCWVsZW0g
PSB0aGlzWzBdOwoKCQlpZiAoICFhcmd1bWVudHMubGVuZ3RoICkgewoJCQlpZiAo
IGVsZW0gKSB7CgkJCQlob29rcyA9IGpRdWVyeS52YWxIb29rc1sgZWxlbS50eXBl
IF0gfHwgalF1ZXJ5LnZhbEhvb2tzWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNl
KCkgXTsKCgkJCQlpZiAoIGhvb2tzICYmICJnZXQiIGluIGhvb2tzICYmIChyZXQg
PSBob29rcy5nZXQoIGVsZW0sICJ2YWx1ZSIgKSkgIT09IHVuZGVmaW5lZCApIHsK
CQkJCQlyZXR1cm4gcmV0OwoJCQkJfQoKCQkJCXJldCA9IGVsZW0udmFsdWU7CgoJ
CQkJcmV0dXJuIHR5cGVvZiByZXQgPT09ICJzdHJpbmciID8KCQkJCQkvLyBoYW5k
bGUgbW9zdCBjb21tb24gc3RyaW5nIGNhc2VzCgkJCQkJcmV0LnJlcGxhY2UocnJl
dHVybiwgIiIpIDoKCQkJCQkvLyBoYW5kbGUgY2FzZXMgd2hlcmUgdmFsdWUgaXMg
bnVsbC91bmRlZiBvciBudW1iZXIKCQkJCQlyZXQgPT0gbnVsbCA/ICIiIDogcmV0
OwoJCQl9CgoJCQlyZXR1cm47CgkJfQoKCQlpc0Z1bmN0aW9uID0galF1ZXJ5Lmlz
RnVuY3Rpb24oIHZhbHVlICk7CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24o
IGkgKSB7CgkJCXZhciBzZWxmID0galF1ZXJ5KHRoaXMpLCB2YWw7CgoJCQlpZiAo
IHRoaXMubm9kZVR5cGUgIT09IDEgKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWlm
ICggaXNGdW5jdGlvbiApIHsKCQkJCXZhbCA9IHZhbHVlLmNhbGwoIHRoaXMsIGks
IHNlbGYudmFsKCkgKTsKCQkJfSBlbHNlIHsKCQkJCXZhbCA9IHZhbHVlOwoJCQl9
CgoJCQkvLyBUcmVhdCBudWxsL3VuZGVmaW5lZCBhcyAiIjsgY29udmVydCBudW1i
ZXJzIHRvIHN0cmluZwoJCQlpZiAoIHZhbCA9PSBudWxsICkgewoJCQkJdmFsID0g
IiI7CgkJCX0gZWxzZSBpZiAoIHR5cGVvZiB2YWwgPT09ICJudW1iZXIiICkgewoJ
CQkJdmFsICs9ICIiOwoJCQl9IGVsc2UgaWYgKCBqUXVlcnkuaXNBcnJheSggdmFs
ICkgKSB7CgkJCQl2YWwgPSBqUXVlcnkubWFwKHZhbCwgZnVuY3Rpb24gKCB2YWx1
ZSApIHsKCQkJCQlyZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICIiIDogdmFsdWUgKyAi
IjsKCQkJCX0pOwoJCQl9CgoJCQlob29rcyA9IGpRdWVyeS52YWxIb29rc1sgdGhp
cy50eXBlIF0gfHwgalF1ZXJ5LnZhbEhvb2tzWyB0aGlzLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCkgXTsKCgkJCS8vIElmIHNldCByZXR1cm5zIHVuZGVmaW5lZCwgZmFs
bCBiYWNrIHRvIG5vcm1hbCBzZXR0aW5nCgkJCWlmICggIWhvb2tzIHx8ICEoInNl
dCIgaW4gaG9va3MpIHx8IGhvb2tzLnNldCggdGhpcywgdmFsLCAidmFsdWUiICkg
PT09IHVuZGVmaW5lZCApIHsKCQkJCXRoaXMudmFsdWUgPSB2YWw7CgkJCX0KCQl9
KTsKCX0KfSk7CgpqUXVlcnkuZXh0ZW5kKHsKCXZhbEhvb2tzOiB7CgkJb3B0aW9u
OiB7CgkJCWdldDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCQkvLyBhdHRyaWJ1dGVz
LnZhbHVlIGlzIHVuZGVmaW5lZCBpbiBCbGFja2JlcnJ5IDQuNyBidXQKCQkJCS8v
IHVzZXMgLnZhbHVlLiBTZWUgIzY5MzIKCQkJCXZhciB2YWwgPSBlbGVtLmF0dHJp
YnV0ZXMudmFsdWU7CgkJCQlyZXR1cm4gIXZhbCB8fCB2YWwuc3BlY2lmaWVkID8g
ZWxlbS52YWx1ZSA6IGVsZW0udGV4dDsKCQkJfQoJCX0sCgkJc2VsZWN0OiB7CgkJ
CWdldDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCQl2YXIgdmFsdWUsIGksIG1heCwg
b3B0aW9uLAoJCQkJCWluZGV4ID0gZWxlbS5zZWxlY3RlZEluZGV4LAoJCQkJCXZh
bHVlcyA9IFtdLAoJCQkJCW9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsCgkJCQkJb25l
ID0gZWxlbS50eXBlID09PSAic2VsZWN0LW9uZSI7CgoJCQkJLy8gTm90aGluZyB3
YXMgc2VsZWN0ZWQKCQkJCWlmICggaW5kZXggPCAwICkgewoJCQkJCXJldHVybiBu
dWxsOwoJCQkJfQoKCQkJCS8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIHNlbGVjdGVk
IG9wdGlvbnMKCQkJCWkgPSBvbmUgPyBpbmRleCA6IDA7CgkJCQltYXggPSBvbmUg
PyBpbmRleCArIDEgOiBvcHRpb25zLmxlbmd0aDsKCQkJCWZvciAoIDsgaSA8IG1h
eDsgaSsrICkgewoJCQkJCW9wdGlvbiA9IG9wdGlvbnNbIGkgXTsKCgkJCQkJLy8g
RG9uJ3QgcmV0dXJuIG9wdGlvbnMgdGhhdCBhcmUgZGlzYWJsZWQgb3IgaW4gYSBk
aXNhYmxlZCBvcHRncm91cAoJCQkJCWlmICggb3B0aW9uLnNlbGVjdGVkICYmIChq
UXVlcnkuc3VwcG9ydC5vcHREaXNhYmxlZCA/ICFvcHRpb24uZGlzYWJsZWQgOiBv
cHRpb24uZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpID09PSBudWxsKSAmJgoJCQkJ
CQkJKCFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fCAhalF1ZXJ5Lm5vZGVO
YW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgIm9wdGdyb3VwIiApKSApIHsKCgkJCQkJ
CS8vIEdldCB0aGUgc3BlY2lmaWMgdmFsdWUgZm9yIHRoZSBvcHRpb24KCQkJCQkJ
dmFsdWUgPSBqUXVlcnkoIG9wdGlvbiApLnZhbCgpOwoKCQkJCQkJLy8gV2UgZG9u
J3QgbmVlZCBhbiBhcnJheSBmb3Igb25lIHNlbGVjdHMKCQkJCQkJaWYgKCBvbmUg
KSB7CgkJCQkJCQlyZXR1cm4gdmFsdWU7CgkJCQkJCX0KCgkJCQkJCS8vIE11bHRp
LVNlbGVjdHMgcmV0dXJuIGFuIGFycmF5CgkJCQkJCXZhbHVlcy5wdXNoKCB2YWx1
ZSApOwoJCQkJCX0KCQkJCX0KCgkJCQkvLyBGaXhlcyBCdWcgIzI1NTEgLS0gc2Vs
ZWN0LnZhbCgpIGJyb2tlbiBpbiBJRSBhZnRlciBmb3JtLnJlc2V0KCkKCQkJCWlm
ICggb25lICYmICF2YWx1ZXMubGVuZ3RoICYmIG9wdGlvbnMubGVuZ3RoICkgewoJ
CQkJCXJldHVybiBqUXVlcnkoIG9wdGlvbnNbIGluZGV4IF0gKS52YWwoKTsKCQkJ
CX0KCgkJCQlyZXR1cm4gdmFsdWVzOwoJCQl9LAoKCQkJc2V0OiBmdW5jdGlvbigg
ZWxlbSwgdmFsdWUgKSB7CgkJCQl2YXIgdmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJh
eSggdmFsdWUgKTsKCgkJCQlqUXVlcnkoZWxlbSkuZmluZCgib3B0aW9uIikuZWFj
aChmdW5jdGlvbigpIHsKCQkJCQl0aGlzLnNlbGVjdGVkID0galF1ZXJ5LmluQXJy
YXkoIGpRdWVyeSh0aGlzKS52YWwoKSwgdmFsdWVzICkgPj0gMDsKCQkJCX0pOwoK
CQkJCWlmICggIXZhbHVlcy5sZW5ndGggKSB7CgkJCQkJZWxlbS5zZWxlY3RlZElu
ZGV4ID0gLTE7CgkJCQl9CgkJCQlyZXR1cm4gdmFsdWVzOwoJCQl9CgkJfQoJfSwK
CglhdHRyRm46IHsKCQl2YWw6IHRydWUsCgkJY3NzOiB0cnVlLAoJCWh0bWw6IHRy
dWUsCgkJdGV4dDogdHJ1ZSwKCQlkYXRhOiB0cnVlLAoJCXdpZHRoOiB0cnVlLAoJ
CWhlaWdodDogdHJ1ZSwKCQlvZmZzZXQ6IHRydWUKCX0sCgoJYXR0cjogZnVuY3Rp
b24oIGVsZW0sIG5hbWUsIHZhbHVlLCBwYXNzICkgewoJCXZhciByZXQsIGhvb2tz
LCBub3R4bWwsCgkJCW5UeXBlID0gZWxlbS5ub2RlVHlwZTsKCgkJLy8gZG9uJ3Qg
Z2V0L3NldCBhdHRyaWJ1dGVzIG9uIHRleHQsIGNvbW1lbnQgYW5kIGF0dHJpYnV0
ZSBub2RlcwoJCWlmICggIWVsZW0gfHwgblR5cGUgPT09IDMgfHwgblR5cGUgPT09
IDggfHwgblR5cGUgPT09IDIgKSB7CgkJCXJldHVybjsKCQl9CgoJCWlmICggcGFz
cyAmJiBuYW1lIGluIGpRdWVyeS5hdHRyRm4gKSB7CgkJCXJldHVybiBqUXVlcnko
IGVsZW0gKVsgbmFtZSBdKCB2YWx1ZSApOwoJCX0KCgkJLy8gRmFsbGJhY2sgdG8g
cHJvcCB3aGVuIGF0dHJpYnV0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQKCQlpZiAoIHR5
cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSA9PT0gInVuZGVmaW5lZCIgKSB7CgkJCXJl
dHVybiBqUXVlcnkucHJvcCggZWxlbSwgbmFtZSwgdmFsdWUgKTsKCQl9CgoJCW5v
dHhtbCA9IG5UeXBlICE9PSAxIHx8ICFqUXVlcnkuaXNYTUxEb2MoIGVsZW0gKTsK
CgkJLy8gQWxsIGF0dHJpYnV0ZXMgYXJlIGxvd2VyY2FzZQoJCS8vIEdyYWIgbmVj
ZXNzYXJ5IGhvb2sgaWYgb25lIGlzIGRlZmluZWQKCQlpZiAoIG5vdHhtbCApIHsK
CQkJbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTsKCQkJaG9va3MgPSBqUXVlcnku
YXR0ckhvb2tzWyBuYW1lIF0gfHwgKCByYm9vbGVhbi50ZXN0KCBuYW1lICkgPyBi
b29sSG9vayA6IG5vZGVIb29rICk7CgkJfQoKCQlpZiAoIHZhbHVlICE9PSB1bmRl
ZmluZWQgKSB7CgoJCQlpZiAoIHZhbHVlID09PSBudWxsICkgewoJCQkJalF1ZXJ5
LnJlbW92ZUF0dHIoIGVsZW0sIG5hbWUgKTsKCQkJCXJldHVybjsKCgkJCX0gZWxz
ZSBpZiAoIGhvb2tzICYmICJzZXQiIGluIGhvb2tzICYmIG5vdHhtbCAmJiAocmV0
ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgbmFtZSApKSAhPT0gdW5kZWZpbmVk
ICkgewoJCQkJcmV0dXJuIHJldDsKCgkJCX0gZWxzZSB7CgkJCQllbGVtLnNldEF0
dHJpYnV0ZSggbmFtZSwgIiIgKyB2YWx1ZSApOwoJCQkJcmV0dXJuIHZhbHVlOwoJ
CQl9CgoJCX0gZWxzZSBpZiAoIGhvb2tzICYmICJnZXQiIGluIGhvb2tzICYmIG5v
dHhtbCAmJiAocmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBuYW1lICkpICE9PSBudWxs
ICkgewoJCQlyZXR1cm4gcmV0OwoKCQl9IGVsc2UgewoKCQkJcmV0ID0gZWxlbS5n
ZXRBdHRyaWJ1dGUoIG5hbWUgKTsKCgkJCS8vIE5vbi1leGlzdGVudCBhdHRyaWJ1
dGVzIHJldHVybiBudWxsLCB3ZSBub3JtYWxpemUgdG8gdW5kZWZpbmVkCgkJCXJl
dHVybiByZXQgPT09IG51bGwgPwoJCQkJdW5kZWZpbmVkIDoKCQkJCXJldDsKCQl9
Cgl9LAoKCXJlbW92ZUF0dHI6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsKCQl2
YXIgcHJvcE5hbWUsIGF0dHJOYW1lcywgbmFtZSwgbCwgaXNCb29sLAoJCQlpID0g
MDsKCgkJaWYgKCB2YWx1ZSAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQlh
dHRyTmFtZXMgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpLnNwbGl0KCByc3BhY2UgKTsK
CQkJbCA9IGF0dHJOYW1lcy5sZW5ndGg7CgoJCQlmb3IgKCA7IGkgPCBsOyBpKysg
KSB7CgkJCQluYW1lID0gYXR0ck5hbWVzWyBpIF07CgoJCQkJaWYgKCBuYW1lICkg
ewoJCQkJCXByb3BOYW1lID0galF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1l
OwoJCQkJCWlzQm9vbCA9IHJib29sZWFuLnRlc3QoIG5hbWUgKTsKCgkJCQkJLy8g
U2VlICM5Njk5IGZvciBleHBsYW5hdGlvbiBvZiB0aGlzIGFwcHJvYWNoIChzZXR0
aW5nIGZpcnN0LCB0aGVuIHJlbW92YWwpCgkJCQkJLy8gRG8gbm90IGRvIHRoaXMg
Zm9yIGJvb2xlYW4gYXR0cmlidXRlcyAoc2VlICMxMDg3MCkKCQkJCQlpZiAoICFp
c0Jvb2wgKSB7CgkJCQkJCWpRdWVyeS5hdHRyKCBlbGVtLCBuYW1lLCAiIiApOwoJ
CQkJCX0KCQkJCQllbGVtLnJlbW92ZUF0dHJpYnV0ZSggZ2V0U2V0QXR0cmlidXRl
ID8gbmFtZSA6IHByb3BOYW1lICk7CgoJCQkJCS8vIFNldCBjb3JyZXNwb25kaW5n
IHByb3BlcnR5IHRvIGZhbHNlIGZvciBib29sZWFuIGF0dHJpYnV0ZXMKCQkJCQlp
ZiAoIGlzQm9vbCAmJiBwcm9wTmFtZSBpbiBlbGVtICkgewoJCQkJCQllbGVtWyBw
cm9wTmFtZSBdID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJfSwKCglh
dHRySG9va3M6IHsKCQl0eXBlOiB7CgkJCXNldDogZnVuY3Rpb24oIGVsZW0sIHZh
bHVlICkgewoJCQkJLy8gV2UgY2FuJ3QgYWxsb3cgdGhlIHR5cGUgcHJvcGVydHkg
dG8gYmUgY2hhbmdlZCAoc2luY2UgaXQgY2F1c2VzIHByb2JsZW1zIGluIElFKQoJ
CQkJaWYgKCBydHlwZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgJiYgZWxlbS5wYXJl
bnROb2RlICkgewoJCQkJCWpRdWVyeS5lcnJvciggInR5cGUgcHJvcGVydHkgY2Fu
J3QgYmUgY2hhbmdlZCIgKTsKCQkJCX0gZWxzZSBpZiAoICFqUXVlcnkuc3VwcG9y
dC5yYWRpb1ZhbHVlICYmIHZhbHVlID09PSAicmFkaW8iICYmIGpRdWVyeS5ub2Rl
TmFtZShlbGVtLCAiaW5wdXQiKSApIHsKCQkJCQkvLyBTZXR0aW5nIHRoZSB0eXBl
IG9uIGEgcmFkaW8gYnV0dG9uIGFmdGVyIHRoZSB2YWx1ZSByZXNldHMgdGhlIHZh
bHVlIGluIElFNi05CgkJCQkJLy8gUmVzZXQgdmFsdWUgdG8gaXQncyBkZWZhdWx0
IGluIGNhc2UgdHlwZSBpcyBzZXQgYWZ0ZXIgdmFsdWUKCQkJCQkvLyBUaGlzIGlz
IGZvciBlbGVtZW50IGNyZWF0aW9uCgkJCQkJdmFyIHZhbCA9IGVsZW0udmFsdWU7
CgkJCQkJZWxlbS5zZXRBdHRyaWJ1dGUoICJ0eXBlIiwgdmFsdWUgKTsKCQkJCQlp
ZiAoIHZhbCApIHsKCQkJCQkJZWxlbS52YWx1ZSA9IHZhbDsKCQkJCQl9CgkJCQkJ
cmV0dXJuIHZhbHVlOwoJCQkJfQoJCQl9CgkJfSwKCQkvLyBVc2UgdGhlIHZhbHVl
IHByb3BlcnR5IGZvciBiYWNrIGNvbXBhdAoJCS8vIFVzZSB0aGUgbm9kZUhvb2sg
Zm9yIGJ1dHRvbiBlbGVtZW50cyBpbiBJRTYvNyAoIzE5NTQpCgkJdmFsdWU6IHsK
CQkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHsKCQkJCWlmICggbm9kZUhv
b2sgJiYgalF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAiYnV0dG9uIiApICkgewoJCQkJ
CXJldHVybiBub2RlSG9vay5nZXQoIGVsZW0sIG5hbWUgKTsKCQkJCX0KCQkJCXJl
dHVybiBuYW1lIGluIGVsZW0gPwoJCQkJCWVsZW0udmFsdWUgOgoJCQkJCW51bGw7
CgkJCX0sCgkJCXNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBuYW1lICkgewoJ
CQkJaWYgKCBub2RlSG9vayAmJiBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJidXR0
b24iICkgKSB7CgkJCQkJcmV0dXJuIG5vZGVIb29rLnNldCggZWxlbSwgdmFsdWUs
IG5hbWUgKTsKCQkJCX0KCQkJCS8vIERvZXMgbm90IHJldHVybiBzbyB0aGF0IHNl
dEF0dHJpYnV0ZSBpcyBhbHNvIHVzZWQKCQkJCWVsZW0udmFsdWUgPSB2YWx1ZTsK
CQkJfQoJCX0KCX0sCgoJcHJvcEZpeDogewoJCXRhYmluZGV4OiAidGFiSW5kZXgi
LAoJCXJlYWRvbmx5OiAicmVhZE9ubHkiLAoJCSJmb3IiOiAiaHRtbEZvciIsCgkJ
ImNsYXNzIjogImNsYXNzTmFtZSIsCgkJbWF4bGVuZ3RoOiAibWF4TGVuZ3RoIiwK
CQljZWxsc3BhY2luZzogImNlbGxTcGFjaW5nIiwKCQljZWxscGFkZGluZzogImNl
bGxQYWRkaW5nIiwKCQlyb3dzcGFuOiAicm93U3BhbiIsCgkJY29sc3BhbjogImNv
bFNwYW4iLAoJCXVzZW1hcDogInVzZU1hcCIsCgkJZnJhbWVib3JkZXI6ICJmcmFt
ZUJvcmRlciIsCgkJY29udGVudGVkaXRhYmxlOiAiY29udGVudEVkaXRhYmxlIgoJ
fSwKCglwcm9wOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUgKSB7CgkJdmFy
IHJldCwgaG9va3MsIG5vdHhtbCwKCQkJblR5cGUgPSBlbGVtLm5vZGVUeXBlOwoK
CQkvLyBkb24ndCBnZXQvc2V0IHByb3BlcnRpZXMgb24gdGV4dCwgY29tbWVudCBh
bmQgYXR0cmlidXRlIG5vZGVzCgkJaWYgKCAhZWxlbSB8fCBuVHlwZSA9PT0gMyB8
fCBuVHlwZSA9PT0gOCB8fCBuVHlwZSA9PT0gMiApIHsKCQkJcmV0dXJuOwoJCX0K
CgkJbm90eG1sID0gblR5cGUgIT09IDEgfHwgIWpRdWVyeS5pc1hNTERvYyggZWxl
bSApOwoKCQlpZiAoIG5vdHhtbCApIHsKCQkJLy8gRml4IG5hbWUgYW5kIGF0dGFj
aCBob29rcwoJCQluYW1lID0galF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1l
OwoJCQlob29rcyA9IGpRdWVyeS5wcm9wSG9va3NbIG5hbWUgXTsKCQl9CgoJCWlm
ICggdmFsdWUgIT09IHVuZGVmaW5lZCApIHsKCQkJaWYgKCBob29rcyAmJiAic2V0
IiBpbiBob29rcyAmJiAocmV0ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgbmFt
ZSApKSAhPT0gdW5kZWZpbmVkICkgewoJCQkJcmV0dXJuIHJldDsKCgkJCX0gZWxz
ZSB7CgkJCQlyZXR1cm4gKCBlbGVtWyBuYW1lIF0gPSB2YWx1ZSApOwoJCQl9CgoJ
CX0gZWxzZSB7CgkJCWlmICggaG9va3MgJiYgImdldCIgaW4gaG9va3MgJiYgKHJl
dCA9IGhvb2tzLmdldCggZWxlbSwgbmFtZSApKSAhPT0gbnVsbCApIHsKCQkJCXJl
dHVybiByZXQ7CgoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIGVsZW1bIG5hbWUgXTsK
CQkJfQoJCX0KCX0sCgoJcHJvcEhvb2tzOiB7CgkJdGFiSW5kZXg6IHsKCQkJZ2V0
OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJCS8vIGVsZW0udGFiSW5kZXggZG9lc24n
dCBhbHdheXMgcmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4gaXQgaGFzbid0
IGJlZW4gZXhwbGljaXRseSBzZXQKCQkJCS8vIGh0dHA6Ly9mbHVpZHByb2plY3Qu
b3JnL2Jsb2cvMjAwOC8wMS8wOS9nZXR0aW5nLXNldHRpbmctYW5kLXJlbW92aW5n
LXRhYmluZGV4LXZhbHVlcy13aXRoLWphdmFzY3JpcHQvCgkJCQl2YXIgYXR0cmli
dXRlTm9kZSA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSgidGFiaW5kZXgiKTsKCgkJ
CQlyZXR1cm4gYXR0cmlidXRlTm9kZSAmJiBhdHRyaWJ1dGVOb2RlLnNwZWNpZmll
ZCA/CgkJCQkJcGFyc2VJbnQoIGF0dHJpYnV0ZU5vZGUudmFsdWUsIDEwICkgOgoJ
CQkJCXJmb2N1c2FibGUudGVzdCggZWxlbS5ub2RlTmFtZSApIHx8IHJjbGlja2Fi
bGUudGVzdCggZWxlbS5ub2RlTmFtZSApICYmIGVsZW0uaHJlZiA/CgkJCQkJCTAg
OgoJCQkJCQl1bmRlZmluZWQ7CgkJCX0KCQl9Cgl9Cn0pOwoKLy8gQWRkIHRoZSB0
YWJJbmRleCBwcm9wSG9vayB0byBhdHRySG9va3MgZm9yIGJhY2stY29tcGF0IChk
aWZmZXJlbnQgY2FzZSBpcyBpbnRlbnRpb25hbCkKalF1ZXJ5LmF0dHJIb29rcy50
YWJpbmRleCA9IGpRdWVyeS5wcm9wSG9va3MudGFiSW5kZXg7CgovLyBIb29rIGZv
ciBib29sZWFuIGF0dHJpYnV0ZXMKYm9vbEhvb2sgPSB7CglnZXQ6IGZ1bmN0aW9u
KCBlbGVtLCBuYW1lICkgewoJCS8vIEFsaWduIGJvb2xlYW4gYXR0cmlidXRlcyB3
aXRoIGNvcnJlc3BvbmRpbmcgcHJvcGVydGllcwoJCS8vIEZhbGwgYmFjayB0byBh
dHRyaWJ1dGUgcHJlc2VuY2Ugd2hlcmUgc29tZSBib29sZWFucyBhcmUgbm90IHN1
cHBvcnRlZAoJCXZhciBhdHRyTm9kZSwKCQkJcHJvcGVydHkgPSBqUXVlcnkucHJv
cCggZWxlbSwgbmFtZSApOwoJCXJldHVybiBwcm9wZXJ0eSA9PT0gdHJ1ZSB8fCB0
eXBlb2YgcHJvcGVydHkgIT09ICJib29sZWFuIiAmJiAoIGF0dHJOb2RlID0gZWxl
bS5nZXRBdHRyaWJ1dGVOb2RlKG5hbWUpICkgJiYgYXR0ck5vZGUubm9kZVZhbHVl
ICE9PSBmYWxzZSA/CgkJCW5hbWUudG9Mb3dlckNhc2UoKSA6CgkJCXVuZGVmaW5l
ZDsKCX0sCglzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgbmFtZSApIHsKCQl2
YXIgcHJvcE5hbWU7CgkJaWYgKCB2YWx1ZSA9PT0gZmFsc2UgKSB7CgkJCS8vIFJl
bW92ZSBib29sZWFuIGF0dHJpYnV0ZXMgd2hlbiBzZXQgdG8gZmFsc2UKCQkJalF1
ZXJ5LnJlbW92ZUF0dHIoIGVsZW0sIG5hbWUgKTsKCQl9IGVsc2UgewoJCQkvLyB2
YWx1ZSBpcyB0cnVlIHNpbmNlIHdlIGtub3cgYXQgdGhpcyBwb2ludCBpdCdzIHR5
cGUgYm9vbGVhbiBhbmQgbm90IGZhbHNlCgkJCS8vIFNldCBib29sZWFuIGF0dHJp
YnV0ZXMgdG8gdGhlIHNhbWUgbmFtZSBhbmQgc2V0IHRoZSBET00gcHJvcGVydHkK
CQkJcHJvcE5hbWUgPSBqUXVlcnkucHJvcEZpeFsgbmFtZSBdIHx8IG5hbWU7CgkJ
CWlmICggcHJvcE5hbWUgaW4gZWxlbSApIHsKCQkJCS8vIE9ubHkgc2V0IHRoZSBJ
REwgc3BlY2lmaWNhbGx5IGlmIGl0IGFscmVhZHkgZXhpc3RzIG9uIHRoZSBlbGVt
ZW50CgkJCQllbGVtWyBwcm9wTmFtZSBdID0gdHJ1ZTsKCQkJfQoKCQkJZWxlbS5z
ZXRBdHRyaWJ1dGUoIG5hbWUsIG5hbWUudG9Mb3dlckNhc2UoKSApOwoJCX0KCQly
ZXR1cm4gbmFtZTsKCX0KfTsKCi8vIElFNi83IGRvIG5vdCBzdXBwb3J0IGdldHRp
bmcvc2V0dGluZyBzb21lIGF0dHJpYnV0ZXMgd2l0aCBnZXQvc2V0QXR0cmlidXRl
CmlmICggIWdldFNldEF0dHJpYnV0ZSApIHsKCglmaXhTcGVjaWZpZWQgPSB7CgkJ
bmFtZTogdHJ1ZSwKCQlpZDogdHJ1ZSwKCQljb29yZHM6IHRydWUKCX07CgoJLy8g
VXNlIHRoaXMgZm9yIGFueSBhdHRyaWJ1dGUgaW4gSUU2LzcKCS8vIFRoaXMgZml4
ZXMgYWxtb3N0IGV2ZXJ5IElFNi83IGlzc3VlCglub2RlSG9vayA9IGpRdWVyeS52
YWxIb29rcy5idXR0b24gPSB7CgkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgbmFtZSAp
IHsKCQkJdmFyIHJldDsKCQkJcmV0ID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBu
YW1lICk7CgkJCXJldHVybiByZXQgJiYgKCBmaXhTcGVjaWZpZWRbIG5hbWUgXSA/
IHJldC5ub2RlVmFsdWUgIT09ICIiIDogcmV0LnNwZWNpZmllZCApID8KCQkJCXJl
dC5ub2RlVmFsdWUgOgoJCQkJdW5kZWZpbmVkOwoJCX0sCgkJc2V0OiBmdW5jdGlv
biggZWxlbSwgdmFsdWUsIG5hbWUgKSB7CgkJCS8vIFNldCB0aGUgZXhpc3Rpbmcg
b3IgY3JlYXRlIGEgbmV3IGF0dHJpYnV0ZSBub2RlCgkJCXZhciByZXQgPSBlbGVt
LmdldEF0dHJpYnV0ZU5vZGUoIG5hbWUgKTsKCQkJaWYgKCAhcmV0ICkgewoJCQkJ
cmV0ID0gZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCBuYW1lICk7CgkJCQllbGVt
LnNldEF0dHJpYnV0ZU5vZGUoIHJldCApOwoJCQl9CgkJCXJldHVybiAoIHJldC5u
b2RlVmFsdWUgPSB2YWx1ZSArICIiICk7CgkJfQoJfTsKCgkvLyBBcHBseSB0aGUg
bm9kZUhvb2sgdG8gdGFiaW5kZXgKCWpRdWVyeS5hdHRySG9va3MudGFiaW5kZXgu
c2V0ID0gbm9kZUhvb2suc2V0OwoKCS8vIFNldCB3aWR0aCBhbmQgaGVpZ2h0IHRv
IGF1dG8gaW5zdGVhZCBvZiAwIG9uIGVtcHR5IHN0cmluZyggQnVnICM4MTUwICkK
CS8vIFRoaXMgaXMgZm9yIHJlbW92YWxzCglqUXVlcnkuZWFjaChbICJ3aWR0aCIs
ICJoZWlnaHQiIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoJCWpRdWVyeS5hdHRy
SG9va3NbIG5hbWUgXSA9IGpRdWVyeS5leHRlbmQoIGpRdWVyeS5hdHRySG9va3Nb
IG5hbWUgXSwgewoJCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsKCQkJ
CWlmICggdmFsdWUgPT09ICIiICkgewoJCQkJCWVsZW0uc2V0QXR0cmlidXRlKCBu
YW1lLCAiYXV0byIgKTsKCQkJCQlyZXR1cm4gdmFsdWU7CgkJCQl9CgkJCX0KCQl9
KTsKCX0pOwoKCS8vIFNldCBjb250ZW50ZWRpdGFibGUgdG8gZmFsc2Ugb24gcmVt
b3ZhbHMoIzEwNDI5KQoJLy8gU2V0dGluZyB0byBlbXB0eSBzdHJpbmcgdGhyb3dz
IGFuIGVycm9yIGFzIGFuIGludmFsaWQgdmFsdWUKCWpRdWVyeS5hdHRySG9va3Mu
Y29udGVudGVkaXRhYmxlID0gewoJCWdldDogbm9kZUhvb2suZ2V0LAoJCXNldDog
ZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBuYW1lICkgewoJCQlpZiAoIHZhbHVlID09
PSAiIiApIHsKCQkJCXZhbHVlID0gImZhbHNlIjsKCQkJfQoJCQlub2RlSG9vay5z
ZXQoIGVsZW0sIHZhbHVlLCBuYW1lICk7CgkJfQoJfTsKfQoKCi8vIFNvbWUgYXR0
cmlidXRlcyByZXF1aXJlIGEgc3BlY2lhbCBjYWxsIG9uIElFCmlmICggIWpRdWVy
eS5zdXBwb3J0LmhyZWZOb3JtYWxpemVkICkgewoJalF1ZXJ5LmVhY2goWyAiaHJl
ZiIsICJzcmMiLCAid2lkdGgiLCAiaGVpZ2h0IiBdLCBmdW5jdGlvbiggaSwgbmFt
ZSApIHsKCQlqUXVlcnkuYXR0ckhvb2tzWyBuYW1lIF0gPSBqUXVlcnkuZXh0ZW5k
KCBqUXVlcnkuYXR0ckhvb2tzWyBuYW1lIF0sIHsKCQkJZ2V0OiBmdW5jdGlvbigg
ZWxlbSApIHsKCQkJCXZhciByZXQgPSBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSwg
MiApOwoJCQkJcmV0dXJuIHJldCA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHJldDsK
CQkJfQoJCX0pOwoJfSk7Cn0KCmlmICggIWpRdWVyeS5zdXBwb3J0LnN0eWxlICkg
ewoJalF1ZXJ5LmF0dHJIb29rcy5zdHlsZSA9IHsKCQlnZXQ6IGZ1bmN0aW9uKCBl
bGVtICkgewoJCQkvLyBSZXR1cm4gdW5kZWZpbmVkIGluIHRoZSBjYXNlIG9mIGVt
cHR5IHN0cmluZwoJCQkvLyBOb3JtYWxpemUgdG8gbG93ZXJjYXNlIHNpbmNlIElF
IHVwcGVyY2FzZXMgY3NzIHByb3BlcnR5IG5hbWVzCgkJCXJldHVybiBlbGVtLnN0
eWxlLmNzc1RleHQudG9Mb3dlckNhc2UoKSB8fCB1bmRlZmluZWQ7CgkJfSwKCQlz
ZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsKCQkJcmV0dXJuICggZWxlbS5z
dHlsZS5jc3NUZXh0ID0gIiIgKyB2YWx1ZSApOwoJCX0KCX07Cn0KCi8vIFNhZmFy
aSBtaXMtcmVwb3J0cyB0aGUgZGVmYXVsdCBzZWxlY3RlZCBwcm9wZXJ0eSBvZiBh
biBvcHRpb24KLy8gQWNjZXNzaW5nIHRoZSBwYXJlbnQncyBzZWxlY3RlZEluZGV4
IHByb3BlcnR5IGZpeGVzIGl0CmlmICggIWpRdWVyeS5zdXBwb3J0Lm9wdFNlbGVj
dGVkICkgewoJalF1ZXJ5LnByb3BIb29rcy5zZWxlY3RlZCA9IGpRdWVyeS5leHRl
bmQoIGpRdWVyeS5wcm9wSG9va3Muc2VsZWN0ZWQsIHsKCQlnZXQ6IGZ1bmN0aW9u
KCBlbGVtICkgewoJCQl2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOwoKCQkJ
aWYgKCBwYXJlbnQgKSB7CgkJCQlwYXJlbnQuc2VsZWN0ZWRJbmRleDsKCgkJCQkv
LyBNYWtlIHN1cmUgdGhhdCBpdCBhbHNvIHdvcmtzIHdpdGggb3B0Z3JvdXBzLCBz
ZWUgIzU3MDEKCQkJCWlmICggcGFyZW50LnBhcmVudE5vZGUgKSB7CgkJCQkJcGFy
ZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJCX0KCQkJfQoJCQlyZXR1
cm4gbnVsbDsKCQl9Cgl9KTsKfQoKLy8gSUU2LzcgY2FsbCBlbmN0eXBlIGVuY29k
aW5nCmlmICggIWpRdWVyeS5zdXBwb3J0LmVuY3R5cGUgKSB7CglqUXVlcnkucHJv
cEZpeC5lbmN0eXBlID0gImVuY29kaW5nIjsKfQoKLy8gUmFkaW9zIGFuZCBjaGVj
a2JveGVzIGdldHRlci9zZXR0ZXIKaWYgKCAhalF1ZXJ5LnN1cHBvcnQuY2hlY2tP
biApIHsKCWpRdWVyeS5lYWNoKFsgInJhZGlvIiwgImNoZWNrYm94IiBdLCBmdW5j
dGlvbigpIHsKCQlqUXVlcnkudmFsSG9va3NbIHRoaXMgXSA9IHsKCQkJZ2V0OiBm
dW5jdGlvbiggZWxlbSApIHsKCQkJCS8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBp
biBXZWJraXQgIiIgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiAib24iIGlmIGEgdmFs
dWUgaXNuJ3Qgc3BlY2lmaWVkCgkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUo
InZhbHVlIikgPT09IG51bGwgPyAib24iIDogZWxlbS52YWx1ZTsKCQkJfQoJCX07
Cgl9KTsKfQpqUXVlcnkuZWFjaChbICJyYWRpbyIsICJjaGVja2JveCIgXSwgZnVu
Y3Rpb24oKSB7CglqUXVlcnkudmFsSG9va3NbIHRoaXMgXSA9IGpRdWVyeS5leHRl
bmQoIGpRdWVyeS52YWxIb29rc1sgdGhpcyBdLCB7CgkJc2V0OiBmdW5jdGlvbigg
ZWxlbSwgdmFsdWUgKSB7CgkJCWlmICggalF1ZXJ5LmlzQXJyYXkoIHZhbHVlICkg
KSB7CgkJCQlyZXR1cm4gKCBlbGVtLmNoZWNrZWQgPSBqUXVlcnkuaW5BcnJheSgg
alF1ZXJ5KGVsZW0pLnZhbCgpLCB2YWx1ZSApID49IDAgKTsKCQkJfQoJCX0KCX0p
Owp9KTsKCgoKCnZhciByZm9ybUVsZW1zID0gL14oPzp0ZXh0YXJlYXxpbnB1dHxz
ZWxlY3QpJC9pLAoJcnR5cGVuYW1lc3BhY2UgPSAvXihbXlwuXSopPyg/OlwuKC4r
KSk/JC8sCglyaG92ZXJIYWNrID0gLyg/Ol58XHMpaG92ZXIoXC5cUyspP1xiLywK
CXJrZXlFdmVudCA9IC9ea2V5LywKCXJtb3VzZUV2ZW50ID0gL14oPzptb3VzZXxj
b250ZXh0bWVudSl8Y2xpY2svLAoJcmZvY3VzTW9ycGggPSAvXig/OmZvY3VzaW5m
b2N1c3xmb2N1c291dGJsdXIpJC8sCglycXVpY2tJcyA9IC9eKFx3KikoPzojKFtc
d1wtXSspKT8oPzpcLihbXHdcLV0rKSk/JC8sCglxdWlja1BhcnNlID0gZnVuY3Rp
b24oIHNlbGVjdG9yICkgewoJCXZhciBxdWljayA9IHJxdWlja0lzLmV4ZWMoIHNl
bGVjdG9yICk7CgkJaWYgKCBxdWljayApIHsKCQkJLy8gICAwICAxICAgIDIgICAz
CgkJCS8vIFsgXywgdGFnLCBpZCwgY2xhc3MgXQoJCQlxdWlja1sxXSA9ICggcXVp
Y2tbMV0gfHwgIiIgKS50b0xvd2VyQ2FzZSgpOwoJCQlxdWlja1szXSA9IHF1aWNr
WzNdICYmIG5ldyBSZWdFeHAoICIoPzpefFxccykiICsgcXVpY2tbM10gKyAiKD86
XFxzfCQpIiApOwoJCX0KCQlyZXR1cm4gcXVpY2s7Cgl9LAoJcXVpY2tJcyA9IGZ1
bmN0aW9uKCBlbGVtLCBtICkgewoJCXZhciBhdHRycyA9IGVsZW0uYXR0cmlidXRl
cyB8fCB7fTsKCQlyZXR1cm4gKAoJCQkoIW1bMV0gfHwgZWxlbS5ub2RlTmFtZS50
b0xvd2VyQ2FzZSgpID09PSBtWzFdKSAmJgoJCQkoIW1bMl0gfHwgKGF0dHJzLmlk
IHx8IHt9KS52YWx1ZSA9PT0gbVsyXSkgJiYKCQkJKCFtWzNdIHx8IG1bM10udGVz
dCggKGF0dHJzWyAiY2xhc3MiIF0gfHwge30pLnZhbHVlICkpCgkJKTsKCX0sCglo
b3ZlckhhY2sgPSBmdW5jdGlvbiggZXZlbnRzICkgewoJCXJldHVybiBqUXVlcnku
ZXZlbnQuc3BlY2lhbC5ob3ZlciA/IGV2ZW50cyA6IGV2ZW50cy5yZXBsYWNlKCBy
aG92ZXJIYWNrLCAibW91c2VlbnRlciQxIG1vdXNlbGVhdmUkMSIgKTsKCX07Cgov
KgogKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyBldmVudHMgLS0gbm90
IHBhcnQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuCiAqIFByb3BzIHRvIERlYW4g
RWR3YXJkcycgYWRkRXZlbnQgbGlicmFyeSBmb3IgbWFueSBvZiB0aGUgaWRlYXMu
CiAqLwpqUXVlcnkuZXZlbnQgPSB7CgoJYWRkOiBmdW5jdGlvbiggZWxlbSwgdHlw
ZXMsIGhhbmRsZXIsIGRhdGEsIHNlbGVjdG9yICkgewoKCQl2YXIgZWxlbURhdGEs
IGV2ZW50SGFuZGxlLCBldmVudHMsCgkJCXQsIHRucywgdHlwZSwgbmFtZXNwYWNl
cywgaGFuZGxlT2JqLAoJCQloYW5kbGVPYmpJbiwgcXVpY2ssIGhhbmRsZXJzLCBz
cGVjaWFsOwoKCQkvLyBEb24ndCBhdHRhY2ggZXZlbnRzIHRvIG5vRGF0YSBvciB0
ZXh0L2NvbW1lbnQgbm9kZXMgKGFsbG93IHBsYWluIG9iamVjdHMgdGhvKQoJCWlm
ICggZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4IHx8
ICF0eXBlcyB8fCAhaGFuZGxlciB8fCAhKGVsZW1EYXRhID0galF1ZXJ5Ll9kYXRh
KCBlbGVtICkpICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBDYWxsZXIgY2FuIHBh
c3MgaW4gYW4gb2JqZWN0IG9mIGN1c3RvbSBkYXRhIGluIGxpZXUgb2YgdGhlIGhh
bmRsZXIKCQlpZiAoIGhhbmRsZXIuaGFuZGxlciApIHsKCQkJaGFuZGxlT2JqSW4g
PSBoYW5kbGVyOwoJCQloYW5kbGVyID0gaGFuZGxlT2JqSW4uaGFuZGxlcjsKCQkJ
c2VsZWN0b3IgPSBoYW5kbGVPYmpJbi5zZWxlY3RvcjsKCQl9CgoJCS8vIE1ha2Ug
c3VyZSB0aGF0IHRoZSBoYW5kbGVyIGhhcyBhIHVuaXF1ZSBJRCwgdXNlZCB0byBm
aW5kL3JlbW92ZSBpdCBsYXRlcgoJCWlmICggIWhhbmRsZXIuZ3VpZCApIHsKCQkJ
aGFuZGxlci5ndWlkID0galF1ZXJ5Lmd1aWQrKzsKCQl9CgoJCS8vIEluaXQgdGhl
IGVsZW1lbnQncyBldmVudCBzdHJ1Y3R1cmUgYW5kIG1haW4gaGFuZGxlciwgaWYg
dGhpcyBpcyB0aGUgZmlyc3QKCQlldmVudHMgPSBlbGVtRGF0YS5ldmVudHM7CgkJ
aWYgKCAhZXZlbnRzICkgewoJCQllbGVtRGF0YS5ldmVudHMgPSBldmVudHMgPSB7
fTsKCQl9CgkJZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGU7CgkJaWYgKCAh
ZXZlbnRIYW5kbGUgKSB7CgkJCWVsZW1EYXRhLmhhbmRsZSA9IGV2ZW50SGFuZGxl
ID0gZnVuY3Rpb24oIGUgKSB7CgkJCQkvLyBEaXNjYXJkIHRoZSBzZWNvbmQgZXZl
bnQgb2YgYSBqUXVlcnkuZXZlbnQudHJpZ2dlcigpIGFuZAoJCQkJLy8gd2hlbiBh
biBldmVudCBpcyBjYWxsZWQgYWZ0ZXIgYSBwYWdlIGhhcyB1bmxvYWRlZAoJCQkJ
cmV0dXJuIHR5cGVvZiBqUXVlcnkgIT09ICJ1bmRlZmluZWQiICYmICghZSB8fCBq
UXVlcnkuZXZlbnQudHJpZ2dlcmVkICE9PSBlLnR5cGUpID8KCQkJCQlqUXVlcnku
ZXZlbnQuZGlzcGF0Y2guYXBwbHkoIGV2ZW50SGFuZGxlLmVsZW0sIGFyZ3VtZW50
cyApIDoKCQkJCQl1bmRlZmluZWQ7CgkJCX07CgkJCS8vIEFkZCBlbGVtIGFzIGEg
cHJvcGVydHkgb2YgdGhlIGhhbmRsZSBmbiB0byBwcmV2ZW50IGEgbWVtb3J5IGxl
YWsgd2l0aCBJRSBub24tbmF0aXZlIGV2ZW50cwoJCQlldmVudEhhbmRsZS5lbGVt
ID0gZWxlbTsKCQl9CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJh
dGVkIGJ5IGEgc3BhY2UKCQkvLyBqUXVlcnkoLi4uKS5iaW5kKCJtb3VzZW92ZXIg
bW91c2VvdXQiLCBmbik7CgkJdHlwZXMgPSBqUXVlcnkudHJpbSggaG92ZXJIYWNr
KHR5cGVzKSApLnNwbGl0KCAiICIgKTsKCQlmb3IgKCB0ID0gMDsgdCA8IHR5cGVz
Lmxlbmd0aDsgdCsrICkgewoKCQkJdG5zID0gcnR5cGVuYW1lc3BhY2UuZXhlYygg
dHlwZXNbdF0gKSB8fCBbXTsKCQkJdHlwZSA9IHRuc1sxXTsKCQkJbmFtZXNwYWNl
cyA9ICggdG5zWzJdIHx8ICIiICkuc3BsaXQoICIuIiApLnNvcnQoKTsKCgkJCS8v
IElmIGV2ZW50IGNoYW5nZXMgaXRzIHR5cGUsIHVzZSB0aGUgc3BlY2lhbCBldmVu
dCBoYW5kbGVycyBmb3IgdGhlIGNoYW5nZWQgdHlwZQoJCQlzcGVjaWFsID0galF1
ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTsKCgkJCS8vIElmIHNlbGVj
dG9yIGRlZmluZWQsIGRldGVybWluZSBzcGVjaWFsIGV2ZW50IGFwaSB0eXBlLCBv
dGhlcndpc2UgZ2l2ZW4gdHlwZQoJCQl0eXBlID0gKCBzZWxlY3RvciA/IHNwZWNp
YWwuZGVsZWdhdGVUeXBlIDogc3BlY2lhbC5iaW5kVHlwZSApIHx8IHR5cGU7CgoJ
CQkvLyBVcGRhdGUgc3BlY2lhbCBiYXNlZCBvbiBuZXdseSByZXNldCB0eXBlCgkJ
CXNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9OwoK
CQkJLy8gaGFuZGxlT2JqIGlzIHBhc3NlZCB0byBhbGwgZXZlbnQgaGFuZGxlcnMK
CQkJaGFuZGxlT2JqID0galF1ZXJ5LmV4dGVuZCh7CgkJCQl0eXBlOiB0eXBlLAoJ
CQkJb3JpZ1R5cGU6IHRuc1sxXSwKCQkJCWRhdGE6IGRhdGEsCgkJCQloYW5kbGVy
OiBoYW5kbGVyLAoJCQkJZ3VpZDogaGFuZGxlci5ndWlkLAoJCQkJc2VsZWN0b3I6
IHNlbGVjdG9yLAoJCQkJcXVpY2s6IHNlbGVjdG9yICYmIHF1aWNrUGFyc2UoIHNl
bGVjdG9yICksCgkJCQluYW1lc3BhY2U6IG5hbWVzcGFjZXMuam9pbigiLiIpCgkJ
CX0sIGhhbmRsZU9iakluICk7CgoJCQkvLyBJbml0IHRoZSBldmVudCBoYW5kbGVy
IHF1ZXVlIGlmIHdlJ3JlIHRoZSBmaXJzdAoJCQloYW5kbGVycyA9IGV2ZW50c1sg
dHlwZSBdOwoJCQlpZiAoICFoYW5kbGVycyApIHsKCQkJCWhhbmRsZXJzID0gZXZl
bnRzWyB0eXBlIF0gPSBbXTsKCQkJCWhhbmRsZXJzLmRlbGVnYXRlQ291bnQgPSAw
OwoKCQkJCS8vIE9ubHkgdXNlIGFkZEV2ZW50TGlzdGVuZXIvYXR0YWNoRXZlbnQg
aWYgdGhlIHNwZWNpYWwgZXZlbnRzIGhhbmRsZXIgcmV0dXJucyBmYWxzZQoJCQkJ
aWYgKCAhc3BlY2lhbC5zZXR1cCB8fCBzcGVjaWFsLnNldHVwLmNhbGwoIGVsZW0s
IGRhdGEsIG5hbWVzcGFjZXMsIGV2ZW50SGFuZGxlICkgPT09IGZhbHNlICkgewoJ
CQkJCS8vIEJpbmQgdGhlIGdsb2JhbCBldmVudCBoYW5kbGVyIHRvIHRoZSBlbGVt
ZW50CgkJCQkJaWYgKCBlbGVtLmFkZEV2ZW50TGlzdGVuZXIgKSB7CgkJCQkJCWVs
ZW0uYWRkRXZlbnRMaXN0ZW5lciggdHlwZSwgZXZlbnRIYW5kbGUsIGZhbHNlICk7
CgoJCQkJCX0gZWxzZSBpZiAoIGVsZW0uYXR0YWNoRXZlbnQgKSB7CgkJCQkJCWVs
ZW0uYXR0YWNoRXZlbnQoICJvbiIgKyB0eXBlLCBldmVudEhhbmRsZSApOwoJCQkJ
CX0KCQkJCX0KCQkJfQoKCQkJaWYgKCBzcGVjaWFsLmFkZCApIHsKCQkJCXNwZWNp
YWwuYWRkLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApOwoKCQkJCWlmICggIWhhbmRs
ZU9iai5oYW5kbGVyLmd1aWQgKSB7CgkJCQkJaGFuZGxlT2JqLmhhbmRsZXIuZ3Vp
ZCA9IGhhbmRsZXIuZ3VpZDsKCQkJCX0KCQkJfQoKCQkJLy8gQWRkIHRvIHRoZSBl
bGVtZW50J3MgaGFuZGxlciBsaXN0LCBkZWxlZ2F0ZXMgaW4gZnJvbnQKCQkJaWYg
KCBzZWxlY3RvciApIHsKCQkJCWhhbmRsZXJzLnNwbGljZSggaGFuZGxlcnMuZGVs
ZWdhdGVDb3VudCsrLCAwLCBoYW5kbGVPYmogKTsKCQkJfSBlbHNlIHsKCQkJCWhh
bmRsZXJzLnB1c2goIGhhbmRsZU9iaiApOwoJCQl9CgoJCQkvLyBLZWVwIHRyYWNr
IG9mIHdoaWNoIGV2ZW50cyBoYXZlIGV2ZXIgYmVlbiB1c2VkLCBmb3IgZXZlbnQg
b3B0aW1pemF0aW9uCgkJCWpRdWVyeS5ldmVudC5nbG9iYWxbIHR5cGUgXSA9IHRy
dWU7CgkJfQoKCQkvLyBOdWxsaWZ5IGVsZW0gdG8gcHJldmVudCBtZW1vcnkgbGVh
a3MgaW4gSUUKCQllbGVtID0gbnVsbDsKCX0sCgoJZ2xvYmFsOiB7fSwKCgkvLyBE
ZXRhY2ggYW4gZXZlbnQgb3Igc2V0IG9mIGV2ZW50cyBmcm9tIGFuIGVsZW1lbnQK
CXJlbW92ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBzZWxlY3Rv
ciwgbWFwcGVkVHlwZXMgKSB7CgoJCXZhciBlbGVtRGF0YSA9IGpRdWVyeS5oYXNE
YXRhKCBlbGVtICkgJiYgalF1ZXJ5Ll9kYXRhKCBlbGVtICksCgkJCXQsIHRucywg
dHlwZSwgb3JpZ1R5cGUsIG5hbWVzcGFjZXMsIG9yaWdDb3VudCwKCQkJaiwgZXZl
bnRzLCBzcGVjaWFsLCBoYW5kbGUsIGV2ZW50VHlwZSwgaGFuZGxlT2JqOwoKCQlp
ZiAoICFlbGVtRGF0YSB8fCAhKGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cykgKSB7
CgkJCXJldHVybjsKCQl9CgoJCS8vIE9uY2UgZm9yIGVhY2ggdHlwZS5uYW1lc3Bh
Y2UgaW4gdHlwZXM7IHR5cGUgbWF5IGJlIG9taXR0ZWQKCQl0eXBlcyA9IGpRdWVy
eS50cmltKCBob3ZlckhhY2soIHR5cGVzIHx8ICIiICkgKS5zcGxpdCgiICIpOwoJ
CWZvciAoIHQgPSAwOyB0IDwgdHlwZXMubGVuZ3RoOyB0KysgKSB7CgkJCXRucyA9
IHJ0eXBlbmFtZXNwYWNlLmV4ZWMoIHR5cGVzW3RdICkgfHwgW107CgkJCXR5cGUg
PSBvcmlnVHlwZSA9IHRuc1sxXTsKCQkJbmFtZXNwYWNlcyA9IHRuc1syXTsKCgkJ
CS8vIFVuYmluZCBhbGwgZXZlbnRzIChvbiB0aGlzIG5hbWVzcGFjZSwgaWYgcHJv
dmlkZWQpIGZvciB0aGUgZWxlbWVudAoJCQlpZiAoICF0eXBlICkgewoJCQkJZm9y
ICggdHlwZSBpbiBldmVudHMgKSB7CgkJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSgg
ZWxlbSwgdHlwZSArIHR5cGVzWyB0IF0sIGhhbmRsZXIsIHNlbGVjdG9yLCB0cnVl
ICk7CgkJCQl9CgkJCQljb250aW51ZTsKCQkJfQoKCQkJc3BlY2lhbCA9IGpRdWVy
eS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307CgkJCXR5cGUgPSAoIHNlbGVj
dG9yPyBzcGVjaWFsLmRlbGVnYXRlVHlwZSA6IHNwZWNpYWwuYmluZFR5cGUgKSB8
fCB0eXBlOwoJCQlldmVudFR5cGUgPSBldmVudHNbIHR5cGUgXSB8fCBbXTsKCQkJ
b3JpZ0NvdW50ID0gZXZlbnRUeXBlLmxlbmd0aDsKCQkJbmFtZXNwYWNlcyA9IG5h
bWVzcGFjZXMgPyBuZXcgUmVnRXhwKCIoXnxcXC4pIiArIG5hbWVzcGFjZXMuc3Bs
aXQoIi4iKS5zb3J0KCkuam9pbigiXFwuKD86LipcXC4pPyIpICsgIihcXC58JCki
KSA6IG51bGw7CgoJCQkvLyBSZW1vdmUgbWF0Y2hpbmcgZXZlbnRzCgkJCWZvciAo
IGogPSAwOyBqIDwgZXZlbnRUeXBlLmxlbmd0aDsgaisrICkgewoJCQkJaGFuZGxl
T2JqID0gZXZlbnRUeXBlWyBqIF07CgoJCQkJaWYgKCAoIG1hcHBlZFR5cGVzIHx8
IG9yaWdUeXBlID09PSBoYW5kbGVPYmoub3JpZ1R5cGUgKSAmJgoJCQkJCSAoICFo
YW5kbGVyIHx8IGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSAmJgoJ
CQkJCSAoICFuYW1lc3BhY2VzIHx8IG5hbWVzcGFjZXMudGVzdCggaGFuZGxlT2Jq
Lm5hbWVzcGFjZSApICkgJiYKCQkJCQkgKCAhc2VsZWN0b3IgfHwgc2VsZWN0b3Ig
PT09IGhhbmRsZU9iai5zZWxlY3RvciB8fCBzZWxlY3RvciA9PT0gIioqIiAmJiBo
YW5kbGVPYmouc2VsZWN0b3IgKSApIHsKCQkJCQlldmVudFR5cGUuc3BsaWNlKCBq
LS0sIDEgKTsKCgkJCQkJaWYgKCBoYW5kbGVPYmouc2VsZWN0b3IgKSB7CgkJCQkJ
CWV2ZW50VHlwZS5kZWxlZ2F0ZUNvdW50LS07CgkJCQkJfQoJCQkJCWlmICggc3Bl
Y2lhbC5yZW1vdmUgKSB7CgkJCQkJCXNwZWNpYWwucmVtb3ZlLmNhbGwoIGVsZW0s
IGhhbmRsZU9iaiApOwoJCQkJCX0KCQkJCX0KCQkJfQoKCQkJLy8gUmVtb3ZlIGdl
bmVyaWMgZXZlbnQgaGFuZGxlciBpZiB3ZSByZW1vdmVkIHNvbWV0aGluZyBhbmQg
bm8gbW9yZSBoYW5kbGVycyBleGlzdAoJCQkvLyAoYXZvaWRzIHBvdGVudGlhbCBm
b3IgZW5kbGVzcyByZWN1cnNpb24gZHVyaW5nIHJlbW92YWwgb2Ygc3BlY2lhbCBl
dmVudCBoYW5kbGVycykKCQkJaWYgKCBldmVudFR5cGUubGVuZ3RoID09PSAwICYm
IG9yaWdDb3VudCAhPT0gZXZlbnRUeXBlLmxlbmd0aCApIHsKCQkJCWlmICggIXNw
ZWNpYWwudGVhcmRvd24gfHwgc3BlY2lhbC50ZWFyZG93bi5jYWxsKCBlbGVtLCBu
YW1lc3BhY2VzICkgPT09IGZhbHNlICkgewoJCQkJCWpRdWVyeS5yZW1vdmVFdmVu
dCggZWxlbSwgdHlwZSwgZWxlbURhdGEuaGFuZGxlICk7CgkJCQl9CgoJCQkJZGVs
ZXRlIGV2ZW50c1sgdHlwZSBdOwoJCQl9CgkJfQoKCQkvLyBSZW1vdmUgdGhlIGV4
cGFuZG8gaWYgaXQncyBubyBsb25nZXIgdXNlZAoJCWlmICggalF1ZXJ5LmlzRW1w
dHlPYmplY3QoIGV2ZW50cyApICkgewoJCQloYW5kbGUgPSBlbGVtRGF0YS5oYW5k
bGU7CgkJCWlmICggaGFuZGxlICkgewoJCQkJaGFuZGxlLmVsZW0gPSBudWxsOwoJ
CQl9CgoJCQkvLyByZW1vdmVEYXRhIGFsc28gY2hlY2tzIGZvciBlbXB0aW5lc3Mg
YW5kIGNsZWFycyB0aGUgZXhwYW5kbyBpZiBlbXB0eQoJCQkvLyBzbyB1c2UgaXQg
aW5zdGVhZCBvZiBkZWxldGUKCQkJalF1ZXJ5LnJlbW92ZURhdGEoIGVsZW0sIFsg
ImV2ZW50cyIsICJoYW5kbGUiIF0sIHRydWUgKTsKCQl9Cgl9LAoKCS8vIEV2ZW50
cyB0aGF0IGFyZSBzYWZlIHRvIHNob3J0LWNpcmN1aXQgaWYgbm8gaGFuZGxlcnMg
YXJlIGF0dGFjaGVkLgoJLy8gTmF0aXZlIERPTSBldmVudHMgc2hvdWxkIG5vdCBi
ZSBhZGRlZCwgdGhleSBtYXkgaGF2ZSBpbmxpbmUgaGFuZGxlcnMuCgljdXN0b21F
dmVudDogewoJCSJnZXREYXRhIjogdHJ1ZSwKCQkic2V0RGF0YSI6IHRydWUsCgkJ
ImNoYW5nZURhdGEiOiB0cnVlCgl9LAoKCXRyaWdnZXI6IGZ1bmN0aW9uKCBldmVu
dCwgZGF0YSwgZWxlbSwgb25seUhhbmRsZXJzICkgewoJCS8vIERvbid0IGRvIGV2
ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCgkJaWYgKCBlbGVtICYmIChl
bGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDgpICkgewoJ
CQlyZXR1cm47CgkJfQoKCQkvLyBFdmVudCBvYmplY3Qgb3IgZXZlbnQgdHlwZQoJ
CXZhciB0eXBlID0gZXZlbnQudHlwZSB8fCBldmVudCwKCQkJbmFtZXNwYWNlcyA9
IFtdLAoJCQljYWNoZSwgZXhjbHVzaXZlLCBpLCBjdXIsIG9sZCwgb250eXBlLCBz
cGVjaWFsLCBoYW5kbGUsIGV2ZW50UGF0aCwgYnViYmxlVHlwZTsKCgkJLy8gZm9j
dXMvYmx1ciBtb3JwaHMgdG8gZm9jdXNpbi9vdXQ7IGVuc3VyZSB3ZSdyZSBub3Qg
ZmlyaW5nIHRoZW0gcmlnaHQgbm93CgkJaWYgKCByZm9jdXNNb3JwaC50ZXN0KCB0
eXBlICsgalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCApICkgewoJCQlyZXR1cm47CgkJ
fQoKCQlpZiAoIHR5cGUuaW5kZXhPZiggIiEiICkgPj0gMCApIHsKCQkJLy8gRXhj
bHVzaXZlIGV2ZW50cyB0cmlnZ2VyIG9ubHkgZm9yIHRoZSBleGFjdCBldmVudCAo
bm8gbmFtZXNwYWNlcykKCQkJdHlwZSA9IHR5cGUuc2xpY2UoMCwgLTEpOwoJCQll
eGNsdXNpdmUgPSB0cnVlOwoJCX0KCgkJaWYgKCB0eXBlLmluZGV4T2YoICIuIiAp
ID49IDAgKSB7CgkJCS8vIE5hbWVzcGFjZWQgdHJpZ2dlcjsgY3JlYXRlIGEgcmVn
ZXhwIHRvIG1hdGNoIGV2ZW50IHR5cGUgaW4gaGFuZGxlKCkKCQkJbmFtZXNwYWNl
cyA9IHR5cGUuc3BsaXQoIi4iKTsKCQkJdHlwZSA9IG5hbWVzcGFjZXMuc2hpZnQo
KTsKCQkJbmFtZXNwYWNlcy5zb3J0KCk7CgkJfQoKCQlpZiAoICghZWxlbSB8fCBq
UXVlcnkuZXZlbnQuY3VzdG9tRXZlbnRbIHR5cGUgXSkgJiYgIWpRdWVyeS5ldmVu
dC5nbG9iYWxbIHR5cGUgXSApIHsKCQkJLy8gTm8galF1ZXJ5IGhhbmRsZXJzIGZv
ciB0aGlzIGV2ZW50IHR5cGUsIGFuZCBpdCBjYW4ndCBoYXZlIGlubGluZSBoYW5k
bGVycwoJCQlyZXR1cm47CgkJfQoKCQkvLyBDYWxsZXIgY2FuIHBhc3MgaW4gYW4g
RXZlbnQsIE9iamVjdCwgb3IganVzdCBhbiBldmVudCB0eXBlIHN0cmluZwoJCWV2
ZW50ID0gdHlwZW9mIGV2ZW50ID09PSAib2JqZWN0IiA/CgkJCS8vIGpRdWVyeS5F
dmVudCBvYmplY3QKCQkJZXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gPyBldmVudCA6
CgkJCS8vIE9iamVjdCBsaXRlcmFsCgkJCW5ldyBqUXVlcnkuRXZlbnQoIHR5cGUs
IGV2ZW50ICkgOgoJCQkvLyBKdXN0IHRoZSBldmVudCB0eXBlIChzdHJpbmcpCgkJ
CW5ldyBqUXVlcnkuRXZlbnQoIHR5cGUgKTsKCgkJZXZlbnQudHlwZSA9IHR5cGU7
CgkJZXZlbnQuaXNUcmlnZ2VyID0gdHJ1ZTsKCQlldmVudC5leGNsdXNpdmUgPSBl
eGNsdXNpdmU7CgkJZXZlbnQubmFtZXNwYWNlID0gbmFtZXNwYWNlcy5qb2luKCAi
LiIgKTsKCQlldmVudC5uYW1lc3BhY2VfcmUgPSBldmVudC5uYW1lc3BhY2U/IG5l
dyBSZWdFeHAoIihefFxcLikiICsgbmFtZXNwYWNlcy5qb2luKCJcXC4oPzouKlxc
Lik/IikgKyAiKFxcLnwkKSIpIDogbnVsbDsKCQlvbnR5cGUgPSB0eXBlLmluZGV4
T2YoICI6IiApIDwgMCA/ICJvbiIgKyB0eXBlIDogIiI7CgoJCS8vIEhhbmRsZSBh
IGdsb2JhbCB0cmlnZ2VyCgkJaWYgKCAhZWxlbSApIHsKCgkJCS8vIFRPRE86IFN0
b3AgdGF1bnRpbmcgdGhlIGRhdGEgY2FjaGU7IHJlbW92ZSBnbG9iYWwgZXZlbnRz
IGFuZCBhbHdheXMgYXR0YWNoIHRvIGRvY3VtZW50CgkJCWNhY2hlID0galF1ZXJ5
LmNhY2hlOwoJCQlmb3IgKCBpIGluIGNhY2hlICkgewoJCQkJaWYgKCBjYWNoZVsg
aSBdLmV2ZW50cyAmJiBjYWNoZVsgaSBdLmV2ZW50c1sgdHlwZSBdICkgewoJCQkJ
CWpRdWVyeS5ldmVudC50cmlnZ2VyKCBldmVudCwgZGF0YSwgY2FjaGVbIGkgXS5o
YW5kbGUuZWxlbSwgdHJ1ZSApOwoJCQkJfQoJCQl9CgkJCXJldHVybjsKCQl9CgoJ
CS8vIENsZWFuIHVwIHRoZSBldmVudCBpbiBjYXNlIGl0IGlzIGJlaW5nIHJldXNl
ZAoJCWV2ZW50LnJlc3VsdCA9IHVuZGVmaW5lZDsKCQlpZiAoICFldmVudC50YXJn
ZXQgKSB7CgkJCWV2ZW50LnRhcmdldCA9IGVsZW07CgkJfQoKCQkvLyBDbG9uZSBh
bnkgaW5jb21pbmcgZGF0YSBhbmQgcHJlcGVuZCB0aGUgZXZlbnQsIGNyZWF0aW5n
IHRoZSBoYW5kbGVyIGFyZyBsaXN0CgkJZGF0YSA9IGRhdGEgIT0gbnVsbCA/IGpR
dWVyeS5tYWtlQXJyYXkoIGRhdGEgKSA6IFtdOwoJCWRhdGEudW5zaGlmdCggZXZl
bnQgKTsKCgkJLy8gQWxsb3cgc3BlY2lhbCBldmVudHMgdG8gZHJhdyBvdXRzaWRl
IHRoZSBsaW5lcwoJCXNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlw
ZSBdIHx8IHt9OwoJCWlmICggc3BlY2lhbC50cmlnZ2VyICYmIHNwZWNpYWwudHJp
Z2dlci5hcHBseSggZWxlbSwgZGF0YSApID09PSBmYWxzZSApIHsKCQkJcmV0dXJu
OwoJCX0KCgkJLy8gRGV0ZXJtaW5lIGV2ZW50IHByb3BhZ2F0aW9uIHBhdGggaW4g
YWR2YW5jZSwgcGVyIFczQyBldmVudHMgc3BlYyAoIzk5NTEpCgkJLy8gQnViYmxl
IHVwIHRvIGRvY3VtZW50LCB0aGVuIHRvIHdpbmRvdzsgd2F0Y2ggZm9yIGEgZ2xv
YmFsIG93bmVyRG9jdW1lbnQgdmFyICgjOTcyNCkKCQlldmVudFBhdGggPSBbWyBl
bGVtLCBzcGVjaWFsLmJpbmRUeXBlIHx8IHR5cGUgXV07CgkJaWYgKCAhb25seUhh
bmRsZXJzICYmICFzcGVjaWFsLm5vQnViYmxlICYmICFqUXVlcnkuaXNXaW5kb3co
IGVsZW0gKSApIHsKCgkJCWJ1YmJsZVR5cGUgPSBzcGVjaWFsLmRlbGVnYXRlVHlw
ZSB8fCB0eXBlOwoJCQljdXIgPSByZm9jdXNNb3JwaC50ZXN0KCBidWJibGVUeXBl
ICsgdHlwZSApID8gZWxlbSA6IGVsZW0ucGFyZW50Tm9kZTsKCQkJb2xkID0gbnVs
bDsKCQkJZm9yICggOyBjdXI7IGN1ciA9IGN1ci5wYXJlbnROb2RlICkgewoJCQkJ
ZXZlbnRQYXRoLnB1c2goWyBjdXIsIGJ1YmJsZVR5cGUgXSk7CgkJCQlvbGQgPSBj
dXI7CgkJCX0KCgkJCS8vIE9ubHkgYWRkIHdpbmRvdyBpZiB3ZSBnb3QgdG8gZG9j
dW1lbnQgKGUuZy4sIG5vdCBwbGFpbiBvYmogb3IgZGV0YWNoZWQgRE9NKQoJCQlp
ZiAoIG9sZCAmJiBvbGQgPT09IGVsZW0ub3duZXJEb2N1bWVudCApIHsKCQkJCWV2
ZW50UGF0aC5wdXNoKFsgb2xkLmRlZmF1bHRWaWV3IHx8IG9sZC5wYXJlbnRXaW5k
b3cgfHwgd2luZG93LCBidWJibGVUeXBlIF0pOwoJCQl9CgkJfQoKCQkvLyBGaXJl
IGhhbmRsZXJzIG9uIHRoZSBldmVudCBwYXRoCgkJZm9yICggaSA9IDA7IGkgPCBl
dmVudFBhdGgubGVuZ3RoICYmICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgp
OyBpKysgKSB7CgoJCQljdXIgPSBldmVudFBhdGhbaV1bMF07CgkJCWV2ZW50LnR5
cGUgPSBldmVudFBhdGhbaV1bMV07CgoJCQloYW5kbGUgPSAoIGpRdWVyeS5fZGF0
YSggY3VyLCAiZXZlbnRzIiApIHx8IHt9IClbIGV2ZW50LnR5cGUgXSAmJiBqUXVl
cnkuX2RhdGEoIGN1ciwgImhhbmRsZSIgKTsKCQkJaWYgKCBoYW5kbGUgKSB7CgkJ
CQloYW5kbGUuYXBwbHkoIGN1ciwgZGF0YSApOwoJCQl9CgkJCS8vIE5vdGUgdGhh
dCB0aGlzIGlzIGEgYmFyZSBKUyBmdW5jdGlvbiBhbmQgbm90IGEgalF1ZXJ5IGhh
bmRsZXIKCQkJaGFuZGxlID0gb250eXBlICYmIGN1clsgb250eXBlIF07CgkJCWlm
ICggaGFuZGxlICYmIGpRdWVyeS5hY2NlcHREYXRhKCBjdXIgKSAmJiBoYW5kbGUu
YXBwbHkoIGN1ciwgZGF0YSApID09PSBmYWxzZSApIHsKCQkJCWV2ZW50LnByZXZl
bnREZWZhdWx0KCk7CgkJCX0KCQl9CgkJZXZlbnQudHlwZSA9IHR5cGU7CgoJCS8v
IElmIG5vYm9keSBwcmV2ZW50ZWQgdGhlIGRlZmF1bHQgYWN0aW9uLCBkbyBpdCBu
b3cKCQlpZiAoICFvbmx5SGFuZGxlcnMgJiYgIWV2ZW50LmlzRGVmYXVsdFByZXZl
bnRlZCgpICkgewoKCQkJaWYgKCAoIXNwZWNpYWwuX2RlZmF1bHQgfHwgc3BlY2lh
bC5fZGVmYXVsdC5hcHBseSggZWxlbS5vd25lckRvY3VtZW50LCBkYXRhICkgPT09
IGZhbHNlKSAmJgoJCQkJISh0eXBlID09PSAiY2xpY2siICYmIGpRdWVyeS5ub2Rl
TmFtZSggZWxlbSwgImEiICkpICYmIGpRdWVyeS5hY2NlcHREYXRhKCBlbGVtICkg
KSB7CgoJCQkJLy8gQ2FsbCBhIG5hdGl2ZSBET00gbWV0aG9kIG9uIHRoZSB0YXJn
ZXQgd2l0aCB0aGUgc2FtZSBuYW1lIG5hbWUgYXMgdGhlIGV2ZW50LgoJCQkJLy8g
Q2FuJ3QgdXNlIGFuIC5pc0Z1bmN0aW9uKCkgY2hlY2sgaGVyZSBiZWNhdXNlIElF
Ni83IGZhaWxzIHRoYXQgdGVzdC4KCQkJCS8vIERvbid0IGRvIGRlZmF1bHQgYWN0
aW9ucyBvbiB3aW5kb3csIHRoYXQncyB3aGVyZSBnbG9iYWwgdmFyaWFibGVzIGJl
ICgjNjE3MCkKCQkJCS8vIElFPDkgZGllcyBvbiBmb2N1cy9ibHVyIHRvIGhpZGRl
biBlbGVtZW50ICgjMTQ4NikKCQkJCWlmICggb250eXBlICYmIGVsZW1bIHR5cGUg
XSAmJiAoKHR5cGUgIT09ICJmb2N1cyIgJiYgdHlwZSAhPT0gImJsdXIiKSB8fCBl
dmVudC50YXJnZXQub2Zmc2V0V2lkdGggIT09IDApICYmICFqUXVlcnkuaXNXaW5k
b3coIGVsZW0gKSApIHsKCgkJCQkJLy8gRG9uJ3QgcmUtdHJpZ2dlciBhbiBvbkZP
TyBldmVudCB3aGVuIHdlIGNhbGwgaXRzIEZPTygpIG1ldGhvZAoJCQkJCW9sZCA9
IGVsZW1bIG9udHlwZSBdOwoKCQkJCQlpZiAoIG9sZCApIHsKCQkJCQkJZWxlbVsg
b250eXBlIF0gPSBudWxsOwoJCQkJCX0KCgkJCQkJLy8gUHJldmVudCByZS10cmln
Z2VyaW5nIG9mIHRoZSBzYW1lIGV2ZW50LCBzaW5jZSB3ZSBhbHJlYWR5IGJ1YmJs
ZWQgaXQgYWJvdmUKCQkJCQlqUXVlcnkuZXZlbnQudHJpZ2dlcmVkID0gdHlwZTsK
CQkJCQllbGVtWyB0eXBlIF0oKTsKCQkJCQlqUXVlcnkuZXZlbnQudHJpZ2dlcmVk
ID0gdW5kZWZpbmVkOwoKCQkJCQlpZiAoIG9sZCApIHsKCQkJCQkJZWxlbVsgb250
eXBlIF0gPSBvbGQ7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gZXZl
bnQucmVzdWx0OwoJfSwKCglkaXNwYXRjaDogZnVuY3Rpb24oIGV2ZW50ICkgewoK
CQkvLyBNYWtlIGEgd3JpdGFibGUgalF1ZXJ5LkV2ZW50IGZyb20gdGhlIG5hdGl2
ZSBldmVudCBvYmplY3QKCQlldmVudCA9IGpRdWVyeS5ldmVudC5maXgoIGV2ZW50
IHx8IHdpbmRvdy5ldmVudCApOwoKCQl2YXIgaGFuZGxlcnMgPSAoIChqUXVlcnku
X2RhdGEoIHRoaXMsICJldmVudHMiICkgfHwge30gKVsgZXZlbnQudHlwZSBdIHx8
IFtdKSwKCQkJZGVsZWdhdGVDb3VudCA9IGhhbmRsZXJzLmRlbGVnYXRlQ291bnQs
CgkJCWFyZ3MgPSBbXS5zbGljZS5jYWxsKCBhcmd1bWVudHMsIDAgKSwKCQkJcnVu
X2FsbCA9ICFldmVudC5leGNsdXNpdmUgJiYgIWV2ZW50Lm5hbWVzcGFjZSwKCQkJ
c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyBldmVudC50eXBlIF0gfHwg
e30sCgkJCWhhbmRsZXJRdWV1ZSA9IFtdLAoJCQlpLCBqLCBjdXIsIGpxY3VyLCBy
ZXQsIHNlbE1hdGNoLCBtYXRjaGVkLCBtYXRjaGVzLCBoYW5kbGVPYmosIHNlbCwg
cmVsYXRlZDsKCgkJLy8gVXNlIHRoZSBmaXgtZWQgalF1ZXJ5LkV2ZW50IHJhdGhl
ciB0aGFuIHRoZSAocmVhZC1vbmx5KSBuYXRpdmUgZXZlbnQKCQlhcmdzWzBdID0g
ZXZlbnQ7CgkJZXZlbnQuZGVsZWdhdGVUYXJnZXQgPSB0aGlzOwoKCQkvLyBDYWxs
IHRoZSBwcmVEaXNwYXRjaCBob29rIGZvciB0aGUgbWFwcGVkIHR5cGUsIGFuZCBs
ZXQgaXQgYmFpbCBpZiBkZXNpcmVkCgkJaWYgKCBzcGVjaWFsLnByZURpc3BhdGNo
ICYmIHNwZWNpYWwucHJlRGlzcGF0Y2guY2FsbCggdGhpcywgZXZlbnQgKSA9PT0g
ZmFsc2UgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIERldGVybWluZSBoYW5kbGVy
cyB0aGF0IHNob3VsZCBydW4gaWYgdGhlcmUgYXJlIGRlbGVnYXRlZCBldmVudHMK
CQkvLyBBdm9pZCBub24tbGVmdC1jbGljayBidWJibGluZyBpbiBGaXJlZm94ICgj
Mzg2MSkKCQlpZiAoIGRlbGVnYXRlQ291bnQgJiYgIShldmVudC5idXR0b24gJiYg
ZXZlbnQudHlwZSA9PT0gImNsaWNrIikgKSB7CgoJCQkvLyBQcmVnZW5lcmF0ZSBh
IHNpbmdsZSBqUXVlcnkgb2JqZWN0IGZvciByZXVzZSB3aXRoIC5pcygpCgkJCWpx
Y3VyID0galF1ZXJ5KHRoaXMpOwoJCQlqcWN1ci5jb250ZXh0ID0gdGhpcy5vd25l
ckRvY3VtZW50IHx8IHRoaXM7CgoJCQlmb3IgKCBjdXIgPSBldmVudC50YXJnZXQ7
IGN1ciAhPSB0aGlzOyBjdXIgPSBjdXIucGFyZW50Tm9kZSB8fCB0aGlzICkgewoK
CQkJCS8vIERvbid0IHByb2Nlc3MgZXZlbnRzIG9uIGRpc2FibGVkIGVsZW1lbnRz
ICgjNjkxMSwgIzgxNjUpCgkJCQlpZiAoIGN1ci5kaXNhYmxlZCAhPT0gdHJ1ZSAp
IHsKCQkJCQlzZWxNYXRjaCA9IHt9OwoJCQkJCW1hdGNoZXMgPSBbXTsKCQkJCQlq
cWN1clswXSA9IGN1cjsKCQkJCQlmb3IgKCBpID0gMDsgaSA8IGRlbGVnYXRlQ291
bnQ7IGkrKyApIHsKCQkJCQkJaGFuZGxlT2JqID0gaGFuZGxlcnNbIGkgXTsKCQkJ
CQkJc2VsID0gaGFuZGxlT2JqLnNlbGVjdG9yOwoKCQkJCQkJaWYgKCBzZWxNYXRj
aFsgc2VsIF0gPT09IHVuZGVmaW5lZCApIHsKCQkJCQkJCXNlbE1hdGNoWyBzZWwg
XSA9ICgKCQkJCQkJCQloYW5kbGVPYmoucXVpY2sgPyBxdWlja0lzKCBjdXIsIGhh
bmRsZU9iai5xdWljayApIDoganFjdXIuaXMoIHNlbCApCgkJCQkJCQkpOwoJCQkJ
CQl9CgkJCQkJCWlmICggc2VsTWF0Y2hbIHNlbCBdICkgewoJCQkJCQkJbWF0Y2hl
cy5wdXNoKCBoYW5kbGVPYmogKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQlpZiAoIG1h
dGNoZXMubGVuZ3RoICkgewoJCQkJCQloYW5kbGVyUXVldWUucHVzaCh7IGVsZW06
IGN1ciwgbWF0Y2hlczogbWF0Y2hlcyB9KTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9
CgoJCS8vIEFkZCB0aGUgcmVtYWluaW5nIChkaXJlY3RseS1ib3VuZCkgaGFuZGxl
cnMKCQlpZiAoIGhhbmRsZXJzLmxlbmd0aCA+IGRlbGVnYXRlQ291bnQgKSB7CgkJ
CWhhbmRsZXJRdWV1ZS5wdXNoKHsgZWxlbTogdGhpcywgbWF0Y2hlczogaGFuZGxl
cnMuc2xpY2UoIGRlbGVnYXRlQ291bnQgKSB9KTsKCQl9CgoJCS8vIFJ1biBkZWxl
Z2F0ZXMgZmlyc3Q7IHRoZXkgbWF5IHdhbnQgdG8gc3RvcCBwcm9wYWdhdGlvbiBi
ZW5lYXRoIHVzCgkJZm9yICggaSA9IDA7IGkgPCBoYW5kbGVyUXVldWUubGVuZ3Ro
ICYmICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpOyBpKysgKSB7CgkJCW1h
dGNoZWQgPSBoYW5kbGVyUXVldWVbIGkgXTsKCQkJZXZlbnQuY3VycmVudFRhcmdl
dCA9IG1hdGNoZWQuZWxlbTsKCgkJCWZvciAoIGogPSAwOyBqIDwgbWF0Y2hlZC5t
YXRjaGVzLmxlbmd0aCAmJiAhZXZlbnQuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0
b3BwZWQoKTsgaisrICkgewoJCQkJaGFuZGxlT2JqID0gbWF0Y2hlZC5tYXRjaGVz
WyBqIF07CgoJCQkJLy8gVHJpZ2dlcmVkIGV2ZW50IG11c3QgZWl0aGVyIDEpIGJl
IG5vbi1leGNsdXNpdmUgYW5kIGhhdmUgbm8gbmFtZXNwYWNlLCBvcgoJCQkJLy8g
MikgaGF2ZSBuYW1lc3BhY2UocykgYSBzdWJzZXQgb3IgZXF1YWwgdG8gdGhvc2Ug
aW4gdGhlIGJvdW5kIGV2ZW50IChib3RoIGNhbiBoYXZlIG5vIG5hbWVzcGFjZSku
CgkJCQlpZiAoIHJ1bl9hbGwgfHwgKCFldmVudC5uYW1lc3BhY2UgJiYgIWhhbmRs
ZU9iai5uYW1lc3BhY2UpIHx8IGV2ZW50Lm5hbWVzcGFjZV9yZSAmJiBldmVudC5u
YW1lc3BhY2VfcmUudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgewoKCQkJ
CQlldmVudC5kYXRhID0gaGFuZGxlT2JqLmRhdGE7CgkJCQkJZXZlbnQuaGFuZGxl
T2JqID0gaGFuZGxlT2JqOwoKCQkJCQlyZXQgPSAoIChqUXVlcnkuZXZlbnQuc3Bl
Y2lhbFsgaGFuZGxlT2JqLm9yaWdUeXBlIF0gfHwge30pLmhhbmRsZSB8fCBoYW5k
bGVPYmouaGFuZGxlciApCgkJCQkJCQkuYXBwbHkoIG1hdGNoZWQuZWxlbSwgYXJn
cyApOwoKCQkJCQlpZiAoIHJldCAhPT0gdW5kZWZpbmVkICkgewoJCQkJCQlldmVu
dC5yZXN1bHQgPSByZXQ7CgkJCQkJCWlmICggcmV0ID09PSBmYWxzZSApIHsKCQkJ
CQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCQkJCQlldmVudC5zdG9wUHJv
cGFnYXRpb24oKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCgkJLy8g
Q2FsbCB0aGUgcG9zdERpc3BhdGNoIGhvb2sgZm9yIHRoZSBtYXBwZWQgdHlwZQoJ
CWlmICggc3BlY2lhbC5wb3N0RGlzcGF0Y2ggKSB7CgkJCXNwZWNpYWwucG9zdERp
c3BhdGNoLmNhbGwoIHRoaXMsIGV2ZW50ICk7CgkJfQoKCQlyZXR1cm4gZXZlbnQu
cmVzdWx0OwoJfSwKCgkvLyBJbmNsdWRlcyBzb21lIGV2ZW50IHByb3BzIHNoYXJl
ZCBieSBLZXlFdmVudCBhbmQgTW91c2VFdmVudAoJLy8gKioqIGF0dHJDaGFuZ2Ug
YXR0ck5hbWUgcmVsYXRlZE5vZGUgc3JjRWxlbWVudCAgYXJlIG5vdCBub3JtYWxp
emVkLCBub24tVzNDLCBkZXByZWNhdGVkLCB3aWxsIGJlIHJlbW92ZWQgaW4gMS44
ICoqKgoJcHJvcHM6ICJhdHRyQ2hhbmdlIGF0dHJOYW1lIHJlbGF0ZWROb2RlIHNy
Y0VsZW1lbnQgYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJl
bnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRL
ZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLAoKCWZp
eEhvb2tzOiB7fSwKCglrZXlIb29rczogewoJCXByb3BzOiAiY2hhciBjaGFyQ29k
ZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSwKCQlmaWx0ZXI6IGZ1bmN0aW9uKCBl
dmVudCwgb3JpZ2luYWwgKSB7CgoJCQkvLyBBZGQgd2hpY2ggZm9yIGtleSBldmVu
dHMKCQkJaWYgKCBldmVudC53aGljaCA9PSBudWxsICkgewoJCQkJZXZlbnQud2hp
Y2ggPSBvcmlnaW5hbC5jaGFyQ29kZSAhPSBudWxsID8gb3JpZ2luYWwuY2hhckNv
ZGUgOiBvcmlnaW5hbC5rZXlDb2RlOwoJCQl9CgoJCQlyZXR1cm4gZXZlbnQ7CgkJ
fQoJfSwKCgltb3VzZUhvb2tzOiB7CgkJcHJvcHM6ICJidXR0b24gYnV0dG9ucyBj
bGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VY
IHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksCgkJ
ZmlsdGVyOiBmdW5jdGlvbiggZXZlbnQsIG9yaWdpbmFsICkgewoJCQl2YXIgZXZl
bnREb2MsIGRvYywgYm9keSwKCQkJCWJ1dHRvbiA9IG9yaWdpbmFsLmJ1dHRvbiwK
CQkJCWZyb21FbGVtZW50ID0gb3JpZ2luYWwuZnJvbUVsZW1lbnQ7CgoJCQkvLyBD
YWxjdWxhdGUgcGFnZVgvWSBpZiBtaXNzaW5nIGFuZCBjbGllbnRYL1kgYXZhaWxh
YmxlCgkJCWlmICggZXZlbnQucGFnZVggPT0gbnVsbCAmJiBvcmlnaW5hbC5jbGll
bnRYICE9IG51bGwgKSB7CgkJCQlldmVudERvYyA9IGV2ZW50LnRhcmdldC5vd25l
ckRvY3VtZW50IHx8IGRvY3VtZW50OwoJCQkJZG9jID0gZXZlbnREb2MuZG9jdW1l
bnRFbGVtZW50OwoJCQkJYm9keSA9IGV2ZW50RG9jLmJvZHk7CgoJCQkJZXZlbnQu
cGFnZVggPSBvcmlnaW5hbC5jbGllbnRYICsgKCBkb2MgJiYgZG9jLnNjcm9sbExl
ZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCApIC0gKCBkb2MgJiYg
ZG9jLmNsaWVudExlZnQgfHwgYm9keSAmJiBib2R5LmNsaWVudExlZnQgfHwgMCAp
OwoJCQkJZXZlbnQucGFnZVkgPSBvcmlnaW5hbC5jbGllbnRZICsgKCBkb2MgJiYg
ZG9jLnNjcm9sbFRvcCAgfHwgYm9keSAmJiBib2R5LnNjcm9sbFRvcCAgfHwgMCAp
IC0gKCBkb2MgJiYgZG9jLmNsaWVudFRvcCAgfHwgYm9keSAmJiBib2R5LmNsaWVu
dFRvcCAgfHwgMCApOwoJCQl9CgoJCQkvLyBBZGQgcmVsYXRlZFRhcmdldCwgaWYg
bmVjZXNzYXJ5CgkJCWlmICggIWV2ZW50LnJlbGF0ZWRUYXJnZXQgJiYgZnJvbUVs
ZW1lbnQgKSB7CgkJCQlldmVudC5yZWxhdGVkVGFyZ2V0ID0gZnJvbUVsZW1lbnQg
PT09IGV2ZW50LnRhcmdldCA/IG9yaWdpbmFsLnRvRWxlbWVudCA6IGZyb21FbGVt
ZW50OwoJCQl9CgoJCQkvLyBBZGQgd2hpY2ggZm9yIGNsaWNrOiAxID09PSBsZWZ0
OyAyID09PSBtaWRkbGU7IDMgPT09IHJpZ2h0CgkJCS8vIE5vdGU6IGJ1dHRvbiBp
cyBub3Qgbm9ybWFsaXplZCwgc28gZG9uJ3QgdXNlIGl0CgkJCWlmICggIWV2ZW50
LndoaWNoICYmIGJ1dHRvbiAhPT0gdW5kZWZpbmVkICkgewoJCQkJZXZlbnQud2hp
Y2ggPSAoIGJ1dHRvbiAmIDEgPyAxIDogKCBidXR0b24gJiAyID8gMyA6ICggYnV0
dG9uICYgNCA/IDIgOiAwICkgKSApOwoJCQl9CgoJCQlyZXR1cm4gZXZlbnQ7CgkJ
fQoJfSwKCglmaXg6IGZ1bmN0aW9uKCBldmVudCApIHsKCQlpZiAoIGV2ZW50WyBq
UXVlcnkuZXhwYW5kbyBdICkgewoJCQlyZXR1cm4gZXZlbnQ7CgkJfQoKCQkvLyBD
cmVhdGUgYSB3cml0YWJsZSBjb3B5IG9mIHRoZSBldmVudCBvYmplY3QgYW5kIG5v
cm1hbGl6ZSBzb21lIHByb3BlcnRpZXMKCQl2YXIgaSwgcHJvcCwKCQkJb3JpZ2lu
YWxFdmVudCA9IGV2ZW50LAoJCQlmaXhIb29rID0galF1ZXJ5LmV2ZW50LmZpeEhv
b2tzWyBldmVudC50eXBlIF0gfHwge30sCgkJCWNvcHkgPSBmaXhIb29rLnByb3Bz
ID8gdGhpcy5wcm9wcy5jb25jYXQoIGZpeEhvb2sucHJvcHMgKSA6IHRoaXMucHJv
cHM7CgoJCWV2ZW50ID0galF1ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7CgoJ
CWZvciAoIGkgPSBjb3B5Lmxlbmd0aDsgaTsgKSB7CgkJCXByb3AgPSBjb3B5WyAt
LWkgXTsKCQkJZXZlbnRbIHByb3AgXSA9IG9yaWdpbmFsRXZlbnRbIHByb3AgXTsK
CQl9CgoJCS8vIEZpeCB0YXJnZXQgcHJvcGVydHksIGlmIG5lY2Vzc2FyeSAoIzE5
MjUsIElFIDYvNy84ICYgU2FmYXJpMikKCQlpZiAoICFldmVudC50YXJnZXQgKSB7
CgkJCWV2ZW50LnRhcmdldCA9IG9yaWdpbmFsRXZlbnQuc3JjRWxlbWVudCB8fCBk
b2N1bWVudDsKCQl9CgoJCS8vIFRhcmdldCBzaG91bGQgbm90IGJlIGEgdGV4dCBu
b2RlICgjNTA0LCBTYWZhcmkpCgkJaWYgKCBldmVudC50YXJnZXQubm9kZVR5cGUg
PT09IDMgKSB7CgkJCWV2ZW50LnRhcmdldCA9IGV2ZW50LnRhcmdldC5wYXJlbnRO
b2RlOwoJCX0KCgkJLy8gRm9yIG1vdXNlL2tleSBldmVudHM7IGFkZCBtZXRhS2V5
IGlmIGl0J3Mgbm90IHRoZXJlICgjMzM2OCwgSUU2LzcvOCkKCQlpZiAoIGV2ZW50
Lm1ldGFLZXkgPT09IHVuZGVmaW5lZCApIHsKCQkJZXZlbnQubWV0YUtleSA9IGV2
ZW50LmN0cmxLZXk7CgkJfQoKCQlyZXR1cm4gZml4SG9vay5maWx0ZXI/IGZpeEhv
b2suZmlsdGVyKCBldmVudCwgb3JpZ2luYWxFdmVudCApIDogZXZlbnQ7Cgl9LAoK
CXNwZWNpYWw6IHsKCQlyZWFkeTogewoJCQkvLyBNYWtlIHN1cmUgdGhlIHJlYWR5
IGV2ZW50IGlzIHNldHVwCgkJCXNldHVwOiBqUXVlcnkuYmluZFJlYWR5CgkJfSwK
CgkJbG9hZDogewoJCQkvLyBQcmV2ZW50IHRyaWdnZXJlZCBpbWFnZS5sb2FkIGV2
ZW50cyBmcm9tIGJ1YmJsaW5nIHRvIHdpbmRvdy5sb2FkCgkJCW5vQnViYmxlOiB0
cnVlCgkJfSwKCgkJZm9jdXM6IHsKCQkJZGVsZWdhdGVUeXBlOiAiZm9jdXNpbiIK
CQl9LAoJCWJsdXI6IHsKCQkJZGVsZWdhdGVUeXBlOiAiZm9jdXNvdXQiCgkJfSwK
CgkJYmVmb3JldW5sb2FkOiB7CgkJCXNldHVwOiBmdW5jdGlvbiggZGF0YSwgbmFt
ZXNwYWNlcywgZXZlbnRIYW5kbGUgKSB7CgkJCQkvLyBXZSBvbmx5IHdhbnQgdG8g
ZG8gdGhpcyBzcGVjaWFsIGNhc2Ugb24gd2luZG93cwoJCQkJaWYgKCBqUXVlcnku
aXNXaW5kb3coIHRoaXMgKSApIHsKCQkJCQl0aGlzLm9uYmVmb3JldW5sb2FkID0g
ZXZlbnRIYW5kbGU7CgkJCQl9CgkJCX0sCgoJCQl0ZWFyZG93bjogZnVuY3Rpb24o
IG5hbWVzcGFjZXMsIGV2ZW50SGFuZGxlICkgewoJCQkJaWYgKCB0aGlzLm9uYmVm
b3JldW5sb2FkID09PSBldmVudEhhbmRsZSApIHsKCQkJCQl0aGlzLm9uYmVmb3Jl
dW5sb2FkID0gbnVsbDsKCQkJCX0KCQkJfQoJCX0KCX0sCgoJc2ltdWxhdGU6IGZ1
bmN0aW9uKCB0eXBlLCBlbGVtLCBldmVudCwgYnViYmxlICkgewoJCS8vIFBpZ2d5
YmFjayBvbiBhIGRvbm9yIGV2ZW50IHRvIHNpbXVsYXRlIGEgZGlmZmVyZW50IG9u
ZS4KCQkvLyBGYWtlIG9yaWdpbmFsRXZlbnQgdG8gYXZvaWQgZG9ub3IncyBzdG9w
UHJvcGFnYXRpb24sIGJ1dCBpZiB0aGUKCQkvLyBzaW11bGF0ZWQgZXZlbnQgcHJl
dmVudHMgZGVmYXVsdCB0aGVuIHdlIGRvIHRoZSBzYW1lIG9uIHRoZSBkb25vci4K
CQl2YXIgZSA9IGpRdWVyeS5leHRlbmQoCgkJCW5ldyBqUXVlcnkuRXZlbnQoKSwK
CQkJZXZlbnQsCgkJCXsgdHlwZTogdHlwZSwKCQkJCWlzU2ltdWxhdGVkOiB0cnVl
LAoJCQkJb3JpZ2luYWxFdmVudDoge30KCQkJfQoJCSk7CgkJaWYgKCBidWJibGUg
KSB7CgkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCBlLCBudWxsLCBlbGVtICk7CgkJ
fSBlbHNlIHsKCQkJalF1ZXJ5LmV2ZW50LmRpc3BhdGNoLmNhbGwoIGVsZW0sIGUg
KTsKCQl9CgkJaWYgKCBlLmlzRGVmYXVsdFByZXZlbnRlZCgpICkgewoJCQlldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOwoJCX0KCX0KfTsKCi8vIFNvbWUgcGx1Z2lucyBh
cmUgdXNpbmcsIGJ1dCBpdCdzIHVuZG9jdW1lbnRlZC9kZXByZWNhdGVkIGFuZCB3
aWxsIGJlIHJlbW92ZWQuCi8vIFRoZSAxLjcgc3BlY2lhbCBldmVudCBpbnRlcmZh
Y2Ugc2hvdWxkIHByb3ZpZGUgYWxsIHRoZSBob29rcyBuZWVkZWQgbm93LgpqUXVl
cnkuZXZlbnQuaGFuZGxlID0galF1ZXJ5LmV2ZW50LmRpc3BhdGNoOwoKalF1ZXJ5
LnJlbW92ZUV2ZW50ID0gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciA/Cglm
dW5jdGlvbiggZWxlbSwgdHlwZSwgaGFuZGxlICkgewoJCWlmICggZWxlbS5yZW1v
dmVFdmVudExpc3RlbmVyICkgewoJCQllbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIo
IHR5cGUsIGhhbmRsZSwgZmFsc2UgKTsKCQl9Cgl9IDoKCWZ1bmN0aW9uKCBlbGVt
LCB0eXBlLCBoYW5kbGUgKSB7CgkJaWYgKCBlbGVtLmRldGFjaEV2ZW50ICkgewoJ
CQllbGVtLmRldGFjaEV2ZW50KCAib24iICsgdHlwZSwgaGFuZGxlICk7CgkJfQoJ
fTsKCmpRdWVyeS5FdmVudCA9IGZ1bmN0aW9uKCBzcmMsIHByb3BzICkgewoJLy8g
QWxsb3cgaW5zdGFudGlhdGlvbiB3aXRob3V0IHRoZSAnbmV3JyBrZXl3b3JkCglp
ZiAoICEodGhpcyBpbnN0YW5jZW9mIGpRdWVyeS5FdmVudCkgKSB7CgkJcmV0dXJu
IG5ldyBqUXVlcnkuRXZlbnQoIHNyYywgcHJvcHMgKTsKCX0KCgkvLyBFdmVudCBv
YmplY3QKCWlmICggc3JjICYmIHNyYy50eXBlICkgewoJCXRoaXMub3JpZ2luYWxF
dmVudCA9IHNyYzsKCQl0aGlzLnR5cGUgPSBzcmMudHlwZTsKCgkJLy8gRXZlbnRz
IGJ1YmJsaW5nIHVwIHRoZSBkb2N1bWVudCBtYXkgaGF2ZSBiZWVuIG1hcmtlZCBh
cyBwcmV2ZW50ZWQKCQkvLyBieSBhIGhhbmRsZXIgbG93ZXIgZG93biB0aGUgdHJl
ZTsgcmVmbGVjdCB0aGUgY29ycmVjdCB2YWx1ZS4KCQl0aGlzLmlzRGVmYXVsdFBy
ZXZlbnRlZCA9ICggc3JjLmRlZmF1bHRQcmV2ZW50ZWQgfHwgc3JjLnJldHVyblZh
bHVlID09PSBmYWxzZSB8fAoJCQlzcmMuZ2V0UHJldmVudERlZmF1bHQgJiYgc3Jj
LmdldFByZXZlbnREZWZhdWx0KCkgKSA/IHJldHVyblRydWUgOiByZXR1cm5GYWxz
ZTsKCgkvLyBFdmVudCB0eXBlCgl9IGVsc2UgewoJCXRoaXMudHlwZSA9IHNyYzsK
CX0KCgkvLyBQdXQgZXhwbGljaXRseSBwcm92aWRlZCBwcm9wZXJ0aWVzIG9udG8g
dGhlIGV2ZW50IG9iamVjdAoJaWYgKCBwcm9wcyApIHsKCQlqUXVlcnkuZXh0ZW5k
KCB0aGlzLCBwcm9wcyApOwoJfQoKCS8vIENyZWF0ZSBhIHRpbWVzdGFtcCBpZiBp
bmNvbWluZyBldmVudCBkb2Vzbid0IGhhdmUgb25lCgl0aGlzLnRpbWVTdGFtcCA9
IHNyYyAmJiBzcmMudGltZVN0YW1wIHx8IGpRdWVyeS5ub3coKTsKCgkvLyBNYXJr
IGl0IGFzIGZpeGVkCgl0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTsKfTsK
CmZ1bmN0aW9uIHJldHVybkZhbHNlKCkgewoJcmV0dXJuIGZhbHNlOwp9CmZ1bmN0
aW9uIHJldHVyblRydWUoKSB7CglyZXR1cm4gdHJ1ZTsKfQoKLy8galF1ZXJ5LkV2
ZW50IGlzIGJhc2VkIG9uIERPTTMgRXZlbnRzIGFzIHNwZWNpZmllZCBieSB0aGUg
RUNNQVNjcmlwdCBMYW5ndWFnZSBCaW5kaW5nCi8vIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMDMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMDMwMzMxL2VjbWEtc2Ny
aXB0LWJpbmRpbmcuaHRtbApqUXVlcnkuRXZlbnQucHJvdG90eXBlID0gewoJcHJl
dmVudERlZmF1bHQ6IGZ1bmN0aW9uKCkgewoJCXRoaXMuaXNEZWZhdWx0UHJldmVu
dGVkID0gcmV0dXJuVHJ1ZTsKCgkJdmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7
CgkJaWYgKCAhZSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gaWYgcHJldmVudERl
ZmF1bHQgZXhpc3RzIHJ1biBpdCBvbiB0aGUgb3JpZ2luYWwgZXZlbnQKCQlpZiAo
IGUucHJldmVudERlZmF1bHQgKSB7CgkJCWUucHJldmVudERlZmF1bHQoKTsKCgkJ
Ly8gb3RoZXJ3aXNlIHNldCB0aGUgcmV0dXJuVmFsdWUgcHJvcGVydHkgb2YgdGhl
IG9yaWdpbmFsIGV2ZW50IHRvIGZhbHNlIChJRSkKCQl9IGVsc2UgewoJCQllLnJl
dHVyblZhbHVlID0gZmFsc2U7CgkJfQoJfSwKCXN0b3BQcm9wYWdhdGlvbjogZnVu
Y3Rpb24oKSB7CgkJdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRy
dWU7CgoJCXZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50OwoJCWlmICggIWUgKSB7
CgkJCXJldHVybjsKCQl9CgkJLy8gaWYgc3RvcFByb3BhZ2F0aW9uIGV4aXN0cyBy
dW4gaXQgb24gdGhlIG9yaWdpbmFsIGV2ZW50CgkJaWYgKCBlLnN0b3BQcm9wYWdh
dGlvbiApIHsKCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQl9CgkJLy8gb3RoZXJ3
aXNlIHNldCB0aGUgY2FuY2VsQnViYmxlIHByb3BlcnR5IG9mIHRoZSBvcmlnaW5h
bCBldmVudCB0byB0cnVlIChJRSkKCQllLmNhbmNlbEJ1YmJsZSA9IHRydWU7Cgl9
LAoJc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsKCQl0aGlz
LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTsKCQl0
aGlzLnN0b3BQcm9wYWdhdGlvbigpOwoJfSwKCWlzRGVmYXVsdFByZXZlbnRlZDog
cmV0dXJuRmFsc2UsCglpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2Us
Cglpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UKfTsK
Ci8vIENyZWF0ZSBtb3VzZWVudGVyL2xlYXZlIGV2ZW50cyB1c2luZyBtb3VzZW92
ZXIvb3V0IGFuZCBldmVudC10aW1lIGNoZWNrcwpqUXVlcnkuZWFjaCh7Cgltb3Vz
ZWVudGVyOiAibW91c2VvdmVyIiwKCW1vdXNlbGVhdmU6ICJtb3VzZW91dCIKfSwg
ZnVuY3Rpb24oIG9yaWcsIGZpeCApIHsKCWpRdWVyeS5ldmVudC5zcGVjaWFsWyBv
cmlnIF0gPSB7CgkJZGVsZWdhdGVUeXBlOiBmaXgsCgkJYmluZFR5cGU6IGZpeCwK
CgkJaGFuZGxlOiBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCXZhciB0YXJnZXQgPSB0
aGlzLAoJCQkJcmVsYXRlZCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQsCgkJCQloYW5k
bGVPYmogPSBldmVudC5oYW5kbGVPYmosCgkJCQlzZWxlY3RvciA9IGhhbmRsZU9i
ai5zZWxlY3RvciwKCQkJCXJldDsKCgkJCS8vIEZvciBtb3VzZW50ZXIvbGVhdmUg
Y2FsbCB0aGUgaGFuZGxlciBpZiByZWxhdGVkIGlzIG91dHNpZGUgdGhlIHRhcmdl
dC4KCQkJLy8gTkI6IE5vIHJlbGF0ZWRUYXJnZXQgaWYgdGhlIG1vdXNlIGxlZnQv
ZW50ZXJlZCB0aGUgYnJvd3NlciB3aW5kb3cKCQkJaWYgKCAhcmVsYXRlZCB8fCAo
cmVsYXRlZCAhPT0gdGFyZ2V0ICYmICFqUXVlcnkuY29udGFpbnMoIHRhcmdldCwg
cmVsYXRlZCApKSApIHsKCQkJCWV2ZW50LnR5cGUgPSBoYW5kbGVPYmoub3JpZ1R5
cGU7CgkJCQlyZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJn
dW1lbnRzICk7CgkJCQlldmVudC50eXBlID0gZml4OwoJCQl9CgkJCXJldHVybiBy
ZXQ7CgkJfQoJfTsKfSk7CgovLyBJRSBzdWJtaXQgZGVsZWdhdGlvbgppZiAoICFq
UXVlcnkuc3VwcG9ydC5zdWJtaXRCdWJibGVzICkgewoKCWpRdWVyeS5ldmVudC5z
cGVjaWFsLnN1Ym1pdCA9IHsKCQlzZXR1cDogZnVuY3Rpb24oKSB7CgkJCS8vIE9u
bHkgbmVlZCB0aGlzIGZvciBkZWxlZ2F0ZWQgZm9ybSBzdWJtaXQgZXZlbnRzCgkJ
CWlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0aGlzLCAiZm9ybSIgKSApIHsKCQkJCXJl
dHVybiBmYWxzZTsKCQkJfQoKCQkJLy8gTGF6eS1hZGQgYSBzdWJtaXQgaGFuZGxl
ciB3aGVuIGEgZGVzY2VuZGFudCBmb3JtIG1heSBwb3RlbnRpYWxseSBiZSBzdWJt
aXR0ZWQKCQkJalF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgImNsaWNrLl9zdWJtaXQg
a2V5cHJlc3MuX3N1Ym1pdCIsIGZ1bmN0aW9uKCBlICkgewoJCQkJLy8gTm9kZSBu
YW1lIGNoZWNrIGF2b2lkcyBhIFZNTC1yZWxhdGVkIGNyYXNoIGluIElFICgjOTgw
NykKCQkJCXZhciBlbGVtID0gZS50YXJnZXQsCgkJCQkJZm9ybSA9IGpRdWVyeS5u
b2RlTmFtZSggZWxlbSwgImlucHV0IiApIHx8IGpRdWVyeS5ub2RlTmFtZSggZWxl
bSwgImJ1dHRvbiIgKSA/IGVsZW0uZm9ybSA6IHVuZGVmaW5lZDsKCQkJCWlmICgg
Zm9ybSAmJiAhZm9ybS5fc3VibWl0X2F0dGFjaGVkICkgewoJCQkJCWpRdWVyeS5l
dmVudC5hZGQoIGZvcm0sICJzdWJtaXQuX3N1Ym1pdCIsIGZ1bmN0aW9uKCBldmVu
dCApIHsKCQkJCQkJZXZlbnQuX3N1Ym1pdF9idWJibGUgPSB0cnVlOwoJCQkJCX0p
OwoJCQkJCWZvcm0uX3N1Ym1pdF9hdHRhY2hlZCA9IHRydWU7CgkJCQl9CgkJCX0p
OwoJCQkvLyByZXR1cm4gdW5kZWZpbmVkIHNpbmNlIHdlIGRvbid0IG5lZWQgYW4g
ZXZlbnQgbGlzdGVuZXIKCQl9LAoKCQlwb3N0RGlzcGF0Y2g6IGZ1bmN0aW9uKCBl
dmVudCApIHsKCQkJLy8gSWYgZm9ybSB3YXMgc3VibWl0dGVkIGJ5IHRoZSB1c2Vy
LCBidWJibGUgdGhlIGV2ZW50IHVwIHRoZSB0cmVlCgkJCWlmICggZXZlbnQuX3N1
Ym1pdF9idWJibGUgKSB7CgkJCQlkZWxldGUgZXZlbnQuX3N1Ym1pdF9idWJibGU7
CgkJCQlpZiAoIHRoaXMucGFyZW50Tm9kZSAmJiAhZXZlbnQuaXNUcmlnZ2VyICkg
ewoJCQkJCWpRdWVyeS5ldmVudC5zaW11bGF0ZSggInN1Ym1pdCIsIHRoaXMucGFy
ZW50Tm9kZSwgZXZlbnQsIHRydWUgKTsKCQkJCX0KCQkJfQoJCX0sCgoJCXRlYXJk
b3duOiBmdW5jdGlvbigpIHsKCQkJLy8gT25seSBuZWVkIHRoaXMgZm9yIGRlbGVn
YXRlZCBmb3JtIHN1Ym1pdCBldmVudHMKCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUo
IHRoaXMsICJmb3JtIiApICkgewoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgoJCQkv
LyBSZW1vdmUgZGVsZWdhdGVkIGhhbmRsZXJzOyBjbGVhbkRhdGEgZXZlbnR1YWxs
eSByZWFwcyBzdWJtaXQgaGFuZGxlcnMgYXR0YWNoZWQgYWJvdmUKCQkJalF1ZXJ5
LmV2ZW50LnJlbW92ZSggdGhpcywgIi5fc3VibWl0IiApOwoJCX0KCX07Cn0KCi8v
IElFIGNoYW5nZSBkZWxlZ2F0aW9uIGFuZCBjaGVja2JveC9yYWRpbyBmaXgKaWYg
KCAhalF1ZXJ5LnN1cHBvcnQuY2hhbmdlQnViYmxlcyApIHsKCglqUXVlcnkuZXZl
bnQuc3BlY2lhbC5jaGFuZ2UgPSB7CgoJCXNldHVwOiBmdW5jdGlvbigpIHsKCgkJ
CWlmICggcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICkgKSB7CgkJCQkv
LyBJRSBkb2Vzbid0IGZpcmUgY2hhbmdlIG9uIGEgY2hlY2svcmFkaW8gdW50aWwg
Ymx1cjsgdHJpZ2dlciBpdCBvbiBjbGljawoJCQkJLy8gYWZ0ZXIgYSBwcm9wZXJ0
eWNoYW5nZS4gRWF0IHRoZSBibHVyLWNoYW5nZSBpbiBzcGVjaWFsLmNoYW5nZS5o
YW5kbGUuCgkJCQkvLyBUaGlzIHN0aWxsIGZpcmVzIG9uY2hhbmdlIGEgc2Vjb25k
IHRpbWUgZm9yIGNoZWNrL3JhZGlvIGFmdGVyIGJsdXIuCgkJCQlpZiAoIHRoaXMu
dHlwZSA9PT0gImNoZWNrYm94IiB8fCB0aGlzLnR5cGUgPT09ICJyYWRpbyIgKSB7
CgkJCQkJalF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgInByb3BlcnR5Y2hhbmdlLl9j
aGFuZ2UiLCBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCQkJCWlmICggZXZlbnQub3Jp
Z2luYWxFdmVudC5wcm9wZXJ0eU5hbWUgPT09ICJjaGVja2VkIiApIHsKCQkJCQkJ
CXRoaXMuX2p1c3RfY2hhbmdlZCA9IHRydWU7CgkJCQkJCX0KCQkJCQl9KTsKCQkJ
CQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlzLCAiY2xpY2suX2NoYW5nZSIsIGZ1bmN0
aW9uKCBldmVudCApIHsKCQkJCQkJaWYgKCB0aGlzLl9qdXN0X2NoYW5nZWQgJiYg
IWV2ZW50LmlzVHJpZ2dlciApIHsKCQkJCQkJCXRoaXMuX2p1c3RfY2hhbmdlZCA9
IGZhbHNlOwoJCQkJCQkJalF1ZXJ5LmV2ZW50LnNpbXVsYXRlKCAiY2hhbmdlIiwg
dGhpcywgZXZlbnQsIHRydWUgKTsKCQkJCQkJfQoJCQkJCX0pOwoJCQkJfQoJCQkJ
cmV0dXJuIGZhbHNlOwoJCQl9CgkJCS8vIERlbGVnYXRlZCBldmVudDsgbGF6eS1h
ZGQgYSBjaGFuZ2UgaGFuZGxlciBvbiBkZXNjZW5kYW50IGlucHV0cwoJCQlqUXVl
cnkuZXZlbnQuYWRkKCB0aGlzLCAiYmVmb3JlYWN0aXZhdGUuX2NoYW5nZSIsIGZ1
bmN0aW9uKCBlICkgewoJCQkJdmFyIGVsZW0gPSBlLnRhcmdldDsKCgkJCQlpZiAo
IHJmb3JtRWxlbXMudGVzdCggZWxlbS5ub2RlTmFtZSApICYmICFlbGVtLl9jaGFu
Z2VfYXR0YWNoZWQgKSB7CgkJCQkJalF1ZXJ5LmV2ZW50LmFkZCggZWxlbSwgImNo
YW5nZS5fY2hhbmdlIiwgZnVuY3Rpb24oIGV2ZW50ICkgewoJCQkJCQlpZiAoIHRo
aXMucGFyZW50Tm9kZSAmJiAhZXZlbnQuaXNTaW11bGF0ZWQgJiYgIWV2ZW50Lmlz
VHJpZ2dlciApIHsKCQkJCQkJCWpRdWVyeS5ldmVudC5zaW11bGF0ZSggImNoYW5n
ZSIsIHRoaXMucGFyZW50Tm9kZSwgZXZlbnQsIHRydWUgKTsKCQkJCQkJfQoJCQkJ
CX0pOwoJCQkJCWVsZW0uX2NoYW5nZV9hdHRhY2hlZCA9IHRydWU7CgkJCQl9CgkJ
CX0pOwoJCX0sCgoJCWhhbmRsZTogZnVuY3Rpb24oIGV2ZW50ICkgewoJCQl2YXIg
ZWxlbSA9IGV2ZW50LnRhcmdldDsKCgkJCS8vIFN3YWxsb3cgbmF0aXZlIGNoYW5n
ZSBldmVudHMgZnJvbSBjaGVja2JveC9yYWRpbywgd2UgYWxyZWFkeSB0cmlnZ2Vy
ZWQgdGhlbSBhYm92ZQoJCQlpZiAoIHRoaXMgIT09IGVsZW0gfHwgZXZlbnQuaXNT
aW11bGF0ZWQgfHwgZXZlbnQuaXNUcmlnZ2VyIHx8IChlbGVtLnR5cGUgIT09ICJy
YWRpbyIgJiYgZWxlbS50eXBlICE9PSAiY2hlY2tib3giKSApIHsKCQkJCXJldHVy
biBldmVudC5oYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJndW1lbnRz
ICk7CgkJCX0KCQl9LAoKCQl0ZWFyZG93bjogZnVuY3Rpb24oKSB7CgkJCWpRdWVy
eS5ldmVudC5yZW1vdmUoIHRoaXMsICIuX2NoYW5nZSIgKTsKCgkJCXJldHVybiBy
Zm9ybUVsZW1zLnRlc3QoIHRoaXMubm9kZU5hbWUgKTsKCQl9Cgl9Owp9CgovLyBD
cmVhdGUgImJ1YmJsaW5nIiBmb2N1cyBhbmQgYmx1ciBldmVudHMKaWYgKCAhalF1
ZXJ5LnN1cHBvcnQuZm9jdXNpbkJ1YmJsZXMgKSB7CglqUXVlcnkuZWFjaCh7IGZv
Y3VzOiAiZm9jdXNpbiIsIGJsdXI6ICJmb2N1c291dCIgfSwgZnVuY3Rpb24oIG9y
aWcsIGZpeCApIHsKCgkJLy8gQXR0YWNoIGEgc2luZ2xlIGNhcHR1cmluZyBoYW5k
bGVyIHdoaWxlIHNvbWVvbmUgd2FudHMgZm9jdXNpbi9mb2N1c291dAoJCXZhciBh
dHRhY2hlcyA9IDAsCgkJCWhhbmRsZXIgPSBmdW5jdGlvbiggZXZlbnQgKSB7CgkJ
CQlqUXVlcnkuZXZlbnQuc2ltdWxhdGUoIGZpeCwgZXZlbnQudGFyZ2V0LCBqUXVl
cnkuZXZlbnQuZml4KCBldmVudCApLCB0cnVlICk7CgkJCX07CgoJCWpRdWVyeS5l
dmVudC5zcGVjaWFsWyBmaXggXSA9IHsKCQkJc2V0dXA6IGZ1bmN0aW9uKCkgewoJ
CQkJaWYgKCBhdHRhY2hlcysrID09PSAwICkgewoJCQkJCWRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTsKCQkJCX0KCQkJfSwK
CQkJdGVhcmRvd246IGZ1bmN0aW9uKCkgewoJCQkJaWYgKCAtLWF0dGFjaGVzID09
PSAwICkgewoJCQkJCWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIG9yaWcs
IGhhbmRsZXIsIHRydWUgKTsKCQkJCX0KCQkJfQoJCX07Cgl9KTsKfQoKalF1ZXJ5
LmZuLmV4dGVuZCh7CgoJb246IGZ1bmN0aW9uKCB0eXBlcywgc2VsZWN0b3IsIGRh
dGEsIGZuLCAvKklOVEVSTkFMKi8gb25lICkgewoJCXZhciBvcmlnRm4sIHR5cGU7
CgoJCS8vIFR5cGVzIGNhbiBiZSBhIG1hcCBvZiB0eXBlcy9oYW5kbGVycwoJCWlm
ICggdHlwZW9mIHR5cGVzID09PSAib2JqZWN0IiApIHsKCQkJLy8gKCB0eXBlcy1P
YmplY3QsIHNlbGVjdG9yLCBkYXRhICkKCQkJaWYgKCB0eXBlb2Ygc2VsZWN0b3Ig
IT09ICJzdHJpbmciICkgeyAvLyAmJiBzZWxlY3RvciAhPSBudWxsCgkJCQkvLyAo
IHR5cGVzLU9iamVjdCwgZGF0YSApCgkJCQlkYXRhID0gZGF0YSB8fCBzZWxlY3Rv
cjsKCQkJCXNlbGVjdG9yID0gdW5kZWZpbmVkOwoJCQl9CgkJCWZvciAoIHR5cGUg
aW4gdHlwZXMgKSB7CgkJCQl0aGlzLm9uKCB0eXBlLCBzZWxlY3RvciwgZGF0YSwg
dHlwZXNbIHR5cGUgXSwgb25lICk7CgkJCX0KCQkJcmV0dXJuIHRoaXM7CgkJfQoK
CQlpZiAoIGRhdGEgPT0gbnVsbCAmJiBmbiA9PSBudWxsICkgewoJCQkvLyAoIHR5
cGVzLCBmbiApCgkJCWZuID0gc2VsZWN0b3I7CgkJCWRhdGEgPSBzZWxlY3RvciA9
IHVuZGVmaW5lZDsKCQl9IGVsc2UgaWYgKCBmbiA9PSBudWxsICkgewoJCQlpZiAo
IHR5cGVvZiBzZWxlY3RvciA9PT0gInN0cmluZyIgKSB7CgkJCQkvLyAoIHR5cGVz
LCBzZWxlY3RvciwgZm4gKQoJCQkJZm4gPSBkYXRhOwoJCQkJZGF0YSA9IHVuZGVm
aW5lZDsKCQkJfSBlbHNlIHsKCQkJCS8vICggdHlwZXMsIGRhdGEsIGZuICkKCQkJ
CWZuID0gZGF0YTsKCQkJCWRhdGEgPSBzZWxlY3RvcjsKCQkJCXNlbGVjdG9yID0g
dW5kZWZpbmVkOwoJCQl9CgkJfQoJCWlmICggZm4gPT09IGZhbHNlICkgewoJCQlm
biA9IHJldHVybkZhbHNlOwoJCX0gZWxzZSBpZiAoICFmbiApIHsKCQkJcmV0dXJu
IHRoaXM7CgkJfQoKCQlpZiAoIG9uZSA9PT0gMSApIHsKCQkJb3JpZ0ZuID0gZm47
CgkJCWZuID0gZnVuY3Rpb24oIGV2ZW50ICkgewoJCQkJLy8gQ2FuIHVzZSBhbiBl
bXB0eSBzZXQsIHNpbmNlIGV2ZW50IGNvbnRhaW5zIHRoZSBpbmZvCgkJCQlqUXVl
cnkoKS5vZmYoIGV2ZW50ICk7CgkJCQlyZXR1cm4gb3JpZ0ZuLmFwcGx5KCB0aGlz
LCBhcmd1bWVudHMgKTsKCQkJfTsKCQkJLy8gVXNlIHNhbWUgZ3VpZCBzbyBjYWxs
ZXIgY2FuIHJlbW92ZSB1c2luZyBvcmlnRm4KCQkJZm4uZ3VpZCA9IG9yaWdGbi5n
dWlkIHx8ICggb3JpZ0ZuLmd1aWQgPSBqUXVlcnkuZ3VpZCsrICk7CgkJfQoJCXJl
dHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkgewoJCQlqUXVlcnkuZXZlbnQuYWRk
KCB0aGlzLCB0eXBlcywgZm4sIGRhdGEsIHNlbGVjdG9yICk7CgkJfSk7Cgl9LAoJ
b25lOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApIHsKCQly
ZXR1cm4gdGhpcy5vbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiwgMSApOwoJ
fSwKCW9mZjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZm4gKSB7CgkJaWYg
KCB0eXBlcyAmJiB0eXBlcy5wcmV2ZW50RGVmYXVsdCAmJiB0eXBlcy5oYW5kbGVP
YmogKSB7CgkJCS8vICggZXZlbnQgKSAgZGlzcGF0Y2hlZCBqUXVlcnkuRXZlbnQK
CQkJdmFyIGhhbmRsZU9iaiA9IHR5cGVzLmhhbmRsZU9iajsKCQkJalF1ZXJ5KCB0
eXBlcy5kZWxlZ2F0ZVRhcmdldCApLm9mZigKCQkJCWhhbmRsZU9iai5uYW1lc3Bh
Y2UgPyBoYW5kbGVPYmoub3JpZ1R5cGUgKyAiLiIgKyBoYW5kbGVPYmoubmFtZXNw
YWNlIDogaGFuZGxlT2JqLm9yaWdUeXBlLAoJCQkJaGFuZGxlT2JqLnNlbGVjdG9y
LAoJCQkJaGFuZGxlT2JqLmhhbmRsZXIKCQkJKTsKCQkJcmV0dXJuIHRoaXM7CgkJ
fQoJCWlmICggdHlwZW9mIHR5cGVzID09PSAib2JqZWN0IiApIHsKCQkJLy8gKCB0
eXBlcy1vYmplY3QgWywgc2VsZWN0b3JdICkKCQkJZm9yICggdmFyIHR5cGUgaW4g
dHlwZXMgKSB7CgkJCQl0aGlzLm9mZiggdHlwZSwgc2VsZWN0b3IsIHR5cGVzWyB0
eXBlIF0gKTsKCQkJfQoJCQlyZXR1cm4gdGhpczsKCQl9CgkJaWYgKCBzZWxlY3Rv
ciA9PT0gZmFsc2UgfHwgdHlwZW9mIHNlbGVjdG9yID09PSAiZnVuY3Rpb24iICkg
ewoJCQkvLyAoIHR5cGVzIFssIGZuXSApCgkJCWZuID0gc2VsZWN0b3I7CgkJCXNl
bGVjdG9yID0gdW5kZWZpbmVkOwoJCX0KCQlpZiAoIGZuID09PSBmYWxzZSApIHsK
CQkJZm4gPSByZXR1cm5GYWxzZTsKCQl9CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5j
dGlvbigpIHsKCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgdHlwZXMsIGZu
LCBzZWxlY3RvciApOwoJCX0pOwoJfSwKCgliaW5kOiBmdW5jdGlvbiggdHlwZXMs
IGRhdGEsIGZuICkgewoJCXJldHVybiB0aGlzLm9uKCB0eXBlcywgbnVsbCwgZGF0
YSwgZm4gKTsKCX0sCgl1bmJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZm4gKSB7CgkJ
cmV0dXJuIHRoaXMub2ZmKCB0eXBlcywgbnVsbCwgZm4gKTsKCX0sCgoJbGl2ZTog
ZnVuY3Rpb24oIHR5cGVzLCBkYXRhLCBmbiApIHsKCQlqUXVlcnkoIHRoaXMuY29u
dGV4dCApLm9uKCB0eXBlcywgdGhpcy5zZWxlY3RvciwgZGF0YSwgZm4gKTsKCQly
ZXR1cm4gdGhpczsKCX0sCglkaWU6IGZ1bmN0aW9uKCB0eXBlcywgZm4gKSB7CgkJ
alF1ZXJ5KCB0aGlzLmNvbnRleHQgKS5vZmYoIHR5cGVzLCB0aGlzLnNlbGVjdG9y
IHx8ICIqKiIsIGZuICk7CgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWRlbGVnYXRlOiBm
dW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBkYXRhLCBmbiApIHsKCQlyZXR1cm4g
dGhpcy5vbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApOwoJfSwKCXVuZGVs
ZWdhdGU6IGZ1bmN0aW9uKCBzZWxlY3RvciwgdHlwZXMsIGZuICkgewoJCS8vICgg
bmFtZXNwYWNlICkgb3IgKCBzZWxlY3RvciwgdHlwZXMgWywgZm5dICkKCQlyZXR1
cm4gYXJndW1lbnRzLmxlbmd0aCA9PSAxPyB0aGlzLm9mZiggc2VsZWN0b3IsICIq
KiIgKSA6IHRoaXMub2ZmKCB0eXBlcywgc2VsZWN0b3IsIGZuICk7Cgl9LAoKCXRy
aWdnZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkgewoJCXJldHVybiB0aGlzLmVh
Y2goZnVuY3Rpb24oKSB7CgkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCB0eXBlLCBk
YXRhLCB0aGlzICk7CgkJfSk7Cgl9LAoJdHJpZ2dlckhhbmRsZXI6IGZ1bmN0aW9u
KCB0eXBlLCBkYXRhICkgewoJCWlmICggdGhpc1swXSApIHsKCQkJcmV0dXJuIGpR
dWVyeS5ldmVudC50cmlnZ2VyKCB0eXBlLCBkYXRhLCB0aGlzWzBdLCB0cnVlICk7
CgkJfQoJfSwKCgl0b2dnbGU6IGZ1bmN0aW9uKCBmbiApIHsKCQkvLyBTYXZlIHJl
ZmVyZW5jZSB0byBhcmd1bWVudHMgZm9yIGFjY2VzcyBpbiBjbG9zdXJlCgkJdmFy
IGFyZ3MgPSBhcmd1bWVudHMsCgkJCWd1aWQgPSBmbi5ndWlkIHx8IGpRdWVyeS5n
dWlkKyssCgkJCWkgPSAwLAoJCQl0b2dnbGVyID0gZnVuY3Rpb24oIGV2ZW50ICkg
ewoJCQkJLy8gRmlndXJlIG91dCB3aGljaCBmdW5jdGlvbiB0byBleGVjdXRlCgkJ
CQl2YXIgbGFzdFRvZ2dsZSA9ICggalF1ZXJ5Ll9kYXRhKCB0aGlzLCAibGFzdFRv
Z2dsZSIgKyBmbi5ndWlkICkgfHwgMCApICUgaTsKCQkJCWpRdWVyeS5fZGF0YSgg
dGhpcywgImxhc3RUb2dnbGUiICsgZm4uZ3VpZCwgbGFzdFRvZ2dsZSArIDEgKTsK
CgkJCQkvLyBNYWtlIHN1cmUgdGhhdCBjbGlja3Mgc3RvcAoJCQkJZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKCgkJCQkvLyBhbmQgZXhlY3V0ZSB0aGUgZnVuY3Rpb24K
CQkJCXJldHVybiBhcmdzWyBsYXN0VG9nZ2xlIF0uYXBwbHkoIHRoaXMsIGFyZ3Vt
ZW50cyApIHx8IGZhbHNlOwoJCQl9OwoKCQkvLyBsaW5rIGFsbCB0aGUgZnVuY3Rp
b25zLCBzbyBhbnkgb2YgdGhlbSBjYW4gdW5iaW5kIHRoaXMgY2xpY2sgaGFuZGxl
cgoJCXRvZ2dsZXIuZ3VpZCA9IGd1aWQ7CgkJd2hpbGUgKCBpIDwgYXJncy5sZW5n
dGggKSB7CgkJCWFyZ3NbIGkrKyBdLmd1aWQgPSBndWlkOwoJCX0KCgkJcmV0dXJu
IHRoaXMuY2xpY2soIHRvZ2dsZXIgKTsKCX0sCgoJaG92ZXI6IGZ1bmN0aW9uKCBm
bk92ZXIsIGZuT3V0ICkgewoJCXJldHVybiB0aGlzLm1vdXNlZW50ZXIoIGZuT3Zl
ciApLm1vdXNlbGVhdmUoIGZuT3V0IHx8IGZuT3ZlciApOwoJfQp9KTsKCmpRdWVy
eS5lYWNoKCAoImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6
ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrICIgKwoJIm1vdXNlZG93biBt
b3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBt
b3VzZWxlYXZlICIgKwoJImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5
cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnUiKS5zcGxpdCgiICIpLCBmdW5j
dGlvbiggaSwgbmFtZSApIHsKCgkvLyBIYW5kbGUgZXZlbnQgYmluZGluZwoJalF1
ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggZGF0YSwgZm4gKSB7CgkJaWYgKCBm
biA9PSBudWxsICkgewoJCQlmbiA9IGRhdGE7CgkJCWRhdGEgPSBudWxsOwoJCX0K
CgkJcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAwID8KCQkJdGhpcy5vbiggbmFt
ZSwgbnVsbCwgZGF0YSwgZm4gKSA6CgkJCXRoaXMudHJpZ2dlciggbmFtZSApOwoJ
fTsKCglpZiAoIGpRdWVyeS5hdHRyRm4gKSB7CgkJalF1ZXJ5LmF0dHJGblsgbmFt
ZSBdID0gdHJ1ZTsKCX0KCglpZiAoIHJrZXlFdmVudC50ZXN0KCBuYW1lICkgKSB7
CgkJalF1ZXJ5LmV2ZW50LmZpeEhvb2tzWyBuYW1lIF0gPSBqUXVlcnkuZXZlbnQu
a2V5SG9va3M7Cgl9CgoJaWYgKCBybW91c2VFdmVudC50ZXN0KCBuYW1lICkgKSB7
CgkJalF1ZXJ5LmV2ZW50LmZpeEhvb2tzWyBuYW1lIF0gPSBqUXVlcnkuZXZlbnQu
bW91c2VIb29rczsKCX0KfSk7CgoKCi8qIQogKiBTaXp6bGUgQ1NTIFNlbGVjdG9y
IEVuZ2luZQogKiAgQ29weXJpZ2h0IDIwMTEsIFRoZSBEb2pvIEZvdW5kYXRpb24K
ICogIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNl
cy4KICogIE1vcmUgaW5mb3JtYXRpb246IGh0dHA6Ly9zaXp6bGVqcy5jb20vCiAq
LwooZnVuY3Rpb24oKXsKCnZhciBjaHVua2VyID0gLygoPzpcKCg/OlwoW14oKV0r
XCl8W14oKV0rKStcKXxcWyg/OlxbW15cW1xdXSpcXXxbJyJdW14nIl0qWyciXXxb
XlxbXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxz
Kik/KCg/Oi58XHJ8XG4pKikvZywKCWV4cGFuZG8gPSAic2l6Y2FjaGUiICsgKE1h
dGgucmFuZG9tKCkgKyAnJykucmVwbGFjZSgnLicsICcnKSwKCWRvbmUgPSAwLAoJ
dG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLAoJaGFzRHVwbGlj
YXRlID0gZmFsc2UsCgliYXNlSGFzRHVwbGljYXRlID0gdHJ1ZSwKCXJCYWNrc2xh
c2ggPSAvXFwvZywKCXJSZXR1cm4gPSAvXHJcbi9nLAoJck5vbldvcmQgPSAvXFcv
OwoKLy8gSGVyZSB3ZSBjaGVjayBpZiB0aGUgSmF2YVNjcmlwdCBlbmdpbmUgaXMg
dXNpbmcgc29tZSBzb3J0IG9mCi8vIG9wdGltaXphdGlvbiB3aGVyZSBpdCBkb2Vz
IG5vdCBhbHdheXMgY2FsbCBvdXIgY29tcGFyaXNpb24KLy8gZnVuY3Rpb24uIElm
IHRoYXQgaXMgdGhlIGNhc2UsIGRpc2NhcmQgdGhlIGhhc0R1cGxpY2F0ZSB2YWx1
ZS4KLy8gICBUaHVzIGZhciB0aGF0IGluY2x1ZGVzIEdvb2dsZSBDaHJvbWUuClsw
LCAwXS5zb3J0KGZ1bmN0aW9uKCkgewoJYmFzZUhhc0R1cGxpY2F0ZSA9IGZhbHNl
OwoJcmV0dXJuIDA7Cn0pOwoKdmFyIFNpenpsZSA9IGZ1bmN0aW9uKCBzZWxlY3Rv
ciwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApIHsKCXJlc3VsdHMgPSByZXN1bHRz
IHx8IFtdOwoJY29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7CgoJdmFyIG9y
aWdDb250ZXh0ID0gY29udGV4dDsKCglpZiAoIGNvbnRleHQubm9kZVR5cGUgIT09
IDEgJiYgY29udGV4dC5ub2RlVHlwZSAhPT0gOSApIHsKCQlyZXR1cm4gW107Cgl9
CgoJaWYgKCAhc2VsZWN0b3IgfHwgdHlwZW9mIHNlbGVjdG9yICE9PSAic3RyaW5n
IiApIHsKCQlyZXR1cm4gcmVzdWx0czsKCX0KCgl2YXIgbSwgc2V0LCBjaGVja1Nl
dCwgZXh0cmEsIHJldCwgY3VyLCBwb3AsIGksCgkJcHJ1bmUgPSB0cnVlLAoJCWNv
bnRleHRYTUwgPSBTaXp6bGUuaXNYTUwoIGNvbnRleHQgKSwKCQlwYXJ0cyA9IFtd
LAoJCXNvRmFyID0gc2VsZWN0b3I7CgoJLy8gUmVzZXQgdGhlIHBvc2l0aW9uIG9m
IHRoZSBjaHVua2VyIHJlZ2V4cCAoc3RhcnQgZnJvbSBoZWFkKQoJZG8gewoJCWNo
dW5rZXIuZXhlYyggIiIgKTsKCQltID0gY2h1bmtlci5leGVjKCBzb0ZhciApOwoK
CQlpZiAoIG0gKSB7CgkJCXNvRmFyID0gbVszXTsKCgkJCXBhcnRzLnB1c2goIG1b
MV0gKTsKCgkJCWlmICggbVsyXSApIHsKCQkJCWV4dHJhID0gbVszXTsKCQkJCWJy
ZWFrOwoJCQl9CgkJfQoJfSB3aGlsZSAoIG0gKTsKCglpZiAoIHBhcnRzLmxlbmd0
aCA+IDEgJiYgb3JpZ1BPUy5leGVjKCBzZWxlY3RvciApICkgewoKCQlpZiAoIHBh
cnRzLmxlbmd0aCA9PT0gMiAmJiBFeHByLnJlbGF0aXZlWyBwYXJ0c1swXSBdICkg
ewoJCQlzZXQgPSBwb3NQcm9jZXNzKCBwYXJ0c1swXSArIHBhcnRzWzFdLCBjb250
ZXh0LCBzZWVkICk7CgoJCX0gZWxzZSB7CgkJCXNldCA9IEV4cHIucmVsYXRpdmVb
IHBhcnRzWzBdIF0gPwoJCQkJWyBjb250ZXh0IF0gOgoJCQkJU2l6emxlKCBwYXJ0
cy5zaGlmdCgpLCBjb250ZXh0ICk7CgoJCQl3aGlsZSAoIHBhcnRzLmxlbmd0aCAp
IHsKCQkJCXNlbGVjdG9yID0gcGFydHMuc2hpZnQoKTsKCgkJCQlpZiAoIEV4cHIu
cmVsYXRpdmVbIHNlbGVjdG9yIF0gKSB7CgkJCQkJc2VsZWN0b3IgKz0gcGFydHMu
c2hpZnQoKTsKCQkJCX0KCgkJCQlzZXQgPSBwb3NQcm9jZXNzKCBzZWxlY3Rvciwg
c2V0LCBzZWVkICk7CgkJCX0KCQl9CgoJfSBlbHNlIHsKCQkvLyBUYWtlIGEgc2hv
cnRjdXQgYW5kIHNldCB0aGUgY29udGV4dCBpZiB0aGUgcm9vdCBzZWxlY3RvciBp
cyBhbiBJRAoJCS8vIChidXQgbm90IGlmIGl0J2xsIGJlIGZhc3RlciBpZiB0aGUg
aW5uZXIgc2VsZWN0b3IgaXMgYW4gSUQpCgkJaWYgKCAhc2VlZCAmJiBwYXJ0cy5s
ZW5ndGggPiAxICYmIGNvbnRleHQubm9kZVR5cGUgPT09IDkgJiYgIWNvbnRleHRY
TUwgJiYKCQkJCUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1swXSkgJiYgIUV4cHIu
bWF0Y2guSUQudGVzdChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSkgKSB7CgoJCQly
ZXQgPSBTaXp6bGUuZmluZCggcGFydHMuc2hpZnQoKSwgY29udGV4dCwgY29udGV4
dFhNTCApOwoJCQljb250ZXh0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRl
ciggcmV0LmV4cHIsIHJldC5zZXQgKVswXSA6CgkJCQlyZXQuc2V0WzBdOwoJCX0K
CgkJaWYgKCBjb250ZXh0ICkgewoJCQlyZXQgPSBzZWVkID8KCQkJCXsgZXhwcjog
cGFydHMucG9wKCksIHNldDogbWFrZUFycmF5KHNlZWQpIH0gOgoJCQkJU2l6emxl
LmZpbmQoIHBhcnRzLnBvcCgpLCBwYXJ0cy5sZW5ndGggPT09IDEgJiYgKHBhcnRz
WzBdID09PSAifiIgfHwgcGFydHNbMF0gPT09ICIrIikgJiYgY29udGV4dC5wYXJl
bnROb2RlID8gY29udGV4dC5wYXJlbnROb2RlIDogY29udGV4dCwgY29udGV4dFhN
TCApOwoKCQkJc2V0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRlciggcmV0
LmV4cHIsIHJldC5zZXQgKSA6CgkJCQlyZXQuc2V0OwoKCQkJaWYgKCBwYXJ0cy5s
ZW5ndGggPiAwICkgewoJCQkJY2hlY2tTZXQgPSBtYWtlQXJyYXkoIHNldCApOwoK
CQkJfSBlbHNlIHsKCQkJCXBydW5lID0gZmFsc2U7CgkJCX0KCgkJCXdoaWxlICgg
cGFydHMubGVuZ3RoICkgewoJCQkJY3VyID0gcGFydHMucG9wKCk7CgkJCQlwb3Ag
PSBjdXI7CgoJCQkJaWYgKCAhRXhwci5yZWxhdGl2ZVsgY3VyIF0gKSB7CgkJCQkJ
Y3VyID0gIiI7CgkJCQl9IGVsc2UgewoJCQkJCXBvcCA9IHBhcnRzLnBvcCgpOwoJ
CQkJfQoKCQkJCWlmICggcG9wID09IG51bGwgKSB7CgkJCQkJcG9wID0gY29udGV4
dDsKCQkJCX0KCgkJCQlFeHByLnJlbGF0aXZlWyBjdXIgXSggY2hlY2tTZXQsIHBv
cCwgY29udGV4dFhNTCApOwoJCQl9CgoJCX0gZWxzZSB7CgkJCWNoZWNrU2V0ID0g
cGFydHMgPSBbXTsKCQl9Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJY2hlY2tT
ZXQgPSBzZXQ7Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJU2l6emxlLmVycm9y
KCBjdXIgfHwgc2VsZWN0b3IgKTsKCX0KCglpZiAoIHRvU3RyaW5nLmNhbGwoY2hl
Y2tTZXQpID09PSAiW29iamVjdCBBcnJheV0iICkgewoJCWlmICggIXBydW5lICkg
ewoJCQlyZXN1bHRzLnB1c2guYXBwbHkoIHJlc3VsdHMsIGNoZWNrU2V0ICk7CgoJ
CX0gZWxzZSBpZiAoIGNvbnRleHQgJiYgY29udGV4dC5ub2RlVHlwZSA9PT0gMSAp
IHsKCQkJZm9yICggaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsK
CQkJCWlmICggY2hlY2tTZXRbaV0gJiYgKGNoZWNrU2V0W2ldID09PSB0cnVlIHx8
IGNoZWNrU2V0W2ldLm5vZGVUeXBlID09PSAxICYmIFNpenpsZS5jb250YWlucyhj
b250ZXh0LCBjaGVja1NldFtpXSkpICkgewoJCQkJCXJlc3VsdHMucHVzaCggc2V0
W2ldICk7CgkJCQl9CgkJCX0KCgkJfSBlbHNlIHsKCQkJZm9yICggaSA9IDA7IGNo
ZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggY2hlY2tTZXRbaV0g
JiYgY2hlY2tTZXRbaV0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJcmVzdWx0cy5w
dXNoKCBzZXRbaV0gKTsKCQkJCX0KCQkJfQoJCX0KCgl9IGVsc2UgewoJCW1ha2VB
cnJheSggY2hlY2tTZXQsIHJlc3VsdHMgKTsKCX0KCglpZiAoIGV4dHJhICkgewoJ
CVNpenpsZSggZXh0cmEsIG9yaWdDb250ZXh0LCByZXN1bHRzLCBzZWVkICk7CgkJ
U2l6emxlLnVuaXF1ZVNvcnQoIHJlc3VsdHMgKTsKCX0KCglyZXR1cm4gcmVzdWx0
czsKfTsKClNpenpsZS51bmlxdWVTb3J0ID0gZnVuY3Rpb24oIHJlc3VsdHMgKSB7
CglpZiAoIHNvcnRPcmRlciApIHsKCQloYXNEdXBsaWNhdGUgPSBiYXNlSGFzRHVw
bGljYXRlOwoJCXJlc3VsdHMuc29ydCggc29ydE9yZGVyICk7CgoJCWlmICggaGFz
RHVwbGljYXRlICkgewoJCQlmb3IgKCB2YXIgaSA9IDE7IGkgPCByZXN1bHRzLmxl
bmd0aDsgaSsrICkgewoJCQkJaWYgKCByZXN1bHRzW2ldID09PSByZXN1bHRzWyBp
IC0gMSBdICkgewoJCQkJCXJlc3VsdHMuc3BsaWNlKCBpLS0sIDEgKTsKCQkJCX0K
CQkJfQoJCX0KCX0KCglyZXR1cm4gcmVzdWx0czsKfTsKClNpenpsZS5tYXRjaGVz
ID0gZnVuY3Rpb24oIGV4cHIsIHNldCApIHsKCXJldHVybiBTaXp6bGUoIGV4cHIs
IG51bGwsIG51bGwsIHNldCApOwp9OwoKU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9
IGZ1bmN0aW9uKCBub2RlLCBleHByICkgewoJcmV0dXJuIFNpenpsZSggZXhwciwg
bnVsbCwgbnVsbCwgW25vZGVdICkubGVuZ3RoID4gMDsKfTsKClNpenpsZS5maW5k
ID0gZnVuY3Rpb24oIGV4cHIsIGNvbnRleHQsIGlzWE1MICkgewoJdmFyIHNldCwg
aSwgbGVuLCBtYXRjaCwgdHlwZSwgbGVmdDsKCglpZiAoICFleHByICkgewoJCXJl
dHVybiBbXTsKCX0KCglmb3IgKCBpID0gMCwgbGVuID0gRXhwci5vcmRlci5sZW5n
dGg7IGkgPCBsZW47IGkrKyApIHsKCQl0eXBlID0gRXhwci5vcmRlcltpXTsKCgkJ
aWYgKCAobWF0Y2ggPSBFeHByLmxlZnRNYXRjaFsgdHlwZSBdLmV4ZWMoIGV4cHIg
KSkgKSB7CgkJCWxlZnQgPSBtYXRjaFsxXTsKCQkJbWF0Y2guc3BsaWNlKCAxLCAx
ICk7CgoJCQlpZiAoIGxlZnQuc3Vic3RyKCBsZWZ0Lmxlbmd0aCAtIDEgKSAhPT0g
IlxcIiApIHsKCQkJCW1hdGNoWzFdID0gKG1hdGNoWzFdIHx8ICIiKS5yZXBsYWNl
KCByQmFja3NsYXNoLCAiIiApOwoJCQkJc2V0ID0gRXhwci5maW5kWyB0eXBlIF0o
IG1hdGNoLCBjb250ZXh0LCBpc1hNTCApOwoKCQkJCWlmICggc2V0ICE9IG51bGwg
KSB7CgkJCQkJZXhwciA9IGV4cHIucmVwbGFjZSggRXhwci5tYXRjaFsgdHlwZSBd
LCAiIiApOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoJfQoKCWlmICggIXNl
dCApIHsKCQlzZXQgPSB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSAhPT0gInVuZGVmaW5lZCIgPwoJCQljb250ZXh0LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCAiKiIgKSA6CgkJCVtdOwoJfQoKCXJldHVybiB7IHNldDogc2V0LCBleHBy
OiBleHByIH07Cn07CgpTaXp6bGUuZmlsdGVyID0gZnVuY3Rpb24oIGV4cHIsIHNl
dCwgaW5wbGFjZSwgbm90ICkgewoJdmFyIG1hdGNoLCBhbnlGb3VuZCwKCQl0eXBl
LCBmb3VuZCwgaXRlbSwgZmlsdGVyLCBsZWZ0LAoJCWksIHBhc3MsCgkJb2xkID0g
ZXhwciwKCQlyZXN1bHQgPSBbXSwKCQljdXJMb29wID0gc2V0LAoJCWlzWE1MRmls
dGVyID0gc2V0ICYmIHNldFswXSAmJiBTaXp6bGUuaXNYTUwoIHNldFswXSApOwoK
CXdoaWxlICggZXhwciAmJiBzZXQubGVuZ3RoICkgewoJCWZvciAoIHR5cGUgaW4g
RXhwci5maWx0ZXIgKSB7CgkJCWlmICggKG1hdGNoID0gRXhwci5sZWZ0TWF0Y2hb
IHR5cGUgXS5leGVjKCBleHByICkpICE9IG51bGwgJiYgbWF0Y2hbMl0gKSB7CgkJ
CQlmaWx0ZXIgPSBFeHByLmZpbHRlclsgdHlwZSBdOwoJCQkJbGVmdCA9IG1hdGNo
WzFdOwoKCQkJCWFueUZvdW5kID0gZmFsc2U7CgoJCQkJbWF0Y2guc3BsaWNlKDEs
MSk7CgoJCQkJaWYgKCBsZWZ0LnN1YnN0ciggbGVmdC5sZW5ndGggLSAxICkgPT09
ICJcXCIgKSB7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJaWYgKCBjdXJMb29w
ID09PSByZXN1bHQgKSB7CgkJCQkJcmVzdWx0ID0gW107CgkJCQl9CgoJCQkJaWYg
KCBFeHByLnByZUZpbHRlclsgdHlwZSBdICkgewoJCQkJCW1hdGNoID0gRXhwci5w
cmVGaWx0ZXJbIHR5cGUgXSggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3Vs
dCwgbm90LCBpc1hNTEZpbHRlciApOwoKCQkJCQlpZiAoICFtYXRjaCApIHsKCQkJ
CQkJYW55Rm91bmQgPSBmb3VuZCA9IHRydWU7CgoJCQkJCX0gZWxzZSBpZiAoIG1h
dGNoID09PSB0cnVlICkgewoJCQkJCQljb250aW51ZTsKCQkJCQl9CgkJCQl9CgoJ
CQkJaWYgKCBtYXRjaCApIHsKCQkJCQlmb3IgKCBpID0gMDsgKGl0ZW0gPSBjdXJM
b29wW2ldKSAhPSBudWxsOyBpKysgKSB7CgkJCQkJCWlmICggaXRlbSApIHsKCQkJ
CQkJCWZvdW5kID0gZmlsdGVyKCBpdGVtLCBtYXRjaCwgaSwgY3VyTG9vcCApOwoJ
CQkJCQkJcGFzcyA9IG5vdCBeIGZvdW5kOwoKCQkJCQkJCWlmICggaW5wbGFjZSAm
JiBmb3VuZCAhPSBudWxsICkgewoJCQkJCQkJCWlmICggcGFzcyApIHsKCQkJCQkJ
CQkJYW55Rm91bmQgPSB0cnVlOwoKCQkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCQlj
dXJMb29wW2ldID0gZmFsc2U7CgkJCQkJCQkJfQoKCQkJCQkJCX0gZWxzZSBpZiAo
IHBhc3MgKSB7CgkJCQkJCQkJcmVzdWx0LnB1c2goIGl0ZW0gKTsKCQkJCQkJCQlh
bnlGb3VuZCA9IHRydWU7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgoJ
CQkJaWYgKCBmb3VuZCAhPT0gdW5kZWZpbmVkICkgewoJCQkJCWlmICggIWlucGxh
Y2UgKSB7CgkJCQkJCWN1ckxvb3AgPSByZXN1bHQ7CgkJCQkJfQoKCQkJCQlleHBy
ID0gZXhwci5yZXBsYWNlKCBFeHByLm1hdGNoWyB0eXBlIF0sICIiICk7CgoJCQkJ
CWlmICggIWFueUZvdW5kICkgewoJCQkJCQlyZXR1cm4gW107CgkJCQkJfQoKCQkJ
CQlicmVhazsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gSW1wcm9wZXIgZXhwcmVzc2lv
bgoJCWlmICggZXhwciA9PT0gb2xkICkgewoJCQlpZiAoIGFueUZvdW5kID09IG51
bGwgKSB7CgkJCQlTaXp6bGUuZXJyb3IoIGV4cHIgKTsKCgkJCX0gZWxzZSB7CgkJ
CQlicmVhazsKCQkJfQoJCX0KCgkJb2xkID0gZXhwcjsKCX0KCglyZXR1cm4gY3Vy
TG9vcDsKfTsKClNpenpsZS5lcnJvciA9IGZ1bmN0aW9uKCBtc2cgKSB7Cgl0aHJv
dyBuZXcgRXJyb3IoICJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNz
aW9uOiAiICsgbXNnICk7Cn07CgovKioKICogVXRpbGl0eSBmdW5jdGlvbiBmb3Ig
cmV0cmVpdmluZyB0aGUgdGV4dCB2YWx1ZSBvZiBhbiBhcnJheSBvZiBET00gbm9k
ZXMKICogQHBhcmFtIHtBcnJheXxFbGVtZW50fSBlbGVtCiAqLwp2YXIgZ2V0VGV4
dCA9IFNpenpsZS5nZXRUZXh0ID0gZnVuY3Rpb24oIGVsZW0gKSB7CiAgICB2YXIg
aSwgbm9kZSwKCQlub2RlVHlwZSA9IGVsZW0ubm9kZVR5cGUsCgkJcmV0ID0gIiI7
CgoJaWYgKCBub2RlVHlwZSApIHsKCQlpZiAoIG5vZGVUeXBlID09PSAxIHx8IG5v
ZGVUeXBlID09PSA5IHx8IG5vZGVUeXBlID09PSAxMSApIHsKCQkJLy8gVXNlIHRl
eHRDb250ZW50IHx8IGlubmVyVGV4dCBmb3IgZWxlbWVudHMKCQkJaWYgKCB0eXBl
b2YgZWxlbS50ZXh0Q29udGVudCA9PT0gJ3N0cmluZycgKSB7CgkJCQlyZXR1cm4g
ZWxlbS50ZXh0Q29udGVudDsKCQkJfSBlbHNlIGlmICggdHlwZW9mIGVsZW0uaW5u
ZXJUZXh0ID09PSAnc3RyaW5nJyApIHsKCQkJCS8vIFJlcGxhY2UgSUUncyBjYXJy
aWFnZSByZXR1cm5zCgkJCQlyZXR1cm4gZWxlbS5pbm5lclRleHQucmVwbGFjZSgg
clJldHVybiwgJycgKTsKCQkJfSBlbHNlIHsKCQkJCS8vIFRyYXZlcnNlIGl0J3Mg
Y2hpbGRyZW4KCQkJCWZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07
IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nKSB7CgkJCQkJcmV0ICs9IGdldFRleHQo
IGVsZW0gKTsKCQkJCX0KCQkJfQoJCX0gZWxzZSBpZiAoIG5vZGVUeXBlID09PSAz
IHx8IG5vZGVUeXBlID09PSA0ICkgewoJCQlyZXR1cm4gZWxlbS5ub2RlVmFsdWU7
CgkJfQoJfSBlbHNlIHsKCgkJLy8gSWYgbm8gbm9kZVR5cGUsIHRoaXMgaXMgZXhw
ZWN0ZWQgdG8gYmUgYW4gYXJyYXkKCQlmb3IgKCBpID0gMDsgKG5vZGUgPSBlbGVt
W2ldKTsgaSsrICkgewoJCQkvLyBEbyBub3QgdHJhdmVyc2UgY29tbWVudCBub2Rl
cwoJCQlpZiAoIG5vZGUubm9kZVR5cGUgIT09IDggKSB7CgkJCQlyZXQgKz0gZ2V0
VGV4dCggbm9kZSApOwoJCQl9CgkJfQoJfQoJcmV0dXJuIHJldDsKfTsKCnZhciBF
eHByID0gU2l6emxlLnNlbGVjdG9ycyA9IHsKCW9yZGVyOiBbICJJRCIsICJOQU1F
IiwgIlRBRyIgXSwKCgltYXRjaDogewoJCUlEOiAvIygoPzpbXHdcdTAwYzAtXHVG
RkZGXC1dfFxcLikrKS8sCgkJQ0xBU1M6IC9cLigoPzpbXHdcdTAwYzAtXHVGRkZG
XC1dfFxcLikrKS8sCgkJTkFNRTogL1xbbmFtZT1bJyJdKigoPzpbXHdcdTAwYzAt
XHVGRkZGXC1dfFxcLikrKVsnIl0qXF0vLAoJCUFUVFI6IC9cW1xzKigoPzpbXHdc
dTAwYzAtXHVGRkZGXC1dfFxcLikrKVxzKig/OihcUz89KVxzKig/OihbJyJdKSgu
Kj8pXDN8KCM/KD86W1x3XHUwMGMwLVx1RkZGRlwtXXxcXC4pKil8KXwpXHMqXF0v
LAoJCVRBRzogL14oKD86W1x3XHUwMGMwLVx1RkZGRlwqXC1dfFxcLikrKS8sCgkJ
Q0hJTEQ6IC86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XChccyooZXZl
bnxvZGR8KD86WytcLV0/XGQrfCg/OlsrXC1dP1xkKik/blxzKig/OlsrXC1dXHMq
XGQrKT8pKVxzKlwpKT8vLAoJCVBPUzogLzoobnRofGVxfGd0fGx0fGZpcnN0fGxh
c3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwpKT8oPz1bXlwtXXwkKS8sCgkJUFNFVURP
OiAvOigoPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKSg/OlwoKFsnIl0/KSgo
PzpcKFteXCldK1wpfFteXChcKV0qKSspXDJcKSk/LwoJfSwKCglsZWZ0TWF0Y2g6
IHt9LAoKCWF0dHJNYXA6IHsKCQkiY2xhc3MiOiAiY2xhc3NOYW1lIiwKCQkiZm9y
IjogImh0bWxGb3IiCgl9LAoKCWF0dHJIYW5kbGU6IHsKCQlocmVmOiBmdW5jdGlv
biggZWxlbSApIHsKCQkJcmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCAiaHJlZiIg
KTsKCQl9LAoJCXR5cGU6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxl
bS5nZXRBdHRyaWJ1dGUoICJ0eXBlIiApOwoJCX0KCX0sCgoJcmVsYXRpdmU6IHsK
CQkiKyI6IGZ1bmN0aW9uKGNoZWNrU2V0LCBwYXJ0KXsKCQkJdmFyIGlzUGFydFN0
ciA9IHR5cGVvZiBwYXJ0ID09PSAic3RyaW5nIiwKCQkJCWlzVGFnID0gaXNQYXJ0
U3RyICYmICFyTm9uV29yZC50ZXN0KCBwYXJ0ICksCgkJCQlpc1BhcnRTdHJOb3RU
YWcgPSBpc1BhcnRTdHIgJiYgIWlzVGFnOwoKCQkJaWYgKCBpc1RhZyApIHsKCQkJ
CXBhcnQgPSBwYXJ0LnRvTG93ZXJDYXNlKCk7CgkJCX0KCgkJCWZvciAoIHZhciBp
ID0gMCwgbCA9IGNoZWNrU2V0Lmxlbmd0aCwgZWxlbTsgaSA8IGw7IGkrKyApIHsK
CQkJCWlmICggKGVsZW0gPSBjaGVja1NldFtpXSkgKSB7CgkJCQkJd2hpbGUgKCAo
ZWxlbSA9IGVsZW0ucHJldmlvdXNTaWJsaW5nKSAmJiBlbGVtLm5vZGVUeXBlICE9
PSAxICkge30KCgkJCQkJY2hlY2tTZXRbaV0gPSBpc1BhcnRTdHJOb3RUYWcgfHwg
ZWxlbSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHBhcnQgPwoJ
CQkJCQllbGVtIHx8IGZhbHNlIDoKCQkJCQkJZWxlbSA9PT0gcGFydDsKCQkJCX0K
CQkJfQoKCQkJaWYgKCBpc1BhcnRTdHJOb3RUYWcgKSB7CgkJCQlTaXp6bGUuZmls
dGVyKCBwYXJ0LCBjaGVja1NldCwgdHJ1ZSApOwoJCQl9CgkJfSwKCgkJIj4iOiBm
dW5jdGlvbiggY2hlY2tTZXQsIHBhcnQgKSB7CgkJCXZhciBlbGVtLAoJCQkJaXNQ
YXJ0U3RyID0gdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciLAoJCQkJaSA9IDAsCgkJ
CQlsID0gY2hlY2tTZXQubGVuZ3RoOwoKCQkJaWYgKCBpc1BhcnRTdHIgJiYgIXJO
b25Xb3JkLnRlc3QoIHBhcnQgKSApIHsKCQkJCXBhcnQgPSBwYXJ0LnRvTG93ZXJD
YXNlKCk7CgoJCQkJZm9yICggOyBpIDwgbDsgaSsrICkgewoJCQkJCWVsZW0gPSBj
aGVja1NldFtpXTsKCgkJCQkJaWYgKCBlbGVtICkgewoJCQkJCQl2YXIgcGFyZW50
ID0gZWxlbS5wYXJlbnROb2RlOwoJCQkJCQljaGVja1NldFtpXSA9IHBhcmVudC5u
b2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBwYXJ0ID8gcGFyZW50IDogZmFsc2U7
CgkJCQkJfQoJCQkJfQoKCQkJfSBlbHNlIHsKCQkJCWZvciAoIDsgaSA8IGw7IGkr
KyApIHsKCQkJCQllbGVtID0gY2hlY2tTZXRbaV07CgoJCQkJCWlmICggZWxlbSAp
IHsKCQkJCQkJY2hlY2tTZXRbaV0gPSBpc1BhcnRTdHIgPwoJCQkJCQkJZWxlbS5w
YXJlbnROb2RlIDoKCQkJCQkJCWVsZW0ucGFyZW50Tm9kZSA9PT0gcGFydDsKCQkJ
CQl9CgkJCQl9CgoJCQkJaWYgKCBpc1BhcnRTdHIgKSB7CgkJCQkJU2l6emxlLmZp
bHRlciggcGFydCwgY2hlY2tTZXQsIHRydWUgKTsKCQkJCX0KCQkJfQoJCX0sCgoJ
CSIiOiBmdW5jdGlvbihjaGVja1NldCwgcGFydCwgaXNYTUwpewoJCQl2YXIgbm9k
ZUNoZWNrLAoJCQkJZG9uZU5hbWUgPSBkb25lKyssCgkJCQljaGVja0ZuID0gZGly
Q2hlY2s7CgoJCQlpZiAoIHR5cGVvZiBwYXJ0ID09PSAic3RyaW5nIiAmJiAhck5v
bldvcmQudGVzdCggcGFydCApICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNh
c2UoKTsKCQkJCW5vZGVDaGVjayA9IHBhcnQ7CgkJCQljaGVja0ZuID0gZGlyTm9k
ZUNoZWNrOwoJCQl9CgoJCQljaGVja0ZuKCAicGFyZW50Tm9kZSIsIHBhcnQsIGRv
bmVOYW1lLCBjaGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCApOwoJCX0sCgoJCSJ+
IjogZnVuY3Rpb24oIGNoZWNrU2V0LCBwYXJ0LCBpc1hNTCApIHsKCQkJdmFyIG5v
ZGVDaGVjaywKCQkJCWRvbmVOYW1lID0gZG9uZSsrLAoJCQkJY2hlY2tGbiA9IGRp
ckNoZWNrOwoKCQkJaWYgKCB0eXBlb2YgcGFydCA9PT0gInN0cmluZyIgJiYgIXJO
b25Xb3JkLnRlc3QoIHBhcnQgKSApIHsKCQkJCXBhcnQgPSBwYXJ0LnRvTG93ZXJD
YXNlKCk7CgkJCQlub2RlQ2hlY2sgPSBwYXJ0OwoJCQkJY2hlY2tGbiA9IGRpck5v
ZGVDaGVjazsKCQkJfQoKCQkJY2hlY2tGbiggInByZXZpb3VzU2libGluZyIsIHBh
cnQsIGRvbmVOYW1lLCBjaGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCApOwoJCX0K
CX0sCgoJZmluZDogewoJCUlEOiBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQsIGlz
WE1MICkgewoJCQlpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRCeUlkICE9
PSAidW5kZWZpbmVkIiAmJiAhaXNYTUwgKSB7CgkJCQl2YXIgbSA9IGNvbnRleHQu
Z2V0RWxlbWVudEJ5SWQobWF0Y2hbMV0pOwoJCQkJLy8gQ2hlY2sgcGFyZW50Tm9k
ZSB0byBjYXRjaCB3aGVuIEJsYWNrYmVycnkgNC42IHJldHVybnMKCQkJCS8vIG5v
ZGVzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgZG9jdW1lbnQgIzY5NjMKCQkJ
CXJldHVybiBtICYmIG0ucGFyZW50Tm9kZSA/IFttXSA6IFtdOwoJCQl9CgkJfSwK
CgkJTkFNRTogZnVuY3Rpb24oIG1hdGNoLCBjb250ZXh0ICkgewoJCQlpZiAoIHR5
cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lICE9PSAidW5kZWZpbmVkIiAp
IHsKCQkJCXZhciByZXQgPSBbXSwKCQkJCQlyZXN1bHRzID0gY29udGV4dC5nZXRF
bGVtZW50c0J5TmFtZSggbWF0Y2hbMV0gKTsKCgkJCQlmb3IgKCB2YXIgaSA9IDAs
IGwgPSByZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCQlpZiAoIHJl
c3VsdHNbaV0uZ2V0QXR0cmlidXRlKCJuYW1lIikgPT09IG1hdGNoWzFdICkgewoJ
CQkJCQlyZXQucHVzaCggcmVzdWx0c1tpXSApOwoJCQkJCX0KCQkJCX0KCgkJCQly
ZXR1cm4gcmV0Lmxlbmd0aCA9PT0gMCA/IG51bGwgOiByZXQ7CgkJCX0KCQl9LAoK
CQlUQUc6IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCApIHsKCQkJaWYgKCB0eXBl
b2YgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gInVuZGVmaW5lZCIg
KSB7CgkJCQlyZXR1cm4gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggbWF0
Y2hbMV0gKTsKCQkJfQoJCX0KCX0sCglwcmVGaWx0ZXI6IHsKCQlDTEFTUzogZnVu
Y3Rpb24oIG1hdGNoLCBjdXJMb29wLCBpbnBsYWNlLCByZXN1bHQsIG5vdCwgaXNY
TUwgKSB7CgkJCW1hdGNoID0gIiAiICsgbWF0Y2hbMV0ucmVwbGFjZSggckJhY2tz
bGFzaCwgIiIgKSArICIgIjsKCgkJCWlmICggaXNYTUwgKSB7CgkJCQlyZXR1cm4g
bWF0Y2g7CgkJCX0KCgkJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBj
dXJMb29wW2ldKSAhPSBudWxsOyBpKysgKSB7CgkJCQlpZiAoIGVsZW0gKSB7CgkJ
CQkJaWYgKCBub3QgXiAoZWxlbS5jbGFzc05hbWUgJiYgKCIgIiArIGVsZW0uY2xh
c3NOYW1lICsgIiAiKS5yZXBsYWNlKC9bXHRcblxyXS9nLCAiICIpLmluZGV4T2Yo
bWF0Y2gpID49IDApICkgewoJCQkJCQlpZiAoICFpbnBsYWNlICkgewoJCQkJCQkJ
cmVzdWx0LnB1c2goIGVsZW0gKTsKCQkJCQkJfQoKCQkJCQl9IGVsc2UgaWYgKCBp
bnBsYWNlICkgewoJCQkJCQljdXJMb29wW2ldID0gZmFsc2U7CgkJCQkJfQoJCQkJ
fQoJCQl9CgoJCQlyZXR1cm4gZmFsc2U7CgkJfSwKCgkJSUQ6IGZ1bmN0aW9uKCBt
YXRjaCApIHsKCQkJcmV0dXJuIG1hdGNoWzFdLnJlcGxhY2UoIHJCYWNrc2xhc2gs
ICIiICk7CgkJfSwKCgkJVEFHOiBmdW5jdGlvbiggbWF0Y2gsIGN1ckxvb3AgKSB7
CgkJCXJldHVybiBtYXRjaFsxXS5yZXBsYWNlKCByQmFja3NsYXNoLCAiIiApLnRv
TG93ZXJDYXNlKCk7CgkJfSwKCgkJQ0hJTEQ6IGZ1bmN0aW9uKCBtYXRjaCApIHsK
CQkJaWYgKCBtYXRjaFsxXSA9PT0gIm50aCIgKSB7CgkJCQlpZiAoICFtYXRjaFsy
XSApIHsKCQkJCQlTaXp6bGUuZXJyb3IoIG1hdGNoWzBdICk7CgkJCQl9CgoJCQkJ
bWF0Y2hbMl0gPSBtYXRjaFsyXS5yZXBsYWNlKC9eXCt8XHMqL2csICcnKTsKCgkJ
CQkvLyBwYXJzZSBlcXVhdGlvbnMgbGlrZSAnZXZlbicsICdvZGQnLCAnNScsICcy
bicsICczbisyJywgJzRuLTEnLCAnLW4rNicKCQkJCXZhciB0ZXN0ID0gLygtPyko
XGQqKSg/Om4oWytcLV0/XGQqKSk/Ly5leGVjKAoJCQkJCW1hdGNoWzJdID09PSAi
ZXZlbiIgJiYgIjJuIiB8fCBtYXRjaFsyXSA9PT0gIm9kZCIgJiYgIjJuKzEiIHx8
CgkJCQkJIS9cRC8udGVzdCggbWF0Y2hbMl0gKSAmJiAiMG4rIiArIG1hdGNoWzJd
IHx8IG1hdGNoWzJdKTsKCgkJCQkvLyBjYWxjdWxhdGUgdGhlIG51bWJlcnMgKGZp
cnN0KW4rKGxhc3QpIGluY2x1ZGluZyBpZiB0aGV5IGFyZSBuZWdhdGl2ZQoJCQkJ
bWF0Y2hbMl0gPSAodGVzdFsxXSArICh0ZXN0WzJdIHx8IDEpKSAtIDA7CgkJCQlt
YXRjaFszXSA9IHRlc3RbM10gLSAwOwoJCQl9CgkJCWVsc2UgaWYgKCBtYXRjaFsy
XSApIHsKCQkJCVNpenpsZS5lcnJvciggbWF0Y2hbMF0gKTsKCQkJfQoKCQkJLy8g
VE9ETzogTW92ZSB0byBub3JtYWwgY2FjaGluZyBzeXN0ZW0KCQkJbWF0Y2hbMF0g
PSBkb25lKys7CgoJCQlyZXR1cm4gbWF0Y2g7CgkJfSwKCgkJQVRUUjogZnVuY3Rp
b24oIG1hdGNoLCBjdXJMb29wLCBpbnBsYWNlLCByZXN1bHQsIG5vdCwgaXNYTUwg
KSB7CgkJCXZhciBuYW1lID0gbWF0Y2hbMV0gPSBtYXRjaFsxXS5yZXBsYWNlKCBy
QmFja3NsYXNoLCAiIiApOwoKCQkJaWYgKCAhaXNYTUwgJiYgRXhwci5hdHRyTWFw
W25hbWVdICkgewoJCQkJbWF0Y2hbMV0gPSBFeHByLmF0dHJNYXBbbmFtZV07CgkJ
CX0KCgkJCS8vIEhhbmRsZSBpZiBhbiB1bi1xdW90ZWQgdmFsdWUgd2FzIHVzZWQK
CQkJbWF0Y2hbNF0gPSAoIG1hdGNoWzRdIHx8IG1hdGNoWzVdIHx8ICIiICkucmVw
bGFjZSggckJhY2tzbGFzaCwgIiIgKTsKCgkJCWlmICggbWF0Y2hbMl0gPT09ICJ+
PSIgKSB7CgkJCQltYXRjaFs0XSA9ICIgIiArIG1hdGNoWzRdICsgIiAiOwoJCQl9
CgoJCQlyZXR1cm4gbWF0Y2g7CgkJfSwKCgkJUFNFVURPOiBmdW5jdGlvbiggbWF0
Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90ICkgewoJCQlpZiAoIG1h
dGNoWzFdID09PSAibm90IiApIHsKCQkJCS8vIElmIHdlJ3JlIGRlYWxpbmcgd2l0
aCBhIGNvbXBsZXggZXhwcmVzc2lvbiwgb3IgYSBzaW1wbGUgb25lCgkJCQlpZiAo
ICggY2h1bmtlci5leGVjKG1hdGNoWzNdKSB8fCAiIiApLmxlbmd0aCA+IDEgfHwg
L15cdy8udGVzdChtYXRjaFszXSkgKSB7CgkJCQkJbWF0Y2hbM10gPSBTaXp6bGUo
bWF0Y2hbM10sIG51bGwsIG51bGwsIGN1ckxvb3ApOwoKCQkJCX0gZWxzZSB7CgkJ
CQkJdmFyIHJldCA9IFNpenpsZS5maWx0ZXIobWF0Y2hbM10sIGN1ckxvb3AsIGlu
cGxhY2UsIHRydWUgXiBub3QpOwoKCQkJCQlpZiAoICFpbnBsYWNlICkgewoJCQkJ
CQlyZXN1bHQucHVzaC5hcHBseSggcmVzdWx0LCByZXQgKTsKCQkJCQl9CgoJCQkJ
CXJldHVybiBmYWxzZTsKCQkJCX0KCgkJCX0gZWxzZSBpZiAoIEV4cHIubWF0Y2gu
UE9TLnRlc3QoIG1hdGNoWzBdICkgfHwgRXhwci5tYXRjaC5DSElMRC50ZXN0KCBt
YXRjaFswXSApICkgewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCgkJCXJldHVybiBt
YXRjaDsKCQl9LAoKCQlQT1M6IGZ1bmN0aW9uKCBtYXRjaCApIHsKCQkJbWF0Y2gu
dW5zaGlmdCggdHJ1ZSApOwoKCQkJcmV0dXJuIG1hdGNoOwoJCX0KCX0sCgoJZmls
dGVyczogewoJCWVuYWJsZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4g
ZWxlbS5kaXNhYmxlZCA9PT0gZmFsc2UgJiYgZWxlbS50eXBlICE9PSAiaGlkZGVu
IjsKCQl9LAoKCQlkaXNhYmxlZDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVy
biBlbGVtLmRpc2FibGVkID09PSB0cnVlOwoJCX0sCgoJCWNoZWNrZWQ6IGZ1bmN0
aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5jaGVja2VkID09PSB0cnVlOwoJ
CX0sCgoJCXNlbGVjdGVkOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJLy8gQWNjZXNz
aW5nIHRoaXMgcHJvcGVydHkgbWFrZXMgc2VsZWN0ZWQtYnktZGVmYXVsdAoJCQkv
LyBvcHRpb25zIGluIFNhZmFyaSB3b3JrIHByb3Blcmx5CgkJCWlmICggZWxlbS5w
YXJlbnROb2RlICkgewoJCQkJZWxlbS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7
CgkJCX0KCgkJCXJldHVybiBlbGVtLnNlbGVjdGVkID09PSB0cnVlOwoJCX0sCgoJ
CXBhcmVudDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAhIWVsZW0uZmly
c3RDaGlsZDsKCQl9LAoKCQllbXB0eTogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJl
dHVybiAhZWxlbS5maXJzdENoaWxkOwoJCX0sCgoJCWhhczogZnVuY3Rpb24oIGVs
ZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gISFTaXp6bGUoIG1hdGNoWzNdLCBl
bGVtICkubGVuZ3RoOwoJCX0sCgoJCWhlYWRlcjogZnVuY3Rpb24oIGVsZW0gKSB7
CgkJCXJldHVybiAoL2hcZC9pKS50ZXN0KCBlbGVtLm5vZGVOYW1lICk7CgkJfSwK
CgkJdGV4dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXZhciBhdHRyID0gZWxlbS5n
ZXRBdHRyaWJ1dGUoICJ0eXBlIiApLCB0eXBlID0gZWxlbS50eXBlOwoJCQkvLyBJ
RTYgYW5kIDcgd2lsbCBtYXAgZWxlbS50eXBlIHRvICd0ZXh0JyBmb3IgbmV3IEhU
TUw1IHR5cGVzIChzZWFyY2gsIGV0YykKCQkJLy8gdXNlIGdldEF0dHJpYnV0ZSBp
bnN0ZWFkIHRvIHRlc3QgdGhpcyBjYXNlCgkJCXJldHVybiBlbGVtLm5vZGVOYW1l
LnRvTG93ZXJDYXNlKCkgPT09ICJpbnB1dCIgJiYgInRleHQiID09PSB0eXBlICYm
ICggYXR0ciA9PT0gdHlwZSB8fCBhdHRyID09PSBudWxsICk7CgkJfSwKCgkJcmFk
aW86IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5ub2RlTmFtZS50
b0xvd2VyQ2FzZSgpID09PSAiaW5wdXQiICYmICJyYWRpbyIgPT09IGVsZW0udHlw
ZTsKCQl9LAoKCQljaGVja2JveDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVy
biBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJpbnB1dCIgJiYgImNo
ZWNrYm94IiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCWZpbGU6IGZ1bmN0aW9uKCBl
bGVtICkgewoJCQlyZXR1cm4gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09
PSAiaW5wdXQiICYmICJmaWxlIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCXBhc3N3
b3JkOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuIGVsZW0ubm9kZU5hbWUu
dG9Mb3dlckNhc2UoKSA9PT0gImlucHV0IiAmJiAicGFzc3dvcmQiID09PSBlbGVt
LnR5cGU7CgkJfSwKCgkJc3VibWl0OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJdmFy
IG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgkJCXJldHVybiAo
bmFtZSA9PT0gImlucHV0IiB8fCBuYW1lID09PSAiYnV0dG9uIikgJiYgInN1Ym1p
dCIgPT09IGVsZW0udHlwZTsKCQl9LAoKCQlpbWFnZTogZnVuY3Rpb24oIGVsZW0g
KSB7CgkJCXJldHVybiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJp
bnB1dCIgJiYgImltYWdlIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCXJlc2V0OiBm
dW5jdGlvbiggZWxlbSApIHsKCQkJdmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRv
TG93ZXJDYXNlKCk7CgkJCXJldHVybiAobmFtZSA9PT0gImlucHV0IiB8fCBuYW1l
ID09PSAiYnV0dG9uIikgJiYgInJlc2V0IiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJ
CWJ1dHRvbjogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXZhciBuYW1lID0gZWxlbS5u
b2RlTmFtZS50b0xvd2VyQ2FzZSgpOwoJCQlyZXR1cm4gbmFtZSA9PT0gImlucHV0
IiAmJiAiYnV0dG9uIiA9PT0gZWxlbS50eXBlIHx8IG5hbWUgPT09ICJidXR0b24i
OwoJCX0sCgoJCWlucHV0OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICgv
aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbi9pKS50ZXN0KCBlbGVtLm5vZGVO
YW1lICk7CgkJfSwKCgkJZm9jdXM6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1
cm4gZWxlbSA9PT0gZWxlbS5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7CgkJ
fQoJfSwKCXNldEZpbHRlcnM6IHsKCQlmaXJzdDogZnVuY3Rpb24oIGVsZW0sIGkg
KSB7CgkJCXJldHVybiBpID09PSAwOwoJCX0sCgoJCWxhc3Q6IGZ1bmN0aW9uKCBl
bGVtLCBpLCBtYXRjaCwgYXJyYXkgKSB7CgkJCXJldHVybiBpID09PSBhcnJheS5s
ZW5ndGggLSAxOwoJCX0sCgoJCWV2ZW46IGZ1bmN0aW9uKCBlbGVtLCBpICkgewoJ
CQlyZXR1cm4gaSAlIDIgPT09IDA7CgkJfSwKCgkJb2RkOiBmdW5jdGlvbiggZWxl
bSwgaSApIHsKCQkJcmV0dXJuIGkgJSAyID09PSAxOwoJCX0sCgoJCWx0OiBmdW5j
dGlvbiggZWxlbSwgaSwgbWF0Y2ggKSB7CgkJCXJldHVybiBpIDwgbWF0Y2hbM10g
LSAwOwoJCX0sCgoJCWd0OiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2ggKSB7CgkJ
CXJldHVybiBpID4gbWF0Y2hbM10gLSAwOwoJCX0sCgoJCW50aDogZnVuY3Rpb24o
IGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gbWF0Y2hbM10gLSAwID09PSBp
OwoJCX0sCgoJCWVxOiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2ggKSB7CgkJCXJl
dHVybiBtYXRjaFszXSAtIDAgPT09IGk7CgkJfQoJfSwKCWZpbHRlcjogewoJCVBT
RVVETzogZnVuY3Rpb24oIGVsZW0sIG1hdGNoLCBpLCBhcnJheSApIHsKCQkJdmFy
IG5hbWUgPSBtYXRjaFsxXSwKCQkJCWZpbHRlciA9IEV4cHIuZmlsdGVyc1sgbmFt
ZSBdOwoKCQkJaWYgKCBmaWx0ZXIgKSB7CgkJCQlyZXR1cm4gZmlsdGVyKCBlbGVt
LCBpLCBtYXRjaCwgYXJyYXkgKTsKCgkJCX0gZWxzZSBpZiAoIG5hbWUgPT09ICJj
b250YWlucyIgKSB7CgkJCQlyZXR1cm4gKGVsZW0udGV4dENvbnRlbnQgfHwgZWxl
bS5pbm5lclRleHQgfHwgZ2V0VGV4dChbIGVsZW0gXSkgfHwgIiIpLmluZGV4T2Yo
bWF0Y2hbM10pID49IDA7CgoJCQl9IGVsc2UgaWYgKCBuYW1lID09PSAibm90IiAp
IHsKCQkJCXZhciBub3QgPSBtYXRjaFszXTsKCgkJCQlmb3IgKCB2YXIgaiA9IDAs
IGwgPSBub3QubGVuZ3RoOyBqIDwgbDsgaisrICkgewoJCQkJCWlmICggbm90W2pd
ID09PSBlbGVtICkgewoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfQoJCQkJfQoK
CQkJCXJldHVybiB0cnVlOwoKCQkJfSBlbHNlIHsKCQkJCVNpenpsZS5lcnJvcigg
bmFtZSApOwoJCQl9CgkJfSwKCgkJQ0hJTEQ6IGZ1bmN0aW9uKCBlbGVtLCBtYXRj
aCApIHsKCQkJdmFyIGZpcnN0LCBsYXN0LAoJCQkJZG9uZU5hbWUsIHBhcmVudCwg
Y2FjaGUsCgkJCQljb3VudCwgZGlmZiwKCQkJCXR5cGUgPSBtYXRjaFsxXSwKCQkJ
CW5vZGUgPSBlbGVtOwoKCQkJc3dpdGNoICggdHlwZSApIHsKCQkJCWNhc2UgIm9u
bHkiOgoJCQkJY2FzZSAiZmlyc3QiOgoJCQkJCXdoaWxlICggKG5vZGUgPSBub2Rl
LnByZXZpb3VzU2libGluZykgKSB7CgkJCQkJCWlmICggbm9kZS5ub2RlVHlwZSA9
PT0gMSApIHsKCQkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkJfQoJCQkJCX0KCgkJ
CQkJaWYgKCB0eXBlID09PSAiZmlyc3QiICkgewoJCQkJCQlyZXR1cm4gdHJ1ZTsK
CQkJCQl9CgoJCQkJCW5vZGUgPSBlbGVtOwoKCQkJCQkvKiBmYWxscyB0aHJvdWdo
ICovCgkJCQljYXNlICJsYXN0IjoKCQkJCQl3aGlsZSAoIChub2RlID0gbm9kZS5u
ZXh0U2libGluZykgKSB7CgkJCQkJCWlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSAp
IHsKCQkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJcmV0
dXJuIHRydWU7CgoJCQkJY2FzZSAibnRoIjoKCQkJCQlmaXJzdCA9IG1hdGNoWzJd
OwoJCQkJCWxhc3QgPSBtYXRjaFszXTsKCgkJCQkJaWYgKCBmaXJzdCA9PT0gMSAm
JiBsYXN0ID09PSAwICkgewoJCQkJCQlyZXR1cm4gdHJ1ZTsKCQkJCQl9CgoJCQkJ
CWRvbmVOYW1lID0gbWF0Y2hbMF07CgkJCQkJcGFyZW50ID0gZWxlbS5wYXJlbnRO
b2RlOwoKCQkJCQlpZiAoIHBhcmVudCAmJiAocGFyZW50WyBleHBhbmRvIF0gIT09
IGRvbmVOYW1lIHx8ICFlbGVtLm5vZGVJbmRleCkgKSB7CgkJCQkJCWNvdW50ID0g
MDsKCgkJCQkJCWZvciAoIG5vZGUgPSBwYXJlbnQuZmlyc3RDaGlsZDsgbm9kZTsg
bm9kZSA9IG5vZGUubmV4dFNpYmxpbmcgKSB7CgkJCQkJCQlpZiAoIG5vZGUubm9k
ZVR5cGUgPT09IDEgKSB7CgkJCQkJCQkJbm9kZS5ub2RlSW5kZXggPSArK2NvdW50
OwoJCQkJCQkJfQoJCQkJCQl9CgoJCQkJCQlwYXJlbnRbIGV4cGFuZG8gXSA9IGRv
bmVOYW1lOwoJCQkJCX0KCgkJCQkJZGlmZiA9IGVsZW0ubm9kZUluZGV4IC0gbGFz
dDsKCgkJCQkJaWYgKCBmaXJzdCA9PT0gMCApIHsKCQkJCQkJcmV0dXJuIGRpZmYg
PT09IDA7CgoJCQkJCX0gZWxzZSB7CgkJCQkJCXJldHVybiAoIGRpZmYgJSBmaXJz
dCA9PT0gMCAmJiBkaWZmIC8gZmlyc3QgPj0gMCApOwoJCQkJCX0KCQkJfQoJCX0s
CgoJCUlEOiBmdW5jdGlvbiggZWxlbSwgbWF0Y2ggKSB7CgkJCXJldHVybiBlbGVt
Lm5vZGVUeXBlID09PSAxICYmIGVsZW0uZ2V0QXR0cmlidXRlKCJpZCIpID09PSBt
YXRjaDsKCQl9LAoKCQlUQUc6IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCApIHsKCQkJ
cmV0dXJuIChtYXRjaCA9PT0gIioiICYmIGVsZW0ubm9kZVR5cGUgPT09IDEpIHx8
ICEhZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkg
PT09IG1hdGNoOwoJCX0sCgoJCUNMQVNTOiBmdW5jdGlvbiggZWxlbSwgbWF0Y2gg
KSB7CgkJCXJldHVybiAoIiAiICsgKGVsZW0uY2xhc3NOYW1lIHx8IGVsZW0uZ2V0
QXR0cmlidXRlKCJjbGFzcyIpKSArICIgIikKCQkJCS5pbmRleE9mKCBtYXRjaCAp
ID4gLTE7CgkJfSwKCgkJQVRUUjogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJ
CQl2YXIgbmFtZSA9IG1hdGNoWzFdLAoJCQkJcmVzdWx0ID0gU2l6emxlLmF0dHIg
PwoJCQkJCVNpenpsZS5hdHRyKCBlbGVtLCBuYW1lICkgOgoJCQkJCUV4cHIuYXR0
ckhhbmRsZVsgbmFtZSBdID8KCQkJCQlFeHByLmF0dHJIYW5kbGVbIG5hbWUgXSgg
ZWxlbSApIDoKCQkJCQllbGVtWyBuYW1lIF0gIT0gbnVsbCA/CgkJCQkJCWVsZW1b
IG5hbWUgXSA6CgkJCQkJCWVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lICksCgkJCQl2
YWx1ZSA9IHJlc3VsdCArICIiLAoJCQkJdHlwZSA9IG1hdGNoWzJdLAoJCQkJY2hl
Y2sgPSBtYXRjaFs0XTsKCgkJCXJldHVybiByZXN1bHQgPT0gbnVsbCA/CgkJCQl0
eXBlID09PSAiIT0iIDoKCQkJCSF0eXBlICYmIFNpenpsZS5hdHRyID8KCQkJCXJl
c3VsdCAhPSBudWxsIDoKCQkJCXR5cGUgPT09ICI9IiA/CgkJCQl2YWx1ZSA9PT0g
Y2hlY2sgOgoJCQkJdHlwZSA9PT0gIio9IiA/CgkJCQl2YWx1ZS5pbmRleE9mKGNo
ZWNrKSA+PSAwIDoKCQkJCXR5cGUgPT09ICJ+PSIgPwoJCQkJKCIgIiArIHZhbHVl
ICsgIiAiKS5pbmRleE9mKGNoZWNrKSA+PSAwIDoKCQkJCSFjaGVjayA/CgkJCQl2
YWx1ZSAmJiByZXN1bHQgIT09IGZhbHNlIDoKCQkJCXR5cGUgPT09ICIhPSIgPwoJ
CQkJdmFsdWUgIT09IGNoZWNrIDoKCQkJCXR5cGUgPT09ICJePSIgPwoJCQkJdmFs
dWUuaW5kZXhPZihjaGVjaykgPT09IDAgOgoJCQkJdHlwZSA9PT0gIiQ9IiA/CgkJ
CQl2YWx1ZS5zdWJzdHIodmFsdWUubGVuZ3RoIC0gY2hlY2subGVuZ3RoKSA9PT0g
Y2hlY2sgOgoJCQkJdHlwZSA9PT0gInw9IiA/CgkJCQl2YWx1ZSA9PT0gY2hlY2sg
fHwgdmFsdWUuc3Vic3RyKDAsIGNoZWNrLmxlbmd0aCArIDEpID09PSBjaGVjayAr
ICItIiA6CgkJCQlmYWxzZTsKCQl9LAoKCQlQT1M6IGZ1bmN0aW9uKCBlbGVtLCBt
YXRjaCwgaSwgYXJyYXkgKSB7CgkJCXZhciBuYW1lID0gbWF0Y2hbMl0sCgkJCQlm
aWx0ZXIgPSBFeHByLnNldEZpbHRlcnNbIG5hbWUgXTsKCgkJCWlmICggZmlsdGVy
ICkgewoJCQkJcmV0dXJuIGZpbHRlciggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICk7
CgkJCX0KCQl9Cgl9Cn07Cgp2YXIgb3JpZ1BPUyA9IEV4cHIubWF0Y2guUE9TLAoJ
ZmVzY2FwZSA9IGZ1bmN0aW9uKGFsbCwgbnVtKXsKCQlyZXR1cm4gIlxcIiArIChu
dW0gLSAwICsgMSk7Cgl9OwoKZm9yICggdmFyIHR5cGUgaW4gRXhwci5tYXRjaCAp
IHsKCUV4cHIubWF0Y2hbIHR5cGUgXSA9IG5ldyBSZWdFeHAoIEV4cHIubWF0Y2hb
IHR5cGUgXS5zb3VyY2UgKyAoLyg/IVteXFtdKlxdKSg/IVteXChdKlwpKS8uc291
cmNlKSApOwoJRXhwci5sZWZ0TWF0Y2hbIHR5cGUgXSA9IG5ldyBSZWdFeHAoIC8o
Xig/Oi58XHJ8XG4pKj8pLy5zb3VyY2UgKyBFeHByLm1hdGNoWyB0eXBlIF0uc291
cmNlLnJlcGxhY2UoL1xcKFxkKykvZywgZmVzY2FwZSkgKTsKfQovLyBFeHBvc2Ug
b3JpZ1BPUwovLyAiZ2xvYmFsIiBhcyBpbiByZWdhcmRsZXNzIG9mIHJlbGF0aW9u
IHRvIGJyYWNrZXRzL3BhcmVucwpFeHByLm1hdGNoLmdsb2JhbFBPUyA9IG9yaWdQ
T1M7Cgp2YXIgbWFrZUFycmF5ID0gZnVuY3Rpb24oIGFycmF5LCByZXN1bHRzICkg
ewoJYXJyYXkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCggYXJyYXksIDAg
KTsKCglpZiAoIHJlc3VsdHMgKSB7CgkJcmVzdWx0cy5wdXNoLmFwcGx5KCByZXN1
bHRzLCBhcnJheSApOwoJCXJldHVybiByZXN1bHRzOwoJfQoKCXJldHVybiBhcnJh
eTsKfTsKCi8vIFBlcmZvcm0gYSBzaW1wbGUgY2hlY2sgdG8gZGV0ZXJtaW5lIGlm
IHRoZSBicm93c2VyIGlzIGNhcGFibGUgb2YKLy8gY29udmVydGluZyBhIE5vZGVM
aXN0IHRvIGFuIGFycmF5IHVzaW5nIGJ1aWx0aW4gbWV0aG9kcy4KLy8gQWxzbyB2
ZXJpZmllcyB0aGF0IHRoZSByZXR1cm5lZCBhcnJheSBob2xkcyBET00gbm9kZXMK
Ly8gKHdoaWNoIGlzIG5vdCB0aGUgY2FzZSBpbiB0aGUgQmxhY2tiZXJyeSBicm93
c2VyKQp0cnkgewoJQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVzLCAwIClbMF0ubm9kZVR5cGU7Cgov
LyBQcm92aWRlIGEgZmFsbGJhY2sgbWV0aG9kIGlmIGl0IGRvZXMgbm90IHdvcmsK
fSBjYXRjaCggZSApIHsKCW1ha2VBcnJheSA9IGZ1bmN0aW9uKCBhcnJheSwgcmVz
dWx0cyApIHsKCQl2YXIgaSA9IDAsCgkJCXJldCA9IHJlc3VsdHMgfHwgW107CgoJ
CWlmICggdG9TdHJpbmcuY2FsbChhcnJheSkgPT09ICJbb2JqZWN0IEFycmF5XSIg
KSB7CgkJCUFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KCByZXQsIGFycmF5ICk7
CgoJCX0gZWxzZSB7CgkJCWlmICggdHlwZW9mIGFycmF5Lmxlbmd0aCA9PT0gIm51
bWJlciIgKSB7CgkJCQlmb3IgKCB2YXIgbCA9IGFycmF5Lmxlbmd0aDsgaSA8IGw7
IGkrKyApIHsKCQkJCQlyZXQucHVzaCggYXJyYXlbaV0gKTsKCQkJCX0KCgkJCX0g
ZWxzZSB7CgkJCQlmb3IgKCA7IGFycmF5W2ldOyBpKysgKSB7CgkJCQkJcmV0LnB1
c2goIGFycmF5W2ldICk7CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9
Owp9Cgp2YXIgc29ydE9yZGVyLCBzaWJsaW5nQ2hlY2s7CgppZiAoIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiApIHsKCXNv
cnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkgewoJCWlmICggYSA9PT0gYiApIHsK
CQkJaGFzRHVwbGljYXRlID0gdHJ1ZTsKCQkJcmV0dXJuIDA7CgkJfQoKCQlpZiAo
ICFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHx8ICFiLmNvbXBhcmVEb2N1bWVu
dFBvc2l0aW9uICkgewoJCQlyZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlv
biA/IC0xIDogMTsKCQl9CgoJCXJldHVybiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKGIpICYgNCA/IC0xIDogMTsKCX07Cgp9IGVsc2UgewoJc29ydE9yZGVyID0g
ZnVuY3Rpb24oIGEsIGIgKSB7CgkJLy8gVGhlIG5vZGVzIGFyZSBpZGVudGljYWws
IHdlIGNhbiBleGl0IGVhcmx5CgkJaWYgKCBhID09PSBiICkgewoJCQloYXNEdXBs
aWNhdGUgPSB0cnVlOwoJCQlyZXR1cm4gMDsKCgkJLy8gRmFsbGJhY2sgdG8gdXNp
bmcgc291cmNlSW5kZXggKGluIElFKSBpZiBpdCdzIGF2YWlsYWJsZSBvbiBib3Ro
IG5vZGVzCgkJfSBlbHNlIGlmICggYS5zb3VyY2VJbmRleCAmJiBiLnNvdXJjZUlu
ZGV4ICkgewoJCQlyZXR1cm4gYS5zb3VyY2VJbmRleCAtIGIuc291cmNlSW5kZXg7
CgkJfQoKCQl2YXIgYWwsIGJsLAoJCQlhcCA9IFtdLAoJCQlicCA9IFtdLAoJCQlh
dXAgPSBhLnBhcmVudE5vZGUsCgkJCWJ1cCA9IGIucGFyZW50Tm9kZSwKCQkJY3Vy
ID0gYXVwOwoKCQkvLyBJZiB0aGUgbm9kZXMgYXJlIHNpYmxpbmdzIChvciBpZGVu
dGljYWwpIHdlIGNhbiBkbyBhIHF1aWNrIGNoZWNrCgkJaWYgKCBhdXAgPT09IGJ1
cCApIHsKCQkJcmV0dXJuIHNpYmxpbmdDaGVjayggYSwgYiApOwoKCQkvLyBJZiBu
byBwYXJlbnRzIHdlcmUgZm91bmQgdGhlbiB0aGUgbm9kZXMgYXJlIGRpc2Nvbm5l
Y3RlZAoJCX0gZWxzZSBpZiAoICFhdXAgKSB7CgkJCXJldHVybiAtMTsKCgkJfSBl
bHNlIGlmICggIWJ1cCApIHsKCQkJcmV0dXJuIDE7CgkJfQoKCQkvLyBPdGhlcndp
c2UgdGhleSdyZSBzb21ld2hlcmUgZWxzZSBpbiB0aGUgdHJlZSBzbyB3ZSBuZWVk
CgkJLy8gdG8gYnVpbGQgdXAgYSBmdWxsIGxpc3Qgb2YgdGhlIHBhcmVudE5vZGVz
IGZvciBjb21wYXJpc29uCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWFwLnVuc2hpZnQo
IGN1ciApOwoJCQljdXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWN1ciA9IGJ1
cDsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWJwLnVuc2hpZnQoIGN1ciApOwoJCQlj
dXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWFsID0gYXAubGVuZ3RoOwoJCWJs
ID0gYnAubGVuZ3RoOwoKCQkvLyBTdGFydCB3YWxraW5nIGRvd24gdGhlIHRyZWUg
bG9va2luZyBmb3IgYSBkaXNjcmVwYW5jeQoJCWZvciAoIHZhciBpID0gMDsgaSA8
IGFsICYmIGkgPCBibDsgaSsrICkgewoJCQlpZiAoIGFwW2ldICE9PSBicFtpXSAp
IHsKCQkJCXJldHVybiBzaWJsaW5nQ2hlY2soIGFwW2ldLCBicFtpXSApOwoJCQl9
CgkJfQoKCQkvLyBXZSBlbmRlZCBzb21lcGxhY2UgdXAgdGhlIHRyZWUgc28gZG8g
YSBzaWJsaW5nIGNoZWNrCgkJcmV0dXJuIGkgPT09IGFsID8KCQkJc2libGluZ0No
ZWNrKCBhLCBicFtpXSwgLTEgKSA6CgkJCXNpYmxpbmdDaGVjayggYXBbaV0sIGIs
IDEgKTsKCX07CgoJc2libGluZ0NoZWNrID0gZnVuY3Rpb24oIGEsIGIsIHJldCAp
IHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCXJldHVybiByZXQ7CgkJfQoKCQl2YXIg
Y3VyID0gYS5uZXh0U2libGluZzsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWlmICgg
Y3VyID09PSBiICkgewoJCQkJcmV0dXJuIC0xOwoJCQl9CgoJCQljdXIgPSBjdXIu
bmV4dFNpYmxpbmc7CgkJfQoKCQlyZXR1cm4gMTsKCX07Cn0KCi8vIENoZWNrIHRv
IHNlZSBpZiB0aGUgYnJvd3NlciByZXR1cm5zIGVsZW1lbnRzIGJ5IG5hbWUgd2hl
bgovLyBxdWVyeWluZyBieSBnZXRFbGVtZW50QnlJZCAoYW5kIHByb3ZpZGUgYSB3
b3JrYXJvdW5kKQooZnVuY3Rpb24oKXsKCS8vIFdlJ3JlIGdvaW5nIHRvIGluamVj
dCBhIGZha2UgaW5wdXQgZWxlbWVudCB3aXRoIGEgc3BlY2lmaWVkIG5hbWUKCXZh
ciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksCgkJaWQgPSAi
c2NyaXB0IiArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCksCgkJcm9vdCA9IGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudDsKCglmb3JtLmlubmVySFRNTCA9ICI8YSBuYW1l
PSciICsgaWQgKyAiJy8+IjsKCgkvLyBJbmplY3QgaXQgaW50byB0aGUgcm9vdCBl
bGVtZW50LCBjaGVjayBpdHMgc3RhdHVzLCBhbmQgcmVtb3ZlIGl0IHF1aWNrbHkK
CXJvb3QuaW5zZXJ0QmVmb3JlKCBmb3JtLCByb290LmZpcnN0Q2hpbGQgKTsKCgkv
LyBUaGUgd29ya2Fyb3VuZCBoYXMgdG8gZG8gYWRkaXRpb25hbCBjaGVja3MgYWZ0
ZXIgYSBnZXRFbGVtZW50QnlJZAoJLy8gV2hpY2ggc2xvd3MgdGhpbmdzIGRvd24g
Zm9yIG90aGVyIGJyb3dzZXJzIChoZW5jZSB0aGUgYnJhbmNoaW5nKQoJaWYgKCBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCggaWQgKSApIHsKCQlFeHByLmZpbmQuSUQg
PSBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQsIGlzWE1MICkgewoJCQlpZiAoIHR5
cGVvZiBjb250ZXh0LmdldEVsZW1lbnRCeUlkICE9PSAidW5kZWZpbmVkIiAmJiAh
aXNYTUwgKSB7CgkJCQl2YXIgbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQobWF0
Y2hbMV0pOwoKCQkJCXJldHVybiBtID8KCQkJCQltLmlkID09PSBtYXRjaFsxXSB8
fCB0eXBlb2YgbS5nZXRBdHRyaWJ1dGVOb2RlICE9PSAidW5kZWZpbmVkIiAmJiBt
LmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlID09PSBtYXRjaFsxXSA/
CgkJCQkJCVttXSA6CgkJCQkJCXVuZGVmaW5lZCA6CgkJCQkJW107CgkJCX0KCQl9
OwoKCQlFeHByLmZpbHRlci5JRCA9IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCApIHsK
CQkJdmFyIG5vZGUgPSB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlICE9PSAi
dW5kZWZpbmVkIiAmJiBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7CgoJCQly
ZXR1cm4gZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiBub2RlICYmIG5vZGUubm9kZVZh
bHVlID09PSBtYXRjaDsKCQl9OwoJfQoKCXJvb3QucmVtb3ZlQ2hpbGQoIGZvcm0g
KTsKCgkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJcm9vdCA9IGZvcm0gPSBudWxs
Owp9KSgpOwoKKGZ1bmN0aW9uKCl7CgkvLyBDaGVjayB0byBzZWUgaWYgdGhlIGJy
b3dzZXIgcmV0dXJucyBvbmx5IGVsZW1lbnRzCgkvLyB3aGVuIGRvaW5nIGdldEVs
ZW1lbnRzQnlUYWdOYW1lKCIqIikKCgkvLyBDcmVhdGUgYSBmYWtlIGVsZW1lbnQK
CXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCWRpdi5h
cHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIikgKTsKCgkvLyBN
YWtlIHN1cmUgbm8gY29tbWVudHMgYXJlIGZvdW5kCglpZiAoIGRpdi5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aCA+IDAgKSB7CgkJRXhwci5maW5kLlRB
RyA9IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCApIHsKCQkJdmFyIHJlc3VsdHMg
PSBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBtYXRjaFsxXSApOwoKCQkJ
Ly8gRmlsdGVyIG91dCBwb3NzaWJsZSBjb21tZW50cwoJCQlpZiAoIG1hdGNoWzFd
ID09PSAiKiIgKSB7CgkJCQl2YXIgdG1wID0gW107CgoJCQkJZm9yICggdmFyIGkg
PSAwOyByZXN1bHRzW2ldOyBpKysgKSB7CgkJCQkJaWYgKCByZXN1bHRzW2ldLm5v
ZGVUeXBlID09PSAxICkgewoJCQkJCQl0bXAucHVzaCggcmVzdWx0c1tpXSApOwoJ
CQkJCX0KCQkJCX0KCgkJCQlyZXN1bHRzID0gdG1wOwoJCQl9CgoJCQlyZXR1cm4g
cmVzdWx0czsKCQl9OwoJfQoKCS8vIENoZWNrIHRvIHNlZSBpZiBhbiBhdHRyaWJ1
dGUgcmV0dXJucyBub3JtYWxpemVkIGhyZWYgYXR0cmlidXRlcwoJZGl2LmlubmVy
SFRNTCA9ICI8YSBocmVmPScjJz48L2E+IjsKCglpZiAoIGRpdi5maXJzdENoaWxk
ICYmIHR5cGVvZiBkaXYuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUgIT09ICJ1bmRl
ZmluZWQiICYmCgkJCWRpdi5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIp
ICE9PSAiIyIgKSB7CgoJCUV4cHIuYXR0ckhhbmRsZS5ocmVmID0gZnVuY3Rpb24o
IGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggImhyZWYiLCAy
ICk7CgkJfTsKCX0KCgkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJZGl2ID0gbnVs
bDsKfSkoKTsKCmlmICggZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCApIHsKCShm
dW5jdGlvbigpewoJCXZhciBvbGRTaXp6bGUgPSBTaXp6bGUsCgkJCWRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLAoJCQlpZCA9ICJfX3NpenpsZV9f
IjsKCgkJZGl2LmlubmVySFRNTCA9ICI8cCBjbGFzcz0nVEVTVCc+PC9wPiI7CgoJ
CS8vIFNhZmFyaSBjYW4ndCBoYW5kbGUgdXBwZXJjYXNlIG9yIHVuaWNvZGUgY2hh
cmFjdGVycyB3aGVuCgkJLy8gaW4gcXVpcmtzIG1vZGUuCgkJaWYgKCBkaXYucXVl
cnlTZWxlY3RvckFsbCAmJiBkaXYucXVlcnlTZWxlY3RvckFsbCgiLlRFU1QiKS5s
ZW5ndGggPT09IDAgKSB7CgkJCXJldHVybjsKCQl9CgoJCVNpenpsZSA9IGZ1bmN0
aW9uKCBxdWVyeSwgY29udGV4dCwgZXh0cmEsIHNlZWQgKSB7CgkJCWNvbnRleHQg
PSBjb250ZXh0IHx8IGRvY3VtZW50OwoKCQkJLy8gT25seSB1c2UgcXVlcnlTZWxl
Y3RvckFsbCBvbiBub24tWE1MIGRvY3VtZW50cwoJCQkvLyAoSUQgc2VsZWN0b3Jz
IGRvbid0IHdvcmsgaW4gbm9uLUhUTUwgZG9jdW1lbnRzKQoJCQlpZiAoICFzZWVk
ICYmICFTaXp6bGUuaXNYTUwoY29udGV4dCkgKSB7CgkJCQkvLyBTZWUgaWYgd2Ug
ZmluZCBhIHNlbGVjdG9yIHRvIHNwZWVkIHVwCgkJCQl2YXIgbWF0Y2ggPSAvXihc
dyskKXxeXC4oW1x3XC1dKyQpfF4jKFtcd1wtXSskKS8uZXhlYyggcXVlcnkgKTsK
CgkJCQlpZiAoIG1hdGNoICYmIChjb250ZXh0Lm5vZGVUeXBlID09PSAxIHx8IGNv
bnRleHQubm9kZVR5cGUgPT09IDkpICkgewoJCQkJCS8vIFNwZWVkLXVwOiBTaXp6
bGUoIlRBRyIpCgkJCQkJaWYgKCBtYXRjaFsxXSApIHsKCQkJCQkJcmV0dXJuIG1h
a2VBcnJheSggY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggcXVlcnkgKSwg
ZXh0cmEgKTsKCgkJCQkJLy8gU3BlZWQtdXA6IFNpenpsZSgiLkNMQVNTIikKCQkJ
CQl9IGVsc2UgaWYgKCBtYXRjaFsyXSAmJiBFeHByLmZpbmQuQ0xBU1MgJiYgY29u
dGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICkgewoJCQkJCQlyZXR1cm4gbWFr
ZUFycmF5KCBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIG1hdGNoWzJd
ICksIGV4dHJhICk7CgkJCQkJfQoJCQkJfQoKCQkJCWlmICggY29udGV4dC5ub2Rl
VHlwZSA9PT0gOSApIHsKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCJib2R5IikK
CQkJCQkvLyBUaGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGlt
aXplIGZpbmRpbmcgaXQKCQkJCQlpZiAoIHF1ZXJ5ID09PSAiYm9keSIgJiYgY29u
dGV4dC5ib2R5ICkgewoJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBbIGNvbnRleHQu
Ym9keSBdLCBleHRyYSApOwoKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCIjSUQi
KQoJCQkJCX0gZWxzZSBpZiAoIG1hdGNoICYmIG1hdGNoWzNdICkgewoJCQkJCQl2
YXIgZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG1hdGNoWzNdICk7CgoJ
CQkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJy
eSA0LjYgcmV0dXJucwoJCQkJCQkvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIg
aW4gdGhlIGRvY3VtZW50ICM2OTYzCgkJCQkJCWlmICggZWxlbSAmJiBlbGVtLnBh
cmVudE5vZGUgKSB7CgkJCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUg
YW5kIE9wZXJhIHJldHVybiBpdGVtcwoJCQkJCQkJLy8gYnkgbmFtZSBpbnN0ZWFk
IG9mIElECgkJCQkJCQlpZiAoIGVsZW0uaWQgPT09IG1hdGNoWzNdICkgewoJCQkJ
CQkJCXJldHVybiBtYWtlQXJyYXkoIFsgZWxlbSBdLCBleHRyYSApOwoJCQkJCQkJ
fQoKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCXJldHVybiBtYWtlQXJyYXkoIFtdLCBl
eHRyYSApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQl0cnkgewoJCQkJCQlyZXR1cm4g
bWFrZUFycmF5KCBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnkpLCBleHRy
YSApOwoJCQkJCX0gY2F0Y2gocXNhRXJyb3IpIHt9CgoJCQkJLy8gcVNBIHdvcmtz
IHN0cmFuZ2VseSBvbiBFbGVtZW50LXJvb3RlZCBxdWVyaWVzCgkJCQkvLyBXZSBj
YW4gd29yayBhcm91bmQgdGhpcyBieSBzcGVjaWZ5aW5nIGFuIGV4dHJhIElEIG9u
IHRoZSByb290CgkJCQkvLyBhbmQgd29ya2luZyB1cCBmcm9tIHRoZXJlIChUaGFu
a3MgdG8gQW5kcmV3IER1cG9udCBmb3IgdGhlIHRlY2huaXF1ZSkKCQkJCS8vIElF
IDggZG9lc24ndCB3b3JrIG9uIG9iamVjdCBlbGVtZW50cwoJCQkJfSBlbHNlIGlm
ICggY29udGV4dC5ub2RlVHlwZSA9PT0gMSAmJiBjb250ZXh0Lm5vZGVOYW1lLnRv
TG93ZXJDYXNlKCkgIT09ICJvYmplY3QiICkgewoJCQkJCXZhciBvbGRDb250ZXh0
ID0gY29udGV4dCwKCQkJCQkJb2xkID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoICJp
ZCIgKSwKCQkJCQkJbmlkID0gb2xkIHx8IGlkLAoJCQkJCQloYXNQYXJlbnQgPSBj
b250ZXh0LnBhcmVudE5vZGUsCgkJCQkJCXJlbGF0aXZlSGllcmFyY2h5U2VsZWN0
b3IgPSAvXlxzKlsrfl0vLnRlc3QoIHF1ZXJ5ICk7CgoJCQkJCWlmICggIW9sZCAp
IHsKCQkJCQkJY29udGV4dC5zZXRBdHRyaWJ1dGUoICJpZCIsIG5pZCApOwoJCQkJ
CX0gZWxzZSB7CgkJCQkJCW5pZCA9IG5pZC5yZXBsYWNlKCAvJy9nLCAiXFwkJiIg
KTsKCQkJCQl9CgkJCQkJaWYgKCByZWxhdGl2ZUhpZXJhcmNoeVNlbGVjdG9yICYm
IGhhc1BhcmVudCApIHsKCQkJCQkJY29udGV4dCA9IGNvbnRleHQucGFyZW50Tm9k
ZTsKCQkJCQl9CgoJCQkJCXRyeSB7CgkJCQkJCWlmICggIXJlbGF0aXZlSGllcmFy
Y2h5U2VsZWN0b3IgfHwgaGFzUGFyZW50ICkgewoJCQkJCQkJcmV0dXJuIG1ha2VB
cnJheSggY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCAiW2lkPSciICsgbmlkICsg
IiddICIgKyBxdWVyeSApLCBleHRyYSApOwoJCQkJCQl9CgoJCQkJCX0gY2F0Y2go
cHNldWRvRXJyb3IpIHsKCQkJCQl9IGZpbmFsbHkgewoJCQkJCQlpZiAoICFvbGQg
KSB7CgkJCQkJCQlvbGRDb250ZXh0LnJlbW92ZUF0dHJpYnV0ZSggImlkIiApOwoJ
CQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlyZXR1cm4gb2xkU2l6emxlKHF1
ZXJ5LCBjb250ZXh0LCBleHRyYSwgc2VlZCk7CgkJfTsKCgkJZm9yICggdmFyIHBy
b3AgaW4gb2xkU2l6emxlICkgewoJCQlTaXp6bGVbIHByb3AgXSA9IG9sZFNpenps
ZVsgcHJvcCBdOwoJCX0KCgkJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCQlkaXYg
PSBudWxsOwoJfSkoKTsKfQoKKGZ1bmN0aW9uKCl7Cgl2YXIgaHRtbCA9IGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudCwKCQltYXRjaGVzID0gaHRtbC5tYXRjaGVzU2Vs
ZWN0b3IgfHwgaHRtbC5tb3pNYXRjaGVzU2VsZWN0b3IgfHwgaHRtbC53ZWJraXRN
YXRjaGVzU2VsZWN0b3IgfHwgaHRtbC5tc01hdGNoZXNTZWxlY3RvcjsKCglpZiAo
IG1hdGNoZXMgKSB7CgkJLy8gQ2hlY2sgdG8gc2VlIGlmIGl0J3MgcG9zc2libGUg
dG8gZG8gbWF0Y2hlc1NlbGVjdG9yCgkJLy8gb24gYSBkaXNjb25uZWN0ZWQgbm9k
ZSAoSUUgOSBmYWlscyB0aGlzKQoJCXZhciBkaXNjb25uZWN0ZWRNYXRjaCA9ICFt
YXRjaGVzLmNhbGwoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJkaXYiICksICJk
aXYiICksCgkJCXBzZXVkb1dvcmtzID0gZmFsc2U7CgoJCXRyeSB7CgkJCS8vIFRo
aXMgc2hvdWxkIGZhaWwgd2l0aCBhbiBleGNlcHRpb24KCQkJLy8gR2Vja28gZG9l
cyBub3QgZXJyb3IsIHJldHVybnMgZmFsc2UgaW5zdGVhZAoJCQltYXRjaGVzLmNh
bGwoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgIlt0ZXN0IT0nJ106c2l6emxl
IiApOwoKCQl9IGNhdGNoKCBwc2V1ZG9FcnJvciApIHsKCQkJcHNldWRvV29ya3Mg
PSB0cnVlOwoJCX0KCgkJU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9u
KCBub2RlLCBleHByICkgewoJCQkvLyBNYWtlIHN1cmUgdGhhdCBhdHRyaWJ1dGUg
c2VsZWN0b3JzIGFyZSBxdW90ZWQKCQkJZXhwciA9IGV4cHIucmVwbGFjZSgvXD1c
cyooW14nIlxdXSopXHMqXF0vZywgIj0nJDEnXSIpOwoKCQkJaWYgKCAhU2l6emxl
LmlzWE1MKCBub2RlICkgKSB7CgkJCQl0cnkgewoJCQkJCWlmICggcHNldWRvV29y
a3MgfHwgIUV4cHIubWF0Y2guUFNFVURPLnRlc3QoIGV4cHIgKSAmJiAhLyE9Ly50
ZXN0KCBleHByICkgKSB7CgkJCQkJCXZhciByZXQgPSBtYXRjaGVzLmNhbGwoIG5v
ZGUsIGV4cHIgKTsKCgkJCQkJCS8vIElFIDkncyBtYXRjaGVzU2VsZWN0b3IgcmV0
dXJucyBmYWxzZSBvbiBkaXNjb25uZWN0ZWQgbm9kZXMKCQkJCQkJaWYgKCByZXQg
fHwgIWRpc2Nvbm5lY3RlZE1hdGNoIHx8CgkJCQkJCQkJLy8gQXMgd2VsbCwgZGlz
Y29ubmVjdGVkIG5vZGVzIGFyZSBzYWlkIHRvIGJlIGluIGEgZG9jdW1lbnQKCQkJ
CQkJCQkvLyBmcmFnbWVudCBpbiBJRSA5LCBzbyBjaGVjayBmb3IgdGhhdAoJCQkJ
CQkJCW5vZGUuZG9jdW1lbnQgJiYgbm9kZS5kb2N1bWVudC5ub2RlVHlwZSAhPT0g
MTEgKSB7CgkJCQkJCQlyZXR1cm4gcmV0OwoJCQkJCQl9CgkJCQkJfQoJCQkJfSBj
YXRjaChlKSB7fQoJCQl9CgoJCQlyZXR1cm4gU2l6emxlKGV4cHIsIG51bGwsIG51
bGwsIFtub2RlXSkubGVuZ3RoID4gMDsKCQl9OwoJfQp9KSgpOwoKKGZ1bmN0aW9u
KCl7Cgl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgoJ
ZGl2LmlubmVySFRNTCA9ICI8ZGl2IGNsYXNzPSd0ZXN0IGUnPjwvZGl2PjxkaXYg
Y2xhc3M9J3Rlc3QnPjwvZGl2PiI7CgoJLy8gT3BlcmEgY2FuJ3QgZmluZCBhIHNl
Y29uZCBjbGFzc25hbWUgKGluIDkuNikKCS8vIEFsc28sIG1ha2Ugc3VyZSB0aGF0
IGdldEVsZW1lbnRzQnlDbGFzc05hbWUgYWN0dWFsbHkgZXhpc3RzCglpZiAoICFk
aXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSB8fCBkaXYuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSgiZSIpLmxlbmd0aCA9PT0gMCApIHsKCQlyZXR1cm47Cgl9CgoJLy8g
U2FmYXJpIGNhY2hlcyBjbGFzcyBhdHRyaWJ1dGVzLCBkb2Vzbid0IGNhdGNoIGNo
YW5nZXMgKGluIDMuMikKCWRpdi5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gImUiOwoK
CWlmICggZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGggPT09
IDEgKSB7CgkJcmV0dXJuOwoJfQoKCUV4cHIub3JkZXIuc3BsaWNlKDEsIDAsICJD
TEFTUyIpOwoJRXhwci5maW5kLkNMQVNTID0gZnVuY3Rpb24oIG1hdGNoLCBjb250
ZXh0LCBpc1hNTCApIHsKCQlpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRz
QnlDbGFzc05hbWUgIT09ICJ1bmRlZmluZWQiICYmICFpc1hNTCApIHsKCQkJcmV0
dXJuIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShtYXRjaFsxXSk7CgkJ
fQoJfTsKCgkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJZGl2ID0gbnVsbDsKfSko
KTsKCmZ1bmN0aW9uIGRpck5vZGVDaGVjayggZGlyLCBjdXIsIGRvbmVOYW1lLCBj
aGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCApIHsKCWZvciAoIHZhciBpID0gMCwg
bCA9IGNoZWNrU2V0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIgZWxlbSA9
IGNoZWNrU2V0W2ldOwoKCQlpZiAoIGVsZW0gKSB7CgkJCXZhciBtYXRjaCA9IGZh
bHNlOwoKCQkJZWxlbSA9IGVsZW1bZGlyXTsKCgkJCXdoaWxlICggZWxlbSApIHsK
CQkJCWlmICggZWxlbVsgZXhwYW5kbyBdID09PSBkb25lTmFtZSApIHsKCQkJCQlt
YXRjaCA9IGNoZWNrU2V0W2VsZW0uc2l6c2V0XTsKCQkJCQlicmVhazsKCQkJCX0K
CgkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgIWlzWE1MICl7CgkJCQkJ
ZWxlbVsgZXhwYW5kbyBdID0gZG9uZU5hbWU7CgkJCQkJZWxlbS5zaXpzZXQgPSBp
OwoJCQkJfQoKCQkJCWlmICggZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09
PSBjdXIgKSB7CgkJCQkJbWF0Y2ggPSBlbGVtOwoJCQkJCWJyZWFrOwoJCQkJfQoK
CQkJCWVsZW0gPSBlbGVtW2Rpcl07CgkJCX0KCgkJCWNoZWNrU2V0W2ldID0gbWF0
Y2g7CgkJfQoJfQp9CgpmdW5jdGlvbiBkaXJDaGVjayggZGlyLCBjdXIsIGRvbmVO
YW1lLCBjaGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCApIHsKCWZvciAoIHZhciBp
ID0gMCwgbCA9IGNoZWNrU2V0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIg
ZWxlbSA9IGNoZWNrU2V0W2ldOwoKCQlpZiAoIGVsZW0gKSB7CgkJCXZhciBtYXRj
aCA9IGZhbHNlOwoKCQkJZWxlbSA9IGVsZW1bZGlyXTsKCgkJCXdoaWxlICggZWxl
bSApIHsKCQkJCWlmICggZWxlbVsgZXhwYW5kbyBdID09PSBkb25lTmFtZSApIHsK
CQkJCQltYXRjaCA9IGNoZWNrU2V0W2VsZW0uc2l6c2V0XTsKCQkJCQlicmVhazsK
CQkJCX0KCgkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJaWYg
KCAhaXNYTUwgKSB7CgkJCQkJCWVsZW1bIGV4cGFuZG8gXSA9IGRvbmVOYW1lOwoJ
CQkJCQllbGVtLnNpenNldCA9IGk7CgkJCQkJfQoKCQkJCQlpZiAoIHR5cGVvZiBj
dXIgIT09ICJzdHJpbmciICkgewoJCQkJCQlpZiAoIGVsZW0gPT09IGN1ciApIHsK
CQkJCQkJCW1hdGNoID0gdHJ1ZTsKCQkJCQkJCWJyZWFrOwoJCQkJCQl9CgoJCQkJ
CX0gZWxzZSBpZiAoIFNpenpsZS5maWx0ZXIoIGN1ciwgW2VsZW1dICkubGVuZ3Ro
ID4gMCApIHsKCQkJCQkJbWF0Y2ggPSBlbGVtOwoJCQkJCQlicmVhazsKCQkJCQl9
CgkJCQl9CgoJCQkJZWxlbSA9IGVsZW1bZGlyXTsKCQkJfQoKCQkJY2hlY2tTZXRb
aV0gPSBtYXRjaDsKCQl9Cgl9Cn0KCmlmICggZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LmNvbnRhaW5zICkgewoJU2l6emxlLmNvbnRhaW5zID0gZnVuY3Rpb24oIGEs
IGIgKSB7CgkJcmV0dXJuIGEgIT09IGIgJiYgKGEuY29udGFpbnMgPyBhLmNvbnRh
aW5zKGIpIDogdHJ1ZSk7Cgl9OwoKfSBlbHNlIGlmICggZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uICkgewoJU2l6emxlLmNv
bnRhaW5zID0gZnVuY3Rpb24oIGEsIGIgKSB7CgkJcmV0dXJuICEhKGEuY29tcGFy
ZURvY3VtZW50UG9zaXRpb24oYikgJiAxNik7Cgl9OwoKfSBlbHNlIHsKCVNpenps
ZS5jb250YWlucyA9IGZ1bmN0aW9uKCkgewoJCXJldHVybiBmYWxzZTsKCX07Cn0K
ClNpenpsZS5pc1hNTCA9IGZ1bmN0aW9uKCBlbGVtICkgewoJLy8gZG9jdW1lbnRF
bGVtZW50IGlzIHZlcmlmaWVkIGZvciBjYXNlcyB3aGVyZSBpdCBkb2Vzbid0IHll
dCBleGlzdAoJLy8gKHN1Y2ggYXMgbG9hZGluZyBpZnJhbWVzIGluIElFIC0gIzQ4
MzMpCgl2YXIgZG9jdW1lbnRFbGVtZW50ID0gKGVsZW0gPyBlbGVtLm93bmVyRG9j
dW1lbnQgfHwgZWxlbSA6IDApLmRvY3VtZW50RWxlbWVudDsKCglyZXR1cm4gZG9j
dW1lbnRFbGVtZW50ID8gZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lICE9PSAiSFRN
TCIgOiBmYWxzZTsKfTsKCnZhciBwb3NQcm9jZXNzID0gZnVuY3Rpb24oIHNlbGVj
dG9yLCBjb250ZXh0LCBzZWVkICkgewoJdmFyIG1hdGNoLAoJCXRtcFNldCA9IFtd
LAoJCWxhdGVyID0gIiIsCgkJcm9vdCA9IGNvbnRleHQubm9kZVR5cGUgPyBbY29u
dGV4dF0gOiBjb250ZXh0OwoKCS8vIFBvc2l0aW9uIHNlbGVjdG9ycyBtdXN0IGJl
IGRvbmUgYWZ0ZXIgdGhlIGZpbHRlcgoJLy8gQW5kIHNvIG11c3QgOm5vdChwb3Np
dGlvbmFsKSBzbyB3ZSBtb3ZlIGFsbCBQU0VVRE9zIHRvIHRoZSBlbmQKCXdoaWxl
ICggKG1hdGNoID0gRXhwci5tYXRjaC5QU0VVRE8uZXhlYyggc2VsZWN0b3IgKSkg
KSB7CgkJbGF0ZXIgKz0gbWF0Y2hbMF07CgkJc2VsZWN0b3IgPSBzZWxlY3Rvci5y
ZXBsYWNlKCBFeHByLm1hdGNoLlBTRVVETywgIiIgKTsKCX0KCglzZWxlY3RvciA9
IEV4cHIucmVsYXRpdmVbc2VsZWN0b3JdID8gc2VsZWN0b3IgKyAiKiIgOiBzZWxl
Y3RvcjsKCglmb3IgKCB2YXIgaSA9IDAsIGwgPSByb290Lmxlbmd0aDsgaSA8IGw7
IGkrKyApIHsKCQlTaXp6bGUoIHNlbGVjdG9yLCByb290W2ldLCB0bXBTZXQsIHNl
ZWQgKTsKCX0KCglyZXR1cm4gU2l6emxlLmZpbHRlciggbGF0ZXIsIHRtcFNldCAp
Owp9OwoKLy8gRVhQT1NFCi8vIE92ZXJyaWRlIHNpenpsZSBhdHRyaWJ1dGUgcmV0
cmlldmFsClNpenpsZS5hdHRyID0galF1ZXJ5LmF0dHI7ClNpenpsZS5zZWxlY3Rv
cnMuYXR0ck1hcCA9IHt9OwpqUXVlcnkuZmluZCA9IFNpenpsZTsKalF1ZXJ5LmV4
cHIgPSBTaXp6bGUuc2VsZWN0b3JzOwpqUXVlcnkuZXhwclsiOiJdID0galF1ZXJ5
LmV4cHIuZmlsdGVyczsKalF1ZXJ5LnVuaXF1ZSA9IFNpenpsZS51bmlxdWVTb3J0
OwpqUXVlcnkudGV4dCA9IFNpenpsZS5nZXRUZXh0OwpqUXVlcnkuaXNYTUxEb2Mg
PSBTaXp6bGUuaXNYTUw7CmpRdWVyeS5jb250YWlucyA9IFNpenpsZS5jb250YWlu
czsKCgp9KSgpOwoKCnZhciBydW50aWwgPSAvVW50aWwkLywKCXJwYXJlbnRzcHJl
diA9IC9eKD86cGFyZW50c3xwcmV2VW50aWx8cHJldkFsbCkvLAoJLy8gTm90ZTog
VGhpcyBSZWdFeHAgc2hvdWxkIGJlIGltcHJvdmVkLCBvciBsaWtlbHkgcHVsbGVk
IGZyb20gU2l6emxlCglybXVsdGlzZWxlY3RvciA9IC8sLywKCWlzU2ltcGxlID0g
L14uW146I1xbXC4sXSokLywKCXNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNl
LAoJUE9TID0galF1ZXJ5LmV4cHIubWF0Y2guZ2xvYmFsUE9TLAoJLy8gbWV0aG9k
cyBndWFyYW50ZWVkIHRvIHByb2R1Y2UgYSB1bmlxdWUgc2V0IHdoZW4gc3RhcnRp
bmcgZnJvbSBhIHVuaXF1ZSBzZXQKCWd1YXJhbnRlZWRVbmlxdWUgPSB7CgkJY2hp
bGRyZW46IHRydWUsCgkJY29udGVudHM6IHRydWUsCgkJbmV4dDogdHJ1ZSwKCQlw
cmV2OiB0cnVlCgl9OwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglmaW5kOiBmdW5jdGlv
biggc2VsZWN0b3IgKSB7CgkJdmFyIHNlbGYgPSB0aGlzLAoJCQlpLCBsOwoKCQlp
ZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gInN0cmluZyIgKSB7CgkJCXJldHVybiBq
UXVlcnkoIHNlbGVjdG9yICkuZmlsdGVyKGZ1bmN0aW9uKCkgewoJCQkJZm9yICgg
aSA9IDAsIGwgPSBzZWxmLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCQlpZiAo
IGpRdWVyeS5jb250YWlucyggc2VsZlsgaSBdLCB0aGlzICkgKSB7CgkJCQkJCXJl
dHVybiB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJfSk7CgkJfQoKCQl2YXIgcmV0ID0g
dGhpcy5wdXNoU3RhY2soICIiLCAiZmluZCIsIHNlbGVjdG9yICksCgkJCWxlbmd0
aCwgbiwgcjsKCgkJZm9yICggaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7
IGkrKyApIHsKCQkJbGVuZ3RoID0gcmV0Lmxlbmd0aDsKCQkJalF1ZXJ5LmZpbmQo
IHNlbGVjdG9yLCB0aGlzW2ldLCByZXQgKTsKCgkJCWlmICggaSA+IDAgKSB7CgkJ
CQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgcmVzdWx0cyBhcmUgdW5pcXVlCgkJCQlm
b3IgKCBuID0gbGVuZ3RoOyBuIDwgcmV0Lmxlbmd0aDsgbisrICkgewoJCQkJCWZv
ciAoIHIgPSAwOyByIDwgbGVuZ3RoOyByKysgKSB7CgkJCQkJCWlmICggcmV0W3Jd
ID09PSByZXRbbl0gKSB7CgkJCQkJCQlyZXQuc3BsaWNlKG4tLSwgMSk7CgkJCQkJ
CQlicmVhazsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJu
IHJldDsKCX0sCgoJaGFzOiBmdW5jdGlvbiggdGFyZ2V0ICkgewoJCXZhciB0YXJn
ZXRzID0galF1ZXJ5KCB0YXJnZXQgKTsKCQlyZXR1cm4gdGhpcy5maWx0ZXIoZnVu
Y3Rpb24oKSB7CgkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRhcmdldHMubGVuZ3Ro
OyBpIDwgbDsgaSsrICkgewoJCQkJaWYgKCBqUXVlcnkuY29udGFpbnMoIHRoaXMs
IHRhcmdldHNbaV0gKSApIHsKCQkJCQlyZXR1cm4gdHJ1ZTsKCQkJCX0KCQkJfQoJ
CX0pOwoJfSwKCglub3Q6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQlyZXR1cm4g
dGhpcy5wdXNoU3RhY2soIHdpbm5vdyh0aGlzLCBzZWxlY3RvciwgZmFsc2UpLCAi
bm90Iiwgc2VsZWN0b3IpOwoJfSwKCglmaWx0ZXI6IGZ1bmN0aW9uKCBzZWxlY3Rv
ciApIHsKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHdpbm5vdyh0aGlzLCBzZWxl
Y3RvciwgdHJ1ZSksICJmaWx0ZXIiLCBzZWxlY3RvciApOwoJfSwKCglpczogZnVu
Y3Rpb24oIHNlbGVjdG9yICkgewoJCXJldHVybiAhIXNlbGVjdG9yICYmICgKCQkJ
dHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiA/CgkJCQkvLyBJZiB0aGlzIGlz
IGEgcG9zaXRpb25hbCBzZWxlY3RvciwgY2hlY2sgbWVtYmVyc2hpcCBpbiB0aGUg
cmV0dXJuZWQgc2V0CgkJCQkvLyBzbyAkKCJwOmZpcnN0IikuaXMoInA6bGFzdCIp
IHdvbid0IHJldHVybiB0cnVlIGZvciBhIGRvYyB3aXRoIHR3byAicCIuCgkJCQlQ
T1MudGVzdCggc2VsZWN0b3IgKSA/CgkJCQkJalF1ZXJ5KCBzZWxlY3RvciwgdGhp
cy5jb250ZXh0ICkuaW5kZXgoIHRoaXNbMF0gKSA+PSAwIDoKCQkJCQlqUXVlcnku
ZmlsdGVyKCBzZWxlY3RvciwgdGhpcyApLmxlbmd0aCA+IDAgOgoJCQkJdGhpcy5m
aWx0ZXIoIHNlbGVjdG9yICkubGVuZ3RoID4gMCApOwoJfSwKCgljbG9zZXN0OiBm
dW5jdGlvbiggc2VsZWN0b3JzLCBjb250ZXh0ICkgewoJCXZhciByZXQgPSBbXSwg
aSwgbCwgY3VyID0gdGhpc1swXTsKCgkJLy8gQXJyYXkgKGRlcHJlY2F0ZWQgYXMg
b2YgalF1ZXJ5IDEuNykKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBzZWxlY3RvcnMg
KSApIHsKCQkJdmFyIGxldmVsID0gMTsKCgkJCXdoaWxlICggY3VyICYmIGN1ci5v
d25lckRvY3VtZW50ICYmIGN1ciAhPT0gY29udGV4dCApIHsKCQkJCWZvciAoIGkg
PSAwOyBpIDwgc2VsZWN0b3JzLmxlbmd0aDsgaSsrICkgewoKCQkJCQlpZiAoIGpR
dWVyeSggY3VyICkuaXMoIHNlbGVjdG9yc1sgaSBdICkgKSB7CgkJCQkJCXJldC5w
dXNoKHsgc2VsZWN0b3I6IHNlbGVjdG9yc1sgaSBdLCBlbGVtOiBjdXIsIGxldmVs
OiBsZXZlbCB9KTsKCQkJCQl9CgkJCQl9CgoJCQkJY3VyID0gY3VyLnBhcmVudE5v
ZGU7CgkJCQlsZXZlbCsrOwoJCQl9CgoJCQlyZXR1cm4gcmV0OwoJCX0KCgkJLy8g
U3RyaW5nCgkJdmFyIHBvcyA9IFBPUy50ZXN0KCBzZWxlY3RvcnMgKSB8fCB0eXBl
b2Ygc2VsZWN0b3JzICE9PSAic3RyaW5nIiA/CgkJCQlqUXVlcnkoIHNlbGVjdG9y
cywgY29udGV4dCB8fCB0aGlzLmNvbnRleHQgKSA6CgkJCQkwOwoKCQlmb3IgKCBp
ID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQljdXIgPSB0
aGlzW2ldOwoKCQkJd2hpbGUgKCBjdXIgKSB7CgkJCQlpZiAoIHBvcyA/IHBvcy5p
bmRleChjdXIpID4gLTEgOiBqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoY3Vy
LCBzZWxlY3RvcnMpICkgewoJCQkJCXJldC5wdXNoKCBjdXIgKTsKCQkJCQlicmVh
azsKCgkJCQl9IGVsc2UgewoJCQkJCWN1ciA9IGN1ci5wYXJlbnROb2RlOwoJCQkJ
CWlmICggIWN1ciB8fCAhY3VyLm93bmVyRG9jdW1lbnQgfHwgY3VyID09PSBjb250
ZXh0IHx8IGN1ci5ub2RlVHlwZSA9PT0gMTEgKSB7CgkJCQkJCWJyZWFrOwoJCQkJ
CX0KCQkJCX0KCQkJfQoJCX0KCgkJcmV0ID0gcmV0Lmxlbmd0aCA+IDEgPyBqUXVl
cnkudW5pcXVlKCByZXQgKSA6IHJldDsKCgkJcmV0dXJuIHRoaXMucHVzaFN0YWNr
KCByZXQsICJjbG9zZXN0Iiwgc2VsZWN0b3JzICk7Cgl9LAoKCS8vIERldGVybWlu
ZSB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCB3aXRoaW4KCS8vIHRoZSBtYXRj
aGVkIHNldCBvZiBlbGVtZW50cwoJaW5kZXg6IGZ1bmN0aW9uKCBlbGVtICkgewoK
CQkvLyBObyBhcmd1bWVudCwgcmV0dXJuIGluZGV4IGluIHBhcmVudAoJCWlmICgg
IWVsZW0gKSB7CgkJCXJldHVybiAoIHRoaXNbMF0gJiYgdGhpc1swXS5wYXJlbnRO
b2RlICkgPyB0aGlzLnByZXZBbGwoKS5sZW5ndGggOiAtMTsKCQl9CgoJCS8vIGlu
ZGV4IGluIHNlbGVjdG9yCgkJaWYgKCB0eXBlb2YgZWxlbSA9PT0gInN0cmluZyIg
KSB7CgkJCXJldHVybiBqUXVlcnkuaW5BcnJheSggdGhpc1swXSwgalF1ZXJ5KCBl
bGVtICkgKTsKCQl9CgoJCS8vIExvY2F0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIGRl
c2lyZWQgZWxlbWVudAoJCXJldHVybiBqUXVlcnkuaW5BcnJheSgKCQkJLy8gSWYg
aXQgcmVjZWl2ZXMgYSBqUXVlcnkgb2JqZWN0LCB0aGUgZmlyc3QgZWxlbWVudCBp
cyB1c2VkCgkJCWVsZW0uanF1ZXJ5ID8gZWxlbVswXSA6IGVsZW0sIHRoaXMgKTsK
CX0sCgoJYWRkOiBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7CgkJdmFy
IHNldCA9IHR5cGVvZiBzZWxlY3RvciA9PT0gInN0cmluZyIgPwoJCQkJalF1ZXJ5
KCBzZWxlY3RvciwgY29udGV4dCApIDoKCQkJCWpRdWVyeS5tYWtlQXJyYXkoIHNl
bGVjdG9yICYmIHNlbGVjdG9yLm5vZGVUeXBlID8gWyBzZWxlY3RvciBdIDogc2Vs
ZWN0b3IgKSwKCQkJYWxsID0galF1ZXJ5Lm1lcmdlKCB0aGlzLmdldCgpLCBzZXQg
KTsKCgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBpc0Rpc2Nvbm5lY3RlZCggc2V0
WzBdICkgfHwgaXNEaXNjb25uZWN0ZWQoIGFsbFswXSApID8KCQkJYWxsIDoKCQkJ
alF1ZXJ5LnVuaXF1ZSggYWxsICkgKTsKCX0sCgoJYW5kU2VsZjogZnVuY3Rpb24o
KSB7CgkJcmV0dXJuIHRoaXMuYWRkKCB0aGlzLnByZXZPYmplY3QgKTsKCX0KfSk7
CgovLyBBIHBhaW5mdWxseSBzaW1wbGUgY2hlY2sgdG8gc2VlIGlmIGFuIGVsZW1l
bnQgaXMgZGlzY29ubmVjdGVkCi8vIGZyb20gYSBkb2N1bWVudCAoc2hvdWxkIGJl
IGltcHJvdmVkLCB3aGVyZSBmZWFzaWJsZSkuCmZ1bmN0aW9uIGlzRGlzY29ubmVj
dGVkKCBub2RlICkgewoJcmV0dXJuICFub2RlIHx8ICFub2RlLnBhcmVudE5vZGUg
fHwgbm9kZS5wYXJlbnROb2RlLm5vZGVUeXBlID09PSAxMTsKfQoKalF1ZXJ5LmVh
Y2goewoJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgcGFyZW50ID0g
ZWxlbS5wYXJlbnROb2RlOwoJCXJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVU
eXBlICE9PSAxMSA/IHBhcmVudCA6IG51bGw7Cgl9LAoJcGFyZW50czogZnVuY3Rp
b24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sICJwYXJlbnRO
b2RlIiApOwoJfSwKCXBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVu
dGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicGFyZW50Tm9kZSIs
IHVudGlsICk7Cgl9LAoJbmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJu
IGpRdWVyeS5udGgoIGVsZW0sIDIsICJuZXh0U2libGluZyIgKTsKCX0sCglwcmV2
OiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5Lm50aCggZWxlbSwg
MiwgInByZXZpb3VzU2libGluZyIgKTsKCX0sCgluZXh0QWxsOiBmdW5jdGlvbigg
ZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmRpciggZWxlbSwgIm5leHRTaWJsaW5n
IiApOwoJfSwKCXByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkgewoJCXJldHVybiBq
UXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiApOwoJfSwKCW5leHRV
bnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVl
cnkuZGlyKCBlbGVtLCAibmV4dFNpYmxpbmciLCB1bnRpbCApOwoJfSwKCXByZXZV
bnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVl
cnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiwgdW50aWwgKTsKCX0sCglz
aWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5zaWJs
aW5nKCAoIGVsZW0ucGFyZW50Tm9kZSB8fCB7fSApLmZpcnN0Q2hpbGQsIGVsZW0g
KTsKCX0sCgljaGlsZHJlbjogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpR
dWVyeS5zaWJsaW5nKCBlbGVtLmZpcnN0Q2hpbGQgKTsKCX0sCgljb250ZW50czog
ZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5ub2RlTmFtZSggZWxl
bSwgImlmcmFtZSIgKSA/CgkJCWVsZW0uY29udGVudERvY3VtZW50IHx8IGVsZW0u
Y29udGVudFdpbmRvdy5kb2N1bWVudCA6CgkJCWpRdWVyeS5tYWtlQXJyYXkoIGVs
ZW0uY2hpbGROb2RlcyApOwoJfQp9LCBmdW5jdGlvbiggbmFtZSwgZm4gKSB7Cglq
UXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCB1bnRpbCwgc2VsZWN0b3IgKSB7
CgkJdmFyIHJldCA9IGpRdWVyeS5tYXAoIHRoaXMsIGZuLCB1bnRpbCApOwoKCQlp
ZiAoICFydW50aWwudGVzdCggbmFtZSApICkgewoJCQlzZWxlY3RvciA9IHVudGls
OwoJCX0KCgkJaWYgKCBzZWxlY3RvciAmJiB0eXBlb2Ygc2VsZWN0b3IgPT09ICJz
dHJpbmciICkgewoJCQlyZXQgPSBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgcmV0
ICk7CgkJfQoKCQlyZXQgPSB0aGlzLmxlbmd0aCA+IDEgJiYgIWd1YXJhbnRlZWRV
bmlxdWVbIG5hbWUgXSA/IGpRdWVyeS51bmlxdWUoIHJldCApIDogcmV0OwoKCQlp
ZiAoICh0aGlzLmxlbmd0aCA+IDEgfHwgcm11bHRpc2VsZWN0b3IudGVzdCggc2Vs
ZWN0b3IgKSkgJiYgcnBhcmVudHNwcmV2LnRlc3QoIG5hbWUgKSApIHsKCQkJcmV0
ID0gcmV0LnJldmVyc2UoKTsKCQl9CgoJCXJldHVybiB0aGlzLnB1c2hTdGFjaygg
cmV0LCBuYW1lLCBzbGljZS5jYWxsKCBhcmd1bWVudHMgKS5qb2luKCIsIikgKTsK
CX07Cn0pOwoKalF1ZXJ5LmV4dGVuZCh7CglmaWx0ZXI6IGZ1bmN0aW9uKCBleHBy
LCBlbGVtcywgbm90ICkgewoJCWlmICggbm90ICkgewoJCQlleHByID0gIjpub3Qo
IiArIGV4cHIgKyAiKSI7CgkJfQoKCQlyZXR1cm4gZWxlbXMubGVuZ3RoID09PSAx
ID8KCQkJalF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKGVsZW1zWzBdLCBleHBy
KSA/IFsgZWxlbXNbMF0gXSA6IFtdIDoKCQkJalF1ZXJ5LmZpbmQubWF0Y2hlcyhl
eHByLCBlbGVtcyk7Cgl9LAoKCWRpcjogZnVuY3Rpb24oIGVsZW0sIGRpciwgdW50
aWwgKSB7CgkJdmFyIG1hdGNoZWQgPSBbXSwKCQkJY3VyID0gZWxlbVsgZGlyIF07
CgoJCXdoaWxlICggY3VyICYmIGN1ci5ub2RlVHlwZSAhPT0gOSAmJiAodW50aWwg
PT09IHVuZGVmaW5lZCB8fCBjdXIubm9kZVR5cGUgIT09IDEgfHwgIWpRdWVyeSgg
Y3VyICkuaXMoIHVudGlsICkpICkgewoJCQlpZiAoIGN1ci5ub2RlVHlwZSA9PT0g
MSApIHsKCQkJCW1hdGNoZWQucHVzaCggY3VyICk7CgkJCX0KCQkJY3VyID0gY3Vy
W2Rpcl07CgkJfQoJCXJldHVybiBtYXRjaGVkOwoJfSwKCgludGg6IGZ1bmN0aW9u
KCBjdXIsIHJlc3VsdCwgZGlyLCBlbGVtICkgewoJCXJlc3VsdCA9IHJlc3VsdCB8
fCAxOwoJCXZhciBudW0gPSAwOwoKCQlmb3IgKCA7IGN1cjsgY3VyID0gY3VyW2Rp
cl0gKSB7CgkJCWlmICggY3VyLm5vZGVUeXBlID09PSAxICYmICsrbnVtID09PSBy
ZXN1bHQgKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJcmV0dXJuIGN1cjsKCX0s
CgoJc2libGluZzogZnVuY3Rpb24oIG4sIGVsZW0gKSB7CgkJdmFyIHIgPSBbXTsK
CgkJZm9yICggOyBuOyBuID0gbi5uZXh0U2libGluZyApIHsKCQkJaWYgKCBuLm5v
ZGVUeXBlID09PSAxICYmIG4gIT09IGVsZW0gKSB7CgkJCQlyLnB1c2goIG4gKTsK
CQkJfQoJCX0KCgkJcmV0dXJuIHI7Cgl9Cn0pOwoKLy8gSW1wbGVtZW50IHRoZSBp
ZGVudGljYWwgZnVuY3Rpb25hbGl0eSBmb3IgZmlsdGVyIGFuZCBub3QKZnVuY3Rp
b24gd2lubm93KCBlbGVtZW50cywgcXVhbGlmaWVyLCBrZWVwICkgewoKCS8vIENh
bid0IHBhc3MgbnVsbCBvciB1bmRlZmluZWQgdG8gaW5kZXhPZiBpbiBGaXJlZm94
IDQKCS8vIFNldCB0byAwIHRvIHNraXAgc3RyaW5nIGNoZWNrCglxdWFsaWZpZXIg
PSBxdWFsaWZpZXIgfHwgMDsKCglpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBxdWFs
aWZpZXIgKSApIHsKCQlyZXR1cm4galF1ZXJ5LmdyZXAoZWxlbWVudHMsIGZ1bmN0
aW9uKCBlbGVtLCBpICkgewoJCQl2YXIgcmV0VmFsID0gISFxdWFsaWZpZXIuY2Fs
bCggZWxlbSwgaSwgZWxlbSApOwoJCQlyZXR1cm4gcmV0VmFsID09PSBrZWVwOwoJ
CX0pOwoKCX0gZWxzZSBpZiAoIHF1YWxpZmllci5ub2RlVHlwZSApIHsKCQlyZXR1
cm4galF1ZXJ5LmdyZXAoZWxlbWVudHMsIGZ1bmN0aW9uKCBlbGVtLCBpICkgewoJ
CQlyZXR1cm4gKCBlbGVtID09PSBxdWFsaWZpZXIgKSA9PT0ga2VlcDsKCQl9KTsK
Cgl9IGVsc2UgaWYgKCB0eXBlb2YgcXVhbGlmaWVyID09PSAic3RyaW5nIiApIHsK
CQl2YXIgZmlsdGVyZWQgPSBqUXVlcnkuZ3JlcChlbGVtZW50cywgZnVuY3Rpb24o
IGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLm5vZGVUeXBlID09PSAxOwoJCX0pOwoK
CQlpZiAoIGlzU2ltcGxlLnRlc3QoIHF1YWxpZmllciApICkgewoJCQlyZXR1cm4g
alF1ZXJ5LmZpbHRlcihxdWFsaWZpZXIsIGZpbHRlcmVkLCAha2VlcCk7CgkJfSBl
bHNlIHsKCQkJcXVhbGlmaWVyID0galF1ZXJ5LmZpbHRlciggcXVhbGlmaWVyLCBm
aWx0ZXJlZCApOwoJCX0KCX0KCglyZXR1cm4galF1ZXJ5LmdyZXAoZWxlbWVudHMs
IGZ1bmN0aW9uKCBlbGVtLCBpICkgewoJCXJldHVybiAoIGpRdWVyeS5pbkFycmF5
KCBlbGVtLCBxdWFsaWZpZXIgKSA+PSAwICkgPT09IGtlZXA7Cgl9KTsKfQoKCgoK
ZnVuY3Rpb24gY3JlYXRlU2FmZUZyYWdtZW50KCBkb2N1bWVudCApIHsKCXZhciBs
aXN0ID0gbm9kZU5hbWVzLnNwbGl0KCAifCIgKSwKCXNhZmVGcmFnID0gZG9jdW1l
bnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwoKCWlmICggc2FmZUZyYWcuY3Jl
YXRlRWxlbWVudCApIHsKCQl3aGlsZSAoIGxpc3QubGVuZ3RoICkgewoJCQlzYWZl
RnJhZy5jcmVhdGVFbGVtZW50KAoJCQkJbGlzdC5wb3AoKQoJCQkpOwoJCX0KCX0K
CXJldHVybiBzYWZlRnJhZzsKfQoKdmFyIG5vZGVOYW1lcyA9ICJhYmJyfGFydGlj
bGV8YXNpZGV8YXVkaW98YmRpfGNhbnZhc3xkYXRhfGRhdGFsaXN0fGRldGFpbHN8
ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfCIgKwoJCSJoZWFkZXJ8aGdyb3VwfG1h
cmt8bWV0ZXJ8bmF2fG91dHB1dHxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGlt
ZXx2aWRlbyIsCglyaW5saW5lalF1ZXJ5ID0gLyBqUXVlcnlcZCs9Iig/OlxkK3xu
dWxsKSIvZywKCXJsZWFkaW5nV2hpdGVzcGFjZSA9IC9eXHMrLywKCXJ4aHRtbFRh
ZyA9IC88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0
YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vaWcsCglydGFnTmFtZSA9IC88KFtc
dzpdKykvLAoJcnRib2R5ID0gLzx0Ym9keS9pLAoJcmh0bWwgPSAvPHwmIz9cdys7
LywKCXJub0lubmVyaHRtbCA9IC88KD86c2NyaXB0fHN0eWxlKS9pLAoJcm5vY2Fj
aGUgPSAvPCg/OnNjcmlwdHxvYmplY3R8ZW1iZWR8b3B0aW9ufHN0eWxlKS9pLAoJ
cm5vc2hpbWNhY2hlID0gbmV3IFJlZ0V4cCgiPCg/OiIgKyBub2RlTmFtZXMgKyAi
KVtcXHMvPl0iLCAiaSIpLAoJLy8gY2hlY2tlZD0iY2hlY2tlZCIgb3IgY2hlY2tl
ZAoJcmNoZWNrZWQgPSAvY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikv
aSwKCXJzY3JpcHRUeXBlID0gL1wvKGphdmF8ZWNtYSlzY3JpcHQvaSwKCXJjbGVh
blNjcmlwdCA9IC9eXHMqPCEoPzpcW0NEQVRBXFt8XC1cLSkvLAoJd3JhcE1hcCA9
IHsKCQlvcHRpb246IFsgMSwgIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4i
LCAiPC9zZWxlY3Q+IiBdLAoJCWxlZ2VuZDogWyAxLCAiPGZpZWxkc2V0PiIsICI8
L2ZpZWxkc2V0PiIgXSwKCQl0aGVhZDogWyAxLCAiPHRhYmxlPiIsICI8L3RhYmxl
PiIgXSwKCQl0cjogWyAyLCAiPHRhYmxlPjx0Ym9keT4iLCAiPC90Ym9keT48L3Rh
YmxlPiIgXSwKCQl0ZDogWyAzLCAiPHRhYmxlPjx0Ym9keT48dHI+IiwgIjwvdHI+
PC90Ym9keT48L3RhYmxlPiIgXSwKCQljb2w6IFsgMiwgIjx0YWJsZT48dGJvZHk+
PC90Ym9keT48Y29sZ3JvdXA+IiwgIjwvY29sZ3JvdXA+PC90YWJsZT4iIF0sCgkJ
YXJlYTogWyAxLCAiPG1hcD4iLCAiPC9tYXA+IiBdLAoJCV9kZWZhdWx0OiBbIDAs
ICIiLCAiIiBdCgl9LAoJc2FmZUZyYWdtZW50ID0gY3JlYXRlU2FmZUZyYWdtZW50
KCBkb2N1bWVudCApOwoKd3JhcE1hcC5vcHRncm91cCA9IHdyYXBNYXAub3B0aW9u
Owp3cmFwTWFwLnRib2R5ID0gd3JhcE1hcC50Zm9vdCA9IHdyYXBNYXAuY29sZ3Jv
dXAgPSB3cmFwTWFwLmNhcHRpb24gPSB3cmFwTWFwLnRoZWFkOwp3cmFwTWFwLnRo
ID0gd3JhcE1hcC50ZDsKCi8vIElFIGNhbid0IHNlcmlhbGl6ZSA8bGluaz4gYW5k
IDxzY3JpcHQ+IHRhZ3Mgbm9ybWFsbHkKaWYgKCAhalF1ZXJ5LnN1cHBvcnQuaHRt
bFNlcmlhbGl6ZSApIHsKCXdyYXBNYXAuX2RlZmF1bHQgPSBbIDEsICJkaXY8ZGl2
PiIsICI8L2Rpdj4iIF07Cn0KCmpRdWVyeS5mbi5leHRlbmQoewoJdGV4dDogZnVu
Y3Rpb24oIHZhbHVlICkgewoJCXJldHVybiBqUXVlcnkuYWNjZXNzKCB0aGlzLCBm
dW5jdGlvbiggdmFsdWUgKSB7CgkJCXJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVk
ID8KCQkJCWpRdWVyeS50ZXh0KCB0aGlzICkgOgoJCQkJdGhpcy5lbXB0eSgpLmFw
cGVuZCggKCB0aGlzWzBdICYmIHRoaXNbMF0ub3duZXJEb2N1bWVudCB8fCBkb2N1
bWVudCApLmNyZWF0ZVRleHROb2RlKCB2YWx1ZSApICk7CgkJfSwgbnVsbCwgdmFs
dWUsIGFyZ3VtZW50cy5sZW5ndGggKTsKCX0sCgoJd3JhcEFsbDogZnVuY3Rpb24o
IGh0bWwgKSB7CgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggaHRtbCApICkgewoJ
CQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCWpRdWVyeSh0aGlz
KS53cmFwQWxsKCBodG1sLmNhbGwodGhpcywgaSkgKTsKCQkJfSk7CgkJfQoKCQlp
ZiAoIHRoaXNbMF0gKSB7CgkJCS8vIFRoZSBlbGVtZW50cyB0byB3cmFwIHRoZSB0
YXJnZXQgYXJvdW5kCgkJCXZhciB3cmFwID0galF1ZXJ5KCBodG1sLCB0aGlzWzBd
Lm93bmVyRG9jdW1lbnQgKS5lcSgwKS5jbG9uZSh0cnVlKTsKCgkJCWlmICggdGhp
c1swXS5wYXJlbnROb2RlICkgewoJCQkJd3JhcC5pbnNlcnRCZWZvcmUoIHRoaXNb
MF0gKTsKCQkJfQoKCQkJd3JhcC5tYXAoZnVuY3Rpb24oKSB7CgkJCQl2YXIgZWxl
bSA9IHRoaXM7CgoJCQkJd2hpbGUgKCBlbGVtLmZpcnN0Q2hpbGQgJiYgZWxlbS5m
aXJzdENoaWxkLm5vZGVUeXBlID09PSAxICkgewoJCQkJCWVsZW0gPSBlbGVtLmZp
cnN0Q2hpbGQ7CgkJCQl9CgoJCQkJcmV0dXJuIGVsZW07CgkJCX0pLmFwcGVuZCgg
dGhpcyApOwoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXdyYXBJbm5lcjogZnVu
Y3Rpb24oIGh0bWwgKSB7CgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggaHRtbCAp
ICkgewoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCWpRdWVy
eSh0aGlzKS53cmFwSW5uZXIoIGh0bWwuY2FsbCh0aGlzLCBpKSApOwoJCQl9KTsK
CQl9CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCXZhciBzZWxm
ID0galF1ZXJ5KCB0aGlzICksCgkJCQljb250ZW50cyA9IHNlbGYuY29udGVudHMo
KTsKCgkJCWlmICggY29udGVudHMubGVuZ3RoICkgewoJCQkJY29udGVudHMud3Jh
cEFsbCggaHRtbCApOwoKCQkJfSBlbHNlIHsKCQkJCXNlbGYuYXBwZW5kKCBodG1s
ICk7CgkJCX0KCQl9KTsKCX0sCgoJd3JhcDogZnVuY3Rpb24oIGh0bWwgKSB7CgkJ
dmFyIGlzRnVuY3Rpb24gPSBqUXVlcnkuaXNGdW5jdGlvbiggaHRtbCApOwoKCQly
ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJalF1ZXJ5KCB0aGlzICku
d3JhcEFsbCggaXNGdW5jdGlvbiA/IGh0bWwuY2FsbCh0aGlzLCBpKSA6IGh0bWwg
KTsKCQl9KTsKCX0sCgoJdW53cmFwOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhp
cy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQlpZiAoICFqUXVlcnkubm9k
ZU5hbWUoIHRoaXMsICJib2R5IiApICkgewoJCQkJalF1ZXJ5KCB0aGlzICkucmVw
bGFjZVdpdGgoIHRoaXMuY2hpbGROb2RlcyApOwoJCQl9CgkJfSkuZW5kKCk7Cgl9
LAoKCWFwcGVuZDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuZG9tTWFuaXAo
YXJndW1lbnRzLCB0cnVlLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJaWYgKCB0aGlz
Lm5vZGVUeXBlID09PSAxICkgewoJCQkJdGhpcy5hcHBlbmRDaGlsZCggZWxlbSAp
OwoJCQl9CgkJfSk7Cgl9LAoKCXByZXBlbmQ6IGZ1bmN0aW9uKCkgewoJCXJldHVy
biB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywgdHJ1ZSwgZnVuY3Rpb24oIGVsZW0g
KSB7CgkJCWlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCXRoaXMuaW5z
ZXJ0QmVmb3JlKCBlbGVtLCB0aGlzLmZpcnN0Q2hpbGQgKTsKCQkJfQoJCX0pOwoJ
fSwKCgliZWZvcmU6IGZ1bmN0aW9uKCkgewoJCWlmICggdGhpc1swXSAmJiB0aGlz
WzBdLnBhcmVudE5vZGUgKSB7CgkJCXJldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3Vt
ZW50cywgZmFsc2UsIGZ1bmN0aW9uKCBlbGVtICkgewoJCQkJdGhpcy5wYXJlbnRO
b2RlLmluc2VydEJlZm9yZSggZWxlbSwgdGhpcyApOwoJCQl9KTsKCQl9IGVsc2Ug
aWYgKCBhcmd1bWVudHMubGVuZ3RoICkgewoJCQl2YXIgc2V0ID0galF1ZXJ5LmNs
ZWFuKCBhcmd1bWVudHMgKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgdGhpcy50
b0FycmF5KCkgKTsKCQkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBzZXQsICJiZWZv
cmUiLCBhcmd1bWVudHMgKTsKCQl9Cgl9LAoKCWFmdGVyOiBmdW5jdGlvbigpIHsK
CQlpZiAoIHRoaXNbMF0gJiYgdGhpc1swXS5wYXJlbnROb2RlICkgewoJCQlyZXR1
cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIGZhbHNlLCBmdW5jdGlvbiggZWxl
bSApIHsKCQkJCXRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRo
aXMubmV4dFNpYmxpbmcgKTsKCQkJfSk7CgkJfSBlbHNlIGlmICggYXJndW1lbnRz
Lmxlbmd0aCApIHsKCQkJdmFyIHNldCA9IHRoaXMucHVzaFN0YWNrKCB0aGlzLCAi
YWZ0ZXIiLCBhcmd1bWVudHMgKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgalF1
ZXJ5LmNsZWFuKGFyZ3VtZW50cykgKTsKCQkJcmV0dXJuIHNldDsKCQl9Cgl9LAoK
CS8vIGtlZXBEYXRhIGlzIGZvciBpbnRlcm5hbCB1c2Ugb25seS0tZG8gbm90IGRv
Y3VtZW50CglyZW1vdmU6IGZ1bmN0aW9uKCBzZWxlY3Rvciwga2VlcERhdGEgKSB7
CgkJZm9yICggdmFyIGkgPSAwLCBlbGVtOyAoZWxlbSA9IHRoaXNbaV0pICE9IG51
bGw7IGkrKyApIHsKCQkJaWYgKCAhc2VsZWN0b3IgfHwgalF1ZXJ5LmZpbHRlcigg
c2VsZWN0b3IsIFsgZWxlbSBdICkubGVuZ3RoICkgewoJCQkJaWYgKCAha2VlcERh
dGEgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCQlqUXVlcnkuY2xlYW5E
YXRhKCBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikgKTsKCQkJCQlqUXVl
cnkuY2xlYW5EYXRhKCBbIGVsZW0gXSApOwoJCQkJfQoKCQkJCWlmICggZWxlbS5w
YXJlbnROb2RlICkgewoJCQkJCWVsZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCgg
ZWxlbSApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJZW1w
dHk6IGZ1bmN0aW9uKCkgewoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0g
PSB0aGlzW2ldKSAhPSBudWxsOyBpKysgKSB7CgkJCS8vIFJlbW92ZSBlbGVtZW50
IG5vZGVzIGFuZCBwcmV2ZW50IG1lbW9yeSBsZWFrcwoJCQlpZiAoIGVsZW0ubm9k
ZVR5cGUgPT09IDEgKSB7CgkJCQlqUXVlcnkuY2xlYW5EYXRhKCBlbGVtLmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCIqIikgKTsKCQkJfQoKCQkJLy8gUmVtb3ZlIGFueSBy
ZW1haW5pbmcgbm9kZXMKCQkJd2hpbGUgKCBlbGVtLmZpcnN0Q2hpbGQgKSB7CgkJ
CQllbGVtLnJlbW92ZUNoaWxkKCBlbGVtLmZpcnN0Q2hpbGQgKTsKCQkJfQoJCX0K
CgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWNsb25lOiBmdW5jdGlvbiggZGF0YUFuZEV2
ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKSB7CgkJZGF0YUFuZEV2ZW50cyA9IGRh
dGFBbmRFdmVudHMgPT0gbnVsbCA/IGZhbHNlIDogZGF0YUFuZEV2ZW50czsKCQlk
ZWVwRGF0YUFuZEV2ZW50cyA9IGRlZXBEYXRhQW5kRXZlbnRzID09IG51bGwgPyBk
YXRhQW5kRXZlbnRzIDogZGVlcERhdGFBbmRFdmVudHM7CgoJCXJldHVybiB0aGlz
Lm1hcCggZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4galF1ZXJ5LmNsb25lKCB0aGlz
LCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApOwoJCX0pOwoJfSwK
CglodG1sOiBmdW5jdGlvbiggdmFsdWUgKSB7CgkJcmV0dXJuIGpRdWVyeS5hY2Nl
c3MoIHRoaXMsIGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQkJdmFyIGVsZW0gPSB0aGlz
WzBdIHx8IHt9LAoJCQkJaSA9IDAsCgkJCQlsID0gdGhpcy5sZW5ndGg7CgoJCQlp
ZiAoIHZhbHVlID09PSB1bmRlZmluZWQgKSB7CgkJCQlyZXR1cm4gZWxlbS5ub2Rl
VHlwZSA9PT0gMSA/CgkJCQkJZWxlbS5pbm5lckhUTUwucmVwbGFjZSggcmlubGlu
ZWpRdWVyeSwgIiIgKSA6CgkJCQkJbnVsbDsKCQkJfQoKCgkJCWlmICggdHlwZW9m
IHZhbHVlID09PSAic3RyaW5nIiAmJiAhcm5vSW5uZXJodG1sLnRlc3QoIHZhbHVl
ICkgJiYKCQkJCSggalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UgfHwg
IXJsZWFkaW5nV2hpdGVzcGFjZS50ZXN0KCB2YWx1ZSApICkgJiYKCQkJCSF3cmFw
TWFwWyAoIHJ0YWdOYW1lLmV4ZWMoIHZhbHVlICkgfHwgWyIiLCAiIl0gKVsxXS50
b0xvd2VyQ2FzZSgpIF0gKSB7CgoJCQkJdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCBy
eGh0bWxUYWcsICI8JDE+PC8kMj4iICk7CgoJCQkJdHJ5IHsKCQkJCQlmb3IgKDsg
aSA8IGw7IGkrKyApIHsKCQkJCQkJLy8gUmVtb3ZlIGVsZW1lbnQgbm9kZXMgYW5k
IHByZXZlbnQgbWVtb3J5IGxlYWtzCgkJCQkJCWVsZW0gPSB0aGlzW2ldIHx8IHt9
OwoJCQkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCQlqUXVl
cnkuY2xlYW5EYXRhKCBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiKiIgKSAp
OwoJCQkJCQkJZWxlbS5pbm5lckhUTUwgPSB2YWx1ZTsKCQkJCQkJfQoJCQkJCX0K
CgkJCQkJZWxlbSA9IDA7CgoJCQkJLy8gSWYgdXNpbmcgaW5uZXJIVE1MIHRocm93
cyBhbiBleGNlcHRpb24sIHVzZSB0aGUgZmFsbGJhY2sgbWV0aG9kCgkJCQl9IGNh
dGNoKGUpIHt9CgkJCX0KCgkJCWlmICggZWxlbSApIHsKCQkJCXRoaXMuZW1wdHko
KS5hcHBlbmQoIHZhbHVlICk7CgkJCX0KCQl9LCBudWxsLCB2YWx1ZSwgYXJndW1l
bnRzLmxlbmd0aCApOwoJfSwKCglyZXBsYWNlV2l0aDogZnVuY3Rpb24oIHZhbHVl
ICkgewoJCWlmICggdGhpc1swXSAmJiB0aGlzWzBdLnBhcmVudE5vZGUgKSB7CgkJ
CS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBlbGVtZW50cyBhcmUgcmVtb3ZlZCBmcm9t
IHRoZSBET00gYmVmb3JlIHRoZXkgYXJlIGluc2VydGVkCgkJCS8vIHRoaXMgY2Fu
IGhlbHAgZml4IHJlcGxhY2luZyBhIHBhcmVudCB3aXRoIGNoaWxkIGVsZW1lbnRz
CgkJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCQlyZXR1
cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCQl2YXIgc2VsZiA9IGpRdWVy
eSh0aGlzKSwgb2xkID0gc2VsZi5odG1sKCk7CgkJCQkJc2VsZi5yZXBsYWNlV2l0
aCggdmFsdWUuY2FsbCggdGhpcywgaSwgb2xkICkgKTsKCQkJCX0pOwoJCQl9CgoJ
CQlpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gInN0cmluZyIgKSB7CgkJCQl2YWx1ZSA9
IGpRdWVyeSggdmFsdWUgKS5kZXRhY2goKTsKCQkJfQoKCQkJcmV0dXJuIHRoaXMu
ZWFjaChmdW5jdGlvbigpIHsKCQkJCXZhciBuZXh0ID0gdGhpcy5uZXh0U2libGlu
ZywKCQkJCQlwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7CgoJCQkJalF1ZXJ5KCB0
aGlzICkucmVtb3ZlKCk7CgoJCQkJaWYgKCBuZXh0ICkgewoJCQkJCWpRdWVyeShu
ZXh0KS5iZWZvcmUoIHZhbHVlICk7CgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeShw
YXJlbnQpLmFwcGVuZCggdmFsdWUgKTsKCQkJCX0KCQkJfSk7CgkJfSBlbHNlIHsK
CQkJcmV0dXJuIHRoaXMubGVuZ3RoID8KCQkJCXRoaXMucHVzaFN0YWNrKCBqUXVl
cnkoalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUoKSA6IHZhbHVlKSwg
InJlcGxhY2VXaXRoIiwgdmFsdWUgKSA6CgkJCQl0aGlzOwoJCX0KCX0sCgoJZGV0
YWNoOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJcmV0dXJuIHRoaXMucmVtb3Zl
KCBzZWxlY3RvciwgdHJ1ZSApOwoJfSwKCglkb21NYW5pcDogZnVuY3Rpb24oIGFy
Z3MsIHRhYmxlLCBjYWxsYmFjayApIHsKCQl2YXIgcmVzdWx0cywgZmlyc3QsIGZy
YWdtZW50LCBwYXJlbnQsCgkJCXZhbHVlID0gYXJnc1swXSwKCQkJc2NyaXB0cyA9
IFtdOwoKCQkvLyBXZSBjYW4ndCBjbG9uZU5vZGUgZnJhZ21lbnRzIHRoYXQgY29u
dGFpbiBjaGVja2VkLCBpbiBXZWJLaXQKCQlpZiAoICFqUXVlcnkuc3VwcG9ydC5j
aGVja0Nsb25lICYmIGFyZ3VtZW50cy5sZW5ndGggPT09IDMgJiYgdHlwZW9mIHZh
bHVlID09PSAic3RyaW5nIiAmJiByY2hlY2tlZC50ZXN0KCB2YWx1ZSApICkgewoJ
CQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJalF1ZXJ5KHRoaXMp
LmRvbU1hbmlwKCBhcmdzLCB0YWJsZSwgY2FsbGJhY2ssIHRydWUgKTsKCQkJfSk7
CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSApIHsKCQkJcmV0
dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7CgkJCQl2YXIgc2VsZiA9IGpRdWVy
eSh0aGlzKTsKCQkJCWFyZ3NbMF0gPSB2YWx1ZS5jYWxsKHRoaXMsIGksIHRhYmxl
ID8gc2VsZi5odG1sKCkgOiB1bmRlZmluZWQpOwoJCQkJc2VsZi5kb21NYW5pcCgg
YXJncywgdGFibGUsIGNhbGxiYWNrICk7CgkJCX0pOwoJCX0KCgkJaWYgKCB0aGlz
WzBdICkgewoJCQlwYXJlbnQgPSB2YWx1ZSAmJiB2YWx1ZS5wYXJlbnROb2RlOwoK
CQkJLy8gSWYgd2UncmUgaW4gYSBmcmFnbWVudCwganVzdCB1c2UgdGhhdCBpbnN0
ZWFkIG9mIGJ1aWxkaW5nIGEgbmV3IG9uZQoJCQlpZiAoIGpRdWVyeS5zdXBwb3J0
LnBhcmVudE5vZGUgJiYgcGFyZW50ICYmIHBhcmVudC5ub2RlVHlwZSA9PT0gMTEg
JiYgcGFyZW50LmNoaWxkTm9kZXMubGVuZ3RoID09PSB0aGlzLmxlbmd0aCApIHsK
CQkJCXJlc3VsdHMgPSB7IGZyYWdtZW50OiBwYXJlbnQgfTsKCgkJCX0gZWxzZSB7
CgkJCQlyZXN1bHRzID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIGFyZ3MsIHRoaXMs
IHNjcmlwdHMgKTsKCQkJfQoKCQkJZnJhZ21lbnQgPSByZXN1bHRzLmZyYWdtZW50
OwoKCQkJaWYgKCBmcmFnbWVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMSApIHsK
CQkJCWZpcnN0ID0gZnJhZ21lbnQgPSBmcmFnbWVudC5maXJzdENoaWxkOwoJCQl9
IGVsc2UgewoJCQkJZmlyc3QgPSBmcmFnbWVudC5maXJzdENoaWxkOwoJCQl9CgoJ
CQlpZiAoIGZpcnN0ICkgewoJCQkJdGFibGUgPSB0YWJsZSAmJiBqUXVlcnkubm9k
ZU5hbWUoIGZpcnN0LCAidHIiICk7CgoJCQkJZm9yICggdmFyIGkgPSAwLCBsID0g
dGhpcy5sZW5ndGgsIGxhc3RJbmRleCA9IGwgLSAxOyBpIDwgbDsgaSsrICkgewoJ
CQkJCWNhbGxiYWNrLmNhbGwoCgkJCQkJCXRhYmxlID8KCQkJCQkJCXJvb3QodGhp
c1tpXSwgZmlyc3QpIDoKCQkJCQkJCXRoaXNbaV0sCgkJCQkJCS8vIE1ha2Ugc3Vy
ZSB0aGF0IHdlIGRvIG5vdCBsZWFrIG1lbW9yeSBieSBpbmFkdmVydGVudGx5IGRp
c2NhcmRpbmcKCQkJCQkJLy8gdGhlIG9yaWdpbmFsIGZyYWdtZW50ICh3aGljaCBt
aWdodCBoYXZlIGF0dGFjaGVkIGRhdGEpIGluc3RlYWQgb2YKCQkJCQkJLy8gdXNp
bmcgaXQ7IGluIGFkZGl0aW9uLCB1c2UgdGhlIG9yaWdpbmFsIGZyYWdtZW50IG9i
amVjdCBmb3IgdGhlIGxhc3QKCQkJCQkJLy8gaXRlbSBpbnN0ZWFkIG9mIGZpcnN0
IGJlY2F1c2UgaXQgY2FuIGVuZCB1cCBiZWluZyBlbXB0aWVkIGluY29ycmVjdGx5
CgkJCQkJCS8vIGluIGNlcnRhaW4gc2l0dWF0aW9ucyAoQnVnICM4MDcwKS4KCQkJ
CQkJLy8gRnJhZ21lbnRzIGZyb20gdGhlIGZyYWdtZW50IGNhY2hlIG11c3QgYWx3
YXlzIGJlIGNsb25lZCBhbmQgbmV2ZXIgdXNlZAoJCQkJCQkvLyBpbiBwbGFjZS4K
CQkJCQkJcmVzdWx0cy5jYWNoZWFibGUgfHwgKCBsID4gMSAmJiBpIDwgbGFzdElu
ZGV4ICkgPwoJCQkJCQkJalF1ZXJ5LmNsb25lKCBmcmFnbWVudCwgdHJ1ZSwgdHJ1
ZSApIDoKCQkJCQkJCWZyYWdtZW50CgkJCQkJKTsKCQkJCX0KCQkJfQoKCQkJaWYg
KCBzY3JpcHRzLmxlbmd0aCApIHsKCQkJCWpRdWVyeS5lYWNoKCBzY3JpcHRzLCBm
dW5jdGlvbiggaSwgZWxlbSApIHsKCQkJCQlpZiAoIGVsZW0uc3JjICkgewoJCQkJ
CQlqUXVlcnkuYWpheCh7CgkJCQkJCQl0eXBlOiAiR0VUIiwKCQkJCQkJCWdsb2Jh
bDogZmFsc2UsCgkJCQkJCQl1cmw6IGVsZW0uc3JjLAoJCQkJCQkJYXN5bmM6IGZh
bHNlLAoJCQkJCQkJZGF0YVR5cGU6ICJzY3JpcHQiCgkJCQkJCX0pOwoJCQkJCX0g
ZWxzZSB7CgkJCQkJCWpRdWVyeS5nbG9iYWxFdmFsKCAoIGVsZW0udGV4dCB8fCBl
bGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJIVE1MIHx8ICIiICkucmVwbGFj
ZSggcmNsZWFuU2NyaXB0LCAiLyokMCovIiApICk7CgkJCQkJfQoKCQkJCQlpZiAo
IGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQkJZWxlbS5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKCBlbGVtICk7CgkJCQkJfQoJCQkJfSk7CgkJCX0KCQl9CgoJCXJldHVy
biB0aGlzOwoJfQp9KTsKCmZ1bmN0aW9uIHJvb3QoIGVsZW0sIGN1ciApIHsKCXJl
dHVybiBqUXVlcnkubm9kZU5hbWUoZWxlbSwgInRhYmxlIikgPwoJCShlbGVtLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdIHx8CgkJZWxlbS5hcHBlbmRD
aGlsZChlbGVtLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSkp
IDoKCQllbGVtOwp9CgpmdW5jdGlvbiBjbG9uZUNvcHlFdmVudCggc3JjLCBkZXN0
ICkgewoKCWlmICggZGVzdC5ub2RlVHlwZSAhPT0gMSB8fCAhalF1ZXJ5Lmhhc0Rh
dGEoIHNyYyApICkgewoJCXJldHVybjsKCX0KCgl2YXIgdHlwZSwgaSwgbCwKCQlv
bGREYXRhID0galF1ZXJ5Ll9kYXRhKCBzcmMgKSwKCQljdXJEYXRhID0galF1ZXJ5
Ll9kYXRhKCBkZXN0LCBvbGREYXRhICksCgkJZXZlbnRzID0gb2xkRGF0YS5ldmVu
dHM7CgoJaWYgKCBldmVudHMgKSB7CgkJZGVsZXRlIGN1ckRhdGEuaGFuZGxlOwoJ
CWN1ckRhdGEuZXZlbnRzID0ge307CgoJCWZvciAoIHR5cGUgaW4gZXZlbnRzICkg
ewoJCQlmb3IgKCBpID0gMCwgbCA9IGV2ZW50c1sgdHlwZSBdLmxlbmd0aDsgaSA8
IGw7IGkrKyApIHsKCQkJCWpRdWVyeS5ldmVudC5hZGQoIGRlc3QsIHR5cGUsIGV2
ZW50c1sgdHlwZSBdWyBpIF0gKTsKCQkJfQoJCX0KCX0KCgkvLyBtYWtlIHRoZSBj
bG9uZWQgcHVibGljIGRhdGEgb2JqZWN0IGEgY29weSBmcm9tIHRoZSBvcmlnaW5h
bAoJaWYgKCBjdXJEYXRhLmRhdGEgKSB7CgkJY3VyRGF0YS5kYXRhID0galF1ZXJ5
LmV4dGVuZCgge30sIGN1ckRhdGEuZGF0YSApOwoJfQp9CgpmdW5jdGlvbiBjbG9u
ZUZpeEF0dHJpYnV0ZXMoIHNyYywgZGVzdCApIHsKCXZhciBub2RlTmFtZTsKCgkv
LyBXZSBkbyBub3QgbmVlZCB0byBkbyBhbnl0aGluZyBmb3Igbm9uLUVsZW1lbnRz
CglpZiAoIGRlc3Qubm9kZVR5cGUgIT09IDEgKSB7CgkJcmV0dXJuOwoJfQoKCS8v
IGNsZWFyQXR0cmlidXRlcyByZW1vdmVzIHRoZSBhdHRyaWJ1dGVzLCB3aGljaCB3
ZSBkb24ndCB3YW50LAoJLy8gYnV0IGFsc28gcmVtb3ZlcyB0aGUgYXR0YWNoRXZl
bnQgZXZlbnRzLCB3aGljaCB3ZSAqZG8qIHdhbnQKCWlmICggZGVzdC5jbGVhckF0
dHJpYnV0ZXMgKSB7CgkJZGVzdC5jbGVhckF0dHJpYnV0ZXMoKTsKCX0KCgkvLyBt
ZXJnZUF0dHJpYnV0ZXMsIGluIGNvbnRyYXN0LCBvbmx5IG1lcmdlcyBiYWNrIG9u
IHRoZQoJLy8gb3JpZ2luYWwgYXR0cmlidXRlcywgbm90IHRoZSBldmVudHMKCWlm
ICggZGVzdC5tZXJnZUF0dHJpYnV0ZXMgKSB7CgkJZGVzdC5tZXJnZUF0dHJpYnV0
ZXMoIHNyYyApOwoJfQoKCW5vZGVOYW1lID0gZGVzdC5ub2RlTmFtZS50b0xvd2Vy
Q2FzZSgpOwoKCS8vIElFNi04IGZhaWwgdG8gY2xvbmUgY2hpbGRyZW4gaW5zaWRl
IG9iamVjdCBlbGVtZW50cyB0aGF0IHVzZQoJLy8gdGhlIHByb3ByaWV0YXJ5IGNs
YXNzaWQgYXR0cmlidXRlIHZhbHVlIChyYXRoZXIgdGhhbiB0aGUgdHlwZQoJLy8g
YXR0cmlidXRlKSB0byBpZGVudGlmeSB0aGUgdHlwZSBvZiBjb250ZW50IHRvIGRp
c3BsYXkKCWlmICggbm9kZU5hbWUgPT09ICJvYmplY3QiICkgewoJCWRlc3Qub3V0
ZXJIVE1MID0gc3JjLm91dGVySFRNTDsKCgl9IGVsc2UgaWYgKCBub2RlTmFtZSA9
PT0gImlucHV0IiAmJiAoc3JjLnR5cGUgPT09ICJjaGVja2JveCIgfHwgc3JjLnR5
cGUgPT09ICJyYWRpbyIpICkgewoJCS8vIElFNi04IGZhaWxzIHRvIHBlcnNpc3Qg
dGhlIGNoZWNrZWQgc3RhdGUgb2YgYSBjbG9uZWQgY2hlY2tib3gKCQkvLyBvciBy
YWRpbyBidXR0b24uIFdvcnNlLCBJRTYtNyBmYWlsIHRvIGdpdmUgdGhlIGNsb25l
ZCBlbGVtZW50CgkJLy8gYSBjaGVja2VkIGFwcGVhcmFuY2UgaWYgdGhlIGRlZmF1
bHRDaGVja2VkIHZhbHVlIGlzbid0IGFsc28gc2V0CgkJaWYgKCBzcmMuY2hlY2tl
ZCApIHsKCQkJZGVzdC5kZWZhdWx0Q2hlY2tlZCA9IGRlc3QuY2hlY2tlZCA9IHNy
Yy5jaGVja2VkOwoJCX0KCgkJLy8gSUU2LTcgZ2V0IGNvbmZ1c2VkIGFuZCBlbmQg
dXAgc2V0dGluZyB0aGUgdmFsdWUgb2YgYSBjbG9uZWQKCQkvLyBjaGVja2JveC9y
YWRpbyBidXR0b24gdG8gYW4gZW1wdHkgc3RyaW5nIGluc3RlYWQgb2YgIm9uIgoJ
CWlmICggZGVzdC52YWx1ZSAhPT0gc3JjLnZhbHVlICkgewoJCQlkZXN0LnZhbHVl
ID0gc3JjLnZhbHVlOwoJCX0KCgkvLyBJRTYtOCBmYWlscyB0byByZXR1cm4gdGhl
IHNlbGVjdGVkIG9wdGlvbiB0byB0aGUgZGVmYXVsdCBzZWxlY3RlZAoJLy8gc3Rh
dGUgd2hlbiBjbG9uaW5nIG9wdGlvbnMKCX0gZWxzZSBpZiAoIG5vZGVOYW1lID09
PSAib3B0aW9uIiApIHsKCQlkZXN0LnNlbGVjdGVkID0gc3JjLmRlZmF1bHRTZWxl
Y3RlZDsKCgkvLyBJRTYtOCBmYWlscyB0byBzZXQgdGhlIGRlZmF1bHRWYWx1ZSB0
byB0aGUgY29ycmVjdCB2YWx1ZSB3aGVuCgkvLyBjbG9uaW5nIG90aGVyIHR5cGVz
IG9mIGlucHV0IGZpZWxkcwoJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJpbnB1
dCIgfHwgbm9kZU5hbWUgPT09ICJ0ZXh0YXJlYSIgKSB7CgkJZGVzdC5kZWZhdWx0
VmFsdWUgPSBzcmMuZGVmYXVsdFZhbHVlOwoKCS8vIElFIGJsYW5rcyBjb250ZW50
cyB3aGVuIGNsb25pbmcgc2NyaXB0cwoJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09
ICJzY3JpcHQiICYmIGRlc3QudGV4dCAhPT0gc3JjLnRleHQgKSB7CgkJZGVzdC50
ZXh0ID0gc3JjLnRleHQ7Cgl9CgoJLy8gRXZlbnQgZGF0YSBnZXRzIHJlZmVyZW5j
ZWQgaW5zdGVhZCBvZiBjb3BpZWQgaWYgdGhlIGV4cGFuZG8KCS8vIGdldHMgY29w
aWVkIHRvbwoJZGVzdC5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7
CgoJLy8gQ2xlYXIgZmxhZ3MgZm9yIGJ1YmJsaW5nIHNwZWNpYWwgY2hhbmdlL3N1
Ym1pdCBldmVudHMsIHRoZXkgbXVzdAoJLy8gYmUgcmVhdHRhY2hlZCB3aGVuIHRo
ZSBuZXdseSBjbG9uZWQgZXZlbnRzIGFyZSBmaXJzdCBhY3RpdmF0ZWQKCWRlc3Qu
cmVtb3ZlQXR0cmlidXRlKCAiX3N1Ym1pdF9hdHRhY2hlZCIgKTsKCWRlc3QucmVt
b3ZlQXR0cmlidXRlKCAiX2NoYW5nZV9hdHRhY2hlZCIgKTsKfQoKalF1ZXJ5LmJ1
aWxkRnJhZ21lbnQgPSBmdW5jdGlvbiggYXJncywgbm9kZXMsIHNjcmlwdHMgKSB7
Cgl2YXIgZnJhZ21lbnQsIGNhY2hlYWJsZSwgY2FjaGVyZXN1bHRzLCBkb2MsCglm
aXJzdCA9IGFyZ3NbIDAgXTsKCgkvLyBub2RlcyBtYXkgY29udGFpbiBlaXRoZXIg
YW4gZXhwbGljaXQgZG9jdW1lbnQgb2JqZWN0LAoJLy8gYSBqUXVlcnkgY29sbGVj
dGlvbiBvciBjb250ZXh0IG9iamVjdC4KCS8vIElmIG5vZGVzWzBdIGNvbnRhaW5z
IGEgdmFsaWQgb2JqZWN0IHRvIGFzc2lnbiB0byBkb2MKCWlmICggbm9kZXMgJiYg
bm9kZXNbMF0gKSB7CgkJZG9jID0gbm9kZXNbMF0ub3duZXJEb2N1bWVudCB8fCBu
b2Rlc1swXTsKCX0KCgkvLyBFbnN1cmUgdGhhdCBhbiBhdHRyIG9iamVjdCBkb2Vz
bid0IGluY29ycmVjdGx5IHN0YW5kIGluIGFzIGEgZG9jdW1lbnQgb2JqZWN0Cgkv
LyBDaHJvbWUgYW5kIEZpcmVmb3ggc2VlbSB0byBhbGxvdyB0aGlzIHRvIG9jY3Vy
IGFuZCB3aWxsIHRocm93IGV4Y2VwdGlvbgoJLy8gRml4ZXMgIzg5NTAKCWlmICgg
IWRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50ICkgewoJCWRvYyA9IGRvY3VtZW50
OwoJfQoKCS8vIE9ubHkgY2FjaGUgInNtYWxsIiAoMS8yIEtCKSBIVE1MIHN0cmlu
Z3MgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGRvY3VtZW50Cgkv
LyBDbG9uaW5nIG9wdGlvbnMgbG9zZXMgdGhlIHNlbGVjdGVkIHN0YXRlLCBzbyBk
b24ndCBjYWNoZSB0aGVtCgkvLyBJRSA2IGRvZXNuJ3QgbGlrZSBpdCB3aGVuIHlv
dSBwdXQgPG9iamVjdD4gb3IgPGVtYmVkPiBlbGVtZW50cyBpbiBhIGZyYWdtZW50
CgkvLyBBbHNvLCBXZWJLaXQgZG9lcyBub3QgY2xvbmUgJ2NoZWNrZWQnIGF0dHJp
YnV0ZXMgb24gY2xvbmVOb2RlLCBzbyBkb24ndCBjYWNoZQoJLy8gTGFzdGx5LCBJ
RTYsNyw4IHdpbGwgbm90IGNvcnJlY3RseSByZXVzZSBjYWNoZWQgZnJhZ21lbnRz
IHRoYXQgd2VyZSBjcmVhdGVkIGZyb20gdW5rbm93biBlbGVtcyAjMTA1MDEKCWlm
ICggYXJncy5sZW5ndGggPT09IDEgJiYgdHlwZW9mIGZpcnN0ID09PSAic3RyaW5n
IiAmJiBmaXJzdC5sZW5ndGggPCA1MTIgJiYgZG9jID09PSBkb2N1bWVudCAmJgoJ
CWZpcnN0LmNoYXJBdCgwKSA9PT0gIjwiICYmICFybm9jYWNoZS50ZXN0KCBmaXJz
dCApICYmCgkJKGpRdWVyeS5zdXBwb3J0LmNoZWNrQ2xvbmUgfHwgIXJjaGVja2Vk
LnRlc3QoIGZpcnN0ICkpICYmCgkJKGpRdWVyeS5zdXBwb3J0Lmh0bWw1Q2xvbmUg
fHwgIXJub3NoaW1jYWNoZS50ZXN0KCBmaXJzdCApKSApIHsKCgkJY2FjaGVhYmxl
ID0gdHJ1ZTsKCgkJY2FjaGVyZXN1bHRzID0galF1ZXJ5LmZyYWdtZW50c1sgZmly
c3QgXTsKCQlpZiAoIGNhY2hlcmVzdWx0cyAmJiBjYWNoZXJlc3VsdHMgIT09IDEg
KSB7CgkJCWZyYWdtZW50ID0gY2FjaGVyZXN1bHRzOwoJCX0KCX0KCglpZiAoICFm
cmFnbWVudCApIHsKCQlmcmFnbWVudCA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCk7CgkJalF1ZXJ5LmNsZWFuKCBhcmdzLCBkb2MsIGZyYWdtZW50LCBzY3Jp
cHRzICk7Cgl9CgoJaWYgKCBjYWNoZWFibGUgKSB7CgkJalF1ZXJ5LmZyYWdtZW50
c1sgZmlyc3QgXSA9IGNhY2hlcmVzdWx0cyA/IGZyYWdtZW50IDogMTsKCX0KCgly
ZXR1cm4geyBmcmFnbWVudDogZnJhZ21lbnQsIGNhY2hlYWJsZTogY2FjaGVhYmxl
IH07Cn07CgpqUXVlcnkuZnJhZ21lbnRzID0ge307CgpqUXVlcnkuZWFjaCh7Cglh
cHBlbmRUbzogImFwcGVuZCIsCglwcmVwZW5kVG86ICJwcmVwZW5kIiwKCWluc2Vy
dEJlZm9yZTogImJlZm9yZSIsCglpbnNlcnRBZnRlcjogImFmdGVyIiwKCXJlcGxh
Y2VBbGw6ICJyZXBsYWNlV2l0aCIKfSwgZnVuY3Rpb24oIG5hbWUsIG9yaWdpbmFs
ICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7
CgkJdmFyIHJldCA9IFtdLAoJCQlpbnNlcnQgPSBqUXVlcnkoIHNlbGVjdG9yICks
CgkJCXBhcmVudCA9IHRoaXMubGVuZ3RoID09PSAxICYmIHRoaXNbMF0ucGFyZW50
Tm9kZTsKCgkJaWYgKCBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlID09PSAxMSAm
JiBwYXJlbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgJiYgaW5zZXJ0Lmxlbmd0
aCA9PT0gMSApIHsKCQkJaW5zZXJ0WyBvcmlnaW5hbCBdKCB0aGlzWzBdICk7CgkJ
CXJldHVybiB0aGlzOwoKCQl9IGVsc2UgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGwg
PSBpbnNlcnQubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJdmFyIGVsZW1zID0g
KCBpID4gMCA/IHRoaXMuY2xvbmUodHJ1ZSkgOiB0aGlzICkuZ2V0KCk7CgkJCQlq
UXVlcnkoIGluc2VydFtpXSApWyBvcmlnaW5hbCBdKCBlbGVtcyApOwoJCQkJcmV0
ID0gcmV0LmNvbmNhdCggZWxlbXMgKTsKCQkJfQoKCQkJcmV0dXJuIHRoaXMucHVz
aFN0YWNrKCByZXQsIG5hbWUsIGluc2VydC5zZWxlY3RvciApOwoJCX0KCX07Cn0p
OwoKZnVuY3Rpb24gZ2V0QWxsKCBlbGVtICkgewoJaWYgKCB0eXBlb2YgZWxlbS5n
ZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gInVuZGVmaW5lZCIgKSB7CgkJcmV0dXJu
IGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoICIqIiApOwoKCX0gZWxzZSBpZiAo
IHR5cGVvZiBlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwgIT09ICJ1bmRlZmluZWQiICkg
ewoJCXJldHVybiBlbGVtLnF1ZXJ5U2VsZWN0b3JBbGwoICIqIiApOwoKCX0gZWxz
ZSB7CgkJcmV0dXJuIFtdOwoJfQp9CgovLyBVc2VkIGluIGNsZWFuLCBmaXhlcyB0
aGUgZGVmYXVsdENoZWNrZWQgcHJvcGVydHkKZnVuY3Rpb24gZml4RGVmYXVsdENo
ZWNrZWQoIGVsZW0gKSB7CglpZiAoIGVsZW0udHlwZSA9PT0gImNoZWNrYm94IiB8
fCBlbGVtLnR5cGUgPT09ICJyYWRpbyIgKSB7CgkJZWxlbS5kZWZhdWx0Q2hlY2tl
ZCA9IGVsZW0uY2hlY2tlZDsKCX0KfQovLyBGaW5kcyBhbGwgaW5wdXRzIGFuZCBw
YXNzZXMgdGhlbSB0byBmaXhEZWZhdWx0Q2hlY2tlZApmdW5jdGlvbiBmaW5kSW5w
dXRzKCBlbGVtICkgewoJdmFyIG5vZGVOYW1lID0gKCBlbGVtLm5vZGVOYW1lIHx8
ICIiICkudG9Mb3dlckNhc2UoKTsKCWlmICggbm9kZU5hbWUgPT09ICJpbnB1dCIg
KSB7CgkJZml4RGVmYXVsdENoZWNrZWQoIGVsZW0gKTsKCS8vIFNraXAgc2NyaXB0
cywgZ2V0IG90aGVyIGNoaWxkcmVuCgl9IGVsc2UgaWYgKCBub2RlTmFtZSAhPT0g
InNjcmlwdCIgJiYgdHlwZW9mIGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUgIT09
ICJ1bmRlZmluZWQiICkgewoJCWpRdWVyeS5ncmVwKCBlbGVtLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpLCBmaXhEZWZhdWx0Q2hlY2tlZCApOwoJfQp9Cgov
LyBEZXJpdmVkIEZyb206IGh0dHA6Ly93d3cuaWVjc3MuY29tL3NoaW1wcm92ZS9q
YXZhc2NyaXB0L3NoaW1wcm92ZS4xLTAtMS5qcwpmdW5jdGlvbiBzaGltQ2xvbmVO
b2RlKCBlbGVtICkgewoJdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ICJkaXYiICk7CglzYWZlRnJhZ21lbnQuYXBwZW5kQ2hpbGQoIGRpdiApOwoKCWRp
di5pbm5lckhUTUwgPSBlbGVtLm91dGVySFRNTDsKCXJldHVybiBkaXYuZmlyc3RD
aGlsZDsKfQoKalF1ZXJ5LmV4dGVuZCh7CgljbG9uZTogZnVuY3Rpb24oIGVsZW0s
IGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkgewoJCXZhciBzcmNF
bGVtZW50cywKCQkJZGVzdEVsZW1lbnRzLAoJCQlpLAoJCQkvLyBJRTw9OCBkb2Vz
IG5vdCBwcm9wZXJseSBjbG9uZSBkZXRhY2hlZCwgdW5rbm93biBlbGVtZW50IG5v
ZGVzCgkJCWNsb25lID0galF1ZXJ5LnN1cHBvcnQuaHRtbDVDbG9uZSB8fCBqUXVl
cnkuaXNYTUxEb2MoZWxlbSkgfHwgIXJub3NoaW1jYWNoZS50ZXN0KCAiPCIgKyBl
bGVtLm5vZGVOYW1lICsgIj4iICkgPwoJCQkJZWxlbS5jbG9uZU5vZGUoIHRydWUg
KSA6CgkJCQlzaGltQ2xvbmVOb2RlKCBlbGVtICk7CgoJCWlmICggKCFqUXVlcnku
c3VwcG9ydC5ub0Nsb25lRXZlbnQgfHwgIWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVD
aGVja2VkKSAmJgoJCQkJKGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgZWxlbS5ub2Rl
VHlwZSA9PT0gMTEpICYmICFqUXVlcnkuaXNYTUxEb2MoZWxlbSkgKSB7CgkJCS8v
IElFIGNvcGllcyBldmVudHMgYm91bmQgdmlhIGF0dGFjaEV2ZW50IHdoZW4gdXNp
bmcgY2xvbmVOb2RlLgoJCQkvLyBDYWxsaW5nIGRldGFjaEV2ZW50IG9uIHRoZSBj
bG9uZSB3aWxsIGFsc28gcmVtb3ZlIHRoZSBldmVudHMKCQkJLy8gZnJvbSB0aGUg
b3JpZ2luYWwuIEluIG9yZGVyIHRvIGdldCBhcm91bmQgdGhpcywgd2UgdXNlIHNv
bWUKCQkJLy8gcHJvcHJpZXRhcnkgbWV0aG9kcyB0byBjbGVhciB0aGUgZXZlbnRz
LiBUaGFua3MgdG8gTW9vVG9vbHMKCQkJLy8gZ3V5cyBmb3IgdGhpcyBob3RuZXNz
LgoKCQkJY2xvbmVGaXhBdHRyaWJ1dGVzKCBlbGVtLCBjbG9uZSApOwoKCQkJLy8g
VXNpbmcgU2l6emxlIGhlcmUgaXMgY3Jhenkgc2xvdywgc28gd2UgdXNlIGdldEVs
ZW1lbnRzQnlUYWdOYW1lIGluc3RlYWQKCQkJc3JjRWxlbWVudHMgPSBnZXRBbGwo
IGVsZW0gKTsKCQkJZGVzdEVsZW1lbnRzID0gZ2V0QWxsKCBjbG9uZSApOwoKCQkJ
Ly8gV2VpcmQgaXRlcmF0aW9uIGJlY2F1c2UgSUUgd2lsbCByZXBsYWNlIHRoZSBs
ZW5ndGggcHJvcGVydHkKCQkJLy8gd2l0aCBhbiBlbGVtZW50IGlmIHlvdSBhcmUg
Y2xvbmluZyB0aGUgYm9keSBhbmQgb25lIG9mIHRoZQoJCQkvLyBlbGVtZW50cyBv
biB0aGUgcGFnZSBoYXMgYSBuYW1lIG9yIGlkIG9mICJsZW5ndGgiCgkJCWZvciAo
IGkgPSAwOyBzcmNFbGVtZW50c1tpXTsgKytpICkgewoJCQkJLy8gRW5zdXJlIHRo
YXQgdGhlIGRlc3RpbmF0aW9uIG5vZGUgaXMgbm90IG51bGw7IEZpeGVzICM5NTg3
CgkJCQlpZiAoIGRlc3RFbGVtZW50c1tpXSApIHsKCQkJCQljbG9uZUZpeEF0dHJp
YnV0ZXMoIHNyY0VsZW1lbnRzW2ldLCBkZXN0RWxlbWVudHNbaV0gKTsKCQkJCX0K
CQkJfQoJCX0KCgkJLy8gQ29weSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFs
IHRvIHRoZSBjbG9uZQoJCWlmICggZGF0YUFuZEV2ZW50cyApIHsKCQkJY2xvbmVD
b3B5RXZlbnQoIGVsZW0sIGNsb25lICk7CgoJCQlpZiAoIGRlZXBEYXRhQW5kRXZl
bnRzICkgewoJCQkJc3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTsKCQkJCWRl
c3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUgKTsKCgkJCQlmb3IgKCBpID0gMDsg
c3JjRWxlbWVudHNbaV07ICsraSApIHsKCQkJCQljbG9uZUNvcHlFdmVudCggc3Jj
RWxlbWVudHNbaV0sIGRlc3RFbGVtZW50c1tpXSApOwoJCQkJfQoJCQl9CgkJfQoK
CQlzcmNFbGVtZW50cyA9IGRlc3RFbGVtZW50cyA9IG51bGw7CgoJCS8vIFJldHVy
biB0aGUgY2xvbmVkIHNldAoJCXJldHVybiBjbG9uZTsKCX0sCgoJY2xlYW46IGZ1
bmN0aW9uKCBlbGVtcywgY29udGV4dCwgZnJhZ21lbnQsIHNjcmlwdHMgKSB7CgkJ
dmFyIGNoZWNrU2NyaXB0VHlwZSwgc2NyaXB0LCBqLAoJCQkJcmV0ID0gW107CgoJ
CWNvbnRleHQgPSBjb250ZXh0IHx8IGRvY3VtZW50OwoKCQkvLyAhY29udGV4dC5j
cmVhdGVFbGVtZW50IGZhaWxzIGluIElFIHdpdGggYW4gZXJyb3IgYnV0IHJldHVy
bnMgdHlwZW9mICdvYmplY3QnCgkJaWYgKCB0eXBlb2YgY29udGV4dC5jcmVhdGVF
bGVtZW50ID09PSAidW5kZWZpbmVkIiApIHsKCQkJY29udGV4dCA9IGNvbnRleHQu
b3duZXJEb2N1bWVudCB8fCBjb250ZXh0WzBdICYmIGNvbnRleHRbMF0ub3duZXJE
b2N1bWVudCB8fCBkb2N1bWVudDsKCQl9CgoJCWZvciAoIHZhciBpID0gMCwgZWxl
bTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQlpZiAoIHR5
cGVvZiBlbGVtID09PSAibnVtYmVyIiApIHsKCQkJCWVsZW0gKz0gIiI7CgkJCX0K
CgkJCWlmICggIWVsZW0gKSB7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJLy8gQ29u
dmVydCBodG1sIHN0cmluZyBpbnRvIERPTSBub2RlcwoJCQlpZiAoIHR5cGVvZiBl
bGVtID09PSAic3RyaW5nIiApIHsKCQkJCWlmICggIXJodG1sLnRlc3QoIGVsZW0g
KSApIHsKCQkJCQllbGVtID0gY29udGV4dC5jcmVhdGVUZXh0Tm9kZSggZWxlbSAp
OwoJCQkJfSBlbHNlIHsKCQkJCQkvLyBGaXggIlhIVE1MIi1zdHlsZSB0YWdzIGlu
IGFsbCBicm93c2VycwoJCQkJCWVsZW0gPSBlbGVtLnJlcGxhY2UocnhodG1sVGFn
LCAiPCQxPjwvJDI+Iik7CgoJCQkJCS8vIFRyaW0gd2hpdGVzcGFjZSwgb3RoZXJ3
aXNlIGluZGV4T2Ygd29uJ3Qgd29yayBhcyBleHBlY3RlZAoJCQkJCXZhciB0YWcg
PSAoIHJ0YWdOYW1lLmV4ZWMoIGVsZW0gKSB8fCBbIiIsICIiXSApWzFdLnRvTG93
ZXJDYXNlKCksCgkJCQkJCXdyYXAgPSB3cmFwTWFwWyB0YWcgXSB8fCB3cmFwTWFw
Ll9kZWZhdWx0LAoJCQkJCQlkZXB0aCA9IHdyYXBbMF0sCgkJCQkJCWRpdiA9IGNv
bnRleHQuY3JlYXRlRWxlbWVudCgiZGl2IiksCgkJCQkJCXNhZmVDaGlsZE5vZGVz
ID0gc2FmZUZyYWdtZW50LmNoaWxkTm9kZXMsCgkJCQkJCXJlbW92ZTsKCgkJCQkJ
Ly8gQXBwZW5kIHdyYXBwZXIgZWxlbWVudCB0byB1bmtub3duIGVsZW1lbnQgc2Fm
ZSBkb2MgZnJhZ21lbnQKCQkJCQlpZiAoIGNvbnRleHQgPT09IGRvY3VtZW50ICkg
ewoJCQkJCQkvLyBVc2UgdGhlIGZyYWdtZW50IHdlJ3ZlIGFscmVhZHkgY3JlYXRl
ZCBmb3IgdGhpcyBkb2N1bWVudAoJCQkJCQlzYWZlRnJhZ21lbnQuYXBwZW5kQ2hp
bGQoIGRpdiApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCS8vIFVzZSBhIGZyYWdtZW50
IGNyZWF0ZWQgd2l0aCB0aGUgb3duZXIgZG9jdW1lbnQKCQkJCQkJY3JlYXRlU2Fm
ZUZyYWdtZW50KCBjb250ZXh0ICkuYXBwZW5kQ2hpbGQoIGRpdiApOwoJCQkJCX0K
CgkJCQkJLy8gR28gdG8gaHRtbCBhbmQgYmFjaywgdGhlbiBwZWVsIG9mZiBleHRy
YSB3cmFwcGVycwoJCQkJCWRpdi5pbm5lckhUTUwgPSB3cmFwWzFdICsgZWxlbSAr
IHdyYXBbMl07CgoJCQkJCS8vIE1vdmUgdG8gdGhlIHJpZ2h0IGRlcHRoCgkJCQkJ
d2hpbGUgKCBkZXB0aC0tICkgewoJCQkJCQlkaXYgPSBkaXYubGFzdENoaWxkOwoJ
CQkJCX0KCgkJCQkJLy8gUmVtb3ZlIElFJ3MgYXV0b2luc2VydGVkIDx0Ym9keT4g
ZnJvbSB0YWJsZSBmcmFnbWVudHMKCQkJCQlpZiAoICFqUXVlcnkuc3VwcG9ydC50
Ym9keSApIHsKCgkJCQkJCS8vIFN0cmluZyB3YXMgYSA8dGFibGU+LCAqbWF5KiBo
YXZlIHNwdXJpb3VzIDx0Ym9keT4KCQkJCQkJdmFyIGhhc0JvZHkgPSBydGJvZHku
dGVzdChlbGVtKSwKCQkJCQkJCXRib2R5ID0gdGFnID09PSAidGFibGUiICYmICFo
YXNCb2R5ID8KCQkJCQkJCQlkaXYuZmlyc3RDaGlsZCAmJiBkaXYuZmlyc3RDaGls
ZC5jaGlsZE5vZGVzIDoKCgkJCQkJCQkJLy8gU3RyaW5nIHdhcyBhIGJhcmUgPHRo
ZWFkPiBvciA8dGZvb3Q+CgkJCQkJCQkJd3JhcFsxXSA9PT0gIjx0YWJsZT4iICYm
ICFoYXNCb2R5ID8KCQkJCQkJCQkJZGl2LmNoaWxkTm9kZXMgOgoJCQkJCQkJCQlb
XTsKCgkJCQkJCWZvciAoIGogPSB0Ym9keS5sZW5ndGggLSAxOyBqID49IDAgOyAt
LWogKSB7CgkJCQkJCQlpZiAoIGpRdWVyeS5ub2RlTmFtZSggdGJvZHlbIGogXSwg
InRib2R5IiApICYmICF0Ym9keVsgaiBdLmNoaWxkTm9kZXMubGVuZ3RoICkgewoJ
CQkJCQkJCXRib2R5WyBqIF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggdGJvZHlb
IGogXSApOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoKCQkJCQkvLyBJRSBjb21w
bGV0ZWx5IGtpbGxzIGxlYWRpbmcgd2hpdGVzcGFjZSB3aGVuIGlubmVySFRNTCBp
cyB1c2VkCgkJCQkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3Bh
Y2UgJiYgcmxlYWRpbmdXaGl0ZXNwYWNlLnRlc3QoIGVsZW0gKSApIHsKCQkJCQkJ
ZGl2Lmluc2VydEJlZm9yZSggY29udGV4dC5jcmVhdGVUZXh0Tm9kZSggcmxlYWRp
bmdXaGl0ZXNwYWNlLmV4ZWMoZWxlbSlbMF0gKSwgZGl2LmZpcnN0Q2hpbGQgKTsK
CQkJCQl9CgoJCQkJCWVsZW0gPSBkaXYuY2hpbGROb2RlczsKCgkJCQkJLy8gQ2xl
YXIgZWxlbWVudHMgZnJvbSBEb2N1bWVudEZyYWdtZW50IChzYWZlRnJhZ21lbnQg
b3Igb3RoZXJ3aXNlKQoJCQkJCS8vIHRvIGF2b2lkIGhvYXJkaW5nIGVsZW1lbnRz
LiBGaXhlcyAjMTEzNTYKCQkJCQlpZiAoIGRpdiApIHsKCQkJCQkJZGl2LnBhcmVu
dE5vZGUucmVtb3ZlQ2hpbGQoIGRpdiApOwoKCQkJCQkJLy8gR3VhcmQgYWdhaW5z
dCAtMSBpbmRleCBleGNlcHRpb25zIGluIEZGMy42CgkJCQkJCWlmICggc2FmZUNo
aWxkTm9kZXMubGVuZ3RoID4gMCApIHsKCQkJCQkJCXJlbW92ZSA9IHNhZmVDaGls
ZE5vZGVzWyBzYWZlQ2hpbGROb2Rlcy5sZW5ndGggLSAxIF07CgoJCQkJCQkJaWYg
KCByZW1vdmUgJiYgcmVtb3ZlLnBhcmVudE5vZGUgKSB7CgkJCQkJCQkJcmVtb3Zl
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHJlbW92ZSApOwoJCQkJCQkJfQoJCQkJ
CQl9CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQkvLyBSZXNldHMgZGVmYXVsdENoZWNr
ZWQgZm9yIGFueSByYWRpb3MgYW5kIGNoZWNrYm94ZXMKCQkJLy8gYWJvdXQgdG8g
YmUgYXBwZW5kZWQgdG8gdGhlIERPTSBpbiBJRSA2LzcgKCM4MDYwKQoJCQl2YXIg
bGVuOwoJCQlpZiAoICFqUXVlcnkuc3VwcG9ydC5hcHBlbmRDaGVja2VkICkgewoJ
CQkJaWYgKCBlbGVtWzBdICYmIHR5cGVvZiAobGVuID0gZWxlbS5sZW5ndGgpID09
PSAibnVtYmVyIiApIHsKCQkJCQlmb3IgKCBqID0gMDsgaiA8IGxlbjsgaisrICkg
ewoJCQkJCQlmaW5kSW5wdXRzKCBlbGVtW2pdICk7CgkJCQkJfQoJCQkJfSBlbHNl
IHsKCQkJCQlmaW5kSW5wdXRzKCBlbGVtICk7CgkJCQl9CgkJCX0KCgkJCWlmICgg
ZWxlbS5ub2RlVHlwZSApIHsKCQkJCXJldC5wdXNoKCBlbGVtICk7CgkJCX0gZWxz
ZSB7CgkJCQlyZXQgPSBqUXVlcnkubWVyZ2UoIHJldCwgZWxlbSApOwoJCQl9CgkJ
fQoKCQlpZiAoIGZyYWdtZW50ICkgewoJCQljaGVja1NjcmlwdFR5cGUgPSBmdW5j
dGlvbiggZWxlbSApIHsKCQkJCXJldHVybiAhZWxlbS50eXBlIHx8IHJzY3JpcHRU
eXBlLnRlc3QoIGVsZW0udHlwZSApOwoJCQl9OwoJCQlmb3IgKCBpID0gMDsgcmV0
W2ldOyBpKysgKSB7CgkJCQlzY3JpcHQgPSByZXRbaV07CgkJCQlpZiAoIHNjcmlw
dHMgJiYgalF1ZXJ5Lm5vZGVOYW1lKCBzY3JpcHQsICJzY3JpcHQiICkgJiYgKCFz
Y3JpcHQudHlwZSB8fCByc2NyaXB0VHlwZS50ZXN0KCBzY3JpcHQudHlwZSApKSAp
IHsKCQkJCQlzY3JpcHRzLnB1c2goIHNjcmlwdC5wYXJlbnROb2RlID8gc2NyaXB0
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHNjcmlwdCApIDogc2NyaXB0ICk7CgoJ
CQkJfSBlbHNlIHsKCQkJCQlpZiAoIHNjcmlwdC5ub2RlVHlwZSA9PT0gMSApIHsK
CQkJCQkJdmFyIGpzVGFncyA9IGpRdWVyeS5ncmVwKCBzY3JpcHQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoICJzY3JpcHQiICksIGNoZWNrU2NyaXB0VHlwZSApOwoKCQkJ
CQkJcmV0LnNwbGljZS5hcHBseSggcmV0LCBbaSArIDEsIDBdLmNvbmNhdCgganNU
YWdzICkgKTsKCQkJCQl9CgkJCQkJZnJhZ21lbnQuYXBwZW5kQ2hpbGQoIHNjcmlw
dCApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gcmV0OwoJfSwKCgljbGVhbkRh
dGE6IGZ1bmN0aW9uKCBlbGVtcyApIHsKCQl2YXIgZGF0YSwgaWQsCgkJCWNhY2hl
ID0galF1ZXJ5LmNhY2hlLAoJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNp
YWwsCgkJCWRlbGV0ZUV4cGFuZG8gPSBqUXVlcnkuc3VwcG9ydC5kZWxldGVFeHBh
bmRvOwoKCQlmb3IgKCB2YXIgaSA9IDAsIGVsZW07IChlbGVtID0gZWxlbXNbaV0p
ICE9IG51bGw7IGkrKyApIHsKCQkJaWYgKCBlbGVtLm5vZGVOYW1lICYmIGpRdWVy
eS5ub0RhdGFbZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSApIHsKCQkJCWNv
bnRpbnVlOwoJCQl9CgoJCQlpZCA9IGVsZW1bIGpRdWVyeS5leHBhbmRvIF07CgoJ
CQlpZiAoIGlkICkgewoJCQkJZGF0YSA9IGNhY2hlWyBpZCBdOwoKCQkJCWlmICgg
ZGF0YSAmJiBkYXRhLmV2ZW50cyApIHsKCQkJCQlmb3IgKCB2YXIgdHlwZSBpbiBk
YXRhLmV2ZW50cyApIHsKCQkJCQkJaWYgKCBzcGVjaWFsWyB0eXBlIF0gKSB7CgkJ
CQkJCQlqUXVlcnkuZXZlbnQucmVtb3ZlKCBlbGVtLCB0eXBlICk7CgoJCQkJCQkv
LyBUaGlzIGlzIGEgc2hvcnRjdXQgdG8gYXZvaWQgalF1ZXJ5LmV2ZW50LnJlbW92
ZSdzIG92ZXJoZWFkCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlqUXVlcnkucmVtb3Zl
RXZlbnQoIGVsZW0sIHR5cGUsIGRhdGEuaGFuZGxlICk7CgkJCQkJCX0KCQkJCQl9
CgoJCQkJCS8vIE51bGwgdGhlIERPTSByZWZlcmVuY2UgdG8gYXZvaWQgSUU2Lzcv
OCBsZWFrICgjNzA1NCkKCQkJCQlpZiAoIGRhdGEuaGFuZGxlICkgewoJCQkJCQlk
YXRhLmhhbmRsZS5lbGVtID0gbnVsbDsKCQkJCQl9CgkJCQl9CgoJCQkJaWYgKCBk
ZWxldGVFeHBhbmRvICkgewoJCQkJCWRlbGV0ZSBlbGVtWyBqUXVlcnkuZXhwYW5k
byBdOwoKCQkJCX0gZWxzZSBpZiAoIGVsZW0ucmVtb3ZlQXR0cmlidXRlICkgewoJ
CQkJCWVsZW0ucmVtb3ZlQXR0cmlidXRlKCBqUXVlcnkuZXhwYW5kbyApOwoJCQkJ
fQoKCQkJCWRlbGV0ZSBjYWNoZVsgaWQgXTsKCQkJfQoJCX0KCX0KfSk7CgoKCgp2
YXIgcmFscGhhID0gL2FscGhhXChbXildKlwpL2ksCglyb3BhY2l0eSA9IC9vcGFj
aXR5PShbXildKikvLAoJLy8gZml4ZWQgZm9yIElFOSwgc2VlICM4MzQ2CglydXBw
ZXIgPSAvKFtBLVpdfF5tcykvZywKCXJudW0gPSAvXltcLStdPyg/OlxkKlwuKT9c
ZCskL2ksCglybnVtbm9ucHggPSAvXi0/KD86XGQqXC4pP1xkKyg/IXB4KVteXGRc
c10rJC9pLAoJcnJlbE51bSA9IC9eKFtcLStdKT0oW1wtKy5cZGVdKykvLAoJcm1h
cmdpbiA9IC9ebWFyZ2luLywKCgljc3NTaG93ID0geyBwb3NpdGlvbjogImFic29s
dXRlIiwgdmlzaWJpbGl0eTogImhpZGRlbiIsIGRpc3BsYXk6ICJibG9jayIgfSwK
CgkvLyBvcmRlciBpcyBpbXBvcnRhbnQhCgljc3NFeHBhbmQgPSBbICJUb3AiLCAi
UmlnaHQiLCAiQm90dG9tIiwgIkxlZnQiIF0sCgoJY3VyQ1NTLAoKCWdldENvbXB1
dGVkU3R5bGUsCgljdXJyZW50U3R5bGU7CgpqUXVlcnkuZm4uY3NzID0gZnVuY3Rp
b24oIG5hbWUsIHZhbHVlICkgewoJcmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMs
IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHsKCQlyZXR1cm4gdmFsdWUg
IT09IHVuZGVmaW5lZCA/CgkJCWpRdWVyeS5zdHlsZSggZWxlbSwgbmFtZSwgdmFs
dWUgKSA6CgkJCWpRdWVyeS5jc3MoIGVsZW0sIG5hbWUgKTsKCX0sIG5hbWUsIHZh
bHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSApOwp9OwoKalF1ZXJ5LmV4dGVuZCh7
CgkvLyBBZGQgaW4gc3R5bGUgcHJvcGVydHkgaG9va3MgZm9yIG92ZXJyaWRpbmcg
dGhlIGRlZmF1bHQKCS8vIGJlaGF2aW9yIG9mIGdldHRpbmcgYW5kIHNldHRpbmcg
YSBzdHlsZSBwcm9wZXJ0eQoJY3NzSG9va3M6IHsKCQlvcGFjaXR5OiB7CgkJCWdl
dDogZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkgewoJCQkJaWYgKCBjb21wdXRl
ZCApIHsKCQkJCQkvLyBXZSBzaG91bGQgYWx3YXlzIGdldCBhIG51bWJlciBiYWNr
IGZyb20gb3BhY2l0eQoJCQkJCXZhciByZXQgPSBjdXJDU1MoIGVsZW0sICJvcGFj
aXR5IiApOwoJCQkJCXJldHVybiByZXQgPT09ICIiID8gIjEiIDogcmV0OwoKCQkJ
CX0gZWxzZSB7CgkJCQkJcmV0dXJuIGVsZW0uc3R5bGUub3BhY2l0eTsKCQkJCX0K
CQkJfQoJCX0KCX0sCgoJLy8gRXhjbHVkZSB0aGUgZm9sbG93aW5nIGNzcyBwcm9w
ZXJ0aWVzIHRvIGFkZCBweAoJY3NzTnVtYmVyOiB7CgkJImZpbGxPcGFjaXR5Ijog
dHJ1ZSwKCQkiZm9udFdlaWdodCI6IHRydWUsCgkJImxpbmVIZWlnaHQiOiB0cnVl
LAoJCSJvcGFjaXR5IjogdHJ1ZSwKCQkib3JwaGFucyI6IHRydWUsCgkJIndpZG93
cyI6IHRydWUsCgkJInpJbmRleCI6IHRydWUsCgkJInpvb20iOiB0cnVlCgl9LAoK
CS8vIEFkZCBpbiBwcm9wZXJ0aWVzIHdob3NlIG5hbWVzIHlvdSB3aXNoIHRvIGZp
eCBiZWZvcmUKCS8vIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgdmFsdWUKCWNzc1By
b3BzOiB7CgkJLy8gbm9ybWFsaXplIGZsb2F0IGNzcyBwcm9wZXJ0eQoJCSJmbG9h
dCI6IGpRdWVyeS5zdXBwb3J0LmNzc0Zsb2F0ID8gImNzc0Zsb2F0IiA6ICJzdHls
ZUZsb2F0IgoJfSwKCgkvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkg
b24gYSBET00gTm9kZQoJc3R5bGU6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1
ZSwgZXh0cmEgKSB7CgkJLy8gRG9uJ3Qgc2V0IHN0eWxlcyBvbiB0ZXh0IGFuZCBj
b21tZW50IG5vZGVzCgkJaWYgKCAhZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09PSAz
IHx8IGVsZW0ubm9kZVR5cGUgPT09IDggfHwgIWVsZW0uc3R5bGUgKSB7CgkJCXJl
dHVybjsKCQl9CgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0
aCB0aGUgcmlnaHQgbmFtZQoJCXZhciByZXQsIHR5cGUsIG9yaWdOYW1lID0galF1
ZXJ5LmNhbWVsQ2FzZSggbmFtZSApLAoJCQlzdHlsZSA9IGVsZW0uc3R5bGUsIGhv
b2tzID0galF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdOwoKCQluYW1lID0galF1
ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8IG9yaWdOYW1lOwoKCQkvLyBDaGVj
ayBpZiB3ZSdyZSBzZXR0aW5nIGEgdmFsdWUKCQlpZiAoIHZhbHVlICE9PSB1bmRl
ZmluZWQgKSB7CgkJCXR5cGUgPSB0eXBlb2YgdmFsdWU7CgoJCQkvLyBjb252ZXJ0
IHJlbGF0aXZlIG51bWJlciBzdHJpbmdzICgrPSBvciAtPSkgdG8gcmVsYXRpdmUg
bnVtYmVycy4gIzczNDUKCQkJaWYgKCB0eXBlID09PSAic3RyaW5nIiAmJiAocmV0
ID0gcnJlbE51bS5leGVjKCB2YWx1ZSApKSApIHsKCQkJCXZhbHVlID0gKCArKCBy
ZXRbMV0gKyAxKSAqICtyZXRbMl0gKSArIHBhcnNlRmxvYXQoIGpRdWVyeS5jc3Mo
IGVsZW0sIG5hbWUgKSApOwoJCQkJLy8gRml4ZXMgYnVnICM5MjM3CgkJCQl0eXBl
ID0gIm51bWJlciI7CgkJCX0KCgkJCS8vIE1ha2Ugc3VyZSB0aGF0IE5hTiBhbmQg
bnVsbCB2YWx1ZXMgYXJlbid0IHNldC4gU2VlOiAjNzExNgoJCQlpZiAoIHZhbHVl
ID09IG51bGwgfHwgdHlwZSA9PT0gIm51bWJlciIgJiYgaXNOYU4oIHZhbHVlICkg
KSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCS8vIElmIGEgbnVtYmVyIHdhcyBwYXNz
ZWQgaW4sIGFkZCAncHgnIHRvIHRoZSAoZXhjZXB0IGZvciBjZXJ0YWluIENTUyBw
cm9wZXJ0aWVzKQoJCQlpZiAoIHR5cGUgPT09ICJudW1iZXIiICYmICFqUXVlcnku
Y3NzTnVtYmVyWyBvcmlnTmFtZSBdICkgewoJCQkJdmFsdWUgKz0gInB4IjsKCQkJ
fQoKCQkJLy8gSWYgYSBob29rIHdhcyBwcm92aWRlZCwgdXNlIHRoYXQgdmFsdWUs
IG90aGVyd2lzZSBqdXN0IHNldCB0aGUgc3BlY2lmaWVkIHZhbHVlCgkJCWlmICgg
IWhvb2tzIHx8ICEoInNldCIgaW4gaG9va3MpIHx8ICh2YWx1ZSA9IGhvb2tzLnNl
dCggZWxlbSwgdmFsdWUgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJCS8vIFdyYXBw
ZWQgdG8gcHJldmVudCBJRSBmcm9tIHRocm93aW5nIGVycm9ycyB3aGVuICdpbnZh
bGlkJyB2YWx1ZXMgYXJlIHByb3ZpZGVkCgkJCQkvLyBGaXhlcyBidWcgIzU1MDkK
CQkJCXRyeSB7CgkJCQkJc3R5bGVbIG5hbWUgXSA9IHZhbHVlOwoJCQkJfSBjYXRj
aChlKSB7fQoJCQl9CgoJCX0gZWxzZSB7CgkJCS8vIElmIGEgaG9vayB3YXMgcHJv
dmlkZWQgZ2V0IHRoZSBub24tY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZQoJCQlp
ZiAoIGhvb2tzICYmICJnZXQiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQo
IGVsZW0sIGZhbHNlLCBleHRyYSApKSAhPT0gdW5kZWZpbmVkICkgewoJCQkJcmV0
dXJuIHJldDsKCQkJfQoKCQkJLy8gT3RoZXJ3aXNlIGp1c3QgZ2V0IHRoZSB2YWx1
ZSBmcm9tIHRoZSBzdHlsZSBvYmplY3QKCQkJcmV0dXJuIHN0eWxlWyBuYW1lIF07
CgkJfQoJfSwKCgljc3M6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBleHRyYSApIHsK
CQl2YXIgcmV0LCBob29rczsKCgkJLy8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29y
a2luZyB3aXRoIHRoZSByaWdodCBuYW1lCgkJbmFtZSA9IGpRdWVyeS5jYW1lbENh
c2UoIG5hbWUgKTsKCQlob29rcyA9IGpRdWVyeS5jc3NIb29rc1sgbmFtZSBdOwoJ
CW5hbWUgPSBqUXVlcnkuY3NzUHJvcHNbIG5hbWUgXSB8fCBuYW1lOwoKCQkvLyBj
c3NGbG9hdCBuZWVkcyBhIHNwZWNpYWwgdHJlYXRtZW50CgkJaWYgKCBuYW1lID09
PSAiY3NzRmxvYXQiICkgewoJCQluYW1lID0gImZsb2F0IjsKCQl9CgoJCS8vIElm
IGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBjb21wdXRlZCB2YWx1ZSBmcm9t
IHRoZXJlCgkJaWYgKCBob29rcyAmJiAiZ2V0IiBpbiBob29rcyAmJiAocmV0ID0g
aG9va3MuZ2V0KCBlbGVtLCB0cnVlLCBleHRyYSApKSAhPT0gdW5kZWZpbmVkICkg
ewoJCQlyZXR1cm4gcmV0OwoKCQkvLyBPdGhlcndpc2UsIGlmIGEgd2F5IHRvIGdl
dCB0aGUgY29tcHV0ZWQgdmFsdWUgZXhpc3RzLCB1c2UgdGhhdAoJCX0gZWxzZSBp
ZiAoIGN1ckNTUyApIHsKCQkJcmV0dXJuIGN1ckNTUyggZWxlbSwgbmFtZSApOwoJ
CX0KCX0sCgoJLy8gQSBtZXRob2QgZm9yIHF1aWNrbHkgc3dhcHBpbmcgaW4vb3V0
IENTUyBwcm9wZXJ0aWVzIHRvIGdldCBjb3JyZWN0IGNhbGN1bGF0aW9ucwoJc3dh
cDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGNhbGxiYWNrICkgewoJCXZhciBv
bGQgPSB7fSwKCQkJcmV0LCBuYW1lOwoKCQkvLyBSZW1lbWJlciB0aGUgb2xkIHZh
bHVlcywgYW5kIGluc2VydCB0aGUgbmV3IG9uZXMKCQlmb3IgKCBuYW1lIGluIG9w
dGlvbnMgKSB7CgkJCW9sZFsgbmFtZSBdID0gZWxlbS5zdHlsZVsgbmFtZSBdOwoJ
CQllbGVtLnN0eWxlWyBuYW1lIF0gPSBvcHRpb25zWyBuYW1lIF07CgkJfQoKCQly
ZXQgPSBjYWxsYmFjay5jYWxsKCBlbGVtICk7CgoJCS8vIFJldmVydCB0aGUgb2xk
IHZhbHVlcwoJCWZvciAoIG5hbWUgaW4gb3B0aW9ucyApIHsKCQkJZWxlbS5zdHls
ZVsgbmFtZSBdID0gb2xkWyBuYW1lIF07CgkJfQoKCQlyZXR1cm4gcmV0OwoJfQp9
KTsKCi8vIERFUFJFQ0FURUQgaW4gMS4zLCBVc2UgalF1ZXJ5LmNzcygpIGluc3Rl
YWQKalF1ZXJ5LmN1ckNTUyA9IGpRdWVyeS5jc3M7CgppZiAoIGRvY3VtZW50LmRl
ZmF1bHRWaWV3ICYmIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUgKSB7CglnZXRDb21wdXRlZFN0eWxlID0gZnVuY3Rpb24oIGVsZW0sIG5hbWUg
KSB7CgkJdmFyIHJldCwgZGVmYXVsdFZpZXcsIGNvbXB1dGVkU3R5bGUsIHdpZHRo
LAoJCQlzdHlsZSA9IGVsZW0uc3R5bGU7CgoJCW5hbWUgPSBuYW1lLnJlcGxhY2Uo
IHJ1cHBlciwgIi0kMSIgKS50b0xvd2VyQ2FzZSgpOwoKCQlpZiAoIChkZWZhdWx0
VmlldyA9IGVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldykgJiYKCQkJCShj
b21wdXRlZFN0eWxlID0gZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSggZWxl
bSwgbnVsbCApKSApIHsKCgkJCXJldCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSggbmFtZSApOwoJCQlpZiAoIHJldCA9PT0gIiIgJiYgIWpRdWVyeS5j
b250YWlucyggZWxlbS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgZWxl
bSApICkgewoJCQkJcmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7CgkJ
CX0KCQl9CgoJCS8vIEEgdHJpYnV0ZSB0byB0aGUgImF3ZXNvbWUgaGFjayBieSBE
ZWFuIEVkd2FyZHMiCgkJLy8gV2ViS2l0IHVzZXMgImNvbXB1dGVkIHZhbHVlIChw
ZXJjZW50YWdlIGlmIHNwZWNpZmllZCkiIGluc3RlYWQgb2YgInVzZWQgdmFsdWUi
IGZvciBtYXJnaW5zCgkJLy8gd2hpY2ggaXMgYWdhaW5zdCB0aGUgQ1NTT00gZHJh
ZnQgc3BlYzogaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3Nzb20vI3Jlc29sdmVk
LXZhbHVlcwoJCWlmICggIWpRdWVyeS5zdXBwb3J0LnBpeGVsTWFyZ2luICYmIGNv
bXB1dGVkU3R5bGUgJiYgcm1hcmdpbi50ZXN0KCBuYW1lICkgJiYgcm51bW5vbnB4
LnRlc3QoIHJldCApICkgewoJCQl3aWR0aCA9IHN0eWxlLndpZHRoOwoJCQlzdHls
ZS53aWR0aCA9IHJldDsKCQkJcmV0ID0gY29tcHV0ZWRTdHlsZS53aWR0aDsKCQkJ
c3R5bGUud2lkdGggPSB3aWR0aDsKCQl9CgoJCXJldHVybiByZXQ7Cgl9Owp9Cgpp
ZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jdXJyZW50U3R5bGUgKSB7Cglj
dXJyZW50U3R5bGUgPSBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHsKCQl2YXIgbGVm
dCwgcnNMZWZ0LCB1bmNvbXB1dGVkLAoJCQlyZXQgPSBlbGVtLmN1cnJlbnRTdHls
ZSAmJiBlbGVtLmN1cnJlbnRTdHlsZVsgbmFtZSBdLAoJCQlzdHlsZSA9IGVsZW0u
c3R5bGU7CgoJCS8vIEF2b2lkIHNldHRpbmcgcmV0IHRvIGVtcHR5IHN0cmluZyBo
ZXJlCgkJLy8gc28gd2UgZG9uJ3QgZGVmYXVsdCB0byBhdXRvCgkJaWYgKCByZXQg
PT0gbnVsbCAmJiBzdHlsZSAmJiAodW5jb21wdXRlZCA9IHN0eWxlWyBuYW1lIF0p
ICkgewoJCQlyZXQgPSB1bmNvbXB1dGVkOwoJCX0KCgkJLy8gRnJvbSB0aGUgYXdl
c29tZSBoYWNrIGJ5IERlYW4gRWR3YXJkcwoJCS8vIGh0dHA6Ly9lcmlrLmVhZS5u
ZXQvYXJjaGl2ZXMvMjAwNy8wNy8yNy8xOC41NC4xNS8jY29tbWVudC0xMDIyOTEK
CgkJLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBhIHJlZ3VsYXIgcGl4ZWwg
bnVtYmVyCgkJLy8gYnV0IGEgbnVtYmVyIHRoYXQgaGFzIGEgd2VpcmQgZW5kaW5n
LCB3ZSBuZWVkIHRvIGNvbnZlcnQgaXQgdG8gcGl4ZWxzCgkJaWYgKCBybnVtbm9u
cHgudGVzdCggcmV0ICkgKSB7CgoJCQkvLyBSZW1lbWJlciB0aGUgb3JpZ2luYWwg
dmFsdWVzCgkJCWxlZnQgPSBzdHlsZS5sZWZ0OwoJCQlyc0xlZnQgPSBlbGVtLnJ1
bnRpbWVTdHlsZSAmJiBlbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0OwoKCQkJLy8gUHV0
IGluIHRoZSBuZXcgdmFsdWVzIHRvIGdldCBhIGNvbXB1dGVkIHZhbHVlIG91dAoJ
CQlpZiAoIHJzTGVmdCApIHsKCQkJCWVsZW0ucnVudGltZVN0eWxlLmxlZnQgPSBl
bGVtLmN1cnJlbnRTdHlsZS5sZWZ0OwoJCQl9CgkJCXN0eWxlLmxlZnQgPSBuYW1l
ID09PSAiZm9udFNpemUiID8gIjFlbSIgOiByZXQ7CgkJCXJldCA9IHN0eWxlLnBp
eGVsTGVmdCArICJweCI7CgoJCQkvLyBSZXZlcnQgdGhlIGNoYW5nZWQgdmFsdWVz
CgkJCXN0eWxlLmxlZnQgPSBsZWZ0OwoJCQlpZiAoIHJzTGVmdCApIHsKCQkJCWVs
ZW0ucnVudGltZVN0eWxlLmxlZnQgPSByc0xlZnQ7CgkJCX0KCQl9CgoJCXJldHVy
biByZXQgPT09ICIiID8gImF1dG8iIDogcmV0OwoJfTsKfQoKY3VyQ1NTID0gZ2V0
Q29tcHV0ZWRTdHlsZSB8fCBjdXJyZW50U3R5bGU7CgpmdW5jdGlvbiBnZXRXaWR0
aE9ySGVpZ2h0KCBlbGVtLCBuYW1lLCBleHRyYSApIHsKCgkvLyBTdGFydCB3aXRo
IG9mZnNldCBwcm9wZXJ0eQoJdmFyIHZhbCA9IG5hbWUgPT09ICJ3aWR0aCIgPyBl
bGVtLm9mZnNldFdpZHRoIDogZWxlbS5vZmZzZXRIZWlnaHQsCgkJaSA9IG5hbWUg
PT09ICJ3aWR0aCIgPyAxIDogMCwKCQlsZW4gPSA0OwoKCWlmICggdmFsID4gMCAp
IHsKCQlpZiAoIGV4dHJhICE9PSAiYm9yZGVyIiApIHsKCQkJZm9yICggOyBpIDwg
bGVuOyBpICs9IDIgKSB7CgkJCQlpZiAoICFleHRyYSApIHsKCQkJCQl2YWwgLT0g
cGFyc2VGbG9hdCggalF1ZXJ5LmNzcyggZWxlbSwgInBhZGRpbmciICsgY3NzRXhw
YW5kWyBpIF0gKSApIHx8IDA7CgkJCQl9CgkJCQlpZiAoIGV4dHJhID09PSAibWFy
Z2luIiApIHsKCQkJCQl2YWwgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyggZWxl
bSwgZXh0cmEgKyBjc3NFeHBhbmRbIGkgXSApICkgfHwgMDsKCQkJCX0gZWxzZSB7
CgkJCQkJdmFsIC09IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoIGVsZW0sICJib3Jk
ZXIiICsgY3NzRXhwYW5kWyBpIF0gKyAiV2lkdGgiICkgKSB8fCAwOwoJCQkJfQoJ
CQl9CgkJfQoKCQlyZXR1cm4gdmFsICsgInB4IjsKCX0KCgkvLyBGYWxsIGJhY2sg
dG8gY29tcHV0ZWQgdGhlbiB1bmNvbXB1dGVkIGNzcyBpZiBuZWNlc3NhcnkKCXZh
bCA9IGN1ckNTUyggZWxlbSwgbmFtZSApOwoJaWYgKCB2YWwgPCAwIHx8IHZhbCA9
PSBudWxsICkgewoJCXZhbCA9IGVsZW0uc3R5bGVbIG5hbWUgXTsKCX0KCgkvLyBD
b21wdXRlZCB1bml0IGlzIG5vdCBwaXhlbHMuIFN0b3AgaGVyZSBhbmQgcmV0dXJu
LgoJaWYgKCBybnVtbm9ucHgudGVzdCh2YWwpICkgewoJCXJldHVybiB2YWw7Cgl9
CgoJLy8gTm9ybWFsaXplICIiLCBhdXRvLCBhbmQgcHJlcGFyZSBmb3IgZXh0cmEK
CXZhbCA9IHBhcnNlRmxvYXQoIHZhbCApIHx8IDA7CgoJLy8gQWRkIHBhZGRpbmcs
IGJvcmRlciwgbWFyZ2luCglpZiAoIGV4dHJhICkgewoJCWZvciAoIDsgaSA8IGxl
bjsgaSArPSAyICkgewoJCQl2YWwgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcygg
ZWxlbSwgInBhZGRpbmciICsgY3NzRXhwYW5kWyBpIF0gKSApIHx8IDA7CgkJCWlm
ICggZXh0cmEgIT09ICJwYWRkaW5nIiApIHsKCQkJCXZhbCArPSBwYXJzZUZsb2F0
KCBqUXVlcnkuY3NzKCBlbGVtLCAiYm9yZGVyIiArIGNzc0V4cGFuZFsgaSBdICsg
IldpZHRoIiApICkgfHwgMDsKCQkJfQoJCQlpZiAoIGV4dHJhID09PSAibWFyZ2lu
IiApIHsKCQkJCXZhbCArPSBwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKCBlbGVtLCBl
eHRyYSArIGNzc0V4cGFuZFsgaSBdKSApIHx8IDA7CgkJCX0KCQl9Cgl9CgoJcmV0
dXJuIHZhbCArICJweCI7Cn0KCmpRdWVyeS5lYWNoKFsgImhlaWdodCIsICJ3aWR0
aCIgXSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7CglqUXVlcnkuY3NzSG9va3NbIG5h
bWUgXSA9IHsKCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCwgZXh0cmEg
KSB7CgkJCWlmICggY29tcHV0ZWQgKSB7CgkJCQlpZiAoIGVsZW0ub2Zmc2V0V2lk
dGggIT09IDAgKSB7CgkJCQkJcmV0dXJuIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0s
IG5hbWUsIGV4dHJhICk7CgkJCQl9IGVsc2UgewoJCQkJCXJldHVybiBqUXVlcnku
c3dhcCggZWxlbSwgY3NzU2hvdywgZnVuY3Rpb24oKSB7CgkJCQkJCXJldHVybiBn
ZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBuYW1lLCBleHRyYSApOwoJCQkJCX0pOwoJ
CQkJfQoJCQl9CgkJfSwKCgkJc2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7
CgkJCXJldHVybiBybnVtLnRlc3QoIHZhbHVlICkgPwoJCQkJdmFsdWUgKyAicHgi
IDoKCQkJCXZhbHVlOwoJCX0KCX07Cn0pOwoKaWYgKCAhalF1ZXJ5LnN1cHBvcnQu
b3BhY2l0eSApIHsKCWpRdWVyeS5jc3NIb29rcy5vcGFjaXR5ID0gewoJCWdldDog
ZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkgewoJCQkvLyBJRSB1c2VzIGZpbHRl
cnMgZm9yIG9wYWNpdHkKCQkJcmV0dXJuIHJvcGFjaXR5LnRlc3QoIChjb21wdXRl
ZCAmJiBlbGVtLmN1cnJlbnRTdHlsZSA/IGVsZW0uY3VycmVudFN0eWxlLmZpbHRl
ciA6IGVsZW0uc3R5bGUuZmlsdGVyKSB8fCAiIiApID8KCQkJCSggcGFyc2VGbG9h
dCggUmVnRXhwLiQxICkgLyAxMDAgKSArICIiIDoKCQkJCWNvbXB1dGVkID8gIjEi
IDogIiI7CgkJfSwKCgkJc2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7CgkJ
CXZhciBzdHlsZSA9IGVsZW0uc3R5bGUsCgkJCQljdXJyZW50U3R5bGUgPSBlbGVt
LmN1cnJlbnRTdHlsZSwKCQkJCW9wYWNpdHkgPSBqUXVlcnkuaXNOdW1lcmljKCB2
YWx1ZSApID8gImFscGhhKG9wYWNpdHk9IiArIHZhbHVlICogMTAwICsgIikiIDog
IiIsCgkJCQlmaWx0ZXIgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxlLmZp
bHRlciB8fCBzdHlsZS5maWx0ZXIgfHwgIiI7CgoJCQkvLyBJRSBoYXMgdHJvdWJs
ZSB3aXRoIG9wYWNpdHkgaWYgaXQgZG9lcyBub3QgaGF2ZSBsYXlvdXQKCQkJLy8g
Rm9yY2UgaXQgYnkgc2V0dGluZyB0aGUgem9vbSBsZXZlbAoJCQlzdHlsZS56b29t
ID0gMTsKCgkJCS8vIGlmIHNldHRpbmcgb3BhY2l0eSB0byAxLCBhbmQgbm8gb3Ro
ZXIgZmlsdGVycyBleGlzdCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGZpbHRlciBhdHRy
aWJ1dGUgIzY2NTIKCQkJaWYgKCB2YWx1ZSA+PSAxICYmIGpRdWVyeS50cmltKCBm
aWx0ZXIucmVwbGFjZSggcmFscGhhLCAiIiApICkgPT09ICIiICkgewoKCQkJCS8v
IFNldHRpbmcgc3R5bGUuZmlsdGVyIHRvIG51bGwsICIiICYgIiAiIHN0aWxsIGxl
YXZlICJmaWx0ZXI6IiBpbiB0aGUgY3NzVGV4dAoJCQkJLy8gaWYgImZpbHRlcjoi
IGlzIHByZXNlbnQgYXQgYWxsLCBjbGVhclR5cGUgaXMgZGlzYWJsZWQsIHdlIHdh
bnQgdG8gYXZvaWQgdGhpcwoJCQkJLy8gc3R5bGUucmVtb3ZlQXR0cmlidXRlIGlz
IElFIE9ubHksIGJ1dCBzbyBhcHBhcmVudGx5IGlzIHRoaXMgY29kZSBwYXRoLi4u
CgkJCQlzdHlsZS5yZW1vdmVBdHRyaWJ1dGUoICJmaWx0ZXIiICk7CgoJCQkJLy8g
aWYgdGhlcmUgdGhlcmUgaXMgbm8gZmlsdGVyIHN0eWxlIGFwcGxpZWQgaW4gYSBj
c3MgcnVsZSwgd2UgYXJlIGRvbmUKCQkJCWlmICggY3VycmVudFN0eWxlICYmICFj
dXJyZW50U3R5bGUuZmlsdGVyICkgewoJCQkJCXJldHVybjsKCQkJCX0KCQkJfQoK
CQkJLy8gb3RoZXJ3aXNlLCBzZXQgbmV3IGZpbHRlciB2YWx1ZXMKCQkJc3R5bGUu
ZmlsdGVyID0gcmFscGhhLnRlc3QoIGZpbHRlciApID8KCQkJCWZpbHRlci5yZXBs
YWNlKCByYWxwaGEsIG9wYWNpdHkgKSA6CgkJCQlmaWx0ZXIgKyAiICIgKyBvcGFj
aXR5OwoJCX0KCX07Cn0KCmpRdWVyeShmdW5jdGlvbigpIHsKCS8vIFRoaXMgaG9v
ayBjYW5ub3QgYmUgYWRkZWQgdW50aWwgRE9NIHJlYWR5IGJlY2F1c2UgdGhlIHN1
cHBvcnQgdGVzdAoJLy8gZm9yIGl0IGlzIG5vdCBydW4gdW50aWwgYWZ0ZXIgRE9N
IHJlYWR5CglpZiAoICFqUXVlcnkuc3VwcG9ydC5yZWxpYWJsZU1hcmdpblJpZ2h0
ICkgewoJCWpRdWVyeS5jc3NIb29rcy5tYXJnaW5SaWdodCA9IHsKCQkJZ2V0OiBm
dW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7CgkJCQkvLyBXZWJLaXQgQnVnIDEz
MzQzIC0gZ2V0Q29tcHV0ZWRTdHlsZSByZXR1cm5zIHdyb25nIHZhbHVlIGZvciBt
YXJnaW4tcmlnaHQKCQkJCS8vIFdvcmsgYXJvdW5kIGJ5IHRlbXBvcmFyaWx5IHNl
dHRpbmcgZWxlbWVudCBkaXNwbGF5IHRvIGlubGluZS1ibG9jawoJCQkJcmV0dXJu
IGpRdWVyeS5zd2FwKCBlbGVtLCB7ICJkaXNwbGF5IjogImlubGluZS1ibG9jayIg
fSwgZnVuY3Rpb24oKSB7CgkJCQkJaWYgKCBjb21wdXRlZCApIHsKCQkJCQkJcmV0
dXJuIGN1ckNTUyggZWxlbSwgIm1hcmdpbi1yaWdodCIgKTsKCQkJCQl9IGVsc2Ug
ewoJCQkJCQlyZXR1cm4gZWxlbS5zdHlsZS5tYXJnaW5SaWdodDsKCQkJCQl9CgkJ
CQl9KTsKCQkJfQoJCX07Cgl9Cn0pOwoKaWYgKCBqUXVlcnkuZXhwciAmJiBqUXVl
cnkuZXhwci5maWx0ZXJzICkgewoJalF1ZXJ5LmV4cHIuZmlsdGVycy5oaWRkZW4g
PSBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgd2lkdGggPSBlbGVtLm9mZnNldFdp
ZHRoLAoJCQloZWlnaHQgPSBlbGVtLm9mZnNldEhlaWdodDsKCgkJcmV0dXJuICgg
d2lkdGggPT09IDAgJiYgaGVpZ2h0ID09PSAwICkgfHwgKCFqUXVlcnkuc3VwcG9y
dC5yZWxpYWJsZUhpZGRlbk9mZnNldHMgJiYgKChlbGVtLnN0eWxlICYmIGVsZW0u
c3R5bGUuZGlzcGxheSkgfHwgalF1ZXJ5LmNzcyggZWxlbSwgImRpc3BsYXkiICkp
ID09PSAibm9uZSIpOwoJfTsKCglqUXVlcnkuZXhwci5maWx0ZXJzLnZpc2libGUg
PSBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4gIWpRdWVyeS5leHByLmZpbHRl
cnMuaGlkZGVuKCBlbGVtICk7Cgl9Owp9CgovLyBUaGVzZSBob29rcyBhcmUgdXNl
ZCBieSBhbmltYXRlIHRvIGV4cGFuZCBwcm9wZXJ0aWVzCmpRdWVyeS5lYWNoKHsK
CW1hcmdpbjogIiIsCglwYWRkaW5nOiAiIiwKCWJvcmRlcjogIldpZHRoIgp9LCBm
dW5jdGlvbiggcHJlZml4LCBzdWZmaXggKSB7CgoJalF1ZXJ5LmNzc0hvb2tzWyBw
cmVmaXggKyBzdWZmaXggXSA9IHsKCQlleHBhbmQ6IGZ1bmN0aW9uKCB2YWx1ZSAp
IHsKCQkJdmFyIGksCgoJCQkJLy8gYXNzdW1lcyBhIHNpbmdsZSBudW1iZXIgaWYg
bm90IGEgc3RyaW5nCgkJCQlwYXJ0cyA9IHR5cGVvZiB2YWx1ZSA9PT0gInN0cmlu
ZyIgPyB2YWx1ZS5zcGxpdCgiICIpIDogWyB2YWx1ZSBdLAoJCQkJZXhwYW5kZWQg
PSB7fTsKCgkJCWZvciAoIGkgPSAwOyBpIDwgNDsgaSsrICkgewoJCQkJZXhwYW5k
ZWRbIHByZWZpeCArIGNzc0V4cGFuZFsgaSBdICsgc3VmZml4IF0gPQoJCQkJCXBh
cnRzWyBpIF0gfHwgcGFydHNbIGkgLSAyIF0gfHwgcGFydHNbIDAgXTsKCQkJfQoK
CQkJcmV0dXJuIGV4cGFuZGVkOwoJCX0KCX07Cn0pOwoKCgoKdmFyIHIyMCA9IC8l
MjAvZywKCXJicmFja2V0ID0gL1xbXF0kLywKCXJDUkxGID0gL1xyP1xuL2csCgly
aGFzaCA9IC8jLiokLywKCXJoZWFkZXJzID0gL14oLio/KTpbIFx0XSooW15cclxu
XSopXHI/JC9tZywgLy8gSUUgbGVhdmVzIGFuIFxyIGNoYXJhY3RlciBhdCBFT0wK
CXJpbnB1dCA9IC9eKD86Y29sb3J8ZGF0ZXxkYXRldGltZXxkYXRldGltZS1sb2Nh
bHxlbWFpbHxoaWRkZW58bW9udGh8bnVtYmVyfHBhc3N3b3JkfHJhbmdlfHNlYXJj
aHx0ZWx8dGV4dHx0aW1lfHVybHx3ZWVrKSQvaSwKCS8vICM3NjUzLCAjODEyNSwg
IzgxNTI6IGxvY2FsIHByb3RvY29sIGRldGVjdGlvbgoJcmxvY2FsUHJvdG9jb2wg
PSAvXig/OmFib3V0fGFwcHxhcHBcLXN0b3JhZ2V8LitcLWV4dGVuc2lvbnxmaWxl
fHJlc3x3aWRnZXQpOiQvLAoJcm5vQ29udGVudCA9IC9eKD86R0VUfEhFQUQpJC8s
CglycHJvdG9jb2wgPSAvXlwvXC8vLAoJcnF1ZXJ5ID0gL1w/LywKCXJzY3JpcHQg
PSAvPHNjcmlwdFxiW148XSooPzooPyE8XC9zY3JpcHQ+KTxbXjxdKikqPFwvc2Ny
aXB0Pi9naSwKCXJzZWxlY3RUZXh0YXJlYSA9IC9eKD86c2VsZWN0fHRleHRhcmVh
KS9pLAoJcnNwYWNlc0FqYXggPSAvXHMrLywKCXJ0cyA9IC8oWz8mXSlfPVteJl0q
LywKCXJ1cmwgPSAvXihbXHdcK1wuXC1dKzopKD86XC9cLyhbXlwvPyM6XSopKD86
OihcZCspKT8pPy8sCgoJLy8gS2VlcCBhIGNvcHkgb2YgdGhlIG9sZCBsb2FkIG1l
dGhvZAoJX2xvYWQgPSBqUXVlcnkuZm4ubG9hZCwKCgkvKiBQcmVmaWx0ZXJzCgkg
KiAxKSBUaGV5IGFyZSB1c2VmdWwgdG8gaW50cm9kdWNlIGN1c3RvbSBkYXRhVHlw
ZXMgKHNlZSBhamF4L2pzb25wLmpzIGZvciBhbiBleGFtcGxlKQoJICogMikgVGhl
c2UgYXJlIGNhbGxlZDoKCSAqICAgIC0gQkVGT1JFIGFza2luZyBmb3IgYSB0cmFu
c3BvcnQKCSAqICAgIC0gQUZURVIgcGFyYW0gc2VyaWFsaXphdGlvbiAocy5kYXRh
IGlzIGEgc3RyaW5nIGlmIHMucHJvY2Vzc0RhdGEgaXMgdHJ1ZSkKCSAqIDMpIGtl
eSBpcyB0aGUgZGF0YVR5cGUKCSAqIDQpIHRoZSBjYXRjaGFsbCBzeW1ib2wgIioi
IGNhbiBiZSB1c2VkCgkgKiA1KSBleGVjdXRpb24gd2lsbCBzdGFydCB3aXRoIHRy
YW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBjb250aW51ZSBkb3duIHRvICIqIiBp
ZiBuZWVkZWQKCSAqLwoJcHJlZmlsdGVycyA9IHt9LAoKCS8qIFRyYW5zcG9ydHMg
YmluZGluZ3MKCSAqIDEpIGtleSBpcyB0aGUgZGF0YVR5cGUKCSAqIDIpIHRoZSBj
YXRjaGFsbCBzeW1ib2wgIioiIGNhbiBiZSB1c2VkCgkgKiAzKSBzZWxlY3Rpb24g
d2lsbCBzdGFydCB3aXRoIHRyYW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBnbyB0
byAiKiIgaWYgbmVlZGVkCgkgKi8KCXRyYW5zcG9ydHMgPSB7fSwKCgkvLyBEb2N1
bWVudCBsb2NhdGlvbgoJYWpheExvY2F0aW9uLAoKCS8vIERvY3VtZW50IGxvY2F0
aW9uIHNlZ21lbnRzCglhamF4TG9jUGFydHMsCgoJLy8gQXZvaWQgY29tbWVudC1w
cm9sb2cgY2hhciBzZXF1ZW5jZSAoIzEwMDk4KTsgbXVzdCBhcHBlYXNlIGxpbnQg
YW5kIGV2YWRlIGNvbXByZXNzaW9uCglhbGxUeXBlcyA9IFsiKi8iXSArIFsiKiJd
OwoKLy8gIzgxMzgsIElFIG1heSB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiBhY2Nl
c3NpbmcKLy8gYSBmaWVsZCBmcm9tIHdpbmRvdy5sb2NhdGlvbiBpZiBkb2N1bWVu
dC5kb21haW4gaGFzIGJlZW4gc2V0CnRyeSB7CglhamF4TG9jYXRpb24gPSBsb2Nh
dGlvbi5ocmVmOwp9IGNhdGNoKCBlICkgewoJLy8gVXNlIHRoZSBocmVmIGF0dHJp
YnV0ZSBvZiBhbiBBIGVsZW1lbnQKCS8vIHNpbmNlIElFIHdpbGwgbW9kaWZ5IGl0
IGdpdmVuIGRvY3VtZW50LmxvY2F0aW9uCglhamF4TG9jYXRpb24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCAiYSIgKTsKCWFqYXhMb2NhdGlvbi5ocmVmID0gIiI7
CglhamF4TG9jYXRpb24gPSBhamF4TG9jYXRpb24uaHJlZjsKfQoKLy8gU2VnbWVu
dCBsb2NhdGlvbiBpbnRvIHBhcnRzCmFqYXhMb2NQYXJ0cyA9IHJ1cmwuZXhlYygg
YWpheExvY2F0aW9uLnRvTG93ZXJDYXNlKCkgKSB8fCBbXTsKCi8vIEJhc2UgImNv
bnN0cnVjdG9yIiBmb3IgalF1ZXJ5LmFqYXhQcmVmaWx0ZXIgYW5kIGpRdWVyeS5h
amF4VHJhbnNwb3J0CmZ1bmN0aW9uIGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0
cyggc3RydWN0dXJlICkgewoKCS8vIGRhdGFUeXBlRXhwcmVzc2lvbiBpcyBvcHRp
b25hbCBhbmQgZGVmYXVsdHMgdG8gIioiCglyZXR1cm4gZnVuY3Rpb24oIGRhdGFU
eXBlRXhwcmVzc2lvbiwgZnVuYyApIHsKCgkJaWYgKCB0eXBlb2YgZGF0YVR5cGVF
eHByZXNzaW9uICE9PSAic3RyaW5nIiApIHsKCQkJZnVuYyA9IGRhdGFUeXBlRXhw
cmVzc2lvbjsKCQkJZGF0YVR5cGVFeHByZXNzaW9uID0gIioiOwoJCX0KCgkJaWYg
KCBqUXVlcnkuaXNGdW5jdGlvbiggZnVuYyApICkgewoJCQl2YXIgZGF0YVR5cGVz
ID0gZGF0YVR5cGVFeHByZXNzaW9uLnRvTG93ZXJDYXNlKCkuc3BsaXQoIHJzcGFj
ZXNBamF4ICksCgkJCQlpID0gMCwKCQkJCWxlbmd0aCA9IGRhdGFUeXBlcy5sZW5n
dGgsCgkJCQlkYXRhVHlwZSwKCQkJCWxpc3QsCgkJCQlwbGFjZUJlZm9yZTsKCgkJ
CS8vIEZvciBlYWNoIGRhdGFUeXBlIGluIHRoZSBkYXRhVHlwZUV4cHJlc3Npb24K
CQkJZm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCQlkYXRhVHlwZSA9IGRh
dGFUeXBlc1sgaSBdOwoJCQkJLy8gV2UgY29udHJvbCBpZiB3ZSdyZSBhc2tlZCB0
byBhZGQgYmVmb3JlCgkJCQkvLyBhbnkgZXhpc3RpbmcgZWxlbWVudAoJCQkJcGxh
Y2VCZWZvcmUgPSAvXlwrLy50ZXN0KCBkYXRhVHlwZSApOwoJCQkJaWYgKCBwbGFj
ZUJlZm9yZSApIHsKCQkJCQlkYXRhVHlwZSA9IGRhdGFUeXBlLnN1YnN0ciggMSAp
IHx8ICIqIjsKCQkJCX0KCQkJCWxpc3QgPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0g
PSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW107CgkJCQkvLyB0aGVuIHdlIGFk
ZCB0byB0aGUgc3RydWN0dXJlIGFjY29yZGluZ2x5CgkJCQlsaXN0WyBwbGFjZUJl
Zm9yZSA/ICJ1bnNoaWZ0IiA6ICJwdXNoIiBdKCBmdW5jICk7CgkJCX0KCQl9Cgl9
Owp9CgovLyBCYXNlIGluc3BlY3Rpb24gZnVuY3Rpb24gZm9yIHByZWZpbHRlcnMg
YW5kIHRyYW5zcG9ydHMKZnVuY3Rpb24gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5z
cG9ydHMoIHN0cnVjdHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhI
UiwKCQlkYXRhVHlwZSAvKiBpbnRlcm5hbCAqLywgaW5zcGVjdGVkIC8qIGludGVy
bmFsICovICkgewoKCWRhdGFUeXBlID0gZGF0YVR5cGUgfHwgb3B0aW9ucy5kYXRh
VHlwZXNbIDAgXTsKCWluc3BlY3RlZCA9IGluc3BlY3RlZCB8fCB7fTsKCglpbnNw
ZWN0ZWRbIGRhdGFUeXBlIF0gPSB0cnVlOwoKCXZhciBsaXN0ID0gc3RydWN0dXJl
WyBkYXRhVHlwZSBdLAoJCWkgPSAwLAoJCWxlbmd0aCA9IGxpc3QgPyBsaXN0Lmxl
bmd0aCA6IDAsCgkJZXhlY3V0ZU9ubHkgPSAoIHN0cnVjdHVyZSA9PT0gcHJlZmls
dGVycyApLAoJCXNlbGVjdGlvbjsKCglmb3IgKCA7IGkgPCBsZW5ndGggJiYgKCBl
eGVjdXRlT25seSB8fCAhc2VsZWN0aW9uICk7IGkrKyApIHsKCQlzZWxlY3Rpb24g
PSBsaXN0WyBpIF0oIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKTsK
CQkvLyBJZiB3ZSBnb3QgcmVkaXJlY3RlZCB0byBhbm90aGVyIGRhdGFUeXBlCgkJ
Ly8gd2UgdHJ5IHRoZXJlIGlmIGV4ZWN1dGluZyBvbmx5IGFuZCBub3QgZG9uZSBh
bHJlYWR5CgkJaWYgKCB0eXBlb2Ygc2VsZWN0aW9uID09PSAic3RyaW5nIiApIHsK
CQkJaWYgKCAhZXhlY3V0ZU9ubHkgfHwgaW5zcGVjdGVkWyBzZWxlY3Rpb24gXSAp
IHsKCQkJCXNlbGVjdGlvbiA9IHVuZGVmaW5lZDsKCQkJfSBlbHNlIHsKCQkJCW9w
dGlvbnMuZGF0YVR5cGVzLnVuc2hpZnQoIHNlbGVjdGlvbiApOwoJCQkJc2VsZWN0
aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJCQkJCXN0cnVj
dHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiwgc2VsZWN0aW9u
LCBpbnNwZWN0ZWQgKTsKCQkJfQoJCX0KCX0KCS8vIElmIHdlJ3JlIG9ubHkgZXhl
Y3V0aW5nIG9yIG5vdGhpbmcgd2FzIHNlbGVjdGVkCgkvLyB3ZSB0cnkgdGhlIGNh
dGNoYWxsIGRhdGFUeXBlIGlmIG5vdCBkb25lIGFscmVhZHkKCWlmICggKCBleGVj
dXRlT25seSB8fCAhc2VsZWN0aW9uICkgJiYgIWluc3BlY3RlZFsgIioiIF0gKSB7
CgkJc2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJ
CQlzdHJ1Y3R1cmUsIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIsICIq
IiwgaW5zcGVjdGVkICk7Cgl9CgkvLyB1bm5lY2Vzc2FyeSB3aGVuIG9ubHkgZXhl
Y3V0aW5nIChwcmVmaWx0ZXJzKQoJLy8gYnV0IGl0J2xsIGJlIGlnbm9yZWQgYnkg
dGhlIGNhbGxlciBpbiB0aGF0IGNhc2UKCXJldHVybiBzZWxlY3Rpb247Cn0KCi8v
IEEgc3BlY2lhbCBleHRlbmQgZm9yIGFqYXggb3B0aW9ucwovLyB0aGF0IHRha2Vz
ICJmbGF0IiBvcHRpb25zIChub3QgdG8gYmUgZGVlcCBleHRlbmRlZCkKLy8gRml4
ZXMgIzk4ODcKZnVuY3Rpb24gYWpheEV4dGVuZCggdGFyZ2V0LCBzcmMgKSB7Cgl2
YXIga2V5LCBkZWVwLAoJCWZsYXRPcHRpb25zID0galF1ZXJ5LmFqYXhTZXR0aW5n
cy5mbGF0T3B0aW9ucyB8fCB7fTsKCWZvciAoIGtleSBpbiBzcmMgKSB7CgkJaWYg
KCBzcmNbIGtleSBdICE9PSB1bmRlZmluZWQgKSB7CgkJCSggZmxhdE9wdGlvbnNb
IGtleSBdID8gdGFyZ2V0IDogKCBkZWVwIHx8ICggZGVlcCA9IHt9ICkgKSApWyBr
ZXkgXSA9IHNyY1sga2V5IF07CgkJfQoJfQoJaWYgKCBkZWVwICkgewoJCWpRdWVy
eS5leHRlbmQoIHRydWUsIHRhcmdldCwgZGVlcCApOwoJfQp9CgpqUXVlcnkuZm4u
ZXh0ZW5kKHsKCWxvYWQ6IGZ1bmN0aW9uKCB1cmwsIHBhcmFtcywgY2FsbGJhY2sg
KSB7CgkJaWYgKCB0eXBlb2YgdXJsICE9PSAic3RyaW5nIiAmJiBfbG9hZCApIHsK
CQkJcmV0dXJuIF9sb2FkLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsKCgkJLy8g
RG9uJ3QgZG8gYSByZXF1ZXN0IGlmIG5vIGVsZW1lbnRzIGFyZSBiZWluZyByZXF1
ZXN0ZWQKCQl9IGVsc2UgaWYgKCAhdGhpcy5sZW5ndGggKSB7CgkJCXJldHVybiB0
aGlzOwoJCX0KCgkJdmFyIG9mZiA9IHVybC5pbmRleE9mKCAiICIgKTsKCQlpZiAo
IG9mZiA+PSAwICkgewoJCQl2YXIgc2VsZWN0b3IgPSB1cmwuc2xpY2UoIG9mZiwg
dXJsLmxlbmd0aCApOwoJCQl1cmwgPSB1cmwuc2xpY2UoIDAsIG9mZiApOwoJCX0K
CgkJLy8gRGVmYXVsdCB0byBhIEdFVCByZXF1ZXN0CgkJdmFyIHR5cGUgPSAiR0VU
IjsKCgkJLy8gSWYgdGhlIHNlY29uZCBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkCgkJ
aWYgKCBwYXJhbXMgKSB7CgkJCS8vIElmIGl0J3MgYSBmdW5jdGlvbgoJCQlpZiAo
IGpRdWVyeS5pc0Z1bmN0aW9uKCBwYXJhbXMgKSApIHsKCQkJCS8vIFdlIGFzc3Vt
ZSB0aGF0IGl0J3MgdGhlIGNhbGxiYWNrCgkJCQljYWxsYmFjayA9IHBhcmFtczsK
CQkJCXBhcmFtcyA9IHVuZGVmaW5lZDsKCgkJCS8vIE90aGVyd2lzZSwgYnVpbGQg
YSBwYXJhbSBzdHJpbmcKCQkJfSBlbHNlIGlmICggdHlwZW9mIHBhcmFtcyA9PT0g
Im9iamVjdCIgKSB7CgkJCQlwYXJhbXMgPSBqUXVlcnkucGFyYW0oIHBhcmFtcywg
alF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCApOwoJCQkJdHlwZSA9ICJQ
T1NUIjsKCQkJfQoJCX0KCgkJdmFyIHNlbGYgPSB0aGlzOwoKCQkvLyBSZXF1ZXN0
IHRoZSByZW1vdGUgZG9jdW1lbnQKCQlqUXVlcnkuYWpheCh7CgkJCXVybDogdXJs
LAoJCQl0eXBlOiB0eXBlLAoJCQlkYXRhVHlwZTogImh0bWwiLAoJCQlkYXRhOiBw
YXJhbXMsCgkJCS8vIENvbXBsZXRlIGNhbGxiYWNrIChyZXNwb25zZVRleHQgaXMg
dXNlZCBpbnRlcm5hbGx5KQoJCQljb21wbGV0ZTogZnVuY3Rpb24oIGpxWEhSLCBz
dGF0dXMsIHJlc3BvbnNlVGV4dCApIHsKCQkJCS8vIFN0b3JlIHRoZSByZXNwb25z
ZSBhcyBzcGVjaWZpZWQgYnkgdGhlIGpxWEhSIG9iamVjdAoJCQkJcmVzcG9uc2VU
ZXh0ID0ganFYSFIucmVzcG9uc2VUZXh0OwoJCQkJLy8gSWYgc3VjY2Vzc2Z1bCwg
aW5qZWN0IHRoZSBIVE1MIGludG8gYWxsIHRoZSBtYXRjaGVkIGVsZW1lbnRzCgkJ
CQlpZiAoIGpxWEhSLmlzUmVzb2x2ZWQoKSApIHsKCQkJCQkvLyAjNDgyNTogR2V0
IHRoZSBhY3R1YWwgcmVzcG9uc2UgaW4gY2FzZQoJCQkJCS8vIGEgZGF0YUZpbHRl
ciBpcyBwcmVzZW50IGluIGFqYXhTZXR0aW5ncwoJCQkJCWpxWEhSLmRvbmUoZnVu
Y3Rpb24oIHIgKSB7CgkJCQkJCXJlc3BvbnNlVGV4dCA9IHI7CgkJCQkJfSk7CgkJ
CQkJLy8gU2VlIGlmIGEgc2VsZWN0b3Igd2FzIHNwZWNpZmllZAoJCQkJCXNlbGYu
aHRtbCggc2VsZWN0b3IgPwoJCQkJCQkvLyBDcmVhdGUgYSBkdW1teSBkaXYgdG8g
aG9sZCB0aGUgcmVzdWx0cwoJCQkJCQlqUXVlcnkoIjxkaXY+IikKCQkJCQkJCS8v
IGluamVjdCB0aGUgY29udGVudHMgb2YgdGhlIGRvY3VtZW50IGluLCByZW1vdmlu
ZyB0aGUgc2NyaXB0cwoJCQkJCQkJLy8gdG8gYXZvaWQgYW55ICdQZXJtaXNzaW9u
IERlbmllZCcgZXJyb3JzIGluIElFCgkJCQkJCQkuYXBwZW5kKHJlc3BvbnNlVGV4
dC5yZXBsYWNlKHJzY3JpcHQsICIiKSkKCgkJCQkJCQkvLyBMb2NhdGUgdGhlIHNw
ZWNpZmllZCBlbGVtZW50cwoJCQkJCQkJLmZpbmQoc2VsZWN0b3IpIDoKCgkJCQkJ
CS8vIElmIG5vdCwganVzdCBpbmplY3QgdGhlIGZ1bGwgcmVzdWx0CgkJCQkJCXJl
c3BvbnNlVGV4dCApOwoJCQkJfQoKCQkJCWlmICggY2FsbGJhY2sgKSB7CgkJCQkJ
c2VsZi5lYWNoKCBjYWxsYmFjaywgWyByZXNwb25zZVRleHQsIHN0YXR1cywganFY
SFIgXSApOwoJCQkJfQoJCQl9CgkJfSk7CgoJCXJldHVybiB0aGlzOwoJfSwKCglz
ZXJpYWxpemU6IGZ1bmN0aW9uKCkgewoJCXJldHVybiBqUXVlcnkucGFyYW0oIHRo
aXMuc2VyaWFsaXplQXJyYXkoKSApOwoJfSwKCglzZXJpYWxpemVBcnJheTogZnVu
Y3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7CgkJCXJldHVy
biB0aGlzLmVsZW1lbnRzID8galF1ZXJ5Lm1ha2VBcnJheSggdGhpcy5lbGVtZW50
cyApIDogdGhpczsKCQl9KQoJCS5maWx0ZXIoZnVuY3Rpb24oKXsKCQkJcmV0dXJu
IHRoaXMubmFtZSAmJiAhdGhpcy5kaXNhYmxlZCAmJgoJCQkJKCB0aGlzLmNoZWNr
ZWQgfHwgcnNlbGVjdFRleHRhcmVhLnRlc3QoIHRoaXMubm9kZU5hbWUgKSB8fAoJ
CQkJCXJpbnB1dC50ZXN0KCB0aGlzLnR5cGUgKSApOwoJCX0pCgkJLm1hcChmdW5j
dGlvbiggaSwgZWxlbSApewoJCQl2YXIgdmFsID0galF1ZXJ5KCB0aGlzICkudmFs
KCk7CgoJCQlyZXR1cm4gdmFsID09IG51bGwgPwoJCQkJbnVsbCA6CgkJCQlqUXVl
cnkuaXNBcnJheSggdmFsICkgPwoJCQkJCWpRdWVyeS5tYXAoIHZhbCwgZnVuY3Rp
b24oIHZhbCwgaSApewoJCQkJCQlyZXR1cm4geyBuYW1lOiBlbGVtLm5hbWUsIHZh
bHVlOiB2YWwucmVwbGFjZSggckNSTEYsICJcclxuIiApIH07CgkJCQkJfSkgOgoJ
CQkJCXsgbmFtZTogZWxlbS5uYW1lLCB2YWx1ZTogdmFsLnJlcGxhY2UoIHJDUkxG
LCAiXHJcbiIgKSB9OwoJCX0pLmdldCgpOwoJfQp9KTsKCi8vIEF0dGFjaCBhIGJ1
bmNoIG9mIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgY29tbW9uIEFKQVggZXZlbnRz
CmpRdWVyeS5lYWNoKCAiYWpheFN0YXJ0IGFqYXhTdG9wIGFqYXhDb21wbGV0ZSBh
amF4RXJyb3IgYWpheFN1Y2Nlc3MgYWpheFNlbmQiLnNwbGl0KCAiICIgKSwgZnVu
Y3Rpb24oIGksIG8gKXsKCWpRdWVyeS5mblsgbyBdID0gZnVuY3Rpb24oIGYgKXsK
CQlyZXR1cm4gdGhpcy5vbiggbywgZiApOwoJfTsKfSk7CgpqUXVlcnkuZWFjaCgg
WyAiZ2V0IiwgInBvc3QiIF0sIGZ1bmN0aW9uKCBpLCBtZXRob2QgKSB7CglqUXVl
cnlbIG1ldGhvZCBdID0gZnVuY3Rpb24oIHVybCwgZGF0YSwgY2FsbGJhY2ssIHR5
cGUgKSB7CgkJLy8gc2hpZnQgYXJndW1lbnRzIGlmIGRhdGEgYXJndW1lbnQgd2Fz
IG9taXR0ZWQKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBkYXRhICkgKSB7CgkJ
CXR5cGUgPSB0eXBlIHx8IGNhbGxiYWNrOwoJCQljYWxsYmFjayA9IGRhdGE7CgkJ
CWRhdGEgPSB1bmRlZmluZWQ7CgkJfQoKCQlyZXR1cm4galF1ZXJ5LmFqYXgoewoJ
CQl0eXBlOiBtZXRob2QsCgkJCXVybDogdXJsLAoJCQlkYXRhOiBkYXRhLAoJCQlz
dWNjZXNzOiBjYWxsYmFjaywKCQkJZGF0YVR5cGU6IHR5cGUKCQl9KTsKCX07Cn0p
OwoKalF1ZXJ5LmV4dGVuZCh7CgoJZ2V0U2NyaXB0OiBmdW5jdGlvbiggdXJsLCBj
YWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCB1bmRlZmluZWQs
IGNhbGxiYWNrLCAic2NyaXB0IiApOwoJfSwKCglnZXRKU09OOiBmdW5jdGlvbigg
dXJsLCBkYXRhLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJs
LCBkYXRhLCBjYWxsYmFjaywgImpzb24iICk7Cgl9LAoKCS8vIENyZWF0ZXMgYSBm
dWxsIGZsZWRnZWQgc2V0dGluZ3Mgb2JqZWN0IGludG8gdGFyZ2V0CgkvLyB3aXRo
IGJvdGggYWpheFNldHRpbmdzIGFuZCBzZXR0aW5ncyBmaWVsZHMuCgkvLyBJZiB0
YXJnZXQgaXMgb21pdHRlZCwgd3JpdGVzIGludG8gYWpheFNldHRpbmdzLgoJYWph
eFNldHVwOiBmdW5jdGlvbiggdGFyZ2V0LCBzZXR0aW5ncyApIHsKCQlpZiAoIHNl
dHRpbmdzICkgewoJCQkvLyBCdWlsZGluZyBhIHNldHRpbmdzIG9iamVjdAoJCQlh
amF4RXh0ZW5kKCB0YXJnZXQsIGpRdWVyeS5hamF4U2V0dGluZ3MgKTsKCQl9IGVs
c2UgewoJCQkvLyBFeHRlbmRpbmcgYWpheFNldHRpbmdzCgkJCXNldHRpbmdzID0g
dGFyZ2V0OwoJCQl0YXJnZXQgPSBqUXVlcnkuYWpheFNldHRpbmdzOwoJCX0KCQlh
amF4RXh0ZW5kKCB0YXJnZXQsIHNldHRpbmdzICk7CgkJcmV0dXJuIHRhcmdldDsK
CX0sCgoJYWpheFNldHRpbmdzOiB7CgkJdXJsOiBhamF4TG9jYXRpb24sCgkJaXNM
b2NhbDogcmxvY2FsUHJvdG9jb2wudGVzdCggYWpheExvY1BhcnRzWyAxIF0gKSwK
CQlnbG9iYWw6IHRydWUsCgkJdHlwZTogIkdFVCIsCgkJY29udGVudFR5cGU6ICJh
cHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgi
LAoJCXByb2Nlc3NEYXRhOiB0cnVlLAoJCWFzeW5jOiB0cnVlLAoJCS8qCgkJdGlt
ZW91dDogMCwKCQlkYXRhOiBudWxsLAoJCWRhdGFUeXBlOiBudWxsLAoJCXVzZXJu
YW1lOiBudWxsLAoJCXBhc3N3b3JkOiBudWxsLAoJCWNhY2hlOiBudWxsLAoJCXRy
YWRpdGlvbmFsOiBmYWxzZSwKCQloZWFkZXJzOiB7fSwKCQkqLwoKCQlhY2NlcHRz
OiB7CgkJCXhtbDogImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLAoJCQlodG1s
OiAidGV4dC9odG1sIiwKCQkJdGV4dDogInRleHQvcGxhaW4iLAoJCQlqc29uOiAi
YXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0IiwKCQkJIioiOiBhbGxU
eXBlcwoJCX0sCgoJCWNvbnRlbnRzOiB7CgkJCXhtbDogL3htbC8sCgkJCWh0bWw6
IC9odG1sLywKCQkJanNvbjogL2pzb24vCgkJfSwKCgkJcmVzcG9uc2VGaWVsZHM6
IHsKCQkJeG1sOiAicmVzcG9uc2VYTUwiLAoJCQl0ZXh0OiAicmVzcG9uc2VUZXh0
IgoJCX0sCgoJCS8vIExpc3Qgb2YgZGF0YSBjb252ZXJ0ZXJzCgkJLy8gMSkga2V5
IGZvcm1hdCBpcyAic291cmNlX3R5cGUgZGVzdGluYXRpb25fdHlwZSIgKGEgc2lu
Z2xlIHNwYWNlIGluLWJldHdlZW4pCgkJLy8gMikgdGhlIGNhdGNoYWxsIHN5bWJv
bCAiKiIgY2FuIGJlIHVzZWQgZm9yIHNvdXJjZV90eXBlCgkJY29udmVydGVyczog
ewoKCQkJLy8gQ29udmVydCBhbnl0aGluZyB0byB0ZXh0CgkJCSIqIHRleHQiOiB3
aW5kb3cuU3RyaW5nLAoKCQkJLy8gVGV4dCB0byBodG1sICh0cnVlID0gbm8gdHJh
bnNmb3JtYXRpb24pCgkJCSJ0ZXh0IGh0bWwiOiB0cnVlLAoKCQkJLy8gRXZhbHVh
dGUgdGV4dCBhcyBhIGpzb24gZXhwcmVzc2lvbgoJCQkidGV4dCBqc29uIjogalF1
ZXJ5LnBhcnNlSlNPTiwKCgkJCS8vIFBhcnNlIHRleHQgYXMgeG1sCgkJCSJ0ZXh0
IHhtbCI6IGpRdWVyeS5wYXJzZVhNTAoJCX0sCgoJCS8vIEZvciBvcHRpb25zIHRo
YXQgc2hvdWxkbid0IGJlIGRlZXAgZXh0ZW5kZWQ6CgkJLy8geW91IGNhbiBhZGQg
eW91ciBvd24gY3VzdG9tIG9wdGlvbnMgaGVyZSBpZgoJCS8vIGFuZCB3aGVuIHlv
dSBjcmVhdGUgb25lIHRoYXQgc2hvdWxkbid0IGJlCgkJLy8gZGVlcCBleHRlbmRl
ZCAoc2VlIGFqYXhFeHRlbmQpCgkJZmxhdE9wdGlvbnM6IHsKCQkJY29udGV4dDog
dHJ1ZSwKCQkJdXJsOiB0cnVlCgkJfQoJfSwKCglhamF4UHJlZmlsdGVyOiBhZGRU
b1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMgKSwKCWFqYXhUcmFu
c3BvcnQ6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cyAp
LAoKCS8vIE1haW4gbWV0aG9kCglhamF4OiBmdW5jdGlvbiggdXJsLCBvcHRpb25z
ICkgewoKCQkvLyBJZiB1cmwgaXMgYW4gb2JqZWN0LCBzaW11bGF0ZSBwcmUtMS41
IHNpZ25hdHVyZQoJCWlmICggdHlwZW9mIHVybCA9PT0gIm9iamVjdCIgKSB7CgkJ
CW9wdGlvbnMgPSB1cmw7CgkJCXVybCA9IHVuZGVmaW5lZDsKCQl9CgoJCS8vIEZv
cmNlIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0CgkJb3B0aW9ucyA9IG9wdGlvbnMg
fHwge307CgoJCXZhciAvLyBDcmVhdGUgdGhlIGZpbmFsIG9wdGlvbnMgb2JqZWN0
CgkJCXMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLAoJCQkvLyBD
YWxsYmFja3MgY29udGV4dAoJCQljYWxsYmFja0NvbnRleHQgPSBzLmNvbnRleHQg
fHwgcywKCQkJLy8gQ29udGV4dCBmb3IgZ2xvYmFsIGV2ZW50cwoJCQkvLyBJdCdz
IHRoZSBjYWxsYmFja0NvbnRleHQgaWYgb25lIHdhcyBwcm92aWRlZCBpbiB0aGUg
b3B0aW9ucwoJCQkvLyBhbmQgaWYgaXQncyBhIERPTSBub2RlIG9yIGEgalF1ZXJ5
IGNvbGxlY3Rpb24KCQkJZ2xvYmFsRXZlbnRDb250ZXh0ID0gY2FsbGJhY2tDb250
ZXh0ICE9PSBzICYmCgkJCQkoIGNhbGxiYWNrQ29udGV4dC5ub2RlVHlwZSB8fCBj
YWxsYmFja0NvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgKSA/CgkJCQkJCWpRdWVy
eSggY2FsbGJhY2tDb250ZXh0ICkgOiBqUXVlcnkuZXZlbnQsCgkJCS8vIERlZmVy
cmVkcwoJCQlkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLAoJCQljb21wbGV0
ZURlZmVycmVkID0galF1ZXJ5LkNhbGxiYWNrcyggIm9uY2UgbWVtb3J5IiApLAoJ
CQkvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrcwoJCQlzdGF0dXNDb2RlID0g
cy5zdGF0dXNDb2RlIHx8IHt9LAoJCQkvLyBpZk1vZGlmaWVkIGtleQoJCQlpZk1v
ZGlmaWVkS2V5LAoJCQkvLyBIZWFkZXJzICh0aGV5IGFyZSBzZW50IGFsbCBhdCBv
bmNlKQoJCQlyZXF1ZXN0SGVhZGVycyA9IHt9LAoJCQlyZXF1ZXN0SGVhZGVyc05h
bWVzID0ge30sCgkJCS8vIFJlc3BvbnNlIGhlYWRlcnMKCQkJcmVzcG9uc2VIZWFk
ZXJzU3RyaW5nLAoJCQlyZXNwb25zZUhlYWRlcnMsCgkJCS8vIHRyYW5zcG9ydAoJ
CQl0cmFuc3BvcnQsCgkJCS8vIHRpbWVvdXQgaGFuZGxlCgkJCXRpbWVvdXRUaW1l
ciwKCQkJLy8gQ3Jvc3MtZG9tYWluIGRldGVjdGlvbiB2YXJzCgkJCXBhcnRzLAoJ
CQkvLyBUaGUganFYSFIgc3RhdGUKCQkJc3RhdGUgPSAwLAoJCQkvLyBUbyBrbm93
IGlmIGdsb2JhbCBldmVudHMgYXJlIHRvIGJlIGRpc3BhdGNoZWQKCQkJZmlyZUds
b2JhbHMsCgkJCS8vIExvb3AgdmFyaWFibGUKCQkJaSwKCQkJLy8gRmFrZSB4aHIK
CQkJanFYSFIgPSB7CgoJCQkJcmVhZHlTdGF0ZTogMCwKCgkJCQkvLyBDYWNoZXMg
dGhlIGhlYWRlcgoJCQkJc2V0UmVxdWVzdEhlYWRlcjogZnVuY3Rpb24oIG5hbWUs
IHZhbHVlICkgewoJCQkJCWlmICggIXN0YXRlICkgewoJCQkJCQl2YXIgbG5hbWUg
PSBuYW1lLnRvTG93ZXJDYXNlKCk7CgkJCQkJCW5hbWUgPSByZXF1ZXN0SGVhZGVy
c05hbWVzWyBsbmFtZSBdID0gcmVxdWVzdEhlYWRlcnNOYW1lc1sgbG5hbWUgXSB8
fCBuYW1lOwoJCQkJCQlyZXF1ZXN0SGVhZGVyc1sgbmFtZSBdID0gdmFsdWU7CgkJ
CQkJfQoJCQkJCXJldHVybiB0aGlzOwoJCQkJfSwKCgkJCQkvLyBSYXcgc3RyaW5n
CgkJCQlnZXRBbGxSZXNwb25zZUhlYWRlcnM6IGZ1bmN0aW9uKCkgewoJCQkJCXJl
dHVybiBzdGF0ZSA9PT0gMiA/IHJlc3BvbnNlSGVhZGVyc1N0cmluZyA6IG51bGw7
CgkJCQl9LAoKCQkJCS8vIEJ1aWxkcyBoZWFkZXJzIGhhc2h0YWJsZSBpZiBuZWVk
ZWQKCQkJCWdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbigga2V5ICkgewoJCQkJ
CXZhciBtYXRjaDsKCQkJCQlpZiAoIHN0YXRlID09PSAyICkgewoJCQkJCQlpZiAo
ICFyZXNwb25zZUhlYWRlcnMgKSB7CgkJCQkJCQlyZXNwb25zZUhlYWRlcnMgPSB7
fTsKCQkJCQkJCXdoaWxlKCAoIG1hdGNoID0gcmhlYWRlcnMuZXhlYyggcmVzcG9u
c2VIZWFkZXJzU3RyaW5nICkgKSApIHsKCQkJCQkJCQlyZXNwb25zZUhlYWRlcnNb
IG1hdGNoWzFdLnRvTG93ZXJDYXNlKCkgXSA9IG1hdGNoWyAyIF07CgkJCQkJCQl9
CgkJCQkJCX0KCQkJCQkJbWF0Y2ggPSByZXNwb25zZUhlYWRlcnNbIGtleS50b0xv
d2VyQ2FzZSgpIF07CgkJCQkJfQoJCQkJCXJldHVybiBtYXRjaCA9PT0gdW5kZWZp
bmVkID8gbnVsbCA6IG1hdGNoOwoJCQkJfSwKCgkJCQkvLyBPdmVycmlkZXMgcmVz
cG9uc2UgY29udGVudC10eXBlIGhlYWRlcgoJCQkJb3ZlcnJpZGVNaW1lVHlwZTog
ZnVuY3Rpb24oIHR5cGUgKSB7CgkJCQkJaWYgKCAhc3RhdGUgKSB7CgkJCQkJCXMu
bWltZVR5cGUgPSB0eXBlOwoJCQkJCX0KCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0s
CgoJCQkJLy8gQ2FuY2VsIHRoZSByZXF1ZXN0CgkJCQlhYm9ydDogZnVuY3Rpb24o
IHN0YXR1c1RleHQgKSB7CgkJCQkJc3RhdHVzVGV4dCA9IHN0YXR1c1RleHQgfHwg
ImFib3J0IjsKCQkJCQlpZiAoIHRyYW5zcG9ydCApIHsKCQkJCQkJdHJhbnNwb3J0
LmFib3J0KCBzdGF0dXNUZXh0ICk7CgkJCQkJfQoJCQkJCWRvbmUoIDAsIHN0YXR1
c1RleHQgKTsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0KCQkJfTsKCgkJLy8gQ2Fs
bGJhY2sgZm9yIHdoZW4gZXZlcnl0aGluZyBpcyBkb25lCgkJLy8gSXQgaXMgZGVm
aW5lZCBoZXJlIGJlY2F1c2UganNsaW50IGNvbXBsYWlucyBpZiBpdCBpcyBkZWNs
YXJlZAoJCS8vIGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uICh3aGljaCB3b3Vs
ZCBiZSBtb3JlIGxvZ2ljYWwgYW5kIHJlYWRhYmxlKQoJCWZ1bmN0aW9uIGRvbmUo
IHN0YXR1cywgbmF0aXZlU3RhdHVzVGV4dCwgcmVzcG9uc2VzLCBoZWFkZXJzICkg
ewoKCQkJLy8gQ2FsbGVkIG9uY2UKCQkJaWYgKCBzdGF0ZSA9PT0gMiApIHsKCQkJ
CXJldHVybjsKCQkJfQoKCQkJLy8gU3RhdGUgaXMgImRvbmUiIG5vdwoJCQlzdGF0
ZSA9IDI7CgoJCQkvLyBDbGVhciB0aW1lb3V0IGlmIGl0IGV4aXN0cwoJCQlpZiAo
IHRpbWVvdXRUaW1lciApIHsKCQkJCWNsZWFyVGltZW91dCggdGltZW91dFRpbWVy
ICk7CgkJCX0KCgkJCS8vIERlcmVmZXJlbmNlIHRyYW5zcG9ydCBmb3IgZWFybHkg
Z2FyYmFnZSBjb2xsZWN0aW9uCgkJCS8vIChubyBtYXR0ZXIgaG93IGxvbmcgdGhl
IGpxWEhSIG9iamVjdCB3aWxsIGJlIHVzZWQpCgkJCXRyYW5zcG9ydCA9IHVuZGVm
aW5lZDsKCgkJCS8vIENhY2hlIHJlc3BvbnNlIGhlYWRlcnMKCQkJcmVzcG9uc2VI
ZWFkZXJzU3RyaW5nID0gaGVhZGVycyB8fCAiIjsKCgkJCS8vIFNldCByZWFkeVN0
YXRlCgkJCWpxWEhSLnJlYWR5U3RhdGUgPSBzdGF0dXMgPiAwID8gNCA6IDA7CgoJ
CQl2YXIgaXNTdWNjZXNzLAoJCQkJc3VjY2VzcywKCQkJCWVycm9yLAoJCQkJc3Rh
dHVzVGV4dCA9IG5hdGl2ZVN0YXR1c1RleHQsCgkJCQlyZXNwb25zZSA9IHJlc3Bv
bnNlcyA/IGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMg
KSA6IHVuZGVmaW5lZCwKCQkJCWxhc3RNb2RpZmllZCwKCQkJCWV0YWc7CgoJCQkv
LyBJZiBzdWNjZXNzZnVsLCBoYW5kbGUgdHlwZSBjaGFpbmluZwoJCQlpZiAoIHN0
YXR1cyA+PSAyMDAgJiYgc3RhdHVzIDwgMzAwIHx8IHN0YXR1cyA9PT0gMzA0ICkg
ewoKCQkJCS8vIFNldCB0aGUgSWYtTW9kaWZpZWQtU2luY2UgYW5kL29yIElmLU5v
bmUtTWF0Y2ggaGVhZGVyLCBpZiBpbiBpZk1vZGlmaWVkIG1vZGUuCgkJCQlpZiAo
IHMuaWZNb2RpZmllZCApIHsKCgkJCQkJaWYgKCAoIGxhc3RNb2RpZmllZCA9IGpx
WEhSLmdldFJlc3BvbnNlSGVhZGVyKCAiTGFzdC1Nb2RpZmllZCIgKSApICkgewoJ
CQkJCQlqUXVlcnkubGFzdE1vZGlmaWVkWyBpZk1vZGlmaWVkS2V5IF0gPSBsYXN0
TW9kaWZpZWQ7CgkJCQkJfQoJCQkJCWlmICggKCBldGFnID0ganFYSFIuZ2V0UmVz
cG9uc2VIZWFkZXIoICJFdGFnIiApICkgKSB7CgkJCQkJCWpRdWVyeS5ldGFnWyBp
Zk1vZGlmaWVkS2V5IF0gPSBldGFnOwoJCQkJCX0KCQkJCX0KCgkJCQkvLyBJZiBu
b3QgbW9kaWZpZWQKCQkJCWlmICggc3RhdHVzID09PSAzMDQgKSB7CgoJCQkJCXN0
YXR1c1RleHQgPSAibm90bW9kaWZpZWQiOwoJCQkJCWlzU3VjY2VzcyA9IHRydWU7
CgoJCQkJLy8gSWYgd2UgaGF2ZSBkYXRhCgkJCQl9IGVsc2UgewoKCQkJCQl0cnkg
ewoJCQkJCQlzdWNjZXNzID0gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlICk7CgkJ
CQkJCXN0YXR1c1RleHQgPSAic3VjY2VzcyI7CgkJCQkJCWlzU3VjY2VzcyA9IHRy
dWU7CgkJCQkJfSBjYXRjaChlKSB7CgkJCQkJCS8vIFdlIGhhdmUgYSBwYXJzZXJl
cnJvcgoJCQkJCQlzdGF0dXNUZXh0ID0gInBhcnNlcmVycm9yIjsKCQkJCQkJZXJy
b3IgPSBlOwoJCQkJCX0KCQkJCX0KCQkJfSBlbHNlIHsKCQkJCS8vIFdlIGV4dHJh
Y3QgZXJyb3IgZnJvbSBzdGF0dXNUZXh0CgkJCQkvLyB0aGVuIG5vcm1hbGl6ZSBz
dGF0dXNUZXh0IGFuZCBzdGF0dXMgZm9yIG5vbi1hYm9ydHMKCQkJCWVycm9yID0g
c3RhdHVzVGV4dDsKCQkJCWlmICggIXN0YXR1c1RleHQgfHwgc3RhdHVzICkgewoJ
CQkJCXN0YXR1c1RleHQgPSAiZXJyb3IiOwoJCQkJCWlmICggc3RhdHVzIDwgMCAp
IHsKCQkJCQkJc3RhdHVzID0gMDsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIFNl
dCBkYXRhIGZvciB0aGUgZmFrZSB4aHIgb2JqZWN0CgkJCWpxWEhSLnN0YXR1cyA9
IHN0YXR1czsKCQkJanFYSFIuc3RhdHVzVGV4dCA9ICIiICsgKCBuYXRpdmVTdGF0
dXNUZXh0IHx8IHN0YXR1c1RleHQgKTsKCgkJCS8vIFN1Y2Nlc3MvRXJyb3IKCQkJ
aWYgKCBpc1N1Y2Nlc3MgKSB7CgkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggY2Fs
bGJhY2tDb250ZXh0LCBbIHN1Y2Nlc3MsIHN0YXR1c1RleHQsIGpxWEhSIF0gKTsK
CQkJfSBlbHNlIHsKCQkJCWRlZmVycmVkLnJlamVjdFdpdGgoIGNhbGxiYWNrQ29u
dGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCwgZXJyb3IgXSApOwoJCQl9CgoJCQkv
LyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrcwoJCQlqcVhIUi5zdGF0dXNDb2Rl
KCBzdGF0dXNDb2RlICk7CgkJCXN0YXR1c0NvZGUgPSB1bmRlZmluZWQ7CgoJCQlp
ZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJZ2xvYmFsRXZlbnRDb250ZXh0LnRyaWdn
ZXIoICJhamF4IiArICggaXNTdWNjZXNzID8gIlN1Y2Nlc3MiIDogIkVycm9yIiAp
LAoJCQkJCQlbIGpxWEhSLCBzLCBpc1N1Y2Nlc3MgPyBzdWNjZXNzIDogZXJyb3Ig
XSApOwoJCQl9CgoJCQkvLyBDb21wbGV0ZQoJCQljb21wbGV0ZURlZmVycmVkLmZp
cmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsganFYSFIsIHN0YXR1c1RleHQgXSAp
OwoKCQkJaWYgKCBmaXJlR2xvYmFscyApIHsKCQkJCWdsb2JhbEV2ZW50Q29udGV4
dC50cmlnZ2VyKCAiYWpheENvbXBsZXRlIiwgWyBqcVhIUiwgcyBdICk7CgkJCQkv
LyBIYW5kbGUgdGhlIGdsb2JhbCBBSkFYIGNvdW50ZXIKCQkJCWlmICggISggLS1q
UXVlcnkuYWN0aXZlICkgKSB7CgkJCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoICJh
amF4U3RvcCIgKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gQXR0YWNoIGRlZmVycmVk
cwoJCWRlZmVycmVkLnByb21pc2UoIGpxWEhSICk7CgkJanFYSFIuc3VjY2VzcyA9
IGpxWEhSLmRvbmU7CgkJanFYSFIuZXJyb3IgPSBqcVhIUi5mYWlsOwoJCWpxWEhS
LmNvbXBsZXRlID0gY29tcGxldGVEZWZlcnJlZC5hZGQ7CgoJCS8vIFN0YXR1cy1k
ZXBlbmRlbnQgY2FsbGJhY2tzCgkJanFYSFIuc3RhdHVzQ29kZSA9IGZ1bmN0aW9u
KCBtYXAgKSB7CgkJCWlmICggbWFwICkgewoJCQkJdmFyIHRtcDsKCQkJCWlmICgg
c3RhdGUgPCAyICkgewoJCQkJCWZvciAoIHRtcCBpbiBtYXAgKSB7CgkJCQkJCXN0
YXR1c0NvZGVbIHRtcCBdID0gWyBzdGF0dXNDb2RlW3RtcF0sIG1hcFt0bXBdIF07
CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQl0bXAgPSBtYXBbIGpxWEhSLnN0YXR1
cyBdOwoJCQkJCWpxWEhSLnRoZW4oIHRtcCwgdG1wICk7CgkJCQl9CgkJCX0KCQkJ
cmV0dXJuIHRoaXM7CgkJfTsKCgkJLy8gUmVtb3ZlIGhhc2ggY2hhcmFjdGVyICgj
NzUzMTogYW5kIHN0cmluZyBwcm9tb3Rpb24pCgkJLy8gQWRkIHByb3RvY29sIGlm
IG5vdCBwcm92aWRlZCAoIzU4NjY6IElFNyBpc3N1ZSB3aXRoIHByb3RvY29sLWxl
c3MgdXJscykKCQkvLyBXZSBhbHNvIHVzZSB0aGUgdXJsIHBhcmFtZXRlciBpZiBh
dmFpbGFibGUKCQlzLnVybCA9ICggKCB1cmwgfHwgcy51cmwgKSArICIiICkucmVw
bGFjZSggcmhhc2gsICIiICkucmVwbGFjZSggcnByb3RvY29sLCBhamF4TG9jUGFy
dHNbIDEgXSArICIvLyIgKTsKCgkJLy8gRXh0cmFjdCBkYXRhVHlwZXMgbGlzdAoJ
CXMuZGF0YVR5cGVzID0galF1ZXJ5LnRyaW0oIHMuZGF0YVR5cGUgfHwgIioiICku
dG9Mb3dlckNhc2UoKS5zcGxpdCggcnNwYWNlc0FqYXggKTsKCgkJLy8gRGV0ZXJt
aW5lIGlmIGEgY3Jvc3MtZG9tYWluIHJlcXVlc3QgaXMgaW4gb3JkZXIKCQlpZiAo
IHMuY3Jvc3NEb21haW4gPT0gbnVsbCApIHsKCQkJcGFydHMgPSBydXJsLmV4ZWMo
IHMudXJsLnRvTG93ZXJDYXNlKCkgKTsKCQkJcy5jcm9zc0RvbWFpbiA9ICEhKCBw
YXJ0cyAmJgoJCQkJKCBwYXJ0c1sgMSBdICE9IGFqYXhMb2NQYXJ0c1sgMSBdIHx8
IHBhcnRzWyAyIF0gIT0gYWpheExvY1BhcnRzWyAyIF0gfHwKCQkJCQkoIHBhcnRz
WyAzIF0gfHwgKCBwYXJ0c1sgMSBdID09PSAiaHR0cDoiID8gODAgOiA0NDMgKSAp
ICE9CgkJCQkJCSggYWpheExvY1BhcnRzWyAzIF0gfHwgKCBhamF4TG9jUGFydHNb
IDEgXSA9PT0gImh0dHA6IiA/IDgwIDogNDQzICkgKSApCgkJCSk7CgkJfQoKCQkv
LyBDb252ZXJ0IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmcKCQlpZiAoIHMu
ZGF0YSAmJiBzLnByb2Nlc3NEYXRhICYmIHR5cGVvZiBzLmRhdGEgIT09ICJzdHJp
bmciICkgewoJCQlzLmRhdGEgPSBqUXVlcnkucGFyYW0oIHMuZGF0YSwgcy50cmFk
aXRpb25hbCApOwoJCX0KCgkJLy8gQXBwbHkgcHJlZmlsdGVycwoJCWluc3BlY3RQ
cmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0ZXJzLCBzLCBvcHRpb25zLCBq
cVhIUiApOwoKCQkvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHBy
ZWZpbHRlciwgc3RvcCB0aGVyZQoJCWlmICggc3RhdGUgPT09IDIgKSB7CgkJCXJl
dHVybiBmYWxzZTsKCQl9CgoJCS8vIFdlIGNhbiBmaXJlIGdsb2JhbCBldmVudHMg
YXMgb2Ygbm93IGlmIGFza2VkIHRvCgkJZmlyZUdsb2JhbHMgPSBzLmdsb2JhbDsK
CgkJLy8gVXBwZXJjYXNlIHRoZSB0eXBlCgkJcy50eXBlID0gcy50eXBlLnRvVXBw
ZXJDYXNlKCk7CgoJCS8vIERldGVybWluZSBpZiByZXF1ZXN0IGhhcyBjb250ZW50
CgkJcy5oYXNDb250ZW50ID0gIXJub0NvbnRlbnQudGVzdCggcy50eXBlICk7CgoJ
CS8vIFdhdGNoIGZvciBhIG5ldyBzZXQgb2YgcmVxdWVzdHMKCQlpZiAoIGZpcmVH
bG9iYWxzICYmIGpRdWVyeS5hY3RpdmUrKyA9PT0gMCApIHsKCQkJalF1ZXJ5LmV2
ZW50LnRyaWdnZXIoICJhamF4U3RhcnQiICk7CgkJfQoKCQkvLyBNb3JlIG9wdGlv
bnMgaGFuZGxpbmcgZm9yIHJlcXVlc3RzIHdpdGggbm8gY29udGVudAoJCWlmICgg
IXMuaGFzQ29udGVudCApIHsKCgkJCS8vIElmIGRhdGEgaXMgYXZhaWxhYmxlLCBh
cHBlbmQgZGF0YSB0byB1cmwKCQkJaWYgKCBzLmRhdGEgKSB7CgkJCQlzLnVybCAr
PSAoIHJxdWVyeS50ZXN0KCBzLnVybCApID8gIiYiIDogIj8iICkgKyBzLmRhdGE7
CgkJCQkvLyAjOTY4MjogcmVtb3ZlIGRhdGEgc28gdGhhdCBpdCdzIG5vdCB1c2Vk
IGluIGFuIGV2ZW50dWFsIHJldHJ5CgkJCQlkZWxldGUgcy5kYXRhOwoJCQl9CgoJ
CQkvLyBHZXQgaWZNb2RpZmllZEtleSBiZWZvcmUgYWRkaW5nIHRoZSBhbnRpLWNh
Y2hlIHBhcmFtZXRlcgoJCQlpZk1vZGlmaWVkS2V5ID0gcy51cmw7CgoJCQkvLyBB
ZGQgYW50aS1jYWNoZSBpbiB1cmwgaWYgbmVlZGVkCgkJCWlmICggcy5jYWNoZSA9
PT0gZmFsc2UgKSB7CgoJCQkJdmFyIHRzID0galF1ZXJ5Lm5vdygpLAoJCQkJCS8v
IHRyeSByZXBsYWNpbmcgXz0gaWYgaXQgaXMgdGhlcmUKCQkJCQlyZXQgPSBzLnVy
bC5yZXBsYWNlKCBydHMsICIkMV89IiArIHRzICk7CgoJCQkJLy8gaWYgbm90aGlu
ZyB3YXMgcmVwbGFjZWQsIGFkZCB0aW1lc3RhbXAgdG8gdGhlIGVuZAoJCQkJcy51
cmwgPSByZXQgKyAoICggcmV0ID09PSBzLnVybCApID8gKCBycXVlcnkudGVzdCgg
cy51cmwgKSA/ICImIiA6ICI/IiApICsgIl89IiArIHRzIDogIiIgKTsKCQkJfQoJ
CX0KCgkJLy8gU2V0IHRoZSBjb3JyZWN0IGhlYWRlciwgaWYgZGF0YSBpcyBiZWlu
ZyBzZW50CgkJaWYgKCBzLmRhdGEgJiYgcy5oYXNDb250ZW50ICYmIHMuY29udGVu
dFR5cGUgIT09IGZhbHNlIHx8IG9wdGlvbnMuY29udGVudFR5cGUgKSB7CgkJCWpx
WEhSLnNldFJlcXVlc3RIZWFkZXIoICJDb250ZW50LVR5cGUiLCBzLmNvbnRlbnRU
eXBlICk7CgkJfQoKCQkvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9v
ciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLgoJ
CWlmICggcy5pZk1vZGlmaWVkICkgewoJCQlpZk1vZGlmaWVkS2V5ID0gaWZNb2Rp
ZmllZEtleSB8fCBzLnVybDsKCQkJaWYgKCBqUXVlcnkubGFzdE1vZGlmaWVkWyBp
Zk1vZGlmaWVkS2V5IF0gKSB7CgkJCQlqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCAi
SWYtTW9kaWZpZWQtU2luY2UiLCBqUXVlcnkubGFzdE1vZGlmaWVkWyBpZk1vZGlm
aWVkS2V5IF0gKTsKCQkJfQoJCQlpZiAoIGpRdWVyeS5ldGFnWyBpZk1vZGlmaWVk
S2V5IF0gKSB7CgkJCQlqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCAiSWYtTm9uZS1N
YXRjaCIsIGpRdWVyeS5ldGFnWyBpZk1vZGlmaWVkS2V5IF0gKTsKCQkJfQoJCX0K
CgkJLy8gU2V0IHRoZSBBY2NlcHRzIGhlYWRlciBmb3IgdGhlIHNlcnZlciwgZGVw
ZW5kaW5nIG9uIHRoZSBkYXRhVHlwZQoJCWpxWEhSLnNldFJlcXVlc3RIZWFkZXIo
CgkJCSJBY2NlcHQiLAoJCQlzLmRhdGFUeXBlc1sgMCBdICYmIHMuYWNjZXB0c1sg
cy5kYXRhVHlwZXNbMF0gXSA/CgkJCQlzLmFjY2VwdHNbIHMuZGF0YVR5cGVzWzBd
IF0gKyAoIHMuZGF0YVR5cGVzWyAwIF0gIT09ICIqIiA/ICIsICIgKyBhbGxUeXBl
cyArICI7IHE9MC4wMSIgOiAiIiApIDoKCQkJCXMuYWNjZXB0c1sgIioiIF0KCQkp
OwoKCQkvLyBDaGVjayBmb3IgaGVhZGVycyBvcHRpb24KCQlmb3IgKCBpIGluIHMu
aGVhZGVycyApIHsKCQkJanFYSFIuc2V0UmVxdWVzdEhlYWRlciggaSwgcy5oZWFk
ZXJzWyBpIF0gKTsKCQl9CgoJCS8vIEFsbG93IGN1c3RvbSBoZWFkZXJzL21pbWV0
eXBlcyBhbmQgZWFybHkgYWJvcnQKCQlpZiAoIHMuYmVmb3JlU2VuZCAmJiAoIHMu
YmVmb3JlU2VuZC5jYWxsKCBjYWxsYmFja0NvbnRleHQsIGpxWEhSLCBzICkgPT09
IGZhbHNlIHx8IHN0YXRlID09PSAyICkgKSB7CgkJCQkvLyBBYm9ydCBpZiBub3Qg
ZG9uZSBhbHJlYWR5CgkJCQlqcVhIUi5hYm9ydCgpOwoJCQkJcmV0dXJuIGZhbHNl
OwoKCQl9CgoJCS8vIEluc3RhbGwgY2FsbGJhY2tzIG9uIGRlZmVycmVkcwoJCWZv
ciAoIGkgaW4geyBzdWNjZXNzOiAxLCBlcnJvcjogMSwgY29tcGxldGU6IDEgfSAp
IHsKCQkJanFYSFJbIGkgXSggc1sgaSBdICk7CgkJfQoKCQkvLyBHZXQgdHJhbnNw
b3J0CgkJdHJhbnNwb3J0ID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMo
IHRyYW5zcG9ydHMsIHMsIG9wdGlvbnMsIGpxWEhSICk7CgoJCS8vIElmIG5vIHRy
YW5zcG9ydCwgd2UgYXV0by1hYm9ydAoJCWlmICggIXRyYW5zcG9ydCApIHsKCQkJ
ZG9uZSggLTEsICJObyBUcmFuc3BvcnQiICk7CgkJfSBlbHNlIHsKCQkJanFYSFIu
cmVhZHlTdGF0ZSA9IDE7CgkJCS8vIFNlbmQgZ2xvYmFsIGV2ZW50CgkJCWlmICgg
ZmlyZUdsb2JhbHMgKSB7CgkJCQlnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlcigg
ImFqYXhTZW5kIiwgWyBqcVhIUiwgcyBdICk7CgkJCX0KCQkJLy8gVGltZW91dAoJ
CQlpZiAoIHMuYXN5bmMgJiYgcy50aW1lb3V0ID4gMCApIHsKCQkJCXRpbWVvdXRU
aW1lciA9IHNldFRpbWVvdXQoIGZ1bmN0aW9uKCl7CgkJCQkJanFYSFIuYWJvcnQo
ICJ0aW1lb3V0IiApOwoJCQkJfSwgcy50aW1lb3V0ICk7CgkJCX0KCgkJCXRyeSB7
CgkJCQlzdGF0ZSA9IDE7CgkJCQl0cmFuc3BvcnQuc2VuZCggcmVxdWVzdEhlYWRl
cnMsIGRvbmUgKTsKCQkJfSBjYXRjaCAoZSkgewoJCQkJLy8gUHJvcGFnYXRlIGV4
Y2VwdGlvbiBhcyBlcnJvciBpZiBub3QgZG9uZQoJCQkJaWYgKCBzdGF0ZSA8IDIg
KSB7CgkJCQkJZG9uZSggLTEsIGUgKTsKCQkJCS8vIFNpbXBseSByZXRocm93IG90
aGVyd2lzZQoJCQkJfSBlbHNlIHsKCQkJCQl0aHJvdyBlOwoJCQkJfQoJCQl9CgkJ
fQoKCQlyZXR1cm4ganFYSFI7Cgl9LAoKCS8vIFNlcmlhbGl6ZSBhbiBhcnJheSBv
ZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mCgkvLyBrZXkvdmFsdWVzIGludG8g
YSBxdWVyeSBzdHJpbmcKCXBhcmFtOiBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwg
KSB7CgkJdmFyIHMgPSBbXSwKCQkJYWRkID0gZnVuY3Rpb24oIGtleSwgdmFsdWUg
KSB7CgkJCQkvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5k
IHJldHVybiBpdHMgdmFsdWUKCQkJCXZhbHVlID0galF1ZXJ5LmlzRnVuY3Rpb24o
IHZhbHVlICkgPyB2YWx1ZSgpIDogdmFsdWU7CgkJCQlzWyBzLmxlbmd0aCBdID0g
ZW5jb2RlVVJJQ29tcG9uZW50KCBrZXkgKSArICI9IiArIGVuY29kZVVSSUNvbXBv
bmVudCggdmFsdWUgKTsKCQkJfTsKCgkJLy8gU2V0IHRyYWRpdGlvbmFsIHRvIHRy
dWUgZm9yIGpRdWVyeSA8PSAxLjMuMiBiZWhhdmlvci4KCQlpZiAoIHRyYWRpdGlv
bmFsID09PSB1bmRlZmluZWQgKSB7CgkJCXRyYWRpdGlvbmFsID0galF1ZXJ5LmFq
YXhTZXR0aW5ncy50cmFkaXRpb25hbDsKCQl9CgoJCS8vIElmIGFuIGFycmF5IHdh
cyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0g
ZWxlbWVudHMuCgkJaWYgKCBqUXVlcnkuaXNBcnJheSggYSApIHx8ICggYS5qcXVl
cnkgJiYgIWpRdWVyeS5pc1BsYWluT2JqZWN0KCBhICkgKSApIHsKCQkJLy8gU2Vy
aWFsaXplIHRoZSBmb3JtIGVsZW1lbnRzCgkJCWpRdWVyeS5lYWNoKCBhLCBmdW5j
dGlvbigpIHsKCQkJCWFkZCggdGhpcy5uYW1lLCB0aGlzLnZhbHVlICk7CgkJCX0p
OwoKCQl9IGVsc2UgewoJCQkvLyBJZiB0cmFkaXRpb25hbCwgZW5jb2RlIHRoZSAi
b2xkIiB3YXkgKHRoZSB3YXkgMS4zLjIgb3Igb2xkZXIKCQkJLy8gZGlkIGl0KSwg
b3RoZXJ3aXNlIGVuY29kZSBwYXJhbXMgcmVjdXJzaXZlbHkuCgkJCWZvciAoIHZh
ciBwcmVmaXggaW4gYSApIHsKCQkJCWJ1aWxkUGFyYW1zKCBwcmVmaXgsIGFbIHBy
ZWZpeCBdLCB0cmFkaXRpb25hbCwgYWRkICk7CgkJCX0KCQl9CgoJCS8vIFJldHVy
biB0aGUgcmVzdWx0aW5nIHNlcmlhbGl6YXRpb24KCQlyZXR1cm4gcy5qb2luKCAi
JiIgKS5yZXBsYWNlKCByMjAsICIrIiApOwoJfQp9KTsKCmZ1bmN0aW9uIGJ1aWxk
UGFyYW1zKCBwcmVmaXgsIG9iaiwgdHJhZGl0aW9uYWwsIGFkZCApIHsKCWlmICgg
alF1ZXJ5LmlzQXJyYXkoIG9iaiApICkgewoJCS8vIFNlcmlhbGl6ZSBhcnJheSBp
dGVtLgoJCWpRdWVyeS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkgewoJCQlp
ZiAoIHRyYWRpdGlvbmFsIHx8IHJicmFja2V0LnRlc3QoIHByZWZpeCApICkgewoJ
CQkJLy8gVHJlYXQgZWFjaCBhcnJheSBpdGVtIGFzIGEgc2NhbGFyLgoJCQkJYWRk
KCBwcmVmaXgsIHYgKTsKCgkJCX0gZWxzZSB7CgkJCQkvLyBJZiBhcnJheSBpdGVt
IGlzIG5vbi1zY2FsYXIgKGFycmF5IG9yIG9iamVjdCksIGVuY29kZSBpdHMKCQkJ
CS8vIG51bWVyaWMgaW5kZXggdG8gcmVzb2x2ZSBkZXNlcmlhbGl6YXRpb24gYW1i
aWd1aXR5IGlzc3Vlcy4KCQkJCS8vIE5vdGUgdGhhdCByYWNrIChhcyBvZiAxLjAu
MCkgY2FuJ3QgY3VycmVudGx5IGRlc2VyaWFsaXplCgkJCQkvLyBuZXN0ZWQgYXJy
YXlzIHByb3Blcmx5LCBhbmQgYXR0ZW1wdGluZyB0byBkbyBzbyBtYXkgY2F1c2UK
CQkJCS8vIGEgc2VydmVyIGVycm9yLiBQb3NzaWJsZSBmaXhlcyBhcmUgdG8gbW9k
aWZ5IHJhY2sncwoJCQkJLy8gZGVzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBvciB0
byBwcm92aWRlIGFuIG9wdGlvbiBvciBmbGFnCgkJCQkvLyB0byBmb3JjZSBhcnJh
eSBzZXJpYWxpemF0aW9uIHRvIGJlIHNoYWxsb3cuCgkJCQlidWlsZFBhcmFtcygg
cHJlZml4ICsgIlsiICsgKCB0eXBlb2YgdiA9PT0gIm9iamVjdCIgPyBpIDogIiIg
KSArICJdIiwgdiwgdHJhZGl0aW9uYWwsIGFkZCApOwoJCQl9CgkJfSk7CgoJfSBl
bHNlIGlmICggIXRyYWRpdGlvbmFsICYmIGpRdWVyeS50eXBlKCBvYmogKSA9PT0g
Im9iamVjdCIgKSB7CgkJLy8gU2VyaWFsaXplIG9iamVjdCBpdGVtLgoJCWZvciAo
IHZhciBuYW1lIGluIG9iaiApIHsKCQkJYnVpbGRQYXJhbXMoIHByZWZpeCArICJb
IiArIG5hbWUgKyAiXSIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7
CgkJfQoKCX0gZWxzZSB7CgkJLy8gU2VyaWFsaXplIHNjYWxhciBpdGVtLgoJCWFk
ZCggcHJlZml4LCBvYmogKTsKCX0KfQoKLy8gVGhpcyBpcyBzdGlsbCBvbiB0aGUg
alF1ZXJ5IG9iamVjdC4uLiBmb3Igbm93Ci8vIFdhbnQgdG8gbW92ZSB0aGlzIHRv
IGpRdWVyeS5hamF4IHNvbWUgZGF5CmpRdWVyeS5leHRlbmQoewoKCS8vIENvdW50
ZXIgZm9yIGhvbGRpbmcgdGhlIG51bWJlciBvZiBhY3RpdmUgcXVlcmllcwoJYWN0
aXZlOiAwLAoKCS8vIExhc3QtTW9kaWZpZWQgaGVhZGVyIGNhY2hlIGZvciBuZXh0
IHJlcXVlc3QKCWxhc3RNb2RpZmllZDoge30sCglldGFnOiB7fQoKfSk7CgovKiBI
YW5kbGVzIHJlc3BvbnNlcyB0byBhbiBhamF4IHJlcXVlc3Q6CiAqIC0gc2V0cyBh
bGwgcmVzcG9uc2VYWFggZmllbGRzIGFjY29yZGluZ2x5CiAqIC0gZmluZHMgdGhl
IHJpZ2h0IGRhdGFUeXBlIChtZWRpYXRlcyBiZXR3ZWVuIGNvbnRlbnQtdHlwZSBh
bmQgZXhwZWN0ZWQgZGF0YVR5cGUpCiAqIC0gcmV0dXJucyB0aGUgY29ycmVzcG9u
ZGluZyByZXNwb25zZQogKi8KZnVuY3Rpb24gYWpheEhhbmRsZVJlc3BvbnNlcygg
cywganFYSFIsIHJlc3BvbnNlcyApIHsKCgl2YXIgY29udGVudHMgPSBzLmNvbnRl
bnRzLAoJCWRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzLAoJCXJlc3BvbnNlRmllbGRz
ID0gcy5yZXNwb25zZUZpZWxkcywKCQljdCwKCQl0eXBlLAoJCWZpbmFsRGF0YVR5
cGUsCgkJZmlyc3REYXRhVHlwZTsKCgkvLyBGaWxsIHJlc3BvbnNlWFhYIGZpZWxk
cwoJZm9yICggdHlwZSBpbiByZXNwb25zZUZpZWxkcyApIHsKCQlpZiAoIHR5cGUg
aW4gcmVzcG9uc2VzICkgewoJCQlqcVhIUlsgcmVzcG9uc2VGaWVsZHNbdHlwZV0g
XSA9IHJlc3BvbnNlc1sgdHlwZSBdOwoJCX0KCX0KCgkvLyBSZW1vdmUgYXV0byBk
YXRhVHlwZSBhbmQgZ2V0IGNvbnRlbnQtdHlwZSBpbiB0aGUgcHJvY2VzcwoJd2hp
bGUoIGRhdGFUeXBlc1sgMCBdID09PSAiKiIgKSB7CgkJZGF0YVR5cGVzLnNoaWZ0
KCk7CgkJaWYgKCBjdCA9PT0gdW5kZWZpbmVkICkgewoJCQljdCA9IHMubWltZVR5
cGUgfHwganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoICJjb250ZW50LXR5cGUiICk7
CgkJfQoJfQoKCS8vIENoZWNrIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGtub3du
IGNvbnRlbnQtdHlwZQoJaWYgKCBjdCApIHsKCQlmb3IgKCB0eXBlIGluIGNvbnRl
bnRzICkgewoJCQlpZiAoIGNvbnRlbnRzWyB0eXBlIF0gJiYgY29udGVudHNbIHR5
cGUgXS50ZXN0KCBjdCApICkgewoJCQkJZGF0YVR5cGVzLnVuc2hpZnQoIHR5cGUg
KTsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJfQoKCS8vIENoZWNrIHRvIHNlZSBpZiB3
ZSBoYXZlIGEgcmVzcG9uc2UgZm9yIHRoZSBleHBlY3RlZCBkYXRhVHlwZQoJaWYg
KCBkYXRhVHlwZXNbIDAgXSBpbiByZXNwb25zZXMgKSB7CgkJZmluYWxEYXRhVHlw
ZSA9IGRhdGFUeXBlc1sgMCBdOwoJfSBlbHNlIHsKCQkvLyBUcnkgY29udmVydGli
bGUgZGF0YVR5cGVzCgkJZm9yICggdHlwZSBpbiByZXNwb25zZXMgKSB7CgkJCWlm
ICggIWRhdGFUeXBlc1sgMCBdIHx8IHMuY29udmVydGVyc1sgdHlwZSArICIgIiAr
IGRhdGFUeXBlc1swXSBdICkgewoJCQkJZmluYWxEYXRhVHlwZSA9IHR5cGU7CgkJ
CQlicmVhazsKCQkJfQoJCQlpZiAoICFmaXJzdERhdGFUeXBlICkgewoJCQkJZmly
c3REYXRhVHlwZSA9IHR5cGU7CgkJCX0KCQl9CgkJLy8gT3IganVzdCB1c2UgZmly
c3Qgb25lCgkJZmluYWxEYXRhVHlwZSA9IGZpbmFsRGF0YVR5cGUgfHwgZmlyc3RE
YXRhVHlwZTsKCX0KCgkvLyBJZiB3ZSBmb3VuZCBhIGRhdGFUeXBlCgkvLyBXZSBh
ZGQgdGhlIGRhdGFUeXBlIHRvIHRoZSBsaXN0IGlmIG5lZWRlZAoJLy8gYW5kIHJl
dHVybiB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZQoJaWYgKCBmaW5hbERhdGFU
eXBlICkgewoJCWlmICggZmluYWxEYXRhVHlwZSAhPT0gZGF0YVR5cGVzWyAwIF0g
KSB7CgkJCWRhdGFUeXBlcy51bnNoaWZ0KCBmaW5hbERhdGFUeXBlICk7CgkJfQoJ
CXJldHVybiByZXNwb25zZXNbIGZpbmFsRGF0YVR5cGUgXTsKCX0KfQoKLy8gQ2hh
aW4gY29udmVyc2lvbnMgZ2l2ZW4gdGhlIHJlcXVlc3QgYW5kIHRoZSBvcmlnaW5h
bCByZXNwb25zZQpmdW5jdGlvbiBhamF4Q29udmVydCggcywgcmVzcG9uc2UgKSB7
CgoJLy8gQXBwbHkgdGhlIGRhdGFGaWx0ZXIgaWYgcHJvdmlkZWQKCWlmICggcy5k
YXRhRmlsdGVyICkgewoJCXJlc3BvbnNlID0gcy5kYXRhRmlsdGVyKCByZXNwb25z
ZSwgcy5kYXRhVHlwZSApOwoJfQoKCXZhciBkYXRhVHlwZXMgPSBzLmRhdGFUeXBl
cywKCQljb252ZXJ0ZXJzID0ge30sCgkJaSwKCQlrZXksCgkJbGVuZ3RoID0gZGF0
YVR5cGVzLmxlbmd0aCwKCQl0bXAsCgkJLy8gQ3VycmVudCBhbmQgcHJldmlvdXMg
ZGF0YVR5cGVzCgkJY3VycmVudCA9IGRhdGFUeXBlc1sgMCBdLAoJCXByZXYsCgkJ
Ly8gQ29udmVyc2lvbiBleHByZXNzaW9uCgkJY29udmVyc2lvbiwKCQkvLyBDb252
ZXJzaW9uIGZ1bmN0aW9uCgkJY29udiwKCQkvLyBDb252ZXJzaW9uIGZ1bmN0aW9u
cyAodHJhbnNpdGl2ZSBjb252ZXJzaW9uKQoJCWNvbnYxLAoJCWNvbnYyOwoKCS8v
IEZvciBlYWNoIGRhdGFUeXBlIGluIHRoZSBjaGFpbgoJZm9yICggaSA9IDE7IGkg
PCBsZW5ndGg7IGkrKyApIHsKCgkJLy8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwCgkJ
Ly8gd2l0aCBsb3dlcmNhc2VkIGtleXMKCQlpZiAoIGkgPT09IDEgKSB7CgkJCWZv
ciAoIGtleSBpbiBzLmNvbnZlcnRlcnMgKSB7CgkJCQlpZiAoIHR5cGVvZiBrZXkg
PT09ICJzdHJpbmciICkgewoJCQkJCWNvbnZlcnRlcnNbIGtleS50b0xvd2VyQ2Fz
ZSgpIF0gPSBzLmNvbnZlcnRlcnNbIGtleSBdOwoJCQkJfQoJCQl9CgkJfQoKCQkv
LyBHZXQgdGhlIGRhdGFUeXBlcwoJCXByZXYgPSBjdXJyZW50OwoJCWN1cnJlbnQg
PSBkYXRhVHlwZXNbIGkgXTsKCgkJLy8gSWYgY3VycmVudCBpcyBhdXRvIGRhdGFU
eXBlLCB1cGRhdGUgaXQgdG8gcHJldgoJCWlmICggY3VycmVudCA9PT0gIioiICkg
ewoJCQljdXJyZW50ID0gcHJldjsKCQkvLyBJZiBubyBhdXRvIGFuZCBkYXRhVHlw
ZXMgYXJlIGFjdHVhbGx5IGRpZmZlcmVudAoJCX0gZWxzZSBpZiAoIHByZXYgIT09
ICIqIiAmJiBwcmV2ICE9PSBjdXJyZW50ICkgewoKCQkJLy8gR2V0IHRoZSBjb252
ZXJ0ZXIKCQkJY29udmVyc2lvbiA9IHByZXYgKyAiICIgKyBjdXJyZW50OwoJCQlj
b252ID0gY29udmVydGVyc1sgY29udmVyc2lvbiBdIHx8IGNvbnZlcnRlcnNbICIq
ICIgKyBjdXJyZW50IF07CgoJCQkvLyBJZiB0aGVyZSBpcyBubyBkaXJlY3QgY29u
dmVydGVyLCBzZWFyY2ggdHJhbnNpdGl2ZWx5CgkJCWlmICggIWNvbnYgKSB7CgkJ
CQljb252MiA9IHVuZGVmaW5lZDsKCQkJCWZvciAoIGNvbnYxIGluIGNvbnZlcnRl
cnMgKSB7CgkJCQkJdG1wID0gY29udjEuc3BsaXQoICIgIiApOwoJCQkJCWlmICgg
dG1wWyAwIF0gPT09IHByZXYgfHwgdG1wWyAwIF0gPT09ICIqIiApIHsKCQkJCQkJ
Y29udjIgPSBjb252ZXJ0ZXJzWyB0bXBbMV0gKyAiICIgKyBjdXJyZW50IF07CgkJ
CQkJCWlmICggY29udjIgKSB7CgkJCQkJCQljb252MSA9IGNvbnZlcnRlcnNbIGNv
bnYxIF07CgkJCQkJCQlpZiAoIGNvbnYxID09PSB0cnVlICkgewoJCQkJCQkJCWNv
bnYgPSBjb252MjsKCQkJCQkJCX0gZWxzZSBpZiAoIGNvbnYyID09PSB0cnVlICkg
ewoJCQkJCQkJCWNvbnYgPSBjb252MTsKCQkJCQkJCX0KCQkJCQkJCWJyZWFrOwoJ
CQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJCS8vIElmIHdlIGZvdW5kIG5vIGNv
bnZlcnRlciwgZGlzcGF0Y2ggYW4gZXJyb3IKCQkJaWYgKCAhKCBjb252IHx8IGNv
bnYyICkgKSB7CgkJCQlqUXVlcnkuZXJyb3IoICJObyBjb252ZXJzaW9uIGZyb20g
IiArIGNvbnZlcnNpb24ucmVwbGFjZSgiICIsIiB0byAiKSApOwoJCQl9CgkJCS8v
IElmIGZvdW5kIGNvbnZlcnRlciBpcyBub3QgYW4gZXF1aXZhbGVuY2UKCQkJaWYg
KCBjb252ICE9PSB0cnVlICkgewoJCQkJLy8gQ29udmVydCB3aXRoIDEgb3IgMiBj
b252ZXJ0ZXJzIGFjY29yZGluZ2x5CgkJCQlyZXNwb25zZSA9IGNvbnYgPyBjb252
KCByZXNwb25zZSApIDogY29udjIoIGNvbnYxKHJlc3BvbnNlKSApOwoJCQl9CgkJ
fQoJfQoJcmV0dXJuIHJlc3BvbnNlOwp9CgoKCgp2YXIganNjID0galF1ZXJ5Lm5v
dygpLAoJanNyZSA9IC8oXD0pXD8oJnwkKXxcP1w/L2k7CgovLyBEZWZhdWx0IGpz
b25wIHNldHRpbmdzCmpRdWVyeS5hamF4U2V0dXAoewoJanNvbnA6ICJjYWxsYmFj
ayIsCglqc29ucENhbGxiYWNrOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4galF1ZXJ5
LmV4cGFuZG8gKyAiXyIgKyAoIGpzYysrICk7Cgl9Cn0pOwoKLy8gRGV0ZWN0LCBu
b3JtYWxpemUgb3B0aW9ucyBhbmQgaW5zdGFsbCBjYWxsYmFja3MgZm9yIGpzb25w
IHJlcXVlc3RzCmpRdWVyeS5hamF4UHJlZmlsdGVyKCAianNvbiBqc29ucCIsIGZ1
bmN0aW9uKCBzLCBvcmlnaW5hbFNldHRpbmdzLCBqcVhIUiApIHsKCgl2YXIgaW5z
cGVjdERhdGEgPSAoIHR5cGVvZiBzLmRhdGEgPT09ICJzdHJpbmciICkgJiYgL15h
cHBsaWNhdGlvblwveFwtd3d3XC1mb3JtXC11cmxlbmNvZGVkLy50ZXN0KCBzLmNv
bnRlbnRUeXBlICk7CgoJaWYgKCBzLmRhdGFUeXBlc1sgMCBdID09PSAianNvbnAi
IHx8CgkJcy5qc29ucCAhPT0gZmFsc2UgJiYgKCBqc3JlLnRlc3QoIHMudXJsICkg
fHwKCQkJCWluc3BlY3REYXRhICYmIGpzcmUudGVzdCggcy5kYXRhICkgKSApIHsK
CgkJdmFyIHJlc3BvbnNlQ29udGFpbmVyLAoJCQlqc29ucENhbGxiYWNrID0gcy5q
c29ucENhbGxiYWNrID0KCQkJCWpRdWVyeS5pc0Z1bmN0aW9uKCBzLmpzb25wQ2Fs
bGJhY2sgKSA/IHMuanNvbnBDYWxsYmFjaygpIDogcy5qc29ucENhbGxiYWNrLAoJ
CQlwcmV2aW91cyA9IHdpbmRvd1sganNvbnBDYWxsYmFjayBdLAoJCQl1cmwgPSBz
LnVybCwKCQkJZGF0YSA9IHMuZGF0YSwKCQkJcmVwbGFjZSA9ICIkMSIgKyBqc29u
cENhbGxiYWNrICsgIiQyIjsKCgkJaWYgKCBzLmpzb25wICE9PSBmYWxzZSApIHsK
CQkJdXJsID0gdXJsLnJlcGxhY2UoIGpzcmUsIHJlcGxhY2UgKTsKCQkJaWYgKCBz
LnVybCA9PT0gdXJsICkgewoJCQkJaWYgKCBpbnNwZWN0RGF0YSApIHsKCQkJCQlk
YXRhID0gZGF0YS5yZXBsYWNlKCBqc3JlLCByZXBsYWNlICk7CgkJCQl9CgkJCQlp
ZiAoIHMuZGF0YSA9PT0gZGF0YSApIHsKCQkJCQkvLyBBZGQgY2FsbGJhY2sgbWFu
dWFsbHkKCQkJCQl1cmwgKz0gKC9cPy8udGVzdCggdXJsICkgPyAiJiIgOiAiPyIp
ICsgcy5qc29ucCArICI9IiArIGpzb25wQ2FsbGJhY2s7CgkJCQl9CgkJCX0KCQl9
CgoJCXMudXJsID0gdXJsOwoJCXMuZGF0YSA9IGRhdGE7CgoJCS8vIEluc3RhbGwg
Y2FsbGJhY2sKCQl3aW5kb3dbIGpzb25wQ2FsbGJhY2sgXSA9IGZ1bmN0aW9uKCBy
ZXNwb25zZSApIHsKCQkJcmVzcG9uc2VDb250YWluZXIgPSBbIHJlc3BvbnNlIF07
CgkJfTsKCgkJLy8gQ2xlYW4tdXAgZnVuY3Rpb24KCQlqcVhIUi5hbHdheXMoZnVu
Y3Rpb24oKSB7CgkJCS8vIFNldCBjYWxsYmFjayBiYWNrIHRvIHByZXZpb3VzIHZh
bHVlCgkJCXdpbmRvd1sganNvbnBDYWxsYmFjayBdID0gcHJldmlvdXM7CgkJCS8v
IENhbGwgaWYgaXQgd2FzIGEgZnVuY3Rpb24gYW5kIHdlIGhhdmUgYSByZXNwb25z
ZQoJCQlpZiAoIHJlc3BvbnNlQ29udGFpbmVyICYmIGpRdWVyeS5pc0Z1bmN0aW9u
KCBwcmV2aW91cyApICkgewoJCQkJd2luZG93WyBqc29ucENhbGxiYWNrIF0oIHJl
c3BvbnNlQ29udGFpbmVyWyAwIF0gKTsKCQkJfQoJCX0pOwoKCQkvLyBVc2UgZGF0
YSBjb252ZXJ0ZXIgdG8gcmV0cmlldmUganNvbiBhZnRlciBzY3JpcHQgZXhlY3V0
aW9uCgkJcy5jb252ZXJ0ZXJzWyJzY3JpcHQganNvbiJdID0gZnVuY3Rpb24oKSB7
CgkJCWlmICggIXJlc3BvbnNlQ29udGFpbmVyICkgewoJCQkJalF1ZXJ5LmVycm9y
KCBqc29ucENhbGxiYWNrICsgIiB3YXMgbm90IGNhbGxlZCIgKTsKCQkJfQoJCQly
ZXR1cm4gcmVzcG9uc2VDb250YWluZXJbIDAgXTsKCQl9OwoKCQkvLyBmb3JjZSBq
c29uIGRhdGFUeXBlCgkJcy5kYXRhVHlwZXNbIDAgXSA9ICJqc29uIjsKCgkJLy8g
RGVsZWdhdGUgdG8gc2NyaXB0CgkJcmV0dXJuICJzY3JpcHQiOwoJfQp9KTsKCgoK
Ci8vIEluc3RhbGwgc2NyaXB0IGRhdGFUeXBlCmpRdWVyeS5hamF4U2V0dXAoewoJ
YWNjZXB0czogewoJCXNjcmlwdDogInRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRp
b24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRp
b24veC1lY21hc2NyaXB0IgoJfSwKCWNvbnRlbnRzOiB7CgkJc2NyaXB0OiAvamF2
YXNjcmlwdHxlY21hc2NyaXB0LwoJfSwKCWNvbnZlcnRlcnM6IHsKCQkidGV4dCBz
Y3JpcHQiOiBmdW5jdGlvbiggdGV4dCApIHsKCQkJalF1ZXJ5Lmdsb2JhbEV2YWwo
IHRleHQgKTsKCQkJcmV0dXJuIHRleHQ7CgkJfQoJfQp9KTsKCi8vIEhhbmRsZSBj
YWNoZSdzIHNwZWNpYWwgY2FzZSBhbmQgZ2xvYmFsCmpRdWVyeS5hamF4UHJlZmls
dGVyKCAic2NyaXB0IiwgZnVuY3Rpb24oIHMgKSB7CglpZiAoIHMuY2FjaGUgPT09
IHVuZGVmaW5lZCApIHsKCQlzLmNhY2hlID0gZmFsc2U7Cgl9CglpZiAoIHMuY3Jv
c3NEb21haW4gKSB7CgkJcy50eXBlID0gIkdFVCI7CgkJcy5nbG9iYWwgPSBmYWxz
ZTsKCX0KfSk7CgovLyBCaW5kIHNjcmlwdCB0YWcgaGFjayB0cmFuc3BvcnQKalF1
ZXJ5LmFqYXhUcmFuc3BvcnQoICJzY3JpcHQiLCBmdW5jdGlvbihzKSB7CgoJLy8g
VGhpcyB0cmFuc3BvcnQgb25seSBkZWFscyB3aXRoIGNyb3NzIGRvbWFpbiByZXF1
ZXN0cwoJaWYgKCBzLmNyb3NzRG9tYWluICkgewoKCQl2YXIgc2NyaXB0LAoJCQlo
ZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSggImhlYWQiIClbMF0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwoK
CQlyZXR1cm4gewoKCQkJc2VuZDogZnVuY3Rpb24oIF8sIGNhbGxiYWNrICkgewoK
CQkJCXNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJzY3JpcHQiICk7
CgoJCQkJc2NyaXB0LmFzeW5jID0gImFzeW5jIjsKCgkJCQlpZiAoIHMuc2NyaXB0
Q2hhcnNldCApIHsKCQkJCQlzY3JpcHQuY2hhcnNldCA9IHMuc2NyaXB0Q2hhcnNl
dDsKCQkJCX0KCgkJCQlzY3JpcHQuc3JjID0gcy51cmw7CgoJCQkJLy8gQXR0YWNo
IGhhbmRsZXJzIGZvciBhbGwgYnJvd3NlcnMKCQkJCXNjcmlwdC5vbmxvYWQgPSBz
Y3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oIF8sIGlzQWJvcnQg
KSB7CgoJCQkJCWlmICggaXNBYm9ydCB8fCAhc2NyaXB0LnJlYWR5U3RhdGUgfHwg
L2xvYWRlZHxjb21wbGV0ZS8udGVzdCggc2NyaXB0LnJlYWR5U3RhdGUgKSApIHsK
CgkJCQkJCS8vIEhhbmRsZSBtZW1vcnkgbGVhayBpbiBJRQoJCQkJCQlzY3JpcHQu
b25sb2FkID0gc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CgoJCQkJ
CQkvLyBSZW1vdmUgdGhlIHNjcmlwdAoJCQkJCQlpZiAoIGhlYWQgJiYgc2NyaXB0
LnBhcmVudE5vZGUgKSB7CgkJCQkJCQloZWFkLnJlbW92ZUNoaWxkKCBzY3JpcHQg
KTsKCQkJCQkJfQoKCQkJCQkJLy8gRGVyZWZlcmVuY2UgdGhlIHNjcmlwdAoJCQkJ
CQlzY3JpcHQgPSB1bmRlZmluZWQ7CgoJCQkJCQkvLyBDYWxsYmFjayBpZiBub3Qg
YWJvcnQKCQkJCQkJaWYgKCAhaXNBYm9ydCApIHsKCQkJCQkJCWNhbGxiYWNrKCAy
MDAsICJzdWNjZXNzIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfTsKCQkJCS8vIFVz
ZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCAgdG8gY2lyY3Vt
dmVudCBhbiBJRTYgYnVnLgoJCQkJLy8gVGhpcyBhcmlzZXMgd2hlbiBhIGJhc2Ug
bm9kZSBpcyB1c2VkICgjMjcwOSBhbmQgIzQzNzgpLgoJCQkJaGVhZC5pbnNlcnRC
ZWZvcmUoIHNjcmlwdCwgaGVhZC5maXJzdENoaWxkICk7CgkJCX0sCgoJCQlhYm9y
dDogZnVuY3Rpb24oKSB7CgkJCQlpZiAoIHNjcmlwdCApIHsKCQkJCQlzY3JpcHQu
b25sb2FkKCAwLCAxICk7CgkJCQl9CgkJCX0KCQl9OwoJfQp9KTsKCgoKCnZhciAv
LyAjNTI4MDogSW50ZXJuZXQgRXhwbG9yZXIgd2lsbCBrZWVwIGNvbm5lY3Rpb25z
IGFsaXZlIGlmIHdlIGRvbid0IGFib3J0IG9uIHVubG9hZAoJeGhyT25VbmxvYWRB
Ym9ydCA9IHdpbmRvdy5BY3RpdmVYT2JqZWN0ID8gZnVuY3Rpb24oKSB7CgkJLy8g
QWJvcnQgYWxsIHBlbmRpbmcgcmVxdWVzdHMKCQlmb3IgKCB2YXIga2V5IGluIHho
ckNhbGxiYWNrcyApIHsKCQkJeGhyQ2FsbGJhY2tzWyBrZXkgXSggMCwgMSApOwoJ
CX0KCX0gOiBmYWxzZSwKCXhocklkID0gMCwKCXhockNhbGxiYWNrczsKCi8vIEZ1
bmN0aW9ucyB0byBjcmVhdGUgeGhycwpmdW5jdGlvbiBjcmVhdGVTdGFuZGFyZFhI
UigpIHsKCXRyeSB7CgkJcmV0dXJuIG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3Qo
KTsKCX0gY2F0Y2goIGUgKSB7fQp9CgpmdW5jdGlvbiBjcmVhdGVBY3RpdmVYSFIo
KSB7Cgl0cnkgewoJCXJldHVybiBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoICJN
aWNyb3NvZnQuWE1MSFRUUCIgKTsKCX0gY2F0Y2goIGUgKSB7fQp9CgovLyBDcmVh
dGUgdGhlIHJlcXVlc3Qgb2JqZWN0Ci8vIChUaGlzIGlzIHN0aWxsIGF0dGFjaGVk
IHRvIGFqYXhTZXR0aW5ncyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSkKalF1
ZXJ5LmFqYXhTZXR0aW5ncy54aHIgPSB3aW5kb3cuQWN0aXZlWE9iamVjdCA/Cgkv
KiBNaWNyb3NvZnQgZmFpbGVkIHRvIHByb3Blcmx5CgkgKiBpbXBsZW1lbnQgdGhl
IFhNTEh0dHBSZXF1ZXN0IGluIElFNyAoY2FuJ3QgcmVxdWVzdCBsb2NhbCBmaWxl
cyksCgkgKiBzbyB3ZSB1c2UgdGhlIEFjdGl2ZVhPYmplY3Qgd2hlbiBpdCBpcyBh
dmFpbGFibGUKCSAqIEFkZGl0aW9uYWxseSBYTUxIdHRwUmVxdWVzdCBjYW4gYmUg
ZGlzYWJsZWQgaW4gSUU3L0lFOCBzbwoJICogd2UgbmVlZCBhIGZhbGxiYWNrLgoJ
ICovCglmdW5jdGlvbigpIHsKCQlyZXR1cm4gIXRoaXMuaXNMb2NhbCAmJiBjcmVh
dGVTdGFuZGFyZFhIUigpIHx8IGNyZWF0ZUFjdGl2ZVhIUigpOwoJfSA6CgkvLyBG
b3IgYWxsIG90aGVyIGJyb3dzZXJzLCB1c2UgdGhlIHN0YW5kYXJkIFhNTEh0dHBS
ZXF1ZXN0IG9iamVjdAoJY3JlYXRlU3RhbmRhcmRYSFI7CgovLyBEZXRlcm1pbmUg
c3VwcG9ydCBwcm9wZXJ0aWVzCihmdW5jdGlvbiggeGhyICkgewoJalF1ZXJ5LmV4
dGVuZCggalF1ZXJ5LnN1cHBvcnQsIHsKCQlhamF4OiAhIXhociwKCQljb3JzOiAh
IXhociAmJiAoICJ3aXRoQ3JlZGVudGlhbHMiIGluIHhociApCgl9KTsKfSkoIGpR
dWVyeS5hamF4U2V0dGluZ3MueGhyKCkgKTsKCi8vIENyZWF0ZSB0cmFuc3BvcnQg
aWYgdGhlIGJyb3dzZXIgY2FuIHByb3ZpZGUgYW4geGhyCmlmICggalF1ZXJ5LnN1
cHBvcnQuYWpheCApIHsKCglqUXVlcnkuYWpheFRyYW5zcG9ydChmdW5jdGlvbigg
cyApIHsKCQkvLyBDcm9zcyBkb21haW4gb25seSBhbGxvd2VkIGlmIHN1cHBvcnRl
ZCB0aHJvdWdoIFhNTEh0dHBSZXF1ZXN0CgkJaWYgKCAhcy5jcm9zc0RvbWFpbiB8
fCBqUXVlcnkuc3VwcG9ydC5jb3JzICkgewoKCQkJdmFyIGNhbGxiYWNrOwoKCQkJ
cmV0dXJuIHsKCQkJCXNlbmQ6IGZ1bmN0aW9uKCBoZWFkZXJzLCBjb21wbGV0ZSAp
IHsKCgkJCQkJLy8gR2V0IGEgbmV3IHhocgoJCQkJCXZhciB4aHIgPSBzLnhocigp
LAoJCQkJCQloYW5kbGUsCgkJCQkJCWk7CgoJCQkJCS8vIE9wZW4gdGhlIHNvY2tl
dAoJCQkJCS8vIFBhc3NpbmcgbnVsbCB1c2VybmFtZSwgZ2VuZXJhdGVzIGEgbG9n
aW4gcG9wdXAgb24gT3BlcmEgKCMyODY1KQoJCQkJCWlmICggcy51c2VybmFtZSAp
IHsKCQkJCQkJeGhyLm9wZW4oIHMudHlwZSwgcy51cmwsIHMuYXN5bmMsIHMudXNl
cm5hbWUsIHMucGFzc3dvcmQgKTsKCQkJCQl9IGVsc2UgewoJCQkJCQl4aHIub3Bl
biggcy50eXBlLCBzLnVybCwgcy5hc3luYyApOwoJCQkJCX0KCgkJCQkJLy8gQXBw
bHkgY3VzdG9tIGZpZWxkcyBpZiBwcm92aWRlZAoJCQkJCWlmICggcy54aHJGaWVs
ZHMgKSB7CgkJCQkJCWZvciAoIGkgaW4gcy54aHJGaWVsZHMgKSB7CgkJCQkJCQl4
aHJbIGkgXSA9IHMueGhyRmllbGRzWyBpIF07CgkJCQkJCX0KCQkJCQl9CgoJCQkJ
CS8vIE92ZXJyaWRlIG1pbWUgdHlwZSBpZiBuZWVkZWQKCQkJCQlpZiAoIHMubWlt
ZVR5cGUgJiYgeGhyLm92ZXJyaWRlTWltZVR5cGUgKSB7CgkJCQkJCXhoci5vdmVy
cmlkZU1pbWVUeXBlKCBzLm1pbWVUeXBlICk7CgkJCQkJfQoKCQkJCQkvLyBYLVJl
cXVlc3RlZC1XaXRoIGhlYWRlcgoJCQkJCS8vIEZvciBjcm9zcy1kb21haW4gcmVx
dWVzdHMsIHNlZWluZyBhcyBjb25kaXRpb25zIGZvciBhIHByZWZsaWdodCBhcmUK
CQkJCQkvLyBha2luIHRvIGEgamlnc2F3IHB1enpsZSwgd2Ugc2ltcGx5IG5ldmVy
IHNldCBpdCB0byBiZSBzdXJlLgoJCQkJCS8vIChpdCBjYW4gYWx3YXlzIGJlIHNl
dCBvbiBhIHBlci1yZXF1ZXN0IGJhc2lzIG9yIGV2ZW4gdXNpbmcgYWpheFNldHVw
KQoJCQkJCS8vIEZvciBzYW1lLWRvbWFpbiByZXF1ZXN0cywgd29uJ3QgY2hhbmdl
IGhlYWRlciBpZiBhbHJlYWR5IHByb3ZpZGVkLgoJCQkJCWlmICggIXMuY3Jvc3NE
b21haW4gJiYgIWhlYWRlcnNbIlgtUmVxdWVzdGVkLVdpdGgiXSApIHsKCQkJCQkJ
aGVhZGVyc1sgIlgtUmVxdWVzdGVkLVdpdGgiIF0gPSAiWE1MSHR0cFJlcXVlc3Qi
OwoJCQkJCX0KCgkJCQkJLy8gTmVlZCBhbiBleHRyYSB0cnkvY2F0Y2ggZm9yIGNy
b3NzIGRvbWFpbiByZXF1ZXN0cyBpbiBGaXJlZm94IDMKCQkJCQl0cnkgewoJCQkJ
CQlmb3IgKCBpIGluIGhlYWRlcnMgKSB7CgkJCQkJCQl4aHIuc2V0UmVxdWVzdEhl
YWRlciggaSwgaGVhZGVyc1sgaSBdICk7CgkJCQkJCX0KCQkJCQl9IGNhdGNoKCBf
ICkge30KCgkJCQkJLy8gRG8gc2VuZCB0aGUgcmVxdWVzdAoJCQkJCS8vIFRoaXMg
bWF5IHJhaXNlIGFuIGV4Y2VwdGlvbiB3aGljaCBpcyBhY3R1YWxseQoJCQkJCS8v
IGhhbmRsZWQgaW4galF1ZXJ5LmFqYXggKHNvIG5vIHRyeS9jYXRjaCBoZXJlKQoJ
CQkJCXhoci5zZW5kKCAoIHMuaGFzQ29udGVudCAmJiBzLmRhdGEgKSB8fCBudWxs
ICk7CgoJCQkJCS8vIExpc3RlbmVyCgkJCQkJY2FsbGJhY2sgPSBmdW5jdGlvbigg
XywgaXNBYm9ydCApIHsKCgkJCQkJCXZhciBzdGF0dXMsCgkJCQkJCQlzdGF0dXNU
ZXh0LAoJCQkJCQkJcmVzcG9uc2VIZWFkZXJzLAoJCQkJCQkJcmVzcG9uc2VzLAoJ
CQkJCQkJeG1sOwoKCQkJCQkJLy8gRmlyZWZveCB0aHJvd3MgZXhjZXB0aW9ucyB3
aGVuIGFjY2Vzc2luZyBwcm9wZXJ0aWVzCgkJCQkJCS8vIG9mIGFuIHhociB3aGVu
IGEgbmV0d29yayBlcnJvciBvY2N1cmVkCgkJCQkJCS8vIGh0dHA6Ly9oZWxwZnVs
Lmtub2JzLWRpYWxzLmNvbS9pbmRleC5waHAvQ29tcG9uZW50X3JldHVybmVkX2Zh
aWx1cmVfY29kZTpfMHg4MDA0MDExMV8oTlNfRVJST1JfTk9UX0FWQUlMQUJMRSkK
CQkJCQkJdHJ5IHsKCgkJCQkJCQkvLyBXYXMgbmV2ZXIgY2FsbGVkIGFuZCBpcyBh
Ym9ydGVkIG9yIGNvbXBsZXRlCgkJCQkJCQlpZiAoIGNhbGxiYWNrICYmICggaXNB
Ym9ydCB8fCB4aHIucmVhZHlTdGF0ZSA9PT0gNCApICkgewoKCQkJCQkJCQkvLyBP
bmx5IGNhbGxlZCBvbmNlCgkJCQkJCQkJY2FsbGJhY2sgPSB1bmRlZmluZWQ7CgoJ
CQkJCQkJCS8vIERvIG5vdCBrZWVwIGFzIGFjdGl2ZSBhbnltb3JlCgkJCQkJCQkJ
aWYgKCBoYW5kbGUgKSB7CgkJCQkJCQkJCXhoci5vbnJlYWR5c3RhdGVjaGFuZ2Ug
PSBqUXVlcnkubm9vcDsKCQkJCQkJCQkJaWYgKCB4aHJPblVubG9hZEFib3J0ICkg
ewoJCQkJCQkJCQkJZGVsZXRlIHhockNhbGxiYWNrc1sgaGFuZGxlIF07CgkJCQkJ
CQkJCX0KCQkJCQkJCQl9CgoJCQkJCQkJCS8vIElmIGl0J3MgYW4gYWJvcnQKCQkJ
CQkJCQlpZiAoIGlzQWJvcnQgKSB7CgkJCQkJCQkJCS8vIEFib3J0IGl0IG1hbnVh
bGx5IGlmIG5lZWRlZAoJCQkJCQkJCQlpZiAoIHhoci5yZWFkeVN0YXRlICE9PSA0
ICkgewoJCQkJCQkJCQkJeGhyLmFib3J0KCk7CgkJCQkJCQkJCX0KCQkJCQkJCQl9
IGVsc2UgewoJCQkJCQkJCQlzdGF0dXMgPSB4aHIuc3RhdHVzOwoJCQkJCQkJCQly
ZXNwb25zZUhlYWRlcnMgPSB4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCk7CgkJ
CQkJCQkJCXJlc3BvbnNlcyA9IHt9OwoJCQkJCQkJCQl4bWwgPSB4aHIucmVzcG9u
c2VYTUw7CgoJCQkJCQkJCQkvLyBDb25zdHJ1Y3QgcmVzcG9uc2UgbGlzdAoJCQkJ
CQkJCQlpZiAoIHhtbCAmJiB4bWwuZG9jdW1lbnRFbGVtZW50IC8qICM0OTU4ICov
ICkgewoJCQkJCQkJCQkJcmVzcG9uc2VzLnhtbCA9IHhtbDsKCQkJCQkJCQkJfQoK
CQkJCQkJCQkJLy8gV2hlbiByZXF1ZXN0aW5nIGJpbmFyeSBkYXRhLCBJRTYtOSB3
aWxsIHRocm93IGFuIGV4Y2VwdGlvbgoJCQkJCQkJCQkvLyBvbiBhbnkgYXR0ZW1w
dCB0byBhY2Nlc3MgcmVzcG9uc2VUZXh0ICgjMTE0MjYpCgkJCQkJCQkJCXRyeSB7
CgkJCQkJCQkJCQlyZXNwb25zZXMudGV4dCA9IHhoci5yZXNwb25zZVRleHQ7CgkJ
CQkJCQkJCX0gY2F0Y2goIF8gKSB7CgkJCQkJCQkJCX0KCgkJCQkJCQkJCS8vIEZp
cmVmb3ggdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2luZwoJCQkJCQkJ
CQkvLyBzdGF0dXNUZXh0IGZvciBmYXVsdHkgY3Jvc3MtZG9tYWluIHJlcXVlc3Rz
CgkJCQkJCQkJCXRyeSB7CgkJCQkJCQkJCQlzdGF0dXNUZXh0ID0geGhyLnN0YXR1
c1RleHQ7CgkJCQkJCQkJCX0gY2F0Y2goIGUgKSB7CgkJCQkJCQkJCQkvLyBXZSBu
b3JtYWxpemUgd2l0aCBXZWJraXQgZ2l2aW5nIGFuIGVtcHR5IHN0YXR1c1RleHQK
CQkJCQkJCQkJCXN0YXR1c1RleHQgPSAiIjsKCQkJCQkJCQkJfQoKCQkJCQkJCQkJ
Ly8gRmlsdGVyIHN0YXR1cyBmb3Igbm9uIHN0YW5kYXJkIGJlaGF2aW9ycwoKCQkJ
CQkJCQkJLy8gSWYgdGhlIHJlcXVlc3QgaXMgbG9jYWwgYW5kIHdlIGhhdmUgZGF0
YTogYXNzdW1lIGEgc3VjY2VzcwoJCQkJCQkJCQkvLyAoc3VjY2VzcyB3aXRoIG5v
IGRhdGEgd29uJ3QgZ2V0IG5vdGlmaWVkLCB0aGF0J3MgdGhlIGJlc3Qgd2UKCQkJ
CQkJCQkJLy8gY2FuIGRvIGdpdmVuIGN1cnJlbnQgaW1wbGVtZW50YXRpb25zKQoJ
CQkJCQkJCQlpZiAoICFzdGF0dXMgJiYgcy5pc0xvY2FsICYmICFzLmNyb3NzRG9t
YWluICkgewoJCQkJCQkJCQkJc3RhdHVzID0gcmVzcG9uc2VzLnRleHQgPyAyMDAg
OiA0MDQ7CgkJCQkJCQkJCS8vIElFIC0gIzE0NTA6IHNvbWV0aW1lcyByZXR1cm5z
IDEyMjMgd2hlbiBpdCBzaG91bGQgYmUgMjA0CgkJCQkJCQkJCX0gZWxzZSBpZiAo
IHN0YXR1cyA9PT0gMTIyMyApIHsKCQkJCQkJCQkJCXN0YXR1cyA9IDIwNDsKCQkJ
CQkJCQkJfQoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfSBjYXRjaCggZmlyZWZv
eEFjY2Vzc0V4Y2VwdGlvbiApIHsKCQkJCQkJCWlmICggIWlzQWJvcnQgKSB7CgkJ
CQkJCQkJY29tcGxldGUoIC0xLCBmaXJlZm94QWNjZXNzRXhjZXB0aW9uICk7CgkJ
CQkJCQl9CgkJCQkJCX0KCgkJCQkJCS8vIENhbGwgY29tcGxldGUgaWYgbmVlZGVk
CgkJCQkJCWlmICggcmVzcG9uc2VzICkgewoJCQkJCQkJY29tcGxldGUoIHN0YXR1
cywgc3RhdHVzVGV4dCwgcmVzcG9uc2VzLCByZXNwb25zZUhlYWRlcnMgKTsKCQkJ
CQkJfQoJCQkJCX07CgoJCQkJCS8vIGlmIHdlJ3JlIGluIHN5bmMgbW9kZSBvciBp
dCdzIGluIGNhY2hlCgkJCQkJLy8gYW5kIGhhcyBiZWVuIHJldHJpZXZlZCBkaXJl
Y3RseSAoSUU2ICYgSUU3KQoJCQkJCS8vIHdlIG5lZWQgdG8gbWFudWFsbHkgZmly
ZSB0aGUgY2FsbGJhY2sKCQkJCQlpZiAoICFzLmFzeW5jIHx8IHhoci5yZWFkeVN0
YXRlID09PSA0ICkgewoJCQkJCQljYWxsYmFjaygpOwoJCQkJCX0gZWxzZSB7CgkJ
CQkJCWhhbmRsZSA9ICsreGhySWQ7CgkJCQkJCWlmICggeGhyT25VbmxvYWRBYm9y
dCApIHsKCQkJCQkJCS8vIENyZWF0ZSB0aGUgYWN0aXZlIHhocnMgY2FsbGJhY2tz
IGxpc3QgaWYgbmVlZGVkCgkJCQkJCQkvLyBhbmQgYXR0YWNoIHRoZSB1bmxvYWQg
aGFuZGxlcgoJCQkJCQkJaWYgKCAheGhyQ2FsbGJhY2tzICkgewoJCQkJCQkJCXho
ckNhbGxiYWNrcyA9IHt9OwoJCQkJCQkJCWpRdWVyeSggd2luZG93ICkudW5sb2Fk
KCB4aHJPblVubG9hZEFib3J0ICk7CgkJCQkJCQl9CgkJCQkJCQkvLyBBZGQgdG8g
bGlzdCBvZiBhY3RpdmUgeGhycyBjYWxsYmFja3MKCQkJCQkJCXhockNhbGxiYWNr
c1sgaGFuZGxlIF0gPSBjYWxsYmFjazsKCQkJCQkJfQoJCQkJCQl4aHIub25yZWFk
eXN0YXRlY2hhbmdlID0gY2FsbGJhY2s7CgkJCQkJfQoJCQkJfSwKCgkJCQlhYm9y
dDogZnVuY3Rpb24oKSB7CgkJCQkJaWYgKCBjYWxsYmFjayApIHsKCQkJCQkJY2Fs
bGJhY2soMCwxKTsKCQkJCQl9CgkJCQl9CgkJCX07CgkJfQoJfSk7Cn0KCgoKCnZh
ciBlbGVtZGlzcGxheSA9IHt9LAoJaWZyYW1lLCBpZnJhbWVEb2MsCglyZnh0eXBl
cyA9IC9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLywKCXJmeG51bSA9IC9eKFsrXC1d
PSk/KFtcZCsuXC1dKykoW2EteiVdKikkL2ksCgl0aW1lcklkLAoJZnhBdHRycyA9
IFsKCQkvLyBoZWlnaHQgYW5pbWF0aW9ucwoJCVsgImhlaWdodCIsICJtYXJnaW5U
b3AiLCAibWFyZ2luQm90dG9tIiwgInBhZGRpbmdUb3AiLCAicGFkZGluZ0JvdHRv
bSIgXSwKCQkvLyB3aWR0aCBhbmltYXRpb25zCgkJWyAid2lkdGgiLCAibWFyZ2lu
TGVmdCIsICJtYXJnaW5SaWdodCIsICJwYWRkaW5nTGVmdCIsICJwYWRkaW5nUmln
aHQiIF0sCgkJLy8gb3BhY2l0eSBhbmltYXRpb25zCgkJWyAib3BhY2l0eSIgXQoJ
XSwKCWZ4Tm93OwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglzaG93OiBmdW5jdGlvbigg
c3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJdmFyIGVsZW0sIGRpc3BsYXk7
CgoJCWlmICggc3BlZWQgfHwgc3BlZWQgPT09IDAgKSB7CgkJCXJldHVybiB0aGlz
LmFuaW1hdGUoIGdlbkZ4KCJzaG93IiwgMyksIHNwZWVkLCBlYXNpbmcsIGNhbGxi
YWNrICk7CgoJCX0gZWxzZSB7CgkJCWZvciAoIHZhciBpID0gMCwgaiA9IHRoaXMu
bGVuZ3RoOyBpIDwgajsgaSsrICkgewoJCQkJZWxlbSA9IHRoaXNbIGkgXTsKCgkJ
CQlpZiAoIGVsZW0uc3R5bGUgKSB7CgkJCQkJZGlzcGxheSA9IGVsZW0uc3R5bGUu
ZGlzcGxheTsKCgkJCQkJLy8gUmVzZXQgdGhlIGlubGluZSBkaXNwbGF5IG9mIHRo
aXMgZWxlbWVudCB0byBsZWFybiBpZiBpdCBpcwoJCQkJCS8vIGJlaW5nIGhpZGRl
biBieSBjYXNjYWRlZCBydWxlcyBvciBub3QKCQkJCQlpZiAoICFqUXVlcnkuX2Rh
dGEoZWxlbSwgIm9sZGRpc3BsYXkiKSAmJiBkaXNwbGF5ID09PSAibm9uZSIgKSB7
CgkJCQkJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXkgPSAiIjsKCQkJCQl9
CgoJCQkJCS8vIFNldCBlbGVtZW50cyB3aGljaCBoYXZlIGJlZW4gb3ZlcnJpZGRl
biB3aXRoIGRpc3BsYXk6IG5vbmUKCQkJCQkvLyBpbiBhIHN0eWxlc2hlZXQgdG8g
d2hhdGV2ZXIgdGhlIGRlZmF1bHQgYnJvd3NlciBzdHlsZSBpcwoJCQkJCS8vIGZv
ciBzdWNoIGFuIGVsZW1lbnQKCQkJCQlpZiAoIChkaXNwbGF5ID09PSAiIiAmJiBq
UXVlcnkuY3NzKGVsZW0sICJkaXNwbGF5IikgPT09ICJub25lIikgfHwKCQkJCQkJ
IWpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxl
bWVudCwgZWxlbSApICkgewoJCQkJCQlqUXVlcnkuX2RhdGEoIGVsZW0sICJvbGRk
aXNwbGF5IiwgZGVmYXVsdERpc3BsYXkoZWxlbS5ub2RlTmFtZSkgKTsKCQkJCQl9
CgkJCQl9CgkJCX0KCgkJCS8vIFNldCB0aGUgZGlzcGxheSBvZiBtb3N0IG9mIHRo
ZSBlbGVtZW50cyBpbiBhIHNlY29uZCBsb29wCgkJCS8vIHRvIGF2b2lkIHRoZSBj
b25zdGFudCByZWZsb3cKCQkJZm9yICggaSA9IDA7IGkgPCBqOyBpKysgKSB7CgkJ
CQllbGVtID0gdGhpc1sgaSBdOwoKCQkJCWlmICggZWxlbS5zdHlsZSApIHsKCQkJ
CQlkaXNwbGF5ID0gZWxlbS5zdHlsZS5kaXNwbGF5OwoKCQkJCQlpZiAoIGRpc3Bs
YXkgPT09ICIiIHx8IGRpc3BsYXkgPT09ICJub25lIiApIHsKCQkJCQkJZWxlbS5z
dHlsZS5kaXNwbGF5ID0galF1ZXJ5Ll9kYXRhKCBlbGVtLCAib2xkZGlzcGxheSIg
KSB8fCAiIjsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCXJldHVybiB0aGlzOwoJCX0K
CX0sCgoJaGlkZTogZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkg
ewoJCWlmICggc3BlZWQgfHwgc3BlZWQgPT09IDAgKSB7CgkJCXJldHVybiB0aGlz
LmFuaW1hdGUoIGdlbkZ4KCJoaWRlIiwgMyksIHNwZWVkLCBlYXNpbmcsIGNhbGxi
YWNrKTsKCgkJfSBlbHNlIHsKCQkJdmFyIGVsZW0sIGRpc3BsYXksCgkJCQlpID0g
MCwKCQkJCWogPSB0aGlzLmxlbmd0aDsKCgkJCWZvciAoIDsgaSA8IGo7IGkrKyAp
IHsKCQkJCWVsZW0gPSB0aGlzW2ldOwoJCQkJaWYgKCBlbGVtLnN0eWxlICkgewoJ
CQkJCWRpc3BsYXkgPSBqUXVlcnkuY3NzKCBlbGVtLCAiZGlzcGxheSIgKTsKCgkJ
CQkJaWYgKCBkaXNwbGF5ICE9PSAibm9uZSIgJiYgIWpRdWVyeS5fZGF0YSggZWxl
bSwgIm9sZGRpc3BsYXkiICkgKSB7CgkJCQkJCWpRdWVyeS5fZGF0YSggZWxlbSwg
Im9sZGRpc3BsYXkiLCBkaXNwbGF5ICk7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQkv
LyBTZXQgdGhlIGRpc3BsYXkgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxv
b3AKCQkJLy8gdG8gYXZvaWQgdGhlIGNvbnN0YW50IHJlZmxvdwoJCQlmb3IgKCBp
ID0gMDsgaSA8IGo7IGkrKyApIHsKCQkJCWlmICggdGhpc1tpXS5zdHlsZSApIHsK
CQkJCQl0aGlzW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJCQl9CgkJCX0K
CgkJCXJldHVybiB0aGlzOwoJCX0KCX0sCgoJLy8gU2F2ZSB0aGUgb2xkIHRvZ2ds
ZSBmdW5jdGlvbgoJX3RvZ2dsZTogalF1ZXJ5LmZuLnRvZ2dsZSwKCgl0b2dnbGU6
IGZ1bmN0aW9uKCBmbiwgZm4yLCBjYWxsYmFjayApIHsKCQl2YXIgYm9vbCA9IHR5
cGVvZiBmbiA9PT0gImJvb2xlYW4iOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9u
KGZuKSAmJiBqUXVlcnkuaXNGdW5jdGlvbihmbjIpICkgewoJCQl0aGlzLl90b2dn
bGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoKCQl9IGVsc2UgaWYgKCBmbiA9
PSBudWxsIHx8IGJvb2wgKSB7CgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJ
CXZhciBzdGF0ZSA9IGJvb2wgPyBmbiA6IGpRdWVyeSh0aGlzKS5pcygiOmhpZGRl
biIpOwoJCQkJalF1ZXJ5KHRoaXMpWyBzdGF0ZSA/ICJzaG93IiA6ICJoaWRlIiBd
KCk7CgkJCX0pOwoKCQl9IGVsc2UgewoJCQl0aGlzLmFuaW1hdGUoZ2VuRngoInRv
Z2dsZSIsIDMpLCBmbiwgZm4yLCBjYWxsYmFjayk7CgkJfQoKCQlyZXR1cm4gdGhp
czsKCX0sCgoJZmFkZVRvOiBmdW5jdGlvbiggc3BlZWQsIHRvLCBlYXNpbmcsIGNh
bGxiYWNrICkgewoJCXJldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygi
b3BhY2l0eSIsIDApLnNob3coKS5lbmQoKQoJCQkJCS5hbmltYXRlKHtvcGFjaXR5
OiB0b30sIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrKTsKCX0sCgoJYW5pbWF0ZTog
ZnVuY3Rpb24oIHByb3AsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkgewoJCXZh
ciBvcHRhbGwgPSBqUXVlcnkuc3BlZWQoIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNr
ICk7CgoJCWlmICggalF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3AgKSApIHsKCQkJ
cmV0dXJuIHRoaXMuZWFjaCggb3B0YWxsLmNvbXBsZXRlLCBbIGZhbHNlIF0gKTsK
CQl9CgoJCS8vIERvIG5vdCBjaGFuZ2UgcmVmZXJlbmNlZCBwcm9wZXJ0aWVzIGFz
IHBlci1wcm9wZXJ0eSBlYXNpbmcgd2lsbCBiZSBsb3N0CgkJcHJvcCA9IGpRdWVy
eS5leHRlbmQoIHt9LCBwcm9wICk7CgoJCWZ1bmN0aW9uIGRvQW5pbWF0aW9uKCkg
ewoJCQkvLyBYWFggJ3RoaXMnIGRvZXMgbm90IGFsd2F5cyBoYXZlIGEgbm9kZU5h
bWUgd2hlbiBydW5uaW5nIHRoZQoJCQkvLyB0ZXN0IHN1aXRlCgoJCQlpZiAoIG9w
dGFsbC5xdWV1ZSA9PT0gZmFsc2UgKSB7CgkJCQlqUXVlcnkuX21hcmsoIHRoaXMg
KTsKCQkJfQoKCQkJdmFyIG9wdCA9IGpRdWVyeS5leHRlbmQoIHt9LCBvcHRhbGwg
KSwKCQkJCWlzRWxlbWVudCA9IHRoaXMubm9kZVR5cGUgPT09IDEsCgkJCQloaWRk
ZW4gPSBpc0VsZW1lbnQgJiYgalF1ZXJ5KHRoaXMpLmlzKCI6aGlkZGVuIiksCgkJ
CQluYW1lLCB2YWwsIHAsIGUsIGhvb2tzLCByZXBsYWNlLAoJCQkJcGFydHMsIHN0
YXJ0LCBlbmQsIHVuaXQsCgkJCQltZXRob2Q7CgoJCQkvLyB3aWxsIHN0b3JlIHBl
ciBwcm9wZXJ0eSBlYXNpbmcgYW5kIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZW4g
YW4gYW5pbWF0aW9uIGlzIGNvbXBsZXRlCgkJCW9wdC5hbmltYXRlZFByb3BlcnRp
ZXMgPSB7fTsKCgkJCS8vIGZpcnN0IHBhc3Mgb3ZlciBwcm9wZXJ0eXMgdG8gZXhw
YW5kIC8gbm9ybWFsaXplCgkJCWZvciAoIHAgaW4gcHJvcCApIHsKCQkJCW5hbWUg
PSBqUXVlcnkuY2FtZWxDYXNlKCBwICk7CgkJCQlpZiAoIHAgIT09IG5hbWUgKSB7
CgkJCQkJcHJvcFsgbmFtZSBdID0gcHJvcFsgcCBdOwoJCQkJCWRlbGV0ZSBwcm9w
WyBwIF07CgkJCQl9CgoJCQkJaWYgKCAoIGhvb2tzID0galF1ZXJ5LmNzc0hvb2tz
WyBuYW1lIF0gKSAmJiAiZXhwYW5kIiBpbiBob29rcyApIHsKCQkJCQlyZXBsYWNl
ID0gaG9va3MuZXhwYW5kKCBwcm9wWyBuYW1lIF0gKTsKCQkJCQlkZWxldGUgcHJv
cFsgbmFtZSBdOwoKCQkJCQkvLyBub3QgcXVpdGUgJC5leHRlbmQsIHRoaXMgd29u
dCBvdmVyd3JpdGUga2V5cyBhbHJlYWR5IHByZXNlbnQuCgkJCQkJLy8gYWxzbyAt
IHJldXNpbmcgJ3AnIGZyb20gYWJvdmUgYmVjYXVzZSB3ZSBoYXZlIHRoZSBjb3Jy
ZWN0ICJuYW1lIgoJCQkJCWZvciAoIHAgaW4gcmVwbGFjZSApIHsKCQkJCQkJaWYg
KCAhICggcCBpbiBwcm9wICkgKSB7CgkJCQkJCQlwcm9wWyBwIF0gPSByZXBsYWNl
WyBwIF07CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCgkJCWZvciAoIG5hbWUg
aW4gcHJvcCApIHsKCQkJCXZhbCA9IHByb3BbIG5hbWUgXTsKCQkJCS8vIGVhc2lu
ZyByZXNvbHV0aW9uOiBwZXIgcHJvcGVydHkgPiBvcHQuc3BlY2lhbEVhc2luZyA+
IG9wdC5lYXNpbmcgPiAnc3dpbmcnIChkZWZhdWx0KQoJCQkJaWYgKCBqUXVlcnku
aXNBcnJheSggdmFsICkgKSB7CgkJCQkJb3B0LmFuaW1hdGVkUHJvcGVydGllc1sg
bmFtZSBdID0gdmFsWyAxIF07CgkJCQkJdmFsID0gcHJvcFsgbmFtZSBdID0gdmFs
WyAwIF07CgkJCQl9IGVsc2UgewoJCQkJCW9wdC5hbmltYXRlZFByb3BlcnRpZXNb
IG5hbWUgXSA9IG9wdC5zcGVjaWFsRWFzaW5nICYmIG9wdC5zcGVjaWFsRWFzaW5n
WyBuYW1lIF0gfHwgb3B0LmVhc2luZyB8fCAnc3dpbmcnOwoJCQkJfQoKCQkJCWlm
ICggdmFsID09PSAiaGlkZSIgJiYgaGlkZGVuIHx8IHZhbCA9PT0gInNob3ciICYm
ICFoaWRkZW4gKSB7CgkJCQkJcmV0dXJuIG9wdC5jb21wbGV0ZS5jYWxsKCB0aGlz
ICk7CgkJCQl9CgoJCQkJaWYgKCBpc0VsZW1lbnQgJiYgKCBuYW1lID09PSAiaGVp
Z2h0IiB8fCBuYW1lID09PSAid2lkdGgiICkgKSB7CgkJCQkJLy8gTWFrZSBzdXJl
IHRoYXQgbm90aGluZyBzbmVha3Mgb3V0CgkJCQkJLy8gUmVjb3JkIGFsbCAzIG92
ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRSBkb2VzIG5vdAoJCQkJCS8vIGNo
YW5nZSB0aGUgb3ZlcmZsb3cgYXR0cmlidXRlIHdoZW4gb3ZlcmZsb3dYIGFuZAoJ
CQkJCS8vIG92ZXJmbG93WSBhcmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlCgkJCQkJ
b3B0Lm92ZXJmbG93ID0gWyB0aGlzLnN0eWxlLm92ZXJmbG93LCB0aGlzLnN0eWxl
Lm92ZXJmbG93WCwgdGhpcy5zdHlsZS5vdmVyZmxvd1kgXTsKCgkJCQkJLy8gU2V0
IGRpc3BsYXkgcHJvcGVydHkgdG8gaW5saW5lLWJsb2NrIGZvciBoZWlnaHQvd2lk
dGgKCQkJCQkvLyBhbmltYXRpb25zIG9uIGlubGluZSBlbGVtZW50cyB0aGF0IGFy
ZSBoYXZpbmcgd2lkdGgvaGVpZ2h0IGFuaW1hdGVkCgkJCQkJaWYgKCBqUXVlcnku
Y3NzKCB0aGlzLCAiZGlzcGxheSIgKSA9PT0gImlubGluZSIgJiYKCQkJCQkJCWpR
dWVyeS5jc3MoIHRoaXMsICJmbG9hdCIgKSA9PT0gIm5vbmUiICkgewoKCQkJCQkJ
Ly8gaW5saW5lLWxldmVsIGVsZW1lbnRzIGFjY2VwdCBpbmxpbmUtYmxvY2s7CgkJ
CQkJCS8vIGJsb2NrLWxldmVsIGVsZW1lbnRzIG5lZWQgdG8gYmUgaW5saW5lIHdp
dGggbGF5b3V0CgkJCQkJCWlmICggIWpRdWVyeS5zdXBwb3J0LmlubGluZUJsb2Nr
TmVlZHNMYXlvdXQgfHwgZGVmYXVsdERpc3BsYXkoIHRoaXMubm9kZU5hbWUgKSA9
PT0gImlubGluZSIgKSB7CgkJCQkJCQl0aGlzLnN0eWxlLmRpc3BsYXkgPSAiaW5s
aW5lLWJsb2NrIjsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQl0aGlzLnN0eWxlLnpv
b20gPSAxOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlpZiAoIG9wdC5v
dmVyZmxvdyAhPSBudWxsICkgewoJCQkJdGhpcy5zdHlsZS5vdmVyZmxvdyA9ICJo
aWRkZW4iOwoJCQl9CgoJCQlmb3IgKCBwIGluIHByb3AgKSB7CgkJCQllID0gbmV3
IGpRdWVyeS5meCggdGhpcywgb3B0LCBwICk7CgkJCQl2YWwgPSBwcm9wWyBwIF07
CgoJCQkJaWYgKCByZnh0eXBlcy50ZXN0KCB2YWwgKSApIHsKCgkJCQkJLy8gVHJh
Y2tzIHdoZXRoZXIgdG8gc2hvdyBvciBoaWRlIGJhc2VkIG9uIHByaXZhdGUKCQkJ
CQkvLyBkYXRhIGF0dGFjaGVkIHRvIHRoZSBlbGVtZW50CgkJCQkJbWV0aG9kID0g
alF1ZXJ5Ll9kYXRhKCB0aGlzLCAidG9nZ2xlIiArIHAgKSB8fCAoIHZhbCA9PT0g
InRvZ2dsZSIgPyBoaWRkZW4gPyAic2hvdyIgOiAiaGlkZSIgOiAwICk7CgkJCQkJ
aWYgKCBtZXRob2QgKSB7CgkJCQkJCWpRdWVyeS5fZGF0YSggdGhpcywgInRvZ2ds
ZSIgKyBwLCBtZXRob2QgPT09ICJzaG93IiA/ICJoaWRlIiA6ICJzaG93IiApOwoJ
CQkJCQllWyBtZXRob2QgXSgpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCWVbIHZhbCBd
KCk7CgkJCQkJfQoKCQkJCX0gZWxzZSB7CgkJCQkJcGFydHMgPSByZnhudW0uZXhl
YyggdmFsICk7CgkJCQkJc3RhcnQgPSBlLmN1cigpOwoKCQkJCQlpZiAoIHBhcnRz
ICkgewoJCQkJCQllbmQgPSBwYXJzZUZsb2F0KCBwYXJ0c1syXSApOwoJCQkJCQl1
bml0ID0gcGFydHNbM10gfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBwIF0gPyAiIiA6
ICJweCIgKTsKCgkJCQkJCS8vIFdlIG5lZWQgdG8gY29tcHV0ZSBzdGFydGluZyB2
YWx1ZQoJCQkJCQlpZiAoIHVuaXQgIT09ICJweCIgKSB7CgkJCQkJCQlqUXVlcnku
c3R5bGUoIHRoaXMsIHAsIChlbmQgfHwgMSkgKyB1bml0KTsKCQkJCQkJCXN0YXJ0
ID0gKCAoZW5kIHx8IDEpIC8gZS5jdXIoKSApICogc3RhcnQ7CgkJCQkJCQlqUXVl
cnkuc3R5bGUoIHRoaXMsIHAsIHN0YXJ0ICsgdW5pdCk7CgkJCQkJCX0KCgkJCQkJ
CS8vIElmIGEgKz0vLT0gdG9rZW4gd2FzIHByb3ZpZGVkLCB3ZSdyZSBkb2luZyBh
IHJlbGF0aXZlIGFuaW1hdGlvbgoJCQkJCQlpZiAoIHBhcnRzWzFdICkgewoJCQkJ
CQkJZW5kID0gKCAocGFydHNbIDEgXSA9PT0gIi09IiA/IC0xIDogMSkgKiBlbmQg
KSArIHN0YXJ0OwoJCQkJCQl9CgoJCQkJCQllLmN1c3RvbSggc3RhcnQsIGVuZCwg
dW5pdCApOwoKCQkJCQl9IGVsc2UgewoJCQkJCQllLmN1c3RvbSggc3RhcnQsIHZh
bCwgIiIgKTsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIEZvciBKUyBzdHJpY3Qg
Y29tcGxpYW5jZQoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgoJCXJldHVybiBvcHRhbGwu
cXVldWUgPT09IGZhbHNlID8KCQkJdGhpcy5lYWNoKCBkb0FuaW1hdGlvbiApIDoK
CQkJdGhpcy5xdWV1ZSggb3B0YWxsLnF1ZXVlLCBkb0FuaW1hdGlvbiApOwoJfSwK
CglzdG9wOiBmdW5jdGlvbiggdHlwZSwgY2xlYXJRdWV1ZSwgZ290b0VuZCApIHsK
CQlpZiAoIHR5cGVvZiB0eXBlICE9PSAic3RyaW5nIiApIHsKCQkJZ290b0VuZCA9
IGNsZWFyUXVldWU7CgkJCWNsZWFyUXVldWUgPSB0eXBlOwoJCQl0eXBlID0gdW5k
ZWZpbmVkOwoJCX0KCQlpZiAoIGNsZWFyUXVldWUgJiYgdHlwZSAhPT0gZmFsc2Ug
KSB7CgkJCXRoaXMucXVldWUoIHR5cGUgfHwgImZ4IiwgW10gKTsKCQl9CgoJCXJl
dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCXZhciBpbmRleCwKCQkJCWhh
ZFRpbWVycyA9IGZhbHNlLAoJCQkJdGltZXJzID0galF1ZXJ5LnRpbWVycywKCQkJ
CWRhdGEgPSBqUXVlcnkuX2RhdGEoIHRoaXMgKTsKCgkJCS8vIGNsZWFyIG1hcmtl
ciBjb3VudGVycyBpZiB3ZSBrbm93IHRoZXkgd29uJ3QgYmUKCQkJaWYgKCAhZ290
b0VuZCApIHsKCQkJCWpRdWVyeS5fdW5tYXJrKCB0cnVlLCB0aGlzICk7CgkJCX0K
CgkJCWZ1bmN0aW9uIHN0b3BRdWV1ZSggZWxlbSwgZGF0YSwgaW5kZXggKSB7CgkJ
CQl2YXIgaG9va3MgPSBkYXRhWyBpbmRleCBdOwoJCQkJalF1ZXJ5LnJlbW92ZURh
dGEoIGVsZW0sIGluZGV4LCB0cnVlICk7CgkJCQlob29rcy5zdG9wKCBnb3RvRW5k
ICk7CgkJCX0KCgkJCWlmICggdHlwZSA9PSBudWxsICkgewoJCQkJZm9yICggaW5k
ZXggaW4gZGF0YSApIHsKCQkJCQlpZiAoIGRhdGFbIGluZGV4IF0gJiYgZGF0YVsg
aW5kZXggXS5zdG9wICYmIGluZGV4LmluZGV4T2YoIi5ydW4iKSA9PT0gaW5kZXgu
bGVuZ3RoIC0gNCApIHsKCQkJCQkJc3RvcFF1ZXVlKCB0aGlzLCBkYXRhLCBpbmRl
eCApOwoJCQkJCX0KCQkJCX0KCQkJfSBlbHNlIGlmICggZGF0YVsgaW5kZXggPSB0
eXBlICsgIi5ydW4iIF0gJiYgZGF0YVsgaW5kZXggXS5zdG9wICl7CgkJCQlzdG9w
UXVldWUoIHRoaXMsIGRhdGEsIGluZGV4ICk7CgkJCX0KCgkJCWZvciAoIGluZGV4
ID0gdGltZXJzLmxlbmd0aDsgaW5kZXgtLTsgKSB7CgkJCQlpZiAoIHRpbWVyc1sg
aW5kZXggXS5lbGVtID09PSB0aGlzICYmICh0eXBlID09IG51bGwgfHwgdGltZXJz
WyBpbmRleCBdLnF1ZXVlID09PSB0eXBlKSApIHsKCQkJCQlpZiAoIGdvdG9FbmQg
KSB7CgoJCQkJCQkvLyBmb3JjZSB0aGUgbmV4dCBzdGVwIHRvIGJlIHRoZSBsYXN0
CgkJCQkJCXRpbWVyc1sgaW5kZXggXSggdHJ1ZSApOwoJCQkJCX0gZWxzZSB7CgkJ
CQkJCXRpbWVyc1sgaW5kZXggXS5zYXZlU3RhdGUoKTsKCQkJCQl9CgkJCQkJaGFk
VGltZXJzID0gdHJ1ZTsKCQkJCQl0aW1lcnMuc3BsaWNlKCBpbmRleCwgMSApOwoJ
CQkJfQoJCQl9CgoJCQkvLyBzdGFydCB0aGUgbmV4dCBpbiB0aGUgcXVldWUgaWYg
dGhlIGxhc3Qgc3RlcCB3YXNuJ3QgZm9yY2VkCgkJCS8vIHRpbWVycyBjdXJyZW50
bHkgd2lsbCBjYWxsIHRoZWlyIGNvbXBsZXRlIGNhbGxiYWNrcywgd2hpY2ggd2ls
bCBkZXF1ZXVlCgkJCS8vIGJ1dCBvbmx5IGlmIHRoZXkgd2VyZSBnb3RvRW5kCgkJ
CWlmICggISggZ290b0VuZCAmJiBoYWRUaW1lcnMgKSApIHsKCQkJCWpRdWVyeS5k
ZXF1ZXVlKCB0aGlzLCB0eXBlICk7CgkJCX0KCQl9KTsKCX0KCn0pOwoKLy8gQW5p
bWF0aW9ucyBjcmVhdGVkIHN5bmNocm9ub3VzbHkgd2lsbCBydW4gc3luY2hyb25v
dXNseQpmdW5jdGlvbiBjcmVhdGVGeE5vdygpIHsKCXNldFRpbWVvdXQoIGNsZWFy
RnhOb3csIDAgKTsKCXJldHVybiAoIGZ4Tm93ID0galF1ZXJ5Lm5vdygpICk7Cn0K
CmZ1bmN0aW9uIGNsZWFyRnhOb3coKSB7CglmeE5vdyA9IHVuZGVmaW5lZDsKfQoK
Ly8gR2VuZXJhdGUgcGFyYW1ldGVycyB0byBjcmVhdGUgYSBzdGFuZGFyZCBhbmlt
YXRpb24KZnVuY3Rpb24gZ2VuRngoIHR5cGUsIG51bSApIHsKCXZhciBvYmogPSB7
fTsKCglqUXVlcnkuZWFjaCggZnhBdHRycy5jb25jYXQuYXBwbHkoW10sIGZ4QXR0
cnMuc2xpY2UoIDAsIG51bSApKSwgZnVuY3Rpb24oKSB7CgkJb2JqWyB0aGlzIF0g
PSB0eXBlOwoJfSk7CgoJcmV0dXJuIG9iajsKfQoKLy8gR2VuZXJhdGUgc2hvcnRj
dXRzIGZvciBjdXN0b20gYW5pbWF0aW9ucwpqUXVlcnkuZWFjaCh7CglzbGlkZURv
d246IGdlbkZ4KCAic2hvdyIsIDEgKSwKCXNsaWRlVXA6IGdlbkZ4KCAiaGlkZSIs
IDEgKSwKCXNsaWRlVG9nZ2xlOiBnZW5GeCggInRvZ2dsZSIsIDEgKSwKCWZhZGVJ
bjogeyBvcGFjaXR5OiAic2hvdyIgfSwKCWZhZGVPdXQ6IHsgb3BhY2l0eTogImhp
ZGUiIH0sCglmYWRlVG9nZ2xlOiB7IG9wYWNpdHk6ICJ0b2dnbGUiIH0KfSwgZnVu
Y3Rpb24oIG5hbWUsIHByb3BzICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5j
dGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJcmV0dXJuIHRoaXMu
YW5pbWF0ZSggcHJvcHMsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7Cgl9Owp9
KTsKCmpRdWVyeS5leHRlbmQoewoJc3BlZWQ6IGZ1bmN0aW9uKCBzcGVlZCwgZWFz
aW5nLCBmbiApIHsKCQl2YXIgb3B0ID0gc3BlZWQgJiYgdHlwZW9mIHNwZWVkID09
PSAib2JqZWN0IiA/IGpRdWVyeS5leHRlbmQoIHt9LCBzcGVlZCApIDogewoJCQlj
b21wbGV0ZTogZm4gfHwgIWZuICYmIGVhc2luZyB8fAoJCQkJalF1ZXJ5LmlzRnVu
Y3Rpb24oIHNwZWVkICkgJiYgc3BlZWQsCgkJCWR1cmF0aW9uOiBzcGVlZCwKCQkJ
ZWFzaW5nOiBmbiAmJiBlYXNpbmcgfHwgZWFzaW5nICYmICFqUXVlcnkuaXNGdW5j
dGlvbiggZWFzaW5nICkgJiYgZWFzaW5nCgkJfTsKCgkJb3B0LmR1cmF0aW9uID0g
alF1ZXJ5LmZ4Lm9mZiA/IDAgOiB0eXBlb2Ygb3B0LmR1cmF0aW9uID09PSAibnVt
YmVyIiA/IG9wdC5kdXJhdGlvbiA6CgkJCW9wdC5kdXJhdGlvbiBpbiBqUXVlcnku
Znguc3BlZWRzID8galF1ZXJ5LmZ4LnNwZWVkc1sgb3B0LmR1cmF0aW9uIF0gOiBq
UXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0OwoKCQkvLyBub3JtYWxpemUgb3B0LnF1
ZXVlIC0gdHJ1ZS91bmRlZmluZWQvbnVsbCAtPiAiZngiCgkJaWYgKCBvcHQucXVl
dWUgPT0gbnVsbCB8fCBvcHQucXVldWUgPT09IHRydWUgKSB7CgkJCW9wdC5xdWV1
ZSA9ICJmeCI7CgkJfQoKCQkvLyBRdWV1ZWluZwoJCW9wdC5vbGQgPSBvcHQuY29t
cGxldGU7CgoJCW9wdC5jb21wbGV0ZSA9IGZ1bmN0aW9uKCBub1VubWFyayApIHsK
CQkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggb3B0Lm9sZCApICkgewoJCQkJb3B0
Lm9sZC5jYWxsKCB0aGlzICk7CgkJCX0KCgkJCWlmICggb3B0LnF1ZXVlICkgewoJ
CQkJalF1ZXJ5LmRlcXVldWUoIHRoaXMsIG9wdC5xdWV1ZSApOwoJCQl9IGVsc2Ug
aWYgKCBub1VubWFyayAhPT0gZmFsc2UgKSB7CgkJCQlqUXVlcnkuX3VubWFyaygg
dGhpcyApOwoJCQl9CgkJfTsKCgkJcmV0dXJuIG9wdDsKCX0sCgoJZWFzaW5nOiB7
CgkJbGluZWFyOiBmdW5jdGlvbiggcCApIHsKCQkJcmV0dXJuIHA7CgkJfSwKCQlz
d2luZzogZnVuY3Rpb24oIHAgKSB7CgkJCXJldHVybiAoIC1NYXRoLmNvcyggcCpN
YXRoLlBJICkgLyAyICkgKyAwLjU7CgkJfQoJfSwKCgl0aW1lcnM6IFtdLAoKCWZ4
OiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgcHJvcCApIHsKCQl0aGlzLm9wdGlv
bnMgPSBvcHRpb25zOwoJCXRoaXMuZWxlbSA9IGVsZW07CgkJdGhpcy5wcm9wID0g
cHJvcDsKCgkJb3B0aW9ucy5vcmlnID0gb3B0aW9ucy5vcmlnIHx8IHt9OwoJfQoK
fSk7CgpqUXVlcnkuZngucHJvdG90eXBlID0gewoJLy8gU2ltcGxlIGZ1bmN0aW9u
IGZvciBzZXR0aW5nIGEgc3R5bGUgdmFsdWUKCXVwZGF0ZTogZnVuY3Rpb24oKSB7
CgkJaWYgKCB0aGlzLm9wdGlvbnMuc3RlcCApIHsKCQkJdGhpcy5vcHRpb25zLnN0
ZXAuY2FsbCggdGhpcy5lbGVtLCB0aGlzLm5vdywgdGhpcyApOwoJCX0KCgkJKCBq
UXVlcnkuZnguc3RlcFsgdGhpcy5wcm9wIF0gfHwgalF1ZXJ5LmZ4LnN0ZXAuX2Rl
ZmF1bHQgKSggdGhpcyApOwoJfSwKCgkvLyBHZXQgdGhlIGN1cnJlbnQgc2l6ZQoJ
Y3VyOiBmdW5jdGlvbigpIHsKCQlpZiAoIHRoaXMuZWxlbVsgdGhpcy5wcm9wIF0g
IT0gbnVsbCAmJiAoIXRoaXMuZWxlbS5zdHlsZSB8fCB0aGlzLmVsZW0uc3R5bGVb
IHRoaXMucHJvcCBdID09IG51bGwpICkgewoJCQlyZXR1cm4gdGhpcy5lbGVtWyB0
aGlzLnByb3AgXTsKCQl9CgoJCXZhciBwYXJzZWQsCgkJCXIgPSBqUXVlcnkuY3Nz
KCB0aGlzLmVsZW0sIHRoaXMucHJvcCApOwoJCS8vIEVtcHR5IHN0cmluZ3MsIG51
bGwsIHVuZGVmaW5lZCBhbmQgImF1dG8iIGFyZSBjb252ZXJ0ZWQgdG8gMCwKCQkv
LyBjb21wbGV4IHZhbHVlcyBzdWNoIGFzICJyb3RhdGUoMXJhZCkiIGFyZSByZXR1
cm5lZCBhcyBpcywKCQkvLyBzaW1wbGUgdmFsdWVzIHN1Y2ggYXMgIjEwcHgiIGFy
ZSBwYXJzZWQgdG8gRmxvYXQuCgkJcmV0dXJuIGlzTmFOKCBwYXJzZWQgPSBwYXJz
ZUZsb2F0KCByICkgKSA/ICFyIHx8IHIgPT09ICJhdXRvIiA/IDAgOiByIDogcGFy
c2VkOwoJfSwKCgkvLyBTdGFydCBhbiBhbmltYXRpb24gZnJvbSBvbmUgbnVtYmVy
IHRvIGFub3RoZXIKCWN1c3RvbTogZnVuY3Rpb24oIGZyb20sIHRvLCB1bml0ICkg
ewoJCXZhciBzZWxmID0gdGhpcywKCQkJZnggPSBqUXVlcnkuZng7CgoJCXRoaXMu
c3RhcnRUaW1lID0gZnhOb3cgfHwgY3JlYXRlRnhOb3coKTsKCQl0aGlzLmVuZCA9
IHRvOwoJCXRoaXMubm93ID0gdGhpcy5zdGFydCA9IGZyb207CgkJdGhpcy5wb3Mg
PSB0aGlzLnN0YXRlID0gMDsKCQl0aGlzLnVuaXQgPSB1bml0IHx8IHRoaXMudW5p
dCB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHRoaXMucHJvcCBdID8gIiIgOiAicHgi
ICk7CgoJCWZ1bmN0aW9uIHQoIGdvdG9FbmQgKSB7CgkJCXJldHVybiBzZWxmLnN0
ZXAoIGdvdG9FbmQgKTsKCQl9CgoJCXQucXVldWUgPSB0aGlzLm9wdGlvbnMucXVl
dWU7CgkJdC5lbGVtID0gdGhpcy5lbGVtOwoJCXQuc2F2ZVN0YXRlID0gZnVuY3Rp
b24oKSB7CgkJCWlmICggalF1ZXJ5Ll9kYXRhKCBzZWxmLmVsZW0sICJmeHNob3ci
ICsgc2VsZi5wcm9wICkgPT09IHVuZGVmaW5lZCApIHsKCQkJCWlmICggc2VsZi5v
cHRpb25zLmhpZGUgKSB7CgkJCQkJalF1ZXJ5Ll9kYXRhKCBzZWxmLmVsZW0sICJm
eHNob3ciICsgc2VsZi5wcm9wLCBzZWxmLnN0YXJ0ICk7CgkJCQl9IGVsc2UgaWYg
KCBzZWxmLm9wdGlvbnMuc2hvdyApIHsKCQkJCQlqUXVlcnkuX2RhdGEoIHNlbGYu
ZWxlbSwgImZ4c2hvdyIgKyBzZWxmLnByb3AsIHNlbGYuZW5kICk7CgkJCQl9CgkJ
CX0KCQl9OwoKCQlpZiAoIHQoKSAmJiBqUXVlcnkudGltZXJzLnB1c2godCkgJiYg
IXRpbWVySWQgKSB7CgkJCXRpbWVySWQgPSBzZXRJbnRlcnZhbCggZngudGljaywg
ZnguaW50ZXJ2YWwgKTsKCQl9Cgl9LAoKCS8vIFNpbXBsZSAnc2hvdycgZnVuY3Rp
b24KCXNob3c6IGZ1bmN0aW9uKCkgewoJCXZhciBkYXRhU2hvdyA9IGpRdWVyeS5f
ZGF0YSggdGhpcy5lbGVtLCAiZnhzaG93IiArIHRoaXMucHJvcCApOwoKCQkvLyBS
ZW1lbWJlciB3aGVyZSB3ZSBzdGFydGVkLCBzbyB0aGF0IHdlIGNhbiBnbyBiYWNr
IHRvIGl0IGxhdGVyCgkJdGhpcy5vcHRpb25zLm9yaWdbIHRoaXMucHJvcCBdID0g
ZGF0YVNob3cgfHwgalF1ZXJ5LnN0eWxlKCB0aGlzLmVsZW0sIHRoaXMucHJvcCAp
OwoJCXRoaXMub3B0aW9ucy5zaG93ID0gdHJ1ZTsKCgkJLy8gQmVnaW4gdGhlIGFu
aW1hdGlvbgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHdlIHN0YXJ0IGF0IGEgc21hbGwg
d2lkdGgvaGVpZ2h0IHRvIGF2b2lkIGFueSBmbGFzaCBvZiBjb250ZW50CgkJaWYg
KCBkYXRhU2hvdyAhPT0gdW5kZWZpbmVkICkgewoJCQkvLyBUaGlzIHNob3cgaXMg
cGlja2luZyB1cCB3aGVyZSBhIHByZXZpb3VzIGhpZGUgb3Igc2hvdyBsZWZ0IG9m
ZgoJCQl0aGlzLmN1c3RvbSggdGhpcy5jdXIoKSwgZGF0YVNob3cgKTsKCQl9IGVs
c2UgewoJCQl0aGlzLmN1c3RvbSggdGhpcy5wcm9wID09PSAid2lkdGgiIHx8IHRo
aXMucHJvcCA9PT0gImhlaWdodCIgPyAxIDogMCwgdGhpcy5jdXIoKSApOwoJCX0K
CgkJLy8gU3RhcnQgYnkgc2hvd2luZyB0aGUgZWxlbWVudAoJCWpRdWVyeSggdGhp
cy5lbGVtICkuc2hvdygpOwoJfSwKCgkvLyBTaW1wbGUgJ2hpZGUnIGZ1bmN0aW9u
CgloaWRlOiBmdW5jdGlvbigpIHsKCQkvLyBSZW1lbWJlciB3aGVyZSB3ZSBzdGFy
dGVkLCBzbyB0aGF0IHdlIGNhbiBnbyBiYWNrIHRvIGl0IGxhdGVyCgkJdGhpcy5v
cHRpb25zLm9yaWdbIHRoaXMucHJvcCBdID0galF1ZXJ5Ll9kYXRhKCB0aGlzLmVs
ZW0sICJmeHNob3ciICsgdGhpcy5wcm9wICkgfHwgalF1ZXJ5LnN0eWxlKCB0aGlz
LmVsZW0sIHRoaXMucHJvcCApOwoJCXRoaXMub3B0aW9ucy5oaWRlID0gdHJ1ZTsK
CgkJLy8gQmVnaW4gdGhlIGFuaW1hdGlvbgoJCXRoaXMuY3VzdG9tKCB0aGlzLmN1
cigpLCAwICk7Cgl9LAoKCS8vIEVhY2ggc3RlcCBvZiBhbiBhbmltYXRpb24KCXN0
ZXA6IGZ1bmN0aW9uKCBnb3RvRW5kICkgewoJCXZhciBwLCBuLCBjb21wbGV0ZSwK
CQkJdCA9IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksCgkJCWRvbmUgPSB0cnVlLAoJ
CQllbGVtID0gdGhpcy5lbGVtLAoJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zOwoK
CQlpZiAoIGdvdG9FbmQgfHwgdCA+PSBvcHRpb25zLmR1cmF0aW9uICsgdGhpcy5z
dGFydFRpbWUgKSB7CgkJCXRoaXMubm93ID0gdGhpcy5lbmQ7CgkJCXRoaXMucG9z
ID0gdGhpcy5zdGF0ZSA9IDE7CgkJCXRoaXMudXBkYXRlKCk7CgoJCQlvcHRpb25z
LmFuaW1hdGVkUHJvcGVydGllc1sgdGhpcy5wcm9wIF0gPSB0cnVlOwoKCQkJZm9y
ICggcCBpbiBvcHRpb25zLmFuaW1hdGVkUHJvcGVydGllcyApIHsKCQkJCWlmICgg
b3B0aW9ucy5hbmltYXRlZFByb3BlcnRpZXNbIHAgXSAhPT0gdHJ1ZSApIHsKCQkJ
CQlkb25lID0gZmFsc2U7CgkJCQl9CgkJCX0KCgkJCWlmICggZG9uZSApIHsKCQkJ
CS8vIFJlc2V0IHRoZSBvdmVyZmxvdwoJCQkJaWYgKCBvcHRpb25zLm92ZXJmbG93
ICE9IG51bGwgJiYgIWpRdWVyeS5zdXBwb3J0LnNocmlua1dyYXBCbG9ja3MgKSB7
CgoJCQkJCWpRdWVyeS5lYWNoKCBbICIiLCAiWCIsICJZIiBdLCBmdW5jdGlvbigg
aW5kZXgsIHZhbHVlICkgewoJCQkJCQllbGVtLnN0eWxlWyAib3ZlcmZsb3ciICsg
dmFsdWUgXSA9IG9wdGlvbnMub3ZlcmZsb3dbIGluZGV4IF07CgkJCQkJfSk7CgkJ
CQl9CgoJCQkJLy8gSGlkZSB0aGUgZWxlbWVudCBpZiB0aGUgImhpZGUiIG9wZXJh
dGlvbiB3YXMgZG9uZQoJCQkJaWYgKCBvcHRpb25zLmhpZGUgKSB7CgkJCQkJalF1
ZXJ5KCBlbGVtICkuaGlkZSgpOwoJCQkJfQoKCQkJCS8vIFJlc2V0IHRoZSBwcm9w
ZXJ0aWVzLCBpZiB0aGUgaXRlbSBoYXMgYmVlbiBoaWRkZW4gb3Igc2hvd24KCQkJ
CWlmICggb3B0aW9ucy5oaWRlIHx8IG9wdGlvbnMuc2hvdyApIHsKCQkJCQlmb3Ig
KCBwIGluIG9wdGlvbnMuYW5pbWF0ZWRQcm9wZXJ0aWVzICkgewoJCQkJCQlqUXVl
cnkuc3R5bGUoIGVsZW0sIHAsIG9wdGlvbnMub3JpZ1sgcCBdICk7CgkJCQkJCWpR
dWVyeS5yZW1vdmVEYXRhKCBlbGVtLCAiZnhzaG93IiArIHAsIHRydWUgKTsKCQkJ
CQkJLy8gVG9nZ2xlIGRhdGEgaXMgbm8gbG9uZ2VyIG5lZWRlZAoJCQkJCQlqUXVl
cnkucmVtb3ZlRGF0YSggZWxlbSwgInRvZ2dsZSIgKyBwLCB0cnVlICk7CgkJCQkJ
fQoJCQkJfQoKCQkJCS8vIEV4ZWN1dGUgdGhlIGNvbXBsZXRlIGZ1bmN0aW9uCgkJ
CQkvLyBpbiB0aGUgZXZlbnQgdGhhdCB0aGUgY29tcGxldGUgZnVuY3Rpb24gdGhy
b3dzIGFuIGV4Y2VwdGlvbgoJCQkJLy8gd2UgbXVzdCBlbnN1cmUgaXQgd29uJ3Qg
YmUgY2FsbGVkIHR3aWNlLiAjNTY4NAoKCQkJCWNvbXBsZXRlID0gb3B0aW9ucy5j
b21wbGV0ZTsKCQkJCWlmICggY29tcGxldGUgKSB7CgoJCQkJCW9wdGlvbnMuY29t
cGxldGUgPSBmYWxzZTsKCQkJCQljb21wbGV0ZS5jYWxsKCBlbGVtICk7CgkJCQl9
CgkJCX0KCgkJCXJldHVybiBmYWxzZTsKCgkJfSBlbHNlIHsKCQkJLy8gY2xhc3Np
Y2FsIGVhc2luZyBjYW5ub3QgYmUgdXNlZCB3aXRoIGFuIEluZmluaXR5IGR1cmF0
aW9uCgkJCWlmICggb3B0aW9ucy5kdXJhdGlvbiA9PSBJbmZpbml0eSApIHsKCQkJ
CXRoaXMubm93ID0gdDsKCQkJfSBlbHNlIHsKCQkJCW4gPSB0IC0gdGhpcy5zdGFy
dFRpbWU7CgkJCQl0aGlzLnN0YXRlID0gbiAvIG9wdGlvbnMuZHVyYXRpb247CgoJ
CQkJLy8gUGVyZm9ybSB0aGUgZWFzaW5nIGZ1bmN0aW9uLCBkZWZhdWx0cyB0byBz
d2luZwoJCQkJdGhpcy5wb3MgPSBqUXVlcnkuZWFzaW5nWyBvcHRpb25zLmFuaW1h
dGVkUHJvcGVydGllc1t0aGlzLnByb3BdIF0oIHRoaXMuc3RhdGUsIG4sIDAsIDEs
IG9wdGlvbnMuZHVyYXRpb24gKTsKCQkJCXRoaXMubm93ID0gdGhpcy5zdGFydCAr
ICggKHRoaXMuZW5kIC0gdGhpcy5zdGFydCkgKiB0aGlzLnBvcyApOwoJCQl9CgkJ
CS8vIFBlcmZvcm0gdGhlIG5leHQgc3RlcCBvZiB0aGUgYW5pbWF0aW9uCgkJCXRo
aXMudXBkYXRlKCk7CgkJfQoKCQlyZXR1cm4gdHJ1ZTsKCX0KfTsKCmpRdWVyeS5l
eHRlbmQoIGpRdWVyeS5meCwgewoJdGljazogZnVuY3Rpb24oKSB7CgkJdmFyIHRp
bWVyLAoJCQl0aW1lcnMgPSBqUXVlcnkudGltZXJzLAoJCQlpID0gMDsKCgkJZm9y
ICggOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkgewoJCQl0aW1lciA9IHRpbWVy
c1sgaSBdOwoJCQkvLyBDaGVja3MgdGhlIHRpbWVyIGhhcyBub3QgYWxyZWFkeSBi
ZWVuIHJlbW92ZWQKCQkJaWYgKCAhdGltZXIoKSAmJiB0aW1lcnNbIGkgXSA9PT0g
dGltZXIgKSB7CgkJCQl0aW1lcnMuc3BsaWNlKCBpLS0sIDEgKTsKCQkJfQoJCX0K
CgkJaWYgKCAhdGltZXJzLmxlbmd0aCApIHsKCQkJalF1ZXJ5LmZ4LnN0b3AoKTsK
CQl9Cgl9LAoKCWludGVydmFsOiAxMywKCglzdG9wOiBmdW5jdGlvbigpIHsKCQlj
bGVhckludGVydmFsKCB0aW1lcklkICk7CgkJdGltZXJJZCA9IG51bGw7Cgl9LAoK
CXNwZWVkczogewoJCXNsb3c6IDYwMCwKCQlmYXN0OiAyMDAsCgkJLy8gRGVmYXVs
dCBzcGVlZAoJCV9kZWZhdWx0OiA0MDAKCX0sCgoJc3RlcDogewoJCW9wYWNpdHk6
IGZ1bmN0aW9uKCBmeCApIHsKCQkJalF1ZXJ5LnN0eWxlKCBmeC5lbGVtLCAib3Bh
Y2l0eSIsIGZ4Lm5vdyApOwoJCX0sCgoJCV9kZWZhdWx0OiBmdW5jdGlvbiggZngg
KSB7CgkJCWlmICggZnguZWxlbS5zdHlsZSAmJiBmeC5lbGVtLnN0eWxlWyBmeC5w
cm9wIF0gIT0gbnVsbCApIHsKCQkJCWZ4LmVsZW0uc3R5bGVbIGZ4LnByb3AgXSA9
IGZ4Lm5vdyArIGZ4LnVuaXQ7CgkJCX0gZWxzZSB7CgkJCQlmeC5lbGVtWyBmeC5w
cm9wIF0gPSBmeC5ub3c7CgkJCX0KCQl9Cgl9Cn0pOwoKLy8gRW5zdXJlIHByb3Bz
IHRoYXQgY2FuJ3QgYmUgbmVnYXRpdmUgZG9uJ3QgZ28gdGhlcmUgb24gdW5kZXJz
aG9vdCBlYXNpbmcKalF1ZXJ5LmVhY2goIGZ4QXR0cnMuY29uY2F0LmFwcGx5KCBb
XSwgZnhBdHRycyApLCBmdW5jdGlvbiggaSwgcHJvcCApIHsKCS8vIGV4Y2x1ZGUg
bWFyZ2luVG9wLCBtYXJnaW5MZWZ0LCBtYXJnaW5Cb3R0b20gYW5kIG1hcmdpblJp
Z2h0IGZyb20gdGhpcyBsaXN0CglpZiAoIHByb3AuaW5kZXhPZiggIm1hcmdpbiIg
KSApIHsKCQlqUXVlcnkuZnguc3RlcFsgcHJvcCBdID0gZnVuY3Rpb24oIGZ4ICkg
ewoJCQlqUXVlcnkuc3R5bGUoIGZ4LmVsZW0sIHByb3AsIE1hdGgubWF4KDAsIGZ4
Lm5vdykgKyBmeC51bml0ICk7CgkJfTsKCX0KfSk7CgppZiAoIGpRdWVyeS5leHBy
ICYmIGpRdWVyeS5leHByLmZpbHRlcnMgKSB7CglqUXVlcnkuZXhwci5maWx0ZXJz
LmFuaW1hdGVkID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5n
cmVwKGpRdWVyeS50aW1lcnMsIGZ1bmN0aW9uKCBmbiApIHsKCQkJcmV0dXJuIGVs
ZW0gPT09IGZuLmVsZW07CgkJfSkubGVuZ3RoOwoJfTsKfQoKLy8gVHJ5IHRvIHJl
c3RvcmUgdGhlIGRlZmF1bHQgZGlzcGxheSB2YWx1ZSBvZiBhbiBlbGVtZW50CmZ1
bmN0aW9uIGRlZmF1bHREaXNwbGF5KCBub2RlTmFtZSApIHsKCglpZiAoICFlbGVt
ZGlzcGxheVsgbm9kZU5hbWUgXSApIHsKCgkJdmFyIGJvZHkgPSBkb2N1bWVudC5i
b2R5LAoJCQllbGVtID0galF1ZXJ5KCAiPCIgKyBub2RlTmFtZSArICI+IiApLmFw
cGVuZFRvKCBib2R5ICksCgkJCWRpc3BsYXkgPSBlbGVtLmNzcyggImRpc3BsYXki
ICk7CgkJZWxlbS5yZW1vdmUoKTsKCgkJLy8gSWYgdGhlIHNpbXBsZSB3YXkgZmFp
bHMsCgkJLy8gZ2V0IGVsZW1lbnQncyByZWFsIGRlZmF1bHQgZGlzcGxheSBieSBh
dHRhY2hpbmcgaXQgdG8gYSB0ZW1wIGlmcmFtZQoJCWlmICggZGlzcGxheSA9PT0g
Im5vbmUiIHx8IGRpc3BsYXkgPT09ICIiICkgewoJCQkvLyBObyBpZnJhbWUgdG8g
dXNlIHlldCwgc28gY3JlYXRlIGl0CgkJCWlmICggIWlmcmFtZSApIHsKCQkJCWlm
cmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJpZnJhbWUiICk7CgkJCQlp
ZnJhbWUuZnJhbWVCb3JkZXIgPSBpZnJhbWUud2lkdGggPSBpZnJhbWUuaGVpZ2h0
ID0gMDsKCQkJfQoKCQkJYm9keS5hcHBlbmRDaGlsZCggaWZyYW1lICk7CgoJCQkv
LyBDcmVhdGUgYSBjYWNoZWFibGUgY29weSBvZiB0aGUgaWZyYW1lIGRvY3VtZW50
IG9uIGZpcnN0IGNhbGwuCgkJCS8vIElFIGFuZCBPcGVyYSB3aWxsIGFsbG93IHVz
IHRvIHJldXNlIHRoZSBpZnJhbWVEb2Mgd2l0aG91dCByZS13cml0aW5nIHRoZSBm
YWtlIEhUTUwKCQkJLy8gZG9jdW1lbnQgdG8gaXQ7IFdlYktpdCAmIEZpcmVmb3gg
d29uJ3QgYWxsb3cgcmV1c2luZyB0aGUgaWZyYW1lIGRvY3VtZW50LgoJCQlpZiAo
ICFpZnJhbWVEb2MgfHwgIWlmcmFtZS5jcmVhdGVFbGVtZW50ICkgewoJCQkJaWZy
YW1lRG9jID0gKCBpZnJhbWUuY29udGVudFdpbmRvdyB8fCBpZnJhbWUuY29udGVu
dERvY3VtZW50ICkuZG9jdW1lbnQ7CgkJCQlpZnJhbWVEb2Mud3JpdGUoICggalF1
ZXJ5LnN1cHBvcnQuYm94TW9kZWwgPyAiPCFkb2N0eXBlIGh0bWw+IiA6ICIiICkg
KyAiPGh0bWw+PGJvZHk+IiApOwoJCQkJaWZyYW1lRG9jLmNsb3NlKCk7CgkJCX0K
CgkJCWVsZW0gPSBpZnJhbWVEb2MuY3JlYXRlRWxlbWVudCggbm9kZU5hbWUgKTsK
CgkJCWlmcmFtZURvYy5ib2R5LmFwcGVuZENoaWxkKCBlbGVtICk7CgoJCQlkaXNw
bGF5ID0galF1ZXJ5LmNzcyggZWxlbSwgImRpc3BsYXkiICk7CgkJCWJvZHkucmVt
b3ZlQ2hpbGQoIGlmcmFtZSApOwoJCX0KCgkJLy8gU3RvcmUgdGhlIGNvcnJlY3Qg
ZGVmYXVsdCBkaXNwbGF5CgkJZWxlbWRpc3BsYXlbIG5vZGVOYW1lIF0gPSBkaXNw
bGF5OwoJfQoKCXJldHVybiBlbGVtZGlzcGxheVsgbm9kZU5hbWUgXTsKfQoKCgoK
dmFyIGdldE9mZnNldCwKCXJ0YWJsZSA9IC9edCg/OmFibGV8ZHxoKSQvaSwKCXJy
b290ID0gL14oPzpib2R5fGh0bWwpJC9pOwoKaWYgKCAiZ2V0Qm91bmRpbmdDbGll
bnRSZWN0IiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgKSB7CglnZXRPZmZz
ZXQgPSBmdW5jdGlvbiggZWxlbSwgZG9jLCBkb2NFbGVtLCBib3ggKSB7CgkJdHJ5
IHsKCQkJYm94ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKCQl9IGNh
dGNoKGUpIHt9CgoJCS8vIE1ha2Ugc3VyZSB3ZSdyZSBub3QgZGVhbGluZyB3aXRo
IGEgZGlzY29ubmVjdGVkIERPTSBub2RlCgkJaWYgKCAhYm94IHx8ICFqUXVlcnku
Y29udGFpbnMoIGRvY0VsZW0sIGVsZW0gKSApIHsKCQkJcmV0dXJuIGJveCA/IHsg
dG9wOiBib3gudG9wLCBsZWZ0OiBib3gubGVmdCB9IDogeyB0b3A6IDAsIGxlZnQ6
IDAgfTsKCQl9CgoJCXZhciBib2R5ID0gZG9jLmJvZHksCgkJCXdpbiA9IGdldFdp
bmRvdyggZG9jICksCgkJCWNsaWVudFRvcCAgPSBkb2NFbGVtLmNsaWVudFRvcCAg
fHwgYm9keS5jbGllbnRUb3AgIHx8IDAsCgkJCWNsaWVudExlZnQgPSBkb2NFbGVt
LmNsaWVudExlZnQgfHwgYm9keS5jbGllbnRMZWZ0IHx8IDAsCgkJCXNjcm9sbFRv
cCAgPSB3aW4ucGFnZVlPZmZzZXQgfHwgalF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwg
JiYgZG9jRWxlbS5zY3JvbGxUb3AgIHx8IGJvZHkuc2Nyb2xsVG9wLAoJCQlzY3Jv
bGxMZWZ0ID0gd2luLnBhZ2VYT2Zmc2V0IHx8IGpRdWVyeS5zdXBwb3J0LmJveE1v
ZGVsICYmIGRvY0VsZW0uc2Nyb2xsTGVmdCB8fCBib2R5LnNjcm9sbExlZnQsCgkJ
CXRvcCAgPSBib3gudG9wICArIHNjcm9sbFRvcCAgLSBjbGllbnRUb3AsCgkJCWxl
ZnQgPSBib3gubGVmdCArIHNjcm9sbExlZnQgLSBjbGllbnRMZWZ0OwoKCQlyZXR1
cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OwoJfTsKCn0gZWxzZSB7CglnZXRP
ZmZzZXQgPSBmdW5jdGlvbiggZWxlbSwgZG9jLCBkb2NFbGVtICkgewoJCXZhciBj
b21wdXRlZFN0eWxlLAoJCQlvZmZzZXRQYXJlbnQgPSBlbGVtLm9mZnNldFBhcmVu
dCwKCQkJcHJldk9mZnNldFBhcmVudCA9IGVsZW0sCgkJCWJvZHkgPSBkb2MuYm9k
eSwKCQkJZGVmYXVsdFZpZXcgPSBkb2MuZGVmYXVsdFZpZXcsCgkJCXByZXZDb21w
dXRlZFN0eWxlID0gZGVmYXVsdFZpZXcgPyBkZWZhdWx0Vmlldy5nZXRDb21wdXRl
ZFN0eWxlKCBlbGVtLCBudWxsICkgOiBlbGVtLmN1cnJlbnRTdHlsZSwKCQkJdG9w
ID0gZWxlbS5vZmZzZXRUb3AsCgkJCWxlZnQgPSBlbGVtLm9mZnNldExlZnQ7CgoJ
CXdoaWxlICggKGVsZW0gPSBlbGVtLnBhcmVudE5vZGUpICYmIGVsZW0gIT09IGJv
ZHkgJiYgZWxlbSAhPT0gZG9jRWxlbSApIHsKCQkJaWYgKCBqUXVlcnkuc3VwcG9y
dC5maXhlZFBvc2l0aW9uICYmIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09
PSAiZml4ZWQiICkgewoJCQkJYnJlYWs7CgkJCX0KCgkJCWNvbXB1dGVkU3R5bGUg
PSBkZWZhdWx0VmlldyA/IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxl
bSwgbnVsbCkgOiBlbGVtLmN1cnJlbnRTdHlsZTsKCQkJdG9wICAtPSBlbGVtLnNj
cm9sbFRvcDsKCQkJbGVmdCAtPSBlbGVtLnNjcm9sbExlZnQ7CgoJCQlpZiAoIGVs
ZW0gPT09IG9mZnNldFBhcmVudCApIHsKCQkJCXRvcCAgKz0gZWxlbS5vZmZzZXRU
b3A7CgkJCQlsZWZ0ICs9IGVsZW0ub2Zmc2V0TGVmdDsKCgkJCQlpZiAoIGpRdWVy
eS5zdXBwb3J0LmRvZXNOb3RBZGRCb3JkZXIgJiYgIShqUXVlcnkuc3VwcG9ydC5k
b2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZWxscyAmJiBydGFibGUudGVzdChlbGVt
Lm5vZGVOYW1lKSkgKSB7CgkJCQkJdG9wICArPSBwYXJzZUZsb2F0KCBjb21wdXRl
ZFN0eWxlLmJvcmRlclRvcFdpZHRoICApIHx8IDA7CgkJCQkJbGVmdCArPSBwYXJz
ZUZsb2F0KCBjb21wdXRlZFN0eWxlLmJvcmRlckxlZnRXaWR0aCApIHx8IDA7CgkJ
CQl9CgoJCQkJcHJldk9mZnNldFBhcmVudCA9IG9mZnNldFBhcmVudDsKCQkJCW9m
ZnNldFBhcmVudCA9IGVsZW0ub2Zmc2V0UGFyZW50OwoJCQl9CgoJCQlpZiAoIGpR
dWVyeS5zdXBwb3J0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJs
ZSAmJiBjb21wdXRlZFN0eWxlLm92ZXJmbG93ICE9PSAidmlzaWJsZSIgKSB7CgkJ
CQl0b3AgICs9IHBhcnNlRmxvYXQoIGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lk
dGggICkgfHwgMDsKCQkJCWxlZnQgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHls
ZS5ib3JkZXJMZWZ0V2lkdGggKSB8fCAwOwoJCQl9CgoJCQlwcmV2Q29tcHV0ZWRT
dHlsZSA9IGNvbXB1dGVkU3R5bGU7CgkJfQoKCQlpZiAoIHByZXZDb21wdXRlZFN0
eWxlLnBvc2l0aW9uID09PSAicmVsYXRpdmUiIHx8IHByZXZDb21wdXRlZFN0eWxl
LnBvc2l0aW9uID09PSAic3RhdGljIiApIHsKCQkJdG9wICArPSBib2R5Lm9mZnNl
dFRvcDsKCQkJbGVmdCArPSBib2R5Lm9mZnNldExlZnQ7CgkJfQoKCQlpZiAoIGpR
dWVyeS5zdXBwb3J0LmZpeGVkUG9zaXRpb24gJiYgcHJldkNvbXB1dGVkU3R5bGUu
cG9zaXRpb24gPT09ICJmaXhlZCIgKSB7CgkJCXRvcCAgKz0gTWF0aC5tYXgoIGRv
Y0VsZW0uc2Nyb2xsVG9wLCBib2R5LnNjcm9sbFRvcCApOwoJCQlsZWZ0ICs9IE1h
dGgubWF4KCBkb2NFbGVtLnNjcm9sbExlZnQsIGJvZHkuc2Nyb2xsTGVmdCApOwoJ
CX0KCgkJcmV0dXJuIHsgdG9wOiB0b3AsIGxlZnQ6IGxlZnQgfTsKCX07Cn0KCmpR
dWVyeS5mbi5vZmZzZXQgPSBmdW5jdGlvbiggb3B0aW9ucyApIHsKCWlmICggYXJn
dW1lbnRzLmxlbmd0aCApIHsKCQlyZXR1cm4gb3B0aW9ucyA9PT0gdW5kZWZpbmVk
ID8KCQkJdGhpcyA6CgkJCXRoaXMuZWFjaChmdW5jdGlvbiggaSApIHsKCQkJCWpR
dWVyeS5vZmZzZXQuc2V0T2Zmc2V0KCB0aGlzLCBvcHRpb25zLCBpICk7CgkJCX0p
OwoJfQoKCXZhciBlbGVtID0gdGhpc1swXSwKCQlkb2MgPSBlbGVtICYmIGVsZW0u
b3duZXJEb2N1bWVudDsKCglpZiAoICFkb2MgKSB7CgkJcmV0dXJuIG51bGw7Cgl9
CgoJaWYgKCBlbGVtID09PSBkb2MuYm9keSApIHsKCQlyZXR1cm4galF1ZXJ5Lm9m
ZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7Cgl9CgoJcmV0dXJuIGdldE9mZnNldCgg
ZWxlbSwgZG9jLCBkb2MuZG9jdW1lbnRFbGVtZW50ICk7Cn07CgpqUXVlcnkub2Zm
c2V0ID0gewoKCWJvZHlPZmZzZXQ6IGZ1bmN0aW9uKCBib2R5ICkgewoJCXZhciB0
b3AgPSBib2R5Lm9mZnNldFRvcCwKCQkJbGVmdCA9IGJvZHkub2Zmc2V0TGVmdDsK
CgkJaWYgKCBqUXVlcnkuc3VwcG9ydC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9k
eU9mZnNldCApIHsKCQkJdG9wICArPSBwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKGJv
ZHksICJtYXJnaW5Ub3AiKSApIHx8IDA7CgkJCWxlZnQgKz0gcGFyc2VGbG9hdCgg
alF1ZXJ5LmNzcyhib2R5LCAibWFyZ2luTGVmdCIpICkgfHwgMDsKCQl9CgoJCXJl
dHVybiB7IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH07Cgl9LAoKCXNldE9mZnNldDog
ZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGkgKSB7CgkJdmFyIHBvc2l0aW9uID0g
alF1ZXJ5LmNzcyggZWxlbSwgInBvc2l0aW9uIiApOwoKCQkvLyBzZXQgcG9zaXRp
b24gZmlyc3QsIGluLWNhc2UgdG9wL2xlZnQgYXJlIHNldCBldmVuIG9uIHN0YXRp
YyBlbGVtCgkJaWYgKCBwb3NpdGlvbiA9PT0gInN0YXRpYyIgKSB7CgkJCWVsZW0u
c3R5bGUucG9zaXRpb24gPSAicmVsYXRpdmUiOwoJCX0KCgkJdmFyIGN1ckVsZW0g
PSBqUXVlcnkoIGVsZW0gKSwKCQkJY3VyT2Zmc2V0ID0gY3VyRWxlbS5vZmZzZXQo
KSwKCQkJY3VyQ1NTVG9wID0galF1ZXJ5LmNzcyggZWxlbSwgInRvcCIgKSwKCQkJ
Y3VyQ1NTTGVmdCA9IGpRdWVyeS5jc3MoIGVsZW0sICJsZWZ0IiApLAoJCQljYWxj
dWxhdGVQb3NpdGlvbiA9ICggcG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgfHwgcG9z
aXRpb24gPT09ICJmaXhlZCIgKSAmJiBqUXVlcnkuaW5BcnJheSgiYXV0byIsIFtj
dXJDU1NUb3AsIGN1ckNTU0xlZnRdKSA+IC0xLAoJCQlwcm9wcyA9IHt9LCBjdXJQ
b3NpdGlvbiA9IHt9LCBjdXJUb3AsIGN1ckxlZnQ7CgoJCS8vIG5lZWQgdG8gYmUg
YWJsZSB0byBjYWxjdWxhdGUgcG9zaXRpb24gaWYgZWl0aGVyIHRvcCBvciBsZWZ0
IGlzIGF1dG8gYW5kIHBvc2l0aW9uIGlzIGVpdGhlciBhYnNvbHV0ZSBvciBmaXhl
ZAoJCWlmICggY2FsY3VsYXRlUG9zaXRpb24gKSB7CgkJCWN1clBvc2l0aW9uID0g
Y3VyRWxlbS5wb3NpdGlvbigpOwoJCQljdXJUb3AgPSBjdXJQb3NpdGlvbi50b3A7
CgkJCWN1ckxlZnQgPSBjdXJQb3NpdGlvbi5sZWZ0OwoJCX0gZWxzZSB7CgkJCWN1
clRvcCA9IHBhcnNlRmxvYXQoIGN1ckNTU1RvcCApIHx8IDA7CgkJCWN1ckxlZnQg
PSBwYXJzZUZsb2F0KCBjdXJDU1NMZWZ0ICkgfHwgMDsKCQl9CgoJCWlmICggalF1
ZXJ5LmlzRnVuY3Rpb24oIG9wdGlvbnMgKSApIHsKCQkJb3B0aW9ucyA9IG9wdGlv
bnMuY2FsbCggZWxlbSwgaSwgY3VyT2Zmc2V0ICk7CgkJfQoKCQlpZiAoIG9wdGlv
bnMudG9wICE9IG51bGwgKSB7CgkJCXByb3BzLnRvcCA9ICggb3B0aW9ucy50b3Ag
LSBjdXJPZmZzZXQudG9wICkgKyBjdXJUb3A7CgkJfQoJCWlmICggb3B0aW9ucy5s
ZWZ0ICE9IG51bGwgKSB7CgkJCXByb3BzLmxlZnQgPSAoIG9wdGlvbnMubGVmdCAt
IGN1ck9mZnNldC5sZWZ0ICkgKyBjdXJMZWZ0OwoJCX0KCgkJaWYgKCAidXNpbmci
IGluIG9wdGlvbnMgKSB7CgkJCW9wdGlvbnMudXNpbmcuY2FsbCggZWxlbSwgcHJv
cHMgKTsKCQl9IGVsc2UgewoJCQljdXJFbGVtLmNzcyggcHJvcHMgKTsKCQl9Cgl9
Cn07CgoKalF1ZXJ5LmZuLmV4dGVuZCh7CgoJcG9zaXRpb246IGZ1bmN0aW9uKCkg
ewoJCWlmICggIXRoaXNbMF0gKSB7CgkJCXJldHVybiBudWxsOwoJCX0KCgkJdmFy
IGVsZW0gPSB0aGlzWzBdLAoKCQkvLyBHZXQgKnJlYWwqIG9mZnNldFBhcmVudAoJ
CW9mZnNldFBhcmVudCA9IHRoaXMub2Zmc2V0UGFyZW50KCksCgoJCS8vIEdldCBj
b3JyZWN0IG9mZnNldHMKCQlvZmZzZXQgICAgICAgPSB0aGlzLm9mZnNldCgpLAoJ
CXBhcmVudE9mZnNldCA9IHJyb290LnRlc3Qob2Zmc2V0UGFyZW50WzBdLm5vZGVO
YW1lKSA/IHsgdG9wOiAwLCBsZWZ0OiAwIH0gOiBvZmZzZXRQYXJlbnQub2Zmc2V0
KCk7CgoJCS8vIFN1YnRyYWN0IGVsZW1lbnQgbWFyZ2lucwoJCS8vIG5vdGU6IHdo
ZW4gYW4gZWxlbWVudCBoYXMgbWFyZ2luOiBhdXRvIHRoZSBvZmZzZXRMZWZ0IGFu
ZCBtYXJnaW5MZWZ0CgkJLy8gYXJlIHRoZSBzYW1lIGluIFNhZmFyaSBjYXVzaW5n
IG9mZnNldC5sZWZ0IHRvIGluY29ycmVjdGx5IGJlIDAKCQlvZmZzZXQudG9wICAt
PSBwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKGVsZW0sICJtYXJnaW5Ub3AiKSApIHx8
IDA7CgkJb2Zmc2V0LmxlZnQgLT0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhlbGVt
LCAibWFyZ2luTGVmdCIpICkgfHwgMDsKCgkJLy8gQWRkIG9mZnNldFBhcmVudCBi
b3JkZXJzCgkJcGFyZW50T2Zmc2V0LnRvcCAgKz0gcGFyc2VGbG9hdCggalF1ZXJ5
LmNzcyhvZmZzZXRQYXJlbnRbMF0sICJib3JkZXJUb3BXaWR0aCIpICkgfHwgMDsK
CQlwYXJlbnRPZmZzZXQubGVmdCArPSBwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKG9m
ZnNldFBhcmVudFswXSwgImJvcmRlckxlZnRXaWR0aCIpICkgfHwgMDsKCgkJLy8g
U3VidHJhY3QgdGhlIHR3byBvZmZzZXRzCgkJcmV0dXJuIHsKCQkJdG9wOiAgb2Zm
c2V0LnRvcCAgLSBwYXJlbnRPZmZzZXQudG9wLAoJCQlsZWZ0OiBvZmZzZXQubGVm
dCAtIHBhcmVudE9mZnNldC5sZWZ0CgkJfTsKCX0sCgoJb2Zmc2V0UGFyZW50OiBm
dW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKSB7CgkJCXZh
ciBvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudCB8fCBkb2N1bWVudC5i
b2R5OwoJCQl3aGlsZSAoIG9mZnNldFBhcmVudCAmJiAoIXJyb290LnRlc3Qob2Zm
c2V0UGFyZW50Lm5vZGVOYW1lKSAmJiBqUXVlcnkuY3NzKG9mZnNldFBhcmVudCwg
InBvc2l0aW9uIikgPT09ICJzdGF0aWMiKSApIHsKCQkJCW9mZnNldFBhcmVudCA9
IG9mZnNldFBhcmVudC5vZmZzZXRQYXJlbnQ7CgkJCX0KCQkJcmV0dXJuIG9mZnNl
dFBhcmVudDsKCQl9KTsKCX0KfSk7CgoKLy8gQ3JlYXRlIHNjcm9sbExlZnQgYW5k
IHNjcm9sbFRvcCBtZXRob2RzCmpRdWVyeS5lYWNoKCB7c2Nyb2xsTGVmdDogInBh
Z2VYT2Zmc2V0Iiwgc2Nyb2xsVG9wOiAicGFnZVlPZmZzZXQifSwgZnVuY3Rpb24o
IG1ldGhvZCwgcHJvcCApIHsKCXZhciB0b3AgPSAvWS8udGVzdCggcHJvcCApOwoK
CWpRdWVyeS5mblsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdmFsICkgewoJCXJldHVy
biBqUXVlcnkuYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgbWV0aG9kLCB2
YWwgKSB7CgkJCXZhciB3aW4gPSBnZXRXaW5kb3coIGVsZW0gKTsKCgkJCWlmICgg
dmFsID09PSB1bmRlZmluZWQgKSB7CgkJCQlyZXR1cm4gd2luID8gKHByb3AgaW4g
d2luKSA/IHdpblsgcHJvcCBdIDoKCQkJCQlqUXVlcnkuc3VwcG9ydC5ib3hNb2Rl
bCAmJiB3aW4uZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyBtZXRob2QgXSB8fAoJ
CQkJCQl3aW4uZG9jdW1lbnQuYm9keVsgbWV0aG9kIF0gOgoJCQkJCWVsZW1bIG1l
dGhvZCBdOwoJCQl9CgoJCQlpZiAoIHdpbiApIHsKCQkJCXdpbi5zY3JvbGxUbygK
CQkJCQkhdG9wID8gdmFsIDogalF1ZXJ5KCB3aW4gKS5zY3JvbGxMZWZ0KCksCgkJ
CQkJIHRvcCA/IHZhbCA6IGpRdWVyeSggd2luICkuc2Nyb2xsVG9wKCkKCQkJCSk7
CgoJCQl9IGVsc2UgewoJCQkJZWxlbVsgbWV0aG9kIF0gPSB2YWw7CgkJCX0KCQl9
LCBtZXRob2QsIHZhbCwgYXJndW1lbnRzLmxlbmd0aCwgbnVsbCApOwoJfTsKfSk7
CgpmdW5jdGlvbiBnZXRXaW5kb3coIGVsZW0gKSB7CglyZXR1cm4galF1ZXJ5Lmlz
V2luZG93KCBlbGVtICkgPwoJCWVsZW0gOgoJCWVsZW0ubm9kZVR5cGUgPT09IDkg
PwoJCQllbGVtLmRlZmF1bHRWaWV3IHx8IGVsZW0ucGFyZW50V2luZG93IDoKCQkJ
ZmFsc2U7Cn0KCgoKCi8vIENyZWF0ZSB3aWR0aCwgaGVpZ2h0LCBpbm5lckhlaWdo
dCwgaW5uZXJXaWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9k
cwpqUXVlcnkuZWFjaCggeyBIZWlnaHQ6ICJoZWlnaHQiLCBXaWR0aDogIndpZHRo
IiB9LCBmdW5jdGlvbiggbmFtZSwgdHlwZSApIHsKCXZhciBjbGllbnRQcm9wID0g
ImNsaWVudCIgKyBuYW1lLAoJCXNjcm9sbFByb3AgPSAic2Nyb2xsIiArIG5hbWUs
CgkJb2Zmc2V0UHJvcCA9ICJvZmZzZXQiICsgbmFtZTsKCgkvLyBpbm5lckhlaWdo
dCBhbmQgaW5uZXJXaWR0aAoJalF1ZXJ5LmZuWyAiaW5uZXIiICsgbmFtZSBdID0g
ZnVuY3Rpb24oKSB7CgkJdmFyIGVsZW0gPSB0aGlzWzBdOwoJCXJldHVybiBlbGVt
ID8KCQkJZWxlbS5zdHlsZSA/CgkJCXBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoIGVs
ZW0sIHR5cGUsICJwYWRkaW5nIiApICkgOgoJCQl0aGlzWyB0eXBlIF0oKSA6CgkJ
CW51bGw7Cgl9OwoKCS8vIG91dGVySGVpZ2h0IGFuZCBvdXRlcldpZHRoCglqUXVl
cnkuZm5bICJvdXRlciIgKyBuYW1lIF0gPSBmdW5jdGlvbiggbWFyZ2luICkgewoJ
CXZhciBlbGVtID0gdGhpc1swXTsKCQlyZXR1cm4gZWxlbSA/CgkJCWVsZW0uc3R5
bGUgPwoJCQlwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKCBlbGVtLCB0eXBlLCBtYXJn
aW4gPyAibWFyZ2luIiA6ICJib3JkZXIiICkgKSA6CgkJCXRoaXNbIHR5cGUgXSgp
IDoKCQkJbnVsbDsKCX07CgoJalF1ZXJ5LmZuWyB0eXBlIF0gPSBmdW5jdGlvbigg
dmFsdWUgKSB7CgkJcmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMsIGZ1bmN0aW9u
KCBlbGVtLCB0eXBlLCB2YWx1ZSApIHsKCQkJdmFyIGRvYywgZG9jRWxlbVByb3As
IG9yaWcsIHJldDsKCgkJCWlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7
CgkJCQkvLyAzcmQgY29uZGl0aW9uIGFsbG93cyBOb2tpYSBzdXBwb3J0LCBhcyBp
dCBzdXBwb3J0cyB0aGUgZG9jRWxlbSBwcm9wIGJ1dCBub3QgQ1NTMUNvbXBhdAoJ
CQkJZG9jID0gZWxlbS5kb2N1bWVudDsKCQkJCWRvY0VsZW1Qcm9wID0gZG9jLmRv
Y3VtZW50RWxlbWVudFsgY2xpZW50UHJvcCBdOwoJCQkJcmV0dXJuIGpRdWVyeS5z
dXBwb3J0LmJveE1vZGVsICYmIGRvY0VsZW1Qcm9wIHx8CgkJCQkJZG9jLmJvZHkg
JiYgZG9jLmJvZHlbIGNsaWVudFByb3AgXSB8fCBkb2NFbGVtUHJvcDsKCQkJfQoK
CQkJLy8gR2V0IGRvY3VtZW50IHdpZHRoIG9yIGhlaWdodAoJCQlpZiAoIGVsZW0u
bm9kZVR5cGUgPT09IDkgKSB7CgkJCQkvLyBFaXRoZXIgc2Nyb2xsW1dpZHRoL0hl
aWdodF0gb3Igb2Zmc2V0W1dpZHRoL0hlaWdodF0sIHdoaWNoZXZlciBpcyBncmVh
dGVyCgkJCQlkb2MgPSBlbGVtLmRvY3VtZW50RWxlbWVudDsKCgkJCQkvLyB3aGVu
IGEgd2luZG93ID4gZG9jdW1lbnQsIElFNiByZXBvcnRzIGEgb2Zmc2V0W1dpZHRo
L0hlaWdodF0gPiBjbGllbnRbV2lkdGgvSGVpZ2h0XQoJCQkJLy8gc28gd2UgY2Fu
J3QgdXNlIG1heCwgYXMgaXQnbGwgY2hvb3NlIHRoZSBpbmNvcnJlY3Qgb2Zmc2V0
W1dpZHRoL0hlaWdodF0KCQkJCS8vIGluc3RlYWQgd2UgdXNlIHRoZSBjb3JyZWN0
IGNsaWVudFtXaWR0aC9IZWlnaHRdCgkJCQkvLyBzdXBwb3J0OklFNgoJCQkJaWYg
KCBkb2NbIGNsaWVudFByb3AgXSA+PSBkb2NbIHNjcm9sbFByb3AgXSApIHsKCQkJ
CQlyZXR1cm4gZG9jWyBjbGllbnRQcm9wIF07CgkJCQl9CgoJCQkJcmV0dXJuIE1h
dGgubWF4KAoJCQkJCWVsZW0uYm9keVsgc2Nyb2xsUHJvcCBdLCBkb2NbIHNjcm9s
bFByb3AgXSwKCQkJCQllbGVtLmJvZHlbIG9mZnNldFByb3AgXSwgZG9jWyBvZmZz
ZXRQcm9wIF0KCQkJCSk7CgkJCX0KCgkJCS8vIEdldCB3aWR0aCBvciBoZWlnaHQg
b24gdGhlIGVsZW1lbnQKCQkJaWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICkgewoJ
CQkJb3JpZyA9IGpRdWVyeS5jc3MoIGVsZW0sIHR5cGUgKTsKCQkJCXJldCA9IHBh
cnNlRmxvYXQoIG9yaWcgKTsKCQkJCXJldHVybiBqUXVlcnkuaXNOdW1lcmljKCBy
ZXQgKSA/IHJldCA6IG9yaWc7CgkJCX0KCgkJCS8vIFNldCB0aGUgd2lkdGggb3Ig
aGVpZ2h0IG9uIHRoZSBlbGVtZW50CgkJCWpRdWVyeSggZWxlbSApLmNzcyggdHlw
ZSwgdmFsdWUgKTsKCQl9LCB0eXBlLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCwg
bnVsbCApOwoJfTsKfSk7CgoKCgovLyBFeHBvc2UgalF1ZXJ5IHRvIHRoZSBnbG9i
YWwgb2JqZWN0CndpbmRvdy5qUXVlcnkgPSB3aW5kb3cuJCA9IGpRdWVyeTsKCi8v
IEV4cG9zZSBqUXVlcnkgYXMgYW4gQU1EIG1vZHVsZSwgYnV0IG9ubHkgZm9yIEFN
RCBsb2FkZXJzIHRoYXQKLy8gdW5kZXJzdGFuZCB0aGUgaXNzdWVzIHdpdGggbG9h
ZGluZyBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBqUXVlcnkKLy8gaW4gYSBwYWdlIHRo
YXQgYWxsIG1pZ2h0IGNhbGwgZGVmaW5lKCkuIFRoZSBsb2FkZXIgd2lsbCBpbmRp
Y2F0ZQovLyB0aGV5IGhhdmUgc3BlY2lhbCBhbGxvd2FuY2VzIGZvciBtdWx0aXBs
ZSBqUXVlcnkgdmVyc2lvbnMgYnkKLy8gc3BlY2lmeWluZyBkZWZpbmUuYW1kLmpR
dWVyeSA9IHRydWUuIFJlZ2lzdGVyIGFzIGEgbmFtZWQgbW9kdWxlLAovLyBzaW5j
ZSBqUXVlcnkgY2FuIGJlIGNvbmNhdGVuYXRlZCB3aXRoIG90aGVyIGZpbGVzIHRo
YXQgbWF5IHVzZSBkZWZpbmUsCi8vIGJ1dCBub3QgdXNlIGEgcHJvcGVyIGNvbmNh
dGVuYXRpb24gc2NyaXB0IHRoYXQgdW5kZXJzdGFuZHMgYW5vbnltb3VzCi8vIEFN
RCBtb2R1bGVzLiBBIG5hbWVkIEFNRCBpcyBzYWZlc3QgYW5kIG1vc3Qgcm9idXN0
IHdheSB0byByZWdpc3Rlci4KLy8gTG93ZXJjYXNlIGpxdWVyeSBpcyB1c2VkIGJl
Y2F1c2UgQU1EIG1vZHVsZSBuYW1lcyBhcmUgZGVyaXZlZCBmcm9tCi8vIGZpbGUg
bmFtZXMsIGFuZCBqUXVlcnkgaXMgbm9ybWFsbHkgZGVsaXZlcmVkIGluIGEgbG93
ZXJjYXNlIGZpbGUgbmFtZS4KLy8gRG8gdGhpcyBhZnRlciBjcmVhdGluZyB0aGUg
Z2xvYmFsIHNvIHRoYXQgaWYgYW4gQU1EIG1vZHVsZSB3YW50cyB0byBjYWxsCi8v
IG5vQ29uZmxpY3QgdG8gaGlkZSB0aGlzIHZlcnNpb24gb2YgalF1ZXJ5LCBpdCB3
aWxsIHdvcmsuCmlmICggdHlwZW9mIGRlZmluZSA9PT0gImZ1bmN0aW9uIiAmJiBk
ZWZpbmUuYW1kICYmIGRlZmluZS5hbWQualF1ZXJ5ICkgewoJZGVmaW5lKCAianF1
ZXJ5IiwgW10sIGZ1bmN0aW9uICgpIHsgcmV0dXJuIGpRdWVyeTsgfSApOwp9CgoK
Cn0pKCB3aW5kb3cgKTs=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=jquery.cookie.js
Content-Type: application/x-javascript; name=jquery.cookie.js
Content-Location: http://ege.edu.ru/common/js/jquery.cookie.js
Content-Transfer-Encoding: Base64
LyoqCiAqIENvb2tpZSBwbHVnaW4KICoKICogQ29weXJpZ2h0IChjKSAyMDA2IEts
YXVzIEhhcnRsIChzdGlsYnVlcm8uZGUpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIg
dGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOgogKiBodHRwOi8vd3d3Lm9wZW5zb3Vy
Y2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogKiBodHRwOi8vd3d3Lmdu
dS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwKICoKICovCgovKioKICogQ3JlYXRlIGEg
Y29va2llIHdpdGggdGhlIGdpdmVuIG5hbWUgYW5kIHZhbHVlIGFuZCBvdGhlciBv
cHRpb25hbCBwYXJhbWV0ZXJzLgogKgogKiBAZXhhbXBsZSAkLmNvb2tpZSgndGhl
X2Nvb2tpZScsICd0aGVfdmFsdWUnKTsKICogQGRlc2MgU2V0IHRoZSB2YWx1ZSBv
ZiBhIGNvb2tpZS4KICogQGV4YW1wbGUgJC5jb29raWUoJ3RoZV9jb29raWUnLCAn
dGhlX3ZhbHVlJywgeyBleHBpcmVzOiA3LCBwYXRoOiAnLycsIGRvbWFpbjogJ2px
dWVyeS5jb20nLCBzZWN1cmU6IHRydWUgfSk7CiAqIEBkZXNjIENyZWF0ZSBhIGNv
b2tpZSB3aXRoIGFsbCBhdmFpbGFibGUgb3B0aW9ucy4KICogQGV4YW1wbGUgJC5j
b29raWUoJ3RoZV9jb29raWUnLCAndGhlX3ZhbHVlJyk7CiAqIEBkZXNjIENyZWF0
ZSBhIHNlc3Npb24gY29va2llLgogKiBAZXhhbXBsZSAkLmNvb2tpZSgndGhlX2Nv
b2tpZScsIG51bGwpOwogKiBAZGVzYyBEZWxldGUgYSBjb29raWUgYnkgcGFzc2lu
ZyBudWxsIGFzIHZhbHVlLiBLZWVwIGluIG1pbmQgdGhhdCB5b3UgaGF2ZSB0byB1
c2UgdGhlIHNhbWUgcGF0aCBhbmQgZG9tYWluCiAqICAgICAgIHVzZWQgd2hlbiB0
aGUgY29va2llIHdhcyBzZXQuCiAqCiAqIEBwYXJhbSBTdHJpbmcgbmFtZSBUaGUg
bmFtZSBvZiB0aGUgY29va2llLgogKiBAcGFyYW0gU3RyaW5nIHZhbHVlIFRoZSB2
YWx1ZSBvZiB0aGUgY29va2llLgogKiBAcGFyYW0gT2JqZWN0IG9wdGlvbnMgQW4g
b2JqZWN0IGxpdGVyYWwgY29udGFpbmluZyBrZXkvdmFsdWUgcGFpcnMgdG8gcHJv
dmlkZSBvcHRpb25hbCBjb29raWUgYXR0cmlidXRlcy4KICogQG9wdGlvbiBOdW1i
ZXJ8RGF0ZSBleHBpcmVzIEVpdGhlciBhbiBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhl
IGV4cGlyYXRpb24gZGF0ZSBmcm9tIG5vdyBvbiBpbiBkYXlzIG9yIGEgRGF0ZSBv
YmplY3QuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiBhIG5lZ2F0
aXZlIHZhbHVlIGlzIHNwZWNpZmllZCAoZS5nLiBhIGRhdGUgaW4gdGhlIHBhc3Qp
LCB0aGUgY29va2llIHdpbGwgYmUgZGVsZXRlZC4KICogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIElmIHNldCB0byBudWxsIG9yIG9taXR0ZWQsIHRoZSBjb29r
aWUgd2lsbCBiZSBhIHNlc3Npb24gY29va2llIGFuZCB3aWxsIG5vdCBiZSByZXRh
aW5lZAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiB0aGUgdGhl
IGJyb3dzZXIgZXhpdHMuCiAqIEBvcHRpb24gU3RyaW5nIHBhdGggVGhlIHZhbHVl
IG9mIHRoZSBwYXRoIGF0cmlidXRlIG9mIHRoZSBjb29raWUgKGRlZmF1bHQ6IHBh
dGggb2YgcGFnZSB0aGF0IGNyZWF0ZWQgdGhlIGNvb2tpZSkuCiAqIEBvcHRpb24g
U3RyaW5nIGRvbWFpbiBUaGUgdmFsdWUgb2YgdGhlIGRvbWFpbiBhdHRyaWJ1dGUg
b2YgdGhlIGNvb2tpZSAoZGVmYXVsdDogZG9tYWluIG9mIHBhZ2UgdGhhdCBjcmVh
dGVkIHRoZSBjb29raWUpLgogKiBAb3B0aW9uIEJvb2xlYW4gc2VjdXJlIElmIHRy
dWUsIHRoZSBzZWN1cmUgYXR0cmlidXRlIG9mIHRoZSBjb29raWUgd2lsbCBiZSBz
ZXQgYW5kIHRoZSBjb29raWUgdHJhbnNtaXNzaW9uIHdpbGwKICogICAgICAgICAg
ICAgICAgICAgICAgICByZXF1aXJlIGEgc2VjdXJlIHByb3RvY29sIChsaWtlIEhU
VFBTKS4KICogQHR5cGUgdW5kZWZpbmVkCiAqCiAqIEBuYW1lICQuY29va2llCiAq
IEBjYXQgUGx1Z2lucy9Db29raWUKICogQGF1dGhvciBLbGF1cyBIYXJ0bC9rbGF1
cy5oYXJ0bEBzdGlsYnVlcm8uZGUKICovCgovKioKICogR2V0IHRoZSB2YWx1ZSBv
ZiBhIGNvb2tpZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgogKgogKiBAZXhhbXBsZSAk
LmNvb2tpZSgndGhlX2Nvb2tpZScpOwogKiBAZGVzYyBHZXQgdGhlIHZhbHVlIG9m
IGEgY29va2llLgogKgogKiBAcGFyYW0gU3RyaW5nIG5hbWUgVGhlIG5hbWUgb2Yg
dGhlIGNvb2tpZS4KICogQHJldHVybiBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZS4K
ICogQHR5cGUgU3RyaW5nCiAqCiAqIEBuYW1lICQuY29va2llCiAqIEBjYXQgUGx1
Z2lucy9Db29raWUKICogQGF1dGhvciBLbGF1cyBIYXJ0bC9rbGF1cy5oYXJ0bEBz
dGlsYnVlcm8uZGUKICovCmpRdWVyeS5jb29raWUgPSBmdW5jdGlvbihuYW1lLCB2
YWx1ZSwgb3B0aW9ucykgewogICAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAndW5kZWZp
bmVkJykgeyAvLyBuYW1lIGFuZCB2YWx1ZSBnaXZlbiwgc2V0IGNvb2tpZQogICAg
ICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIGlmICh2YWx1ZSA9
PT0gbnVsbCkgewogICAgICAgICAgICB2YWx1ZSA9ICcnOwogICAgICAgICAgICBv
cHRpb25zID0gJC5leHRlbmQoe30sIG9wdGlvbnMpOyAvLyBjbG9uZSBvYmplY3Qg
c2luY2UgaXQncyB1bmV4cGVjdGVkIGJlaGF2aW9yIGlmIHRoZSBleHBpcmVkIHBy
b3BlcnR5IHdlcmUgY2hhbmdlZAogICAgICAgICAgICBvcHRpb25zLmV4cGlyZXMg
PSAtMTsKICAgICAgICB9CiAgICAgICAgdmFyIGV4cGlyZXMgPSAnJzsKICAgICAg
ICBpZiAob3B0aW9ucy5leHBpcmVzICYmICh0eXBlb2Ygb3B0aW9ucy5leHBpcmVz
ID09ICdudW1iZXInIHx8IG9wdGlvbnMuZXhwaXJlcy50b1VUQ1N0cmluZykpIHsK
ICAgICAgICAgICAgdmFyIGRhdGU7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0
aW9ucy5leHBpcmVzID09ICdudW1iZXInKSB7CiAgICAgICAgICAgICAgICBkYXRl
ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgIGRhdGUuc2V0VGltZShkYXRl
LmdldFRpbWUoKSArIChvcHRpb25zLmV4cGlyZXMgKiAyNCAqIDYwICogNjAgKiAx
MDAwKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkYXRl
ID0gb3B0aW9ucy5leHBpcmVzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV4
cGlyZXMgPSAnOyBleHBpcmVzPScgKyBkYXRlLnRvVVRDU3RyaW5nKCk7IC8vIHVz
ZSBleHBpcmVzIGF0dHJpYnV0ZSwgbWF4LWFnZSBpcyBub3Qgc3VwcG9ydGVkIGJ5
IElFCiAgICAgICAgfQogICAgICAgIC8vIE5PVEUgTmVlZGVkIHRvIHBhcmVudGhl
c2l6ZSBvcHRpb25zLnBhdGggYW5kIG9wdGlvbnMuZG9tYWluCiAgICAgICAgLy8g
aW4gdGhlIGZvbGxvd2luZyBleHByZXNzaW9ucywgb3RoZXJ3aXNlIHRoZXkgZXZh
bHVhdGUgdG8gdW5kZWZpbmVkCiAgICAgICAgLy8gaW4gdGhlIHBhY2tlZCB2ZXJz
aW9uIGZvciBzb21lIHJlYXNvbi4uLgogICAgICAgIHZhciBwYXRoID0gb3B0aW9u
cy5wYXRoID8gJzsgcGF0aD0nICsgKG9wdGlvbnMucGF0aCkgOiAnJzsKICAgICAg
ICB2YXIgZG9tYWluID0gb3B0aW9ucy5kb21haW4gPyAnOyBkb21haW49JyArIChv
cHRpb25zLmRvbWFpbikgOiAnJzsKICAgICAgICB2YXIgc2VjdXJlID0gb3B0aW9u
cy5zZWN1cmUgPyAnOyBzZWN1cmUnIDogJyc7CiAgICAgICAgZG9jdW1lbnQuY29v
a2llID0gW25hbWUsICc9JywgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSwgZXhw
aXJlcywgcGF0aCwgZG9tYWluLCBzZWN1cmVdLmpvaW4oJycpOwogICAgfSBlbHNl
IHsgLy8gb25seSBuYW1lIGdpdmVuLCBnZXQgY29va2llCiAgICAgICAgdmFyIGNv
b2tpZVZhbHVlID0gbnVsbDsKICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICYm
IGRvY3VtZW50LmNvb2tpZSAhPSAnJykgewogICAgICAgICAgICB2YXIgY29va2ll
cyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpOwogICAgICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAg
ICAgICAgIHZhciBjb29raWUgPSBqUXVlcnkudHJpbShjb29raWVzW2ldKTsKICAg
ICAgICAgICAgICAgIC8vIERvZXMgdGhpcyBjb29raWUgc3RyaW5nIGJlZ2luIHdp
dGggdGhlIG5hbWUgd2Ugd2FudD8KICAgICAgICAgICAgICAgIGlmIChjb29raWUu
c3Vic3RyaW5nKDAsIG5hbWUubGVuZ3RoICsgMSkgPT0gKG5hbWUgKyAnPScpKSB7
CiAgICAgICAgICAgICAgICAgICAgY29va2llVmFsdWUgPSBkZWNvZGVVUklDb21w
b25lbnQoY29va2llLnN1YnN0cmluZyhuYW1lLmxlbmd0aCArIDEpKTsKICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY29va2llVmFsdWU7CiAgICB9
Cn07
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=ege_new.js
Content-Type: application/x-javascript; name=ege_new.js
Content-Location: http://ege.edu.ru/common/js/ege_new.js
Content-Transfer-Encoding: Base64
aWYod2luZG93ICE9IHdpbmRvdy5wYXJlbnQpCnsKCXdpbmRvdy5zdG9wKCk7Cn0K
CmJyb3dzZXJOYW1lID0gbmF2aWdhdG9yLmFwcE5hbWU7CmJyb3dzZXJWZXIgPSBw
YXJzZUludChuYXZpZ2F0b3IuYXBwVmVyc2lvbik7CnZhciBhZ2VudCA9IG5hdmln
YXRvci51c2VyQWdlbnQ7CnZhciB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9M
b3dlckNhc2UoKTsKdmFyIG1zaWVfdmVyID0gdWEuY2hhckF0KHVhLmluZGV4T2Yo
J21zaWUnKSs1KTsKCgppZiAodWEuaW5kZXhPZignb3BlcmEnKSAhPSAnLTEnKSB7
Cglkb2N1bWVudC53cml0ZWxuKCI8bGluayByZWw9c3R5bGVzaGVldCB0eXBlPXRl
eHQvY3NzIGhyZWY9XCIvY29tbW9uL2Nzcy9vcC5jc3NcIj4iKTsKfQoKaWYgKHVh
LmluZGV4T2YoJ21zaWUnKSAhPSAnLTEnKSB7Cglkb2N1bWVudC53cml0ZWxuKCI8
bGluayByZWw9c3R5bGVzaGVldCB0eXBlPXRleHQvY3NzIGhyZWY9XCIvY29tbW9u
L2Nzcy9pZV9hbGwuY3NzXCI+Iik7Cn0KaWYgKCh1YS5pbmRleE9mKCdtc2llJykg
IT0gJy0xJykgJiYgKG1zaWVfdmVyID09IDUpKSB7IC8vIElFIDcuMAoJZG9jdW1l
bnQud3JpdGVsbigiPGxpbmsgcmVsPXN0eWxlc2hlZXQgdHlwZT10ZXh0L2NzcyBo
cmVmPVwiL2NvbW1vbi9jc3MvaWU1XzUuY3NzXCI+Iik7Cn0KaWYgKCh1YS5pbmRl
eE9mKCdtc2llJykgIT0gJy0xJykgJiYgKG1zaWVfdmVyID09IDYpKSB7IC8vIElF
IDcuMAoJZG9jdW1lbnQud3JpdGVsbigiPGxpbmsgcmVsPXN0eWxlc2hlZXQgdHlw
ZT10ZXh0L2NzcyBocmVmPVwiL2NvbW1vbi9jc3MvaWU2LmNzc1wiPiIpOwp9Cmlm
ICgodWEuaW5kZXhPZignbXNpZScpICE9ICctMScpICYmIChtc2llX3ZlciA9PSA3
KSkgeyAvLyBJRSA3LjAKCWRvY3VtZW50LndyaXRlbG4oIjxsaW5rIHJlbD1zdHls
ZXNoZWV0IHR5cGU9dGV4dC9jc3MgaHJlZj1cIi9jb21tb24vY3NzL2llNy5jc3Nc
Ij4iKTsKfQoKCmlmICgodWEuaW5kZXhPZignbXNpZScpICE9ICctMScpICYmICht
c2llX3ZlciA9PSA4KSkgeyAgLy8gSUUgOC4wCglkb2N1bWVudC53cml0ZWxuKCI8
bGluayByZWw9c3R5bGVzaGVldCB0eXBlPXRleHQvY3NzIGhyZWY9XCIvY29tbW9u
L2Nzcy9pZTguY3NzXCI+Iik7Cn0KCmlmICgodWEuaW5kZXhPZignbXNpZScpICE9
ICctMScpICYmIChtc2llX3ZlciA9PSA5KSkgeyAgLy8gSUUgOS4wCglkb2N1bWVu
dC53cml0ZWxuKCI8bGluayByZWw9c3R5bGVzaGVldCB0eXBlPXRleHQvY3NzIGhy
ZWY9XCIvY29tbW9uL2Nzcy9pZTkuY3NzXCI+Iik7Cn0KaWYgKCgkLmJyb3dzZXIu
bXNpZSkgJiYgKCQuYnJvd3Nlci52ZXJzaW9uID09ICcxMC4wJykpIHsKCQkkKCdo
ZWFkJykuYXBwZW5kKCI8bGluayByZWw9c3R5bGVzaGVldCB0eXBlPXRleHQvY3Nz
IGhyZWY9XCIvY29tbW9uL2Nzcy9pZTEwLmNzc1wiPiIpOwoJfQoKaWYgKCh1YS5p
bmRleE9mKCdtc2llJykgIT0gJy0xJykgJiYgKG1zaWVfdmVyIDwgOSkpIHsKCWRv
Y3VtZW50LndyaXRlbG4oIjxsaW5rIHJlbD1zdHlsZXNoZWV0IHR5cGU9dGV4dC9j
c3MgaHJlZj1cIi9jb21tb24vY3NzL2llLmNzc1wiPiIpOwp9CgoKaWYgKChicm93
c2VyVmVyID4zKSAmJihicm93c2VyTmFtZSA9PSAiTmV0c2NhcGUiKSkgewoJZG9j
dW1lbnQud3JpdGVsbigiPGxpbmsgcmVsPXN0eWxlc2hlZXQgdHlwZT10ZXh0L2Nz
cyBocmVmPVwiL2NvbW1vbi9jc3Mvbm4uY3NzXCI+Iik7Cn0KCmlmICh1YS5pbmRl
eE9mKCdjaHJvbWUnKSAhPSAnLTEnKSB7Cglkb2N1bWVudC53cml0ZWxuKCI8bGlu
ayByZWw9c3R5bGVzaGVldCB0eXBlPXRleHQvY3NzIGhyZWY9XCIvY29tbW9uL2Nz
cy9jaHJvbWUuY3NzXCI+Iik7Cn0KCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9u
KCl7Cgl2YXIgZGV2aWNlQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93
ZXJDYXNlKCk7CiAgICB2YXIgYWdlbnRJRCA9IGRldmljZUFnZW50Lm1hdGNoKC8o
aXBob25lfGlwb2R8aXBhZCkvKTsKCWlmIChhZ2VudElEKSB7CgkJJCgnYm9keScp
LmFkZENsYXNzKCdpb3MnKTsgCgl9OwoKCXZhciB1YSA9IG5hdmlnYXRvci51c2Vy
QWdlbnQudG9Mb3dlckNhc2UoKTsKCXZhciBpc0FuZHJvaWQgPSB1YS5pbmRleE9m
KCdhbmRyb2lkJykgPiAtMTsKCWlmKGlzQW5kcm9pZCkgewoJICAkKCdib2R5Jyku
YWRkQ2xhc3MoJ2FuZHJvaWQnKTsKCX0JCn0pOwoKJChkb2N1bWVudCkucmVhZHko
ZnVuY3Rpb24oKXsKCQl2YXIgdGFiQ29udGFpbmVycyA9ICQoJyNhbm9uc19uZXdz
ID4gZGl2Jyk7CgkJdGFiQ29udGFpbmVycy5oaWRlKCkuZmlsdGVyKCc6Zmlyc3Qn
KS5zaG93KCk7CgkJJCgnI2Fub25zX21lbnUgYScpLmNsaWNrKGZ1bmN0aW9uICgp
IHsKCQkJdGFiQ29udGFpbmVycy5oaWRlKCk7CgkJCXRhYkNvbnRhaW5lcnMuZmls
dGVyKHRoaXMuaGFzaCkuZmFkZUluKCk7CgkJCSQoJyNhbm9uc19tZW51IGEnKS5y
ZW1vdmVDbGFzcygnc2VsZWN0ZWQnKTsKCQkJJCh0aGlzKS5hZGRDbGFzcygnc2Vs
ZWN0ZWQnKTsKCQkJcmV0dXJuIGZhbHNlOwoJCX0pLmZpbHRlcignOmZpcnN0Jyku
Y2xpY2soKTsKCgkJdmFyIHRhYkNvbnRhaW5lcnMxID0gJCgnI2Fub25zX25ld3My
ID4gZGl2Jyk7CgkJLy90YWJDb250YWluZXJzMS5oaWRlKCkuZmlsdGVyKCc6Zmly
c3QnKS5zaG93KCk7CgkJJCgnI2Fub25zX21lbnUyIGEnKS5jbGljayhmdW5jdGlv
biAoKSB7CgkJCXRhYkNvbnRhaW5lcnMxLmhpZGUoKTsKCQkJdGFiQ29udGFpbmVy
czEuZmlsdGVyKHRoaXMuaGFzaCkuZmFkZUluKCk7CgkJCSQoJyNhbm9uc19tZW51
MiBhJykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkJyk7CgkJCSQodGhpcykuYWRkQ2xh
c3MoJ3NlbGVjdGVkJyk7CgkJCXJldHVybiBmYWxzZTsKCQl9KS5maWx0ZXIoJzpm
aXJzdCcpLmNsaWNrKCk7CgkJLy8kKCcjbmV3czFfdGFiJykuc2hvdygpOwoKCQkv
KgoJCXZhciB0YWJDb250YWluZXJzMiA9ICQoJyNtYWluX3ZvdGVfYm9keSA+IGRp
dicpOwoJCXRhYkNvbnRhaW5lcnMyLmhpZGUoKS5maWx0ZXIoJzpmaXJzdCcpLnNo
b3coKTsKCQkkKCcjdm90ZV9tZW51IGEnKS5jbGljayhmdW5jdGlvbiAoKSB7CgkJ
CXRhYkNvbnRhaW5lcnMyLmhpZGUoKTsKCQkJdGFiQ29udGFpbmVyczIuZmlsdGVy
KHRoaXMuaGFzaCkuZmFkZUluKCk7CgkJCSQoJyN2b3RlX21lbnUgYScpLnJlbW92
ZUNsYXNzKCdzZWxlY3RlZCcpOwoJCQkkKHRoaXMpLmFkZENsYXNzKCdzZWxlY3Rl
ZCcpOwoJCQlyZXR1cm4gZmFsc2U7CgkJfSkuZmlsdGVyKCc6Zmlyc3QnKS5jbGlj
aygpOwoJCSovCgkJLyoKCQl2YXIgdGFiQ29udGFpbmVyczMgPSAkKCcjbWFpbl9i
bG9ja18yX2JvZHkgPiBkaXYnKTsKCQl0YWJDb250YWluZXJzMy5oaWRlKCkuZmls
dGVyKCc6Zmlyc3QnKS5zaG93KCk7CgkJJCgnI21haW5fYmxvY2tfMl9tZW51IGEn
KS5jbGljayhmdW5jdGlvbiAoKSB7CgkJCXRhYkNvbnRhaW5lcnMzLmhpZGUoKTsK
CQkJdGFiQ29udGFpbmVyczMuZmlsdGVyKHRoaXMuaGFzaCkuZmFkZUluKCk7CgkJ
CSQoJyNtYWluX2Jsb2NrXzJfbWVudSBhJykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVk
Jyk7CgkJCSQodGhpcykuYWRkQ2xhc3MoJ3NlbGVjdGVkJyk7CgkJCXJldHVybiBm
YWxzZTsKCQl9KS5maWx0ZXIoJzpmaXJzdCcpLmNsaWNrKCk7CgkJKi8KCgp9KTsK
CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewoKCSQoIi5tZW51X3RvcCAu
bWVudV9tIikuaG92ZXIoZnVuY3Rpb24oKXsKICAgICAgICAkKHRoaXMpLmZpbmQo
ImRpdi5tZW51X3ZpZXciKS5jc3MoJ3Zpc2liaWxpdHknLCAndmlzaWJsZScpOwoJ
CSQodGhpcykuYWRkQ2xhc3MoJ2hvY2wnKTsKICAgIH0sIGZ1bmN0aW9uKCl7CiAg
ICAgICAgJCh0aGlzKS5maW5kKCJkaXYubWVudV92aWV3IikuY3NzKCd2aXNpYmls
aXR5JywgJ2hpZGRlbicpOwoJCSQodGhpcykucmVtb3ZlQ2xhc3MoJ2hvY2wnKTsK
ICAgIH0pOwoKfSk7CgoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKCiAg
ICAgICAkKCcuY2xpZW50X3RvcF9lbnRlciAuYTEnKS5jbGljayhmdW5jdGlvbigp
ewogICAgICAgICAgICQoJy5jbGllbnRfdG9wX2JsJykuc2xpZGVUb2dnbGUoJ2Zh
c3QnKTsKCQkgICAgJCgnLnJlY2VwLWJsb2NrJykuc2xpZGVVcCgnc2hvdycpOwoJ
CSAgIC8vJCh0aGlzKS50b2dnbGVDbGFzcygnYTFfc2VsJyk7CiAgICAgICB9KTsK
CSAgICQoJy5yZWNlcF9hJykuY2xpY2soZnVuY3Rpb24oKXsKICAgICAgICAgICAk
KCcucmVjZXAtYmxvY2snKS5zbGlkZVRvZ2dsZSgnZmFzdCcpOwoJCSAgICQoJy5j
bGllbnRfdG9wX2JsJykuc2xpZGVVcCgnc2hvdycpOwogICAgICAgfSk7Cn0pOwoK
CgoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKIAkkKCIudGFibGUgdHIi
KS5tb3VzZW92ZXIoZnVuY3Rpb24oKSB7CiAJCSQodGhpcykuYWRkQ2xhc3MoIm92
aG92Iik7CiAJfSk7CgogCSQoIi50YWJsZSB0ciIpLm1vdXNlb3V0KGZ1bmN0aW9u
KCkgewogCQkkKHRoaXMpLnJlbW92ZUNsYXNzKCJvdmhvdiIpOwogCX0pOwoKCSQo
Ii50YWJsZSB0cjpldmVuIikuYWRkQ2xhc3MoImFsdCIpOwoJJCgiLnRhYmxlIHRy
Om9kZCIpLmFkZENsYXNzKCJvdmVyIik7CiB9KTsKCgokKGRvY3VtZW50KS5yZWFk
eShmdW5jdGlvbigpewogCSQoIi50YWJsZV9leGFtIHRyIikubW91c2VvdmVyKGZ1
bmN0aW9uKCkgewogCQkkKHRoaXMpLmFkZENsYXNzKCJvdmhvdiIpOwogCX0pOwoK
IAkkKCIudGFibGVfZXhhbSB0ciIpLm1vdXNlb3V0KGZ1bmN0aW9uKCkgewogCQkk
KHRoaXMpLnJlbW92ZUNsYXNzKCJvdmhvdiIpOwogCX0pOwoKIAkkKCIudGFibGVf
ZXhhbSB0cjpldmVuIikuYWRkQ2xhc3MoImFsdCIpOwoJJCgiLnRhYmxlX2V4YW0g
dHI6b2RkIikuYWRkQ2xhc3MoIm92ZXIiKTsKIH0pOwoKCgokKGRvY3VtZW50KS5y
ZWFkeShmdW5jdGlvbigpewogICAgICAgJCgnLmNyZWF0XzEgLmRpdjEnKS5jbGlj
ayhmdW5jdGlvbigpewogICAgICAgICAgICQoJy5jcmVhdF8yJykuc2xpZGVUb2dn
bGUoJ2Zhc3QnKTsKCSAgICAgICAkKCcuY3JlYXRfMSAuZGl2MScpLnRvZ2dsZUNs
YXNzKCdkaXYyJyk7CiAgICAgICB9KTsKICAgICAgICQoJy5jcmVhdF8zIC5jcmVh
dF9jbG9zZScpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgJCgnLmNyZWF0
XzInKS5zbGlkZVRvZ2dsZSgnZmFzdCcpOwoJICAgICAgICQoJy5jcmVhdF8xIC5k
aXYxJykudG9nZ2xlQ2xhc3MoJ2RpdjInKTsKICAgICAgIH0pOwogICAgICAgJCgn
LmNyZWF0XzMgLmJ0bjInKS5jbGljayhmdW5jdGlvbigpewogICAgICAgICAgICQo
Jy5jcmVhdF8zJykuYWRkQ2xhc3MoJ2NyZWF0XzUnKTsKCQkgICAkLmNvb2tpZSgn
Y3JlYXQnLCAnYnRuMicpOwogICAgICAgfSk7CiAgICAgICAkKCcuY3JlYXRfMyAu
YnRuMScpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgJCgnLmNyZWF0XzMn
KS5hZGRDbGFzcygnY3JlYXRfNCcpOwoJCSAgICQuY29va2llKCdjcmVhdCcsICdi
dG4xJyk7CiAgICAgICB9KTsKCgkJaWYgKCQuY29va2llKCdjcmVhdCcpID09ICdi
dG4xJykKCQl7CgkJCS8vJCgnLmNyZWF0XzMnKS5hZGRDbGFzcygnY3JlYXRfNCcp
OwoJCX0KCQlpZiAoJC5jb29raWUoJ2NyZWF0JykgPT0gJ2J0bjInKQoJCXsKCQkJ
Ly8kKCcuY3JlYXRfMycpLmFkZENsYXNzKCdjcmVhdF81Jyk7CgkJfQp9KTsKCgoK
CgoKCiAgIGpRdWVyeShmdW5jdGlvbiAoKQogICAgewogICAgICAgalF1ZXJ5KCIu
ZXhhbXBsZTYiKS5jb2xvcmJveCh7aWZyYW1lOnRydWUsIHNjcm9sbGluZzpmYWxz
ZSwgaW5uZXJXaWR0aDo3NzAsIGlubmVySGVpZ2h0OjcwMH0pOwogICAgfSkK
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=ege_second.js
Content-Type: application/x-javascript; name=ege_second.js
Content-Location: http://ege.edu.ru/common/js/ege_second.js
Content-Transfer-Encoding: Base64
Cgp2YXIgU2xpZGVyTGlzdD1uZXcgQ2xhc3MoewoJaW5pdGlhbGl6ZTogZnVuY3Rp
b24oZWwpIHsKCQl2YXIgZWw9JCQoZWwpOyB2YXIgZGl2PSQkKGVsKS5nZXRFbGVt
ZW50KCJkaXYiKTsgdmFyIGZ4PW5ldyBBcnJheSgpOwoJCXZhciBsb2M9d2luZG93
LmxvY2F0aW9uLmhyZWY7CglpZiAobG9jLmluZGV4T2YoIiMiKT4tMSkgeyBuPWxv
Yy5pbmRleE9mKCIjIik7IGxvYz1sb2Muc3Vic3RyaW5nKG4rMSk7IH0KCQlkaXYu
ZWFjaChmdW5jdGlvbihpdGVtLGluZGV4KSB7CgkJCWlmIChpdGVtIT1udWxsKSB7
CgkJCQlpdGVtLnNldEF0dHJpYnV0ZSgidGlkIixpbmRleCk7CgkJCQlpdGVtLnNl
dEF0dHJpYnV0ZSgiY2xhc3MiLCdzbGlkZXJfZGl2Jyk7CgkJCQlmeFtpbmRleF09
bmV3IEZ4LlNsaWRlKGl0ZW0se29uQ29tcGxldGU6ZnVuY3Rpb24oZWxlbSkgewoJ
CQkJCWlkPWVsZW0uZ2V0QXR0cmlidXRlKCJ0aWQiKTsgZWxbaWRdLnRvZ2dsZUNs
YXNzKCJhY3RpdiIpOwoJCQkJfX0pOwoJCQkJZnhbaW5kZXhdLmhpZGUoKTsKCQkJ
fQoJCX0pOwoJCWVsLmVhY2goZnVuY3Rpb24oaXRlbSxpbmRleCkgewoJCQlsaW5r
PWl0ZW0uZ2V0RWxlbWVudCgiYTpmaXJzdC1jaGlsZCIpOwoJCQlsaW5rLnNldEF0
dHJpYnV0ZSgidGlkIixpbmRleCk7CgkJCWxpbmsuc2V0QXR0cmlidXRlKCJjbGFz
cyIsImFfZmlyc3QiKTsKCQkJaWYgKGl0ZW0uaGFzQ2xhc3MoIm8iKSkgeyBpZD1p
dGVtLmdldEVsZW1lbnQoImEiKS5nZXRBdHRyaWJ1dGUoInRpZCIpOyBmeFtpZF0u
dG9nZ2xlKCk7IH0KCQkJaWYgKGl0ZW0uZ2V0QXR0cmlidXRlKCJpbmQiKT09bG9j
KSB7IGlkPWl0ZW0uZ2V0RWxlbWVudCgiYSIpLmdldEF0dHJpYnV0ZSgidGlkIik7
IGZ4W2lkXS50b2dnbGUoKTsgfQoJCQlsaW5rLmFkZEV2ZW50KCJjbGljayIsZnVu
Y3Rpb24oZSkgewoJCQkJZS5zdG9wKCk7IGlkPXRoaXMuZ2V0QXR0cmlidXRlKCJ0
aWQiKTsKCQkJCWZ4W2lkXS50b2dnbGUoKTsKCQkJfSk7CgkJfSk7Cgl9Cn0pOwoK
CndpbmRvdy5hZGRFdmVudCgiZG9tcmVhZHkiLGZ1bmN0aW9uKCkgewoJdmFyIHNs
PW5ldyBTbGlkZXJMaXN0KCIuc2xpZGVyID4gbGkiKTsKfSk7CgoKCgo=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=custom-form-elements.js
Content-Type: application/x-javascript; name=custom-form-elements.js
Content-Location: http://ege.edu.ru/common/js/custom-form-elements.js
Content-Transfer-Encoding: Base64
LyoKCkNVU1RPTSBGT1JNIEVMRU1FTlRTCgpDcmVhdGVkIGJ5IFJ5YW4gRmFpdAp3
d3cucnlhbmZhaXQuY29tCgpUaGUgb25seSB0aGluZ3MgeW91IG1heSBuZWVkIHRv
IGNoYW5nZSBpbiB0aGlzIGZpbGUgYXJlIHRoZSBmb2xsb3dpbmcKdmFyaWFibGVz
OiBjaGVja2JveEhlaWdodCwgcmFkaW9IZWlnaHQgYW5kIHNlbGVjdFdpZHRoIChs
aW5lcyAyNCwgMjUsIDI2KQoKVGhlIG51bWJlcnMgeW91IHNldCBmb3IgY2hlY2ti
b3hIZWlnaHQgYW5kIHJhZGlvSGVpZ2h0IHNob3VsZCBiZSBvbmUgcXVhcnRlcgpv
ZiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpbWFnZSB3YW50IHRvIHVzZSBmb3Ig
Y2hlY2tib3hlcyBhbmQgcmFkaW8KYnV0dG9ucy4gQm90aCBpbWFnZXMgc2hvdWxk
IGNvbnRhaW4gdGhlIGZvdXIgc3RhZ2VzIG9mIGJvdGggaW5wdXRzIHN0YWNrZWQK
b24gdG9wIG9mIGVhY2ggb3RoZXIgaW4gdGhpcyBvcmRlcjogdW5jaGVja2VkLCB1
bmNoZWNrZWQtY2xpY2tlZCwgY2hlY2tlZCwKY2hlY2tlZC1jbGlja2VkLgoKWW91
IG1heSBuZWVkIHRvIGFkanVzdCB5b3VyIGltYWdlcyBhIGJpdCBpZiB0aGVyZSBp
cyBhIHNsaWdodCB2ZXJ0aWNhbAptb3ZlbWVudCBkdXJpbmcgdGhlIGRpZmZlcmVu
dCBzdGFnZXMgb2YgdGhlIGJ1dHRvbiBhY3RpdmF0aW9uLgoKVGhlIHZhbHVlIG9m
IHNlbGVjdFdpZHRoIHNob3VsZCBiZSB0aGUgd2lkdGggb2YgeW91ciBzZWxlY3Qg
bGlzdCBpbWFnZS4KClZpc2l0IGh0dHA6Ly9yeWFuZmFpdC5jb20vIGZvciBtb3Jl
IGluZm9ybWF0aW9uLgoKKi8KCnZhciBjaGVja2JveEhlaWdodCA9ICIyNSI7CnZh
ciByYWRpb0hlaWdodCA9ICIyNSI7CnZhciBzZWxlY3RXaWR0aCA9ICIxOTAiOwoK
Ci8qIE5vIG5lZWQgdG8gY2hhbmdlIGFueXRoaW5nIGFmdGVyIHRoaXMgKi8KCgpk
b2N1bWVudC53cml0ZSgnPHN0eWxlIHR5cGU9InRleHQvY3NzIj5pbnB1dC5zdHls
ZWQgeyBkaXNwbGF5OiBub25lOyB9IHNlbGVjdC5zdHlsZWQgeyBwb3NpdGlvbjog
cmVsYXRpdmU7IHdpZHRoOiAnICsgc2VsZWN0V2lkdGggKyAncHg7IG9wYWNpdHk6
IDA7IGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTsgei1pbmRleDogNTsgfSAuZGlz
YWJsZWQgeyBvcGFjaXR5OiAwLjU7IGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7
IH08L3N0eWxlPicpOwoKdmFyIEN1c3RvbSA9IHsKCWluaXQ6IGZ1bmN0aW9uKCkg
ewoJCXZhciBpbnB1dHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
aW5wdXQiKSwgc3BhbiA9IEFycmF5KCksIHRleHRub2RlLCBvcHRpb24sIGFjdGl2
ZTsKCQlmb3IoYSA9IDA7IGEgPCBpbnB1dHMubGVuZ3RoOyBhKyspIHsKCQkJaWYo
KGlucHV0c1thXS50eXBlID09ICJjaGVja2JveCIgfHwgaW5wdXRzW2FdLnR5cGUg
PT0gInJhZGlvIikgJiYgaW5wdXRzW2FdLmNsYXNzTmFtZSA9PSAic3R5bGVkIikg
ewoJCQkJc3BhblthXSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
CQkJCXNwYW5bYV0uY2xhc3NOYW1lID0gaW5wdXRzW2FdLnR5cGU7CgoJCQkJaWYo
aW5wdXRzW2FdLmNoZWNrZWQgPT0gdHJ1ZSkgewoJCQkJCWlmKGlucHV0c1thXS50
eXBlID09ICJjaGVja2JveCIpIHsKCQkJCQkJcG9zaXRpb24gPSAiMCAtIiArIChj
aGVja2JveEhlaWdodCoyKSArICJweCI7CgkJCQkJCXNwYW5bYV0uc3R5bGUuYmFj
a2dyb3VuZFBvc2l0aW9uID0gcG9zaXRpb247CgkJCQkJfSBlbHNlIHsKCQkJCQkJ
cG9zaXRpb24gPSAiMCAtIiArIChyYWRpb0hlaWdodCoyKSArICJweCI7CgkJCQkJ
CXNwYW5bYV0uc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uID0gcG9zaXRpb247CgkJ
CQkJfQoJCQkJfQoJCQkJaW5wdXRzW2FdLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl
KHNwYW5bYV0sIGlucHV0c1thXSk7CgkJCQlpbnB1dHNbYV0ub25jaGFuZ2UgPSBD
dXN0b20uY2xlYXI7CgkJCQlpZighaW5wdXRzW2FdLmdldEF0dHJpYnV0ZSgiZGlz
YWJsZWQiKSkgewoJCQkJCXNwYW5bYV0ub25tb3VzZWRvd24gPSBDdXN0b20ucHVz
aGVkOwoJCQkJCXNwYW5bYV0ub25tb3VzZXVwID0gQ3VzdG9tLmNoZWNrOwoJCQkJ
fSBlbHNlIHsKCQkJCQlzcGFuW2FdLmNsYXNzTmFtZSA9IHNwYW5bYV0uY2xhc3NO
YW1lICs9ICIgZGlzYWJsZWQiOwoJCQkJfQoJCQl9CgkJfQoJCWlucHV0cyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZWxlY3QiKTsKCQlmb3IoYSA9
IDA7IGEgPCBpbnB1dHMubGVuZ3RoOyBhKyspIHsKCQkJaWYoaW5wdXRzW2FdLmNs
YXNzTmFtZSA9PSAic3R5bGVkIikgewoJCQkJb3B0aW9uID0gaW5wdXRzW2FdLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJvcHRpb24iKTsKCQkJCWFjdGl2ZSA9IG9wdGlv
blswXS5jaGlsZE5vZGVzWzBdLm5vZGVWYWx1ZTsKCQkJCXRleHRub2RlID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoYWN0aXZlKTsKCQkJCWZvcihiID0gMDsgYiA8
IG9wdGlvbi5sZW5ndGg7IGIrKykgewoJCQkJCWlmKG9wdGlvbltiXS5zZWxlY3Rl
ZCA9PSB0cnVlKSB7CgkJCQkJCXRleHRub2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUob3B0aW9uW2JdLmNoaWxkTm9kZXNbMF0ubm9kZVZhbHVlKTsKCQkJCQl9
CgkJCQl9CgkJCQlzcGFuW2FdID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Bh
biIpOwoJCQkJc3BhblthXS5jbGFzc05hbWUgPSAic2VsZWN0IjsKCQkJCXNwYW5b
YV0uaWQgPSAic2VsZWN0IiArIGlucHV0c1thXS5uYW1lOwoJCQkJc3BhblthXS5h
cHBlbmRDaGlsZCh0ZXh0bm9kZSk7CgkJCQlpbnB1dHNbYV0ucGFyZW50Tm9kZS5p
bnNlcnRCZWZvcmUoc3BhblthXSwgaW5wdXRzW2FdKTsKCQkJCWlmKCFpbnB1dHNb
YV0uZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKSB7CgkJCQkJaW5wdXRzW2FdLm9u
Y2hhbmdlID0gQ3VzdG9tLmNob29zZTsKCQkJCX0gZWxzZSB7CgkJCQkJaW5wdXRz
W2FdLnByZXZpb3VzU2libGluZy5jbGFzc05hbWUgPSBpbnB1dHNbYV0ucHJldmlv
dXNTaWJsaW5nLmNsYXNzTmFtZSArPSAiIGRpc2FibGVkIjsKCQkJCX0KCQkJfQoJ
CX0KCQlkb2N1bWVudC5vbm1vdXNldXAgPSBDdXN0b20uY2xlYXI7Cgl9LAoJcHVz
aGVkOiBmdW5jdGlvbigpIHsKCQllbGVtZW50ID0gdGhpcy5uZXh0U2libGluZzsK
CQlpZihlbGVtZW50LmNoZWNrZWQgPT0gdHJ1ZSAmJiBlbGVtZW50LnR5cGUgPT0g
ImNoZWNrYm94IikgewoJCQl0aGlzLnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbiA9
ICIwIC0iICsgY2hlY2tib3hIZWlnaHQqMyArICJweCI7CgkJfSBlbHNlIGlmKGVs
ZW1lbnQuY2hlY2tlZCA9PSB0cnVlICYmIGVsZW1lbnQudHlwZSA9PSAicmFkaW8i
KSB7CgkJCXRoaXMuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uID0gIjAgLSIgKyBy
YWRpb0hlaWdodCozICsgInB4IjsKCQl9IGVsc2UgaWYoZWxlbWVudC5jaGVja2Vk
ICE9IHRydWUgJiYgZWxlbWVudC50eXBlID09ICJjaGVja2JveCIpIHsKCQkJdGhp
cy5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb24gPSAiMCAtIiArIGNoZWNrYm94SGVp
Z2h0ICsgInB4IjsKCQl9IGVsc2UgewoJCQl0aGlzLnN0eWxlLmJhY2tncm91bmRQ
b3NpdGlvbiA9ICIwIC0iICsgcmFkaW9IZWlnaHQgKyAicHgiOwoJCX0KCX0sCglj
aGVjazogZnVuY3Rpb24oKSB7CgkJZWxlbWVudCA9IHRoaXMubmV4dFNpYmxpbmc7
CgkJaWYoZWxlbWVudC5jaGVja2VkID09IHRydWUgJiYgZWxlbWVudC50eXBlID09
ICJjaGVja2JveCIpIHsKCQkJdGhpcy5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb24g
PSAiMCAwIjsKCQkJZWxlbWVudC5jaGVja2VkID0gZmFsc2U7CgkJfSBlbHNlIHsK
CQkJaWYoZWxlbWVudC50eXBlID09ICJjaGVja2JveCIpIHsKCQkJCXRoaXMuc3R5
bGUuYmFja2dyb3VuZFBvc2l0aW9uID0gIjAgLSIgKyBjaGVja2JveEhlaWdodCoy
ICsgInB4IjsKCQkJfSBlbHNlIHsKCQkJCXRoaXMuc3R5bGUuYmFja2dyb3VuZFBv
c2l0aW9uID0gIjAgLSIgKyByYWRpb0hlaWdodCoyICsgInB4IjsKCQkJCWdyb3Vw
ID0gdGhpcy5uZXh0U2libGluZy5uYW1lOwoJCQkJaW5wdXRzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iik7CgkJCQlmb3IoYSA9IDA7IGEg
PCBpbnB1dHMubGVuZ3RoOyBhKyspIHsKCQkJCQlpZihpbnB1dHNbYV0ubmFtZSA9
PSBncm91cCAmJiBpbnB1dHNbYV0gIT0gdGhpcy5uZXh0U2libGluZykgewoJCQkJ
CQlpbnB1dHNbYV0ucHJldmlvdXNTaWJsaW5nLnN0eWxlLmJhY2tncm91bmRQb3Np
dGlvbiA9ICIwIDAiOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQllbGVtZW50LmNoZWNr
ZWQgPSB0cnVlOwoJCX0KCX0sCgljbGVhcjogZnVuY3Rpb24oKSB7CgkJaW5wdXRz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iik7CgkJZm9y
KHZhciBiID0gMDsgYiA8IGlucHV0cy5sZW5ndGg7IGIrKykgewoJCQlpZihpbnB1
dHNbYl0udHlwZSA9PSAiY2hlY2tib3giICYmIGlucHV0c1tiXS5jaGVja2VkID09
IHRydWUgJiYgaW5wdXRzW2JdLmNsYXNzTmFtZSA9PSAic3R5bGVkIikgewoJCQkJ
aW5wdXRzW2JdLnByZXZpb3VzU2libGluZy5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRp
b24gPSAiMCAtIiArIGNoZWNrYm94SGVpZ2h0KjIgKyAicHgiOwoJCQl9IGVsc2Ug
aWYoaW5wdXRzW2JdLnR5cGUgPT0gImNoZWNrYm94IiAmJiBpbnB1dHNbYl0uY2xh
c3NOYW1lID09ICJzdHlsZWQiKSB7CgkJCQlpbnB1dHNbYl0ucHJldmlvdXNTaWJs
aW5nLnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbiA9ICIwIDAiOwoJCQl9IGVsc2Ug
aWYoaW5wdXRzW2JdLnR5cGUgPT0gInJhZGlvIiAmJiBpbnB1dHNbYl0uY2hlY2tl
ZCA9PSB0cnVlICYmIGlucHV0c1tiXS5jbGFzc05hbWUgPT0gInN0eWxlZCIpIHsK
CQkJCWlucHV0c1tiXS5wcmV2aW91c1NpYmxpbmcuc3R5bGUuYmFja2dyb3VuZFBv
c2l0aW9uID0gIjAgLSIgKyByYWRpb0hlaWdodCoyICsgInB4IjsKCQkJfSBlbHNl
IGlmKGlucHV0c1tiXS50eXBlID09ICJyYWRpbyIgJiYgaW5wdXRzW2JdLmNsYXNz
TmFtZSA9PSAic3R5bGVkIikgewoJCQkJaW5wdXRzW2JdLnByZXZpb3VzU2libGlu
Zy5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb24gPSAiMCAwIjsKCQkJfQoJCX0KCX0s
CgljaG9vc2U6IGZ1bmN0aW9uKCkgewoJCW9wdGlvbiA9IHRoaXMuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoIm9wdGlvbiIpOwoJCWZvcihkID0gMDsgZCA8IG9wdGlvbi5s
ZW5ndGg7IGQrKykgewoJCQlpZihvcHRpb25bZF0uc2VsZWN0ZWQgPT0gdHJ1ZSkg
ewoJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbGVjdCIgKyB0aGlzLm5h
bWUpLmNoaWxkTm9kZXNbMF0ubm9kZVZhbHVlID0gb3B0aW9uW2RdLmNoaWxkTm9k
ZXNbMF0ubm9kZVZhbHVlOwoJCQl9CgkJfQoJfQp9CgoKCmpRdWVyeShkb2N1bWVu
dCkucmVhZHkoZnVuY3Rpb24oKSB7CgoJCQogICAgICAgIHZhciBmaWxlSW5wdXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnRmlsZTEnKTsKICAgICAgICB2YXIg
ZmlsZU5hbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAg
ICBmaWxlTmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIGZpbGVO
YW1lLnN0eWxlLmJhY2tncm91bmQgPSAndXJsKGltYWdlcy9pY29ucy5wbmcpJzsK
ICAgICAgICB2YXIgYWN0aXZlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICAgICAgdmFyIGJiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICAgICAgdmFyIGJsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICAgICAgZnVuY3Rpb24gV2luZG93T25Mb2FkKCkKICAgICAg
ICB7CiAgICAgICAgICAgIHZhciB3cmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3dyYXBwZXInKTsKICAgICAgICAgICAgZmlsZU5hbWUuc2V0QXR0cmlidXRl
KCdpZCcsJ0ZpbGVOYW1lJyk7CiAgICAgICAgICAgIGFjdGl2ZUJ1dHRvbi5zZXRB
dHRyaWJ1dGUoJ2lkJywnYWN0aXZlQnJvd3NlQnV0dG9uJyk7CiAgICAgICAgICAg
IGZpbGVJbnB1dC52YWx1ZSA9ICcnOwogICAgICAgICAgICBmaWxlSW5wdXQub25j
aGFuZ2UgPSBIYW5kbGVDaGFuZ2VzOwogICAgICAgICAgICBmaWxlSW5wdXQub25t
b3VzZW92ZXIgPSBNYWtlQWN0aXZlOwogICAgICAgICAgICBmaWxlSW5wdXQub25t
b3VzZW91dCA9IFVuTWFrZUFjdGl2ZTsKICAgICAgICAgICAgZmlsZUlucHV0LmNs
YXNzTmFtZSA9ICdjdXN0b21GaWxlJzsKICAgICAgICAgICAgYmwuY2xhc3NOYW1l
ID0gJ2Jsb2NrZXInOwogICAgICAgICAgICBiYi5jbGFzc05hbWUgPSAnZmFrZUJ1
dHRvbic7CiAgICAgICAgICAgIGFjdGl2ZUJ1dHRvbi5jbGFzc05hbWUgPSAnZmFr
ZUJ1dHRvbic7CiAgICAgICAgICAgIHdyYXAuYXBwZW5kQ2hpbGQoYmIpOwogICAg
ICAgICAgICB3cmFwLmFwcGVuZENoaWxkKGJsKTsKICAgICAgICAgICAgCiAgICAg
ICAgICAgIHdyYXAuYXBwZW5kQ2hpbGQoYWN0aXZlQnV0dG9uKTsKICAgICAgICAg
ICAgCiAgICAgICAgICAgIHdyYXAuYXBwZW5kQ2hpbGQoZmlsZU5hbWUpOwogICAg
ICAgICAgIAogICAgICAgICAgICAKICAgICAgICB9OwogICAgICAgIGZ1bmN0aW9u
IEhhbmRsZUNoYW5nZXMoKQogICAgICAgIHsKICAgICAgICAgICAgZmlsZSA9IGZp
bGVJbnB1dC52YWx1ZTsKICAgICAgICAgICAgcmVXaW4gPSAvLipcXCguKikvOwog
ICAgICAgICAgICB2YXIgZmlsZVRpdGxlID0gZmlsZS5yZXBsYWNlKHJlV2luLCAi
JDEiKTsgLy/i++To8ODl7CDt4Ofi4O3o5SD04Onr4AogICAgICAgICAgICByZVVu
aXggPSAvLipcLyguKikvOwogICAgICAgICAgICBmaWxlVGl0bGUgPSBmaWxlVGl0
bGUucmVwbGFjZShyZVVuaXgsICIkMSIpOyAvL+L75Ojw4OXsIO3g5+Lg7ejlIPTg
6evgCiAgICAgICAgICAgIGZpbGVOYW1lLmlubmVySFRNTCA9IGZpbGVUaXRsZTsK
ICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBSZWdFeEV4dCA9Ly4qXC4oLiop
LzsKICAgICAgICAgICAgdmFyIGV4dCA9IGZpbGVUaXRsZS5yZXBsYWNlKFJlZ0V4
RXh0LCAiJDEiKTsvL+gg5ePuIPDg8fjo8OXt6OUKICAgICAgICAgICAgCiAgICAg
ICAgICAgIHZhciBwb3M7CiAgICAgICAgICAgIGlmIChleHQpewogICAgICAgICAg
ICAgICAgc3dpdGNoIChleHQudG9Mb3dlckNhc2UoKSkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBjYXNlICdkb2MnOiBwb3MgPSAnMCc7IGJy
ZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2JtcCc6IHBvcyA9ICcxNic7
IGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgY2FzZSAnanBnJzogcG9zID0gJzMyJzsgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgICAgY2FzZSAnanBlZyc6IHBvcyA9ICczMic7IGJyZWFrOwogICAgICAgICAg
ICAgICAgICAgIGNhc2UgJ3BuZyc6IHBvcyA9ICc0OCc7IGJyZWFrOwogICAgICAg
ICAgICAgICAgICAgIGNhc2UgJ2dpZic6IHBvcyA9ICc2NCc7IGJyZWFrOwogICAg
ICAgICAgICAgICAgICAgIGNhc2UgJ3BzZCc6IHBvcyA9ICc4MCc7IGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgIGNhc2UgJ21wMyc6IHBvcyA9ICc5Nic7IGJyZWFr
OwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dhdic6IHBvcyA9ICc5Nic7IGJy
ZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ29nZyc6IHBvcyA9ICc5Nic7
IGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2F2aSc6IHBvcyA9ICcx
MTInOyBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICd3bXYnOiBwb3Mg
PSAnMTEyJzsgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmx2Jzog
cG9zID0gJzExMic7IGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Bk
Zic6IHBvcyA9ICcxMjgnOyBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNl
ICdleGUnOiBwb3MgPSAnMTQ0JzsgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
Y2FzZSAndHh0JzogcG9zID0gJzE2MCc7IGJyZWFrOwogICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6IHBvcyA9ICcxNzYnOyBicmVhazsKICAgICAgICAgICAgICAg
IH07CiAgICAgICAgICAgICAgICBmaWxlTmFtZS5zdHlsZS5kaXNwbGF5ID0gJ2Js
b2NrJzsKICAgICAgICAgICAgICAgIGZpbGVOYW1lLnN0eWxlLmJhY2tncm91bmQg
PSAndXJsKGltYWdlcy9pY29ucy5wbmcpIG5vLXJlcGVhdCAwIC0nK3BvcysncHgn
OwogICAgICAgICAgICB9OwogICAgICAgICAgICAKICAgICAgICB9OwogICAgICAg
IGZ1bmN0aW9uIE1ha2VBY3RpdmUoKQogICAgICAgIHsKICAgICAgICAgICBhY3Rp
dmVCdXR0b24uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgfTsKICAg
ICAgICBmdW5jdGlvbiBVbk1ha2VBY3RpdmUoKQogICAgICAgIHsKICAgICAgICAg
ICAgYWN0aXZlQnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAg
fTsKCQoKCQl3aW5kb3cub25sb2FkPWZ1bmN0aW9uKCkgewoJCQlpZiAoalF1ZXJ5
KCdkaXYnKS5oYXNDbGFzcygiYXR0YWNoX2J1dHRvbiIpKSB7ICAgCgkJCQkgV2lu
ZG93T25Mb2FkKCk7CgkJCX0KCQkJQ3VzdG9tLmluaXQoKTsKCQl9CgkJCgkKfSkK
CgoKCgo=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=colorbox.css
Content-Type: text/css; name=colorbox.css
Content-Location: http://ege.edu.ru/common/css/colorbox.css
Content-Transfer-Encoding: 8bit
/*
ColorBox Core Style:
The following CSS is consistent between example themes and should not be altered.
*/
#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9000; overflow:hidden;}
#cboxOverlay{position:fixed; width:100%; height:100%;}
#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
#cboxContent{position:relative;}
#cboxLoadedContent{overflow:auto;}
#cboxTitle{margin:0;}
#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; z-index: 10000;}
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
.cboxPhoto{float:left; margin:auto; border:0; display:block;}
.cboxIframe{width:100%; height:100%; display:block; border:0;}
/*
User Style:
Change the following styles to modify the appearance of ColorBox. They are
ordered & tabbed in a way that represents the nesting of the generated HTML.
*/
#cboxOverlay {background: none repeat scroll 0 0 #000;}
/*
{background:url(images/overlay.png) repeat 0 0;}
*/
#colorbox{}
#cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -100px 0;}
#cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -129px 0;}
#cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -100px -29px;}
#cboxBottomRight{width:21px; height:21px; /*background:url(images/controls.png) no-repeat -130px -29px;*/}
#cboxMiddleLeft{width:21px; background:url(images/controls.png) 1px top repeat-y;}
#cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;}
#cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;}
#cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;}
#cboxContent{background:#fff; }
#cboxError{padding:50px; border:1px solid #ccc;}
#cboxLoadedContent{margin-bottom:48px;}
#cboxTitle{position:absolute; bottom:12px; left:8px; text-align:left; width:98%; color:#a90a2e; font-size:16px; font-weight:bold;}
#cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
#cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
#cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
#cboxPrevious.hover{background-position:-75px -25px;}
#cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
#cboxNext.hover{background-position:-50px -25px;}
#cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
#cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
#cboxClose{position:absolute; top:-20px; right:-22px; background:url(images/close.png) no-repeat 0px 0; width:25px; height:25px; text-indent:-9999px; z-index:9999;}
/*
The following fixes a problem where IE7+ replaces a PNG's alpha transparency with a black fill
when an alpha filter (opacity change) is set on the element or ancestor element.
*/
.cboxIE #cboxTopLeft,
.cboxIE #cboxTopCenter,
.cboxIE #cboxTopRight,
.cboxIE #cboxBottomLeft,
.cboxIE #cboxBottomCenter,
.cboxIE #cboxBottomRight,
.cboxIE #cboxMiddleLeft,
.cboxIE #cboxMiddleRight {
// filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
}
/*
The following provides PNG transparency support for IE6
*/
.cboxIE6 #cboxTopLeft{background:url(images/ie6/borderTopLeft.png);}
.cboxIE6 #cboxTopCenter{background:url(images/ie6/borderTopCenter.png);}
.cboxIE6 #cboxTopRight{background:url(images/ie6/borderTopRight.png);}
.cboxIE6 #cboxBottomLeft{background:url(images/ie6/borderBottomLeft.png);}
.cboxIE6 #cboxBottomCenter{background:url(images/ie6/borderBottomCenter.png);}
.cboxIE6 #cboxBottomRight{background:url(images/ie6/borderBottomRight.png);}
.cboxIE6 #cboxMiddleLeft{background:url(images/ie6/borderMiddleLeft.png);}
.cboxIE6 #cboxMiddleRight{background:url(images/ie6/borderMiddleRight.png);}
.cboxIE6 #cboxTopLeft,
.cboxIE6 #cboxTopCenter,
.cboxIE6 #cboxTopRight,
.cboxIE6 #cboxBottomLeft,
.cboxIE6 #cboxBottomCenter,
.cboxIE6 #cboxBottomRight,
.cboxIE6 #cboxMiddleLeft,
.cboxIE6 #cboxMiddleRight {
_behavior: expression(this.src = this.src ? this.src : this.currentStyle.backgroundImage.split('"')[1], this.style.background = "none", this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + this.src + ", sizingMethod='scale')");
}
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=jquery.colorbox.js
Content-Type: application/x-javascript; name=jquery.colorbox.js
Content-Location: http://ege.edu.ru/common/js/jquery.colorbox.js
Content-Transfer-Encoding: Base64
Ly8gQ29sb3JCb3ggdjEuMy4xOS4zIC0galF1ZXJ5IGxpZ2h0Ym94IHBsdWdpbgov
LyAoYykgMjAxMSBKYWNrIE1vb3JlIC0gamFja2xtb29yZS5jb20KLy8gTGljZW5z
ZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5z
ZS5waHAKKGZ1bmN0aW9uICgkLCBkb2N1bWVudCwgd2luZG93KSB7Cgl2YXIKCS8v
IERlZmF1bHQgc2V0dGluZ3Mgb2JqZWN0LgkKCS8vIFNlZSBodHRwOi8vamFja2xt
b29yZS5jb20vY29sb3Jib3ggZm9yIGRldGFpbHMuCglkZWZhdWx0cyA9IHsKCQl0
cmFuc2l0aW9uOiAiZWxhc3RpYyIsCgkJc3BlZWQ6IDMwMCwKCQl3aWR0aDogZmFs
c2UsCgkJaW5pdGlhbFdpZHRoOiAiNjAwIiwKCQlpbm5lcldpZHRoOiBmYWxzZSwK
CQltYXhXaWR0aDogZmFsc2UsCgkJaGVpZ2h0OiBmYWxzZSwKCQlpbml0aWFsSGVp
Z2h0OiAiNDUwIiwKCQlpbm5lckhlaWdodDogZmFsc2UsCgkJbWF4SGVpZ2h0OiBm
YWxzZSwKCQlzY2FsZVBob3RvczogdHJ1ZSwKCQlzY3JvbGxpbmc6IHRydWUsCgkJ
aW5saW5lOiBmYWxzZSwKCQlodG1sOiBmYWxzZSwKCQlpZnJhbWU6IGZhbHNlLAoJ
CWZhc3RJZnJhbWU6IHRydWUsCgkJcGhvdG86IGZhbHNlLAoJCWhyZWY6IGZhbHNl
LAoJCXRpdGxlOiBmYWxzZSwKCQlyZWw6IGZhbHNlLAoJCW9wYWNpdHk6IDAuOSwK
CQlwcmVsb2FkaW5nOiB0cnVlLAoKCQljdXJyZW50OiAiaW1hZ2Uge2N1cnJlbnR9
IG9mIHt0b3RhbH0iLAoJCXByZXZpb3VzOiAicHJldmlvdXMiLAoJCW5leHQ6ICJu
ZXh0IiwKCQljbG9zZTogImNsb3NlIiwKCQl4aHJFcnJvcjogIlRoaXMgY29udGVu
dCBmYWlsZWQgdG8gbG9hZC4iLAoJCWltZ0Vycm9yOiAiVGhpcyBpbWFnZSBmYWls
ZWQgdG8gbG9hZC4iLAoKCQlvcGVuOiBmYWxzZSwKCQlyZXR1cm5Gb2N1czogdHJ1
ZSwKCQlyZXBvc2l0aW9uOiB0cnVlLAoJCWxvb3A6IHRydWUsCgkJc2xpZGVzaG93
OiBmYWxzZSwKCQlzbGlkZXNob3dBdXRvOiB0cnVlLAoJCXNsaWRlc2hvd1NwZWVk
OiAyNTAwLAoJCXNsaWRlc2hvd1N0YXJ0OiAic3RhcnQgc2xpZGVzaG93IiwKCQlz
bGlkZXNob3dTdG9wOiAic3RvcCBzbGlkZXNob3ciLAoJCW9uT3BlbjogZmFsc2Us
CgkJb25Mb2FkOiBmYWxzZSwKCQlvbkNvbXBsZXRlOiBmYWxzZSwKCQlvbkNsZWFu
dXA6IGZhbHNlLAoJCW9uQ2xvc2VkOiBmYWxzZSwKCQlvdmVybGF5Q2xvc2U6IHRy
dWUsCQkKCQllc2NLZXk6IHRydWUsCgkJYXJyb3dLZXk6IHRydWUsCgkJdG9wOiBm
YWxzZSwKCQlib3R0b206IGZhbHNlLAoJCWxlZnQ6IGZhbHNlLAoJCXJpZ2h0OiBm
YWxzZSwKCQlmaXhlZDogZmFsc2UsCgkJZGF0YTogdW5kZWZpbmVkCgl9LAoJCgkv
LyBBYnN0cmFjdGluZyB0aGUgSFRNTCBhbmQgZXZlbnQgaWRlbnRpZmllcnMgZm9y
IGVhc3kgcmVicmFuZGluZwoJY29sb3Jib3ggPSAnY29sb3Jib3gnLAoJcHJlZml4
ID0gJ2Nib3gnLAoJYm94RWxlbWVudCA9IHByZWZpeCArICdFbGVtZW50JywKCQoJ
Ly8gRXZlbnRzCQoJZXZlbnRfb3BlbiA9IHByZWZpeCArICdfb3BlbicsCglldmVu
dF9sb2FkID0gcHJlZml4ICsgJ19sb2FkJywKCWV2ZW50X2NvbXBsZXRlID0gcHJl
Zml4ICsgJ19jb21wbGV0ZScsCglldmVudF9jbGVhbnVwID0gcHJlZml4ICsgJ19j
bGVhbnVwJywKCWV2ZW50X2Nsb3NlZCA9IHByZWZpeCArICdfY2xvc2VkJywKCWV2
ZW50X3B1cmdlID0gcHJlZml4ICsgJ19wdXJnZScsCgkKCS8vIFNwZWNpYWwgSGFu
ZGxpbmcgZm9yIElFCglpc0lFID0gISQuc3VwcG9ydC5vcGFjaXR5ICYmICEkLnN1
cHBvcnQuc3R5bGUsIC8vIElFNyAmIElFOAoJaXNJRTYgPSBpc0lFICYmICF3aW5k
b3cuWE1MSHR0cFJlcXVlc3QsIC8vIElFNgoJZXZlbnRfaWU2ID0gcHJlZml4ICsg
J19JRTYnLAoKCS8vIENhY2hlZCBqUXVlcnkgT2JqZWN0IFZhcmlhYmxlcwoJJG92
ZXJsYXksCgkkYm94LAoJJHdyYXAsCgkkY29udGVudCwKCSR0b3BCb3JkZXIsCgkk
bGVmdEJvcmRlciwKCSRyaWdodEJvcmRlciwKCSRib3R0b21Cb3JkZXIsCgkkcmVs
YXRlZCwKCSR3aW5kb3csCgkkbG9hZGVkLAoJJGxvYWRpbmdCYXksCgkkbG9hZGlu
Z092ZXJsYXksCgkkdGl0bGUsCgkkY3VycmVudCwKCSRzbGlkZXNob3csCgkkbmV4
dCwKCSRwcmV2LAoJJGNsb3NlLAoJJGdyb3VwQ29udHJvbHMsCgkKCS8vIFZhcmlh
YmxlcyBmb3IgY2FjaGVkIHZhbHVlcyBvciB1c2UgYWNyb3NzIG11bHRpcGxlIGZ1
bmN0aW9ucwoJc2V0dGluZ3MsCglpbnRlcmZhY2VIZWlnaHQsCglpbnRlcmZhY2VX
aWR0aCwKCWxvYWRlZEhlaWdodCwKCWxvYWRlZFdpZHRoLAoJZWxlbWVudCwKCWlu
ZGV4LAoJcGhvdG8sCglvcGVuLAoJYWN0aXZlLAoJY2xvc2luZywKCWxvYWRpbmdU
aW1lciwKCXB1YmxpY01ldGhvZCwKCWRpdiA9ICJkaXYiLAoJaW5pdDsKCgkvLyAq
KioqKioqKioqKioqKioqCgkvLyBIRUxQRVIgRlVOQ1RJT05TCgkvLyAqKioqKioq
KioqKioqKioqCgkKCS8vIENvbnZpZW5jZSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcg
bmV3IGpRdWVyeSBvYmplY3RzCglmdW5jdGlvbiAkdGFnKHRhZywgaWQsIGNzcykg
ewoJCXZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpOwoK
CQlpZiAoaWQpIHsKCQkJZWxlbWVudC5pZCA9IHByZWZpeCArIGlkOwoJCX0KCgkJ
aWYgKGNzcykgewoJCQllbGVtZW50LnN0eWxlLmNzc1RleHQgPSBjc3M7CgkJfQoK
CQlyZXR1cm4gJChlbGVtZW50KTsKCX0KCgkvLyBEZXRlcm1pbmUgdGhlIG5leHQg
YW5kIHByZXZpb3VzIG1lbWJlcnMgaW4gYSBncm91cC4KCWZ1bmN0aW9uIGdldElu
ZGV4KGluY3JlbWVudCkgewoJCXZhciAKCQltYXggPSAkcmVsYXRlZC5sZW5ndGgs
IAoJCW5ld0luZGV4ID0gKGluZGV4ICsgaW5jcmVtZW50KSAlIG1heDsKCQkKCQly
ZXR1cm4gKG5ld0luZGV4IDwgMCkgPyBtYXggKyBuZXdJbmRleCA6IG5ld0luZGV4
OwoJfQoKCS8vIENvbnZlcnQgJyUnIGFuZCAncHgnIHZhbHVlcyB0byBpbnRlZ2Vy
cwoJZnVuY3Rpb24gc2V0U2l6ZShzaXplLCBkaW1lbnNpb24pIHsKCQlyZXR1cm4g
TWF0aC5yb3VuZCgoLyUvLnRlc3Qoc2l6ZSkgPyAoKGRpbWVuc2lvbiA9PT0gJ3gn
ID8gJHdpbmRvdy53aWR0aCgpIDogJHdpbmRvdy5oZWlnaHQoKSkgLyAxMDApIDog
MSkgKiBwYXJzZUludChzaXplLCAxMCkpOwoJfQoJCgkvLyBDaGVja3MgYW4gaHJl
ZiB0byBzZWUgaWYgaXQgaXMgYSBwaG90by4KCS8vIFRoZXJlIGlzIGEgZm9yY2Ug
cGhvdG8gb3B0aW9uIChwaG90bzogdHJ1ZSkgZm9yIGhyZWZzIHRoYXQgY2Fubm90
IGJlIG1hdGNoZWQgYnkgdGhpcyByZWdleC4KCWZ1bmN0aW9uIGlzSW1hZ2UodXJs
KSB7CgkJcmV0dXJuIHNldHRpbmdzLnBob3RvIHx8IC9cLihnaWZ8cG5nfGpwZT9n
fGJtcHxpY28pKCgjfFw/KS4qKT8kL2kudGVzdCh1cmwpOwoJfQoJCgkvLyBBc3Np
Z25zIGZ1bmN0aW9uIHJlc3VsdHMgdG8gdGhlaXIgcmVzcGVjdGl2ZSBwcm9wZXJ0
aWVzCglmdW5jdGlvbiBtYWtlU2V0dGluZ3MoKSB7CgkJdmFyIGksCgkJCWRhdGEg
PSAkLmRhdGEoZWxlbWVudCwgY29sb3Jib3gpOwoJCQoJCWlmIChkYXRhID09IG51
bGwpIHsKCQkJc2V0dGluZ3MgPSAkLmV4dGVuZCh7fSwgZGVmYXVsdHMpOwoJCQlp
ZiAoY29uc29sZSAmJiBjb25zb2xlLmxvZykgewoJCQkJY29uc29sZS5sb2coJ0Vy
cm9yOiBjYm94RWxlbWVudCBtaXNzaW5nIHNldHRpbmdzIG9iamVjdCcpCgkJCX0K
CQl9IGVsc2UgewoJCQlzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCBkYXRhKTsgICAg
CQkKCQl9CgkJCgkJZm9yIChpIGluIHNldHRpbmdzKSB7CgkJCWlmICgkLmlzRnVu
Y3Rpb24oc2V0dGluZ3NbaV0pICYmIGkuc2xpY2UoMCwgMikgIT09ICdvbicpIHsg
Ly8gY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGUgZnVuY3Rpb24gaXNuJ3Qgb25lIG9m
IHRoZSBjYWxsYmFja3MsIHRoZXkgd2lsbCBiZSBoYW5kbGVkIGF0IHRoZSBhcHBy
b3ByaWF0ZSB0aW1lLgoJCQkJc2V0dGluZ3NbaV0gPSBzZXR0aW5nc1tpXS5jYWxs
KGVsZW1lbnQpOwoJCQl9CgkJfQoJCQoJCXNldHRpbmdzLnJlbCA9IHNldHRpbmdz
LnJlbCB8fCBlbGVtZW50LnJlbCB8fCAnbm9mb2xsb3cnOwoJCXNldHRpbmdzLmhy
ZWYgPSBzZXR0aW5ncy5ocmVmIHx8ICQoZWxlbWVudCkuYXR0cignaHJlZicpOwoJ
CXNldHRpbmdzLnRpdGxlID0gc2V0dGluZ3MudGl0bGUgfHwgZWxlbWVudC50aXRs
ZTsKCQkKCQlpZiAodHlwZW9mIHNldHRpbmdzLmhyZWYgPT09ICJzdHJpbmciKSB7
CgkJCXNldHRpbmdzLmhyZWYgPSAkLnRyaW0oc2V0dGluZ3MuaHJlZik7CgkJfQoJ
fQoKCWZ1bmN0aW9uIHRyaWdnZXIoZXZlbnQsIGNhbGxiYWNrKSB7CgkJJC5ldmVu
dC50cmlnZ2VyKGV2ZW50KTsKCQlpZiAoY2FsbGJhY2spIHsKCQkJY2FsbGJhY2su
Y2FsbChlbGVtZW50KTsKCQl9Cgl9CgoJLy8gU2xpZGVzaG93IGZ1bmN0aW9uYWxp
dHkKCWZ1bmN0aW9uIHNsaWRlc2hvdygpIHsKCQl2YXIKCQl0aW1lT3V0LAoJCWNs
YXNzTmFtZSA9IHByZWZpeCArICJTbGlkZXNob3dfIiwKCQljbGljayA9ICJjbGlj
ay4iICsgcHJlZml4LAoJCXN0YXJ0LAoJCXN0b3AsCgkJY2xlYXI7CgkJCgkJaWYg
KHNldHRpbmdzLnNsaWRlc2hvdyAmJiAkcmVsYXRlZFsxXSkgewoJCQlzdGFydCA9
IGZ1bmN0aW9uICgpIHsKCQkJCSRzbGlkZXNob3cKCQkJCQkudGV4dChzZXR0aW5n
cy5zbGlkZXNob3dTdG9wKQoJCQkJCS51bmJpbmQoY2xpY2spCgkJCQkJLmJpbmQo
ZXZlbnRfY29tcGxldGUsIGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKHNldHRpbmdz
Lmxvb3AgfHwgJHJlbGF0ZWRbaW5kZXggKyAxXSkgewoJCQkJCQkJdGltZU91dCA9
IHNldFRpbWVvdXQocHVibGljTWV0aG9kLm5leHQsIHNldHRpbmdzLnNsaWRlc2hv
d1NwZWVkKTsKCQkJCQkJfQoJCQkJCX0pCgkJCQkJLmJpbmQoZXZlbnRfbG9hZCwg
ZnVuY3Rpb24gKCkgewoJCQkJCQljbGVhclRpbWVvdXQodGltZU91dCk7CgkJCQkJ
fSkKCQkJCQkub25lKGNsaWNrICsgJyAnICsgZXZlbnRfY2xlYW51cCwgc3RvcCk7
CgkJCQkkYm94LnJlbW92ZUNsYXNzKGNsYXNzTmFtZSArICJvZmYiKS5hZGRDbGFz
cyhjbGFzc05hbWUgKyAib24iKTsKCQkJCXRpbWVPdXQgPSBzZXRUaW1lb3V0KHB1
YmxpY01ldGhvZC5uZXh0LCBzZXR0aW5ncy5zbGlkZXNob3dTcGVlZCk7CgkJCX07
CgkJCQoJCQlzdG9wID0gZnVuY3Rpb24gKCkgewoJCQkJY2xlYXJUaW1lb3V0KHRp
bWVPdXQpOwoJCQkJJHNsaWRlc2hvdwoJCQkJCS50ZXh0KHNldHRpbmdzLnNsaWRl
c2hvd1N0YXJ0KQoJCQkJCS51bmJpbmQoW2V2ZW50X2NvbXBsZXRlLCBldmVudF9s
b2FkLCBldmVudF9jbGVhbnVwLCBjbGlja10uam9pbignICcpKQoJCQkJCS5vbmUo
Y2xpY2ssIGZ1bmN0aW9uICgpIHsKCQkJCQkJcHVibGljTWV0aG9kLm5leHQoKTsK
CQkJCQkJc3RhcnQoKTsKCQkJCQl9KTsKCQkJCSRib3gucmVtb3ZlQ2xhc3MoY2xh
c3NOYW1lICsgIm9uIikuYWRkQ2xhc3MoY2xhc3NOYW1lICsgIm9mZiIpOwoJCQl9
OwoJCQkKCQkJaWYgKHNldHRpbmdzLnNsaWRlc2hvd0F1dG8pIHsKCQkJCXN0YXJ0
KCk7CgkJCX0gZWxzZSB7CgkJCQlzdG9wKCk7CgkJCX0KCQl9IGVsc2UgewoJCQkk
Ym94LnJlbW92ZUNsYXNzKGNsYXNzTmFtZSArICJvZmYgIiArIGNsYXNzTmFtZSAr
ICJvbiIpOwoJCX0KCX0KCglmdW5jdGlvbiBsYXVuY2godGFyZ2V0KSB7CgkJaWYg
KCFjbG9zaW5nKSB7CgkJCQoJCQllbGVtZW50ID0gdGFyZ2V0OwoJCQkKCQkJbWFr
ZVNldHRpbmdzKCk7CgkJCQoJCQkkcmVsYXRlZCA9ICQoZWxlbWVudCk7CgkJCQoJ
CQlpbmRleCA9IDA7CgkJCQoJCQlpZiAoc2V0dGluZ3MucmVsICE9PSAnbm9mb2xs
b3cnKSB7CgkJCQkkcmVsYXRlZCA9ICQoJy4nICsgYm94RWxlbWVudCkuZmlsdGVy
KGZ1bmN0aW9uICgpIHsKCQkJCQl2YXIgZGF0YSA9ICQuZGF0YSh0aGlzLCBjb2xv
cmJveCksIAoJCQkJCQlyZWxSZWxhdGVkOwoKCQkJCQlpZiAoZGF0YSkgewoJCQkJ
CQlyZWxSZWxhdGVkID0gIGRhdGEucmVsIHx8IHRoaXMucmVsOwoJCQkJCX0KCQkJ
CQkKCQkJCQlyZXR1cm4gKHJlbFJlbGF0ZWQgPT09IHNldHRpbmdzLnJlbCk7CgkJ
CQl9KTsKCQkJCWluZGV4ID0gJHJlbGF0ZWQuaW5kZXgoZWxlbWVudCk7CgkJCQkK
CQkJCS8vIENoZWNrIGRpcmVjdCBjYWxscyB0byBDb2xvckJveC4KCQkJCWlmIChp
bmRleCA9PT0gLTEpIHsKCQkJCQkkcmVsYXRlZCA9ICRyZWxhdGVkLmFkZChlbGVt
ZW50KTsKCQkJCQlpbmRleCA9ICRyZWxhdGVkLmxlbmd0aCAtIDE7CgkJCQl9CgkJ
CX0KCQkJCgkJCWlmICghb3BlbikgewoJCQkJb3BlbiA9IGFjdGl2ZSA9IHRydWU7
IC8vIFByZXZlbnRzIHRoZSBwYWdlLWNoYW5nZSBhY3Rpb24gZnJvbSBxdWV1aW5n
IHVwIGlmIHRoZSB2aXNpdG9yIGhvbGRzIGRvd24gdGhlIGxlZnQgb3IgcmlnaHQg
a2V5cy4KCQkJCQoJCQkJJGJveC5zaG93KCk7CgkJCQkKCQkJCWlmIChzZXR0aW5n
cy5yZXR1cm5Gb2N1cykgewoJCQkJCSQoZWxlbWVudCkuYmx1cigpLm9uZShldmVu
dF9jbG9zZWQsIGZ1bmN0aW9uICgpIHsKCQkJCQkJJCh0aGlzKS5mb2N1cygpOwoJ
CQkJCX0pOwoJCQkJfQoJCQkJCgkJCQkvLyArc2V0dGluZ3Mub3BhY2l0eSBhdm9p
ZHMgYSBwcm9ibGVtIGluIElFIHdoZW4gdXNpbmcgbm9uLXplcm8tcHJlZml4ZWQt
c3RyaW5nLXZhbHVlcywgbGlrZSAnLjUnCgkJCQkkb3ZlcmxheS5jc3MoeyJvcGFj
aXR5IjogK3NldHRpbmdzLm9wYWNpdHksICJjdXJzb3IiOiBzZXR0aW5ncy5vdmVy
bGF5Q2xvc2UgPyAicG9pbnRlciIgOiAiYXV0byJ9KS5zaG93KCk7CgkJCQkKCQkJ
CS8vIE9wZW5zIGluaXRhbCBlbXB0eSBDb2xvckJveCBwcmlvciB0byBjb250ZW50
IGJlaW5nIGxvYWRlZC4KCQkJCXNldHRpbmdzLncgPSBzZXRTaXplKHNldHRpbmdz
LmluaXRpYWxXaWR0aCwgJ3gnKTsKCQkJCXNldHRpbmdzLmggPSBzZXRTaXplKHNl
dHRpbmdzLmluaXRpYWxIZWlnaHQsICd5Jyk7CgkJCQlwdWJsaWNNZXRob2QucG9z
aXRpb24oKTsKCQkJCQoJCQkJaWYgKGlzSUU2KSB7CgkJCQkJJHdpbmRvdy5iaW5k
KCdyZXNpemUuJyArIGV2ZW50X2llNiArICcgc2Nyb2xsLicgKyBldmVudF9pZTYs
IGZ1bmN0aW9uICgpIHsKCQkJCQkJJG92ZXJsYXkuY3NzKHt3aWR0aDogJHdpbmRv
dy53aWR0aCgpLCBoZWlnaHQ6ICR3aW5kb3cuaGVpZ2h0KCksIHRvcDogJHdpbmRv
dy5zY3JvbGxUb3AoKSwgbGVmdDogJHdpbmRvdy5zY3JvbGxMZWZ0KCl9KTsKCQkJ
CQl9KS50cmlnZ2VyKCdyZXNpemUuJyArIGV2ZW50X2llNik7CgkJCQl9CgkJCQkK
CQkJCXRyaWdnZXIoZXZlbnRfb3Blbiwgc2V0dGluZ3Mub25PcGVuKTsKCQkJCQoJ
CQkJJGdyb3VwQ29udHJvbHMuYWRkKCR0aXRsZSkuaGlkZSgpOwoJCQkJCgkJCQkk
Y2xvc2UuaHRtbChzZXR0aW5ncy5jbG9zZSkuc2hvdygpOwoJCQl9CgkJCQoJCQlw
dWJsaWNNZXRob2QubG9hZCh0cnVlKTsKCQl9Cgl9CgoJLy8gQ29sb3JCb3gncyBt
YXJrdXAgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlIERPTSBwcmlvciB0byBiZWlu
ZyBjYWxsZWQKCS8vIHNvIHRoYXQgdGhlIGJyb3dzZXIgd2lsbCBnbyBhaGVhZCBh
bmQgbG9hZCB0aGUgQ1NTIGJhY2tncm91bmQgaW1hZ2VzLgoJZnVuY3Rpb24gYXBw
ZW5kSFRNTCgpIHsKCQlpZiAoISRib3ggJiYgZG9jdW1lbnQuYm9keSkgewoJCQlp
bml0ID0gZmFsc2U7CgoJCQkkd2luZG93ID0gJCh3aW5kb3cpOwoJCQkkYm94ID0g
JHRhZyhkaXYpLmF0dHIoe2lkOiBjb2xvcmJveCwgJ2NsYXNzJzogaXNJRSA/IHBy
ZWZpeCArIChpc0lFNiA/ICdJRTYnIDogJ0lFJykgOiAnJ30pLmhpZGUoKTsKCQkJ
JG92ZXJsYXkgPSAkdGFnKGRpdiwgIk92ZXJsYXkiLCBpc0lFNiA/ICdwb3NpdGlv
bjphYnNvbHV0ZScgOiAnJykuaGlkZSgpOwoJCQkkd3JhcCA9ICR0YWcoZGl2LCAi
V3JhcHBlciIpOwoJCQkkY29udGVudCA9ICR0YWcoZGl2LCAiQ29udGVudCIpLmFw
cGVuZCgKCQkJCSRsb2FkZWQgPSAkdGFnKGRpdiwgIkxvYWRlZENvbnRlbnQiLCAn
d2lkdGg6MDsgaGVpZ2h0OjA7IG92ZXJmbG93OmhpZGRlbicpLAoJCQkJJGxvYWRp
bmdPdmVybGF5ID0gJHRhZyhkaXYsICJMb2FkaW5nT3ZlcmxheSIpLmFkZCgkdGFn
KGRpdiwgIkxvYWRpbmdHcmFwaGljIikpLAoJCQkJJHRpdGxlID0gJHRhZyhkaXYs
ICJUaXRsZSIpLAoJCQkJJGN1cnJlbnQgPSAkdGFnKGRpdiwgIkN1cnJlbnQiKSwK
CQkJCSRuZXh0ID0gJHRhZyhkaXYsICJOZXh0IiksCgkJCQkkcHJldiA9ICR0YWco
ZGl2LCAiUHJldmlvdXMiKSwKCQkJCSRzbGlkZXNob3cgPSAkdGFnKGRpdiwgIlNs
aWRlc2hvdyIpLmJpbmQoZXZlbnRfb3Blbiwgc2xpZGVzaG93KSwKCQkJCSRjbG9z
ZSA9ICR0YWcoZGl2LCAiQ2xvc2UiKQoJCQkpOwoJCQkKCQkJJHdyYXAuYXBwZW5k
KCAvLyBUaGUgM3gzIEdyaWQgdGhhdCBtYWtlcyB1cCBDb2xvckJveAoJCQkJJHRh
ZyhkaXYpLmFwcGVuZCgKCQkJCQkkdGFnKGRpdiwgIlRvcExlZnQiKSwKCQkJCQkk
dG9wQm9yZGVyID0gJHRhZyhkaXYsICJUb3BDZW50ZXIiKSwKCQkJCQkkdGFnKGRp
diwgIlRvcFJpZ2h0IikKCQkJCSksCgkJCQkkdGFnKGRpdiwgZmFsc2UsICdjbGVh
cjpsZWZ0JykuYXBwZW5kKAoJCQkJCSRsZWZ0Qm9yZGVyID0gJHRhZyhkaXYsICJN
aWRkbGVMZWZ0IiksCgkJCQkJJGNvbnRlbnQsCgkJCQkJJHJpZ2h0Qm9yZGVyID0g
JHRhZyhkaXYsICJNaWRkbGVSaWdodCIpCgkJCQkpLAoJCQkJJHRhZyhkaXYsIGZh
bHNlLCAnY2xlYXI6bGVmdCcpLmFwcGVuZCgKCQkJCQkkdGFnKGRpdiwgIkJvdHRv
bUxlZnQiKSwKCQkJCQkkYm90dG9tQm9yZGVyID0gJHRhZyhkaXYsICJCb3R0b21D
ZW50ZXIiKSwKCQkJCQkkdGFnKGRpdiwgIkJvdHRvbVJpZ2h0IikKCQkJCSkKCQkJ
KS5maW5kKCdkaXYgZGl2JykuY3NzKHsnZmxvYXQnOiAnbGVmdCd9KTsKCQkJCgkJ
CSRsb2FkaW5nQmF5ID0gJHRhZyhkaXYsIGZhbHNlLCAncG9zaXRpb246YWJzb2x1
dGU7IHdpZHRoOjk5OTlweDsgdmlzaWJpbGl0eTpoaWRkZW47IGRpc3BsYXk6bm9u
ZScpOwoJCQkKCQkJJGdyb3VwQ29udHJvbHMgPSAkbmV4dC5hZGQoJHByZXYpLmFk
ZCgkY3VycmVudCkuYWRkKCRzbGlkZXNob3cpOwoKCQkJJChkb2N1bWVudC5ib2R5
KS5hcHBlbmQoJG92ZXJsYXksICRib3guYXBwZW5kKCR3cmFwLCAkbG9hZGluZ0Jh
eSkpOwoJCX0KCX0KCgkvLyBBZGQgQ29sb3JCb3gncyBldmVudCBiaW5kaW5ncwoJ
ZnVuY3Rpb24gYWRkQmluZGluZ3MoKSB7CgkJaWYgKCRib3gpIHsKCQkJaWYgKCFp
bml0KSB7CgkJCQlpbml0ID0gdHJ1ZTsKCgkJCQkvLyBDYWNoZSB2YWx1ZXMgbmVl
ZGVkIGZvciBzaXplIGNhbGN1bGF0aW9ucwoJCQkJaW50ZXJmYWNlSGVpZ2h0ID0g
JHRvcEJvcmRlci5oZWlnaHQoKSArICRib3R0b21Cb3JkZXIuaGVpZ2h0KCkgKyAk
Y29udGVudC5vdXRlckhlaWdodCh0cnVlKSAtICRjb250ZW50LmhlaWdodCgpOy8v
U3VidHJhY3Rpb24gbmVlZGVkIGZvciBJRTYKCQkJCWludGVyZmFjZVdpZHRoID0g
JGxlZnRCb3JkZXIud2lkdGgoKSArICRyaWdodEJvcmRlci53aWR0aCgpICsgJGNv
bnRlbnQub3V0ZXJXaWR0aCh0cnVlKSAtICRjb250ZW50LndpZHRoKCk7CgkJCQls
b2FkZWRIZWlnaHQgPSAkbG9hZGVkLm91dGVySGVpZ2h0KHRydWUpOwoJCQkJbG9h
ZGVkV2lkdGggPSAkbG9hZGVkLm91dGVyV2lkdGgodHJ1ZSk7CgkJCQkKCQkJCS8v
IFNldHRpbmcgcGFkZGluZyB0byByZW1vdmUgdGhlIG5lZWQgdG8gZG8gc2l6ZSBj
b252ZXJzaW9ucyBkdXJpbmcgdGhlIGFuaW1hdGlvbiBzdGVwLgoJCQkJJGJveC5j
c3MoeyJwYWRkaW5nLWJvdHRvbSI6IGludGVyZmFjZUhlaWdodCwgInBhZGRpbmct
cmlnaHQiOiBpbnRlcmZhY2VXaWR0aH0pOwoKCQkJCS8vIEFub255bW91cyBmdW5j
dGlvbnMgaGVyZSBrZWVwIHRoZSBwdWJsaWMgbWV0aG9kIGZyb20gYmVpbmcgY2Fj
aGVkLCB0aGVyZWJ5IGFsbG93aW5nIHRoZW0gdG8gYmUgcmVkZWZpbmVkIG9uIHRo
ZSBmbHkuCgkJCQkkbmV4dC5jbGljayhmdW5jdGlvbiAoKSB7CgkJCQkJcHVibGlj
TWV0aG9kLm5leHQoKTsKCQkJCX0pOwoJCQkJJHByZXYuY2xpY2soZnVuY3Rpb24g
KCkgewoJCQkJCXB1YmxpY01ldGhvZC5wcmV2KCk7CgkJCQl9KTsKCQkJCSRjbG9z
ZS5jbGljayhmdW5jdGlvbiAoKSB7CgkJCQkJcHVibGljTWV0aG9kLmNsb3NlKCk7
CgkJCQl9KTsKCQkJCSRvdmVybGF5LmNsaWNrKGZ1bmN0aW9uICgpIHsKCQkJCQlp
ZiAoc2V0dGluZ3Mub3ZlcmxheUNsb3NlKSB7CgkJCQkJCXB1YmxpY01ldGhvZC5j
bG9zZSgpOwoJCQkJCX0KCQkJCX0pOwoJCQkJCgkJCQkvLyBLZXkgQmluZGluZ3MK
CQkJCSQoZG9jdW1lbnQpLmJpbmQoJ2tleWRvd24uJyArIHByZWZpeCwgZnVuY3Rp
b24gKGUpIHsKCQkJCQl2YXIga2V5ID0gZS5rZXlDb2RlOwoJCQkJCWlmIChvcGVu
ICYmIHNldHRpbmdzLmVzY0tleSAmJiBrZXkgPT09IDI3KSB7CgkJCQkJCWUucHJl
dmVudERlZmF1bHQoKTsKCQkJCQkJcHVibGljTWV0aG9kLmNsb3NlKCk7CgkJCQkJ
fQoJCQkJCWlmIChvcGVuICYmIHNldHRpbmdzLmFycm93S2V5ICYmICRyZWxhdGVk
WzFdKSB7CgkJCQkJCWlmIChrZXkgPT09IDM3KSB7CgkJCQkJCQllLnByZXZlbnRE
ZWZhdWx0KCk7CgkJCQkJCQkkcHJldi5jbGljaygpOwoJCQkJCQl9IGVsc2UgaWYg
KGtleSA9PT0gMzkpIHsKCQkJCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCQkJ
CSRuZXh0LmNsaWNrKCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9KTsKCgkJCQkkKCcu
JyArIGJveEVsZW1lbnQsIGRvY3VtZW50KS5saXZlKCdjbGljaycsIGZ1bmN0aW9u
IChlKSB7CgkJCQkJLy8gaWdub3JlIG5vbi1sZWZ0LW1vdXNlLWNsaWNrcyBhbmQg
Y2xpY2tzIG1vZGlmaWVkIHdpdGggY3RybCAvIGNvbW1hbmQsIHNoaWZ0LCBvciBh
bHQuCgkJCQkJLy8gU2VlOiBodHRwOi8vamFja2xtb29yZS5jb20vbm90ZXMvY2xp
Y2stZXZlbnRzLwoJCQkJCWlmICghKGUud2hpY2ggPiAxIHx8IGUuc2hpZnRLZXkg
fHwgZS5hbHRLZXkgfHwgZS5tZXRhS2V5KSkgewoJCQkJCQllLnByZXZlbnREZWZh
dWx0KCk7CgkJCQkJCWxhdW5jaCh0aGlzKTsKCQkJCQl9CgkJCQl9KTsKCQkJfQoJ
CQlyZXR1cm4gdHJ1ZTsKCQl9CgkJcmV0dXJuIGZhbHNlOwoJfQoKCS8vIERvbid0
IGRvIGFueXRoaW5nIGlmIENvbG9yQm94IGFscmVhZHkgZXhpc3RzLgoJaWYgKCQu
Y29sb3Jib3gpIHsKCQlyZXR1cm47Cgl9CgoJLy8gQXBwZW5kIHRoZSBIVE1MIHdo
ZW4gdGhlIERPTSBsb2FkcwoJJChhcHBlbmRIVE1MKTsKCgoJLy8gKioqKioqKioq
KioqKioqKgoJLy8gUFVCTElDIEZVTkNUSU9OUwoJLy8gVXNhZ2UgZm9ybWF0OiAk
LmZuLmNvbG9yYm94LmNsb3NlKCk7CgkvLyBVc2FnZSBmcm9tIHdpdGhpbiBhbiBp
ZnJhbWU6IHBhcmVudC4kLmZuLmNvbG9yYm94LmNsb3NlKCk7CgkvLyAqKioqKioq
KioqKioqKioqCgkKCXB1YmxpY01ldGhvZCA9ICQuZm5bY29sb3Jib3hdID0gJFtj
b2xvcmJveF0gPSBmdW5jdGlvbiAob3B0aW9ucywgY2FsbGJhY2spIHsKCQl2YXIg
JHRoaXMgPSB0aGlzOwoJCQoJCW9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwoJCQoJ
CWFwcGVuZEhUTUwoKTsKCgkJaWYgKGFkZEJpbmRpbmdzKCkpIHsKCQkJaWYgKCEk
dGhpc1swXSkgewoJCQkJaWYgKCR0aGlzLnNlbGVjdG9yKSB7IC8vIGlmIGEgc2Vs
ZWN0b3Igd2FzIGdpdmVuIGFuZCBpdCBkaWRuJ3QgbWF0Y2ggYW55IGVsZW1lbnRz
LCBnbyBhaGVhZCBhbmQgZXhpdC4KCQkJCQlyZXR1cm4gJHRoaXM7CgkJCQl9CgkJ
CQkvLyBpZiBubyBzZWxlY3RvciB3YXMgZ2l2ZW4gKGllLiAkLmNvbG9yYm94KCkp
LCBjcmVhdGUgYSB0ZW1wb3JhcnkgZWxlbWVudCB0byB3b3JrIHdpdGgKCQkJCSR0
aGlzID0gJCgnPGEvPicpOwoJCQkJb3B0aW9ucy5vcGVuID0gdHJ1ZTsgLy8gYXNz
dW1lIGFuIGltbWVkaWF0ZSBvcGVuCgkJCX0KCQkJCgkJCWlmIChjYWxsYmFjaykg
ewoJCQkJb3B0aW9ucy5vbkNvbXBsZXRlID0gY2FsbGJhY2s7CgkJCX0KCQkJCgkJ
CSR0aGlzLmVhY2goZnVuY3Rpb24gKCkgewoJCQkJJC5kYXRhKHRoaXMsIGNvbG9y
Ym94LCAkLmV4dGVuZCh7fSwgJC5kYXRhKHRoaXMsIGNvbG9yYm94KSB8fCBkZWZh
dWx0cywgb3B0aW9ucykpOwoJCQl9KS5hZGRDbGFzcyhib3hFbGVtZW50KTsKCQkJ
CgkJCWlmICgoJC5pc0Z1bmN0aW9uKG9wdGlvbnMub3BlbikgJiYgb3B0aW9ucy5v
cGVuLmNhbGwoJHRoaXMpKSB8fCBvcHRpb25zLm9wZW4pIHsKCQkJCWxhdW5jaCgk
dGhpc1swXSk7CgkJCX0KCQl9CgkJCgkJcmV0dXJuICR0aGlzOwoJfTsKCglwdWJs
aWNNZXRob2QucG9zaXRpb24gPSBmdW5jdGlvbiAoc3BlZWQsIGxvYWRlZENhbGxi
YWNrKSB7CgkJdmFyIAoJCXRvcCA9IDAsIAoJCWxlZnQgPSAwLCAKCQlvZmZzZXQg
PSAkYm94Lm9mZnNldCgpLAoJCXNjcm9sbFRvcCwgCgkJc2Nyb2xsTGVmdDsKCQkK
CQkkd2luZG93LnVuYmluZCgncmVzaXplLicgKyBwcmVmaXgpOwoKCQkvLyByZW1v
dmUgdGhlIG1vZGFsIHNvIHRoYXQgaXQgZG9lc24ndCBpbmZsdWVuY2UgdGhlIGRv
Y3VtZW50IHdpZHRoL2hlaWdodCAgICAgICAgCgkJJGJveC5jc3Moe3RvcDogLTll
NCwgbGVmdDogLTllNH0pOwoKCQlzY3JvbGxUb3AgPSAkd2luZG93LnNjcm9sbFRv
cCgpOwoJCXNjcm9sbExlZnQgPSAkd2luZG93LnNjcm9sbExlZnQoKTsKCgkJaWYg
KHNldHRpbmdzLmZpeGVkICYmICFpc0lFNikgewoJCQlvZmZzZXQudG9wIC09IHNj
cm9sbFRvcDsKCQkJb2Zmc2V0LmxlZnQgLT0gc2Nyb2xsTGVmdDsKCQkJJGJveC5j
c3Moe3Bvc2l0aW9uOiAnZml4ZWQnfSk7CgkJfSBlbHNlIHsKCQkJdG9wID0gc2Ny
b2xsVG9wOwoJCQlsZWZ0ID0gc2Nyb2xsTGVmdDsKCQkJJGJveC5jc3Moe3Bvc2l0
aW9uOiAnYWJzb2x1dGUnfSk7CgkJfQoKCQkvLyBrZWVwcyB0aGUgdG9wIGFuZCBs
ZWZ0IHBvc2l0aW9ucyB3aXRoaW4gdGhlIGJyb3dzZXIncyB2aWV3cG9ydC4KCQlp
ZiAoc2V0dGluZ3MucmlnaHQgIT09IGZhbHNlKSB7CgkJCWxlZnQgKz0gTWF0aC5t
YXgoJHdpbmRvdy53aWR0aCgpIC0gc2V0dGluZ3MudyAtIGxvYWRlZFdpZHRoIC0g
aW50ZXJmYWNlV2lkdGggLSBzZXRTaXplKHNldHRpbmdzLnJpZ2h0LCAneCcpLCAw
KTsKCQl9IGVsc2UgaWYgKHNldHRpbmdzLmxlZnQgIT09IGZhbHNlKSB7CgkJCWxl
ZnQgKz0gc2V0U2l6ZShzZXR0aW5ncy5sZWZ0LCAneCcpOwoJCX0gZWxzZSB7CgkJ
CWxlZnQgKz0gTWF0aC5yb3VuZChNYXRoLm1heCgkd2luZG93LndpZHRoKCkgLSBz
ZXR0aW5ncy53IC0gbG9hZGVkV2lkdGggLSBpbnRlcmZhY2VXaWR0aCwgMCkgLyAy
KTsKCQl9CgkJCgkJaWYgKHNldHRpbmdzLmJvdHRvbSAhPT0gZmFsc2UpIHsKCQkJ
dG9wICs9IE1hdGgubWF4KCR3aW5kb3cuaGVpZ2h0KCkgLSBzZXR0aW5ncy5oIC0g
bG9hZGVkSGVpZ2h0IC0gaW50ZXJmYWNlSGVpZ2h0IC0gc2V0U2l6ZShzZXR0aW5n
cy5ib3R0b20sICd5JyksIDApOwoJCX0gZWxzZSBpZiAoc2V0dGluZ3MudG9wICE9
PSBmYWxzZSkgewoJCQl0b3AgKz0gc2V0U2l6ZShzZXR0aW5ncy50b3AsICd5Jyk7
CgkJfSBlbHNlIHsKCQkJdG9wICs9IE1hdGgucm91bmQoTWF0aC5tYXgoJHdpbmRv
dy5oZWlnaHQoKSAtIHNldHRpbmdzLmggLSBsb2FkZWRIZWlnaHQgLSBpbnRlcmZh
Y2VIZWlnaHQsIDApIC8gMik7CgkJfQoKCQkkYm94LmNzcyh7dG9wOiBvZmZzZXQu
dG9wLCBsZWZ0OiBvZmZzZXQubGVmdH0pOwoKCQkvLyBzZXR0aW5nIHRoZSBzcGVl
ZCB0byAwIHRvIHJlZHVjZSB0aGUgZGVsYXkgYmV0d2VlbiBzYW1lLXNpemVkIGNv
bnRlbnQuCgkJc3BlZWQgPSAoJGJveC53aWR0aCgpID09PSBzZXR0aW5ncy53ICsg
bG9hZGVkV2lkdGggJiYgJGJveC5oZWlnaHQoKSA9PT0gc2V0dGluZ3MuaCArIGxv
YWRlZEhlaWdodCkgPyAwIDogc3BlZWQgfHwgMDsKCQkKCQkvLyB0aGlzIGdpdmVz
IHRoZSB3cmFwcGVyIHBsZW50eSBvZiBicmVhdGhpbmcgcm9vbSBzbyBpdCdzIGZs
b2F0ZWQgY29udGVudHMgY2FuIG1vdmUgYXJvdW5kIHNtb290aGx5LAoJCS8vIGJ1
dCBpdCBoYXMgdG8gYmUgc2hyYW5rIGRvd24gYXJvdW5kIHRoZSBzaXplIG9mIGRp
diNjb2xvcmJveCB3aGVuIGl0J3MgZG9uZS4gIElmIG5vdCwKCQkvLyBpdCBjYW4g
aW52b2tlIGFuIG9ic2N1cmUgSUUgYnVnIHdoZW4gdXNpbmcgaWZyYW1lcy4KCQkk
d3JhcFswXS5zdHlsZS53aWR0aCA9ICR3cmFwWzBdLnN0eWxlLmhlaWdodCA9ICI5
OTk5cHgiOwoJCQoJCWZ1bmN0aW9uIG1vZGFsRGltZW5zaW9ucyh0aGF0KSB7CgkJ
CSR0b3BCb3JkZXJbMF0uc3R5bGUud2lkdGggPSAkYm90dG9tQm9yZGVyWzBdLnN0
eWxlLndpZHRoID0gJGNvbnRlbnRbMF0uc3R5bGUud2lkdGggPSB0aGF0LnN0eWxl
LndpZHRoOwoJCQkkY29udGVudFswXS5zdHlsZS5oZWlnaHQgPSAkbGVmdEJvcmRl
clswXS5zdHlsZS5oZWlnaHQgPSAkcmlnaHRCb3JkZXJbMF0uc3R5bGUuaGVpZ2h0
ID0gdGhhdC5zdHlsZS5oZWlnaHQ7CgkJfQoJCQoJCSRib3guZGVxdWV1ZSgpLmFu
aW1hdGUoe3dpZHRoOiBzZXR0aW5ncy53ICsgbG9hZGVkV2lkdGgsIGhlaWdodDog
c2V0dGluZ3MuaCArIGxvYWRlZEhlaWdodCwgdG9wOiB0b3AsIGxlZnQ6IGxlZnR9
LCB7CgkJCWR1cmF0aW9uOiBzcGVlZCwKCQkJY29tcGxldGU6IGZ1bmN0aW9uICgp
IHsKCQkJCW1vZGFsRGltZW5zaW9ucyh0aGlzKTsKCQkJCQoJCQkJYWN0aXZlID0g
ZmFsc2U7CgkJCQkKCQkJCS8vIHNocmluayB0aGUgd3JhcHBlciBkb3duIHRvIGV4
YWN0bHkgdGhlIHNpemUgb2YgY29sb3Jib3ggdG8gYXZvaWQgYSBidWcgaW4gSUUn
cyBpZnJhbWUgaW1wbGVtZW50YXRpb24uCgkJCQkkd3JhcFswXS5zdHlsZS53aWR0
aCA9IChzZXR0aW5ncy53ICsgbG9hZGVkV2lkdGggKyBpbnRlcmZhY2VXaWR0aCkg
KyAicHgiOwoJCQkJJHdyYXBbMF0uc3R5bGUuaGVpZ2h0ID0gKHNldHRpbmdzLmgg
KyBsb2FkZWRIZWlnaHQgKyBpbnRlcmZhY2VIZWlnaHQpICsgInB4IjsKCQkJCQoJ
CQkJaWYgKHNldHRpbmdzLnJlcG9zaXRpb24pIHsKCQkJCQlzZXRUaW1lb3V0KGZ1
bmN0aW9uICgpIHsgIC8vIHNtYWxsIGRlbGF5IGJlZm9yZSBiaW5kaW5nIG9ucmVz
aXplIGR1ZSB0byBhbiBJRTggYnVnLgoJCQkJCQkkd2luZG93LmJpbmQoJ3Jlc2l6
ZS4nICsgcHJlZml4LCBwdWJsaWNNZXRob2QucG9zaXRpb24pOwoJCQkJCX0sIDEp
OwoJCQkJfQoKCQkJCWlmIChsb2FkZWRDYWxsYmFjaykgewoJCQkJCWxvYWRlZENh
bGxiYWNrKCk7CgkJCQl9CgkJCX0sCgkJCXN0ZXA6IGZ1bmN0aW9uICgpIHsKCQkJ
CW1vZGFsRGltZW5zaW9ucyh0aGlzKTsKCQkJfQoJCX0pOwoJfTsKCglwdWJsaWNN
ZXRob2QucmVzaXplID0gZnVuY3Rpb24gKG9wdGlvbnMpIHsKCQlpZiAob3Blbikg
ewoJCQlvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCQkJCgkJCWlmIChvcHRpb25z
LndpZHRoKSB7CgkJCQlzZXR0aW5ncy53ID0gc2V0U2l6ZShvcHRpb25zLndpZHRo
LCAneCcpIC0gbG9hZGVkV2lkdGggLSBpbnRlcmZhY2VXaWR0aDsKCQkJfQoJCQlp
ZiAob3B0aW9ucy5pbm5lcldpZHRoKSB7CgkJCQlzZXR0aW5ncy53ID0gc2V0U2l6
ZShvcHRpb25zLmlubmVyV2lkdGgsICd4Jyk7CgkJCX0KCQkJJGxvYWRlZC5jc3Mo
e3dpZHRoOiBzZXR0aW5ncy53fSk7CgkJCQoJCQlpZiAob3B0aW9ucy5oZWlnaHQp
IHsKCQkJCXNldHRpbmdzLmggPSBzZXRTaXplKG9wdGlvbnMuaGVpZ2h0LCAneScp
IC0gbG9hZGVkSGVpZ2h0IC0gaW50ZXJmYWNlSGVpZ2h0OwoJCQl9CgkJCWlmIChv
cHRpb25zLmlubmVySGVpZ2h0KSB7CgkJCQlzZXR0aW5ncy5oID0gc2V0U2l6ZShv
cHRpb25zLmlubmVySGVpZ2h0LCAneScpOwoJCQl9CgkJCWlmICghb3B0aW9ucy5p
bm5lckhlaWdodCAmJiAhb3B0aW9ucy5oZWlnaHQpIHsKCQkJCSRsb2FkZWQuY3Nz
KHtoZWlnaHQ6ICJhdXRvIn0pOwoJCQkJc2V0dGluZ3MuaCA9ICRsb2FkZWQuaGVp
Z2h0KCk7CgkJCX0KCQkJJGxvYWRlZC5jc3Moe2hlaWdodDogc2V0dGluZ3MuaH0p
OwoJCQkKCQkJcHVibGljTWV0aG9kLnBvc2l0aW9uKHNldHRpbmdzLnRyYW5zaXRp
b24gPT09ICJub25lIiA/IDAgOiBzZXR0aW5ncy5zcGVlZCk7CgkJfQoJfTsKCglw
dWJsaWNNZXRob2QucHJlcCA9IGZ1bmN0aW9uIChvYmplY3QpIHsKCQlpZiAoIW9w
ZW4pIHsKCQkJcmV0dXJuOwoJCX0KCQkKCQl2YXIgY2FsbGJhY2ssIHNwZWVkID0g
c2V0dGluZ3MudHJhbnNpdGlvbiA9PT0gIm5vbmUiID8gMCA6IHNldHRpbmdzLnNw
ZWVkOwoJCQoJCSRsb2FkZWQucmVtb3ZlKCk7CgkJJGxvYWRlZCA9ICR0YWcoZGl2
LCAnTG9hZGVkQ29udGVudCcpLmFwcGVuZChvYmplY3QpOwoJCQoJCWZ1bmN0aW9u
IGdldFdpZHRoKCkgewoJCQlzZXR0aW5ncy53ID0gc2V0dGluZ3MudyB8fCAkbG9h
ZGVkLndpZHRoKCk7CgkJCXNldHRpbmdzLncgPSBzZXR0aW5ncy5tdyAmJiBzZXR0
aW5ncy5tdyA8IHNldHRpbmdzLncgPyBzZXR0aW5ncy5tdyA6IHNldHRpbmdzLnc7
CgkJCXJldHVybiBzZXR0aW5ncy53OwoJCX0KCQlmdW5jdGlvbiBnZXRIZWlnaHQo
KSB7CgkJCXNldHRpbmdzLmggPSBzZXR0aW5ncy5oIHx8ICRsb2FkZWQuaGVpZ2h0
KCk7CgkJCXNldHRpbmdzLmggPSBzZXR0aW5ncy5taCAmJiBzZXR0aW5ncy5taCA8
IHNldHRpbmdzLmggPyBzZXR0aW5ncy5taCA6IHNldHRpbmdzLmg7CgkJCXJldHVy
biBzZXR0aW5ncy5oOwoJCX0KCQkKCQkkbG9hZGVkLmhpZGUoKQoJCS5hcHBlbmRU
bygkbG9hZGluZ0JheS5zaG93KCkpLy8gY29udGVudCBoYXMgdG8gYmUgYXBwZW5k
ZWQgdG8gdGhlIERPTSBmb3IgYWNjdXJhdGUgc2l6ZSBjYWxjdWxhdGlvbnMuCgkJ
LmNzcyh7d2lkdGg6IGdldFdpZHRoKCksIG92ZXJmbG93OiBzZXR0aW5ncy5zY3Jv
bGxpbmcgPyAnYXV0bycgOiAnaGlkZGVuJ30pCgkJLmNzcyh7aGVpZ2h0OiBnZXRI
ZWlnaHQoKX0pLy8gc2V0cyB0aGUgaGVpZ2h0IGluZGVwZW5kZW50bHkgZnJvbSB0
aGUgd2lkdGggaW4gY2FzZSB0aGUgbmV3IHdpZHRoIGluZmx1ZW5jZXMgdGhlIHZh
bHVlIG9mIGhlaWdodC4KCQkucHJlcGVuZFRvKCRjb250ZW50KTsKCQkKCQkkbG9h
ZGluZ0JheS5oaWRlKCk7CgkJCgkJLy8gZmxvYXRpbmcgdGhlIElNRyByZW1vdmVz
IHRoZSBib3R0b20gbGluZS1oZWlnaHQgYW5kIGZpeGVkIGEgcHJvYmxlbSB3aGVy
ZSBJRSBtaXNjYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgcGFyZW50IGVsZW1l
bnQgYXMgMTAwJSBvZiB0aGUgZG9jdW1lbnQgd2lkdGguCgkJLy8kKHBob3RvKS5j
c3MoeydmbG9hdCc6ICdub25lJywgbWFyZ2luTGVmdDogJ2F1dG8nLCBtYXJnaW5S
aWdodDogJ2F1dG8nfSk7CgkJCgkJJChwaG90bykuY3NzKHsnZmxvYXQnOiAnbm9u
ZSd9KTsKCQkKCQkvLyBIaWRlcyBTRUxFQ1QgZWxlbWVudHMgaW4gSUU2IGJlY2F1
c2UgdGhleSB3b3VsZCBvdGhlcndpc2Ugc2l0IG9uIHRvcCBvZiB0aGUgb3Zlcmxh
eS4KCQlpZiAoaXNJRTYpIHsKCQkJJCgnc2VsZWN0Jykubm90KCRib3guZmluZCgn
c2VsZWN0JykpLmZpbHRlcihmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gdGhpcy5z
dHlsZS52aXNpYmlsaXR5ICE9PSAnaGlkZGVuJzsKCQkJfSkuY3NzKHsndmlzaWJp
bGl0eSc6ICdoaWRkZW4nfSkub25lKGV2ZW50X2NsZWFudXAsIGZ1bmN0aW9uICgp
IHsKCQkJCXRoaXMuc3R5bGUudmlzaWJpbGl0eSA9ICdpbmhlcml0JzsKCQkJfSk7
CgkJfQoJCQoJCWNhbGxiYWNrID0gZnVuY3Rpb24gKCkgewoJCQl2YXIgcHJlbG9h
ZCwgCgkJCQlpLCAKCQkJCXRvdGFsID0gJHJlbGF0ZWQubGVuZ3RoLCAKCQkJCWlm
cmFtZSwgCgkJCQlmcmFtZUJvcmRlciA9ICdmcmFtZUJvcmRlcicsIAoJCQkJYWxs
b3dUcmFuc3BhcmVuY3kgPSAnYWxsb3dUcmFuc3BhcmVuY3knLCAKCQkJCWNvbXBs
ZXRlLCAKCQkJCXNyYywgCgkJCQlpbWcsIAoJCQkJZGF0YTsKCQkJCgkJCWlmICgh
b3BlbikgewoJCQkJcmV0dXJuOwoJCQl9CgkJCQoJCQlmdW5jdGlvbiByZW1vdmVG
aWx0ZXIoKSB7CgkJCQlpZiAoaXNJRSkgewoJCQkJCSRib3hbMF0uc3R5bGUucmVt
b3ZlQXR0cmlidXRlKCdmaWx0ZXInKTsKCQkJCX0KCQkJfQoJCQkKCQkJY29tcGxl
dGUgPSBmdW5jdGlvbiAoKSB7CgkJCQljbGVhclRpbWVvdXQobG9hZGluZ1RpbWVy
KTsKCQkJCSRsb2FkaW5nT3ZlcmxheS5oaWRlKCk7CgkJCQl0cmlnZ2VyKGV2ZW50
X2NvbXBsZXRlLCBzZXR0aW5ncy5vbkNvbXBsZXRlKTsKCQkJfTsKCQkJCgkJCWlm
IChpc0lFKSB7CgkJCQkvL1RoaXMgZmFkZUluIGhlbHBzIHRoZSBiaWN1YmljIHJl
c2FtcGxpbmcgdG8ga2ljay1pbi4KCQkJCWlmIChwaG90bykgewoJCQkJCSRsb2Fk
ZWQuZmFkZUluKDEwMCk7CgkJCQl9CgkJCX0KCQkJCgkJCSR0aXRsZS5odG1sKHNl
dHRpbmdzLnRpdGxlKS5hZGQoJGxvYWRlZCkuc2hvdygpOwoJCQkKCQkJaWYgKHRv
dGFsID4gMSkgeyAvLyBoYW5kbGUgZ3JvdXBpbmcKCQkJCWlmICh0eXBlb2Ygc2V0
dGluZ3MuY3VycmVudCA9PT0gInN0cmluZyIpIHsKCQkJCQkkY3VycmVudC5odG1s
KHNldHRpbmdzLmN1cnJlbnQucmVwbGFjZSgne2N1cnJlbnR9JywgaW5kZXggKyAx
KS5yZXBsYWNlKCd7dG90YWx9JywgdG90YWwpKS5zaG93KCk7CgkJCQl9CgkJCQkK
CQkJCSRuZXh0WyhzZXR0aW5ncy5sb29wIHx8IGluZGV4IDwgdG90YWwgLSAxKSA/
ICJzaG93IiA6ICJoaWRlIl0oKS5odG1sKHNldHRpbmdzLm5leHQpOwoJCQkJJHBy
ZXZbKHNldHRpbmdzLmxvb3AgfHwgaW5kZXgpID8gInNob3ciIDogImhpZGUiXSgp
Lmh0bWwoc2V0dGluZ3MucHJldmlvdXMpOwoJCQkJCgkJCQlpZiAoc2V0dGluZ3Mu
c2xpZGVzaG93KSB7CgkJCQkJJHNsaWRlc2hvdy5zaG93KCk7CgkJCQl9CgkJCQkK
CQkJCS8vIFByZWxvYWRzIGltYWdlcyB3aXRoaW4gYSByZWwgZ3JvdXAKCQkJCWlm
IChzZXR0aW5ncy5wcmVsb2FkaW5nKSB7CgkJCQkJcHJlbG9hZCA9IFsKCQkJCQkJ
Z2V0SW5kZXgoLTEpLAoJCQkJCQlnZXRJbmRleCgxKQoJCQkJCV07CgkJCQkJd2hp
bGUgKGkgPSAkcmVsYXRlZFtwcmVsb2FkLnBvcCgpXSkgewoJCQkJCQlkYXRhID0g
JC5kYXRhKGksIGNvbG9yYm94KTsKCQkJCQkJCgkJCQkJCWlmIChkYXRhICYmIGRh
dGEuaHJlZikgewoJCQkJCQkJc3JjID0gZGF0YS5ocmVmOwoJCQkJCQkJaWYgKCQu
aXNGdW5jdGlvbihzcmMpKSB7CgkJCQkJCQkJc3JjID0gc3JjLmNhbGwoaSk7CgkJ
CQkJCQl9CgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlzcmMgPSBpLmhyZWY7CgkJCQkJ
CX0KCgkJCQkJCWlmIChpc0ltYWdlKHNyYykpIHsKCQkJCQkJCWltZyA9IG5ldyBJ
bWFnZSgpOwoJCQkJCQkJaW1nLnNyYyA9IHNyYzsKCQkJCQkJfQoJCQkJCX0KCQkJ
CX0KCQkJfSBlbHNlIHsKCQkJCSRncm91cENvbnRyb2xzLmhpZGUoKTsKCQkJfQoJ
CQkKCQkJaWYgKHNldHRpbmdzLmlmcmFtZSkgewoJCQkJaWZyYW1lID0gJHRhZygn
aWZyYW1lJylbMF07CgkJCQkKCQkJCWlmIChmcmFtZUJvcmRlciBpbiBpZnJhbWUp
IHsKCQkJCQlpZnJhbWVbZnJhbWVCb3JkZXJdID0gMDsKCQkJCX0KCQkJCWlmIChh
bGxvd1RyYW5zcGFyZW5jeSBpbiBpZnJhbWUpIHsKCQkJCQlpZnJhbWVbYWxsb3dU
cmFuc3BhcmVuY3ldID0gInRydWUiOwoJCQkJfQoJCQkJLy8gZ2l2ZSB0aGUgaWZy
YW1lIGEgdW5pcXVlIG5hbWUgdG8gcHJldmVudCBjYWNoaW5nCgkJCQlpZnJhbWUu
bmFtZSA9IHByZWZpeCArICgrbmV3IERhdGUoKSk7CgkJCQlpZiAoc2V0dGluZ3Mu
ZmFzdElmcmFtZSkgewoJCQkJCWNvbXBsZXRlKCk7CgkJCQl9IGVsc2UgewoJCQkJ
CSQoaWZyYW1lKS5vbmUoJ2xvYWQnLCBjb21wbGV0ZSk7CgkJCQl9CgkJCQlpZnJh
bWUuc3JjID0gc2V0dGluZ3MuaHJlZjsKCQkJCWlmICghc2V0dGluZ3Muc2Nyb2xs
aW5nKSB7CgkJCQkJaWZyYW1lLnNjcm9sbGluZyA9ICJubyI7CgkJCQl9CgkJCQkk
KGlmcmFtZSkuYWRkQ2xhc3MocHJlZml4ICsgJ0lmcmFtZScpLmFwcGVuZFRvKCRs
b2FkZWQpLm9uZShldmVudF9wdXJnZSwgZnVuY3Rpb24gKCkgewoJCQkJCWlmcmFt
ZS5zcmMgPSAiLy9hYm91dDpibGFuayI7CgkJCQl9KTsKCQkJfSBlbHNlIHsKCQkJ
CWNvbXBsZXRlKCk7CgkJCX0KCQkJCgkJCWlmIChzZXR0aW5ncy50cmFuc2l0aW9u
ID09PSAnZmFkZScpIHsKCQkJCSRib3guZmFkZVRvKHNwZWVkLCAxLCByZW1vdmVG
aWx0ZXIpOwoJCQl9IGVsc2UgewoJCQkJcmVtb3ZlRmlsdGVyKCk7CgkJCX0KCQl9
OwoJCQoJCWlmIChzZXR0aW5ncy50cmFuc2l0aW9uID09PSAnZmFkZScpIHsKCQkJ
JGJveC5mYWRlVG8oc3BlZWQsIDAsIGZ1bmN0aW9uICgpIHsKCQkJCXB1YmxpY01l
dGhvZC5wb3NpdGlvbigwLCBjYWxsYmFjayk7CgkJCX0pOwoJCX0gZWxzZSB7CgkJ
CXB1YmxpY01ldGhvZC5wb3NpdGlvbihzcGVlZCwgY2FsbGJhY2spOwoJCX0KCX07
CgoJcHVibGljTWV0aG9kLmxvYWQgPSBmdW5jdGlvbiAobGF1bmNoZWQpIHsKCQl2
YXIgaHJlZiwgc2V0UmVzaXplLCBwcmVwID0gcHVibGljTWV0aG9kLnByZXA7CgkJ
CgkJYWN0aXZlID0gdHJ1ZTsKCQkKCQlwaG90byA9IGZhbHNlOwoJCQoJCWVsZW1l
bnQgPSAkcmVsYXRlZFtpbmRleF07CgkJCgkJaWYgKCFsYXVuY2hlZCkgewoJCQlt
YWtlU2V0dGluZ3MoKTsKCQl9CgkJCgkJdHJpZ2dlcihldmVudF9wdXJnZSk7CgkJ
CgkJdHJpZ2dlcihldmVudF9sb2FkLCBzZXR0aW5ncy5vbkxvYWQpOwoJCQoJCXNl
dHRpbmdzLmggPSBzZXR0aW5ncy5oZWlnaHQgPwoJCQkJc2V0U2l6ZShzZXR0aW5n
cy5oZWlnaHQsICd5JykgLSBsb2FkZWRIZWlnaHQgLSBpbnRlcmZhY2VIZWlnaHQg
OgoJCQkJc2V0dGluZ3MuaW5uZXJIZWlnaHQgJiYgc2V0U2l6ZShzZXR0aW5ncy5p
bm5lckhlaWdodCwgJ3knKTsKCQkKCQlzZXR0aW5ncy53ID0gc2V0dGluZ3Mud2lk
dGggPwoJCQkJc2V0U2l6ZShzZXR0aW5ncy53aWR0aCwgJ3gnKSAtIGxvYWRlZFdp
ZHRoIC0gaW50ZXJmYWNlV2lkdGggOgoJCQkJc2V0dGluZ3MuaW5uZXJXaWR0aCAm
JiBzZXRTaXplKHNldHRpbmdzLmlubmVyV2lkdGgsICd4Jyk7CgkJCgkJLy8gU2V0
cyB0aGUgbWluaW11bSBkaW1lbnNpb25zIGZvciB1c2UgaW4gaW1hZ2Ugc2NhbGlu
ZwoJCXNldHRpbmdzLm13ID0gc2V0dGluZ3MudzsKCQlzZXR0aW5ncy5taCA9IHNl
dHRpbmdzLmg7CgkJCgkJLy8gUmUtZXZhbHVhdGUgdGhlIG1pbmltdW0gd2lkdGgg
YW5kIGhlaWdodCBiYXNlZCBvbiBtYXhXaWR0aCBhbmQgbWF4SGVpZ2h0IHZhbHVl
cy4KCQkvLyBJZiB0aGUgd2lkdGggb3IgaGVpZ2h0IGV4Y2VlZCB0aGUgbWF4V2lk
dGggb3IgbWF4SGVpZ2h0LCB1c2UgdGhlIG1heGltdW0gdmFsdWVzIGluc3RlYWQu
CgkJaWYgKHNldHRpbmdzLm1heFdpZHRoKSB7CgkJCXNldHRpbmdzLm13ID0gc2V0
U2l6ZShzZXR0aW5ncy5tYXhXaWR0aCwgJ3gnKSAtIGxvYWRlZFdpZHRoIC0gaW50
ZXJmYWNlV2lkdGg7CgkJCXNldHRpbmdzLm13ID0gc2V0dGluZ3MudyAmJiBzZXR0
aW5ncy53IDwgc2V0dGluZ3MubXcgPyBzZXR0aW5ncy53IDogc2V0dGluZ3MubXc7
CgkJfQoJCWlmIChzZXR0aW5ncy5tYXhIZWlnaHQpIHsKCQkJc2V0dGluZ3MubWgg
PSBzZXRTaXplKHNldHRpbmdzLm1heEhlaWdodCwgJ3knKSAtIGxvYWRlZEhlaWdo
dCAtIGludGVyZmFjZUhlaWdodDsKCQkJc2V0dGluZ3MubWggPSBzZXR0aW5ncy5o
ICYmIHNldHRpbmdzLmggPCBzZXR0aW5ncy5taCA/IHNldHRpbmdzLmggOiBzZXR0
aW5ncy5taDsKCQl9CgkJCgkJaHJlZiA9IHNldHRpbmdzLmhyZWY7CgkJCgkJbG9h
ZGluZ1RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCSRsb2FkaW5n
T3ZlcmxheS5zaG93KCk7CgkJfSwgMTAwKTsKCQkKCQlpZiAoc2V0dGluZ3MuaW5s
aW5lKSB7CgkJCS8vIEluc2VydHMgYW4gZW1wdHkgcGxhY2Vob2xkZXIgd2hlcmUg
aW5saW5lIGNvbnRlbnQgaXMgYmVpbmcgcHVsbGVkIGZyb20uCgkJCS8vIEFuIGV2
ZW50IGlzIGJvdW5kIHRvIHB1dCBpbmxpbmUgY29udGVudCBiYWNrIHdoZW4gQ29s
b3JCb3ggY2xvc2VzIG9yIGxvYWRzIG5ldyBjb250ZW50LgoJCQkkdGFnKGRpdiku
aGlkZSgpLmluc2VydEJlZm9yZSgkKGhyZWYpWzBdKS5vbmUoZXZlbnRfcHVyZ2Us
IGZ1bmN0aW9uICgpIHsKCQkJCSQodGhpcykucmVwbGFjZVdpdGgoJGxvYWRlZC5j
aGlsZHJlbigpKTsKCQkJfSk7CgkJCXByZXAoJChocmVmKSk7CgkJfSBlbHNlIGlm
IChzZXR0aW5ncy5pZnJhbWUpIHsKCQkJLy8gSUZyYW1lIGVsZW1lbnQgd29uJ3Qg
YmUgYWRkZWQgdG8gdGhlIERPTSB1bnRpbCBpdCBpcyByZWFkeSB0byBiZSBkaXNw
bGF5ZWQsCgkJCS8vIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggRE9NLXJlYWR5IEpT
IHRoYXQgbWlnaHQgYmUgdHJ5aW5nIHRvIHJ1biBpbiB0aGF0IGlmcmFtZS4KCQkJ
cHJlcCgiICIpOwoJCX0gZWxzZSBpZiAoc2V0dGluZ3MuaHRtbCkgewoJCQlwcmVw
KHNldHRpbmdzLmh0bWwpOwoJCX0gZWxzZSBpZiAoaXNJbWFnZShocmVmKSkgewoJ
CQkkKHBob3RvID0gbmV3IEltYWdlKCkpCgkJCS5hZGRDbGFzcyhwcmVmaXggKyAn
UGhvdG8nKQoJCQkuZXJyb3IoZnVuY3Rpb24gKCkgewoJCQkJc2V0dGluZ3MudGl0
bGUgPSBmYWxzZTsKCQkJCXByZXAoJHRhZyhkaXYsICdFcnJvcicpLmh0bWwoc2V0
dGluZ3MuaW1nRXJyb3IpKTsKCQkJfSkKCQkJLmxvYWQoZnVuY3Rpb24gKCkgewoJ
CQkJdmFyIHBlcmNlbnQ7CgkJCQlwaG90by5vbmxvYWQgPSBudWxsOyAvL3N0b3Bz
IGFuaW1hdGVkIGdpZnMgZnJvbSBmaXJpbmcgdGhlIG9ubG9hZCByZXBlYXRlZGx5
LgoJCQkJCgkJCQlpZiAoc2V0dGluZ3Muc2NhbGVQaG90b3MpIHsKCQkJCQlzZXRS
ZXNpemUgPSBmdW5jdGlvbiAoKSB7CgkJCQkJCXBob3RvLmhlaWdodCAtPSBwaG90
by5oZWlnaHQgKiBwZXJjZW50OwoJCQkJCQlwaG90by53aWR0aCAtPSBwaG90by53
aWR0aCAqIHBlcmNlbnQ7CQoJCQkJCX07CgkJCQkJaWYgKHNldHRpbmdzLm13ICYm
IHBob3RvLndpZHRoID4gc2V0dGluZ3MubXcpIHsKCQkJCQkJcGVyY2VudCA9IChw
aG90by53aWR0aCAtIHNldHRpbmdzLm13KSAvIHBob3RvLndpZHRoOwoJCQkJCQlz
ZXRSZXNpemUoKTsKCQkJCQl9CgkJCQkJaWYgKHNldHRpbmdzLm1oICYmIHBob3Rv
LmhlaWdodCA+IHNldHRpbmdzLm1oKSB7CgkJCQkJCXBlcmNlbnQgPSAocGhvdG8u
aGVpZ2h0IC0gc2V0dGluZ3MubWgpIC8gcGhvdG8uaGVpZ2h0OwoJCQkJCQlzZXRS
ZXNpemUoKTsKCQkJCQl9CgkJCQl9CgkJCQkKCQkJCWlmIChzZXR0aW5ncy5oKSB7
CgkJCQkJcGhvdG8uc3R5bGUubWFyZ2luVG9wID0gTWF0aC5tYXgoc2V0dGluZ3Mu
aCAtIHBob3RvLmhlaWdodCwgMCkgLyAyICsgJ3B4JzsKCQkJCX0KCQkJCQoJCQkJ
aWYgKCRyZWxhdGVkWzFdICYmIChzZXR0aW5ncy5sb29wIHx8ICRyZWxhdGVkW2lu
ZGV4ICsgMV0pKSB7CgkJCQkJcGhvdG8uc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXIn
OwoJCQkJCXBob3RvLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7CgkJCQkJCXB1Ymxp
Y01ldGhvZC5uZXh0KCk7CgkJCQkJfTsKCQkJCX0KCQkJCQoJCQkJaWYgKGlzSUUp
IHsKCQkJCQlwaG90by5zdHlsZS5tc0ludGVycG9sYXRpb25Nb2RlID0gJ2JpY3Vi
aWMnOwoJCQkJfQoJCQkJCgkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgLy8g
QSBwYXVzZSBiZWNhdXNlIENocm9tZSB3aWxsIHNvbWV0aW1lcyByZXBvcnQgYSAw
IGJ5IDAgc2l6ZSBvdGhlcndpc2UuCgkJCQkJcHJlcChwaG90byk7CgkJCQl9LCAx
KTsKCQkJfSk7CgkJCQoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgLy8gQSBw
YXVzZSBiZWNhdXNlIE9wZXJhIDEwLjYrIHdpbGwgc29tZXRpbWVzIG5vdCBydW4g
dGhlIG9ubG9hZCBmdW5jdGlvbiBvdGhlcndpc2UuCgkJCQlwaG90by5zcmMgPSBo
cmVmOwoJCQl9LCAxKTsKCQl9IGVsc2UgaWYgKGhyZWYpIHsKCQkJJGxvYWRpbmdC
YXkubG9hZChocmVmLCBzZXR0aW5ncy5kYXRhLCBmdW5jdGlvbiAoZGF0YSwgc3Rh
dHVzLCB4aHIpIHsKCQkJCXByZXAoc3RhdHVzID09PSAnZXJyb3InID8gJHRhZyhk
aXYsICdFcnJvcicpLmh0bWwoc2V0dGluZ3MueGhyRXJyb3IpIDogJCh0aGlzKS5j
b250ZW50cygpKTsKCQkJfSk7CgkJfQoJfTsKCQkKCS8vIE5hdmlnYXRlcyB0byB0
aGUgbmV4dCBwYWdlL2ltYWdlIGluIGEgc2V0LgoJcHVibGljTWV0aG9kLm5leHQg
PSBmdW5jdGlvbiAoKSB7CgkJaWYgKCFhY3RpdmUgJiYgJHJlbGF0ZWRbMV0gJiYg
KHNldHRpbmdzLmxvb3AgfHwgJHJlbGF0ZWRbaW5kZXggKyAxXSkpIHsKCQkJaW5k
ZXggPSBnZXRJbmRleCgxKTsKCQkJcHVibGljTWV0aG9kLmxvYWQoKTsKCQl9Cgl9
OwoJCglwdWJsaWNNZXRob2QucHJldiA9IGZ1bmN0aW9uICgpIHsKCQlpZiAoIWFj
dGl2ZSAmJiAkcmVsYXRlZFsxXSAmJiAoc2V0dGluZ3MubG9vcCB8fCBpbmRleCkp
IHsKCQkJaW5kZXggPSBnZXRJbmRleCgtMSk7CgkJCXB1YmxpY01ldGhvZC5sb2Fk
KCk7CgkJfQoJfTsKCgkvLyBOb3RlOiB0byB1c2UgdGhpcyB3aXRoaW4gYW4gaWZy
YW1lIHVzZSB0aGUgZm9sbG93aW5nIGZvcm1hdDogcGFyZW50LiQuZm4uY29sb3Ji
b3guY2xvc2UoKTsKCXB1YmxpY01ldGhvZC5jbG9zZSA9IGZ1bmN0aW9uICgpIHsK
CQlpZiAob3BlbiAmJiAhY2xvc2luZykgewoJCQkKCQkJY2xvc2luZyA9IHRydWU7
CgkJCQoJCQlvcGVuID0gZmFsc2U7CgkJCQoJCQl0cmlnZ2VyKGV2ZW50X2NsZWFu
dXAsIHNldHRpbmdzLm9uQ2xlYW51cCk7CgkJCQoJCQkkd2luZG93LnVuYmluZCgn
LicgKyBwcmVmaXggKyAnIC4nICsgZXZlbnRfaWU2KTsKCQkJCgkJCSRvdmVybGF5
LmZhZGVUbygyMDAsIDApOwoJCQkKCQkJJGJveC5zdG9wKCkuZmFkZVRvKDMwMCwg
MCwgZnVuY3Rpb24gKCkgewoJCQkJIAoJCQkJJGJveC5hZGQoJG92ZXJsYXkpLmNz
cyh7J29wYWNpdHknOiAxLCBjdXJzb3I6ICdhdXRvJ30pLmhpZGUoKTsKCQkJCQoJ
CQkJdHJpZ2dlcihldmVudF9wdXJnZSk7CgkJCQkKCQkJCSRsb2FkZWQucmVtb3Zl
KCk7CgkJCQkKCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewoJCQkJCWNsb3Np
bmcgPSBmYWxzZTsKCQkJCQl0cmlnZ2VyKGV2ZW50X2Nsb3NlZCwgc2V0dGluZ3Mu
b25DbG9zZWQpOwoJCQkJfSwgMSk7CgkJCX0pOwoJCX0KCX07CgoJLy8gUmVtb3Zl
cyBjaGFuZ2VzIENvbG9yQm94IG1hZGUgdG8gdGhlIGRvY3VtZW50LCBidXQgZG9l
cyBub3QgcmVtb3ZlIHRoZSBwbHVnaW4KCS8vIGZyb20galF1ZXJ5LgoJcHVibGlj
TWV0aG9kLnJlbW92ZSA9IGZ1bmN0aW9uICgpIHsKCQkkKFtdKS5hZGQoJGJveCku
YWRkKCRvdmVybGF5KS5yZW1vdmUoKTsKCQkkYm94ID0gbnVsbDsKCQkkKCcuJyAr
IGJveEVsZW1lbnQpCgkJCS5yZW1vdmVEYXRhKGNvbG9yYm94KQoJCQkucmVtb3Zl
Q2xhc3MoYm94RWxlbWVudCkKCQkJLmRpZSgpOwoJfTsKCgkvLyBBIG1ldGhvZCBm
b3IgZmV0Y2hpbmcgdGhlIGN1cnJlbnQgZWxlbWVudCBDb2xvckJveCBpcyByZWZl
cmVuY2luZy4KCS8vIHJldHVybnMgYSBqUXVlcnkgb2JqZWN0LgoJcHVibGljTWV0
aG9kLmVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CgkJcmV0dXJuICQoZWxlbWVudCk7
Cgl9OwoKCXB1YmxpY01ldGhvZC5zZXR0aW5ncyA9IGRlZmF1bHRzOwoKfShqUXVl
cnksIGRvY3VtZW50LCB0aGlzKSk7
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=jwplayer.js
Content-Type: application/x-javascript; name=jwplayer.js
Content-Location: http://ege.edu.ru/common/js/jwplayer/jwplayer.js
Content-Transfer-Encoding: Base64
InVuZGVmaW5lZCI9PXR5cGVvZiBqd3BsYXllciYmKGp3cGxheWVyPWZ1bmN0aW9u
KGQpe2lmKGp3cGxheWVyLmFwaSlyZXR1cm4gandwbGF5ZXIuYXBpLnNlbGVjdFBs
YXllcihkKX0sandwbGF5ZXIudmVyc2lvbj0iNi4zLjMyNDIiLGp3cGxheWVyLnZp
ZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpLGp3cGxheWVyLmF1ZGlv
PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImF1ZGlvIiksandwbGF5ZXIuc291cmNl
PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNvdXJjZSIpLGZ1bmN0aW9uKGQpe2Z1
bmN0aW9uIGEoYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUoYil9fXZhciBo
PWRvY3VtZW50LGc9d2luZG93LGM9bmF2aWdhdG9yLGI9ZC51dGlscz1mdW5jdGlv
bigpe307Yi5leGlzdHM9ZnVuY3Rpb24oYil7c3dpdGNoKHR5cGVvZiBiKXtjYXNl
ICJzdHJpbmciOnJldHVybiAwPGIubGVuZ3RoO2Nhc2UgIm9iamVjdCI6cmV0dXJu
IG51bGwhPT1iO2Nhc2UgInVuZGVmaW5lZCI6cmV0dXJuITF9cmV0dXJuITB9Owpi
LnN0eWxlRGltZW5zaW9uPWZ1bmN0aW9uKGIpe3JldHVybiBiKygwPGIudG9TdHJp
bmcoKS5pbmRleE9mKCIlIik/IiI6InB4Iil9O2IuZ2V0QWJzb2x1dGVQYXRoPWZ1
bmN0aW9uKGEsZSl7Yi5leGlzdHMoZSl8fChlPWgubG9jYXRpb24uaHJlZik7aWYo
Yi5leGlzdHMoYSkpe3ZhciBjO2lmKGIuZXhpc3RzKGEpKXtjPWEuaW5kZXhPZigi
Oi8vIik7dmFyIGc9YS5pbmRleE9mKCI/Iik7Yz0wPGMmJigwPmd8fGc+Yyl9ZWxz
ZSBjPXZvaWQgMDtpZihjKXJldHVybiBhO2M9ZS5zdWJzdHJpbmcoMCxlLmluZGV4
T2YoIjovLyIpKzMpO3ZhciBnPWUuc3Vic3RyaW5nKGMubGVuZ3RoLGUuaW5kZXhP
ZigiLyIsYy5sZW5ndGgrMSkpLGs7MD09PWEuaW5kZXhPZigiLyIpP2s9YS5zcGxp
dCgiLyIpOihrPWUuc3BsaXQoIj8iKVswXSxrPWsuc3Vic3RyaW5nKGMubGVuZ3Ro
K2cubGVuZ3RoKzEsay5sYXN0SW5kZXhPZigiLyIpKSxrPWsuc3BsaXQoIi8iKS5j
b25jYXQoYS5zcGxpdCgiLyIpKSk7CmZvcih2YXIgZj1bXSxkPTA7ZDxrLmxlbmd0
aDtkKyspa1tkXSYmKGIuZXhpc3RzKGtbZF0pJiYiLiIhPWtbZF0pJiYoIi4uIj09
a1tkXT9mLnBvcCgpOmYucHVzaChrW2RdKSk7cmV0dXJuIGMrZysiLyIrZi5qb2lu
KCIvIil9fTtiLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBhPWIuZXh0ZW5kLmFyZ3Vt
ZW50cztpZigxPGEubGVuZ3RoKXtmb3IodmFyIGU9MTtlPGEubGVuZ3RoO2UrKylm
b3IodmFyIGMgaW4gYVtlXSl0cnl7Yi5leGlzdHMoYVtlXVtjXSkmJihhWzBdW2Nd
PWFbZV1bY10pfWNhdGNoKGspe31yZXR1cm4gYVswXX1yZXR1cm4gbnVsbH07Yi5s
b2c9ZnVuY3Rpb24oYixhKXsidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJiJ1
bmRlZmluZWQiIT10eXBlb2YgY29uc29sZS5sb2cmJihhP2NvbnNvbGUubG9nKGIs
YSk6Y29uc29sZS5sb2coYikpfTt2YXIgZT1iLnVzZXJBZ2VudE1hdGNoPWZ1bmN0
aW9uKGIpe3JldHVybiBudWxsIT09Yy51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5t
YXRjaChiKX07CmIuaXNJRT1hKC9tc2llL2kpO2IuaXNGRj1hKC9maXJlZm94L2kp
O2IuaXNDaHJvbWU9YSgvY2hyb21lL2kpO2IuaXNJT1M9YSgvaVAoaG9uZXxhZHxv
ZCkvaSk7Yi5pc0lQb2Q9YSgvaVAoaG9uZXxvZCkvaSk7Yi5pc0lQYWQ9YSgvaVBh
ZC9pKTtiLmlzU2FmYXJpNjAyPWEoL01hY2ludG9zaC4qTWFjIE9TIFggMTBfOC4q
NlwuMFwuXGQqIFNhZmFyaS9pKTtiLmlzQW5kcm9pZD1mdW5jdGlvbihiKXtyZXR1
cm4gYj9lKFJlZ0V4cCgiYW5kcm9pZC4qIitiLCJpIikpOmUoL2FuZHJvaWQvaSl9
O2IuaXNNb2JpbGU9ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc0lPUygpfHxiLmlzQW5k
cm9pZCgpfTtiLnNhdmVDb29raWU9ZnVuY3Rpb24oYixhKXtoLmNvb2tpZT0iandw
bGF5ZXIuIitiKyJceDNkIithKyI7IHBhdGhceDNkLyJ9O2IuZ2V0Q29va2llcz1m
dW5jdGlvbigpe2Zvcih2YXIgYj17fSxhPWguY29va2llLnNwbGl0KCI7ICIpLGU9
MDtlPGEubGVuZ3RoO2UrKyl7dmFyIGM9YVtlXS5zcGxpdCgiXHgzZCIpOwowPT1j
WzBdLmluZGV4T2YoImp3cGxheWVyLiIpJiYoYltjWzBdLnN1YnN0cmluZyg5LGNb
MF0ubGVuZ3RoKV09Y1sxXSl9cmV0dXJuIGJ9O2IudHlwZU9mPWZ1bmN0aW9uKGIp
e3ZhciBhPXR5cGVvZiBiO3JldHVybiJvYmplY3QiPT09YT8hYj8ibnVsbCI6YiBp
bnN0YW5jZW9mIEFycmF5PyJhcnJheSI6YTphfTtiLnRyYW5zbGF0ZUV2ZW50UmVz
cG9uc2U9ZnVuY3Rpb24oYSxlKXt2YXIgYz1iLmV4dGVuZCh7fSxlKTthPT1kLmV2
ZW50cy5KV1BMQVlFUl9GVUxMU0NSRUVOJiYhYy5mdWxsc2NyZWVuPyhjLmZ1bGxz
Y3JlZW49InRydWUiPT1jLm1lc3NhZ2U/ITA6ITEsZGVsZXRlIGMubWVzc2FnZSk6
Im9iamVjdCI9PXR5cGVvZiBjLmRhdGE/KGM9Yi5leHRlbmQoYyxjLmRhdGEpLGRl
bGV0ZSBjLmRhdGEpOiJvYmplY3QiPT10eXBlb2YgYy5tZXRhZGF0YSYmYi5kZWVw
UmVwbGFjZUtleU5hbWUoYy5tZXRhZGF0YSxbIl9fZG90X18iLCJfX3NwY19fIiwi
X19kc2hfXyIsIl9fZGVmYXVsdF9fIl0sClsiLiIsIiAiLCItIiwiZGVmYXVsdCJd
KTt2YXIgaz1bInBvc2l0aW9uIiwiZHVyYXRpb24iLCJvZmZzZXQiXSxnO2Zvcihn
IGluIGspY1trW2ddXSYmKGNba1tnXV09TWF0aC5yb3VuZCgxRTMqY1trW2ddXSkv
MUUzKTtyZXR1cm4gY307Yi5mbGFzaFZlcnNpb249ZnVuY3Rpb24oKXtpZihiLmlz
QW5kcm9pZCgpKXJldHVybiAwO3ZhciBhPWMucGx1Z2lucyxlO3RyeXtpZigidW5k
ZWZpbmVkIiE9PWEmJihlPWFbIlNob2Nrd2F2ZSBGbGFzaCJdKSlyZXR1cm4gcGFy
c2VJbnQoZS5kZXNjcmlwdGlvbi5yZXBsYWNlKC9cRCsoXGQrKVwuLiovLCIkMSIp
KX1jYXRjaChrKXt9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBnLkFjdGl2ZVhPYmpl
Y3QpdHJ5e2lmKGU9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNo
b2Nrd2F2ZUZsYXNoIikpcmV0dXJuIHBhcnNlSW50KGUuR2V0VmFyaWFibGUoIiR2
ZXJzaW9uIikuc3BsaXQoIiAiKVsxXS5zcGxpdCgiLCIpWzBdKX1jYXRjaChkKXt9
cmV0dXJuIDB9OwpiLmdldFNjcmlwdFBhdGg9ZnVuY3Rpb24oYil7Zm9yKHZhciBh
PWguZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGU9MDtlPGEubGVuZ3Ro
O2UrKyl7dmFyIGM9YVtlXS5zcmM7aWYoYyYmMDw9Yy5pbmRleE9mKGIpKXJldHVy
biBjLnN1YnN0cigwLGMuaW5kZXhPZihiKSl9cmV0dXJuIiJ9O2IuZGVlcFJlcGxh
Y2VLZXlOYW1lPWZ1bmN0aW9uKGIsYSxlKXtzd2l0Y2goZC51dGlscy50eXBlT2Yo
Yikpe2Nhc2UgImFycmF5Ijpmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyliW2Nd
PWQudXRpbHMuZGVlcFJlcGxhY2VLZXlOYW1lKGJbY10sYSxlKTticmVhaztjYXNl
ICJvYmplY3QiOmZvcih2YXIgayBpbiBiKXt2YXIgZjtpZihhIGluc3RhbmNlb2Yg
QXJyYXkmJmUgaW5zdGFuY2VvZiBBcnJheSlpZihhLmxlbmd0aCE9ZS5sZW5ndGgp
Y29udGludWU7ZWxzZSBmPWE7ZWxzZSBmPVthXTtmb3IodmFyIGc9ayxjPTA7Yzxm
Lmxlbmd0aDtjKyspZz1nLnJlcGxhY2UoUmVnRXhwKGFbY10sCiJnIiksZVtjXSk7
YltnXT1kLnV0aWxzLmRlZXBSZXBsYWNlS2V5TmFtZShiW2tdLGEsZSk7ayE9ZyYm
ZGVsZXRlIGJba119fXJldHVybiBifTt2YXIgaz1iLnBsdWdpblBhdGhUeXBlPXtB
QlNPTFVURTowLFJFTEFUSVZFOjEsQ0ROOjJ9O2IuZ2V0UGx1Z2luUGF0aFR5cGU9
ZnVuY3Rpb24oYSl7aWYoInN0cmluZyI9PXR5cGVvZiBhKXthPWEuc3BsaXQoIj8i
KVswXTt2YXIgZT1hLmluZGV4T2YoIjovLyIpO2lmKDA8ZSlyZXR1cm4gay5BQlNP
TFVURTt2YXIgYz1hLmluZGV4T2YoIi8iKTthPWIuZXh0ZW5zaW9uKGEpO3JldHVy
biAwPmUmJjA+YyYmKCFhfHwhaXNOYU4oYSkpP2suQ0ROOmsuUkVMQVRJVkV9fTti
LmdldFBsdWdpbk5hbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvXigu
KlwvKT8oW14tXSopLT8uKlwuKHN3ZnxqcykkLywiJDIiKX07Yi5nZXRQbHVnaW5W
ZXJzaW9uPWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1teLV0qLT8oW15c
Ll0qKS4qJC8sIiQxIil9OwpiLmlzWW91VHViZT1mdW5jdGlvbihhKXtyZXR1cm4t
MTxhLmluZGV4T2YoInlvdXR1YmUuY29tIil8fC0xPGEuaW5kZXhPZigieW91dHUu
YmUiKX07Yi5pc1J0bXA9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gMD09YS5pbmRleE9m
KCJydG1wIil8fCJydG1wIj09Yn07Yi5mb3JlYWNoPWZ1bmN0aW9uKGEsYil7Zm9y
KHZhciBlIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShlKSYmYihlKX07Yi5pc0hUVFBT
PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PWcubG9jYXRpb24uaHJlZi5pbmRleE9mKCJo
dHRwcyIpfTtiLnJlcG89ZnVuY3Rpb24oKXt2YXIgYT0iaHR0cDovL3AuandwY2Ru
LmNvbS8iK2QudmVyc2lvbi5zcGxpdCgvXFcvKS5zcGxpY2UoMCwyKS5qb2luKCIv
IikrIi8iO3RyeXtiLmlzSFRUUFMoKSYmKGE9YS5yZXBsYWNlKCJodHRwOi8vIiwi
aHR0cHM6Ly9zc2wuIikpfWNhdGNoKGUpe31yZXR1cm4gYX19KGp3cGxheWVyKSxm
dW5jdGlvbihkKXt2YXIgYT0idmlkZW8vIixoPXttcDQ6YSsibXA0IiwKdm9yYmlz
OiJhdWRpby9vZ2ciLG9nZzphKyJvZ2ciLHdlYm06YSsid2VibSIsYWFjOiJhdWRp
by9tcDQiLG1wMzoiYXVkaW8vbXBlZyIsaGxzOiJhcHBsaWNhdGlvbi92bmQuYXBw
bGUubXBlZ3VybCJ9LGc9e21wNDpoLm1wNCxmNHY6aC5tcDQsbTR2OmgubXA0LG1v
djpoLm1wNCxtNGE6aC5hYWMsZjRhOmguYWFjLGFhYzpoLmFhYyxtcDM6aC5tcDMs
b2d2Omgub2dnLG9nZzpoLnZvcmJpcyxvZ2E6aC52b3JiaXMsd2VibTpoLndlYm0s
bTN1ODpoLmhscyxobHM6aC5obHN9LGE9InZpZGVvIixhPXtmbHY6YSxmNHY6YSxt
b3Y6YSxtNGE6YSxtNHY6YSxtcDQ6YSxhYWM6YSxmNGE6YSxtcDM6InNvdW5kIixz
bWlsOiJydG1wIixtM3U4OiJobHMiLGhsczoiaGxzIn0sYz1kLmV4dGVuc2lvbm1h
cD17fSxiO2ZvcihiIGluIGcpY1tiXT17aHRtbDU6Z1tiXX07Zm9yKGIgaW4gYSlj
W2JdfHwoY1tiXT17fSksY1tiXS5mbGFzaD1hW2JdO2MudHlwZXM9aDtjLm1pbWVU
eXBlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBoKWlmKGhbYl09PQphKXJldHVy
biBifTtjLmV4dFR5cGU9ZnVuY3Rpb24oYSl7cmV0dXJuIGMubWltZVR5cGUoZ1th
XSl9fShqd3BsYXllci51dGlscyksZnVuY3Rpb24oZCl7dmFyIGE9ZC5sb2FkZXJz
dGF0dXM9e05FVzowLExPQURJTkc6MSxFUlJPUjoyLENPTVBMRVRFOjN9LGg9ZG9j
dW1lbnQ7ZC5zY3JpcHRsb2FkZXI9ZnVuY3Rpb24oZyl7ZnVuY3Rpb24gYygpe2U9
YS5FUlJPUjtsLnNlbmRFdmVudChrLkVSUk9SKX1mdW5jdGlvbiBiKCl7ZT1hLkNP
TVBMRVRFO2wuc2VuZEV2ZW50KGsuQ09NUExFVEUpfXZhciBlPWEuTkVXLGs9andw
bGF5ZXIuZXZlbnRzLGw9bmV3IGsuZXZlbnRkaXNwYXRjaGVyO2QuZXh0ZW5kKHRo
aXMsbCk7dGhpcy5sb2FkPWZ1bmN0aW9uKCl7dmFyIGw9ZC5zY3JpcHRsb2FkZXIu
bG9hZGVyc1tnXTtpZihsJiYobC5nZXRTdGF0dXMoKT09YS5ORVd8fGwuZ2V0U3Rh
dHVzKCk9PWEuTE9BRElORykpbC5hZGRFdmVudExpc3RlbmVyKGsuRVJST1IsYyks
bC5hZGRFdmVudExpc3RlbmVyKGsuQ09NUExFVEUsCmIpO2Vsc2UgaWYoZC5zY3Jp
cHRsb2FkZXIubG9hZGVyc1tnXT10aGlzLGU9PWEuTkVXKXtlPWEuTE9BRElORzt2
YXIgbj1oLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO24uYWRkRXZlbnRMaXN0ZW5l
cj8obi5vbmxvYWQ9YixuLm9uZXJyb3I9Yyk6bi5yZWFkeVN0YXRlJiYobi5vbnJl
YWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXsoImxvYWRlZCI9PW4ucmVhZHlTdGF0
ZXx8ImNvbXBsZXRlIj09bi5yZWFkeVN0YXRlKSYmYigpfSk7aC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKG4pO24uc3JjPWd9fTt0
aGlzLmdldFN0YXR1cz1mdW5jdGlvbigpe3JldHVybiBlfX07ZC5zY3JpcHRsb2Fk
ZXIubG9hZGVycz17fX0oandwbGF5ZXIudXRpbHMpLGZ1bmN0aW9uKGQpe2QudHJp
bT1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9eXHMqLywiIikucmVwbGFj
ZSgvXHMqJC8sIiIpfTtkLnBhZD1mdW5jdGlvbihhLGQsZyl7Zm9yKGd8fChnPSIw
Iik7YS5sZW5ndGg8CmQ7KWE9ZythO3JldHVybiBhfTtkLnhtbEF0dHJpYnV0ZT1m
dW5jdGlvbihhLGQpe2Zvcih2YXIgZz0wO2c8YS5hdHRyaWJ1dGVzLmxlbmd0aDtn
KyspaWYoYS5hdHRyaWJ1dGVzW2ddLm5hbWUmJmEuYXR0cmlidXRlc1tnXS5uYW1l
LnRvTG93ZXJDYXNlKCk9PWQudG9Mb3dlckNhc2UoKSlyZXR1cm4gYS5hdHRyaWJ1
dGVzW2ddLnZhbHVlLnRvU3RyaW5nKCk7cmV0dXJuIiJ9O2QuZXh0ZW5zaW9uPWZ1
bmN0aW9uKGEpe2lmKCFhfHwicnRtcCI9PWEuc3Vic3RyKDAsNCkpcmV0dXJuIiI7
YT1hLnN1YnN0cmluZyhhLmxhc3RJbmRleE9mKCIvIikrMSxhLmxlbmd0aCkuc3Bs
aXQoIj8iKVswXS5zcGxpdCgiIyIpWzBdO2lmKC0xPGEubGFzdEluZGV4T2YoIi4i
KSlyZXR1cm4gYS5zdWJzdHIoYS5sYXN0SW5kZXhPZigiLiIpKzEsYS5sZW5ndGgp
LnRvTG93ZXJDYXNlKCl9O2Quc3RyaW5nVG9Db2xvcj1mdW5jdGlvbihhKXthPWEu
cmVwbGFjZSgvKCN8MHgpPyhbMC05QS1GXXszLDZ9KSQvZ2ksCiIkMiIpOzM9PWEu
bGVuZ3RoJiYoYT1hLmNoYXJBdCgwKSthLmNoYXJBdCgwKSthLmNoYXJBdCgxKSth
LmNoYXJBdCgxKSthLmNoYXJBdCgyKSthLmNoYXJBdCgyKSk7cmV0dXJuIHBhcnNl
SW50KGEsMTYpfX0oandwbGF5ZXIudXRpbHMpLGZ1bmN0aW9uKGQpe2Qua2V5PWZ1
bmN0aW9uKGEpe3ZhciBoLGcsYzt0aGlzLmVkaXRpb249ZnVuY3Rpb24oKXtyZXR1
cm4gYyYmYy5nZXRUaW1lKCk8KG5ldyBEYXRlKS5nZXRUaW1lKCk/ImludmFsaWQi
Omh9O3RoaXMudG9rZW49ZnVuY3Rpb24oKXtyZXR1cm4gZ307ZC5leGlzdHMoYSl8
fChhPSIiKTt0cnl7YT1kLnRlYS5kZWNyeXB0KGEsIjM2UVhxNFdAR1NCVl50ZVIi
KTt2YXIgYj1hLnNwbGl0KCIvIik7KGg9YlswXSl8fChoPSJmcmVlIik7Zz1iWzFd
O2JbMl0mJjA8cGFyc2VJbnQoYlsyXSkmJihjPW5ldyBEYXRlLGMuc2V0VGltZShT
dHJpbmcoYlsyXSkpKX1jYXRjaChlKXtoPSJpbnZhbGlkIn19fShqd3BsYXllci51
dGlscyksZnVuY3Rpb24oZCl7dmFyIGE9CmQudGVhPXt9O2EuZW5jcnlwdD1mdW5j
dGlvbihjLGIpe2lmKDA9PWMubGVuZ3RoKXJldHVybiIiO3ZhciBlPWEuc3RyVG9M
b25ncyhnLmVuY29kZShjKSk7MT49ZS5sZW5ndGgmJihlWzFdPTApO2Zvcih2YXIg
az1hLnN0clRvTG9uZ3MoZy5lbmNvZGUoYikuc2xpY2UoMCwxNikpLGw9ZS5sZW5n
dGgsZD1lW2wtMV0sbj1lWzBdLHEsaj1NYXRoLmZsb29yKDYrNTIvbCksZj0wOzA8
ai0tOyl7Zis9MjY1NDQzNTc2OTtxPWY+Pj4yJjM7Zm9yKHZhciByPTA7cjxsO3Ir
KyluPWVbKHIrMSklbF0sZD0oZD4+PjVebjw8MikrKG4+Pj4zXmQ8PDQpXihmXm4p
KyhrW3ImM15xXV5kKSxkPWVbcl0rPWR9ZT1hLmxvbmdzVG9TdHIoZSk7cmV0dXJu
IGguZW5jb2RlKGUpfTthLmRlY3J5cHQ9ZnVuY3Rpb24oYyxiKXtpZigwPT1jLmxl
bmd0aClyZXR1cm4iIjtmb3IodmFyIGU9YS5zdHJUb0xvbmdzKGguZGVjb2RlKGMp
KSxrPWEuc3RyVG9Mb25ncyhnLmVuY29kZShiKS5zbGljZSgwLDE2KSksZD1lLmxl
bmd0aCwKbT1lW2QtMV0sbj1lWzBdLHEsaj0yNjU0NDM1NzY5Kk1hdGguZmxvb3Io
Nis1Mi9kKTswIT1qOyl7cT1qPj4+MiYzO2Zvcih2YXIgZj1kLTE7MDw9ZjtmLS0p
bT1lWzA8Zj9mLTE6ZC0xXSxtPShtPj4+NV5uPDwyKSsobj4+PjNebTw8NCleKGpe
bikrKGtbZiYzXnFdXm0pLG49ZVtmXS09bTtqLT0yNjU0NDM1NzY5fWU9YS5sb25n
c1RvU3RyKGUpO2U9ZS5yZXBsYWNlKC9cMCskLywiIik7cmV0dXJuIGcuZGVjb2Rl
KGUpfTthLnN0clRvTG9uZ3M9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPUFycmF5KE1h
dGguY2VpbChhLmxlbmd0aC80KSksZT0wO2U8Yi5sZW5ndGg7ZSsrKWJbZV09YS5j
aGFyQ29kZUF0KDQqZSkrKGEuY2hhckNvZGVBdCg0KmUrMSk8PDgpKyhhLmNoYXJD
b2RlQXQoNCplKzIpPDwxNikrKGEuY2hhckNvZGVBdCg0KmUrMyk8PDI0KTtyZXR1
cm4gYn07YS5sb25nc1RvU3RyPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1BcnJheShh
Lmxlbmd0aCksZT0wO2U8YS5sZW5ndGg7ZSsrKWJbZV09ClN0cmluZy5mcm9tQ2hh
ckNvZGUoYVtlXSYyNTUsYVtlXT4+PjgmMjU1LGFbZV0+Pj4xNiYyNTUsYVtlXT4+
PjI0JjI1NSk7cmV0dXJuIGIuam9pbigiIil9O3ZhciBoPXtjb2RlOiJBQkNERUZH
SElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEy
MzQ1Njc4OSsvXHgzZCIsZW5jb2RlOmZ1bmN0aW9uKGEsYil7dmFyIGUsayxkLG0s
bj1bXSxxPSIiLGosZixyPWguY29kZTtmPSgidW5kZWZpbmVkIj09dHlwZW9mIGI/
MDpiKT9nLmVuY29kZShhKTphO2o9Zi5sZW5ndGglMztpZigwPGopZm9yKDszPmor
KzspcSs9Ilx4M2QiLGYrPSJceDAwIjtmb3Ioaj0wO2o8Zi5sZW5ndGg7ais9Myll
PWYuY2hhckNvZGVBdChqKSxrPWYuY2hhckNvZGVBdChqKzEpLGQ9Zi5jaGFyQ29k
ZUF0KGorMiksbT1lPDwxNnxrPDw4fGQsZT1tPj4xOCY2MyxrPW0+PjEyJjYzLGQ9
bT4+NiY2MyxtJj02MyxuW2ovM109ci5jaGFyQXQoZSkrci5jaGFyQXQoaykrci5j
aGFyQXQoZCkrCnIuY2hhckF0KG0pO249bi5qb2luKCIiKTtyZXR1cm4gbj1uLnNs
aWNlKDAsbi5sZW5ndGgtcS5sZW5ndGgpK3F9LGRlY29kZTpmdW5jdGlvbihhLGIp
e2I9InVuZGVmaW5lZCI9PXR5cGVvZiBiPyExOmI7dmFyIGUsayxkLG0sbixxPVtd
LGosZj1oLmNvZGU7aj1iP2cuZGVjb2RlKGEpOmE7Zm9yKHZhciByPTA7cjxqLmxl
bmd0aDtyKz00KWU9Zi5pbmRleE9mKGouY2hhckF0KHIpKSxrPWYuaW5kZXhPZihq
LmNoYXJBdChyKzEpKSxtPWYuaW5kZXhPZihqLmNoYXJBdChyKzIpKSxuPWYuaW5k
ZXhPZihqLmNoYXJBdChyKzMpKSxkPWU8PDE4fGs8PDEyfG08PDZ8bixlPWQ+Pj4x
NiYyNTUsaz1kPj4+OCYyNTUsZCY9MjU1LHFbci80XT1TdHJpbmcuZnJvbUNoYXJD
b2RlKGUsayxkKSw2ND09biYmKHFbci80XT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUs
aykpLDY0PT1tJiYocVtyLzRdPVN0cmluZy5mcm9tQ2hhckNvZGUoZSkpO209cS5q
b2luKCIiKTtyZXR1cm4gYj9nLmRlY29kZShtKTptfX0sCmc9e2VuY29kZTpmdW5j
dGlvbihhKXthPWEucmVwbGFjZSgvW1x1MDA4MC1cdTA3ZmZdL2csZnVuY3Rpb24o
YSl7YT1hLmNoYXJDb2RlQXQoMCk7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUo
MTkyfGE+PjYsMTI4fGEmNjMpfSk7cmV0dXJuIGE9YS5yZXBsYWNlKC9bXHUwODAw
LVx1ZmZmZl0vZyxmdW5jdGlvbihhKXthPWEuY2hhckNvZGVBdCgwKTtyZXR1cm4g
U3RyaW5nLmZyb21DaGFyQ29kZSgyMjR8YT4+MTIsMTI4fGE+PjYmNjMsMTI4fGEm
NjMpfSl9LGRlY29kZTpmdW5jdGlvbihhKXthPWEucmVwbGFjZSgvW1x1MDBlMC1c
dTAwZWZdW1x1MDA4MC1cdTAwYmZdW1x1MDA4MC1cdTAwYmZdL2csZnVuY3Rpb24o
YSl7YT0oYS5jaGFyQ29kZUF0KDApJjE1KTw8MTJ8KGEuY2hhckNvZGVBdCgxKSY2
Myk8PDZ8YS5jaGFyQ29kZUF0KDIpJjYzO3JldHVybiBTdHJpbmcuZnJvbUNoYXJD
b2RlKGEpfSk7cmV0dXJuIGE9YS5yZXBsYWNlKC9bXHUwMGMwLVx1MDBkZl1bXHUw
MDgwLVx1MDBiZl0vZywKZnVuY3Rpb24oYSl7YT0oYS5jaGFyQ29kZUF0KDApJjMx
KTw8NnxhLmNoYXJDb2RlQXQoMSkmNjM7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNv
ZGUoYSl9KX19fShqd3BsYXllci51dGlscyksZnVuY3Rpb24oZCl7ZC5ldmVudHM9
e0NPTVBMRVRFOiJDT01QTEVURSIsRVJST1I6IkVSUk9SIixBUElfUkVBRFk6Imp3
cGxheWVyQVBJUmVhZHkiLEpXUExBWUVSX1JFQURZOiJqd3BsYXllclJlYWR5IixK
V1BMQVlFUl9GVUxMU0NSRUVOOiJqd3BsYXllckZ1bGxzY3JlZW4iLEpXUExBWUVS
X1JFU0laRToiandwbGF5ZXJSZXNpemUiLEpXUExBWUVSX0VSUk9SOiJqd3BsYXll
ckVycm9yIixKV1BMQVlFUl9NRURJQV9CRUZPUkVQTEFZOiJqd3BsYXllck1lZGlh
QmVmb3JlUGxheSIsSldQTEFZRVJfTUVESUFfQkVGT1JFQ09NUExFVEU6Imp3cGxh
eWVyTWVkaWFCZWZvcmVDb21wbGV0ZSIsSldQTEFZRVJfQ09NUE9ORU5UX1NIT1c6
Imp3cGxheWVyQ29tcG9uZW50U2hvdyIsSldQTEFZRVJfQ09NUE9ORU5UX0hJREU6
Imp3cGxheWVyQ29tcG9uZW50SGlkZSIsCkpXUExBWUVSX01FRElBX0JVRkZFUjoi
andwbGF5ZXJNZWRpYUJ1ZmZlciIsSldQTEFZRVJfTUVESUFfQlVGRkVSX0ZVTEw6
Imp3cGxheWVyTWVkaWFCdWZmZXJGdWxsIixKV1BMQVlFUl9NRURJQV9FUlJPUjoi
andwbGF5ZXJNZWRpYUVycm9yIixKV1BMQVlFUl9NRURJQV9MT0FERUQ6Imp3cGxh
eWVyTWVkaWFMb2FkZWQiLEpXUExBWUVSX01FRElBX0NPTVBMRVRFOiJqd3BsYXll
ck1lZGlhQ29tcGxldGUiLEpXUExBWUVSX01FRElBX1NFRUs6Imp3cGxheWVyTWVk
aWFTZWVrIixKV1BMQVlFUl9NRURJQV9USU1FOiJqd3BsYXllck1lZGlhVGltZSIs
SldQTEFZRVJfTUVESUFfVk9MVU1FOiJqd3BsYXllck1lZGlhVm9sdW1lIixKV1BM
QVlFUl9NRURJQV9NRVRBOiJqd3BsYXllck1lZGlhTWV0YSIsSldQTEFZRVJfTUVE
SUFfTVVURToiandwbGF5ZXJNZWRpYU11dGUiLEpXUExBWUVSX01FRElBX0xFVkVM
UzoiandwbGF5ZXJNZWRpYUxldmVscyIsSldQTEFZRVJfTUVESUFfTEVWRUxfQ0hB
TkdFRDoiandwbGF5ZXJNZWRpYUxldmVsQ2hhbmdlZCIsCkpXUExBWUVSX0NBUFRJ
T05TX0NIQU5HRUQ6Imp3cGxheWVyQ2FwdGlvbnNDaGFuZ2VkIixKV1BMQVlFUl9D
QVBUSU9OU19MSVNUOiJqd3BsYXllckNhcHRpb25zTGlzdCIsSldQTEFZRVJfUExB
WUVSX1NUQVRFOiJqd3BsYXllclBsYXllclN0YXRlIixzdGF0ZTp7QlVGRkVSSU5H
OiJCVUZGRVJJTkciLElETEU6IklETEUiLFBBVVNFRDoiUEFVU0VEIixQTEFZSU5H
OiJQTEFZSU5HIn0sSldQTEFZRVJfUExBWUxJU1RfTE9BREVEOiJqd3BsYXllclBs
YXlsaXN0TG9hZGVkIixKV1BMQVlFUl9QTEFZTElTVF9JVEVNOiJqd3BsYXllclBs
YXlsaXN0SXRlbSIsSldQTEFZRVJfUExBWUxJU1RfQ09NUExFVEU6Imp3cGxheWVy
UGxheWxpc3RDb21wbGV0ZSIsSldQTEFZRVJfRElTUExBWV9DTElDSzoiandwbGF5
ZXJWaWV3Q2xpY2siLEpXUExBWUVSX0NPTlRST0xTOiJqd3BsYXllclZpZXdDb250
cm9scyIsSldQTEFZRVJfSU5TVFJFQU1fQ0xJQ0s6Imp3cGxheWVySW5zdHJlYW1D
bGlja2VkIiwKSldQTEFZRVJfSU5TVFJFQU1fREVTVFJPWUVEOiJqd3BsYXllcklu
c3RyZWFtRGVzdHJveWVkIn19KGp3cGxheWVyKSxmdW5jdGlvbihkKXt2YXIgYT1q
d3BsYXllci51dGlscztkLmV2ZW50ZGlzcGF0Y2hlcj1mdW5jdGlvbihkLGcpe3Zh
ciBjLGI7dGhpcy5yZXNldEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7Yz17fTti
PVtdfTt0aGlzLnJlc2V0RXZlbnRMaXN0ZW5lcnMoKTt0aGlzLmFkZEV2ZW50TGlz
dGVuZXI9ZnVuY3Rpb24oYixrLGQpe3RyeXthLmV4aXN0cyhjW2JdKXx8KGNbYl09
W10pLCJzdHJpbmciPT1hLnR5cGVPZihrKSYmKGs9KG5ldyBGdW5jdGlvbigicmV0
dXJuICIraykpKCkpLGNbYl0ucHVzaCh7bGlzdGVuZXI6ayxjb3VudDpkfSl9Y2F0
Y2goZyl7YS5sb2coImVycm9yIixnKX1yZXR1cm4hMX07dGhpcy5yZW1vdmVFdmVu
dExpc3RlbmVyPWZ1bmN0aW9uKGIsZCl7aWYoY1tiXSl7dHJ5e2Zvcih2YXIgZz0w
O2c8Y1tiXS5sZW5ndGg7ZysrKWlmKGNbYl1bZ10ubGlzdGVuZXIudG9TdHJpbmco
KT09CmQudG9TdHJpbmcoKSl7Y1tiXS5zcGxpY2UoZywxKTticmVha319Y2F0Y2go
aCl7YS5sb2coImVycm9yIixoKX1yZXR1cm4hMX19O3RoaXMuYWRkR2xvYmFsTGlz
dGVuZXI9ZnVuY3Rpb24oZSxjKXt0cnl7InN0cmluZyI9PWEudHlwZU9mKGUpJiYo
ZT0obmV3IEZ1bmN0aW9uKCJyZXR1cm4gIitlKSkoKSksYi5wdXNoKHtsaXN0ZW5l
cjplLGNvdW50OmN9KX1jYXRjaChkKXthLmxvZygiZXJyb3IiLGQpfXJldHVybiEx
fTt0aGlzLnJlbW92ZUdsb2JhbExpc3RlbmVyPWZ1bmN0aW9uKGUpe2lmKGUpe3Ry
eXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKylpZihiW2NdLmxpc3RlbmVyLnRv
U3RyaW5nKCk9PWUudG9TdHJpbmcoKSl7Yi5zcGxpY2UoYywxKTticmVha319Y2F0
Y2goZCl7YS5sb2coImVycm9yIixkKX1yZXR1cm4hMX19O3RoaXMuc2VuZEV2ZW50
PWZ1bmN0aW9uKGUsayl7YS5leGlzdHMoayl8fChrPXt9KTthLmV4dGVuZChrLHtp
ZDpkLHZlcnNpb246andwbGF5ZXIudmVyc2lvbiwKdHlwZTplfSk7ZyYmYS5sb2co
ZSxrKTtpZigidW5kZWZpbmVkIiE9YS50eXBlT2YoY1tlXSkpZm9yKHZhciBsPTA7
bDxjW2VdLmxlbmd0aDtsKyspe3RyeXtjW2VdW2xdLmxpc3RlbmVyKGspfWNhdGNo
KG0pe2EubG9nKCJUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgaGFuZGxpbmcgYSBs
aXN0ZW5lcjogIittLnRvU3RyaW5nKCksY1tlXVtsXS5saXN0ZW5lcil9Y1tlXVts
XSYmKDE9PT1jW2VdW2xdLmNvdW50P2RlbGV0ZSBjW2VdW2xdOjA8Y1tlXVtsXS5j
b3VudCYmKGNbZV1bbF0uY291bnQtPTEpKX1mb3IobD0wO2w8Yi5sZW5ndGg7bCsr
KXt0cnl7YltsXS5saXN0ZW5lcihrKX1jYXRjaChuKXthLmxvZygiVGhlcmUgd2Fz
IGFuIGVycm9yIHdoaWxlIGhhbmRsaW5nIGEgbGlzdGVuZXI6ICIrbi50b1N0cmlu
ZygpLGJbbF0ubGlzdGVuZXIpfWJbbF0mJigxPT09YltsXS5jb3VudD9kZWxldGUg
YltsXTowPGJbbF0uY291bnQmJihiW2xdLmNvdW50LT0xKSl9fX19KGp3cGxheWVy
LmV2ZW50cyksCmZ1bmN0aW9uKGQpe3ZhciBhPXt9LGg9e307ZC5wbHVnaW5zPWZ1
bmN0aW9uKCl7fTtkLnBsdWdpbnMubG9hZFBsdWdpbnM9ZnVuY3Rpb24oZyxjKXto
W2ddPW5ldyBkLnBsdWdpbnMucGx1Z2lubG9hZGVyKG5ldyBkLnBsdWdpbnMubW9k
ZWwoYSksYyk7cmV0dXJuIGhbZ119O2QucGx1Z2lucy5yZWdpc3RlclBsdWdpbj1m
dW5jdGlvbihnLGMsYixlKXt2YXIgaz1kLnV0aWxzLmdldFBsdWdpbk5hbWUoZyk7
YVtrXXx8KGFba109bmV3IGQucGx1Z2lucy5wbHVnaW4oZykpO2Fba10ucmVnaXN0
ZXJQbHVnaW4oZyxjLGIsZSl9fShqd3BsYXllciksZnVuY3Rpb24oZCl7ZC5wbHVn
aW5zLm1vZGVsPWZ1bmN0aW9uKGEpe3RoaXMuYWRkUGx1Z2luPWZ1bmN0aW9uKGgp
e3ZhciBnPWQudXRpbHMuZ2V0UGx1Z2luTmFtZShoKTthW2ddfHwoYVtnXT1uZXcg
ZC5wbHVnaW5zLnBsdWdpbihoKSk7cmV0dXJuIGFbZ119O3RoaXMuZ2V0UGx1Z2lu
cz1mdW5jdGlvbigpe3JldHVybiBhfX19KGp3cGxheWVyKSwKZnVuY3Rpb24oZCl7
dmFyIGE9andwbGF5ZXIudXRpbHMsaD1qd3BsYXllci5ldmVudHM7ZC5wbHVnaW5t
b2Rlcz17RkxBU0g6MCxKQVZBU0NSSVBUOjEsSFlCUklEOjJ9O2QucGx1Z2luPWZ1
bmN0aW9uKGcpe2Z1bmN0aW9uIGMoKXtzd2l0Y2goYS5nZXRQbHVnaW5QYXRoVHlw
ZShnKSl7Y2FzZSBhLnBsdWdpblBhdGhUeXBlLkFCU09MVVRFOnJldHVybiBnO2Nh
c2UgYS5wbHVnaW5QYXRoVHlwZS5SRUxBVElWRTpyZXR1cm4gYS5nZXRBYnNvbHV0
ZVBhdGgoZyx3aW5kb3cubG9jYXRpb24uaHJlZil9fWZ1bmN0aW9uIGIoKXtxPXNl
dFRpbWVvdXQoZnVuY3Rpb24oKXtrPWEubG9hZGVyc3RhdHVzLkNPTVBMRVRFO2ou
c2VuZEV2ZW50KGguQ09NUExFVEUpfSwxRTMpfWZ1bmN0aW9uIGUoKXtrPWEubG9h
ZGVyc3RhdHVzLkVSUk9SO2ouc2VuZEV2ZW50KGguRVJST1IpfXZhciBrPWEubG9h
ZGVyc3RhdHVzLk5FVyxsLG0sbixxLGo9bmV3IGguZXZlbnRkaXNwYXRjaGVyO2Eu
ZXh0ZW5kKHRoaXMsCmopO3RoaXMubG9hZD1mdW5jdGlvbigpe2lmKGs9PWEubG9h
ZGVyc3RhdHVzLk5FVylpZigwPGcubGFzdEluZGV4T2YoIi5zd2YiKSlsPWcsaz1h
LmxvYWRlcnN0YXR1cy5DT01QTEVURSxqLnNlbmRFdmVudChoLkNPTVBMRVRFKTtl
bHNlIGlmKGEuZ2V0UGx1Z2luUGF0aFR5cGUoZyk9PWEucGx1Z2luUGF0aFR5cGUu
Q0ROKWs9YS5sb2FkZXJzdGF0dXMuQ09NUExFVEUsai5zZW5kRXZlbnQoaC5DT01Q
TEVURSk7ZWxzZXtrPWEubG9hZGVyc3RhdHVzLkxPQURJTkc7dmFyIGY9bmV3IGEu
c2NyaXB0bG9hZGVyKGMoKSk7Zi5hZGRFdmVudExpc3RlbmVyKGguQ09NUExFVEUs
Yik7Zi5hZGRFdmVudExpc3RlbmVyKGguRVJST1IsZSk7Zi5sb2FkKCl9fTt0aGlz
LnJlZ2lzdGVyUGx1Z2luPWZ1bmN0aW9uKGIsZSxjLGQpe3EmJihjbGVhclRpbWVv
dXQocSkscT12b2lkIDApO249ZTtjJiZkPyhsPWQsbT1jKToic3RyaW5nIj09dHlw
ZW9mIGM/bD1jOiJmdW5jdGlvbiI9PXR5cGVvZiBjP209YzoKIWMmJiFkJiYobD1i
KTtrPWEubG9hZGVyc3RhdHVzLkNPTVBMRVRFO2ouc2VuZEV2ZW50KGguQ09NUExF
VEUpfTt0aGlzLmdldFN0YXR1cz1mdW5jdGlvbigpe3JldHVybiBrfTt0aGlzLmdl
dFBsdWdpbk5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRQbHVnaW5OYW1lKGcp
fTt0aGlzLmdldEZsYXNoUGF0aD1mdW5jdGlvbigpe2lmKGwpc3dpdGNoKGEuZ2V0
UGx1Z2luUGF0aFR5cGUobCkpe2Nhc2UgYS5wbHVnaW5QYXRoVHlwZS5BQlNPTFVU
RTpyZXR1cm4gbDtjYXNlIGEucGx1Z2luUGF0aFR5cGUuUkVMQVRJVkU6cmV0dXJu
IDA8Zy5sYXN0SW5kZXhPZigiLnN3ZiIpP2EuZ2V0QWJzb2x1dGVQYXRoKGwsd2lu
ZG93LmxvY2F0aW9uLmhyZWYpOmEuZ2V0QWJzb2x1dGVQYXRoKGwsYygpKX1yZXR1
cm4gbnVsbH07dGhpcy5nZXRKUz1mdW5jdGlvbigpe3JldHVybiBtfTt0aGlzLmdl
dFRhcmdldD1mdW5jdGlvbigpe3JldHVybiBufTt0aGlzLmdldFBsdWdpbm1vZGU9
ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9CnR5cGVvZiBsJiYidW5kZWZpbmVk
IiE9dHlwZW9mIG0pcmV0dXJuIGQucGx1Z2lubW9kZXMuSFlCUklEO2lmKCJ1bmRl
ZmluZWQiIT10eXBlb2YgbClyZXR1cm4gZC5wbHVnaW5tb2Rlcy5GTEFTSDtpZigi
dW5kZWZpbmVkIiE9dHlwZW9mIG0pcmV0dXJuIGQucGx1Z2lubW9kZXMuSkFWQVND
UklQVH07dGhpcy5nZXROZXdJbnN0YW5jZT1mdW5jdGlvbihhLGIsZSl7cmV0dXJu
IG5ldyBtKGEsYixlKX07dGhpcy5nZXRVUkw9ZnVuY3Rpb24oKXtyZXR1cm4gZ319
fShqd3BsYXllci5wbHVnaW5zKSxmdW5jdGlvbihkKXt2YXIgYT1kLnV0aWxzLGg9
ZC5ldmVudHM7ZC5wbHVnaW5zLnBsdWdpbmxvYWRlcj1mdW5jdGlvbihnLGMpe2Z1
bmN0aW9uIGIoKXttP2ouc2VuZEV2ZW50KGguRVJST1Ise21lc3NhZ2U6bn0pOmx8
fChsPSEwLGs9YS5sb2FkZXJzdGF0dXMuQ09NUExFVEUsai5zZW5kRXZlbnQoaC5D
T01QTEVURSkpfWZ1bmN0aW9uIGUoKXtxfHxiKCk7aWYoIWwmJiFtKXt2YXIgZT0w
LApjPWcuZ2V0UGx1Z2lucygpLGY7Zm9yKGYgaW4gcSl7dmFyIGs9YS5nZXRQbHVn
aW5OYW1lKGYpLGg9Y1trXSxrPWguZ2V0SlMoKSxqPWguZ2V0VGFyZ2V0KCksaD1o
LmdldFN0YXR1cygpO2lmKGg9PWEubG9hZGVyc3RhdHVzLkxPQURJTkd8fGg9PWEu
bG9hZGVyc3RhdHVzLk5FVyllKys7ZWxzZSBpZihrJiYoIWp8fHBhcnNlRmxvYXQo
aik+cGFyc2VGbG9hdChkLnZlcnNpb24pKSltPSEwLG49IkluY29tcGF0aWJsZSBw
bGF5ZXIgdmVyc2lvbiIsYigpfTA9PWUmJmIoKX19dmFyIGs9YS5sb2FkZXJzdGF0
dXMuTkVXLGw9ITEsbT0hMSxuLHE9YyxqPW5ldyBoLmV2ZW50ZGlzcGF0Y2hlcjth
LmV4dGVuZCh0aGlzLGopO3RoaXMuc2V0dXBQbHVnaW5zPWZ1bmN0aW9uKGIsZSxj
KXt2YXIgZj17bGVuZ3RoOjAscGx1Z2luczp7fX0sZD0wLGs9e30saD1nLmdldFBs
dWdpbnMoKSxsO2ZvcihsIGluIGUucGx1Z2lucyl7dmFyIGo9YS5nZXRQbHVnaW5O
YW1lKGwpLG09aFtqXSxCPW0uZ2V0Rmxhc2hQYXRoKCksCm49bS5nZXRKUygpLHE9
bS5nZXRVUkwoKTtCJiYoZi5wbHVnaW5zW0JdPWEuZXh0ZW5kKHt9LGUucGx1Z2lu
c1tsXSksZi5wbHVnaW5zW0JdLnBsdWdpbm1vZGU9bS5nZXRQbHVnaW5tb2RlKCks
Zi5sZW5ndGgrKyk7dHJ5e2lmKG4mJmUucGx1Z2lucyYmZS5wbHVnaW5zW3FdKXt2
YXIgdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2LmlkPWIuaWQrIl8i
K2o7di5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO3Yuc3R5bGUudG9wPTA7di5z
dHlsZS56SW5kZXg9ZCsxMDtrW2pdPW0uZ2V0TmV3SW5zdGFuY2UoYixhLmV4dGVu
ZCh7fSxlLnBsdWdpbnNbcV0pLHYpO2QrKztiLm9uUmVhZHkoYyhrW2pdLHYsITAp
KTtiLm9uUmVzaXplKGMoa1tqXSx2KSl9fWNhdGNoKEMpe2EubG9nKCJFUlJPUjog
RmFpbGVkIHRvIGxvYWQgIitqKyIuIil9fWIucGx1Z2lucz1rO3JldHVybiBmfTt0
aGlzLmxvYWQ9ZnVuY3Rpb24oKXtpZighKGEuZXhpc3RzKGMpJiYib2JqZWN0IiE9
YS50eXBlT2YoYykpKXtrPQphLmxvYWRlcnN0YXR1cy5MT0FESU5HO2Zvcih2YXIg
YiBpbiBjKWlmKGEuZXhpc3RzKGIpKXt2YXIgZD1nLmFkZFBsdWdpbihiKTtkLmFk
ZEV2ZW50TGlzdGVuZXIoaC5DT01QTEVURSxlKTtkLmFkZEV2ZW50TGlzdGVuZXIo
aC5FUlJPUixmKX1kPWcuZ2V0UGx1Z2lucygpO2ZvcihiIGluIGQpZFtiXS5sb2Fk
KCl9ZSgpfTt2YXIgZj10aGlzLnBsdWdpbkZhaWxlZD1mdW5jdGlvbigpe218fCht
PSEwLG49IkZpbGUgbm90IGZvdW5kIixiKCkpfTt0aGlzLmdldFN0YXR1cz1mdW5j
dGlvbigpe3JldHVybiBrfX19KGp3cGxheWVyKSxmdW5jdGlvbihkKXtkLnBsYXls
aXN0PWZ1bmN0aW9uKGEpe3ZhciBoPVtdO2lmKCJhcnJheSI9PWQudXRpbHMudHlw
ZU9mKGEpKWZvcih2YXIgZz0wO2c8YS5sZW5ndGg7ZysrKWgucHVzaChuZXcgZC5w
bGF5bGlzdC5pdGVtKGFbZ10pKTtlbHNlIGgucHVzaChuZXcgZC5wbGF5bGlzdC5p
dGVtKGEpKTtyZXR1cm4gaH19KGp3cGxheWVyKSxmdW5jdGlvbihkKXt2YXIgYT0K
ZC5pdGVtPWZ1bmN0aW9uKGgpe3ZhciBnPWp3cGxheWVyLnV0aWxzLGM9Zy5leHRl
bmQoe30sYS5kZWZhdWx0cyxoKTtjLnRyYWNrcz1nLmV4aXN0cyhoLnRyYWNrcyk/
aC50cmFja3M6W107MD09Yy5zb3VyY2VzLmxlbmd0aCYmKGMuc291cmNlcz1bbmV3
IGQuc291cmNlKGMpXSk7Zm9yKHZhciBiPTA7YjxjLnNvdXJjZXMubGVuZ3RoO2Ir
Kyl7dmFyIGU9Yy5zb3VyY2VzW2JdWyJkZWZhdWx0Il07Yy5zb3VyY2VzW2JdWyJk
ZWZhdWx0Il09ZT8idHJ1ZSI9PWUudG9TdHJpbmcoKTohMTtjLnNvdXJjZXNbYl09
bmV3IGQuc291cmNlKGMuc291cmNlc1tiXSl9aWYoYy5jYXB0aW9ucyYmIWcuZXhp
c3RzKGgudHJhY2tzKSl7Zm9yKGg9MDtoPGMuY2FwdGlvbnMubGVuZ3RoO2grKylj
LnRyYWNrcy5wdXNoKGMuY2FwdGlvbnNbaF0pO2RlbGV0ZSBjLmNhcHRpb25zfWZv
cihiPTA7YjxjLnRyYWNrcy5sZW5ndGg7YisrKWMudHJhY2tzW2JdPW5ldyBkLnRy
YWNrKGMudHJhY2tzW2JdKTtyZXR1cm4gY307CmEuZGVmYXVsdHM9e2Rlc2NyaXB0
aW9uOiIiLGltYWdlOiIiLG1lZGlhaWQ6IiIsdGl0bGU6IiIsc291cmNlczpbXSx0
cmFja3M6W119fShqd3BsYXllci5wbGF5bGlzdCksZnVuY3Rpb24oZCl7dmFyIGE9
andwbGF5ZXIudXRpbHMsaD17ZmlsZTp2b2lkIDAsbGFiZWw6dm9pZCAwLHR5cGU6
dm9pZCAwLCJkZWZhdWx0Ijp2b2lkIDB9O2Quc291cmNlPWZ1bmN0aW9uKGQpe3Zh
ciBjPWEuZXh0ZW5kKHt9LGgpLGI7Zm9yKGIgaW4gaClhLmV4aXN0cyhkW2JdKSYm
KGNbYl09ZFtiXSxkZWxldGUgZFtiXSk7Yy50eXBlJiYwPGMudHlwZS5pbmRleE9m
KCIvIikmJihjLnR5cGU9YS5leHRlbnNpb25tYXAubWltZVR5cGUoYy50eXBlKSk7
Im0zdTgiPT1jLnR5cGUmJihjLnR5cGU9ImhscyIpOyJzbWlsIj09Yy50eXBlJiYo
Yy50eXBlPSJydG1wIik7cmV0dXJuIGN9fShqd3BsYXllci5wbGF5bGlzdCksZnVu
Y3Rpb24oZCl7dmFyIGE9andwbGF5ZXIudXRpbHMsaD17ZmlsZTp2b2lkIDAsbGFi
ZWw6dm9pZCAwLApraW5kOiJjYXB0aW9ucyIsImRlZmF1bHQiOiExfTtkLnRyYWNr
PWZ1bmN0aW9uKGQpe3ZhciBjPWEuZXh0ZW5kKHt9LGgpO2R8fChkPXt9KTtmb3Io
dmFyIGIgaW4gaClhLmV4aXN0cyhkW2JdKSYmKGNbYl09ZFtiXSxkZWxldGUgZFti
XSk7cmV0dXJuIGN9fShqd3BsYXllci5wbGF5bGlzdCksZnVuY3Rpb24oZCl7dmFy
IGE9ZC51dGlscyxoPWQuZXZlbnRzLGc9ZG9jdW1lbnQsYz1kLmVtYmVkPWZ1bmN0
aW9uKGIpe2Z1bmN0aW9uIGUoYSl7bChuLHArYS5tZXNzYWdlKX1mdW5jdGlvbiBr
KCl7bChuLHArIk5vIHBsYXlhYmxlIHNvdXJjZXMgZm91bmQiKX1mdW5jdGlvbiBs
KGIsZSl7aWYobS5mYWxsYmFjayl7dmFyIGM9Yi5zdHlsZTtjLmJhY2tncm91bmRD
b2xvcj0iIzAwMCI7Yy5jb2xvcj0iI0ZGRiI7Yy53aWR0aD1hLnN0eWxlRGltZW5z
aW9uKG0ud2lkdGgpO2MuaGVpZ2h0PWEuc3R5bGVEaW1lbnNpb24obS5oZWlnaHQp
O2MuZGlzcGxheT0idGFibGUiO2Mub3BhY2l0eT0xO3ZhciBjPQpkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJwIiksZD1jLnN0eWxlO2QudmVydGljYWxBbGlnbj0ibWlk
ZGxlIjtkLnRleHRBbGlnbj0iY2VudGVyIjtkLmRpc3BsYXk9InRhYmxlLWNlbGwi
O2QuZm9udD0iMTVweC8yMHB4IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYi
O2MuaW5uZXJIVE1MPWUucmVwbGFjZSgiOiIsIjpceDNjYnJceDNlIik7Yi5pbm5l
ckhUTUw9IiI7Yi5hcHBlbmRDaGlsZChjKX19dmFyIG09bmV3IGMuY29uZmlnKGIu
Y29uZmlnKSxuLHEsaixmPW0ud2lkdGgscj1tLmhlaWdodCxwPSJFcnJvciBsb2Fk
aW5nIHBsYXllcjogIixzPWQucGx1Z2lucy5sb2FkUGx1Z2lucyhiLmlkLG0ucGx1
Z2lucyk7bS5mYWxsYmFja0RpdiYmKGo9bS5mYWxsYmFja0RpdixkZWxldGUgbS5m
YWxsYmFja0Rpdik7bS5pZD1iLmlkO3E9Zy5nZXRFbGVtZW50QnlJZChiLmlkKTtu
PWcuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5pZD1xLmlkO24uc3R5bGUud2lkdGg9
MDxmLnRvU3RyaW5nKCkuaW5kZXhPZigiJSIpPwpmOmYrInB4IjtuLnN0eWxlLmhl
aWdodD0wPHIudG9TdHJpbmcoKS5pbmRleE9mKCIlIik/cjpyKyJweCI7cS5wYXJl
bnROb2RlLnJlcGxhY2VDaGlsZChuLHEpO2QuZW1iZWQuZXJyb3JTY3JlZW49bDtz
LmFkZEV2ZW50TGlzdGVuZXIoaC5DT01QTEVURSxmdW5jdGlvbigpe2lmKCJhcnJh
eSI9PWEudHlwZU9mKG0ucGxheWxpc3QpJiYyPm0ucGxheWxpc3QubGVuZ3RoJiYo
MD09bS5wbGF5bGlzdC5sZW5ndGh8fCFtLnBsYXlsaXN0WzBdLnNvdXJjZXN8fDA9
PW0ucGxheWxpc3RbMF0uc291cmNlcy5sZW5ndGgpKWsoKTtlbHNlIGlmKHMuZ2V0
U3RhdHVzKCk9PWEubG9hZGVyc3RhdHVzLkNPTVBMRVRFKXtmb3IodmFyIGQ9MDtk
PG0ubW9kZXMubGVuZ3RoO2QrKylpZihtLm1vZGVzW2RdLnR5cGUmJmNbbS5tb2Rl
c1tkXS50eXBlXSl7dmFyIGY9YS5leHRlbmQoe30sbSksZz1uZXcgY1ttLm1vZGVz
W2RdLnR5cGVdKG4sbS5tb2Rlc1tkXSxmLHMsYik7aWYoZy5zdXBwb3J0c0NvbmZp
ZygpKXtnLmFkZEV2ZW50TGlzdGVuZXIoaC5FUlJPUiwKZSk7Zy5lbWJlZCgpO2Q9
YjtmPWYuZXZlbnRzO2c9dm9pZCAwO2ZvcihnIGluIGYpImZ1bmN0aW9uIj09dHlw
ZW9mIGRbZ10mJmRbZ10uY2FsbChkLGZbZ10pO3JldHVybiBifX1tLmZhbGxiYWNr
PyhhLmxvZygiTm8gc3VpdGFibGUgcGxheWVycyBmb3VuZCBhbmQgZmFsbGJhY2sg
ZW5hYmxlZCIpLG5ldyBjLmRvd25sb2FkKG4sbSxrKSk6KGEubG9nKCJObyBzdWl0
YWJsZSBwbGF5ZXJzIGZvdW5kIGFuZCBmYWxsYmFjayBkaXNhYmxlZCIpLG4ucGFy
ZW50Tm9kZS5yZXBsYWNlQ2hpbGQoaixuKSl9fSk7cy5hZGRFdmVudExpc3RlbmVy
KGguRVJST1IsZnVuY3Rpb24oYSl7bChuLCJDb3VsZCBub3QgbG9hZCBwbHVnaW5z
OiAiK2EubWVzc2FnZSl9KTtzLmxvYWQoKTtyZXR1cm4gYn19KGp3cGxheWVyKSxm
dW5jdGlvbihkKXtmdW5jdGlvbiBhKGEpe2lmKGEucGxheWxpc3QpZm9yKHZhciBl
PTA7ZTxhLnBsYXlsaXN0Lmxlbmd0aDtlKyspYS5wbGF5bGlzdFtlXT1uZXcgYyhh
LnBsYXlsaXN0W2VdKTsKZWxzZXt2YXIgZT17fSxkO2ZvcihkIGluIGMuZGVmYXVs
dHMpaChhLGUsZCk7ZS5zb3VyY2VzfHwoYS5sZXZlbHM/KGUuc291cmNlcz1hLmxl
dmVscyxkZWxldGUgYS5sZXZlbHMpOihkPXt9LGgoYSxkLCJmaWxlIiksaChhLGQs
InR5cGUiKSxlLnNvdXJjZXM9ZC5maWxlP1tkXTpbXSkpO2EucGxheWxpc3Q9W25l
dyBjKGUpXX19ZnVuY3Rpb24gaChhLGUsYyl7Zy5leGlzdHMoYVtjXSkmJihlW2Nd
PWFbY10sZGVsZXRlIGFbY10pfXZhciBnPWQudXRpbHMsYz1kLnBsYXlsaXN0Lml0
ZW07KGQuZW1iZWQuY29uZmlnPWZ1bmN0aW9uKGIpe3ZhciBlPXtmYWxsYmFjazoh
MCxoZWlnaHQ6MjcwLHByaW1hcnk6Imh0bWw1Iix3aWR0aDo0ODAsYmFzZTpiLmJh
c2U/Yi5iYXNlOmcuZ2V0U2NyaXB0UGF0aCgiandwbGF5ZXIuanMiKX07Yj1nLmV4
dGVuZChlLGQuZGVmYXVsdHMsYik7dmFyIGU9e3R5cGU6Imh0bWw1IixzcmM6Yi5i
YXNlKyJqd3BsYXllci5odG1sNS5qcyJ9LGM9e3R5cGU6ImZsYXNoIiwKc3JjOmIu
YmFzZSsiandwbGF5ZXIuZmxhc2guc3dmIn07Yi5tb2Rlcz0iZmxhc2giPT1iLnBy
aW1hcnk/W2MsZV06W2UsY107Yi5saXN0YmFyJiYoYi5wbGF5bGlzdHNpemU9Yi5s
aXN0YmFyLnNpemUsYi5wbGF5bGlzdHBvc2l0aW9uPWIubGlzdGJhci5wb3NpdGlv
bik7Yi5mbGFzaHBsYXllciYmKGMuc3JjPWIuZmxhc2hwbGF5ZXIpO2IuaHRtbDVw
bGF5ZXImJihlLnNyYz1iLmh0bWw1cGxheWVyKTthKGIpO3JldHVybiBifSkuYWRk
Q29uZmlnPWZ1bmN0aW9uKGIsYyl7YShjKTtyZXR1cm4gZy5leHRlbmQoYixjKX19
KGp3cGxheWVyKSxmdW5jdGlvbihkKXt2YXIgYT1kLnV0aWxzLGg9ZG9jdW1lbnQ7
ZC5lbWJlZC5kb3dubG9hZD1mdW5jdGlvbihkLGMsYil7ZnVuY3Rpb24gZShhLGIp
e2Zvcih2YXIgYz1oLnF1ZXJ5U2VsZWN0b3JBbGwoYSksZT0wO2U8Yy5sZW5ndGg7
ZSsrKWZvcih2YXIgZCBpbiBiKWNbZV0uc3R5bGVbZF09YltkXX1mdW5jdGlvbiBr
KGEsYixjKXthPWguY3JlYXRlRWxlbWVudChhKTsKYiYmKGEuY2xhc3NOYW1lPSJq
d2Rvd25sb2FkIitiKTtjJiZjLmFwcGVuZENoaWxkKGEpO3JldHVybiBhfXZhciBs
PWEuZXh0ZW5kKHt9LGMpLG0sbj1sLndpZHRoP2wud2lkdGg6NDgwLHE9bC5oZWln
aHQ/bC5oZWlnaHQ6MzIwLGo7Yz1jLmxvZ28/Yy5sb2dvOntwcmVmaXg6YS5yZXBv
KCksZmlsZToibG9nby5wbmciLG1hcmdpbjoxMH07dmFyIGYscjtyPWwucGxheWxp
c3Q7dmFyIHAscyxsPVsibXA0IiwiYWFjIiwibXAzIl07aWYociYmci5sZW5ndGgp
e3A9clswXTtzPXAuc291cmNlcztmb3Iocj0wO3I8cy5sZW5ndGg7cisrKXt2YXIg
dT1zW3JdLHQ9dS50eXBlP3UudHlwZTphLmV4dGVuc2lvbm1hcC5leHRUeXBlKGEu
ZXh0ZW5zaW9uKHUuZmlsZSkpO2lmKHUuZmlsZSlmb3IociBpbiBsKXQ9PWxbcl0/
KG09dS5maWxlLGo9cC5pbWFnZSk6YS5pc1lvdVR1YmUodS5maWxlKSYmKGY9dS5m
aWxlKX1tPyhiPW0sZCYmKG09aygiYSIsImRpc3BsYXkiLGQpLGsoImRpdiIsImlj
b24iLAptKSxrKCJkaXYiLCJsb2dvIixtKSxiJiZtLnNldEF0dHJpYnV0ZSgiaHJl
ZiIsYS5nZXRBYnNvbHV0ZVBhdGgoYikpKSxiPSIjIitkLmlkKyIgLmp3ZG93bmxv
YWQiLGQuc3R5bGUud2lkdGg9IiIsZC5zdHlsZS5oZWlnaHQ9IiIsZShiKyJkaXNw
bGF5Iix7d2lkdGg6YS5zdHlsZURpbWVuc2lvbihNYXRoLm1heCgzMjAsbikpLGhl
aWdodDphLnN0eWxlRGltZW5zaW9uKE1hdGgubWF4KDE4MCxxKSksYmFja2dyb3Vu
ZDoiYmxhY2sgY2VudGVyIG5vLXJlcGVhdCAiKyhqPyJ1cmwoIitqKyIpIjoiIiks
YmFja2dyb3VuZFNpemU6ImNvbnRhaW4iLHBvc2l0aW9uOiJyZWxhdGl2ZSIsYm9y
ZGVyOiJub25lIixkaXNwbGF5OiJibG9jayJ9KSxlKGIrImRpc3BsYXkgZGl2Iix7
cG9zaXRpb246ImFic29sdXRlIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn0p
LGUoYisibG9nbyIse3RvcDpjLm1hcmdpbisicHgiLHJpZ2h0OmMubWFyZ2luKyJw
eCIsYmFja2dyb3VuZDoidG9wIHJpZ2h0IG5vLXJlcGVhdCB1cmwoIisKYy5wcmVm
aXgrYy5maWxlKyIpIn0pLGUoYisiaWNvbiIse2JhY2tncm91bmQ6ImNlbnRlciBu
by1yZXBlYXQgdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FB
QUFOU1VoRVVnQUFBRHdBQUFBOENBWUFBQUE2L05seUFBQUFHWFJGV0hSVGIyWjBk
MkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBZ05KUkVGVWVOcnMy
OGxxd2tBWUIvQ1pxTlZERGoycjZGTjQxUWVJeThGZStnajZCTDI3NVEwOHU5RmJU
OFpkd1Zmb3RTQllFUFVreEZPb2tzNEVLaUpkYUR1VGpNbjN3V0JPMFYvK3N5U1I4
U05TcVZSS0lSOHFhWEhremxxUzlqQ2Z6eldjVENZcDloRjVvKzU5c1Zqc2lSemNl
Z1Nja0Z6Y2pUK3J1TjgwVGVTbEFqQ0FBWHpkSlNHUEZYUnBBQU1Zd0FDR1pRa1Nk
aEc0V0N6ZWhNTmhxVjZ2RzZ2VlNyaXJLVkV3NjZZb1NxRGI3Y3FsVWlsRThKakhk
L3kxTVFlZlZ6cWREbWlhSnBmTFpXSGdYTUhuOEY2dkoxY3FsVkFrRXNHdUFuODNK
NGdBZDJSWnltUXlnWDYvTDFlclZRdCs5WlBXYitDRHdjQ0MyelhHSmFld2wvRGhj
SGhLM0RWaitLZktack1XdkZhcmNZTkxvbUF2NGFQUlNGWlZsVGxjU1BBNWZEd2VX
L0JvTklxRm5LVjUzSnZuY2prTG5zL24vY0xkUys5Mk83UllMTGdzS2Z2OS90OFhs
RG40ZUR5aXcrSEE5Snl6MmV5dDAra1kyKzNXRkM1aGx1ZWowSGE3elFRcTlQUHdk
RHExRXQxc05zeC9uRkJnQ3FXSjhvQUsxYVVwdE5WcWNZV2V3RTRuYWhmVTBZUW5r
NG50VUVmR01JVTJtMDFIb0xhQ0tiVFJhRGdLdGFWTGs5dEJZYUJjRS82QXJ0ZHI0
Ulo1VEI2L2RDKzlpSWUvV2dBTVlBRERwQVVKQXhqQUFBWXdnR0ZaZ29TL0F0Tk5U
RjdaMmJMMEJZUEJWM0p3NXhGd3dXY1l4Z3RCUDVPa0U4aTlHN2FXR09PQ3J1dmF1
d0FEQUxNTE1FYktmNFNkQUFBQUFFbEZUa1N1UW1DQykifSkpOgpmPyhjPWYsZD1r
KCJlbWJlZCIsIiIsZCksZC5zcmM9Imh0dHA6Ly93d3cueW91dHViZS5jb20vdi8i
Ky92Wz1cL10oXHcqKXxcLyhcdyspJHxeKFx3KykkL2kuZXhlYyhjKS5zbGljZSgx
KS5qb2luKCIiKSxkLnR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNo
IixkLndpZHRoPW4sZC5oZWlnaHQ9cSk6YigpfX19KGp3cGxheWVyKSxmdW5jdGlv
bihkKXt2YXIgYT1kLnV0aWxzLGg9ZC5ldmVudHMsZz17fTsoZC5lbWJlZC5mbGFz
aD1mdW5jdGlvbihjLGIsZSxrLGwpe2Z1bmN0aW9uIG0oYSxiLGMpe3ZhciBlPWRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInBhcmFtIik7ZS5zZXRBdHRyaWJ1dGUoIm5h
bWUiLGIpO2Uuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsYyk7YS5hcHBlbmRDaGlsZChl
KX1mdW5jdGlvbiBuKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oKXt0cnl7YyYmZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQobC5pZCsiX3dyYXBwZXIiKS5hcHBlbmRDaGls
ZChiKTt2YXIgZT0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobC5pZCkuZ2V0UGx1
Z2luQ29uZmlnKCJkaXNwbGF5Iik7ImZ1bmN0aW9uIj09dHlwZW9mIGEucmVzaXpl
JiZhLnJlc2l6ZShlLndpZHRoLGUuaGVpZ2h0KTtiLnN0eWxlLmxlZnQ9ZS54O2Iu
c3R5bGUudG9wPWUuaH1jYXRjaChkKXt9fX1mdW5jdGlvbiBxKGIpe2lmKCFiKXJl
dHVybnt9O3ZhciBjPXt9LGU9W10sZDtmb3IoZCBpbiBiKXt2YXIgZj1hLmdldFBs
dWdpbk5hbWUoZCksZz1iW2RdO2UucHVzaChkKTtmb3IodmFyIGsgaW4gZyljW2Yr
Ii4iK2tdPWdba119Yy5wbHVnaW5zPWUuam9pbigiLCIpO3JldHVybiBjfXZhciBq
PW5ldyBkLmV2ZW50cy5ldmVudGRpc3BhdGNoZXIsZj1hLmZsYXNoVmVyc2lvbigp
O2EuZXh0ZW5kKHRoaXMsaik7dGhpcy5lbWJlZD1mdW5jdGlvbigpe2UuaWQ9bC5p
ZDtpZigxMD5mKXJldHVybiBqLnNlbmRFdmVudChoLkVSUk9SLHttZXNzYWdlOiJG
bGFzaCB2ZXJzaW9uIG11c3QgYmUgMTAuMCBvciBncmVhdGVyIn0pLAohMTt2YXIg
ZCxwPWEuZXh0ZW5kKHt9LGUpO2MuaWQrIl93cmFwcGVyIj09Yy5wYXJlbnROb2Rl
LmlkP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGMuaWQrIl93cmFwcGVyIik6KGQ9
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5pZD1jLmlkKyJfd3JhcHBl
ciIsZC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGQuc3R5bGUud2lkdGg9YS5z
dHlsZURpbWVuc2lvbihwLndpZHRoKSxkLnN0eWxlLmhlaWdodD1hLnN0eWxlRGlt
ZW5zaW9uKHAuaGVpZ2h0KSxjLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGQsYyks
ZC5hcHBlbmRDaGlsZChjKSk7ZD1rLnNldHVwUGx1Z2lucyhsLHAsbik7MDxkLmxl
bmd0aD9hLmV4dGVuZChwLHEoZC5wbHVnaW5zKSk6ZGVsZXRlIHAucGx1Z2luczsi
dW5kZWZpbmVkIiE9dHlwZW9mIHBbImRvY2sucG9zaXRpb24iXSYmImZhbHNlIj09
cFsiZG9jay5wb3NpdGlvbiJdLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSYmKHAu
ZG9jaz1wWyJkb2NrLnBvc2l0aW9uIl0sCmRlbGV0ZSBwWyJkb2NrLnBvc2l0aW9u
Il0pO2Q9cC53bW9kZT9wLndtb2RlOnAuaGVpZ2h0JiY0MD49cC5oZWlnaHQ/InRy
YW5zcGFyZW50Ijoib3BhcXVlIjtmb3IodmFyIHM9ImhlaWdodCB3aWR0aCBtb2Rl
cyBldmVudHMgcHJpbWFyeSBiYXNlIGZhbGxiYWNrIHZvbHVtZSIuc3BsaXQoIiAi
KSx1PTA7dTxzLmxlbmd0aDt1KyspZGVsZXRlIHBbc1t1XV07dmFyIHM9YS5nZXRD
b29raWVzKCksdDtmb3IodCBpbiBzKSJ1bmRlZmluZWQiPT10eXBlb2YgcFt0XSYm
KHBbdF09c1t0XSk7dD13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoIi8i
KTt0LnNwbGljZSh0Lmxlbmd0aC0xLDEpO3Q9dC5qb2luKCIvIik7cC5iYXNlPXQr
Ii8iO2dbYy5pZF09cDthLmlzSUUoKT8ocD0nXHgzY29iamVjdCBjbGFzc2lkXHgz
ZCJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiICIg
d2lkdGhceDNkIjEwMCUiIGhlaWdodFx4M2QiMTAwJSIgaWRceDNkIicrYy5pZCsK
JyIgbmFtZVx4M2QiJytjLmlkKyciIHRhYmluZGV4XHgzZDAiIlx4M2UnLHArPSdc
eDNjcGFyYW0gbmFtZVx4M2QibW92aWUiIHZhbHVlXHgzZCInK2Iuc3JjKyciXHgz
ZScscCs9J1x4M2NwYXJhbSBuYW1lXHgzZCJhbGxvd2Z1bGxzY3JlZW4iIHZhbHVl
XHgzZCJ0cnVlIlx4M2VceDNjcGFyYW0gbmFtZVx4M2QiYWxsb3dzY3JpcHRhY2Nl
c3MiIHZhbHVlXHgzZCJhbHdheXMiXHgzZScscCs9J1x4M2NwYXJhbSBuYW1lXHgz
ZCJzZWFtbGVzc3RhYmJpbmciIHZhbHVlXHgzZCJ0cnVlIlx4M2UnLHArPSdceDNj
cGFyYW0gbmFtZVx4M2Qid21vZGUiIHZhbHVlXHgzZCInK2QrJyJceDNlJyxwKz0n
XHgzY3BhcmFtIG5hbWVceDNkImJnY29sb3IiIHZhbHVlXHgzZCIjMDAwMDAwIlx4
M2UnLHArPSJceDNjL29iamVjdFx4M2UiLGMub3V0ZXJIVE1MPXAscD1kb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChjLmlkKSk6KHA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgib2JqZWN0IikscC5zZXRBdHRyaWJ1dGUoInR5cGUiLAoiYXBwbGljYXRpb24v
eC1zaG9ja3dhdmUtZmxhc2giKSxwLnNldEF0dHJpYnV0ZSgiZGF0YSIsYi5zcmMp
LHAuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIjEwMCUiKSxwLnNldEF0dHJpYnV0ZSgi
aGVpZ2h0IiwiMTAwJSIpLHAuc2V0QXR0cmlidXRlKCJiZ2NvbG9yIiwiIzAwMDAw
MCIpLHAuc2V0QXR0cmlidXRlKCJpZCIsYy5pZCkscC5zZXRBdHRyaWJ1dGUoIm5h
bWUiLGMuaWQpLHAuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsMCksbShwLCJhbGxv
d2Z1bGxzY3JlZW4iLCJ0cnVlIiksbShwLCJhbGxvd3NjcmlwdGFjY2VzcyIsImFs
d2F5cyIpLG0ocCwic2VhbWxlc3N0YWJiaW5nIiwidHJ1ZSIpLG0ocCwid21vZGUi
LGQpLGMucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQocCxjKSk7bC5jb250YWluZXI9
cDtsLnNldFBsYXllcihwLCJmbGFzaCIpfTt0aGlzLnN1cHBvcnRzQ29uZmlnPWZ1
bmN0aW9uKCl7aWYoZilpZihlKXtpZigic3RyaW5nIj09YS50eXBlT2YoZS5wbGF5
bGlzdCkpcmV0dXJuITA7CnRyeXt2YXIgYj1lLnBsYXlsaXN0WzBdLnNvdXJjZXM7
aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBiKXJldHVybiEwO2Zvcih2YXIgYz0wO2M8
Yi5sZW5ndGg7YysrKXt2YXIgZDtpZihkPWJbY10uZmlsZSl7dmFyIGc9YltjXS5m
aWxlLGs9YltjXS50eXBlO2lmKGEuaXNZb3VUdWJlKGcpfHxhLmlzUnRtcChnLGsp
fHwiaGxzIj09aylkPSEwO2Vsc2V7dmFyIGg9YS5leHRlbnNpb25tYXBbaz9rOmEu
ZXh0ZW5zaW9uKGcpXTtkPSFoPyExOiEhaC5mbGFzaH19aWYoZClyZXR1cm4hMH19
Y2F0Y2goail7fX1lbHNlIHJldHVybiEwO3JldHVybiExfX0pLmdldFZhcnM9ZnVu
Y3Rpb24oYSl7cmV0dXJuIGdbYV19fShqd3BsYXllciksZnVuY3Rpb24oZCl7dmFy
IGE9ZC51dGlscyxoPWEuZXh0ZW5zaW9ubWFwLGc9ZC5ldmVudHM7ZC5lbWJlZC5o
dG1sNT1mdW5jdGlvbihjLGIsZSxrLGwpe2Z1bmN0aW9uIG0oYSxiLGQpe3JldHVy
biBmdW5jdGlvbigpe3RyeXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIj
IisKYy5pZCsiIC5qd21haW4iKTtkJiZlLmFwcGVuZENoaWxkKGIpOyJmdW5jdGlv
biI9PXR5cGVvZiBhLnJlc2l6ZSYmKGEucmVzaXplKGUuY2xpZW50V2lkdGgsZS5j
bGllbnRIZWlnaHQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnJlc2l6ZShlLmNs
aWVudFdpZHRoLGUuY2xpZW50SGVpZ2h0KX0sNDAwKSk7Yi5sZWZ0PWUuc3R5bGUu
bGVmdDtiLnRvcD1lLnN0eWxlLnRvcH1jYXRjaChnKXt9fX1mdW5jdGlvbiBuKGEp
e3Euc2VuZEV2ZW50KGEudHlwZSx7bWVzc2FnZToiSFRNTDUgcGxheWVyIG5vdCBm
b3VuZCJ9KX12YXIgcT10aGlzLGo9bmV3IGcuZXZlbnRkaXNwYXRjaGVyO2EuZXh0
ZW5kKHEsaik7cS5lbWJlZD1mdW5jdGlvbigpe2lmKGQuaHRtbDUpe2suc2V0dXBQ
bHVnaW5zKGwsZSxtKTtjLmlubmVySFRNTD0iIjt2YXIgZj1kLnV0aWxzLmV4dGVu
ZCh7fSxlKTtkZWxldGUgZi52b2x1bWU7Zj1uZXcgZC5odG1sNS5wbGF5ZXIoZik7
bC5jb250YWluZXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobC5pZCk7Cmwuc2V0
UGxheWVyKGYsImh0bWw1Iil9ZWxzZSBmPW5ldyBhLnNjcmlwdGxvYWRlcihiLnNy
YyksZi5hZGRFdmVudExpc3RlbmVyKGcuRVJST1IsbiksZi5hZGRFdmVudExpc3Rl
bmVyKGcuQ09NUExFVEUscS5lbWJlZCksZi5sb2FkKCl9O3Euc3VwcG9ydHNDb25m
aWc9ZnVuY3Rpb24oKXtpZihkLnZpZC5jYW5QbGF5VHlwZSl0cnl7aWYoInN0cmlu
ZyI9PWEudHlwZU9mKGUucGxheWxpc3QpKXJldHVybiEwO2Zvcih2YXIgYj1lLnBs
YXlsaXN0WzBdLnNvdXJjZXMsYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZzt2YXIg
az1iW2NdLmZpbGUsaj1iW2NdLnR5cGU7aWYobnVsbCE9PW5hdmlnYXRvci51c2Vy
QWdlbnQubWF0Y2goL0JsYWNrQmVycnkvaSl8fGEuaXNBbmRyb2lkKCkmJigibTN1
Ij09YS5leHRlbnNpb24oayl8fCJtM3U4Ij09YS5leHRlbnNpb24oaykpfHxhLmlz
UnRtcChrLGopKWc9ITE7ZWxzZXt2YXIgbD1oW2o/ajphLmV4dGVuc2lvbihrKV0s
bTtpZighbHx8bC5mbGFzaCYmCiFsLmh0bWw1KW09ITE7ZWxzZXt2YXIgbj1sLmh0
bWw1LHE9ZC52aWQ7aWYobil0cnl7bT1xLmNhblBsYXlUeXBlKG4pPyEwOiExfWNh
dGNoKHope209ITF9ZWxzZSBtPSEwfWc9bX1pZihnKXJldHVybiEwfX1jYXRjaChB
KXt9cmV0dXJuITF9fX0oandwbGF5ZXIpLGZ1bmN0aW9uKGQpe3ZhciBhPWQuZW1i
ZWQsaD1kLnV0aWxzLGc9aC5leHRlbmQoZnVuY3Rpb24oYyl7dmFyIGI9aC5yZXBv
KCksZT1jLmNvbmZpZyxnPWUucGx1Z2lucyxsPWUuYW5hbHl0aWNzLG09Yisiandw
c3J2LmpzIixuPWIrInNoYXJpbmcuanMiLHE9YisicmVsYXRlZC5qcyIsaj1iKyJn
YXByby5qcyIsZj0obmV3IGQudXRpbHMua2V5KGQua2V5KSkuZWRpdGlvbigpLGc9
Zz9nOnt9OyJhZHMiPT1mJiZlLmFkdmVydGlzaW5nJiYoZS5hZHZlcnRpc2luZy5j
bGllbnQubWF0Y2goIi5qcyR8LnN3ZiQiKT9nW2UuYWR2ZXJ0aXNpbmcuY2xpZW50
XT1lLmFkdmVydGlzaW5nOmdbYitlLmFkdmVydGlzaW5nLmNsaWVudCsKKCJmbGFz
aCI9PWUucHJpbWFyeT8iLnN3ZiI6Ii5qcyIpXT1lLmFkdmVydGlzaW5nKTtkZWxl
dGUgZS5hZHZlcnRpc2luZztlLmtleT1kLmtleTtlLmFuYWx5dGljcyYmKGUuYW5h
bHl0aWNzLmNsaWVudCYmZS5hbmFseXRpY3MuY2xpZW50Lm1hdGNoKCIuanMkfC5z
d2YkIikpJiYobT1lLmFuYWx5dGljcy5jbGllbnQpO2RlbGV0ZSBlLmFuYWx5dGlj
cztpZigiZnJlZSI9PWZ8fCFsfHwhMSE9PWwuZW5hYmxlZClnW21dPWw/bDp7fTtk
ZWxldGUgZy5zaGFyaW5nO2RlbGV0ZSBnLnJlbGF0ZWQ7aWYoInByZW1pdW0iPT1m
fHwiYWRzIj09ZillLnNoYXJpbmcmJihlLnNoYXJpbmcuY2xpZW50JiZlLnNoYXJp
bmcuY2xpZW50Lm1hdGNoKCIuanMkfC5zd2YkIikmJihuPWUuc2hhcmluZy5jbGll
bnQpLGdbbl09ZS5zaGFyaW5nKSxlLnJlbGF0ZWQmJihlLnJlbGF0ZWQuY2xpZW50
JiZlLnJlbGF0ZWQuY2xpZW50Lm1hdGNoKCIuanMkfC5zd2YkIikmJihxPWUucmVs
YXRlZC5jbGllbnQpLGdbcV09CmUucmVsYXRlZCksZS5nYSYmKGUuZ2EuY2xpZW50
JiZlLmdhLmNsaWVudC5tYXRjaCgiLmpzJHwuc3dmJCIpJiYoaj1lLmdhLmNsaWVu
dCksZ1tqXT1lLmdhKSxlLnNraW4mJihlLnNraW49ZS5za2luLnJlcGxhY2UoL14o
YmVlbGRlbnxiZWtsZXxmaXZlfGdsb3d8bW9kaWV1c3xyb3VuZHN0ZXJ8c3Rvcm10
cm9vcGVyfHZhcG9yKSQvaSxoLnJlcG8oKSsic2tpbnMvJDEueG1sIikudG9Mb3dl
ckNhc2UoKSk7ZS5wbHVnaW5zPWc7cmV0dXJuIG5ldyBhKGMpfSxhKTtkLmVtYmVk
PWd9KGp3cGxheWVyKSxmdW5jdGlvbihkKXt2YXIgYT1bXSxoPWQudXRpbHMsZz1k
LmV2ZW50cyxjPWcuc3RhdGUsYj1kb2N1bWVudCxlPWQuYXBpPWZ1bmN0aW9uKGEp
e2Z1bmN0aW9uIGwoYSxiKXtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGIoYSxj
KX19ZnVuY3Rpb24gbShhLGIpe3BbYV18fChwW2FdPVtdLHEoZy5KV1BMQVlFUl9Q
TEFZRVJfU1RBVEUsZnVuY3Rpb24oYil7dmFyIGM9Yi5uZXdzdGF0ZTsKYj1iLm9s
ZHN0YXRlO2lmKGM9PWEpe3ZhciBlPXBbY107aWYoZSlmb3IodmFyIGQ9MDtkPGUu
bGVuZ3RoO2QrKykiZnVuY3Rpb24iPT10eXBlb2YgZVtkXSYmZVtkXS5jYWxsKHRo
aXMse29sZHN0YXRlOmIsbmV3c3RhdGU6Y30pfX0pKTtwW2FdLnB1c2goYik7cmV0
dXJuIGZ9ZnVuY3Rpb24gbihhLGIpe3RyeXthLmp3QWRkRXZlbnRMaXN0ZW5lcihi
LCdmdW5jdGlvbihkYXQpIHsgandwbGF5ZXIoIicrZi5pZCsnIikuZGlzcGF0Y2hF
dmVudCgiJytiKyciLCBkYXQpOyB9Jyl9Y2F0Y2goYyl7aC5sb2coIkNvdWxkIG5v
dCBhZGQgaW50ZXJuYWwgbGlzdGVuZXIiKX19ZnVuY3Rpb24gcShhLGIpe3JbYV18
fChyW2FdPVtdLHMmJnUmJm4ocyxhKSk7clthXS5wdXNoKGIpO3JldHVybiBmfWZ1
bmN0aW9uIGooKXtpZih1KXtmb3IodmFyIGE9YXJndW1lbnRzWzBdLGI9W10sYz0x
O2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYi5wdXNoKGFyZ3VtZW50c1tjXSk7aWYo
InVuZGVmaW5lZCIhPXR5cGVvZiBzJiYKImZ1bmN0aW9uIj09dHlwZW9mIHNbYV0p
c3dpdGNoKGIubGVuZ3RoKXtjYXNlIDQ6cmV0dXJuIHNbYV0oYlswXSxiWzFdLGJb
Ml0sYlszXSk7Y2FzZSAzOnJldHVybiBzW2FdKGJbMF0sYlsxXSxiWzJdKTtjYXNl
IDI6cmV0dXJuIHNbYV0oYlswXSxiWzFdKTtjYXNlIDE6cmV0dXJuIHNbYV0oYlsw
XSk7ZGVmYXVsdDpyZXR1cm4gc1thXSgpfXJldHVybiBudWxsfXQucHVzaChhcmd1
bWVudHMpfXZhciBmPXRoaXMscj17fSxwPXt9LHM9dm9pZCAwLHU9ITEsdD1bXSx3
PXZvaWQgMCx4PXt9LHk9e307Zi5jb250YWluZXI9YTtmLmlkPWEuaWQ7Zi5nZXRC
dWZmZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaigiandHZXRCdWZmZXIiKX07Zi5nZXRD
b250YWluZXI9ZnVuY3Rpb24oKXtyZXR1cm4gZi5jb250YWluZXJ9O2YuYWRkQnV0
dG9uPWZ1bmN0aW9uKGEsYixjLGUpe3RyeXt5W2VdPWMsaigiandEb2NrQWRkQnV0
dG9uIixhLGIsImp3cGxheWVyKCciK2YuaWQrIicpLmNhbGxiYWNrKCciK2UrCiIn
KSIsZSl9Y2F0Y2goZCl7aC5sb2coIkNvdWxkIG5vdCBhZGQgZG9jayBidXR0b24i
K2QubWVzc2FnZSl9fTtmLnJlbW92ZUJ1dHRvbj1mdW5jdGlvbihhKXtqKCJqd0Rv
Y2tSZW1vdmVCdXR0b24iLGEpfTtmLmNhbGxiYWNrPWZ1bmN0aW9uKGEpe2lmKHlb
YV0peVthXSgpfTtmLmZvcmNlU3RhdGU9ZnVuY3Rpb24oYSl7aigiandGb3JjZVN0
YXRlIixhKTtyZXR1cm4gZn07Zi5yZWxlYXNlU3RhdGU9ZnVuY3Rpb24oKXtyZXR1
cm4gaigiandSZWxlYXNlU3RhdGUiKX07Zi5nZXREdXJhdGlvbj1mdW5jdGlvbigp
e3JldHVybiBqKCJqd0dldER1cmF0aW9uIil9O2YuZ2V0RnVsbHNjcmVlbj1mdW5j
dGlvbigpe3JldHVybiBqKCJqd0dldEZ1bGxzY3JlZW4iKX07Zi5nZXRTdHJldGNo
aW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGooImp3R2V0U3RyZXRjaGluZyIpfTtmLmdl
dEhlaWdodD1mdW5jdGlvbigpe3JldHVybiBqKCJqd0dldEhlaWdodCIpfTtmLmdl
dExvY2tTdGF0ZT1mdW5jdGlvbigpe3JldHVybiBqKCJqd0dldExvY2tTdGF0ZSIp
fTsKZi5nZXRNZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIGYuZ2V0SXRlbU1ldGEoKX07
Zi5nZXRNdXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGooImp3R2V0TXV0ZSIpfTtmLmdl
dFBsYXlsaXN0PWZ1bmN0aW9uKCl7dmFyIGE9aigiandHZXRQbGF5bGlzdCIpOyJm
bGFzaCI9PWYucmVuZGVyaW5nTW9kZSYmaC5kZWVwUmVwbGFjZUtleU5hbWUoYSxb
Il9fZG90X18iLCJfX3NwY19fIiwiX19kc2hfXyIsIl9fZGVmYXVsdF9fIl0sWyIu
IiwiICIsIi0iLCJkZWZhdWx0Il0pO3JldHVybiBhfTtmLmdldFBsYXlsaXN0SXRl
bT1mdW5jdGlvbihhKXtoLmV4aXN0cyhhKXx8KGE9Zi5nZXRDdXJyZW50SXRlbSgp
KTtyZXR1cm4gZi5nZXRQbGF5bGlzdCgpW2FdfTtmLmdldFBvc2l0aW9uPWZ1bmN0
aW9uKCl7cmV0dXJuIGooImp3R2V0UG9zaXRpb24iKX07Zi5nZXRSZW5kZXJpbmdN
b2RlPWZ1bmN0aW9uKCl7cmV0dXJuIGYucmVuZGVyaW5nTW9kZX07Zi5nZXRTdGF0
ZT1mdW5jdGlvbigpe3JldHVybiBqKCJqd0dldFN0YXRlIil9OwpmLmdldFZvbHVt
ZT1mdW5jdGlvbigpe3JldHVybiBqKCJqd0dldFZvbHVtZSIpfTtmLmdldFdpZHRo
PWZ1bmN0aW9uKCl7cmV0dXJuIGooImp3R2V0V2lkdGgiKX07Zi5zZXRGdWxsc2Ny
ZWVuPWZ1bmN0aW9uKGEpe2guZXhpc3RzKGEpP2ooImp3U2V0RnVsbHNjcmVlbiIs
YSk6aigiandTZXRGdWxsc2NyZWVuIiwhaigiandHZXRGdWxsc2NyZWVuIikpO3Jl
dHVybiBmfTtmLnNldFN0cmV0Y2hpbmc9ZnVuY3Rpb24oYSl7aigiandTZXRTdHJl
dGNoaW5nIixhKTtyZXR1cm4gZn07Zi5zZXRNdXRlPWZ1bmN0aW9uKGEpe2guZXhp
c3RzKGEpP2ooImp3U2V0TXV0ZSIsYSk6aigiandTZXRNdXRlIiwhaigiandHZXRN
dXRlIikpO3JldHVybiBmfTtmLmxvY2s9ZnVuY3Rpb24oKXtyZXR1cm4gZn07Zi51
bmxvY2s9ZnVuY3Rpb24oKXtyZXR1cm4gZn07Zi5sb2FkPWZ1bmN0aW9uKGEpe2oo
Imp3TG9hZCIsYSk7cmV0dXJuIGZ9O2YucGxheWxpc3RJdGVtPWZ1bmN0aW9uKGEp
e2ooImp3UGxheWxpc3RJdGVtIiwKcGFyc2VJbnQoYSkpO3JldHVybiBmfTtmLnBs
YXlsaXN0UHJldj1mdW5jdGlvbigpe2ooImp3UGxheWxpc3RQcmV2Iik7cmV0dXJu
IGZ9O2YucGxheWxpc3ROZXh0PWZ1bmN0aW9uKCl7aigiandQbGF5bGlzdE5leHQi
KTtyZXR1cm4gZn07Zi5yZXNpemU9ZnVuY3Rpb24oYSxjKXtpZigiZmxhc2giIT1m
LnJlbmRlcmluZ01vZGUpaigiandSZXNpemUiLGEsYyk7ZWxzZXt2YXIgZT1iLmdl
dEVsZW1lbnRCeUlkKGYuaWQrIl93cmFwcGVyIik7ZSYmKGUuc3R5bGUud2lkdGg9
aC5zdHlsZURpbWVuc2lvbihhKSxlLnN0eWxlLmhlaWdodD1oLnN0eWxlRGltZW5z
aW9uKGMpKX1yZXR1cm4gZn07Zi5wbGF5PWZ1bmN0aW9uKGEpeyJ1bmRlZmluZWQi
PT10eXBlb2YgYT8oYT1mLmdldFN0YXRlKCksYT09Yy5QTEFZSU5HfHxhPT1jLkJV
RkZFUklORz9qKCJqd1BhdXNlIik6aigiandQbGF5IikpOmooImp3UGxheSIsYSk7
cmV0dXJuIGZ9O2YucGF1c2U9ZnVuY3Rpb24oYSl7InVuZGVmaW5lZCI9PQp0eXBl
b2YgYT8oYT1mLmdldFN0YXRlKCksYT09Yy5QTEFZSU5HfHxhPT1jLkJVRkZFUklO
Rz9qKCJqd1BhdXNlIik6aigiandQbGF5IikpOmooImp3UGF1c2UiLGEpO3JldHVy
biBmfTtmLnN0b3A9ZnVuY3Rpb24oKXtqKCJqd1N0b3AiKTtyZXR1cm4gZn07Zi5z
ZWVrPWZ1bmN0aW9uKGEpe2ooImp3U2VlayIsYSk7cmV0dXJuIGZ9O2Yuc2V0Vm9s
dW1lPWZ1bmN0aW9uKGEpe2ooImp3U2V0Vm9sdW1lIixhKTtyZXR1cm4gZn07Zi5s
b2FkSW5zdHJlYW09ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdz1uZXcgZS5pbnN0cmVh
bSh0aGlzLHMsYSxiKX07Zi5nZXRRdWFsaXR5TGV2ZWxzPWZ1bmN0aW9uKCl7cmV0
dXJuIGooImp3R2V0UXVhbGl0eUxldmVscyIpfTtmLmdldEN1cnJlbnRRdWFsaXR5
PWZ1bmN0aW9uKCl7cmV0dXJuIGooImp3R2V0Q3VycmVudFF1YWxpdHkiKX07Zi5z
ZXRDdXJyZW50UXVhbGl0eT1mdW5jdGlvbihhKXtqKCJqd1NldEN1cnJlbnRRdWFs
aXR5IixhKX07Zi5nZXRDYXB0aW9uc0xpc3Q9CmZ1bmN0aW9uKCl7cmV0dXJuIGoo
Imp3R2V0Q2FwdGlvbnNMaXN0Iil9O2YuZ2V0Q3VycmVudENhcHRpb25zPWZ1bmN0
aW9uKCl7cmV0dXJuIGooImp3R2V0Q3VycmVudENhcHRpb25zIil9O2Yuc2V0Q3Vy
cmVudENhcHRpb25zPWZ1bmN0aW9uKGEpe2ooImp3U2V0Q3VycmVudENhcHRpb25z
IixhKX07Zi5nZXRDb250cm9scz1mdW5jdGlvbigpe3JldHVybiBqKCJqd0dldENv
bnRyb2xzIil9O2YuZ2V0U2FmZVJlZ2lvbj1mdW5jdGlvbigpe3JldHVybiBqKCJq
d0dldFNhZmVSZWdpb24iKX07Zi5zZXRDb250cm9scz1mdW5jdGlvbihhKXtqKCJq
d1NldENvbnRyb2xzIixhKX07Zi5kZXN0cm95UGxheWVyPWZ1bmN0aW9uKCl7aigi
andQbGF5ZXJEZXN0cm95Iil9O3ZhciB6PXtvbkJ1ZmZlckNoYW5nZTpnLkpXUExB
WUVSX01FRElBX0JVRkZFUixvbkJ1ZmZlckZ1bGw6Zy5KV1BMQVlFUl9NRURJQV9C
VUZGRVJfRlVMTCxvbkVycm9yOmcuSldQTEFZRVJfRVJST1Isb25GdWxsc2NyZWVu
OmcuSldQTEFZRVJfRlVMTFNDUkVFTiwKb25NZXRhOmcuSldQTEFZRVJfTUVESUFf
TUVUQSxvbk11dGU6Zy5KV1BMQVlFUl9NRURJQV9NVVRFLG9uUGxheWxpc3Q6Zy5K
V1BMQVlFUl9QTEFZTElTVF9MT0FERUQsb25QbGF5bGlzdEl0ZW06Zy5KV1BMQVlF
Ul9QTEFZTElTVF9JVEVNLG9uUGxheWxpc3RDb21wbGV0ZTpnLkpXUExBWUVSX1BM
QVlMSVNUX0NPTVBMRVRFLG9uUmVhZHk6Zy5BUElfUkVBRFksb25SZXNpemU6Zy5K
V1BMQVlFUl9SRVNJWkUsb25Db21wbGV0ZTpnLkpXUExBWUVSX01FRElBX0NPTVBM
RVRFLG9uU2VlazpnLkpXUExBWUVSX01FRElBX1NFRUssb25UaW1lOmcuSldQTEFZ
RVJfTUVESUFfVElNRSxvblZvbHVtZTpnLkpXUExBWUVSX01FRElBX1ZPTFVNRSxv
bkJlZm9yZVBsYXk6Zy5KV1BMQVlFUl9NRURJQV9CRUZPUkVQTEFZLG9uQmVmb3Jl
Q29tcGxldGU6Zy5KV1BMQVlFUl9NRURJQV9CRUZPUkVDT01QTEVURSxvbkRpc3Bs
YXlDbGljazpnLkpXUExBWUVSX0RJU1BMQVlfQ0xJQ0ssb25Db250cm9sczpnLkpX
UExBWUVSX0NPTlRST0xTLApvblF1YWxpdHlMZXZlbHM6Zy5KV1BMQVlFUl9NRURJ
QV9MRVZFTFMsb25RdWFsaXR5Q2hhbmdlOmcuSldQTEFZRVJfTUVESUFfTEVWRUxf
Q0hBTkdFRCxvbkNhcHRpb25zTGlzdDpnLkpXUExBWUVSX0NBUFRJT05TX0xJU1Qs
b25DYXB0aW9uc0NoYW5nZTpnLkpXUExBWUVSX0NBUFRJT05TX0NIQU5HRUR9O2gu
Zm9yZWFjaCh6LGZ1bmN0aW9uKGEpe2ZbYV09bCh6W2FdLHEpfSk7dmFyIEE9e29u
QnVmZmVyOmMuQlVGRkVSSU5HLG9uUGF1c2U6Yy5QQVVTRUQsb25QbGF5OmMuUExB
WUlORyxvbklkbGU6Yy5JRExFfTtoLmZvcmVhY2goQSxmdW5jdGlvbihhKXtmW2Fd
PWwoQVthXSxtKX0pO2YucmVtb3ZlPWZ1bmN0aW9uKCl7aWYoIXUpdGhyb3ciQ2Fu
bm90IGNhbGwgcmVtb3ZlKCkgYmVmb3JlIHBsYXllciBpcyByZWFkeSI7dD1bXTtl
LmRlc3Ryb3lQbGF5ZXIodGhpcy5pZCl9O2Yuc2V0dXA9ZnVuY3Rpb24oYSl7aWYo
ZC5lbWJlZCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChmLmlkKTsKYyYmKGEuZmFs
bGJhY2tEaXY9Yyk7Yz1mO3Q9W107ZS5kZXN0cm95UGxheWVyKGMuaWQpO2M9ZChm
LmlkKTtjLmNvbmZpZz1hO3JldHVybiBuZXcgZC5lbWJlZChjKX1yZXR1cm4gZn07
Zi5yZWdpc3RlclBsdWdpbj1mdW5jdGlvbihhLGIsYyxlKXtkLnBsdWdpbnMucmVn
aXN0ZXJQbHVnaW4oYSxiLGMsZSl9O2Yuc2V0UGxheWVyPWZ1bmN0aW9uKGEsYil7
cz1hO2YucmVuZGVyaW5nTW9kZT1ifTtmLmRldGFjaE1lZGlhPWZ1bmN0aW9uKCl7
aWYoImh0bWw1Ij09Zi5yZW5kZXJpbmdNb2RlKXJldHVybiBqKCJqd0RldGFjaE1l
ZGlhIil9O2YuYXR0YWNoTWVkaWE9ZnVuY3Rpb24oYSl7aWYoImh0bWw1Ij09Zi5y
ZW5kZXJpbmdNb2RlKXJldHVybiBqKCJqd0F0dGFjaE1lZGlhIixhKX07Zi5kaXNw
YXRjaEV2ZW50PWZ1bmN0aW9uKGEsYil7aWYoclthXSlmb3IodmFyIGM9aC50cmFu
c2xhdGVFdmVudFJlc3BvbnNlKGEsYiksZT0wO2U8clthXS5sZW5ndGg7ZSsrKWlm
KCJmdW5jdGlvbiI9PQp0eXBlb2YgclthXVtlXSl0cnl7clthXVtlXS5jYWxsKHRo
aXMsYyl9Y2F0Y2goZCl7aC5sb2coIlRoZXJlIHdhcyBhbiBlcnJvciBjYWxsaW5n
IGJhY2sgYW4gZXZlbnQgaGFuZGxlciIpfX07Zi5kaXNwYXRjaEluc3RyZWFtRXZl
bnQ9ZnVuY3Rpb24oYSl7dyYmdy5kaXNwYXRjaEV2ZW50KGEsYXJndW1lbnRzKX07
Zi5jYWxsSW50ZXJuYWw9ajtmLnBsYXllclJlYWR5PWZ1bmN0aW9uKGEpe3U9ITA7
c3x8Zi5zZXRQbGF5ZXIoYi5nZXRFbGVtZW50QnlJZChhLmlkKSk7Zi5jb250YWlu
ZXI9Yi5nZXRFbGVtZW50QnlJZChmLmlkKTtoLmZvcmVhY2gocixmdW5jdGlvbihh
KXtuKHMsYSl9KTtxKGcuSldQTEFZRVJfUExBWUxJU1RfSVRFTSxmdW5jdGlvbigp
e3g9e319KTtxKGcuSldQTEFZRVJfTUVESUFfTUVUQSxmdW5jdGlvbihhKXtoLmV4
dGVuZCh4LGEubWV0YWRhdGEpfSk7Zm9yKGYuZGlzcGF0Y2hFdmVudChnLkFQSV9S
RUFEWSk7MDx0Lmxlbmd0aDspai5hcHBseSh0aGlzLHQuc2hpZnQoKSl9OwpmLmdl
dEl0ZW1NZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHh9O2YuZ2V0Q3VycmVudEl0ZW09
ZnVuY3Rpb24oKXtyZXR1cm4gaigiandHZXRQbGF5bGlzdEluZGV4Iil9O3JldHVy
biBmfTtlLnNlbGVjdFBsYXllcj1mdW5jdGlvbihjKXt2YXIgZDtoLmV4aXN0cyhj
KXx8KGM9MCk7Yy5ub2RlVHlwZT9kPWM6InN0cmluZyI9PXR5cGVvZiBjJiYoZD1i
LmdldEVsZW1lbnRCeUlkKGMpKTtyZXR1cm4gZD8oYz1lLnBsYXllckJ5SWQoZC5p
ZCkpP2M6ZS5hZGRQbGF5ZXIobmV3IGUoZCkpOiJudW1iZXIiPT10eXBlb2YgYz9h
W2NdOm51bGx9O2UucGxheWVyQnlJZD1mdW5jdGlvbihiKXtmb3IodmFyIGM9MDtj
PGEubGVuZ3RoO2MrKylpZihhW2NdLmlkPT1iKXJldHVybiBhW2NdO3JldHVybiBu
dWxsfTtlLmFkZFBsYXllcj1mdW5jdGlvbihiKXtmb3IodmFyIGM9MDtjPGEubGVu
Z3RoO2MrKylpZihhW2NdPT1iKXJldHVybiBiO2EucHVzaChiKTtyZXR1cm4gYn07
ZS5kZXN0cm95UGxheWVyPWZ1bmN0aW9uKGMpe2Zvcih2YXIgZT0KLTEsZCxnPTA7
ZzxhLmxlbmd0aDtnKyspYVtnXS5pZD09YyYmKGU9ZyxkPWFbZ10pOzA8PWUmJihj
PWQuaWQsZz1iLmdldEVsZW1lbnRCeUlkKGMrKCJmbGFzaCI9PWQucmVuZGVyaW5n
TW9kZT8iX3dyYXBwZXIiOiIiKSksaC5jbGVhckNzcyYmaC5jbGVhckNzcygiIyIr
YyksZyYmKCJodG1sNSI9PWQucmVuZGVyaW5nTW9kZSYmZC5kZXN0cm95UGxheWVy
KCksZD1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuaWQ9YyxnLnBhcmVudE5vZGUu
cmVwbGFjZUNoaWxkKGQsZykpLGEuc3BsaWNlKGUsMSkpO3JldHVybiBudWxsfTtk
LnBsYXllclJlYWR5PWZ1bmN0aW9uKGEpe3ZhciBiPWQuYXBpLnBsYXllckJ5SWQo
YS5pZCk7Yj9iLnBsYXllclJlYWR5KGEpOmQuYXBpLnNlbGVjdFBsYXllcihhLmlk
KS5wbGF5ZXJSZWFkeShhKX19KGp3cGxheWVyKSxmdW5jdGlvbihkKXtkLmFwaS5p
bnN0cmVhbT1mdW5jdGlvbihhLGQsZyxjKXt0aGlzLnBsYXk9ZnVuY3Rpb24oYSl7
ZC5qd0luc3RyZWFtUGxheShhKX07CnRoaXMucGF1c2U9ZnVuY3Rpb24oYSl7ZC5q
d0luc3RyZWFtUGF1c2UoYSl9O3RoaXMuZGVzdHJveT1mdW5jdGlvbigpe2QuandJ
bnN0cmVhbURlc3Ryb3koKX07YS5jYWxsSW50ZXJuYWwoImp3TG9hZEluc3RyZWFt
IixnLGM/Yzp7fSl9fShqd3BsYXllciksZnVuY3Rpb24oZCl7dmFyIGE9ZC5hcGks
aD1hLnNlbGVjdFBsYXllcjthLnNlbGVjdFBsYXllcj1mdW5jdGlvbihhKXtyZXR1
cm4oYT1oKGEpKT9hOntyZWdpc3RlclBsdWdpbjpmdW5jdGlvbihhLGIsZSl7ZC5w
bHVnaW5zLnJlZ2lzdGVyUGx1Z2luKGEsYixlKX19fX0oandwbGF5ZXIpKTs=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=search_bg1.jpg
Content-Type: image/jpeg; name=search_bg1.jpg
Content-Location: http://ege.edu.ru/common/img/img_2013/search_bg1.jpg
Content-Transfer-Encoding: Base64
/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/
4QNUaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49
Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRh
IHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29y
ZSA1LjMtYzAwNyAxLjE0NDEwOSwgMjAxMS8wOS8yMC0xODowOToxMCAgICAgICAg
Ij4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAy
LzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9
IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxu
czp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6
c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJj
ZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMu
MDIwMTExMDEyLm0uMjU4IDIwMTEvMTAvMTI6MjE6MDA6MDApICAoV2luZG93cyki
IHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzgwRUNCRkY0RDJFMTFFM0I3MDY5
M0ZFMTMxQ0YwOTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzgwRUNDMDA0
RDJFMTFFM0I3MDY5M0ZFMTMxQ0YwOTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RS
ZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDODBFQ0JGRDREMkUxMUUzQjcwNjkzRkUx
MzFDRjA5NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDODBFQ0JGRTREMkUx
MUUzQjcwNjkzRkUxMzFDRjA5NSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6
UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBk
wAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQECAgICAgICAgICAgMDAwMDAwMDAwMBAQEBAQEBAgEBAgICAQICAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//AABEI
AA8ADgMBEQACEQEDEQH/xABiAAEBAQAAAAAAAAAAAAAAAAAFBwoBAQEBAAAAAAAA
AAAAAAAAAAABAhAAAgMBAAIDAQAAAAAAAAAAAwUCBAYBEhMAFAcVEQADAAICAwAA
AAAAAAAAAAAAAREhUTFBYZFC/9oADAMBAAIRAxEAPwDZbkcfltpnlus2CFNqn+ir
8aXjaJdTczSFtTmSWXWDYCsQU0c1LvaXpDEXZmBMpuSsEKSWm2nFwRJPIggWQY09
xirLNtNIh1dFUvsDa3INBqrCTK6gqA7j3dYmBE7YtTy9nC/QJAPs849n8j6Y8CUM
qvuHZXsrr3aGveZMP7NTM3EF5WZ2K0UDef13SZ+NMz+9AnLkaXakp2ukIaPT9lP4
u0JoklXB21TZjmg6Emi/FdTooMrd0u0NS1355+iq9RQZQX1dRG9Fy8o6bXVIBkGV
jrOmxnIfJygTxHq4v0Sej//Z
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=2018.png
Content-Type: image/png; name=2018.png
Content-Location: http://ege.edu.ru/common/upload/img/2018.png
Content-Transfer-Encoding: Base64
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
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=top100.js
Content-Type: application/javascript; name=top100.js
Content-Location: http://counter.rambler.ru/top100.jcn?2679311
Content-Transfer-Encoding: Base64
KGZ1bmN0aW9uKCl7dmFyIGcsYWE9YWF8fHt9LGg9dGhpcztmdW5jdGlvbiBsKGEp
e3JldHVybiB2b2lkIDAhPT1hfWZ1bmN0aW9uIG4oKXt9ZnVuY3Rpb24gcChhKXth
LkI9ZnVuY3Rpb24oKXtyZXR1cm4gYS5rYj9hLmtiOmEua2I9bmV3IGF9fQpmdW5j
dGlvbiBiYShhKXt2YXIgYj10eXBlb2YgYTtpZigib2JqZWN0Ij09YilpZihhKXtp
ZihhIGluc3RhbmNlb2YgQXJyYXkpcmV0dXJuImFycmF5IjtpZihhIGluc3RhbmNl
b2YgT2JqZWN0KXJldHVybiBiO3ZhciBjPU9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbChhKTtpZigiW29iamVjdCBXaW5kb3ddIj09YylyZXR1cm4ib2JqZWN0
IjtpZigiW29iamVjdCBBcnJheV0iPT1jfHwibnVtYmVyIj09dHlwZW9mIGEubGVu
Z3RoJiYidW5kZWZpbmVkIiE9dHlwZW9mIGEuc3BsaWNlJiYidW5kZWZpbmVkIiE9
dHlwZW9mIGEucHJvcGVydHlJc0VudW1lcmFibGUmJiFhLnByb3BlcnR5SXNFbnVt
ZXJhYmxlKCJzcGxpY2UiKSlyZXR1cm4iYXJyYXkiO2lmKCJbb2JqZWN0IEZ1bmN0
aW9uXSI9PWN8fCJ1bmRlZmluZWQiIT10eXBlb2YgYS5jYWxsJiYidW5kZWZpbmVk
IiE9dHlwZW9mIGEucHJvcGVydHlJc0VudW1lcmFibGUmJiFhLnByb3BlcnR5SXNF
bnVtZXJhYmxlKCJjYWxsIikpcmV0dXJuImZ1bmN0aW9uIn1lbHNlIHJldHVybiJu
dWxsIjsKZWxzZSBpZigiZnVuY3Rpb24iPT1iJiYidW5kZWZpbmVkIj09dHlwZW9m
IGEuY2FsbClyZXR1cm4ib2JqZWN0IjtyZXR1cm4gYn1mdW5jdGlvbiBxKGEpe3Jl
dHVybiJhcnJheSI9PWJhKGEpfWZ1bmN0aW9uIGNhKGEpe3ZhciBiPWJhKGEpO3Jl
dHVybiJhcnJheSI9PWJ8fCJvYmplY3QiPT1iJiYibnVtYmVyIj09dHlwZW9mIGEu
bGVuZ3RofWZ1bmN0aW9uIHQoYSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhfWZ1
bmN0aW9uIHUoYSl7cmV0dXJuImZ1bmN0aW9uIj09YmEoYSl9dmFyIGRhPSJjbG9z
dXJlX3VpZF8iKygxRTkqTWF0aC5yYW5kb20oKT4+PjApLGVhPTA7ZnVuY3Rpb24g
ZmEoYSxiLGMpe3JldHVybiBhLmNhbGwuYXBwbHkoYS5iaW5kLGFyZ3VtZW50cyl9
CmZ1bmN0aW9uIGdhKGEsYixjKXtpZighYSl0aHJvdyBFcnJvcigpO2lmKDI8YXJn
dW1lbnRzLmxlbmd0aCl7dmFyIGQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
YXJndW1lbnRzLDIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBjPUFycmF5LnByb3Rv
dHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7QXJyYXkucHJvdG90eXBlLnVuc2hp
ZnQuYXBwbHkoYyxkKTtyZXR1cm4gYS5hcHBseShiLGMpfX1yZXR1cm4gZnVuY3Rp
b24oKXtyZXR1cm4gYS5hcHBseShiLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHYoYSxi
LGMpe3Y9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQmJi0xIT1GdW5jdGlvbi5wcm90
b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoIm5hdGl2ZSBjb2RlIik/ZmE6
Z2E7cmV0dXJuIHYuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciB3PURhdGUubm93
fHxmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX07CmZ1bmN0aW9uIHgoYSxiKXtm
dW5jdGlvbiBjKCl7fWMucHJvdG90eXBlPWIucHJvdG90eXBlO2EuZGM9Yi5wcm90
b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9
YTthLm9jPWZ1bmN0aW9uKGEsYyxmKXtmb3IodmFyIGs9QXJyYXkoYXJndW1lbnRz
Lmxlbmd0aC0yKSxtPTI7bTxhcmd1bWVudHMubGVuZ3RoO20rKylrW20tMl09YXJn
dW1lbnRzW21dO3JldHVybiBiLnByb3RvdHlwZVtjXS5hcHBseShhLGspfX07dmFy
IGhhPXt9O2Z1bmN0aW9uIGlhKCl7fWlhLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9u
KGEsYixjKXtoLm5hdmlnYXRvci5zZW5kQmVhY29uKGEsYik/Yy5XYSgpOmMuZXJy
b3IoKX07ZnVuY3Rpb24gamEoKXt0aGlzLmI9dGhpcy5hPXZvaWQgMH1qYS5wcm90
b3R5cGUuc2VuZD1mdW5jdGlvbihhLGIpe3RoaXMuYT1uZXcgSW1hZ2U7dGhpcy5h
Lm9ubG9hZD12KHRoaXMuZix0aGlzLGIuV2EpO3RoaXMuYS5vbmVycm9yPXYodGhp
cy5jLHRoaXMsYi5lcnJvcik7dGhpcy5hLm9uYWJvcnQ9dih0aGlzLmMsdGhpcyxi
LmVycm9yKTt0aGlzLmEuc3JjPWE7dGhpcy5iPWguc2V0VGltZW91dCh2KHRoaXMu
Yyx0aGlzLGIuZXJyb3IpLGthKX07ZnVuY3Rpb24gbGEoYSl7YS5iJiYoaC5jbGVh
clRpbWVvdXQoYS5iKSxhLmI9bnVsbCl9ZnVuY3Rpb24gb2EoYSl7YS5hLnNyYz0i
IjthLmEub25sb2FkPWZ1bmN0aW9uKCl7fTthLmEub25hYm9ydD1mdW5jdGlvbigp
e307YS5hLm9uZXJyb3I9ZnVuY3Rpb24oKXt9fWphLnByb3RvdHlwZS5mPWZ1bmN0
aW9uKGEpe2xhKHRoaXMpO2EoKX07amEucHJvdG90eXBlLmM9ZnVuY3Rpb24oYSl7
b2EodGhpcyk7bGEodGhpcyk7YSgpfTt5LmE9e307eS5hLnFjPS9pUGFkfGlQaG9u
ZXxpUG9kLy50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkmJiFoLmxjO3kuYS5p
PXt9O3kuYS5pLnFiPSExO3kuYS5pLndiPSJTaWx2ZXJsaWdodCBQbHVnLUluIjt5
LmEuaS5uYT0iYXBwbGljYXRpb24veC1zaWx2ZXJsaWdodCI7eS5hLmkudmI9W3ku
YS5pLm5hLHkuYS5pLm5hKyItMiIseS5hLmkubmErIi0yLWIyIix5LmEuaS5uYSsi
LTItYjEiXTt5LmEuaS5zYj0iQWdDb250cm9sLkFnQ29udHJvbCI7eS5hLmkuamE9
ITE7eS5hLmkuc2E9IiI7CnkuYS5pLlpiPWZ1bmN0aW9uKCl7dmFyIGE9aC5uYXZp
Z2F0b3I7aWYoYS5wbHVnaW5zJiZhLnBsdWdpbnMubGVuZ3RoKXt2YXIgYj1hLnBs
dWdpbnNbeS5hLmkud2JdO2ImJih5LmEuaS5qYT0hMCxiLmRlc2NyaXB0aW9uJiYo
eS5hLmkuc2E9eS5hLmkuUWEoYi5kZXNjcmlwdGlvbikpKX1lbHNlIGlmKGEubWlt
ZVR5cGVzJiZhLm1pbWVUeXBlcy5sZW5ndGgpZm9yKHZhciBjPXkuYS5pLnZiLGI9
MDtiPGMubGVuZ3RoO2IrKyl7dmFyIGQ9YS5taW1lVHlwZXNbY1tiXV07aWYoZCYm
ZC5lbmFibGVkUGx1Z2luKXt5LmEuaS5qYT0hIWQuZW5hYmxlZFBsdWdpbjt5LmEu
aS5qYSYmKHkuYS5pLnNhPXkuYS5pLlFhKGQuZW5hYmxlZFBsdWdpbi5kZXNjcmlw
dGlvbikpO2JyZWFrfX1lbHNle2E9WzAsMCwwLDBdO3RyeXtjPW5ldyBBY3RpdmVY
T2JqZWN0KHkuYS5pLnNiKTt5LmEuaS5qYT0hMDtmb3IoYj0wO2I8YS5sZW5ndGg7
YisrKXtmb3IodmFyIGU9MCxmPTEwNDg1NzUsaz0wO2U8ZjspZD0KYVtiXT1lKyhm
LWU+PjEpLGMuSXNWZXJzaW9uU3VwcG9ydGVkKGEuam9pbigiLiIpKT8oaz1kLGU9
ZCsxKTpmPWQ7YVtiXT1rfXkuYS5pLnNhPXkuYS5pLlFhKGEuam9pbigiLiIpKX1j
YXRjaChtKXt9fX07eS5hLmkuUWE9ZnVuY3Rpb24oYSl7cmV0dXJuIjEuMC4zMDIy
Ni4yIj09YT8iMi4wLjMwMjI2LjIiOmF9O3kuYS5pLnFifHx5LmEuaS5aYigpO3ku
YS5pLmhjPXkuYS5pLmphO3kuYS5pLlZFUlNJT049eS5hLmkuc2E7eS5qPXt9Owp5
LmouZWM9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7aWYoIm9iamVjdCI9PT1i
KWlmKGEpe2lmKGEgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4iYXJyYXkiO2lmKGEg
aW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIGI7dmFyIGM9T2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKGEpO2lmKCJbb2JqZWN0IFdpbmRvd10iPT09YylyZXR1
cm4ib2JqZWN0IjtpZigiW29iamVjdCBBcnJheV0iPT09Y3x8Im51bWJlciI9PT10
eXBlb2YgYS5sZW5ndGgmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuc3BsaWNlJiYi
dW5kZWZpbmVkIiE9PXR5cGVvZiBhLnByb3BlcnR5SXNFbnVtZXJhYmxlJiYhYS5w
cm9wZXJ0eUlzRW51bWVyYWJsZSgic3BsaWNlIikpcmV0dXJuImFycmF5IjtpZigi
W29iamVjdCBGdW5jdGlvbl0iPT09Y3x8InVuZGVmaW5lZCIhPT10eXBlb2YgYS5j
YWxsJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLnByb3BlcnR5SXNFbnVtZXJhYmxl
JiYhYS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgiY2FsbCIpKXJldHVybiJmdW5jdGlv
biJ9ZWxzZSByZXR1cm4ibnVsbCI7ZWxzZSBpZigiZnVuY3Rpb24iPT09CmImJiJ1
bmRlZmluZWQiPT09dHlwZW9mIGEuY2FsbClyZXR1cm4ib2JqZWN0IjtyZXR1cm4g
Yn07eS5qLiRiPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO3JldHVybiJvYmpl
Y3QiPT1iJiZudWxsIT1hfHwiZnVuY3Rpb24iPT1ifTt5LmouaXNBcnJheT1mdW5j
dGlvbihhKXtyZXR1cm4iYXJyYXkiPT09eS5qLmVjKGEpfTt5Lkc9e307eS5HLmJj
PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJcdTA0MTJcdTA0NGIgXHUwNDNkXHUw
NDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0Mlx1MDQzNSBcdTA0Mzhc
dTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJc
dTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNjXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDM0
IHN5bmNVc2VySWQuXG5cdTA0MWVcdTA0MzEgXHUwNDM4XHUwNDQxXHUwNDNmXHUw
NDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNkXHUw
NDM4XHUwNDM4IFx1MDQ0ZFx1MDQ0Mlx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0M2Nc
dTA0MzVcdTA0NDJcdTA0M2VcdTA0MzRcdTA0MzAgXHUwNDNmXHUwNDNlXHUwNDQ3
XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM1IFx1MDQzMiBcdTA0
MzRcdTA0M2VcdTA0M2FcdTA0NDNcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NDJcdTA0
MzBcdTA0NDZcdTA0MzhcdTA0MzggaHR0cDovL3RvcDEwMC5yYW1ibGVyLnJ1L2Rv
Yy9ndWlkZS1yYW1ibGVyLXRvcDEwMC5wZGYiKX07CnkuRy5sb2c9ZnVuY3Rpb24o
KXtpZihoLmNvbnNvbGUpe3ZhciBhPW5ldyBEYXRlO2NvbnNvbGUubG9nKFthLmdl
dEhvdXJzKCksYS5nZXRNaW51dGVzKCksYS5nZXRTZWNvbmRzKCksYS5nZXRNaWxs
aXNlY29uZHMoKV0uam9pbigiOiIpKyJcdCIsQXJyYXkucHJvdG90eXBlLnNsaWNl
LmNhbGwoYXJndW1lbnRzKS5qb2luKCIgIikpfX07dmFyIHBhPSExO2Z1bmN0aW9u
IHooKXt2YXIgYT12b2lkIDA7cGE/YT17WDohMCxhYzohMH06YT0hMDtyZXR1cm4g
YX10cnl7dmFyIHFhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7cGE9ITB9fSk7
aC5hZGRFdmVudExpc3RlbmVyJiZoLmFkZEV2ZW50TGlzdGVuZXIoInRlc3RQYXNz
aXZlRXZlbnRzIixudWxsLHFhKX1jYXRjaChhKXt9O3kudj17fTt5LnYuWGE9ZnVu
Y3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7ZT1oLnNldFRpbWVvdXQoZCwxRTMpO2Eu
YXBwbHkobnVsbCxrKX1mdW5jdGlvbiBkKCl7ZT1udWxsO2YmJihmPSExLGMoKSl9
YiYmKGE9dihhLGIpKTt2YXIgZT1udWxsLGY9ITEsaz1bXTtyZXR1cm4gZnVuY3Rp
b24oYSl7az1hcmd1bWVudHM7ZT9mPSEwOmMoKX19O3kuZj17fTt5LmYueGE9ZnVu
Y3Rpb24oKXtyZXR1cm4gTWF0aC5yb3VuZCgyMTQ3NDgzNjQ3Kk1hdGgucmFuZG9t
KCkpfTt5LmYudHJ1bmM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHwxO3JldHVybihh
L2M+PjApKmN9O3kuZi5sYj1mdW5jdGlvbihhKXtyZXR1cm4ibnVtYmVyIj09dHlw
ZW9mIGEmJiFoLmlzTmFOKGEpJiZoLmlzRmluaXRlKGEpfTt5LmYud2E9ZnVuY3Rp
b24oYSl7cmV0dXJuIHkuZi5sYihhKSYmMDxhfTtmdW5jdGlvbiByYShhLGIpe3Ro
aXMuYj1hO3RoaXMuYT1ifXJhLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigp
e3JldHVybiB0aGlzLmIrIngiK3RoaXMuYX07eS5iYj17fTtmdW5jdGlvbiBzYShh
LGIpe3RoaXMuYT1hO3RoaXMuYj1ifTtmdW5jdGlvbiBBKCl7dGhpcy5jPXRoaXMu
Yj0wO3RoaXMuYT1bXX1BLnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKGEpe3Jl
dHVybiB0aGlzLmFbdGhpcy5jKytdPWF9O0EucHJvdG90eXBlLmlhPWZ1bmN0aW9u
KCl7cmV0dXJuIHRoaXMuQygpP251bGw6dGhpcy5hW3RoaXMuYisrXX07QS5wcm90
b3R5cGUuTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFbdGhpcy5iXX07QS5wcm90
b3R5cGUuQz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmI+PXRoaXMuY307ZnVuY3Rp
b24gdGEoYSxiKXt0aGlzLmM9YTt0aGlzLmY9Ynx8dWE7dGhpcy5iPSExO3RoaXMu
YT12b2lkIDB9dmFyIHVhPTFFMzt0YS5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24o
KXt0aGlzLmI9ITA7dGhpcy5hfHx2YSh0aGlzKX07dGEucHJvdG90eXBlLmc9ZnVu
Y3Rpb24oKXt0aGlzLmImJih0aGlzLmEmJndhKHRoaXMpLHRoaXMuYygpLHRoaXMu
YiYmdmEodGhpcykpfTtmdW5jdGlvbiB2YShhKXthLmE9aC5zZXRUaW1lb3V0KHYo
YS5nLGEpLGEuZil9ZnVuY3Rpb24gd2EoYSl7YS5hJiYoaC5jbGVhclRpbWVvdXQo
YS5hKSxhLmE9bnVsbCl9O3kuZz17fTt5LmcueWI9MDt5LmcuR2E9ImtyYWtlbl91
aWRfcHJvcGVydHlfIit5LmYueGEoKTt5LmcuWWI9ZnVuY3Rpb24oYSl7cmV0dXJu
ISFhW3kuZy5HYV19O3kuZy5YYj1mdW5jdGlvbihhKXt5LmcuWWIoYSl8fChhW3ku
Zy5HYV09Kyt5LmcueWIpO3JldHVybiBhW3kuZy5HYV19O3kuaD17fTt5LmguY2M9
ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9e30sZD0wO2Q8YS5sZW5ndGg7KXt2
YXIgZT1hW2QrK10sZjtmPWU7dmFyIGs9dm9pZCAwO2Y9az15LmouJGIoZik/Im8i
K3kuZy5YYihmKToodHlwZW9mIGYpLmNoYXJBdCgwKStmO2NbZl18fChjW2ZdPSEw
LGIucHVzaChlKSl9cmV0dXJuIGJ9O3kuaC5tYXA9ZnVuY3Rpb24oYSxiLGMpe2lm
KEFycmF5LnByb3RvdHlwZS5tYXApcmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAu
Y2FsbChhLGIsYyk7Zm9yKHZhciBkPVtdLGU9YXJyYXkubGVuZ3RoLGY9MDtmPGU7
KytmKWRbZl09Yi5jYWxsKGMsYVtmXSxmLGEpO3JldHVybiBkfTt5LmguaW5jbHVk
ZXM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEubGVuZ3RoO2ZvcihjPWN8fDA7Yzxk
OysrYylpZihhW2NdPT09YilyZXR1cm4hMDtyZXR1cm4hMX07ZnVuY3Rpb24geGEo
YSxiLGMpe3RoaXMuZj1jO3RoaXMuYz1hO3RoaXMuZz1iO3RoaXMuYj0wO3RoaXMu
YT1udWxsfXhhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgYTswPHRoaXMu
Yj8odGhpcy5iLS0sYT10aGlzLmEsdGhpcy5hPWEubmV4dCxhLm5leHQ9bnVsbCk6
YT10aGlzLmMoKTtyZXR1cm4gYX07ZnVuY3Rpb24geWEoYSxiKXthLmcoYik7YS5i
PGEuZiYmKGEuYisrLGIubmV4dD1hLmEsYS5hPWIpfTtmdW5jdGlvbiBCKGEpe2lm
KEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNl
KHRoaXMsQik7ZWxzZXt2YXIgYj1FcnJvcigpLnN0YWNrO2ImJih0aGlzLnN0YWNr
PWIpfWEmJih0aGlzLm1lc3NhZ2U9U3RyaW5nKGEpKX14KEIsRXJyb3IpO0IucHJv
dG90eXBlLm5hbWU9IkN1c3RvbUVycm9yIjtmdW5jdGlvbiB6YShhLGIsYyxkLGUp
e3RoaXMucmVzZXQoYSxiLGMsZCxlKX16YS5wcm90b3R5cGUuYT1udWxsO3ZhciBB
YT0wO3phLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbihhLGIsYyxkLGUpeyJudW1i
ZXIiPT10eXBlb2YgZXx8QWErKztkfHx3KCk7dGhpcy5iPWI7ZGVsZXRlIHRoaXMu
YX07ZnVuY3Rpb24gQmEoKXswIT1DYSYmKHRoaXNbZGFdfHwodGhpc1tkYV09Kytl
YSkpO3RoaXMuST10aGlzLkk7dGhpcy5hYj10aGlzLmFifXZhciBDYT0wO0JhLnBy
b3RvdHlwZS5JPSExO3ZhciBEYTtmdW5jdGlvbiBFYShhLGIpe3RoaXMudHlwZT1h
O3RoaXMuYT10aGlzLnRhcmdldD1ifUVhLnByb3RvdHlwZS5jPWZ1bmN0aW9uKCl7
fTt2YXIgRmE9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKygxRTYqTWF0aC5yYW5kb20o
KXwwKSxHYT0wO2Z1bmN0aW9uIEhhKGEsYixjLGQsZSl7dGhpcy5saXN0ZW5lcj1h
O3RoaXMuYT1udWxsO3RoaXMuc3JjPWI7dGhpcy50eXBlPWM7dGhpcy5YPSEhZDt0
aGlzLnZhPWU7KytHYTt0aGlzLmFhPXRoaXMucmE9ITF9ZnVuY3Rpb24gSWEoYSl7
YS5hYT0hMDthLmxpc3RlbmVyPW51bGw7YS5hPW51bGw7YS5zcmM9bnVsbDthLnZh
PW51bGx9O2Z1bmN0aW9uIEphKGEpe3ZhciBiPVtdO0thKG5ldyBMYSxhLGIpO3Jl
dHVybiBiLmpvaW4oIiIpfWZ1bmN0aW9uIExhKCl7fQpmdW5jdGlvbiBLYShhLGIs
Yyl7aWYobnVsbD09YiljLnB1c2goIm51bGwiKTtlbHNle2lmKCJvYmplY3QiPT10
eXBlb2YgYil7aWYocShiKSl7dmFyIGQ9YjtiPWQubGVuZ3RoO2MucHVzaCgiWyIp
O2Zvcih2YXIgZT0iIixmPTA7ZjxiO2YrKyljLnB1c2goZSksS2EoYSxkW2ZdLGMp
LGU9IiwiO2MucHVzaCgiXSIpO3JldHVybn1pZihiIGluc3RhbmNlb2YgU3RyaW5n
fHxiIGluc3RhbmNlb2YgTnVtYmVyfHxiIGluc3RhbmNlb2YgQm9vbGVhbiliPWIu
dmFsdWVPZigpO2Vsc2V7Yy5wdXNoKCJ7Iik7ZT0iIjtmb3IoZCBpbiBiKU9iamVj
dC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLGQpJiYoZj1iW2RdLCJm
dW5jdGlvbiIhPXR5cGVvZiBmJiYoYy5wdXNoKGUpLE1hKGQsYyksYy5wdXNoKCI6
IiksS2EoYSxmLGMpLGU9IiwiKSk7Yy5wdXNoKCJ9Iik7cmV0dXJufX1zd2l0Y2go
dHlwZW9mIGIpe2Nhc2UgInN0cmluZyI6TWEoYixjKTticmVhaztjYXNlICJudW1i
ZXIiOmMucHVzaChpc0Zpbml0ZShiKSYmCiFpc05hTihiKT9TdHJpbmcoYik6Im51
bGwiKTticmVhaztjYXNlICJib29sZWFuIjpjLnB1c2goU3RyaW5nKGIpKTticmVh
aztjYXNlICJmdW5jdGlvbiI6Yy5wdXNoKCJudWxsIik7YnJlYWs7ZGVmYXVsdDp0
aHJvdyBFcnJvcigiVW5rbm93biB0eXBlOiAiK3R5cGVvZiBiKTt9fX12YXIgTmE9
eyciJzonXFwiJywiXFwiOiJcXFxcIiwiLyI6IlxcLyIsIlxiIjoiXFxiIiwiXGYi
OiJcXGYiLCJcbiI6IlxcbiIsIlxyIjoiXFxyIiwiXHQiOiJcXHQiLCJceDBCIjoi
XFx1MDAwYiJ9LE9hPS9cdWZmZmYvLnRlc3QoIlx1ZmZmZiIpPy9bXFxcIlx4MDAt
XHgxZlx4N2YtXHVmZmZmXS9nOi9bXFxcIlx4MDAtXHgxZlx4N2YtXHhmZl0vZzsK
ZnVuY3Rpb24gTWEoYSxiKXtiLnB1c2goJyInLGEucmVwbGFjZShPYSxmdW5jdGlv
bihhKXt2YXIgYj1OYVthXTtifHwoYj0iXFx1IisoYS5jaGFyQ29kZUF0KDApfDY1
NTM2KS50b1N0cmluZygxNikuc3Vic3RyKDEpLE5hW2FdPWIpO3JldHVybiBifSks
JyInKX07ZnVuY3Rpb24gUGEoYSxiKXt0aGlzLmI9YTt0aGlzLmE9Yn1nPVBhLnBy
b3RvdHlwZTtnLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQYSh0aGlzLmIs
dGhpcy5hKX07Zy50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIoIit0aGlzLmIr
IiB4ICIrdGhpcy5hKyIpIn07Zy5WYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmIq
dGhpcy5hfTtnLkM9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5WYigpfTtnLmNlaWw9
ZnVuY3Rpb24oKXt0aGlzLmI9TWF0aC5jZWlsKHRoaXMuYik7dGhpcy5hPU1hdGgu
Y2VpbCh0aGlzLmEpO3JldHVybiB0aGlzfTtnLmZsb29yPWZ1bmN0aW9uKCl7dGhp
cy5iPU1hdGguZmxvb3IodGhpcy5iKTt0aGlzLmE9TWF0aC5mbG9vcih0aGlzLmEp
O3JldHVybiB0aGlzfTtnLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy5iPU1hdGgucm91
bmQodGhpcy5iKTt0aGlzLmE9TWF0aC5yb3VuZCh0aGlzLmEpO3JldHVybiB0aGlz
fTtmdW5jdGlvbiBRYShhLGIpe2Zvcih2YXIgYyBpbiBhKWIuY2FsbCh2b2lkIDAs
YVtjXSxjLGEpfWZ1bmN0aW9uIFJhKGEpe3ZhciBiPVtdLGM9MCxkO2ZvcihkIGlu
IGEpYltjKytdPWFbZF07cmV0dXJuIGJ9ZnVuY3Rpb24gU2EoYSl7dmFyIGI9W10s
Yz0wLGQ7Zm9yKGQgaW4gYSliW2MrK109ZDtyZXR1cm4gYn1mdW5jdGlvbiBUYShh
KXtyZXR1cm4gbnVsbCE9PWEmJiJ3aXRoQ3JlZGVudGlhbHMiaW4gYX12YXIgVWE9
ImNvbnN0cnVjdG9yIGhhc093blByb3BlcnR5IGlzUHJvdG90eXBlT2YgcHJvcGVy
dHlJc0VudW1lcmFibGUgdG9Mb2NhbGVTdHJpbmcgdG9TdHJpbmcgdmFsdWVPZiIu
c3BsaXQoIiAiKTsKZnVuY3Rpb24gVmEoYSxiKXtmb3IodmFyIGMsZCxlPTE7ZTxh
cmd1bWVudHMubGVuZ3RoO2UrKyl7ZD1hcmd1bWVudHNbZV07Zm9yKGMgaW4gZClh
W2NdPWRbY107Zm9yKHZhciBmPTA7ZjxVYS5sZW5ndGg7ZisrKWM9VWFbZl0sT2Jq
ZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsYykmJihhW2NdPWRb
Y10pfX07ZnVuY3Rpb24gV2EoYSl7YS5wcm90b3R5cGUudGhlbj1hLnByb3RvdHlw
ZS50aGVuO2EucHJvdG90eXBlLiRnb29nX1RoZW5hYmxlPSEwfWZ1bmN0aW9uIFhh
KGEpe2lmKCFhKXJldHVybiExO3RyeXtyZXR1cm4hIWEuJGdvb2dfVGhlbmFibGV9
Y2F0Y2goYil7cmV0dXJuITF9fTtmdW5jdGlvbiBZYShhKXtZYVsiICJdKGEpO3Jl
dHVybiBhfVlhWyIgIl09bjtmdW5jdGlvbiBaYShhKXt0aGlzLmE9YX12YXIgJGE9
L1xzKjtccyovO2c9WmEucHJvdG90eXBlO2cuc2V0PWZ1bmN0aW9uKGEsYixjLGQs
ZSxmKXtpZigvWzs9XHNdLy50ZXN0KGEpKXRocm93IEVycm9yKCdJbnZhbGlkIGNv
b2tpZSBuYW1lICInK2ErJyInKTtpZigvWztcclxuXS8udGVzdChiKSl0aHJvdyBF
cnJvcignSW52YWxpZCBjb29raWUgdmFsdWUgIicrYisnIicpO2woYyl8fChjPS0x
KTtlPWU/Ijtkb21haW49IitlOiIiO2Q9ZD8iO3BhdGg9IitkOiIiO2Y9Zj8iO3Nl
Y3VyZSI6IiI7Yz0wPmM/IiI6MD09Yz8iO2V4cGlyZXM9IisobmV3IERhdGUoMTk3
MCwxLDEpKS50b1VUQ1N0cmluZygpOiI7ZXhwaXJlcz0iKyhuZXcgRGF0ZSh3KCkr
MUUzKmMpKS50b1VUQ1N0cmluZygpO3RoaXMuYS5jb29raWU9YSsiPSIrYitlK2Qr
YytmfTsKZy5nZXQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YSsiPSIsZD0odGhp
cy5hLmNvb2tpZXx8IiIpLnNwbGl0KCRhKSxlPTAsZjtmPWRbZV07ZSsrKXtpZigw
PT1mLmxhc3RJbmRleE9mKGMsMCkpcmV0dXJuIGYuc3Vic3RyKGMubGVuZ3RoKTtp
ZihmPT1hKXJldHVybiIifXJldHVybiBifTtnLnJlbW92ZT1mdW5jdGlvbihhLGIs
Yyl7dmFyIGQ9bCh0aGlzLmdldChhKSk7dGhpcy5zZXQoYSwiIiwwLGIsYyk7cmV0
dXJuIGR9O2cuUj1mdW5jdGlvbigpe3JldHVybiBhYih0aGlzKS5rZXlzfTtnLlM9
ZnVuY3Rpb24oKXtyZXR1cm4gYWIodGhpcykudmFsdWVzfTtnLkM9ZnVuY3Rpb24o
KXtyZXR1cm4hdGhpcy5hLmNvb2tpZX07Zy5jbGVhcj1mdW5jdGlvbigpe2Zvcih2
YXIgYT1hYih0aGlzKS5rZXlzLGI9YS5sZW5ndGgtMTswPD1iO2ItLSl0aGlzLnJl
bW92ZShhW2JdKX07CmZ1bmN0aW9uIGFiKGEpe2E9KGEuYS5jb29raWV8fCIiKS5z
cGxpdCgkYSk7Zm9yKHZhciBiPVtdLGM9W10sZCxlLGY9MDtlPWFbZl07ZisrKWQ9
ZS5pbmRleE9mKCI9IiksLTE9PWQ/KGIucHVzaCgiIiksYy5wdXNoKGUpKTooYi5w
dXNoKGUuc3Vic3RyaW5nKDAsZCkpLGMucHVzaChlLnN1YnN0cmluZyhkKzEpKSk7
cmV0dXJue2tleXM6Yix2YWx1ZXM6Y319dmFyIGJiPW5ldyBaYShkb2N1bWVudCk7
YmIuYj0zOTUwO2Z1bmN0aW9uIGNiKCl7fWNiLnByb3RvdHlwZS5hPW51bGw7ZnVu
Y3Rpb24gZGIoYSl7dmFyIGI7KGI9YS5hKXx8KGI9e30sZWIoYSkmJihiWzBdPSEw
LGJbMV09ITApLGI9YS5hPWIpO3JldHVybiBifTtmdW5jdGlvbiBmYihhLGIpe2Zv
cih2YXIgYz1hLnNwbGl0KCIlcyIpLGQ9IiIsZT1BcnJheS5wcm90b3R5cGUuc2xp
Y2UuY2FsbChhcmd1bWVudHMsMSk7ZS5sZW5ndGgmJjE8Yy5sZW5ndGg7KWQrPWMu
c2hpZnQoKStlLnNoaWZ0KCk7cmV0dXJuIGQrYy5qb2luKCIlcyIpfXZhciBnYj1T
dHJpbmcucHJvdG90eXBlLnRyaW0/ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHJpbSgp
fTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9eW1xzXHhhMF0rfFtcc1x4
YTBdKyQvZywiIil9O2Z1bmN0aW9uIGhiKGEsYil7cmV0dXJuIGE8Yj8tMTphPmI/
MTowfTtmdW5jdGlvbiBDKGEpe3RoaXMuYj1bXTt0aGlzLmY9W107dGhpcy5hPXt9
O3RoaXMuaD10aGlzLmM9MDt0aGlzLmc9YXx8ITF9Zz1DLnByb3RvdHlwZTtnLkM9
ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuYyYmMD09PXRoaXMuaH07Zy5jbG9u
ZT1mdW5jdGlvbigpe2Zvcih2YXIgYT1uZXcgQyh0aGlzLmcpLGI9dGhpcy5mLmNv
bmNhdCgpLGM9dGhpcy5iLmNvbmNhdCgpLGQ9MCxlPWIubGVuZ3RoO2Q8ZTsrK2Qp
YS5KKGJbZF0sdGhpcy5hW2JbZF1dKTtkPTA7Zm9yKGU9Yy5sZW5ndGg7ZDxlOysr
ZClhLnNldChjW2RdLHRoaXMuYVtjW2RdXSk7cmV0dXJuIGF9O2cuZ2V0PWZ1bmN0
aW9uKGEsYil7YT1pYih0aGlzLGEpO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhh
c093blByb3BlcnR5LmNhbGwodGhpcy5hLGEpP3RoaXMuYVthXTpifTsKZy5zZXQ9
ZnVuY3Rpb24oYSxiKXthPWliKHRoaXMsYSk7T2JqZWN0LnByb3RvdHlwZS5oYXNP
d25Qcm9wZXJ0eS5jYWxsKHRoaXMuYSxhKXx8KHRoaXMuYysrLHRoaXMuYi5wdXNo
KGEpKTt0aGlzLmFbYV09Yn07Zy5yZW1vdmU9ZnVuY3Rpb24oYSl7YT1pYih0aGlz
LGEpO2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlz
LmEsYSkpe2RlbGV0ZSB0aGlzLmFbYV07Zm9yKHZhciBiPVtdLGM9MCxkPXRoaXMu
Yi5sZW5ndGg7YzxkOysrYyl0aGlzLmJbY10hPT1hJiZiLnB1c2godGhpcy5iW2Nd
KTt0aGlzLmI9Yjt0aGlzLmM9Yi5sZW5ndGh9fTtnLko9ZnVuY3Rpb24oYSxiKXth
PWliKHRoaXMsYSk7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxs
KHRoaXMuYSxhKXx8KHRoaXMuaCsrLHRoaXMuZi5wdXNoKGEpKTt0aGlzLmFbYV09
Yn07CmcudG9TdHJpbmc9ZnVuY3Rpb24oKXtpZih0aGlzLkMoKSlyZXR1cm4iIjtm
b3IodmFyIGE9W10sYj10aGlzLmYuY29uY2F0KCkuY29uY2F0KHRoaXMuYi5jb25j
YXQoKSksYz12b2lkIDAsZD12b2lkIDAsYz0iIixlPTAsZj1iLmxlbmd0aDtlPGY7
KytlKWM9YltlXSxkPXRoaXMuZ2V0KGMpLGM9ZW5jb2RlVVJJQ29tcG9uZW50KFN0
cmluZyhjKSksIiIhPT1kJiYoYys9Ij0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJp
bmcoZCkpKSxhLnB1c2goYyk7cmV0dXJuIGEuam9pbigiJiIpfTtmdW5jdGlvbiBp
YihhLGIpe3ZhciBjPVN0cmluZyhiKTthLmcmJihjPWMudG9Mb3dlckNhc2UoKSk7
cmV0dXJuIGN9dmFyIEQ9Qy5wcm90b3R5cGU7RC5zZXQ9RC5zZXQ7RC5nZXQ9RC5n
ZXQ7RC5zZXRNZXRhPUQuSjtELnJlbW92ZT1ELnJlbW92ZTtELmlzRW1wdHk9RC5D
O0QudG9TdHJpbmc9RC50b1N0cmluZzt5LmRhPXt9O3kuZGEuT2E9ZnVuY3Rpb24o
KXt2YXIgYT1uZXcgQzthLkooImV0IiwidWlkIik7cmV0dXJuIGF9O3kuST17fTt5
Lkkub2I9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEMsYztmb3IoYyBpbiBhKWEuaGFz
T3duUHJvcGVydHkoYykmJmIuc2V0KGMsYVtjXSk7cmV0dXJuIGJ9O3kuY2E9e307
eS5jYS5PYT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgQzthPXkuSS5vYihhKTtiLkoo
ImV0IiwiY3YiKTtiLnNldCgiY3YiLGEudG9TdHJpbmcoKSk7cmV0dXJuIGJ9O2Z1
bmN0aW9uIGpiKGEsYil7Yi51bnNoaWZ0KGEpO0IuY2FsbCh0aGlzLGZiLmFwcGx5
KG51bGwsYikpO2Iuc2hpZnQoKX14KGpiLEIpO2piLnByb3RvdHlwZS5uYW1lPSJB
c3NlcnRpb25FcnJvciI7ZnVuY3Rpb24ga2IoYSxiKXt0aHJvdyBuZXcgamIoIkZh
aWx1cmUiKyhhPyI6ICIrYToiIiksQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
YXJndW1lbnRzLDEpKTt9O3ZhciBFPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1
bmN0aW9uKGEsYixjKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2Fs
bChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXtjPW51bGw9PWM/MDowPmM/TWF0aC5t
YXgoMCxhLmxlbmd0aCtjKTpjO2lmKHQoYSkpcmV0dXJuIHQoYikmJjE9PWIubGVu
Z3RoP2EuaW5kZXhPZihiLGMpOi0xO2Zvcig7YzxhLmxlbmd0aDtjKyspaWYoYyBp
biBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0sbGI9QXJyYXkucHJvdG90
eXBlLmZvckVhY2g/ZnVuY3Rpb24oYSxiLGMpe0FycmF5LnByb3RvdHlwZS5mb3JF
YWNoLmNhbGwoYSxiLGMpfTpmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWEubGVu
Z3RoLGU9dChhKT9hLnNwbGl0KCIiKTphLGY9MDtmPGQ7ZisrKWYgaW4gZSYmYi5j
YWxsKGMsZVtmXSxmLGEpfSxtYj1BcnJheS5wcm90b3R5cGUuZmlsdGVyP2Z1bmN0
aW9uKGEsYixjKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGEs
CmIsYyl9OmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9YS5sZW5ndGgsZT1bXSxm
PTAsaz10KGEpP2Euc3BsaXQoIiIpOmEsbT0wO208ZDttKyspaWYobSBpbiBrKXt2
YXIgcj1rW21dO2IuY2FsbChjLHIsbSxhKSYmKGVbZisrXT1yKX1yZXR1cm4gZX0s
bmI9QXJyYXkucHJvdG90eXBlLnNvbWU/ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBB
cnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGEsYixjKX06ZnVuY3Rpb24oYSxiLGMp
e2Zvcih2YXIgZD1hLmxlbmd0aCxlPXQoYSk/YS5zcGxpdCgiIik6YSxmPTA7Zjxk
O2YrKylpZihmIGluIGUmJmIuY2FsbChjLGVbZl0sZixhKSlyZXR1cm4hMDtyZXR1
cm4hMX07CmZ1bmN0aW9uIG9iKGEsYil7dmFyIGM7YTp7Yz1hLmxlbmd0aDtmb3Io
dmFyIGQ9dChhKT9hLnNwbGl0KCIiKTphLGU9MDtlPGM7ZSsrKWlmKGUgaW4gZCYm
Yi5jYWxsKHZvaWQgMCxkW2VdLGUsYSkpe2M9ZTticmVhayBhfWM9LTF9cmV0dXJu
IDA+Yz9udWxsOnQoYSk/YS5jaGFyQXQoYyk6YVtjXX1mdW5jdGlvbiBwYihhLGIp
e3ZhciBjPUUoYSxiKSxkOyhkPTA8PWMpJiZBcnJheS5wcm90b3R5cGUuc3BsaWNl
LmNhbGwoYSxjLDEpO3JldHVybiBkfWZ1bmN0aW9uIHFiKGEpe3JldHVybiBBcnJh
eS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KEFycmF5LnByb3RvdHlwZSxhcmd1bWVu
dHMpfWZ1bmN0aW9uIHJiKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhO2MrKyliW2Nd
PTA7cmV0dXJuIGJ9O2Z1bmN0aW9uIHNiKCl7dGhpcy5hPVtdfXNiLnByb3RvdHlw
ZS5yZW1vdmU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmEsYj1hLmxlbmd0aCxjPWFb
MF07aWYoMCE9PWIpe2lmKDE9PT1iKXtpZighcShhKSlmb3IoYj1hLmxlbmd0aC0x
OzA8PWI7Yi0tKWRlbGV0ZSBhW2JdO2EubGVuZ3RoPTB9ZWxzZXthWzBdPWEucG9w
KCk7Zm9yKHZhciBhPTAsYj10aGlzLmEsZD1iLmxlbmd0aCxlPXZvaWQgMCxmPXZv
aWQgMCxlPXZvaWQgMCxrPWJbYV07YTxkPj4xOyl7ZT0yKmErMTtmPTIqYSsyO2U9
ZjxkJiZiW2ZdLmE8YltlXS5hP2Y6ZTtpZihiW2VdLmE+ay5hKWJyZWFrO2JbYV09
YltlXTthPWV9YlthXT1rfXJldHVybiBjLmJ9fTtzYi5wcm90b3R5cGUuTD1mdW5j
dGlvbigpe3JldHVybiAwPT09dGhpcy5hLmxlbmd0aD92b2lkIDA6dGhpcy5hWzBd
LmJ9O3NiLnByb3RvdHlwZS5DPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PXRoaXMuYS5s
ZW5ndGh9O2Z1bmN0aW9uIHRiKCl7dGhpcy5hPW5ldyBzYn10Yi5wcm90b3R5cGUu
ZW5xdWV1ZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuYTtjLmEucHVzaChuZXcg
c2EoYSxiKSk7Zm9yKHZhciBkPWMuYS5sZW5ndGgtMSxjPWMuYSxlPWNbZF0sZj12
b2lkIDA7MDxkOylpZihmPWQtMT4+MSxjW2ZdLmE+ZS5hKWNbZF09Y1tmXSxkPWY7
ZWxzZSBicmVhaztjW2RdPWV9O3RiLnByb3RvdHlwZS5pYT1mdW5jdGlvbigpe3Jl
dHVybiB0aGlzLmEucmVtb3ZlKCl9O3RiLnByb3RvdHlwZS5MPWZ1bmN0aW9uKCl7
cmV0dXJuIHRoaXMuYS5MKCl9O3RiLnByb3RvdHlwZS5DPWZ1bmN0aW9uKCl7cmV0
dXJuIHRoaXMuYS5DKCl9O2Z1bmN0aW9uIHViKCl7dGhpcy5iPXRoaXMuYT1udWxs
fXZhciB3Yj1uZXcgeGEoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHZifSxmdW5jdGlv
bihhKXthLnJlc2V0KCl9LDEwMCk7dWIucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlv
bigpe3ZhciBhPW51bGw7dGhpcy5hJiYoYT10aGlzLmEsdGhpcy5hPXRoaXMuYS5u
ZXh0LHRoaXMuYXx8KHRoaXMuYj1udWxsKSxhLm5leHQ9bnVsbCk7cmV0dXJuIGF9
O2Z1bmN0aW9uIHZiKCl7dGhpcy5uZXh0PXRoaXMuYj10aGlzLmE9bnVsbH12Yi5w
cm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5hPWE7dGhpcy5iPWI7dGhp
cy5uZXh0PW51bGx9O3ZiLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMu
bmV4dD10aGlzLmI9dGhpcy5hPW51bGx9O2Z1bmN0aW9uIHhiKGEpe3RoaXMuc3Jj
PWE7dGhpcy5BPXt9O3RoaXMuYT0wfWZ1bmN0aW9uIHliKGEsYixjLGQsZSl7dmFy
IGY9Yi50b1N0cmluZygpO2I9YS5BW2ZdO2J8fChiPWEuQVtmXT1bXSxhLmErKyk7
dmFyIGs9emIoYixjLGQsZSk7LTE8az8oYT1iW2tdLGEucmE9ITEpOihhPW5ldyBI
YShjLGEuc3JjLGYsISFkLGUpLGEucmE9ITEsYi5wdXNoKGEpKTtyZXR1cm4gYX14
Yi5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEsYixjLGQpe2E9YS50b1N0cmlu
ZygpO2lmKCEoYSBpbiB0aGlzLkEpKXJldHVybiExO3ZhciBlPXRoaXMuQVthXTti
PXpiKGUsYixjLGQpO3JldHVybi0xPGI/KElhKGVbYl0pLEFycmF5LnByb3RvdHlw
ZS5zcGxpY2UuY2FsbChlLGIsMSksMD09ZS5sZW5ndGgmJihkZWxldGUgdGhpcy5B
W2FdLHRoaXMuYS0tKSwhMCk6ITF9OwpmdW5jdGlvbiBBYihhLGIpe3ZhciBjPWIu
dHlwZTtjIGluIGEuQSYmcGIoYS5BW2NdLGIpJiYoSWEoYiksMD09YS5BW2NdLmxl
bmd0aCYmKGRlbGV0ZSBhLkFbY10sYS5hLS0pKX1mdW5jdGlvbiB6YihhLGIsYyxk
KXtmb3IodmFyIGU9MDtlPGEubGVuZ3RoOysrZSl7dmFyIGY9YVtlXTtpZighZi5h
YSYmZi5saXN0ZW5lcj09YiYmZi5YPT0hIWMmJmYudmE9PWQpcmV0dXJuIGV9cmV0
dXJuLTF9O2Z1bmN0aW9uIEJiKGEsYil7dGhpcy5hPWwoYSk/YTowO3RoaXMuSD1s
KGIpP2I6MH1nPUJiLnByb3RvdHlwZTtnLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJu
IG5ldyBCYih0aGlzLmEsdGhpcy5IKX07Zy50b1N0cmluZz1mdW5jdGlvbigpe3Jl
dHVybiIoIit0aGlzLmErIiwgIit0aGlzLkgrIikifTtnLmNlaWw9ZnVuY3Rpb24o
KXt0aGlzLmE9TWF0aC5jZWlsKHRoaXMuYSk7dGhpcy5IPU1hdGguY2VpbCh0aGlz
LkgpO3JldHVybiB0aGlzfTtnLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy5hPU1hdGgu
Zmxvb3IodGhpcy5hKTt0aGlzLkg9TWF0aC5mbG9vcih0aGlzLkgpO3JldHVybiB0
aGlzfTtnLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy5hPU1hdGgucm91bmQodGhpcy5h
KTt0aGlzLkg9TWF0aC5yb3VuZCh0aGlzLkgpO3JldHVybiB0aGlzfTt2YXIgQ2I7
ZnVuY3Rpb24gRGIoKXt9eChEYixjYik7ZnVuY3Rpb24gRWIoYSl7cmV0dXJuKGE9
ZWIoYSkpP25ldyBBY3RpdmVYT2JqZWN0KGEpOm5ldyBYTUxIdHRwUmVxdWVzdH1m
dW5jdGlvbiBlYihhKXtpZighYS5iJiYidW5kZWZpbmVkIj09dHlwZW9mIFhNTEh0
dHBSZXF1ZXN0JiYidW5kZWZpbmVkIiE9dHlwZW9mIEFjdGl2ZVhPYmplY3Qpe2Zv
cih2YXIgYj1bIk1TWE1MMi5YTUxIVFRQLjYuMCIsIk1TWE1MMi5YTUxIVFRQLjMu
MCIsIk1TWE1MMi5YTUxIVFRQIiwiTWljcm9zb2Z0LlhNTEhUVFAiXSxjPTA7Yzxi
Lmxlbmd0aDtjKyspe3ZhciBkPWJbY107dHJ5e3JldHVybiBuZXcgQWN0aXZlWE9i
amVjdChkKSxhLmI9ZH1jYXRjaChlKXt9fXRocm93IEVycm9yKCJDb3VsZCBub3Qg
Y3JlYXRlIEFjdGl2ZVhPYmplY3QuIEFjdGl2ZVggbWlnaHQgYmUgZGlzYWJsZWQs
IG9yIE1TWE1MIG1pZ2h0IG5vdCBiZSBpbnN0YWxsZWQiKTt9cmV0dXJuIGEuYn1D
Yj1uZXcgRGI7ZnVuY3Rpb24gRmIoYSxiKXt0aGlzLmI9e307dGhpcy5hPVtdO3Ro
aXMuYz0wO3ZhciBjPWFyZ3VtZW50cy5sZW5ndGg7aWYoMTxjKXtpZihjJTIpdGhy
b3cgRXJyb3IoIlVuZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzIik7Zm9yKHZhciBk
PTA7ZDxjO2QrPTIpdGhpcy5zZXQoYXJndW1lbnRzW2RdLGFyZ3VtZW50c1tkKzFd
KX1lbHNlIGlmKGEpe2EgaW5zdGFuY2VvZiBGYj8oYz1hLlIoKSxkPWEuUygpKToo
Yz1TYShhKSxkPVJhKGEpKTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyl0aGlz
LnNldChjW2VdLGRbZV0pfX1nPUZiLnByb3RvdHlwZTtnLlM9ZnVuY3Rpb24oKXtH
Yih0aGlzKTtmb3IodmFyIGE9W10sYj0wO2I8dGhpcy5hLmxlbmd0aDtiKyspYS5w
dXNoKHRoaXMuYlt0aGlzLmFbYl1dKTtyZXR1cm4gYX07Zy5SPWZ1bmN0aW9uKCl7
R2IodGhpcyk7cmV0dXJuIHRoaXMuYS5jb25jYXQoKX07Zy5DPWZ1bmN0aW9uKCl7
cmV0dXJuIDA9PXRoaXMuY307CmcuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmI9e307
dGhpcy5jPXRoaXMuYS5sZW5ndGg9MH07Zy5yZW1vdmU9ZnVuY3Rpb24oYSl7cmV0
dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmIs
YSk/KGRlbGV0ZSB0aGlzLmJbYV0sdGhpcy5jLS0sdGhpcy5hLmxlbmd0aD4yKnRo
aXMuYyYmR2IodGhpcyksITApOiExfTtmdW5jdGlvbiBHYihhKXtpZihhLmMhPWEu
YS5sZW5ndGgpe2Zvcih2YXIgYj0wLGM9MDtiPGEuYS5sZW5ndGg7KXt2YXIgZD1h
LmFbYl07T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEuYixk
KSYmKGEuYVtjKytdPWQpO2IrK31hLmEubGVuZ3RoPWN9aWYoYS5jIT1hLmEubGVu
Z3RoKXtmb3IodmFyIGU9e30sYz1iPTA7YjxhLmEubGVuZ3RoOylkPWEuYVtiXSxP
YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxkKXx8KGEuYVtj
KytdPWQsZVtkXT0xKSxiKys7YS5hLmxlbmd0aD1jfX0KZy5nZXQ9ZnVuY3Rpb24o
YSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxs
KHRoaXMuYixhKT90aGlzLmJbYV06Yn07Zy5zZXQ9ZnVuY3Rpb24oYSxiKXtPYmpl
Y3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5iLGEpfHwodGhp
cy5jKyssdGhpcy5hLnB1c2goYSkpO3RoaXMuYlthXT1ifTtnLmZvckVhY2g9ZnVu
Y3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5SKCksZD0wO2Q8Yy5sZW5ndGg7ZCsr
KXt2YXIgZT1jW2RdLGY9dGhpcy5nZXQoZSk7YS5jYWxsKGIsZixlLHRoaXMpfX07
Zy5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRmIodGhpcyl9O2Z1bmN0aW9u
IEhiKGEpe2lmKGEuUyYmImZ1bmN0aW9uIj09dHlwZW9mIGEuUylyZXR1cm4gYS5T
KCk7aWYodChhKSlyZXR1cm4gYS5zcGxpdCgiIik7aWYoY2EoYSkpe2Zvcih2YXIg
Yj1bXSxjPWEubGVuZ3RoLGQ9MDtkPGM7ZCsrKWIucHVzaChhW2RdKTtyZXR1cm4g
Yn1yZXR1cm4gUmEoYSl9CmZ1bmN0aW9uIEliKGEsYil7aWYoYS5mb3JFYWNoJiYi
ZnVuY3Rpb24iPT10eXBlb2YgYS5mb3JFYWNoKWEuZm9yRWFjaChiLHZvaWQgMCk7
ZWxzZSBpZihjYShhKXx8dChhKSlsYihhLGIsdm9pZCAwKTtlbHNle3ZhciBjO2lm
KGEuUiYmImZ1bmN0aW9uIj09dHlwZW9mIGEuUiljPWEuUigpO2Vsc2UgaWYoYS5T
JiYiZnVuY3Rpb24iPT10eXBlb2YgYS5TKWM9dm9pZCAwO2Vsc2UgaWYoY2EoYSl8
fHQoYSkpe2M9W107Zm9yKHZhciBkPWEubGVuZ3RoLGU9MDtlPGQ7ZSsrKWMucHVz
aChlKX1lbHNlIGM9U2EoYSk7Zm9yKHZhciBkPUhiKGEpLGU9ZC5sZW5ndGgsZj0w
O2Y8ZTtmKyspYi5jYWxsKHZvaWQgMCxkW2ZdLGMmJmNbZl0sYSl9fTt2YXIgSmI9
L14oPzooW146Lz8jLl0rKTopPyg/OlwvXC8oPzooW14vPyNdKilAKT8oW14vIz9d
Kj8pKD86OihbMC05XSspKT8oPz1bLyM/XXwkKSk/KFtePyNdKyk/KD86XD8oW14j
XSopKT8oPzojKC4qKSk/JC87dmFyIEtiPSExLEY9IiI7ZnVuY3Rpb24gTGIoYSl7
YT1hLm1hdGNoKC9bXGRdKy9nKTtpZighYSlyZXR1cm4iIjthLmxlbmd0aD0zO3Jl
dHVybiBhLmpvaW4oIi4iKX0KKGZ1bmN0aW9uKCl7aWYobmF2aWdhdG9yLnBsdWdp
bnMmJm5hdmlnYXRvci5wbHVnaW5zLmxlbmd0aCl7dmFyIGE9bmF2aWdhdG9yLnBs
dWdpbnNbIlNob2Nrd2F2ZSBGbGFzaCJdO2lmKGEmJihLYj0hMCxhLmRlc2NyaXB0
aW9uKSl7Rj1MYihhLmRlc2NyaXB0aW9uKTtyZXR1cm59aWYobmF2aWdhdG9yLnBs
dWdpbnNbIlNob2Nrd2F2ZSBGbGFzaCAyLjAiXSl7S2I9ITA7Rj0iMi4wLjAuMTEi
O3JldHVybn19aWYobmF2aWdhdG9yLm1pbWVUeXBlcyYmbmF2aWdhdG9yLm1pbWVU
eXBlcy5sZW5ndGgmJihhPW5hdmlnYXRvci5taW1lVHlwZXNbImFwcGxpY2F0aW9u
L3gtc2hvY2t3YXZlLWZsYXNoIl0sS2I9ISFhJiZhLmVuYWJsZWRQbHVnaW4pKXtG
PUxiKGEuZW5hYmxlZFBsdWdpbi5kZXNjcmlwdGlvbik7cmV0dXJufXRyeXt2YXIg
Yj1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxh
c2guNyIpO0tiPSEwO0Y9TGIoYi5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKSk7CnJl
dHVybn1jYXRjaChjKXt9dHJ5e2I9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2
ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoLjYiKTtLYj0hMDtGPSI2LjAuMjEiO3JldHVy
bn1jYXRjaChjKXt9dHJ5e2I9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZs
YXNoLlNob2Nrd2F2ZUZsYXNoIiksS2I9ITAsRj1MYihiLkdldFZhcmlhYmxlKCIk
dmVyc2lvbiIpKX1jYXRjaChjKXt9fSkoKTt2YXIgTWI9Rjt2YXIgTmI7YTp7dmFy
IE9iPWgubmF2aWdhdG9yO2lmKE9iKXt2YXIgUGI9T2IudXNlckFnZW50O2lmKFBi
KXtOYj1QYjticmVhayBhfX1OYj0iIn1mdW5jdGlvbiBHKGEpe3JldHVybi0xIT1O
Yi5pbmRleE9mKGEpfTtmdW5jdGlvbiBRYihhKXtoLnNldFRpbWVvdXQoZnVuY3Rp
b24oKXt0aHJvdyBhO30sMCl9dmFyIFJiOwpmdW5jdGlvbiBTYigpe3ZhciBhPWgu
TWVzc2FnZUNoYW5uZWw7InVuZGVmaW5lZCI9PT10eXBlb2YgYSYmInVuZGVmaW5l
ZCIhPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucG9zdE1lc3NhZ2UmJndpbmRvdy5h
ZGRFdmVudExpc3RlbmVyJiYhRygiUHJlc3RvIikmJihhPWZ1bmN0aW9uKCl7dmFy
IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSUZSQU1FIik7YS5zdHlsZS5kaXNw
bGF5PSJub25lIjthLnNyYz0iIjtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQoYSk7dmFyIGI9YS5jb250ZW50V2luZG93LGE9Yi5kb2N1bWVudDth
Lm9wZW4oKTthLndyaXRlKCIiKTthLmNsb3NlKCk7dmFyIGM9ImNhbGxJbW1lZGlh
dGUiK01hdGgucmFuZG9tKCksZD0iZmlsZToiPT1iLmxvY2F0aW9uLnByb3RvY29s
PyIqIjpiLmxvY2F0aW9uLnByb3RvY29sKyIvLyIrYi5sb2NhdGlvbi5ob3N0LGE9
dihmdW5jdGlvbihhKXtpZigoIioiPT1kfHxhLm9yaWdpbj09ZCkmJmEuZGF0YT09
CmMpdGhpcy5wb3J0MS5vbm1lc3NhZ2UoKX0sdGhpcyk7Yi5hZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIixhLCExKTt0aGlzLnBvcnQxPXt9O3RoaXMucG9ydDI9e3Bv
c3RNZXNzYWdlOmZ1bmN0aW9uKCl7Yi5wb3N0TWVzc2FnZShjLGQpfX19KTtpZigi
dW5kZWZpbmVkIiE9PXR5cGVvZiBhJiYhRygiVHJpZGVudCIpJiYhRygiTVNJRSIp
KXt2YXIgYj1uZXcgYSxjPXt9LGQ9YztiLnBvcnQxLm9ubWVzc2FnZT1mdW5jdGlv
bigpe2lmKGwoYy5uZXh0KSl7Yz1jLm5leHQ7dmFyIGE9Yy5oYjtjLmhiPW51bGw7
YSgpfX07cmV0dXJuIGZ1bmN0aW9uKGEpe2QubmV4dD17aGI6YX07ZD1kLm5leHQ7
Yi5wb3J0Mi5wb3N0TWVzc2FnZSgwKX19cmV0dXJuInVuZGVmaW5lZCIhPT10eXBl
b2YgZG9jdW1lbnQmJiJvbnJlYWR5c3RhdGVjaGFuZ2UiaW4gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiU0NSSVBUIik/ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiU0NSSVBUIik7CmIub25yZWFkeXN0YXRlY2hhbmdlPWZ1
bmN0aW9uKCl7Yi5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDtiLnBhcmVudE5vZGUu
cmVtb3ZlQ2hpbGQoYik7Yj1udWxsO2EoKTthPW51bGx9O2RvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5hcHBlbmRDaGlsZChiKX06ZnVuY3Rpb24oYSl7aC5zZXRUaW1l
b3V0KGEsMCl9fTtmdW5jdGlvbiBUYihhLGIpe1VifHxWYigpO1difHwoVWIoKSxX
Yj0hMCk7dmFyIGM9WGIsZD13Yi5nZXQoKTtkLnNldChhLGIpO2MuYj9jLmIubmV4
dD1kOmMuYT1kO2MuYj1kfXZhciBVYjtmdW5jdGlvbiBWYigpe2lmKGguUHJvbWlz
ZSYmaC5Qcm9taXNlLnJlc29sdmUpe3ZhciBhPWguUHJvbWlzZS5yZXNvbHZlKHZv
aWQgMCk7VWI9ZnVuY3Rpb24oKXthLnRoZW4oWWIpfX1lbHNlIFViPWZ1bmN0aW9u
KCl7dmFyIGE9WWI7IXUoaC5zZXRJbW1lZGlhdGUpfHxoLldpbmRvdyYmaC5XaW5k
b3cucHJvdG90eXBlJiYhRygiRWRnZSIpJiZoLldpbmRvdy5wcm90b3R5cGUuc2V0
SW1tZWRpYXRlPT1oLnNldEltbWVkaWF0ZT8oUmJ8fChSYj1TYigpKSxSYihhKSk6
aC5zZXRJbW1lZGlhdGUoYSl9fXZhciBXYj0hMSxYYj1uZXcgdWI7CmZ1bmN0aW9u
IFliKCl7Zm9yKHZhciBhPW51bGw7YT1YYi5yZW1vdmUoKTspe3RyeXthLmEuY2Fs
bChhLmIpfWNhdGNoKGIpe1FiKGIpfXlhKHdiLGEpfVdiPSExfTtmdW5jdGlvbiBI
KGEsYil7dGhpcy5hPVpiO3RoaXMuaj12b2lkIDA7dGhpcy5jPXRoaXMuYj10aGlz
LmY9bnVsbDt0aGlzLmc9dGhpcy5oPSExO2lmKGEhPW4pdHJ5e3ZhciBjPXRoaXM7
YS5jYWxsKGIsZnVuY3Rpb24oYSl7JGIoYyxhYyxhKX0sZnVuY3Rpb24oYSl7dHJ5
e2lmKGEgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyBhO3Rocm93IEVycm9yKCJQcm9t
aXNlIHJlamVjdGVkLiIpO31jYXRjaChiKXt9JGIoYyxKLGEpfSl9Y2F0Y2goZCl7
JGIodGhpcyxKLGQpfX12YXIgWmI9MCxhYz0yLEo9MztmdW5jdGlvbiBiYygpe3Ro
aXMubmV4dD10aGlzLmNvbnRleHQ9dGhpcy5iPXRoaXMuYz10aGlzLmE9bnVsbDt0
aGlzLmY9ITF9YmMucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5jb250
ZXh0PXRoaXMuYj10aGlzLmM9dGhpcy5hPW51bGw7dGhpcy5mPSExfTt2YXIgY2M9
bmV3IHhhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBiY30sZnVuY3Rpb24oYSl7YS5y
ZXNldCgpfSwxMDApOwpmdW5jdGlvbiBkYyhhLGIsYyl7dmFyIGQ9Y2MuZ2V0KCk7
ZC5jPWE7ZC5iPWI7ZC5jb250ZXh0PWM7cmV0dXJuIGR9SC5wcm90b3R5cGUudGhl
bj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGVjKHRoaXMsdShhKT9hOm51bGwsdShi
KT9iOm51bGwsYyl9O1dhKEgpO2Z1bmN0aW9uIGZjKGEsYil7YS5ifHxhLmEhPWFj
JiZhLmEhPUp8fGdjKGEpO2EuYz9hLmMubmV4dD1iOmEuYj1iO2EuYz1ifWZ1bmN0
aW9uIGVjKGEsYixjLGQpe3ZhciBlPWRjKG51bGwsbnVsbCxudWxsKTtlLmE9bmV3
IEgoZnVuY3Rpb24oYSxrKXtlLmM9Yj9mdW5jdGlvbihjKXt0cnl7dmFyIGU9Yi5j
YWxsKGQsYyk7YShlKX1jYXRjaChJKXtrKEkpfX06YTtlLmI9Yz9mdW5jdGlvbihi
KXt0cnl7dmFyIGU9Yy5jYWxsKGQsYik7YShlKX1jYXRjaChJKXtrKEkpfX06a30p
O2UuYS5mPWE7ZmMoYSxlKTtyZXR1cm4gZS5hfUgucHJvdG90eXBlLnM9ZnVuY3Rp
b24oYSl7dGhpcy5hPVpiOyRiKHRoaXMsYWMsYSl9OwpILnByb3RvdHlwZS52PWZ1
bmN0aW9uKGEpe3RoaXMuYT1aYjskYih0aGlzLEosYSl9O2Z1bmN0aW9uICRiKGEs
YixjKXtpZihhLmE9PVpiKXthPT1jJiYoYj1KLGM9bmV3IFR5cGVFcnJvcigiUHJv
bWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGYiKSk7YS5hPTE7dmFyIGQ7YTp7
dmFyIGU9YyxmPWEucyxrPWEudjtpZihlIGluc3RhbmNlb2YgSClmYyhlLGRjKGZ8
fG4sa3x8bnVsbCxhKSksZD0hMDtlbHNlIGlmKFhhKGUpKWUudGhlbihmLGssYSks
ZD0hMDtlbHNle3ZhciBtPXR5cGVvZiBlO2lmKCJvYmplY3QiPT1tJiZudWxsIT1l
fHwiZnVuY3Rpb24iPT1tKXRyeXt2YXIgcj1lLnRoZW47aWYodShyKSl7aGMoZSxy
LGYsayxhKTtkPSEwO2JyZWFrIGF9fWNhdGNoKEkpe2suY2FsbChhLEkpO2Q9ITA7
YnJlYWsgYX1kPSExfX1kfHwoYS5qPWMsYS5hPWIsYS5mPW51bGwsZ2MoYSksYiE9
Snx8aWMoYSxjKSl9fQpmdW5jdGlvbiBoYyhhLGIsYyxkLGUpe2Z1bmN0aW9uIGYo
YSl7bXx8KG09ITAsZC5jYWxsKGUsYSkpfWZ1bmN0aW9uIGsoYSl7bXx8KG09ITAs
Yy5jYWxsKGUsYSkpfXZhciBtPSExO3RyeXtiLmNhbGwoYSxrLGYpfWNhdGNoKHIp
e2Yocil9fWZ1bmN0aW9uIGdjKGEpe2EuaHx8KGEuaD0hMCxUYihhLm0sYSkpfWZ1
bmN0aW9uIGpjKGEpe3ZhciBiPW51bGw7YS5iJiYoYj1hLmIsYS5iPWIubmV4dCxi
Lm5leHQ9bnVsbCk7YS5ifHwoYS5jPW51bGwpO3JldHVybiBifQpILnByb3RvdHlw
ZS5tPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPW51bGw7YT1qYyh0aGlzKTspe3ZhciBi
PXRoaXMuYSxjPXRoaXMuajtpZihiPT1KJiZhLmImJiFhLmYpZm9yKHZhciBkPXZv
aWQgMCxkPXRoaXM7ZCYmZC5nO2Q9ZC5mKWQuZz0hMTtpZihhLmEpYS5hLmY9bnVs
bCxrYyhhLGIsYyk7ZWxzZSB0cnl7YS5mP2EuYy5jYWxsKGEuY29udGV4dCk6a2Mo
YSxiLGMpfWNhdGNoKGUpe21jLmNhbGwobnVsbCxlKX15YShjYyxhKX10aGlzLmg9
ITF9O2Z1bmN0aW9uIGtjKGEsYixjKXtiPT1hYz9hLmMuY2FsbChhLmNvbnRleHQs
Yyk6YS5iJiZhLmIuY2FsbChhLmNvbnRleHQsYyl9ZnVuY3Rpb24gaWMoYSxiKXth
Lmc9ITA7VGIoZnVuY3Rpb24oKXthLmcmJm1jLmNhbGwobnVsbCxiKX0pfXZhciBt
Yz1RYjtmdW5jdGlvbiBuYyhhKXtCYS5jYWxsKHRoaXMpO3RoaXMuaD0xO3RoaXMu
Zj1bXTt0aGlzLmM9MDt0aGlzLmE9W107dGhpcy5iPXt9O3RoaXMuaj1Cb29sZWFu
KGEpfXgobmMsQmEpO2Z1bmN0aW9uIG9jKGEsYixjKXt2YXIgZD1mdW5jdDtpZihi
PWEuYltiXSl7dmFyIGU9YS5hO2lmKGI9b2IoYixmdW5jdGlvbihhKXtyZXR1cm4g
ZVthKzFdPT1kJiZlW2ErMl09PWN9KSlyZXR1cm4gYS5nKGIpfXJldHVybiExfW5j
LnByb3RvdHlwZS5nPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYVthXTtpZihiKXt2
YXIgYz10aGlzLmJbYl07MCE9dGhpcy5jPyh0aGlzLmYucHVzaChhKSx0aGlzLmFb
YSsxXT1uKTooYyYmcGIoYyxhKSxkZWxldGUgdGhpcy5hW2FdLGRlbGV0ZSB0aGlz
LmFbYSsxXSxkZWxldGUgdGhpcy5hW2ErMl0pfXJldHVybiEhYn07Cm5jLnByb3Rv
dHlwZS5tPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5iW2FdO2lmKGMpe2Zvcih2
YXIgZD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLGU9MSxmPWFyZ3VtZW50cy5s
ZW5ndGg7ZTxmO2UrKylkW2UtMV09YXJndW1lbnRzW2VdO2lmKHRoaXMuailmb3Io
ZT0wO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgaz1jW2VdO3BjKHRoaXMuYVtrKzFdLHRo
aXMuYVtrKzJdLGQpfWVsc2V7dGhpcy5jKys7dHJ5e2ZvcihlPTAsZj1jLmxlbmd0
aDtlPGY7ZSsrKWs9Y1tlXSx0aGlzLmFbaysxXS5hcHBseSh0aGlzLmFbaysyXSxk
KX1maW5hbGx5e2lmKHRoaXMuYy0tLDA8dGhpcy5mLmxlbmd0aCYmMD09dGhpcy5j
KWZvcig7Yz10aGlzLmYucG9wKCk7KXRoaXMuZyhjKX19cmV0dXJuIDAhPWV9cmV0
dXJuITF9O2Z1bmN0aW9uIHBjKGEsYixjKXtUYihmdW5jdGlvbigpe2EuYXBwbHko
YixjKX0pfQpuYy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oYSl7aWYoYSl7dmFy
IGI9dGhpcy5iW2FdO2ImJihsYihiLHRoaXMuZyx0aGlzKSxkZWxldGUgdGhpcy5i
W2FdKX1lbHNlIHRoaXMuYS5sZW5ndGg9MCx0aGlzLmI9e319O3ZhciBxYz1HKCJP
cGVyYSIpfHxHKCJPUFIiKSxLPUcoIlRyaWRlbnQiKXx8RygiTVNJRSIpLHJjPUco
IkVkZ2UiKSxzYz1HKCJHZWNrbyIpJiYhKC0xIT1OYi50b0xvd2VyQ2FzZSgpLmlu
ZGV4T2YoIndlYmtpdCIpJiYhRygiRWRnZSIpKSYmIShHKCJUcmlkZW50Iil8fEco
Ik1TSUUiKSkmJiFHKCJFZGdlIiksdGM9LTEhPU5iLnRvTG93ZXJDYXNlKCkuaW5k
ZXhPZigid2Via2l0IikmJiFHKCJFZGdlIiksdWM9dGMmJkcoIk1vYmlsZSIpO2Z1
bmN0aW9uIHZjKCl7dmFyIGE9aC5kb2N1bWVudDtyZXR1cm4gYT9hLmRvY3VtZW50
TW9kZTp2b2lkIDB9dmFyIHdjOwphOnt2YXIgeGM9IiIseWM9ZnVuY3Rpb24oKXt2
YXIgYT1OYjtpZihzYylyZXR1cm4vcnZcOihbXlwpO10rKShcKXw7KS8uZXhlYyhh
KTtpZihyYylyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lmKEspcmV0
dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lm
KHRjKXJldHVybi9XZWJLaXRcLyhcUyspLy5leGVjKGEpO2lmKHFjKXJldHVybi8o
PzpWZXJzaW9uKVsgXC9dPyhcUyspLy5leGVjKGEpfSgpO3ljJiYoeGM9eWM/eWNb
MV06IiIpO2lmKEspe3ZhciB6Yz12YygpO2lmKG51bGwhPXpjJiZ6Yz5wYXJzZUZs
b2F0KHhjKSl7d2M9U3RyaW5nKHpjKTticmVhayBhfX13Yz14Y312YXIgQWM9e307
CmZ1bmN0aW9uIEwoYSl7dmFyIGI7aWYoIShiPUFjW2FdKSl7Yj0wO2Zvcih2YXIg
Yz1nYihTdHJpbmcod2MpKS5zcGxpdCgiLiIpLGQ9Z2IoU3RyaW5nKGEpKS5zcGxp
dCgiLiIpLGU9TWF0aC5tYXgoYy5sZW5ndGgsZC5sZW5ndGgpLGY9MDswPT1iJiZm
PGU7ZisrKXt2YXIgaz1jW2ZdfHwiIixtPWRbZl18fCIiLHI9UmVnRXhwKCIoXFxk
KikoXFxEKikiLCJnIiksST1SZWdFeHAoIihcXGQqKShcXEQqKSIsImciKTtkb3t2
YXIgbWE9ci5leGVjKGspfHxbIiIsIiIsIiJdLG5hPUkuZXhlYyhtKXx8WyIiLCIi
LCIiXTtpZigwPT1tYVswXS5sZW5ndGgmJjA9PW5hWzBdLmxlbmd0aClicmVhazti
PWhiKDA9PW1hWzFdLmxlbmd0aD8wOnBhcnNlSW50KG1hWzFdLDEwKSwwPT1uYVsx
XS5sZW5ndGg/MDpwYXJzZUludChuYVsxXSwxMCkpfHxoYigwPT1tYVsyXS5sZW5n
dGgsMD09bmFbMl0ubGVuZ3RoKXx8aGIobWFbMl0sbmFbMl0pfXdoaWxlKDA9PWIp
fWI9QWNbYV09MDw9Yn1yZXR1cm4gYn0KdmFyIEJjPWguZG9jdW1lbnQsQ2M9QmMm
Jks/dmMoKXx8KCJDU1MxQ29tcGF0Ij09QmMuY29tcGF0TW9kZT9wYXJzZUludCh3
YywxMCk6NSk6dm9pZCAwO3kuYj17fTt5LmIucmI9ITE7eS5iLiRhPSExO3kuYi5B
Yj15LmIucmJ8fHkuYi4kYTt5LmIuQ2E9ITE7eS5iLnhiPXtwYjoiYSJ9Owp5LmIu
cmVhZHk9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe2N8fChjPSEwLHkuYi5DYT0h
MCxhKCkpfXZhciBjPSExO3kuYi5DYSYmYSgpO2lmKGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIpZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExv
YWRlZCIsZnVuY3Rpb24oKXtiKCl9LCExKTtlbHNlIGlmKGRvY3VtZW50LmF0dGFj
aEV2ZW50KXtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJndp
bmRvdz09d2luZG93LnRvcCl7dmFyIGQ9ZnVuY3Rpb24oKXtpZighYyYmZG9jdW1l
bnQuYm9keSl0cnl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJs
ZWZ0IiksYigpfWNhdGNoKGEpe3NldFRpbWVvdXQoZCwwKX19O2QoKX1kb2N1bWVu
dC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpeyJj
b21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlJiZiKCl9KX13aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcj93aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsCmIs
ITEpOndpbmRvdy5hdHRhY2hFdmVudCYmd2luZG93LmF0dGFjaEV2ZW50KCJvbmxv
YWQiLGIpfTt5LmIucmVhZHkoZnVuY3Rpb24oKXt5LmIuQ2E9ITB9KTt5LmIuUD1m
dW5jdGlvbihhKXtyZXR1cm4gdChhKT9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChh
KTphfTt5LmIuZ2V0RWxlbWVudHNCeVRhZ05hbWU9ZnVuY3Rpb24oYSl7YT1hLnRv
VXBwZXJDYXNlKCk7cmV0dXJuIGguZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoYSl9O3kuYi5OYT1mdW5jdGlvbigpe3ZhciBhPWguZG9jdW1lbnQuYm9keSxi
PWguZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGE9bWIoW2Euc2Nyb2xsSGVpZ2h0
LGIuc2Nyb2xsSGVpZ2h0LGEub2Zmc2V0SGVpZ2h0LGIub2Zmc2V0SGVpZ2h0LGEu
Y2xpZW50SGVpZ2h0LGIuY2xpZW50SGVpZ2h0XSxmdW5jdGlvbihhKXtyZXR1cm4g
YT8hMDohMX0pO3JldHVybiBNYXRoLm1heC5hcHBseShudWxsLGEpfTsKeS5iLmpi
PWZ1bmN0aW9uKGEpe2E9YXx8aDt2YXIgYj1hLmRvY3VtZW50O2lmKHRjJiYhdWMp
e2woYS5pbm5lckhlaWdodCl8fChhPWgpO3ZhciBiPWEuaW5uZXJIZWlnaHQsYz1h
LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQ7YT09YS50b3Am
JmM8YiYmKGItPTE1KTtyZXR1cm4gbmV3IHJhKGEuaW5uZXJXaWR0aCxiKX1hPXku
Yi5JYihiKT9iLmRvY3VtZW50RWxlbWVudDpiLmJvZHk7cmV0dXJuIG5ldyByYShh
LmNsaWVudFdpZHRoLGEuY2xpZW50SGVpZ2h0KX07eS5iLkliPWZ1bmN0aW9uKGEp
e3JldHVybiB5LmIuQWI/eS5iLiRhOiJDU1MxQ29tcGF0Ij09YS5jb21wYXRNb2Rl
fTtmdW5jdGlvbiBEYygpe3RoaXMuYT1bXTtoLnNldFRpbWVvdXQodihmdW5jdGlv
bigpe0VjKHRoaXMpfSx0aGlzKSwwKX1wKERjKTtmdW5jdGlvbiBFYyhhKXtmb3Io
dmFyIGI9eS5iLmdldEVsZW1lbnRzQnlUYWdOYW1lKHkuYi54Yi5wYiksYz1bXSxk
PTAsZT1iLmxlbmd0aDtkPGU7KytkKWMucHVzaChiW2RdKTtiPXkuaC5tYXAoYyxm
dW5jdGlvbihhKXtyZXR1cm4gYS5ocmVmfSk7YS5hPXkuaC5jYyhiKX07ZnVuY3Rp
b24gRmMoYSl7dGhpcy5mPWE7dGhpcy5iPXRoaXMuYz10aGlzLmE9bnVsbH1mdW5j
dGlvbiBHYyhhLGIpe3RoaXMubmFtZT1hO3RoaXMudmFsdWU9Yn1HYy5wcm90b3R5
cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lfTt2YXIgSGM9
bmV3IEdjKCJTRVZFUkUiLDFFMyksSWM9bmV3IEdjKCJDT05GSUciLDcwMCksSmM9
bmV3IEdjKCJGSU5FIiw1MDApO2Z1bmN0aW9uIEtjKGEpe2lmKGEuYylyZXR1cm4g
YS5jO2lmKGEuYSlyZXR1cm4gS2MoYS5hKTtrYigiUm9vdCBsb2dnZXIgaGFzIG5v
IGxldmVsIHNldC4iKTtyZXR1cm4gbnVsbH0KRmMucHJvdG90eXBlLmxvZz1mdW5j
dGlvbihhLGIsYyl7aWYoYS52YWx1ZT49S2ModGhpcykudmFsdWUpZm9yKHUoYikm
JihiPWIoKSksYT1uZXcgemEoYSxTdHJpbmcoYiksdGhpcy5mKSxjJiYoYS5hPWMp
LGM9ImxvZzoiK2EuYixoLmNvbnNvbGUmJihoLmNvbnNvbGUudGltZVN0YW1wP2gu
Y29uc29sZS50aW1lU3RhbXAoYyk6aC5jb25zb2xlLm1hcmtUaW1lbGluZSYmaC5j
b25zb2xlLm1hcmtUaW1lbGluZShjKSksaC5tc1dyaXRlUHJvZmlsZXJNYXJrJiZo
Lm1zV3JpdGVQcm9maWxlck1hcmsoYyksYz10aGlzO2M7KWM9Yy5hfTt2YXIgTGM9
e30sTWM9bnVsbDsKZnVuY3Rpb24gTmMoYSl7TWN8fChNYz1uZXcgRmMoIiIpLExj
WyIiXT1NYyxNYy5jPUljKTt2YXIgYjtpZighKGI9TGNbYV0pKXtiPW5ldyBGYyhh
KTt2YXIgYz1hLmxhc3RJbmRleE9mKCIuIiksZD1hLnN1YnN0cihjKzEpLGM9TmMo
YS5zdWJzdHIoMCxjKSk7Yy5ifHwoYy5iPXt9KTtjLmJbZF09YjtiLmE9YztMY1th
XT1ifXJldHVybiBifTshc2MmJiFLfHxLJiY5PD1OdW1iZXIoQ2MpfHxzYyYmTCgi
MS45LjEiKTtLJiZMKCI5Iik7ZnVuY3Rpb24gT2MoYSxiKXtRYShiLGZ1bmN0aW9u
KGIsZCl7InN0eWxlIj09ZD9hLnN0eWxlLmNzc1RleHQ9YjoiY2xhc3MiPT1kP2Eu
Y2xhc3NOYW1lPWI6ImZvciI9PWQ/YS5odG1sRm9yPWI6UGMuaGFzT3duUHJvcGVy
dHkoZCk/YS5zZXRBdHRyaWJ1dGUoUGNbZF0sYik6MD09ZC5sYXN0SW5kZXhPZigi
YXJpYS0iLDApfHwwPT1kLmxhc3RJbmRleE9mKCJkYXRhLSIsMCk/YS5zZXRBdHRy
aWJ1dGUoZCxiKTphW2RdPWJ9KX12YXIgUGM9e2NlbGxwYWRkaW5nOiJjZWxsUGFk
ZGluZyIsY2VsbHNwYWNpbmc6ImNlbGxTcGFjaW5nIixjb2xzcGFuOiJjb2xTcGFu
IixmcmFtZWJvcmRlcjoiZnJhbWVCb3JkZXIiLGhlaWdodDoiaGVpZ2h0IixtYXhs
ZW5ndGg6Im1heExlbmd0aCIsbm9uY2U6Im5vbmNlIixyb2xlOiJyb2xlIixyb3dz
cGFuOiJyb3dTcGFuIix0eXBlOiJ0eXBlIix1c2VtYXA6InVzZU1hcCIsdmFsaWdu
OiJ2QWxpZ24iLHdpZHRoOiJ3aWR0aCJ9OwpmdW5jdGlvbiBRYyhhKXthPWEuZG9j
dW1lbnQ7YT0iQ1NTMUNvbXBhdCI9PWEuY29tcGF0TW9kZT9hLmRvY3VtZW50RWxl
bWVudDphLmJvZHk7cmV0dXJuIG5ldyBQYShhLmNsaWVudFdpZHRoLGEuY2xpZW50
SGVpZ2h0KX1mdW5jdGlvbiBSYyhhKXtyZXR1cm4gYS5wYXJlbnRXaW5kb3d8fGEu
ZGVmYXVsdFZpZXd9ZnVuY3Rpb24gU2MoYSl7dGhpcy5hPWF8fGguZG9jdW1lbnR8
fGRvY3VtZW50fVNjLnByb3RvdHlwZS5QPWZ1bmN0aW9uKGEpe3JldHVybiB0KGEp
P3RoaXMuYS5nZXRFbGVtZW50QnlJZChhKTphfTtTYy5wcm90b3R5cGUuamI9ZnVu
Y3Rpb24oYSl7cmV0dXJuIFFjKGF8fFJjKHRoaXMuYSl8fHdpbmRvdyl9OwpTYy5w
cm90b3R5cGUuTmE9ZnVuY3Rpb24oKXt2YXIgYTthOnt2YXIgYj1SYyh0aGlzLmEp
LGM9Yi5kb2N1bWVudDthPTA7aWYoYyl7YT1jLmJvZHk7dmFyIGQ9Yy5kb2N1bWVu
dEVsZW1lbnQ7aWYoIWR8fCFhKXthPTA7YnJlYWsgYX1iPVFjKGIpLmE7aWYoIkNT
UzFDb21wYXQiPT1jLmNvbXBhdE1vZGUmJmQuc2Nyb2xsSGVpZ2h0KWE9ZC5zY3Jv
bGxIZWlnaHQhPWI/ZC5zY3JvbGxIZWlnaHQ6ZC5vZmZzZXRIZWlnaHQ7ZWxzZXt2
YXIgYz1kLnNjcm9sbEhlaWdodCxlPWQub2Zmc2V0SGVpZ2h0O2QuY2xpZW50SGVp
Z2h0IT1lJiYoYz1hLnNjcm9sbEhlaWdodCxlPWEub2Zmc2V0SGVpZ2h0KTthPWM+
Yj9jPmU/YzplOmM8ZT9jOmV9fX1yZXR1cm4gYX07ClNjLnByb3RvdHlwZS5jb250
YWlucz1mdW5jdGlvbihhLGIpe2lmKCFhfHwhYilyZXR1cm4hMTtpZihhLmNvbnRh
aW5zJiYxPT1iLm5vZGVUeXBlKXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lm
KCJ1bmRlZmluZWQiIT10eXBlb2YgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbily
ZXR1cm4gYT09Ynx8Qm9vbGVhbihhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIp
JjE2KTtmb3IoO2ImJmEhPWI7KWI9Yi5wYXJlbnROb2RlO3JldHVybiBiPT1hfTtm
dW5jdGlvbiBUYygpe3RoaXMuYj1uZXcgQzt0aGlzLmE9dm9pZCAwO3ZhciBhPXRo
aXMuYjthLkooImV0IiwicHYiKTthLnNldCgiYnMiLHkuYi5qYigpKTthLnNldCgi
Y2UiLG5hdmlnYXRvci5jb29raWVFbmFibGVkPzE6MCk7dmFyIGI9aC5kb2N1bWVu
dDtiJiYoYS5zZXQoInJmIixiLnJlZmVycmVyfHwiIiksYS5zZXQoImVuIixiLmNo
YXJhY3RlclNldHx8Yi5jaGFyc2V0fHwiIiksYS5zZXQoInB0IixiLnRpdGxlLnN1
YnN0cmluZygwLDI1NSkpKTtpZihiPWguc2NyZWVuKWEuc2V0KCJzciIsYi53aWR0
aCsieCIrYi5oZWlnaHQpLGEuc2V0KCJjZCIsYi5jb2xvckRlcHRoKyItYml0Iik7
aWYoYj1oLm5hdmlnYXRvcilhLnNldCgibGEiLGIubGFuZ3VhZ2V8fGIuYnJvd3Nl
ckxhbmd1YWdlfHwiIiksYS5zZXQoImphIixiLmphdmFFbmFibGVkKCk/MTowKSxh
LnNldCgiYWNuIixiLmFwcENvZGVOYW1lKSxhLnNldCgiYW4iLGIuYXBwTmFtZSks
YS5zZXQoInBsIixiLnBsYXRmb3JtKTsKYS5zZXQoInR6IiwobmV3IERhdGUpLmdl
dFRpbWV6b25lT2Zmc2V0KCkpO2Euc2V0KCJmdiIsVWMoKSk7YS5zZXQoInN2Iix5
LmEuaS5WRVJTSU9OKTthLnNldCgibHYiLFZjKHRoaXMpKX0KZnVuY3Rpb24gV2Mo
YSxiLGMsZCl7dmFyIGU9YS5iLmNsb25lKCksZjtpZihmPWIuWWEpZj1oLmxvY2F0
aW9uLmhhc2guc3BsaXQoIiMiKVsxXSxmPXkuYi5QKGYpP251bGw6ZjtlLnNldCgi
cHQiLGRvY3VtZW50LnRpdGxlLnN1YnN0cmluZygwLDI1NSkpO3ZhciBrO2lmKGs9
Yi5EKXt2YXIgbTthOntrPWIuRDtmb3IobSBpbiBrKXttPSExO2JyZWFrIGF9bT0h
MH1rPSFtfWsmJihtPXkuSS5vYihiLkQpLGUuc2V0KCJjdiIsbS50b1N0cmluZygp
KSk7cShiLmhhKSYmYi5oYS5sZW5ndGgmJihhPWEuYyhiLmhhKSxlLnNldCgiY2gi
LEphKGEpKSk7ZiYmZS5zZXQoImhhc2giLGYpOyhjfHwwPT1jKSYmZS5zZXQoImxl
IixjKTsoYi56YXx8ZCkmJmUuc2V0KCJ1cmwiLGR8fGIuemEpO3JldHVybiBlfQpm
dW5jdGlvbiBWYyhhKXtpZighYS5hKXthLmE9YmIuZ2V0KCJsYXN0X3Zpc2l0Iik7
Zm9yKHZhciBiPVsiLyIsaC5kb2N1bWVudC5wYXRobmFtZV0sYz0wLGQ9Yi5sZW5n
dGg7YzxkOysrYyliYi5yZW1vdmUoImxhc3RfdmlzaXQiLGJbY10pO2I9bmV3IERh
dGU7Yj1iLmdldFRpbWUoKSs2RTQqYi5nZXRUaW1lem9uZU9mZnNldCgpKyI6OiIr
Yi5nZXRUaW1lKCk7Yz0iLiIraC5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZS5z
cGxpdCgid3d3LiIpLnBvcCgpO2JiLnNldCgibGFzdF92aXNpdCIsYiw4NjRFNSwi
LyIsYyl9cmV0dXJuIGEuYXx8IiJ9VGMucHJvdG90eXBlLmM9ZnVuY3Rpb24oYSl7
Zm9yKHZhciBiPVtdLGM9MCxkPWEubGVuZ3RoO2M8ZDsrK2MpYi5wdXNoKGFbY10u
c3Vic3RyaW5nKDAsMjU1KSk7cmV0dXJuIGJ9OwpmdW5jdGlvbiBVYygpe3ZhciBh
PU1iLm1hdGNoKC9bXGRdKy9nKTtpZighYXx8IWEubGVuZ3RoKXJldHVybiIiO2Eu
bGVuZ3RoPTM7cmV0dXJuIGFbMF0rIi4iK2FbMV0rIiByIithWzJdfVRjLnByb3Rv
dHlwZS5jPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD1hLmxlbmd0aDtj
PGQ7KytjKWIucHVzaChhW2NdLnN1YnN0cmluZygwLDI1NSkpO3JldHVybiBifTt2
YXIgWGM9IUt8fDk8PU51bWJlcihDYyksWWM9SyYmIUwoIjkiKTshdGN8fEwoIjUy
OCIpO3NjJiZMKCIxLjliIil8fEsmJkwoIjgiKXx8cWMmJkwoIjkuNSIpfHx0YyYm
TCgiNTI4Iik7c2MmJiFMKCI4Iil8fEsmJkwoIjkiKTtmdW5jdGlvbiBaYyhhLGIp
e0VhLmNhbGwodGhpcyxhP2EudHlwZToiIik7dGhpcy5hPXRoaXMudGFyZ2V0PW51
bGw7dGhpcy5rZXlDb2RlPXRoaXMuYnV0dG9uPXRoaXMuc2NyZWVuWT10aGlzLnNj
cmVlblg9MDt0aGlzLm1ldGFLZXk9dGhpcy5zaGlmdEtleT10aGlzLmN0cmxLZXk9
ITE7dGhpcy5iPXRoaXMuc3RhdGU9bnVsbDtpZihhKXt0aGlzLnR5cGU9YS50eXBl
O3ZhciBjPWEuY2hhbmdlZFRvdWNoZXM/YS5jaGFuZ2VkVG91Y2hlc1swXTpudWxs
O3RoaXMudGFyZ2V0PWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7dGhpcy5hPWI7dmFy
IGQ9YS5yZWxhdGVkVGFyZ2V0O2lmKGQmJnNjKXRyeXtZYShkLm5vZGVOYW1lKX1j
YXRjaChlKXt9bnVsbD09PWM/KHRoaXMuc2NyZWVuWD1hLnNjcmVlblh8fDAsdGhp
cy5zY3JlZW5ZPWEuc2NyZWVuWXx8MCk6KHRoaXMuc2NyZWVuWD1jLnNjcmVlblh8
fDAsdGhpcy5zY3JlZW5ZPWMuc2NyZWVuWXx8MCk7dGhpcy5idXR0b249YS5idXR0
b247dGhpcy5rZXlDb2RlPQphLmtleUNvZGV8fDA7dGhpcy5jdHJsS2V5PWEuY3Ry
bEtleTt0aGlzLnNoaWZ0S2V5PWEuc2hpZnRLZXk7dGhpcy5tZXRhS2V5PWEubWV0
YUtleTt0aGlzLnN0YXRlPWEuc3RhdGU7dGhpcy5iPWE7YS5kZWZhdWx0UHJldmVu
dGVkJiZ0aGlzLmMoKX19eChaYyxFYSk7WmMucHJvdG90eXBlLmM9ZnVuY3Rpb24o
KXtaYy5kYy5jLmNhbGwodGhpcyk7dmFyIGE9dGhpcy5iO2lmKGEucHJldmVudERl
ZmF1bHQpYS5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgaWYoYS5yZXR1cm5WYWx1ZT0h
MSxZYyl0cnl7aWYoYS5jdHJsS2V5fHwxMTI8PWEua2V5Q29kZSYmMTIzPj1hLmtl
eUNvZGUpYS5rZXlDb2RlPS0xfWNhdGNoKGIpe319O1pjLnByb3RvdHlwZS5PPWZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMuYn07dmFyICRjPSJjbG9zdXJlX2xtXyIrKDFF
NipNYXRoLnJhbmRvbSgpfDApLGFkPXt9LGJkPTA7CmZ1bmN0aW9uIE0oYSxiLGMs
ZCxlKXtpZihxKGIpKWZvcih2YXIgZj0wO2Y8Yi5sZW5ndGg7ZisrKU0oYSxiW2Zd
LGMsZCxlKTtlbHNlIGlmKGM9Y2QoYyksYSYmYVtGYV0pZGQoYSxiLGMsZCxlKTtl
bHNle2lmKCFiKXRocm93IEVycm9yKCJJbnZhbGlkIGV2ZW50IHR5cGUiKTt2YXIg
Zj0hIWQsaz1lZChhKTtrfHwoYVskY109az1uZXcgeGIoYSkpO2M9eWIoayxiLGMs
ZCxlKTtpZighYy5hKXtkPWZkKCk7Yy5hPWQ7ZC5zcmM9YTtkLmxpc3RlbmVyPWM7
aWYoYS5hZGRFdmVudExpc3RlbmVyKWEuYWRkRXZlbnRMaXN0ZW5lcihiLnRvU3Ry
aW5nKCksZCxmKTtlbHNlIGlmKGEuYXR0YWNoRXZlbnQpYS5hdHRhY2hFdmVudChn
ZChiLnRvU3RyaW5nKCkpLGQpO2Vsc2UgdGhyb3cgRXJyb3IoImFkZEV2ZW50TGlz
dGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS4iKTtiZCsrfX19
CmZ1bmN0aW9uIGZkKCl7dmFyIGE9aGQsYj1YYz9mdW5jdGlvbihjKXtyZXR1cm4g
YS5jYWxsKGIuc3JjLGIubGlzdGVuZXIsYyl9OmZ1bmN0aW9uKGMpe2M9YS5jYWxs
KGIuc3JjLGIubGlzdGVuZXIsYyk7aWYoIWMpcmV0dXJuIGN9O3JldHVybiBifWZ1
bmN0aW9uIGlkKGEsYixjLGQsZSl7aWYocShiKSlmb3IodmFyIGY9MDtmPGIubGVu
Z3RoO2YrKylpZChhLGJbZl0sYyxkLGUpO2Vsc2UoYz1jZChjKSxhJiZhW0ZhXSk/
YS5rYS5yZW1vdmUoU3RyaW5nKGIpLGMsZCxlKTphJiYoYT1lZChhKSkmJihiPWEu
QVtiLnRvU3RyaW5nKCldLGE9LTEsYiYmKGE9emIoYixjLCEhZCxlKSksKGM9LTE8
YT9iW2FdOm51bGwpJiZqZChjKSl9CmZ1bmN0aW9uIGpkKGEpe2lmKCJudW1iZXIi
IT10eXBlb2YgYSYmYSYmIWEuYWEpe3ZhciBiPWEuc3JjO2lmKGImJmJbRmFdKUFi
KGIua2EsYSk7ZWxzZXt2YXIgYz1hLnR5cGUsZD1hLmE7Yi5yZW1vdmVFdmVudExp
c3RlbmVyP2IucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLGQsYS5YKTpiLmRldGFjaEV2
ZW50JiZiLmRldGFjaEV2ZW50KGdkKGMpLGQpO2JkLS07KGM9ZWQoYikpPyhBYihj
LGEpLDA9PWMuYSYmKGMuc3JjPW51bGwsYlskY109bnVsbCkpOklhKGEpfX19ZnVu
Y3Rpb24gZ2QoYSl7cmV0dXJuIGEgaW4gYWQ/YWRbYV06YWRbYV09Im9uIithfWZ1
bmN0aW9uIGtkKGEsYixjLGQpe3ZhciBlPSEwO2lmKGE9ZWQoYSkpaWYoYj1hLkFb
Yi50b1N0cmluZygpXSlmb3IoYj1iLmNvbmNhdCgpLGE9MDthPGIubGVuZ3RoO2Er
Kyl7dmFyIGY9YlthXTtmJiZmLlg9PWMmJiFmLmFhJiYoZj1sZChmLGQpLGU9ZSYm
ITEhPT1mKX1yZXR1cm4gZX0KZnVuY3Rpb24gbGQoYSxiKXt2YXIgYz1hLmxpc3Rl
bmVyLGQ9YS52YXx8YS5zcmM7YS5yYSYmamQoYSk7cmV0dXJuIGMuY2FsbChkLGIp
fQpmdW5jdGlvbiBoZChhLGIpe2lmKGEuYWEpcmV0dXJuITA7aWYoIVhjKXt2YXIg
YztpZighKGM9YikpYTp7Yz1bIndpbmRvdyIsImV2ZW50Il07Zm9yKHZhciBkPWgs
ZTtlPWMuc2hpZnQoKTspaWYobnVsbCE9ZFtlXSlkPWRbZV07ZWxzZXtjPW51bGw7
YnJlYWsgYX1jPWR9ZT1jO2M9bmV3IFpjKGUsdGhpcyk7ZD0hMDtpZighKDA+ZS5r
ZXlDb2RlfHx2b2lkIDAhPWUucmV0dXJuVmFsdWUpKXthOnt2YXIgZj0hMTtpZigw
PT1lLmtleUNvZGUpdHJ5e2Uua2V5Q29kZT0tMTticmVhayBhfWNhdGNoKHIpe2Y9
ITB9aWYoZnx8dm9pZCAwPT1lLnJldHVyblZhbHVlKWUucmV0dXJuVmFsdWU9ITB9
ZT1bXTtmb3IoZj1jLmE7ZjtmPWYucGFyZW50Tm9kZSllLnB1c2goZik7Zm9yKHZh
ciBmPWEudHlwZSxrPWUubGVuZ3RoLTE7MDw9aztrLS0pe2MuYT1lW2tdO3ZhciBt
PWtkKGVba10sZiwhMCxjKSxkPWQmJm19Zm9yKGs9MDtrPGUubGVuZ3RoO2srKylj
LmE9ZVtrXSxtPWtkKGVba10sZiwhMSwKYyksZD1kJiZtfXJldHVybiBkfXJldHVy
biBsZChhLG5ldyBaYyhiLHRoaXMpKX1mdW5jdGlvbiBlZChhKXthPWFbJGNdO3Jl
dHVybiBhIGluc3RhbmNlb2YgeGI/YTpudWxsfXZhciBtZD0iX19jbG9zdXJlX2V2
ZW50c19mbl8iKygxRTkqTWF0aC5yYW5kb20oKT4+PjApO2Z1bmN0aW9uIGNkKGEp
e2lmKHUoYSkpcmV0dXJuIGE7YVttZF18fChhW21kXT1mdW5jdGlvbihiKXtyZXR1
cm4gYS5oYW5kbGVFdmVudChiKX0pO3JldHVybiBhW21kXX07eS5jPXt9O3kuYy5n
Yz17bWM6InNjcm9sbCJ9O3kuYy5vPTA7eS5jLlNhPSExO3kuYy5xYT1bXTt5LmMu
RmE9MzAwO3kuYy5nYT00ODt5LmMubmM9ZnVuY3Rpb24oYSl7aWYoIWguYWRkRXZl
bnRMaXN0ZW5lcilyZXR1cm4hMTswPT09eS5jLnFhLmxlbmd0aCYmeS5jLkhhKCk7
eS5jLnFhLnB1c2goYSk7cmV0dXJuITB9Owp5LmMuSGE9ZnVuY3Rpb24oKXt2YXIg
YT12b2lkIDAsYj17fSxjPXtYOiEwLGFjOiEwfTtoLmRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGMpezE9PT1jLnRvdWNoZXMu
bGVuZ3RoJiYoYT13KCksYj1jLmNoYW5nZWRUb3VjaGVzLml0ZW0oMCkpfSx5LmMu
U2E/YzohMCk7aC5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIs
ZnVuY3Rpb24oYyl7aWYoMSE9PWMuY2hhbmdlZFRvdWNoZXMubGVuZ3RoKWI9e307
ZWxzZXt2YXIgZT13KCksZj1jLmNoYW5nZWRUb3VjaGVzLml0ZW0oMCk7aWYoZi5p
ZGVudGlmaWVyIT09Yi5pZGVudGlmaWVyKWI9e307ZWxzZSBpZihlLWE+PXkuYy5G
YSliPXt9O2Vsc2V7dmFyIGU9Yi5yYWRpdXNYfHx5LmMuZ2Esaz1iLnJhZGl1c1l8
fHkuYy5nYTtpZihNYXRoLmFicyhmLnBhZ2VYLWIucGFnZVgpPmV8fE1hdGguYWJz
KGYucGFnZVktYi5wYWdlWSk+a3x8TWF0aC5hYnMoZi5zY3JlZW5YLWIuc2NyZWVu
WCk+CmV8fE1hdGguYWJzKGYuc2NyZWVuWS1iLnNjcmVlblkpPmspYj17fTtlbHNl
e2Y9MDtmb3IoZT15LmMucWEubGVuZ3RoO2Y8ZTsrK2YpeS5jLnFhW2ZdKGMseS5j
Lm8rKyk7Yj17fX19fX0seS5jLlNhP2M6ITApfTt0cnl7cWE9T2JqZWN0LmRlZmlu
ZVByb3BlcnR5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtn
ZXQ6ZnVuY3Rpb24oKXt5LmMuU2E9ITB9fSksaC5hZGRFdmVudExpc3RlbmVyJiZo
LmFkZEV2ZW50TGlzdGVuZXIoInRlc3RQYXNzaXZlRXZlbnRzIixudWxsLHFhKX1j
YXRjaChhKXt9O3ZhciBOPXtsOnt9fTtOLmwua2V5ZG93bj12b2lkIDA7Ti5hZGRM
aXN0ZW5lcj1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlICJrZXlkb3duIjpO
LkNiKCk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1OLmxbYV09Yn07Ti5DYj1m
dW5jdGlvbigpe00oaC5kb2N1bWVudCwia2V5ZG93biIsTi5QYix6KCkpfTtOLlBi
PWZ1bmN0aW9uKGEpe04ubC5rZXlkb3duKGEpfTt2YXIgTz17bDp7fX07Ty5sLmNs
aWNrPXZvaWQgMDtPLmwubW91c2Vkb3duPXZvaWQgMDtPLmwudGFwPXZvaWQgMDtP
LmwudG91Y2hzdGFydD12b2lkIDA7Ty5sLnRvdWNoZW5kPXZvaWQgMDtPLlU9e307
Ty5VLm1vdXNlZG93bj1uZXcgQTtPLlUuY2xpY2s9bmV3IEE7Ty5VLnRhcD1uZXcg
QTtPLkZhPTMwMDtPLmdhPTQ4O08uYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXtz
d2l0Y2goYSl7Y2FzZSAiY2xpY2siOk8uQmIoKTticmVhaztjYXNlICJ0YXAiOk8u
SGEoKTticmVhaztjYXNlICJtb3VzZWRvd24iOk8uRGIoKTticmVhaztjYXNlICJ0
b3VjaHN0YXJ0IjpPLkdiKCk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1PLmxb
YV09Yn07Ty5CYj1mdW5jdGlvbigpe00oaC5kb2N1bWVudCwiY2xpY2siLE8uS2Is
eigpKX07Ty5EYj1mdW5jdGlvbigpe00oaC5kb2N1bWVudCwibW91c2Vkb3duIixP
LlFiLHooKSl9OwpPLkdiPWZ1bmN0aW9uKCl7TShoLmRvY3VtZW50LCJ0b3VjaHN0
YXJ0IixPLlRiLHooKSl9OwpPLkhhPWZ1bmN0aW9uKCl7aWYoIWguYWRkRXZlbnRM
aXN0ZW5lcilyZXR1cm4hMTt2YXIgYT12b2lkIDAsYj17fTtoLmRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGMpezE9PT1jLnRv
dWNoZXMubGVuZ3RoJiYoYT13KCksYj1jLmNoYW5nZWRUb3VjaGVzLml0ZW0oMCkp
fSx6KCkpO2guZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1
bmN0aW9uKGMpe2lmKDEhPT1jLmNoYW5nZWRUb3VjaGVzLmxlbmd0aCliPXt9O2Vs
c2V7dmFyIGQ9dygpLGU9Yy5jaGFuZ2VkVG91Y2hlcy5pdGVtKDApO2lmKGUuaWRl
bnRpZmllciE9PWIuaWRlbnRpZmllciliPXt9O2Vsc2UgaWYoZC1hPj1PLkZhKWI9
e307ZWxzZXt2YXIgZD1iLnJhZGl1c1h8fE8uZ2EsZj1iLnJhZGl1c1l8fE8uZ2E7
TWF0aC5hYnMoZS5wYWdlWC1iLnBhZ2VYKT5kfHxNYXRoLmFicyhlLnBhZ2VZLWIu
cGFnZVkpPmZ8fE1hdGguYWJzKGUuc2NyZWVuWC1iLnNjcmVlblgpPgpkfHxNYXRo
LmFicyhlLnNjcmVlblktYi5zY3JlZW5ZKT5mP2I9e306KGMuZ2V0QnJvd3NlckV2
ZW50PWMuTyxPLkphKGMpLGI9e30pfX19LHooKSl9O08uS2I9ZnVuY3Rpb24oYSl7
YS5nZXRCcm93c2VyRXZlbnQ9YS5PO08ubC5jbGljayhhKX07Ty5RYj1mdW5jdGlv
bihhKXtpZighTy5nYigidGFwIixhKSl7dmFyIGI9Ty5VLm1vdXNlZG93bjtiLmVu
cXVldWUoe3RhcmdldDphLnRhcmdldCxuYjpoLnNldFRpbWVvdXQoZnVuY3Rpb24o
KXtiLmlhKCl9LDFFMyl9KTthLmdldEJyb3dzZXJFdmVudD1hLk87Ty5sLm1vdXNl
ZG93bihhKX19O08uVGI9ZnVuY3Rpb24oYSl7YS5nZXRCcm93c2VyRXZlbnQ9YS5P
O08ubC50b3VjaHN0YXJ0KGEpfTsKTy5KYT1mdW5jdGlvbihhKXtpZighTy5nYigi
bW91c2Vkb3duIixhKSl7dmFyIGI9Ty5VLnRhcDtiLmVucXVldWUoe3RhcmdldDph
LnRhcmdldCxuYjpoLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmlhKCl9LDFFMyl9
KTthLnJjPSEwO2EuZ2V0QnJvd3NlckV2ZW50PWEuTztPLmwudGFwKGEpfX07Ty5n
Yj1mdW5jdGlvbihhLGIpe3ZhciBjPU8uVVthXTtpZihjLkMoKXx8Yy5MKCkudGFy
Z2V0IT09Yi50YXJnZXQpcmV0dXJuITE7aC5jbGVhclRpbWVvdXQoYy5MKCkubmIp
O2MuaWEoKTtyZXR1cm4hMH07dmFyIFA9e2w6e319O1AubC5zY3JvbGw9dm9pZCAw
O1AuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYSl7Y2FzZSAic2Ny
b2xsIjpQLkZiKCk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1QLmxbYV09Yn07
UC5GYj1mdW5jdGlvbigpe00oaC5kb2N1bWVudCwic2Nyb2xsIixQLlNiLHooKSl9
O1AuU2I9ZnVuY3Rpb24oYSl7UC5sLnNjcm9sbChhKX07dmFyIFE9e2w6e319O1Eu
bC5iZWZvcmV1bmxvYWQ9dm9pZCAwO1EubC5yZXNpemU9dm9pZCAwO1EuYWRkTGlz
dGVuZXI9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYSl7Y2FzZSAiYmVmb3JldW5sb2Fk
IjpRLkhiKCk7YnJlYWs7Y2FzZSAicmVzaXplIjpRLkViKCk7YnJlYWs7ZGVmYXVs
dDpyZXR1cm4gbnVsbH1RLmxbYV09Yn07US5IYj1mdW5jdGlvbigpe00oaCwiYmVm
b3JldW5sb2FkIixRLkthLHooKSl9O1EuRWI9ZnVuY3Rpb24oKXtNKGgsInJlc2l6
ZSIsUS5JYSx6KCkpfTtRLkthPWZ1bmN0aW9uKGEpe1EubC5iZWZvcmV1bmxvYWQo
YSl9O1EuSWE9ZnVuY3Rpb24oYSl7US5sLnJlc2l6ZShhKX07ZnVuY3Rpb24gUigp
e3RoaXMuYz1uZXcgbmM7dGhpcy5mPXt9fXAoUik7Ui5wcm90b3R5cGUuYT1mdW5j
dGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5jLGU9ZC5iW2FdO2V8fChlPWQuYlthXT1b
XSk7dmFyIGY9ZC5oO2QuYVtmXT1hO2QuYVtmKzFdPWI7ZC5hW2YrMl09YztkLmg9
ZiszO2UucHVzaChmKTtyZXR1cm4gZn07Ui5wcm90b3R5cGUuZz1mdW5jdGlvbihh
LGIsYyl7cmV0dXJuIG9jKHRoaXMuYyxhLGMpfTtSLnByb3RvdHlwZS5iPWZ1bmN0
aW9uKGEsYil7cmV0dXJuIHRoaXMuYy5tLmFwcGx5KHRoaXMuYyxhcmd1bWVudHMp
fTtSLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyl7YT15Lmou
aXNBcnJheShhKT9hOlthXTtmb3IodmFyIGQ9MCxlPWEubGVuZ3RoO2Q8ZTsrK2Qp
bmQodGhpcyxhW2RdKS5BLnB1c2goe1c6Yixjb250ZXh0OmN9KX07CmZ1bmN0aW9u
IG5kKGEsYil7dmFyIGM9YS5mW2JdO2N8fChjPWEuZltiXT17QTpbXSxSYTp2b2lk
IDB9KTtjLlJhfHwoYy5SYT1vZChiKSxjLlJhLmFkZExpc3RlbmVyKGIscGQoYSxi
KSkpO3JldHVybiBjfWZ1bmN0aW9uIG9kKGEpe3N3aXRjaChhKXtjYXNlICJjbGlj
ayI6Y2FzZSAibW91c2Vkb3duIjpjYXNlICJ0YXAiOmNhc2UgInRvdWNoc3RhcnQi
OnJldHVybiBPO2Nhc2UgImJlZm9yZXVubG9hZCI6Y2FzZSAicmVzaXplIjpyZXR1
cm4gUTtjYXNlICJrZXlkb3duIjpyZXR1cm4gTjtjYXNlICJzY3JvbGwiOnJldHVy
biBQO2RlZmF1bHQ6cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBwZChhLGIpe3JldHVy
biB2KGZ1bmN0aW9uKCl7Zm9yKHZhciBhPW5kKHRoaXMsYikuQSxkPUFycmF5KGFy
Z3VtZW50cy5sZW5ndGgpLGU9MCxmPWFyZ3VtZW50cy5sZW5ndGg7ZTxmO2UrKylk
W2VdPWFyZ3VtZW50c1tlXTtlPTA7Zm9yKGY9YS5sZW5ndGg7ZTxmOysrZSlhW2Vd
LlcuYXBwbHkoYVtlXS5jb250ZXh0LGQpfSxhKX12YXIgUz1SLnByb3RvdHlwZTtT
LnN1YnNjcmliZT1TLmE7Uy51bnN1YnNjcmliZT1TLmc7Uy5wdWJsaXNoPVMuYjtT
LmFkZExpc3RlbmVyPVMuYWRkTGlzdGVuZXI7ZnVuY3Rpb24gcWQoKXt0aGlzLmM9
Ui5CKCk7dGhpcy5hPTA7dygpO3RoaXMuYj0hMDtoLnNldFRpbWVvdXQodih0aGlz
LmYsdGhpcykscmQodGhpcykpO3ZhciBhPXkudi5YYSh0aGlzLmcsdGhpcyk7dGhp
cy5jLmFkZExpc3RlbmVyKHNkLGEsdGhpcyl9dmFyIHRkPVswLDEwLDMwLDYwLDEy
MCwxODAsMjQwLDMwMCwzNjAsNDIwLDQ4MCw1NDAsNjAwLDcyMCw4NDAsOTYwLDEw
ODAsMTIwMF0sc2Q9WyJjbGljayIsIm1vdXNlZG93biIsImtleWRvd24iLCJzY3Jv
bGwiXTtxZC5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3RoaXMuYj0hMH07ZnVuY3Rp
b24gcmQoYSl7cmV0dXJuKythLmE+PXRkLmxlbmd0aD8xMkU0OjFFMyoodGRbYS5h
XS10ZFthLmEtMV0pfXFkLnByb3RvdHlwZS5mPWZ1bmN0aW9uKCl7dGhpcy5iJiYo
dGhpcy5jLmIoInBpbmciKSx0aGlzLmI9ITEpO2guc2V0VGltZW91dCh2KHRoaXMu
Zix0aGlzKSxyZCh0aGlzKSl9O2Z1bmN0aW9uIHVkKCl7dGhpcy5hPXRoaXMuYz10
aGlzLmI9dm9pZCAwO3RoaXMuZz0hMTtoLnNldFRpbWVvdXQodih0aGlzLmYsdGhp
cyksMCl9dWQucHJvdG90eXBlLmY9ZnVuY3Rpb24oKXt0aGlzLmE9eS5iLk5hKCk7
dGhpcy5iPVFjKHdpbmRvdykuYTt0aGlzLmM9dGhpcy5hLzEwO3ZhciBhPXkuZi53
YSh0aGlzLmEpLGI9eS5mLndhKHRoaXMuYik7YSYmYj8odGhpcy5nPSEwLFIuQigp
LmFkZExpc3RlbmVyKCJyZXNpemUiLHkudi5YYSh0aGlzLklhLHRoaXMpLHRoaXMp
KTpoLnNldFRpbWVvdXQodih0aGlzLmYsdGhpcyksMUUzKX07dWQucHJvdG90eXBl
LklhPWZ1bmN0aW9uKCl7dGhpcy5iPVFjKHdpbmRvdykuYX07ZnVuY3Rpb24gdmQo
KXt0aGlzLmM9dGhpcy5hPXZvaWQgMDt0aGlzLmI9dGhpcy5mPSIiO3RoaXMuZz12
b2lkIDA7dmFyIGE7YTppZigidmlzaWJpbGl0eVN0YXRlImluIGRvY3VtZW50KXRo
aXMuZj0idmlzaWJpbGl0eWNoYW5nZSIsdGhpcy5iPSJoaWRkZW4iLGE9ITA7ZWxz
ZXthPXZvaWQgMDtmb3IodmFyIGI9MDtiPHdkOysrYilpZihhPXdkW2JdLGErIlZp
c2liaWxpdHlTdGF0ZSJpbiBkb2N1bWVudCl7dGhpcy5mPWErInZpc2liaWxpdHlj
aGFuZ2UiO3RoaXMuYj1hKyJIaWRkZW4iO2E9ITA7YnJlYWsgYX1hPSExfWlmKHRo
aXMuYz1hKXRoaXMuZz1SLkIoKSx0aGlzLmE9IWguZG9jdW1lbnRbdGhpcy5iXSxN
KGguZG9jdW1lbnQsdGhpcy5mLHRoaXMuaCwhMSx0aGlzKX12YXIgd2Q9WyJ3ZWJr
aXQiLCJtb3oiLCJtcyIsIm8iXTt2ZC5wcm90b3R5cGUuaD1mdW5jdGlvbigpe3Ro
aXMuYT0haC5kb2N1bWVudFt0aGlzLmJdO3RoaXMuZy5iKCJ2aXNpYmlsaXR5Iil9
O2Z1bmN0aW9uIHhkKCl7QmEuY2FsbCh0aGlzKTt0aGlzLmthPW5ldyB4Yih0aGlz
KTt0aGlzLkRhPXRoaXN9eCh4ZCxCYSk7eGQucHJvdG90eXBlW0ZhXT0hMDt4ZC5w
cm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtp
ZCh0aGlzLGEsYixjLGQpfTtmdW5jdGlvbiBUKGEsYil7dmFyIGM9YS5EYSxkPWIs
ZT1kLnR5cGV8fGQ7aWYodChkKSlkPW5ldyBFYShkLGMpO2Vsc2UgaWYoZCBpbnN0
YW5jZW9mIEVhKWQudGFyZ2V0PWQudGFyZ2V0fHxjO2Vsc2V7dmFyIGY9ZCxkPW5l
dyBFYShlLGMpO1ZhKGQsZil9Yz1kLmE9Yzt5ZChjLGUsITAsZCk7eWQoYyxlLCEx
LGQpfWZ1bmN0aW9uIGRkKGEsYixjLGQsZSl7eWIoYS5rYSxTdHJpbmcoYiksYyxk
LGUpfQpmdW5jdGlvbiB5ZChhLGIsYyxkKXtpZihiPWEua2EuQVtTdHJpbmcoYild
KXtiPWIuY29uY2F0KCk7Zm9yKHZhciBlPSEwLGY9MDtmPGIubGVuZ3RoOysrZil7
dmFyIGs9YltmXTtpZihrJiYhay5hYSYmay5YPT1jKXt2YXIgbT1rLmxpc3RlbmVy
LHI9ay52YXx8ay5zcmM7ay5yYSYmQWIoYS5rYSxrKTtlPSExIT09bS5jYWxsKHIs
ZCkmJmV9fX19O2Z1bmN0aW9uIHpkKCl7dGhpcy5iPVIuQigpO3RoaXMuYT12b2lk
IDA7dGhpcy5jPURjLkIoKTtBZCh0aGlzKX12YXIgQmQ9L15qYXZhc2NyaXB0XDov
aSxDZD0vXl8oc2VsZnxwYXJlbnR8dG9wKSQvaTtmdW5jdGlvbiBBZChhKXthLmIu
YWRkTGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24oYSl7dmFyIGM9YS5PKCku
YnV0dG9uOzAhPT1jJiYxIT09Y3x8RGQodGhpcyxhKX0sYSk7YS5iLmFkZExpc3Rl
bmVyKCJrZXlkb3duIixmdW5jdGlvbihhKXsxMz09PWEuTygpLmtleUNvZGUmJkRk
KHRoaXMsYSl9LGEpfQpmdW5jdGlvbiBEZChhLGIpe3ZhciBjO2ZvcihjPWIudGFy
Z2V0O2MmJighbChjLnRhZ05hbWUpfHwiYSIhPT1jLnRhZ05hbWUudG9Mb3dlckNh
c2UoKXx8IWMuaHJlZik7KWM9Yy5wYXJlbnROb2RlO3ZhciBkPW5ldyBDO2lmKGMm
JmMuaHJlZil7YS5hPWMuaHJlZjt2YXIgZT1hLmE7LTEhPT1lLmluZGV4T2YoaC5s
b2NhdGlvbi5ob3N0KXx8ZS5tYXRjaChCZCl8fChjLnRhcmdldCYmYy50YXJnZXQu
bWF0Y2goQ2QpLGQuSigiZXQiLCJleHRsbiIpLGQuc2V0KCJleHRsbiIsYS5hKSx5
LmguaW5jbHVkZXMoYS5jLmEsYS5hKSYmZC5zZXQoInVtX2xvZyIsImNsIiksYS5i
LmIoImV4dExpbmsiLGQpKX19O2Z1bmN0aW9uIFUoYSxiKXthJiZhLmxvZyhKYyxi
LHZvaWQgMCl9O2Z1bmN0aW9uIEVkKGEsYixjKXtpZih1KGEpKWMmJihhPXYoYSxj
KSk7ZWxzZSBpZihhJiYiZnVuY3Rpb24iPT10eXBlb2YgYS5oYW5kbGVFdmVudClh
PXYoYS5oYW5kbGVFdmVudCxhKTtlbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIGxp
c3RlbmVyIGFyZ3VtZW50Iik7cmV0dXJuIDIxNDc0ODM2NDc8TnVtYmVyKGIpPy0x
Omguc2V0VGltZW91dChhLGJ8fDApfTtmdW5jdGlvbiBWKGEpe3hkLmNhbGwodGhp
cyk7dGhpcy5FYT1uZXcgRmI7dGhpcy5HPWF8fG51bGw7dGhpcy5iPSExO3RoaXMu
dj10aGlzLmE9bnVsbDt0aGlzLmc9dGhpcy5tYT10aGlzLmo9IiI7dGhpcy5mPXRo
aXMuZGE9dGhpcy5oPXRoaXMuY2E9ITE7dGhpcy5jPTA7dGhpcy5tPW51bGw7dGhp
cy5vYT1GZDt0aGlzLnM9dGhpcy5wYT0hMX14KFYseGQpO3ZhciBGZD0iIixHZD1W
LnByb3RvdHlwZSxIZD1OYygiZ29vZy5uZXQuWGhySW8iKTtHZC5GPUhkO3ZhciBJ
ZD0vXmh0dHBzPyQvaSxKZD1bIlBPU1QiLCJQVVQiXTsKVi5wcm90b3R5cGUuc2Vu
ZD1mdW5jdGlvbihhLGIsYyxkKXtpZih0aGlzLmEpdGhyb3cgRXJyb3IoIltnb29n
Lm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVz
dD0iK3RoaXMuaisiOyBuZXdVcmk9IithKTtiPWI/Yi50b1VwcGVyQ2FzZSgpOiJH
RVQiO3RoaXMuaj1hO3RoaXMuZz0iIjt0aGlzLm1hPWI7dGhpcy5jYT0hMTt0aGlz
LmI9ITA7dGhpcy5hPXRoaXMuRz9FYih0aGlzLkcpOkViKENiKTt0aGlzLnY9dGhp
cy5HP2RiKHRoaXMuRyk6ZGIoQ2IpO3RoaXMuYS5vbnJlYWR5c3RhdGVjaGFuZ2U9
dih0aGlzLmVhLHRoaXMpO3RyeXtVKHRoaXMuRixXKHRoaXMsIk9wZW5pbmcgWGhy
IikpLHRoaXMuZGE9ITAsdGhpcy5hLm9wZW4oYixTdHJpbmcoYSksITApLHRoaXMu
ZGE9ITF9Y2F0Y2goZil7VSh0aGlzLkYsVyh0aGlzLCJFcnJvciBvcGVuaW5nIFho
cjogIitmLm1lc3NhZ2UpKTtLZCh0aGlzLGYpO3JldHVybn1hPWN8fCIiO3ZhciBl
PXRoaXMuRWEuY2xvbmUoKTsKZCYmSWIoZCxmdW5jdGlvbihhLGIpe2Uuc2V0KGIs
YSl9KTtkPW9iKGUuUigpLExkKTtjPWguRm9ybURhdGEmJmEgaW5zdGFuY2VvZiBo
LkZvcm1EYXRhOyEoMDw9RShKZCxiKSl8fGR8fGN8fGUuc2V0KCJDb250ZW50LVR5
cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11
dGYtOCIpO2UuZm9yRWFjaChmdW5jdGlvbihhLGIpe3RoaXMuYS5zZXRSZXF1ZXN0
SGVhZGVyKGIsYSl9LHRoaXMpO3RoaXMub2EmJih0aGlzLmEucmVzcG9uc2VUeXBl
PXRoaXMub2EpO1RhKHRoaXMuYSkmJih0aGlzLmEud2l0aENyZWRlbnRpYWxzPXRo
aXMucGEpO3RyeXtNZCh0aGlzKSwwPHRoaXMuYyYmKHRoaXMucz1OZCh0aGlzLmEp
LFUodGhpcy5GLFcodGhpcywiV2lsbCBhYm9ydCBhZnRlciAiK3RoaXMuYysibXMg
aWYgaW5jb21wbGV0ZSwgeGhyMiAiK3RoaXMucykpLHRoaXMucz8odGhpcy5hLnRp
bWVvdXQ9dGhpcy5jLHRoaXMuYS5vbnRpbWVvdXQ9dih0aGlzLkFhLAp0aGlzKSk6
dGhpcy5tPUVkKHRoaXMuQWEsdGhpcy5jLHRoaXMpKSxVKHRoaXMuRixXKHRoaXMs
IlNlbmRpbmcgcmVxdWVzdCIpKSx0aGlzLmg9ITAsdGhpcy5hLnNlbmQoYSksdGhp
cy5oPSExfWNhdGNoKGYpe1UodGhpcy5GLFcodGhpcywiU2VuZCBlcnJvcjogIitm
Lm1lc3NhZ2UpKSxLZCh0aGlzLGYpfX07ZnVuY3Rpb24gTmQoYSl7cmV0dXJuIEsm
JkwoOSkmJiJudW1iZXIiPT10eXBlb2YgYS50aW1lb3V0JiZsKGEub250aW1lb3V0
KX1mdW5jdGlvbiBMZChhKXtyZXR1cm4iY29udGVudC10eXBlIj09YS50b0xvd2Vy
Q2FzZSgpfQpWLnByb3RvdHlwZS5BYT1mdW5jdGlvbigpeyJ1bmRlZmluZWQiIT10
eXBlb2YgYWEmJnRoaXMuYSYmKHRoaXMuZz0iVGltZWQgb3V0IGFmdGVyICIrdGhp
cy5jKyJtcywgYWJvcnRpbmciLFUodGhpcy5GLFcodGhpcyx0aGlzLmcpKSxUKHRo
aXMsInRpbWVvdXQiKSx0aGlzLmEmJnRoaXMuYiYmKFUodGhpcy5GLFcodGhpcywi
QWJvcnRpbmciKSksdGhpcy5iPSExLHRoaXMuZj0hMCx0aGlzLmEuYWJvcnQoKSx0
aGlzLmY9ITEsVCh0aGlzLCJjb21wbGV0ZSIpLFQodGhpcywiYWJvcnQiKSxPZCh0
aGlzKSkpfTtmdW5jdGlvbiBLZChhLGIpe2EuYj0hMTthLmEmJihhLmY9ITAsYS5h
LmFib3J0KCksYS5mPSExKTthLmc9YjtQZChhKTtPZChhKX1mdW5jdGlvbiBQZChh
KXthLmNhfHwoYS5jYT0hMCxUKGEsImNvbXBsZXRlIiksVChhLCJlcnJvciIpKX1W
LnByb3RvdHlwZS5lYT1mdW5jdGlvbigpe3RoaXMuSXx8KHRoaXMuZGF8fHRoaXMu
aHx8dGhpcy5mP1FkKHRoaXMpOnRoaXMuYmIoKSl9OwpWLnByb3RvdHlwZS5iYj1m
dW5jdGlvbigpe1FkKHRoaXMpfTsKZnVuY3Rpb24gUWQoYSl7aWYoYS5iJiYidW5k
ZWZpbmVkIiE9dHlwZW9mIGFhKWlmKGEudlsxXSYmND09UmQoYSkmJjI9PVNkKGEp
KVUoYS5GLFcoYSwiTG9jYWwgcmVxdWVzdCBlcnJvciBkZXRlY3RlZCBhbmQgaWdu
b3JlZCIpKTtlbHNlIGlmKGEuaCYmND09UmQoYSkpRWQoYS5lYSwwLGEpO2Vsc2Ug
aWYoVChhLCJyZWFkeXN0YXRlY2hhbmdlIiksND09UmQoYSkpe1UoYS5GLFcoYSwi
UmVxdWVzdCBjb21wbGV0ZSIpKTthLmI9ITE7dHJ5e3ZhciBiPVNkKGEpLGM7YTpz
d2l0Y2goYil7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDQ6Y2Fz
ZSAyMDY6Y2FzZSAzMDQ6Y2FzZSAxMjIzOmM9ITA7YnJlYWsgYTtkZWZhdWx0OmM9
ITF9dmFyIGQ7aWYoIShkPWMpKXt2YXIgZTtpZihlPTA9PT1iKXt2YXIgZj1TdHJp
bmcoYS5qKS5tYXRjaChKYilbMV18fG51bGw7aWYoIWYmJmguc2VsZiYmaC5zZWxm
LmxvY2F0aW9uKXZhciBrPWguc2VsZi5sb2NhdGlvbi5wcm90b2NvbCxmPQprLnN1
YnN0cigwLGsubGVuZ3RoLTEpO2U9IUlkLnRlc3QoZj9mLnRvTG93ZXJDYXNlKCk6
IiIpfWQ9ZX1pZihkKVQoYSwiY29tcGxldGUiKSxUKGEsInN1Y2Nlc3MiKTtlbHNl
e3ZhciBtO3RyeXttPTI8UmQoYSk/YS5hLnN0YXR1c1RleHQ6IiJ9Y2F0Y2gocil7
VShhLkYsIkNhbiBub3QgZ2V0IHN0YXR1czogIityLm1lc3NhZ2UpLG09IiJ9YS5n
PW0rIiBbIitTZChhKSsiXSI7UGQoYSl9fWZpbmFsbHl7T2QoYSl9fX1mdW5jdGlv
biBPZChhKXtpZihhLmEpe01kKGEpO3ZhciBiPWEuYSxjPWEudlswXT9uOm51bGw7
YS5hPW51bGw7YS52PW51bGw7VChhLCJyZWFkeSIpO3RyeXtiLm9ucmVhZHlzdGF0
ZWNoYW5nZT1jfWNhdGNoKGQpeyhhPWEuRikmJmEubG9nKEhjLCJQcm9ibGVtIGVu
Y291bnRlcmVkIHJlc2V0dGluZyBvbnJlYWR5c3RhdGVjaGFuZ2U6ICIrZC5tZXNz
YWdlLHZvaWQgMCl9fX0KZnVuY3Rpb24gTWQoYSl7YS5hJiZhLnMmJihhLmEub250
aW1lb3V0PW51bGwpOyJudW1iZXIiPT10eXBlb2YgYS5tJiYoaC5jbGVhclRpbWVv
dXQoYS5tKSxhLm09bnVsbCl9ZnVuY3Rpb24gUmQoYSl7cmV0dXJuIGEuYT9hLmEu
cmVhZHlTdGF0ZTowfWZ1bmN0aW9uIFNkKGEpe3RyeXtyZXR1cm4gMjxSZChhKT9h
LmEuc3RhdHVzOi0xfWNhdGNoKGIpe3JldHVybi0xfX1mdW5jdGlvbiBXKGEsYil7
cmV0dXJuIGIrIiBbIithLm1hKyIgIithLmorIiAiK1NkKGEpKyJdIn07ZnVuY3Rp
b24gVGQoKXt0aGlzLmE9dm9pZCAwfVRkLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9u
KGEsYixjKXtVZCh0aGlzLGMpO3RoaXMuYS5zZW5kKGEsIlBPU1QiLGIpfTtmdW5j
dGlvbiBVZChhLGIpe2EuYT1uZXcgVjthLmEucGE9ITA7YS5hLmM9TWF0aC5tYXgo
MCxrYSk7ZGQoYS5hLCJzdWNjZXNzIixmdW5jdGlvbigpe2IuV2EoKX0pO2RkKGEu
YSwiZXJyb3IiLGZ1bmN0aW9uKCl7Yi5lcnJvcigpfSl9O2Z1bmN0aW9uIFZkKCl7
dGhpcy5hPW5ldyBqYTt0aGlzLmM9bmV3IFRkO3RoaXMuYj1uZXcgaWF9cChWZCk7
dmFyIGthPTFFMyxXZD0id2l0aENyZWRlbnRpYWxzImluIG5ldyBYTUxIdHRwUmVx
dWVzdCxYZD0hIWgubmF2aWdhdG9yLnNlbmRCZWFjb247VmQucHJvdG90eXBlLnNl
bmQ9ZnVuY3Rpb24oYSxiLGMsZCxlKXthPWV8fGEudWEoKTtiLmdldCgiZXQiKTtj
PT09WWQ/KGRhdGFTdHJpbmc9Yi50b1N0cmluZygpLHRoaXMuYi5zZW5kKGEsYi50
b1N0cmluZygpLGQpKTpjPT09WmQ/dGhpcy5jLnNlbmQoYSxiLnRvU3RyaW5nKCks
ZCk6Yz09PSRkJiYoYi5zZXRNZXRhKCJybiIseS5mLnhhKCkpLGErPSI/IitiLnRv
U3RyaW5nKCksdGhpcy5hLnNlbmQoYSxkKSl9O2Z1bmN0aW9uIGFlKCl7dGhpcy5h
PW5ldyB0Yjt0aGlzLnM9bmV3IFZkO3RoaXMuaD0hMTt0aGlzLmI9MDt0aGlzLmM9
ITE7dGhpcy5mPTB9cChhZSk7dmFyIFlkPSJiZWFjb24iLFpkPSJ4aHIiLCRkPSJp
bWFnZSI7YWUucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXtpZih0aGlzLmEuQygpKXRo
aXMuaD0hMTtlbHNle3ZhciBhPXRoaXMuYS5MKCksYj1hLnVybDt0aGlzLnMuc2Vu
ZChhLmRhdGFbMF1bMF0sYS5kYXRhWzBdWzFdLGEudHlwZSx7V2E6dih0aGlzLm0s
dGhpcyksZXJyb3I6dih0aGlzLmosdGhpcyl9LGIpfX07YWUucHJvdG90eXBlLm09
ZnVuY3Rpb24oKXt0aGlzLmM9ITE7dGhpcy5iPXRoaXMuZj0wO3ZhciBhPXRoaXMu
YS5MKCk7YS5kYXRhLnNoaWZ0KCk7MD09PWEuZGF0YS5sZW5ndGgmJihhPXRoaXMu
YS5pYSgpLGEuVyYmYS5XKCkpO3RoaXMuZygpfTsKYWUucHJvdG90eXBlLmo9ZnVu
Y3Rpb24oKXtpZig1PD10aGlzLmYrKyl0aGlzLmM9ITEsdGhpcy5iPXRoaXMuZj0w
O2Vsc2V7aWYoIXRoaXMuYyl7dGhpcy5jPSEwO3ZhciBhPXRoaXMuYS5MKCk7YSYm
YS5kYXRhJiZhLmRhdGFbMF1bMV0uc2V0KCJyZXRyeSIsMSl9dGhpcy5iKz0yNTA7
aC5zZXRUaW1lb3V0KHYodGhpcy5nLHRoaXMpLHRoaXMuYil9fTtmdW5jdGlvbiBi
ZSgpe3RoaXMuYj1SLkIoKTt0aGlzLmc9bmV3IHZkO3RoaXMuaj1uZXcgdWQ7dGhp
cy5oPW5ldyB0YSh2KHRoaXMudix0aGlzKSk7dGhpcy5mPSEwO3RoaXMuYz10aGlz
LmE9dm9pZCAwO3RoaXMuYi5hKCJ2aXNpYmlsaXR5Iix0aGlzLnMsdGhpcyk7dGhp
cy5hPXt0aW1lOjAsYmE6cmIoMTApfTtYZCYmdGhpcy5nLmMmJnRoaXMuZy5hJiZ0
aGlzLmguc3RhcnQoKTtuZXcgcWQ7dmFyIGE9eS52LlhhKHRoaXMubSx0aGlzKTt0
aGlzLmIuYWRkTGlzdGVuZXIoY2UsYSx0aGlzKTtkZSh0aGlzKX12YXIgY2U9WyJj
bGljayIsIm1vdXNlZG93biIsImtleWRvd24iLCJzY3JvbGwiXTtiZS5wcm90b3R5
cGUucz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuZy5hO2lmKFhkKXt2YXIgYj10aGlz
Lmg7YT9iLnN0YXJ0KCk6KGIuYj0hMSx3YShiKSl9fTsKYmUucHJvdG90eXBlLnY9
ZnVuY3Rpb24oKXtpZih0aGlzLmYpe3ZhciBhPXRoaXMuaixiLGM7Yz0oaHx8d2lu
ZG93KS5kb2N1bWVudDtiPShjP25ldyBTYyg5PT1jLm5vZGVUeXBlP2M6Yy5vd25l
ckRvY3VtZW50fHxjLmRvY3VtZW50KTpEYXx8KERhPW5ldyBTYykpLmE7Yz1iLnNj
cm9sbGluZ0VsZW1lbnQ/Yi5zY3JvbGxpbmdFbGVtZW50OnRjfHwiQ1NTMUNvbXBh
dCIhPWIuY29tcGF0TW9kZT9iLmJvZHl8fGIuZG9jdW1lbnRFbGVtZW50OmIuZG9j
dW1lbnRFbGVtZW50O2I9UmMoYik7dmFyIGQ9KEsmJkwoIjEwIikmJmIucGFnZVlP
ZmZzZXQhPWMuc2Nyb2xsVG9wP25ldyBCYihjLnNjcm9sbExlZnQsYy5zY3JvbGxU
b3ApOm5ldyBCYihiLnBhZ2VYT2Zmc2V0fHxjLnNjcm9sbExlZnQsYi5wYWdlWU9m
ZnNldHx8Yy5zY3JvbGxUb3ApKS5IO2EuYT15LmIuTmEoKTtiPU1hdGguZmxvb3Io
ZC9hLmMrLjMpO2M9TWF0aC5mbG9vcigoZCthLmIpL2EuYysuNyktMTthLmE8ZCth
LmImJihjPQp5LmYudHJ1bmMoYywxMCktMSk7YT1NYXRoLmNlaWwoYS5hL2EuYykt
MTtkPXkuZi5sYihiKSYmeS5mLndhKGMpJiZ5LmYud2EoYSk7aWYodGhpcy5qLmcm
JmQpZm9yKGErMT50aGlzLmEuYmEubGVuZ3RoJiYodGhpcy5hLmJhPXFiKHRoaXMu
YS5iYSxyYihhLXRoaXMuYS5iYS5sZW5ndGgrMSkpKSxhPWI7YTw9YzsrK2EpdGhp
cy5hLmJhW2FdKys7dGhpcy5hLnRpbWUrK319O2JlLnByb3RvdHlwZS5tPWZ1bmN0
aW9uKCl7dGhpcy5mPSEwO2RlKHRoaXMpfTtmdW5jdGlvbiBkZShhKXthLmMmJmgu
Y2xlYXJUaW1lb3V0KGEuYyk7YS5jPWguc2V0VGltZW91dCh2KGZ1bmN0aW9uKCl7
dGhpcy5mPSExfSxhKSwzRTQpfTsKZnVuY3Rpb24gZWUoYSxiKXt0aGlzLmY9W107
dGhpcy5JPWJ8fG51bGw7dGhpcy5hPXRoaXMuYj0hMTt0aGlzLmM9dm9pZCAwO3Ro
aXMucz10aGlzLnY9dGhpcy5oPSExO3RoaXMuZz0wO3RoaXMuaj1udWxsO3RoaXMu
Rz0wfWVlLnByb3RvdHlwZS5tPWZ1bmN0aW9uKGEsYil7dGhpcy5oPSExO2ZlKHRo
aXMsYSxiKX07ZnVuY3Rpb24gZmUoYSxiLGMpe2EuYj0hMDthLmM9YzthLmE9IWI7
Z2UoYSl9ZnVuY3Rpb24gaGUoYSl7aWYoYS5iKXtpZighYS5zKXRocm93IG5ldyBp
ZTthLnM9ITF9fWVlLnByb3RvdHlwZS5XPWZ1bmN0aW9uKGEpe2hlKHRoaXMpO2Zl
KHRoaXMsITAsYSl9O2Z1bmN0aW9uIGplKGEsYixjKXthLmYucHVzaChbYixjLHZv
aWQgMF0pO2EuYiYmZ2UoYSl9CmVlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGEs
YixjKXt2YXIgZCxlLGY9bmV3IEgoZnVuY3Rpb24oYSxiKXtkPWE7ZT1ifSk7amUo
dGhpcyxkLGZ1bmN0aW9uKGEpe2UoYSl9KTtyZXR1cm4gZi50aGVuKGEsYixjKX07
V2EoZWUpO2Z1bmN0aW9uIGtlKGEpe3JldHVybiBuYihhLmYsZnVuY3Rpb24oYSl7
cmV0dXJuIHUoYVsxXSl9KX0KZnVuY3Rpb24gZ2UoYSl7aWYoYS5nJiZhLmImJmtl
KGEpKXt2YXIgYj1hLmcsYz1sZVtiXTtjJiYoaC5jbGVhclRpbWVvdXQoYy5hKSxk
ZWxldGUgbGVbYl0pO2EuZz0wfWEuaiYmKGEuai5HLS0sZGVsZXRlIGEuaik7Zm9y
KHZhciBiPWEuYyxkPWM9ITE7YS5mLmxlbmd0aCYmIWEuaDspe3ZhciBlPWEuZi5z
aGlmdCgpLGY9ZVswXSxrPWVbMV0sZT1lWzJdO2lmKGY9YS5hP2s6Zil0cnl7dmFy
IG09Zi5jYWxsKGV8fGEuSSxiKTtsKG0pJiYoYS5hPWEuYSYmKG09PWJ8fG0gaW5z
dGFuY2VvZiBFcnJvciksYS5jPWI9bSk7aWYoWGEoYil8fCJmdW5jdGlvbiI9PT10
eXBlb2YgaC5Qcm9taXNlJiZiIGluc3RhbmNlb2YgaC5Qcm9taXNlKWQ9ITAsYS5o
PSEwfWNhdGNoKHIpe2I9cixhLmE9ITAsa2UoYSl8fChjPSEwKX19YS5jPWI7ZCYm
KG09dihhLm0sYSwhMCksZD12KGEubSxhLCExKSxiIGluc3RhbmNlb2YgZWU/KGpl
KGIsbSxkKSxiLnY9ITApOmIudGhlbihtLGQpKTtjJiYoYj1uZXcgbWUoYiksCmxl
W2IuYV09YixhLmc9Yi5hKX1mdW5jdGlvbiBpZSgpe0IuY2FsbCh0aGlzKX14KGll
LEIpO2llLnByb3RvdHlwZS5tZXNzYWdlPSJEZWZlcnJlZCBoYXMgYWxyZWFkeSBm
aXJlZCI7aWUucHJvdG90eXBlLm5hbWU9IkFscmVhZHlDYWxsZWRFcnJvciI7ZnVu
Y3Rpb24gbWUoYSl7dGhpcy5hPWguc2V0VGltZW91dCh2KHRoaXMuYyx0aGlzKSww
KTt0aGlzLmI9YX1tZS5wcm90b3R5cGUuYz1mdW5jdGlvbigpe2RlbGV0ZSBsZVt0
aGlzLmFdO3Rocm93IHRoaXMuYjt9O3ZhciBsZT17fTtmdW5jdGlvbiBuZShhKXt2
YXIgYj17fSxjPWIuZG9jdW1lbnR8fGRvY3VtZW50LGQ9ZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiU0NSSVBUIiksZT17dGM6ZCxBYTp2b2lkIDB9LGY9bmV3IGVlKDAs
ZSksaz1udWxsLG09bnVsbCE9Yi50aW1lb3V0P2IudGltZW91dDo1RTM7MDxtJiYo
az13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe29lKGQsITApO3ZhciBiPW5l
dyBwZShxZSwiVGltZW91dCByZWFjaGVkIGZvciBsb2FkaW5nIHNjcmlwdCAiK2Ep
O2hlKGYpO2ZlKGYsITEsYil9LG0pLGUuQWE9ayk7ZC5vbmxvYWQ9ZC5vbnJlYWR5
c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtkLnJlYWR5U3RhdGUmJiJsb2FkZWQiIT1k
LnJlYWR5U3RhdGUmJiJjb21wbGV0ZSIhPWQucmVhZHlTdGF0ZXx8KG9lKGQsYi5w
Y3x8ITEsayksZi5XKG51bGwpKX07ZC5vbmVycm9yPWZ1bmN0aW9uKCl7b2UoZCwh
MCxrKTt2YXIgYj1uZXcgcGUocmUsIkVycm9yIHdoaWxlIGxvYWRpbmcgc2NyaXB0
ICIrYSk7CmhlKGYpO2ZlKGYsITEsYil9O2U9Yi5hdHRyaWJ1dGVzfHx7fTtWYShl
LHt0eXBlOiJ0ZXh0L2phdmFzY3JpcHQiLGNoYXJzZXQ6IlVURi04IixzcmM6YX0p
O09jKGQsZSk7c2UoYykuYXBwZW5kQ2hpbGQoZCl9ZnVuY3Rpb24gc2UoYSl7dmFy
IGI9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSEVBRCIpO3JldHVybiBiJiYwIT1i
Lmxlbmd0aD9iWzBdOmEuZG9jdW1lbnRFbGVtZW50fWZ1bmN0aW9uIG9lKGEsYixj
KXtudWxsIT1jJiZoLmNsZWFyVGltZW91dChjKTthLm9ubG9hZD1uO2Eub25lcnJv
cj1uO2Eub25yZWFkeXN0YXRlY2hhbmdlPW47YiYmd2luZG93LnNldFRpbWVvdXQo
ZnVuY3Rpb24oKXthJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVD
aGlsZChhKX0sMCl9dmFyIHJlPTAscWU9MTtmdW5jdGlvbiBwZShhLGIpe3ZhciBj
PSJKc2xvYWRlciBlcnJvciAoY29kZSAjIithKyIpIjtiJiYoYys9IjogIitiKTtC
LmNhbGwodGhpcyxjKX14KHBlLEIpO2Z1bmN0aW9uIHRlKCl7dGhpcy5iPXt9O3Ro
aXMuYT17fTt0aGlzLmM9Ui5CKCk7Zm9yKHZhciBhIGluIHVlKXRoaXMuYVt1ZVth
XS5uYW1lXT1bXTt0aGlzLmMuYSgibW9kdWxlX2luaXQiLHRoaXMuZix0aGlzKX1w
KHRlKTt2YXIgdmU9Ii8vc3QudG9wMTAwLnJ1L3RvcDEwMC8xLjUuMC8iLHVlPXt6
Yjp7bmFtZToidXNhYmlsaXR5IixwYXRoOiJ1c2FiaWxpdHkuanMifSx0Yjp7bmFt
ZToiZWNvbW1lcmNlIixwYXRoOiJlY29tbWVyY2UuanMifX07ZnVuY3Rpb24gd2Uo
YSxiLGMpe2EuYltiLm5hbWVdfHwobmUodmUrYi5wYXRoKSxhLmFbYi5uYW1lXS5w
dXNoKGMpKX10ZS5wcm90b3R5cGUuZj1mdW5jdGlvbihhLGIpe2Zvcih0aGlzLmJb
YV09Yjt0aGlzLmFbYV0ubGVuZ3RoOyl0aGlzLmFbYV0uc2hpZnQoKShiKX07ZnVu
Y3Rpb24geGUoKXt0aGlzLmo9dGhpcy5oPXRoaXMuYj10aGlzLmc9dm9pZCAwO3Ro
aXMudj1hZS5CKCk7dGhpcy5zPXRlLkIoKTt0aGlzLmE9W107dGhpcy5mPVtdO3Ro
aXMubT0hMTt0aGlzLmM9Ui5CKCk7dGhpcy5nPW5ldyBUYztuZXcgemQ7dGhpcy5o
PURjLkIoKTt0aGlzLmMuYSgiZXh0TGluayIsdGhpcy5PYix0aGlzKTt0aGlzLmMu
YSgiY2xpY2siLHRoaXMuTGIsdGhpcyk7dGhpcy5jLmEoInRhcCIsdGhpcy5KYSx0
aGlzKTt0aGlzLmMuYSgiZWNvbW1lcmNlIix0aGlzLk1iLHRoaXMpO3RoaXMuaj1u
ZXcgYmU7dGhpcy5jLmEoImFjdGl2aXR5Iix0aGlzLkpiLHRoaXMpO3RoaXMuYy5h
KCJwaW5nIix0aGlzLlJiLHRoaXMpO3RoaXMuYy5hZGRMaXN0ZW5lcigiYmVmb3Jl
dW5sb2FkIix0aGlzLkthLHRoaXMpfXAoeGUpOwpmdW5jdGlvbiB5ZShhLGIpe3Zh
ciBjPXplKGEsYik7aWYoIWMuWil7Zm9yKHZhciBkPTAsZT1hLmEubGVuZ3RoO2Q8
ZTsrK2QpYS5hW2RdLmlkPT1jLmlkJiZhLmEuc3BsaWNlKGQsMSk7Yy53JiYwPGMu
dy5sZW5ndGgmJndlKGEucyx1ZS56Yix2KGEuVWIsYSkpO2MuSyYmd2UoYS5zLHVl
LnRiLHYoYS5OYixhKSk7Yy5ZJiZBZShhLGMuWSk7YS5hLnB1c2goYyk7Yy5afHwo
Yy5lbGVtZW50PyhkPXkuYi5QKGMuZWxlbWVudCkpJiYxPT09ZC5ub2RlVHlwZSYm
KGQuaW5uZXJIVE1MPWEuVChjLm8sMCkpOmEuTShjLm8pKTtjLm8udS5CYSYmaC5z
ZXRUaW1lb3V0KHYoZnVuY3Rpb24oKXt2YXIgYT1jLm8sYjtiPXRoaXMuaDtpZigw
PT09Yi5hLmxlbmd0aCliPW51bGw7ZWxzZXt2YXIgZD1uZXcgQztkLkooImV0Iiwi
bGwiKTtkLnNldCgibGwiLEphKGIuYSkpO2I9ZH1iJiYoYj1YKGEsYiksWSh0aGlz
LFtbYSxiXV0sdm9pZCAwLHZvaWQgMCxhLlBhKCkpKX0sYSksMCl9fWc9eGUucHJv
dG90eXBlOwpnLk09ZnVuY3Rpb24oYSxiLGMpe2I9V2ModGhpcy5nLGEudSxiLGMp
O2I9WChhLGIpO1kodGhpcyxbW2EsYl1dKTthPWEudGEoKTtiPXZvaWQgMDtjPTA7
Zm9yKHZhciBkPXRoaXMuYS5sZW5ndGg7YzxkOysrYylpZih0aGlzLmFbY10uaWQ9
PT1hKXtiPXRoaXMuYVtjXTticmVha31pZihiKXtjPTA7Zm9yKGQ9Yi53Lmxlbmd0
aDtjPGQ7KytjKWIueWFbYi53W2NdXT1bXTtCZSh0aGlzLGIpfX07Zy5UPWZ1bmN0
aW9uKGEsYixjKXtiPVdjKHRoaXMuZyxhLnUsYixjKTtiPVgoYSxiKTtiLkooInJu
Iix5LmYueGEoKSk7Yz1hLnUuJDtyZXR1cm4nPGEgaHJlZj0iaHR0cHM6Ly90b3Ax
MDAucmFtYmxlci5ydScrKGM/Ii9ob21lP2lkPSIrYzoiIikrJyIgdGFyZ2V0PSJf
YmxhbmsiPjxpbWcgc3JjPSInKyhhLnVhKCkrIj8iK2IudG9TdHJpbmcoKSkrJyIg
dGl0bGU9IlJhbWJsZXJcJ3MgVG9wMTAwIiBhbHQ9IlJhbWJsZXJcJ3MgVG9wMTAw
IiBib3JkZXI9IjAiIC8+PC9hPid9OwpmdW5jdGlvbiBZKGEsYixjLGQsZSl7YT1h
LnY7dmFyIGY9e307Yz1jfHw1O2lmKDE9PT1jKWYudHlwZT1ZZDtlbHNle3ZhciBr
PWJbMF1bMV0sbT12b2lkIDAscj1rLmdldCgiZXQiKSxJPVsiYnYiLCJjbCIsImVj
IiwiZXh0bG4iLCJsbCJdOzA8PUUoWyJleHRsbiIsImFjdCJdLHIpJiZYZD9tPVlk
OjA8PUUoSSxyKSYmV2Q/bT1aZDoyRTM+PWsudG9TdHJpbmcoKS5sZW5ndGg/bT0k
ZDpXZCYmKG09WmQpO2YudHlwZT1tfWYudHlwZSYmKGYuZGF0YT1iLGYuVz1kLGYu
dXJsPWUsYS5hLmVucXVldWUoYyxmKSxhLmh8fChhLmg9ITAsYS5nKCkpKX1nLkxi
PWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXZvaWQgMCxiPTAsYz10aGlzLmEubGVuZ3Ro
O2I8YzsrK2Ipe3ZhciBhPXRoaXMuYVtiXSxkPXRoaXMuYi5nZXRDbGlja3MoYS53
KTtkJiYoZD1YKGEubyxkKSxZKHRoaXMsW1thLm8sZF1dKSl9dGhpcy5iLmVyYXNl
Q2xpY2tzRGF0YSgpfTsKZy5KYT1mdW5jdGlvbigpe2Zvcih2YXIgYT12b2lkIDAs
Yj0wLGM9dGhpcy5hLmxlbmd0aDtiPGM7KytiKXt2YXIgYT10aGlzLmFbYl0sZD10
aGlzLmIuZ2V0Q2xpY2tzKGEudyk7ZCYmKGQuc2V0KCJjbHQiLCJ0YXAiKSxkPVgo
YS5vLGQpLFkodGhpcyxbW2EubyxkXV0pKX10aGlzLmIuZXJhc2VDbGlja3NEYXRh
KCl9O2cuUmI9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgQzthLnNldCgiZXQiLCJwaW5n
Iik7Zm9yKHZhciBiPXZvaWQgMCxjPVtdLGQ9MCxlPXRoaXMuYS5sZW5ndGg7ZDxl
OysrZCl0aGlzLmFbZF0uby51Llp8fChiPVgodGhpcy5hW2RdLm8sYS5jbG9uZSgp
KSksYy5wdXNoKFt0aGlzLmFbZF0ubyxiXSk7MCE9PWMubGVuZ3RoJiZZKHRoaXMs
Yyl9OwpnLk1iPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD10aGlzLmEu
bGVuZ3RoO2M8ZDsrK2MpaWYodGhpcy5hW2NdLkspe3ZhciBlPVgodGhpcy5hW2Nd
Lm8sYS5jbG9uZSgpKTtiLnB1c2goW3RoaXMuYVtjXS5vLGVdKX0wIT09Yi5sZW5n
dGgmJlkodGhpcyxiKX07Zy5PYj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxk
PTAsZT10aGlzLmEubGVuZ3RoO2Q8ZTsrK2QpdGhpcy5hW2RdLm8udS5CYXx8YS5y
ZW1vdmUoInVtX2xvZyIpLGMucHVzaChbdGhpcy5hW2RdLm8sWCh0aGlzLmFbZF0u
byxhLmNsb25lKCkpXSk7MCE9PWMubGVuZ3RoJiZZKHRoaXMsYyx2b2lkIDAsYil9
O2cuSmI9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD1iPzE6NSxlPTAsZj10
aGlzLmEubGVuZ3RoO2U8ZjsrK2UpYy5wdXNoKFt0aGlzLmFbZV0ubyxYKHRoaXMu
YVtlXS5vLGEuY2xvbmUoKSldKTswIT09Yy5sZW5ndGgmJlkodGhpcyxjLGQpfTsK
ZnVuY3Rpb24gemUoYSxiKXt2YXIgYz17fSxkPWIudTtjLmlkPWIudGEoKTtjLm89
YjtjLmVsZW1lbnQ9ZC5QKCk7Yy53PWQuTGE7Yy5LPWQuSztjLlo9ZC5aO2Muc2M9
ITE7Yy55YT17fTtjLlk9ZC5NYTtpZihjLlkubGVuZ3RoKWZvcih2YXIgZD0wLGU9
Yy5ZLmxlbmd0aDtkPGU7KytkKTA8PUUoYy53LGMuWVtkXSl8fGMudy5wdXNoKGMu
WVtkXSk7aWYoYS5mLmxlbmd0aClmb3IoZD0wLGU9YS5mLmxlbmd0aDtkPGU7Kytk
KTA8PUUoYy53LGEuZltkXSl8fGMudy5wdXNoKGEuZltkXSk7ZD0wO2ZvcihlPWMu
dy5sZW5ndGg7ZDxlOysrZCljLnlhW2Mud1tkXV09W107cmV0dXJuIGN9CmZ1bmN0
aW9uIEFlKGEsYil7Zm9yKHZhciBjPTAsZD1hLmEubGVuZ3RoO2M8ZDsrK2MpZm9y
KHZhciBlPWEuYVtjXSxmPWIsaz0wLG09Zi5sZW5ndGg7azxtOysraykwPD1FKGUu
dyxmW2tdKXx8KGUudy5wdXNoKGZba10pLGUueWFbZltrXV09W10pO2M9MDtmb3Io
ZD1iLmxlbmd0aDtjPGQ7KytjKTA8PUUoYS5mLGJbY10pfHxhLmYucHVzaChiW2Nd
KTthLmImJmEuYi5hZGRBdHRyaWJ1dGVzKGIpO2EuVigpfWZ1bmN0aW9uIEJlKGEs
Yil7aWYoYS5iKXt2YXIgYz1hLmIuZ2V0QmxvY2tzKGIudyxiLnlhKSxkPXZvaWQg
MDtpZihjKWZvcih2YXIgZT0wLGY9Yy5sZW5ndGg7ZTxmOysrZSlkPWNbZV0sZC5p
c0VtcHR5KCl8fChkPVgoYi5vLGQpLFkoYSxbW2IubyxkXV0pKX19CmcuVWI9ZnVu
Y3Rpb24oYSl7dGhpcy5iPWEoKTthPTA7Zm9yKHZhciBiPXRoaXMuYS5sZW5ndGg7
YTxiOysrYSl0aGlzLmIuYWRkQXR0cmlidXRlcyh0aGlzLmFbYV0udyk7dGhpcy5W
KCk7aC5zZXRUaW1lb3V0KHYodGhpcy5WLHRoaXMpLDFFMyk7aC5zZXRUaW1lb3V0
KHYodGhpcy5WLHRoaXMpLDJFMyk7aC5zZXRUaW1lb3V0KHYodGhpcy5WLHRoaXMp
LDRFMyk7aC5zZXRUaW1lb3V0KHYodGhpcy5WLHRoaXMpLDhFMyl9O2cuVj1mdW5j
dGlvbigpe2Zvcih2YXIgYT0wLGI9dGhpcy5hLmxlbmd0aDthPGI7KythKUJlKHRo
aXMsdGhpcy5hW2FdKX07Zy5OYj1mdW5jdGlvbihhKXtmb3IodmFyIGI9dm9pZCAw
LGM9MCxkPXRoaXMuYS5sZW5ndGg7YzxkOysrYylpZih0aGlzLmFbY10uSyl7Yj10
aGlzLmFbY10uSzticmVha31hKGIpfTsKZy5LYT1mdW5jdGlvbigpe2lmKCF0aGlz
Lm0pe2lmKFhkKXt2YXIgYT10aGlzLmosYj1uZXcgQyxjPUphKHt0aW1lOmEuYS50
aW1lLHNjcmVlbnM6YS5hLmJhfSk7Yi5KKCJldCIsImFjdCIpO2Iuc2V0KCJtZXRh
IixjKTthLmIuYigiYWN0aXZpdHkiLGIsITApfXRoaXMubT0hMH19O2Z1bmN0aW9u
IENlKGEsYil7dGhpcy5hPXRoaXMuYj12b2lkIDA7RGUodGhpcyk7dGhpcy52ZXJz
aW9uPSIxLjUuMCI7dGhpcy52ZXJzaW9uKz0iaSI7aWYoYSl7aWYodGhpcy4kPWEu
cHJvamVjdCx0aGlzLkxhPWEuYXR0cmlidXRlc19kYXRhc2V0fHxbXSx0aGlzLk1h
PWEuY29tbW9uX2F0dHJpYnV0ZXN8fFtdLHRoaXMubGE9YS5zcGxpdHN8fFtdLHRo
aXMuaGE9YS5jaGFwdGVyc3x8W10sdGhpcy5EPWEuY3VzdG9tX3ZhcnN8fHt9LHRo
aXMuSz1hLmVjb21tZXJjZXx8dm9pZCAwLHRoaXMuZWxlbWVudD1hLmVsZW1lbnR8
fHZvaWQgMCx0aGlzLllhPWEudHJhY2tIYXNoZXN8fCExLHRoaXMuQmE9YS50cmFj
a0xpbmtzfHwhMSx0aGlzLnphPWEudXJsfHx2b2lkIDAsYS51c2VyX2lkfHxudWxs
PT09YS51c2VyX2lkP3RoaXMuTj1hLnVzZXJfaWQ6dGhpcy5OPXZvaWQgMCxhLnN5
bmMpe3ZhciBjPWEuc3luYzt0aGlzLkQ9dGhpcy5EfHx7fTt0aGlzLkQuX191aWQ9
Y319ZWxzZSB0aGlzLiQ9CmhhLmZjLHRoaXMuTGE9W10sdGhpcy5NYT1bXSx0aGlz
LmxhPVtdLHRoaXMuaGE9W10sdGhpcy5OPXRoaXMuZWxlbWVudD10aGlzLks9dGhp
cy5EPXZvaWQgMCx0aGlzLkJhPXRoaXMuWWE9ITEsdGhpcy56YT12b2lkIDA7aWYo
Yz1hJiZhLnByb3RvY29sKXt2YXIgZD12b2lkIDA7Zm9yKHByb3RvY29sIGluIEVl
KWlmKGQ9RWVbcHJvdG9jb2xdLGMuc3BsaXQoIjoiKVswXT09PWQpeyI6IiE9PWRb
ZC5sZW5ndGgtMV0mJihkPWQrIjoiKTt0aGlzLmZhPWQ7YnJlYWt9dmU9dGhpcy5m
YSt2ZX1lbHNlIHRoaXMuZmE9dm9pZCAwO2M9dm9pZCAwO3RoaXMuZmE/Yz10aGlz
LmZhOmM9Imh0dHBzOiI9PT1oLmxvY2F0aW9uLnByb3RvY29sPyJodHRwczoiOiJo
dHRwOiI7dGhpcy5iPWMrIi8va3Jha2VuLnJhbWJsZXIucnUvY250LyI7dGhpcy5h
PWMrIi8va3Jha2VuLnJhbWJsZXIucnUvdW1fY250LyI7dGhpcy5aPWJ8fCExfXZh
ciBFZT17aWM6Imh0dHAiLGpjOiJodHRwcyJ9O2c9Q2UucHJvdG90eXBlOwpnLnZl
cnNpb249dm9pZCAwO2cuJD12b2lkIDA7Zy5UYT12b2lkIDA7Zy5MYT12b2lkIDA7
Zy5NYT12b2lkIDA7Zy5sYT12b2lkIDA7Zy5oYT12b2lkIDA7Zy5EPXZvaWQgMDtn
Lm5hbWU9dm9pZCAwO2cuSz12b2lkIDA7Zy5lbGVtZW50PXZvaWQgMDtnLmZhPXZv
aWQgMDtnLlo9dm9pZCAwO2cuTj12b2lkIDA7Zy5ZYT12b2lkIDA7Zy5CYT12b2lk
IDA7Zy56YT12b2lkIDA7Zy51YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJ9O2cu
UGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfTtnLlZhPWZ1bmN0aW9uKGEpe3Ro
aXMubmFtZT1hfTtnLlA9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50fTtm
dW5jdGlvbiBEZShhKXthLlRhPShuZXcgRGF0ZS8xRTMpLnRvU3RyaW5nKCkrIi0i
K3kuZi54YSgpLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIEZlKGEsYil7dGhpcy51PW5l
dyBDZShhLGIpO3RoaXMuYT14ZS5CKCk7eWUodGhpcy5hLHRoaXMpfWc9RmUucHJv
dG90eXBlO2cudWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51LnVhKCl9O2cuUGE9
ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51LlBhKCl9O2cuVmE9ZnVuY3Rpb24oYSl7
dGhpcy51LlZhKGEpfTtnLnRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudS4kfTtn
LlVhPWZ1bmN0aW9uKGEpe3RoaXMudS4kPWF9O2cuTT1mdW5jdGlvbihhKXtEZSh0
aGlzLnUpO3RoaXMuYS5NKHRoaXMsMSxhKX07Zy5aYT1mdW5jdGlvbihhLGIpe3Zh
ciBjPXkuYi5QKGEpO2MmJjE9PT1jLm5vZGVUeXBlP2MuaW5uZXJIVE1MPXRoaXMu
YS5UKHRoaXMsMCxiKTp0aGlzLmEuTSh0aGlzLDAsYil9O2cuaWI9ZnVuY3Rpb24o
YSxiKXt2YXIgYz15LmIuUChhKTtjJiYxPT09Yy5ub2RlVHlwZSYmKGMuaW5uZXJI
VE1MPXRoaXMuYS5UKHRoaXMsMixiKSl9O2cuV2I9ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy51LlRhfTsKZy5UPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYS5UKHRoaXMs
MCl9O2cuY2I9ZnVuY3Rpb24oKXt9O2cuZmI9ZnVuY3Rpb24oYSxiKXt2YXIgYz10
aGlzLnU7Yy5EPWMuRHx8e307Yy5EW2FdPWJ9O2cubWI9ZnVuY3Rpb24oYSl7dGhp
cy5iKCJfX3VpZCIsYSl9O2cuZWI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hO2E9
eS5jYS5PYShhKTthPVgodGhpcyxhKTtZKGIsW1t0aGlzLGFdXSl9O2cudWI9ZnVu
Y3Rpb24oYSl7dmFyIGI9dGhpcy51O2IuTnx8bnVsbD09PWIuTj8odGhpcy51Lk49
YSxhPXRoaXMuYSxiPXkuZGEuT2EoKSxiPVgodGhpcyxiKSxZKGEsW1t0aGlzLGJd
XSkpOnkuRy5iYygpfTsKZnVuY3Rpb24gWChhLGIpe3ZhciBjPWEudTtiLnNldE1l
dGEoInBpZCIsYy4kKTtiLnNldE1ldGEoInJpZCIsYy5UYSk7Yi5zZXRNZXRhKCJ2
IixjLnZlcnNpb24pO3EoYy5sYSkmJmMubGEubGVuZ3RoJiZiLnNldCgic3AiLEph
KGMubGEpKTthLnUuTiYmYi5zZXRNZXRhKCJ1aWQiLGEudS5OKTtyZXR1cm4gYn12
YXIgWj1GZS5wcm90b3R5cGU7Wi5zZXRBY2NvdW50PVouVWE7Wi5nZXRBY2NvdW50
PVoudGE7Wi50cmFja1BhZ2V2aWV3PVouTTtaLnRyYWNrUGFnZVZpZXc9Wi5NO1ou
dHJhY2tQYWdldmlld0J5TG9nbz1aLlphO1oudHJhY2tQYWdlVmlld0J5TG9nbz1a
LlphO1ouZHJhd0xvZ29Ubz1aLmliO1ouc2V0Q3VzdG9tVmFyPVouZmI7Wi5nZXRD
dXN0b21WYXI9Wi5jYjtaLnNlbmRDdXN0b21WYXJzPVouZWI7Wi5nZXRXaWRnZXRI
dG1sPVouVDtaLnN5bmNVc2VySWQ9Wi51YjtaLnN5bmM9Wi5tYjtaLmdldFJlcXVl
c3RJZD1aLldiO2Z1bmN0aW9uIHkoYSxiKXtpZihiKXJldHVybiBuZXcgRmUoYSxi
KTt5Lm1bYS5wcm9qZWN0XT1uZXcgRmUoYSxiKTtyZXR1cm4geS5tW2EucHJvamVj
dF19eS5tPXt9O3kua2M9e307eS5vYT0wO3kucGE9ZnVuY3Rpb24oKXtyZXR1cm4g
Ui5CKCl9O3kuYWI9ZnVuY3Rpb24oKXtyZXR1cm4gUi5CKCl9O3kucz1mdW5jdGlv
bihhLGIpe3ZhciBjPXZvaWQgMCE9PWE/YToifiIreS5vYSsrLGQ9bmV3IHkoe30s
ITApO3kubVtjXT1kO2QuVmEoYyk7YiYmZC5VYShiKTtyZXR1cm4gZH07eS5EYT1m
dW5jdGlvbihhKXtyZXR1cm4geS5zKHZvaWQgMCxhKX07eS5tYT1mdW5jdGlvbihh
KXthPWF8fCIiO3JldHVybiB5Lm1bYV18fHkucyhhKX07eS5sb2FkZWQ9ITA7eS5F
YT0hMDt5LmVhPWZ1bmN0aW9uKGEpe3ZhciBiPWhbYV07YiYmYi5pc1RvcDEwME5h
bWVzcGFjZXx8KGhbYV09eSl9O3kuZWEoIktyYWtlbiIpO3kuZWEoInRvcDEwMCIp
O3RvcDEwMFF1ZXVlPWZ1bmN0aW9uKCl7fTsKdG9wMTAwUXVldWUucHJvdG90eXBl
LnB1c2g9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWFyZ3VtZW50cyxjPTA7YzxiLmxl
bmd0aDtjKyspdHJ5e2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYltjXSliW2NdKCk7
ZWxzZXt2YXIgZD0iIixlPWJbY11bMF0sZj1lLmxhc3RJbmRleE9mKCIuIik7MDxm
JiYoZD1lLnN1YnN0cmluZygwLGYpLGU9ZS5zdWJzdHJpbmcoZisxKSk7dmFyIGs9
eS5tYShkKTtrW2VdLmFwcGx5KGssYltjXS5zbGljZSgxKSl9fWNhdGNoKG0pe319
O2lmKGguX3RvcDEwMHEmJnEoaC5fdG9wMTAwcSkpe3ZhciBHZT1uZXcgdG9wMTAw
UXVldWU7Zm9yKGguX3RvcDEwMHE9aC5fdG9wMTAwcS5yZXZlcnNlKCk7aC5fdG9w
MTAwcS5sZW5ndGg7KUdlLnB1c2goaC5fdG9wMTAwcS5wb3AoKSk7aC5fdG9wMTAw
cT1HZX1oLl90b3AxMDBxfHwoaC5fdG9wMTAwcT1uZXcgdG9wMTAwUXVldWUpOwp2
YXIgSGU9cGFyc2VJbnQoIjEiLDEwKSxJZT15LnModm9pZCAwLCIyNjc5MzExIik7
aWYoSGUpe3ZhciBKZT1JZS5UKCExKTtoLmRvY3VtZW50LndyaXRlKEplKX1lbHNl
IEllLk0oKTtaPUZlLnByb3RvdHlwZTtaLnNldEFjY291bnQ9Wi5VYTtaLmdldEFj
Y291bnQ9Wi50YTtaLnRyYWNrUGFnZXZpZXc9Wi5NO1oudHJhY2tQYWdldmlld0J5
TG9nbz1aLlphO1ouZHJhd0xvZ29Ubz1aLmliO1ouc2V0Q3VzdG9tVmFyPVouZmI7
Wi5nZXRDdXN0b21WYXI9Wi5jYjtaLnNlbmRDdXN0b21WYXJzPVouZWI7Wi5zeW5j
PVoubWI7d2luZG93Ll90b3AxMDB8fCh3aW5kb3cuX3RvcDEwMD17fSx3aW5kb3cu
X3RvcDEwMC5jcmVhdGVUcmFja2VyPXkucyx3aW5kb3cuX3RvcDEwMC5nZXRUcmFj
a2VyQnlOYW1lPXkubWEsd2luZG93Ll90b3AxMDAuZ2V0VHJhY2tlcj15LkRhLHdp
bmRvdy5fdG9wMTAwLmdldFB1YlN1Yj15LnBhLHdpbmRvdy5fdG9wMTAwLmxvYWRl
ZD15LmxvYWRlZCx5LmlzVG9wMTAwTmFtZXNwYWNlPXkuRWEpO30pKCk7Cgo=
------------fIzuf6Oyt4t75FHoI40g63
Content-Disposition: inline; filename=watch.js
Content-Type: application/x-javascript; charset=utf-8; name=watch.js
Content-Location: http://mc.yandex.ru/metrika/watch.js
Content-Transfer-Encoding: Base64
77u/KGZ1bmN0aW9uKGcsaCxQKXtmdW5jdGlvbiByKGEsYixjKXtyZXR1cm4gZnVu
Y3Rpb24oKXt0cnl7cmV0dXJuIGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWNhdGNo
KGQpe2N8fHhhKGQsYil9fX1mdW5jdGlvbiB4YShhLGIpe3ZhciBjO2lmKC4wMT5N
YXRoLnJhbmRvbSgpKXRyeXt2YXIgZD1hJiZhLm1lc3NhZ2V8fCIiOyhjPS0xPGQu
aW5kZXhPZigibmV0d29yayBlcnJvciBvY2N1cnJlZCIpfHwtMTxkLmluZGV4T2Yo
InNlbmQgYmVhY29uIikmJi0xPGQuaW5kZXhPZigiQ29udGVudCBTZWN1cml0eSBQ
b2xpY3kiKSl8fChuZXcgZ2EpLmxvZygianNlcnJzIixYLGEubWVzc2FnZSxiLEUu
aHJlZiwiIiwic3RyaW5nIj09PXR5cGVvZiBhLnN0YWNrJiZhLnN0YWNrLnJlcGxh
Y2UoL1xuL2csIlxcbiIpKX1jYXRjaChlKXt9fWZ1bmN0aW9uIGxiKGEsYixjLGQs
ZSl7ZnVuY3Rpb24gbChhKXt2YXIgYj0obmV3IERhdGUpLmdldFRpbWUoKTthJiZi
PGEmJihNYSs9YS1iKzIwKTtmLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKGIpfSwK
MjAsInRpbWVDb3JyZWN0b3IiKX1mdW5jdGlvbiB2KCl7dmFyIGE9KG5ldyBEYXRl
KS5nZXRUaW1lKCkrTWE7YTxTJiYoYT1TKzEwKTtyZXR1cm4gUz1hfWZ1bmN0aW9u
IG4oKXtyZXR1cm4gTWF0aC5yb3VuZCgodigpLVgpLzUwKX1mdW5jdGlvbiBJKGEs
Yil7Yj1NYXRoLm1heCgwLE1hdGgubWluKGIsNjU1MzUpKTtmLm1lcmdlQXJyYXlz
KGEsW2I+PjgsYiYyNTVdKX1mdW5jdGlvbiB0KGEsYil7Zi5tZXJnZUFycmF5cyhh
LFtiJjI1NV0pfWZ1bmN0aW9uIHAoYSxiKXtmb3IoYj1NYXRoLm1heCgwLGJ8MCk7
MTI3PGI7KWYubWVyZ2VBcnJheXMoYSxbYiYxMjd8MTI4XSksYj4+PTc7Zi5tZXJn
ZUFycmF5cyhhLFtiXSl9ZnVuY3Rpb24gcShhLGIpezI1NTxiLmxlbmd0aCYmKGI9
Yi5zdWJzdHIoMCwyNTUpKTtmLm1lcmdlQXJyYXlzKGEsW2IubGVuZ3RoXSk7Zm9y
KHZhciBjPTA7YzxiLmxlbmd0aDtjKyspSShhLGIuY2hhckNvZGVBdChjKSl9ZnVu
Y3Rpb24gdyhhLGIpe3AoYSxiLmxlbmd0aCk7CmZvcih2YXIgYz0wO2M8Yi5sZW5n
dGg7YysrKXAoYSxiLmNoYXJDb2RlQXQoYykpfWZ1bmN0aW9uIE5hKGEsYixjLGQs
ZSxmKXtmb3IodmFyIHk7YyYmKHk9bS5nZXRFbGVtZW50U2l6ZShjKSkmJigheVsw
XXx8IXlbMV0pOyljPW0uZ2V0RWxlbWVudFBhcmVudChjKTtpZighYylyZXR1cm4g
bnVsbDt5PWNbRl07aWYoIXl8fDA+eSlyZXR1cm4gbnVsbDt2YXIgbD17bW91c2Vt
b3ZlOjIsY2xpY2s6MzIsZGJsY2xpY2s6MzMsbW91c2Vkb3duOjQsbW91c2V1cDoz
MCx0b3VjaDoxMn1bYl07aWYoIWwpcmV0dXJuIG51bGw7dmFyIGc9bS5nZXRFbGVt
ZW50WFkoYyk7Yz1bXTt0KGMsbCk7cChjLGEpO3AoYyx5KTtwKGMsTWF0aC5tYXgo
MCxkWzBdLWdbMF0pKTtwKGMsTWF0aC5tYXgoMCxkWzFdLWdbMV0pKTsvXm1vdXNl
KHVwfGRvd24pfGNsaWNrJC8udGVzdChiKSYmKGE9ZXx8Zix0KGMsMj5hPzE6YT09
KGU/Mjo0KT80OjIpKTtyZXR1cm4gY31mdW5jdGlvbiBPYShhLGIsYyxkKXtiPWJb
Rl07CmlmKCFifHwwPmIpcmV0dXJuIG51bGw7dmFyIGU9W107dChlLDMxKTtwKGUs
YSk7cChlLGIpO3AoZSxjWzBdKTtwKGUsY1sxXSk7dChlLDApO3QoZSwwKTt0KGUs
ZCk7cmV0dXJuIGV9ZnVuY3Rpb24gRShhLGIpe3ZhciBjPVtdO3QoYywzKTtwKGMs
YSk7cChjLGJbMF0pO3AoYyxiWzFdKTtyZXR1cm4gY31mdW5jdGlvbiBHKGEsYixj
KXt2YXIgZD1bXTtjPWNbRl07aWYoIWN8fDA+YylyZXR1cm4gbnVsbDt0KGQsMTYp
O3AoZCxhKTtwKGQsYlswXSk7cChkLGJbMV0pO3AoZCxjKTtyZXR1cm4gZH1mdW5j
dGlvbiBBKGEsYixjKXt2YXIgZD1bXTt0KGQsMjgpO3AoZCxhKTtwKGQsYlswXSk7
cChkLGJbMV0pO3AoZCxjWzBdKTtwKGQsY1sxXSk7cmV0dXJuIGR9ZnVuY3Rpb24g
eWEoYSxiLGMsZCl7dmFyIGU9W107dChlLDUpO3AoZSxhKTtJKGUsYik7dChlLGMp
O2E9ZFtGXTtpZighYXx8MD5hKWE9MDtwKGUsYSk7cmV0dXJuIGV9ZnVuY3Rpb24g
eihhLGIpe3ZhciBjO2lmKDA9PWIubGVuZ3RoKXZhciBkPQpjPSIiO2Vsc2UgMTAw
Pj1iLmxlbmd0aD8oYz1iLGQ9IiIpOjIwMD49Yi5sZW5ndGg/KGM9Yi5zdWJzdHIo
MCwxMDApLGQ9Yi5zdWJzdHIoMTAwKSk6KGM9Yi5zdWJzdHIoMCw5NyksZD1iLnN1
YnN0cihiLmxlbmd0aC05NykpO3ZhciBlPVtdO3QoZSwyOSk7cChlLGEpO3coZSxj
KTt3KGUsZCk7cmV0dXJuIGV9ZnVuY3Rpb24gcGIoYSl7dmFyIGI9W107dChiLDI3
KTtwKGIsYSk7cmV0dXJuIGJ9ZnVuY3Rpb24gcWIoYSl7dmFyIGI9W107dChiLDE0
KTtwKGIsYSk7cmV0dXJuIGJ9ZnVuY3Rpb24gSChhKXt2YXIgYj1bXTt0KGIsMTUp
O3AoYixhKTtyZXR1cm4gYn1mdW5jdGlvbiBtYShhLGIpe3ZhciBjPVtdO3QoYywx
Nyk7cChjLGEpO3AoYyxiW0ZdKTtyZXR1cm4gY31mdW5jdGlvbiBPKGEsYil7dmFy
IGM9W107dChjLDE4KTtwKGMsYSk7cChjLGJbRl0pO3JldHVybiBjfWZ1bmN0aW9u
IGhhKGEsYixjKXt2YXIgZD1bXTt0KGQsMTkpO3AoZCxhKTtwKGQsYltGXSk7cShk
LFN0cmluZyhjKSk7CnJldHVybiBkfWZ1bmN0aW9uIFAoYSl7dmFyIGI9YVtGXTtp
ZighYnx8MD5ifHwhL15JTlBVVHxTRUxFQ1R8VEVYVEFSRUEkLy50ZXN0KGEubm9k
ZU5hbWUpfHwhYS5mb3JtfHxZKGEuZm9ybSkpcmV0dXJuIG51bGw7dmFyIGM9bS5n
ZXRGb3JtTnVtYmVyKGEuZm9ybSk7aWYoMD5jKXJldHVybiBudWxsO3ZhciBkPSJJ
TlBVVCI9PWEubm9kZU5hbWU/e3RleHQ6MCxjb2xvcjowLGRhdGU6MCxkYXRldGlt
ZTowLCJkYXRldGltZS1sb2NhbCI6MCxlbWFpbDowLG51bWJlcjowLHJhbmdlOjAs
c2VhcmNoOjAsdGVsOjAsdGltZTowLHVybDowLG1vbnRoOjAsd2VlazowLHBhc3N3
b3JkOjIscmFkaW86MyxjaGVja2JveDo0LGZpbGU6NixpbWFnZTo3fVthLnR5cGVd
OntTRUxFQ1Q6MSxURVhUQVJFQTo1fVthLm5vZGVOYW1lXTtpZigibnVtYmVyIiE9
dHlwZW9mIGQpcmV0dXJuIG51bGw7Zm9yKHZhciBlPS0xLGY9YS5mb3JtLmVsZW1l
bnRzLHk9Zi5sZW5ndGgsbD0wLGc9MDtsPHk7bCsrKWlmKGZbbF0ubmFtZT09CmEu
bmFtZSl7aWYoZltsXT09YSl7ZT1nO2JyZWFrfWcrK31pZigwPmUpcmV0dXJuIG51
bGw7Zj1bXTt0KGYsNyk7cChmLGIpO3AoZixjKTtwKGYsZCk7dyhmLGEubmFtZXx8
IiIpO3AoZixlKTtyZXR1cm4gZn1mdW5jdGlvbiBOKGEsYil7dmFyIGM9bS5nZXRG
b3JtTnVtYmVyKGIpO2lmKDA+YylyZXR1cm4gbnVsbDtmb3IodmFyIGQ9Yi5lbGVt
ZW50cyxlPWQubGVuZ3RoLHk9W10sbD0wO2w8ZTtsKyspaWYoIW0uaXNFbXB0eUZp
ZWxkKGRbbF0pKXt2YXIgZz1kW2xdW0ZdO2cmJjA8ZyYmZi5tZXJnZUFycmF5cyh5
LFtnXSl9ZD1bXTt0KGQsMTEpO3AoZCxhKTtwKGQsYyk7cChkLHkubGVuZ3RoKTtm
b3IoYz0wO2M8eS5sZW5ndGg7YysrKXAoZCx5W2NdKTtyZXR1cm4gZH1mdW5jdGlv
biBSKCl7dmFyIGE9W107dChhLDEzKTtyZXR1cm4gYX1mdW5jdGlvbiBKKGEsYixj
KXthPWEuYXBwbHkoZyxiKTtuYS5hcHBlbmQoYSxjKX1mdW5jdGlvbiBCKGEpe2lm
KGFbRl0pYTp7dmFyIGI9bigpLApjPWFbRl07aWYoMDxjKXt2YXIgZD1bXTthPW0u
Z2V0RWxlbWVudFJlZ2lvbihhKTt2YXIgZT16YVtjXSxmPWFbMF0rIngiK2FbMV0s
bD1hWzJdKyJ4IithWzNdO2YhPWUucG9zJiYoZS5wb3M9Zix0KGQsOSkscChkLGIp
LHAoZCxjKSxwKGQsYVswXSkscChkLGFbMV0pKTtsIT1lLnNpemUmJihlLnNpemU9
bCx0KGQsMTApLHAoZCxiKSxwKGQsYykscChkLGFbMl0pLHAoZCxhWzNdKSk7aWYo
ZC5sZW5ndGgpe2E9ZDticmVhayBhfX1hPW51bGx9ZWxzZXsoYz1tLmdldEVsZW1l
bnRQYXJlbnQoYSkpJiZCKGMpO2FbRl09VDt6YVtUXT17fTtUKys7aWYoYS5ub2Rl
TmFtZSlpZihjPSthW0ZdLCFpc0Zpbml0ZShjKXx8MD49YyliPW51bGw7ZWxzZXt2
YXIgZD02NCxlPTAseT1tLmdldEVsZW1lbnRQYXJlbnQoYSksZj15JiZ5W0ZdP3lb
Rl06MDswPmYmJihmPTApO3ZhciBsPWEubm9kZU5hbWUudG9VcHBlckNhc2UoKSxn
PXJiW2xdO2d8fChkfD0yKTt2YXIgdj1tLmdldEVsZW1lbnROZWlnaGJvclBvc2l0
aW9uKGEpOwp2fHwoZHw9NCk7dmFyIGg9bS5nZXRFbGVtZW50UmVnaW9uKGEpOyh5
PXk/bS5nZXRFbGVtZW50UmVnaW9uKHkpOm51bGwpJiZoWzBdPT15WzBdJiZoWzFd
PT15WzFdJiZoWzJdPT15WzJdJiZoWzNdPT15WzNdJiYoZHw9OCk7emFbY10ucG9z
PWhbMF0rIngiK2hbMV07emFbY10uc2l6ZT1oWzJdKyJ4IitoWzNdO2EuaWQmJiJz
dHJpbmciPT10eXBlb2YgYS5pZCYmKGR8PTMyKTsoeT1tLmNhbGNUZXh0Q2hlY2tz
dW0oYSkpJiYoZHw9MTYpO3ZhciBMPW0uY2FsY0F0dHJpYkNoZWNrc3VtKGEpO0wm
JihlfD0yKTtiOnt2YXIgdT1tLmdldEVsZW1lbnRDaGlsZHJlbihtLmdldEVsZW1l
bnRQYXJlbnQoYSksYS50YWdOYW1lKTtmb3IodmFyIGs9MDtrPHUubGVuZ3RoO2sr
KylpZigoIXVba10uaWR8fCJzdHJpbmciIT10eXBlb2YgdVtrXS5pZCkmJm0uY2Fs
Y0F0dHJpYkNoZWNrc3VtKHVba10pPT1MJiZtLmNhbGNUZXh0Q2hlY2tzdW0odVtr
XSk9PXkpe3U9ITA7YnJlYWsgYn11PSExfXUmJihkfD0KMSxiPW0uY2FsY0NoaWxk
cmVuQ2hlY2tzdW0oYSkpO3U9W107dCh1LDEpO3AodSxjKTt0KHUsZCk7cCh1LGYp
O2c/dCh1LGcpOnEodSxsKTt2JiZwKHUsdik7ZCY4fHwocCh1LGhbMF0pLHAodSxo
WzFdKSxwKHUsaFsyXSkscCh1LGhbM10pKTtkJjMyJiZxKHUsYS5pZCk7eSYmSSh1
LHkpO2QmMSYmSSh1LGIpO3QodSxlKTtMJiZJKHUsTCk7Yj11fWVsc2UgYVtGXT0t
MSxiPW51bGw7bmEuYXBwZW5kKGIsdm9pZCAwKTthPVAoYSl9bmEuYXBwZW5kKGEs
dm9pZCAwKX1mdW5jdGlvbiBRKGEsYil7dmFyIGM9YSYmbS5jbGFzc05hbWVFeGlz
dHMoYSwiKHltLWRpc2FibGUta2V5c3wtbWV0cmlrYS1ub2tleXMpIik7YiYmYSYm
KGM9Y3x8ISFtLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIih5bS1kaXNhYmxlLWtl
eXN8LW1ldHJpa2Etbm9rZXlzKSIsYSkubGVuZ3RoKTtyZXR1cm4gY31mdW5jdGlv
biBZKGEpe3JldHVybiBhJiZtLmNsYXNzTmFtZUV4aXN0cyhhLCIoeW0tZGlzYWJs
ZS1zdWJtaXR8LW1ldHJpa2Etbm9mb3JtKSIpfQpmdW5jdGlvbiBVKGEpe3ZhciBi
PUMuZ2V0VGFyZ2V0KGEpO2lmKGImJiJTQ1JPTExCQVIiIT1iLm5vZGVOYW1lKXtp
ZigvXklOUFVUfFNFTEVDVHxURVhUQVJFQXxCVVRUT04kLy50ZXN0KGIudGFnTmFt
ZSkpaWYoYltGXSlCKGIpO2Vsc2V7dmFyIGM9Yi5mb3JtO2lmKGMpZm9yKHZhciBj
PWMuZWxlbWVudHMsZD1jLmxlbmd0aCxlPTA7ZTxkO2UrKykvXklOUFVUfFNFTEVD
VHxURVhUQVJFQXxCVVRUT04kLy50ZXN0KGNbZV0udGFnTmFtZSkmJiFjW2VdW0Zd
JiZCKGNbZV0pO2Vsc2UgQihiKX1lbHNlIEIoYik7SihOYSxbbigpLGEudHlwZSxi
LEMuZ2V0UG9zKGEpLGEud2hpY2gsYS5idXR0b25dKX19ZnVuY3Rpb24gZmEoYSl7
VShhKTthOntpZihnLmdldFNlbGVjdGlvbil7dHJ5e3ZhciBiPWcuZ2V0U2VsZWN0
aW9uKCl9Y2F0Y2gob2Ipe2JyZWFrIGF9dmFyIGM9Yi50b1N0cmluZygpO3ZhciBk
PWIuYW5jaG9yTm9kZX1lbHNlIGguc2VsZWN0aW9uJiZoLnNlbGVjdGlvbi5jcmVh
dGVSYW5nZSYmCihhPWguc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCksYz1hLnRleHQs
ZD1hLnBhcmVudEVsZW1lbnQoKSk7aWYoInN0cmluZyI9PXR5cGVvZiBjKXt0cnl7
Zm9yKDtkJiYxIT1kLm5vZGVUeXBlOylkPWQucGFyZW50Tm9kZX1jYXRjaChvYil7
YnJlYWsgYX1kJiZxYShkKXx8UShkLCEwKXx8Yz09amF8fChqYT1jLEooeixbbigp
LGNdKSl9fX1mdW5jdGlvbiBWKGEpe3ZhciBiPXYoKSxjPWItaWE7aWYoISgxMD5j
KSl7dmFyIGQ9Qy5nZXRQb3MoYSksZT1kYVswXS1kWzBdLGY9ZGFbMV0tZFsxXSxl
PWUqZStmKmY7MD49ZXx8MTY+ZSYmMTAwPmN8fDIwPmMmJjI1Nj5lfHwoaWE9Yixk
YT1kLFUoYSkpfX1mdW5jdGlvbiBMKCl7dmFyIGE9bS5nZXREb2N1bWVudFNjcm9s
bCgpLGI9digpOzEwPmItYWF8fDEwPk1hdGguYWJzKGFbMF0tZWFbMF0pJiYxMD5N
YXRoLmFicyhhWzFdLWVhWzFdKXx8KGFhPWIsZWE9YSxKKEUsW24oKSxhXSkpfWZ1
bmN0aW9uIHUoYSl7aWYoYT1DLmdldFRhcmdldChhKSl7dmFyIGI9Ck1hdGgucmFu
ZG9tKCksYz1bYS5zY3JvbGxMZWZ0LGEuc2Nyb2xsVG9wXTtpZihhLmxvY2FsSWQp
e2lmKGI9Z2FbYS5sb2NhbElkXSwhYnx8MTA+TWF0aC5hYnMoY1swXS1iWzBdKSYm
MTA+TWF0aC5hYnMoY1sxXS1iWzFdKSlyZXR1cm59ZWxzZXtmb3IoO2dhW2JdOyli
PU1hdGgucmFuZG9tKCk7YS5sb2NhbElkPWJ9Z2FbYS5sb2NhbElkXT1jO2EhPT1o
JiYoQihhKSxKKEcsW24oKSxjLGFdKSl9fWZ1bmN0aW9uIE0oKXtKKEEsW24oKSxt
LmdldFZpZXdwb3J0U2l6ZSgpLG0uZ2V0RG9jdW1lbnRTaXplKCldKX1mdW5jdGlv
biBEKCl7SihSLFtdLCEwKX1mdW5jdGlvbiBiYShhKXtyZXR1cm4oYS5zaGlmdEtl
eT8yOjApfChhLmN0cmxLZXk/NDowKXwoYS5hbHRLZXk/MTowKXwoYS5tZXRhS2V5
Pzg6MCl8KGEuY3RybEtleXx8YS5hbHRLZXk/MTY6MCl9ZnVuY3Rpb24gcWEoYSl7
cmV0dXJuIklOUFVUIj09YS50YWdOYW1lPyJwYXNzd29yZCI9PWEudHlwZXx8YS5u
YW1lJiZjYS50ZXN0KGEubmFtZSl8fAphLmlkJiZjYS50ZXN0KGEuaWQpOiExfWZ1
bmN0aW9uIFBhKGEsYixjKXshKGE9Qy5nZXRUYXJnZXQoYSkpfHxxYShhKXx8UShh
KXx8KEIoYSksSih5YSxbbigpLGIsYyxhXSkpfWZ1bmN0aW9uIFFhKGEpe3ZhciBi
PWEua2V5Q29kZSxjPWJhKGEpO2lmKHszOjEsODoxLDk6MSwxMzoxLDE2OjEsMTc6
MSwxODoxLDE5OjEsMjA6MSwyNzoxLDMzOjEsMzQ6MSwzNToxLDM2OjEsMzc6MSwz
ODoxLDM5OjEsNDA6MSw0NToxLDQ2OjEsOTE6MSw5MjoxLDkzOjEsMTA2OjEsMTEw
OjEsMTExOjEsMTQ0OjEsMTQ1OjF9W2JdfHwxMTI8PWImJjEyMz49Ynx8OTY8PWIm
JjEwNT49Ynx8YyYxNikxOT09YiYmND09KGMmLTE3KSYmKGI9MTQ0KSxQYShhLGIs
Y3wxNiksVz0hMSxmLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtXPSEwfSwxKSwhKDY3
PT1iJiZjJjQpfHxjJjF8fGMmMnx8R2EoKX1mdW5jdGlvbiBSYShhKXtXJiYhWiYm
MCE9PWEud2hpY2gmJihQYShhLGEuY2hhckNvZGV8fGEua2V5Q29kZSxiYShhKSks
Clo9ITAsZi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Wj0hMX0sMSkpfWZ1bmN0aW9u
IEdhKCl7a2F8fChrYT0hMCxqYSYmSihwYixbbigpXSksZi5zZXRUaW1lb3V0KGZ1
bmN0aW9uKCl7a2E9ITF9LDEpKX1mdW5jdGlvbiBIYSgpe3JhfHwocmE9ITAsSihx
YixbbigpXSkpfWZ1bmN0aW9uIHNhKCl7cmEmJihyYT0hMSxKKEgsW24oKV0pKX1m
dW5jdGlvbiBTYShhKXsoIXJhfHxhJiYhYS5mcm9tRWxlbWVudCkmJkhhKCl9ZnVu
Y3Rpb24gVGEoYSl7YSYmIWEudG9FbGVtZW50JiZzYSgpfWZ1bmN0aW9uIEFhKGEp
e2lmKChhPUMuZ2V0VGFyZ2V0KGEpKSYmL15JTlBVVHxTRUxFQ1R8VEVYVEFSRUF8
QlVUVE9OJC8udGVzdChhLnRhZ05hbWUpKXtpZihhW0ZdKUIoYSk7ZWxzZXt2YXIg
Yj1hLmZvcm07aWYoYilmb3IodmFyIGI9Yi5lbGVtZW50cyxjPWIubGVuZ3RoLGQ9
MDtkPGM7ZCsrKS9eSU5QVVR8U0VMRUNUfFRFWFRBUkVBfEJVVFRPTiQvLnRlc3Qo
YltkXS50YWdOYW1lKSYmIWJbZF1bRl0mJgpCKGJbZF0pO2Vsc2UgQihhKX1KKG1h
LFtuKCksYV0pfX1mdW5jdGlvbiBCYShhKXsoYT1DLmdldFRhcmdldChhKSkmJi9e
SU5QVVR8U0VMRUNUfFRFWFRBUkVBfEJVVFRPTiQvLnRlc3QoYS50YWdOYW1lKSYm
KEIoYSksSihPLFtuKCksYV0pKX1mdW5jdGlvbiBDYShhKXtpZigoYT1DLmdldFRh
cmdldChhKSkmJiFxYShhKSYmIVEoYSkmJi9eSU5QVVR8U0VMRUNUfFRFWFRBUkVB
JC8udGVzdChhLnRhZ05hbWUpKXt2YXIgYj0vXihjaGVja2JveHxyYWRpbykkLy50
ZXN0KGEudHlwZSk/YS5jaGVja2VkOmEudmFsdWU7QihhKTtKKGhhLFtuKCksYSxi
XSl9fWZ1bmN0aW9uIHRhKGEpe2lmKChhPUMuZ2V0VGFyZ2V0KGEpKSYmIVkoYSkm
JiJGT1JNIj09YS5ub2RlTmFtZSl7Zm9yKHZhciBiPWEuZWxlbWVudHMsYz0wO2M8
Yi5sZW5ndGg7YysrKW0uaXNFbXB0eUZpZWxkKGJbY10pfHxCKGJbY10pO0ooTixb
bigpLGFdLCEwKX19ZnVuY3Rpb24gSWEoYSl7TCgpO2lmKGEudG91Y2hlcyYmYS50
b3VjaGVzLmxlbmd0aCl7dmFyIGI9CkMuZ2V0VGFyZ2V0KGEpO2lmKGImJmIhPWgp
e0IoYik7Zm9yKHZhciBjPTA7YzxhLnRvdWNoZXMubGVuZ3RoO2MrKylKKE5hLFtu
KCksInRvdWNoIixiLFthLnRvdWNoZXNbY10ucGFnZVgsYS50b3VjaGVzW2NdLnBh
Z2VZXSwwLDBdKX19fWZ1bmN0aW9uIERhKGEpe3ZhciBiPUMuZ2V0VGFyZ2V0KGEp
O2lmKGIpe3ZhciBjOyJ3aGVlbCI9PWEudHlwZT9jPTA8YS5kZWx0YVk/MTowPmEu
ZGVsdGFZPzI6MDoibW91c2V3aGVlbCI9PWEudHlwZSYmKGM9MDxhLndoZWVsRGVs
dGE/MjowPmEud2hlZWxEZWx0YT8xOjApO2MmJihCKGIpLEooT2EsW24oKSxiLEMu
Z2V0UG9zKGEpLGNdKSl9fWZ1bmN0aW9uIFVhKGEpeyhhPUMuZ2V0VGFyZ2V0KGEp
KSYmIkJPRFkiPT1hLnRhZ05hbWUmJm5hLmFwcGVuZChbXSwhMCl9dmFyIG5hPW5l
dyBFYSh7cHJvdG9jb2w6YSxnbG9iYWxDb25maWc6ZSxjb3VudGVySWQ6Yixjb3Vu
dGVyVHlwZTpjLG1ldGE6e3VybDp4KCkuaHJlZixoaXRJZDpkLHRpbWV6b25lOnVh
LAp0aW1lc3RhbXA6dmF9fSkscmI9e0E6MSxBQkJSOjIsQUNST05ZTTozLEFERFJF
U1M6NCxBUFBMRVQ6NSxBUkVBOjYsQjo3LEJBU0U6OCxCQVNFRk9OVDo5LEJETzox
MCxCSUc6MTEsQkxPQ0tRVU9URToxMixCT0RZOjEzLEJSOjE0LEJVVFRPTjoxNSxD
QVBUSU9OOjE2LENFTlRFUjoxNyxDSVRFOjE4LENPREU6MTksQ09MOjIwLENPTEdS
T1VQOjIxLEREOjIyLERFTDoyMyxERk46MjQsRElSOjI1LERJVjoyNixETDoyNyxE
VDoyOCxFTToyOSxGSUVMRFNFVDozMCxGT05UOjMxLEZPUk06MzIsRlJBTUU6MzMs
RlJBTUVTRVQ6MzQsSDE6MzUsSDI6MzYsSDM6MzcsSDQ6MzgsSDU6MzksSDY6NDAs
SEVBRDo0MSxIUjo0MixIVE1MOjQzLEk6NDQsSUZSQU1FOjQ1LElNRzo0NixJTlBV
VDo0NyxJTlM6NDgsSVNJTkRFWDo0OSxLQkQ6NTAsTEFCRUw6NTEsTEVHRU5EOjUy
LExJOjUzLExJTks6NTQsTUFQOjU1LE1FTlU6NTYsTUVUQTo1NyxOT0ZSQU1FUzo1
OCxOT1NDUklQVDo1OSxPQkpFQ1Q6NjAsCk9MOjYxLE9QVEdST1VQOjYyLE9QVElP
Tjo2MyxQOjY0LFBBUkFNOjY1LFBSRTo2NixROjY3LFM6NjgsU0FNUDo2OSxTQ1JJ
UFQ6NzAsU0VMRUNUOjcxLFNNQUxMOjcyLFNQQU46NzMsU1RSSUtFOjc0LFNUUk9O
Rzo3NSxTVFlMRTo3NixTVUI6NzcsU1VQOjc4LFRBQkxFOjc5LFRCT0RZOjgwLFRE
OjgxLFRFWFRBUkVBOjgyLFRGT09UOjgzLFRIOjg0LFRIRUFEOjg1LFRJVExFOjg2
LFRSOjg3LFRUOjg4LFU6ODksVUw6OTAsVkFSOjkxLE5PSU5ERVg6MTAwfSxNYT0w
LFM9MDtsKDApO3ZhciBUPTEsaWE9MCxkYT1bMCwwXSxhYT0wLGVhPVswLDBdLGdh
PXt9LGNhPS9eKHBhc3N3b3JkfHBhc3N3ZHxwc3dkKSQvLFc9ITAsWj0hMSxqYT0i
IixrYT0hMSxyYT0hMCxYPXYoKSxGPSJtZXRyaWthSWRfIitNYXRoLnJhbmRvbSgp
LHphPXt9LEZhPSI6c3VibWl0IitNYXRoLnJhbmRvbSgpO2lmKCFmLmlzTWV0cmlr
YVBsYXllcigpKXtrLm9uKGgsIm1vdXNlbW92ZSIsVik7ay5vbihoLCJjbGljayxk
YmxjbGljayxtb3VzZWRvd24iLApVKTtrLm9uKGgsIm1vdXNldXAiLGZhKTtrLm9u
KGcsInNjcm9sbCIsTCk7aWYoIm9ubW91c2V3aGVlbCJpbiBoKWsub24oaCwibW91
c2V3aGVlbCIsRGEpO2Vsc2Ugay5vbihoLCJ3aGVlbCIsRGEpO2sub24oZywiYmVm
b3JldW5sb2FkIixEKTtpZighc2Ipay5vbihnLCJ1bmxvYWQiLEQpO2sub24oZywi
cmVzaXplIixNKTtrLm9uKGgsImtleWRvd24iLFFhKTtrLm9uKGgsImtleXByZXNz
IixSYSk7ay5vbihoLCJjb3B5IixHYSk7ay5vbihoLCJ0b3VjaG1vdmUsdG91Y2hz
dGFydCIsSWEpO2lmKGguYm9keSlrLm9uKGgsIm1vdXNlbGVhdmUiLFVhKTtoLmF0
dGFjaEV2ZW50JiYhZy5vcGVyYT8oay5vbihoLCJmb2N1c2luIixTYSksay5vbiho
LCJmb2N1c291dCIsVGEpKTooay5vbihnLCJmb2N1cyIsSGEpLGsub24oZywiYmx1
ciIsc2EpLGsub24oaCwiYmx1ciIsc2EpKTtoLmFkZEV2ZW50TGlzdGVuZXI/KGsu
b24oaCwic2Nyb2xsIix1KSxrLm9uKGgsImZvY3VzIixBYSksay5vbihoLAoiYmx1
ciIsQmEpLGsub24oaCwiY2hhbmdlIixDYSksay5vbihoLCJzdWJtaXQiLHRhKSk6
aC5hdHRhY2hFdmVudCYmKGsub24oaCwiZm9jdXNpbiIsQWEpLGsub24oaCwiZm9j
dXNvdXQiLEJhKSxmdW5jdGlvbigpe2Zvcih2YXIgYT1oLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJmb3JtIiksYj0wO2I8YS5sZW5ndGg7YisrKXtmb3IodmFyIGM9YVti
XS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLGQ9MDtkPGMubGVuZ3RoO2QrKylp
ZigvXklOUFVUfFNFTEVDVHxURVhUQVJFQSQvLnRlc3QoY1tkXS50YWdOYW1lKSlr
Lm9uKGNbZF0sImNoYW5nZSIsQ2EpO2sub24oYVtiXSwic3VibWl0Iix0YSl9fSgp
KTsoZnVuY3Rpb24oKXt2YXIgYT1oLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmb3Jt
Iik7aWYoYS5sZW5ndGgpZm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBj
PWFbYl0uc3VibWl0O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjfHwib2JqZWN0Ij09
dHlwZW9mIGMmJi9eXHMqZnVuY3Rpb24gc3VibWl0XChcKS8udGVzdChTdHJpbmco
YykpKWFbYl1bRmFdPQpjLGFbYl0uc3VibWl0PWZ1bmN0aW9uKCl7dGEoe3Rhcmdl
dDp0aGlzfSk7cmV0dXJuIHRoaXNbRmFdKCl9fX0pKCk7IjA6MCIhPW0uZ2V0RG9j
dW1lbnRTY3JvbGwoKS5qb2luKCI6IikmJkwoKTtNKCl9cmV0dXJue3N0YXJ0OmZ1
bmN0aW9uKCl7bmEuYWN0aXZhdGUoKX0sc3RvcDpmdW5jdGlvbigpe25hLmNsZWFy
KCk7ay51bihoLCJtb3VzZW1vdmUiLFYpO2sudW4oaCwiY2xpY2ssZGJsY2xpY2ss
bW91c2Vkb3duIixVKTtrLnVuKGgsIm1vdXNldXAiLGZhKTtrLnVuKGgsIm1vdXNl
d2hlZWwiLERhKTtrLnVuKGgsIndoZWVsIixEYSk7ay51bihnLCJzY3JvbGwiLEwp
O2sudW4oZywiYmVmb3JldW5sb2FkIixEKTtrLnVuKGcsInVubG9hZCIsRCk7ay51
bihnLCJyZXNpemUiLE0pO2sudW4oaCwia2V5ZG93biIsUWEpO2sudW4oaCwia2V5
cHJlc3MiLFJhKTtrLnVuKGgsImNvcHkiLEdhKTtrLnVuKGgsInRvdWNobW92ZSIs
SWEpO2sudW4oaCwidG91Y2hzdGFydCIsSWEpO2guYm9keSYmCmsudW4oaCwibW91
c2VsZWF2ZSIsVWEpO2sudW4oaCwiZm9jdXNpbiIsU2EpO2sudW4oaCwiZm9jdXNv
dXQiLFRhKTtrLnVuKGcsImZvY3VzIixIYSk7ay51bihnLCJibHVyIixzYSk7ay51
bihoLCJibHVyIixzYSk7aC5yZW1vdmVFdmVudExpc3RlbmVyPyhrLnVuKGgsInNj
cm9sbCIsdSksay51bihoLCJmb2N1cyIsQWEpLGsudW4oaCwiYmx1ciIsQmEpLGsu
dW4oaCwiY2hhbmdlIixDYSksay51bihoLCJzdWJtaXQiLHRhKSk6aC5kZXRhY2hF
dmVudCYmKGsudW4oaCwiZm9jdXNpbiIsQWEpLGsudW4oaCwiZm9jdXNvdXQiLEJh
KSxmdW5jdGlvbigpe2Zvcih2YXIgYT1oLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJm
b3JtIiksYj0wO2I8YS5sZW5ndGg7YisrKXtmb3IodmFyIGM9YVtiXS5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiKiIpLGQ9MDtkPGMubGVuZ3RoO2QrKykvXklOUFVUfFNF
TEVDVHxURVhUQVJFQSQvLnRlc3QoY1tkXS50YWdOYW1lKSYmay51bihjW2RdLCJj
aGFuZ2UiLENhKTsKay51bihhW2JdLCJzdWJtaXQiLHRhKX19KCkpOyhmdW5jdGlv
bigpe2Zvcih2YXIgYT1oLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmb3JtIiksYj0w
O2I8YS5sZW5ndGg7YisrKWFbYl1bRmFdJiYoYVtiXS5zdWJtaXQ9YVtiXVtGYV0p
fSkoKX0sdXBsb2FkUGFnZXM6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7dmFy
IGU7ay51bihoLCJET01Db250ZW50TG9hZGVkIixjKTtrLnVuKGcsImxvYWQiLGMp
O2Zvcih2YXIgZj1hLnNwbGl0KC9cbi8pLGw9eCgpLmhyZWYsdj0vcmVnZXhwOi8s
bj0wO248Zi5sZW5ndGg7bisrKWlmKGU9ZltuXSlpZih2LnRlc3QoZSkpe2U9d2Eo
ZS5yZXBsYWNlKHYsIiIpKTt0cnl7dmFyIHU9bmV3IFJlZ0V4cChlKX1jYXRjaChP
Yil7fWlmKHUmJnUudGVzdChsKSl7ZC51cGxvYWRQYWdlKGIpO2JyZWFrfX1lbHNl
IGlmKC0xIT09bC5pbmRleE9mKGUpKXtkLnVwbG9hZFBhZ2UoYik7YnJlYWt9fXZh
ciBkPXRoaXM7ImNvbXBsZXRlIj09aC5yZWFkeVN0YXRlPwpjKCk6KGsub24oaCwi
RE9NQ29udGVudExvYWRlZCIsYyksay5vbihnLCJsb2FkIixjKSl9LHVwbG9hZFBh
Z2U6cihmdW5jdGlvbihlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZy50b1N0YXRp
Y0hUTUwmJi0xPGcudG9TdGF0aWNIVE1MLnRvU3RyaW5nKCkuaW5kZXhPZigiTm9T
Y3JpcHQiKSlyZXR1cm4hMTt2YXIgZj1oLmRvY3VtZW50RWxlbWVudDtpZihmJiYx
OUU0PCgiIitmLmlubmVySFRNTCkubGVuZ3RoKXJldHVybiExO3ZhciBsPWcuWE1M
SHR0cFJlcXVlc3Q/bmV3IGcuWE1MSHR0cFJlcXVlc3Q6bmV3IEFjdGl2ZVhPYmpl
Y3QoIk1zeG1sMi5YTUxIVFRQIiksdj1tLmdldERvY3VtZW50Q2hhcnNldCgpLG49
InRleHQvaHRtbCIrKHY/IjtjaGFyc2V0XHgzZCIrdjoiIiksdT1uZXcgdGIoe3By
b3RvY29sOmEsY291bnRlcklkOmIsY291bnRlclR5cGU6Y30pO2lmKCJodG1sIj09
ZSlyZXR1cm4gZT1uZXcgUmVnRXhwKCJceDNjc2NyaXB0IFteXHgzZV0qPy8vIitL
Lmhvc3QucmVwbGFjZSgvXC4vZywKIlxcXFwuIikrIi93YXRjaC8uKj9ceDNjL3Nj
cmlwdFx4M2UiLCJnaSIpLHUuc2VuZENvbnRlbnQobS5nZXREb2N1bWVudEhUTUwo
KS5yZXBsYWNlKGUsIiIpLG4sZCx1YSx2YSksITA7bCYmKGwub3BlbigiZ2V0Iix4
KCkuaHJlZiwhMCksbC5vbnJlYWR5c3RhdGVjaGFuZ2U9cihmdW5jdGlvbigpe2lm
KDQ9PWwucmVhZHlTdGF0ZSl7dmFyIGE9bC5nZXRSZXNwb25zZUhlYWRlcigiY29u
dGVudC10eXBlIil8fCIiO3YmJi0xPT09YS5pbmRleE9mKCJjaGFyc2V0XHgzZCIp
JiYoYT1uKTt1LnNlbmRDb250ZW50KGwucmVzcG9uc2VUZXh0LGEsZCx1YSx2YSl9
fSwidXBkYXRlUGFnZS4xIiksbC5vdmVycmlkZU1pbWVUeXBlJiZ2JiZsLm92ZXJy
aWRlTWltZVR5cGUobiksbC5zZW5kKG51bGwpKTtyZXR1cm4hMH0sInVwbG9hZFBh
Z2UiKX19ZnVuY3Rpb24geCgpe2Zvcih2YXIgYT17fSxiPSJoYXNoIGhvc3QgaG9z
dG5hbWUgaHJlZiBwYXRobmFtZSBwb3J0IHByb3RvY29sIHNlYXJjaCIuc3BsaXQo
IiAiKSwKYz1iLmxlbmd0aCxkPWMsZSxmO2QtLTspYVtiW2RdXT0iIjt0cnl7Zm9y
KGU9Zy5sb2NhdGlvbixkPWM7ZC0tOylmPWJbZF0sYVtmXT0iIitlW2ZdfWNhdGNo
KHYpe0UmJihhPUUpfXJldHVybiBhfWZ1bmN0aW9uIHdhKGEpe3JldHVybiBhPygi
IithKS5yZXBsYWNlKC9eXHMrLywiIikucmVwbGFjZSgvXHMrJC8sIiIpOiIifWZ1
bmN0aW9uIFZhKCl7cmV0dXJuLTEhPXgoKS5ob3N0bmFtZS5zZWFyY2goLyg/Ol58
XC4pKD86eWF8eWFuZGV4KVwuKD86XHcrfGNvbT9cLlx3KykkLyl9ZnVuY3Rpb24g
bGEoYSl7cmV0dXJuLTEhPT0oIiIrZy5uYXZpZ2F0b3IudXNlckFnZW50KS50b0xv
d2VyQ2FzZSgpLnNlYXJjaChhKX1mdW5jdGlvbiBXYShhKXtyZXR1cm4gd2EoYSYm
YS5pbm5lckhUTUwmJmEuaW5uZXJIVE1MLnJlcGxhY2UoLzxcLz9bXj5dKz4vZ2ks
IiIpKX1mdW5jdGlvbiBYYShhLGIpe3ZhciBjO2lmKCFhfHwhYilyZXR1cm4hMTt2
YXIgZD1bXTtmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKWQucHVzaChiW2NdLnJlcGxh
Y2UoL1xeL2csCiJcXF4iKS5yZXBsYWNlKC9cJC9nLCJcXCQiKS5yZXBsYWNlKC9c
Li9nLCJcXC4iKS5yZXBsYWNlKC9cWy9nLCJcXFsiKS5yZXBsYWNlKC9cXS9nLCJc
XF0iKS5yZXBsYWNlKC9cfC9nLCJcXHwiKS5yZXBsYWNlKC9cKC9nLCJcXCgiKS5y
ZXBsYWNlKC9cKS9nLCJcXCkiKS5yZXBsYWNlKC9cPy9nLCJcXD8iKS5yZXBsYWNl
KC9cKi9nLCJcXCoiKS5yZXBsYWNlKC9cKy9nLCJcXCsiKS5yZXBsYWNlKC9cey9n
LCJcXHsiKS5yZXBsYWNlKC9cfS9nLCJcXH0iKSk7cmV0dXJuKG5ldyBSZWdFeHAo
IlxcLigiK2Quam9pbigifCIpKyIpJCIsImkiKSkudGVzdChhKX1mdW5jdGlvbiB1
YihhKXthPWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7dmFyIGI7aWYoIWEpcmV0dXJu
ITE7Mz09YS5ub2RlVHlwZSYmKGE9YS5wYXJlbnROb2RlKTtmb3IoYj1hJiZhLm5v
ZGVOYW1lJiZhLm5vZGVOYW1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTthJiZh
LnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5ub2RlTmFtZSYmCigiYSIhPWImJiJh
cmVhIiE9Ynx8IWEuaHJlZik7KWI9KGE9YS5wYXJlbnROb2RlKSYmYS5ub2RlTmFt
ZSYmYS5ub2RlTmFtZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGEu
aHJlZj9hOiExfWZ1bmN0aW9uIHZiKGEsYil7cmV0dXJuKGE/YS5yZXBsYWNlKC9e
d3d3XC4vLCIiKToiIikudG9Mb3dlckNhc2UoKT09KGI/Yi5yZXBsYWNlKC9ed3d3
XC4vLCIiKToiIikudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB3YihhLGIpe2Z1bmN0
aW9uIGMoYSl7YT1hLnNwbGl0KCI6Iik7YT1hWzFdfHwiIjthPWEucmVwbGFjZSgv
XlwvKi8sIiIpLnJlcGxhY2UoL153d3dcLi8sIiIpO3JldHVybiBhLnNwbGl0KCIv
IilbMF19cmV0dXJuIGEmJmI/YyhhKT09YyhiKTphfHxiPyExOiEwfWZ1bmN0aW9u
IFphKCl7dmFyIGE9Zy5wZXJmb3JtYW5jZXx8Zy53ZWJraXRQZXJmb3JtYW5jZSxi
PWEmJmEudGltaW5nLGMsZD1bXTtpZihiJiYoYz1iLm5hdmlnYXRpb25TdGFydCkp
Zm9yKGQ9W2IuZG9tYWluTG9va3VwRW5kLQpiLmRvbWFpbkxvb2t1cFN0YXJ0LGIu
Y29ubmVjdEVuZC1iLmNvbm5lY3RTdGFydCxiLnJlc3BvbnNlU3RhcnQtYi5yZXF1
ZXN0U3RhcnQsYi5yZXNwb25zZUVuZC1iLnJlc3BvbnNlU3RhcnQsYi5mZXRjaFN0
YXJ0LWMsYi5yZWRpcmVjdEVuZC1iLnJlZGlyZWN0U3RhcnQsYi5yZWRpcmVjdENv
dW50fHxhLm5hdmlnYXRpb24mJmEubmF2aWdhdGlvbi5yZWRpcmVjdENvdW50XSxk
LnB1c2goYi5kb21JbnRlcmFjdGl2ZSYmYi5kb21Mb2FkaW5nP2IuZG9tSW50ZXJh
Y3RpdmUtYi5kb21Mb2FkaW5nOm51bGwpLGQucHVzaChiLmRvbUNvbnRlbnRMb2Fk
ZWRFdmVudFN0YXJ0JiZiLmRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZD9iLmRvbUNv
bnRlbnRMb2FkZWRFdmVudEVuZC1iLmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0
Om51bGwpLGQucHVzaChiLmRvbUNvbXBsZXRlP2IuZG9tQ29tcGxldGUtYzpudWxs
KSxkLnB1c2goYi5sb2FkRXZlbnRTdGFydD9iLmxvYWRFdmVudFN0YXJ0LWM6bnVs
bCksCmQucHVzaChiLmxvYWRFdmVudFN0YXJ0JiZiLmxvYWRFdmVudEVuZD9iLmxv
YWRFdmVudEVuZC1iLmxvYWRFdmVudFN0YXJ0Om51bGwpLGQucHVzaChiLmRvbUNv
bnRlbnRMb2FkZWRFdmVudFN0YXJ0P2IuZG9tQ29udGVudExvYWRlZEV2ZW50U3Rh
cnQtYzpudWxsKSxhPTA7YTxkLmxlbmd0aDthKyspYj1kW2FdLG51bGwhPT1iJiYo
MD5ifHwzNkU1PGIpJiYoZFthXT1udWxsKTtyZXR1cm4gZH1mdW5jdGlvbiB4Yihh
KXt2YXIgYj1bXSxjPWEuX2xhc3RQZXJmb3JtYW5jZVRpbWluZyxkPVphKCksZTtp
ZihjKXt2YXIgZj0wO2ZvcihlPWMubGVuZ3RoO2Y8ZTtmKyspbnVsbD09PWRbZl0/
Yi5wdXNoKGRbZl0pOmIucHVzaChjW2ZdPT09ZFtmXT8iIjpkW2ZdKX1lbHNlIGI9
ZDthLl9sYXN0UGVyZm9ybWFuY2VUaW1pbmc9ZDtyZXR1cm4gYi5qb2luKCIsIil9
ZnVuY3Rpb24geWIoKXtpZigib2JqZWN0Ij09dHlwZW9mIGcuY2hyb21lJiZnLmNo
cm9tZS5sb2FkVGltZXMpe3ZhciBhPWcuY2hyb21lLmxvYWRUaW1lcygpOwppZihh
LnJlcXVlc3RUaW1lJiZhLmZpcnN0UGFpbnRUaW1lJiZnLnBlcmZvcm1hbmNlJiZn
LnBlcmZvcm1hbmNlLnRpbWluZylyZXR1cm4gTWF0aC5yb3VuZCgxRTMqYS5maXJz
dFBhaW50VGltZS1nLnBlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQp
fWVsc2UgaWYoZy5wZXJmb3JtYW5jZSYmZy5wZXJmb3JtYW5jZS50aW1pbmcmJihh
PWcucGVyZm9ybWFuY2UudGltaW5nLGEubmF2aWdhdGlvblN0YXJ0JiZhLm1zRmly
c3RQYWludCkpcmV0dXJuIGEubXNGaXJzdFBhaW50LWEubmF2aWdhdGlvblN0YXJ0
O3JldHVybiBudWxsfWZ1bmN0aW9uIHpiKGEpe3ZhciBiPWgucmVmZXJyZXJ8fCIi
LGMsZDtpZigobmV3IFJlZ0V4cCgiXmh0dHBzPzovLyIrRS5ob3N0KyIvIikpLnRl
c3QoYikpcmV0dXJuITE7dmFyIGU9YS5wYXR0ZXJucztmb3IoYz0wO2M8ZS5sZW5n
dGg7YysrKXt2YXIgbD1uZXcgUmVnRXhwKGVbY10sImkiKTtpZihiLm1hdGNoKGwp
KWlmKGw9YS5wYXJhbXN8fFtdLApsLmxlbmd0aCl7dmFyIGc9Zi5zYWZlRGVjb2Rl
VVJJQ29tcG9uZW50KChSZWdFeHAuJDF8fCIiKS5yZXBsYWNlKC9cKy9nLCIlMjAi
KSk7Zm9yKGQ9MDtkPGwubGVuZ3RoO2QrKylpZihnPT1mLnNhZmVEZWNvZGVVUklD
b21wb25lbnQobFtkXSkpcmV0dXJuITB9ZWxzZSByZXR1cm4hMH1yZXR1cm4hMX1m
dW5jdGlvbiAkYShhLGIpe3ZhciBjPSExLGQ7aWYoYSYmInN0cmluZyIhPXR5cGVv
ZiBhJiZhLmxlbmd0aClmb3IoZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hW2Rd
LnNlbGVjdG9yO3ZhciBmPWFbZF0udGV4dDt2YXIgZz1lLmNoYXJBdCgwKTtlPWUu
c2xpY2UoMSk7aWYoIiMiPT1nKXtpZihnPWguZ2V0RWxlbWVudEJ5SWQoZSkpYz0h
MCxiJiZWLnVuc2hpZnQoW2csZy5pbm5lckhUTUxdKSxnLmlubmVySFRNTD1mfWVs
c2UgaWYoIi4iPT1nKWZvcihnPW0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKSxl
PTA7ZTxnLmxlbmd0aDtlKyspe3ZhciBjPSEwLG49Z1tlXSxrPWY7YiYmClYudW5z
aGlmdChbbixuLmlubmVySFRNTF0pO24uaW5uZXJIVE1MPWt9fXJldHVybiBjfWZ1
bmN0aW9uIGFiKCl7dmFyIGE7Zm9yKGE9MDthPFYubGVuZ3RoO2ErKylWW2FdWzBd
LmlubmVySFRNTD1WW2FdWzFdfWZ1bmN0aW9uIEFiKGEsYil7dmFyIGMsZD0iIjth
PWEmJmEucmVwbGFjZSgvXlw/LywiIik7Yj1iJiZiLnJlcGxhY2UoL14jLywiIil8
fCIiO2lmKGEpe3ZhciBlPWEuc3BsaXQoIlx4MjYiKTtmb3IoYz0wO2M8ZS5sZW5n
dGg7YysrKXt2YXIgbD1lW2NdLnNwbGl0KCJceDNkIik7Il9vcGVuc3RhdCI9PT1s
WzBdJiYoZD1sWzFdKX19dmFyIGc9Yi5zcGxpdCgiPyIpO2ZvcihjPTA7YzxnLmxl
bmd0aDtjKyspe3ZhciBuPWdbY10uc3BsaXQoIlx4MjYiKTtmb3IoZT0wO2U8bi5s
ZW5ndGg7ZSsrKWw9bltlXS5zcGxpdCgiXHgzZCIpLCJfb3BlbnN0YXQiPT09bFsw
XSYmKGQ9bFsxXSl9ZCYmKGQ9LTE8ZC5pbmRleE9mKCI7Iik/Zi5zYWZlRGVjb2Rl
VVJJQ29tcG9uZW50KGQpOgpjYS5kZWNvZGUoTi5kZWNvZGUoZC5yZXBsYWNlKC9b
LSpfXS9nLGZ1bmN0aW9uKGEpe3JldHVybnsiKiI6IisiLCItIjoiLyIsXzoiXHgz
ZCJ9W2FdfHxhfSkpKSk7cmV0dXJuIGQmJihjPWQuc3BsaXQoIjsiKSw0PT1jLmxl
bmd0aCk/e3NlcnZpY2U6Y1swXSxjYW1wYWlnbjpjWzFdLGFkOmNbMl0sc291cmNl
OmNbM119Om51bGx9dmFyIEs9e3Byb3RvY29sOiJodHRwczoiLGJhc2VVcmw6Im1j
LnlhbmRleC4iLHlhbmRleFdoaXRlTGlzdFRsZDoicnUgdWEgYnkga3ogYXoga2cg
bHYgbWQgdGogdG0gdXogZWUgZnIgY28uaWwgY29tLmdlIGNvbS5hbSBjb20udHIi
LnNwbGl0KCIgIil9O0suaG9zdD1LLmJhc2VVcmwrInJ1Ijt2YXIgZj17bWl4aW46
ZnVuY3Rpb24oYSl7dmFyIGIsYztmb3IoYj0xO2I8YXJndW1lbnRzLmxlbmd0aDti
KyspaWYoYXJndW1lbnRzW2JdKXtmb3IoYyBpbiBhcmd1bWVudHNbYl0pYXJndW1l
bnRzW2JdLmhhc093blByb3BlcnR5KGMpJiYoYVtjXT1hcmd1bWVudHNbYl1bY10p
Owphcmd1bWVudHNbYl0uaGFzT3duUHJvcGVydHkoInRvU3RyaW5nIikmJihhLnRv
U3RyaW5nPWFyZ3VtZW50c1tiXS50b1N0cmluZyl9cmV0dXJuIGF9fSxBPWZ1bmN0
aW9uKGEpe2E9YXx8e307Zi5taXhpbih0aGlzLGEpO3RoaXMuX2luaXRDb21wb25l
bnQoKX07QS5wcm90b3R5cGUuX2luaXRDb21wb25lbnQ9ZnVuY3Rpb24oKXt9O0Eu
aW5oZXJpdD1mdW5jdGlvbihhKXthPWF8fHt9O3ZhciBiPSJmdW5jdGlvbiI9PXR5
cGVvZiB0aGlzP3RoaXM6T2JqZWN0O2EuaGFzT3duUHJvcGVydHkoImNvbnN0cnVj
dG9yIil8fChhLmNvbnN0cnVjdG9yPWZ1bmN0aW9uKCl7Yi5hcHBseSh0aGlzLGFy
Z3VtZW50cyl9KTt2YXIgYz1mdW5jdGlvbigpe307Yy5wcm90b3R5cGU9Yi5wcm90
b3R5cGU7YS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU9bmV3IGM7Zi5taXhpbihhLmNv
bnN0cnVjdG9yLnByb3RvdHlwZSxhKTthLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5j
b25zdHJ1Y3Rvcj1hLmNvbnN0cnVjdG9yOwphLmNvbnN0cnVjdG9yLnN1cGVyY2xh
c3M9Yi5wcm90b3R5cGU7YS5jb25zdHJ1Y3Rvci5pbmhlcml0PUEuaW5oZXJpdDty
ZXR1cm4gYS5jb25zdHJ1Y3Rvcn07Zi5pc0FycmF5PWZ1bmN0aW9uKGEpe3JldHVy
biJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheS5pc0FycmF5P0FycmF5LmlzQXJyYXko
YSk6IltvYmplY3QgQXJyYXldIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKGEpfTtmLm1lcmdlQXJyYXlzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZD1hcmd1
bWVudHMubGVuZ3RoO2ZvcihiPTE7YjxkO2IrKyl7dmFyIGU9YXJndW1lbnRzW2Jd
O2lmKGYuaXNBcnJheShlKXx8ZSYmIltvYmplY3QgQXJndW1lbnRzXSI9PT1lLnRv
U3RyaW5nKCkpZm9yKGM9MDtjPGUubGVuZ3RoO2MrKylhW2EubGVuZ3RoXT1lW2Nd
fXJldHVybiBhfTtmLmdldE5hdGl2ZUZ1bmN0aW9uPWZ1bmN0aW9uKGEsYil7dmFy
IGM7Yj1ifHxnO3JldHVybihjPWIuY29uc3RydWN0b3ImJmIuY29uc3RydWN0b3Iu
cHJvdG90eXBlJiYKYi5jb25zdHJ1Y3Rvci5wcm90b3R5cGVbYV18fGJbYV0pJiYi
YXBwbHkiaW4gYz9mdW5jdGlvbigpe3JldHVybiBjLmFwcGx5KGIsYXJndW1lbnRz
KX06ZnVuY3Rpb24oKXt9fTtmLnNldFRpbWVvdXQ9ZnVuY3Rpb24oYSxiLGMpe3Jl
dHVybiBmLmdldE5hdGl2ZUZ1bmN0aW9uKCJzZXRUaW1lb3V0IikocihhLGN8fCJz
ZXRUaW1lb3V0IiksYil9O2YuZGVmZXI9ZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1
cm4gZi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5hcHBseShjLGR8fFtdKX0sYixl
KX07Zi50aHJvdHRsZT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxsLGc7cmV0dXJu
IGZ1bmN0aW9uKCl7bD1hcmd1bWVudHM7Zz10aGlzO2V8fGZ1bmN0aW9uKCl7ZT1u
dWxsO2wmJihhLmFwcGx5KGN8fGcsbCksbD1udWxsLGU9Zi5zZXRUaW1lb3V0KGFy
Z3VtZW50cy5jYWxsZWUsYixkKSl9KCl9fTt2YXIgYmI9QS5pbmhlcml0KHtzdG9y
YWdlOm51bGwsc3RvcmFnZUtleToiZGF0YUJ1ZmZlciIsCm1heEJ1ZmZlclNpemU6
MjU1LGZsdXNoVGltZW91dDoxRTQsc3RhcnRCdWZmZXJUaW1lOjAsYWN0aXZlOiEw
LG1ldGE6bnVsbCxvbkZsdXNoOmZ1bmN0aW9uKCl7fSxvbkZsdXNoQ3R4Om51bGws
YnVmZmVyRXhwaXJlVGltZTo4NjRFNSxfaW5pdENvbXBvbmVudDpmdW5jdGlvbigp
e3ZhciBhO2JiLnN1cGVyY2xhc3MuX2luaXRDb21wb25lbnQuYXBwbHkodGhpcyxh
cmd1bWVudHMpO3RoaXMuX2RhdGE9W107dGhpcy5fcGFja2V0TnVtYmVyPTA7dGhp
cy5fZmx1c2hUSUQ9bnVsbDt0aGlzLl9zYXZlVG9TdG9yYWdlVGhyb3R0bGVkPWYu
dGhyb3R0bGUodGhpcy5fc2F2ZVRvU3RvcmFnZSwzMDAsdGhpcywiRGF0YUJ1ZmZl
ci5fc2F2ZVRvU3RvcmFnZSIpO3RoaXMuc3RvcmFnZSYmKChhPXRoaXMuc3RvcmFn
ZS5nZXQodGhpcy5zdG9yYWdlS2V5KSkmJmEuZGF0YSYmYS5tZXRhJiZhLnRpbWUm
JmEudGltZSt0aGlzLmJ1ZmZlckV4cGlyZVRpbWU+K25ldyBEYXRlJiZ0aGlzLm9u
Rmx1c2guY2FsbCh0aGlzLm9uRmx1c2hDdHh8fAp0aGlzLGEuZGF0YSxhLm1ldGEs
YS5wbnVtKSx0aGlzLmNsZWFyKCkpfSxnZXRGbHVzaFNpemU6ZnVuY3Rpb24oKXty
ZXR1cm4gdGhpcy5fZGF0YS5sZW5ndGh9LGFwcGVuZDpmdW5jdGlvbihhLGIpe2Yu
bWVyZ2VBcnJheXModGhpcy5fZGF0YSxhKTt0aGlzLl9zYXZlVG9TdG9yYWdlVGhy
b3R0bGVkKCk7dGhpcy5hY3RpdmUmJigoYnx8dGhpcy5nZXRGbHVzaFNpemUoKT49
dGhpcy5tYXhCdWZmZXJTaXplKSYmdGhpcy5fZmx1c2goKSx0aGlzLl9mbHVzaFRJ
RHx8KHRoaXMuX2ZsdXNoVElEPWYuZGVmZXIodGhpcy5fZmx1c2gsdGhpcy5mbHVz
aFRpbWVvdXQsdGhpcyxbXSwiRGF0YUJ1ZmZlci5fZmx1c2giKSkpfSxhY3RpdmF0
ZTpmdW5jdGlvbigpe3RoaXMuYWN0aXZlfHwodGhpcy5hY3RpdmU9ITAsdGhpcy5h
cHBlbmQoW10pKX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLl9kYXRhLmxlbmd0aD0w
O3RoaXMuX2ZsdXNoVElEPW51bGw7dGhpcy5zdG9yYWdlJiZ0aGlzLnN0b3JhZ2Uu
cmVtb3ZlKHRoaXMuc3RvcmFnZUtleSl9LApfZmx1c2g6ZnVuY3Rpb24oKXtpZigh
dGhpcy5fZGF0YS5sZW5ndGgpcmV0dXJuITE7dGhpcy5vbkZsdXNoLmNhbGwodGhp
cy5vbkZsdXNoQ3R4fHx0aGlzLHRoaXMuX2RhdGEsdGhpcy5tZXRhLHRoaXMuX3Bh
Y2tldE51bWJlcik7dGhpcy5fcGFja2V0TnVtYmVyKys7dGhpcy5jbGVhcigpfSxf
c2F2ZVRvU3RvcmFnZTpmdW5jdGlvbigpe3RoaXMuc3RvcmFnZSYmdGhpcy5fZGF0
YS5sZW5ndGgmJnRoaXMuc3RvcmFnZS5zZXQodGhpcy5zdG9yYWdlS2V5LHtkYXRh
OnRoaXMuX2RhdGEsbWV0YTp0aGlzLm1ldGEscG51bTp0aGlzLl9wYWNrZXROdW1i
ZXIsdGltZTorbmV3IERhdGV9KX19KSx3PXtzdG9yYWdlOnt9LGluaXQ6ZnVuY3Rp
b24oKXt2YXIgYT10aGlzO3IoZnVuY3Rpb24oKXtnLllhPWcuWWF8fHt9O2cuWWEu
X21ldHJpa2E9Zy5ZYS5fbWV0cmlrYXx8e307YS5zdG9yYWdlPWcuWWEuX21ldHJp
a2F9LCIiLCEwKSgpO3JldHVybiB0aGlzfSxzZXRTYWZlOmZ1bmN0aW9uKGEsYil7
dmFyIGM9CnRoaXM7cihmdW5jdGlvbigpe2Muc3RvcmFnZVthXXx8KGMuc3RvcmFn
ZVthXT1iKX0sIiIsITApKCk7cmV0dXJuIHRoaXN9LHNldDpmdW5jdGlvbihhLGIp
e3IoZnVuY3Rpb24oKXtnLllhLl9tZXRyaWthW2FdPWJ9LCIiLCEwKSgpO3JldHVy
biB0aGlzfSxnZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gcihmdW5jdGlvbigpe3Zh
ciBjPWcuWWEuX21ldHJpa2FbYV07cmV0dXJuIGM9PT1QP2I6Y30sIiIsITApKCl9
fTtmLmZvckVhY2hLZXk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBhKWEu
aGFzT3duUHJvcGVydHkoZCkmJmIuY2FsbChjLGQsYVtkXSxhKX07Zi5pc0VxdWFs
PWZ1bmN0aW9uKGEsYil7dmFyIGM9ITA7Zi5mb3JFYWNoS2V5KGEsZnVuY3Rpb24o
YSxlKXtiLmhhc093blByb3BlcnR5KGEpJiZiW2FdPT09ZXx8KGM9ITEpfSk7aWYo
IWMpcmV0dXJuIGM7Zi5mb3JFYWNoS2V5KGIsZnVuY3Rpb24oYixlKXthLmhhc093
blByb3BlcnR5KGIpJiZhW2JdPT09ZXx8KGM9ITEpfSk7CnJldHVybiBjfTt2YXIg
az1BLmluaGVyaXQoe19pbml0Q29tcG9uZW50OmZ1bmN0aW9uKCl7ay5zdXBlcmNs
YXNzLl9pbml0Q29tcG9uZW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLl9s
aXN0ZW5lcnM9W119LG9uOmZ1bmN0aW9uKGEsYixjLGQsZSl7ZT1rLl9nZXRPcHRz
KGUpO2I9Yi5zcGxpdCgiLCIpO3ZhciBmPWIubGVuZ3RoLHY9dGhpcy5fbGlzdGVu
ZXJzLG47Zm9yKG49MDtuPGY7bisrKXt2YXIgaD1iW25dO3ZhciB0PXIoZnVuY3Rp
b24oYSl7Yy5jYWxsKGR8fHRoaXMsYXx8Zy5ldmVudCl9LCJvbiIraCk7dlt2Lmxl
bmd0aF09W2EsaCxjLGQsZSx0XTthLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVu
dExpc3RlbmVyKGgsdCxrLl9wcmVwT3B0cyhlKSk6YS5hdHRhY2hFdmVudCYmYS5h
dHRhY2hFdmVudCgib24iK2gsdCl9fSx1bjpmdW5jdGlvbihhLGIsYyxkLGUpe2U9
ay5fZ2V0T3B0cyhlKTt2YXIgbD10aGlzLl9saXN0ZW5lcnMsZz1sLmxlbmd0aCxu
O2ZvcihuPQowO248ZztuKyspe3ZhciBoPWxbbl07aWYoaFswXT09YSYmaFsxXT09
YiYmaFsyXT09YyYmaFszXT09ZCYmZi5pc0VxdWFsKGhbNF0sZSkpe2wuc3BsaWNl
KG4sMSk7dGhpcy5fcmVtb3ZlTGlzdGVuZXIoYSxiLGhbNV0sZSk7YnJlYWt9fX0s
dW5BbGw6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9saXN0ZW5lcnMsYj1hLmxlbmd0
aCxjO2ZvcihjPTA7YzxiO2MrKyl7dmFyIGQ9YVtjXTt0aGlzLl9yZW1vdmVMaXN0
ZW5lcihkWzBdLGRbMV0sZFs1XSxkWzRdKX1hLmxlbmd0aD0wfSxfcmVtb3ZlTGlz
dGVuZXI6ZnVuY3Rpb24oYSxiLGMsZCl7YS5yZW1vdmVFdmVudExpc3RlbmVyP2Eu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsay5fcHJlcE9wdHMoZCkpOmEuZGV0YWNo
RXZlbnQmJmEuZGV0YWNoRXZlbnQoIm9uIitiLGMpfX0pO2suc3VwcG9ydHNQYXNz
aXZlPWZ1bmN0aW9uKCl7aWYoay5fc3VwcG9ydHNQYXNzaXZlIT09UClyZXR1cm4g
ay5fc3VwcG9ydHNQYXNzaXZlO2suX3N1cHBvcnRzUGFzc2l2ZT0KITE7dHJ5e3Zh
ciBhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5j
dGlvbigpe2suX3N1cHBvcnRzUGFzc2l2ZT0hMH19KTtnLmFkZEV2ZW50TGlzdGVu
ZXIoInRlc3QiLG51bGwsYSl9Y2F0Y2goYil7fXJldHVybiBrLl9zdXBwb3J0c1Bh
c3NpdmV9O2suX2dldE9wdHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGYubWl4aW4oe2Nh
cHR1cmU6ITAscGFzc2l2ZTohMH0sYXx8e30pfTtrLl9wcmVwT3B0cz1mdW5jdGlv
bihhKXtyZXR1cm4gay5zdXBwb3J0c1Bhc3NpdmUoKT9hOiEhYS5jYXB0dXJlfTtr
Lm9uPWZ1bmN0aW9uKCl7ay5faW5zdGFuY2V8fChrLl9pbnN0YW5jZT1uZXcgayk7
ay5faW5zdGFuY2Uub24uYXBwbHkoay5faW5zdGFuY2UsYXJndW1lbnRzKX07ay51
bj1mdW5jdGlvbigpe2suX2luc3RhbmNlJiZrLl9pbnN0YW5jZS51bi5hcHBseShr
Ll9pbnN0YW5jZSxhcmd1bWVudHMpfTtmLmFzeW5jPWZ1bmN0aW9uKGEsYil7aWYo
Zy5wb3N0TWVzc2FnZSl7dmFyIGM9CiJfX3ltX19wcm9taXNlIitNYXRoLnJhbmRv
bSgpKyJfIisgK25ldyBEYXRlO3ZhciBkPWZ1bmN0aW9uKGUpe2UuZGF0YT09PWMm
JihlLnN0b3BQcm9wYWdhdGlvbiYmZS5zdG9wUHJvcGFnYXRpb24oKSxhLmNhbGwo
Yiksay51bihnLCJtZXNzYWdlIixkLG51bGwse3Bhc3NpdmU6ITF9KSl9O2sub24o
ZywibWVzc2FnZSIsZCxudWxsLHtwYXNzaXZlOiExfSk7Zy5wb3N0TWVzc2FnZShj
LCIqIil9ZWxzZSBmLnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmNhbGwoYil9LDAp
fTt2YXIgb2E9QS5pbmhlcml0KHt0cmFuc3BvcnRzOltdLGdsb2JhbENvbmZpZzp3
LHBvc3RQYXJhbXM6W10saXNEaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlz
Lmdsb2JhbENvbmZpZy5nZXQoIm9vIil9LHNlbmQ6ZnVuY3Rpb24oYSxiLGMsZCl7
dmFyIGU9W2FdLGw9dGhpcyxnPWN8fGZ1bmN0aW9uKCl7fTtsLmlzRGlzYWJsZWQo
KT9nLmNhbGwoZCk6ZnVuY3Rpb24gSShhKXtpZihhPHRoaXMudHJhbnNwb3J0cy5s
ZW5ndGgpdHJ5e3ZhciBjPQpuZXcgdGhpcy50cmFuc3BvcnRzW2FdKHtwb3N0UGFy
YW1zOnRoaXMucG9zdFBhcmFtcyxxdWVyeVN0cmluZ1BhcmFtczp0aGlzLnF1ZXJ5
U3RyaW5nUGFyYW1zfSk7YlsiYnJvd3Nlci1pbmZvIl09Yy5sb2dJbmZvKGJbImJy
b3dzZXItaW5mbyJdKTsoZnVuY3Rpb24gbmIoaCl7aD49ZS5sZW5ndGg/SS5jYWxs
KHRoaXMsYSsxKTpjLnJlcXVlc3QoZVtoXSxiLGZ1bmN0aW9uKGEsYixjKXthP2cu
Y2FsbChkLGIsYyk6Zi5hc3luYyhmdW5jdGlvbigpe25iLmNhbGwobCxoKzEpfSl9
LHRoaXMpfSkuY2FsbCh0aGlzLDApfWNhdGNoKG1iKXt4YShtYiwic2VuZCBieSAi
KyhjJiZjLmlkKSksSS5jYWxsKHRoaXMsYSsxKX19LmNhbGwodGhpcywwKX19KSxV
PXt9O2Yua2V5cz1mdW5jdGlvbihhKXt2YXIgYixjPVtdO2ZvcihiIGluIGEpYS5o
YXNPd25Qcm9wZXJ0eShiKSYmYy5wdXNoKGIpO3JldHVybiBjfTtmLm1hcD1mdW5j
dGlvbihhLGIpe3ZhciBjLGQ9W107Zm9yKGM9MDtjPGIubGVuZ3RoO2MrKylkLnB1
c2goYShiW2NdLApjKSk7cmV0dXJuIGR9O1Uuc3RyaW5naWZ5PWZ1bmN0aW9uKGEs
Yil7dmFyIGM9W10sZD1ifHx7fSxlPXt9LGw9Zi5rZXlzKGEpLmxlbmd0aCxnLGg7
aWYoZC5sYXN0T3JkZXJpbmchPT1QKWZvcihoPTE7aDw9Yi5sYXN0T3JkZXJpbmcu
bGVuZ3RoO2grKyllW2IubGFzdE9yZGVyaW5nW2gtMV1dPWwraDtpZihkLmZpcnN0
T3JkZXJpbmchPT1QKWZvcihoPTA7aDxiLmZpcnN0T3JkZXJpbmcubGVuZ3RoO2gr
KyllW2IuZmlyc3RPcmRlcmluZ1toXV09aDtmb3IoZyBpbiBhKWlmKGEuaGFzT3du
UHJvcGVydHkoZykpaWYoZD1hW2ddLGYuaXNBcnJheShkKSlmb3IoaD0wO2g8ZC5s
ZW5ndGg7aCsrKWMucHVzaCh7a2V5OmcsdmFsdWU6ZW5jb2RlVVJJQ29tcG9uZW50
KGcpKyJceDNkIitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGRbaF0pKX0pO2Vs
c2UgYy5wdXNoKHtrZXk6Zyx2YWx1ZTplbmNvZGVVUklDb21wb25lbnQoZykrIlx4
M2QiK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpfSk7CmMuc29ydChmdW5j
dGlvbihhLGIpe3ZhciBjPWVbYS5rZXldLGQ9ZVtiLmtleV07InVuZGVmaW5lZCI9
PT10eXBlb2YgYyYmKGM9bCk7InVuZGVmaW5lZCI9PT10eXBlb2YgZCYmKGQ9bCk7
cmV0dXJuIGMtZH0pO3JldHVybiBmLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS52
YWx1ZX0sYykuam9pbigiXHgyNiIpfTtmLmluQXJyYXk9ZnVuY3Rpb24oYSxiKXt2
YXIgYztmb3IoYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY109PWIpcmV0dXJuITA7
cmV0dXJuITF9O3ZhciBTPUEuaW5oZXJpdCh7cG9zdFBhcmFtczpbXSxpbmRleDow
LGxvZ0luZm86ZnVuY3Rpb24oYSl7dmFyIGI7aWYoYSlyZXR1cm4gYT0oYj1hLm1h
dGNoKC9edGk6XGQ6LykpP2EucmVwbGFjZShiWzBdLCIiKTphLCJ0aToiK3RoaXMu
aW5kZXgrIjoiK2F9LF9idWlsZFVybDpmdW5jdGlvbihhLGIpe3ZhciBjPVUuc3Ry
aW5naWZ5KGIsdGhpcy5xdWVyeVN0cmluZ1BhcmFtcyk7cmV0dXJuIGErKC0xPGEu
aW5kZXhPZigiPyIpPwoiXHgyNiI6Yz8iPyI6IiIpK2N9LF9zcGxpdFBhcmFtczpm
dW5jdGlvbihhKXt2YXIgYj17fSxjPXt9O2YuZm9yRWFjaEtleShhLGZ1bmN0aW9u
KGEsZSl7Zi5pbkFycmF5KHRoaXMucG9zdFBhcmFtcyxhKT9jW2FdPWU6YlthXT1l
fSx0aGlzKTtyZXR1cm57Z2V0OmIscG9zdDpjfX0sX3BhcnNlUmVzcDpmdW5jdGlv
bihhKXtyZXR1cm4gYX19KSxXPVMuaW5oZXJpdCh7aWQ6IlhIUiIsaW5kZXg6Nyxt
ZXRob2Q6IlBPU1QiLHdpdGhDcmVkZW50aWFsczohMCxyZXF1ZXN0OmZ1bmN0aW9u
KGEsYixjLGQpe3ZhciBlPXRoaXMsZjtpZigvW15hLXowLTkuOi1dLy50ZXN0KEUu
aG9zdCkmJmcub3BlcmEmJiJmdW5jdGlvbiI9PXR5cGVvZiBnLm9wZXJhLnZlcnNp
b24pe3ZhciBoPWcub3BlcmEudmVyc2lvbigpO2lmKCJzdHJpbmciPT10eXBlb2Yg
aCYmIjEyIj09aC5zcGxpdCgiLiIpWzBdKXJldHVybiBjLmNhbGwoZCwhMSl9aWYo
Zy5YTUxIdHRwUmVxdWVzdCl7dmFyIG49bmV3IFhNTEh0dHBSZXF1ZXN0OwppZigi
d2l0aENyZWRlbnRpYWxzImluIG4pe2I9dGhpcy5fc3BsaXRQYXJhbXMoYik7YT10
aGlzLl9idWlsZFVybChhLGIuZ2V0KTt0cnl7bi5vcGVuKHRoaXMubWV0aG9kLGEs
ITApfWNhdGNoKEkpe3JldHVybiBjLmNhbGwoZCwhMSl9bi53aXRoQ3JlZGVudGlh
bHM9dGhpcy53aXRoQ3JlZGVudGlhbHM7dGhpcy5fc2V0SGVhZGVycyhuKTtuLnNl
bmQodGhpcy5fcHJlcGFyZVBvc3RQYXJhbXMoYikpO24ub25yZWFkeXN0YXRlY2hh
bmdlPWZ1bmN0aW9uKCl7aWYoND09bi5yZWFkeVN0YXRlKXt0cnl7Zj1lLl9wYXJz
ZVJlc3Aobi5yZXNwb25zZVRleHQpfWNhdGNoKEkpe3JldHVybiBjLmNhbGwoZCwh
MSl9Yy5hcHBseShkLFsyMDA9PW4uc3RhdHVzXS5jb25jYXQoZikpfX07cmV0dXJu
fX1jLmNhbGwoZCwhMSl9LHNldE1ldGhvZDpmdW5jdGlvbihhKXt0aGlzLm1ldGhv
ZD1hfSxfcHJlcGFyZVBvc3RQYXJhbXM6ZnVuY3Rpb24oYSl7cmV0dXJuIFUuc3Ry
aW5naWZ5KGEucG9zdCl9LF9zZXRIZWFkZXJzOmZ1bmN0aW9uKGEpe2Euc2V0UmVx
dWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwKImFwcGxpY2F0aW9uL3gtd3d3LWZv
cm0tdXJsZW5jb2RlZCIpfX0pLHE9e307cS5pc0FuZHJvaWRXZWJWaWV3PXIoZnVu
Y3Rpb24oKXt2YXIgYT1uYXZpZ2F0b3IudXNlckFnZW50fHwiIjtyZXR1cm4gYS5t
YXRjaCgvQW5kcm9pZC4qVmVyc2lvblwvWzAtOV1bMC05Ll0qXHNDaHJvbWVcL1sw
LTldWzAtOS5dLyl8fGEubWF0Y2goL0FuZHJvaWQuKlZlcnNpb25cL1swLTldWzAt
OS5dKlxzKD86TW9iaWxlXHMpP1NhZmFyaVwvWzAtOV1bMC05Ll0qXHNDaHJvbWVc
L1swLTldWzAtOS5dKi8pfHxhLm1hdGNoKC87IHd2XCkuKkNocm9tZVwvWzAtOV1b
MC05Ll0qXHNNb2JpbGUvKX0sImlzQW5kcm9pZFdlYlZpZXciKTt2YXIgQmI9Uy5p
bmhlcml0KHtpZDoiYmVhY29uIixpbmRleDoxLHJlcXVlc3Q6ZnVuY3Rpb24oYSxi
LGMsZCl7ImZ1bmN0aW9uIj09PXR5cGVvZiBuYXZpZ2F0b3Iuc2VuZEJlYWNvbiYm
IXEuaXNBbmRyb2lkV2ViVmlldygpJiZuYXZpZ2F0b3Iub25MaW5lPyhiPXRoaXMu
X3NwbGl0UGFyYW1zKGIpLApiLmdldFsiZm9yY2UtdXJsZW5jb2RlZCJdPTEsYy5j
YWxsKGQsbmF2aWdhdG9yLnNlbmRCZWFjb24odGhpcy5fYnVpbGRVcmwoYSxiLmdl
dCksVS5zdHJpbmdpZnkoYi5wb3N0KSkpKTpjLmNhbGwoZCwhMSl9fSk7Zi5yYW5k
b209ZnVuY3Rpb24oYSxiKXsyPmFyZ3VtZW50cy5sZW5ndGgmJihiPWEsYT0wKTsx
PmFyZ3VtZW50cy5sZW5ndGgmJihiPTEwNzM3NDE4MjQpO3JldHVybiBNYXRoLmZs
b29yKE1hdGgucmFuZG9tKCkqKGItYSkpK2F9O3ZhciBUPVMuaW5oZXJpdCh7aWQ6
ImZvcm0iLGluZGV4OjIsZW5jdHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11
cmxlbmNvZGVkIixodG1sZmlsZU9ubHk6ITEsX2luaXRDb21wb25lbnQ6ZnVuY3Rp
b24oKXtULnN1cGVyY2xhc3MuX2luaXRDb21wb25lbnQuYXBwbHkodGhpcyxhcmd1
bWVudHMpOyJfaHRtbGZpbGUiaW4gVC5wcm90b3R5cGV8fChULnByb3RvdHlwZS5f
aHRtbGZpbGU9dGhpcy5fY3JlYXRlSHRtbGZpbGUoKSk7dGhpcy5fZG9jPQp0aGlz
Ll9odG1sZmlsZXx8KHRoaXMuaHRtbGZpbGVPbmx5P251bGw6aCl9LHJlcXVlc3Q6
ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy5fZG9jO2lmKCFlKXJldHVybiBj
LmNhbGwoZCwhMSk7Yj10aGlzLl9zcGxpdFBhcmFtcyhiKTt2YXIgbD0iaWZyIitm
LnJhbmRvbSgpO3ZhciBnPWUuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zy5zdHlsZS5w
b3NpdGlvbj0iYWJzb2x1dGUiO2cuc3R5bGUubGVmdD0iLTk5OTk5cHgiO2cuc3R5
bGUudG9wPSItOTk5OTlweCI7dmFyIGg9WydceDNjaWZyYW1lIG5hbWVceDNkIics
bCwnIlx4M2VceDNjL2lmcmFtZVx4M2UnLCdceDNjZm9ybSBhY3Rpb25ceDNkIics
dGhpcy5fYnVpbGRVcmwoYSxiLmdldCksJyIgbWV0aG9kXHgzZCJwb3N0IiB0YXJn
ZXRceDNkIicsbCwnIiBlbmN0eXBlXHgzZCInLHRoaXMuZW5jdHlwZSwnIlx4M2Un
XTtmLmZvckVhY2hLZXkoYi5wb3N0LGZ1bmN0aW9uKGEpe2YubWVyZ2VBcnJheXMo
aCxbJ1x4M2NpbnB1dCB0eXBlXHgzZCJoaWRkZW4iIGF1dG9jb21wbGV0ZVx4M2Qi
b2ZmIiBhdXRvY29ycmVjdFx4M2Qib2ZmIicsCicgYXV0b2NhcGl0YWxpemVceDNk
Im9mZiIgc3BlbGxjaGVja1x4M2QiZmFsc2UiIG5hbWVceDNkIicsYSwnIi9ceDNl
J10pfSk7Zi5tZXJnZUFycmF5cyhoLFsiXHgzYy9mb3JtXHgzZSJdKTtnLmlubmVy
SFRNTD1oLmpvaW4oIiIpO2UuYm9keS5hcHBlbmRDaGlsZChnKTt2YXIgaz1nLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJmb3JtIilbMF07Zi5mb3JFYWNoS2V5KGIucG9z
dCxmdW5jdGlvbihhLGIpe2tbYV0udmFsdWU9Yn0pO2suc3VibWl0KCk7Zi5zZXRU
aW1lb3V0KGZ1bmN0aW9uKCl7ZS5ib2R5LnJlbW92ZUNoaWxkKGcpfSwxRTQsIlRy
YW5zcG9ydEZvcm0ucmVxdWVzdC4yIik7cmV0dXJuIGMuY2FsbChkLCEwKX0sX2Ny
ZWF0ZUh0bWxmaWxlOmZ1bmN0aW9uKCl7dHJ5e2lmKGcuQWN0aXZlWE9iamVjdCl7
dmFyIGE9bmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIik7YS5vcGVuKCk7YS53
cml0ZSgiXHgzY2h0bWxceDNlXHgzY2JvZHlceDNlXHgzYy9ib2R5XHgzZVx4M2Mv
aHRtbFx4M2UiKTsKYS5jbG9zZSgpO3JldHVybiBhfX1jYXRjaChiKXt9cmV0dXJu
IG51bGx9fSksQ2I9VC5pbmhlcml0KHtpZDoiaHRtbGZpbGUiLGluZGV4OjMsaHRt
bGZpbGVPbmx5OiEwfSksWj1TLmluaGVyaXQoe2lkOiJpbWciLGluZGV4OjQscmVx
dWVzdDpmdW5jdGlvbihhLGIsYyxkKXthPXRoaXMuX2J1aWxkVXJsKGEsYik7dmFy
IGU9ITE7Yj1oLmNyZWF0ZUVsZW1lbnQoImltZyIpO2M9Y3x8ZnVuY3Rpb24oKXt9
O2Iub25sb2FkPXIoZnVuY3Rpb24oKXtlfHwoYy5jYWxsKGQsITApLGU9ITApfSwi
VHJhbnNwb3J0SW1hZ2UucmVxdWVzdCIpO2Iub25lcnJvcj1yKGZ1bmN0aW9uKCl7
ZXx8KGMuY2FsbChkLCExKSxlPSEwKX0sIlRyYW5zcG9ydEltYWdlLnJlcXVlc3Qi
KTtiLnNyYz1hO3RoaXMudGltZW91dCYmZi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7
ZXx8KGMuY2FsbChkLCExKSxlPSEwKX0sdGhpcy50aW1lb3V0KX19KSxpYT17c3Ry
aW5naWZ5OmZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYSl9
Y2F0Y2goYil7cmV0dXJuIm51bGwifX19OwpmLnRvSlNPTj1mdW5jdGlvbihhKXt2
YXIgYjtpZihhPT09UClyZXR1cm4iIjtpZihudWxsPT09YSlyZXR1cm4ibnVsbCI7
c3dpdGNoKGEuY29uc3RydWN0b3Ipe2Nhc2UgQm9vbGVhbjpyZXR1cm4gYS50b1N0
cmluZygpO2Nhc2UgTnVtYmVyOnJldHVybiBpc0Zpbml0ZShhKT9hLnRvU3RyaW5n
KCk6Im51bGwiO2Nhc2UgU3RyaW5nOnJldHVybiciJythLnJlcGxhY2UoL1xcL2cs
IlxcXFwiKS5yZXBsYWNlKC8iL2csJ1xcIicpLnJlcGxhY2UoL1xuL2csIlxcbiIp
LnJlcGxhY2UoL1xyL2csIlxcciIpKyciJztjYXNlIEFycmF5OnZhciBjPVtdO3Zh
ciBkPTA7Zm9yKGI9YS5sZW5ndGg7ZDxiO2QrKyljW2MubGVuZ3RoXT1mLnRvSlNP
TihhW2RdKTtyZXR1cm4iWyIrYy5qb2luKCIsIikrIl0iO2Nhc2UgT2JqZWN0OmM9
W107Zm9yKGQgaW4gYSlhLmhhc093blByb3BlcnR5KGQpJiZhW2RdIT09UCYmKGNb
Yy5sZW5ndGhdPWYudG9KU09OKGQpKyI6IitmLnRvSlNPTihhW2RdKSk7cmV0dXJu
InsiKwpjLmpvaW4oIiwiKSsifSI7ZGVmYXVsdDpyZXR1cm4gaWEuc3RyaW5naWZ5
KGEpfX07dmFyIFE9QS5pbmhlcml0KHtjb3VudGVySWQ6IiIsX2luaXRDb21wb25l
bnQ6ZnVuY3Rpb24oKXtRLnN1cGVyY2xhc3MuX2luaXRDb21wb25lbnQuYXBwbHko
dGhpcyxhcmd1bWVudHMpO3RoaXMuX2xzPW51bGw7dHJ5e3RoaXMuX2xzPWcubG9j
YWxTdG9yYWdlfWNhdGNoKGEpe319LHNldDpmdW5jdGlvbihhLGIpe2lmKHRoaXMu
aXNFbmFibGVkKCkpdHJ5eyFifHxiJiZmLmlzQXJyYXkoYikmJiFiLmxlbmd0aD90
aGlzLnJlbW92ZShhKTp0aGlzLl9scy5zZXRJdGVtKHRoaXMuX2dldExzS2V5KGEp
LGYudG9KU09OKGIpKX1jYXRjaChjKXt9fSxnZXQ6ZnVuY3Rpb24oYSl7aWYodGhp
cy5pc0VuYWJsZWQoKSl0cnl7cmV0dXJuIEpTT04ucGFyc2UodGhpcy5fbHMuZ2V0
SXRlbSh0aGlzLl9nZXRMc0tleShhKSkpfWNhdGNoKGIpe31yZXR1cm4gbnVsbH0s
cmVtb3ZlOmZ1bmN0aW9uKGEpe2lmKHRoaXMuaXNFbmFibGVkKCkpdHJ5e3RoaXMu
X2xzLnJlbW92ZUl0ZW0odGhpcy5fZ2V0THNLZXkoYSkpfWNhdGNoKGIpe319LApp
c0VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbHMmJmcuSlNPTiYmIm9i
amVjdCI9PXR5cGVvZiB0aGlzLl9scyYmIm9iamVjdCI9PXR5cGVvZiBnLkpTT059
LGdldFN0b3JhZ2VJZDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0KCJsc2lkIik7
YXx8KGE9TWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKm5ldyBEYXRlKSx0aGlzLnNl
dCgibHNpZCIsYSkpO3JldHVybiBhfSxjbGVhclN0b3JhZ2VJZDpmdW5jdGlvbigp
e3RoaXMucmVtb3ZlKCJsc2lkIil9LF9nZXRMc0tleTpmdW5jdGlvbihhKXtyZXR1
cm4iX3ltIit0aGlzLmNvdW50ZXJJZCsiXyIrYX19KSxHPUEuaW5oZXJpdCh7Y291
bnRlcklkOiIiLG9ubHlDdXJyZW50RG9tYWluOiExLHNraXBQcmVmaXg6ITEsX2lu
aXRDb21wb25lbnQ6ZnVuY3Rpb24oKXt2YXIgYTtHLnN1cGVyY2xhc3MuX2luaXRD
b21wb25lbnQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuX2RvbWFpbj1udWxs
O2lmKCF0aGlzLm9ubHlDdXJyZW50RG9tYWluKXt2YXIgYj0KRS5ob3N0LnNwbGl0
KCIuIik7Zm9yKGE9Mjs7KWlmKGE8PWIubGVuZ3RoKXtpZih0aGlzLl9kb21haW49
Ii4iK2Iuc2xpY2UoLWEpLmpvaW4oIi4iKSxhKyssdGhpcy5pc0VuYWJsZWQoKSli
cmVha31lbHNle3RoaXMuX2RvbWFpbj1udWxsO2JyZWFrfX19LGNyZWF0ZTpmdW5j
dGlvbihhLGIsYyl7YT1bdGhpcy5fcHJlcGFyZU5hbWUoYSkrIlx4M2QiK2VuY29k
ZVVSSUNvbXBvbmVudChiKV07YyYmKGI9bmV3IERhdGUsYi5zZXRUaW1lKGIuZ2V0
VGltZSgpKzZFNCpjKSxhLnB1c2goImV4cGlyZXNceDNkIitiLnRvR01UU3RyaW5n
KCkpKTt0aGlzLl9kb21haW4mJmEucHVzaCgiZG9tYWluXHgzZCIrdGhpcy5fZG9t
YWluKTthLnB1c2goInBhdGhceDNkLyIpO3RyeXtoLmNvb2tpZT1hLmpvaW4oIjsi
KX1jYXRjaChkKXt9fSxyZWFkOmZ1bmN0aW9uKGEpe3RyeXt2YXIgYj1oLmNvb2tp
ZX1jYXRjaChjKXt9cmV0dXJuIGImJmIubWF0Y2gobmV3IFJlZ0V4cCgiKD86Xnw7
XFxzKikiK3RoaXMuX3ByZXBhcmVOYW1lKGEpKwoiXHgzZChbXjtdKikiKSk/ZGVj
b2RlVVJJQ29tcG9uZW50KFJlZ0V4cC4kMSk6bnVsbH0sZXJhc2U6ZnVuY3Rpb24o
YSl7dGhpcy5jcmVhdGUoYSwiIiwtMSl9LGlzRW5hYmxlZDpmdW5jdGlvbigpe3Ro
aXMuY3JlYXRlKCJtZXRyaWthX2VuYWJsZWQiLCIxIiw2MCk7dmFyIGE9ISF0aGlz
LnJlYWQoIm1ldHJpa2FfZW5hYmxlZCIpO3RoaXMuZXJhc2UoIm1ldHJpa2FfZW5h
YmxlZCIpO3JldHVybiBhfSxfcHJlcGFyZU5hbWU6ZnVuY3Rpb24oYSl7cmV0dXJu
KHRoaXMuc2tpcFByZWZpeD8iIjoiX3ltXyIpK2ErKHRoaXMuY291bnRlcklkPyJf
Iit0aGlzLmNvdW50ZXJJZDoiIil9fSk7Ry5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJu
KG5ldyBHKHtvbmx5Q3VycmVudERvbWFpbjohMH0pKS5yZWFkKGEpfTtHLnNldD1m
dW5jdGlvbihhLGIsYyl7cmV0dXJuKG5ldyBHKHtvbmx5Q3VycmVudERvbWFpbjoh
MH0pKS5jcmVhdGUoYSxiLGMpfTtHLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVy
bihuZXcgRyh7b25seUN1cnJlbnREb21haW46ITB9KSkuaXNFbmFibGVkKCl9Owp2
YXIgSD17Z2V0U2Vjb25kczpmdW5jdGlvbigpe3JldHVybiBNYXRoLnJvdW5kKCtu
ZXcgRGF0ZS8xRTMpfX07cS5pc1NhZmFyaT1mdW5jdGlvbigpe3RyeXtyZXR1cm4g
bmF2aWdhdG9yLnZlbmRvciYmLTE8bmF2aWdhdG9yLnZlbmRvci5pbmRleE9mKCJB
cHBsZSIpJiZuYXZpZ2F0b3IudXNlckFnZW50JiYhbmF2aWdhdG9yLnVzZXJBZ2Vu
dC5tYXRjaCgiQ3JpT1MiKX1jYXRjaChhKXt9cmV0dXJuITF9O3ZhciBPPW9hLmlu
aGVyaXQoe3Byb3RvY29sOiIiLGhvc3Q6Sy5ob3N0LHF1ZXJ5U3RyaW5nUGFyYW1z
OntmaXJzdE9yZGVyaW5nOlsid21vZGUiLCJjYWxsYmFjayIsImNudC1jbGFzcyJd
LGxhc3RPcmRlcmluZzpbImJyb3dzZXItaW5mbyJdfSxyZXNvdXJjZToiIixjb3Vu
dGVySWQ6IiIsY291bnRlclR5cGU6MCxyZXRyeTohMSx0cmFuc3BvcnRzOltCYixX
LFosQ2JdLF9pbml0Q29tcG9uZW50OmZ1bmN0aW9uKCl7Ty5zdXBlcmNsYXNzLl9p
bml0Q29tcG9uZW50LmFwcGx5KHRoaXMsCmFyZ3VtZW50cyk7dGhpcy5yZXRyeSYm
KHRoaXMuX3N0b3JhZ2U9bmV3IFEpfSxzZW5kOmZ1bmN0aW9uKGEsYixjLGQpe3Zh
ciBlPXRoaXMuX3JlZ2lzdGVyUmVxdWVzdChhLGIpO3RoaXMuX3NlbmRTYXZlZFJl
cXVlc3QoZSxhLGIsYyxkKX0sX3NlbmRTYXZlZFJlcXVlc3Q6ZnVuY3Rpb24oYSxi
LGMsZCxlKXt2YXIgZz10aGlzLmdsb2JhbENvbmZpZy5nZXQoImZpcnN0UmVxU3Rh
dHVzIik7aWYoInByb2Nlc3MiPT1nKXRoaXMuZ2xvYmFsQ29uZmlnLnNldCgiZmly
c3RSZXFDYWxsYmFja3MiLGYubWVyZ2VBcnJheXModGhpcy5nbG9iYWxDb25maWcu
Z2V0KCJmaXJzdFJlcUNhbGxiYWNrcyIpfHxbXSxbW3RoaXMsYXJndW1lbnRzXV0p
KTtlbHNle2d8fHRoaXMuZ2xvYmFsQ29uZmlnLnNldCgiZmlyc3RSZXFTdGF0dXMi
LCJwcm9jZXNzIik7dGhpcy5jb3VudGVyVHlwZSYmKGJbImNudC1jbGFzcyJdPXRo
aXMuY291bnRlclR5cGUpO2Muc3Q9SC5nZXRTZWNvbmRzKCk7Yy51PU8uX3VzZXJJ
RDsKZz1bdGhpcy5wcm90b2NvbCwiLy8iLHRoaXMuaG9zdCwiLyIsdGhpcy5yZXNv
dXJjZSwiLyIsdGhpcy5jb3VudGVySWRdLmpvaW4oIiIpO3ZhciBoPVtdO2MmJihm
LmZvckVhY2hLZXkoYyxmdW5jdGlvbihhLGIpeyJ0IiE9YSYmZi5tZXJnZUFycmF5
cyhoLFthLGJdKX0pLGMudCYmZi5tZXJnZUFycmF5cyhoLFsidCIsYy50XSkpO2gu
bGVuZ3RoJiYoYlsiYnJvd3Nlci1pbmZvIl09aC5qb2luKCI6IikpO3JldHVybiBP
LnN1cGVyY2xhc3Muc2VuZC5jYWxsKHRoaXMsZyxiLGZ1bmN0aW9uKCl7dmFyIGI7
dGhpcy5nbG9iYWxDb25maWcuc2V0KCJmaXJzdFJlcVN0YXR1cyIsImNvbXBsZXRl
Iik7dGhpcy5fdW5yZWdpc3RlclJlcXVlc3QoYSk7dmFyIGM9dGhpcy5nbG9iYWxD
b25maWcuZ2V0KCJmaXJzdFJlcUNhbGxiYWNrcyIpO3RoaXMuZ2xvYmFsQ29uZmln
LnNldCgiZmlyc3RSZXFDYWxsYmFja3MiLG51bGwpO2lmKGMpZm9yKGI9MDtiPGMu
bGVuZ3RoO2IrKyljW2JdWzBdLl9zZW5kU2F2ZWRSZXF1ZXN0LmFwcGx5KGNbYl1b
MF0sCmNbYl1bMV0pO2QmJmQuYXBwbHkoZSxhcmd1bWVudHMpfSx0aGlzKX19LF9p
c1JldHJ5RW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJldHJ5JiZ0aGlz
Ll9zdG9yYWdlJiZ0aGlzLl9zdG9yYWdlLmlzRW5hYmxlZCgpfSxfcmVnaXN0ZXJS
ZXF1ZXN0OmZ1bmN0aW9uKGEsYil7dmFyIGM7aWYodGhpcy5faXNSZXRyeUVuYWJs
ZWQoKSl7Yi5ycW5sPWIucnFubHx8MDtiLnJxbmwrKzt2YXIgZD10aGlzLl9zdG9y
YWdlLmdldCgicmV0cnlSZXFzIil8fHt9O2ZvcihjPTE7ZFtjXTspYysrO2RbY109
e3Byb3RvY29sOnRoaXMucHJvdG9jb2wsaG9zdDp0aGlzLmhvc3QscmVzb3VyY2U6
dGhpcy5yZXNvdXJjZSxjb3VudGVySWQ6dGhpcy5jb3VudGVySWQsY291bnRlclR5
cGU6dGhpcy5jb3VudGVyVHlwZSxwb3N0UGFyYW1zOnRoaXMucG9zdFBhcmFtcyxw
YXJhbXM6YSxicm93c2VySW5mbzpiLGdoaWQ6dGhpcy5nbG9iYWxDb25maWcuZ2V0
KCJfZ2xvYmFsTWV0cmlrYUhpdElkIiksdGltZTorbmV3IERhdGV9Owp0aGlzLl9z
dG9yYWdlLnNldCgicmV0cnlSZXFzIixkKTtyZXR1cm4gY319LF91bnJlZ2lzdGVy
UmVxdWVzdDpmdW5jdGlvbihhKXtpZihhJiZ0aGlzLl9pc1JldHJ5RW5hYmxlZCgp
KXt2YXIgYj10aGlzLl9zdG9yYWdlLmdldCgicmV0cnlSZXFzIil8fHt9O2JbYV0m
JihkZWxldGUgYlthXSx0aGlzLl9zdG9yYWdlLnNldCgicmV0cnlSZXFzIixiKSl9
fSxfZ2V0VmVyc2lvbjpyKGZ1bmN0aW9uKCl7cmV0dXJuIFh9LCIiLCEwKX0pO08u
X3N0b3JhZ2U9bmV3IFE7Ty5pbml0Q29va2llPWZ1bmN0aW9uKCl7dmFyIGE9bmV3
IEcsYj1hLnJlYWQoInVpZCIpO2J8fChiPUguZ2V0U2Vjb25kcygpLGI9YisiIitm
LnJhbmRvbSgpLGEuY3JlYXRlKCJ1aWQiLGIsMTAzNjgwMCkpO08uX3VzZXJJRD1i
fTtPLnJldHJhbnNtaXQ9ZnVuY3Rpb24oYSl7dmFyIGI9Ty5fc3RvcmFnZSxjPWIu
Z2V0KCJyZXRyeVJlcXMiKXx8e30sZDtiLnJlbW92ZSgicmV0cnlSZXFzIik7Zi5m
b3JFYWNoS2V5KGMsZnVuY3Rpb24oYiwKYyl7YS5nZXQoImZpcnN0UmVxU3RhdHVz
Iil8fGEuc2V0KCJmaXJzdFJlcVN0YXR1cyIsImNvbXBsZXRlIik7Yy5naGlkJiZj
LmdoaWQhPWEuZ2V0KCJfZ2xvYmFsTWV0cmlrYUhpdElkIikmJmMudGltZSYmYy50
aW1lKzg2NEU1PituZXcgRGF0ZSYmMj49Yy5icm93c2VySW5mby5ycW5sJiYoZD1u
ZXcgTyh7cHJvdG9jb2w6Yy5wcm90b2NvbCxob3N0OmMuaG9zdCxyZXNvdXJjZTpj
LnJlc291cmNlLGNvdW50ZXJJZDpjLmNvdW50ZXJJZCxjb3VudGVyVHlwZTpjLmNv
dW50ZXJUeXBlLHBvc3RQYXJhbXM6Yy5wb3N0UGFyYW1zfHxbXSxyZXRyeTohMH0p
LGQuc2VuZChjLnBhcmFtcyxjLmJyb3dzZXJJbmZvKSl9KX07Zi5mbGV0Y2hlcj1m
dW5jdGlvbihhKXtmb3IodmFyIGI9YS5sZW5ndGgsYz0wLGQ9MjU1LGU9MjU1LGYs
ZyxoO2I7KXtmPTIxPGI/MjE6YjtiLT1mO2RvIGc9InN0cmluZyI9PXR5cGVvZiBh
P2EuY2hhckNvZGVBdChjKTphW2NdLGMrKywyNTU8ZyYmKGg9Zz4+OCxnJj0yNTUs
CmdePWgpLGQrPWcsZSs9ZDt3aGlsZSgtLWYpO2Q9KGQmMjU1KSsoZD4+OCk7ZT0o
ZSYyNTUpKyhlPj44KX1hPShkJjI1NSkrKGQ+PjgpPDw4fChlJjI1NSkrKGU+Pjgp
O3JldHVybiA2NTUzNT09YT8wOmF9O3ZhciBOPXthYmM6IkFCQ0RFRkdISUpLTE1O
T1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
Iix0YWlsOiIrL1x4M2QiLHRhaWxTYWZlOiIqLV8iLGVuY29kZTpmdW5jdGlvbihh
LGIpe3ZhciBjPShOLmFiYysoYj9OLnRhaWxTYWZlOk4udGFpbCkpLnNwbGl0KCIi
KSxkPWEubGVuZ3RoLGU9W10sZz1kLWQlMyxoO2ZvcihoPTA7aDxnO2grPTMpe3Zh
ciBuPShhW2hdPDwxNikrKGFbaCsxXTw8OCkrYVtoKzJdO2YubWVyZ2VBcnJheXMo
ZSxbY1tuPj4xOCY2M10sY1tuPj4xMiY2M10sY1tuPj42JjYzXSxjW24mNjNdXSl9
c3dpdGNoKGQtZyl7Y2FzZSAxOm49YVtnXTw8NDtmLm1lcmdlQXJyYXlzKGUsW2Nb
bj4+NiY2M10sY1tuJjYzXSxjWzY0XSwKY1s2NF1dKTticmVhaztjYXNlIDI6bj0o
YVtnXTw8MTApKyhhW2crMV08PDIpLGYubWVyZ2VBcnJheXMoZSxbY1tuPj4xMiY2
M10sY1tuPj42JjYzXSxjW24mNjNdLGNbNjRdXSl9cmV0dXJuIGUuam9pbigiIil9
fTtmLmFycmF5RXZlcnk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2ZvcihkPTA7ZDxh
Lmxlbmd0aDtkKyspaWYoIWIuY2FsbChjLGFbZF0sZCxhKSlyZXR1cm4hMTtyZXR1
cm4hMH07Zi5pczRCeXRlcz1mdW5jdGlvbihhKXtyZXR1cm4hZi5hcnJheUV2ZXJ5
KChlbmNvZGVVUklDb21wb25lbnQoYSkubWF0Y2goLyglW0EtRixcZF17Mn0pKy9n
KXx8W10pLmpvaW4oIiIpLnNwbGl0KCIlIiksZnVuY3Rpb24oYSl7cmV0dXJuIDI0
MD5wYXJzZUludChhLDE2KX0pfTtmLnRyaW09ZnVuY3Rpb24oYSxiKXthPVN0cmlu
ZyhhKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIik7YiYmYS5sZW5ndGg+YiYmKGE9
YS5zdWJzdHIoMCxiKSk7cmV0dXJuIGF9O2YuaXNGdW5jdGlvbj1mdW5jdGlvbihh
KXtyZXR1cm4iZnVuY3Rpb24iPT09CnR5cGVvZiBhfTtmLmlzTnVtYmVyPWZ1bmN0
aW9uKGEpe3JldHVybiBpc0Zpbml0ZShhKSYmIWlzTmFOKGEpJiYiW29iamVjdCBO
dW1iZXJdIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpfTtmLmlz
U3RyaW5nPWZ1bmN0aW9uKGEpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT1PYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSl9O2YuYXJyYXlJbmRleE9mPWZ1
bmN0aW9uKGEsYil7dmFyIGM7Zm9yKGM9MDtjPGEubGVuZ3RoO2MrKylpZihhW2Nd
PT09YilyZXR1cm4gYztyZXR1cm4tMX07Zi53YXJuaW5nPWZ1bmN0aW9uKCl7Zy5j
b25zb2xlJiYiZnVuY3Rpb24iPT09dHlwZW9mIGcuY29uc29sZS53YXJuJiZjb25z
b2xlLndhcm4uYXBwbHkoY29uc29sZSxhcmd1bWVudHMpfTtmLmlzT2JqZWN0PWZ1
bmN0aW9uKGEpe3RyeXtyZXR1cm4gYSYmbnVsbCE9PWEmJiJbb2JqZWN0IE9iamVj
dF0iPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSl9Y2F0Y2goYil7
cmV0dXJuITF9fTsKZi5fcGxheWVyUmVnZXhwPS9eLitcLm10cHJveHlcLnlhbmRl
eFwubmV0JC87Zi5pc01ldHJpa2FQbGF5ZXI9ZnVuY3Rpb24oKXtyZXR1cm4iTWV0
cmlrYVBsYXllciI9PWcubmFtZXx8dGhpcy5fcGxheWVyUmVnZXhwLnRlc3QoZy5s
b2NhdGlvbi5ob3N0bmFtZSl9O3ZhciBtPXtnZXREb2N1bWVudENoYXJzZXQ6ZnVu
Y3Rpb24oKXtyZXR1cm4oIiIrKGguY2hhcmFjdGVyU2V0fHxoLmNoYXJzZXR8fCIi
KSkudG9Mb3dlckNhc2UoKX0sZ2V0Um9vdEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIg
YT1oLmRvY3VtZW50RWxlbWVudDtyZXR1cm4iQ1NTMUNvbXBhdCI9PWguY29tcGF0
TW9kZT9hOmguYm9keXx8YX0sZ2V0Vmlld3BvcnRTaXplOmZ1bmN0aW9uKCl7dmFy
IGE9bS5nZXRSb290RWxlbWVudCgpO3JldHVyblthLmNsaWVudFdpZHRofHxnLmlu
bmVyV2lkdGgsYS5jbGllbnRIZWlnaHR8fGcuaW5uZXJIZWlnaHRdfSxnZXREb2N1
bWVudFRpdGxlOmZ1bmN0aW9uKCl7dmFyIGE9aC50aXRsZTsKInN0cmluZyIhPXR5
cGVvZiBhJiYoYT0oYT1oLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0aXRsZSIpKSYm
YS5sZW5ndGg/YVswXS5pbm5lckhUTUw6IiIpO3JldHVybiBhfX07cS5fc2lsdmVy
bGlnaHRWZXJzaW9uPSIiO3EuZ2V0U2lsdmVybGlnaHRWZXJzaW9uPWZ1bmN0aW9u
KCl7aWYoIXEuX3NpbHZlcmxpZ2h0VmVyc2lvbilpZihnLkFjdGl2ZVhPYmplY3Qp
dHJ5e3ZhciBhPW5ldyBBY3RpdmVYT2JqZWN0KCJBZ0NvbnRyb2wuQWdDb250cm9s
Iik7dmFyIGI9ZnVuY3Rpb24oYSxiLGQsZil7Zm9yKDtjKGEsYik7KWJbZF0rPWY7
YltkXS09Zn07dmFyIGM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5pc1ZlcnNpb25T
dXBwb3J0ZWQoYlswXSsiLiIrYlsxXSsiLiIrYlsyXSsiLiIrYlszXSl9O3ZhciBk
PVsxLDAsMCwwXTtiKGEsZCwwLDEpO2IoYSxkLDEsMSk7YihhLGQsMiwxRTQpO2Io
YSxkLDIsMUUzKTtiKGEsZCwyLDEwMCk7YihhLGQsMiwxMCk7YihhLGQsMiwxKTti
KGEsZCwzLDEpOwpxLl9zaWx2ZXJsaWdodFZlcnNpb249ZC5qb2luKCIuIil9Y2F0
Y2goZSl7fWVsc2UgaWYoYj1nLm5hdmlnYXRvcixiPWIucGx1Z2lucyYmYi5wbHVn
aW5zWyJTaWx2ZXJsaWdodCBQbHVnLUluIl0pcS5fc2lsdmVybGlnaHRWZXJzaW9u
PWIuZGVzY3JpcHRpb247cmV0dXJuIHEuX3NpbHZlcmxpZ2h0VmVyc2lvbnx8IiJ9
O3EuX2ZsYXNoVmVyc2lvbj0wO3EuZ2V0Rmxhc2hWZXJzaW9uPWZ1bmN0aW9uKCl7
aWYoIXEuX2ZsYXNoVmVyc2lvbil7dmFyIGE9Zy5uYXZpZ2F0b3I7aWYoInVuZGVm
aW5lZCIhPXR5cGVvZiBhLnBsdWdpbnMmJiJvYmplY3QiPT10eXBlb2YgYS5wbHVn
aW5zWyJTaG9ja3dhdmUgRmxhc2giXSl7dmFyIGI9YS5wbHVnaW5zWyJTaG9ja3dh
dmUgRmxhc2giXTt2YXIgYz1iLnZlcnNpb247aWYoKGI9Yi5kZXNjcmlwdGlvbil8
fGMpaWYoYT1hLm1pbWVUeXBlcywidW5kZWZpbmVkIj09dHlwZW9mIGF8fCFhWyJh
cHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCJdfHwKYVsiYXBwbGljYXRpb24v
eC1zaG9ja3dhdmUtZmxhc2giXS5lbmFibGVkUGx1Z2luKWM/cS5fZmxhc2hWZXJz
aW9uPWM6YiYmKHEuX2ZsYXNoVmVyc2lvbj1iLnJlcGxhY2UoLyhbYS16QS1aXXxc
cykrLywiIikucmVwbGFjZSgvKFxzK3J8XHMrYlswLTldKykvLCIuIikpfWVsc2Ug
aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBnLkFjdGl2ZVhPYmplY3QpdHJ5e2lmKGM9
bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNo
IiksYj1jLkdldFZhcmlhYmxlKCIkdmVyc2lvbiIpKXEuX2ZsYXNoVmVyc2lvbj1i
LnNwbGl0KCIgIilbMV0ucmVwbGFjZSgvLC9nLCIuIikucmVwbGFjZSgvW14uXGRd
L2csIiIpfWNhdGNoKGQpe319cmV0dXJuIHEuX2ZsYXNoVmVyc2lvbn07cS5nZXRM
YW5ndWFnZT1mdW5jdGlvbigpe3ZhciBhPShnLm5hdmlnYXRvcj9uYXZpZ2F0b3Iu
bGFuZ3VhZ2V8fG5hdmlnYXRvci51c2VyTGFuZ3VhZ2V8fG5hdmlnYXRvci5icm93
c2VyTGFuZ3VhZ2V8fApuYXZpZ2F0b3Iuc3lzdGVtTGFuZ3VhZ2U6IiIpLnRvTG93
ZXJDYXNlKCk7cmV0dXJuIGYuaXNTdHJpbmcoYSk/YToiIn07cS5nZXRKYXZhRW5h
YmxlZD1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmF2aWdhdG9yLmphdmFFbmFibGVk
KCl9Y2F0Y2goYSl7cmV0dXJuITF9fTtmLmZudjMyYT1mdW5jdGlvbihhKXt2YXIg
Yj0yMTY2MTM2MjYxLGM7dmFyIGQ9MDtmb3IoYz1hLmxlbmd0aDtkPGM7KytkKWJe
PWEuY2hhckNvZGVBdChkKSxiKz0oYjw8MSkrKGI8PDQpKyhiPDw3KSsoYjw8OCkr
KGI8PDI0KTtyZXR1cm4gYj4+PjB9O3EuZ2V0RmluZ2VyUHJpbnQ9ZnVuY3Rpb24o
KXt2YXIgYT1bXSxiO2lmKG5hdmlnYXRvci5wbHVnaW5zJiZuYXZpZ2F0b3IucGx1
Z2lucy5sZW5ndGgpZm9yKGI9MDtiPG5hdmlnYXRvci5wbHVnaW5zLmxlbmd0aDti
Kyspe3ZhciBjPW5hdmlnYXRvci5wbHVnaW5zW2JdO2YubWVyZ2VBcnJheXMoYSxb
Yy5uYW1lLGMudmVyc2lvbixjLmRlc2NyaXB0aW9uLGMuZmlsZW5hbWVdKX1pZihu
YXZpZ2F0b3IubWltZVR5cGVzJiYKbmF2aWdhdG9yLm1pbWVUeXBlcy5sZW5ndGgp
Zm9yKGI9MDtiPG5hdmlnYXRvci5taW1lVHlwZXMubGVuZ3RoO2IrKyljPW5hdmln
YXRvci5taW1lVHlwZXNbYl0sZi5tZXJnZUFycmF5cyhhLFtjLnR5cGUsYy5kZXNj
cmlwdGlvbixjLnN1ZmZpeGVzXSk7cmV0dXJuIGYuZm52MzJhKGEuam9pbigiOyIp
KSsiMDEifTtxLmdldFBsYXRmb3JtPXIoZnVuY3Rpb24oKXtyZXR1cm4iIituYXZp
Z2F0b3IucGxhdGZvcm19LCIiLCEwKTtxLmdldE5vdGlmaWNhdGlvblBlcm1pc3Np
b249ZnVuY3Rpb24oKXt0cnl7dmFyIGE9Tm90aWZpY2F0aW9uLnBlcm1pc3Npb259
Y2F0Y2goYil7fXN3aXRjaChhKXtjYXNlICJkZW5pZWQiOnJldHVybiAxO2Nhc2Ug
ImdyYW50ZWQiOnJldHVybiAyfX07cS5pc0lmcmFtZT1mdW5jdGlvbigpe3RyeXty
ZXR1cm4gZy50b3AhPWcuc2VsZn1jYXRjaChhKXtyZXR1cm4hMX19O3EuX25NYXA9
e290aGVyOiIwIixub25lOiIxIix1bmtub3duOiIyIix3aWZpOiIzIixldGhlcm5l
dDoiNCIsCmJsdWV0b290aDoiNSIsY2VsbHVsYXI6IjYiLHdpbWF4OiI3IixtaXhl
ZDoiOCJ9O3EubmV0VHlwZT1mdW5jdGlvbigpe3ZhciBhPShuYXZpZ2F0b3IuY29u
bmVjdGlvbnx8e3R5cGU6IiJ9KS50eXBlO3JldHVybiBxLl9uTWFwW2FdfHxhfTtt
LnJlbW92ZU5vZGU9ZnVuY3Rpb24oYSl7dmFyIGI9YSYmYS5wYXJlbnROb2RlO2Im
JmIucmVtb3ZlQ2hpbGQoYSl9O2sucmVhZHk9ZnVuY3Rpb24oYSl7dmFyIGI9aC5y
ZWFkeVN0YXRlO2lmKCJpbnRlcmFjdGl2ZSI9PT1ifHwiY29tcGxldGUiPT09Yiln
LnNldFRpbWVvdXQocihhLCJldnQ6OnJlYWR5Iix2b2lkIDApLDApO2Vsc2V7dmFy
IGM9ZnVuY3Rpb24oKXtrLnVuKGgsIkRPTUNvbnRlbnRMb2FkZWQiLGMpO2sudW4o
ZywibG9hZCIsYyk7YSgpfTtrLm9uKGgsIkRPTUNvbnRlbnRMb2FkZWQiLGMpO2su
b24oZywibG9hZCIsYyl9fTt2YXIgY2I9e3VybDpLLnByb3RvY29sKyIvLyIrSy5o
b3N0KyIvbWV0cmlrYS8iLF92YWx1ZTpudWxsLAppbml0OmZ1bmN0aW9uKGEpe3Zh
ciBiPXRoaXMuX2dldExzKCkucmVhZCgiaXNhZCIpO3RoaXMuZ2xvYmFsQ29uZmln
PWF8fHc7Yj90aGlzLl9zZXQoYik6dGhpcy5fZ2V0UmVxU3RhdHVzKCl8fHRoaXMu
X3NlbmQoKX0sZ2V0VmFsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxf
c2V0OmZ1bmN0aW9uKGEpe3RoaXMuX3ZhbHVlPSIxIj09YXx8IjIiPT1hP2E6bnVs
bH0sX3NlbmQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuX3NldFJlcVN0YXR1
cygicHJvY2VzcyIpO2sucmVhZHkoZnVuY3Rpb24oKXt2YXIgYj1oLmNyZWF0ZUVs
ZW1lbnQoImltZyIpO2Iub25sb2FkPWZ1bmN0aW9uKCl7YS5fc2F2ZVJlcSghMSk7
bS5yZW1vdmVOb2RlKHRoaXMpfTtiLm9uZXJyb3I9ZnVuY3Rpb24oKXthLl9zYXZl
UmVxKCEwKTttLnJlbW92ZU5vZGUodGhpcyl9O2Iuc3JjPWEudXJsK1N0cmluZy5m
cm9tQ2hhckNvZGUoOTcsMTAwLDExOCwxMDEsMTE0LDExNiw0NiwxMDMsMTA1LDEw
Mik7CnEuaXNTYWZhcmkoKSYmKGIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixi
LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsYi5zdHlsZS53aWR0aD0iMHB4Iixi
LnN0eWxlLmhlaWdodD0iMHB4IixtLmdldFJvb3RFbGVtZW50KCkuYXBwZW5kQ2hp
bGQoYikpfSl9LF9zYXZlUmVxOmZ1bmN0aW9uKGEpe3RoaXMuX3ZhbHVlPWE9YT8i
MSI6IjIiO3RoaXMuX3NldFJlcVN0YXR1cygiY29tcGxldGUiKTt0aGlzLl9nZXRM
cygpLmNyZWF0ZSgiaXNhZCIsYSwxMjAwKX0sX3NldFJlcVN0YXR1czpmdW5jdGlv
bihhKXt0cnl7dGhpcy5nbG9iYWxDb25maWcuc2V0KCJhZFN0YXR1cyIsYSl9Y2F0
Y2goYil7fX0sX2dldFJlcVN0YXR1czpmdW5jdGlvbigpe3RyeXtyZXR1cm4gdGhp
cy5nbG9iYWxDb25maWcuZ2V0KCJhZFN0YXR1cyIpfWNhdGNoKGEpe3JldHVybiJj
b21wbGV0ZSJ9fSxfZ2V0THM6ZnVuY3Rpb24oKXt0aGlzLl9sc3x8KHRoaXMuX2xz
PW5ldyBHKTtyZXR1cm4gdGhpcy5fbHN9fSwKY2E9e2VuY29kZTpmdW5jdGlvbihh
KXt2YXIgYj1bXSxjO3ZhciBkPTA7Zm9yKGM9YS5sZW5ndGg7ZDxjO2QrKyl7dmFy
IGU9YS5jaGFyQ29kZUF0KGQpOzEyOD5lP2IucHVzaChlKTooMTI3PGUmJjIwNDg+
ZT9iLnB1c2goZT4+NnwxOTIpOihiLnB1c2goZT4+MTJ8MjI0KSxiLnB1c2goZT4+
NiY2M3wxMjgpKSxiLnB1c2goZSY2M3wxMjgpKX1yZXR1cm4gYn0sZGVjb2RlOmZ1
bmN0aW9uKGEpe2Zvcih2YXIgYj0iIixjPTAsZCxlLGY7YzxhLmxlbmd0aDspZD1h
LmNoYXJDb2RlQXQoYyksMTI4PmQ/KGIrPVN0cmluZy5mcm9tQ2hhckNvZGUoZCks
YysrKToxOTE8ZCYmMjI0PmQ/KGU9YS5jaGFyQ29kZUF0KGMrMSksYis9U3RyaW5n
LmZyb21DaGFyQ29kZSgoZCYzMSk8PDZ8ZSY2MyksYys9Mik6KGU9YS5jaGFyQ29k
ZUF0KGMrMSksZj1hLmNoYXJDb2RlQXQoYysyKSxiKz1TdHJpbmcuZnJvbUNoYXJD
b2RlKChkJjE1KTw8MTJ8KGUmNjMpPDw2fGYmNjMpLGMrPTMpO3JldHVybiBifX07
Ck4uZGVjb2RlPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPU4uYWJjKyhiP04udGFp
bFNhZmU6Ti50YWlsKSxkPTAsZT0iIixmLGcsaCxrLG07YS5sZW5ndGglNDspYSs9
Ilx4M2QiO2Rve2Y9Yy5pbmRleE9mKGEuY2hhckF0KGQrKykpO2c9Yy5pbmRleE9m
KGEuY2hhckF0KGQrKykpO2s9Yy5pbmRleE9mKGEuY2hhckF0KGQrKykpO209Yy5p
bmRleE9mKGEuY2hhckF0KGQrKykpO2lmKDA+Znx8MD5nfHwwPmt8fDA+bSlyZXR1
cm4gbnVsbDtoPWY8PDE4fGc8PDEyfGs8PDZ8bTtmPWg+PjE2JjI1NTtnPWg+Pjgm
MjU1O2gmPTI1NTtlPTY0PT1rP2UrU3RyaW5nLmZyb21DaGFyQ29kZShmKTo2ND09
bT9lK1N0cmluZy5mcm9tQ2hhckNvZGUoZixnKTplK1N0cmluZy5mcm9tQ2hhckNv
ZGUoZixnLGgpfXdoaWxlKGQ8YS5sZW5ndGgpO3JldHVybiBlfTtpYS5wYXJzZT1m
dW5jdGlvbihhKXt0cnl7cmV0dXJuIEpTT04ucGFyc2UoYSl9Y2F0Y2goYil7cmV0
dXJuIG51bGx9fTt2YXIgZGE9Ty5pbmhlcml0KHtoaXRJZDowLAp0cmFja0hhc2g6
ITEsdHJpbVBhcmFtczohMSx3ZWJ2aXNvcjohMSxjb3VudGVyOm51bGwsY291bnRl
ck51bTowLHJlc291cmNlOiJ3YXRjaCIscmV0cnk6ITAscG9zdFBhcmFtczpbInNp
dGUtaW5mbyJdLGNvdW50ZXJzTm9UaXRsZToiMjI4MzYyNzEgMTE0MzA1MCAyOTYy
Njg3MCA5OTI4MTA1IDI2MTI4MzYyIDI5ODUwNzY5Ii5zcGxpdCgiICIpLGZha2U6
ITEsc2VuZFRpdGxlOiEwLF9pbml0Q29tcG9uZW50OmZ1bmN0aW9uKCl7ZGEuc3Vw
ZXJjbGFzcy5faW5pdENvbXBvbmVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhp
cy5fdHJhY2tIYXNoPXRoaXMudHJhY2tIYXNoOyIwIj09PSIiK3RoaXMuY291bnRl
clR5cGUmJih0aGlzLnNlbmRUaXRsZT0tMT09PWYuYXJyYXlJbmRleE9mKHRoaXMu
Y291bnRlcnNOb1RpdGxlLCIiK3RoaXMuY291bnRlcklkKSl9LHNldFRyYWNrSGFz
aDpmdW5jdGlvbihhKXt0aGlzLl90cmFja0hhc2g9YX0sc2VuZEhpdDpmdW5jdGlv
bihhKXt0aGlzLl9oaXRFeHQoe3VybDphLnVybCwKdGl0bGU6YS50aXRsZSxyZWZl
cnJlcjphLnJlZmVycmVyLHZQYXJhbXM6YS52UGFyYW1zLG1vZGVzOnthcjohMCxz
YXZlUmVmOiEwLHB2OiEwfSxjYWxsYmFjazphLmNhbGxiYWNrLGN0eDphLmN0eH0p
fSxzZW5kRXhwZXJpbWVudHM6ZnVuY3Rpb24oYSl7dGhpcy5faGl0RXh0KHt1cmw6
eCgpLmhyZWYsdGl0bGU6IiIscmVmZXJyZXI6IiIsbW9kZXM6e2V4OiEwLGFyOiEw
fSxleHBlcmltZW50czphLmV4cGVyaW1lbnRzLGNhbGxiYWNrOmEuY2FsbGJhY2ss
Y3R4OmEuY3R4fSl9LHNlbmRQcmVyZW5kZXJIaXQ6ZnVuY3Rpb24oYSl7dGhpcy5f
aGl0RXh0KHt1cmw6YS51cmwsdGl0bGU6YS50aXRsZSxyZWZlcnJlcjphLnJlZmVy
cmVyLG1vZGVzOnthcjohMCxwcTohMH19KX0sc2VuZEFqYXhIaXQ6ZnVuY3Rpb24o
YSl7dGhpcy5faGl0RXh0KHt1cmw6YS51cmwsdGl0bGU6YS50aXRsZSxyZWZlcnJl
cjphLnJlZmVycmVyLG1vZGVzOmEubW9kZXN9KX0sc2VuZFBhcmFtczpmdW5jdGlv
bihhLApiLGMpe3RoaXMuX2hpdEV4dCh7dXJsOngoKS5ocmVmLHRpdGxlOiIiLHJl
ZmVycmVyOiIiLHZQYXJhbXM6YSxtb2Rlczp7YXI6ITAscGE6ITAsb25seURhdGE6
ITB9LGNhbGxiYWNrOmIsY3R4OmN9KX0sc2VuZEdvYWw6ZnVuY3Rpb24oYSxiKXtp
ZigvW1wvJj0/I10vLnRlc3QoYSkpZi53YXJuaW5nKCJJbmNvcnJlY3QgZ29hbCIp
O2Vsc2UgaWYoYSl7dmFyIGM9eCgpO3RoaXMuX2hpdEV4dCh7dXJsOiJnb2FsOi8v
IitjLmhvc3RuYW1lKyIvIitlbmNvZGVVUklDb21wb25lbnQoYSksdGl0bGU6bS5n
ZXREb2N1bWVudFRpdGxlKCkscmVmZXJyZXI6Yy5ocmVmLHZQYXJhbXM6Yi52UGFy
YW1zLG1vZGVzOnthcjohMH0sY2FsbGJhY2s6Yi5jYWxsYmFjayxjdHg6Yi5jdHh9
KX1lbHNlIGYud2FybmluZygiRW1wdHkgZ29hbCIpfSxzZW5kQ2xpY2tMaW5rOmZ1
bmN0aW9uKGEpe3RoaXMuX2hpdEV4dCh7dXJsOmEudXJsLHRpdGxlOmEudGl0bGUs
cmVmZXJyZXI6eCgpLmhyZWYsbW9kZXM6YS5tb2Rlc30pfSwKc2VuZEV4dExpbms6
ZnVuY3Rpb24oYSl7dGhpcy5faGl0RXh0KHt1cmw6YS51cmwsdGl0bGU6YS50aXRs
ZXx8IiIscmVmZXJyZXI6eCgpLmhyZWYsdlBhcmFtczphLnZQYXJhbXMsbW9kZXM6
e2FyOiEwLGxuOiEwLHV0OkphfSxjYWxsYmFjazphLmNhbGxiYWNrLGN0eDphLmN0
eH0pfSxzZW5kRmlsZVVwbG9hZDpmdW5jdGlvbihhKXt0aGlzLl9oaXRFeHQoe3Vy
bDphLnVybCx0aXRsZTphLnRpdGxlfHwiIixyZWZlcnJlcjp4KCkuaHJlZix2UGFy
YW1zOmEudlBhcmFtcyxtb2Rlczp7YXI6ITAsbG46ITAsZGw6ITB9LGNhbGxiYWNr
OmEuY2FsbGJhY2ssY3R4OmEuY3R4fSl9LHNlbmROb3RCb3VuY2U6ZnVuY3Rpb24o
YSxiKXt0aGlzLl9oaXRFeHQoe3VybDp4KCkuaHJlZix0aXRsZToiIixyZWZlcnJl
cjoiIixtb2Rlczp7Y2w6YSxhcjohMCxuYjohMCxvbmx5RGF0YTohMH0sY2FsbGJh
Y2s6Yi5jYWxsYmFjayxjdHg6Yi5jdHh9KX0sc2VuZERldmljZTpmdW5jdGlvbihh
KXt0aGlzLl9oaXRFeHQoe2Jyb3dzZXJJbmZvOntkaTphLmRhdGEsCmRpcDphLnBv
cnR9LGNhbGxiYWNrOmEuY2FsbGJhY2ssY3R4OmEuY3R4fSl9LF9oaXRFeHQ6ZnVu
Y3Rpb24oYSl7ZnVuY3Rpb24gYihhLGIpe2ImJihwW2FdPWIpfXZhciBjLGQsZSxn
PXt9O2lmKCFmLmlzTWV0cmlrYVBsYXllcigpKXt2YXIgaD1hLm1vZGVzfHx7fTt2
YXIgaz1hLmJyb3dzZXJJbmZvfHx7fTt2YXIgbT0idW5kZWZpbmVkIiE9dHlwZW9m
IGEucmVmZXJyZXI/YS5yZWZlcnJlcjpqYS5sYXN0UmVmZXJyZXI7dmFyIHQ9YS51
cmx8fCIiO3ZhciBwPXt9O2Eubm9oaXQmJmIoIm5vaGl0IiwxKTtoLmFyJiYhaC5v
bmx5RGF0YSYmKG09bnVsbD09PW18fCIiPT09bT8iIjp0aGlzLl9wcmVwYXJlSGl0
VXJsKG0pLHQ9dGhpcy5fcHJlcGFyZUhpdFVybChhLnVybCkpO2IoInBhZ2UtcmVm
IixmLnRyaW0obSxwYSkpO2IoInBhZ2UtdXJsIixmLnRyaW0odCxwYSkpO2YuaXM0
Qnl0ZXMoYS50aXRsZSkmJmIoImNoYXJzZXQiLCJ1dGYtOCIpO1ZhKCk/YigidXQi
LEphKToidW5kZWZpbmVkIiE9CnR5cGVvZiBoLnV0JiZiKCJ1dCIsZi50cmltKGgu
dXQsRGIpKTtiKCJleHAiLGEuZXhwZXJpbWVudHMpO2lmKGQ9YS52UGFyYW1zKWQu
X195bSYmKGYuaXNOdW1iZXIoZC5fX3ltLnR1cmJvX3BhZ2UpJiYoZy50cD1kLl9f
eW0udHVyYm9fcGFnZSksZi5pc051bWJlcihkLl9feW0udHVyYm9fcGFnZV9pZCkm
JihnLnRwaWQ9ZC5fX3ltLnR1cmJvX3BhZ2VfaWQpKSxkLm9yZGVyX2lkJiZkLm9y
ZGVyX3ByaWNlJiZmLndhcm5pbmcoIlRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQs
IHBsZWFzZSB1c2UgbmV3IGVjb21tZXJjZSBtZXRob2RzIGluc3RlYWQ6IGh0dHBz
Oi8vY2xjay5ydS9DTGp0biIpLHQ9Zi50b0pTT04oZCksdGhpcy50cmltUGFyYW1z
JiZ0Lmxlbmd0aD5FYj9lPSEwOmIoInNpdGUtaW5mbyIsdCk7aC5zYXZlUmVmJiYo
amEubGFzdFJlZmVycmVyPW0pO3RoaXMuZmFrZXx8KGM9dGhpcy5fZ2V0VGVjaElu
Zm8oYS50aXRsZSxoLHRoaXMuY291bnRlcklkLGEudHMsYS50eix0aGlzLl90cmFj
a0hhc2gsCnRoaXMuaGl0SWQsdGhpcy53ZWJ2aXNvcix0aGlzLmNvdW50ZXIsYS5u
b2hpdCkpO2YubWl4aW4oayxjLGcpO3RoaXMuc2VuZChwLGssZnVuY3Rpb24oKXtl
JiZ0aGlzLmNvdW50ZXIucGFyYW1zKGQpO2EudXNlclBhcmFtcyYmdGhpcy5jb3Vu
dGVyLnVzZXJQYXJhbXMoYS51c2VyUGFyYW1zKTtmLmlzRnVuY3Rpb24oYS5jYWxs
YmFjaykmJmEuY2FsbGJhY2suYXBwbHkoYS5jdHgsYXJndW1lbnRzKX0sdGhpcyl9
fSxfcHJlcGFyZUhpdFVybDpmdW5jdGlvbihhKXt2YXIgYj14KCksYz1iLmhvc3Qs
Yj1iLmhyZWY7aWYoIWYuaXNTdHJpbmcoYSkpcmV0dXJuIGI7aWYoLTEhPWEuc2Vh
cmNoKC9eXHcrOlwvXC8vKSlyZXR1cm4gYTt2YXIgZD1hLmNoYXJBdCgwKTtpZigi
PyI9PWQpcmV0dXJuIGQ9Yi5zZWFyY2goL1w/LyksLTE9PWQ/YithOmIuc3Vic3Ry
KDAsZCkrYTtpZigiIyI9PWQpcmV0dXJuIGQ9Yi5zZWFyY2goLyMvKSwtMT09ZD9i
K2E6Yi5zdWJzdHIoMCxkKSthO2lmKCIvIj09ZCl7aWYoZD0KYi5zZWFyY2goYyks
LTEhPWQpcmV0dXJuIGIuc3Vic3RyKDAsZCtjLmxlbmd0aCkrYX1lbHNlIHJldHVy
biBjPWIuc3BsaXQoIi8iKSxjW2MubGVuZ3RoLTFdPWEsYy5qb2luKCIvIik7cmV0
dXJuIGF9LF9nZXRUZWNoSW5mbzpmdW5jdGlvbihhLGIsYyxkLGUsaCxrLG4sSSx0
KXtmdW5jdGlvbiBsKGEsYixjKXt2YXIgZD0iIitiO2EmJmImJihjfHwtMT09PWQu
aW5kZXhPZigiOiIpKSYmKHJbYV09ZCl9ZnVuY3Rpb24gdihhKXtiW2FdJiZsKGEs
IjEiKX12YXIgcj17fTtiPWJ8fHt9O2Q9ZHx8SC5nZXRUaW1lc3RhbXAoKTtlPWV8
fEguZ2V0VGltZXpvbmUoKTtsKCJqIixxLmdldEphdmFFbmFibGVkKCk/IjEiOiIi
KTtsKCJudCIscS5uZXRUeXBlKCkpO2FhJiZsKCJzIixhYS53aWR0aCsieCIrYWEu
aGVpZ2h0KyJ4IisoYWEuY29sb3JEZXB0aHx8YWEucGl4ZWxEZXB0aCkpO2cuZGV2
aWNlUGl4ZWxSYXRpbyYmbCgic2siLGcuZGV2aWNlUGl4ZWxSYXRpbyk7cS5pc0lm
cmFtZSgpJiZsKCJpZnIiLAoiMSIpO2cuaWFfZG9jdW1lbnQmJmcuaWFfZG9jdW1l
bnQuc2hhcmVVUkwmJmcuaWFfZG9jdW1lbnQucmVmZXJyZXImJmwoImlpYSIsIjEi
KTtsKCJhZGIiLGNiLmdldFZhbCgpKTtsKCJmIixxLmdldEZsYXNoVmVyc2lvbigp
KTtsKCJsIixxLmdldFNpbHZlcmxpZ2h0VmVyc2lvbigpKTtsKCJmcHIiLHEuZ2V0
RmluZ2VyUHJpbnQoKSk7bCgiY24iLHRoaXMuY291bnRlck51bSk7aWYoIWIucGEp
e3ZhciB3PW0uZ2V0Vmlld3BvcnRTaXplKCk7bCgidyIsd1swXSsieCIrd1sxXSl9
bCgieiIsZSk7bCgiaSIsZCk7bCgiZXQiLEguZ2V0U2Vjb25kcygpKTtsKCJlbiIs
bS5nZXREb2N1bWVudENoYXJzZXQoKSk7bCgidiIsdGhpcy5fZ2V0VmVyc2lvbigp
KTtsKCJjIixuYXZpZ2F0b3IuY29va2llRW5hYmxlZD8iMSI6IiIpO2woImxhIixx
LmdldExhbmd1YWdlKCkpO2woIm50ZiIscS5nZXROb3RpZmljYXRpb25QZXJtaXNz
aW9uKCkpO2YucmFuZG9tKDEwMCl8fGwoIm5wIixOLmVuY29kZShjYS5lbmNvZGUo
Zi50cmltKHEuZ2V0UGxhdGZvcm0oKSwKMTAwKSkpKTtoJiZsKCJ3aCIsIjEiKTtl
PSJhciBsbiBkbCBjcGYgYWQgbmIgcGEgcHEgcHYgZXgiLnNwbGl0KCIgIik7Zm9y
KGQ9MDtkPGUubGVuZ3RoO2QrKyl2KGVbZF0pO2U9WyJ2YSIsInZ0Iiwic24iLCJz
YSIsImhlIl07Yi5uYiYmZS5wdXNoKCJjbCIpO2ZvcihkPTA7ZDxlLmxlbmd0aDtk
KyspaD1lW2RdLGwoaCxiW2hdKTtlPW5ldyBRKHtjb3VudGVySWQ6Y30pO2UuaXNF
bmFibGVkKCkmJihjPWUuZ2V0U3RvcmFnZUlkKCksZD1lLmdldCgicmVxTnVtIiks
dHx8KGQ/ZCsrOmQ9MSksZS5zZXQoInJlcU51bSIsZCksZS5nZXQoInJlcU51bSIp
PT1kPyhsKCJscyIsYyksbCgicnFuIixkKSk6KGUucmVtb3ZlKCJyZXFOdW0iKSxl
LmNsZWFyU3RvcmFnZUlkKCksMTxkJiYobCgibHMiLGMpLGwoInJxbiIsMCkpKSk7
bCgicm4iLGYucmFuZG9tKCkpO2woImhpZCIsayk7bCgiZHMiLHhiKEkpKTtJLl9m
aXJzdFBhaW50fHwoSS5fZmlyc3RQYWludD15YigpLGwoImZwIixJLl9maXJzdFBh
aW50KSk7CmlmKG4pe2cubmFtZXx8KGcubmFtZT1NYXRoLnJvdW5kKDY1NTM1Kk1h
dGgucmFuZG9tKCkpKTtpZihrPStnLm5hbWUpMD5rJiYoayo9LTEpLGslPTY1NTM1
O2woInduIixrfHxmLmZsZXRjaGVyKGcubmFtZSkpO3RyeXtnLmhpc3RvcnkmJmwo
ImhsIixTdHJpbmcoZy5oaXN0b3J5Lmxlbmd0aCkpfWNhdGNoKE9hKXt9fWs9IiI7
dGhpcy5zZW5kVGl0bGUmJihrPXRoaXMuX2dldFRpdGxlKGEpKTtsKCJ0IixrLCEw
KTtyZXR1cm4gcn0sX2dldFRpdGxlOmZ1bmN0aW9uKGEpe2E9InVuZGVmaW5lZCI9
PXR5cGVvZiBhPyhhPW0uZ2V0RG9jdW1lbnRUaXRsZSgpKT9mLnRyaW0oYSxkYik6
IiI6Zi50cmltKGEsZGIpO3JldHVybiBhfX0pO2YuYXJyYXkyUHJvcHM9ZnVuY3Rp
b24oYSl7dmFyIGI9YS5sZW5ndGgsYz17fSxkPWMsZTtmb3IoZT0wO2U8Yi0xO2Ur
Kyl7dmFyIGY9YVtlXTtkW2ZdPXt9O2U8Yi0yJiYoZD1kW2ZdKX1kW2ZdPWFbYi0x
XTtyZXR1cm4gY307dmFyIGdhPUEuaW5oZXJpdCh7c2FtcGxpbmc6MSwKY291bnRl
cklkOjI2MzAyNTY2LF9pbml0Q29tcG9uZW50OmZ1bmN0aW9uKCl7Z2Euc3VwZXJj
bGFzcy5faW5pdENvbXBvbmVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5f
c2VuZGVyPW5ldyBkYSh7cHJvdG9jb2w6Imh0dHBzOiIsY291bnRlcklkOnRoaXMu
Y291bnRlcklkLHJldHJ5OiExLGNvdW50ZXI6e319KX0sbG9nOmZ1bmN0aW9uKCl7
dGhpcy5sb2dQYXJhbXMoZi5hcnJheTJQcm9wcyhhcmd1bWVudHMpKX0sbG9nUGFy
YW1zOmZ1bmN0aW9uKGEpe01hdGgucmFuZG9tKCk8dGhpcy5zYW1wbGluZyYmdGhp
cy5fc2VuZGVyLnNlbmRIaXQoe3VybDpFLmhyZWYsdGl0bGU6IiIscmVmZXJyZXI6
IiIsdlBhcmFtczphfSl9fSksRmI9Ty5pbmhlcml0KHtyZXNvdXJjZToid2Vidmlz
b3IiLHJldHJ5OiEwLHBvc3RQYXJhbXM6WyJ3di1kYXRhIl0sc2VuZFBhY2tldDpm
dW5jdGlvbihhLGIsYyxkLGUsaCxrLG4pe2lmKCFhfHwhYS5sZW5ndGgpcmV0dXJu
ITE7dmFyIGw9Ti5lbmNvZGUoYSwKITApO2lmKDA9PWwuaW5kZXhPZigiQUFBQUFB
QUFBRHciKSYmZy5FcnJvcil7dmFyIG09RXJyb3IoKTsic3RyaW5nIj09dHlwZW9m
IG0uc3RhY2smJihuZXcgZ2Eoe3NhbXBsaW5nOi4xfSkpLmxvZygiYmFkIHZpc29y
IHBhY2tldCA1IiwxKX1hPXtybjpmLnJhbmRvbSgpLCJwYWdlLXVybCI6Yix3bW9k
ZTowLCJ3di10eXBlIjowLCJ3di1oaXQiOmMsInd2LXBhcnQiOmQrMSwid3YtY2hl
Y2siOmYuZmxldGNoZXIoYSksInd2LWRhdGEiOmx9O2U9e3Y6dGhpcy5fZ2V0VmVy
c2lvbigpLHo6ZSxpOmh9O3JldHVybiB0aGlzLnNlbmQoYSxlLGssbil9fSksRWE9
YmIuaW5oZXJpdCh7cHJvdG9jb2w6IiIsY291bnRlcklkOiIiLGNvdW50ZXJUeXBl
OiIiLG1ldGE6bnVsbCxtYXhCdWZmZXJTaXplOjc1MDAsZmx1c2hUaW1lb3V0OjNF
NCxzdG9yYWdlS2V5OiJ2aXNvcmJ1ZmYiLGFjdGl2ZTohMSxfaW5pdENvbXBvbmVu
dDpmdW5jdGlvbigpe3RoaXMuc3RvcmFnZT1uZXcgUSh7Y291bnRlcklkOnRoaXMu
Y291bnRlcklkfSk7CnRoaXMuX3NlbmRlcj1uZXcgRmIoe2dsb2JhbENvbmZpZzp0
aGlzLmdsb2JhbENvbmZpZyxwcm90b2NvbDp0aGlzLnByb3RvY29sLGNvdW50ZXJJ
ZDp0aGlzLmNvdW50ZXJJZCxjb3VudGVyVHlwZTp0aGlzLmNvdW50ZXJUeXBlfSk7
RWEuc3VwZXJjbGFzcy5faW5pdENvbXBvbmVudC5hcHBseSh0aGlzLGFyZ3VtZW50
cyl9LG9uRmx1c2g6ZnVuY3Rpb24oYSxiLGMpe3RoaXMuX3NlbmRlci5zZW5kUGFj
a2V0KGEsYi51cmwsYi5oaXRJZCxjLGIudGltZXpvbmUsYi50aW1lc3RhbXApfX0p
LHRiPU8uaW5oZXJpdCh7cmVzb3VyY2U6IndlYnZpc29yIix0cmFuc3BvcnRzOltX
LFRdLHBvc3RQYXJhbXM6WyJ3di1kYXRhIl0sc2VuZENvbnRlbnQ6ZnVuY3Rpb24o
YSxiLGMsZCxlLGYsZyl7aWYoIWEpcmV0dXJuITE7LTE8YS5pbmRleE9mKCJcciIp
JiYoYT1hLnJlcGxhY2UoL1xyXG4vZywiXG4iKSk7YT17Ind2LXR5cGUiOjEsInBh
Z2UtdXJsIjp4KCkuaHJlZiwid3YtaGl0IjpjLCJ3di1kYXRhIjpOLmVuY29kZShj
YS5lbmNvZGUoYSkpfTsKcmV0dXJuIDI0NUUzPGFbInd2LWRhdGEiXS5sZW5ndGg/
ITE6dGhpcy5zZW5kKGEse3o6ZCxpOmUscGN0OmJ8fCIifSxmLGcpfX0pO20uZ2V0
RG9jdW1lbnRIVE1MPWZ1bmN0aW9uKCl7dmFyIGE9IiI7dmFyIGI9aC5kb2N1bWVu
dEVsZW1lbnQ7dmFyIGM9Yi5vdXRlckhUTUwsZCxlO2lmKGMpYj1jO2Vsc2V7Yz1i
LmF0dHJpYnV0ZXM7dmFyIGY9IiI7Zm9yKGQ9MDtkPGMubGVuZ3RoO2QrKykoZT1j
W2RdKSYmKGYrPSIgIitlLm5hbWUrJ1x4M2QiJysoZS52YWx1ZXx8IiIpKyciJyk7
Yj0iXHgzY2h0bWwiK2YrIlx4M2UiK2IuaW5uZXJIVE1MKyJceDNjL2h0bWxceDNl
In1pZihjPWguZG9jdHlwZSlhPWMucHVibGljSWQ/JyBQVUJMSUMgIicrYy5wdWJs
aWNJZCsnIic6IiIsZj1jLnN5c3RlbUlkPycgIicrYy5zeXN0ZW1JZCsnIic6IiIs
YT0iXHgzYyFET0NUWVBFICIrYy5uYW1lK2ErZisiXHgzZVxuIjtyZXR1cm4gYSti
fTttLmdldERvY3VtZW50U2Nyb2xsPWZ1bmN0aW9uKCl7cmV0dXJuW2cucGFnZVhP
ZmZzZXR8fApoLmRvY3VtZW50RWxlbWVudCYmaC5kb2N1bWVudEVsZW1lbnQuc2Ny
b2xsTGVmdHx8aC5ib2R5JiZoLmJvZHkuc2Nyb2xsTGVmdHx8MCxnLnBhZ2VZT2Zm
c2V0fHxoLmRvY3VtZW50RWxlbWVudCYmaC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs
VG9wfHxoLmJvZHkmJmguYm9keS5zY3JvbGxUb3B8fDBdfTttLmdldEVsZW1lbnRQ
YXJlbnQ9ZnVuY3Rpb24oYSl7aWYoIWF8fGE9PWguZG9jdW1lbnRFbGVtZW50KXJl
dHVybiBudWxsO2lmKGE9PWguYm9keSlyZXR1cm4gaC5kb2N1bWVudEVsZW1lbnQ7
dmFyIGI9bnVsbDt0cnl7Yj1hLnBhcmVudE5vZGV9Y2F0Y2goYyl7fXJldHVybiBi
fTttLmdldEVsZW1lbnRDaGlsZHJlbj1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQs
ZSxnO2lmKGEmJihkPWEuY2hpbGROb2Rlcykpe3ZhciBoPTA7Zm9yKGc9ZC5sZW5n
dGg7aDxnO2grKyl7dmFyIGs9ZFtoXTsoZT0iSU5QVVQiPT1rLm5vZGVOYW1lJiZr
LnR5cGUmJiJoaWRkZW4iPT1rLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSl8fApi
JiZrLm5vZGVOYW1lIT1ifHxmLm1lcmdlQXJyYXlzKGMsW2tdKX19cmV0dXJuIGN9
O20uZ2V0RWxlbWVudE5laWdoYm9yUG9zaXRpb249ZnVuY3Rpb24oYSl7dmFyIGI9
bS5nZXRFbGVtZW50UGFyZW50KGEpLGM7aWYoYil7dmFyIGQ9MDtiPWIuY2hpbGRO
b2Rlczt2YXIgZT1hJiZhLm5vZGVOYW1lO2ZvcihjPTA7YzxiLmxlbmd0aDtjKysp
e3ZhciBmPWJbY10mJmJbY10ubm9kZU5hbWU7aWYoZT09Zil7aWYoYT09YltjXSly
ZXR1cm4gZDtkKyt9fX1yZXR1cm4gMH07bS5nZXRFbGVtZW50WFk9ZnVuY3Rpb24o
YSl7dmFyIGI7aWYoIWF8fCFhLm93bmVyRG9jdW1lbnR8fCJQQVJBTSI9PWEudGFn
TmFtZXx8YT09aC5ib2R5fHxhPT1oLmRvY3VtZW50RWxlbWVudClyZXR1cm5bMCww
XTtpZihhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7YT1hLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpO3ZhciBjPW0uZ2V0RG9jdW1lbnRTY3JvbGwoKTtyZXR1cm5bTWF0
aC5yb3VuZChhLmxlZnQrY1swXSksCk1hdGgucm91bmQoYS50b3ArY1sxXSldfWZv
cihiPWM9MDthOyljKz1hLm9mZnNldExlZnQsYis9YS5vZmZzZXRUb3AsYT1hLm9m
ZnNldFBhcmVudDtyZXR1cm5bYyxiXX07bS5nZXREb2N1bWVudFNpemU9ZnVuY3Rp
b24oKXt2YXIgYT1tLmdldFJvb3RFbGVtZW50KCksYj1tLmdldFZpZXdwb3J0U2l6
ZSgpO3JldHVybltNYXRoLm1heChhLnNjcm9sbFdpZHRoLGJbMF0pLE1hdGgubWF4
KGEuc2Nyb2xsSGVpZ2h0LGJbMV0pXX07bS5nZXRFbGVtZW50U2l6ZT1mdW5jdGlv
bihhKXt2YXIgYjtyZXR1cm4gYT09aC5ib2R5fHxhPT1oLmRvY3VtZW50RWxlbWVu
dD9tLmdldERvY3VtZW50U2l6ZSgpOihiPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
JiZhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKT9bYi53aWR0aCxiLmhlaWdodF06
W2Eub2Zmc2V0V2lkdGgsYS5vZmZzZXRIZWlnaHRdfTttLmdldEVsZW1lbnRSZWdp
b249ZnVuY3Rpb24oYSl7dmFyIGI9bS5nZXRFbGVtZW50WFkoYSk7YT1tLmdldEVs
ZW1lbnRTaXplKGEpOwpyZXR1cm5bYlswXSxiWzFdLGFbMF0sYVsxXV19O20uY2Fs
Y0NoaWxkcmVuQ2hlY2tzdW09ZnVuY3Rpb24oYSl7dmFyIGI9cihmdW5jdGlvbigp
e3JldHVybiBhLmlubmVySFRNTH0sIiIsITApKCl8fCIiO3JldHVybiBmLmZsZXRj
aGVyKGIucmVwbGFjZSgvKDxbXj5dKj58W1x1MDAwMC1cdTAwMjBdKS9nLCIiKSl9
O20uZ2V0Rm9ybU51bWJlcj1mdW5jdGlvbihhKXt2YXIgYj1oLmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJmb3JtIiksYzt2YXIgZD0wO2ZvcihjPWIubGVuZ3RoO2Q8Yztk
KyspaWYoYltkXT09YSlyZXR1cm4gZDtyZXR1cm4tMX07bS5pc0VtcHR5RmllbGQ9
ZnVuY3Rpb24oYSl7cmV0dXJuIklOUFVUIj09YS5ub2RlTmFtZSYmInN1Ym1pdCIh
PWEudHlwZSYmImltYWdlIiE9YS50eXBlJiYiaGlkZGVuIiE9YS50eXBlPyJyYWRp
byI9PWEudHlwZXx8ImNoZWNrYm94Ij09YS50eXBlPyFhLmNoZWNrZWQ6IWEudmFs
dWU6IlRFWFRBUkVBIj09YS5ub2RlTmFtZT8hYS52YWx1ZToKIlNFTEVDVCI9PWEu
bm9kZU5hbWU/MD5hLnNlbGVjdGVkSW5kZXg6ITB9O20uY2FsY1RleHRDaGVja3N1
bT1mdW5jdGlvbihhKXt2YXIgYj0iIjthPWEuY2hpbGROb2Rlczt2YXIgYzt2YXIg
ZD0wO2ZvcihjPWEubGVuZ3RoO2Q8YztkKyspYVtkXSYmMz09YVtkXS5ub2RlVHlw
ZSYmKGIrPWFbZF0ubm9kZVZhbHVlKTtyZXR1cm4gZi5mbGV0Y2hlcihiLnJlcGxh
Y2UoL1tcdTAwMDAtXHUwMDIwXSsvZywiIikpfTttLmNhbGNBdHRyaWJDaGVja3N1
bT1mdW5jdGlvbihhKXt2YXIgYj0iIixjPSJ3aWR0aCBoZWlnaHQgYWxpZ24gdGl0
bGUgYWx0IG5hbWUiLnNwbGl0KCIgIiksZDsiSU1HIj09YS50YWdOYW1lJiYoYis9
YS5zcmMudG9Mb3dlckNhc2UoKSk7IkEiPT1hLnRhZ05hbWUmJihiKz1hLmhyZWYu
dG9Mb3dlckNhc2UoKSk7Yis9U3RyaW5nKGEuY2xhc3NOYW1lfHwiIikudG9Mb3dl
ckNhc2UoKTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKWEuZ2V0QXR0cmlidXRlJiYo
Yis9U3RyaW5nKGEuZ2V0QXR0cmlidXRlKGNbZF0pfHwKIiIpLnRvTG93ZXJDYXNl
KCkpO3JldHVybiBmLmZsZXRjaGVyKGIucmVwbGFjZSgvW1x1MDAwMC1cdTAwMjBd
Ky9nLCIiKSl9O20uY2xhc3NOYW1lRXhpc3RzPWZ1bmN0aW9uKGEsYil7dHJ5e3Jl
dHVybihuZXcgUmVnRXhwKCIoPzpefFxccykiK2IrIig/Olxcc3wkKSIpKS50ZXN0
KGEuY2xhc3NOYW1lKX1jYXRjaChjKXtyZXR1cm4hMX19O20uZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZT1mdW5jdGlvbihhLGIpe3ZhciBjO2I9Ynx8aDt2YXIgZD1iLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCIqIik7dmFyIGU9W107Zm9yKGM9MDtjPGQubGVu
Z3RoO2MrKyltLmNsYXNzTmFtZUV4aXN0cyhkW2NdLGEpJiZlLnB1c2goZFtjXSk7
cmV0dXJuIGV9O2YuYXJyYXlGaWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtd
LGU7Zm9yKGU9MDtlPGEubGVuZ3RoO2UrKyliLmNhbGwoYyxhW2VdLGUsYSkmJmQu
cHVzaChhW2VdKTtyZXR1cm4gZH07Zi5hcnJEaWZmPWZ1bmN0aW9uKGEsYil7cmV0
dXJuIGYuYXJyYXlGaWx0ZXIoYSwKZnVuY3Rpb24oYSl7cmV0dXJuLTE9PT1mLmFy
cmF5SW5kZXhPZihiLGEpfSl9O2YuZW5jb2RlVVJJQ29tcG9uZW50PWZ1bmN0aW9u
KGEsYil7YT1TdHJpbmcoYSk7YiYmYS5sZW5ndGg+YiYmKGE9YS5zdWJzdHIoMCxi
KSk7cmV0dXJuKGcuZW5jb2RlVVJJQ29tcG9uZW50fHxnLmVzY2FwZSkoYSkucmVw
bGFjZSgvXCsvZywiJTJCIil9O2YuYmluZD1mdW5jdGlvbihhLGIpe3ZhciBjPVtd
LnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpO3JldHVybiBmdW5jdGlvbigpe3JldHVy
biBhLmFwcGx5KGJ8fHRoaXMsYy5jb25jYXQoW10uc2xpY2UuY2FsbChhcmd1bWVu
dHMsMCkpKX19O2YucGFkPWZ1bmN0aW9uKGEpe3JldHVybigxMD5hPyIwIjoiIikr
YX07Zi5jbGVhclRpbWVvdXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGYuZ2V0TmF0aXZl
RnVuY3Rpb24oImNsZWFyVGltZW91dCIpKGEpfTtmLl91cmxQYXJzZXI9bnVsbDtm
LnBhcnNlVXJsPWZ1bmN0aW9uKGEpe2lmKCF0aGlzLl91cmxQYXJzZXIpdHJ5e3Ro
aXMuX3VybFBhcnNlcj0KaC5jcmVhdGVFbGVtZW50KCJhIil9Y2F0Y2goYil7fXJl
dHVybiB0aGlzLl91cmxQYXJzZXI/KHRoaXMuX3VybFBhcnNlci5ocmVmPWEse3By
b3RvY29sOnRoaXMuX3VybFBhcnNlci5wcm90b2NvbCxob3N0OnRoaXMuX3VybFBh
cnNlci5ob3N0LHBvcnQ6dGhpcy5fdXJsUGFyc2VyLnBvcnQsaG9zdG5hbWU6dGhp
cy5fdXJsUGFyc2VyLmhvc3RuYW1lLGhhc2g6dGhpcy5fdXJsUGFyc2VyLmhhc2gs
c2VhcmNoOnRoaXMuX3VybFBhcnNlci5zZWFyY2gscXVlcnk6dGhpcy5fdXJsUGFy
c2VyLnNlYXJjaC5yZXBsYWNlKC9eXD8vLCIiKSxwYXRobmFtZTp0aGlzLl91cmxQ
YXJzZXIucGF0aG5hbWV8fCIvIixwYXRoOih0aGlzLl91cmxQYXJzZXIucGF0aG5h
bWV8fCIvIikrdGhpcy5fdXJsUGFyc2VyLnNlYXJjaCxocmVmOnRoaXMuX3VybFBh
cnNlci5ocmVmfSk6e319O2Yuc2FmZURlY29kZVVSSUNvbXBvbmVudD1mdW5jdGlv
bihhKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChiKXty
ZXR1cm4iIn19OwpmLmdldFRsZD1mdW5jdGlvbigpe2lmKCF0aGlzLl90bGQpe3Zh
ciBhPUUuaG9zdG5hbWUuc3BsaXQoIi4iKTt0aGlzLl90bGQ9YVthLmxlbmd0aC0x
XX1yZXR1cm4gdGhpcy5fdGxkfTtmLnJlZHVjZT1mdW5jdGlvbihhLGIsYyl7dmFy
IGQ9MDtiPT1QJiYoYj1jWzBdLGQrKyk7Zm9yKDtkPGMubGVuZ3RoOyliPWEoYixj
W2RdKSxkKys7cmV0dXJuIGJ9O2YuZmlsdGVyPWZ1bmN0aW9uKGEsYil7dmFyIGMs
ZD1bXTtmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKWEoYltjXSkmJmQucHVzaChiW2Nd
KTtyZXR1cm4gZH07Zi5pc0Rldj1mdW5jdGlvbigpe2lmKGYuX2lzRGV2U2V0dGVk
KXJldHVybiBmLl9pc0Rldjt0cnl7Zi5faXNEZXZTZXR0ZWQ9ITA7dmFyIGE9bmV3
IEltYWdlO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJpZCIse2dldDpmdW5jdGlv
bigpe2YuX2lzRGV2PSEwfX0pfWNhdGNoKGIpe319O3ZhciBzYj0hbGEoL3dlYmtp
dC8pJiZsYSgvZ2Vja28vKSxlYj1BLmluaGVyaXQoe2hpZDowLAp0ejowLHRzOjAs
Y291bnRlcklkOjAsY291bnRlclR5cGU6MCx1cmw6IiIscHJvdG9jb2w6IiIsZW5h
YmxlZDohMSxfaW5pdENvbXBvbmVudDpmdW5jdGlvbigpe2lmKHRoaXMuaXNFbmFi
bGVkKCkpe3ZhciBhPXRoaXMuX2dldFN0b3JhZ2UoKTt2YXIgYj1hLnJlYWQoInZp
c29yYyIpOyJiIiE9YiYmInciIT1iJiYoYj0iIik7aWYoIWEuaXNFbmFibGVkKCl8
fGxhKCJvcGVyYSBtaW5pIikpYj0iYiI7dGhpcy5fdmM9YjsiYiIhPWImJih0aGlz
Ll9yZWNvcmRlcj1uZXcgbGIodGhpcy5wcm90b2NvbCx0aGlzLmNvdW50ZXJJZCx0
aGlzLmNvdW50ZXJUeXBlLHRoaXMuaGlkLHRoaXMuZ2xvYmFsQ29uZmlnKSk7ZWIu
c3VwZXJjbGFzcy5faW5pdENvbXBvbmVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9
fSxzdGFydDpmdW5jdGlvbihhKXtpZih0aGlzLmlzRW5hYmxlZCgpJiZ0aGlzLl9y
ZWNvcmRlcil7YT1hfHx7fTt2YXIgYj0rYS5yZWNwO2lmKCFpc0Zpbml0ZShiKXx8
MD5ifHwxPGIpdmFyIGM9CiJ3IjtjfHwoYz10aGlzLmhpZCUxRTQvMUU0PGI/Inci
OiJiIik7dGhpcy5fZ2V0U3RvcmFnZSgpLmNyZWF0ZSgidmlzb3JjIixjLDMwKTsi
dyI9PWM/KHRoaXMuX3JlY29yZGVyLnN0YXJ0KCksYj1hLmFyY2hfdHlwZSwoYT1h
LnVybHMpJiZiJiYibm9uZSIhPWImJnRoaXMuX3JlY29yZGVyLnVwbG9hZFBhZ2Vz
KGEsYikpOnRoaXMuX3JlY29yZGVyLnN0b3AoKX19LGlzRW5hYmxlZDpmdW5jdGlv
bigpe3ZhciBhPSF0aGlzLmdsb2JhbENvbmZpZy5nZXQoIm9vIik7cmV0dXJuIHRo
aXMuZW5hYmxlZCYmYX0sZ2V0VmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmN9
LF9nZXRTdG9yYWdlOmZ1bmN0aW9uKCl7dGhpcy5fc3RvcmFnZXx8KHRoaXMuX3N0
b3JhZ2U9bmV3IEcoe2NvdW50ZXJJZDp0aGlzLmNvdW50ZXJJZH0pKTtyZXR1cm4g
dGhpcy5fc3RvcmFnZX19KTtILmdldE1pbnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4g
TWF0aC5mbG9vcigrbmV3IERhdGUvMUUzLzYwKX07dmFyIG9hPQpTLmluaGVyaXQo
e2lkOiJzY3JpcHQiLGluZGV4OjYscmVxdWVzdDpmdW5jdGlvbihhLGIsYyxkKXt2
YXIgZT0hMSxsPWYuZ2V0TmF0aXZlRnVuY3Rpb24oImNyZWF0ZUVsZW1lbnQiLGgp
KCJzY3JpcHQiKTt0aGlzLnRpbWVvdXQmJmYuc2V0VGltZW91dChmdW5jdGlvbigp
e2V8fChlPSEwLG0ucmVtb3ZlTm9kZShsKSxjLmNhbGwoZCwhMSkpfSx0aGlzLnRp
bWVvdXQpO2lmKCFsKXJldHVybiBlPSEwLGMuY2FsbChkLCExKSwhMTt2YXIgaz0i
X3ltanNwIitmLnJhbmRvbSgpO2dba109cihmdW5jdGlvbigpe2lmKCFlKXt0cnl7
ZGVsZXRlIGdba119Y2F0Y2goSSl7Z1trXT1QfWMuYXBwbHkoZCxmLm1lcmdlQXJy
YXlzKFshMF0sYXJndW1lbnRzKSk7ZT0hMDttLnJlbW92ZU5vZGUobCl9fSwidHJh
bnNwb3J0LnNjcmlwdCIpO2wudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtsLnNyYz10
aGlzLl9idWlsZFVybChhLGYubWl4aW4oe3dtb2RlOjUsY2FsbGJhY2s6a30sYikp
O2wuYXN5bmM9ImFzeW5jIjsKdmFyIG49aC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
aGVhZCIpWzBdO258fChuPWguY3JlYXRlRWxlbWVudCgiaGVhZCIpLGguZG9jdW1l
bnRFbGVtZW50LmFwcGVuZENoaWxkKG4pKTtmLmFzeW5jKGZ1bmN0aW9uKCl7bi5p
bnNlcnRCZWZvcmUobCxuLmZpcnN0Q2hpbGQpfSk7bC5vbmVycm9yPWZ1bmN0aW9u
KCl7ZT0hMDtjLmNhbGwoZCwhMSk7Z1trXT1QfTtyZXR1cm4hMH19KSxmYj1XLmlu
aGVyaXQoe2lkOiJYSFJoaXQiLGluZGV4OjEwLF9idWlsZFVybDpmdW5jdGlvbihh
LGIpe2Iud21vZGU9NztyZXR1cm4gZmIuc3VwZXJjbGFzcy5fYnVpbGRVcmwuYXBw
bHkodGhpcyxbYSxiXSl9LF9wYXJzZVJlc3A6ZnVuY3Rpb24oYSl7dmFyIGI9aWEu
cGFyc2UoYSk7aWYoIWIpdGhyb3ciIjtyZXR1cm4gZi5tYXAoZnVuY3Rpb24oYSl7
cmV0dXJuIGJbYV19LGYua2V5cyhiKSl9fSksS2E9ZGEuaW5oZXJpdCh7dHJhbnNw
b3J0czpbZmIsb2FdLHRyaW1QYXJhbXM6ITAsX2luaXRDb21wb25lbnQ6ZnVuY3Rp
b24oKXtLYS5zdXBlcmNsYXNzLl9pbml0Q29tcG9uZW50LmFwcGx5KHRoaXMsCmFy
Z3VtZW50cyk7dGhpcy5faWxTdG9yYWdlPW5ldyBRKHtjb3VudGVySWQ6dGhpcy5j
b3VudGVySWR9KX0sY2hlY2tZYW5kZXhIb3N0OmZ1bmN0aW9uKGEpe2lmKGEpe2E6
e2lmKGE9Zi5wYXJzZVVybChhKS5ob3N0Lm1hdGNoKC8oPzpefFwuKSg/OnlhfHlh
bmRleClcLig/Olx3K3xjb20/XC5cdyspJC8pKWlmKGE9YVswXS5zcGxpdCgieWFu
ZGV4IikucmV2ZXJzZSgpWzBdLnN1YnN0cmluZygxKSwtMSE9Zi5hcnJheUluZGV4
T2YoSy55YW5kZXhXaGl0ZUxpc3RUbGQsYSkpYnJlYWsgYTthPSExfWEmJih0aGlz
Lmhvc3Q9Sy5iYXNlVXJsK2EpfX0sc2VuZEhpdDpmdW5jdGlvbihhKXt2YXIgYj17
fSxjPXRoaXMuX2lsU3RvcmFnZS5nZXQoImlsIik7YS52aXNpdENvbG9yJiYoYi52
Yz1hLnZpc2l0Q29sb3IpO2EuaGFzUHJlcmVuZGVyJiYoYi5wcj0xKTtjJiYodGhp
cy5faWxTdG9yYWdlLnJlbW92ZSgiaWwiKSxiLmlsdD1OLmVuY29kZShjYS5lbmNv
ZGUoZi50cmltKGMsZ2IpKSkpOwp0aGlzLmNoZWNrWWFuZGV4SG9zdChhLnJlZmVy
cmVyKTt0aGlzLl9oaXRFeHQoe3VybDphLnVybCxub2hpdDphLm5vaGl0LHRpdGxl
OmEudGl0bGUscmVmZXJyZXI6YS5yZWZlcnJlcix2UGFyYW1zOmEudlBhcmFtcyx1
c2VyUGFyYW1zOmEudXNlclBhcmFtcyxleHBlcmltZW50czphLmV4cGVyaW1lbnRz
LG1vZGVzOmEubW9kZXMsYnJvd3NlckluZm86Yix0czphLnRzLHR6OmEudHosY2Fs
bGJhY2s6YS5jYWxsYmFjayxjdHg6YS5jdHh9KX19KSxHYj1BLmluaGVyaXQoe2Np
ZDozLGNudDowLF9pbml0Q29tcG9uZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3RvcmFn
ZT1uZXcgUX0saGl0OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz10aGlzLl9zdG9y
YWdlLmdldCgid2FzU3luY2VkIik7YyYmYy50aW1lKzg2NEU1PituZXcgRGF0ZXx8
dGhpcy5nbG9iYWxDb25maWcuZ2V0KCJmYWtlSGl0Iik/YSgpOih0aGlzLmdsb2Jh
bENvbmZpZy5zZXQoImZha2VIaXQiLCEwKSx0aGlzLl9nZXRTZW5kZXIoKS5zZW5k
SGl0KHtjYWxsYmFjazpmdW5jdGlvbigpe2IuX3N0b3JhZ2Uuc2V0KCJ3YXNTeW5j
ZWQiLAp7dGltZTorbmV3IERhdGV9KTthKCl9fSkpfSxfZ2V0U2VuZGVyOmZ1bmN0
aW9uKCl7dGhpcy5fc2VuZGVyfHwodGhpcy5fc2VuZGVyPW5ldyBLYSh7cHJvdG9j
b2w6Imh0dHBzOiIsY291bnRlclR5cGU6dGhpcy5jbnQsY291bnRlcklkOnRoaXMu
Y2lkLHNlbmRUaXRsZTohMSxnbG9iYWxDb25maWc6dGhpcy5nbG9iYWxDb25maWcs
ZmFrZTohMH0pKTtyZXR1cm4gdGhpcy5fc2VuZGVyfX0pLGhiPUEuaW5oZXJpdCh7
YmFzZVVybDpLLmJhc2VVcmwsZ2xvYmFsQ29uZmlnOncsYmFzZVRsZDoicnUiLF9p
bml0Q29tcG9uZW50OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcztoYi5zdXBlcmNsYXNz
Ll9pbml0Q29tcG9uZW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnN5bmNU
bGRzPWYucmVkdWNlKGZ1bmN0aW9uKGEsYyl7cmV0dXJuIGMoYSl9LEsueWFuZGV4
V2hpdGVMaXN0VGxkLFtmLmJpbmQoZi5maWx0ZXIsbnVsbCxmdW5jdGlvbihiKXty
ZXR1cm4gYiE9PWEuYmFzZVRsZH0pLGYuYmluZChmLnJlZHVjZSwKbnVsbCxmdW5j
dGlvbihhLGMpe2FbY109W2NdO3JldHVybiBhfSx7fSldKX0sbGFuZ1RvRG9tYWlu
OntrYToiZ2UiLHJvOiJtZCIsdGc6InRqIix0azoidG0iLGV0OiJlZSIsaHk6ImNv
bS5hbSIsaGU6ImNvLmxpIixreToia2ciLHVrOiJ1YSIsYmU6ImJ5Iix0cjoiY29t
LnRyIixrazoia3oifSxzeW5jOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz10aGlz
Ll9uZWVkKCksZD1WYSgpOyF0aGlzLl9pcygpJiZjPyh0aGlzLl9zZXRTdGF0dXMo
ITApLGQ/dGhpcy5fZ2V0Q24oKS5oaXQoZnVuY3Rpb24oKXtiLl9zeW5jKGMsYSl9
KTphKGZ1bmN0aW9uKCl7fSkpOmEoKTtkJiZ0aGlzLl9hZGRNZGEoKX0sX2FkZE1k
YTpmdW5jdGlvbigpe3ZhciBhPW5ldyBHKHtza2lwUHJlZml4OiEwfSksYj1uZXcg
RyxjPWEucmVhZCgibWRhIik7IjAiIT09YyYmIjEiIT09YyYmYS5jcmVhdGUoIm1k
YSIsIjAiLDEwMzY4MDApO2IucmVhZCgibWRhIikmJmIuZXJhc2UoIm1kYSIpfSxf
aXM6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuISF0aGlzLmdsb2JhbENvbmZpZy5nZXQo
InN0YXJ0U3luYyIpfWNhdGNoKGEpe3JldHVybiExfX0sCl9zZXRTdGF0dXM6ZnVu
Y3Rpb24oYSl7dHJ5e3RoaXMuZ2xvYmFsQ29uZmlnLnNldCgic3RhcnRTeW5jIixh
KX1jYXRjaChiKXt9fSxfbmVlZDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX2dldERv
bWFpbkJ5TGFuZygpLGI9dGhpcy5fZ2V0VGxkKCksYz1bXSxkOyhkPXRoaXMuc3lu
Y1RsZHNbYl0pJiZjLnB1c2guYXBwbHkoYyxkKTtkPXRoaXMuc3luY1RsZHNbYV07
YSE9PWImJmQmJmMucHVzaC5hcHBseShjLGQpO3ZhciBlPXRoaXMuX2dldExzKCku
Z2V0KCJzeW5jZWQiKXx8e307Yz1mLmFycmF5RmlsdGVyKGMsZnVuY3Rpb24oYSl7
cmV0dXJuKGVbYV18fDEpKzE0NDA8SC5nZXRNaW51dGVzKCl9KTtyZXR1cm4gYy5s
ZW5ndGgmJmN8fCExfSxfc3luYzpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9MCxlPUsu
cHJvdG9jb2wrIi8vIixmPWEubGVuZ3RoLGc9dGhpcztpZigwPGYpe2I9Ynx8ZnVu
Y3Rpb24oKXt9O3ZhciBoPWZ1bmN0aW9uKCl7ZCsrO2Y9PT1kJiZiKCl9O3ZhciBr
PWcuX2dldExzKCk7CnZhciBtPW5ldyBaKHt9KTtmb3IoYz0wO2M8ZjtjKyspKGZ1
bmN0aW9uKGEpe20ucmVxdWVzdChlKyhnLmJhc2VVcmwrYSkrIi9zeW5jX2Nvb2tp
ZV9pbWFnZV9jaGVjayIse30sZnVuY3Rpb24oYil7aCgpO3ZhciBjPUguZ2V0TWlu
dXRlcygpO2J8fChjLT0xNDM1KTtiPWsuZ2V0KCJzeW5jZWQiKXx8e307YlthXT1j
O2suc2V0KCJzeW5jZWQiLGIpfSl9KShhW2NdKX1lbHNlIGIoKX0sX2dldENuOmZ1
bmN0aW9uKCl7dGhpcy5fY258fCh0aGlzLl9jbj1uZXcgR2Ioe2Zha2U6ITAsZ2xv
YmFsQ29uZmlnOnRoaXMuZ2xvYmFsQ29uZmlnfSkpO3JldHVybiB0aGlzLl9jbn0s
X2dldExzOmZ1bmN0aW9uKCl7dGhpcy5fbHN8fCh0aGlzLl9scz1uZXcgUSk7cmV0
dXJuIHRoaXMuX2xzfSxfZ2V0VGxkOmZ1bmN0aW9uKCl7dmFyIGE9Zi5nZXRUbGQo
KTtyZXR1cm57YW06ImNvbS5hbSIsdHI6ImNvbS50ciIsZ2U6ImNvbS5nZSIsaWw6
ImNvLmlsIiwiXHUwNDQwXHUwNDQ0IjoicnUiLCJ4bi0tcDFhaSI6InJ1IiwKIlx1
MDQ0M1x1MDQzYVx1MDQ0MCI6InVhIiwieG4tLWoxYW1oIjoidWEiLCJcdTA0MzFc
dTA0MzVcdTA0M2IiOiJieSIsInhuLS05MGFpcyI6ImJ5In1bYV18fGF9LF9nZXRE
b21haW5CeUxhbmc6ZnVuY3Rpb24oKXtpZighZy5uYXZpZ2F0b3IpcmV0dXJuInJ1
Ijt0cnl7dmFyIGE9bmF2aWdhdG9yLmxhbmd1YWdlcz9uYXZpZ2F0b3IubGFuZ3Vh
Z2VzWzBdOnEuZ2V0TGFuZ3VhZ2UoKX1jYXRjaChiKXt9YT0oYXx8IiIpLnRvTG93
ZXJDYXNlKCkuc3BsaXQoIi0iKVswXTtyZXR1cm4gdGhpcy5sYW5nVG9Eb21haW5b
YV18fCJydSJ9fSksSGI9Vy5pbmhlcml0KHtpZDoiUmF3Qm9keVhIUiIsaW5kZXg6
OSxwb3N0UGFyYW1zOlsiYm9keSJdLF9zZXRIZWFkZXJzOmZ1bmN0aW9uKCl7fSxf
cHJlcGFyZVBvc3RQYXJhbXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucG9zdC5ib2R5
fHwiIn19KTtxLmlzQW5kcm9pZD1yKGZ1bmN0aW9uKCl7dmFyIGE9bmF2aWdhdG9y
LnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLApiPXEuZ2V0UGxhdGZvcm0oKXx8IiI7
cmV0dXJuLTE8YS5pbmRleE9mKCJhbmRyb2lkIikmJi0xPGEuaW5kZXhPZigibW9i
aWxlIikmJmIubWF0Y2goL15hbmRyb2lkfGxpbnV4IGFybXYvaSl9LCIiLCEwKTtx
LmlzSU9TPXIoZnVuY3Rpb24oKXt2YXIgYT1xLmdldFBsYXRmb3JtKCl8fCIiO3Jl
dHVybiJpUGhvbmUiPT09YXx8ImlQYWQiPT09YX0sIiIsITApO3ZhciBlYT17X3Vy
bDpLLnByb3RvY29sKyIvLyIrSy5ob3N0KyIvdXNlcl9zdG9yYWdlX3NldD8iLF9w
YXJhbXM6e30saW5pdDpmdW5jdGlvbihhKXt0aGlzLl9wYXJhbXM9YXx8e319LHNh
dmU6ZnVuY3Rpb24oYSxiKXt0aGlzLl9nZXRSZXEoKS5yZXF1ZXN0KHRoaXMuX3Vy
bCtVLnN0cmluZ2lmeSh7a2V5OmEsdmFsdWU6Zi50b0pTT04oYil9KSk7dGhpcy5f
Z2V0THMoKS5zZXQoYSxiKX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybntyZW1vdGU6
dGhpcy5fcGFyYW1zW2FdLGxvY2FsOnRoaXMuX2dldExzKCkuZ2V0KGEpfX0sZ2V0
TnVtOmZ1bmN0aW9uKGEpe2E9CnRoaXMuZ2V0KGEpO3JldHVybiBNYXRoLm1heCgr
YS5yZW1vdGV8fDAsK2EubG9jYWx8fDApfSxfZ2V0THM6ZnVuY3Rpb24oKXt0aGlz
Ll9sc3x8KHRoaXMuX2xzPW5ldyBRKTtyZXR1cm4gdGhpcy5fbHN9LF9nZXRSZXE6
ZnVuY3Rpb24oKXt0aGlzLl9yZXF8fCh0aGlzLl9yZXE9bmV3IFopO3JldHVybiB0
aGlzLl9yZXF9fSxJYj17c3luYzpyKGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVsi
MzAxMDIiLCIyOTAwOSJdLGY9e3Q6J1VWfEw3LCEiVFtyd2VceDI2RF9ceDNlWkli
XFxhVyM5OFkuUEM2ayd9O3RoaXMuZ2xvYmFsQ29uZmlnPWR8fHc7aWYodGhpcy5f
ZW5hYmxlZChhLGIsYykpe3RoaXMuX3NldFN0YXR1cyghMCk7dmFyIGc9bmV3IEhi
KHttZXRob2Q6IkdFVCIsd2l0aENyZWRlbnRpYWxzOiExfSk7dmFyIGg9ZS5sZW5n
dGg7KGZ1bmN0aW9uIHQoYSl7dmFyIGI9ZVthXTthPGg/Zy5yZXF1ZXN0KCJodHRw
Oi8vMTI3LjAuMC4xOiIrYisiL3AiLGYsZnVuY3Rpb24oYyxkKXtjPwp0aGlzLl9z
YXZlKGMsZCxiKTp0LmNhbGwodGhpcyxhKzEpfSx0aGlzKTp0aGlzLl9zYXZlKCEx
KX0pLmNhbGwodGhpcywwKX19LCJkcyIpLF9zYXZlOmZ1bmN0aW9uKGEsYixjKXt2
YXIgZD1ILmdldE1pbnV0ZXMoKTthPyhuZXcgZGEoe3Byb3RvY29sOiJodHRwczoi
LGNvdW50ZXJUeXBlOjAsY291bnRlcklkOjQyODIyODk5LHNlbmRUaXRsZTohMSxm
YWtlOiEwfSkpLnNlbmREZXZpY2Uoe2RhdGE6Zi50cmltKGIpLHBvcnQ6Y30pOmQt
PTQ1O2VhLnNhdmUoImRzIixkKX0sX2lzOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiEh
dGhpcy5nbG9iYWxDb25maWcuZ2V0KCJkU3luYyIpfWNhdGNoKGEpe3JldHVybiEx
fX0sX2VuYWJsZWQ6ZnVuY3Rpb24oYSxiLGMpe2lmKCEoNjA8SC5nZXRNaW51dGVz
KCktZWEuZ2V0TnVtKCJkcyIpKXx8dGhpcy5faXMoKXx8Zi5pc0RldigpKXJldHVy
biExO2E9MD09PWImJjA8PWYuYXJyYXlJbmRleE9mKFszOTM3MDA5NSwxMjgyMjUz
LDI5MzAyMzM1LDQzNjUzNDg0LAo0MTczNDk0NCwzMTA0ODA4MSwxNjQ0MzEzOSwy
NzczNzM0Niw0MTg3MDQ5OSwzMzkxMTUxNCwzMDc0NDg3Myw1NTY0Mzk1LDI1ODA0
ODddLGEpO2E9MD09eCgpLmhvc3RuYW1lLnNlYXJjaCgvXiguKlwuKT8oKHlhfHlh
bmRleChcLXRlYW0pPylcLihjb21cLik/XHcrfChhdXRvfGtpbm9wb2lzaylcLnJ1
fHlhZGlcLnNrfHlhc3RhdGljXC5uZXQpJC8pfHwhYyYmLjE+PU1hdGgucmFuZG9t
KCkmJmE7Yz0iaHR0cDoiPT09RS5wcm90b2NvbCYmcS5pc0lPUygpJiZhO3JldHVy
biBxLmlzQW5kcm9pZCgpJiZhfHxjfSxfc2V0U3RhdHVzOmZ1bmN0aW9uKGEpe3Ry
eXt0aGlzLmdsb2JhbENvbmZpZy5zZXQoImRTeW5jIixhKX1jYXRjaChiKXt9fX0s
Qz17Z2V0UG9zOmZ1bmN0aW9uKGEpe3ZhciBiPW0uZ2V0Um9vdEVsZW1lbnQoKSxj
PW0uZ2V0RG9jdW1lbnRTY3JvbGwoKTtyZXR1cm5bYS5wYWdlWHx8YS5jbGllbnRY
K2NbMF0tKGIuY2xpZW50TGVmdHx8MCl8fDAsYS5wYWdlWXx8YS5jbGllbnRZKwpj
WzFdLShiLmNsaWVudFRvcHx8MCl8fDBdfSxnZXRUYXJnZXQ6ZnVuY3Rpb24oYSl7
dmFyIGI9bnVsbDt0cnl7KGI9YS50YXJnZXR8fGEuc3JjRWxlbWVudCkmJiFiLm93
bmVyRG9jdW1lbnQmJmIuZG9jdW1lbnRFbGVtZW50JiYoYj1iLmRvY3VtZW50RWxl
bWVudCl9Y2F0Y2goYyl7fXJldHVybiBifSxnZXRNb3VzZUJ1dHRvbjpmdW5jdGlv
bihhKXtyZXR1cm4gYS53aGljaHx8YS5idXR0b249PVA/YS53aGljaDphLmJ1dHRv
biYxPzE6YS5idXR0b24mMj8zOmEuYnV0dG9uJjQ/MjowfSxwcmV2ZW50OmZ1bmN0
aW9uKGEpe2E9YXx8Zy5ldmVudDthLnByZXZlbnREZWZhdWx0P2EucHJldmVudERl
ZmF1bHQoKTphLnJldHVyblZhbHVlPSExfX07Qy5kaXNwYXRjaEN1c3RvbUV2ZW50
PXIoZnVuY3Rpb24oYSxiKXt2YXIgYztiPWJ8fGg7aWYoYz1mLmdldE5hdGl2ZUZ1
bmN0aW9uKCJjcmVhdGVFdmVudCIsaCkoIkV2ZW50IikpYy5pbml0RXZlbnQoYSwh
MSwhMSksZi5nZXROYXRpdmVGdW5jdGlvbigiZGlzcGF0Y2hFdmVudCIsCmIpKGMp
fSwiZXZ0LmRpc3BhdGNoIik7dmFyIGphPXtsYXN0UmVmZXJyZXI6bnVsbH07cS5p
c0lFPWZ1bmN0aW9uKCl7cmV0dXJuIGgmJiFoLmFkZEV2ZW50TGlzdGVuZXJ8fCEx
fTtxLmlzQ2hyb21lUGRmPWZ1bmN0aW9uKCl7dmFyIGEsYj1uYXZpZ2F0b3IucGx1
Z2lucztpZihiJiZiLmxlbmd0aClmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKWlmKC9D
aHJvbWUgUERGIFZpZXdlci8udGVzdChiW2FdLm5hbWUpKXJldHVybiEwO3JldHVy
biExfTt2YXIgZmE9e307ZmEuX2Nvb2tpZT1uZXcgRyh7b25seUN1cnJlbnREb21h
aW46ITB9KTtmYS5sb2c9cihmdW5jdGlvbigpe3ZhciBhPS0xPEUuaHJlZi5pbmRl
eE9mKCJfeW1fZGVidWdceDNkMSIpfHxnLl95bV9kZWJ1ZzthJiZ0aGlzLl9jb29r
aWUuY3JlYXRlKCJkZWJ1ZyIsIjEiKTtnLmNvbnNvbGUmJmNvbnNvbGUubG9nJiYo
YXx8IjEiPT09dGhpcy5fY29va2llLnJlYWQoImRlYnVnIikpJiZjb25zb2xlLmxv
Zy5hcHBseShjb25zb2xlLAphcmd1bWVudHMpfSwiRGVidWdDb25zb2xlLmxvZyIp
O3ZhciBKYj1PLmluaGVyaXQoe3Jlc291cmNlOiJjbG1hcCIscmV0cnk6ITAsdHJh
bnNwb3J0czpbWl0sc2VuZENsaWNrOmZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuc2Vu
ZCh7InBhZ2UtdXJsIjphLCJwb2ludGVyLWNsaWNrIjpifSx7fSxjLGQpfX0pLEti
PUEuaW5oZXJpdCh7ZmlsdGVyOm51bGwsaWdub3JlVGFnczpbXSxxdW90YTowLGlz
VHJhY2tIYXNoOiExLHByb3RvY29sOiIiLGNvdW50ZXJJZDowLGNvdW50ZXJUeXBl
OjAsc3RhcnRUaW1lOjAsTUFYX0xFTl9QQVRIOjEyOCxUSU1FT1VUX0NMSUNLOjUw
LFRJTUVPVVRfU0FNRV9DTElDS1M6MUUzLERFTFRBX1NBTUVfQ0xJQ0tTOjIsdGFn
czoiQSBCIEJJRyBCT0RZIEJVVFRPTiBERCBESVYgREwgRFQgRU0gRklFTERTRVQg
Rk9STSBIMSBIMiBIMyBINCBINSBINiBIUiBJIElNRyBJTlBVVCBMSSBPTCBQIFBS
RSBTRUxFQ1QgU01BTEwgU1BBTiBTVFJPTkcgU1VCIFNVUCBUQUJMRSBUQk9EWSBU
RCBURVhUQVJFQSBURk9PVCBUSCBUSEVBRCBUUiBVIFVMIEFCQlIgQVJFQSBCTE9D
S1FVT1RFIENBUFRJT04gQ0VOVEVSIENJVEUgQ09ERSBDQU5WQVMgREZOIEVNQkVE
IEZPTlQgSU5TIEtCRCBMRUdFTkQgTEFCRUwgTUFQIE9CSkVDVCBRIFMgU0FNUCBT
VFJJS0UgVFQgQVJUSUNMRSBBVURJTyBBU0lERSBGT09URVIgSEVBREVSIE1FTlUg
TUVURVIgTkFWIFBST0dSRVNTIFNFQ1RJT04gVElNRSBWSURFTyBOT0lOREVYIE5P
QlIgTUFJTiIuc3BsaXQoIiAiKSwKX2luaXRDb21wb25lbnQ6ZnVuY3Rpb24oKXt2
YXIgYSxiO3RoaXMuX2xhc3RDbGljaz1udWxsO3RoaXMuaGFzUXVvdGE9ISF0aGlz
LnF1b3RhO3RoaXMuX3F1b3RhPXRoaXMucXVvdGE7dGhpcy5faWdub3JlVGFncz1b
XTtpZih0aGlzLmlnbm9yZVRhZ3MpZm9yKGE9MDthPHRoaXMuaWdub3JlVGFncy5s
ZW5ndGg7YSsrKXRoaXMuaWdub3JlVGFnc1thXSYmZi5tZXJnZUFycmF5cyh0aGlz
Ll9pZ25vcmVUYWdzLFtTdHJpbmcodGhpcy5pZ25vcmVUYWdzW2FdKS50b1VwcGVy
Q2FzZSgpXSk7dGhpcy5fY2FjaGVUYWdzPXt9O2E9NTk7dmFyIGM9U3RyaW5nLmZy
b21DaGFyQ29kZTtmb3IoYj0wO2I8dGhpcy50YWdzLmxlbmd0aDtiKyspdGhpcy5f
Y2FjaGVUYWdzW3RoaXMudGFnc1tiXV09YyhhKSxjKGEpLGErKzt0aGlzLl9zZW5k
ZXI9bmV3IEpiKHtnbG9iYWxDb25maWc6dGhpcy5nbG9iYWxDb25maWcscHJvdG9j
b2w6dGhpcy5wcm90b2NvbCxjb3VudGVySWQ6dGhpcy5jb3VudGVySWQsCmNvdW50
ZXJUeXBlOnRoaXMuY291bnRlclR5cGV9KTt0aGlzLl9zdGFydD0hMTt0aGlzLnN0
YXJ0KCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnN0b3AoKX0sc3RhcnQ6ZnVu
Y3Rpb24oKXtpZighdGhpcy5fc3RhcnQpay5vbihoLCJjbGljayIsdGhpcy5faGFu
ZGxlcix0aGlzKTt0aGlzLl9zdGFydD0hMH0sc3RvcDpmdW5jdGlvbigpe3RoaXMu
X3N0YXJ0JiZrLnVuKGgsImNsaWNrIix0aGlzLl9oYW5kbGVyLHRoaXMpO3RoaXMu
X3N0YXJ0PSExfSxzZXRUcmFja0hhc2g6ZnVuY3Rpb24oYSl7dGhpcy5pc1RyYWNr
SGFzaD1hfSxfaXNJZ25vcmU6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uY2xhc3NOYW1l
RXhpc3RzKGEsIih5bS1kaXNhYmxlLWNsaWNrbWFwfHltLWNsaWNrbWFwLWlnbm9y
ZSkiKX0sX2hhbmRsZXI6ZnVuY3Rpb24oYSl7YT17ZWw6Qy5nZXRUYXJnZXQoYSks
cG9zOkMuZ2V0UG9zKGEpLGJ1dHRvbjpDLmdldE1vdXNlQnV0dG9uKGEpLHRpbWU6
K25ldyBEYXRlfTtpZih0aGlzLl9pc1RyYWNraW5nQ2xpY2soYSkpe3ZhciBiPQpt
LmdldEVsZW1lbnRTaXplKGEuZWwpO3ZhciBjPW0uZ2V0RWxlbWVudFhZKGEuZWwp
O2I9WyJybiIsZi5yYW5kb20oKSwieCIsTWF0aC5mbG9vcig2NTUzNSooYS5wb3Nb
MF0tY1swXSkvKGJbMF18fDEpKSwieSIsTWF0aC5mbG9vcig2NTUzNSooYS5wb3Nb
MV0tY1sxXSkvKGJbMV18fDEpKSwidCIsTWF0aC5mbG9vcigoYS50aW1lLXRoaXMu
c3RhcnRUaW1lKS8xMDApLCJwIix0aGlzLl9nZXRFbFBhdGgoYS5lbCldO2M9eCgp
LmhyZWY7dGhpcy5pc1RyYWNrSGFzaD9mLm1lcmdlQXJyYXlzKGIsWyJ3aCIsIjEi
XSk6Yz1jLnNwbGl0KCIjIilbMF07dGhpcy5fc2VuZGVyLnNlbmRDbGljayhmLnRy
aW0oYyxwYSksYi5qb2luKCI6IikpO3RoaXMuX2xhc3RDbGljaz1hfX0sX2lzVHJh
Y2tpbmdDbGljazpmdW5jdGlvbihhKXt2YXIgYjtpZihnLnltRGlzYWJsZWRDbGlj
a21hcHx8Zi5pc01ldHJpa2FQbGF5ZXIoKXx8IWEuZWwpcmV0dXJuITE7dmFyIGM9
YS5lbC50YWdOYW1lO2lmKCgyPT0KYS5idXR0b258fDM9PWEuYnV0dG9uKSYmIkEi
IT1jfHx0aGlzLmZpbHRlciYmIXRoaXMuZmlsdGVyKGEuZWwsYykpcmV0dXJuITE7
Zm9yKGI9MDtiPHRoaXMuX2lnbm9yZVRhZ3MubGVuZ3RoO2IrKylpZih0aGlzLl9p
Z25vcmVUYWdzW2JdPT1jKXJldHVybiExO2ZvcihjPWEuZWw7Yzspe2lmKHRoaXMu
X2lzSWdub3JlKGMpKXJldHVybiExO2M9Yy5wYXJlbnROb2RlfWlmKHRoaXMuX2xh
c3RDbGljayl7aWYoYS50aW1lLXRoaXMuX2xhc3RDbGljay50aW1lPHRoaXMuVElN
RU9VVF9DTElDSylyZXR1cm4hMTtjPU1hdGguYWJzKHRoaXMuX2xhc3RDbGljay5w
b3NbMF0tYS5wb3NbMF0pO2I9TWF0aC5hYnModGhpcy5fbGFzdENsaWNrLnBvc1sx
XS1hLnBvc1sxXSk7dmFyIGQ9YS50aW1lLXRoaXMuX2xhc3RDbGljay50aW1lO2lm
KHRoaXMuX2xhc3RDbGljay5lbD09YS5lbCYmYzx0aGlzLkRFTFRBX1NBTUVfQ0xJ
Q0tTJiZiPHRoaXMuREVMVEFfU0FNRV9DTElDS1MmJmQ8dGhpcy5USU1FT1VUX1NB
TUVfQ0xJQ0tTKXJldHVybiExfWlmKHRoaXMuaGFzUXVvdGEpe2lmKCF0aGlzLl9x
dW90YSlyZXR1cm4hMTsKdGhpcy5fcXVvdGEtLX1yZXR1cm4hMH0sX2dldEVsUGF0
aDpmdW5jdGlvbihhKXtmb3IodmFyIGI9IiI7YSYmYS5wYXJlbnROb2RlJiYiQk9E
WSIhPWEudGFnTmFtZSYmIkhUTUwiIT1hLnRhZ05hbWU7KWIrPXRoaXMuX2NhY2hl
VGFnc1thLnRhZ05hbWVdfHwiKiIsYis9bS5nZXRFbGVtZW50TmVpZ2hib3JQb3Np
dGlvbihhKXx8IiIsYT1hLnBhcmVudE5vZGU7cmV0dXJuIGYudHJpbShiLHRoaXMu
TUFYX0xFTl9QQVRIKX19KTttLmxvYWRTY3JpcHQ9ZnVuY3Rpb24oYSxiKXtiPWJ8
fGc7dmFyIGM9Zi5taXhpbih7dHlwZToidGV4dC9qYXZhc2NyaXB0IixjaGFyc2V0
OiJ1dGYtOCIsYXN5bmM6ITB9LGEpLGQ9Yi5kb2N1bWVudCxlPWYuZ2V0TmF0aXZl
RnVuY3Rpb24oImNyZWF0ZUVsZW1lbnQiLGQpLGg9ZSgic2NyaXB0Iik7aWYoaCl7
aC50eXBlPWMudHlwZTtoLmNoYXJzZXQ9Yy5jaGFyc2V0O2guc3JjPWMuc3JjO2Mu
YXN5bmMmJihoLmFzeW5jPSEwKTt0cnl7dmFyIGs9ZC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaGVhZCIpWzBdOwppZighayl7dmFyIG49ZC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaHRtbCIpWzBdO2s9ZSgiaGVhZCIpO24mJm4uYXBwZW5kQ2hpbGQoayl9
ay5pbnNlcnRCZWZvcmUoaCxrLmZpcnN0Q2hpbGQpO3JldHVybiBofWNhdGNoKEkp
e319fTt2YXIgaWI9QS5pbmhlcml0KHtpbmplY3RIYXNoOiJkRzlzYjJ0aCIsQVNT
RVNTT1JfQ09PS0lFOiJhc3Nlc3NvciIsY2hlY2tBc3Nlc3NvcjpmdW5jdGlvbigp
e3ZhciBhPShuZXcgUmVnRXhwKHRoaXMuaW5qZWN0SGFzaCkpLnRlc3QoZy5sb2Nh
dGlvbi5oYXNoKTthJiZHLnNldCh0aGlzLkFTU0VTU09SX0NPT0tJRSk7cmV0dXJu
IGF8fEcuZ2V0KHRoaXMuQVNTRVNTT1JfQ09PS0lFKX0sX2luaXRDb21wb25lbnQ6
ZnVuY3Rpb24oKXt0aGlzLmdsb2JhbENvbmZpZy5nZXQoInJlbW90ZUN0cmxJbml0
ZWQiKXx8KHRoaXMuZ2xvYmFsQ29uZmlnLnNldCgicmVtb3RlQ3RybEluaXRlZCIs
ITApLGliLnN1cGVyY2xhc3MuX2luaXRDb21wb25lbnQuYXBwbHkodGhpcywKYXJn
dW1lbnRzKSx0aGlzLl9leGVjdXRlZE1zZ3M9e30say5vbihnLCJtZXNzYWdlIix0
aGlzLl9vbk1lc3NhZ2UsdGhpcyksdGhpcy5jaGVja0Fzc2Vzc29yKCkmJih0aGlz
Lmdsb2JhbENvbmZpZy5zZXQoIm9vIiwhMCksdGhpcy5nbG9iYWxDb25maWcuZ2V0
KCJzdG9wUmVjb2RlciIsZnVuY3Rpb24oKXt9KSgpLG0ubG9hZFNjcmlwdCh7c3Jj
OiJodHRwczovL3lhc3RhdGljLm5ldC9tZXRyaWthLXN0YXRpYy13YXRjaC9hc3Nl
c3Nvci1pbml0LmpzIn0sZykpKX0sX2J1aWxkUmVtb3RlSWZyYW1lOmZ1bmN0aW9u
KGEpe3ZhciBiPWYuZ2V0TmF0aXZlRnVuY3Rpb24oImNyZWF0ZUVsZW1lbnQiLGgp
KCJkaXYiKSxjPWguYm9keXx8aC5kb2N1bWVudEVsZW1lbnQ7aWYoYyl7Yi5pbm5l
ckhUTUw9J1x4M2NpZnJhbWUgbmFtZVx4M2QiUmVtb3RlSWZyYW1lIiBhbGxvd3Ry
YW5zcGFyZW5jeVx4M2QidHJ1ZSIgc3R5bGVceDNkInBvc2l0aW9uOiBhYnNvbHV0
ZTsgbGVmdDogLTk5OXB4OyB0b3A6IC05OTlweDsgd2lkdGg6IDFweDsgaGVpZ2h0
OiAxcHg7Ilx4M2VceDNjL2lmcmFtZVx4M2UnOwp2YXIgZD1iLmZpcnN0Q2hpbGQ7
ZC5vbmxvYWQ9ZnVuY3Rpb24oKXttLmxvYWRTY3JpcHQoe3NyYzphfSxkLmNvbnRl
bnRXaW5kb3cpfTtnLl95bV9fcmVtb3RlSWZyYW1lRWw9ZDtiLmNyZWF0ZVNoYWRv
d1Jvb3R8fGIud2Via2l0Q3JlYXRlU2hhZG93Um9vdD8oYy5hcHBlbmRDaGlsZChi
KSxiLnJlbW92ZUNoaWxkKGQpLChjPWIuY3JlYXRlU2hhZG93Um9vdD9iLmNyZWF0
ZVNoYWRvd1Jvb3QoKTpiLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSkmJmMuYXBw
ZW5kQ2hpbGQoZCksZy5feW1fX3JlbW90ZUlmcmFtZUNvbnRhaW5lcj1iKTooYy5h
cHBlbmRDaGlsZChkKSxnLl95bV9fcmVtb3RlSWZyYW1lQ29udGFpbmVyPWQpfX0s
X2lzQWxsb3dlZExhbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLTEhPT1mLmFycmF5SW5k
ZXhPZihbInJ1IiwidWsiLCJlbiIsInRyIl0sYSl9LF9pc0FsbG93ZWRPcmlnaW46
ZnVuY3Rpb24oYSl7cmV0dXJuL15odHRwOlwvXC8oLitcLik/d2Vidmlzb3JcLmNv
bVwvPyQvLnRlc3QoYSl9LApfaXNBbGxvd2VkU3RhdGljOmZ1bmN0aW9uKGEpe3Jl
dHVybi9eaHR0cHM/OlwvXC8oKCguK1wuKT9kZXZcLndlYnZpc29yXC5jb20pfCh5
YXN0YXRpY1wubmV0KSkoXC8uKik/JC8udGVzdChhKX0sX29uTWVzc2FnZTpmdW5j
dGlvbihhKXt0cnl7dmFyIGI9YS5vcmlnaW59Y2F0Y2goYyl7fWImJnRoaXMuX2lz
QWxsb3dlZE9yaWdpbihiKSYmKGI9aWEucGFyc2UoYS5kYXRhKSkmJiJhcHBlbmRy
ZW1vdGUiPT09Yi5hY3Rpb24mJnRoaXMuX2lzQWxsb3dlZFN0YXRpYyhiLmRvbWFp
bikmJnRoaXMuX2lzQWxsb3dlZExhbmcoYi5sYW5nKSYmIXRoaXMuX2V4ZWN1dGVk
TXNnc1tiLmlkXSYmKHRoaXMuX2V4ZWN1dGVkTXNnc1tiLmlkXT0hMCxnLl95bV9f
cG9zdE1lc3NhZ2VFdmVudD1hLGcuX3ltX19pbnBhZ2VNb2RlPWIuaW5wYWdlTW9k
ZSxnLl95bV9faW5pdE1lc3NhZ2U9Yi5pbml0TWVzc2FnZSx0aGlzLl9idWlsZFJl
bW90ZUlmcmFtZShiLmRvbWFpbisiL2Nkbi9pbnBhZ2UtcmVtb3RlLyIrCihiLm5l
d1NjcmlwdEFkZHI/Il9pbnBhZ2UtcmVtb3RlXyI6ImlucGFnZS1yZW1vdGUuIikr
Yi5sYW5nKyIuanMiKSl9fSk7SC5nZXRUaW1lc3RhbXA9ZnVuY3Rpb24oKXt2YXIg
YT1uZXcgRGF0ZSxhPVthLmdldEZ1bGxZZWFyKCksYS5nZXRNb250aCgpKzEsYS5n
ZXREYXRlKCksYS5nZXRIb3VycygpLGEuZ2V0TWludXRlcygpLGEuZ2V0U2Vjb25k
cygpXSxiPSIiLGM7Zm9yKGM9MDtjPGEubGVuZ3RoO2MrKyliKz1mLnBhZChhW2Nd
KTtyZXR1cm4gYn07SC5nZXRUaW1lem9uZT1mdW5jdGlvbigpe3JldHVybi0obmV3
IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCl9O3ZhciBqYj1BLmluaGVyaXQoe2Nv
dW50ZXI6bnVsbCxwcmVmc0Vjb21tZXJjZTpudWxsLGRhdGFMYXllck5hbWU6ImRh
dGFMYXllciIsYWxsb3dlZEV2ZW50czoiY3VycmVuY3lDb2RlIGFkZCBkZWxldGUg
cmVtb3ZlIHB1cmNoYXNlIGRldGFpbCIuc3BsaXQoIiAiKSxfaW5pdENvbXBvbmVu
dDpmdW5jdGlvbigpe3ZhciBhPQoiY3VzdG9tQXJyIjtqYi5zdXBlcmNsYXNzLl9p
bml0Q29tcG9uZW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLl9vdmVycmlk
ZVB1c2godGhpcy5wcmVmc0Vjb21tZXJjZSl8fChmLmlzU3RyaW5nKHRoaXMucHJl
ZnNFY29tbWVyY2UpJiYodGhpcy5kYXRhTGF5ZXJOYW1lPXRoaXMucHJlZnNFY29t
bWVyY2UpLGE9dGhpcy5kYXRhTGF5ZXJOYW1lLHRoaXMuX3RyeVRpbWVvdXQ9Zi5i
aW5kKHRoaXMuX3RyeVRpbWVvdXQsdGhpcyksdGhpcy5fdHJ5VGltZW91dCgpKTt0
aGlzLmNvdW50ZXIuX2Vjb21tZXJjZT1hfSxfb3ZlcnJpZGVQdXNoOmZ1bmN0aW9u
KGEpe2lmKGEmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnB1c2gpe3ZhciBiPXRoaXM7
Yi5fc2VuZChhKTt2YXIgYz1hLnB1c2g7YS5wdXNoPWZ1bmN0aW9uKCl7Yi5fc2Vu
ZChbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSk7Yy5hcHBseSh0aGlzLGFyZ3Vt
ZW50cyl9O3JldHVybiEwfXJldHVybiExfSxfdHJ5VGltZW91dDpmdW5jdGlvbigp
e3RoaXMuX292ZXJyaWRlUHVzaChnW3RoaXMuZGF0YUxheWVyTmFtZV0pfHwKZi5z
ZXRUaW1lb3V0KHRoaXMuX3RyeVRpbWVvdXQsMUUzLCJkbE9ic2VydmVyIil9LF9z
ZW5kOmZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9dGhpcy5hbGxvd2VkRXZlbnRzLGQs
ZTt2YXIgZz0wO2ZvcihlPWEubGVuZ3RoO2c8ZTtnKyspaWYoKGQ9YVtnXSkmJmQu
ZWNvbW1lcmNlKXt2YXIgaD17fTt2YXIgaz0hMTtmLmZvckVhY2hLZXkoZC5lY29t
bWVyY2UsZnVuY3Rpb24oYSxiKXswPD1mLmFycmF5SW5kZXhPZihjLGEpJiYoaz0h
MCxoW2FdPWIpfSk7ayYmYi5wdXNoKGgpfWIubGVuZ3RoJiZ0aGlzLmNvdW50ZXIu
cGFyYW1zKHtfX3ltOntlY29tbWVyY2U6Yn19KX19KSxMYj17bWF0Y2g6ZnVuY3Rp
b24oKXt0aGlzLmVuYWJsZWQoKSYmay5yZWFkeShmdW5jdGlvbigpe3ZhciBhPWYu
Z2V0TmF0aXZlRnVuY3Rpb24oImNyZWF0ZUVsZW1lbnQiLGgpKCJpZnJhbWUiKTth
Lm9ubG9hZD1mdW5jdGlvbigpe2VhLnNhdmUoImNtIixILmdldE1pbnV0ZXMoKSk7
bS5yZW1vdmVOb2RlKGEpfTthLnN0eWxlLmRpc3BsYXk9CiJub25lIjthLnNyYz1L
LnByb3RvY29sKyIvLyIrSy5ob3N0KyIvbWV0cmlrYS93YXRjaF9tYXRjaC5odG1s
IjtoLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChhKX0pfSxlbmFibGVkOmZ1
bmN0aW9uKCl7cmV0dXJuIDE0NDA8SC5nZXRNaW51dGVzKCktZWEuZ2V0TnVtKCJj
bSIpJiYidHIiPT09Zi5nZXRUbGQoKX19O3IoZnVuY3Rpb24oKXsoZnVuY3Rpb24o
YSl7ZnVuY3Rpb24gYihkKXtpZihjW2RdKXJldHVybiBjW2RdLmV4cG9ydHM7dmFy
IGU9Y1tkXT17aTpkLGw6ITEsZXhwb3J0czp7fX07YVtkXS5jYWxsKGUuZXhwb3J0
cyxlLGUuZXhwb3J0cyxiKTtlLmw9ITA7cmV0dXJuIGUuZXhwb3J0c312YXIgYz17
fTtiLm09YTtiLmM9YztiLmQ9ZnVuY3Rpb24oYSxjLGYpe2IubyhhLGMpfHxPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoYSxjLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJs
ZTohMCxnZXQ6Zn0pfTtiLm49ZnVuY3Rpb24oYSl7dmFyIGM9YSYmYS5fX2VzTW9k
dWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGFbImRlZmF1bHQiXX06CmZ1bmN0aW9uKCl7
cmV0dXJuIGF9O2IuZChjLCJhIixjKTtyZXR1cm4gY307Yi5vPWZ1bmN0aW9uKGEs
Yil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChh
LGIpfTtiLnA9IiI7cmV0dXJuIGIoYi5zPTMpfSkoezA6ZnVuY3Rpb24oYSxiLGMp
e2IuX19lc01vZHVsZT0hMDtiLmxpc3RUb0FycmF5PWZ1bmN0aW9uKGEpe3JldHVy
biBhP1tdLnNsaWNlLmNhbGwoYSk6W119fSwxOmZ1bmN0aW9uKGEsYixjKXtiLl9f
ZXNNb2R1bGU9ITA7dmFyIGQ9WyIuZ29vZ2xlc3luZGljYXRpb24uY29tLyIsIi9n
b29nbGVhZHMiXTtiLmlzR29vZ2xlU3JjPWZ1bmN0aW9uKGEpe3JldHVybiEoIWF8
fCFkLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gMDxhLmluZGV4T2YoYil9KS5s
ZW5ndGgpfX0sMzpmdW5jdGlvbihhLGIsYyl7Yi5fX2VzTW9kdWxlPSEwO2E9e2Rl
dGVjdEFkOmMoNCkuZGV0ZWN0QWR9O2cuWWE/Zy5ZYS5BZERldGVjdG9yP2E9Zy5Z
YS5BZERldGVjdG9yOgpnLllhLkFkRGV0ZWN0b3I9YTpnLllhPXtBZERldGVjdG9y
OmF9O2IuQWREZXRlY3Rvcj1hfSwzNDpmdW5jdGlvbihhLGIsYyl7Yi5fX2VzTW9k
dWxlPSEwO2IuZ2V0UGFyZW50RWxlbWVudHNDb3VudD1mdW5jdGlvbihhKXtmb3Io
dmFyIGI9MDs7KWlmKGE9YS5wYXJlbnRFbGVtZW50KWIrKztlbHNlIHJldHVybiBi
fX0sNDpmdW5jdGlvbihhLGIsYyl7Yi5fX2VzTW9kdWxlPSEwO3ZhciBkPWMoNSks
ZT1jKDkpLGY9YygzNCksaz1jKDYpLG09aC5ib2R5LHE9aC5kb2N1bWVudEVsZW1l
bnQ7Yi5kZXRlY3RBZD1mdW5jdGlvbigpe3ZhciBhPWcucGFnZVlPZmZzZXR8fHEu
c2Nyb2xsVG9wfHxtLnNjcm9sbFRvcCxiPWcucGFnZVhPZmZzZXR8fHEuc2Nyb2xs
TGVmdHx8bS5zY3JvbGxMZWZ0LGM9cS5jbGllbnRUb3B8fG0uY2xpZW50VG9wfHww
LGg9cS5jbGllbnRMZWZ0fHxtLmNsaWVudExlZnR8fDAsbD1xLnNjcm9sbFdpZHRo
fHxxLm9mZnNldFdpZHRofHxnLmlubmVyV2lkdGgsbj1xLnNjcm9sbEhlaWdodHx8
CnEub2Zmc2V0SGVpZ2h0fHxnLmlubmVySGVpZ2h0LHI9ay5nZXRGcmllbmx5V2lu
ZG93c1RyZWUoZyksdj1bXTtrLndpbmRvd3NUcmVlRWFjaChyLGZ1bmN0aW9uKGEp
e3ZhciBiPWEud2luZG93LGM9YS5wYXJlbnQsZj0wPGQuZ2V0UGFyZW50RnJpZW5k
bHlJRnJhbWVzKGIuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5sZW5ndGgsZz1l
LmdldEFkc0luV2luZG93KGIse2lzSW5JRnJhbWU6Zn0pLGY9Zy5hZEVsZW1lbnRz
LGc9Zy5pZnJhbWVQcm92aWRlcnM7aWYoYyl7dmFyIGg9Yi5mcmFtZUVsZW1lbnQs
az12LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS53aW5kb3dzVHJlZT09PWN9
KVswXS5hZEVsZW1lbnRzO2cuZm9yRWFjaChmdW5jdGlvbihhKXtrLnB1c2goe3By
b3ZpZGVyOmEsZWxlbWVudDpofSl9KX12LnB1c2goe3dpbmRvd3NUcmVlOmEsYWRF
bGVtZW50czpmfSl9KTt2LmZvckVhY2goZnVuY3Rpb24oYSl7YS5hZEVsZW1lbnRz
PWEuYWRFbGVtZW50cy5zb3J0KGZ1bmN0aW9uKGEsCmIpe3JldHVybiBmLmdldFBh
cmVudEVsZW1lbnRzQ291bnQoYS5lbGVtZW50KS1mLmdldFBhcmVudEVsZW1lbnRz
Q291bnQoYi5lbGVtZW50KX0pfSk7dmFyIHc9W10seWE9W107di5mb3JFYWNoKGZ1
bmN0aW9uKGEpe3ZhciBiPWEud2luZG93c1RyZWUsYz1iLnBhcmVudDthPWEuYWRF
bGVtZW50czt2YXIgYj1kLmdldFBhcmVudEZyaWVuZGx5SUZyYW1lcyhiLndpbmRv
dy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLGU9YltiLmxlbmd0aC0xXTthLmZv
ckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5lbGVtZW50O3lhLnB1c2goe3Byb3Zp
ZGVyOmEucHJvdmlkZXIsZWxlbWVudDpjP2U6Yn0pfSl9KTt5YS5mb3JFYWNoKGZ1
bmN0aW9uKGQpe3ZhciBlPWQuZWxlbWVudDt2YXIgZj1lLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpO3ZhciBnPWYudG9wK2EtYztmPWYubGVmdCtiLWg7dmFyIGs9ZS5j
bGllbnRXaWR0aDtlPWUuY2xpZW50SGVpZ2h0O3ZhciBtPWYrayxwPWcrZSx0PTA+
Zj8wOgpmPGw/ZjpsLHE9MD5nPzA6ZzxuP2c6bjsxMDA8PSgobT5sP2w6bT50P206
dCktdCkqKChwPm4/bjpwPnE/cDpxKS1xKSYmdy5wdXNoKHt0b3A6ZyxsZWZ0OmYs
d2lkdGg6ayxoZWlnaHQ6ZSxwcm92aWRlcjpkLnByb3ZpZGVyfSl9KTtyZXR1cm57
cGFnZTp7d2lkdGg6bCxoZWlnaHQ6bn0sd2luZG93Ont0b3A6YSxsZWZ0OmIsd2lk
dGg6Zy5pbm5lcldpZHRoLGhlaWdodDpnLmlubmVySGVpZ2h0fSxhZHM6d319fSw1
OmZ1bmN0aW9uKGEsYixjKXtiLl9fZXNNb2R1bGU9ITA7Yi5nZXRQYXJlbnRGcmll
bmRseUlGcmFtZXM9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdOzspdHJ5e2lmKGE9
YS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lRWxlbWVudCliLnB1c2go
YSk7ZWxzZSByZXR1cm4gYn1jYXRjaChsKXtyZXR1cm4gYn19fSw2OmZ1bmN0aW9u
KGEsYixjKXtmdW5jdGlvbiBkKGEpe3JldHVybiBoLmxpc3RUb0FycmF5KGEuZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpKS5maWx0ZXIoZnVu
Y3Rpb24oYSl7aWYoZy5pc1NhZmFyaSlyZXR1cm4hMTsKdHJ5e3JldHVybiBhLmNv
bnRlbnRXaW5kb3cuZG9jdW1lbnR9Y2F0Y2gocCl7cmV0dXJuITF9fSkubWFwKGZ1
bmN0aW9uKGEpe3JldHVybiBhLmNvbnRlbnRXaW5kb3d9KX1mdW5jdGlvbiBlKGEs
Yil7dmFyIGM9e3dpbmRvdzphLGNoaWxkcmVuOltdLHBhcmVudDpifTtjLmNoaWxk
cmVuPWQoYSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBlKGEsYyl9KTtyZXR1cm4g
Y31mdW5jdGlvbiBmKGEsYil7YihhKTthLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rp
b24oYSl7cmV0dXJuIGYoYSxiKX0pfWIuX19lc01vZHVsZT0hMDt2YXIgZz1jKDcp
LGg9YygwKTtiLmdldEZyaWVubHlXaW5kb3dzVHJlZT1lO2Iud2luZG93c1RyZWVF
YWNoPWZ9LDc6ZnVuY3Rpb24oYSxiLGMpe2IuX19lc01vZHVsZT0hMDthPWMoOCk7
Yi5pc1NhZmFyaT1hLmlzU2FmYXJpKCl9LDg6ZnVuY3Rpb24oYSxiLGMpe2IuX19l
c01vZHVsZT0hMDtiLmlzU2FmYXJpPWZ1bmN0aW9uKCl7dmFyIGE9bmF2aWdhdG9y
LnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpOwpyZXR1cm4tMSE9PWEuaW5kZXhPZigi
c2FmYXJpIikmJi0xPT09YS5pbmRleE9mKCJjaHJvbWUiKSYmLTE9PT1hLmluZGV4
T2YoImFuZHJvaWQiKX19LDk6ZnVuY3Rpb24oYSxiLGMpe2IuX19lc01vZHVsZT0h
MDt2YXIgZD1jKDApLGU9YygxKTtiLmdldEFkc0luV2luZG93PWZ1bmN0aW9uKGEs
Yil7ZnVuY3Rpb24gYyhhLGIpe2IuZm9yRWFjaChmdW5jdGlvbihiKXtxLnB1c2go
e3Byb3ZpZGVyOmEsZWxlbWVudDpifSl9KX12YXIgZj1iLmlzSW5JRnJhbWUsZz1h
LmRvY3VtZW50LmJvZHksaD1kLmxpc3RUb0FycmF5KGcucXVlcnlTZWxlY3RvckFs
bCgiaW1nIikpLGs9ZC5saXN0VG9BcnJheShnLnF1ZXJ5U2VsZWN0b3JBbGwoImlm
cmFtZSIpKSxsPWQubGlzdFRvQXJyYXkoZy5xdWVyeVNlbGVjdG9yQWxsKCJzY3Jp
cHQiKSksbT1kLmxpc3RUb0FycmF5KGcucXVlcnlTZWxlY3RvckFsbCgiZGl2Iikp
LHE9W10scj1bXSx2PWQubGlzdFRvQXJyYXkoZy5xdWVyeVNlbGVjdG9yQWxsKCJ5
YXRhZyIpKSwKdz1kLmxpc3RUb0FycmF5KGcucXVlcnlTZWxlY3RvckFsbCgieWF0
YWcgeWF0YWciKSk7YygieWFuZGV4Iix2LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1
cm4tMT09PXcuaW5kZXhPZihhKX0pKTtjKCJhZHJpdmVyIixrLmZpbHRlcihmdW5j
dGlvbihhKXtyZXR1cm4oYT1hLnNyYykmJi0xPGEuaW5kZXhPZigiLmFkcml2ZXIu
cnUvIil9KSk7YygiYWRmb3giLGsuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybihh
PWEuaWQpJiYtMTxhLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiYWRmb3giKX0pKTtj
KCJhZGZveCIsaC5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5zcmMpJiYt
MTxhLmluZGV4T2YoIi9iYW5uZXJzLmFkZm94LnJ1LyIpfSkpO2MoImFkZm94Iixt
LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4tMTxhLmlkLmluZGV4T2YoIkFkRm94
X2Jhbm5lcl8iKX0pKTtmJiZoLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4oYT1h
LnNyYykmJi0xPGEuaW5kZXhPZigiLmFkZm94LnJ1LyIpfSkubGVuZ3RoJiYKci5w
dXNoKCJhZGZveCIpO2suZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBlLmlzR29v
Z2xlU3JjKGEuc3JjKX0pLmZvckVhY2goZnVuY3Rpb24oYSl7cS5wdXNoKHtwcm92
aWRlcjoiZ29vZ2xlIixlbGVtZW50OmF9KX0pO2YmJmwuZmlsdGVyKGZ1bmN0aW9u
KGEpe3JldHVybiBlLmlzR29vZ2xlU3JjKGEuc3JjKX0pLmxlbmd0aCYmci5wdXNo
KCJnb29nbGUiKTtjKCJhd2FwcyIsay5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJu
KGE9YS5zcmMpJiYtMTxhLmluZGV4T2YoImF3YXBzLnlhbmRleC5uZXQvIil9KSk7
YygiY3JpdGVvIixrLmZpbHRlcihmdW5jdGlvbihhKXt2YXIgYj1hLnNyYzthPWEu
aWQ7cmV0dXJuIGImJigtMTxiLmluZGV4T2YoIi5jcml0ZW8uY29tLyIpfHxhJiYt
MTxhLmluZGV4T2YoImN0b19pZnJhbWVfIikpPyEwOiExfSkpO3JldHVybnthZEVs
ZW1lbnRzOnEsaWZyYW1lUHJvdmlkZXJzOnJ9fX19KX0sIiIsITApKCk7dmFyIE1i
PXtpbml0OmZ1bmN0aW9uKGEsCmIpe2lmKE1hdGgucmFuZG9tKCk8KGJ8fC4wMDUp
JiYhdy5nZXQoImFkRGV0ZWN0Iikpe3cuc2V0KCJhZERldGVjdCIsITApO3ZhciBj
PWZ1bmN0aW9uKGIpe3ZhciBjPWcuWWEuQWREZXRlY3Rvci5kZXRlY3RBZCgpO3Zh
ciBkPWMud2luZG93O3ZhciBlPWMucGFnZTthLnNlbmRQYXJhbXMoe19feW06e2Fk
czp7dzp7dDpkLnRvcCxsOmQubGVmdCx3OmQud2lkdGgsaDpkLmhlaWdodH0scDp7
dzplLndpZHRoLGg6ZS5oZWlnaHR9LGE6Zi5tYXAoZnVuY3Rpb24oYSl7cmV0dXJu
e3Q6YS50b3AsbDphLmxlZnQsdzphLndpZHRoLGg6YS5oZWlnaHQscDphLnByb3Zp
ZGVyfX0sYy5hZHMpLGZ1bGw6Yj8xOjB9fX0pfTt2YXIgZD1yKGZ1bmN0aW9uKCl7
ay51bihnLCJsb2FkIixkKTtjKCEwKX0sIiIsITApO2sub24oZywibG9hZCIsZCk7
Zy5zZXRUaW1lb3V0KHIoYywic2V0VGltZW91dCIsITApLDFFNCl9fX07VS5wYXJz
ZT1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ7YT1hJiZhLnJlcGxhY2UoL15cPy8s
CiIiKXx8IiI7aWYoYS5sZW5ndGgpe3ZhciBlPWEuc3BsaXQoIlx4MjYiKTtmb3Io
ZD0wO2Q8ZS5sZW5ndGg7ZCsrKWlmKGVbZF0pe3ZhciBnPWVbZF0uc3BsaXQoIlx4
M2QiKTtpZihnWzBdKXt2YXIgaD1mLnNhZmVEZWNvZGVVUklDb21wb25lbnQoZ1sw
XSk7Zz1mLnNhZmVEZWNvZGVVUklDb21wb25lbnQoKGdbMV18fCIiKS5yZXBsYWNl
KC9cKy9nLCIlMjAiKSk7YiYmaCBpbiBjP2YuaXNBcnJheShjW2hdKT9jW2hdLnB1
c2goZyk6Y1toXT1bY1toXSxnXTpjW2hdPWd9fX1yZXR1cm4gY307dmFyIFY9W10s
RT14KCksdWE9SC5nZXRUaW1lem9uZSgpLHZhPUguZ2V0VGltZXN0YW1wKCksYWE9
Zy5zY3JlZW4sRGI9NjQscGE9cS5pc0lFKCk/NTEyOjIwNDgsRWI9cS5pc0lFKCk/
NTEyOjIwNDgsZGI9cS5pc0lFKCk/MTAwOjQwMCxnYj0xMDAsSmE9Im5vaW5kZXgi
LGtiPS9cLigzZ3B8N3p8YWFjfGFjM3xhY3N8YWl8YXZpfGFwZXxhcGt8YXNmfGJt
cHxiejJ8Y2FifGNkcnxjcmMzMnxjc3N8Y3N2fGN1ZXxkaXZ4fGRtZ3xkanZ1P3xk
b2MoeHxtfGIpP3xlbWZ8ZXBzfGV4ZXxmbGFjP3xmbHZ8aXNvfHN3ZnxnaWZ8dD9n
enxqcGU/Zz98anN8bTN1OD98bTRhfG1wKDN8NHxlP2c/KXxtNHZ8bWQ1fG1rdnxt
b3Z8bXNpfG9kc3xvZyhnfG18dil8cHNkfHJhcnxyc3N8cnRmfHNlYXxzZnZ8c2l0
fHNoYTF8c3ZnfHRhcnx0aWY/Znx0b3JyZW50fHRzfHR4dHx2b2J8d2F2ZT98d21h
fHdtdnx3bWZ8d2VibXxwcHQoeHxtfGIpP3x4bHMoeHxtfGIpP3xwZGZ8cGhwc3xw
bmd8eHBpfGc/emlwKSQvaSwKTmI9K25ldyBEYXRlLExhLGthLFg9IjkzMiI7dy5p
bml0KCkuc2V0U2FmZSgiY291bnRlcnMiLHt9KS5zZXRTYWZlKCJoaXRQYXJhbSIs
e30pLnNldFNhZmUoImNvdW50ZXJOdW0iLDApLnNldFNhZmUoImhpdElkIixmLnJh
bmRvbSgxLDEwNzM3NDE4MjQpKS5zZXRTYWZlKCJfZ2xvYmFsTWV0cmlrYUhpdElk
IixmLnJhbmRvbSgpKS5zZXRTYWZlKCJ2IixYKTtnLllhLk1ldHJpa2E9ZnVuY3Rp
b24oYSxiLGMsZCl7dmFyIGU9dGhpcztyZXR1cm4gcihmdW5jdGlvbigpe2Z1bmN0
aW9uIGwobCl7dmFyIHU9ITE7aWYody5nZXQoImhpdFBhcmFtIilbaGFdKXtpZigx
IT1jfHx3LmdldCgiY291bnRlcnMiKVtoYV0pcmV0dXJuITE7dT0hMH13LmdldCgi
Y291bnRlcnMiKVtoYV09ZTt3LmdldCgiaGl0UGFyYW0iKVtoYV09MTtlLl93ZWJ2
aXNvcj16JiZ6LndlYnZpc29yfHwhMTtlLl9kaXJlY3RDYW1wYWlnbj16JiZ6LmRp
cmVjdENhbXBhaWduO3omJnoudHJhY2tIYXNoJiZLKCEwKTtpZighdSl7dmFyIEw9
Cm5ldyBlYih7cHJvdG9jb2w6Imh0dHBzOiIsZ2xvYmFsQ29uZmlnOncsY291bnRl
cklkOmEsY291bnRlclR5cGU6YyxoaWQ6bGEsdHo6dWEsdHM6dmEsdXJsOkUuaHJl
ZixlbmFibGVkOmUuX3dlYnZpc29yfSk7ZS5yZXBsYWNlUGhvbmVzKCk7dT1uZXcg
aGIoe2dsb2JhbENvbmZpZzp3fSk7dmFyIHA9ZnVuY3Rpb24odSl7dmFyIG49bmV3
IEthKHtwcm90b2NvbDoiaHR0cHM6Iixjb3VudGVyVHlwZTpjLGNvdW50ZXJJZDph
LHRyYWNrSGFzaDpZLGhpdElkOmxhLHdlYnZpc29yOmUuX3dlYnZpc29yLGNvdW50
ZXI6ZSxnbG9iYWxDb25maWc6dyxjb3VudGVyTnVtOm9hfSksTT17dXQ6VCxoZTp6
P35+ei5odHRwRXJyb3I6MCxhZDoxPT1jJiZnLllhJiZnLllhLkRpcmVjdCxwdjoh
MCxjcGY6cS5pc0Nocm9tZVBkZigpLHNhdmVSZWY6ITB9O0xhPStuZXcgRGF0ZTtu
LnNlbmRIaXQoe3VybDptYSxyZWZlcnJlcjpYLHRpdGxlOm0uZ2V0RG9jdW1lbnRU
aXRsZSgpLHZQYXJhbXM6Yix1c2VyUGFyYW1zOlosCm5vaGl0OmQsZXhwZXJpbWVu
dHM6YWEsbW9kZXM6TSx2aXNpdENvbG9yOkwuZ2V0VmMoKSxoYXNQcmVyZW5kZXI6
bCx0czp2YSx0ejp1YSxjYWxsYmFjazpmdW5jdGlvbihkLGwpe2Q9ZHx8e307dmFy
IG09IjAiIT09ZC5wY3M7ZWEuaW5pdChsKTtMYi5tYXRjaCgpO0liLnN5bmMoYSxj
LG0sdyk7ZmEubG9nKCJQYWdlVmlldy4gQ291bnRlciAiLGEsIi4gVVJMOiAiLEUu
aHJlZiwiLiBSZWZlcnJlcjogIitoLnJlZmVycmVyLCIuIFBhcmFtczogIixiKTtr
YXx8KGthPStuZXcgRGF0ZSk7TC5zdGFydChkLndlYnZpc29yKTt2YXIgbj1kLm1w
MjttPW5ldyBHKHtjb3VudGVySWQ6YX0pO20uZXJhc2UoIm1wMl9zdWJzdHMiKTtp
ZihuKXtiOnt2YXIgTT1uLmNvbmRpdGlvbnM7dmFyIHE7aWYoTSYmTS5sZW5ndGgp
Zm9yKHE9MDtxPE0ubGVuZ3RoO3ErKyl7dmFyIHA9TVtxXTtpZigicmVmIj09cC50
eXBlKXA9emIocCk7ZWxzZSBpZigiYWR2Ij09cC50eXBlKXt2YXIgRDt2YXIgcj1w
O3ZhciB0PQpZYS5fbWV0cmlrYS5jb3VudGVyLl9kaXJlY3RDYW1wYWlnbjt2YXIg
dj1yLlNlcnZpY2VOYW1lUGF0dGVybjt2YXIgYmE9ci5SZWZlcmVyUGF0dGVybjtw
PXQ/ci5kaXJlY3Rfb3JkZXJzOnIuZGlyZWN0X2NhbXA7dmFyIHFhPWgucmVmZXJy
ZXIsej1VLnBhcnNlKEUuc2VhcmNoKSxBPUFiKEUuc2VhcmNoLEUuaGFzaCksQj17
fTt2YXIgeD1bInNvdXJjZSIsIm1lZGl1bSIsImNhbXBhaWduIiwidGVybSIsImNv
bnRlbnQiXTtmb3IoRD0wO0Q8eC5sZW5ndGg7RCsrKXpbInV0bV8iK3hbRF1dJiYo
Qlt4W0RdXT16WyJ1dG1fIit4W0RdXSk7dmFyIEM9dD8iZGlyZWN0LnlhbmRleC5y
dSI6QSYmQS5zZXJ2aWNlfHxCLnNvdXJjZTtEPSExO2lmKCFEJiZ2JiZ2Lmxlbmd0
aClmb3IoeD0wO3g8di5sZW5ndGg7eCsrKWlmKChuZXcgUmVnRXhwKHZbeF0sImki
KSkudGVzdChDKSl7RD0hMDticmVha31pZighRCYmIXIueWFuZGV4X2RpcmVjdCYm
YmEmJmJhLmxlbmd0aClmb3Iodj0wO3Y8YmEubGVuZ3RoO3YrKylpZigobmV3IFJl
Z0V4cChiYVt2XSwKImkiKSkudGVzdChxYSkpe0Q9ITA7YnJlYWt9IUQmJnIuZ29v
Z2xlX2Fkd29yZHMmJnouZ2NsaWQmJihEPSEwKTtpZihEJiZwJiZwLmxlbmd0aCYm
KEQ9ITEsdD10fHxBJiZBLmNhbXBhaWdufHxCJiZCLmNhbXBhaWduKSlmb3Iocj0w
O3I8cC5sZW5ndGg7cisrKWlmKHBbcl09PXQpe0Q9ITA7YnJlYWt9cD1EfWVsc2Ug
cD0hMTtpZihwKXtNW3FdLnRyYWNrX2lkJiZtLmNyZWF0ZSgibXAyX3RyYWNrIixN
W3FdLnRyYWNrX2lkLDQzMjAwKTticmVhayBifX19TT1tLnJlYWQoIm1wMl90cmFj
ayIpO249bi5zdWJzdHMmJm4uc3Vic3RzW01dO00mJm4/KG0uY3JlYXRlKCJtcDJf
c3Vic3RzIixmLnRvSlNPTihuKSksbT0kYShuKSxlLnBhcmFtcygiX195bSIsbT8i
bXBfdHJhY2tpZCI6Im1wX3RyYWNraWRfYmFkIixNKSk6YWIoKX1lbHNlIGFiKCk7
ay5vbihnLCJsb2FkIixlLnJlcGxhY2VQaG9uZXMsZSk7ZS5faW5pdGVkPSEwO3Um
JnUoKX19KX07dS5zeW5jKHApfW4oKTt6JiYoei5lbmFibGVBbGw/Cih2KCEwKSx0
KCEwKSxBKCkpOih6LmNsaWNrbWFwJiZ0KHouY2xpY2ttYXApLHoudHJhY2tMaW5r
cyYmdih6LnRyYWNrTGlua3MpLHouYWNjdXJhdGVUcmFja0JvdW5jZSYmQSh6LmFj
Y3VyYXRlVHJhY2tCb3VuY2UpKSwoei5lY29tbWVyY2V8fHoudXNlRGF0YUxheWVy
KSYmbmV3IGpiKHtjb3VudGVyOmUscHJlZnNFY29tbWVyY2U6ei5lY29tbWVyY2V9
KSx6LnRyaWdnZXJFdmVudCYmZi5hc3luYyhmdW5jdGlvbigpe0MuZGlzcGF0Y2hD
dXN0b21FdmVudCgieWFjb3VudGVyIithKyJpbml0ZWQiKX0pKX1mdW5jdGlvbiB2
KGEpe3ZhciBiPXt9O3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAic3RyaW5nIjpiLm9u
PSEwO2JyZWFrO2Nhc2UgIm9iamVjdCI6Yi5vbj0hMDticmVhaztjYXNlICJib29s
ZWFuIjpiLm9uPWE7YnJlYWs7ZGVmYXVsdDpyZXR1cm59ZS5fdHJhY2tMaW5rcz1i
fWZ1bmN0aW9uIG4oKXt2KCExKTtrLm9uKGgsImNsaWNrIixmdW5jdGlvbihhKXtl
Ll90cmFja0xpbmtzJiYKZS5fdHJhY2tMaW5rcy5vbiYmSShhKX0pfWZ1bmN0aW9u
IEkoYSl7dmFyIGI9dWIoYSksYztpZihiKXthPSExO3ZhciBkPShjPSIiK2IuaHJl
Zik/Yy5zcGxpdCgvXD8vKVswXToiIjt2YXIgZT1mdW5jdGlvbihhKXt2YXIgZD1X
YShiKTtSLnNlbmRDbGlja0xpbmsoe3VybDpjLHRpdGxlOmM9PWQ/IiI6ZCxtb2Rl
czphfSl9O2lmKGtiLnRlc3QoZCl8fGtiLnRlc3QoYyl8fFhhKGMsQil8fFhhKGQs
QikpYT0hMDt2YXIgZz1tLmNsYXNzTmFtZUV4aXN0cyhiLCJ5bS1kaXNhYmxlLXRy
YWNrbGluayIpO2Q9bS5jbGFzc05hbWVFeGlzdHMoYiwieW0tZXh0ZXJuYWwtbGlu
ayIpO2d8fChnPXtsbjohMCxkbDphfSxkP2UoZyk6KGQ9Yi5ob3N0bmFtZXx8Zi5w
YXJzZVVybChiLmhyZWYpLmhvc3RuYW1lfHwiIix2Yih4KCkuaG9zdG5hbWUsZCk/
YT8oZy5sbj0hMSxlKGcpKTooYT1XYShiKSkmJmEhPWMmJkouc2V0KCJpbCIsZi50
cmltKGEsZ2IpKTpjJiYtMSE9Yy5zZWFyY2goL14gKihkYXRhfGphdmFzY3JpcHQp
Oi9pKXx8CihnLnV0PUphLGUoZykpKSl9fWZ1bmN0aW9uIHQoYil7InVuZGVmaW5l
ZCI9PXR5cGVvZiBiJiYoYj0hMCk7ITA9PT1iJiYoYj17fSk7ZS5fY2xpY2ttYXAm
JmUuX2NsaWNrbWFwLmRlc3Ryb3koKTtiJiYoZS5fY2xpY2ttYXA9bmV3IEtiKHtn
bG9iYWxDb25maWc6dyxmaWx0ZXI6Yi5maWx0ZXIsaWdub3JlVGFnczpiLmlnbm9y
ZVRhZ3MscXVvdGE6Yi5xdW90YSxpc1RyYWNrSGFzaDpiLmlzVHJhY2tIYXNoLHBy
b3RvY29sOiJodHRwczoiLGNvdW50ZXJJZDphLGNvdW50ZXJUeXBlOmMsc3RhcnRU
aW1lOk5ifSkpfWZ1bmN0aW9uIHAoYSxiKXtmdW5jdGlvbiBjKCl7aWYoIXIpe3Am
JmYuY2xlYXJUaW1lb3V0KHApO3ZhciBjPW0/TDpMKyArbmV3IERhdGUtbjtjPWIt
YzswPmMmJihjPTApO3A9Zi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cj0hMDtlKCEx
KTthKCl9LGMsInRyYWNrVXNlclRpbWUiKX19ZnVuY3Rpb24gZCgpe2x8fCh1PSEw
LG09ITEsbD0hMCxjKCkpfWZ1bmN0aW9uIGUoYSl7dmFyIGI7CmZvcihiPTA7Yjx0
Lmxlbmd0aDtiKz0zKWlmKGEpay5vbih0W2JdLHRbYisxXSx0W2IrMl0pO2Vsc2Ug
ay51bih0W2JdLHRbYisxXSx0W2IrMl0pfXZhciB1PSExLGw9ITEsbT0hMCxMPTAs
bj0rbmV3IERhdGUscD1udWxsLHI9ITE7aWYocS5pc0lFKCkpZi5zZXRUaW1lb3V0
KGEsYiwidHJhY2tVc2VyVGltZSIpO2Vsc2V7dmFyIHQ9W2csImJsdXIiLGZ1bmN0
aW9uKCl7bT11PWw9ITA7TCs9K25ldyBEYXRlLW47bj0rbmV3IERhdGU7YygpfSxn
LCJmb2N1cyIsZnVuY3Rpb24oKXt1fHxsfHwoTD0wKTtuPStuZXcgRGF0ZTt1PWw9
ITA7bT0hMTtjKCl9LGgsImNsaWNrIixkLGgsIm1vdXNlbW92ZSIsZCxoLCJrZXlk
b3duIixkLGgsInNjcm9sbCIsZF07ZSghMCk7YygpfX1mdW5jdGlvbiBBKGIpeyJu
dW1iZXIiIT10eXBlb2YgYiYmKGI9MTVFMyk7aWYoIWUuX2lzQWNjdXJhdGVUcmFj
a0JvdW5jZSl7ZS5faXNBY2N1cmF0ZVRyYWNrQm91bmNlPSEwO3ZhciBjPW5ldyBR
KHtjb3VudGVySWQ6YX0pOwp2YXIgZD1jLmdldCgibGFzdEhpdCIpO2Muc2V0KCJs
YXN0SGl0IiwrbmV3IERhdGUpOygoYz1jLmdldCgibGFzdEhpdCIpKSYmKCFkfHxk
PGMtMThFNSl8fCF3YihoLnJlZmVycmVyLHgoKS5ocmVmKXx8LjE+TWF0aC5yYW5k
b20oKSkmJnAoZnVuY3Rpb24oKXtlLm5vdEJvdW5jZSgpfSxiKX19ZnVuY3Rpb24g
SChhKXt2YXIgYj1mdW5jdGlvbigpe3ZhciBhPXgoKS5oYXNoLnNwbGl0KCIjIilb
MV07aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhKXJldHVybiExO3ZhciBiPWEuaW5k
ZXhPZigiPyIpOzA8YiYmKGE9YS5zdWJzdHJpbmcoMCxiKSk7cmV0dXJuIGF9O3Zh
ciBjPWIoKTsoZnVuY3Rpb24gYmEoKXt2YXIgZD1iKCk7ZCE9PWMmJihhKCksYz1k
KTtwYT1mLnNldFRpbWVvdXQoYmEsMjAwLCJ0cmFja0hhc2giKX0pKCl9ZnVuY3Rp
b24gSyhhKXtpZighMT09PWEpWSYmKCJvbmhhc2hjaGFuZ2UiaW4gZz9rLnVuKGcs
Imhhc2hjaGFuZ2UiLE4pOmYuY2xlYXJUaW1lb3V0KHBhKSxZPSExKTsKZWxzZSBp
ZihhPU4sIVkpe2lmKCJvbmhhc2hjaGFuZ2UiaW4gZylrLm9uKGcsImhhc2hjaGFu
Z2UiLGEpO2Vsc2UgSChhKTtZPSEwfVIuc2V0VHJhY2tIYXNoKFkpO2UuX3RyYWNr
SGFzaD1ZfWZ1bmN0aW9uIE4oKXt2YXIgYT17dXQ6VCxhZDoxPT1jJiZnLllhJiZn
LllhLkRpcmVjdCx3aDohMCxzYXZlUmVmOiEwLHB2OiEwfTtWPWphLmxhc3RSZWZl
cnJlcj1XO1Iuc2VuZEFqYXhIaXQoe3VybDp4KCkuaHJlZix0aXRsZTptLmdldERv
Y3VtZW50VGl0bGUoKSxyZWZlcnJlcjpWLG1vZGVzOmF9KTtXPXgoKS5ocmVmfWZ1
bmN0aW9uIFMoYSxiLGMpe2E9eGEucGFyc2VWYWxpZGF0ZShhLGIpO2I9W107YSYm
KGIucHVzaChhKSxjPWN8fHt9LGYuaXNGdW5jdGlvbihjLmNhbGxiYWNrKSYmKGIu
cHVzaChjLmNhbGxiYWNrKSxjLmN0eCYmYi5wdXNoKGMuY3R4KSkpO2IubGVuZ3Ro
JiZlLnBhcmFtcy5hcHBseShlLGIpfXZhciBUPSIiLFY9IiIsVz1qYS5sYXN0UmVm
ZXJyZXI9RS5ocmVmO3cuc2V0U2FmZSgiY291bnRlciIsCmUpO2lmKCJvYmplY3Qi
PT10eXBlb2YgYSl7dmFyIHo9YTtkPWEuZGVmZXI7VD1hLnV0O2M9YS50eXBlO2I9
YS5wYXJhbXM7dmFyIFo9YS51c2VyUGFyYW1zO3ZhciBhYT16LmV4cGVyaW1lbnRz
O3ZhciBjYT16Lm5jazt2YXIgbWE9YS51cmw7dmFyIFg9YS5yZWZlcnJlcjthPWEu
aWR9KGZ1bmN0aW9uKGEpe2lmKGcucGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PT10
eXBlb2YgcGVyZm9ybWFuY2UuZ2V0RW50cmllcyYmKGE9PT1QJiYoYT0xKSwhKE1h
dGgucmFuZG9tKCk+PWEpKSl7YT17MTg4MjY4OTYyMjoxLDIzMTgyMDUwODA6MSwz
MTE1ODcxMTA5OjEsMzYwNDg3NTEwMDoxLDMzOTM2Njk5NDoxLDI4OTA0NTIzNjU6
MSw4NDkzNDAxMjM6MSwxNzM4NzI2NDY6MSwyMzQzOTQ3MTU2OjEsNjU1MDEyOTM3
OjEsMTk5NjUzOTY1NDoxLDIwNjU0OTgxODU6MSw4MjM2NTEyNzQ6MSwxMjI4MjQ2
MToxLDE1NTU3MTkzMjg6MSwxNDE3MjI5MDkzOjEsMTM4Mzk2OTg1OjF9O3ZhciBi
PXBlcmZvcm1hbmNlLmdldEVudHJpZXMoKSwKYz17fSxkO2ZvcihkPTA7ZDxiLmxl
bmd0aDtkKyspe3ZhciBlPWJbZF07dmFyIGg9ZS5uYW1lLnJlcGxhY2UoL15odHRw
cz86XC9cLy8sIiIpLnNwbGl0KCI/IilbMF07dmFyIGs9Zi5mbnYzMmEoaCk7YVtr
XSYmIWNbaF0mJihjW2hdPXtkbnM6TWF0aC5yb3VuZChlLmRvbWFpbkxvb2t1cEVu
ZC1lLmRvbWFpbkxvb2t1cFN0YXJ0KSx0Y3A6TWF0aC5yb3VuZChlLmNvbm5lY3RF
bmQtZS5jb25uZWN0U3RhcnQpLGR1cmF0aW9uOk1hdGgucm91bmQoZS5kdXJhdGlv
bikscmVzcG9uc2U6TWF0aC5yb3VuZChlLnJlc3BvbnNlRW5kLWUucmVxdWVzdFN0
YXJ0KSxwYWdlczpFLmhyZWZ9KX1mLmtleXMoYykubGVuZ3RoJiYobmV3IGdhKS5s
b2dQYXJhbXMoe3RpbWluZ3M4OmN9KX19KSgyNDIyNjQ0Nz09YT8xOi4wMDIpO21h
PW1hP21hOkUuaHJlZjtYPVg/WDpoLnJlZmVycmVyO2E9YXx8MDsvXlxkKyQvLnRl
c3QoYSl8fChhPTApO2M9Y3x8MDt2YXIgaGE9YSsiOiIrYztpZih3LmdldCgiY291
bnRlcnMiKVtoYV0pcmV0dXJuIHcuZ2V0KCJjb3VudGVycyIpW2hhXTsKdmFyIGxh
PXcuZ2V0KCJoaXRJZCIpO3cuc2V0KCJjb3VudGVyTnVtIix3LmdldCgiY291bnRl
ck51bSIpKzEpO3ZhciBvYT13LmdldCgiY291bnRlck51bSIpO2NhfHwoTy5pbml0
Q29va2llKCksY2IuaW5pdCh3KSk7Ty5yZXRyYW5zbWl0KHcpO3ZhciBSPW5ldyBk
YSh7cHJvdG9jb2w6Imh0dHBzOiIsY291bnRlclR5cGU6Yyxjb3VudGVySWQ6YSxo
aXRJZDpsYSxjb3VudGVyOmUsZ2xvYmFsQ29uZmlnOncsY291bnRlck51bTpvYX0p
O2UucmVwbGFjZVBob25lcz1yKGZ1bmN0aW9uKCl7dmFyIGIsYzt0cnl7KGI9KG5l
dyBHKHtjb3VudGVySWQ6YX0pKS5yZWFkKCJtcDJfc3Vic3RzIikpJiYoYz1pYS5w
YXJzZShiKSkmJiRhKGMsITApfWNhdGNoKE0pe31yZXR1cm4gZX0sImNvdW50ZXIu
cmVwbGFjZVBob25lcyIpO2UucmVhY2hHb2FsPXIoZnVuY3Rpb24oYixjLGQsZil7
Mjw9YXJndW1lbnRzLmxlbmd0aCYmImZ1bmN0aW9uIj09PXR5cGVvZiBjJiYoZj1k
LGQ9YyxjPVApO2ZhLmxvZygiUmVhY2ggZ29hbC4gQ291bnRlcjogIisKYSsiLiBH
b2FsIGlkOiAiK2IrIi4gUGFyYW1zOiAiLGMpO1Iuc2VuZEdvYWwoYix7dlBhcmFt
czpjLGNhbGxiYWNrOmQsY3R4OmZ9KTtyZXR1cm4gZX0sImNvdW50ZXIucmVhY2hH
b2FsIik7ZS50cmFja0xpbmtzPXIoZnVuY3Rpb24oYSl7dihhKTtyZXR1cm4gZX0s
ImNvdW50ZXIudHJhY2tMaW5rcyIpO3ZhciBKPW5ldyBRKHtjb3VudGVySWQ6YX0p
O2UuaGl0PXIoZnVuY3Rpb24oYixjLGQsZyxoLGspe2I/KGYuaXNPYmplY3QoYykm
JihkPWMucmVmZXJlcixnPWMucGFyYW1zLGg9Yy5jYWxsYmFjayxrPWMuY3R4LGM9
Yy50aXRsZSksZmEubG9nKCJQYWdlVmlldy4gQ291bnRlciAiK2EsIi4gVVJMOiAi
K2IsIi4gUmVmZXJyZXI6ICIrZCwiLiBQYXJhbXM6ICIsZyksUi5zZW5kSGl0KHt1
cmw6Yix0aXRsZTpjLHJlZmVycmVyOmQsdlBhcmFtczpnLGNhbGxiYWNrOmgsY3R4
Omt9KSk6Zi53YXJuaW5nKCJFbXB0eSBoaXQgdXJsIik7cmV0dXJuIGV9LCJjb3Vu
dGVyLmhpdCIpO2UucGFyYW1zPQpyKGZ1bmN0aW9uKGIpe3ZhciBjPWFyZ3VtZW50
cy5sZW5ndGgsZD1jLGc9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7aWYoYil7
aWYoMTxhcmd1bWVudHMubGVuZ3RoKXtpZihmLmlzRnVuY3Rpb24oYXJndW1lbnRz
W2MtMV0pKXt2YXIgaD1hcmd1bWVudHNbYy0xXTtkPWMtMX1lbHNlIGlmKGYuaXNG
dW5jdGlvbihhcmd1bWVudHNbYy0yXSkpe2g9YXJndW1lbnRzW2MtMl07dmFyIGs9
YXJndW1lbnRzW2MtMV07ZD1jLTJ9Zz1bXS5zbGljZS5jYWxsKGcsMCxkKTsxPGcu
bGVuZ3RoJiYoZz1bZi5hcnJheTJQcm9wcyhnKV0pfWZhLmxvZygiVXNlciBwYXJh
bXMuIENvdW50ZXIgIithKyIuIFBhcmFtczogIixnWzBdKTtSLnNlbmRQYXJhbXMo
Z1swXSxoLGspfWVsc2UgZi53YXJuaW5nKCJXcm9uZyBwYXJhbXMiKTtyZXR1cm4g
ZX0sImNvdW50ZXIucGFyYW1zIik7ZS5maWxlPXIoZnVuY3Rpb24oYSxiKXthPyhi
PWJ8fHt9LFIuc2VuZEZpbGVVcGxvYWQoe3VybDphLHRpdGxlOmIudGl0bGUsCnZQ
YXJhbXM6Yi5wYXJhbXMsY2FsbGJhY2s6Yi5jYWxsYmFjayxjdHg6Yi5jdHh9KSk6
Zi53YXJuaW5nKCJFbXB0eSBmaWxlIHVybCIpO3JldHVybiBlfSwiY291bnRlci5m
aWxlIik7ZS5leHRMaW5rPXIoZnVuY3Rpb24oYSxiKXthPyhiPWJ8fHt9LFIuc2Vu
ZEV4dExpbmsoe3VybDphLHRpdGxlOmIudGl0bGUsdlBhcmFtczpiLnBhcmFtcyxj
YWxsYmFjazpiLmNhbGxiYWNrLGN0eDpiLmN0eH0pKTpmLndhcm5pbmcoIkVtcHR5
IGxpbmsiKTtyZXR1cm4gZX0sImNvdW50ZXIuZXh0TGluayIpO2Uubm90Qm91bmNl
PXIoZnVuY3Rpb24oYSl7dmFyIGI9MDthPWF8fHt9O0xhJiZrYSYmKGI9a2EtTGEp
O1Iuc2VuZE5vdEJvdW5jZShiLHtjYWxsYmFjazphLmNhbGxiYWNrLGN0eDphLmN0
eH0pO3JldHVybiBlfSwiY291bnRlci5ub3RCb3VuY2UiKTt2YXIgQj1bXTtlLmFk
ZEZpbGVFeHRlbnNpb249ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIGYud2Fybmlu
ZygiRW1wdHkgZXh0ZW5zaW9uIiksCmU7InN0cmluZyI9PXR5cGVvZiBhP0IucHVz
aChhKTpCPUIuY29uY2F0KGEpO3JldHVybiBlfTtlLmNsaWNrbWFwPWZ1bmN0aW9u
KGEpe3QoYSk7cmV0dXJuIGV9O2UuYWNjdXJhdGVUcmFja0JvdW5jZT1mdW5jdGlv
bihhKXtBKGEpO3JldHVybiBlfTt2YXIgcGE9bnVsbDt2YXIgWT0hMTtlLnRyYWNr
SGFzaD1mdW5jdGlvbihhKXtLKGEpO3JldHVybiBlfTt2YXIgeGE9e3JlcXVpcmVk
RWNvbW1lcmNlRmllbGRzOlsiY3VycmVuY3kiLCJnb29kcyJdLHBhcnNlVmFsaWRh
dGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnZhbGlkYXRlKGEsYiksZDtpZigh
Yy5pc1ZhbGlkKXJldHVybiBjb25zb2xlJiZjb25zb2xlLmxvZyhjLm1lc3NhZ2Up
LCExO2M9e307Y1thXT17fTtiLmN1cnJlbmN5JiYoYy5jdXJyZW5jeUNvZGU9Yi5j
dXJyZW5jeSk7Yi5nb29kcyYmKGNbYV0ucHJvZHVjdHM9Yi5nb29kcyk7Zm9yKGQg
aW4gYiliLmhhc093blByb3BlcnR5KGQpJiYtMT09PWYuYXJyYXlJbmRleE9mKHRo
aXMucmVxdWlyZWRFY29tbWVyY2VGaWVsZHMsCmQpJiYoY1thXS5hY3Rpb25GaWVs
ZHx8KGNbYV0uYWN0aW9uRmllbGQ9e30pLGNbYV0uYWN0aW9uRmllbGRbZF09Yltk
XSk7cmV0dXJue19feW06e2Vjb21tZXJjZTpbY119fX0sdmFsaWRhdGU6ZnVuY3Rp
b24oYSxiKXt2YXIgYz0hMSxkPSIiO2lmKGYuaXNPYmplY3QoYikpc3dpdGNoKGEp
e2Nhc2UgImRldGFpbCI6Y2FzZSAiYWRkIjpjYXNlICJyZW1vdmUiOmYuaXNBcnJh
eShiLmdvb2RzKSYmYi5nb29kcy5sZW5ndGg/KGM9Zi5hcnJheUV2ZXJ5KGIuZ29v
ZHMsZnVuY3Rpb24oYSl7cmV0dXJuIGYuaXNPYmplY3QoYSkmJihmLmlzU3RyaW5n
KGEuaWQpfHxmLmlzTnVtYmVyKGEuaWQpfHxmLmlzU3RyaW5nKGEubmFtZSl8fGYu
aXNTdHJpbmcoYS5uYW1lKSl9KSl8fChkPSJBbGwgaXRlbXMgaW4gJ2dvb2RzJyBz
aG91bGQgYmUgb2JqZWN0cyBhbmQgY29udGFpbiAnaWQnIG9yICduYW1lJyBmaWVs
ZCIpOmQ9IkVjb21tZXJjZSBkYXRhIHNob3VsZCBjb250YWluICdnb29kcycgbm9u
LWVtcHR5IGFycmF5IjsKYnJlYWs7Y2FzZSAicHVyY2hhc2UiOmYuaXNOdW1iZXIo
Yi5pZCl8fGYuaXNTdHJpbmcoYi5pZCk/Yz0hMDpkPSJQdXJjaGFzZSBvYmplY3Qg
c2hvdWxkIGNvbnRhaW4gc3RyaW5nIG9yIG51bWJlciAnaWQnIGZpZWxkIn1lbHNl
IGQ9IkVjb21tZXJjZSBkYXRhIHNob3VsZCBiZSBhbiBvYmplY3QiO3JldHVybntp
c1ZhbGlkOmMsbWVzc2FnZTpkfX19O2UuZWNvbW1lcmNlRGV0YWlsPXIoZnVuY3Rp
b24oYSxiKXtTKCJkZXRhaWwiLGEsYik7cmV0dXJuIGV9LCJlY29tbWVyY2UuZGV0
YWlsIik7ZS5lY29tbWVyY2VBZGQ9cihmdW5jdGlvbihhLGIpe1MoImFkZCIsYSxi
KTtyZXR1cm4gZX0sImVjb21tZXJjZS5hZGQiKTtlLmVjb21tZXJjZVJlbW92ZT1y
KGZ1bmN0aW9uKGEsYil7UygicmVtb3ZlIixhLGIpO3JldHVybiBlfSwiZWNvbW1l
cmNlLnJlbW92ZSIpO2UuZWNvbW1lcmNlUHVyY2hhc2U9cihmdW5jdGlvbihhLGIp
e1MoInB1cmNoYXNlIixhLGIpO3JldHVybiBlfSwiZWNvbW1lcmNlLnB1cmNoYXNl
Iik7CmUudXNlclBhcmFtcz1yKGZ1bmN0aW9uKGEsYixjKXtmLmlzT2JqZWN0KGEp
P2UucGFyYW1zKHtfX3ltdTphfSxifHxmdW5jdGlvbigpe30sYyk6Zi53YXJuaW5n
KCJXcm9uZyB1c2VyIHBhcmFtcyIpO3JldHVybiBlfSwidXBhcmFtcyIpO2UuZXhw
ZXJpbWVudHM9cihmdW5jdGlvbihhLGIsYyl7Ui5zZW5kRXhwZXJpbWVudHMoe2Nh
bGxiYWNrOmIsY3R4OmMsZXhwZXJpbWVudHM6YX0pO3JldHVybiBlfSwiZXhwcyIp
O2UuaWQ9ZS5zZXRVc2VySUQ9cihmdW5jdGlvbihhLGIsYyl7Zi5pc1N0cmluZyhh
KXx8Zi5pc051bWJlcihhKT9lLnBhcmFtcyh7X195bTp7dXNlcl9pZDphfX0sYnx8
ZnVuY3Rpb24oKXt9LGMpOmYud2FybmluZygiSW5jb3JyZWN0IHVzZXIgSUQiKTty
ZXR1cm4gZX0sImlkIik7dmFyIEVhPW5ldyBHO2UuZ2V0Q2xpZW50SUQ9cihmdW5j
dGlvbigpe3JldHVybiBFYS5yZWFkKCJ1aWQiKX0sImd1aWQiKTtlLmVuYWJsZUFs
bD1mdW5jdGlvbigpe3YoITApO3QoITApOwpBKCk7cmV0dXJuIGV9O2UudXBsb2Fk
UGFnZT1mdW5jdGlvbigpe307TWIuaW5pdChSKTtlLl9wZXJmb3JtYW5jZVRpbWlu
Zz1aYTtpZihhKWlmKCJwcmVyZW5kZXIiPT1oLndlYmtpdFZpc2liaWxpdHlTdGF0
ZSl7Ui5zZW5kUHJlcmVuZGVySGl0KHt1cmw6RS5ocmVmLHRpdGxlOm0uZ2V0RG9j
dW1lbnRUaXRsZSgpLHJlZmVycmVyOmgucmVmZXJyZXJ9KTt2YXIgd2E9ZnVuY3Rp
b24oKXsicHJlcmVuZGVyIiE9aC53ZWJraXRWaXNpYmlsaXR5U3RhdGUmJihrLnVu
KGgsIndlYmtpdHZpc2liaWxpdHljaGFuZ2UiLHdhKSxsKCEwKSl9O2sub24oaCwi
d2Via2l0dmlzaWJpbGl0eWNoYW5nZSIsd2EpfWVsc2UgbCghMSl9LCJpbml0Iiko
KX07bmV3IGliKHtnbG9iYWxDb25maWc6d30pO2cuWWEuTWV0cmlrYS5jb3VudGVy
cz1mdW5jdGlvbigpe3ZhciBhPVtdO2YuZm9yRWFjaEtleSh3LmdldCgiY291bnRl
cnMiKSxmdW5jdGlvbihiLGMpe3ZhciBkPWIuc3BsaXQoIjoiKTthLnB1c2goe2lk
OitkWzBdLAp0eXBlOitkWzFdLGFjY3VyYXRlVHJhY2tCb3VuY2U6Yy5faXNBY2N1
cmF0ZVRyYWNrQm91bmNlLGNsaWNrbWFwOmMuX2NsaWNrbWFwJiZjLl9jbGlja21h
cC5fc3RhcnQsb2xkQ29kZTohIWcueWFfY2lkLHRyYWNrSGFzaDohIWMuX3RyYWNr
SGFzaCx0cmFja0xpbmtzOmMuX3RyYWNrTGlua3MmJmMuX3RyYWNrTGlua3Mub24s
d2Vidmlzb3I6ISFjLl93ZWJ2aXNvcn0pfSk7cmV0dXJuIGF9O3cuc2V0U2FmZSgi
Z2V0Q291bnRlcnMiLGZ1bmN0aW9uKCl7dmFyIGE9W107Zi5mb3JFYWNoS2V5KHcu
Z2V0KCJjb3VudGVycyIpLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yi5zcGxpdCgiOiIp
O2EucHVzaCh7aWQ6K2RbMF0sdHlwZTorZFsxXSxhY2N1cmF0ZVRyYWNrQm91bmNl
OmMuX2lzQWNjdXJhdGVUcmFja0JvdW5jZSxjbGlja21hcDpjLl9jbGlja21hcCYm
Yy5fY2xpY2ttYXAuX3N0YXJ0LG9sZENvZGU6ISFnLnlhX2NpZCx0cmFja0hhc2g6
ISFjLl90cmFja0hhc2gsdHJhY2tMaW5rczpjLl90cmFja0xpbmtzJiYKYy5fdHJh
Y2tMaW5rcy5vbix3ZWJ2aXNvcjohIWMuX3dlYnZpc29yfSl9KTtyZXR1cm4gYX0p
O2cueWFfY2lkJiZZYS5NZXRyaWthJiZuZXcgWWEuTWV0cmlrYShnLnlhX2NpZCxn
LnlhX3BhcmFtcyxnLnlhX2NsYXNzKTtnLnlhX2NpZCYmIWcueWFfaGl0JiYoZy55
YV9oaXQ9ZnVuY3Rpb24oYSxiKXtZYS5fbWV0cmlrYS5jb3VudGVyJiZZYS5fbWV0
cmlrYS5jb3VudGVyLnJlYWNoR29hbChhLGIpfSk7KGZ1bmN0aW9uKCl7ZnVuY3Rp
b24gYShhKXt0cnl7ZGVsZXRlIGdbYV19Y2F0Y2gobCl7Z1thXT1QfX12YXIgYj1n
LnlhbmRleF9tZXRyaWthX2NhbGxiYWNrLGM9Zy55YW5kZXhfbWV0cmlrYV9jYWxs
YmFja3MsZDsiZnVuY3Rpb24iPT10eXBlb2YgYiYmYigpO2lmKCJvYmplY3QiPT10
eXBlb2YgYylmb3IoYj0wO2I8Yy5sZW5ndGg7YisrKWlmKGQ9Y1tiXSljW2JdPW51
bGwsZCgpO2EoInlhbmRleF9tZXRyaWthX2NhbGxiYWNrIik7YSgieWFuZGV4X21l
dHJpa2FfY2FsbGJhY2tzIil9KSgpOwpnLllhLk1ldHJpa2EuaW5mb3JtZXI9ZnVu
Y3Rpb24oYSl7dmFyIGI9ISFZYS5NZXRyaWthLl9pbmZvcm1lcjtZYS5NZXRyaWth
Ll9pbmZvcm1lcj1hO2J8fG0ubG9hZFNjcmlwdCh7c3JjOiJodHRwczovL2luZm9y
bWVyLnlhbmRleC5ydS9tZXRyaWthL2luZm9ybWVyLmpzIn0pfTtrLm9uKGgsImNs
aWNrIixyKGZ1bmN0aW9uKGEpe3ZhciBiPUMuZ2V0VGFyZ2V0KGEpO2lmKGImJiJ5
bS1hZHZhbmNlZC1pbmZvcm1lciI9PWIuY2xhc3NOYW1lKXt2YXIgYz1iLmdldEF0
dHJpYnV0ZSgiZGF0YS1sYW5nIik7dmFyIGQ9Yi5nZXRBdHRyaWJ1dGUoImRhdGEt
Y2lkIik7WWEuTWV0cmlrYS5pbmZvcm1lcih7aTpiLGlkOitkLGxhbmc6Y30pO0Mu
cHJldmVudChhKX19LCJhZHYtaW5mIiksbnVsbCx7cGFzc2l2ZTohMX0pfSkodGhp
cyx0aGlzLmRvY3VtZW50KTs=
------------fIzuf6Oyt4t75FHoI40g63--