Content-Type: multipart/related; start=; boundary=----------ob20VL8QKHEQvTnoM6Hh2B
Content-Location: http://habrahabr.ru/blogs/humour/120905/
Subject: =?utf-8?Q?=D0=9A=D0=B0=D0=BD=D1=86=D0=B5=D1=80=D0=BE=D0=B3=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B8=D0=B7=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F.=20=D0=A1=D0=BA=D0=B0=D0=BD=D0=B4=D0=B0=D0=BB=D1=8B,=20=D0=B8=D0=BD=D1=82=D1=80=D0=B8=D0=B3=D0=B8,=20=D1=80=D0=B0=D1=81=D1=81=D0=BB=D0=B5=D0=B4=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F!=20/=20=D0=A5=D0=B0=D0=B1=D1=80=D0=B0=D0=AE=D0=BC=D0=BE=D1=80=20/=20=D0=A5=D0=B0=D0=B1=D1=80=D0=B0=D1=85=D0=B0=D0=B1=D1=80?=
MIME-Version: 1.0
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=default.htm
Content-Type: text/html; charset=utf-8; name=default.htm
Content-ID:
Content-Location: http://habrahabr.ru/blogs/humour/120905/
Content-Transfer-Encoding: Base64
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJh
bnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv
eGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KDQo8aHRtbCB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9InJ1Ij4NCjxoZWFkPg0K
CTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PXV0Zi04IiAvPg0KCQ0KCTx0aXRsZT7QmtCw0L3RhtC10YDQ
vtCz0LXQvdC90YvQtSDQuNC30LvRg9GH0LXQvdC40Y8uINCh0LrQsNC90LTQsNC7
0YssINC40L3RgtGA0LjQs9C4LCDRgNCw0YHRgdC70LXQtNC+0LLQsNC90LjRjyEg
LyDQpdCw0LHRgNCw0K7QvNC+0YAgLyDQpdCw0LHRgNCw0YXQsNCx0YA8L3RpdGxl
Pg0KDQoJPGxpbmsgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9jc3MvMTMwNzAw
OTc4NS9hbGwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIC8+DQoN
Cg0KICAgIDxtZXRhIG5hbWU9ImFwcGxpY2F0aW9uLW5hbWUiIGNvbnRlbnQ9ItCl
0LDQsdGA0LDRhdCw0LHRgCIgLz4gDQogICAgPG1ldGEgbmFtZT0ibXNhcHBsaWNh
dGlvbi10b29sdGlwIiBjb250ZW50PSLQpdCw0LHRgNCw0YXQsNCx0YAiIC8+IA0K
ICAgIDxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tc3RhcnR1cmwiIGNvbnRlbnQ9
Imh0dHA6Ly9oYWJyYWhhYnIucnUvIiAvPiANCg0KICAgIDxtZXRhIG5hbWU9Im1z
YXBwbGljYXRpb24tdGFzayIgY29udGVudD0ibmFtZT3Qv9C+0YHRgtGLO2FjdGlv
bi11cmk9aHR0cDovL2hhYnJhaGFici5ydS87aWNvbi11cmk9aHR0cDovL2hhYnJh
aGFici5ydS9mYXZpY29uLmljbyIvPg0KICAgIDxtZXRhIG5hbWU9Im1zYXBwbGlj
YXRpb24tdGFzayIgY29udGVudD0ibmFtZT1xJmE7YWN0aW9uLXVyaT1odHRwOi8v
aGFicmFoYWJyLnJ1L3FhLztpY29uLXVyaT1odHRwOi8vaGFicmFoYWJyLnJ1L2Zh
dmljb24uaWNvIi8+DQogICAgPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi10YXNr
IiBjb250ZW50PSJuYW1lPdCx0LvQvtCz0Lg7YWN0aW9uLXVyaT1odHRwOi8vaGFi
cmFoYWJyLnJ1L2Jsb2dsaXN0LztpY29uLXVyaT1odHRwOi8vaGFicmFoYWJyLnJ1
L2Zhdmljb24uaWNvIi8+DQogICAgPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi10
YXNrIiBjb250ZW50PSJuYW1lPdC70Y7QtNC4O2FjdGlvbi11cmk9aHR0cDovL2hh
YnJhaGFici5ydS9wZW9wbGUvO2ljb24tdXJpPWh0dHA6Ly9oYWJyYWhhYnIucnUv
ZmF2aWNvbi5pY28iLz4NCiAgICA8bWV0YSBuYW1lPSJtc2FwcGxpY2F0aW9uLXRh
c2siIGNvbnRlbnQ9Im5hbWU90LrQvtC80L/QsNC90LjQuDthY3Rpb24tdXJpPWh0
dHA6Ly9oYWJyYWhhYnIucnUvY29tcGFuaWVzLztpY29uLXVyaT1odHRwOi8vaGFi
cmFoYWJyLnJ1L2Zhdmljb24uaWNvIi8+DQo8IS0tIC9pZTkgLS0+DQoNCgkNCgkN
CgkNCgkNCgk8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Imh0dHA6Ly9o
YWJyYWhhYnIucnUvaS9mYXZpY29uLmljbyIgLz4NCgk8bGluayByZWw9ImltYWdl
X3NyYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9pL2xvZ28uZ2lmIiAvPg0K
CQ0KCQ0KCQk8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0i0J3QsCDQ
tNC90Y/RhSDQv9GA0LjRiNC70L7RgdGMINC80L3QtSDRgNCw0LfQvtGB0LvQsNGC
0Ywg0L/QviDQstGB0LXQuSDQutC+0LzQv9Cw0L3QuNC4INC/0LjRgdGM0LzQvi4g
0JTRg9C80LDRjiwg0YfRgtC+INGDINC60LDQttC00L7Qs9C+INCw0LTQvNC40L3Q
sCDQsdGL0LvQuCwg0LXRgdGC0Ywg0Lgg0LHRg9C00YPRgiDQvdCwINC+0LHRgdC7
0YPQttC40LLQsNC90LjQuCDQuNC00LjQvtGC0YssINGA0LDRgdGB0YLQsNCy0LvR
j9GO0YnQuNC1INC60LDQutGC0YPRgdGLINCy0L7QutGA0YPQsy4uLiIgLz4gDQoJ
DQoNCgkNCgk8bGluayB0aXRsZT0iIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1s
IiByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9yc3Mv
YmxvZ3MvaHVtb3VyLzEyMDkwNS8yNjY5NTdmYTQ2OWFkNDNjY2MxNWEzOTkwN2Y2
ODdjOS8iLz4NCg0KCTwhLS1baWYgSUUgNl0+PGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Nzcy8xMzA3MDA5Nzg1L2llNi5j
c3MiIG1lZGlhPSJhbGwiIC8+PCFbZW5kaWZdLS0+DQoJPCEtLVtpZiBJRSA3XT48
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUv
Y3NzLzEzMDcwMDk3ODUvaWU3LmNzcyIgbWVkaWE9ImFsbCIgLz48IVtlbmRpZl0t
LT4NCgk8IS0tW2lmIElFIF0+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJo
dHRwOi8vaGFicmFoYWJyLnJ1L2Nzcy8xMzA3MDA5Nzg1L2llLmNzcyIgbWVkaWE9
ImFsbCIgLz48IVtlbmRpZl0tLT4NCgkNCgkNCgk8bGluayBocmVmPSIvY3NzLzEz
MDcwMDk3ODUva2FybWEuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwi
IC8+DQoJPGxpbmsgaHJlZj0iL2Nzcy8xMzA3MDA5Nzg1L3Byb2ZpbGUuY3NzIiBy
ZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIC8+DQoJDQoJPGxpbmsgaHJlZj0i
L2Nzcy8xMzA3MDA5Nzg1L3NpZGViYXIvY2F0ZWdvcnlfYmxvZ3MuY3NzIiByZWw9
InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIC8+DQoJPGxpbmsgaHJlZj0iL2Nzcy8x
MzA3MDA5Nzg1L3NpZGViYXIvYmVzdF9jb21wYW55LmNzcyIgcmVsPSJzdHlsZXNo
ZWV0IiBtZWRpYT0iYWxsIiAvPg0KDQoJPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwOi8vaGFicmFoYWJyLnJ1L2luZm8vaGVscC8iLz4NCgk8bGluayByZWw9InNl
YXJjaCIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9zZWFyY2gvIi8+DQoJPGxp
bmsgcmVsPSJob21lIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1LyIvPg0KCTxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9oYWJyYWhh
YnIucnUvanMvMTMwNzAwOTc4NS9tb290b29scy0xLjItY29yZS15Yy5qcyI+PC9z
Y3JpcHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0
cDovL2hhYnJhaGFici5ydS9qcy8xMzA3MDA5Nzg1L3N5c3RlbS5qcyI+PC9zY3Jp
cHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDov
L2hhYnJhaGFici5ydS9qcy8xMzA3MDA5Nzg1L3RtL2luaXQuanMiPjwvc2NyaXB0
Pg0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9o
YWJyYWhhYnIucnUvanMvMTMwNzAwOTc4NS9jb21tb24uanMiPjwvc2NyaXB0Pg0K
CQ0KCTwhLS1zY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6
Ly9oYWJyYWhhYnIucnUvanMvMTMwNzAwOTc4NS9vbGQtc3R1ZmYtdi0xLmpzIj48
L3NjcmlwdC0tPg0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Imh0dHA6Ly9oYWJyYWhhYnIucnUvanMvMTMwNzAwOTc4NS9hbGwuanMiPjwvc2Ny
aXB0Pg0KCQ0KCQkNCg0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Imh0dHA6Ly9oYWJyYWhhYnIucnUvanMvMTMwNzAwOTc4NS90bS92YWxpZGF0
aW9uLmpzIj48L3NjcmlwdD4NCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJodHRwOi8vaGFicmFoYWJyLnJ1L2pzLzEzMDcwMDk3ODUvdG0veG1s
aGFuZGxlci5qcyI+PC9zY3JpcHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iaHR0cDovL2hhYnJhaGFici5ydS9qcy8xMzA3MDA5Nzg1L3Rt
L2NvbnRyb2xzL2NvbnRyb2wuanMiPjwvc2NyaXB0Pg0KCTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9oYWJyYWhhYnIucnUvanMvMTMw
NzAwOTc4NS90bS9mb3Jtcy9mYXZvdXJpdGVzX2FkZC5qcyI+PC9zY3JpcHQ+DQoJ
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2hhYnJh
aGFici5ydS9qcy8xMzA3MDA5Nzg1L3RtL2NvbnRyb2xzL2J1dHRvbi5qcyI+PC9z
Y3JpcHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0
cDovL2hhYnJhaGFici5ydS9qcy8xMzA3MDA5Nzg1L3RtL2Zvcm0uanMiPjwvc2Ny
aXB0Pg0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6
Ly9oYWJyYWhhYnIucnUvanMvMTMwNzAwOTc4NS9hdXRvc3VnZ2VzdC5qcyI+PC9z
Y3JpcHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0
cDovL2hhYnJhaGFici5ydS9qcy8xMzA3MDA5Nzg1L2hpZ2hsaWdodC5qcyI+PC9z
Y3JpcHQ+DQoJDQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCS8q
PCFbQ0RBVEFbKi8NCgl2YXIgeWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
Y3JpcHQnKTsNCgkJeWEuc3JjID0gJ2h0dHA6Ly9hbi55YW5kZXgucnUvc3lzdGVt
L2NvbnRleHQuanMnOw0KCS8qIF1dPiovDQoJPC9zY3JpcHQ+DQoJPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCS8qPCFbQ0RBVEFbKi8NCgl2YXIgZ2Eg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsNCgkJZ2Euc2V0QXR0
cmlidXRlKCdhc3luYycsICd0cnVlJyk7DQoJCWdhLnNyYyA9ICgnaHR0cHM6JyA9
PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCA/ICdodHRwczovL3NzbCcgOiAn
aHR0cDovL3d3dycpICsgJy5nb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcyc7DQoJ
LyogXV0+Ki8NCgk8L3NjcmlwdD4NCgkNCgk8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+DQoJLyo8IVtDREFUQVsqLw0KCQl2YXIgdGVtcD10ZW1wfHx7fTsN
CgkJd2luZG93LnRlbXA9dGVtcDsNCgkJdGVtcC5iYXNlID0gKHdpbmRvdy5iYXNl
X2Z1bGxfdXJsID0gJ2h0dHA6Ly9oYWJyYWhhYnIucnUvJyk7DQoJCXRlbXAuYmFz
ZV9zaG9ydCA9ICdoYWJyYWhhYnIucnUnOw0KCQlobGpzLmluaXRIaWdobGlnaHRp
bmdPbkxvYWQoKTsNCgkvKiBdXT4qLw0KCTwvc2NyaXB0PiANCgkNCgk8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvMTMwNzAwOTc4NS9jb21t
ZW50Rm9ybS5qcyI+PC9zY3JpcHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iL2pzLzEzMDcwMDk3ODUvdm90aW5nLmpzIj48L3NjcmlwdD4N
Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMvMTMwNzAw
OTc4NS9zd2ZvYmplY3QuanMiPjwvc2NyaXB0Pg0KCTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy8xMzA3MDA5Nzg1L3Bvc3RzSGFuZGxlci5q
cyI+PC9zY3JpcHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iL2pzLzEzMDcwMDk3ODUvaGFicmFXWUcuanMiPjwvc2NyaXB0Pg0KCTxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9qcy8xMzA3MDA5Nzg1L2Zy
aWVuZGluZy5qcyI+PC9zY3JpcHQ+DQoJDQoNCgkJDQo8L2hlYWQ+DQoNCjxib2R5
IGlkPSJtYWluLXBhZ2UiIGNsYXNzPSJibG9ncyBibG9nLXBhbmVsICAiIGxhbmc9
InJ1Ij4NCgkJDQoJCQkNCg0KCQkJDQoNCgkJCQ0KCQkJDQoJCQkNCgkJCQ0KCQkJ
DQoJCQkNCgkJCQ0KDQoJCQkNCg0KCQkJDQoNCgkJCQ0KCQkJPHNjcmlwdD4NCgkJ
CXZhciBtYl9yYW5kb20gPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAw
MDApOw0KCQkJZG9jdW1lbnQud3JpdGUoIjxzY3JpcHQgc3JjPSdodHRwOi8vcGlu
ay5oYWJyYWxhYi5ydS9jZ2ktYmluL2lmcmFtZS9oYWJyX290aGVyc185MD8iK21i
X3JhbmRvbSsiJm9wdGlvbnM9RlQnPjwvc2NyIisiaXB0PiIpOw0KCQkJPC9zY3Jp
cHQ+DQoJCQkNCg0KCQkJDQoNCgkJCQ0KDQoJCQkJCQkJCQ0KDQoJCQ0KDQoNCg0K
PGRpdiBjbGFzcz0iaGVhZGVyIj4NCgkNCgkNCgkJPGRsIGNsYXNzPSJwYW5lbC1w
ZXJzb25hbCI+Cgk8ZHQ+CgkJPGEgaHJlZj0iaHR0cDovL2dyY29vbC5oYWJyYWhh
YnIucnUvIiBjbGFzcz0iaGFicmF1c2VyIj5ncmNvb2w8L2E+CgoJCQoKCgkJCgkJ
PGEgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9zZXR0aW5ncy8iIGNsYXNzPSJu
YXYtc2V0dGluZ3MiPtC90LDRgdGC0YDQvtC50LrQuDwvYT4KCQk8YSBocmVmPSJo
dHRwOi8vaGFicmFoYWJyLnJ1L2xvZ291dC9ncmNvb2wvMzc3NjgwMjI2NS8iPtCy
0YvQudGC0Lg8L2E+CgkJCgkJCgk8L2R0PgoJPGRkPgoJCQoJICA8YSAgaHJlZj0i
aHR0cDovL2dyY29vbC5oYWJyYWhhYnIucnUvbWFpbC8iPtC70LjRh9C90LDRjyDQ
v9C+0YfRgtCwPC9hPgkKCQk8YSBocmVmPSJodHRwOi8vZ3Jjb29sLmhhYnJhaGFi
ci5ydS9mYXZvcml0ZXMvIj7QuNC30LHRgNCw0L3QvdC+0LU8L2E+CgkJCgkJCgk8
L2RkPgoJPGRkIGNsYXNzPSJoYWJyYXVzZXItY2hhcmdlIiBpZD0idXNlcmNoYXJn
ZSI+0KMg0LLQsNGBINC90LXQtNC+0YHRgtCw0YLQvtGH0L3QviDQutCw0YDQvNGL
INC00LvRjyDQs9C+0LvQvtGB0L7QstCw0L3QuNGPPC9kZD4KPC9kbD4KPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwoJdmFyIHRlbXA9
dGVtcHx8e307Cgl0ZW1wLnVzZXIgPSB7ICdsb2dpbic6ICdncmNvb2wnfTsKLy9d
XT4KPC9zY3JpcHQ+Cg0KCSANCgk8ZGl2IGNsYXNzPSJwYW5lbC10b29scyI+DQoJ
CQ0KCQk8ZGl2IGNsYXNzPSJwYW5lbC1zZXR0aW5ncyI+DQoJCQkmbmJzcDsNCgkJ
PC9kaXY+DQoJCSANCgkJPGZvcm0gY2xhc3M9InBhbmVsLXNlYXJjaCBqcy1hdXRv
c3VnZ2VzdC1ob2xkZXIgIiBhY3Rpb249Imh0dHA6Ly9oYWJyYWhhYnIucnUvc2Vh
cmNoLyIgbWV0aG9kPSJnZXQiIGFjY2VwdC1jaGFyc2V0PSJ1dGYtOCI+DQoJCQk8
cD4NCgkJCQk8bGFiZWwgY2xhc3M9InBhbmVsLXNlYXJjaC1sYWJlbCIgZm9yPSJz
ZWFyY2giPg0KCQkJCQk8aW5wdXQgaWQ9InNlYXJjaCIgY2xhc3M9ImluLXRleHQg
anMtYXV0b3N1Z2dlc3QtZmllbGQgIiB0aXRsZT0i0L/QvtC40YHQuiDQv9C+INGB
0LDQudGC0YMiIHR5cGU9InRleHQiIG5hbWU9InEiIHZhbHVlPSIiLz4gDQoJCQkJ
CTxzcGFuPtC/0L7QuNGB0Log0L/QviDRgdCw0LnRgtGDPC9zcGFuPg0KCQkJCTwv
bGFiZWw+DQoJCQkJPGlucHV0IGNsYXNzPSJpbi1zdWJtaXQiIHR5cGU9InN1Ym1p
dCIgaWQ9ImRvIiB2YWx1ZT0iIiB0aXRsZT0iRW50ZXIhIiAvPg0KCQkJPC9wPg0K
CQkJPGRpdiBjbGFzcz0ianMtYXV0b3N1Z2dlc3Qtb3V0cHV0LWNvbnRhaW5lciI+
PGRpdiBjbGFzcz0ianMtYXV0b3N1Z2dlc3Qtb3V0cHV0IGhpZGRlbiI+PC9kaXY+
PC9kaXY+DQoJCTwvZm9ybT4NCgk8L2Rpdj4NCgk8YSBjbGFzcz0ibG9nbyAiIGhy
ZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvIiB0aXRsZT0i0J3QsCDQs9C70LDQstC9
0YPRjiDRgdGC0YDQsNC90LjRhtGDIj48L2E+DQoJDQoNCgk8dWwgY2xhc3M9InBh
bmVsLW5hdi10b3AiPg0KCQ0KCQkNCgkJCQ0KCQkJDQoJCQkJPGxpIGNsYXNzPSJj
dXJyZW50Ij48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1LyI+0J/QvtGB0YLR
izwvYT48L2xpPg0KCQkJDQoJCQ0KCQkNCgkJDQoJDQoJCQ0KCQkNCgkJDQoJCQk8
bGk+PGEgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9xYS8iPlEmYW1wO0E8L2E+
PC9saT4NCgkJDQoJDQoJCQ0KCQkNCgkJDQoJCQk8bGk+PGEgaHJlZj0iaHR0cDov
L2hhYnJhaGFici5ydS9ibG9nbGlzdC8iPtCR0LvQvtCz0Lg8L2E+PC9saT4NCgkJ
DQoJDQoJCQ0KCQkNCgkJDQoJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2hhYnJhaGFi
ci5ydS9wZW9wbGUvIj7Qm9GO0LTQuDwvYT48L2xpPg0KCQkNCgkNCgkJDQoJCQ0K
CQkNCgkJCTxsaT48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2NvbXBhbmll
cy8iPtCa0L7QvNC/0LDQvdC40Lg8L2E+PC9saT4NCgkJDQoJDQoJDQoJDQoJDQoJ
DQoJPGxpIHN0eWxlPSJtYXJnaW4tYm90dG9tOjA7DQoJCW1hcmdpbi1sZWZ0OjA7
DQoJCW1hcmdpbi1yaWdodDowOw0KCQltYXJnaW4tdG9wOi0xNHB4OyI+DQoJCTxz
cGFuPg0KCQkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQkJLyo8
IVtDREFUQVsqLw0KCQkJdmFyIG1iX3JhbmRvbSA9IE1hdGgucm91bmQoTWF0aC5y
YW5kb20oKSAqIDEwMDAwMCk7DQoJCQlkb2N1bWVudC53cml0ZSgiPHNjcmlwdCBz
cmM9XCdodHRwOi8vcGluay5oYWJyYWxhYi5ydS9jZ2ktYmluL2lmcmFtZS9zcGVj
aWFsPyIrbWJfcmFuZG9tKyImb3B0aW9ucz1GVFwnPjwvc2NyIisiaXB0PiIpOw0K
CQkJLyogXV0+Ki8NCgkJCTwvc2NyaXB0Pg0KCQk8L3NwYW4+DQoJCQ0KCTwvbGk+
DQoJPGxpIHN0eWxlPSJtYXJnaW4tYm90dG9tOjA7DQoJCW1hcmdpbi1sZWZ0OjE1
cHg7DQoJCW1hcmdpbi1yaWdodDowOw0KCQltYXJnaW4tdG9wOi05cHg7Ij4NCgkJ
PHNwYW4+DQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJLyo8
IVtDREFUQVsqLw0KCQl2YXIgbWJfcmFuZG9tID0gTWF0aC5yb3VuZChNYXRoLnJh
bmRvbSgpICogMTAwMDAwKTsNCgkJZG9jdW1lbnQud3JpdGUoIjxzY3JpcHQgc3Jj
PVwnaHR0cDovL3BpbmsuaGFicmFsYWIucnUvY2dpLWJpbi9pZnJhbWUvc3BlY2lh
bF8yPyIrbWJfcmFuZG9tKyImb3B0aW9ucz1GVFwnPjwvc2NyIisiaXB0PiIpOw0K
CQkvKiBdXT4qLw0KCQk8L3NjcmlwdD4NCgkJPC9zcGFuPg0KCTwvbGk+DQoJDQoJ
DQoNCgk8L3VsPg0KDQo8L2Rpdj4NCg0KDQo8ZGl2IGlkPSJ3cmFwcGVyIj4NCjxk
aXYgaWQ9ImlubmVyIiA+DQoNCg0KCTxkaXYgaWQ9Im1haW4tY29udGVudCI+DQoJ
CQ0KDQoJDQoJCQk8ZGl2IGlkPSJ2aXZhLWxhLXczYyI+CgkJPGRpdiBjbGFzcz0i
YmxvZy10aXRsZSI+CgkJCTxoMiBjbGFzcz0iYmxvZy1oZWFkZXIiPgoJCQkJPGEg
aHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9odW1vdXIvIiBjbGFzcz0i
c2lsZW50bGluayI+0KXQsNCx0YDQsNCu0LzQvtGAPC9hPgoJCQkJCgkJCQkKCQkJ
PC9oMj4KCQkJIDxkbCBjbGFzcz0iYmxvZy1pbmRleCI+CgkJCSAJPGR0PtC40L3Q
tNC10LrRgTwvZHQ+CgkJCQk8ZGQ+MCwwMDwvZGQ+CgkJCSA8L2RsPgoJCTwvZGl2
PgoJPC9kaXY+CgkNCgkNCg0KCQo8ZGl2IGNsYXNzPSJwYWdlLW5hdmlnYXRpb24i
PgoJPHRhYmxlIGNsYXNzPSJwYWdlLW1lbnUiPgoJCTx0cj4KCQkJPHRkIGlkPSJ3
cml0ZSIgd2lkdGg9IjIwIj4KCQkJCQoJCQkJPGEgaHJlZj0iL2FkZC90b3BpYy8i
IHRpdGxlPSLQndCw0L/QuNGB0LDRgtGMINC90L7QstGL0Lkg0YXQsNCx0YDQsNGC
0L7Qv9C40LoiPjxpbWcgc3JjPSIvaS93cml0ZS10b3BpYy5wbmciIGFsdD0i0J3Q
sNC/0LjRgdCw0YLRjCIgaGVpZ2h0PSIzNSIgd2lkdGg9IjM0IiAvPjwvYT4KCQkJ
CQoJCQkJCgkJCTwvdGQ+CgkJCQoJCQkJCgkJCQkJPHRkIGNsYXNzPSIgY3VycmVu
dCI+PGRpdj48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2h1bW91
ci8iIHRpdGxlPSIiPtCX0LDRhdCw0LHRgNC10L3QvdGL0LU8L2E+PC9kaXY+PC90
ZD4KCQkJCQoJCQkJCgkJCQoJCQkJCgkJCQkKCQkJCQk8dGQgY2xhc3M9IiI+PGRp
dj48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2h1bW91ci9uZXcv
IiB0aXRsZT0iIj7QndC+0LLRi9C1PC9hPiA8c3BhbiBjbGFzcz0ibmV3Ij4rMjwv
c3Bhbj48L2Rpdj48L3RkPgoJCQkJCgkJCQoJCQkJCgkJCQkKCQkJCQk8dGQgY2xh
c3M9IiI+PGRpdj48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2h1
bW91ci91bmhhYnJlZC8iIHRpdGxlPSIiPtCe0YLRhdCw0LHRgNC10L3QvdGL0LU8
L2E+PC9kaXY+PC90ZD4KCQkJCQoJCQkKCQk8L3RyPgoJPC90YWJsZT4KCQo8L2Rp
dj4KDQoJCgkKCgoKCgkKCgkKCQk8ZGl2IGNsYXNzPSJoZW50cnkgIj4KCgkJCTxo
MiBjbGFzcz0iZW50cnktdGl0bGUgc2luZ2xlLWVudHJ5LXRpdGxlIj4KCQkJCQoJ
CQkJPHNwYW4gY2xhc3M9ImxvY2tlZCIgdGl0bGU9ItCS0LjQtNC10L0g0YLQvtC7
0YzQutC+INC/0L7QtNC/0LjRgdGH0LjQutCw0Lwg0LHQu9C+0LPQsCI+PC9zcGFu
PgoKCQkJCQoKCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8c3BhbiB0aXRsZT0iaHR0
cDovL2hhYnJhaGFici5ydS9ibG9ncy9odW1vdXIvMTIwOTA1LyIgY2xhc3M9InRv
cGljIj7QmtCw0L3RhtC10YDQvtCz0LXQvdC90YvQtSDQuNC30LvRg9GH0LXQvdC4
0Y8uINCh0LrQsNC90LTQsNC70YssINC40L3RgtGA0LjQs9C4LCDRgNCw0YHRgdC7
0LXQtNC+0LLQsNC90LjRjyE8L3NwYW4+CgkJCQkJCgkJCQkKCgkJCQkKCgkJCQkK
CQkJCQoJCQk8L2gyPgoKCQkJCgo8ZGl2IGNsYXNzPSJjb250ZW50Ij4KCdCd0LAg
0LTQvdGP0YUg0L/RgNC40YjQu9C+0YHRjCDQvNC90LUg0YDQsNC30L7RgdC70LDR
gtGMINC/0L4g0LLRgdC10Lkg0LrQvtC80L/QsNC90LjQuCDQv9C40YHRjNC80L4u
INCU0YPQvNCw0Y4sINGH0YLQviDRgyDQutCw0LbQtNC+0LPQviDQsNC00LzQuNC9
0LAg0LHRi9C70LgsINC10YHRgtGMINC4INCx0YPQtNGD0YIg0L3QsCDQvtCx0YHQ
u9GD0LbQuNCy0LDQvdC40Lgg0LjQtNC40L7RgtGLLCDRgNCw0YHRgdGC0LDQstC7
0Y/RjtGJ0LjQtSDQutCw0LrRgtGD0YHRiyDQstC+0LrRgNGD0LMg0LzQvtC90LjR
gtC+0YDQsCDQuCDQvtC00LXQstCw0Y7RidC40LUgwqvQsNC90YLQuNC60L7QvNC/
0YzRjtGC0LXRgNC90YvQtSDQvtGH0LrQuMK7Ljxici8+DQrQlNC70Y8g0YLQsNC6
0LjRhSDQuNC90LTQuNCy0LjQtNGD0YPQvNC+0LIg0Lgg0LHRi9C70L4g0L3QsNC/
0LjRgdCw0L3QviDQv9C40YHRjNC80L4uINCe0YHRgtCw0LvRjNC90YvQtSDQv9GA
0L7RgdGC0L4g0L/QvtGB0LzQtdGP0LvQuNGB0YwuPGJyLz4NCjxici8+DQrQotC1
0LrRgdGCINC/0LjRgdGM0LzQsCDQv9C+0LQg0LrQsNGC0L7QvC48YnIvPg0KPGJy
Lz4NCjxhIG5hbWU9ImhhYnJhY3V0Ij48L2E+PGJyLz4NCjxici8+DQrQlNC+0LHR
gNC+0LUg0YPRgtGA0L4sICVjb21wYW55bmFtZSUuPGJyLz4NCiA8YnIvPg0K0J3Q
sNC80LXQtNC90Lgg0LzQvdC1INGB0L3QvtCy0LAg0L/RgNC40YjQu9C+0YHRjCDQ
stGL0YHQu9GD0YjQsNGC0Ywg0L7Rh9C10YDQtdC00L3Rg9GOINCy0LXRgNGB0LjR
jiDQstC10YfQvdC+0Lkg0LjRgdGC0L7RgNC40Lgg0L4g0YLQvtC8INGH0YLQviDC
q9C60L7QvNC/0YzRjtGC0LXRgC/Qv9GA0LjQvdGC0LXRgC/QvNGL0YjRjC/RgtC1
0LvQtdGE0L7QvSDRj9Cy0LvRj9GO0YLRgdGPINC40YHRgtC+0YfQvdC40LrQvtC8
INCy0YDQtdC00L3QvtCz0L4g0LjQt9C70YPRh9C10L3QuNGPwrsuINCi0LjQv9Cw
LCDRgyDQutC+0LzQv9GM0Y7RgtC10YDQsCDQsNC00YHQutC40LUg0LzQtdCz0LDQ
s9C10YDRhtGLLCDRgtC10LvQtdGE0L7QvSDigJQg0Y3RgtC+INC/0LXRgNC10LTQ
sNGC0YfQuNC6INGA0LDQtNC40L7QstC+0LvQvSwg0LAg0L/RgNC40L3RgtC10YAg
0L/QtdGH0LDRgtCw0LXRgiDQstGA0LXQtNC90YvQvCDQvtC30L7QvdC+0LwuINCY
0LvQuCDQstGL0LTRi9GF0LDQtdGCINC+0LfQvtC94oCmINC40LvQuCDQstC00YvR
hdCw0LXRguKApiDRh9GC0L4g0YLQsNC60L7QtSDQvtC30L7QvSDQuCDQv9C+0YfQ
tdC80YMg0L7QvSDRj9Cy0LvRj9C10YLRgdGPINCy0YDQtdC00L3Ri9C8INC00L7Q
utC70LDQtNGH0LjQuiDRgtCw0Log0Lgg0L3QtSDRgNCw0LfQvtCx0YDQsNC70YHR
jy48YnIvPg0KIDxici8+DQrQrdGC0LjQvCDQv9C40YHRjNC80L7QvCDRjyDQvdCw
0LTQtdGO0YHRjCDRgNCw0Lcg0Lgg0L3QsNCy0YHQtdCz0LTQsCDQt9Cw0LrRgNGL
0YLRjCDQtNCw0L3QvdGD0Y4g0YLQtdC80YMuPGJyLz4NCiA8YnIvPg0KPGg0PtCY
0YLQsNC6LCDQvNCw0LvQtdC90YzQutCw0Y8g0YHQv9GA0LDQstC60LAg0LTQu9GP
INC40L3RgtC10YDQtdGB0YPRjtGJ0LjRhdGB0Y8g0YLQtdC80L7QuTo8L2g0Pjxi
ci8+DQo8YnIvPg0KPGI+0JbQmi3QvNC+0L3QuNGC0L7RgDwvYj4g0LDQutGC0LjQ
stC90L4g0LjQt9C70YPRh9Cw0YLRjCDQvdC1INC80L7QttC10YIg0L3QuNGH0LXQ
s9C+LCDQutGA0L7QvNC1INGB0LLQtdGC0LAsINGC0LDQuiDQutCw0Log0LIg0L3Q
tdC8INC90LXRgiDQvdC10L7QsdGF0L7QtNC40LzRi9GFINC00LvRjyDQv9GA0L7R
h9C40YUg0LjQt9C70YPRh9C10L3QuNC5INGD0YHQu9C+0LLQuNC5LiDQkiDRgdGC
0LDRgNGL0YUg0K3Qm9CiLdC80L7QvdC40YLQvtGA0LDRhSDQuNGB0L/QvtC70YzQ
t9GD0LXRgtGB0Y8g0LzQtdGF0LDQvdC40LfQvCDQv9GA0LjRhtC10LvRjNC90L7Q
uSDQsdC+0LzQsdCw0YDQtNC40YDQvtCy0LrQuCDQu9GO0LzQuNC90L7RhNC+0YDQ
sCDRjdC70LXQutGC0YDQvtC90LDQvNC4INGBINC/0L7QvNC+0YnRjNGOINGN0LvQ
tdC60YLRgNC+0LzQsNCz0L3QuNGC0L3QvtC5INGB0LjRgdGC0LXQvNGLINGD0L/R
gNCw0LLQu9C10L3QuNGPINGC0YDQsNC10LrRgtC+0YDQuNC10LkuINCi0LDQvCDi
gJQg0LTQsCwg0L3QtdC80L3QvtC20LrQviDRhNC+0L3QuNC70L4uINCSINCW0Jot
0LzQvtC90LjRgtC+0YDQtSDQutCw0LbQtNGL0Lkg0L/QuNC60YHQtdC70Ywg0L/R
gNC10LTRgdGC0LDQstC70Y/QtdGCINGB0L7QsdC+0Lkg0YPQv9GA0LDQstC70Y/Q
tdC80L7QtSDQv9C+0LvRj9GA0LjQt9GD0Y7RidC10LUg0LfQtdGA0LrQsNC70L4g
0LzQuNC60YDQvtGB0LrQvtC/0LjRh9C10YHQutC40YUg0YDQsNC30LzQtdGA0L7Q
siwg0L/QvtC00YHQstC10YfQuNCy0LDQtdC80L7QtSDQu9C40LHQviDRgtC+0L3Q
utC+0Lkg0LvRjtC80LjQvdC40YHRhtC10L3RgtC90L7QuSDQu9Cw0LzQv9C+0Lkg
0L/QvtC00YHQstC10YLQutC4LCDQu9C40LHQviDRgdCy0LXRgtC+0LTQuNC+0LTQ
sNC80LgsINGA0LDRgdC/0L7Qu9C+0LbQtdC90L3Ri9C80Lgg0LfQsCDRgdC70L7Q
tdC8INC20LjQtNC60LjRhSDQutGA0LjRgdGC0LDQu9C70L7Qsi48YnIvPg0KIDxi
ci8+DQo8Yj7QodC40YHRgtC10LzQvdGL0Lkg0LHQu9C+0Lo8L2I+INGC0LXQvtGA
0LXRgtC40YfQtdGB0LrQuCDRh9GC0L4t0YLQviDQuNC30LvRg9GH0LDQtdGCLCDQ
v9GA0LjQvNC10YDQvdC+INC60LDQuiDQvdCw0LrQvtCy0LDQu9GM0L3Rjywg0L3Q
viDQvtC9INGC0L7QttC1INC20LXQu9C10LfQvdGL0LksINCwINC90LDRh9C40L3Q
utCwINC80LDQu9C+0LzQvtGJ0L3QsNGPLCDRgtCw0Log0YfRgtC+INC30LAg0L/R
gNC10LTQtdC70Ysg0LbQtdC70LXQt9C90L7Qs9C+INGP0YnQuNC60LAg0YLQvtGH
0L3QviDQvdC40YfQtdCz0L4g0L3QtSDQstGL0YXQvtC00LjRgi48YnIvPg0KIDxi
ci8+DQrQkiDQvtCx0YvRh9C90YvRhSA8Yj7QvNGL0YjQsNGFPC9iPiwg0YHQstC1
0YLRj9GJ0LjRhSDQutGA0LDRgdC90YvQvCDRgdCy0LXRgtC+0Lwg0LjQty3Qv9C+
0LQg0LHRgNGO0YXQsCwg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC/0YDQvtGB
0YLQvtC5INGB0LLQtdGC0L7QtNC40L7QtCDQvNC+0YnQvdC+0YHRgtGM0Y4gMi0x
MNC80JLRgi4g0K3RgtC+INC00LDQttC1INCx0LvQuNC30LrQviDQvdC1INC70LDQ
t9C10YAuINCX0LDQtNCw0YfQsCDQtNC40L7QtNCwIOKAlCDQstGB0LXQs9C+LdC7
0LjRiNGMINC+0YHQstC10YnQsNGC0Ywg0L/RgNC+0YHRgtGA0LDQvdGB0YLQstC+
INC/0L7QtCDQvNGL0YjRjNGOLjxici8+DQogPGJyLz4NCtCSIDxiPtC70LDQt9C1
0YDQvdGL0YUg0LzRi9GI0LDRhTwvYj4g0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGP
INC70LDQt9C10YDQvdGL0Lkg0YHQstC10YLQvtC00LjQvtC0INC80L7RidC90L7R
gdGC0YzRjiAxNS0yNdC90JLRgi4g0JHQtdC30L7Qv9Cw0YHQvdC+0Lkg0LzQvtGJ
0L3QvtGB0YLRjNGOINC00LvRjyDQutGA0LDRgtC60L7QstGA0LXQvNC10L3QvdC+
0LPQviDQvtCx0LvRg9GH0LXQvdC40Y8g0YHQtdGC0YfQsNGC0LrQuCDQs9C70LDQ
t9CwINGB0YfQuNGC0LDQtdGC0YHRjyA10LzQktGCLiDQrdGC0L4g0LIgMjAwINGA
0LDQtyDQsdC+0LvRjNGI0LUuINCS0Ysg0LfQsCAxMCDRgdC10LrRg9C90LQg0YDQ
sNGB0YHQvNCw0YLRgNC40LLQsNC90LjRjyDRgdC+0LvQvdGG0LAg0YfQtdGA0LXQ
tyDQv9C70L7RgtC90YPRjiDQvtCx0LvQsNGH0L3QvtGB0YLRjCDQvdCw0L3QtdGB
0ZHRgtC1INGB0LLQvtC40Lwg0LPQu9Cw0LfQsNC8INCx0L7Qu9GM0YjQtSDQstGA
0LXQtNCwLCDRh9C10Lwg0LXRgdC70Lgg0LHRg9C00LXRgtC1INCy0L3QuNC80LDR
gtC10LvRjNC90L4g0YDQsNGB0YHQvNCw0YLRgNC40LLQsNGC0Ywg0LTQuNC+0LQg
0LLQutC70Y7Rh9C10L3QvdC+0Lkg0LzRi9GI0Lgg0LvQtdGCINC/0Y/RgtGM0LTQ
tdGB0Y/Rgi48YnIvPg0KIDxici8+DQo8Yj7Qm9Cw0LfQtdGA0L3Ri9C5INC/0YDQ
uNC90YLQtdGAPC9iPiDQvdCw0LfRi9Cy0LDQtdGC0YHRjyDQu9Cw0LfQtdGA0L3R
i9C8INC90LUg0L/QvtGC0L7QvNGDINGH0YLQviDRgtCw0Lwg0LLQvdGD0YLRgNC4
INC20LDRgNC40YIg0LPQuNC/0LXRgNCx0L7Qu9C+0LjQtCDQuNC90LbQtdC90LXR
gNCwINCT0LDRgNC40L3QsCwg0LAg0L/QvtGC0L7QvNGDINGH0YLQviDRgtCw0Lwg
0YDQsNCx0L7RgtCw0LXRgiDQu9Cw0LfQtdGA0L3Ri9C5INC00LjQvtC0INGH0YPR
gtGMINC80L7RidC90LXQtSDRh9C10Lwg0LIg0LzRi9GI0LgsINC60L7RgtC+0YDR
i9C5INGB0LLQtdGC0LjRgiDQstC+INCy0YDQsNGJ0LDRjtGJ0LXQtdGB0Y8g0LfQ
tdGA0LrQsNC70L4sINGH0YLQviDQtNCw0ZHRgiDQstC+0LfQvNC+0LbQvdC+0YHR
gtGMINGB0LLQtdGC0L7QstC+0LzRgyDQu9GD0YfRgyDQv9GA0L7QudGC0Lgg0LLQ
tNC+0LvRjCDQstGB0LXQs9C+INGE0L7RgtC+0LHQsNGA0LDQsdCw0L3QsC4g0JTQ
uNC+0LQg0LzQvtGA0LPQsNC10YIg0L3QsCDQstGL0YHQvtC60LjRhSDRh9Cw0YHR
gtC+0YLQsNGFLCDQvtGC0YDQsNC20ZHQvdC90YvQuSDQu9GD0Ycg0L7RgdCy0LXR
idCw0LXRgiDRhNC+0YLQvtCx0LDRgNCw0LHQsNC9LCDRj9GH0LXQudC60Lgg0LrQ
vtGC0L7RgNC+0LPQviDRjdC70LXQutGC0YDQuNC30YPRjtGC0YHRjywg0Log0LrQ
vtGC0L7RgNGL0Lwg0LfQsNGC0LXQvCDQv9GA0LjQu9C40L/QsNC10YIg0L/QvtGA
0L7RiNC+0Log0LjQtyDQutCw0YDRgtGA0LjQtNC20LAsINC60L7RgtC+0YDRi9C5
INC30LDRgtC10Lwg0LLQv9C10YfQsNGC0YvQstCw0LXRgtGB0Y8g0LIg0LHRg9C8
0LDQs9GDINC4INC30LDQutGA0LXQv9C70Y/QtdGC0YHRjyDQvdCwINC90LXQuSDR
gtC10YDQvNC+0LLQsNC70L7QvC4g0JLRgdGRINC60LDRgtCw0YHRgtGA0L7RhNC4
0YfQtdGB0LrQvtC1INGB0YLQsNGC0LjRh9C10YHQutC+0LUg0Y3Qu9C10LrRgtGA
0LjRh9C10YHRgtCy0L4g0L/RgNC40L3Rj9C70LAg0L3QsCDRgdC10LHRjyDQsdGD
0LzQsNCz0LAuINCd0L4g0LXQuSDRg9C20LUg0LLRgdGRLdGA0LDQstC90L4g4oCU
INC+0L3QsCDQuCDRgtCw0Log0LzRkdGA0YLQstCw0Y8uINCc0LDQutGB0LjQvNGD
0LwsINGH0YLQviDQvNC+0LbQtdGCINC/0YDQvtC40LfQvtC50YLQuCDigJQg0LLQ
sNGI0LAg0LzRg9GB0L7RgNC90LDRjyDQutC+0YDQt9C40L3QsCDQvtC20LjQstGR
0YIg0Lgg0L/RgNC40L/QvtC80L3QuNGCINCy0LDQvCDQstGL0YDRg9Cx0LrRgyDQ
tNC20YPQvdCz0LvQtdC5INCQ0LzQsNC30L7QvdC60LguPGJyLz4NCiA8YnIvPg0K
PGI+0JzQvtCx0LjQu9GM0L3Ri9C5INGC0LXQu9C10YTQvtC9PC9iPiDQstCw0Ygg
0YHQsNC80YvQuSDRgdGC0YDQsNGI0L3Ri9C5INCy0YDQsNCzIOKAlCDQtdCz0L4g
0LjQt9C70YPRh9C10L3QuNC1INGB0L7RgdGC0LDQstC70Y/QtdGCINC00L4gMdCS
0YIg0LIg0L/QuNC60LUgKNGN0YLQviDQutC+0LPQtNCwINCy0Ysg0LPQvtCy0L7R
gNC40YLQtSDQv9C+INGC0LXQu9C10YTQvtC90YMg0LjQtyDQutC+0LvQvtC00YbQ
sCDQsiDQt9C+0L3QtSDQvdC10YPQstC10YDQtdC90L3QvtCz0L4g0L/RgNC40ZHQ
vNCwKS4g0J7QsdGL0YfQvdGL0Lkg0Y3Qu9C10LrRgtGA0L7QvNCw0LPQvdC40YLQ
vdGL0Lkg0YTQvtC9INCyINGB0L7RgdGC0L7Rj9C90LjQuCDQv9C+0LrQvtGPIOKA
lCDQv9GA0LjQvNC10YDQvdC+INC90L7Qu9GMINC80LjQu9C70LjQstCw0YLRgi48
YnIvPg0KIDxici8+DQo8aDQ+0KLQtdC/0LXRgNGMINC/0YDQvtC50LTRkdC80YHR
jyDQv9C+INCy0L3QtdGI0L3QuNC8INGD0LPRgNC+0LfQsNC8OjwvaDQ+PGJyLz4N
Cjxici8+DQrQkiDQutCw0LbQtNC+0Lwg0LPQvtC70L7QstC90L7QvCDQstCw0LPQ
vtC90LUgPGI+0LzQtdGC0YDQviA8L2I+0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQ
v9C+IDQg0Y3Qu9C10LrRgtGA0L7QtNCy0LjQs9Cw0YLQtdC70Y8g0LzQvtGJ0L3Q
vtGB0YLRjNGOINC/0L4gMTYw0JrQktGCINC60LDQttC00YvQuS4g0KLQvtC90L3Q
tdC70Ywg0LzQtdGC0YDQviDQv9GA0LXQtNGB0YLQsNCy0LvRj9C10YIg0LjQtyDR
gdC10LHRjyDQttC10LvQtdC30L7QsdC10YLQvtC90L3Rg9GOINGC0YDRg9Cx0YMs
INC/0L4g0YHRg9GC0Lgg4oCUINCy0L7Qu9C90L7QstC+0LQuINCSINC/0L7QtdC3
0LTQtSAyINCz0L7Qu9C+0LLQvdGL0YUg0LLQsNCz0L7QvdCwLiA4KjE2MD0xLjIg
0LzQtdCz0LDQstCw0YLRgtCwLiDQoi7QtS4g0LLRiyDQtNC+0LHQuNGA0LDQtdGC
0LXRgdGMINC00L4g0YDQsNCx0L7RgtGLINCyIMKr0JzQtdCz0LDQstC+0LvQvdC+
0LLQutC1wrsuPGJyLz4NCiA8YnIvPg0KPGI+0KLRgNCw0LzQstCw0Lgg0Lgg0YLR
gNC+0LvQu9C10LnQsdGD0YHRizwvYj46INC/0L4g0LTQstCwINGC0LDQutC40YUg
0LbQtSDQtNCy0LjQs9Cw0YLQtdC70Y8g0L3QsCDQstCw0LPQvtC9LiDQotC+0LvR
jNC60L4g0Y3QutGA0LDQvdC40YDRg9GO0YnQtdCz0L4g0YLQvtC90L3QtdC70Y8g
0L3QtdGCLjxici8+DQogPGJyLz4NCjxiPtCi0YDQsNC80LLQsNC50L3Ri9C1INC4
INGC0YDQvtC70LvQtdC50LHRg9GB0L3Ri9C1INC/0YDQvtCy0L7QtNCwPC9iPiDR
gtC+0LbQtSDRj9Cy0LvRj9GO0YLRgdGPINCw0LPRgNC10YHRgdC40LLQvdGL0LzQ
uCDQuNC30LvRg9GH0LDRgtC10LvRj9C80LgsINGF0L7RgtGPINCy0YvQs9C70Y/Q
tNGP0YIg0YLQsNC6INC80LjRgNC90L7igKYg0KXQvtC00LjQu9C4INC60L7Qs9C0
0LAt0L3QuNCx0YPQtNGMINC/0L7QtCDQstGL0YHQvtC60L7QstC+0LvRjNGC0L3R
i9C80Lgg0LvQuNC90LjRj9C80Lg/INCh0LvRi9GI0LDQu9C4LCDQutCw0Log0L7Q
vdC4INCz0YPQtNGP0YI/INCt0YLQviDQv9GA0L7QstC+0LTQsCDQtNGA0YPQsyDR
gSDQtNGA0YPQs9C+0Lwg0L7QsdGB0YPQttC00LDRjtGCLCDQutGC0L4g0LzQvtGJ
0L3QtdC1INCy0LDRgSDQvtCx0LvRg9GH0LjQuyDQuCDQstCw0YjRgyDQstC10YDQ
vtGP0YLQvdGD0Y4g0L/RgNC+0LTQvtC70LbQuNGC0LXQu9GM0L3QvtGB0YLRjCDQ
ttC40LfQvdC4LiDQmtGB0YLQsNGC0LgsINC60L7Qs9C00LAg0LLRiyDRgSDQutGA
0LDRjyDQv9C70LDRgtGE0L7RgNC80Ysg0LIg0LzQtdGC0YDQviDQstGL0LPQu9GP
0LTRi9Cy0LDQtdGC0LUg0LIg0YLQvtC90L3QtdC70LUg0L/QvtC10LfQtCwg0LLR
iyDRgdGC0L7QuNGC0LUg0L3QsCDQv9C+0Lst0LzQtdGC0YDQsCDQstGL0YjQtSDQ
utC+0L3RgtCw0LrRgtC90L7Qs9C+INGA0LXQu9GM0YHQsCDQsiDRgNGD0LrRgyDR
gtC+0LvRidC40L3QvtC5LiDQkCDQsiDQvdGR0LwgODI1INCy0L7Qu9GM0YIg0Lgg
MTAg0LrQuNC70L7QsNC80L/QtdGAICjQvdCwINGN0LvQtdC60YLRgNC40YfQtdGB
0LrQuNC5INGB0YLRg9C7INC/0L7QtNCw0ZHRgtGB0Y8g0YDQvtCy0L3QviDQsiDR
gdGC0L4g0YDQsNC3INC80LXQvdGM0YjQuNC5INGC0L7Quiwg0LAg0L7QvSwg0LzQ
tdC20LTRgyDQv9GA0L7Rh9C40LwsINCz0LDRgNCw0L3RgtC40YDQvtCy0LDQvdC9
0L4g0YPQsdC40LLQsNC10YIpLjxici8+DQogPGJyLz4NCjxiPtCQ0LLRgtC+0LzQ
vtCx0LjQu9GM0L3Ri9C5INCz0LXQvdC10YDQsNGC0L7RgDwvYj4sINC/0YDQuNCy
0L7QtNC40LzRi9C5INCyINC00LXQudGB0YLQstC40LUg0L/QvtGB0YDQtdC00YHR
gtCy0L7QvCDRgNC10LzQtdC90L3QvtC5L9GG0LXQv9C90L7QuSDRgdCy0Y/Qt9C4
INGBINC60L7Qu9C10L3Rh9Cw0YLRi9C8INCy0LDQu9C+0Lwg0LTQstC40LPQsNGC
0LXQu9GPLCDQstGL0YDQsNCx0LDRgtGL0LLQsNC10YIg0YLQvtC6INCy0YDQsNGJ
0LXQvdC40LXQvCDQvtC00L3QvtC5INC20LXQu9C10LfQvdC+0Lkg0YTQuNCz0L7Q
stC40L3RiyDQstC90YPRgtGA0Lgg0LTRgNGD0LPQvtC5INC4INGC0L7QttC1INCw
0LrRgtC40LLQvdC+INGE0L7QvdC40YIg0L3QuNC30LrQvtGH0LDRgdGC0L7RgtC9
0YvQvCDQuNC30LvRg9GH0LXQvdC40LXQvC48YnIvPg0KIDxici8+DQrQmtGB0YLQ
sNGC0LgsINC+IMKr0LLQvtC70L3QvtCy0LrQsNGFwrsuIDxiPtCU0L7QvNCw0YjQ
vdGP0Y8g0LzQuNC60YDQvtCy0L7Qu9C90L7QstC60LA8L2I+INC40LzQtdC10YIg
0LzQvtGJ0L3QvtGB0YLRjCDQstGB0LXQs9C+LdC70LjRiNGMINC+0LrQvtC70L4g
MdCa0JLRgi4g0Jgg0L7QvdCwINC20LDRgNC40YIg0YLQsNC6LCDRh9GC0L4g0Y/Q
udGG0LAg0L/QvtGC0L7QvCDQvdC1INC+0YLRgdC60YDQtdCx0LDRjtGC0YHRjyDQ
vtGCINGB0YLQtdC90L7Qui4g0Jgg0LLQtdC00Ywg0LLRgdC1INGN0YLQuCDQstCw
0YLRgtGLINCyINC/0YDQvtGG0LXRgdGB0LUg0YDQsNC30L7Qs9GA0LXQstCwINCy
0L/QtdGH0LDRgtGL0LLQsNGO0YLRgdGPINCyINCy0LDRiNC4INC80LDQutCw0YDQ
vtC90YshICjQsdC+0LbQtSDQvNC+0LksINGPINC+0LHRgNGR0Log0LvRjtC00LXQ
uSDQvdCwINCz0L7Qu9C+0LTQvdGD0Y4g0YHQvNC10YDRgtGMKTxici8+DQogPGJy
Lz4NCtCa0L7Qu9C40YfQtdGB0YLQstC+INGA0LXQsNC70YzQvdC+INCy0YDQtdC0
0L3Ri9GFINC00LvRjyDQt9C00L7RgNC+0LLRjNGPINCy0LXRidC10YHRgtCyIDxi
PtCyINC80L7RgdC60L7QstGB0LrQvtC8INCy0L7Qt9C00YPRhdC1PC9iPiDRgNC1
0LTQutC+INC60L7Qs9C00LAg0L7Qv9GD0YHQutCw0LXRgtGB0Y8g0L3QuNC20LUg
0YLRgNC10YLQuCDQvtGCINC/0YDQtdC00LXQu9GM0L3QviDQtNC+0L/Rg9GB0YLQ
uNC80L7QuSDQutC+0L3RhtC10L3RgtGA0LDRhtC40LguINCQINGC0LXRgNC80LjQ
vSDCq9C/0YDQtdC00LXQu9GM0L3QviDQtNC+0L/Rg9GB0YLQuNC80L7QuSDQutC+
0L3RhtC10L3RgtGA0LDRhtC40LjCuyDQvtCx0YvRh9C90L4g0YPQutCw0LfRi9Cy
0LDQtdGC0YHRjyDQtNC70Y8g0LLRgNC10LzQtdC90L3QvtCz0L4g0LjQvdGC0LXR
gNCy0LDQu9CwINCyIDI0INGH0LDRgdCwLCDQsCDQstGLINC40Lwg0LTRi9GI0LjR
gtC1INC/0L7RgdGC0L7Rj9C90L3Qviwg0LPQvtC00LDQvNC4Ljxici8+DQogPGJy
Lz4NCtCi0LDQuiDRh9GC0L4g0Y8g0L7Rh9C10L3RjCDQvdCw0LTQtdGO0YHRjCwg
0YfRgtC+INGC0LXQv9C10YDRjCDQstGLINGC0L7Rh9C90L4g0LfQvdCw0LXRgtC1
LCDRh9C10LPQviDQstCw0Lwg0L3QsNC00L4g0LHQvtGP0YLRjNGB0Y8uPGJyLz4N
CiA8YnIvPg0KPGg0PtCS0YvQstC+0LTRiyDQtNC70Y8g0YLQtdGFLCDQutGC0L4g
0L3QtSDRgdC00LXQu9Cw0Lsg0YHQvtCx0YHRgtCy0LXQvdC90YvRhTo8L2g0Pjxi
ci8+DQo8YnIvPg0K0J7RhNC40YHQvdCw0Y8g0YLQtdGF0L3QuNC60LAg0LHQtdC3
0L7Qv9Cw0YHQvdCwLiDQntC90LjRidC10L3QutC+INC90LUg0L/QvtC70L3Ri9C5
INC00LDRgNC80L7QtdC0INC4INGA0LXQsNC70YzQvdC+INC+0L/QsNGB0L3Ri9C1
INGD0YHRgtGA0L7QudGB0YLQstCwINC90LAg0YDRi9C90L7QuiDQvdC1INC/0L7Q
v9Cw0LTRg9GCLjxici8+DQrQn9C+0Y3RgtC+0LzRgywg0LXRgdC70Lgg0LzQvdC1
INC60YLQvi3RgtC+INGB0L3QvtCy0LAg0L3QsNGH0L3RkdGCINGA0LDRgdGB0LrQ
sNC30YvQstCw0YLRjCDQv9GA0L4g0LjQt9C70YPRh9C10L3QuNGPINC+0YTQuNGB
0L3QvtC5INGC0LXRhdC90LjQutC4LCDQuNC70Lgg0Y8g0YPQt9C90LDRjiDQviDR
gtC+0Lwg0YfRgtC+INC60YLQvi3RgtC+INC60L7QvNGDLdGC0L4g0L3QsNGH0LDQ
uyDRgNCw0YHRgdC60LDQt9GL0LLQsNGC0Ywg0L/RgNC+INC40LfQu9GD0YfQtdC9
0LjRjyDQvtGE0LjRgdC90L7QuSDRgtC10YXQvdC40LrQuCwg0LjQu9C4INC60YLQ
vi3RgtC+INC90LDRh9C90ZHRgiDRgdGC0LDQstC40YLRjCDRg9Cy0LvQsNC20L3Q
uNGC0LXQu9C4INCy0L7Qt9C00YPRhdCwINGA0Y/QtNC+0Lwg0YEg0L/RgNC40L3R
gtC10YDQvtC8ICjQv9C+0YLQvtC80YMg0YfRgtC+INCy0L7QtNCwINGH0LXQs9C+
LdGC0L4g0YLQsNC8INC00LXQu9Cw0LXRgiDRgSDQtdCz0L4g0LjQt9C70YPRh9C1
0L3QuNC10LwpLCDQvtGB0LXQvdGP0YLRjCBVU0It0YLQtdC70LXRhNC+0L0g0LrR
gNGR0YHRgtC90YvQvCDQt9C90LDQvNC10L3QuNC10Lwg0Lgg0LjQt9Cz0L7QvdGP
0YLRjCDQtNC40LDQstC+0LvQsCDQuNC3INCy0LXQvdGC0LjQu9GP0YLQvtGA0LAs
INGC0L4g0Y8g0YHQtNC10LvQsNGOINGC0LDQuiwg0YfRgtC+INCy0YHQtSDQvtGB
0YLQsNCy0YjQtdC10YHRjyDQstGA0LXQvNGPINCy0Ysg0LHRg9C00LXRgtC1INGA
0LDQsdC+0YLQsNGC0Ywg0L3QsCDRgdGH0ZHRgtCw0YUuINCSINGB0LvRg9GH0LDQ
tSwg0LXRgdC70Lgg0LLRiyDRj9Cy0LvRj9C10YLQtdGB0Ywg0LfQsNGB0LvRg9C2
0LXQvdC90YvQvCDQs9C10YDQvtC10Lwg0LrQvtC80L/QsNC90LjQuCwg0LzQvtC2
0LXRgiDQsdGL0YLRjCDQstCw0Lwg0LHRg9C00LXRgiDQv9GA0LXQtNC+0YHRgtCw
0LLQu9C10L0g0LzQtdGF0LDQvdC40YfQtdGB0LrQuNC5INCw0YDQuNGE0LzQvtC8
0LXRgtGA4oCmINGF0L7RgtGPINC90LXRguKApiDRgtCw0Lwg0LTQstC40LbRg9GJ
0LjQtdGB0Y8g0LzQtdGC0LDQu9C70LjRh9C10YHQutC40LUg0YfQsNGB0YLQuOKA
piDQvtC/0Y/RgtGMINC90LDQstC+0LTQutC4LCDQvtC/0Y/RgtGMINC40LfQu9GD
0YfQtdC90LjQteKApiDQsCDQvdCwINGB0YfRkdGC0LDRhSDRgdGD0YXQuNC1INC0
0LXRgNC10LLRj9GI0LrQuCDQv9C+INC80LXRgtCw0LvQu9C40YfQtdGB0LrQuNC8
INC+0YHRj9C84oCmINGH0YLQviDQtNC10LvQsNGC0YwsINC60YPQtNCwINCx0LXQ
ttCw0YLRjOKApiA8YnIvPg0KIDxici8+DQrQmtC+0YDQvtGH0LUsINGB0LDQvNGL
0LUg0YPQvNC90YvQtSDQsdGD0LTRg9GCINGA0LDQsdC+0YLQsNGC0Ywg0L3QsCDR
gdGH0ZHRgtC90YvRhSDQv9Cw0LvQvtGH0LrQsNGFLCDQsCDQvtGC0YfRkdGC0Ysg
0LTQtdC70LDRgtGMINGD0LPQvtC70YzQutC+0Lwg0L3QsCDQsdC10YDQtdGB0YLQ
tSDQtNC+INGC0LXRhSDQv9C+0YAsINC/0L7QutCwINC90LUg0YHQtNCw0LTRg9GC
INCV0JPQrSDRhdC+0YLRjyDQsdGLINC90LAgNzUg0LHQsNC70LvQvtCyINC/0L4g
0LzQsNGC0LXQvNCw0YLQuNC60LUsINGE0LjQt9C40LrQtSwg0YXQuNC80LjQuCwg
0LHQuNC+0LvQvtCz0LjQuCwg0YDRg9GB0YHQutC+0LzRgyDRj9C30YvQutGDLCDQ
uNC90YTQvtGA0LzQsNGC0LjQutC1INC4INC+0YLQtNC10LvRjNC90L4g4oCUINGN
0LrQt9Cw0LzQtdC9INC/0L4g0J7QkdCWLjxici8+DQogPGJyLz4NCtChINC70Y7Q
sdC+0LLRjNGOLCDQstCw0Ygg0LDQtNC80LjQvS4KCgkKCgkKCgkKPC9kaXY+CgoK
CgoJCQkNCjx1bCBjbGFzcz0idGFncyIgdGl0bGU9ItCi0LXQs9C4INC6INC30LDQ
v9C40YHQuCI+DQoJPGxpID48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L3Rh
Zy/QuNC00LjQvtGC0YsvIiByZWw9InRhZyI+0LjQtNC40L7RgtGLPC9hPjwvbGk+
PGxpID4sIDxhIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvdGFnL9C40LfQu9GD
0YfQtdC90LjQtS8iIHJlbD0idGFnIj7QuNC30LvRg9GH0LXQvdC40LU8L2E+PC9s
aT48bGkgPiwgPGEgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS90YWcv0LjQt9C7
0YPRh9C10L3QuNC1INC80L7QsdC40LvRjNC90LjQutC+0LIvIiByZWw9InRhZyI+
0LjQt9C70YPRh9C10L3QuNC1INC80L7QsdC40LvRjNC90LjQutC+0LI8L2E+PC9s
aT48bGkgPiwgPGEgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS90YWcv0LLRgNC1
0LQg0LTQu9GPINC30LTQvtGA0L7QstGM0Y8vIiByZWw9InRhZyI+0LLRgNC10LQg
0LTQu9GPINC30LTQvtGA0L7QstGM0Y88L2E+PC9saT4NCjwvdWw+DQoKCQkJDQo8
ZGl2IGNsYXNzPSJlbnRyeS1pbmZvIHZvdGVfaG9sZGVyIiBpZD0iaW5mb3BhbmVs
MTIwOTA1Ij4NCg0KCQk8IS0tICDQl9Cw0LrRgNGD0LPQu9GR0L3QvdGL0LUg0YPQ
s9C+0LvQutC4IC0tPg0KDQoJCTxkaXYgY2xhc3M9ImNvcm5lciB0bCI+PC9kaXY+
PGRpdiBjbGFzcz0iY29ybmVyIHRyIj48L2Rpdj4NCg0KCQk8ZGl2IGNsYXNzPSJl
bnRyeS1pbmZvLXdyYXAiPg0KCQkJDQoJCQkNCgkJCQk8ZGl2IGNsYXNzPSJ2b3Rp
bmcgICI+DQoJCQkJCTxkaXYgY2xhc3M9ImNhbi12b3RlIj48YSB0aXRsZT0i0J3R
gNCw0LLQuNGC0YHRjyIgaHJlZj0iIyIgY2xhc3M9InZvdGVfcGx1cyIgb25jbGlj
az0icmV0dXJuIFZvdGVyLnZvdGUoZXZlbnQsIHRoaXMsICdwb3N0JywgJ3BsdXMn
KTsiPjwvYT48L2Rpdj4NCgkJCQkJPGRpdiBjbGFzcz0iY2Fubm90LXZvdGUiPjxz
cGFuIHRpdGxlPSLQndGA0LDQstC40YLRgdGPIiBjbGFzcz0idm90ZV9wbHVzIj48
L3NwYW4+PC9kaXY+DQoJCQkJCTxkaXYgY2xhc3M9Im1hcmsiPjxzcGFuIHRpdGxl
PSLQktGB0LXQs9C+IDogJnVhcnI7INC4ICZkYXJyOyI+PGEgdGl0bGU9ItCf0L7R
gdC80L7RgtGA0LXRgtGMINGA0LXQt9GD0LvRjNGC0LDRgiIgaHJlZj0iIyIgb25j
bGljaz0icmV0dXJuIFZvdGVyLnZvdGUoZXZlbnQsIHRoaXMsICdwb3N0JywgJ3Jl
c3VsdHMnKTsiPiYjODIxMjs8L2E+PC9zcGFuPjwvZGl2Pg0KCQkJCQk8ZGl2IGNs
YXNzPSJjYW4tdm90ZSI+PGEgdGl0bGU9ItCd0LUg0L3RgNCw0LLQuNGC0YHRjyIg
aHJlZj0iIyIgY2xhc3M9InZvdGVfbWludXMiIG9uY2xpY2s9InJldHVybiBWb3Rl
ci52b3RlKGV2ZW50LCB0aGlzLCAncG9zdCcsICdtaW51cycpOyI+PC9hPjwvZGl2
Pg0KCQkJCQk8ZGl2IGNsYXNzPSJjYW5ub3Qtdm90ZSI+PHNwYW4gY2xhc3M9InZv
dGVfbWludXMiPjwvc3Bhbj48L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQ0KCQkJPGRp
diBjbGFzcz0icHVibGlzaGVkIj48IS0tINCU0LDRgtCwINCyINGE0L7RgNC80LDR
gtC1IElTTyDQv9C40YXQsNC10YLRgdGPINCyIHRpdGxlIC0tPg0KCQkJCTxzcGFu
PiA4INC40Y7QvdGPIDIwMTEsIDE3OjA1PC9zcGFuPg0KCQkJPC9kaXY+DQoNCgkJ
CQ0KCQkJDQoJCQk8ZGl2IGNsYXNzPSJ0by1mYXZzIGpzLXRvX2ZhdnNfaG9sZGVy
Ij4NCgkJCQk8YSBjbGFzcz0ianMtdG9fZmF2c19hZGQiIHRpdGxlPSLQlNC+0LHQ
sNCy0LjRgtGMINCyINC40LfQsdGA0LDQvdC90L7QtSIgaHJlZj0iIyIgb25jbGlj
az0iZmF2c0hhbmRsZXIuZmF2b3JpdGVzU2VuZCh0aGlzLCAncG9zdHMnLCAxMjA5
MDUpOyByZXR1cm4gZmFsc2U7Ij4gPC9hPg0KCQkJPC9kaXY+DQoJCQkNCgkJCTxk
aXYgY2xhc3M9ImZhdnNfY291bnQiIHRpdGxlPSLQmtC+0LvQuNGH0LXRgdGC0LLQ
viDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSwg0LTQvtCx0LDQstC40LLRiNC4
0YUg0L/QvtGB0YIg0LIg0LjQt9Cx0YDQsNC90L3QvtC1Ij41PC9kaXY+DQoJCQk8
ZGl2IGNsYXNzPSJ0d2l0dGVyIj4NCgkJCQk8YSBocmVmPSJodHRwOi8vdHdpdHRl
ci5jb20vaW50ZW50L3R3ZWV0P3RleHQ9aHR0cDovL2hhYnIucnUvcC8xMjA5MDUv
K9Ca0LDQvdGG0LXRgNC+0LPQtdC90L3Ri9C1K9C40LfQu9GD0YfQtdC90LjRjy4r
0KHQutCw0L3QtNCw0LvRiywr0LjQvdGC0YDQuNCz0LgsK9GA0LDRgdGB0LvQtdC0
0L7QstCw0L3QuNGPISslMjNoYWJyIiB0aXRsZT0i0J7Qv9GD0LHQu9C40LrQvtCy
0LDRgtGMINGB0YHRi9C70LrRgyDQvdCwINC/0L7RgdGCINCyIFR3aXR0ZXIiIHRh
cmdldD0iX2JsYW5rIj48L2E+DQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImZh
Y2Vib29rIj4NCgkJCQk8YSBocmVmPSJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9z
aGFyZXIucGhwP3U9aHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9odW1vdXIvMTIw
OTA1LyIgdGl0bGU9ItCe0L/Rg9Cx0LvQuNC60L7QstCw0YLRjCDRgdGB0YvQu9C6
0YMg0L3QsCDQv9C+0YHRgiDQsiBGYWNlYm9vayIgb25jbGljaz0id2luZG93Lm9w
ZW4odGhpcy5ocmVmLCAn0J7Qv9GD0LHQu9C40LrQvtCy0LDRgtGMINGB0YHRi9C7
0LrRgyDQvdCwINC/0L7RgdGCINCyIEZhY2Vib29rJywgJ3dpZHRoPTgwMCxoZWln
aHQ9MzAwJyk7IHJldHVybiBmYWxzZSI+PC9hPg0KCQkJPC9kaXY+DQoJCQkNCg0K
CQkJDQoJCQkNCg0KCQkJDQoNCgkJCQ0KCQkJDQoJCQkJPGRpdiBjbGFzcz0idmNh
cmQgYXV0aG9yIGZ1bGwiPg0KCQkJCQk8YSB0aXRsZT0i0JDQstGC0L7RgCDRgtC1
0LrRgdGC0LAiIGhyZWY9Imh0dHA6Ly9TdW5jaGVlei5oYWJyYWhhYnIucnUvIiBj
bGFzcz0iZm4gbmlja25hbWUgdXJsIj48c3Bhbj5TdW5jaGVlejwvc3Bhbj48L2E+
DQoJCQkJPC9kaXY+DQoJCQkNCgkJCQ0KDQoJCQkNCg0KCQkJDQoNCg0KCQk8L2Rp
dj4NCg0KCQk8ZGl2IGNsYXNzPSJjb3JuZXIgYmwiPjwvZGl2PjxkaXYgY2xhc3M9
ImNvcm5lciBiciI+PC9kaXY+DQo8L2Rpdj4NCg0KDQoKCQkJCgkJPC9kaXY+CgkK
CgoNCg0KDQoNCgkNCg0KDQoNCgkNCgkJDQoJCQkNCgkJCQkKPGRpdiBpZD0ieHNp
ZGViYXItcGxhY2VyIj48L2Rpdj4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Imh0dHA6Ly9oYWJyYWhhYnIucnUvanMvMTMwNzAwOTc4NS90bS9t
b290b29scy1kcmFnLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iaHR0cDovL2hhYnJhaGFici5ydS9qcy8xMzA3MDA5Nzg1
L3RtL3NpZGViYXIvc2lkZWJhci5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KCWNvbW1lbnRGb3JtLnRhcmdldElkID0gJzEyMDkw
NSc7Cgljb21tZW50Rm9ybS50YXJnZXRUeXBlID0gJ3Bvc3QnOwo8L3NjcmlwdD4K
DQoJCQkNCgkJDQoJCTxkaXYgaWQ9ImNvbW1lbnRzIj4NCgkJCTxoMiBjbGFzcz0i
Y29tbWVudHMtaGVhZGVyIj7QutC+0LzQvNC10L3RgtCw0YDQuNC4ICg8c3BhbiBj
bGFzcz0ianMtY29tbWVudHMtY291bnQiPjQ8L3NwYW4+KTwvaDI+DQoJCQkNCgkJ
CQk8dWwgY2xhc3M9ImhlbnRyeSI+CgkKCQk8bGkgaWQ9ImNvbW1lbnRfMzk2Nzky
OSIgY2xhc3M9ImNvbW1lbnRfaG9sZGVyIHZvdGVfaG9sZGVyIj4KCQkJCgkJCQk8
ZGl2IGNsYXNzPSJtc2ctbWV0YSI+CgkJCQkJPGRpdiBjbGFzcz0iZm9sZGluZy1k
b3QtaG9sZGVyIj48ZGl2IGNsYXNzPSJmb2xkaW5nLWRvdCI+PC9kaXY+PC9kaXY+
CgkJCQkJPHVsIGNsYXNzPSJtZW51IGluZm8gYXV0aG9yIGhjYXJkIj4KCQkJCQkJ
PGxpIGNsYXNzPSJhdmF0YXIiPgoJCQkJCQkJPGEgaHJlZj0iaHR0cDovL0dpQlMw
Ti5oYWJyYWhhYnIucnUvIiB0aXRsZT0iR2lCUzBOIj4KCQkJCQkJCQk8aW1nIHNy
Yz0iaHR0cDovL2hhYnJhaGFici5ydS9tZWRpYS90aHVtYi81Yi9iNS81MS8yNTEz
Ny8yNTEzN18yNHgyNC5wbmciIGFsdD0iR2lCUzBOIiAvPgoJCQkJCQkJCTxiPjwv
Yj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9saT4KCQkJCQkJPGxpIGNsYXNzPSJmbiBu
aWNrbmFtZSB1c2VybmFtZSI+CgkJCQkJCQk8YSBocmVmPSJodHRwOi8vR2lCUzBO
LmhhYnJhaGFici5ydS8iIGNsYXNzPSJ1cmwiPkdpQlMwTjwvYT4sCgkJCQkJCTwv
bGk+CgkJCQkJCTxsaSBjbGFzcz0iZGF0ZSI+CgkJCQkJCQk8YWJiciBjbGFzcz0i
cHVibGlzaGVkIiB0aXRsZT0iMjAxMS0wNi0wOFQxNzoxNjoyOCswNDowMCI+IDgg
0LjRjtC90Y8gMjAxMSwgMTc6MTY8L2FiYnI+CgkJCQkJCTwvbGk+CgkJCQkJCTxs
aSBjbGFzcz0iYm9va21hcmsiPgoJCQkJCQkJPGEgaHJlZj0iI2NvbW1lbnRfMzk2
NzkyOSIgdGl0bGU9ItCh0YHRi9C70LrQsCDQvdCwINC60L7QvNC80LXQvdGC0LDR
gNC40LkiIHJlbD0iYm9va21hcmsiPiM8L2E+CgkJCQkJCTwvbGk+CgkJCQkJCQoJ
CQkJCQk8bGkgY2xhc3M9InRvLWZhdnMganMtdG9fZmF2c19ob2xkZXIiPgoJCQkJ
CQkJPGEgaHJlZj0iIyIgY2xhc3M9ImpzLXRvX2ZhdnNfYWRkIiBvbmNsaWNrPSJm
YXZzSGFuZGxlci5mYXZvcml0ZXNTZW5kKHRoaXMsICdjb21tZW50cycsIDM5Njc5
MjkpOyByZXR1cm4gZmFsc2U7IiB0aXRsZT0i0JTQvtCx0LDQstC40YLRjCDQsiDQ
uNC30LHRgNCw0L3QvdC+0LUiPjwvYT4KCQkJCQkJPC9saT4KCQkJCQkJCgkJCQkJ
CQoJCQkJCQk8bGkgY2xhc3M9ImRvd24tdG8tY2hpbGQgaGlkZGVuIj48YSB0aXRs
ZT0i0J7QsdGA0LDRgtC90L4iIG9uY2xpY2s9InJldHVybiBjb21tZW50Rm9ybS5n
b1RvQ2hpbGRDb21tZW50KHRoaXMpOyIgaHJlZj0iIyI+JmRhcnI7PC9hPjwvbGk+
CgkJCQkJCTwhLS08bGkgY2xhc3M9InNpbmdsZS10cmVlIj4KCQkJCQkJCTxhIGNs
YXNzPSJqcy1zZXJ2IGpzLXNpbmdsZS10cmVlIiBocmVmPScnPtCy0LXRgtC60LA8
L2E+CgkJCQkJCQk8YSBjbGFzcz0ianMtc2VydiBqcy1tdWx0aXBsYXktdHJlZSIg
aHJlZj0iI2NvbW1lbnRfMzk2NzkyOSI+0LLQvtGB0YHRgtCw0L3QvtCy0LjRgtGM
PC9hPgoJCQkJCQk8L2xpPi0tPgoJCQkJCQkKCQkJCQkJPGxpPgoJCQkJCQkJPHVs
IGNsYXNzPSJ2b3RlIHZvdGluZyAiPgoJCQkJCQkJCTxsaSBjbGFzcz0ibWFyayI+
PHNwYW4+MDwvc3Bhbj48L2xpPgoJCQkJCQkJCTxsaSBjbGFzcz0iYnV0dG9ucyI+
CgkJCQkJCQkJCTxhIHJldj0idm90ZXItZm9yLWNvbW1lbnQ6Mzk2NzkyOSIgY2xh
c3M9InZvdGVfbWludXMgdm90ZS1mb3ItY29tbWVudCIgdGl0bGU9ItCf0LvQvtGF
0L7QuSDQutC+0LzQvNC10L3RgtCw0YDQuNC5Ij48L2E+CgkJCQkJCQkJCTxhIHJl
dj0idm90ZXItZm9yLWNvbW1lbnQ6Mzk2NzkyOSIgY2xhc3M9InZvdGVfcGx1cyB2
b3RlLWZvci1jb21tZW50IiB0aXRsZT0i0KXQvtGA0L7RiNC40Lkg0LrQvtC80LzQ
tdC90YLQsNGA0LjQuSI+PC9hPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQk8L3VsPgoJ
CQkJCQk8L2xpPgoJCQkJCQkKCQkJCQk8L3VsPgoKCQkJCTwvZGl2PgoKCQkJCTxk
aXYgY2xhc3M9ImVudHJ5LWNvbnRlbnQiPgoJCQkJCTxkaXYgY2xhc3M9ImVudHJ5
LWNvbnRlbnQtb25seSI+CgkJCQkJICAgINCu0LzQvtGA0L3QviDQuCDQv9GA0LDQ
stC40LvRjNC90L4gCgkJCQkJPC9kaXY+CgkJCQkJPHAgY2xhc3M9InJlcGx5Ij48
YSBjbGFzcz0ianMtc2VydiIgaHJlZj0iP3JlcGx5X3RvPTM5Njc5MjkjY29tbWVu
dF8zOTY3OTI5IiBvbmNsaWNrPSJjb21tZW50Rm9ybS5tb3ZlRm9ybSgncmVwbHlf
Zm9ybV8zOTY3OTI5Jyk7IHJldHVybiBmYWxzZTsiPtC+0YLQstC10YLQuNGC0Yw8
L2E+PC9wPgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBpZD0icmVwbHlfZm9ybV8zOTY3
OTI5IiBjbGFzcz0icmVwbHlfZm9ybSI+CgoJCQkJCQoJCQkJPC9kaXY+CgkJCQoK
CQkJCgkJCQoJCQkKCgkJCQoJCQkJPHVsIGNsYXNzPSJoZW50cnkiPgoJCgkJPGxp
IGlkPSJjb21tZW50XzM5Njc5OTciIGNsYXNzPSJjb21tZW50X2hvbGRlciB2b3Rl
X2hvbGRlciI+CgkJCQoJCQkJPGRpdiBjbGFzcz0ibXNnLW1ldGEiPgoJCQkJCTxk
aXYgY2xhc3M9ImZvbGRpbmctZG90LWhvbGRlciI+PGRpdiBjbGFzcz0iZm9sZGlu
Zy1kb3QiPjwvZGl2PjwvZGl2PgoJCQkJCTx1bCBjbGFzcz0ibWVudSBpbmZvIGF1
dGhvciBoY2FyZCI+CgkJCQkJCTxsaSBjbGFzcz0iYXZhdGFyIj4KCQkJCQkJCTxh
IGhyZWY9Imh0dHA6Ly9qb1l6by5oYWJyYWhhYnIucnUvIiB0aXRsZT0iam9Zem8i
PgoJCQkJCQkJCTxpbWcgc3JjPSJodHRwOi8vaGFicmFoYWJyLnJ1L21lZGlhL3Ro
dW1iLzU2LzY1LzViLzMxOTI2LzMxOTI2XzI0eDI0LmpwZyIgYWx0PSJqb1l6byIg
Lz4KCQkJCQkJCQk8Yj48L2I+CgkJCQkJCQk8L2E+CgkJCQkJCTwvbGk+CgkJCQkJ
CTxsaSBjbGFzcz0iZm4gbmlja25hbWUgdXNlcm5hbWUiPgoJCQkJCQkJPGEgaHJl
Zj0iaHR0cDovL2pvWXpvLmhhYnJhaGFici5ydS8iIGNsYXNzPSJ1cmwiPmpvWXpv
PC9hPiwKCQkJCQkJPC9saT4KCQkJCQkJPGxpIGNsYXNzPSJkYXRlIj4KCQkJCQkJ
CTxhYmJyIGNsYXNzPSJwdWJsaXNoZWQiIHRpdGxlPSIyMDExLTA2LTA4VDE3OjMz
OjI3KzA0OjAwIj4gOCDQuNGO0L3RjyAyMDExLCAxNzozMzwvYWJicj4KCQkJCQkJ
PC9saT4KCQkJCQkJPGxpIGNsYXNzPSJib29rbWFyayI+CgkJCQkJCQk8YSBocmVm
PSIjY29tbWVudF8zOTY3OTk3IiB0aXRsZT0i0KHRgdGL0LvQutCwINC90LAg0LrQ
vtC80LzQtdC90YLQsNGA0LjQuSIgcmVsPSJib29rbWFyayI+IzwvYT4KCQkJCQkJ
PC9saT4KCQkJCQkJCgkJCQkJCTxsaSBjbGFzcz0idG8tZmF2cyBqcy10b19mYXZz
X2hvbGRlciI+CgkJCQkJCQk8YSBocmVmPSIjIiBjbGFzcz0ianMtdG9fZmF2c19h
ZGQiIG9uY2xpY2s9ImZhdnNIYW5kbGVyLmZhdm9yaXRlc1NlbmQodGhpcywgJ2Nv
bW1lbnRzJywgMzk2Nzk5Nyk7IHJldHVybiBmYWxzZTsiIHRpdGxlPSLQlNC+0LHQ
sNCy0LjRgtGMINCyINC40LfQsdGA0LDQvdC90L7QtSI+PC9hPgoJCQkJCQk8L2xp
PgoJCQkJCQkKCQkJCQkJPGxpIGNsYXNzPSJ1cC10by1wYXJlbnQiPjxhIHRpdGxl
PSLQntGC0LLQtdGCINC90LAiIG9uY2xpY2s9InJldHVybiBjb21tZW50Rm9ybS5n
b1RvUGFyZW50Q29tbWVudCh0aGlzKTsiIGhyZWY9IiNjb21tZW50XzM5Njc5Mjki
PiZ1YXJyOzwvYT48L2xpPgoJCQkJCQk8bGkgY2xhc3M9ImRvd24tdG8tY2hpbGQg
aGlkZGVuIj48YSB0aXRsZT0i0J7QsdGA0LDRgtC90L4iIG9uY2xpY2s9InJldHVy
biBjb21tZW50Rm9ybS5nb1RvQ2hpbGRDb21tZW50KHRoaXMpOyIgaHJlZj0iIyI+
JmRhcnI7PC9hPjwvbGk+CgkJCQkJCTwhLS08bGkgY2xhc3M9InNpbmdsZS10cmVl
Ij4KCQkJCQkJCTxhIGNsYXNzPSJqcy1zZXJ2IGpzLXNpbmdsZS10cmVlIiBocmVm
PScjY29tbWVudF8zOTY3OTI5Jz7QstC10YLQutCwPC9hPgoJCQkJCQkJPGEgY2xh
c3M9ImpzLXNlcnYganMtbXVsdGlwbGF5LXRyZWUiIGhyZWY9IiNjb21tZW50XzM5
Njc5OTciPtCy0L7RgdGB0YLQsNC90L7QstC40YLRjDwvYT4KCQkJCQkJPC9saT4t
LT4KCQkJCQkJCgkJCQkJCTxsaT4KCQkJCQkJCTx1bCBjbGFzcz0idm90ZSB2b3Rp
bmcgIj4KCQkJCQkJCQk8bGkgY2xhc3M9Im1hcmsiPjxzcGFuPjA8L3NwYW4+PC9s
aT4KCQkJCQkJCQk8bGkgY2xhc3M9ImJ1dHRvbnMiPgoJCQkJCQkJCQk8YSByZXY9
InZvdGVyLWZvci1jb21tZW50OjM5Njc5OTciIGNsYXNzPSJ2b3RlX21pbnVzIHZv
dGUtZm9yLWNvbW1lbnQiIHRpdGxlPSLQn9C70L7RhdC+0Lkg0LrQvtC80LzQtdC9
0YLQsNGA0LjQuSI+PC9hPgoJCQkJCQkJCQk8YSByZXY9InZvdGVyLWZvci1jb21t
ZW50OjM5Njc5OTciIGNsYXNzPSJ2b3RlX3BsdXMgdm90ZS1mb3ItY29tbWVudCIg
dGl0bGU9ItCl0L7RgNC+0YjQuNC5INC60L7QvNC80LXQvdGC0LDRgNC40LkiPjwv
YT4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJPC91bD4KCQkJCQkJPC9saT4KCQkJCQkJ
CgkJCQkJPC91bD4KCgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJlbnRyeS1j
b250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJlbnRyeS1jb250ZW50LW9ubHkiPgoJ
CQkJCSAgICArMTxici8+DQrQrdGC0L4g0L/QuNGB0YzQvNC+INCyINC/0LXRgNCy
0YPRjiDQvtGH0LXRgNC10LTRjCDQsNC00YDQtdGB0L7QstCw0L3QviDQvdC10LTQ
sNC70LXQutC40Lwg0LvRjtC00Y/QvCwg0L/QvtGH0YLQuCDQvdC1INGA0LDQt9Cx
0LjRgNCw0Y7RidC10LnRgdGPINCyINC+0YTQuNGB0L3QvtC5INGC0LXRhdC90LjQ
utC1LiDQoyDQvNC10L3RjyDQvNCw0LzQsCDQtNC+INGB0LjRhSDQv9C+0YAsINC6
INC/0YDQuNC80LXRgNGDLCDRgdCw0LTRj9GB0Ywg0LfQsCDQvNC+0Lkg0LrQvtC8
0L8g0LTQvtC80LAg0YEg0JbQmi3QvNC+0L3QuNGC0L7RgNC+0LwsINC+0LTQtdCy
0LDQtdGCINGB0L/QtdGG0LjQsNC70YzQvdGL0LUg0LfQsNGJ0LjRgtC90YvQtSDQ
vtGH0LrQuDogwqvRh9GC0L4g0LHRiyDQs9C70LDQt9CwINC90LUg0L/QvtGA0YLQ
uNC70LjRgdGMwrssINC4INC60LDQuiDQvdC1INGB0YLQsNGA0LDQu9GB0Y8g0LXQ
tSDQv9C10YDQtdGD0YfQuNGC0YwsINGC0LDQutC4INC4INGB0LDQtNC40YLRgdGP
ID1cCgkJCQkJPC9kaXY+CgkJCQkJPHAgY2xhc3M9InJlcGx5Ij48YSBjbGFzcz0i
anMtc2VydiIgaHJlZj0iP3JlcGx5X3RvPTM5Njc5OTcjY29tbWVudF8zOTY3OTk3
IiBvbmNsaWNrPSJjb21tZW50Rm9ybS5tb3ZlRm9ybSgncmVwbHlfZm9ybV8zOTY3
OTk3Jyk7IHJldHVybiBmYWxzZTsiPtC+0YLQstC10YLQuNGC0Yw8L2E+PC9wPgoJ
CQkJPC9kaXY+CgoJCQkJPGRpdiBpZD0icmVwbHlfZm9ybV8zOTY3OTk3IiBjbGFz
cz0icmVwbHlfZm9ybSI+CgoJCQkJCQoJCQkJPC9kaXY+CgkJCQoKCQkJCgkJCQoJ
CQkKCgkJCQoKCQk8L2xpPgoJCjwvdWw+CgoJCQkKCgkJPC9saT4KCQoJCTxsaSBp
ZD0iY29tbWVudF8zOTY3OTg4IiBjbGFzcz0iY29tbWVudF9ob2xkZXIgdm90ZV9o
b2xkZXIiPgoJCQkKCQkJCTxkaXYgY2xhc3M9Im1zZy1tZXRhIj4KCQkJCQk8ZGl2
IGNsYXNzPSJmb2xkaW5nLWRvdC1ob2xkZXIiPjxkaXYgY2xhc3M9ImZvbGRpbmct
ZG90Ij48L2Rpdj48L2Rpdj4KCQkJCQk8dWwgY2xhc3M9Im1lbnUgaW5mbyBhdXRo
b3IgaGNhcmQiPgoJCQkJCQk8bGkgY2xhc3M9ImF2YXRhciI+CgkJCQkJCQk8YSBo
cmVmPSJodHRwOi8vc2h0MHJtLmhhYnJhaGFici5ydS8iIHRpdGxlPSJzaHQwcm0i
PgoJCQkJCQkJCTxpbWcgc3JjPSJodHRwOi8vaGFicmFoYWJyLnJ1L21lZGlhL3Ro
dW1iLzVlL2U4Lzg5LzMzODI5LzMzODI5XzI0eDI0LmpwZyIgYWx0PSJzaHQwcm0i
IC8+CgkJCQkJCQkJPGI+PC9iPgoJCQkJCQkJPC9hPgoJCQkJCQk8L2xpPgoJCQkJ
CQk8bGkgY2xhc3M9ImZuIG5pY2tuYW1lIHVzZXJuYW1lIj4KCQkJCQkJCTxhIGhy
ZWY9Imh0dHA6Ly9zaHQwcm0uaGFicmFoYWJyLnJ1LyIgY2xhc3M9InVybCI+c2h0
MHJtPC9hPiwKCQkJCQkJPC9saT4KCQkJCQkJPGxpIGNsYXNzPSJkYXRlIj4KCQkJ
CQkJCTxhYmJyIGNsYXNzPSJwdWJsaXNoZWQiIHRpdGxlPSIyMDExLTA2LTA4VDE3
OjMxOjQ2KzA0OjAwIj4gOCDQuNGO0L3RjyAyMDExLCAxNzozMTwvYWJicj4KCQkJ
CQkJPC9saT4KCQkJCQkJPGxpIGNsYXNzPSJib29rbWFyayI+CgkJCQkJCQk8YSBo
cmVmPSIjY29tbWVudF8zOTY3OTg4IiB0aXRsZT0i0KHRgdGL0LvQutCwINC90LAg
0LrQvtC80LzQtdC90YLQsNGA0LjQuSIgcmVsPSJib29rbWFyayI+IzwvYT4KCQkJ
CQkJPC9saT4KCQkJCQkJCgkJCQkJCTxsaSBjbGFzcz0idG8tZmF2cyBqcy10b19m
YXZzX2hvbGRlciI+CgkJCQkJCQk8YSBocmVmPSIjIiBjbGFzcz0ianMtdG9fZmF2
c19hZGQiIG9uY2xpY2s9ImZhdnNIYW5kbGVyLmZhdm9yaXRlc1NlbmQodGhpcywg
J2NvbW1lbnRzJywgMzk2Nzk4OCk7IHJldHVybiBmYWxzZTsiIHRpdGxlPSLQlNC+
0LHQsNCy0LjRgtGMINCyINC40LfQsdGA0LDQvdC90L7QtSI+PC9hPgoJCQkJCQk8
L2xpPgoJCQkJCQkKCQkJCQkJCgkJCQkJCTxsaSBjbGFzcz0iZG93bi10by1jaGls
ZCBoaWRkZW4iPjxhIHRpdGxlPSLQntCx0YDQsNGC0L3QviIgb25jbGljaz0icmV0
dXJuIGNvbW1lbnRGb3JtLmdvVG9DaGlsZENvbW1lbnQodGhpcyk7IiBocmVmPSIj
Ij4mZGFycjs8L2E+PC9saT4KCQkJCQkJPCEtLTxsaSBjbGFzcz0ic2luZ2xlLXRy
ZWUiPgoJCQkJCQkJPGEgY2xhc3M9ImpzLXNlcnYganMtc2luZ2xlLXRyZWUiIGhy
ZWY9Jyc+0LLQtdGC0LrQsDwvYT4KCQkJCQkJCTxhIGNsYXNzPSJqcy1zZXJ2IGpz
LW11bHRpcGxheS10cmVlIiBocmVmPSIjY29tbWVudF8zOTY3OTg4Ij7QstC+0YHR
gdGC0LDQvdC+0LLQuNGC0Yw8L2E+CgkJCQkJCTwvbGk+LS0+CgkJCQkJCQoJCQkJ
CQk8bGk+CgkJCQkJCQk8dWwgY2xhc3M9InZvdGUgdm90aW5nIHBvc2l0aXZlIj4K
CQkJCQkJCQk8bGkgY2xhc3M9Im1hcmsiPjxzcGFuPisxPC9zcGFuPjwvbGk+CgkJ
CQkJCQkJPGxpIGNsYXNzPSJidXR0b25zIj4KCQkJCQkJCQkJPGEgcmV2PSJ2b3Rl
ci1mb3ItY29tbWVudDozOTY3OTg4IiBjbGFzcz0idm90ZV9taW51cyB2b3RlLWZv
ci1jb21tZW50IiB0aXRsZT0i0J/Qu9C+0YXQvtC5INC60L7QvNC80LXQvdGC0LDR
gNC40LkiPjwvYT4KCQkJCQkJCQkJPGEgcmV2PSJ2b3Rlci1mb3ItY29tbWVudDoz
OTY3OTg4IiBjbGFzcz0idm90ZV9wbHVzIHZvdGUtZm9yLWNvbW1lbnQiIHRpdGxl
PSLQpdC+0YDQvtGI0LjQuSDQutC+0LzQvNC10L3RgtCw0YDQuNC5Ij48L2E+CgkJ
CQkJCQkJPC9saT4KCQkJCQkJCTwvdWw+CgkJCQkJCTwvbGk+CgkJCQkJCQoJCQkJ
CTwvdWw+CgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBjbGFzcz0iZW50cnktY29udGVu
dCI+CgkJCQkJPGRpdiBjbGFzcz0iZW50cnktY29udGVudC1vbmx5Ij4KCQkJCQkg
ICAg0KHQv9Cw0YHQuNCx0L4uINCg0LDQt9C+0YHQu9Cw0LsuIDopCgkJCQkJPC9k
aXY+CgkJCQkJPHAgY2xhc3M9InJlcGx5Ij48YSBjbGFzcz0ianMtc2VydiIgaHJl
Zj0iP3JlcGx5X3RvPTM5Njc5ODgjY29tbWVudF8zOTY3OTg4IiBvbmNsaWNrPSJj
b21tZW50Rm9ybS5tb3ZlRm9ybSgncmVwbHlfZm9ybV8zOTY3OTg4Jyk7IHJldHVy
biBmYWxzZTsiPtC+0YLQstC10YLQuNGC0Yw8L2E+PC9wPgoJCQkJPC9kaXY+CgoJ
CQkJPGRpdiBpZD0icmVwbHlfZm9ybV8zOTY3OTg4IiBjbGFzcz0icmVwbHlfZm9y
bSI+CgoJCQkJCQoJCQkJPC9kaXY+CgkJCQoKCQkJCgkJCQoJCQkKCgkJCQoKCQk8
L2xpPgoJCgkJPGxpIGlkPSJjb21tZW50XzM5NjgwNjkiIGNsYXNzPSJjb21tZW50
X2hvbGRlciB2b3RlX2hvbGRlciI+CgkJCQoJCQkJPGRpdiBjbGFzcz0ibXNnLW1l
dGEiPgoJCQkJCTxkaXYgY2xhc3M9ImZvbGRpbmctZG90LWhvbGRlciI+PGRpdiBj
bGFzcz0iZm9sZGluZy1kb3QiPjwvZGl2PjwvZGl2PgoJCQkJCTx1bCBjbGFzcz0i
bWVudSBpbmZvIGF1dGhvciBoY2FyZCI+CgkJCQkJCTxsaSBjbGFzcz0iYXZhdGFy
Ij4KCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly9BbGV4MjE3VmlzaC5oYWJyYWhhYnIu
cnUvIiB0aXRsZT0iQWxleDIxN1Zpc2giPgoJCQkJCQkJCTxpbWcgc3JjPSJodHRw
Oi8vaGFicmFoYWJyLnJ1L21lZGlhL3RodW1iLzVmL2Y5Lzk2LzM0MzM3LzM0MzM3
XzI0eDI0LmdpZiIgYWx0PSJBbGV4MjE3VmlzaCIgLz4KCQkJCQkJCQk8Yj48L2I+
CgkJCQkJCQk8L2E+CgkJCQkJCTwvbGk+CgkJCQkJCTxsaSBjbGFzcz0iZm4gbmlj
a25hbWUgdXNlcm5hbWUiPgoJCQkJCQkJPGEgaHJlZj0iaHR0cDovL0FsZXgyMTdW
aXNoLmhhYnJhaGFici5ydS8iIGNsYXNzPSJ1cmwiPkFsZXgyMTdWaXNoPC9hPiwK
CQkJCQkJPC9saT4KCQkJCQkJPGxpIGNsYXNzPSJkYXRlIj4KCQkJCQkJCTxhYmJy
IGNsYXNzPSJwdWJsaXNoZWQiIHRpdGxlPSIyMDExLTA2LTA4VDE3OjQ3OjQwKzA0
OjAwIj4gOCDQuNGO0L3RjyAyMDExLCAxNzo0NzwvYWJicj4KCQkJCQkJPC9saT4K
CQkJCQkJPGxpIGNsYXNzPSJib29rbWFyayI+CgkJCQkJCQk8YSBocmVmPSIjY29t
bWVudF8zOTY4MDY5IiB0aXRsZT0i0KHRgdGL0LvQutCwINC90LAg0LrQvtC80LzQ
tdC90YLQsNGA0LjQuSIgcmVsPSJib29rbWFyayI+IzwvYT4KCQkJCQkJPC9saT4K
CQkJCQkJCgkJCQkJCTxsaSBjbGFzcz0idG8tZmF2cyBqcy10b19mYXZzX2hvbGRl
ciI+CgkJCQkJCQk8YSBocmVmPSIjIiBjbGFzcz0ianMtdG9fZmF2c19hZGQiIG9u
Y2xpY2s9ImZhdnNIYW5kbGVyLmZhdm9yaXRlc1NlbmQodGhpcywgJ2NvbW1lbnRz
JywgMzk2ODA2OSk7IHJldHVybiBmYWxzZTsiIHRpdGxlPSLQlNC+0LHQsNCy0LjR
gtGMINCyINC40LfQsdGA0LDQvdC90L7QtSI+PC9hPgoJCQkJCQk8L2xpPgoJCQkJ
CQkKCQkJCQkJCgkJCQkJCTxsaSBjbGFzcz0iZG93bi10by1jaGlsZCBoaWRkZW4i
PjxhIHRpdGxlPSLQntCx0YDQsNGC0L3QviIgb25jbGljaz0icmV0dXJuIGNvbW1l
bnRGb3JtLmdvVG9DaGlsZENvbW1lbnQodGhpcyk7IiBocmVmPSIjIj4mZGFycjs8
L2E+PC9saT4KCQkJCQkJPCEtLTxsaSBjbGFzcz0ic2luZ2xlLXRyZWUiPgoJCQkJ
CQkJPGEgY2xhc3M9ImpzLXNlcnYganMtc2luZ2xlLXRyZWUiIGhyZWY9Jyc+0LLQ
tdGC0LrQsDwvYT4KCQkJCQkJCTxhIGNsYXNzPSJqcy1zZXJ2IGpzLW11bHRpcGxh
eS10cmVlIiBocmVmPSIjY29tbWVudF8zOTY4MDY5Ij7QstC+0YHRgdGC0LDQvdC+
0LLQuNGC0Yw8L2E+CgkJCQkJCTwvbGk+LS0+CgkJCQkJCQoJCQkJCQk8bGk+CgkJ
CQkJCQk8dWwgY2xhc3M9InZvdGUgdm90aW5nICI+CgkJCQkJCQkJPGxpIGNsYXNz
PSJtYXJrIj48c3Bhbj4wPC9zcGFuPjwvbGk+CgkJCQkJCQkJPGxpIGNsYXNzPSJi
dXR0b25zIj4KCQkJCQkJCQkJPGEgcmV2PSJ2b3Rlci1mb3ItY29tbWVudDozOTY4
MDY5IiBjbGFzcz0idm90ZV9taW51cyB2b3RlLWZvci1jb21tZW50IiB0aXRsZT0i
0J/Qu9C+0YXQvtC5INC60L7QvNC80LXQvdGC0LDRgNC40LkiPjwvYT4KCQkJCQkJ
CQkJPGEgcmV2PSJ2b3Rlci1mb3ItY29tbWVudDozOTY4MDY5IiBjbGFzcz0idm90
ZV9wbHVzIHZvdGUtZm9yLWNvbW1lbnQiIHRpdGxlPSLQpdC+0YDQvtGI0LjQuSDQ
utC+0LzQvNC10L3RgtCw0YDQuNC5Ij48L2E+CgkJCQkJCQkJPC9saT4KCQkJCQkJ
CTwvdWw+CgkJCQkJCTwvbGk+CgkJCQkJCQoJCQkJCTwvdWw+CgoJCQkJPC9kaXY+
CgoJCQkJPGRpdiBjbGFzcz0iZW50cnktY29udGVudCI+CgkJCQkJPGRpdiBjbGFz
cz0iZW50cnktY29udGVudC1vbmx5Ij4KCQkJCQkgICAg0JXRidGRINC/0YDQuNC/
0L7QvNC90LjRgtC1INC40Lwg0YfRgtC+INC/0L7QtCDQm9Ct0J8g0LvRjtC80LjQ
vdC40YHRhtC10L3RgtC90YvQtSDQu9Cw0LzQv9GLINC+0YIg0LfQtdC80LvQuCDQ
t9Cw0LPQvtGA0LDRjtGC0YHRjwoJCQkJCTwvZGl2PgoJCQkJCTxwIGNsYXNzPSJy
ZXBseSI+PGEgY2xhc3M9ImpzLXNlcnYiIGhyZWY9Ij9yZXBseV90bz0zOTY4MDY5
I2NvbW1lbnRfMzk2ODA2OSIgb25jbGljaz0iY29tbWVudEZvcm0ubW92ZUZvcm0o
J3JlcGx5X2Zvcm1fMzk2ODA2OScpOyByZXR1cm4gZmFsc2U7Ij7QvtGC0LLQtdGC
0LjRgtGMPC9hPjwvcD4KCQkJCTwvZGl2PgoKCQkJCTxkaXYgaWQ9InJlcGx5X2Zv
cm1fMzk2ODA2OSIgY2xhc3M9InJlcGx5X2Zvcm0iPgoKCQkJCQkKCQkJCTwvZGl2
PgoJCQkKCgkJCQoJCQkKCQkJCgoJCQkKCgkJPC9saT4KCQo8L3VsPgoNCgkJCQ0K
CQkJDQoNCgkJCQ0KCQkJPGRpdiBjbGFzcz0iYWRkLWNvbW1lbnQiPg0KCQkJCTxo
Mz48YSBocmVmPSIjbmV3X2NvbW1lbnQiIG5hbWU9Im5ld19jb21tZW50IiBvbmNs
aWNrPSJjb21tZW50Rm9ybS5tb3ZlRm9ybSgncmVwbHlfZm9ybV8wJyk7IHJldHVy
biBmYWxzZTsiPtCd0LDQv9C40YHQsNGC0Ywg0LrQvtC80LzQtdC90YLQsNGA0LjQ
uTwvYT48L2gzPg0KCQkJCTxkaXYgaWQ9InJlcGx5X2Zvcm1fMCI+DQoJCQkJCTxk
aXYgaWQ9ImpzLWZpZWxkLWhvbGRlci13aXRoLWhlbHAiPg0KCQkJCQkJPGRsIGNs
YXNzPSJjb21tZW50LWhlbHAiID4NCgkJCQkJCQk8IS0tPGR0Pg0KCQkJCQkJCQk8
YSB0aXRsZT0iZ3Jjb29sIiBocmVmPSJodHRwOi8vZ3Jjb29sLmhhYnJhaGFici5y
dS8iPg0KCQkJCQkJCQkJPGltZyBzcmM9Imh0dHA6Ly9oYWJyYWhhYnIucnUvbWVk
aWEvdGh1bWIvZTgvOGYvZjUvMzgxMjEvMzgxMjFfMjR4MjQuanBnIiBhbHQ9Imdy
Y29vbCIgY2xhc3M9InBob3RvIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiIC8+DQoJ
CQkJCQkJCTwvYT4NCgkJCQkJCQk8L2R0Pi0tPg0KCQkJCQkJCTxkZD4NCgkJCQkJ
CQkJPCEtLdCy0Ysg4oCUDQoJCQkJCQkJCTxhIGNsYXNzPSJuYW1lIiB0aXRsZT0i
Z3Jjb29sIiBocmVmPSJodHRwOi8vZ3Jjb29sLmhhYnJhaGFici5ydS8iPmdyY29v
bDwvYT4tLT4NCgkJCQkJCQkJPHNwYW4+DQoJCQkJCQkJCQnQnNC+0LbQvdC+INC4
0YHQv9C+0LvRjNC30L7QstCw0YLRjCA8YSBjbGFzcz0ianMtc2VydiIgb25jbGlj
az0iJCgnaHRtbF90YWdzX2hlbHAnKS50b2dnbGVDbGFzcygnaGlkZGVuJyk7cmV0
dXJuIGZhbHNlOyIgaHJlZj0iIyI+aHRtbC3RgtC10LPQuDwvYT4NCgkJCQkJCQkJ
PC9zcGFuPg0KCQkJCQkJCTwvZGQ+DQoJCQkJCQk8L2RsPg0KCQkJCQkJCQk8ZGl2
IGNsYXNzPSJoZWxwX2hvbGRlciI+CgkJCTxkaXYgaWQ9Imh0bWxfdGFnc19oZWxw
IiBjbGFzcz0icm91bmQgdGVybXMgYmxvY2sgaGlkZGVuIj4KCQkJCTxkaXYgY2xh
c3M9ImNvbnRlbnQiPgoJCQkJCTxhIGhyZWY9IiMiIGlkPSJodG1sX3RhZ3NfaGVs
cF9jbG9zZSIgY2xhc3M9InN5c3RlbSIgb25jbGljaz0iJCgnaHRtbF90YWdzX2hl
bHAnKS50b2dnbGVDbGFzcygnaGlkZGVuJyk7cmV0dXJuIGZhbHNlOyI+0LfQsNC6
0YDRi9GC0Yw8L2E+CgoJCQkJCTxoNT7QotC10LPQuCDQpdCw0LHRgNCw0YXQsNCx
0YDQsDwvaDU+CgkJCQkJPGRsIGNsYXNzPSJibG9ja19zZW1pIj4KCQkJCQkJPGR0
PiZsdDtzb3VyY2UgbGFuZz0i0Y/Qt9GL0LoiJmd0OyZsdDsvc291cmNlJmd0Ozwv
ZHQ+CgkJCQkJCTxkZCBjbGFzcz0iZGVzY3JpcHRpb24iPtCf0L7QtNGB0LLQtdGH
0LjQstCw0LXRgiDQutC+0LQg0L/RgNC+0LPRgNCw0LzQvNGLICjQv9C+0LTQtNC1
0YDQttC40LLQsNC10YLRgdGPIGJhc2gsIGNwcCwgY3MsIHhtbCwgaHRtbCwgamF2
YSwgamF2YXNjcmlwdCwgbGlzcCwgbHVhLCBwaHAsIHBlcmwsIHB5dGhvbiwgcnVi
eSwgc3FsLCBzY2FsYSwgdGV4KTwvZGQ+CgkJCQkJPC9kbD4KCQkJCQk8ZGwgY2xh
c3M9ImJsb2NrX3NlbWkiPgoJCQkJCQk8ZHQ+Jmx0O3ZpZGVvJmd0OyZsdDsvdmlk
ZW8mZ3Q7PC9kdD4KCgkJCQkJCTxkZCBjbGFzcz0iZGVzY3JpcHRpb24iPtCS0YHR
gtCw0LLQu9GP0LXRgiDQsiDQv9C+0YHRgiDQstC40LTQtdC+LCDQtNC+0L/Rg9GB
0YLQuNC80YvQtSDRhdC+0YHRgtC40L3Qs9C4OiBZb3VUdWJlLCBSdVR1YmUsIEdv
b2dsZSB2aWRlbywgVmltZW8g0Lgg0K8u0JLQuNC00LXQvjwvZGQ+CgkJCQkJPC9k
bD4KCQkJCQk8ZGwgY2xhc3M9ImJsb2NrX3NlbWkiPgoJCQkJCQk8ZHQ+Jmx0O2ho
IHVzZXI9JnF1b3Q7Li4uJnF1b3Q7IC8mZ3Q7PC9kdD4KCgkJCQkJCTxkZCBjbGFz
cz0iZGVzY3JpcHRpb24iPtCS0YvQstC+0LTQuNGCINC40LzRjyDRjtC30LXRgNCw
INC/0L7RgdGA0LXQtNC4INGC0LXQutGB0YLQsCwg0L7QsdGA0LDRgtC90YvQuSDR
gdC70LXRiCAoLykg0LIg0LrQvtC90YbQtSDRgtC10LPQsCDQvtCx0Y/Qt9Cw0YLQ
tdC70LXQvTwvZGQ+CgkJCQkJPC9kbD4KCgkJCQkJPGg1PtCh0YLQsNC90LTQsNGA
0YLQvdGL0LU8L2g1PgoJCQkJCTx0YWJsZSBjbGFzcz0id2lkZSI+CgkJCQkJCTx0
cj4KCQkJCQkJCTx0ZD4KCQkJCQkJCQk8ZGwgY2xhc3M9ImJsb2NrX3NlbWkiPgoJ
CQkJCQkJCQk8ZHQ+Jmx0O2g0Jmd0OyZsdDsvaDQmZ3Q7PGJyLz4KCgkJCQkJCQkJ
CQkmbHQ7aDUmZ3Q7Jmx0Oy9oNSZndDs8YnIvPgoJCQkJCQkJCQkJJmx0O2g2Jmd0
OyZsdDsvaDYmZ3Q7CgkJCQkJCQkJCTwvZHQ+CgkJCQkJCQkJCTxkZCBjbGFzcz0i
ZGVzY3JpcHRpb24iPtCX0LDQs9C+0LvQvtCy0LrQuCDRgNCw0LfQvdC+0LPQviDR
g9GA0L7QstC90Y88L2RkPgoJCQkJCQkJCTwvZGw+CgkJCQkJCQkJPGRsIGNsYXNz
PSJibG9ja19zZW1pIj4KCgkJCQkJCQkJCTxkdD4mbHQ7aW1nIHNyYz0mcXVvdDsm
cXVvdDsgLyZndDs8L2R0PgoJCQkJCQkJCQk8ZGQgY2xhc3M9ImRlc2NyaXB0aW9u
Ij7QmNC30L7QsdGA0LDQttC10L3QuNC1LCDQsiDQsNGC0YDQuNCx0YPRgtC1IHNy
YyDRg9C60LDQt9GL0LLQsNC50YLQtSDQv9C+0LvQvdGL0Lkg0L/Rg9GC0Ywg0Log
0LjQt9C+0LHRgNCw0LbQtdC90LjRjjwvZGQ+CgkJCQkJCQkJPC9kbD4KCQkJCQkJ
CQk8ZGwgY2xhc3M9ImJsb2NrX3NlbWkiPgoJCQkJCQkJCQk8ZHQ+Jmx0O2EgaHJl
Zj0mcXVvdDsmcXVvdDsgJmd0OyZsdDsvYSZndDs8L2R0PgoKCQkJCQkJCQkJPGRk
IGNsYXNzPSJkZXNjcmlwdGlvbiI+0KHRgdGL0LvQutCwLCDQsiDQsNGC0YDQuNCx
0YPRgtC1IGhyZWYg0YPQutCw0LbQuNGC0LUg0LbQtdC70LDQtdC80YvQuSDQuNC9
0YLQtdGA0L3QtdGCLdCw0LTRgNC10YE8L2RkPgoJCQkJCQkJCTwvZGw+CgkJCQkJ
CQkJPGRsIGNsYXNzPSJibG9ja19zZW1pIj4KCQkJCQkJCQkJPGR0PiZsdDtzdHJv
bmcmZ3Q7Jmx0Oy9zdHJvbmcmZ3Q7PC9kdD4KCQkJCQkJCQkJPGRkIGNsYXNzPSJk
ZXNjcmlwdGlvbiI+0JLRi9C00LXQu9C10L3QuNC1INCy0LDQttC90L7Qs9C+INGC
0LXQutGB0YLQsCwg0L3QsCDRgdGC0YDQsNC90LjRhtC1INCy0YvQtNC10LvRj9C1
0YLRgdGPIDxzdHJvbmc+0LbQuNGA0L3Ri9C8PC9zdHJvbmc+INC90LDRh9C10YDR
gtCw0L3QuNC10Lw8L2RkPgoJCQkJCQkJCTwvZGw+CgkJCQkJCQkJPGRsIGNsYXNz
PSJibG9ja19zZW1pIj4KCgkJCQkJCQkJCTxkdD4mbHQ7ZW0mZ3Q7Jmx0Oy9lbSZn
dDs8L2R0PgoJCQkJCQkJCQk8ZGQgY2xhc3M9ImRlc2NyaXB0aW9uIj7QktGL0LTQ
tdC70LXQvdC40LUg0LLQsNC20L3QvtCz0L4g0YLQtdC60YHRgtCwLCDQvdCwINGB
0YLRgNCw0L3QuNGG0LUg0LLRi9C00LXQu9GP0LXRgtGB0Y8gPGVtPtC60YPRgNGB
0LjQstC+0Lw8L2VtPjwvZGQ+CgkJCQkJCQkJPC9kbD4KCQkJCQkJCQk8ZGwgY2xh
c3M9ImJsb2NrX3NlbWkiPgoJCQkJCQkJCQk8ZHQ+CgkJCQkJCQkJCQkmbHQ7cyZn
dDsmbHQ7L3MmZ3Q7PGJyLz4KCgkJCQkJCQkJCQkmbHQ7c3RyaWtlJmd0OyZsdDsv
c3RyaWtlJmd0OwoJCQkJCQkJCQk8L2R0PgoJCQkJCQkJCQk8ZGQgY2xhc3M9ImRl
c2NyaXB0aW9uIj7QktGL0LTQtdC70LXQvdC90YvQuSDRgtC10LPQvtC8ICZsdDtz
Jmd0OyDQuNC70Lgg0YLQtdCz0L7QvCAmbHQ7c3RyaWtlJmd0OyDRgtC10LrRgdGC
INC+0YLQvtCx0YDQsNC20LDQtdGC0YHRjywg0LrQsNC6IDxzPtC30LDRh9C10YDQ
utC90YPRgtGL0Lk8L3M+PC9kZD4KCQkJCQkJCQk8L2RsPgoKCQkJCQkJCQk8ZGwg
Y2xhc3M9ImJsb2NrX3NlbWkiPgoJCQkJCQkJCQk8ZHQ+CgkJCQkJCQkJCQkmbHQ7
dSZndDsmbHQ7L3UmZ3Q7CgkJCQkJCQkJCTwvZHQ+CgkJCQkJCQkJCTxkZCBjbGFz
cz0iZGVzY3JpcHRpb24iPtCS0YvQtNC10LvQtdC90L3Ri9C5INGC0LXQs9C+0Lwg
Jmx0O3UmZ3Q7INGC0LXQutGB0YIg0L7RgtC+0LHRgNCw0LbQsNC10YLRgdGPLCDQ
utCw0LogPHU+0L/QvtC00YfQtdGA0LrQvdGD0YLRi9C5PC91PjwvZGQ+CgkJCQkJ
CQkJPC9kbD4KCgkJCQkJCQkJPGRsIGNsYXNzPSJibG9ja19zZW1pIj4KCQkJCQkJ
CQkJPGR0PgoJCQkJCQkJCQkJJmx0O3VsJmd0OyZsdDsvdWwmZ3Q7PGJyLz4KCQkJ
CQkJCQkJCSZsdDtsaSZndDsmbHQ7L2xpJmd0OwoJCQkJCQkJCQk8L2R0PgoJCQkJ
CQkJCQk8ZGQgY2xhc3M9ImRlc2NyaXB0aW9uIj7QndC10L3Rg9C80LXRgNC+0LLQ
sNC90L3Ri9C5INGB0L/QuNGB0L7Qujsg0LrQsNC20LTRi9C5INGN0LvQtdC80LXQ
vdGCINGB0L/QuNGB0LrQsCDQt9Cw0LTQsNC10YLRgdGPINGC0LXQs9C+0LwgJmx0
O2xpJmd0Oywg0L3QsNCx0L7RgCDRjdC70LXQvNC10L3RgtC+0LIg0YHQv9C40YHQ
utCwINC/0L7QvNC10YnQsNC50YLQtSDQsiDRgtC10LMgJmx0O3VsJmd0OzwvZGQ+
CgoJCQkJCQkJCTwvZGw+CgkJCQkJCQkJPGRsIGNsYXNzPSJibG9ja19zZW1pIj4K
CQkJCQkJCQkJPGR0PgoJCQkJCQkJCQkJJmx0O29sJmd0OyZsdDsvb2wmZ3Q7PGJy
Lz4KCQkJCQkJCQkJCSZsdDtsaSZndDsmbHQ7L2xpJmd0OwoJCQkJCQkJCQk8L2R0
PgoJCQkJCQkJCQk8ZGQgY2xhc3M9ImRlc2NyaXB0aW9uIj7QndGD0LzQtdGA0L7Q
stCw0L3QvdGL0Lkg0YHQv9C40YHQvtC6OyDQutCw0LbQtNGL0Lkg0Y3Qu9C10LzQ
tdC90YIg0YHQv9C40YHQutCwINC30LDQtNCw0LXRgtGB0Y8g0YLQtdCz0L7QvCAm
bHQ7bGkmZ3Q7LCDQvdCw0LHQvtGAINGN0LvQtdC80LXQvdGC0L7QsiDRgdC/0LjR
gdC60LAg0L/QvtC80LXRidCw0LnRgtC1INCyINGC0LXQsyAmbHQ7b2wmZ3Q7PC9k
ZD4KCgkJCQkJCQkJPC9kbD4KCQkJCQkJCTwvdGQ+CgoJCQkJCQkJPHRkPgoJCQkJ
CQkJCTxkbCBjbGFzcz0iYmxvY2tfc2VtaSI+CgkJCQkJCQkJCTxkdD4KCQkJCQkJ
CQkJCSZsdDtociAvJmd0Ozxici8+CgkJCQkJCQkJCQkmbHQ7YmxvY2txdW90ZSZn
dDsmbHQ7L2Jsb2NrcXVvdGUmZ3Q7CgkJCQkJCQkJCTwvZHQ+CgkJCQkJCQkJCTxk
ZCBjbGFzcz0iZGVzY3JpcHRpb24iPtCi0LXQsyAmbHQ7aHIgLyZndDsg0LLRi9Cy
0L7QtNC40YIg0LPQvtGA0LjQt9C+0L3RgtCw0LvRjNC90YPRjiDQu9C40L3QuNGO
OyDQtNC70Y8g0LLRi9C00LXQu9C10L3QuNGPINGG0LjRgtCw0YIg0LjRgdC/0L7Q
u9GM0LfRg9C50YLQtSDRgtC10LMgJmx0O2Jsb2NrcXVvdGUmZ3Q7OyDRgtC10LMg
Jmx0O3AmZ3Q7INC/0L7Qt9Cy0L7Qu9GP0LXRgiDQvtGC0LTQtdC70Y/RgtGMINC0
0YDRg9CzINC+0YIg0LTRgNGD0LPQsCDRhNGA0LDQs9C80LXQvdGC0Ysg0YLQtdC6
0YHRgtCwICjQv9Cw0YDQsNCz0YDQsNGE0YspPC9kZD4KCgkJCQkJCQkJPC9kbD4K
CgkJCQkJCQkJPGRsIGNsYXNzPSJibG9ja19zZW1pIj4KCQkJCQkJCQkJPGR0PgoJ
CQkJCQkJCQkJJmx0O3N1cCZndDsmbHQ7L3N1cCZndDs8YnIvPgoJCQkJCQkJCQkJ
Jmx0O3N1YiZndDsmbHQ7L3N1YiZndDsKCQkJCQkJCQkJPC9kdD4KCQkJCQkJCQkJ
PGRkIGNsYXNzPSJkZXNjcmlwdGlvbiI+0KLQtdC60YHRgiwg0LfQsNC60LvRjtGH
0LXQvdC90YvQuSDQsiDRgtC10LMgJmx0O3N1cCZndDsg0L7RgtC+0LHRgNCw0LbQ
sNC10YLRgdGPINCyINCy0LjQtNC1INCy0LXRgNGF0L3QtdCz0L4g0LjQvdC00LXQ
utGB0LAsICZsdDtzdWImZ3Q7IC0g0L3QuNC20L3QtdCz0L4g0LjQvdC00LXQutGB
0LA8L2RkPgoKCQkJCQkJCQk8L2RsPgoJCQkJCQkJCTxkbCBjbGFzcz0iYmxvY2tf
c2VtaSI+CgkJCQkJCQkJCTxkdD4KCQkJCQkJCQkJCSZsdDthYmJyIHRpdGxlPSZx
dW90OyZxdW90OyAmZ3Q7Jmx0Oy9hYmJyJmd0Ozxici8+CgkJCQkJCQkJCQkmbHQ7
YWNyb255bSB0aXRsZT0mcXVvdDsmcXVvdDsgJmd0OyZsdDsvYWNyb255bSZndDsK
CQkJCQkJCQkJPC9kdD4KCgkJCQkJCQkJCTxkZCBjbGFzcz0iZGVzY3JpcHRpb24i
PtCi0LXQs9C+0LwgJmx0O2FiYnImZ3Q7INCy0YvQtNC10LvRj9C10YLRgdGPINCw
0LHQsdGA0LXQstC40LDRgtGD0YDQsCwg0LIg0LDRgtGA0LjQsdGD0YLQtSB0aXRs
ZSDRg9C60LDQt9GL0LLQsNC50YLQtSDQtdGRINGA0LDRgdGI0LjRhNGA0L7QstC6
0YM7INC40YHQv9C+0LvRjNC30YPQudGC0LUg0YLQtdCzICZsdDthY3JvbnltJmd0
OyDQtNC70Y8g0YPRgdGC0L7Rj9Cy0YjQuNGF0YHRjyDQsNCx0LHRgNC10LLQuNCw
0YLRg9GAPC9kZD4KCQkJCQkJCQk8L2RsPgoJCQkJCQkJCTxkbCBjbGFzcz0iYmxv
Y2tfc2VtaSI+CgkJCQkJCQkJCTxkdD4KCQkJCQkJCQkJCSZsdDtwcmUmZ3Q7Jmx0
Oy9wcmUmZ3Q7CgoJCQkJCQkJCQk8L2R0PgoJCQkJCQkJCQk8ZGQgY2xhc3M9ImRl
c2NyaXB0aW9uIj7QotC10LrRgdGCLCDQv9C+0LzQtdGJ0LXQvdC90YvQuSDQsiDR
gtC10LMgJmx0O3ByZSZndDssINC90LUg0YTQvtGA0LzQsNGC0LjRgNGD0LXRgtGB
0Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lg8L2RkPgoJCQkJCQkJCTwvZGw+
CgkJCQkJCQkJPGRsIGNsYXNzPSJibG9ja19zZW1pIj4KCQkJCQkJCQkJPGR0PgoJ
CQkJCQkJCQkJJmx0O25vYnImZ3Q7Jmx0Oy9ub2JyJmd0Ozxici8+CgoJCQkJCQkJ
CQkJJmx0O2JyIC8mZ3Q7CgkJCQkJCQkJCTwvZHQ+CgkJCQkJCQkJCTxkZCBjbGFz
cz0iZGVzY3JpcHRpb24iPtCi0LXQutGB0YIsINC/0L7QvNC10YnQtdC90L3Ri9C5
INCyINGC0LXQsyAmbHQ7bm9iciZndDssINC90LUg0L/QtdGA0LXQvdC+0YHQuNGC
0YHRjyDQvdCwINGB0YLRgNCw0L3QuNGG0LU7INC00LvRjyDQv9GA0LjQvdGD0LTQ
uNGC0LXQu9GM0L3QvtCz0L4g0L/QtdGA0LXQvdC+0YHQsCDRgtC10LrRgdGC0LAg
0LjRgdC/0L7Qu9GM0LfRg9C50YLQtSDRgtC10LMgJmx0O2JyIC8mZ3Q7PC9kZD4K
CQkJCQkJCQk8L2RsPgoJCQkJCQkJPC90ZD4KCQkJCQkJPC90cj4KCgkJCQkJPC90
YWJsZT4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KDQoJCQkJCQk8ZGl2
IGNsYXNzPSJqcy1maWVsZC1ob2xkZXIiIGlkPSJqcy1maWVsZC1ob2xkZXIiPgoJ
PHAgY2xhc3M9ImpzLWZpZWxkLWVycm9yLW1zZyI+PC9wPgoJPGRpdiBjbGFzcz0i
ZW50cnktY29udGVudCBjb21tZW50LXByZXZpZXcgaGlkZGVuIj48L2Rpdj4KCTxm
b3JtIGFjdGlvbj0iI2FkZF9jb21tZW50IiBtZXRob2Q9InBvc3QiIG5hbWU9ImNv
bW1lbnRfZm9ybSIgaWQ9ImNvbW1lbnRfZm9ybSI+CgkJPGZpZWxkc2V0PgoJCSAg
CgkJCTxhIGlkPSJjb21tZW50X3R5cGUiIHRpdGxlPSJjb21tZW50Ij48L2E+CgkJ
CTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbW1lbnRbdGFyZ2V0X3R5cGVd
IiB2YWx1ZT0icG9zdCIgY2xhc3M9ImpzLWZpZWxkLWRhdGEiIC8+CgkJCTxpbnB1
dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbW1lbnRbcGFyZW50X2lkXSIgdmFsdWU9
IjAiIGNsYXNzPSJqcy1maWVsZC1kYXRhIiAvPgoJCQk8aW5wdXQgdHlwZT0iaGlk
ZGVuIiBuYW1lPSJ0aW1lZmllbGQiIHZhbHVlPSIxMzA3NTQxNjk5IiBjbGFzcz0i
anMtZmllbGQtZGF0YSIgLz4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
Y29tbWVudFt0YXJnZXRfaWRdIiB2YWx1ZT0iMTIwOTA1IiBjbGFzcz0ianMtZmll
bGQtZGF0YSIgLz4KCQkJPGRpdiBjbGFzcz0iZWRpdG9yIj4KICAJCQk8ZGl2IGNs
YXNzPSJwYW5lbCI+ICAJCQkKICAJCQkJCgkJCQk8YSBzdHlsZT0ibWFyZ2luLWxl
ZnQ6IDEwcHg7IiB0aXRsZT0i0JbQuNGA0L3Ri9C5IiBvbmNsaWNrPSJyZXR1cm4g
aGFicmFXWUcuaW5zZXJ0VGFnV2l0aFRleHQodGhpcywgJ2InKTsiIGhyZWY9IiMi
IHRhYmluZGV4PSItMSI+PGltZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGFsdD0i
0JYiIHNyYz0iL2kvcGFuZWwvYm9sZF9ydS5naWYiLz48L2E+CgoJCQkJPGEgdGl0
bGU9ItCa0YPRgNGB0LjQsiIgb25jbGljaz0icmV0dXJuIGhhYnJhV1lHLmluc2Vy
dFRhZ1dpdGhUZXh0KHRoaXMsICdpJyk7IiBocmVmPSIjIiB0YWJpbmRleD0iLTEi
PjxpbWcgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBhbHQ9ItCaIiBzcmM9Ii9pL3Bh
bmVsL2l0YWxpY19ydS5naWYiLz48L2E+CgoJCQkJPGEgdGl0bGU9ItCf0L7QtNGH
0ZHRgNC60L3Rg9GC0YvQuSIgb25jbGljaz0icmV0dXJuIGhhYnJhV1lHLmluc2Vy
dFRhZ1dpdGhUZXh0KHRoaXMsICd1Jyk7IiBocmVmPSIjIiB0YWJpbmRleD0iLTEi
PjxpbWcgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBhbHQ9Il9fIiBzcmM9Ii9pL3Bh
bmVsL3VuZGVybGluZV9ydS5naWYiLz48L2E+CgoJCQkJPGEgdGl0bGU9ItCX0LDR
h9GR0YDQutC90YPRgtGL0LkiIG9uY2xpY2s9InJldHVybiBoYWJyYVdZRy5pbnNl
cnRUYWdXaXRoVGV4dCh0aGlzLCAncycpOyIgaHJlZj0iIyIgdGFiaW5kZXg9Ii0x
Ij48aW1nIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgYWx0PSLigJQiIHNyYz0iL2kv
cGFuZWwvc3RyaWtldGhyb3VnaC5naWYiLz48L2E+CgoJCQkJPGEgc3R5bGU9Im1h
cmdpbjogYXV0byAxMHB4OyIgdGl0bGU9ItCa0L7QtCIgb25jbGljaz0icmV0dXJu
IGhhYnJhV1lHLmluc2VydFRhZ1dpdGhUZXh0KHRoaXMsICdjb2RlJyk7IiBocmVm
PSIjIiB0YWJpbmRleD0iLTEiIGNsYXNzPSJ0eHQiPjxpbWcgd2lkdGg9IjMwIiBo
ZWlnaHQ9IjIwIiBhbHQ9ItCa0L7QtCIgc3JjPSIvaS9wYW5lbC9jb2RlLmdpZiIv
PjwvYT4KCgkJCQk8YSB0aXRsZT0i0JLRgdGC0LDQstC40YLRjCDRgdGB0YvQu9C6
0YMiIG9uY2xpY2s9InJldHVybiBoYWJyYVdZRy5pbnNlcnRMaW5rKHRoaXMpOyIg
aHJlZj0iIyIgdGFiaW5kZXg9Ii0xIj48aW1nIHdpZHRoPSIyMCIgaGVpZ2h0PSIy
MCIgYWx0PSJBIiBzcmM9Ii9pL3BhbmVsL2xpbmsuZ2lmIi8+PC9hPgoKCQkJCTxh
IHRpdGxlPSLQktGB0YLQsNCy0LjRgtGMINC40LfQvtCx0YDQsNC20LXQvdC40LUi
IG9uY2xpY2s9InJldHVybiBoYWJyYVdZRy5pbnNlcnRJbWFnZSh0aGlzKTsiIGhy
ZWY9IiMiIHRhYmluZGV4PSItMSI+PGltZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAi
IGFsdD0iSU1HIiBzcmM9Ii9pL3BhbmVsL2ltYWdlLmdpZiIvPjwvYT4KCgogIAkJ
CTwvZGl2PgogIAkJCTxkaXYgY2xhc3M9InRleHQtaG9sZGVyIj4KICAgIAkJCTx0
ZXh0YXJlYSBjb2xzPSI1MCIgcm93cz0iMTAiIG5hbWU9ImNvbW1lbnRbbWVzc2Fn
ZV0iIGlkPSJqcy1maWVsZC1jb21tZW50IiBjbGFzcz0ianMtZmllbGQtZGF0YSBq
cy1yZXF1aXJlZCIKICAgIAkJCW9ua2V5ZG93bj0icmV0dXJuIGhhYnJhV1lHLmlu
c2VydFRhYihldmVudCwgdGhpcyk7IgogICAgCQkJb25rZXl1cD0icmV0dXJuIGhh
YnJhV1lHLmluc2VydFRhYihldmVudCwgdGhpcyk7IgogICAgCQkJPjwvdGV4dGFy
ZWE+ICAgICAgCQkJCiAgCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8aW5wdXQgY2xh
c3M9InByZXZpZXciIHR5cGU9ImJ1dHRvbiIgdmFsdWU9ItC/0YDQtdC00L/RgNC+
0YHQvNC+0YLRgCIvPgoJCQk8aW5wdXQgY2xhc3M9InBvc3QiIHR5cGU9InN1Ym1p
dCIgdmFsdWU9ItC90LDQv9C40YHQsNGC0YwiIG5hbWU9IndyaXRlX2NvbW1lbnQi
Lz4KCQk8L2ZpZWxkc2V0PgoJPC9mb3JtPgo8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJ
CQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJCQ0KDQoJCQkNCgkJPC9kaXY+DQoJDQoJ
DQoKCg0KCQoNCgkKDQoJDQoJDQoJDQoNCgk8L2Rpdj4NCg0KCTxkaXYgaWQ9InNp
ZGViYXIiPg0KCSAgDQoJCjxkaXYgY2xhc3M9ImxpdmUgYmxvZ2luZm8iPgoKCTxk
aXYgY2xhc3M9ImJnLWJvdHQtciI+PCEtLSBmb3IgYm90dG9tIHJvdW5kZWQgY29y
bmVycyAtLT4KCTxkaXYgY2xhc3M9ImJnLWJvdHQtbCI+CgoJPGgzPtCY0L3RhNC+
0YDQvNCw0YbQuNGPINC+INCx0LvQvtCz0LU8L2gzPgoKCTxkaXYgY2xhc3M9ImJs
b2ctYWJvdXQtdGV4dC1jb250ZW50Ij4KCSAKCQk8ZGl2IGNsYXNzPSJzdGF0cyI+
CiAgICAgIDxkaXYgY2xhc3M9Im1lbWJlcnNfY291bnQiIGlkPSJtZW1iZXJzX2Nv
dW50Ij4xNTA3MCDRh9C40YLQsNGC0LXQu9C10Lk8L2Rpdj4KICAgICAgPGRpdiBj
bGFzcz0icG9zdHNfY291bnQiPjE1NjUg0L/QvtGB0YLQvtCyPC9kaXY+ICAgIAog
ICAgPC9kaXY+CiAgICAgCgkgIDxkaXYgY2xhc3M9ImpvaW4iPgkgICAKICAJCQog
IAkJCiAgCQkgIDxhIGlkPSJqcy1hZGRCbG9nTWVtYmVyIiB0aXRsZT0i0L/RgNC4
0YHQvtC10LTQuNC90LjRgtGM0YHRjyDQuiDQsdC70L7Qs9GDIiBjbGFzcz0ianMt
YWRkQmxvZ01lbWJlciBoaWRkZW4iIG9uY2xpY2s9ImJsb2dzSGFuZGxlci5qb2lu
TGVhdmVCbG9nKCdqb2luJywgMTc2KTsgcmV0dXJuIGZhbHNlOyIgaHJlZj0iIyI+
0J/RgNC40YHQvtC10LTQuNC90LjRgtGM0YHRjzwvYT4KICAJCSAgPGEgaWQ9Impz
LXJlbW92ZUJsb2dNZW1iZXIiIHRpdGxlPSLQv9C+0LrQuNC90YPRgtGMINCx0LvQ
vtCzIiBjbGFzcz0ianMtcmVtb3ZlQmxvZ01lbWJlciAiIG9uY2xpY2s9IiBibG9n
c0hhbmRsZXIuam9pbkxlYXZlQmxvZygnbGVhdmUnLCAxNzYpOyByZXR1cm4gZmFs
c2U7IiBocmVmPSIjIj7Qn9C+0LrQuNC90YPRgtGMPC9hPiAgCQkKICAJCQkJIAoJ
CTwvZGl2PgoJCQoJPC9kaXY+CgoJPC9kaXY+Cgk8L2Rpdj48IS0tIC8vIGZvciBi
b3R0b20gcm91bmRlZCBjb3JuZXJzIC0tPgo8L2Rpdj4KDQoJCgoKDQoNCgkgIA0K
CQkNCg0KCQkJDQoJCQkNCgkJCQ0KDQoJCQkNCgkJCQ0KCQkJDQoJCQkNCgkJCQ0K
CQkJDQoJCQkNCgkJCQ0KCQkJDQoJCQkNCg0KCQkJDQoNCgkJCQ0KCQkJCTxkaXYg
Y2xhc3M9ImJhbm5lciI+DQoJCQkJCTxzY3JpcHQ+DQoJCQkJCXZhciBtYl9yYW5k
b20gPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAwMDApOw0KCQkJCQlk
b2N1bWVudC53cml0ZSgiPHNjcmlwdCBzcmM9J2h0dHA6Ly9waW5rLmhhYnJhbGFi
LnJ1L2NnaS1iaW4vaWZyYW1lL2hhYnJfb3RoZXJzXzI0MHg0MDA/IittYl9yYW5k
b20rIiZvcHRpb25zPUZUJz48L3NjciIrImlwdD4iKTsNCgkJCQkJPC9zY3JpcHQ+
DQoJCQkJPC9kaXY+DQoJCQkNCg0KCQkJDQoJCQkNCgkJCQ0KCQkJDQoJCQkJCQkN
CgkJDQoNCgkJDQoJDQoJCQ0KCQ0KCQ0KCQk8ZGl2IGNsYXNzPSJsaXZlIGRhaWx5
YmVzdCI+DQoNCgkJCTxkaXYgY2xhc3M9ImJnLWJvdHQtciI+PCEtLSBmb3IgYm90
dG9tIHJvdW5kZWQgY29ybmVycyAtLT4NCgkJCTxkaXYgY2xhc3M9ImJnLWJvdHQt
bCI+DQoJDQoJCQk8aDM+0JvRg9GH0YjQtdC1IDxzdXA+0LfQsCAyNCDRh9Cw0YHQ
sDwvc3VwPiZuYnNwOyYjODU5NTs8L2gzPg0KDQoJCQkNCgkJCQk8ZGwgY2xhc3M9
ImFpci1jb21tZW50Ij4NCgkJCQkJPGRkPg0KCQkJCQkJPGRsPgkJCQkJCQ0KCQkJ
CQkJCTxkdD48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2NvbXBhbnkvYm9v
a21hdGUvYmxvZy8xMjAzMTUvI2dpZnQiPjxpbWcgc3JjPSIvaS9zcGVjaWFsL2Jv
b2ttYXRlL2JpZy5wbmciIGFsdD0iQm9va21hdGUiIHN0eWxlPSJ2ZXJ0aWNhbC1h
bGlnbjp0b3A7ZmxvYXQ6bGVmdDtkaXNwbGF5OmJsb2NrO21hcmdpbi1yaWdodDox
MHB4O21hcmdpbi10b3A6NHB4OyIgIHRpdGxlPSLQmtCw0LbQtNGL0Lkg0LTQtdC9
0Ywg0LDQstGC0L7RgCDQu9GD0YfRiNC10LPQviDQv9C+0YHRgtCwINC/0L7Qu9GD
0YfQsNC10YIg0L/QvtC00LDRgNC+0LouINCa0LvQuNC60L3QuNGC0LUg0L3QsCDQ
uNC60L7QvdC60YMsINGH0YLQvtCx0Ysg0YPQt9C90LDRgtGMINCx0L7Qu9GM0YjQ
tS4iIGNsYXNzPSJoZWxwLXRpcCIvPjwvYT4NCgkJCQkJCQk8YSBjbGFzcz0id2hl
cmUiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvZ29vZ2xlLyI+R29v
Z2xlPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQkJCQkJPGRkPjxhIGNsYXNzPSJ0
b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9nb29nbGUvMTIw
Nzg5LyI+0J/QtdGA0LXQttC40LLQsNC90LjRjyDQrdGA0LjQutCwINCo0LzQuNC0
0YLQsDwvYT4mbmJzcDs8L2RkPg0KCQkJCQkJPC9kbD4NCgkJCQkJPC9kZD4NCgkJ
CQk8L2RsPg0KCQkJDQoJCQkJPGRsIGNsYXNzPSJhaXItY29tbWVudCI+DQoJCQkJ
CTxkZD4NCgkJCQkJCTxkbD4JCQkJCQkNCgkJCQkJCQk8ZHQ+DQoJCQkJCQkJPGEg
Y2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2lu
dGVybmV0LyI+0JjQvdGC0LXRgNC90LXRgjwvYT4mbmJzcDsmcmFycjs8L2R0Pg0K
CQkJCQkJCTxkZD48YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhh
YnIucnUvYmxvZ3MvaW50ZXJuZXQvMTIwNzg1LyI+0KXQsNCx0YDQrdGE0YTQtdC6
0YIu0YDRgzog0J/RgNC+0YnQsNC90LjQtSDRgSDQv9C+0LvRjNC30L7QstCw0YLQ
tdC70Y/QvNC4PC9hPiZuYnNwOzwvZGQ+DQoJCQkJCQk8L2RsPg0KCQkJCQk8L2Rk
Pg0KCQkJCTwvZGw+DQoJCQkNCgkJCQk8ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4N
CgkJCQkJPGRkPg0KCQkJCQkJPGRsPgkJCQkJCQ0KCQkJCQkJCTxkdD4NCgkJCQkJ
CQk8YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxv
Z3Mvc3RhcnR1cC8iPtCh0YLQsNGA0YLQsNC/0Ys8L2E+Jm5ic3A7JnJhcnI7PC9k
dD4NCgkJCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFi
cmFoYWJyLnJ1L2Jsb2dzL3N0YXJ0dXAvMTIwODQyLyI+SVBPIGZvciBkdW1taWVz
LiDQp9Cw0YHRgtGMIDE6INCw0LrRhtC40LgsINC80LDQttC+0YDQuNGC0LDRgNC4
0LgsINC60L7QvdGC0YDQvtC70Ywg0L3QsNC0INC60L7QvNC/0LDQvdC40LXQuTwv
YT4mbmJzcDs8L2RkPg0KCQkJCQkJPC9kbD4NCgkJCQkJPC9kZD4NCgkJCQk8L2Rs
Pg0KCQkJDQoJCQkJPGRsIGNsYXNzPSJhaXItY29tbWVudCI+DQoJCQkJCTxkZD4N
CgkJCQkJCTxkbD4JCQkJCQkNCgkJCQkJCQk8ZHQ+DQoJCQkJCQkJPGEgY2xhc3M9
IndoZXJlIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL3VpLyI+0JjQ
vdGC0LXRgNGE0LXQudGB0Ys8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCQkJCQk8
ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Js
b2dzL3VpLzEyMDgzMy8iPtCU0LXRiNC10LLRi9C5INCz0L7QstC90L7RgtGA0LDR
hNC40Log0YEgdmtvbnRha3RlPC9hPiZuYnNwOzwvZGQ+DQoJCQkJCQk8L2RsPg0K
CQkJCQk8L2RkPg0KCQkJCTwvZGw+DQoJCQkNCgkJCQk8ZGwgY2xhc3M9ImFpci1j
b21tZW50Ij4NCgkJCQkJPGRkPg0KCQkJCQkJPGRsPgkJCQkJCQ0KCQkJCQkJCTxk
dD4NCgkJCQkJCQk8YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9oYWJyYWhh
YnIucnUvYmxvZ3MvamF2YXNjcmlwdC8iPkphdmFTY3JpcHQ8L2E+Jm5ic3A7JnJh
cnI7PC9kdD4NCgkJCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRw
Oi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2phdmFzY3JpcHQvMTIwODQ4LyI+0KPRh9C1
0LHQvdC40LogSmF2YVNjcmlwdCAoYWxwaGEpPC9hPiZuYnNwOzwvZGQ+DQoJCQkJ
CQk8L2RsPg0KCQkJCQk8L2RkPg0KCQkJCTwvZGw+DQoJCQkNCgkJCQk8ZGwgY2xh
c3M9ImFpci1jb21tZW50Ij4NCgkJCQkJPGRkPg0KCQkJCQkJPGRsPgkJCQkJCQ0K
CQkJCQkJCTxkdD4NCgkJCQkJCQk8YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6
Ly9oYWJyYWhhYnIucnUvYmxvZ3MvaW50ZXJuZXQvIj7QmNC90YLQtdGA0L3QtdGC
PC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQkJCQkJPGRkPjxhIGNsYXNzPSJ0b3Bp
YyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9pbnRlcm5ldC8xMjA4
MzQvIj7QoNC+0YHRgtC10LvQtdC60L7QvCDRg9C20LUg0L3QsNGH0LjQvdCw0LXR
giDQsdC70L7QutC40YDQvtCy0LDRgtGMINGC0L7RgNGA0LXQvdGCINGC0YDQtdC6
0LXRgNGLPC9hPiZuYnNwOzwvZGQ+DQoJCQkJCQk8L2RsPg0KCQkJCQk8L2RkPg0K
CQkJCTwvZGw+DQoJCQkNCgkJCQk8ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4NCgkJ
CQkJPGRkPg0KCQkJCQkJPGRsPgkJCQkJCQ0KCQkJCQkJCTxkdD4NCgkJCQkJCQk8
YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3Mv
aW5mb3NlY3VyaXR5LyI+0JjQvdGE0L7RgNC80LDRhtC40L7QvdC90LDRjyDQsdC1
0LfQvtC/0LDRgdC90L7RgdGC0Yw8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCQkJ
CQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1
L2Jsb2dzL2luZm9zZWN1cml0eS8xMjA4NTEvIj7QkiDQv9C+0LjRgdC60LDRhSDQ
uNC00LXQsNC70YzQvdC+0LkgQ0FQVENIQTwvYT4mbmJzcDs8L2RkPg0KCQkJCQkJ
PC9kbD4NCgkJCQkJPC9kZD4NCgkJCQk8L2RsPg0KCQkJDQoJCQkJPGRsIGNsYXNz
PSJhaXItY29tbWVudCI+DQoJCQkJCTxkZD4NCgkJCQkJCTxkbD4JCQkJCQkNCgkJ
CQkJCQk8ZHQ+DQoJCQkJCQkJPGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8v
aGFicmFoYWJyLnJ1L2Jsb2dzL3NreXBlLyI+U2t5cGU8L2E+Jm5ic3A7JnJhcnI7
PC9kdD4NCgkJCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8v
aGFicmFoYWJyLnJ1L2Jsb2dzL3NreXBlLzEyMDg5MC8iPk1pY3Jvc29mdCDQs9C+
0YLQvtCy0LAg0L/QtdGA0LXQtNCw0YLRjCDQpNCh0JEg0YjQuNGE0YDQvtCy0LDQ
u9GM0L3Ri9C5INCw0LvQs9C+0YDQuNGC0LwgU2t5cGU8L2E+Jm5ic3A7PC9kZD4N
CgkJCQkJCTwvZGw+DQoJCQkJCTwvZGQ+DQoJCQkJPC9kbD4NCgkJCQ0KCQkJCTxk
bCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJCQk8ZGQ+DQoJCQkJCQk8ZGw+CQkJ
CQkJDQoJCQkJCQkJPGR0Pg0KCQkJCQkJCTxhIGNsYXNzPSJ3aGVyZSIgaHJlZj0i
aHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9jb3B5cmlnaHQvIj7QmtC+0L/QuNGA
0LDQudGCPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQkJCQkJPGRkPjxhIGNsYXNz
PSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9jb3B5cmln
aHQvMTIwNzkxLyI+0KDQsNC30LvQuNGH0L3Ri9C1INGC0LjQv9GLINC60L7QvdGC
0LXQvdGC0LAg0LIgcDJwINGB0LXRgtGP0YU8L2E+Jm5ic3A7PC9kZD4NCgkJCQkJ
CTwvZGw+DQoJCQkJCTwvZGQ+DQoJCQkJPC9kbD4NCgkJCQ0KCQkJCTxkbCBjbGFz
cz0iYWlyLWNvbW1lbnQiPg0KCQkJCQk8ZGQ+DQoJCQkJCQk8ZGw+CQkJCQkJDQoJ
CQkJCQkJPGR0Pg0KCQkJCQkJCTxhIGNsYXNzPSJ3aGVyZSIgaHJlZj0iaHR0cDov
L2hhYnJhaGFici5ydS9ibG9ncy93ZWJkZXYvIj7QktC10LEt0YDQsNC30YDQsNCx
0L7RgtC60LA8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCQkJCQk8ZGQ+PGEgY2xh
c3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL3dlYmRl
di8xMjA4NzIvIj7QkdCw0LfQsCBHZW9JUCDigJMg0YHRgtGA0LDQvdGLINC4INCz
0L7RgNC+0LTQsCwg0LjRjtC90YwgMjAxMSAoK9GB0LrRgNC40L/RgiDQvtCx0L3Q
vtCy0LvQtdC90LjRjyk8L2E+Jm5ic3A7PC9kZD4NCgkJCQkJCTwvZGw+DQoJCQkJ
CTwvZGQ+DQoJCQkJPC9kbD4NCgkJCQ0KCQkJPGRpdiBjbGFzcz0iYWxsIj4mIzE3
MTsgPGEgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS90b3AvIj7QstGB0LUg0LvR
g9GH0YjQuNC1PC9hPjwvZGl2Pg0KDQoJCQk8L2Rpdj4NCgkJCTwvZGl2PjwhLS0g
Ly8gZm9yIGJvdHRvbSByb3VuZGVkIGNvcm5lcnMgLS0+DQoJCTwvZGl2Pg0KCQ0K
DQoNCgkJCgoKPGRpdiBjbGFzcz0ibGl2ZSBuZXctZmVlZGJhY2tzIj4KCgk8ZGl2
IGNsYXNzPSJiZy1ib3R0LXIiPgoJPGRpdiBjbGFzcz0iYmctYm90dC1sIHNpbWls
YXItcG9zdHMiPgoKCTxoMz7Qn9C+0YXQvtC20LjQtSDQv9C+0YHRgtGLJm5ic3A7
JiM4NTk1OzwvaDM+CgoJCQk8ZGl2PgoJCQkJCgkJCQk8ZGw+CgkJCQkJPGRkPgoJ
CQkJCQk8ZGw+CgkJCQkJCQk8ZHQ+PHNwYW4gY2xhc3M9IndoZW4iPjA3LjA3LjIw
MTA8L3NwYW4+Jm5ic3A7JiM4NTk0OyA8YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0
dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvM2RfZ3JhcGhpY3MvIj7QkNC90LjQvNCw
0YbQuNGPINC4IDNEINCz0YDQsNGE0LjQutCwPC9hPiZuYnNwOyYjODU5NDs8L2R0
PgoJCQkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJh
aGFici5ydS9ibG9ncy8zZF9ncmFwaGljcy85ODQ5MC8iPtCe0LHRitC10LzQvdGL
0LUg0YLQtdC70LXRgtGA0LDQvdGB0LvRj9GG0LjQuCDQvtC/0LDRgdC90Ysg0LTQ
u9GPINC30LTQvtGA0L7QstGM0Y88L2E+PC9kZD4KCQkJCQkJPC9kbD4KCQkJCQk8
L2RkPgoJCQkJPC9kbD4KCQkJCQoJCQkJPGRsPgoJCQkJCTxkZD4KCQkJCQkJPGRs
PgoJCQkJCQkJPGR0PjxzcGFuIGNsYXNzPSJ3aGVuIj4wNC4wMi4yMDEwPC9zcGFu
PiZuYnNwOyYjODU5NDsgPGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8vaGFi
cmFoYWJyLnJ1L2Jsb2dzL3BvcHVsYXJfc2NpZW5jZS8iPtCd0LDRg9GH0L3Qvi3Q
v9C+0L/Rg9C70Y/RgNC90L7QtTwvYT4mbmJzcDsmIzg1OTQ7PC9kdD4KCQkJCQkJ
CTxkZD48YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUv
YmxvZ3MvcG9wdWxhcl9zY2llbmNlLzgzMTIyLyI+0JHRgNGO0YHCoNCh0YLQtdGA
0LvQuNC90LMg0LLCoNGB0LLQvtGR0LzCoNCx0LvQvtCz0LUg0YPQutCw0LfRi9Cy
0LDQtdGCINC90LDCoNC70Y7QsdC+0L/Ri9GC0L3QvtC1INC40YHRgdC70LXQtNC+
0LLQsNC90LjQtTog0LLQvtC00LjRgtGMwqDQsNCy0YLQvtC80L7QsdC40LvRjCDQ
vdC1wqDQv9C+0LvQtdC30L3QtdC1INC00LvRj8Kg0LfQtNC+0YDQvtCy0YzRjywg
0YfQtdC8wqDQutGD0YDQuNGC0Yw8L2E+PC9kZD4KCQkJCQkJPC9kbD4KCQkJCQk8
L2RkPgoJCQkJPC9kbD4KCQkJCQoJCQkJPGRsPgoJCQkJCTxkZD4KCQkJCQkJPGRs
PgoJCQkJCQkJPGR0PjxzcGFuIGNsYXNzPSJ3aGVuIj4xMi4wMy4yMDEwPC9zcGFu
PiZuYnNwOyYjODU5NDsgPGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8vaGFi
cmFoYWJyLnJ1L2Jsb2dzL3BvcHVsYXJfc2NpZW5jZS8iPtCd0LDRg9GH0L3Qvi3Q
v9C+0L/Rg9C70Y/RgNC90L7QtTwvYT4mbmJzcDsmIzg1OTQ7PC9kdD4KCQkJCQkJ
CTxkZD48YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUv
YmxvZ3MvcG9wdWxhcl9zY2llbmNlLzg3Mjg4LyI+0KTQuNC70YzRgtGA0Ysg0J/Q
tdGC0YDQuNC60LAg0L7QutCw0LfQsNC70LjRgdGMINCy0YDQtdC00L3RiyDQtNC7
0Y8g0LfQtNC+0YDQvtCy0YzRjzwvYT48L2RkPgoJCQkJCQk8L2RsPgoJCQkJCTwv
ZGQ+CgkJCQk8L2RsPgoJCQkJCgkJCQk8ZGw+CgkJCQkJPGRkPgoJCQkJCQk8ZGw+
CgkJCQkJCQk8ZHQ+PHNwYW4gY2xhc3M9IndoZW4iPjI3LjEwLjIwMTA8L3NwYW4+
Jm5ic3A7JiM4NTk0OyA8YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9oYWJy
YWhhYnIucnUvY29tcGFueS9nbGF2c3RhcnQvYmxvZy8iPtCR0LvQvtCzINC60L7Q
vNC/0LDQvdC40Lgg0JPQu9Cw0LLRgdGC0LDRgNGCPC9hPiZuYnNwOyYjODU5NDs8
L2R0PgoJCQkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hh
YnJhaGFici5ydS9jb21wYW55L2dsYXZzdGFydC9ibG9nLzEwNzAxMy8iPtCh0YLQ
sNGA0YLQsNC/0Ysg0LHQtdC3INCy0YDQtdC00LAg0LTQu9GPINC/0LDQv9GLPC9h
PjwvZGQ+CgkJCQkJCTwvZGw+CgkJCQkJPC9kZD4KCQkJCTwvZGw+CgkJCQkKCQkJ
CTxkbD4KCQkJCQk8ZGQ+CgkJCQkJCTxkbD4KCQkJCQkJCTxkdD48c3BhbiBjbGFz
cz0id2hlbiI+MjcuMDUuMjAxMDwvc3Bhbj4mbmJzcDsmIzg1OTQ7IDxhIGNsYXNz
PSJ3aGVyZSIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9jbGllbnRf
c2lkZV9vcHRpbWl6YXRpb24vIj7QmtC70LjQtdC90YLRgdC60LDRjyDQvtC/0YLQ
uNC80LjQt9Cw0YbQuNGPPC9hPiZuYnNwOyYjODU5NDs8L2R0PgoJCQkJCQkJPGRk
PjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9n
cy9jbGllbnRfc2lkZV9vcHRpbWl6YXRpb24vOTQ3MzEvIj7Ql9C00L7RgNC+0LLQ
sNGPINGB0LrQvtGA0L7RgdGC0Ywg0LTQu9GPINC30LTQvtGA0L7QstC+0LPQviDR
gdCw0LnRgtCwLCBXRUJPIFNvZnR3YXJlINCz0L7QstC+0YDQuNGCINC90LXRgiDQ
utGD0YDQtdC90LjRjjwvYT48L2RkPgoJCQkJCQk8L2RsPgoJCQkJCTwvZGQ+CgkJ
CQk8L2RsPgoJCQkJCgkJCQk8ZGw+CgkJCQkJPGRkPgoJCQkJCQk8ZGw+CgkJCQkJ
CQk8ZHQ+PHNwYW4gY2xhc3M9IndoZW4iPjE2LjA0LjIwMTA8L3NwYW4+Jm5ic3A7
JiM4NTk0OyA8YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIu
cnUvY29tcGFueS9ub21vYmlsZS9ibG9nLyI+0JHQu9C+0LMg0LrQvtC80L/QsNC9
0LjQuCBOb21vYmlsZS5SdTwvYT4mbmJzcDsmIzg1OTQ7PC9kdD4KCQkJCQkJCTxk
ZD48YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvY29t
cGFueS9ub21vYmlsZS9ibG9nLzkxMjA2LyI+0JzQvtCx0LjQu9GM0L3QuNC6INC9
0L7RgdC40YLRjCDQsiDQutCw0YDQvNCw0L3QtSDigJQg0JzQntCW0J3QniE8L2E+
PC9kZD4KCQkJCQkJPC9kbD4KCQkJCQk8L2RkPgoJCQkJPC9kbD4KCQkJCQoJCQkJ
PGRsPgoJCQkJCTxkZD4KCQkJCQkJPGRsPgoJCQkJCQkJPGR0PjxzcGFuIGNsYXNz
PSJ3aGVuIj4wNC4wNC4yMDEwPC9zcGFuPiZuYnNwOyYjODU5NDsgPGEgY2xhc3M9
IndoZXJlIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL3NtYXJ0cGhv
bmVfcnUvIj7QodC80LDRgNGC0YTQvtC90Ysg0Lgg0LrQvtC80LzRg9C90LjQutCw
0YLQvtGA0Ys8L2E+Jm5ic3A7JiM4NTk0OzwvZHQ+CgkJCQkJCQk8ZGQ+PGEgY2xh
c3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL3NtYXJ0
cGhvbmVfcnUvODk5MDQvIj7QndCwwqDRgdGC0LXQvdCw0YXCoNCf0LXQvdC30Ysg
0L/QvtGP0LLQuNC70LDRgdGMINGA0LXQutC70LDQvNCwLCDRg9C/0L7QtNC+0LHQ
u9GP0Y7RidCw0Y8g0YHQvtGC0L7QstGL0LnCoNGC0LXQu9C10YTQvtC9INC80LjQ
utGA0L7QstC+0LvQvdC+0LLQvtC5wqDQv9C10YfQuDwvYT48L2RkPgoJCQkJCQk8
L2RsPgoJCQkJCTwvZGQ+CgkJCQk8L2RsPgoJCQkJCgkJCQk8ZGw+CgkJCQkJPGRk
PgoJCQkJCQk8ZGw+CgkJCQkJCQk8ZHQ+PHNwYW4gY2xhc3M9IndoZW4iPjE2LjA4
LjIwMDk8L3NwYW4+Jm5ic3A7JiM4NTk0OyA8YSBjbGFzcz0id2hlcmUiIGhyZWY9
Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvcGVyc29uYWwvIj7Qn9C10YDRgdC+
0L3QsNC70YzQvdGL0LUg0LHQu9C+0LPQuDwvYT4mbmJzcDsmIzg1OTQ7PC9kdD4K
CQkJCQkJCTxkZD48YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhh
YnIucnUvYmxvZ3MvcGVyc29uYWwvNjcxOTEvIj7QmtCw0Log0LHQtdC30L7Qv9Cw
0YHQvdC+INC00LvRjyDQt9C00L7RgNC+0LLRjNGPINC/0L7QvdC40LfQuNGC0Ywg
0YPRgNC+0LLQtdC90Ywg0LvQuNCx0LjQtNC+PzwvYT48L2RkPgoJCQkJCQk8L2Rs
PgoJCQkJCTwvZGQ+CgkJCQk8L2RsPgoJCQkJCgkJCQk8ZGw+CgkJCQkJPGRkPgoJ
CQkJCQk8ZGw+CgkJCQkJCQk8ZHQ+PHNwYW4gY2xhc3M9IndoZW4iPjAxLjA4LjIw
MDc8L3NwYW4+Jm5ic3A7JiM4NTk0OyA8YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0
dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvaGFyZHdhcmUvIj7QltC10LvQtdC30L48
L2E+Jm5ic3A7JiM4NTk0OzwvZHQ+CgkJCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGlj
IiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2hhcmR3YXJlLzEyNzQ3
LyI+0JDQstGB0YLRgNCw0LvQuNC50YHQutC40LUg0YPRh9GR0L3Ri9C1INC/0YDQ
tdC00YPQv9GA0LXQttC00LDRjtGCOiDQu9Cw0LfQtdGA0L3Ri9C1INC/0YDQuNC9
0YLQtdGA0Ysg0L7Qv9Cw0YHQvdGLINC00LvRjyDQstCw0YjQtdCz0L4g0LfQtNC+
0YDQvtCy0YzRjzwvYT48L2RkPgoJCQkJCQk8L2RsPgoJCQkJCTwvZGQ+CgkJCQk8
L2RsPgoJCQkJCgkJCQk8ZGw+CgkJCQkJPGRkPgoJCQkJCQk8ZGw+CgkJCQkJCQk8
ZHQ+PHNwYW4gY2xhc3M9IndoZW4iPjI1LjA0LjIwMDc8L3NwYW4+Jm5ic3A7JiM4
NTk0OyA8YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUv
YmxvZ3MvcGVyc29uYWwvIj7Qn9C10YDRgdC+0L3QsNC70YzQvdGL0LUg0LHQu9C+
0LPQuDwvYT4mbmJzcDsmIzg1OTQ7PC9kdD4KCQkJCQkJCTxkZD48YSBjbGFzcz0i
dG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvcGVyc29uYWwv
NzQ3Mi8iPtCj0YHQuNC70LXQvdC90L7QtSDQv9C+0LPQu9C+0YnQtdC90LjQtSDQ
uNC90YTQvtGA0LzQsNGG0LjQuCDQstGA0LXQtNC40YIg0LLQsNGI0LXQvNGDINC3
0LTQvtGA0L7QstGM0Y48L2E+PC9kZD4KCQkJCQkJPC9kbD4KCQkJCQk8L2RkPgoJ
CQkJPC9kbD4KCQkJCQoJCQk8L2Rpdj4KCTwvZGl2PgoJPC9kaXY+CjwvZGl2PgoK
DQoJCQ0KCQkNCg0KPGRpdiBjbGFzcz0ibGl2ZSBuZXctZmVlZGJhY2tzIj4NCgkN
CgkJPGRpdiBjbGFzcz0iYmctYm90dC1yIj48IS0tIGZvciBib3R0b20gcm91bmRl
ZCBjb3JuZXJzIC0tPg0KCQk8ZGl2IGNsYXNzPSJiZy1ib3R0LWwiPg0KCQ0KCQk8
aDM+0J/RgNGP0LzQvtC5INGN0YTQuNGAJm5ic3A7JiM4NTk1OzwvaDM+DQoJCQ0K
CQk8IS0tINCh0YLRgNC+0YfQutCwINCyINC/0YDRj9C80L7QvCDRjdGE0LjRgNC1
IC0tPg0KCQkNCgkJPGRsIGNsYXNzPSJhaXItY29tbWVudCI+DQoJCQk8ZHQgY2xh
c3M9IndobyI+PGEgaHJlZj0iaHR0cDovL2FudGhvbnlfNjEzLmhhYnJhaGFici5y
dS8iPmFudGhvbnlfNjEzPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJ
CQkJPGRsPg0KCQkJCQk8ZHQ+PGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8v
aGFicmFoYWJyLnJ1L2NvbXBhbnkvZ29vZ2xlL2Jsb2cvIj7QkdC70L7QsyDQutC+
0LzQv9Cw0L3QuNC4IEdvb2dsZTwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJCQk8
ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Nv
bXBhbnkvZ29vZ2xlL2Jsb2cvMTIwODY4LyNjb21tZW50XzM5NjgxMTIiPtCa0LDQ
t9Cw0YXRgdGC0LDQvTog0LjQt9C80LXQvdC10L3QuNGPINCyINGB0YTQtdGA0LUg
0YHQstC+0LHQvtC00L3QvtCz0L4g0JjQvdGC0LXRgNC90LXRgtCwPC9hPiZuYnNw
OzxzcGFuIGNsYXNzPSJ0b3RhbCI+NTI8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0K
CQkJPC9kZD4NCgkJPC9kbD4NCgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQi
Pg0KCQkJPGR0IGNsYXNzPSJ3aG8iPjxhIGhyZWY9Imh0dHA6Ly9ueHMuaGFicmFo
YWJyLnJ1LyI+bnhzPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJ
PGRsPg0KCQkJCQk8ZHQ+PGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8vaGFi
cmFoYWJyLnJ1L2Jsb2dzL3N5c2FkbS8iPtCh0LjRgdGC0LXQvNC90L7QtSDQsNC0
0LzQuNC90LjRgdGC0YDQuNGA0L7QstCw0L3QuNC1PC9hPiZuYnNwOyZyYXJyOzwv
ZHQ+DQoJCQkJCTxkZD48YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJy
YWhhYnIucnUvYmxvZ3Mvc3lzYWRtLzEyMDgyNC8jY29tbWVudF8zOTY4MTEwIj5Q
ZG1lbnUg0LjQu9C4INC60LDQuiDQvdC1INC00LDRgtGMINC90L7QstC40YfQutGD
INC+0YjQuNCx0LjRgtGM0YHRjzwvYT4mbmJzcDs8c3BhbiBjbGFzcz0idG90YWwi
PjI2PC9zcGFuPjwvZGQ+DQoJCQkJPC9kbD4NCgkJCTwvZGQ+DQoJCTwvZGw+DQoJ
CQ0KCQk8ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4NCgkJCTxkdCBjbGFzcz0id2hv
Ij48YSBocmVmPSJodHRwOi8vYWxleGFvbC5oYWJyYWhhYnIucnUvIj5hbGV4YW9s
PC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJPGRsPg0KCQkJCQk8
ZHQ+PGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Nv
bXBhbnkvcmVncnUvYmxvZy8iPtCR0LvQvtCzINC60L7QvNC/0LDQvdC40LggUkVH
LlJVPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQkJCTxkZD48YSBjbGFzcz0idG9w
aWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvY29tcGFueS9yZWdydS9ibG9n
LzEyMDg3NC8jY29tbWVudF8zOTY4MTA5Ij7QlNC10L3RjCBJUHY2PC9hPiZuYnNw
OzxzcGFuIGNsYXNzPSJ0b3RhbCI+MTc8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0K
CQkJPC9kZD4NCgkJPC9kbD4NCgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQi
Pg0KCQkJPGR0IGNsYXNzPSJ3aG8iPjxhIGhyZWY9Imh0dHA6Ly9wbmF0YS5oYWJy
YWhhYnIucnUvIj5wbmF0YTwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0K
CQkJCTxkbD4NCgkJCQkJPGR0PjxhIGNsYXNzPSJ3aGVyZSIgaHJlZj0iaHR0cDov
L2hhYnJhaGFici5ydS9ibG9ncy9wcm9ncmFtbWluZy8iPtCf0YDQvtCz0YDQsNC8
0LzQuNGA0L7QstCw0L3QuNC1PC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQkJCTxk
ZD48YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxv
Z3MvcHJvZ3JhbW1pbmcvMTIwMDkwLyNjb21tZW50XzM5NjgxMDYiPtCh0YDQsNCy
0L3QuNGC0LXQu9GM0L3QvtC1INGC0LXRgdGC0LjRgNC+0LLQsNC90LjQtSDQv9GA
0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0Lgg0L/Qu9Cw0YLRhNC+0YDQ
vCAuTmV0LCBKYXZhINC4IE1vbm88L2E+Jm5ic3A7PHNwYW4gY2xhc3M9InRvdGFs
Ij4xMjQ8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0KCQkJPC9kZD4NCgkJPC9kbD4N
CgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0IGNsYXNzPSJ3
aG8iPjxhIGhyZWY9Imh0dHA6Ly9OaWtvQi5oYWJyYWhhYnIucnUvIj5OaWtvQjwv
YT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0KCQkJCTxkbD4NCgkJCQkJPGR0
PjxhIGNsYXNzPSJ3aGVyZSIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9n
cy9wcm9ncmFtbWluZy8iPtCf0YDQvtCz0YDQsNC80LzQuNGA0L7QstCw0L3QuNC1
PC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQkJCTxkZD48YSBjbGFzcz0idG9waWMi
IGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvcHJvZ3JhbW1pbmcvMTIw
ODg3LyNjb21tZW50XzM5NjgxMDQiPtCa0LvQuNC10L3RgiDQtNC70Y8gSGFicmFT
dG9yYWdlPC9hPiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+MTE8L3NwYW4+PC9k
ZD4NCgkJCQk8L2RsPg0KCQkJPC9kZD4NCgkJPC9kbD4NCgkJDQoJCTxkbCBjbGFz
cz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0IGNsYXNzPSJ3aG8iPjxhIGhyZWY9Imh0
dHA6Ly9QYXBhQnViYURpb3AuaGFicmFoYWJyLnJ1LyI+UGFwYUJ1YmFEaW9wPC9h
PiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJPGRsPg0KCQkJCQk8ZHQ+
PGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dz
L2lfYW1fYWR2ZXJ0aXNpbmcvIj7QryDQv9C40LDRgNGO0YHRjDwvYT4mbmJzcDsm
cmFycjs8L2R0Pg0KCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRw
Oi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2lfYW1fYWR2ZXJ0aXNpbmcvMTIwMDc1LyNj
b21tZW50XzM5NjgxMDMiPtCg0LXQttGM0YLQtSwg0LHRgNCw0YLRhtGLLCDRgNC1
0LbRjNGC0LUuINCg0LXQttGM0YLQtSDQvtGB0YLQvtGA0L7QttC90L7igKY8L2E+
Jm5ic3A7PHNwYW4gY2xhc3M9InRvdGFsIj4yNzwvc3Bhbj48L2RkPg0KCQkJCTwv
ZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPGRsIGNsYXNzPSJhaXItY29t
bWVudCI+DQoJCQk8ZHQgY2xhc3M9IndobyI+PGEgaHJlZj0iaHR0cDovL3JvbWFu
X3Rpay5oYWJyYWhhYnIucnUvIj5yb21hbl90aWs8L2E+Jm5ic3A7JnJhcnI7PC9k
dD4NCgkJCTxkZD4NCgkJCQk8ZGw+DQoJCQkJCTxkdD48YSBjbGFzcz0id2hlcmUi
IGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3Mvc3RhcnR1cC8iPtCh0YLQ
sNGA0YLQsNC/0Ys8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCQkJPGRkPjxhIGNs
YXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9zdGFy
dHVwLzEyMDg0Mi8jY29tbWVudF8zOTY4MTAxIj5JUE8gZm9yIGR1bW1pZXMuINCn
0LDRgdGC0YwgMTog0LDQutGG0LjQuCwg0LzQsNC20L7RgNC40YLQsNGA0LjQuCwg
0LrQvtC90YLRgNC+0LvRjCDQvdCw0LQg0LrQvtC80L/QsNC90LjQtdC5PC9hPiZu
YnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+NzA8L3NwYW4+PC9kZD4NCgkJCQk8L2Rs
Pg0KCQkJPC9kZD4NCgkJPC9kbD4NCgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1l
bnQiPg0KCQkJPGR0IGNsYXNzPSJ3aG8iPjxhIGhyZWY9Imh0dHA6Ly9zdGFsa2Vy
cy5oYWJyYWhhYnIucnUvIj5zdGFsa2VyczwvYT4mbmJzcDsmcmFycjs8L2R0Pg0K
CQkJPGRkPg0KCQkJCTxkbD4NCgkJCQkJPGR0PjxhIGNsYXNzPSJ3aGVyZSIgaHJl
Zj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9ndGQvIj5HVEQ8L2E+Jm5ic3A7
JnJhcnI7PC9kdD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0
cDovL2hhYnJhaGFici5ydS9ibG9ncy9ndGQvMTIwODk3LyNjb21tZW50XzM5Njgx
MDAiPtCn0LjRgtCw0YLRjCDQutC90LjQs9C4INC/0L4g0YLQsNC50Lwt0LzQtdC9
0LXQtNC20LzQtdC90YLRgyDigJQg0L/Qu9C+0YXQvtC5INGC0LDQudC8LdC80LXQ
vdC10LTQttC80LXQvdGCPC9hPiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+MTY8
L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0KCQkJPC9kZD4NCgkJPC9kbD4NCgkJDQoJ
CTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0IGNsYXNzPSJ3aG8iPjxh
IGhyZWY9Imh0dHA6Ly9uaWFrcmlzbi5oYWJyYWhhYnIucnUvIj5uaWFrcmlzbjwv
YT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0KCQkJCTxkbD4NCgkJCQkJPGR0
PjxhIGNsYXNzPSJ3aGVyZSIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9n
cy9pbmZvc2VjdXJpdHkvIj7QmNC90YTQvtGA0LzQsNGG0LjQvtC90L3QsNGPINCx
0LXQt9C+0L/QsNGB0L3QvtGB0YLRjDwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJ
CQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1
L2Jsb2dzL2luZm9zZWN1cml0eS8xMjA2NTkvI2NvbW1lbnRfMzk2ODA5OSI+0J/R
gNGP0YfQtdC80YHRjyDQvtGCIERET1Mg0LfQsCBOQVQg0L/RgNC+0LLQsNC50LTQ
tdGA0LA8L2E+Jm5ic3A7PHNwYW4gY2xhc3M9InRvdGFsIj4zNTwvc3Bhbj48L2Rk
Pg0KCQkJCTwvZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPGRsIGNsYXNz
PSJhaXItY29tbWVudCI+DQoJCQk8ZHQgY2xhc3M9IndobyI+PGEgaHJlZj0iaHR0
cDovL3NoaXR3YXJlLmhhYnJhaGFici5ydS8iPnNoaXR3YXJlPC9hPiZuYnNwOyZy
YXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJPGRsPg0KCQkJCQk8ZHQ+PGEgY2xhc3M9
IndoZXJlIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2dvb2dsZS8i
Pkdvb2dsZTwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJCQk8ZGQ+PGEgY2xhc3M9
InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2dvb2dsZS8x
MjA5MDkvI2NvbW1lbnRfMzk2ODA5OCI+R29vZ2xlINC80L7QttC10YIg0L/QvtGC
0LXRgNGP0YLRjCDQtNC+0LzQtdC9IEdvb2dsZS5rejwvYT4mbmJzcDs8c3BhbiBj
bGFzcz0idG90YWwiPjM8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0KCQkJPC9kZD4N
CgkJPC9kbD4NCgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0
IGNsYXNzPSJ3aG8iPjxhIGhyZWY9Imh0dHA6Ly9hc2lzLmhhYnJhaGFici5ydS8i
PmFzaXM8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCTxkZD4NCgkJCQk8ZGw+DQoJ
CQkJCTxkdD48YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIu
cnUvYmxvZ3Mvc2t5cGUvIj5Ta3lwZTwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJ
CQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1
L2Jsb2dzL3NreXBlLzEyMDg5MC8jY29tbWVudF8zOTY4MDk0Ij5NaWNyb3NvZnQg
0LPQvtGC0L7QstCwINC/0LXRgNC10LTQsNGC0Ywg0KTQodCRINGI0LjRhNGA0L7Q
stCw0LvRjNC90YvQuSDQsNC70LPQvtGA0LjRgtC8IFNreXBlPC9hPiZuYnNwOzxz
cGFuIGNsYXNzPSJ0b3RhbCI+MTUxPC9zcGFuPjwvZGQ+DQoJCQkJPC9kbD4NCgkJ
CTwvZGQ+DQoJCTwvZGw+DQoJCQ0KCQk8ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4N
CgkJCTxkdCBjbGFzcz0id2hvIj48YSBocmVmPSJodHRwOi8vYWZhbi5oYWJyYWhh
YnIucnUvIj5hZmFuPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJ
PGRsPg0KCQkJCQk8ZHQ+PGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8vaGFi
cmFoYWJyLnJ1L2NvbXBhbnkvZXZlcm5vdGUvYmxvZy8iPtCR0LvQvtCzINC60L7Q
vNC/0LDQvdC40LggRXZlcm5vdGUgQ29ycG9yYXRpb248L2E+Jm5ic3A7JnJhcnI7
PC9kdD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hh
YnJhaGFici5ydS9jb21wYW55L2V2ZXJub3RlL2Jsb2cvMTIwODk1LyNjb21tZW50
XzM5NjgwOTIiPtCi0LXRhdC90L7QsdC70L7Qszog0L/QvtGH0LXQvNGDIEV2ZXJu
b3RlINCy0YvQsdGA0LDQuyBBcGFjaGUgVGhyaWZ0INC00LvRjyDQv9C+0YHRgtGA
0L7QtdC90LjRjyDRgdCy0L7QtdCz0L4gQVBJPC9hPiZuYnNwOzxzcGFuIGNsYXNz
PSJ0b3RhbCI+Mjwvc3Bhbj48L2RkPg0KCQkJCTwvZGw+DQoJCQk8L2RkPg0KCQk8
L2RsPg0KCQkNCgkJPGRsIGNsYXNzPSJhaXItY29tbWVudCI+DQoJCQk8ZHQgY2xh
c3M9IndobyI+PGEgaHJlZj0iaHR0cDovL3hhbmVwLmhhYnJhaGFici5ydS8iPnhh
bmVwPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJPGRsPg0KCQkJ
CQk8ZHQ+PGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1
L2Jsb2dzL2N5YmVycHVuay8iPtCa0LjQsdC10YDQv9Cw0L3QujwvYT4mbmJzcDsm
cmFycjs8L2R0Pg0KCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRw
Oi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2N5YmVycHVuay8xMjA5MDAvI2NvbW1lbnRf
Mzk2ODA5MSI+SW50ZXJuZXQgQXJjaGl2ZSDRgdC/0LDRgdGR0YIg0LHRg9C80LDQ
ttC90YvQtSDQutC90LjQs9C4PC9hPiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+
Njwvc3Bhbj48L2RkPg0KCQkJCTwvZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkN
CgkJPGRsIGNsYXNzPSJhaXItY29tbWVudCI+DQoJCQk8ZHQgY2xhc3M9IndobyI+
PGEgaHJlZj0iaHR0cDovL0NMUi5oYWJyYWhhYnIucnUvIj5DTFI8L2E+Jm5ic3A7
JnJhcnI7PC9kdD4NCgkJCTxkZD4NCgkJCQk8ZGw+DQoJCQkJCTxkdD48YSBjbGFz
cz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvbWFjb3N4
ZGV2LyI+0KDQsNC30YDQsNCx0L7RgtC60LAg0L/QvtC0IEFwcGxlIGlPUzwvYT4m
bmJzcDsmcmFycjs8L2R0Pg0KCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVm
PSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL21hY29zeGRldi8xMTk4NzcvI2Nv
bW1lbnRfMzk2ODA4OSI+0J4g0LHQu9C+0LrQsNGFINC4INC40YUg0LjRgdC/0L7Q
u9GM0LfQvtCy0LDQvdC40Lgg0LIgT2JqZWN0aXZlLUMg0YfQsNGB0YLRjCAxLdCw
0Y88L2E+Jm5ic3A7PHNwYW4gY2xhc3M9InRvdGFsIj4xMDwvc3Bhbj48L2RkPg0K
CQkJCTwvZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPGRsIGNsYXNzPSJh
aXItY29tbWVudCI+DQoJCQk8ZHQgY2xhc3M9IndobyI+PGEgaHJlZj0iaHR0cDov
L0FuZHJleUl2YW5vZmYuaGFicmFoYWJyLnJ1LyI+QW5kcmV5SXZhbm9mZjwvYT4m
bmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0KCQkJCTxkbD4NCgkJCQkJPGR0Pjxh
IGNsYXNzPSJ3aGVyZSIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9p
bnRlcm5ldC8iPtCY0L3RgtC10YDQvdC10YI8L2E+Jm5ic3A7JnJhcnI7PC9kdD4N
CgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFi
ci5ydS9ibG9ncy9pbnRlcm5ldC8xMjA3ODUvI2NvbW1lbnRfMzk2ODA4NyI+0KXQ
sNCx0YDQrdGE0YTQtdC60YIu0YDRgzog0J/RgNC+0YnQsNC90LjQtSDRgSDQv9C+
0LvRjNC30L7QstCw0YLQtdC70Y/QvNC4PC9hPiZuYnNwOzxzcGFuIGNsYXNzPSJ0
b3RhbCI+MTM2PC9zcGFuPjwvZGQ+DQoJCQkJPC9kbD4NCgkJCTwvZGQ+DQoJCTwv
ZGw+DQoJCQ0KCQk8ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4NCgkJCTxkdCBjbGFz
cz0id2hvIj48YSBocmVmPSJodHRwOi8vTG9uZG9uZXIuaGFicmFoYWJyLnJ1LyI+
TG9uZG9uZXI8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCTxkZD4NCgkJCQk8ZGw+
DQoJCQkJCTxkdD48YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9oYWJyYWhh
YnIucnUvYmxvZ3MvaW5mb3NlY3VyaXR5LyI+0JjQvdGE0L7RgNC80LDRhtC40L7Q
vdC90LDRjyDQsdC10LfQvtC/0LDRgdC90L7RgdGC0Yw8L2E+Jm5ic3A7JnJhcnI7
PC9kdD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hh
YnJhaGFici5ydS9ibG9ncy9pbmZvc2VjdXJpdHkvMTIwODUxLyNjb21tZW50XzM5
NjgwODQiPtCSINC/0L7QuNGB0LrQsNGFINC40LTQtdCw0LvRjNC90L7QuSBDQVBU
Q0hBPC9hPiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+ODY8L3NwYW4+PC9kZD4N
CgkJCQk8L2RsPg0KCQkJPC9kZD4NCgkJPC9kbD4NCgkJDQoJCTxkbCBjbGFzcz0i
YWlyLWNvbW1lbnQiPg0KCQkJPGR0IGNsYXNzPSJ3aG8iPjxhIGhyZWY9Imh0dHA6
Ly9vcGl1bS5oYWJyYWhhYnIucnUvIj5vcGl1bTwvYT4mbmJzcDsmcmFycjs8L2R0
Pg0KCQkJPGRkPg0KCQkJCTxkbD4NCgkJCQkJPGR0PjxhIGNsYXNzPSJ3aGVyZSIg
aHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9oYXJkd2FyZS8iPtCW0LXQ
u9C10LfQvjwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJCQk8ZGQ+PGEgY2xhc3M9
InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2hhcmR3YXJl
LzEyMDcyNC8jY29tbWVudF8zOTY4MDgzIj5MaW5hcm8g0LDQvdC+0L3RgdC40YDQ
vtCy0LDQu9CwINC00LXRiNC10LLRg9GOINC/0LvQsNGC0YMg0LTQu9GPIG9wZW5z
b3VyY2Ug0YDQsNC30YDQsNCx0L7RgtGH0LjQutC+0LI8L2E+Jm5ic3A7PHNwYW4g
Y2xhc3M9InRvdGFsIj41NTwvc3Bhbj48L2RkPg0KCQkJCTwvZGw+DQoJCQk8L2Rk
Pg0KCQk8L2RsPg0KCQkNCgkJPGRsIGNsYXNzPSJhaXItY29tbWVudCI+DQoJCQk8
ZHQgY2xhc3M9IndobyI+PGEgaHJlZj0iaHR0cDovL2J1cnlfbWVfaW5fc21va2Uu
aGFicmFoYWJyLnJ1LyI+YnVyeV9tZV9pbl9zbW9rZTwvYT4mbmJzcDsmcmFycjs8
L2R0Pg0KCQkJPGRkPg0KCQkJCTxkbD4NCgkJCQkJPGR0PjxhIGNsYXNzPSJ3aGVy
ZSIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9jb21wYW55L3lhbmRleC9ibG9n
LyI+0JHQu9C+0LMg0LrQvtC80L/QsNC90LjQuCDQr9C90LTQtdC60YE8L2E+Jm5i
c3A7JnJhcnI7PC9kdD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0i
aHR0cDovL2hhYnJhaGFici5ydS9jb21wYW55L3lhbmRleC9ibG9nLzEyMDg4Mi8j
Y29tbWVudF8zOTY4MDcwIj7Qr9C90LTQtdC60YEg0YTQuNC90LDQvdGB0LjRgNGD
0LXRgiDCq9CU0LfQtdC90LzQsNC90LjCuzwvYT4mbmJzcDs8c3BhbiBjbGFzcz0i
dG90YWwiPjMyPC9zcGFuPjwvZGQ+DQoJCQkJPC9kbD4NCgkJCTwvZGQ+DQoJCTwv
ZGw+DQoJCQ0KCQk8ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4NCgkJCTxkdCBjbGFz
cz0id2hvIj48YSBocmVmPSJodHRwOi8vQWxleDIxN1Zpc2guaGFicmFoYWJyLnJ1
LyI+QWxleDIxN1Zpc2g8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCTxkZD4NCgkJ
CQk8ZGw+DQoJCQkJCTxkdD48YSBjbGFzcz0id2hlcmUiIGhyZWY9Imh0dHA6Ly9o
YWJyYWhhYnIucnUvYmxvZ3MvaHVtb3VyLyI+0KXQsNCx0YDQsNCu0LzQvtGAPC9h
PiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQkJCTxkZD48YSBjbGFzcz0idG9waWMiIGhy
ZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvaHVtb3VyLzEyMDkwNS8jY29t
bWVudF8zOTY4MDY5Ij7QmtCw0L3RhtC10YDQvtCz0LXQvdC90YvQtSDQuNC30LvR
g9GH0LXQvdC40Y8uINCh0LrQsNC90LTQsNC70YssINC40L3RgtGA0LjQs9C4LCDR
gNCw0YHRgdC70LXQtNC+0LLQsNC90LjRjyE8L2E+Jm5ic3A7PHNwYW4gY2xhc3M9
InRvdGFsIj40PC9zcGFuPjwvZGQ+DQoJCQkJPC9kbD4NCgkJCTwvZGQ+DQoJCTwv
ZGw+DQoJCQ0KCQk8ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4NCgkJCTxkdCBjbGFz
cz0id2hvIj48YSBocmVmPSJodHRwOi8vU2hhZGRpeC5oYWJyYWhhYnIucnUvIj5T
aGFkZGl4PC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJPGRsPg0K
CQkJCQk8ZHQ+PGEgY2xhc3M9IndoZXJlIiBocmVmPSJodHRwOi8vaGFicmFoYWJy
LnJ1L2Jsb2dzL25ldC8iPi5ORVQ8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCQkJ
PGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9i
bG9ncy9uZXQvMTIwNzU1LyNjb21tZW50XzM5NjgwNjYiPtCh0YLQsNCx0LjRgtGM
INC40LvQuCDQvdC1INGB0YLQsNCx0LjRgtGMINGA0LXQv9C+0LfQuNGC0L7RgNC4
0Lg/PC9hPiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+Mzwvc3Bhbj48L2RkPg0K
CQkJCTwvZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPCEtLSAvLyDQodGC
0YDQvtGH0LrQsCDQsiDQv9GA0Y/QvNC+0Lwg0Y3RhNC40YDQtSAtLT4NCgkJPGRp
diBjbGFzcz0iYWxsIj4mIzE3MTsgPGEgaHJlZj0iL2xpdmUvIj7QstC10YHRjCDQ
v9GA0Y/QvNC+0Lkg0Y3RhNC40YA8L2E+PC9kaXY+DQoJCQ0KCQkJDQoJCTwvZGl2
Pg0KCQk8L2Rpdj48IS0tIC8vIGZvciBib3R0b20gcm91bmRlZCBjb3JuZXJzIC0t
Pg0KPC9kaXY+DQoNCgo8ZGl2IGNsYXNzPSJsaXZlIGhlbHAiIHN0eWxlPSJiYWNr
Z3JvdW5kOnVybCgvaS9jb21wYW5pZXMvbWljcm9zb2Z0L3ZzX2Zvbi5naWYpIG5v
LXJlcGVhdCAwIDAgI0YwRjBFNzsiPgoJPGRpdiBjbGFzcz0iYmctYm90dC1yIj48
ZGl2IGNsYXNzPSJiZy1ib3R0LWwiPgoJCTxkaXYgY2xhc3M9InNpZGUtc2lkZSI+
CgkJCTxoMz7QodC+0LLQtdGC0YsgPGEgaHJlZj0iaHR0cDovL2Nsay5hdGRtdC5j
b20vTVJSL2dvLzMyMzYyNjgzMy9kaXJlY3QvMDEvIj48aW1nIHNyYz0nL2kvY29t
cGFuaWVzL21pY3Jvc29mdC92c19sb2dvLnBuZycgYWx0PSdNaWNyb3NvZnQgVmlz
dWFsIFN0dWRpbycvPjwvYT48L2gzPgoJCQk8dWw+CgkJCQkKCQkJCTxsaT48YSBo
cmVmPSJodHRwOi8vYmxvZ3MubXNkbi5jb20vYi9ydXNhcmFmb3JkL2FyY2hpdmUv
MjAxMS8wNS8wMi8xMDE1OTkzNi5hc3B4Ij7Ql9C90LDQtdGC0LUg0LvQuCDQstGL
LCDRh9GC0L7igKYg4oSWMjQ2OiBWaXN1YWwgU3R1ZGlvINCw0LLRgtC+0LzQsNGC
0LjRh9C10YHQutC4INGB0L7RhdGA0LDQvdGP0LXRgiDRgtC10LrRg9GJ0LjQtSDQ
vdCw0YHRgtGA0L7QudC60Lgg0LrQsNC20LTRi9C5INGA0LDQtywg0LrQvtCz0LTQ
sCDQstGLINC30LDQutGA0YvQstCw0LXRgtC1IFZTPzwvYT4gPHNtYWxsPjIg0LzQ
sNGPIDIwMTE8L3NtYWxsPjwvbGk+CgkJCQkKCQkJCTxsaT48YSBocmVmPSJodHRw
Oi8vYmxvZ3MubXNkbi5jb20vYi9ydXNhcmFmb3JkL2FyY2hpdmUvMjAxMS8wNC8w
NS8xMDE0OTg0My5hc3B4Ij7QotC10YXQvdC40YfQtdGB0LrQuNC1INC80LDRgtC1
0YDQuNCw0LvRiyDQv9C+INC/0YDQvtC00YPQutGC0LDQvCDQuCDRgNC10YjQtdC9
0LjRj9C8IE1pY3Jvc29mdCDQvdCwINGA0YPRgdGB0LrQvtC8INGP0LfRi9C60LUg
LSDQsNC/0YDQtdC70YwgMjAxMTwvYT4gPHNtYWxsPjUg0LDQv9GA0LXQu9GPIDIw
MTE8L3NtYWxsPjwvbGk+CgkJCQkKCQkJCTxsaT48YSBocmVmPSJodHRwOi8vYmxv
Z3MubXNkbi5jb20vYi9ydXNhcmFmb3JkL2FyY2hpdmUvMjAxMS8wNC8wNS8xMDE0
OTg0Mi5hc3B4Ij7Ql9C90LDQtdGC0LUg0LvQuCDQstGLLCDRh9GC0L7igKYg4oSW
MjQ1OiDQnNC+0LbQtdGC0LUg0YHQvtGF0YDQsNC90LjRgtGMINGC0LXQutGD0YnQ
uNC1INC90LDRgdGC0YDQvtC50LrQuCDQv9C10YDQtdC0INC40LzQv9C+0YDRgtC+
0Lwg0LjQu9C4INGB0LHRgNC+0YHQvtC8PzwvYT4gPHNtYWxsPjUg0LDQv9GA0LXQ
u9GPIDIwMTE8L3NtYWxsPjwvbGk+CgkJCQkKCQkJCTxsaT48YSBocmVmPSJodHRw
Oi8vYmxvZ3MubXNkbi5jb20vYi9ydXNhcmFmb3JkL2FyY2hpdmUvMjAxMS8wMy8y
Mi8xMDE0NDMyNi5hc3B4Ij7Ql9C90LDQtdGC0LUg0LvQuCDQstGL4oCmIOKEljI0
NDog0JIg0YfQtdC8INGA0LDQt9C90LjRhtCwINC80LXQttC00YMg0YHQsdGA0L7R
gdC+0Lwg0L3QsNGB0YLRgNC+0LXQuiDQuCDQuNGFINC40LzQv9C+0YDRgtC+0Lw/
PC9hPiA8c21hbGw+MjIg0LzQsNGA0YLQsCAyMDExPC9zbWFsbD48L2xpPgoJCQkJ
CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2Jsb2dzLm1zZG4uY29tL2IvcnVzYXJh
Zm9yZC9hcmNoaXZlLzIwMTEvMDMvMjAvMTAxNDM1NDQuYXNweCI+0JfQvdCw0LXR
gtC1INC70Lgg0LLRiywg0YfRgtC+4oCmIOKEljI0Mzog0JzQvtC20LXRgtC1INC0
0L7QsdCw0LLQu9GP0YLRjCDRgdCy0L7QuCDRhNCw0LnQu9GLINCyINGB0L/QuNGB
0L7QuiDQvdCwINGB0YLRgNCw0L3QuNGG0LUgSW1wb3J0IC8gRXhwb3J0IFNldHRp
bmdzIOKAkyBSZXNldD88L2E+IDxzbWFsbD4yMCDQvNCw0YDRgtCwIDIwMTE8L3Nt
YWxsPjwvbGk+CgkJCQkKCQkJCTxsaT48YSBocmVmPSJodHRwOi8vYmxvZ3MubXNk
bi5jb20vYi9ydXNhcmFmb3JkL2FyY2hpdmUvMjAxMS8wMy8wOS8xMDEzODQ5OC5h
c3B4Ij7QoNGP0LQg0LLQsNC20L3Ri9GFINGB0L7QsdGL0YLQuNC5INCyINGB0LXQ
vNC10LnRgdGC0LLQtSDQuNC90YHRgtGA0YPQvNC10L3RgtC+0LIgVmlzdWFsIFN0
dWRpbyAyMDEwPC9hPiA8c21hbGw+OSDQvNCw0YDRgtCwIDIwMTE8L3NtYWxsPjwv
bGk+CgkJCQkKCQkJCTxsaT48YSBocmVmPSJodHRwOi8vYmxvZ3MubXNkbi5jb20v
Yi9ydXNhcmFmb3JkL2FyY2hpdmUvMjAxMS8wMy8wMS8xMDEzNTM5Ny5hc3B4Ij7Q
l9C90LDQtdGC0LUg0LvQuCDQstGLLCDQutCw0LrigKYg4oSWMjQyOiDQktGL0LfR
i9Cy0LDRgtGMINC80LDQutGA0L7RgdGLINGBINC60LvQsNCy0LjQsNGC0YPRgNGL
ICjQuNC70Lgg0LrQsNC6INCx0YvRgdGC0YDQviDRg9Cy0LXQu9C40YfQuNGC0Ywv
0YPQvNC10L3RjNGI0LjRgtGMINGI0YDQuNGE0YIg0YLQtdC60YHRgtCwINCyINCy
0LDRiNC10Lwg0YDQtdC00LDQutGC0L7RgNC1KT88L2E+IDxzbWFsbD4xINC80LDR
gNGC0LAgMjAxMTwvc21hbGw+PC9saT4KCQkJCQoJCQkJPGxpPjxhIGhyZWY9Imh0
dHA6Ly9ibG9ncy5tc2RuLmNvbS9iL3J1c2FyYWZvcmQvYXJjaGl2ZS8yMDExLzAy
LzI1LzEwMTM0MDI4LmFzcHgiPtCX0L3QsNC10YLQtSDQu9C4INCy0YssINGH0YLQ
vjog4oSWMjQxOiDQnNC+0LbQtdGC0LUg0LLQvtGB0L/QvtC70YzQt9C+0LLQsNGC
0YzRgdGPINC+0LrQvdC+0Lwg0LjQvdGC0LXRgNC/0YDQtdGC0LDRgtC+0YDQsCwg
0LrQsNC6INC/0YDQvtCz0YDQsNC80LzQuNGA0YPQtdC80YvQvCDQutCw0LvRjNC6
0YPQu9GP0YLQvtGA0L7QvCDQuNC70Lgg0LjQvdGB0YLRgNGD0LzQtdC90YLQvtC8
INC+0YLQu9Cw0LTQutC4PzwvYT4gPHNtYWxsPjI1INGE0LXQstGA0LDQu9GPIDIw
MTE8L3NtYWxsPjwvbGk+CgkJCQkKCQkJCTxsaT48YSBocmVmPSJodHRwOi8vYmxv
Z3MubXNkbi5jb20vYi9ydXNhcmFmb3JkL2FyY2hpdmUvMjAxMS8wMi8xOC8xMDEz
MTI3OC5hc3B4Ij7Ql9C90LDQtdGC0LUg0LvQuCDQstGLLCDQutCw0LrigKYg4oSW
MjQwOiDQo9C00LDQu9C40YLRjCDQvdC10LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C1
INC00LjRgNC10LrRgtC40LLRiyDCq3VzaW5nwrs/PC9hPiA8c21hbGw+MTgg0YTQ
tdCy0YDQsNC70Y8gMjAxMTwvc21hbGw+PC9saT4KCQkJCQoJCQkJPGxpPjxhIGhy
ZWY9Imh0dHA6Ly9ibG9ncy5tc2RuLmNvbS9iL3J1c2FyYWZvcmQvYXJjaGl2ZS8y
MDExLzAyLzExLzEwMTI3ODk4LmFzcHgiPtCS0LDRiNC1INC80L3QtdC90LjQtSDQ
viBWaXN1YWwgU3R1ZGlvIDIwMTAg4oCTINC+0L/RgNC+0YEg0LrQvtC80LDQvdC0
0Ysg0YDQsNC30YDQsNCx0L7RgtC60LggVmlzdWFsIFN0dWRpby48L2E+IDxzbWFs
bD4xMSDRhNC10LLRgNCw0LvRjyAyMDExPC9zbWFsbD48L2xpPgoJCQkJCgkJCTwv
dWw+CgkJPC9kaXY+CgkJPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDttYXJnaW4tbGVm
dDoyMHB4O2NvbG9yOiM5OTk7Ij48YSBocmVmPSJodHRwOi8vY2xrLmF0ZG10LmNv
bS9NUlIvZ28vMzIzNjI2ODMyL2RpcmVjdC8wMS8iPtCh0LrQsNGH0LDRgtGMwqDQ
v9GA0L7QsdC90YPRjsKg0LLQtdGA0YHQuNGOPC9hPsKg4oaTPGltZyBzcmM9Imh0
dHA6Ly92aWV3LmF0ZG10LmNvbS9NUlIvdmlldy8zMjM2MjY4MzQvZGlyZWN0LzAx
LyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjwvZGl2PjxkaXYgY2xhc3M9J2FsbCcg
c3R5bGU9J21hcmdpbi10b3A6MDtmbG9hdDpyaWdodDsnPsKrwqA8YSBocmVmPSdo
dHRwOi8vY2xrLmF0ZG10LmNvbS9NUlIvZ28vMzIzNjI2ODMxL2RpcmVjdC8wMS8n
PtCy0YHQtcKg0YHQvtCy0LXRgtGLPC9hPjwvZGl2PgoJPC9kaXY+PC9kaXY+PCEt
LSAvLyBmb3IgYm90dG9tIHJvdW5kZWQgY29ybmVycyAtLT4KCjwvZGl2PgoNCg0K
DQoNCg0KCSAgCgoJPGRpdiBjbGFzcz0ibGl2ZSBiZXN0X2NvbXBhbnkiPgoKCQk8
ZGl2IGNsYXNzPSJiZy1ib3R0LXIiPjwhLS0gZm9yIGJvdHRvbSByb3VuZGVkIGNv
cm5lcnMgLS0+CgkJPGRpdiBjbGFzcz0iYmctYm90dC1sIj4KCgkJPGgzPtCa0L7Q
vNC/0LDQvdC40Y8g0LTQvdGPIDxpbWcgc3JjPSIvaS9iZ19jaWNsZV9oZWxwLnBu
ZyIgdGl0bGU9ItCa0L7QvNC/0LDQvdC40Y8sINGH0LXQuSDQv9C+0YHRgiDQvdCw
0LHRgNCw0Lsg0LzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB
0YLQstC+INCx0LDQu9C70L7QsiDRgdGA0LXQtNC4INCy0YHQtdGFCtC+0L/Rg9Cx
0LvQuNC60L7QstCw0L3QvdGL0YUg0LIg0LrQvtGA0L/QvtGA0LDRgtC40LLQvdGL
0YUg0LHQu9C+0LPQsNGFINC/0L7RgdGC0LDRhSDQt9CwINC/0YDQvtGI0LXQtNGI
0LjQtSDRgdGD0YLQutC4LiDQo9GH0LjRgtGL0LLQsNGO0YLRgdGPINC/0L7RgdGC
0YssINC00LvRjyDQutC+0YLQvtGA0YvRhSDQuNGB0YLQtdC6INGB0YDQvtC6INCz
0L7Qu9C+0YHQvtCy0LDQvdC40Y8gPGJyPigzINC00L3RjyDRgSDQvNC+0LzQtdC9
0YLQsCDQv9GD0LHQu9C40LrQsNGG0LjQuCkuIiBjbGFzcz0iaGVscC10aXAiPjwv
aDM+CgkJPGRpdiBjbGFzcz0iY29tcGFueV9pbmZvIj4KCQkJPGRpdiBjbGFzcz0i
bmFtZSI+CgkJCSA8aW1nIGNsYXNzPSJmYXZpY29uIiBzcmM9Ii9tZWRpYS9jb21w
YW55L2Zhdmljb24vMTIvZmF2aWNvbl8xMTgzLmljbyIgYWx0PSJLZWJydW0gQ29y
cC4iIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgLz4KCQkJIDxhIGhyZWY9Imh0dHA6
Ly9oYWJyYWhhYnIucnUvY29tcGFueS9rZWJydW0vIiBjbGFzcz0idGl0bGUiPktl
YnJ1bSBDb3JwLjwvYT4KCQkJPC9kaXY+CgoJCQk8cD7Qn9C+0YHQu9C10LTQvdC4
0Lkg0L/QvtGB0YI6CgkJCQk8YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Nv
bXBhbnkva2VicnVtL2Jsb2cvMTIwNTk1LyI+TGludXgg4oCUINGB0LTQtdC70LDQ
uSDQtdCz0L4g0LfQsNGJ0LjRidGR0L3QvdC10LkhPC9hPgoJCQk8L3A+CgkJCTxk
aXYgY2xhc3M9Imxpa2UiPgogIAkJCTxkaXYgaWQ9ImZhbnNfY291bnQiPjU1INC/
0L7QutC70L7QvdC90LjQutC+0LI8L2Rpdj4KICAJCQkKICAJCQkJPGEgaHJlZj0i
IyIgaWQ9ImpzLWFkZEZhbiIgY2xhc3M9ImpzLWFkZEZhbi1Db21wYW55ICIgdGl0
bGU9ItCc0L3QtSDQvdGA0LDQstC40YLRgdGPINC60L7QvNC/0LDQvdC40Y8iIG9u
Y2xpY2s9ImNvbXBhbmllc0hhbmRsZXIuZmFuU2VuZCgxMTgzLCB0cnVlKTsgdGhp
cy5hZGRDbGFzcygnaGlkZGVuJyk7ICQoJ2pzLXJlbW92ZUZhbicpLnJlbW92ZUNs
YXNzKCdoaWRkZW4nKTsgcmV0dXJuIGZhbHNlOyI+0J/RgNC40YHQvtC10LTQuNC9
0LjRgtGM0YHRjzwvYT4KICAJCQkJPGEgaHJlZj0iIyIgaWQ9ImpzLXJlbW92ZUZh
biIgY2xhc3M9ImpzLXJlbW92ZUZhbi1Db21wYW55IGhpZGRlbiIgdGl0bGU9ItCa
0L7QvNC/0LDQvdC40Y8g0LzQvdC1INCx0L7Qu9GM0YjQtSDQvdC1INC90YDQsNCy
0LjRgtGB0Y8iIG9uY2xpY2s9ImNvbXBhbmllc0hhbmRsZXIuZmFuU2VuZCgxMTgz
LCBmYWxzZSk7IHRoaXMuYWRkQ2xhc3MoJ2hpZGRlbicpOyAkKCdqcy1hZGRGYW4n
KS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7IHJldHVybiBmYWxzZTsiPtCe0YLQv9C4
0YHQsNGC0YzRgdGPINC+0YIg0LHQu9C+0LPQsCDRjdGC0L7QuSDQutC+0LzQv9Cw
0L3QuNC4PC9hPgogIAkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCgoJCTwvZGl2PgoJ
CTwvZGl2PjwhLS0gLy8gZm9yIGJvdHRvbSByb3VuZGVkIGNvcm5lcnMgLS0+Cgk8
L2Rpdj4KCgoKDQoJCQ0KPGRpdiBjbGFzcz0ibGl2ZSBuZXctZmVlZGJhY2tzIj4N
CgkNCgkJPGRpdiBjbGFzcz0iYmctYm90dC1yIj48IS0tIGZvciBib3R0b20gcm91
bmRlZCBjb3JuZXJzIC0tPg0KCQk8ZGl2IGNsYXNzPSJiZy1ib3R0LWwiPg0KCQ0K
CQk8aDM+USZhbXA7QSZuYnNwOyYjODU5NTs8L2gzPg0KCQkNCgkJPCEtLSDQodGC
0YDQvtGH0LrQsCDQsiDQv9GA0Y/QvNC+0Lwg0Y3RhNC40YDQtSAtLT4NCgkJDQoJ
CTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0IGNsYXNzPSJ3aG8iPjxh
IGhyZWY9Imh0dHA6Ly9Cb2J5bGV2LmhhYnJhaGFici5ydS8iPkJvYnlsZXY8L2E+
Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCTxkZD4NCgkJCQk8ZGw+DQoJCQkJCTxkZD48
YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvcWEvODMx
MC8jY29tbWVudF80Mjk5NiI+0J/QvtC00YHQutCw0LbQuNGC0LUg0LzRi9GI0Ywh
PC9hPiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+ODwvc3Bhbj48L2RkPg0KCQkJ
CTwvZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPGRsIGNsYXNzPSJhaXIt
Y29tbWVudCI+DQoJCQk8ZHQgY2xhc3M9IndobyI+PGEgaHJlZj0iaHR0cDovL2Jl
bGsuaGFicmFoYWJyLnJ1LyI+YmVsazwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJ
PGRkPg0KCQkJCTxkbD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0i
aHR0cDovL2hhYnJhaGFici5ydS9xYS84MzA5LyNjb21tZW50XzQyOTk0Ij7QodGL
0L/Qu9GO0YLRgdGPINGD0LLQtdC00L7QvNC70LXQvdC40Y8g0L4g0L3QtdC00L7R
iNC10LTRiNC10Lwg0YHQv9Cw0LzQtTwvYT4mbmJzcDs8c3BhbiBjbGFzcz0idG90
YWwiPjI8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0KCQkJPC9kZD4NCgkJPC9kbD4N
CgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0IGNsYXNzPSJ3
aG8iPjxhIGhyZWY9Imh0dHA6Ly9NaXhhbHljaC5oYWJyYWhhYnIucnUvIj5NaXhh
bHljaDwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0KCQkJCTxkbD4NCgkJ
CQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5y
dS9xYS84Mjg0LyNjb21tZW50XzQyOTg4Ij7Qo9GB0LrQvtGA0LXQvdC40LUg0YDQ
sNCx0L7RgtGLINC/0YDQvtCz0YDQsNC80LzQuNGB0YLQsDwvYT4mbmJzcDs8c3Bh
biBjbGFzcz0idG90YWwiPjE0PC9zcGFuPjwvZGQ+DQoJCQkJPC9kbD4NCgkJCTwv
ZGQ+DQoJCTwvZGw+DQoJCQ0KCQk8ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4NCgkJ
CTxkdCBjbGFzcz0id2hvIj48YSBocmVmPSJodHRwOi8vaGltaWsuaGFicmFoYWJy
LnJ1LyI+aGltaWs8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCTxkZD4NCgkJCQk8
ZGw+DQoJCQkJCTxkZD48YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6Ly9oYWJy
YWhhYnIucnUvcWEvODMxMi8jYW5zd2VyXzM1NDAyIj7QoNCw0LHQvtGC0LAg0JXQ
stGA0L7Qv9C1OiDQp9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0LfQvdCw0YLR
jD88L2E+Jm5ic3A7PHNwYW4gY2xhc3M9InRvdGFsIj4yPC9zcGFuPjwvZGQ+DQoJ
CQkJPC9kbD4NCgkJCTwvZGQ+DQoJCTwvZGw+DQoJCQ0KCQk8ZGwgY2xhc3M9ImFp
ci1jb21tZW50Ij4NCgkJCTxkdCBjbGFzcz0id2hvIj48YSBocmVmPSJodHRwOi8v
dXNhdGlrb3YuaGFicmFoYWJyLnJ1LyI+dXNhdGlrb3Y8L2E+Jm5ic3A7JnJhcnI7
PC9kdD4NCgkJCTxkZD4NCgkJCQk8ZGw+DQoJCQkJCTxkZD48YSBjbGFzcz0idG9w
aWMiIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvcWEvODMxMS8jYW5zd2VyXzM1
NDAxIj5wZGYgLSZndDsganBnINC90LAgRnJlZUJTRDwvYT4mbmJzcDs8c3BhbiBj
bGFzcz0idG90YWwiPjI8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0KCQkJPC9kZD4N
CgkJPC9kbD4NCgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0
IGNsYXNzPSJ3aG8iPjxhIGhyZWY9Imh0dHA6Ly9NaXhhbHljaC5oYWJyYWhhYnIu
cnUvIj5NaXhhbHljaDwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0KCQkJ
CTxkbD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hh
YnJhaGFici5ydS9xYS84MzA2LyNhbnN3ZXJfMzUzOTgiPtCl0L7RgdGC0LjQvdCz
INC60LDRgNGC0LjQvdC+0Log0LTQu9GPINGB0YLQsNGC0LXQuTwvYT4mbmJzcDs8
c3BhbiBjbGFzcz0idG90YWwiPjU8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0KCQkJ
PC9kZD4NCgkJPC9kbD4NCgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0K
CQkJPGR0IGNsYXNzPSJ3aG8iPjxhIGhyZWY9Imh0dHA6Ly9KdWdnbGVyLmhhYnJh
aGFici5ydS8iPkp1Z2dsZXI8L2E+Jm5ic3A7JnJhcnI7PC9kdD4NCgkJCTxkZD4N
CgkJCQk8ZGw+DQoJCQkJCTxkZD48YSBjbGFzcz0idG9waWMiIGhyZWY9Imh0dHA6
Ly9oYWJyYWhhYnIucnUvcWEvODMwNS8jY29tbWVudF80Mjk3NyI+0JHRi9GB0YLR
gNCw0Y8g0L/QvtGC0LXRgNGPINC30LDRgNGP0LTQsCDQvdCwINGD0YHRgtGA0L7Q
udGB0YLQstCw0YUsINC/0L7QtNC60LvRjtGH0LXQvdGL0YUg0LogV2ktRmkuINCa
0YLQviDRgdGC0LDQu9C60LjQstCw0LvRgdGPPzwvYT4mbmJzcDs8c3BhbiBjbGFz
cz0idG90YWwiPjM8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0KCQkJPC9kZD4NCgkJ
PC9kbD4NCgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0IGNs
YXNzPSJ3aG8iPjxhIGhyZWY9Imh0dHA6Ly9EZXVzTW9kdXMuaGFicmFoYWJyLnJ1
LyI+RGV1c01vZHVzPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJ
PGRsPg0KCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFi
cmFoYWJyLnJ1L3FhLzgyOTcvI2Fuc3dlcl8zNTM5NSI+0JrRgtC+LdC90LjQsdGD
0LTRjCDRhdC+0YfQtdGCINC90LDQv9C40YHQsNGC0Ywg0LzRg9C30YvQutGDINCy
INGB0YLQuNC70LUgOGJpdCDQtNC70Y8g0LHQtdGB0L/Qu9Cw0YLQvdC+0LPQviDQ
v9GA0L7QtdC60YLQsD88L2E+Jm5ic3A7PHNwYW4gY2xhc3M9InRvdGFsIj4zPC9z
cGFuPjwvZGQ+DQoJCQkJPC9kbD4NCgkJCTwvZGQ+DQoJCTwvZGw+DQoJCQ0KCQk8
ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4NCgkJCTxkdCBjbGFzcz0id2hvIj48YSBo
cmVmPSJodHRwOi8vRmVOVU1lLmhhYnJhaGFici5ydS8iPkZlTlVNZTwvYT4mbmJz
cDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0KCQkJCTxkbD4NCgkJCQkJPGRkPjxhIGNs
YXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9xYS83OTc5LyNj
b21tZW50XzQyOTc0Ij7QntC/0YLQuNC80LDQu9GM0L3Ri9C5INCy0YvQstC+0LQg
Qml0Q29pbiDQsiDQvdCw0LvQuNGH0L3Ri9C1INC40LvQuCBRSVdJPC9hPiZuYnNw
OzxzcGFuIGNsYXNzPSJ0b3RhbCI+Mzwvc3Bhbj48L2RkPg0KCQkJCTwvZGw+DQoJ
CQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPGRsIGNsYXNzPSJhaXItY29tbWVudCI+
DQoJCQk8ZHQgY2xhc3M9IndobyI+PGEgaHJlZj0iaHR0cDovL3ZpcGVyZXQuaGFi
cmFoYWJyLnJ1LyI+dmlwZXJldDwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRk
Pg0KCQkJCTxkbD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0
cDovL2hhYnJhaGFici5ydS9xYS84Mjg5LyNjb21tZW50XzQyOTczIj4mcXVvdDvQ
n9GA0L7RgdC70YPRiNC40LLQsNC90LjQtSZxdW90OyDRgdC10YDQstC10YDQsCDQ
ktCa0L7QvdGC0LDQutGC0LU8L2E+Jm5ic3A7PHNwYW4gY2xhc3M9InRvdGFsIj42
PC9zcGFuPjwvZGQ+DQoJCQkJPC9kbD4NCgkJCTwvZGQ+DQoJCTwvZGw+DQoJCQ0K
CQk8ZGwgY2xhc3M9ImFpci1jb21tZW50Ij4NCgkJCTxkdCBjbGFzcz0id2hvIj48
YSBocmVmPSJodHRwOi8vY2hpa3V5b25vay5oYWJyYWhhYnIucnUvIj5jaGlrdXlv
bm9rPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJPGRsPg0KCQkJ
CQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1
L3FhLzgyODIvI2NvbW1lbnRfNDI5NjkiPkhUTUw1INCyIEVjbGlwc2U8L2E+Jm5i
c3A7PHNwYW4gY2xhc3M9InRvdGFsIj4zPC9zcGFuPjwvZGQ+DQoJCQkJPC9kbD4N
CgkJCTwvZGQ+DQoJCTwvZGw+DQoJCQ0KCQk8ZGwgY2xhc3M9ImFpci1jb21tZW50
Ij4NCgkJCTxkdCBjbGFzcz0id2hvIj48YSBocmVmPSJodHRwOi8vYmxvLmhhYnJh
aGFici5ydS8iPmJsbzwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0KCQkJ
CTxkbD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hh
YnJhaGFici5ydS9xYS84Mjk1LyNjb21tZW50XzQyOTY1Ij5CYXNoLCB0cmFwINGB
0LjQs9C90LDQu9CwPC9hPiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+Mjwvc3Bh
bj48L2RkPg0KCQkJCTwvZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPGRs
IGNsYXNzPSJhaXItY29tbWVudCI+DQoJCQk8ZHQgY2xhc3M9IndobyI+PGEgaHJl
Zj0iaHR0cDovL0hvdGJsYWNrLmhhYnJhaGFici5ydS8iPkhvdGJsYWNrPC9hPiZu
YnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJPGRsPg0KCQkJCQk8ZGQ+PGEg
Y2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L3FhLzgzMDIv
I2NvbW1lbnRfNDI5NjIiPlNreXBlICsg0YHQstC+0YDQsNGH0LjQstCw0L3QuNC1
INCyINGC0YDQtdC5PC9hPiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+Mjwvc3Bh
bj48L2RkPg0KCQkJCTwvZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPGRs
IGNsYXNzPSJhaXItY29tbWVudCI+DQoJCQk8ZHQgY2xhc3M9IndobyI+PGEgaHJl
Zj0iaHR0cDovL2Zvenp5LmhhYnJhaGFici5ydS8iPmZvenp5PC9hPiZuYnNwOyZy
YXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJPGRsPg0KCQkJCQk8ZGQ+PGEgY2xhc3M9
InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L3FhLzgyODEvI2NvbW1l
bnRfNDI5NjAiPtCa0LDQuiDRg9Cy0LXQu9C40YfQuNGC0YwgJnF1b3Q70LHRg9GE
0LXRgCZxdW90OyDQutC+0L3RgdC+0LvQuCBEZWJpYW4/PC9hPiZuYnNwOzxzcGFu
IGNsYXNzPSJ0b3RhbCI+Mzwvc3Bhbj48L2RkPg0KCQkJCTwvZGw+DQoJCQk8L2Rk
Pg0KCQk8L2RsPg0KCQkNCgkJPGRsIGNsYXNzPSJhaXItY29tbWVudCI+DQoJCQk8
ZHQgY2xhc3M9IndobyI+PGEgaHJlZj0iaHR0cDovL0FuZHJld3d3LmhhYnJhaGFi
ci5ydS8iPkFuZHJld3d3PC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJ
CQkJPGRsPg0KCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8v
aGFicmFoYWJyLnJ1L3FhLzgxNzEvI2Fuc3dlcl8zNTM4NiI+0JLRi9Cx0L7RgCDR
gNC+0YPRgtC10YDQsDwvYT4mbmJzcDs8c3BhbiBjbGFzcz0idG90YWwiPjk8L3Nw
YW4+PC9kZD4NCgkJCQk8L2RsPg0KCQkJPC9kZD4NCgkJPC9kbD4NCgkJDQoJCTxk
bCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0IGNsYXNzPSJ3aG8iPjxhIGhy
ZWY9Imh0dHA6Ly9hY2hla2FsaW4uaGFicmFoYWJyLnJ1LyI+YWNoZWthbGluPC9h
PiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8ZGQ+DQoJCQkJPGRsPg0KCQkJCQk8ZGQ+
PGEgY2xhc3M9InRvcGljIiBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L3FhLzgz
MDQvI2NvbW1lbnRfNDI5NTQiPtCa0LDQuiDQt9Cw0L/QuNGB0LDRgtGMINC00LXQ
udGB0YLQstC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10Lkg0L3QsCDRgNCw
0LHQvtGH0LjRhSDRgdGC0LDQvdGG0LjRj9GFICjQvdCw0L/RgC4sINC30LDQv9C4
0YHQsNGC0Ywg0L/QvtGC0L7QuiBWTkMg0YHQviDRgdGC0LDQvdGG0LjQuCk/PC9h
PiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+Mjwvc3Bhbj48L2RkPg0KCQkJCTwv
ZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPGRsIGNsYXNzPSJhaXItY29t
bWVudCI+DQoJCQk8ZHQgY2xhc3M9IndobyI+PGEgaHJlZj0iaHR0cDovL2luZm9y
bWEuaGFicmFoYWJyLnJ1LyI+aW5mb3JtYTwvYT4mbmJzcDsmcmFycjs8L2R0Pg0K
CQkJPGRkPg0KCQkJCTxkbD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJl
Zj0iaHR0cDovL2hhYnJhaGFici5ydS9xYS81MzI4LyNjb21tZW50XzQyOTUwIj7Q
mtCw0Log0LfQsNGB0YLQsNCy0LjRgtGMINGA0LDQsdC+0YLQsNGC0Ywg0LzRi9GI
0LrRgyDQsiBNaWRuaWdodCBDb21tYW5kZXIn0LUg0YMgTWFjIE9TPzwvYT4mbmJz
cDs8c3BhbiBjbGFzcz0idG90YWwiPjQ8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0K
CQkJPC9kZD4NCgkJPC9kbD4NCgkJDQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQi
Pg0KCQkJPGR0IGNsYXNzPSJ3aG8iPjxhIGhyZWY9Imh0dHA6Ly9hbnRvby5oYWJy
YWhhYnIucnUvIj5hbnRvbzwvYT4mbmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0K
CQkJCTxkbD4NCgkJCQkJPGRkPjxhIGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDov
L2hhYnJhaGFici5ydS9xYS84MzAzLyNhbnN3ZXJfMzUzODEiPkltYWdpY2suINCa
0LDRh9C10YHRgtCy0L4g0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQv9GA0Lgg0LrQ
vtC90LLQtdGA0YLQsNGG0LjQuDwvYT4mbmJzcDs8c3BhbiBjbGFzcz0idG90YWwi
PjE8L3NwYW4+PC9kZD4NCgkJCQk8L2RsPg0KCQkJPC9kZD4NCgkJPC9kbD4NCgkJ
DQoJCTxkbCBjbGFzcz0iYWlyLWNvbW1lbnQiPg0KCQkJPGR0IGNsYXNzPSJ3aG8i
PjxhIGhyZWY9Imh0dHA6Ly9qaW1taS5oYWJyYWhhYnIucnUvIj5qaW1taTwvYT4m
bmJzcDsmcmFycjs8L2R0Pg0KCQkJPGRkPg0KCQkJCTxkbD4NCgkJCQkJPGRkPjxh
IGNsYXNzPSJ0b3BpYyIgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9xYS84Mjg1
LyNjb21tZW50XzQyOTM3Ij7QntGI0LjQsdC60LAg0LIgUmVnRXhwIC0gcGhwPC9h
PiZuYnNwOzxzcGFuIGNsYXNzPSJ0b3RhbCI+Mjwvc3Bhbj48L2RkPg0KCQkJCTwv
ZGw+DQoJCQk8L2RkPg0KCQk8L2RsPg0KCQkNCgkJPGRsIGNsYXNzPSJhaXItY29t
bWVudCI+DQoJCQk8ZHQgY2xhc3M9IndobyI+PGEgaHJlZj0iaHR0cDovL29waXVt
LmhhYnJhaGFici5ydS8iPm9waXVtPC9hPiZuYnNwOyZyYXJyOzwvZHQ+DQoJCQk8
ZGQ+DQoJCQkJPGRsPg0KCQkJCQk8ZGQ+PGEgY2xhc3M9InRvcGljIiBocmVmPSJo
dHRwOi8vaGFicmFoYWJyLnJ1L3FhLzgyOTIvI2NvbW1lbnRfNDI5MzQiPtCd0LUg
0LfQsNC/0YPRgdC60LDQtdGC0YHRjyB2bGMg0L/QvtC0IG1hYyBvcyBzbm93IGxl
b3BhcmQ8L2E+Jm5ic3A7PHNwYW4gY2xhc3M9InRvdGFsIj4zPC9zcGFuPjwvZGQ+
DQoJCQkJPC9kbD4NCgkJCTwvZGQ+DQoJCTwvZGw+DQoJCQ0KDQoJCTxkaXYgY2xh
c3M9ImFsbCI+JiMxNzE7IDxhIGhyZWY9Ii9xYS8iPtCy0YHQtSDQstC+0L/RgNC+
0YHRizwvYT48L2Rpdj4NCgkJPC9kaXY+DQoJCTwvZGl2PjwhLS0gLy8gZm9yIGJv
dHRvbSByb3VuZGVkIGNvcm5lcnMgLS0+DQo8L2Rpdj4NCg0KCQkKCQoJCgk8ZGl2
IGNsYXNzPSJyYXRpbmcgbGl2ZSBibG9ncyBjYXRlZ29yeV9ibG9ncyI+CgkJCgk8
ZGl2IGNsYXNzPSJiZy1ib3R0LXIiPjwhLS0gZm9yIGJvdHRvbSByb3VuZGVkIGNv
cm5lcnMgLS0+Cgk8ZGl2IGNsYXNzPSJiZy1ib3R0LWwiPgoJCgkJPGgzPtCU0LXR
gdC10YDRgiDihpM8L2gzPgoJCgkJPHRhYmxlPgoJCQoJCQk8dGJvZHk+PHRyPgoJ
CQkJPCEtLSA8dGggd2lkdGg9IjUlIj48L3RoPiAvLy0tPgoJCQkJPHRoPjwvdGg+
CgkJCQk8dGggd2lkdGg9IjIyJSI+0KDQtdC50YLQuNC90LM8L3RoPgoJCQk8L3Ry
PgoJCQkKCQkJPHRyPgoJCQkJPCEtLSA8dGQgY2xhc3M9InJhdGluZy1keW4gdXAi
PjwvdGQ+IC8vLS0+CgkJCQk8dGQgY2xhc3M9InRpdGxlIj4KCQkJCQk8YSBocmVm
PSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dzL2l0X2JpZ3JhcGh5LyI+SVQt0JHQ
uNC+0LPRgNCw0YTQuNC4PC9hPgoJCQkJPC90ZD4KCQkJCTx0ZCBjbGFzcz0idmFs
dWUiPgoJCQkJCTxzcGFuPjM1Niw3MDwvc3Bhbj4KCQkJCTwvdGQ+CgkJCTwvdHI+
CgkJCQoJCQk8dHI+CgkJCQk8IS0tIDx0ZCBjbGFzcz0icmF0aW5nLWR5biB1cCI+
PC90ZD4gLy8tLT4KCQkJCTx0ZCBjbGFzcz0idGl0bGUiPgoJCQkJCTxhIGhyZWY9
Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvbXlfYnVzaW5lc3MvIj7QnNC+0Lkg
0LHQuNC30L3QtdGBPC9hPgoJCQkJPC90ZD4KCQkJCTx0ZCBjbGFzcz0idmFsdWUi
PgoJCQkJCTxzcGFuPjI3OCwwMzwvc3Bhbj4KCQkJCTwvdGQ+CgkJCTwvdHI+CgkJ
CQoJCQk8dHI+CgkJCQk8IS0tIDx0ZCBjbGFzcz0icmF0aW5nLWR5biB1cCI+PC90
ZD4gLy8tLT4KCQkJCTx0ZCBjbGFzcz0idGl0bGUiPgoJCQkJCTxhIGhyZWY9Imh0
dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvcG9wdWxhcl9zY2llbmNlLyI+0J3QsNGD
0YfQvdC+LdC/0L7Qv9GD0LvRj9GA0L3QvtC1PC9hPgoJCQkJPC90ZD4KCQkJCTx0
ZCBjbGFzcz0idmFsdWUiPgoJCQkJCTxzcGFuPjIzMiw5ODwvc3Bhbj4KCQkJCTwv
dGQ+CgkJCTwvdHI+CgkJCQoJCQk8dHI+CgkJCQk8IS0tIDx0ZCBjbGFzcz0icmF0
aW5nLWR5biB1cCI+PC90ZD4gLy8tLT4KCQkJCTx0ZCBjbGFzcz0idGl0bGUiPgoJ
CQkJCTxhIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxvZ3MvYXJ0aWZpY2lh
bF9pbnRlbGxpZ2VuY2UvIj7QmNGB0LrRg9GB0YHRgtCy0LXQvdC90YvQuSDQuNC9
0YLQtdC70LvQtdC60YI8L2E+CgkJCQk8L3RkPgoJCQkJPHRkIGNsYXNzPSJ2YWx1
ZSI+CgkJCQkJPHNwYW4+MjIxLDY1PC9zcGFuPgoJCQkJPC90ZD4KCQkJPC90cj4K
CQkJCgkJCTx0cj4KCQkJCTwhLS0gPHRkIGNsYXNzPSJyYXRpbmctZHluIHVwIj48
L3RkPiAvLy0tPgoJCQkJPHRkIGNsYXNzPSJ0aXRsZSI+CgkJCQkJPGEgaHJlZj0i
aHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy9oaXN0b3J5LyI+0JjRgdGC0L7RgNC4
0Y8g0JjQojwvYT4KCQkJCTwvdGQ+CgkJCQk8dGQgY2xhc3M9InZhbHVlIj4KCQkJ
CQk8c3Bhbj4xODUsMTA8L3NwYW4+CgkJCQk8L3RkPgoJCQk8L3RyPgoJCQkKCQkJ
PHRyPgoJCQkJPCEtLSA8dGQgY2xhc3M9InJhdGluZy1keW4gdXAiPjwvdGQ+IC8v
LS0+CgkJCQk8dGQgY2xhc3M9InRpdGxlIj4KCQkJCQk8YSBocmVmPSJodHRwOi8v
aGFicmFoYWJyLnJ1L2Jsb2dzL3BhdGVudC8iPtCY0L3RgtC10LvQu9C10LrRgtGD
0LDQu9GM0L3QsNGPINGB0L7QsdGB0YLQstC10L3QvdC+0YHRgtGMPC9hPgoJCQkJ
PC90ZD4KCQkJCTx0ZCBjbGFzcz0idmFsdWUiPgoJCQkJCTxzcGFuPjE4NCw0Mzwv
c3Bhbj4KCQkJCTwvdGQ+CgkJCTwvdHI+CgkJCQoJCQk8dHI+CgkJCQk8IS0tIDx0
ZCBjbGFzcz0icmF0aW5nLWR5biB1cCI+PC90ZD4gLy8tLT4KCQkJCTx0ZCBjbGFz
cz0idGl0bGUiPgoJCQkJCTxhIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvYmxv
Z3MvdGhlX2Z1dHVyZV9pc19oZXJlLyI+0JHRg9C00YPRidC10LUg0LfQtNC10YHR
jDwvYT4KCQkJCTwvdGQ+CgkJCQk8dGQgY2xhc3M9InZhbHVlIj4KCQkJCQk8c3Bh
bj4xNTMsNzA8L3NwYW4+CgkJCQk8L3RkPgoJCQk8L3RyPgoJCQkKCQkJPHRyPgoJ
CQkJPCEtLSA8dGQgY2xhc3M9InJhdGluZy1keW4gdXAiPjwvdGQ+IC8vLS0+CgkJ
CQk8dGQgY2xhc3M9InRpdGxlIj4KCQkJCQk8YSBocmVmPSJodHRwOi8vaGFicmFo
YWJyLnJ1L2Jsb2dzL2Jvb2tzLyI+0KfQuNGC0LDQu9GM0L3Ri9C5INC30LDQuzwv
YT4KCQkJCTwvdGQ+CgkJCQk8dGQgY2xhc3M9InZhbHVlIj4KCQkJCQk8c3Bhbj4x
NTIsMDg8L3NwYW4+CgkJCQk8L3RkPgoJCQk8L3RyPgoJCQkKCQkJPHRyPgoJCQkJ
PCEtLSA8dGQgY2xhc3M9InJhdGluZy1keW4gdXAiPjwvdGQ+IC8vLS0+CgkJCQk8
dGQgY2xhc3M9InRpdGxlIj4KCQkJCQk8YSBocmVmPSJodHRwOi8vaGFicmFoYWJy
LnJ1L2Jsb2dzL2RlbW9zY2VuZS8iPtCU0LXQvNC+0YHRhtC10L3QsDwvYT4KCQkJ
CTwvdGQ+CgkJCQk8dGQgY2xhc3M9InZhbHVlIj4KCQkJCQk8c3Bhbj4xNDEsNDQ8
L3NwYW4+CgkJCQk8L3RkPgoJCQk8L3RyPgoJCQkKCQkJPHRyPgoJCQkJPCEtLSA8
dGQgY2xhc3M9InJhdGluZy1keW4gdXAiPjwvdGQ+IC8vLS0+CgkJCQk8dGQgY2xh
c3M9InRpdGxlIj4KCQkJCQk8YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Js
b2dzL2ludGVydmlld3MvIj7QmNC90YLQtdGA0LLRjNGOPC9hPgoJCQkJPC90ZD4K
CQkJCTx0ZCBjbGFzcz0idmFsdWUiPgoJCQkJCTxzcGFuPjExNCw1ODwvc3Bhbj4K
CQkJCTwvdGQ+CgkJCTwvdHI+CgkJCQoJCTwvdGJvZHk+PC90YWJsZT4KCQkKCQk8
ZGl2IGNsYXNzPSJhbGwiPsKrIDxhIGhyZWY9Ii9ibG9nbGlzdC9kZXNzZXJ0LyI+
0LLRgdC1ICDQsdC70L7Qs9C4PC9hPjwvZGl2PgoJCgk8L2Rpdj4KCTwvZGl2Pjwh
LS0gLy8gZm9yIGJvdHRvbSByb3VuZGVkIGNvcm5lcnMgLS0+CgogIDwvZGl2PgoJ
CgoNCgkJDQoNCg0KCQkJCgkJCg0KCQ0KCQ0KDQoJPC9kaXY+DQoNCjwvZGl2Pg0K
PC9kaXY+DQoNCjxkaXYgaWQ9ImZvb3RlciI+Cgk8ZGl2IGNsYXNzPSJmb290ZXIt
Y29udHRlbnQiPgoJCTxkaXYgY2xhc3M9ImJvdHRvbV9tZW51Ij4KCQkJCgkJCTxk
bCBjbGFzcz0idXNlciI+CgkJCQk8ZHQ+PGEgaHJlZj0iaHR0cDovL2dyY29vbC5o
YWJyYWhhYnIucnUvIj5ncmNvb2w8L2E+PC9kdD4KCQkJCTxkZD48YSBocmVmPSJo
dHRwOi8vaGFicmFoYWJyLnJ1L2FkZC90b3BpYy8iPtCd0LDQv9C40YHQsNGC0Yw8
L2E+PC9kZD4KCQkJCTxkZD48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2xl
bnRhL2lobC8iPtCl0LDQsdGA0LDQu9C10L3RgtCwJm5ic3A7My4wPC9hPjwvZGQ+
CgkJCQk8ZGQ+PGEgaHJlZj0iaHR0cDovL2dyY29vbC5oYWJyYWhhYnIucnUvbWFp
bC8iPkPQvtC+0LHRidC10L3QuNGPPC9hPjwvZGQ+CgkJCQk8ZGQ+PGEgaHJlZj0i
aHR0cDovL2hhYnJhaGFici5ydS9zZXR0aW5ncy8iPtCd0LDRgdGC0YDQvtC50LrQ
uDwvYT48L2RkPgoJCQkJPGRkPjxhIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUv
cHBhLyI+0J/Qn9CQPC9hPjwvZGQ+CQkJCQoJCQk8L2RsPgoJCQkKCQkJCgkJCTxk
bCBjbGFzcz0ic2VjdGlvbnMiPgoJCQkJPGR0PtCg0LDQt9C00LXQu9GLPC9kdD4K
CQkJCTxkZD48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2Jsb2dsaXN0LyI+
0JHQu9C+0LPQuDwvYT48L2RkPgoJCQkJPGRkPjxhIGhyZWY9Imh0dHA6Ly9oYWJy
YWhhYnIucnUvcGVvcGxlLyI+0JvRjtC00Lg8L2E+PC9kZD4KCQkJCTxkZD48YSBo
cmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2NvbXBhbmllcy8iPtCa0L7QvNC/0LDQ
vdC40Lg8L2E+PC9kZD4KCQkJCTxkZD48YSBocmVmPSJodHRwOi8vaGFicmFoYWJy
LnJ1L2pvYi8iPtCg0LDQsdC+0YLQsDwvYT48L2RkPgoJCQkJPGRkPjxhIGhyZWY9
Imh0dHA6Ly9oYWJyYWhhYnIucnUvdG9wLyI+4oaR4oaT4oaR4oaTPC9hPjwvZGQ+
CgkJCTwvZGw+CgkJCTxkbD4KCQkJCTxkdD7QkdC70L7Qs9C4PC9kdD4KCQkJCTxk
ZD48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1LyI+0JLRgdC1PC9hPjwvZGQ+
CgkJCQk8ZGQ+PGEgaHJlZj0iaHR0cDovL2hhYnJhaGFici5ydS9ibG9ncy8iPtCi
0LXQvNCw0YLQuNGH0LXRgdC60LjQtTwvYT48L2RkPgoJCQkJPGRkPjxhIGhyZWY9
Imh0dHA6Ly9oYWJyYWhhYnIucnUvY29ycG9yYXRpdmUvIj7QmtC+0YDQv9C+0YDQ
sNGC0LjQstC90YvQtTwvYT48L2RkPgoJCQkJPCEtLWRkPjxhIGhyZWY9Imh0dHA6
Ly9oYWJyYWhhYnIucnUvcGVyc29uYWwvIj7Qm9C40YfQvdGL0LU8L2E+PC9kZC0t
PgoJCQkJPGRkPjxhIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvc2FuZGJveC8i
PtCf0LXRgdC+0YfQvdC40YbQsDwvYT48L2RkPgoJCQk8L2RsPgoJCQk8ZGw+CgkJ
CQk8ZHQ+0JjQvdGE0L48L2R0PgoJCQkJPGRkPjxhIGhyZWY9Imh0dHA6Ly9oYWJy
YWhhYnIucnUvaW5mby9hYm91dC8iPtCeINGB0LDQudGC0LU8L2E+PC9kZD4KCQkJ
CTxkZD48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2luZm8vaGVscC9ydWxl
cy8iPtCf0YDQsNCy0LjQu9CwPC9hPjwvZGQ+CgkJCQk8ZGQ+PGEgaHJlZj0iaHR0
cDovL2hhYnJhaGFici5ydS9pbmZvL2hlbHAvIj7Qn9C+0LzQvtGJ0Yw8L2E+PC9k
ZD4KCQkJCTxkZD48YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2luZm8vYWdy
ZWVtZW50LyI+0KHQvtCz0LvQsNGI0LXQvdC40LU8L2E+PC9kZD4KCQkJCTxkZD48
YSBocmVmPSJodHRwOi8vaGFicmFoYWJyLnJ1L2luZm8vc3RhdHMvIj7QodGC0LDR
gtC40YHRgtC40LrQsDwvYT48L2RkPgoJCQk8L2RsPgoJCQk8ZGw+CgkJCQk8ZHQ+
0KPRgdC70YPQs9C4PC9kdD4KCQkJCTxkZD48YSBocmVmPSJodHRwOi8vaGFicmFo
YWJyLnJ1L2luZm8vYWR2ZXJ0aXNpbmcvIj7QoNC10LrQu9Cw0LzQsDwvYT48L2Rk
PgoJCQkJPGRkPjxhIGhyZWY9Imh0dHA6Ly9oYWJyYWhhYnIucnUvaW5mby9hZHZl
cnRpc2luZy9jb3Jwb3JhdGUvIj7QmtC+0YDQv9C+0YDQsNGC0LjQstC90YvQtSDQ
v9Cw0LrQtdGC0Ys8L2E+PC9kZD4KCQkJPC9kbD4KCQk8L2Rpdj4KCgkJPGEgY2xh
c3M9ImZvb3Rlcl9sb2dvIiBocmVmPSJodHRwOi8vdGhlbWF0aWNtZWRpYS5ydS8i
PtCi0LXQvNCw0YLQuNGH0LXRgdC60LjQtSDQnNC10LTQuNCwPC9hPgoJCTxkaXYg
aWQ9ImFib3V0Ij4KCQkJPHNwYW4gc3R5bGU9Im1hcmdpbi1sZWZ0OjRweDsiPsKp
IDIwMDYmIzgyMTE7MjAxMTwvc3Bhbj4gPGJyLz7CqzxhIGhyZWY9Imh0dHA6Ly93
d3cudGhlbWF0aWNtZWRpYS5ydS8iPtCi0LXQvNCw0YLQuNGH0LXRgdC60LjQtSDQ
nNC10LTQuNCwPC9hPsK7PGJyLz4KCQkJPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDog
MTBweDsgbWFyZ2luLWxlZnQ6NnB4OyI+CgkJCQnQodC70YPQttCx0LAg0L/QvtC0
0LTQtdGA0LbQutC4Ojxici8+CgkJCQk8YSBocmVmPSJtYWlsdG86c3VwcG9ydEBo
YWJyYWhhYnIucnUiIHRpdGxlPSLQsNC00YDQtdGBINGB0LvRg9C20LHRiyDQv9C+
0LTQtNC10YDQttC60Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkiPnN1cHBv
cnRAaGFicmFoYWJyLnJ1PC9hPjxici8+PGJyLz48YnIvPgoJCQkJPGEgaHJlZj0i
aHR0cDovL20uaGFicmFoYWJyLnJ1Ij7QnNC+0LHQuNC70YzQvdCw0Y8g0LLQtdGA
0YHQuNGPPC9hPgoJCQk8L2Rpdj4gCgkJPC9kaXY+CgkJCgk8L2Rpdj4KCQo8L2Rp
dj4NCg0KPGRpdiBpZD0iZmF2b3VyaXRlc19hZGRfaGlkZGVuIj4KCTxkaXYgY2xh
c3M9ImZhdm91cml0ZXNfYWRkIiBpZD0iZmF2b3VyaXRlc19hZGQiPgoJCTxkaXYg
Y2xhc3M9ImZhdm91cml0ZXNfYWRkX2lubmVyIj4KCQkJPGZvcm0gYWN0aW9uPSIv
YWpheC9mYXZvcml0ZXMvIiBjbGFzcz0idG0tZm9ybSBhamF4IiBtZXRob2Q9InBv
c3QiIGlkPSJmYXZvdXJpdGVzX2FkZF9mb3JtIj4KCQkJCTxkaXY+PGEgcmV2PSJm
YXZvdXJpdGVzX2FkZCIgY2xhc3M9ImZvcm0tZXh0ZW5kZXIiPjwvYT48L2Rpdj4K
CQkJCTxkbD4KCQkJCQk8ZHQ+PGxhYmVsIGZvcj0iZmF2b3VyaXRlc19hZGRfdGFn
cyI+0J/QvtC80LXRgtGM0YLQtSDRgtC+0L/QuNC6INC/0L7QvdGP0YLQvdGL0LzQ
uCDQstCw0Lwg0LzQtdGC0LrQsNC80LgsINC10YHQu9C4INGF0L7RgtC40YLQtTwv
bGFiZWw+PC9kdD4KCQkJCQk8ZGQ+CgkJCQkJCTxkaXYgY2xhc3M9ImpzLWF1dG9z
dWdnZXN0LWhvbGRlciI+CgkJCQkJCQk8ZGl2PgoJCQkJCQkJCTxpbnB1dCB0eXBl
PSJ0ZXh0IiBuYW1lPSJ0YWdzX3N0cmluZyIgY2xhc3M9ImpzLWF1dG9zdWdnZXN0
LWZpZWxkIiBpZD0iZmF2b3VyaXRlc19hZGRfdGFncyIgLz4KCQkJCQkJCTwvZGl2
PgoJCQkJCQkJPGRpdiBjbGFzcz0ianMtYXV0b3N1Z2dlc3Qtb3V0cHV0LWNvbnRh
aW5lciI+CgkJCQkJCQkJPGRpdiBjbGFzcz0ianMtYXV0b3N1Z2dlc3Qtb3V0cHV0
Ij48L2Rpdj4KCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2RkPgoJ
CQkJCTxkZCBjbGFzcz0iZGVzYyI+0JzQtdGC0LrQuCDQu9GD0YfRiNC1INGA0LDQ
t9C00LXQu9GP0YLRjCDQt9Cw0L/Rj9GC0L7QuS4g0J3QsNC/0YDQuNC80LXRgDog
PGVtPtC+0LHRidC10L3QuNC1LCDRgdC+0YbQuNCw0LvRjNC90YvQtSDRgdC10YLQ
uCwgbXlzcGFjZS5jb20sINC/0L7QtNGA0L7RgdGC0LrQuCwg0LzQtdGA0LTQvtC6
PC9lbT48L2RkPgoJCQkJPC9kbD4KCQkJCTxkaXYgY2xhc3M9ImZhdm91cml0ZXNf
YWRkX2Zvb3RlciI+CgkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFy
Z2V0X2lkIiB2YWx1ZT0iIiBpZD0iZmF2b3VyaXRlc19hZGRfaWQiIC8+CgkJCQkJ
PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFyZ2V0X3R5cGUiIHZhbHVlPSJw
b3N0cyIgLz4KCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24i
IHZhbHVlPSJhZGQiIC8+CgkJCQkJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9
ItCU0L7QsdCw0LLQuNGC0Ywg0LIg0LjQt9Cx0YDQsNC90L3QvtC1IiBpZD0iZmF2
b3VyaXRlc19hZGRfc3VibWl0IiAvPiDQuNC70LggPGEgaHJlZj0iIyIgaWQ9ImZh
dm91cml0ZXNfYWRkX2NhbmNlbCI+0L7RgtC80LXQvdC40YLRjDwvYT4KCQkJCTwv
ZGl2PgoJCQk8L2Zvcm0+CgkJPC9kaXY+Cgk8L2Rpdj4KPC9kaXY+DQoNCg0KDQoJ
DQoNCg0KCQ0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQovKjwh
W0NEQVRBWyovDQp2YXIgX2dhcSA9IF9nYXEgfHwgW107DQpfZ2FxLnB1c2goDQog
ICAgWydfc2V0QWNjb3VudCcsICdVQS03MjYwOTQtMSddLA0KICAgIFsnX3NldERv
bWFpbk5hbWUnLCAnLmhhYnJhaGFici5ydSddLA0KICAgIFsiX2FkZE9yZ2FuaWMi
LCAibWFpbC5ydSIsICJxIl0sDQogICAgWyJfYWRkT3JnYW5pYyIsInJhbWJsZXIu
cnUiLCAid29yZHMiXSwNCiAgICBbIl9hZGRPcmdhbmljIiwibmlnbWEucnUiLCAi
cyJdLA0KICAgIFsiX2FkZE9yZ2FuaWMiLCJibG9ncy55YW5kZXgucnUiLCAidGV4
dCJdLA0KICAgIFsiX2FkZE9yZ2FuaWMiLCJ3ZWJhbHRhLnJ1IiwgInEiXSwNCiAg
ICBbIl9hZGRPcmdhbmljIiwiYXBvcnQucnUiLCAiciJdLA0KICAgIFsiX2FkZE9y
Z2FuaWMiLCJha2F2aXRhLmJ5IiwgInoiXSwNCiAgICBbIl9hZGRPcmdhbmljIiwi
bWV0YS51YSIsICJxIl0sDQogICAgWyJfYWRkT3JnYW5pYyIsImJpZ21pci5uZXQi
LCAicSJdLA0KICAgIFsiX2FkZE9yZ2FuaWMiLCJ0dXQuYnkiLCAicXVlcnkiXSwN
CiAgICBbIl9hZGRPcmdhbmljIiwiYWxsLmJ5IiwgInF1ZXJ5Il0sDQogICAgWyJf
YWRkT3JnYW5pYyIsImkudWEiLCAicSJdLA0KICAgIFsiX2FkZE9yZ2FuaWMiLCJv
bmxpbmUudWEiLCAicSJdLA0KICAgIFsiX2FkZE9yZ2FuaWMiLCJhLnVhIiwgInMi
XSwNCiAgICBbIl9hZGRPcmdhbmljIiwidWtyLm5ldCIsICJzZWFyY2hfcXVlcnki
XSwNCiAgICBbIl9hZGRPcmdhbmljIiwic2VhcmNoLmNvbS51YSIsICJxIl0sDQog
ICAgWyJfYWRkT3JnYW5pYyIsInNlYXJjaC51YSIsICJxdWVyeSJdLA0KICAgIFsi
X2FkZE9yZ2FuaWMiLCJwb2lzay5ydSIsICJ0ZXh0Il0sDQogICAgWyJfYWRkT3Jn
YW5pYyIsImttLnJ1IiwgInNxIl0sDQogICAgWyJfYWRkT3JnYW5pYyIsImxpdmVp
bnRlcm5ldC5ydSIsICJhc2siXSwNCiAgICBbIl9hZGRPcmdhbmljIiwiZ29nby5y
dSIsICJxIl0sDQogICAgWyJfYWRkT3JnYW5pYyIsImdkZS5ydSIsICJrZXl3b3Jk
cyJdLA0KICAgIFsiX2FkZE9yZ2FuaWMiLCJxdWludHVyYS5ydSIsICJyZXF1ZXN0
Il0sDQogICAgWydfdHJhY2tQYWdldmlldyddDQopOw0KZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50LmZpcnN0Q2hpbGQuYXBwZW5kQ2hpbGQoZ2EpOw0KLyogXV0+Ki8N
Cjwvc2NyaXB0Pg0KDQoNCg0KDQoNCg0KPHNjcmlwdD4NCnZhciBtYl9yYW5kb20g
PSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAwMDApOw0KZG9jdW1lbnQu
d3JpdGUoIjxzY3JpcHQgc3JjPSdodHRwOi8vcGluay5oYWJyYWxhYi5ydS9jZ2kt
YmluL2lmcmFtZS9HZW1pdXNfb3RoZXI/IittYl9yYW5kb20rIiZvcHRpb25zPUZU
Jz48L3NjciIrImlwdD4iKTsNCjwvc2NyaXB0Pg0KDQoNCg0KDQogIDxkaXYgaWQ9
ImhlbHAtdGlwLXRleHQiICBjbGFzcz0iIj4NCgkJPGRpdiBpZD0iaGVscC10aXAt
dGV4dC1jb250ZW50Ij48L2Rpdj4NCgkJPGRpdiBpZD0iaGVscC10aXAtdGV4dC1h
cnJvdyI+PC9kaXY+DQoJPC9kaXY+DQoJDQo8L2JvZHk+DQo8L2h0bWw+DQo=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-page-nav-left.gif
Content-Transfer-Encoding: Base64
R0lGODlhCgAKALMAAPf49/P08/j4+PDy8Ovt6+3v7f7+/vHz8fj5+Ozu7P///+rs
6gAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAKAAoAAAQeUElpwEhrKoCXn4EnZko4
fsgpKp0qqOIBe8W8EHYEADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-page-nav-current-left.gif
Content-Transfer-Encoding: Base64
R0lGODlhCgAKAMQAAOPt9tbk8dbk8e3z+O3z+P7+/uHr9P3+/t/q9Njk8v7+/u70
+tjm8u/0+tXk8f///9Pi8IqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqK
ioqKioqKioqKioqKiiwAAAAACgAKAAAFI+AjiseABND4EALkpo8CvK840+7T4G+R
8K4F0GUYQhhGhzEEADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-page-nav-right.gif
Content-Transfer-Encoding: Base64
R0lGODlhCgAKAKIAAPLz8vDy8P7+/vf39+zu7P///+rs6gAAACH5BAAAAAAALAAA
AAAKAAoAAAMaaBQj9c9INWCZE0CcI5fVJxGCCJpGgBKokQAAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-page-nav-current-right.gif
Content-Transfer-Encoding: Base64
R0lGODlhCgAKAPcAAOPt9tbk8dbk8e3z+O3z+P7+/uHr9P3+/t/q9Njk8v7+/u70
+tjm8u/0+tXk8f///9Pi8IqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqK
ioqKioqKioqKioqKigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAKAAoAAAgyAB0wMLBAwYODByEohJCg
AcIHCxcCMAgxokIACS0qJFBRo4ADGhcSCKkQAUkIAk5CCAgAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-page-subnav-corner-bottom-left.gif
Content-Transfer-Encoding: Base64
R0lGODlhCgAKAPcAAOPt9tbk8dbk8e3z+O3z+P7+/uHr9P3+/t/q9Njk8v7+/u70
+tjm8u/0+tXk8f///9Pi8IqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqK
ioqKioqKioqKioqKigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAKAAoAAAgtACEIHEhQAMGDCA4SJKBw
4AGDDR8wjPgAAEUFFg8+2PigQQKCHDcqWGCAgYOAADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-page-subnav-corner-bottom-right.gif
Content-Transfer-Encoding: Base64
R0lGODlhCgAKAPcAAOPt9tbk8dbk8e3z+O3z+P7+/uHr9P3+/t/q9Njk8v7+/u70
+tjm8u/0+tXk8f///9Pi8IqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqK
ioqKioqKioqKioqKigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAKAAoAAAgwACEIHDjQAcGDDA4SNKBw
4IKGEBIogNjgQUMADyweBKAgI0EBBDJ6FICAwAGRGQMCADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-user2.gif
Content-Transfer-Encoding: Base64
R0lGODlhDAAMAOYAANPe5Pz//4KkutDb4szY3/b+/5u5z/3//3KWrfn//8rk8naa
sYGkuszY4Mbg8qG+0dzv9tXg5sTg8t/o7vP8/4iqv9ft9NPe5qfD1Mfc56O/0YKl
u+Lr8M3Z4JCwxuj2/Of0+eDz9+rw9Z68z8/n8sHe8sbT3Ju6zuDv96nE1Onw9Nbh
6cvX39Hq89Hq8u77/srW3tbh54Kku8ba56TD1u37/vL8/vL8/9ft9ebu8+Ps8bzM
1Ymsw7XR4Nnj6Yanvsnj8qrI2Or2/NTf5tvl68vY3+r3/HqdtNji6OXt8eDz+dLc
477c7bDO3t7n7d7v9s3Z4dbs9N/y98Pd6PX+/8/b4f7//+Hp7tDo8vv//+fu84Gj
unKWro6uxHqctOfu9P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAMAAwAAAeEgCJfg4RfWlo5KlpgjI2O
OklWBwcBAVmXCQlXHAUFVBkGBjMUNzZOEy81IF2sXUZCH0QrDyhPGzICAkohUj4X
HhoQKQsLGDgWUTFIJxUjUy0uWNIkQxE9W9gMDD9BCgpLAEBNXl5H5F40DlUDEkxc
71wICDwlDQBQHQ0EBEUsJjswBgQCADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/icon_asterisk_16.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA
AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U
Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6
eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8w
Mi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE
ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRv
YmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20v
eGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRv
YmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9Inht
cC5paWQ6OUJFNDFFODE1M0NCMTFFMDg4MzdEMjY1MEM4OTlCREEiIHhtcE1NOkRv
Y3VtZW50SUQ9InhtcC5kaWQ6OUJFNDFFODI1M0NCMTFFMDg4MzdEMjY1MEM4OTlC
REEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlp
ZDo5QkU0MUU3RjUzQ0IxMUUwODgzN0QyNjUwQzg5OUJEQSIgc3RSZWY6ZG9jdW1l
bnRJRD0ieG1wLmRpZDo5QkU0MUU4MDUzQ0IxMUUwODgzN0QyNjUwQzg5OUJEQSIv
PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
cGFja2V0IGVuZD0iciI/Pgl861QAAAHoSURBVHjaLJFBb9MwGIY/x3bStIEmXUFs
tOk4sAOCA2ckfgASEkiIG2f+AkxwA1TxDzhxg8uk9oDEgf0CLggh7TA0RjcgJcua
hCRtVccxnwOWLNmf38fv+9lk98Mu4OBlJa8RII8IIUvcP4R/45VSqqFADZlBv+Be
MBRAKeV1xs1R/2JvI0liiOP4nVZ7nvfAdT04/vnjhhTiLqP0I1uuVsAYywlA0mza
G7ZtwSyOhxpYX78AhBigz3CR19qiKIBzcw+Ntg++Hbz2+763tta5pIGylHB0fBhn
WbatFOwJgQDWn+V5YXNOnTBcKYTh/Llu3UAwnUIYnqiqqm4JIW9aFl+Q0Wi82twc
cCkVAMGJVxmGUQMoxBoGUgQoJfD9cCLYfD6HKIqgFBJ0WMY5cEZrQGCkUggEdJ3C
fDEHlqTpy5Mosp0zjiNLec/z3A797yDRYRYnM86MnSwrcsuyFqzVaj3RAs75HSHE
fQMjTCZHNeD7fWjZtmFy/p5RNpYVxnXbZwGf80qa/nmBidwgmIKUcqJnEAS6BTdO
0iFeeLVp24B/QbFP5WA+FP8CdIGtrcuPtcP+/tc3p6czaLfbbrfbaeF/AdMvgtAn
0+S3semnvV5v2Wg0xhoYDPy3we/Q5iZ/juLPGvgrwAAFU9Nnla+h0wAAAABJRU5E
rkJggg==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/bg-folding-dot-light.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFFJREFUeNpi/P//PwMDw88/f9lZmBlI
BCxAvPfa46tPX2tLizpryZKkmQlo59UnrwW5OYDk15+/SdMMdK22rOj7Lz+AJDc7
K0maGSnxM0CAAQBHCiEG+qfxeAAAAABJRU5ErkJggg==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/comments/bar/refresh.gif
Content-Transfer-Encoding: Base64
R0lGODlhHAA6AOYAAN7yzV+1GajqcajfemC1GkF8E37GRHrDP0t8JG6JWpGWjT17
DJHZVnaMZYSSeo7XUnS8OoPORen522GvIur63OT21sTfsIuUhTl1CXTEMo+VikmC
HJrgYZjeXpbdXJ3iZEZ6HmO1IeL30Wm8JVSqDpXcW0WFE2qHUpPbWZaYk+f42YnT
TJSXkYKQdnKKX6TnbKDlaarKj1itFFqBO1eMLW7ALEaAGZiZl5/kZ1qxE1+DQzt3
DDx2DoCPc4TQRmS4H0R5GZzhY32PcGWFTKPnbHrIOn7MP4OtYUuZDLfdmXyObj6B
CE6SF3G3OE+GJJDOXYW+V2iuMN/1zlCcE0B3FT53ETh3B1umIIvOVa/QlGe6JGuz
L4/FYtDnvZXUYHjHN2uIVLDTk7fUn7PaklR/MsrpsUyKG+P11Njtxsfgs+X318/p
u4fBV4rBW2iZQY3LWqDDhHekU12RNFqPMFihHX7LPmSWPIXOSW+7Mm2gRYHIR7nW
orzYpr7aqDd0B5mZmSH5BAAAAAAALAAAAAAcADoAAAf/gH+Cg4SFhoeIiYqLjI2O
j5CRghoOF40JIH6am5o6Ghs0TiAgJwqICjZpFWoqKhIUsH5/Fxt5YXtHBSeICQsG
JR0fMC8CFLKzvRN4XHNDiC4LeigdQThEEseCLnIQORM2LYcNJncP09XYhTxjATlT
M4cIED4rDwweHCp+NzeDIH0jAsigYqiFmSJGItRjUEKNHwwYeggCYuHADwLZBs24
kqFInQhRIDCo4KdAjB1CGtAAYGBECB6GgISokeFLG4hNzpSUAmUHBjFlMtSYgMAQ
hh8jamCx00AIhpMFpDBgAweAlyIZ6OgolMIKgR9akmDo1wNiARElGAwYEMFIERMO
/wxVkRFASxeYgm6kWCCCgwcGD1b42ELm0AwkOX6gKcCCkB81OIJ0QPEgQgElhxws
IJFjjZsEjiUQiTzZwAIXiIYsITGGTwEwpv74oSDgBYwPHUq8sQH60AkrTLJYiFPA
1GwBtW9zKPFkgwZELBIgAALKhgIdnDiB6L2IUmxJ4MOLH0++vPnz6NOrP0/JEiNM
2Td52jDHCRBS3wsp2NAFln//slzgRBxppJHLLockUMAASSRRxoNlUICBIBcoyAWD
djhzCDQMCpCEABFOOIgLdozxgRdOhGNIA2aACKKDxqhTxlpQwGMIAl4IMIaLSRjD
jz9pDPDBE1UURMMAO35YRtwxGPgk0R9AoDHGWhkJMgMUa+34hBchFpAFSipJsJYX
eBEChBcDIBcDDzw8YUwBFMDhUx8ijFlUIRisxWAeDSjxEw9wThkDBUmsFcdWhKSw
wwtrobFACn+UhQGcSYzxoI4C0KAiIVV4wSgAZeq1AKEfNiiAF4UZMkMcaErAGCEY
0HbpGGNsgFlBZnjxwRmfwUrBpWUUugRqhwyRaxdp2FCKILMt6ayOGyTQjyEn8OCG
BV3EYd0fsULo7JTOQScddXNYpwMGS6Sb7gILIMCdIt79MW0hP65n7734RhIIADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/comments/bar/refresh-loading.gif
Content-Transfer-Encoding: Base64
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
dEIqimh4ZNz39/PnAwEAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-tags2.gif
Content-Transfer-Encoding: Base64
R0lGODlhDAAPAOYAAP3///j//83r9czp9c7s9Yuqv9Tx9b7b4b/X5vH//+H4+tr0
9t72+Ov8/bjY4cvo9fX//9Lv9fT///n//8fm9eH1/+L1/7PT4dPx9cbl9cXk9ef6
/LnY4cnm9b/d4ej7/N/2+Zi2yoyrwI+tw7/X57rZ4bjR4e36/bLR4Zq3yr3b4ZWy
x+T2/9Dt9ejw9ZGwxNTy9eXx+YurwNHt9ej7/5e0x6/J29v1+LfP4Ov8/6rF2Njz
9eL2/9Hu9abD1bXN3snc6vv8/cDe4tfz9bPS4cTi9e37/Yqqv9n09py5zaS/07LM
3KjD1qvG2LXU4eDu9qXA08LY6OX5/87h7cXa58DY55Wzx5+90MTb6ebu9LLS4crf
65OwxLfX4eL5+snn9fv//77W5fH8//L//6C7z/f6/NPv9djl7525zcrn9dbj7dvx
9ez9/+f6/+v7/e///5Gwxdby9dLu9aO/0uD0/42swf///wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAMAA8AAAetgHZ2QVhVJAgIUWWCgkAx
jHZPVIxnU3YAmBMBW2p2LmEQAWIFKWAJbiZZOCdjCUZQPwEfG2tLNhMNsxIQDQog
DDpNEl6+DDcLSDtDPkxvC0IeHgcHKgYYc0pscTDWZhFyPTNkVzkRJRwcDg5dBAJo
STQtBO0CAwMPDyEhbQNOFxdEtKDoQGGFFSlpvhDMkEGDhiIv4LDgYcFChQp0MtKp
U2PEiDogRYiQUeAIl0AAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/icos/entry-info-t-l.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQAFALMAAPv7+/X19fz8/Ozs7Pn5+enp6fr6+vT09P7+/vDw8Orq6v//
/wAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAFAAUAAAQQcC0UxhIqEVSMPIm0KIAY
AQA7
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/icos/entry-info-t-r.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQAFALMAAPv7+/X19fz8/Ozs7Pn5+enp6fr6+vT09P7+/vDw8Orq6v//
/wAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAFAAUAAAQPcAS0FklK1GUKrcmxAUoE
ADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/icos/entry-info-b-l.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQAFALMAAPHx8fv7++zs7Pn5+fPz8/Dw8Orq6vT09P7+/vz8/Onp6f//
/wAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAFAAUAAAQP0KRFCaALqYCTKgOFHEIE
ADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/icos/entry-info-b-r.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQAFALMAAPHx8fv7++zs7Pn5+fPz8/Dw8Orq6vT09P7+/vz8/Onp6f//
/wAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAFAAUAAAQQcMlk5AJEBoVGUckiHIgU
AQA7
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/icos/icons_vote_posts.gif
Content-Transfer-Encoding: Base64
R0lGODlhIQAeAOZ/AOjo6PHx8cjIyPT09O3t7fr6+sXFxeXl5fj4+N7e3urq6vLy
8sPDw/b29s3NzdjY2NXV1dDQ0O7u7s7Ozs3o8fb+/9Lr8ev6+4fKVdnyxrzS4Zi0
xq3G1pKvw/2JWLy8vJ65zOTt89H+fdvb2+fn5/v//9Hc5aO9z8nm8ajB0t7x9rTL
25Syxd3u+P1iMf+dfMb5bfS5s2atOdfw8/yEaO9lTs3Z4v+yf3udsr71YuxaReH2
9+by+Of3+lukLv99Rfd7Wdzp8XK5QuHw+4fSF5fdI5LSYNLS0qDcbuRJNJjVaavp
QMHW5P+kcPGxrP+Tc4Kitoyrv/++kP/Kn/ZTKP+WY3zBTP+kg8Xi8ZveMLfxUaPk
M/39/fD7/Mb4d8v8cvxtPb/d8ez3+6zmdOhEJ+lVPv/Yr5u3yf9xOrPuRO+uqev3
4vP+//RiOdf/i5Csv9n/lPhfM/JuVN06KYakurjnkaXjbd9cVcbZ58fa6M7f6/D1
+MP2X9Tg5////////yH5BAEAAH8ALAAAAAAhAB4AAAf/gH+Cfxl1GYOIVy+LV4iD
BCMSBY6EY3Bjh45XZlNTT5QSIwiRjhlIcG5udpmDL2ZSUp+IoQgFCAkBg2tIIr0i
Xkqsfy9TNzc0iAMjAwXNCA8Kf7teX18w1zlGrE9STU3IggMPAQPl5QEQBEpevjnu
1kaDNDdVVUCDEAvNBQEB+gMRlGDAYASGFi0DCcq74cGDHHwRIkBAQICAg4sRBmHg
s2QJBkpAmvz4UYNShAYAADighEHLli1W5NWY+QMNGh04Hwo6mdIAJStpihQRMqhG
lR8ukiYF40HHoAkDFCjw6QioUKKCYpTxAIaK1zgeysR4GnUqJSFLiBCRgShGEg9t
/8iATTJ2kIABBw4wOLtFLdu2SYC0AULGiSMDC/J+oCQji2MflJzMkTPH8OEFmBc7
kuGj819Hau6oofTng2nTpEPoCeGHEhMNsDVQSkCbNqUQeUrgCeHaj+8Vs337eeAo
hIYKfkow4Y1IQ/ISwB0l8MOFC/FBezSIqcC9y4ogzUtUYMOB0gguzSBgX8Hjgnv3
KjiAF7SigvsUlB4UaNDgyCAOPHBXwQ479MAGD/gJwkEXBJ5ACQQFYOafgiecsOAM
M4CgoYMKXoAhCA82UNFKjqRwgQUWnEFJCj2guAElRzQglQCUnCAGBRSwMEgKG7Cw
wQwostBBByAcIcCRBMxogJQBJP4BQg84djBIB0GogOOVFqiwgQEEBJDSlwoEQKMg
Z/SAAgpRDNJHB1meiQIFWpoAAJdefikmCYNswAMWWNCBiAlRBNECFhS0wIIJgpDA
QJckAHAnIh0MEUYYUDhiAgstZNoBooOQIEA/ARiAJyJvDGEqDpTY8IYFUdhAiV4E
MHAAJVDgYGulqW7gKmkHCDDrIIEAADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: data:image/gif;base64,R0lGODlhDwAaAOZ/APr7/LnO3bXL2uK7Vvz58NLu9friZ/z69arD0tXl7eHr8uL1+tLv89v09921Uf3phfzjcMra5dvl68nX4ef1+fz589rt9e79/+v7/Ka+zs7h6tny9d3EmqjAz+rQc+ft8d/1+PTjttSycvb///f6+/vx0rzR3vL2+P/////4rub5+/3qjf/zlu/0+fH5/MmdQtLh7PfYWP3oe83a4u/jzdi9ke3Ma8aaSbvN2r/T4PXdfunXs+LGivHWh/jbWuT4+a7K2dy2X8qbO8PW4sTc6fjaX/bUU/fUXOr6+9+5Y9bx89u1V//ukOLz9v/2usfV3uTAZ/z369GmQv/yr9yyRNDr9c3r87+RPP/4pPjgbPHWfOfCW8ygQ/zsl+jMc+jKeN719vLZgPjdXPP//7nL19yzUP/wjdCtbvzmcuXIb///x9Ho8vjkou/WgJy3x/HUafznd/nlh9WmPLXQ3fv48t67XdDj7P3pgPnx4Mrd6fjcWtewW/fw3/z46+LCcwAAACH5BAEAAH8ALAAAAAAPABoAAAf/gH+Cgy0KLYOIiTAuMImOJBEoESSOiAoJIwkKjkMmAZ8UF00CpAI5gjkuIxhIKio/CyAYFAGCJwEJYz9gDRsNFxoCJ4MAESYgSgwMGwETAIkACAwFDQVWGc+JEnMFC3YLVUASjjhrFgg4CBZEZI4dGh0ffx8ZeW6OMzPZfwATT5WCSrApARBRDyc9CgrqY0ONjSgKQ4RJoSVEIgJfBmgcsIJFHAcgy/ghQADKlBRMVjy4IwMOBDNdghD4gydJGywyIBjYycLDHj6DDvCog0aMHh9ZlvCokKiClBg+IMQwIoSOox1Uijzw8OCInB2ORLzRwUXECx1bzghCMeiFlxs0EP7QuJHmiiMOHA4ErVFjUCAAOw==
Content-Transfer-Encoding: Base64
R0lGODlhDwAaAOZ/APr7/LnO3bXL2uK7Vvz58NLu9friZ/z69arD0tXl7eHr8uL1
+tLv89v09921Uf3phfzjcMra5dvl68nX4ef1+fz589rt9e79/+v7/Ka+zs7h6tny
9d3EmqjAz+rQc+ft8d/1+PTjttSycvb///f6+/vx0rzR3vL2+P/////4rub5+/3q
jf/zlu/0+fH5/MmdQtLh7PfYWP3oe83a4u/jzdi9ke3Ma8aaSbvN2r/T4PXdfunX
s+LGivHWh/jbWuT4+a7K2dy2X8qbO8PW4sTc6fjaX/bUU/fUXOr6+9+5Y9bx89u1
V//ukOLz9v/2usfV3uTAZ/z369GmQv/yr9yyRNDr9c3r87+RPP/4pPjgbPHWfOfC
W8ygQ/zsl+jMc+jKeN719vLZgPjdXPP//7nL19yzUP/wjdCtbvzmcuXIb///x9Ho
8vjkou/WgJy3x/HUafznd/nlh9WmPLXQ3fv48t67XdDj7P3pgPnx4Mrd6fjcWtew
W/fw3/z46+LCcwAAACH5BAEAAH8ALAAAAAAPABoAAAf/gH+Cgy0KLYOIiTAuMImO
JBEoESSOiAoJIwkKjkMmAZ8UF00CpAI5gjkuIxhIKio/CyAYFAGCJwEJYz9gDRsN
FxoCJ4MAESYgSgwMGwETAIkACAwFDQVWGc+JEnMFC3YLVUASjjhrFgg4CBZEZI4d
Gh0ffx8ZeW6OMzPZfwATT5WCSrApARBRDyc9CgrqY0ONjSgKQ4RJoSVEIgJfBmgc
sIJFHAcgy/ghQADKlBRMVjy4IwMOBDNdghD4gydJGywyIBjYycLDHj6DDvCog0aM
Hh9ZlvCokKiClBg+IMQwIoSOox1Uijzw8OCInB2ORLzRwUXECx1bzghCMeiFlxs0
EP7QuJHmiiMOHA4ErVFjUCAAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-comments2.gif
Content-Transfer-Encoding: Base64
R0lGODlhDAAOAOYAANDf6tbt9oWludPi7NHg6sPh8Mvb59Li7IiovLnM2bjM2NHh
6+Pq74SjuNLh64GhtcDV47fL17LG0+jv9cfY47/V46m+zMLT37vO2+rx9oCgtuju
8fz//83d56zBzvv//+ju8uPz+rjM2b/c8M/e6rzP2+/z9dvv+ouou8LV4OPz+4uo
vNXr+srb5sbX4sPY5LXI1sjZ5Njt+omovIinu+Hp7r/R3YmpvNTv8szn8Oz6++r3
/sHU2q7L0qbE0cjk8N/09tDr8Pf//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAMAA4AAAdwgBkDAwcOCwQEAAAkEwAc
Q5CRkB8GHUKXmJkxLTo6PJ+gnS4UQKWmpxcpODg9ra6rNiVBs7S1GCI5OT67vLkK
CQE/wsPCATARKjvKJwUFyiESDDczCDQvMiMCAg01kiArECwakpIbKBUP5JImHhaR
gQA7
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-author-link.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQAHAIABAJ2dnf///yH5BAEAAAEALAAAAAAFAAcAAAIKDA5ht8ioTFRJ
FQA7
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-icon-twitter.gif
Content-Transfer-Encoding: Base64
R0lGODlhDgAQAOZGAP///3PU/HLU/HHU/HDU/NfX12/T/Nvb2+jo6Nzc3NbW1t7e
3t3d3d/f39LS0u/v79ra2oHZ/O7u7tPT04jb/fz+/+bm5uPj4/r6+n3X/PT09PHx
8dXV1efn5/z8/Pj4+Pf39+3t7djY2Ljp/enp6eLi4v3+/+Xl5cDs/u35/5zh/f39
/dHx/uTk5Ob3/vb29qbk/evr65Pe/W7T/Pn5+cnu/tfz/qvm/ZHd/f7+/tnZ2XjW
/OX3/nXV/OHh4Ynb/Ozs7PX19eT3/o/d/fX8/43c/f///wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAEYALAAAAAAOABAAQAeigEYIDRAJIUaIiYgFAAIC
MgCRkR8nB0aMBgYUkpEYHRCCFigBpKWkMA8XCzQRMyobJYqJjAO1trY3QC0iHhmk
NRWSQRcMiBoKJB4pwZErMRwYCB1EQhsLh7JGCgCZFCA6B+EMCIsABOfo5xE2DQ+M
jvDwPy4Q7jk9AUMvnAkWiAwgipgqhYNHAgnaTIzwZWoHCx8IjWhowEHEBAcYJyz4
YCQQADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/bg-icon-facebook.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAA
AJ9JREFUOMtjYKAQMDIwMDAkVq75f+vBG5I0qimIMMxvD2FkYmBgYCBVM7IeFmIU
q8oLM3SXeTKICHIzMDAwMNhEzYTLMRFjALJmdECUC7DZTJIL8AG8LjiyLB0rH9kl
eA148/4rihdgfKJdEJC9BMVmGJ+qYUCdQOTiZGPQUBIjqNhIWwbOvnHvFRVdICPO
x3Du6hOcirAlIDUFEQaqAAAnVClioBN0DAAAAABJRU5ErkJggg==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/link_icon2.gif
Content-Transfer-Encoding: Base64
R0lGODlhFAAUAOYAAIGiu+ft8o2xy8nm9YmtxcLe7KnL3u3///r+/5G0zYisyYWp
xnyivc7i79Lu+53B2NLm9Nvt9tHs87nW6pa60mSKpJ3B1pS20PT2+OX8/3ufu+D5
/+j+/9jy/nCVr7nZ6dXx/s/r+Zi40d74//P+/4+uw8Lh8Zq81Lza7Z2/1rXR5r/b
667N4KLF2uf7/qPB17ra7fX4+pi808nd64ClwL7e7u/z9q7D0YKow8Hg767O5bHT
7dr0/4mqwPb//8Xi8cbg7qnG256909/1/8Ph9LTU5bLT5a/Q4naeuf3///T5/tzl
6qTG28Da8LDR4snW37XW5snl74eow6TD2b7S4L/X5qa8yrfY57/g8rnY55WuwZ67
0OD4+W2TrOX6+7fZ68vo+sXk8931+Iimu+r8/XmZsMTX5rnO3bHN5JKtv8Th9Mfl
+Mfl9NTx9IOoxXabtczn9qnL5Njz9a/L4LfR6LXW74uyx6PA2L/d66PH3bPH1rTJ
17DM3pSzx7rX4v///yH5BAAAAAAALAAAAAAUABQAAAf/gH+CgkoQTTuIO00QSoOO
ghB1YBsHlQdDazsQj38ITUQcBxwZG6WlQzATCI4TaqOlIzw8HR0gDh0TKoMNKC4j
YEREWFg1MDBfWHAhOjN/MXFDPCA6jZx5Jjk/DxgzKB0OITUtDQgISYMPKB8fLGZz
cHADbGE5Dw1/PuZ/FFBFRkUvZIT4kSNHjSJV8B0gkU+AkyMsjAigAAQFjA9X+Pxx
wcULmYUEDIhkQeACnn5GWkTw0UaOGD8HyOBg0qKFARwCsjxkkeBPBAkS7CChcoDB
gxQpDNDYwkLkzSRRoljAkQJJAAYyKFBI0eeMCJotaJAoAIQGBRkJNGi4kOAEAT02
b2gEOUojwooVDC6wVaBAgAAhb2z82UPgDgUFQYBMWOBXAF8FIhjcGFSixwkBDJqo
uLCgsxvIGsY4itEDgIgFGuigSUBjQQIhHgDE4HSjCwApAATcmSKkRwUrjjBgCBBg
yRMtZSoor1AmzZMlxIUHAgA7
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/lock.gif
Content-Transfer-Encoding: Base64
R0lGODlhEAAUAOZ/AN/t9s7o9tnv+qnI3L7Z6ZG1ztru9s7m8L/h8+36//r//7TG
0rrS4pq60cre7IGlv8rp+M7h7bzY6LnO3LrZ6eP0+6C+04qrwqjI2pa81KHA1bPP
35WzyXieuPX8/7PP4ef2/Of1+6vH267C0cji7rXQ4KfG2/f///X+/5Kzy93x+93w
+Mfn97fT5J6/1M3q+nGXsWSKpGqQqqbF28Tc7V6Fn4mtx1qBmuXu9dLp9LrW5+n3
/LDN3eDz+oWmvcTZ6KXF2qfF2Orw9bDL3Mvn9dbk7uT0/czq+LjU5rvV5qHB2KPE
2aTC2bTI16bG3XSYsnCVrvD6/vH9/77W5L/U4bTJ2M/n86zL263L3KfC1fj6/P7/
/4+uxniaspy808Dh8a7N4Nvw+t/x/ODz/Nrm7qXE2Ze3zaXG2uP1/KbG2Zi3zbXS
4bTS467M3LjS4X+kvsLb6L7S4Oj0+pGwxu3z+N/x+4KkvLLJ2rfQ4dXg6NXt+LHO
3Zq+2FZ8lv///////yH5BAEAAH8ALAAAAAAQABQAAAf/gH+CgnQOhg4Ag4p/AAMA
Cn6RAC0Ri0UOkQoeHidbfgAMg1oiKFFUHBcXc3dyHj9CgmQRO1lNinlcIQBxghMG
IXaKfn8+IQYcvQcVT4t/IysHb4JVBBVQzSMgBB29NAldzQtGNME4fHxO5+rr5zgF
CCwQEEcv9S9HECwsCAU2XwF6BKioM0aMijACchD5YuNBhjNYNpRwQxHPBh4DlmR4
0IGClRUgEkg5cQJFAhArrFDoAKOABgxtJK4psWHPlTQuCsCQMYAAiRwGVlRA08NA
DhISBsiI4WXAhxZJJEjVgYQNGBMNYtRI0UADEyAzTJiYUUaJiwYpaty4YMZCkCFu
FKbASbJBhAY1F24s6MO3r1+/CwIBADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIFjA8QqVwAOw==
Content-Transfer-Encoding: Base64
R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIFjA8QqVwAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIGjANgqRwFADs=
Content-Transfer-Encoding: Base64
R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIGjANgqRwFADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIGhGOAGt0FADs=
Content-Transfer-Encoding: Base64
R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIGhGOAGt0FADs=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIFDG6YwVEAOw==
Content-Transfer-Encoding: Base64
R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIFDG6YwVEAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/add_comment.gif
Content-Transfer-Encoding: Base64
R0lGODlhEgAMAIAAAK+lav///yH5BAAAAAAALAAAAAASAAwAAAIgDI4Jwb0NXXwR
Unarmdryjn1gllUl4iTjU3bHBk4vWAAAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/comments.gif
Content-Transfer-Encoding: Base64
R0lGODlhEgAMAIAAAK+lav///yH5BAAAAAAALAAAAAASAAwAAAIiDI4Jwb0NXXzq
sCfj3KZermVZRYGhoSFOcnZfC1kYfFltAQA7
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg_avatar_mask_mini.gif
Content-Transfer-Encoding: Base64
R0lGODlhGAAYAIABAPn5+QAAACH5BAEAAAEALAAAAAAYABgAQAIdBIKpu8YPo5y0
2ouz3rx7dHSO+JXmiabqmo6aUQAAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/icos/icons_vote_comments_4modes.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAABoAAAA0CAMAAACjMti6AAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAOFQTFRF////19fX2dnZzAAA65mZM5kA
rdaZ1tbWXK0z8bu75PHd39/fzxER1jMz+N3dabRE8fju+fn5yeS7vt6t7KCg9Pnx
oM+I5+fn+eTk0yIi4GZmhcJm7qqqksl3/O7u3VVVQaAR54iI762t/f397Ozs9fX1
+fz4/PHxw+G09PT05eXl8vLy9c/PTqci2kRE/vj4zufC0+nJ4+Pj7aen99bWd7tV
6fTk6urq9czM2tra3Nzc+vr6s9mg88LC/Pz82ezPu92q4uLi8LS0++vruNyn7+/v
3d3d9/f33t7e8PDw7e3tKIn5cwAAAcNJREFUeNqU0Nd2wjAMBmDJdjakhEChu2W2
dO9dutf7P1CJ5cg+HHJRJRdJvliWf1Bu+W6BAlvK58ddIHo8nqNRPiV6UynAheox
jfJTIDpu9SBVrS5TMwdDcKAidT7mhqcPbSaIVGus92rn+ejKj8HSq1JdGqP9cPK+
C0zjnrroqQNqeOL7V0zd1vlsyaNSmto+LYIFR55CJYGl6gylW55bIJ0e0uPHJSBa
3ZyjRrhMdCPXZyPIOlMj3ACizVod1mUtYroMwRDsyC25knLDje2YCbZkLdV7xWHY
aHrPYOlIyojGiLfXDpeAKa1LVZc71HDN85pMUW1ltmRVSk2xR4tgwZGXoZLAUnWG
whTq23lBEE4PIZx4icp4mYp4NXG8Jel4NXG8Jel4qWEZryGK14xh4hXCideQiXe2
ysarieMtGnK8Bdl4C+J4Fxy5jLcyDU2IGCCVcF+IkL4EBQX6Ilrc8Mzs1Xmao34y
IPrCfYAf/GbqJ9dmwr5IYB/FkGmS8PADnAR399zw+jaz55rg7b3eK0uSp2HRn+kM
cY/GyETn7sWmkSX4keAvNezQX0R74nOoP2nK8KUyw8H/4w0CThf/BBgAzksgSjMm
a0UAAAAASUVORK5CYII=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/bg-button-enter.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAACAAAACDCAMAAADbLOmGAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGBQTFRF8vLy5+fns7Oz////ysrKz8/P
0dHRzs7O09PTx8fHycnJ0NDQyMjI0tLS3NzczMzMzc3N4uLi2dnZy8vL3t7e4ODg
39/f4+Pj5OTk1dXV5ubm+vr6+/v7/v7+/f39////yswFHgAAACB0Uk5T////////
/////////////////////////////////wBcXBvtAAABWElEQVR42uzW23KDMAwE
UNlgnBYINOn9xv//ZQkhgGQhFwf8xL5yJpNMFs1C8/6R3WLaWHt4aiaBt5fvBOfr
dSrg8As0nwaBxAHqfmAFoJeDMgTUU2AYkAYD7QGaBTYZn18igO4TQALgBcCB6scF
xRQcnxXN8TQFzTHt8tjm4ZoT6mTjCfyj1c53IK1Wzq8Asz2wAtDLQRkCcKsZkAYD
7QGaBVY5rZ4DQ6tnAXgBcKBiAGm183xv9d7qvdVLWp33Mdd0BWcWCB4j3AJBY4Tb
D2hr3A3sCqAMA7c/XtUxQCaDKgbIZXDeAmgCyJbrX9ABpM7Y0+NLzoLxFZ8DQIGV
CxMFMGMP7T5u7KHdhw5Im6LPcEtWOSDSd7gcECX9CjDbA7sCKMPAUKs6BshkUMUA
uQzOWwBNABkY5IBA6iwQfEBcQA4IA4ACKxcmCqhkUHALBI0R7wH5E2AAR7t7jEpR
hqMAAAAASUVORK5CYII=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg_avatar_mask.gif
Content-Transfer-Encoding: Base64
R0lGODlhMAAwAIABAP///////yH5BAEAAAEALAAAAAAwADAAQAJDhBGpy+2/DoK0
2ouz3rz7D4biSJbmiabdpFpGe7HwTNf2jef6zvfKu5PwDj6Z74hMKpfMpvMJjUqn
1KrVZsxJsjBJAQA7
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/tags/oldresident.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAE0AAAAkCAYAAADM8rciAAAAAXNSR0IArs4c6QAA
GK5JREFUaN7lmnmw5Ud13z/dv/13f79777tvm3lv9hktIxAjCYGQkCUhSAzCxDLG
AYGRFcoBuYIpnKHsSshGsGKwIyLiCjZOGRtUQrGNyyICzGK0i0GyRsxIo30ZSbO8
efOWu/72X3fnj/t4GglBsMv/0VVd9bvd557TfXo553xPC15Wbr7+49cYY94phPjC
VXuvu4WfwXLz9R+/Rkr5S1rr/3HV3uvueHm/OIWwDdzhB/6efr/39DX/7vrT+Bku
t/7Jp8xoOAT44lV7r7vm1D55yvctxug9jUZIXRS7vvTp337Dz6rCbr7+49f4vovW
GmPMr918/cf/y6n99infl9Z1hVY1tuMw7Hf3/e9PfPigJeUBbczDlrQmXd/3Hdez
xLhcLIRACIHjOOfalo02mqqqGLdLpG2NN7MBrTUYjTGgjUapCjQYY3rGmANgDmA4
YIy55d2/9ck+wC1/9MmW5/lX1kpf6fveZVVVtY0AVdY4QYjjBTiOjxsEeEGIH8YA
aFVRJAPypM9oOKBIEgwGbfQPMGCMwRjzsNEm01qtGG16WuungHOAKz3f21OWFbWq
wBhc17/sFZVWVgXNOGLh+DE2zM2TZTnpKNmjVL0ncD2iOCJutvAaIUEQYnk+lrAx
0kLaLtJ2CZsdEAKBQQBCgJQSXVdorVBFRlnk1GVBmiUMul0Gq8ttaTmXScllji2x
pOSOmz97y8rSyZ7juNdgQFoWSZJRFBkYsF0XV9r4jZj25Cxxu0MQt/CDBmHcoirH
MlRZoKqMusgY9lZIR/1zBysrpFmKqqtztTZIMVaiAGzbwnUchqOE5aWT2LZNEPhk
WeG8otJsaf9tWRRvm5ic5pmnniQIPGZmNiKkhbQkcRyjlCYdDhl0u9TaoGpDqzOB
44VErTZVkWBZDrZjYzsuluUgbRutFFWek6ZDiiyjLnOEMdi2TdSawBhF6LsM+n3y
LKeqyitXV1eYb7RwPZu6qrE8G9eLEEIShDHCdnAklOmAQV2QD3vYnkOVFySjPoNe
j7IsUFVBI4pxPRfHkri+C9KQJYY8y1Ha4AcOVVGRFCmLwyFZllKXBZu37aTX7WJZ
7ndeUWnSsv59t7fytg1+wO5XnU1RFgx6fZRWBEGDIl/FcsYKsWyL0POwHZvAd7Ec
gW1KUBIhDEIL0AojLIwBozXCEvhBiOe4ZJnN6slFiiJHCkFR5CwceR7HdrEchzwZ
Ycz46AdBg0IWVHVNOhpiEGR5gSUdHD8giGIacQsjLbSQIASNqIUf+GDGu73MM0b9
LsMkWVssSeB7+L6HAaSQJGJEOSxxHI9Go0nYCFldXiHP0rwRuTe8ovUE+OKnPnZz
mgzfEwYNgiBAa8UoSYiiBnFzAtf30EphjAJtcDx/LNSycFwfL2ggpERaNtJ2sR0P
2/FQdU2Rp1RVSZEmKFVhSYssSxh2l9HK0O60cCyHLEt48O/vI89ytmzbieNKJALH
dXH9EC8IaUQRgR8iHZdGHOMFEV4QIoSgKkswiqoqKMsSoQ11XWHZAqMNqiwoy5w8
L9C1QimNNjWqVuMdbUnKsmB1+SRlWdKIWp+/+nd+/9of53J0/MBfHA36dm/1JMaA
FzZoT0xitKYocvIiJ2rE+I0GUbMJRiOEhUBiuTa27VLVNbbj47gOfhhhuy6qVui6
pigykmEfXZUINEJIeqsrpMM+K8vLpFlJLS0azQlsx6W3eAxVVxhV0261iJsN4tYE
ju2AEPhhAzeMCIIGrh/gBQ20rjFGU+Y5qi5RdQ1aUasaVVeouqauSoxWKANGKzAg
hUWeZ6SjAUWREgQRjaiFMaY2xpx51d7rnvmR46m1+la/u2obY5jZuJWyykmGA04u
HMFyXJpxi9nZOcq6piwyThzp4bgOxoDjONiugxASISSW7eDYNstVTZ6M0MYw6Hep
yhJVl3SXu4zSBGUkbhgxuXEzM2ddyPbpjcQzG8bWV0qMqhktLzI48QLLLxzmyNHD
5I8/SdwIieOA5sQkjUZMGMW4QYjt2ERxG60Vda1wXBsvcPmhZde1oqoq6rqiKAvK
LKcoNcmwT5qkKF3heyGt9iSO4yEsCUrbqq7/EnjtS3baH//HD72m2Zo8aIzGth2q
usSSFkJKuisr1FXBaDRAG4NRBiEFWZpgW/bY8ogxq2TQp1YVxgDGoIwhbE5iuR5e
I8ILYyY2bCLqTNHozOK3JrCsF70eISW2bSMtCykllmUhhMCyLOTad9pdoS5zjj7y
IHmW0l14njJN0FVBMexT5RkIsKRESgiaE4zt+dhKKqUxRlOVOdJymGi3MVKANmgN
zc4ErTimrCvQGmH7OI5rBv3VMz/4ic89ub7T/CD6rBACKccTcB0PpTVLK13SNMMY
aMxuQwhoTm5YP9TNmY2ItR9mbQXCiQ6T89vRWqP12G9TVYUyBsz4ZhZCIAEh1hgJ
gbQsXNcljmMacYwfBJRFgRCCuq7BGLQxNJtNqqqiM78Vo/W6sq01RQshMMaQpSnH
Hn0QY8x4fMasL2Y2GlKkQzBQFynUJVU6RKLHfPwGE55HI/RQWrG60hdxc+JdwH9b
V5pt2Re+eEw1ZVlQ1hUag3jVFVx6/hmYtUFJKblj/5MceOoYLA4BuPqK13HrXQ/T
HWVAH8xhjDG860172DjV5MCTR7jnwLNc/fbX044b2LaN5/v8r7++m6LSCMsmboR8
8F2XMjs9AcCff+37PPHCEgBnbJnmml94A7fe/TBHF3tc+66fo64V1/3ZN/nQL15I
Ow74/FfuZNPsBG95/Rn89xv/jve/9Ty27rmAWiluu/8xHn/uJNf+8sUYY+gNU77w
1XvXTolP4Lv8xnsuxShF3lvm0YcexVl8giiOcWwbgcEYc/W60m7Y+76zLNt2lapJ
RwOElIRRTFFVSGmhvQjHcTGOQ9xsctsDT1EIn9/54JXrx6rhB1y7eRPaaG64+U4+
8C/ewESzQRQE2JbFTXc9zabtOziaWOw55zRs20JIC7yDfOS9F9FsBBx6+hh/c/vD
XPuuS/jS1+9jZqLBOy49G4B9B5/lC7fex6+85RzuO3SYz33lLj70zkvIS4Xlenz1
nkfZNDfLz190FoHnUUuX9uQ0rSjg8JFFHltIMW5Aa3IKozSZEkjb4dfe/jpGSc5X
bjuA0gbLcohmN5PPQvncAxit8MMQ23IAs+XU2POcqioZjfq4QcDMho1jC2FbhIGP
G4TMbNjI3OYtNNsT/OCZk7z37RcyPTm1XsNGg8lOh+nJKWzHo9OaoNNu43oeRxb7
lAred8UFPPD4sbGzi0CtHa3A8YmCgCgMxuGV1jz5wiKXvPb0cXsQcMlrT+fJFxZx
HYcLXr2dPbvmuOHL38X3bP7qO/sZJTn/7MLduI6zzteYsTH5y9sf4uLXno7tBkRx
k7jdZmp6A43ODLt372bnaafhtyaZ3jBHqzNJ3GqNHXPHIWpOUFclyWiAMcY/VWln
5FkqfC+k1WpSVWOfZdP8HL7rEbUm8MMApQ0r/QQAx3GplX7FCqDMi7/vOvAUl792
F5PtJjvmOux/9PmX0N7wf27nP3/+69x6zyF+/sIz12VY0lqns6QFwEo/QUqLs0/f
jFKavKg5crLHJeftwrbsHxnD1+9+mN3bZzj39M0A6/3K6PENLC2k7WA7Hq7vE0QR
fiPCCxvYEhzHojM5g2VZFHkqbtj7vkvGG8r1bnJc9z/5gUcURXRXB2zdtonFk8sE
oUciBFpDXWtC3x0Lr/VPRAnqWlPXmqKseProMk8fXea2/c8Aht4w51U759dpP/jO
C2k2fEBgn2JJX0lG6LvUteaLX7+PM3fMsu+h57jw7K18+dsP8oF3XEQrCtZpH3z8
BR565jgfec+lDEflS3iu9hI2TsXr43y5PK0NdZmTJgmTkz6WZaPqDOBXgbvk5NTG
I0ppOp0OeZ4zu3GWWhmkEMRRNPaitaZSmloZdsx1+Na+R6iUfsU6XmVDpTT7Hj7M
Wdtn+dj7L+dj738TH3v/5awOUxaW+uu0YK3ZI4tamXUZd+x/cp3nHfufZMdch1oZ
/vxr32PrhjZv3LMTgLNP28Rl5+3k5m/eT5IV63zvPfgsv3jJq9Faji03rPM7vtxn
Ig6plP6RvkrpsWtlQKkKx7XRWsHYs/j9G/a+z7MBo/XY91K1otEIeOyR59i2czvd
5dU118Gsb/tfuvxcbrv/cf7gxm+vr8yvvPk8Ns12APA9C6XG9Psefparr3g9tXoR
trvw7K3c8YMnuPKy815Ce2q54uJX8417Dq3L2DnX4YqLX80f/sXtnHv6PBe9Zie1
Emv/F5y1c57eMOOzf3E7v/Xet+B7Fmdt28DcTGd8HJXB98bHfd/BZ7jvkcNr43pp
36kehDEG1/V+CH3R657ko9ff9DSAuPn6j9srK8vV9m1bSfOcmZkZjh09yhm7z+Tx
Rx5l+bR3cOXl59HL63Wmjg32KfBlWYEaLxi+DYUau2SBC0UF2rxI61hrQXT9UtqX
xHZiTGetyVAaKgWeNZZTqR+V5VhgW5CV43YFVPWL/DwL8vpFuh+O69Q+AKUUt9/z
A9wHvsTm7Ttw3YDhoM/JEyf4zU//qQCwr9p7Xf0HH/3Vfq1Uy3VdBv0BUzNTjIYj
8rom6y5x8uQSstEC4IXbv4Lr+2y48BdY+N6teH5I57w3Mzh0NwhB81UX0z1wO47n
Ue++aF0Ri/u+ShhPEL/6EpLH7sWyHerTXk/5zN8DAnfn+ZTP7h+v7Pbz1icMkD3+
PWzXpdpxPvXhBzGAs/08Vp/aPwYJd57P6PH7AYN/2gWM1pQ6euxeQBLtvpDuQ/di
DMSveiP9Q3eDMbTOvoTuwTsBmNhzKQBpklHlCa6AwA/oD4cEYUhVlf2XxJ5KqUQp
1XIclyzL6UxOcHxhAWUsDLC4uMzk5jEquvjY/WgDT3QtgufuxgiLuXgzJ+75BlEc
03dnObHvm9jxFDvnX4MfhDz/+CP0D+5DCMnZZ1zMM/u+hZEOrSqke+8tNNsdNm85
j8P3fQdjDKFus2HLNgCOPf0EvXu+jrAcpq0ZBvd8g2ZnklZ7G0/f9jf4zSnMyMN6
9Hbc5iQzm87Bth0Gyyd47s5baUQxO3ddwHP3f5dS2NipS/ngN4ijFsGZF5MeeRyM
oXHWzwEwHIzWApdx5JKMRri2S6XUykuU5tj2D4bD4VynMwFoLMemrhS+6xKYgn5v
gBedZPTY97FcB09a7Ah6PFWVOEGTlacPYbSmKksWj74wDraFzfOPHmR2osFo4QVc
z8fzPO782v9l3nHJiorukWfRWjPMFXf81Y1MjgYYrSkP3YWz/ARSWmSrQ7TWhI2Q
5aceQmUpyfGC4sQCWmuypE80PM5g0KNKSqrDh5nbsZOlhRNUVkipBX/31VuYqyt0
neGPjpPVFf3+Ko8f2I9ZPAYY9NEjTG6cI+8vMWeNyF0f23aRQnBi4QSNsHEnp5gu
fvmfv/HAyZNL/6Y1MQESAj+kqhVVPuL8XbNs9DLibBGT9hgORuP4rsowSBA1M74G
yyaKYybpk45GBI6gWa2QHX+aGb+mqiuksNjeMpRlSRAGbGnZVHVNMwrZPTeOKYMo
Yn4iZLR0FKsYMt9ysV2PVrvFfEvS6/YwGvrDjJmGhS0lTTKyPMO1DH62wujwQ4RV
l1bDo+F7XLBrmrKqCaImyfGnqKqKuNVGLz1HMlgZg5XhFNNmleligUm3YDgYEbea
9FZXOHbkKJu3brv8r799d76utK/d+cDSpeeefrXv+RO2PUZni6IkzzOUBqUgTXOM
dHACj87UDFu370RJycyGeVqtNgsLR2k0mkxOz2B5AfNbtjK7cR7L9dm4aZ6yKGk0
22zeto3hcEQYxcxv2cIoGeEHITOzswyThInOJJu2biHJCuJmi5mNGxgM+kTNFjMb
NqCFwHVdztw6RVFVWI7L5m1bsR2X2Y3zbNm6hTrPsUxJno7oLi/hej7DNGHYXWHX
mWchHY9ms82OXTsoa017cpr5pkXkQJKmdFfHCRnX9Vg4dhQhRPfaT37uEz+Cp03P
zPzrF5577jtbt++QUbNJliYYraiKnNLzybOUZmdyDZ2wMELgOC7CstFC0Gg0md95
Gp2JCSpzBNcPELZNGDVxvBA/jPCjJsLxsD2PsNnGj1o04g6249BoT+H4C0QTHYQb
0p6eRQqJF7XJ0pz5HRtwgpD21AYcP2R201ZwAoqipNmZpj9KCeMYL2zQnJzEsS3m
t+7gwP3fZ8tpZ2IfO4a1ZTtT09OMspIobhC3Ozi2B0YwGqUMRylaKdJ0iDaa0aDH
6mrPTHZa333FvOdvfPKPb4tb8VeeO3yYqqwwegzljAYDyiIfw9RVSVnWjIZ9kjQH
AWVZ0e/31mBwg1lL37leiBE2GhCOh5EWtuOR5yUIie24SMcjbDYxUmJ7PlVRYLs+
Va3wggZeEFGWin53Fem4SDeENaBTOi5uEFGVJcLx8PxwDL3bLm7QQNgOaZqCMBgp
CaMIKW20GWfIpO1QVxVGgLAtyrIgGw1QZUmZZtRlyaGHH2FyqvNFres/+3F5T/7t
9Te++9Mfee+eA/v3nzG/aQ7PDwBDmWVUVUGWJOPUmKoZ9LtgFNJ2qYoSy7bHOYC8
GDvKWo0Dc1VT1QrbsSmrktEwxWiFkBIFSMsGk6MQqHp876iqpCxy/KBBXhRoXaOq
mrquyZIBQshx/lSpMQCgx4G+g0tVK6SU1HWNkAIpLNLhiLIsUVVFkiTj/KsyDAYD
JIYiGSCkRZkXWEIwGvY5fuw4rXbrgY98+gv/6uXhnHx5w/Ydu3a7nvvM84cP0+12
EcKiyFK0Moz6vbFArSiznLKoMEpRrIGFVV6S5zlFllKVFaoskFKydPwojuuji4Ky
yNHKjCdaVWSjIZZl0V1eHCdy+j2yJF1TpiEZ9jFAWeYMel1s20VIQV0qijTBtizq
qgbMOI+RpfSWFzFKj1N0VcVw0GPYXaUuCookoSwLijxj2OtTVyVlXjLsdhkOenS7
XY4fOUoUNQ7u/cyXXvdKsbX98oZ/+dH/aoBdv/eb7370maee2t2d6jK3cR4/8Mmz
Ea7bQdeaIk+xbAs/CEDXCGFT5AlOalNVOVVVUhU5jueTJUPCRkSuE+qqAK2xhaQq
C7QxBI5DMujjuGNarRVh2MCNI1aXEizLps4zdF1hWRbGGIbDHlWVg5Ckwz6mqqjR
9JdLkmEfYaAoc4wxpMMBZZphvHFypSpzhlVNlowwqmYw6KGUpruywmAwYOPcxof2
fubGc34cIGH/uI7Atc/ftWv77y4snPz1Q4cOxjOzG2m3WgjRX4ePta6x1u6nLEkp
0gTX9TCVpspzkmTApOeBMZRlgQSG3S4gqIqc7vIJqixjWOT4zRZSCqSALEmwbZs6
LxGAlIJ+dxXLtlGqptFq019dQlWaWivqPEdaFnmWorWmripWl05guy6WY5H0B0hb
Muj3KbKUPE2p13IFruNy8sQiy8srTE12epvmNy6B/vWfhOJYP67jm/serv723oPf
uuehp3/vqre/aWrp5NJ5JxYWpFY1VVWBkBRFQVUVYCBNkvGkLQspNEZDkaX4fsBo
OMBxHJSq0VWN47ogJVkyxPMDyjLDKE2ZJoRhSJImWNKiKnOUqkkHg3FiV2vsNfg5
G43wfY/RYEBdV2ityZMRo34PaUFV1hRZSpqmJMkArTS97uoPM/gMh0MWFk6wurqC
ZUm9ddu2z/z2//zym9960dnf+Oj1Nx36SUoTP+1Lmhv2vi/Uxvp8kozeurS03AFk
Z6JD1IwIghCjK6Tj4nshUdwAI0nzlIn2BGma0GjEWI41Bg+zhLDRREpBo9li5eQC
XhCi6pq41SZPRkjbXh/csN8jakRowAgwypDnGVEckQxHVHWFMJAmI4o8p9maYNDv
oYzCqLFF932PxeMLDJMRw/4QP/D1xET72ZmZDZ9IR907Pnr9TUd/Wl2If8xTpD/9
5Ec2ZUny4eFodNXqSndeoK0gCBFS4Lg+cdzAIAiCYJzdtsavh6K4QZZmaK1xHBc/
CIhbLVaWl7FtC0taa28/agI/oMhzhO0gTc1wNL70Xc9lOBphlKbdmWA4GFLk+dpU
NEppHNej1+2RJiO0UvR6XeK4iVK1bkTRiYl2+8bJ6Q2fumrvdb1/zPwF/wTlj/7D
h95WFvkH06zYk2XZ9Gg0Cquyktpo4qiBEQJbSianp0iTDNsaO8e+59OZmmIw6CGF
BLmW3pOSKIzoD3tILHzfZjTKMUbhui7d1S6GMZ4kpU02GlIrRVnmKGUoq4p2u62E
kP04jo4Eob9fGHPfhz/1hT/5p5jvP1Rp8Vr9/5YLztoeXfnmiz4gBHNKqZ1a13PG
6DhLcx+whLBEWaSu6/kiS9L1fKUQAm00URSTJglgaEQhg0GC7UhcN9BSWoVSte3Y
ThG34n5ZFrUUViFt51al9eLH//Cmm/4Bcxqu1Z+6/D+1oWcsDkyLvwAAAABJRU5E
rkJggg==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/tags/habred.png
Content-Transfer-Encoding: Base64
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
4OCheEP7PydxA3UapgnrAAAAAElFTkSuQmCC
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/tags/unhabred.png
Content-Transfer-Encoding: Base64
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
SUVORK5CYII=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/bg-corner-top-left.gif
Content-Transfer-Encoding: Base64
R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIFjA8QqVwAOw==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://habrahabr.ru/i/tm_logo_sharp.gif
Content-Transfer-Encoding: Base64
R0lGODlhHwA8ANU6AKqqqsUrhaKiot2IuqOjo////+4vmtLT08zMzJ2dnctDk+Lk
5P79/P3s9bGxsfHx8u3s6/Xb6+u61p+envX49Pj5+Z+gn/34+sHBwd3d3Jycm+es
zvvk57i4uNRmpsrKyu3D24+Pj/70+uOdxZiYmZqbm8fHx5eWl/jJ3f/5/dxcpsTE
xJGRkf6m1P7//b6+vvz9/v3+/pWWlZWUlPv8+6CgoKKhor0idqWlpcAjfP///wAA
AAAAAAAAAAAAAAAAACH5BAEAADoALAAAAAAfADwAQAb/wITNJiAah0XkcMlU2jQ1
nHQqFVgFhCxWmqVSa1Gv1NIpHBKTBQRToWAYCI0YLK7bpywZAgHR3XKAgYKDhIU5
N3+FAYuMOYuAj4WIhjcKBQOIEhwKMA2WmISThqOCiIgGLTo6NnetrTZhYiUOBQgn
GhkMFQ4vDLUJc7F1AlNdXcQEUgAOAAITCUlKSUXR1Es4CKrafqTdlImhCi6YN5oR
HgMcF6CDot7fpwYGAcKu9lJ09/o4sGIJbwwo6MpwgMICCzggVPgwQUy/OmTMJEiw
4MGCAxkWVEAAzMtDhw42JrCQAQIAiwAoMHTIal8dEiFCYDhAs55LKTZmmHiwrafP
/59At4F7984dUW9GAykAESEGBwkDNhRosIhGCnalhpYSR05ChBFMB4jAGijpoACB
Ft14hFaS1qOATN2QZwDFW7inUGyz6SqZnWQW+N70km/wnY+G6xSmAqDxMhyOAShr
rNhmjQ5qClg0kaEABRwOfMUJZueymRIWKj7A8OEBnI5fWs4pc0BDGggHIOAWSbqO
DVoHSqR5QIsCLQQNCQuerKw5ZMnF8C2/R+AEiRofEGAAMP1eDRYhVhxA8KD7vRAA
cquK4veO3/ZcSKygELS+/Z5y8+vfz98sXLf/IXVXgFnBY8ohZQ1o1g0eXHBBAyKk
MMIIDUjwRwQNkBWXggqsg1DIBgx4ooIvGh7C4SWZRABCVBKM9ZZ/h3ySYoMNNFgi
jJVk+GEEAXAAQgA6hjKgkHEhKAhaBxKY4Fx0DUmUKfKk4mRRc22gTX9YypWDCj4F
AQA7
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/bg-multilogo.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAPAAAAGGCAMAAAByh/zIAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJNQTFRF////f6CwgKGwTXOGn7jE3+fr
v8/Xh6a1WHyOiKe19/n6j6y6l7K/z9vh7/P1oLnEepak5+3wp77Jr8TOwNDYprnD
x9XcsMTOkKi0Y4WVkK26t8rTb42dmLO/1+Hm+Pn69ff409zh4OjrvcvS0Nzi8PT1
6e7w6O7w3uXpssLKyNbdhZ+sqL7Jm7C7uMrTyNTa2OLnIGiUegAAJOpJREFUeNrs
XYdi6joSlTu4d5vee/3/r9sZSTa2MYTcm/sWO2j3JgQI8dG0M0V+hHzWZ33WZ33W
i8uSfdn8PXA9OdYJkZXCU4rdZryGr8I3Wc+fsWVfb7M+a+YAYAeEjH2ix4TEWtwy
iCV99caqOtYJlalPbNOWDa9tMpUze1UCQ+DLUPWxLZOBqrVNnRXf0gcCSlExKVBL
GWiGKQuaqQ4sQ7NaZ7OKqQ1iTbNkwRB8DaUbxKpgjk3BhG+tU2dcAHcgCBro88DW
YxSzHwi+DQIPQJ3H7YpB9KuOpiuDdDXV0HwZvsPPgHyMHATsW20P6IEWeERH4xU0
ELBQXp5iqkQf2INW0SpBNk3NNxWBwhaQZRmCx931wFa1gRG0SqtBfXXBkxUjhkcU
p6xlsQkeaZ5qK61y0oIse4JODdcQ7pZBLblNyw/GhqVpZgmmxqHLBoRjoU0mTDzB
GmuguEZZuqbATNqKNUMTkHwordBrOzCMwECTHZhCzTIF1RJ8QfBVI1ZaQDEt01bl
sSY8WD7CjUGpNdkW2pAR26ZOVLRYrR6zKqjENGQhBin7bfDPgeyRAPhjUC9k8Fwq
bIgvKIowbgPggWqaYwhHiqwbD9Q6IKoRCIEqWK3gHoo/ADJpKHFgPDJjwzA0zVaE
oCXcQ0fAwfgRXNM3hQAyZM0ftAfv0yWb1KeZckuqHjLQSVUIniDGlHEgq22hWYIZ
CJ6mPUML+YPanqI0htqB9kynTTvOWxCW0HhXHYDHQuYoaI9EbKiGpsIKZEOjDYmG
Oy1TUwXDNx9ySw28VqCqsdLw1MGOVdVjiE1DsL0nblozikmDrsRNLGPGGuZ+A4ZY
EGJTfqDRt8oHXZAcN5KAxOCKiC0LKit4cO01hZItY7kH9NkYy2w3ZDDkcTPdta4J
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
B8fVuKNLfZDxMUTEGwdPn+WEatQHZT93NwXGiQM7orO8HdBKGng0zZn0nT5aZLcL
znm5vC5zXT4CFcEeapGMMI/uOJxIJc07S3ue49z3BGfbqRCpM7oLRcf9fH7F4w99
1jechPzM3khs3Gz4fI+hGC+bSi85A7Pg3AuIU3IUCydmqQ2Lx3DCvDvGo1HTztPu
6en+veisrgm5Imanm0w43Qzpgz5zUSvaMQwnI9ZGCvmh8WPDRLxiRzSAU0GMuS73
tDs+GY1KA4j98/XqZDkQn4VZNfQkPOGNsInTHy2PZI5W2ndEZFvVGfEu91S8KtlU
wKvRcrSfX50NueKI6WiOJZ+ug6eh+4W6bTe83raI5tGNPUwbJpNliEJL5pvlnh4i
5TlDn0bl42izFCeFUf8rlW2DT1km9ATh5BhmbKJLU8ZwhVkvG5Xt4i0d8hpJ4++4
FHbP87DL6dMZR1xwgGkOz19FduwSciJneQtOTQdMVvtwz7O7JWT3yzmWMicbIBVL
HFNCP3be5yJOQtKetQTm0V91E3hAaMDFbnk/pMey9vz+B2Jr7jQ0OZ5RtPsRBKqk
G3YnpXhNM4ckdLrtuXXWHIdq+06CQ4T9fvUmDnPWVrm26E5DmxAdFR7IoxPQ1e3o
kjYu50yz3VDs30lSbCXgTZdKtl+T6IqrVuKlzHpZd9sZcd4+vJDeUk3uJ/c3m2qj
Sk9GLMaGI9JvO2BnRfHSGLsBtRbvfFa7vPS+S/KS3AQS3sk9uqvTJl3Gc4O86DrB
e/vVnMk5t4lCJyLeWopRDdq6v96ngP0W3axzJSZgvwxvQpsn4V1UmrfpNrxn8drP
8LK4lNw56VYlhaP81qQJz/2c1Z2PbtPtSbt4UJrhXT6IuaNW3U95xf3RPsO7qjrp
MCEtXNfbfbMr+Jb7NuJdOXngORcALsl8Q9q+Ru2HWJZ193fhze+b/WtWf/XLBHz+
VXA351/z3yf5rM/6rM/6rM/6rM/6rM/6rM/6rM/6rM/6rM/6rM9q0JruhpIkpdPf
AjfquIv1dCedfgfebc+d0Qdu71fgXXQW/NFFevCORavwurnlXoZ1b1i70q5FeC+n
tOMe2ONTnQ1fOp1tq9xzOrxcGOBpZ41fT4d14fWTNFy3SaHX6w7EI6ayu5Q9N3Px
heGC+jPp0LZYNV24DO+0l4nSpfZ8AfuWpKihgnz4ygwWezXKsG0R8KxHpqnUaah/
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
RU5ErkJggg==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=all.css
Content-Type: text/css; name=all.css
Content-Location: http://habrahabr.ru/css/1307009785/all.css
Content-Transfer-Encoding: 8bit
/* layout */
#header-wrapper {
position:relative;
/*overflow:hidden;*/
min-width:760px;
}
#wrapper {
width: 95%;
min-width: 725px;
clear: both;
margin:0 auto;
/* overflow: hidden;*/
}
#inner {
margin:0 auto;
max-width: 1200px;
}
#main-content {
float: left;
width: 66%;
clear: left;
margin-right: 2%;
/* overflow: hidden;*/
}
#sidebar {
float: left;
width: 31%;
}
/* main */
body, html {
height: 100%;
}
body {
font: .75em Verdana, sans-serif; /*12px is font-size for main content. Base font size*/
color:#000;
background:#fff;
}
a{color: #6da3bd;}
a.serv{
text-decoration:none;
border-bottom:1px solid #6DA3BD;
}
.input-row{
margin-bottom:9px;
}
a.js-serv{
border-bottom: 1px dashed #6DA3BD;
text-decoration:none;
cursor:pointer;
}
a.silentlink{
text-decoration:none;
color:#343434;
}
a.silentlink:hover{
color:#343434;
}
a:hover{ color:#4D7285;}
.hentry .content a:visited,.entry-content a:visited{
color:#990099;
}
.hentry .content a:visited:hover,.entry-content a:visited:hover{
color:#C266C2;
}
.hentry .content .habracut a:visited{
color:#6DA3BD;
}
.hentry .content .habracut a:visited:hover{
color:#939393;
}
.entry-title a.topic:visited{
color:#B0B0B0;
}
.entry-title a.topic:visited:hover{
color:#939393;
}
a img {
border:none;
}
address {
font-style:normal;
}
fieldset {border:0 solid transparent;}
input, select, textarea {
font-size: 100%;
font-family: verdana, sans-serif;
}
ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,body,html,blockquote,fieldset,dl,dt,dd,caption {margin:0; padding:0;}
ul,ol {list-style: none;}
pre,code {font-size: 1em;}
ol{list-style-type: decimal;
list-style-position: inside;
}
.published,
time{
text-transform: lowercase;
}
h1, h2, h3, h4, h5, h6 {
color:#999999;
font-family:Verdana,sans-serif;
font-weight:normal;
margin:0 0 0 0;
padding:0;
}
h1 {
font-size:162.5%;
letter-spacing:-1px;
margin-bottom:0.7em;
}
h2 {
font-size:150%;
}
h3 {
font-size: 137.5%;
}
h4 {
font-size: 120%;
}
h5 {
font-size: 110%;
}
h6 {
font-size: 100%;
}
table {border-collapse: collapse;}
blockquote {
border-left:2px solid #bbb;
margin: .83em 0;
padding-left:15px;
clear: both;
}
img[align="center"] {
display: block;
margin: 0 auto !important;
}
.hidden { display: none !important;}
.error{color:red;}
/*Header*/
/* Sligtly modified code first coded by Aleksey Rybakov (http://flack.ru/temp/habr/head.html) */
#header-inner {
margin-right:255px;
}
#nav-adv {
margin-left:240px;
}
#logo {
width:240px;
float:left;
}
#info-search {
width:255px;
float:right;
}
#logo img {
width:240px;
height:130px;
}
#main-nav {
padding-top:14px;
text-transform:lowercase;
font:1.75em 'Lucida Grande',Verdana,sans-serif; /*21px*/
}
#main-nav li {
display:inline;
margin-right:1px;
}
#main-nav li a {
position:relative;
padding:0 3px;
border-bottom:1px solid #b2b2b2;
text-decoration:none;
color:#b2b2b2;
}
#main-nav li.current a {
color: #000;
font-weight: normal;
border-bottom:none;
}
#main-nav li.current a span {
color: #F60;
font-weight: normal;
border-bottom:1px solid #000;
}
#main-nav li .top-Link {
vertical-align: top;
color: #ff9600;
letter-spacing: -1px;
}
#main-nav li .top-link span {
color: #8d8b8b;
}
/* Subnavigation (nearest menu level) */
#sub-nav {
clear: both;
margin-bottom: 20px;
}
#sub-nav li {
display: inline;
margin-right: 3px;
}
#sub-nav .create-blog, #sub-nav #recommend {
margin-left: 15px;
}
#sub-nav li a {
font-family: Arial, sans-serif;
font-size:1.083em; /*13px*/
text-decoration: none;
color:#093;
padding: 0 2px;
}
#sub-nav .current a {
color:#fff;
background-color: #ff9525;
padding: 0 5px;}
/* // Subnavigation (nearest menu level) */
/*Text advert*/
#head-text-adv {
margin: 2.5em 0 1.5em 0;
/* float: left;*/
width: 98%;
}
.profile #head-text-adv {
margin: 5em 0 0 0;
/* float: left;*/
width: 98%;
}
#main-page #head-text-adv {
margin-top: 1.2em;
}
#head-text-adv iframe {
margin: 0;
width: 100%;
}
/* // Text advert*/
#info-search {
text-align:right;
width: 255px;
font:.917em Tahoma,Verdana,Helvetica,sans-serif; /*11px*/
}
#info-search .avatar {
float:right;
width:48px;
height:48px;
margin:7px 19px 0 0;
border:1px solid #DDD;
}
#info-search dl {
float:right;
padding:11px 13px 0 0;
text-transform:lowercase;
width: 170px;
}
#info-search dl a {
color:#999;
}
#info-search dd {
margin-top:1px;
}
#info-search dt {
width: 170px;
}
#info-search dd ul {
color:#000;
}
#info-search dd ul li {
display:inline;
padding:0 5px;
background: url(/i/bg-info-search.gif) no-repeat 100% 100%;
}
#info-search dd ul li.last {
padding:0;
background:none;
}
#info-search dd ul li a {
color:#000;
}
#info-search .habrauser {
text-transform:none;
font-weight:bold;
color:#666;
}
#info-search #last-shot {margin-bottom: -1px;}
#info-search form {
float:left;
margin-top:11px;
margin-right:6px;
}
#info-search fieldset div {
float:left;
width:176px;
padding:3px;
background:#C9D6DE;
}
#info-search fieldset div input {
width:170px;
padding:1px 0 1px 3px;
}
#info-search fieldset .submit {
float:left;
width:49px;
margin:2px 0 0 5px;
}
.new-mail-indicator {margin-bottom: -1px; margin-left: 2px;}
/* Menu for unlogined visitors */
#info-search ul.guest_panel {
margin: 2em 4.2em 1em 1em;
}
#info-search ul.guest_panel li {
display: inline;
}
/* // Header */
.company_admin #sidebar{
padding-top:46px;
}
.help .company-help{
margin:0 20px 20px 20px;
}
/* Main content */
/* Горизонтальное меню над постами */
.page-navigation {
overflow:hidden;
width:100%;
clear:both;
margin-bottom: 20px;
}
ul.page-menu{
overflow:hidden;
}
.page-menu li {
width:20%;
float:left;
}
.page-menu li {
padding: 0;
text-align: center;
background: #eaecea url(/i/bg-page-nav-left.gif) no-repeat 0 0;
vertical-align: top;
}
.page-menu li.current {
background-color: #d3e2f0;
background-image: url(/i/bg-page-nav-current-left.gif);
}
.page-menu li b{
display:block;
font-weight:400;
height: 28px;
position:relative;
border-right: 1px solid #fff;
border-bottom: 1px solid #fff;
padding-top: 7px;
background: url(/i/bg-page-nav-right.gif) no-repeat 100% 0;
}
.page-menu li.current b {
background-image: url(/i/bg-page-nav-current-right.gif);
}
.unlogged-menu{
padding-left:35px;
}
.blog-menu{
}
.blog-menu
.page-menu td,
.blog-menu
.page-menu td.current{
border-bottom-width:0;
}
.top-page-menu{
padding-left:35px;
}
.page-menu {
width: 100%;
clear: both;
font-size: 1.33em;
border-collapse: collapse;
}
.page-menu td {
padding: 0;
height: 2.19em;/*35px*/
text-align: center;
background: #eaecea url(/i/bg-page-nav-left.gif) no-repeat 0 0;
vertical-align: top;
border-right: 1px solid #fff;
border-bottom: 1px solid #fff;
}
.page-menu td.last {
border-right: none;
}
.page-menu td.current {
background-color: #d3e2f0;
background-image: url(/i/bg-page-nav-current-left.gif);
border-bottom: 1px solid #d3e2f0;
}
.page-menu td div {
padding-top: .5em;
background: url(/i/bg-page-nav-right.gif) no-repeat top right;
}
.page-menu a,.page-menu label {
color: #666;
cursor:pointer;
text-decoration:underline;
}
.page-menu a:hover,.page-menu label:hover{
color:#A3A3A3;
}
.page-menu .current a,.page-menu .current label {
text-decoration: none;
color:#000;
}
#company-index .page-menu td {
background: none;
}
#company-index .page-menu td div {
background: url(/i/bg-page-nav-right-company.gif) no-repeat top right;
background: none;
}
#company-index .page-menu td div a {
color: #b2b2b2;
}
#company-index .page-menu .current div a {
color: #696969;
}
#company-index .page-menu td div .add {
margin-left: .5em;
}
.profile .page-menu .current, .profile .page-menu .own {
width: 50%;
}
body#top .page-menu .current {
border-bottom-color: #fff;
}
#company-index .page-menu td.current {
background: #f0f0e7 url(/i/corner_3.gif) no-repeat 0 0;
/* border-bottom: 1px solid #f0f0e7; */
}
.page-menu td.current div {
background: url(/i/bg-page-nav-current-right.gif) no-repeat top right;
}
#company-index .page-menu td.current div {
background: url(/i/corner_1.gif) no-repeat top right;
}
.page-menu .top img {
margin-top: .1em;
}
.page-menu #write {
height: 35px;
width: 34px;
margin: 0;
background: #fff;
}
.page-menu #write img {
margin: 0;
outline: none;
}
.page-menu sup {font-size:70%; color:#999; vertical-align:baseline; position: relative; top: -8px;line-height:0;}
/*Tabled page-menu*/
.page-menu td {
text-align: center;
}
/*2 линия*/
.page-submenu {
font-size: 1em; /*12px*/
float: left;
clear: both;
background: #D3E2F0 url(/i/bg-page-subnav-corner-bottom-left.gif) no-repeat bottom left;
border-right: 1px solid #fff;
}
.logged {
border-left: 35px solid #fff;
}
.right {
float: right;
}
.page-submenu ul {
padding: .5em 20px .5em 0;
background: url(/i/bg-page-subnav-corner-bottom-right.gif) no-repeat bottom right;
}
.page-submenu li {
display: inline;
margin: 0 0 0 10px;
}
.page-submenu li.create-new-blog {
padding-left: 25px;
background: none;
}
.page-submenu li.current a {text-decoration: none;color:#000 !important;}
.page-menu td .new,
.page-submenu li .new {
color: #390;
}
.page-submenu li a {
color: #666;
}
.page-submenu li a:hover {
color:#A3A3A3;
}
.page-submenu li .rss img {
margin-bottom: -2px;
}
/*Простые табы (без круглых уголков и т.п., см. страницу приглашения в блог)*/
.two-simple-tabs {
width: 100%;
float: left;
clear: both;
margin: 20px 0 10px 0;
font-size: 1.58em; /*19/12*/
white-space: nowrap;
}
.two-simple-tabs li {
float: left;
width: 49%;
text-align: center;
}
.two-simple-tabs li.last {
float: right;
}
.two-simple-tabs div {
padding: .5em .5em; width: 95%; margin: 0 auto;
}
.two-simple-tabs .current div {
background: #faeee2;
}
.two-simple-tabs div, .two-simple-tabs div a {
color: #999;
}
.two-simple-tabs div .new {
font: normal .89em/100% Verdana, sans-serif; /*17/19*/
color: #390;
}
.two-simple-tabs div a:hover{
color:#333;
}
/* Archive section */
.archive-navbar {
margin: 30px auto -10px auto;
text-align: center;
}
.archive-navbar a {
display: inline;
font: 2.17em/100% Verdana, sans-serif;
color: #996;
}
.archive-navbar h1 {
display: inline;
font: normal 2.17em/100% Verdana, sans-serif;
letter-spacing: -1px;
margin: 0 .8em;
color: #69c;
}
/* Информация о блоге */
/* Новые стили 24 апреля 2008 */
.blog-descr {clear:both; font-size:14px;}
.blog-text-descr {margin: 10px 0 0;}
.blog-descr .bg-top-r h3 {
clear: both;
margin-bottom: 10px;
font-size: 1.63em; /*26/16*/
font-weight: normal;
letter-spacing: -1px;
color: #999;
}
.blog-descr .bg-top-r div, .blog-descr .bg-top-r p {font-size: 14px;}
/* Админы, соавторы и читатели блога */
.blog-descr #admins ul, .blog-descr #coauthors ul {
float: left;
width: 100%;
margin: .83em 0;
text-align: center;
}
.blog-descr #admins li, .blog-descr #coauthors li {
float: left;
clear: right;
list-style: none;
margin: 0 5px;
}
.blog-descr #admins dl dt a img, .blog-descr #coauthors dl dt a img {
display: block;
margin: 0 auto;
border: 1px solid #ddd;
}
.blog-descr #admins a, .blog-descr #coauthors a {
font-size: 12px;
}
.people {
margin: 10px 0;
}
.people ul {
margin-top: 10px;
font-size: 12px;
}
.people ul li {
display: block;
float: left;
margin-right: 5px;
font-size:1em;
font-family:arial;
line-height: 130%;
}
.people ul li, .people ul li a {
color:#999;
}
.people ul li a {
padding: 0 0 0 15px;
background: url(/i/small_default_userpic.gif) 0 50% no-repeat;
}
/* // Новые стили 24 апреля 2008 */
#viva-la-w3c {
width:149%;
}
.blog-title {
overflow:hidden;
padding-top:10px;
margin-top:-20px;
min-height: 48px;
padding-bottom:8px;
padding-left:35px;
}
#viva-la-w3c .blog-title .avatar {border: 1px solid #ddd;float:left;}
.blog-info {
clear: both;
padding:35px 0 20px 0;
}
.blog-info .title a {
color: #008cd2;
}
.blog-info .title img {
border: 1px solid #ddd;
}
.blog-info .title .avatar {
margin: 0 .83em -.45em 0;
}
.blog-info #buttons {
margin-left: 10px;
white-space: nowrap;
}
.blog-info #buttons img {
margin: 0 .83em -.2em 0;
border: 1px solid #ddd;
}
.blog-info .more-info {
margin-left: 45px;
}
.blog-info .more-info .subscribers {
font-size: 1em;/*12/16*/
position: relative;
top: -.5em;
}
.blog-info .more-info .rating,
.blog-info .more-info .subscribers {
margin: .2em .1em 0 .1em;
}
.blog-panel #sidebar{
margin-top:46px;
}
.blogs #viva-la-w3c h2.blog-header {
margin-top: 0;
float:left;
margin-right:30px;
font: normal 300%/120% Verdana, sans-serif;
letter-spacing: -1px;
color:#333;
}
.blogs #viva-la-w3c h2.blog-header .silentlink{
position:relative;
display:block;
float:left;
margin-right:5px;
}
.blogs #viva-la-w3c h2.blog-header .profiled_blog{
cursor: help;width:16px;height:16px;float:left;margin-left:2px;margin-top:10px;background: transparent url(/i/icon_asterisk_24.png) left top no-repeat;
}
.blogs #viva-la-w3c h2.blog-header .edit{
display:block;float:left;margin-left:10px;margin-top:18px;
}
.blogs h2.blog-header .blog-whois{
position:absolute;
font-size:33%;
line-height:1em;
top:-5px;
right:-20px;
color:#66ccff;
}
.blogs h2.blog-header .blog-whois:hover{
color:#4890b4;
}
dl.blog-index {
float:left;
margin-right:19px;
position:relative;
}
dl.blog-index dt{
position:absolute;
width:100%;
text-align:center;
top:-6px;
font-size:83%;
color:#ccc;
}
dl.blog-index dd{
color:#CC66CC;
font-size:300%;
}
.blog-info .more-info .rating {
font-family:Arial;
font-weight: bold;
padding: 0 .2em;
color:#fff;
background-color: #d479b3;
}
.blog-about-text{
position:absolute;
padding:27px 27px 30px;
width:550px;
top:200px;
left:47%;
z-index:99;
background:#fff;
border: 1px solid #999;
}
#js-blog_info.tipBox-too-mach-right{
margin-left:-575px;
}
.blog-about-text
.close-blog-info{
position:absolute;
top:10px;
left:10px;
text-decoration:none;
color:#999;
}
.blog-about-text
.close-blog-info:hover{
color:#ccc;
}
#js-blog_info.tipBox-too-mach-right
.close-blog-info{
right:10px;
left:auto;
}
.blog-about-text h2{
color:#333;
font-size:216%;
margin:0 0 13px;
}
.blog-about-text
.blog-about-text-content{
max-height:440px;
overflow-y:auto;
}
.blog-about-text #js-admins_moderators_holder #admins img,
.blog-about-text #js-admins_moderators_holder #coauthors img,
.blog-about-text #js-admins_moderators_holder span{
display:none !important;
}
.blog-about-text #js-admins_moderators_holder h3{
clear:left;
font-size:100%;
float:left;
color:#000;
text-transform:lowercase;
margin-bottom:5px;
margin-right:5px;
}
.blog-about-text #js-admins_moderators_holder #admins,
.blog-about-text #js-admins_moderators_holder #coauthors,
.blog-about-text #js-admins_moderators_holder p{
float:left;
}
.blog-about-text #js-admins_moderators_holder p{
margin:0;
color:#ccc;
}
#js-admins_moderators_holder #admins *, #js-admins_moderators_holder #coauthors *{
display:inline;
padding:0;
margin:0;
}
.blog-about-text .blog-text-descr{
clear:left;
padding-top:6px;
}
#cool-numbers {
margin: -3.6em 0 2.5em 13.33em;
}
.blog-counts{
clear:left;
font-size:133%;
color:#999 ;
margin-bottom:10px;
}
.blog-info #description {
font-size: 1.33em; /*16/12*/
float: left;
width: 95%;
padding: 0 10px;
background: #dfe9e8 url(/i/bg-description-top-left.gif) no-repeat 0 0;
}
.blog-info #description #inner {
padding: 20px 10px;
}
.blog-info #description p {
width: 100%;
clear: both;
margin: 0 0 .83em 0;
padding: 0;
}
/* Найти в поисковых системах: Яндекс, Google, bing. */
.alter_search{padding-left:35px;}
/* List of blog admins and readers */
.blogs-search{
padding-left:35px;
}
.blogs-search
.popular-blogs{
margin-left:-2%;
}
.bloglist-suggest-form { font-size: 22px; padding:0; }
#bloglist_suggest_form_input { height: 28px; float: left; width: 99%; }
.blogs-search-side
.side-rubrikator{
padding:62px 0 17px 37px;
}
.side-rubrikator { margin: 0; line-height:200%;font-size:133%; font-family:Arial,sans-serif;}
.side-rubrikator li { margin: 0; padding: 1px 0; margin:0 6px 0 0;white-space: nowrap;color:#ccc; }
.side-rubrikator li.active{ }
.side-rubrikator li a{padding:0 4px;margin-left:-4px;}
.side-rubrikator li .side-rubrikator-counter{color:#999;}
.side-rubrikator li.active a { color: #333; text-decoration: none; background: #C5DAE5; }
/* Приглашение в блог */
/*(Таблица юзеров, их предпочтений, плюс кнопки Пригласить как читателя, как писателя etc.)*/
/*Визуал: хабраникнейм и буллет юзера слева от неё.*/
.corplist-suggest-form { font-size: 22px; padding:20px 0 0 35px;}
.corplist-suggest-form #corplist_suggest_form_input{height: 28px; float: left; width: 99%;}
.invitation .intro {
clear: both;
margin-top: 20px;
}
.h-user {
padding: 0 0 0 15px;
background: url(/i/bg-user2.gif) 0 90% no-repeat;
color:#999;
}
.td-h-user {
width: 70%;
font-family: Verdana, Arial, Helvetica, sans-serif;
vertical-align: top;
padding: 10px 0;
}
.td-h-user .avatar {
margin-left: 10px;
margin-right: 10px;
border: 1px solid #ddd;
float: left;
}
.live .td-h-user dl {
margin: 0 0 0 58px;
padding-right: 10px;
}
.td-h-user dl a {
color: #666;
}
.td-h-user dl dd {
font: .83em Verdana, sans-serif;
color: #666;
}
.td-interests {
display: inline;
}
.td-interests li {
display: inline;
font-weight: normal;
}
.candidates .controls {
padding-right: 10px;
vertical-align: middle;
text-align: center;
}
.candidates .controls li {
margin: 12px 0;
}
.candidates .controls a {
padding: 10px 0 10px 25px;
background: url(/i/corporate_icon.gif) 0 65% no-repeat;
}
.dailybest h3 sup {
font-size: 65%;
}
/* Top section, filtrator */
#filtrator {
margin: 3.33em 0;
padding-left:35px;
}
#filtrator select {
font-size: 1.67em; /*20/12*/
color: #333;
width: 100%;
}
/* // Top section, filtrator */
/* Поиск по тегам */
.tag-search {
margin: 0 0 14px;
padding-left:35px;
width: 100%;
font: 26px/36px Verdana, sans-serif;
color: #996;
}
/*
.tag-search a {height: 36px; float:left; width: 20px;}
.tag-search a img {margin: 11px 0 0 0;}
*/
.tag-search .bullet {margin: 11px 0 0 0; float:left;}
.tag-search div.rarr {height: 36px; padding-left: 10px; float:left;}
.tag-search .inpt-text {
margin: 0 10px;
padding-left:6px;
float: left;
color: #996;
border: 1px solid #996;
}
.tag-search input.inpt-text {width: 50%;}
/* Поиск habr.ru/search/ */
.people-section .corps-list{
padding-top:0;
}
.bloglist .searched-item,
.corps-list .searched-item{
background:#F0E9AA;
}
.bloglist a .searched-item,
.corps-list a .searched-item{
text-decoration:inherit;
}
.search-header {
margin: 35px 0 20px 0;
}
.search-header h1 {
margin: 0;
font: 2em/100% Verdana, sans-serif;
color: #69c;
}
.search-header form {
margin: 6px 0 0 20px;
float: left;
}
.search-header p {
float: left;
clear: both;
width: 100%;
margin: 20px 0 0 0;
}
.searched-item {
background: #fffacd;/* Выделение поискового запроса в тексте выдачи*/
}
.search-results {
margin-top:30px;
overflow: hidden;
}
.search-results
.search-content-pad{
padding-left:35px;
}
.search-results
.items{
padding-left:35px;
}
/*Меню фильтрации результатов поиска*/
.search-results-bar {font-size: 1em; margin-bottom: 30px;}
.search-results-bar h2, .search-results-bar #sub-nav {
display: inline;
float: none;
}
.search-results-bar h2 {margin-right: 10px;}
/*Выдача найденных комментариев*/
.search .items {
margin: 30px 0 0 0;
}
/* Выдача найденных компаний */
.searched-companies {margin-top: 40px; clear: both;}
.searched-companies .item {margin-bottom: 20px;}
.searched-companies .summary {
margin: -20px 0 0 40px;
}
.searched-companies .summary .name a {
font: 2em/110% Verdana, sans-serif;/*24/12*/
letter-spacing: -1px;
color: #aeaeae;
}
.searched-companies .summary .ceo,
.searched-companies .summary .url {
margin: 5px 0;
}
.search .tag-search {
margin: 60px 0;
}
.search .tag-search .inpt-text {
width: 100%; margin: auto 0;
}
.search .tag-search .inpt-btn {
margin: 20px 0;
background: #996;
color: #fff;
}
.live-block-page,
.mail-page-content{
padding-left:35px;
}
.user_profile_edit_holder{
padding-left:35px;
}
.profile #main-content .userinfo,
.company #main-content .userinfo {
width:auto;
padding-left:35px;
}
.profile #main-content .user-recommend-user{padding-left:35px;}
.profile #main-content .items,
.profile #main-content .live{
margin-left:35px !important;
width:auto;
}
.site-settings{
padding-left:35px;
}
#main-content
.hentry
.summary{
margin-left:35px !important;
}
.profile #main-content .items
.entry-title ,
.profile #main-content .items
.content,
.profile #main-content .items
.entry-info{
padding-left:0;
margin-left:0;
}
.profile #main-content .items
.tags{
margin-left:0;
}
.i-am-your-father-luke{
padding-left:35px !important;
}
#js-topic-form-title{
padding-left:35px;
}
#js-topic-form-swither{
padding-left:35px;
}
#js-topic-form-holder,.add-new-blog #main-content{
padding-left:35px;
}
.job-content,
.fans-content,
.d-block{
padding-left:35px;
}
#comments{
padding-left:35px;
}
/* Пост в блоге */
div.hentry {
width: 100%;
float:left;
clear:both;
margin: 0 0 40px;
}
div.hentry
.page-menu,
.message-page-menu{
margin-bottom:30px;
}
.message-page-menu{
padding-left:35px;
width:auto;
margin-bottom:0;
}
.message-page-menu li{
width:50%;
}
h2.single-entry-title{
padding-left:35px;
}
h2.inbox-message-header{
color:#000 !important;
margin-top:27px;
margin-bottom:7px !important;
}
h2.entry-title {
font: 2.167em/118% normal Verdana, Tahoma, sans-serif; /*26px*/
margin-bottom: 20px;
color: #767676;
padding-left:35px;
padding-right:30px;
}
h2.entry-title span{
color:#333;
}
.post h2.entry-title {
clear: both;
font: 2.833em/110% Verdana, sans-serif; /*34/26*/ /*Размер заголовка в посте раздела Персональные*/
}
.post .personal h2.entry-title,
.post .podcast h2.entry-title {
color: #c99; /*Цвет заголовка в посте раздела Персональные*/
}
.post .translation h2.entry-title {
color: #c99; /*Ц. з. в переводном посте раздела Персональные*/
}
.post .corporative h2.entry-title {
color: #8277a3; /*Ц. з. в посте раздела Корпоративные*/
}
.post .link h2.entry-title {
color: #749f79; /*Ц. з. в переводном посте раздела Персональные*/
padding-left: 28px;
}
.entry-title a {
color: #666;
}
.entry-title a:hover{
color:#A3A3A3;
}
.entry-title a.blog {
color: #6da3bd;
}
.entry-title a.blog:hover{
color:#4D7285;
}
.entry-title .profiled_blog{cursor: help;padding:0 8px;height:16px;margin-left:5px;font-size:19px;background: transparent url(/i/icon_asterisk_16.png) left top no-repeat;}
.corporative .entry-title a.blog {
color: #8277a3;
}
.corporative .entry-title a.blog:hover{
color:#ABA4C2;
}
.entry-title .remove {
margin: 0 0 0 10px; /*Удаление из избранного*/
}
/* Стили для топика-события */
.vevent .entry-title {margin-bottom: 10px;}
/*
.vevent .entry-title a {color:#666; text-decoration:none;}
.entry-title a.event-name {padding: 0 .3em .1em .3em; color:#f0f0e7 !important; background: #8bb0ad; }
*/
.vevent .summary {
margin-bottom: 20px;
padding: .1em 10px;
font: 14px/140% Arial,sans-serif;
color:#666;
background:#f0f0e7;
}
/* Стили для основного контента внтури любой записи блога */
.comments {
position:relative;
}
.hentry .content {
font: 1.083em/1.54em Verdana, sans-serif;/*13px*/
margin-left: 35px;
margin-bottom:0.83em;
overflow:hidden;
}
.hentry .content,
.tags,
.entry-info {
margin-left: 35px;
}
.comment_holder {
float:left;
width:100%;
}
.hentry .hentry {
margin-left:20px;
}
.hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry .hentry {
margin-left:0;
}
.hentry .reply_form .js-field-holder,
.hentry .reply_form .help_holder,
.hentry .reply_form .comment-help{
padding-left: 20px;
}
.msg-meta {
position:relative;
}
li:hover > .msg-meta > .folding-dot-holder{
display:block;
}
.msg-meta
.folding-dot-holder{
display:none;
position:absolute;
top:0;
left:0;
width:1px;
height:1px;
}
.msg-meta
.folding-dot{
width:500px;
height:5px;
background:red;
right:0px;
top:11px;
position:absolute;
background: url(/i/bg-folding-dot-light.png) repeat-x 100% 0;
}
.new-reply {
background: #E8E8FF;
}
.new-reply-old {
background: #F3F3FF;
}
.my-reply {
background: #FDF5E6;
}
.hentry .content p,
.profile .summary p, .profile .summary img,
.user-flow .summary p, .user-flow .summary img
{
margin: 0 0 .83em 0;
}
.hentry .content img[align=left] {
margin-right: 30px;
margin-top: 5px;
margin-bottom: 5px;
}
.hentry .content img[align=right] {
margin-left: 30px;
margin-top: 5px;
margin-bottom: 5px;
}
.hentry .content img {
max-width: 100%;
vertical-align:bottom;
}
.hentry .content pre {
white-space: pre-wrap;
white-space: -o-pre-wrap;
}
.hentry .content table {
clear: both;
width: 100%;
margin: 1.5em 0;
border: 1px solid #ccc;
}
.hentry .content table caption {
text-align: left;
text-indent: 1em;
}
.hentry .content table td, .hentry .content table th {
padding: .3em;
border: 1px solid #ccc;
}
.hentry .content ol, .hentry .content ul,
.profile .summary ul, .profile .summary ol,
.user-flow .summary ul, .user-flow .summary ol,
.info-page ul {
margin: 1.5em 1em 1.5em 3em;
padding: 0;
}
.hentry .content ol,
.profile .summary ol,
.user-flow .summary ol {
list-style: decimal;
}
.hentry .content ul,
.profile .summary ul,
.user-flow .summary ul,
.info-page ul {
margin-left: 2.65em;
list-style: disc;
}
.habraplayer {
margin-bottom: 10px;
}
.info-page { padding-left: 35px; }
ul#xsidebar {
width:32px;
float:right;
position:fixed;
top:43%;
right:0;
background:#999999;
}
ul#xsidebar.left {
left:0;
}
ul#xsidebar .mover {
padding: 0px;
text-align: center;
}
ul#xsidebar .mover a {
color: #dddddd;
text-decoration: none;
}
ul#xsidebar li {
padding-top: 2px;
padding-bottom: 2px;
padding-left: 2px;
}
/* Refresh comments button */
ul#xsidebar #refresh-comments-button .new-messages {
text-align: center;
}
ul#xsidebar #refresh-comments-button a.button {
display: block;
height: 29px;
width: 28px;
background:url(/i/comments/bar/refresh.gif) no-repeat left top;
}
ul#xsidebar #refresh-comments-button a.button:hover {
background:url(/i/comments/bar/refresh.gif) no-repeat left bottom;
}
ul#xsidebar #refresh-comments-button a.button.loading {
background:url(/i/comments/bar/refresh-loading.gif) no-repeat left top;
}
ul#xsidebar #refresh-comments-button a.button.loading:hover {
background:url(/i/comments/bar/refresh-loading.gif) no-repeat left top;
}
ul#xsidebar #refresh-comments-button .divider {
border-top: solid 1px #5c5c5c;
border-bottom: solid 1px #dddddd;
width: 28px;
height: 0px;
margin-top: 1px;
}
ul#xsidebar #refresh-comments-button .new-messages {
text-align: center;
}
ul#xsidebar #refresh-comments-button .new-messages a.count {
color: white;
text-decoration: none;
font-weight: normal;
display: block;
padding: 4px 0px;
}
ul#xsidebar #refresh-comments-button .new-messages a.count:hover {
color: #ffff55;
}
.tags {
padding: .2em 0 .1em 18px;
clear:both;
list-style: none;
background: #fff url(/i/bg-tags2.gif) no-repeat 0 50%;
}
.tags li {
display: inline;
}
.tags li a {
font-size: .83em; /*10px*/
}
.tags li a{
color: #666;
}
.tags li a:hover {
color:#A3A3A3;
}
.entry-info {
font: .75em/2em Arial, sans-serif; /*9px/16px*/
margin-top: 2.22em; /*20*/
float:left;
clear: both;
padding: 0 0 5px;
border: 1px solid #e5e5e5;
z-index:20;
position:relative;
}
/* Rounded corners */
/*.corners {
clear:both;
height:5px;
}*/
.corner {
width:5px;
height:5px;
overflow:hidden;
position:absolute;
font-size:0;
}
.tl {
float:left;
left:-1px;
top:-1px;
background:url(/i/icos/entry-info-t-l.gif) no-repeat 0 0;
}
.tr {
float:left;
right:-1px;
top:-1px;
background:url(/i/icos/entry-info-t-r.gif) no-repeat 0 0;
}
.bl {
float:left;
left:-1px;
bottom:-1px;
background:url(/i/icos/entry-info-b-l.gif) no-repeat 0 0;
}
.br {
float:left;
right:-1px;
bottom:-1px;
background:url(/i/icos/entry-info-b-r.gif) no-repeat 0 0;
}
.entry-info-wrap {clear:both;padding-left:0.56em;}
.entry-info-wrap .novote {margin-left:5px;}
.entry-info .entry-info-wrap div {
padding: 5px .56em 0;
margin-right: 12px;
float: left;
}
.entry-info div.voting {
padding:0 0 0 3px;
margin-left:-0.56em;
}
.entry-info div.voting div {margin-right: 0;}
.entry-info div.voting .mark {
padding:5px .1em 0;
font-size: 1.3333em; /*12/9*/
font-weight: bold;
color: #a9a9a9;
}
.entry-info div.voting .mark a{
color:#6DA3BD;
}
.entry-info div.voting .mark a:hover{
color:#4D7285;
}
body.guest .entry-info div.voting .mark a{
color:#999;
cursor:default;
}
.entry-info div.positive .mark {
color: #390;
}
.entry-info div.negative .mark {
color: #c00;
}
.entry-info div.voting a.vote_plus, .entry-info div.voting span.vote_plus,
.entry-info div.voting a.vote_minus, .entry-info div.voting span.vote_minus {
margin:1px 3px 0;
float:left;
width:11px;
height:15px;
font-size:0;
}
.entry-info div.voting div {
height: 12px;
border: none;
}
.entry-info div.voting .vote_plus {
background:url(/i/icos/icons_vote_posts.gif) no-repeat left bottom;
}
.entry-info div.voting .vote_minus {
background:url(/i/icos/icons_vote_posts.gif) no-repeat -11px bottom;
padding-right: 0 !important;
}
body.guest .entry-info div.voting .vote_plus,
.entry-info div.voting.expired .vote_plus,
.entry-info div.voting.mine .vote_plus{
background:url(/i/icos/icons_vote_posts.gif) no-repeat -22px top;
cursor:default;
}
body.guest .entry-info div.voting .vote_minus,
.entry-info div.voting.expired .vote_minus,
.entry-info div.voting.mine .vote_minus {
background:url(/i/icos/icons_vote_posts.gif) no-repeat -22px bottom;
cursor:default;
}
.entry-info div.voting.mine a,
.entry-info div.voting.no_auth a,
.entry-info div.voting.voted a {
cursor: default;
}
.cannot-vote {
display: none;
}
.entry-info div.voting.mine .cannot-vote,
.entry-info div.voting.no_auth .cannot-vote,
.entry-info div.voting.voted .cannot-vote,
.entry-info div.voting.expired .cannot-vote {
display: block;
}
.entry-info div.voting.mine .can-vote,
.entry-info div.voting.no_auth .can-vote,
.entry-info div.voting.voted .can-vote,
.entry-info div.voting.expired .can-vote {
display: none;
}
.entry-info div.voting.voted_plus a.vote_plus, .entry-info div.voting.voted_plus span.vote_plus {
background:url(/i/icos/icons_vote_posts.gif) no-repeat left top !important;
}
.entry-info div.voting.voted_minus a.vote_minus, .entry-info div.voting.voted_minus span.vote_minus {
background:url(/i/icos/icons_vote_posts.gif) no-repeat -11px top !important;
}
.entry-info div a {
text-decoration: none;
font-weight: 700;
}
/* Fav star */
ul.hentry .fav_added a,
ul.hentry .to-favs a,
.entry-info .to-favs a,
.entry-info .fav_added a {
background: url(data:image/gif;base64,R0lGODlhDwAaAOZ/APr7/LnO3bXL2uK7Vvz58NLu9friZ/z69arD0tXl7eHr8uL1+tLv89v09921Uf3phfzjcMra5dvl68nX4ef1+fz589rt9e79/+v7/Ka+zs7h6tny9d3EmqjAz+rQc+ft8d/1+PTjttSycvb///f6+/vx0rzR3vL2+P/////4rub5+/3qjf/zlu/0+fH5/MmdQtLh7PfYWP3oe83a4u/jzdi9ke3Ma8aaSbvN2r/T4PXdfunXs+LGivHWh/jbWuT4+a7K2dy2X8qbO8PW4sTc6fjaX/bUU/fUXOr6+9+5Y9bx89u1V//ukOLz9v/2usfV3uTAZ/z369GmQv/yr9yyRNDr9c3r87+RPP/4pPjgbPHWfOfCW8ygQ/zsl+jMc+jKeN719vLZgPjdXPP//7nL19yzUP/wjdCtbvzmcuXIb///x9Ho8vjkou/WgJy3x/HUafznd/nlh9WmPLXQ3fv48t67XdDj7P3pgPnx4Mrd6fjcWtewW/fw3/z46+LCcwAAACH5BAEAAH8ALAAAAAAPABoAAAf/gH+Cgy0KLYOIiTAuMImOJBEoESSOiAoJIwkKjkMmAZ8UF00CpAI5gjkuIxhIKio/CyAYFAGCJwEJYz9gDRsNFxoCJ4MAESYgSgwMGwETAIkACAwFDQVWGc+JEnMFC3YLVUASjjhrFgg4CBZEZI4dGh0ffx8ZeW6OMzPZfwATT5WCSrApARBRDyc9CgrqY0ONjSgKQ4RJoSVEIgJfBmgcsIJFHAcgy/ghQADKlBRMVjy4IwMOBDNdghD4gydJGywyIBjYycLDHj6DDvCog0aMHh9ZlvCokKiClBg+IMQwIoSOox1Uijzw8OCInB2ORLzRwUXECx1bzghCMeiFlxs0EP7QuJHmiiMOHA4ErVFjUCAAOw==) no-repeat;
}
.entry-info .to-favs,
.entry-info .fav_added { padding-top: 3px; margin-right: 0 !important; padding-right: 0 !important; }
.entry-info .to-favs a,
.entry-info .fav_added a {
display: block;
margin-top:2px;
width:15px;
height:13px;
font-size:0;
background-position: left top;
}
.entry-info .to-favs a:hover,
.entry-info .fav_added a {
background-position: left bottom;
}
.entry-info .published{
margin-left:-2px;
}
.entry-info .published a, .entry-info .mark-as-spam a {color:#369;}
.entry-info .published a {
display: block;
padding-left: 17px;
background: url(/i/bg-published2.gif) no-repeat 0 50%;
}
.entry-info .published a:hover {
background-image: url(/i/bg-published2.gif);
}
.entry-info .vcard a {
color:#CF0000;
padding:2px 0 3px;
background:transparent;
}
.entry-info .vcard.full a{
padding-left:17px;
background: url(/i/bg-user2.gif) no-repeat 0 50%;
}
.entry-info div.author {
}
.entry-info div.vote-for-user{
padding: 8px 0px 3px;
}
.entry-info div.vote-for-user a,
.entry-info div.vote-for-user span{
background:#74C262;
color:#fff;
display:block;
line-height:1em;
font-size:1em;
}
.entry-info div.vote-for-user a{
width:11px;
height:12px;
background:#74C262 url(/i/bg-user-vote-up.gif) no-repeat 50% 2px;
}
.entry-info div.vote-for-user a:hover{
background-color:#96D189;
background-position:50% -8px;
}
.entry-info div.vote-for-user span{
padding:1px
}
.entry-info div.comments {margin-right: 5px;}
.entry-info a {
color:#CF0000;
}
.entry-info a:hover {
color: #F17D7D;
}
.entry-info1 .vcard a:visited{
color:#F17D7D;
}
.entry-info1 .vcard a:visited:hover{
color:#CF0000;
}
.entry-info .comments a {
display: block;
margin-top:-1px;
padding: 1px 0 0px 17px;
background: url(/i/bg-comments2.gif) 0 70% no-repeat;
}
.entry-info .comments a .new {
color: #390;
}
.entry-info .comments a:hover .new {
color: #85C266;
}
.entry-info original-author{
max-width:100px;
}
.entry-info .original-author a,
.entry-info .downloaded a,
.entry-info .link a
{
padding-left: 8px;
background: url(/i/bg-author-link.gif) no-repeat 0 .08em;
}
.entry-info .twitter { margin-right: -2px !important; }
.entry-info .twitter a { display: -moz-inline-stack; display: inline-block; background: url(/i/bg-icon-twitter.gif) 0 0 no-repeat; width: 14px; height: 16px; position: relative; top: 1px; }
.entry-info .facebook { opacity: 0.5; }
.entry-info .facebook:hover { opacity: 1; }
.entry-info .facebook a { display: -moz-inline-stack; display: inline-block; background: url(/i/bg-icon-facebook.png) 0 0 no-repeat; width: 14px; height: 16px; position: relative; top: 1px; }
/** icons for topics **/
.translation .topic,.podcast .topic,.link .topic {
padding-left:29px;
background: no-repeat 0 6px;
}
.translation .topic{
background-image: url(/i/translation_icon2.gif);
}
.podcast .topic{
background-image: url(/i/podcast_icon2.gif);
}
.link .topic{
background-image: url(/i/link_icon2.gif);
}
.corporative .blog {
background: #fff no-repeat 0 60% ;
}
.podcast .topic,
.post .podcast h2.entry-title {
/* background: #fff url(/i/podcast_icon2.gif) 0 60% no-repeat;*/
}
.podcast .topic{
background-image: url(/i/podcast_icon2.gif);
}
.podcast .details {
font: .5em/1.92em Arial,sans-serif;
color:#767676;
white-space:nowrap;
letter-spacing:-1px;
}
/* .personal .topic {
color: #c99;
} */
.link .topic,
.post .link h2.entry-title {
color: #749f79;
/*background: #fff url(/i/link_icon2.gif) 0 60% no-repeat;*/
}
.link .topic:hover,
.post .link h2.entry-title:hover{
color:#84B18A !important;
}
.link .topic:visited,
.post .link h2.entry-title:visited{
color:#A3C0A7 !important;
}
.link .topic:visited:hover,
.post .link h2.entry-title:visited:hover{
color:#84B18A !important;
}
/*Опросы*/
.poll {margin-top:2em;}
.poll:first-child {margin-top:0em;}
.poll dl {
float: left;
clear: both;
width: 100%;
border: .5em solid #fff;/*<- just a little trick*/
}
.poll dl dt {
float: left;
width: 12%;
font-size: 97.6%;
text-align: right;
margin-left: -20px;
color: #ccc;
}
.poll dl dt strong {
color:#404040;
text-align: right;
}
.poll dl dd {
width: 87%;
float: left;
margin-left: 20px;
}
.poll .total {
font-size: 97.6%;
clear: both;
margin-top: 1em;
color: #999;
}
.poll fieldset {
}
.poll table.answer-container {
margin: 0;
margin-bottom: 10px;
border: none;
}
.poll .answer-container td.input, .poll .answer-container td.label {
border: none;
padding: 5px 0;
}
.poll .answer-container td.input {
width: 25px;
}
.poll .answer-container input {
padding: 5px 0;
}
/*обёртка для блока с вариантами ответа*/
.poll-item {
float: left;
clear:both;
width: 100%;
margin-bottom: 20px;
}
.poll-item h3 {
margin-bottom: 5px;
color: #666;
}
.poll-item dl {
margin: 0;
padding:0;
}
.poll-item dd div {
height: 5px;
background: #dadacd;
}
.poll-item dd div.winner {
background: #7fa0b0;
}
.sphinx-baner{
line-height:2em;
margin-bottom:33px;
}
/* Внутренний голос */
.i-am-your-father-luke {
display: block;
clear:both;
padding:.6em 0;
border: none;
font: normal 40px/110% Arial,sans-serif;
color: #cc9;
letter-spacing: -2px;
}
/* НЛО прилетело и написало */
.ufo-was-here {
margin-left:35px;
margin-bottom: 20px;
font: normal 16px/110% Verdana,sans-serif;
color:#666;
}
/*Класс для подзамочных записей*/
.locked {
padding-left: 28px;
background: #fff url(/i/lock.gif) no-repeat 5px 65%;
}
.double_locked {
padding-left: 43px;
background: #fff url(/i/double-lock.gif) no-repeat 5px 60%;
}
.hentry .edit img, .user-vacancies .edit img, .profile-title .edit img,
.blog-title .edit img {
border: 1px solid #ccc;
margin-bottom: -2px;
}
.profile-title .edit img {margin-bottom: 0; }
/*Листалка по страницам*/
/* Вперёд-назад */
.page-nav {
overflow:hidden;
clear: both;
margin: 1.88em 0 .63em 0;
}
.company .live .page-nav {
margin: 0;
padding: .83em 1.67em;
width: 80%;
}
.next-prev {
font:2em/100% Tahoma, sans-serif;
color:#000;
}
.next-prev li {
display: inline;
padding-right: .3em;
}
/* Список предыдущих страниц */
#nav-pages {
font: 1.2em/100% arial;
padding: 0 1em 2em 0;
margin: 1em 0;
list-style: none;
clear: both;
}
#nav-pages li {
float: left;
}
#nav-pages a, #nav-pages em {
margin:0 0.2em 0 0.1em;
padding: .3em .4em;
display: block;
}
#nav-pages a:hover{
background:#c5dae5;
}
#nav-pages em {
background:#7A9BAC;
font-weight: 400;
font-style: normal;
color: #fff;
}
.blogs
#main-content
.page-nav,
.company
#main-content
.page-nav,
.profile
#main-content
.page-nav,
.users-list-container{
padding-left:35px;
}
/*Страница со всеми тегами*/
.all-tags-page #main-content {
width: 100%;
margin-bottom:120px;
}
.all-tags-page #main-content h2 {
font: 26px/110% Verdana, sans-serif;
color: #999;
margin-bottom: 10px;
}
#cloud-for-blogs, #cloud-for-comps {width: 49%;}
#cloud-for-blogs {
float: left;
}
#cloud-for-comps {
float: right;
}
/*Страница со всеми тегами*/
/*// Main content*/
/* Sidebar. Right column */
.banner {
margin: 0 auto 20px auto;
width: 240px;
height: 400px;
clear:both;
}
.context-note {line-height:150%;}
/* Live section */
.live {
font-size:1em; /*12px*/
font-family:tahoma,arial;
float: left;
width: 100%;
margin: 0 0 20px;
background: #f0f0e7 url(data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIFjA8QqVwAOw==) no-repeat 0 0;
}
.live p {
margin-left: 20px;
margin-right: 20px;
}
.live dl {
margin: 0 1.67em .42em 1.67em;
}
/* Похожие публикации. Переписать эту лажу. Наложение со стилями из forms.css */
.live .similar-posts div {margin: 0 0 20px 0;}
.profile .live .similar-posts div {margin: 0 20px 20px 20px;}
.profile .live .similar-posts div dl {margin: 0 0 .42em 0;}
.profile .live .similar-posts div dl dt a {padding:0; background-image:none;}
.live h3,
#top-flooders h3 {
font-size: 2em; /*28px*/
font-weight: normal;
line-height: 1.1em;
letter-spacing: -1px;
text-decoration: none;
margin:0 0 .71em .71em;
padding-top: .54em;
color: #999;
background: url(data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIGjANgqRwFADs=) no-repeat top right;
}
.live dt,
.live dd,
.live dd dl,
.live dl dd dl dt {
margin: 0;
display: inline;
color:#999;
}
.live dl.air-comment{
padding:2px 0;
margin:0 1.67em 0.42em !important;
}
.live span.who a, .live .where, .live .topic {
margin-bottom: 1ex;
line-height: 1.35em;
}
.live .who {
padding-left: 17px;
background: url(/i/bg-user2.gif) 1px 50% no-repeat;
display: inline;
}
.live .who a, .live .where {
color:#999;
}
.live .topic {
color:#666;
}
/* Live' links behaviour */
.live .total {
color: #C00;
}
.live .all {
position: relative;
top: 0;
right: 0;
margin: 0 .83em .83em 0;
text-align: right;
color:#999;
}
/*Rounded corners*/
.live .bg-top-r {
background: url(data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIGjANgqRwFADs=) no-repeat top right;
float: left;
width: 100%;
}
.live .bg-bott-l {
background: url(data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIGhGOAGt0FADs=) no-repeat bottom right;
float: left;
width: 100%;
}
.live .bg-bott-r {
float: left;
width: 100%;
background: url(data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIFDG6YwVEAOw==) no-repeat bottom left;
}
.live .bg-top-r,.profile .live div.bg-top-r{
margin-left:0 !important;
background: url(data:image/gif;base64,R0lGODlhBAAEAIAAAPDw5////yH5BAAAAAAALAAAAAAEAAQAAAIGjANgqRwFADs=) no-repeat top right;
}
div.live .bg-top-r, div.live .bg-top-r div{
margin-bottom:0 !important;
}
/* // Live section */
/* Best Writers */
.best_writers{}
.best_writers ul{margin: 0 1.67em 1.67em}
.best_writers ul li{overflow:hidden;margin-bottom:10px;}
.best_writers ul li:last-child{margin-bottom:0px;}
.best_writers ul li .avatar{float:left;margin-right:10px;display:block;border:1px solid #999;}
.best_writers ul li .login{float:left;display:block;margin-right:10px;margin-top:3px;}
.best_writers ul li .name{float:left;display:block;font-size:91%;color:#666666;margin-top:5px;}
/* Tag cloud */
.tag-cloud {
float: left;
width: 90%;
padding: 0px;
margin-top: 10px;
margin-bottom: 10px;
margin-left: 5%;
margin-right: 5%;
text-align: center;
}
.profile .tag-cloud {
width: 98%;
float:none;
margin:0 auto;
}
.tag-cloud ul {
white-space: normal;
}
.tag-cloud ul,
.tag-cloud ul li {
display: inline;
}
.tag-cloud a {
font-size: .83em;
color: #369;
text-decoration: none;
line-height:1.4em;
}
.tag-cloud a:hover {
color: #85A3C2;
}
/* .tag-cloud a {white-space:nowrap;}*/
.tag-cloud a.w1 { font-size: 80%; }
.tag-cloud a.w2 { font-size: 100%; }
.tag-cloud a.w3 { font-size: 120%; }
.tag-cloud a.w4 { font-size: 140%; }
.tag-cloud a.w5 { font-size: 160%; }
.tag-cloud a.w6 { font-size: 180%; }
.tag-cloud a.w7 { font-size: 200%; }
.tag-cloud a.w8 { font-size: 220%; }
.tag-cloud a.w9 { font-size: 240%; }
.tag-cloud a.w10 { font-size: 260%; }
/* // Tag cloud */
/* Ratings (companies, blogs) */
.rating table {
font-size: 1.33em; /*16px*/
width: 90%;
clear: both;
margin:0 0 0.71em 1.2em;
border:none;
border-collapse: collapse;
}
.rating table td {
font-family: Arial, sans-serif;
vertical-align: middle;
padding: .3em 0;
}
.rating table th {
font-size: .75em; /*12px*/
font-weight: normal;
padding-bottom: .5em;
letter-spacing: -1px;
color: #999;
}
.rating table td {
/*padding-left: 5px;*/
}
.rating .title a {
font: bold .94em/1.13em 'Lucida Grande', Verdana, Sans-Serif;
color:#666;
}
.rating .title a:hover{
color:#A3A3A3;
}
.rating .karma-value {
font-size:.94em;
font-family:arial;
text-align: center;
color:#6c6;
font-weight:bold;
}
.rating .value {
text-align: center;
}
.rating .value span {
font: normal normal bold .88em Arial, sans-serif;
padding: .1em .5em;
color: #CC66CC;
}
div.companies .value span{
color:#CC66CC;
}
.company .rating .title a {
font-size: 1.25em; /*20/16*/
font-weight: normal;
}
.company .rating .title a.new-feedback {
font-size: 11px;
}
.company .first {
margin-top: 0;
background-image: none;
}
/* // Ratings (companies, blogs) */
/* Jobs */
.jobs {
width: 100%;
}
.jobs dl dt a {
font: 1.17em Arial, sans-serif; /*12/14*/
color: #663;
}
.jobs dl dt a:hover{
color:#A3A350;
}
.jobs dl dt a:visited{
color:#BEBE84;
}
.jobs dl dt a:visited:hover{
color:#A3A350;
}
.jobs dl dd {
font: bold 1.33em/1.4em Arial, sans-serif; /*12/16*/
padding: 0 .2em;
display:inline;
white-space: nowrap;
color: #fff;
background: #99cccc;
}
.live .job_item dt,
.live .job_item dd {
display: inline;
}
/*// Jobs*/
/*Top flooders*/
#top-flooders {
font-size: .83em; /*10/16*/
clear: both;
width: 100%;
margin: 10px 10px 10px 20px;
}
#top-flooders h3 {
font-size: 280%;
margin-left: 0;
}
#top-flooders dl, #top-flooders dl dt, #top-flooders dl dd {
margin: 0;
padding: 0;
}
#top-flooders dl {
margin-bottom: 15px;
}
#top-flooders dl .flooder {
margin: -2.5em 10px 1em 3em;
}
#top-flooders dl dd dl dt a {
color:#999;
}
#top-flooders dl dd dl dt a:hover{
color:#333;
}
.flooder dd a {
line-height: 140%;
color:#f60;
}
/* // Top flooders */
/* Calendar */
.calendar-table table {
font-size: .92em; /*11/12*/
font-family: Arial, Helvetica, sans-serif;
margin: 5px 0;
text-align: center;
}
.calendar-table th {
font-weight: normal;
}
.calendar-table .date {
font-size: 160%;
/*font-weight: bold;*/
color: #999;
}
.calendar-table .nav th, .calendar-table .nav td {
padding-bottom: 5px;
}
.calendar-table .nav a {
color: #909090;
font-weight: bold
}
/* // Calendar */
/* // Sidebar. Right column*/
/* Карма. Общие стили для таблиц */
.starr {
padding-right: 15px;
background: url(/i/starr.gif) right 70% no-repeat;
}
.rating-dyn {
font-size:.75em;
font-family:arial;
line-height: 110%;
text-align: center;
}
.up {
color:#33cc00;
}
.down {
color:#ff0033;
}
/*Прилепляем футер книзу, введя див-обёртку, охватывающую всё кроме подвала*/
#nonFooter {position: relative;min-height: 100%;}
* html #nonFooter {height: 100%;} /*для IE*/
.footerest #wrapper {padding-bottom: 10em;}
.footerest #footer {position: relative;margin-top: -9em;}
/* Comments */
/* Форма отправки коммента (или отзыва о компании) */
.add-comment {
float: none;
clear: both;
width: 100%;
margin-top: 10px;
padding-bottom:5px;
}
.add-comment h3 {
padding: 0 0 0 20px;
/*margin: 0 0 10px;*/
margin: 0;
font: 1.67em Verdana, sans-serif; /*20/12*/
letter-spacing: -1px;
color: #afa56a;
background: url(/i/add_comment.gif) 0 .5em no-repeat;
}
.add-comment > div,
.comment_holder .reply_form
{
position: relative;
}
.add-comment h3 a {color: #afa56a;text-decoration:none; border-bottom: 1px dashed #afa56a;}
.add-comment dl,
dl.comment-help {
float: left;
width: 100%;
font: .92em/100% Arial, sans-serif; /*11/12*/
/*padding: 10px 0;*/
}
dl.comment-help{
padding-top:0;
}
.add-comment dt,
.add-comment dd,
dl.comment-help dt,
dl.comment-help dd {
float: left;
}
.add-comment dt img,
dl.comment-help img {
border: 1px solid #ddd;
}
.add-comment dd,
dl.comment-help dd {
margin: 5px 0 0 10px;
color: #999;
}
.add-comment dd .name,
dl.comment-help dd .name {
font: 1em Tahoma, sans-serif;
font-weight: 700;
color:#666;
}
.add-comment dd span ,
dl.comment-help dd span{
margin-left: 5px;
}
dl.comment-help dd span{
position: absolute;
right: 0px;
top: -8px;
z-index: 3000;
}
.add-comment form {
clear: both;
width: 100%;
}
.reply_form form {
clear: both;
width: 99%;
margin-bottom: 10px;
}
.add-comment input,
.reply_form input {
margin: 10px 0;
}
.add-comment textarea,
.reply_form textarea {
border: 1px solid #c8d2df;
width: 99%;
resize: none;
outline:none;
}
.editor .add-comment textarea,
.editor .reply_form textarea{
border: 0px solid #c8d2df;
}
.add-comment .post,
.reply_form .post {
margin-left: 7px;
}
.add-comment .js-field-error-msg { color:#ff0000; }
/* // Форма отправки коммента (или отзыва о компании) */
#comments {
clear: both;
overflow:hidden;
}
.comments-header-mail{
display:none;
}
.comments-header-visible{
display:block;
}
#comments h2.comments-header {
margin: 0px 0 20px;
padding-left: 23px;
font: normal 1.67em/105% Verdana, sans-serif; /*20/12*/
letter-spacing: -1px;
color: #afa56a;
background: #fff url(/i/comments.gif) 0 90% no-repeat;
}
ul.hentry {clear: both;width: auto;}
ul.hentry ul.author{
overflow: hidden;
}
ul.hentry ul.author
li{
vertical-align:baseline !important;
}
ul.hentry ul li{
line-height:18px;
}
ul.hentry .avatar {
float: left;
width:24px;
height:24px;
list-style: none;
position:relative;
margin-right:10px;
}
ul.hentry .avatar b{
position:absolute;
top:0;
left:0;
height:24px;
width:24px;
background:url(/i/bg_avatar_mask_mini.gif) no-repeat 0 0;
}
ul.hentry .avatar img {
display:block;
height:24px;
width:24px;
}
ul.hentry .fn,
ul.hentry .date,
ul.hentry .bookmark,
ul.hentry .to-favs,
ul.hentry .fav_added,
ul.hentry .up-to-parent,
ul.hentry .down-to-child,
ul.hentry .vote-for-user,
ul.hentry .single-tree{
font-family:tahoma;
float: left;
color: #666;
padding-top: 5px;
margin-right: 10px;
}
ul.hentry .vote-for-user{
padding-top: 8px;
margin-right:12px;
margin-left: -7px;
}
ul.hentry .vote-for-user a,
ul.hentry .vote-for-user span{
background:#74C262;
color:#fff;
text-decoration:none;
display:block;
line-height:1em;
font-size:1em;
}
ul.hentry .vote-for-user a{
width:11px;
height:12px;
background:#74C262 url(/i/bg-user-vote-up.gif) no-repeat 50% 2px;
}
ul.hentry .vote-for-user a:hover{
background-color:#96D189;
background-position:50% -8px;
}
ul.hentry .vote-for-user span{
padding:1px;
font-size:0.83em;
}
ul.hentry .up-to-parent a,
ul.hentry .down-to-child a
{
display:block;
float:left;
height:15px;
line-height:15px;
text-decoration: none;
border-bottom: dotted 1px #79B1D4;
}
ul.hentry .to-favs a,
ul.hentry .fav_added a {
display:block;
margin-top:3px;
width:15px;
height:13px;
font-size:0;
background-position: left top;
}
ul.hentry .to-favs a:hover,
ul.hentry .fav_added a {
background-position: left bottom;
}
ul.hentry .fn a {
font-size: .92em; /*11px/12*/
font-weight: bold;
color: #666;
}
ul.hentry .fn a:hover{
color:#333;
}
ul.hentry .fn a:visited{
}
ul.hentry .fn a:visited:hover{
}
ul.hentry .date,
ul.hentry .bookmark {
}
ul.hentry .bookmark a,
ul.hentry .date abbr {
border: none;
font-size: .83em; /*10/16*/
}
ul.hentry .vote {
float: right;
margin-top: .4em;
}
ul.hentry .vote li {
float: left;
font: bold 1.08em/100% Arial, Helvetica, sans-serif;
color: #a9a9a9;
background: none;
}
ul.hentry .vote.positive li {
color: #390;
}
ul.hentry .vote.negative li {
color: #c00;
}
ul.hentry .vote .buttons,
ul.hentry .vote .buttons .vote-for {
margin-left: 5px;
padding-right: 5px;
}
ul.hentry .vote .buttons a {
margin-top:-11px;
float:left;
width:13px;
height:13px;
font-size:0;
cursor:pointer;
}
ul.hentry .vote .buttons a{
background:url(/i/icos/icons_vote_comments_4modes.png) no-repeat
}
ul.hentry .vote .buttons a.vote_plus {
margin-left:5px;
background-position: -13px 0;
}
ul.hentry .vote .buttons a.vote_plus:hover{
background-position:-13px -13px ;
}
ul.hentry .vote .buttons a.vote_minus {
background-position:0 0;
}
ul.hentry .vote .buttons a.vote_minus:hover {
background-position:0 -13px;
}
ul.hentry .vote.expired a.vote_plus,
ul.hentry .vote.mine a.vote_plus,
ul.hentry .vote.no_auth a.vote_plus,
ul.hentry .vote.voted a.vote_plus {
background-position:-13px -39px !important;
cursor:default;
}
ul.hentry .vote.expired a.vote_minus,
ul.hentry .vote.mine a.vote_minus,
ul.hentry .vote.no_auth a.vote_minus,
ul.hentry .vote.voted a.vote_minus {
background-position:0 -39px !important;
cursor:default;
}
ul.hentry .vote.voted_plus a.vote_plus {
background-position:-13px -26px !important;
}
ul.hentry .vote.voted_minus a.vote_minus {
background-position:0 -26px !important;
}
ul.hentry .entry-content,
.comment-preview {
font: 1.08em Arial, sans-serif;/*13/12*/
margin: 0;
padding: 10px 0 10px 0;
clear: both;
margin-bottom:10px;
}
ul.hentry .entry-content img,
.comment-preview img{
display: block;
max-width: 100%;
}
ul.hentry .entry-content .entry-content-only{
overflow-x:auto;
padding-right:5px;
}
ul.hentry .entry-content .entry-content-only ul,
.comment-preview ul{
margin: 1px 0 10px 20px;
list-style: inside disc;
}
ul.hentry .entry-content .entry-content-only ol,
.comment-preview ol{
margin: 1px 0 10px 20px;
list-style: inside decimal;
}
ul.hentry .bad5 { opacity: 0.2 }
ul.hentry .bad4 { opacity: 0.35 }
ul.hentry .bad3 { opacity: 0.5 }
ul.hentry .bad2 { opacity: 0.65 }
ul.hentry .bad1 { opacity: 0.8 }
ul.hentry .entry-content-only {
transition: opacity 700ms linear;
-webkit-transition: opacity 700ms linear;
}
ul.hentry .entry-content-only:hover {
opacity: 1;
}
/* http://bolknote.ru/2008/07/18/~1787 */
@-moz-document url-prefix(){
ul.hentry .entry-content .entry-content-only {
line-height:15.1px;
padding:2px 1px;
margin:-2px 0;
}
}
ul.hentry .entry-content .entry-content-only img{
max-width:100%;
display:block;
}
ul.hentry .entry-content p, .comment-preview p {
margin: 0 0 10px 0;
padding: 0;
}
ul.hentry p.reply, .comment-preview p.reply {
margin: 5px 0 0;
font: .85em Tahoma,Arial, sans-serif;/*11/13*/
}
ul.hentry .entry-content .bad a { /*Ссылка Показать плохой комментарий*/
color: #ccc;
}
/*JS-based show-hide comments*/
.show-hide-comments {
font-size: 90%; /*14/12*/
color: #999;
margin-bottom: 10px;
padding: .1em 0 .2em 10px;
background: #FAEBD7;
}
.show-hide-comments a {
padding: 0 5px 0 0;
background: #FAEBD7;
/*text-decoration: none;*/
}
.show-hide-comments a:hover {
color: #666;
}
/*for JavaScript comments extender*/
.extended {
float: left;
padding: 10px 10px 0 10px;
background: #FFFAF0;
}
/* // Comments */
/* Популярные комментарии и Прямой эфир + some code from Live section. */
/*.live-section #comments {
margin-top: 40px;
}
.live-section #comments h1 {
font: normal 2em/110% Verdana, sans-serif;
letter-spacing: -1px;
color: #69c;
}
.live-section #comments h1 .rss {
margin-left: 5px;
}
.live-section .stat {
margin: 10px 0 30px 0;
} */
.popular-comment {
width: 100%;
clear: both;
overflow: hidden;
}
.comment-body {
float:left;
width:80%;
}
.comment-descr {
font: .83em/130% Tahoma, sans-serif; /*10/12*/
vertical-align: top;
width:15%;
margin-right: 5%;
float:left;
}
.comment-descr dt,
.comment-descr dd {
display: inline;
}
.comment-descr dd {
color:#f00;
}
.live .who a, .live .where,
.comment-descr .where {
color:#999;
}
.live .who a:hover, .live a.where:hover,
.comment-descr .where:hover {
color:#333;
}
.live .topic,
.comment-descr .topic,
.side-side a {
color:#666;
}
.live a.topic:hover,
.comment-descr .topic:hover,
.side-side a:hover{
color:#A3A3A3;
}
.live a.topic:visited,
.comment-descr .topic:visited,
.side-side a:visited {
color:#B5B5B5;
}
.live a.topic:visited:hover,
.comment-descr .topic:visited:hover,
.side-side a:visited:hover {
color:#A3A3A3;
}
.live .total {
color: #C00;
}
.live .all {
position: relative;
top: 0;
right: 0;
margin:20px 25px 10px 0px;
text-align: right;
color:#999;
}
/*Блок с мозаикой из юзерпиков с подписями. Офигенная штука. Любите её*/
.people-mosaic {margin-top: 10px;}
.people-mosaic ul {float: none;}
.people-mosaic ul li {
float: left;
margin: 10px 10px 0 0;
}
.people-mosaic dl {
display: block;
text-align: center;
}
.people-mosaic dl dd a {
font: 1em Arial, sans-serif;
color: #008cd2;
}
.people-mosaic dl dt a img {
padding: 1px;
background: #ddd;
}
.img-border {
border: 1px solid #ddd;
}
.declaration {
font-size:2em;
font-family:arial;
line-height:140%;
color:#404040;
}
.declaration p {
margin-bottom:1em;
}
.alert {
color:#f00;
}
/*Вывод юзеров по странам и городам в разделе "Люди". Код используется также для вывода компаний и блогов в
результатах поиска.*/
.user-flow {
clear:both;
float:left;
margin:30px 0;
}
.user-flow-item {
margin: 0 0 40px 0;
}
.user-flow-item dt img {
border: 1px solid #ccc;
}
.user-flow-item .summary {
margin: -50px 0 0 60px;
font-size: 1.08em; /*13/12*/
}
.search .user-flow-item .summary {
margin-top: -45px;
}
.who-n-when {
margin: 0 0 10px 0;
color: #aeaeae;
}
.who-n-when a {
letter-spacing: -1px;
color: #aeaeae;
}
.who-n-when .blog-name {
color: #79b1d4;
}
.who-n-when dt {
font: 2em/110% Verdana, sans-serif;/*24/12*/
}
.who-n-when dd {
margin-top: 5px;
font: .83em/100% Verdana, sans-serif;/*10/12*/
}
/*Выделение особого сообщения (системного, например. Цвет фона как у слова в поиске)*/
.special-msg {
background: #fffacd;
}
/* Сообщение о том, что по тегу ничего не найдено */
.no-found {margin-top: 20px; font-size: 150%;padding-left:35px;}
.main-search{
width:auto !important;
padding-left:35px;
}
.main-search form{
position:relative;
margin-bottom:30px;
}
.main-search form .page-menu {
margin-top:35px;
}
.main-search form .page-menu li label{
}
.main-search form .page-menu li input{
height:0;width:0;border:none;padding:0;position: absolute;background:transparent;
overflow:hidden;
}
.main-search fieldset{
overflow:hidden;
}
.main-search .inpt-text {
margin: 0 10px 0 0;
padding:0 0 0 6px;
font-size:22px;
float: left;
height:30px;
color: #996;
line-height:30px;
border: 1px solid #996;
}
.main-search input.inpt-text {
width: 78%;
}
.main-search .inpt-btn{
float:left;
height:32px;
width:32px;
padding:0;
margin:0;
overflow:hidden;
border:none;
background:transparent url(/i/bg-button-enter.png) no-repeat scroll 0 -66px;
}
.main-search .inpt-btn:active{
background-position:0 -99px;
}
.main-search {
position:relative;
}
#fbPanel {
position: absolute;
background-color: #F0F0E7;
width: 400px;
border: 1px silver solid;
padding: 10px 10px 10px 10px;
z-index: 30;
}
#fbPanel textarea {
width: 100%;
margin-bottom: 20px;
}
.info-text {
font-size: 16px;
padding-top: 20px;
float: left;
}
#html_tags_help {
margin-top: 20px;
width:96%;
background-color:#F0F0F0;
color: black;
font-size:0.9em;
padding:15px 20px 20px 10px;
z-index:9999;
position: relative;
float: left;
}
#html_tags_help h4 {
cursor:default;
color: black;
font-size: 18px;
margin-bottom: 10px;
font-weight: bold;
}
#html_tags_help h5 {
cursor:default;
color: black;
font-size: 16px;
font-weight: bold;
}
#html_tags_help dt {
color:#000;
font-weight: bold;
}
#html_tags_help dd {
color:#000;
margin-bottom: 10px;
}
#html_tags_help #html_tags_help_content {
width:290px;
height:465px;
overflow:auto;
background-color:#fff4cd;
padding:10px;
}
#html_tags_help_close {
top:1em;
right:10px;
position: absolute;
}
a#html_tags_help_close, a#html_tags_help_close:hover, a#html_tags_help_close:visited {
color: gray;
font-size: 0.8em;
border-bottom: 1px dashed gray;
}
div#godmode {
left: 0px;
top: 0px;
width: 100%;
height: 100%;
position: fixed;
text-align: center;
vertical-align: middle;
background-image: url(/i/halfvisible.gif);
z-index: 10000;
}
div#godmode span {
color: white;
font-size: 72px;
font-weight: bold;
display: block;
margin-top: 30%;
}
/* */
/* Advert */
.advert-page .fright_holder{
width:188px;
float:left;
margin: 0px 15px 15px 0px;
}
.advert-page .fright_holder .fright_bg_top{
background:url(/i/adv/fright_bg_top.gif) no-repeat top;
width:188px;
height:22px;
}
.advert-page .fright_holder .fright_bg_bottom{
background:url(/i/adv/fright_bg_bottom.gif) no-repeat top;
width:188px;
height:22px;
}
.advert-page .fright_holder .fright_bg_center{
background:#e5e5e5;
}
.advert-page .fright_holder .fright_bg_center p{
padding: 0px 20px;
margin: 0px;
color: #9e9e9e;
font-size: 11px!important;
}
.advert-page .rightcolumn2, .rightcolumn3{
float: right;
width: 478px;
padding-left: 30px;
padding-bottom: 20px;
}
.advert-page .rightcolumn2 img#screen {
margin-top: 1em;
border: solid #CCC 1px;
margin-left: 2px;
}
/* Оформление текста в рекламном разделе */
.advert-page h1 {
font: 2.5em/100% Verdana,sans-serif; /*30px/12px*/
}
.advert-page h2 {
clear:left;
color:#FF6000;
font-family:Arial,sans-serif;
font-size:23px;
font-weight:normal;
padding-top:0.5em;
}
.advert-page p {
line-height: 1.54em;
}
#buy_package_form {
opacity: 0.97;
display:none;
left: 50%;
margin-left: -212px;
position:absolute;
z-index: 50;
}
#buy_package_form #form-arrow-down{
display: none;
border-top:7px solid #EFEFEF;
border-left:7px solid transparent;
border-right:7px solid transparent;
width:1px;
margin:0 0 0 20px;
}
#buy_package_form.package-form-too-much-right .ex_middle{
margin-left: -355px;
}
#buy_package_form.package-form-too-much-right #form-arrow-down{
margin-left: 379px;
}
#buy_package_form .habrablock{
margin-bottom: 0;
}
#buy_package_form .ex_middle{
width: 425px;
}
#buy_package_form .js-close-buy-package{
position: absolute;
cursor: pointer;
top: 10px;
right: 14px;
font-size: 1.5em;
}
.advert-page .habrablock {
background:#EFEFEF none repeat scroll 0 50%;
font-size:13px;
margin-bottom:20px;
vertical-align: middle;
}
.advert-page ul.nice {
list-style-image:none;
list-style-position:outside;
list-style-type:none;
margin:0 0 0 4ex;
padding:0;
}
.advert-page ul.nice li {
margin-bottom:1ex;
padding-left:3ex;
background:transparent url(/i/adv/list-style.gif) no-repeat scroll 0 5px;
font-size:12px;
line-height: 1.54em;
}
.price-table input{
background:#8BBF76;
color:#FFFFFF;
font-size:1.15em;
}
.advert-logos{
text-align:center;
overflow:hidden;
margin:0 auto;
width:610px;
}
.advert-logos
.adv-logo{
float:left;
overflow: hidden;
margin-right: 16px;
}
.advert-text{
font-size:1.2em;
margin:2em 0;
}
.advert-corps{
text-align:center;
}
.features-trial{
text-align:center;
padding:7px 18px;
font-size:25px;
}
.features-trial span{
color:#5A5A5A;
background:#E7FAEC;
padding:7px 18px;
}
.advert-page p.intro {
font-size:17px;
}
.advert-page .info_line {
padding:10px 20px;
}
.advert-page .info_line .captcha-holder{overflow:hidden;}
.advert-page .info_line .captcha-holder img{float:left;margin-right:10px;}
.advert-page .info_line .captcha-holder a{float:left;margin-top:25px;}
.advert-page .info_line .captcha-input{padding-left:120px;padding-top:5px;}
.advert-page .first_line {
padding-top:28px;
}
.advert-page .label {
float:left;
width:120px;
}
.advert-page .type_ch {
height:50px;
}
.advert-page .button_holder {
padding:10px 22px;
}
.advert-page img.stat {
float: left;
margin-right: 20px;
}
.ponchiki #main-content {
width: 95%;
}
.ponchiki .checkbox, .ponchiki .radio {
border:0 none !important;
bottom:-2px;
padding-right:12px;
position:relative;
width:15px !important;
}
.advert-page .input input, .advert-page .input textarea {
border:1px solid #DDDDDD;
padding:2px 4px;
width:250px;
}
.advert-page .tm-form dl {
margin-bottom: 0px !important;
}
#advert-form {
vertical-align: middle;
}
#advert-form fieldset {margin:0;padding:0;}
.advert-page .result {
display: block;
font-size: 17px;
margin-left: 30px;
margin-right: 30px;
/* margin-top: 40%; */
text-align: center;
}
.price-table {
width:100%;
}
.price-table tr.even {background: #eaf1f5;}
.price-table th {
padding-bottom: .5em;
font: normal 150%/110% Arial,sans-serif;
text-align:left;
border-bottom: 1px solid #000;
}
.price-table td {
font: 120%/150% Arial,sans-serif;
vertical-align: middle;
padding: .6em 4px;
}
.price-table td em {
margin-left: -.05em;
font-size:300%;
color:#69c;
}
.price-table td span {
color:#999;
}
/* Stat */
#flashcontent1, #flashcontent2, #flashcontent3, #flashcontent4, #flashcontent5, #flashcontent6 {
float: left;
}
#help-shortcuts {
margin-left: 20px;
}
#help-shortcuts dt {
font-weight: bold;
}
#help-shortcuts dd {
margin-left: 20px;
margin-bottom: 10px;
}
/* Help */
/* Оформление текста в разделе "Помощь" */
.help h1, .company h1, .live-block-page h1 {
font: 2.5em/100% Verdana,sans-serif; /*30px/12px*/
}
.help h2 {
clear:left;
color:#FF6000;
font-family:Arial,sans-serif;
font-size:23px;
font-weight:normal;
padding-top:0.5em;
}
.help p {
line-height: 1.54em;
}
.help ol{margin-top:1em;}
.help li {
line-height: 1.54em;
margin-bottom:0.5em;
}
.help #main-content ul {
line-height: 1.54em;
}
/* Habralenta */
.habralenta-settings .my-blogs {
margin: auto 20px 1em 20px;
}
.habralenta-settings .btn-holder {
padding: 20px;
}
.habralenta-settings .btn {margin: auto 20px 10px 20px;}
#invite-page {
margin: 40px;
}
#invite-count-label {
margin-bottom: 20px;
display: block;
}
#add-invite {
float: left;
width: 300px;
}
#add-invite .field {
width: 270px;
}
#add-invite dl.required dt {
font-weight: bold;
}
#add-invite .btn-bar {
text-align: right;
padding-right: 30px;
}
#invite-list {
float: left;
width: 320px;
}
#invite-list li {
margin-bottom: 10px;
}
input.money {
background:#E3A2A0 none repeat scroll 0 0;
color:#FFFFFF;
font-size:32px;
letter-spacing:-2px;
width: 130px;
}
span.money {
color:#E3A2A0;
font-size:32px;
letter-spacing:-2px;
}
.event-subscribe-form .unsubscribe {
text-decoration: none;
border-bottom: dashed 1px #79B1D4;
}
.event-subscribe-form .unsubscribe.disabled {
text-decoration: none;
border-bottom: dashed 1px silver;
color: silver;
}
.event-subscribe-form fieldset {
height: 30px;
}
.event {
margin-left: 35px;
}
.event .nonfriends {
margin-top: 20px;
}
.event h3.participants {
margin: 0;
font: 1.67em Verdana, sans-serif; /*20/12*/
letter-spacing: -1px;
color: #afa56a;
}
.salary-type label {
display: inline;
}
.privacy-persnal-info{
display:none;
color:red;
}
.privacy-persnal
.privacy-persnal-info{
display:block;
}
.privacy-persnal
span{
display:none;
}
.privacy-offtop {
color: gray;
}
.field-privacy .info {
display: none;
}
.privacy-offtop .info {
display: block !important;
color: red;
}
.privacy-offtop #js-field_privacy_text, .privacy-offtop input {
display: none;
}
@media print {
body {
background: white;
color:#000;
font-size: 12pt;
}
ul.hentry .entry-content{
padding-bottom:30px;
}
.blog-title,.yandex-direct,.yandex{
display:none;
}
a:link, a:visited {
color: #000;
background: transparent;
font-weight: bold;
text-decoration: underline;
}
.hentry .content a:link:after, .hentry .content a:visited:after {
content: " (" attr(href) ") ";
font-size: 90%;
}
#header-wrapper,.header, #sidebar, #footer,
.page-navigation, .sub-nav, .page-nav,
.buttons, p.reply, .add-comment,
li.bookmark, li.to-favs, li.down-to-child,.up-to-parent
{display:none;}
#wrapper, #main-content {
width: auto;
border: 0;
margin: 0 2%;
padding: 0;
float: none !important;
}
div.hentry {
clear:both;
float:none;
margin:0 0 40px;
width:auto;
}
}
.habrauserava{
height:48px;
width:48px;
position:relative;
}
.habrauserava img{
width:48px;
height:48px;
}
.habrauserava
b{
position:absolute;
top:0;
left:0;
height:48px;
width:48px;
background:url(/i/bg_avatar_mask.gif) no-repeat 0 0;
}
.yandex-direct{
margin:10px 0;clear:left;margin-left:35px
}
.oauth{
padding-left:35px;
margin:0 0 100px;
}
.oauth-app-block{
margin:30px 0;
}
.oauth-app-block dl{
overflow:hidden;
margin:0 0 3px;
}
.oauth-app-block dl dt{
font-weight:700;
float:left;
width:164px;
}
.oauth-simple-auth{
padding-top:50px;
float:left;
width:600px;
}
.oauth-simple-auth h1{
font-size:2.17em;
}
.oauth-simple-auth form,
.oauth-simple-auth .result{
padding-top:10px;
}
.oauth-simple-auth form .error{
color:red;
}
.oauth-simple-auth form p {overflow:hidden;padding:2px 0;}
.oauth-simple-auth form p label{
float:left;
width:160px;
font-weight:700;
}
.oauth-simple-auth .oauth-finish{
margin-top:1.5em;
font-size:1.5em;
}
#comments > ul > li > .msg-meta .single-tree {display:none;}
ul li:nth-child(1) > .msg-meta .single-tree{display:none;}
.single-threading .comment_holder{display:none;}
li.single-tree-node-last > .msg-meta{background:#eef3f3;}
.comment_holder li.single-tree-node,
.comment_holder li.single-tree-node-last{display:block;}
li.single-tree-node-last li {display:block;}
.single-threading > .msg-meta .js-single-tree,
.single-threading li.single-tree-node > .msg-meta .js-single-tree,
.single-threading li.single-tree-node-last > .msg-meta .js-single-tree {display:none;}
li > .msg-meta .js-multiplay-tree {display:none;}
.single-threading li.single-tree-node-last > .msg-meta .js-multiplay-tree{display:block;}
@media only screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio:0) {
#comments .hentry li .msg-meta .folding-dot-holder{
display:none !important;
}
}
img.help-tip{
position:relative;
top:3px;
}
#help-tip-text.help-tips-too-much-left{
margin-left:-15px;
}
#help-tip-text.help-tips-too-much-left
#help-tip-text-arrow{
margin-left:15px;
}
#help-tip-text{
position:absolute;
width:375px;
margin-left:-187px;
margin-top:-8px;
display:none;
color:#fff;
z-index:500;
opacity:0.95;
}
#help-tip-text-content{
position:absolute;
bottom:7px;
padding:15px;
background:#46688b;
-moz-border-radius-topleft:4px;
-webkit-border-top-left-radius:4px;
-moz-border-radius-topright:4px;
-webkit-border-top-right-radius:4px;
-moz-border-radius-bottomleft:4px;
-webkit-border-bottom-left-radius:4px;
-moz-border-radius-bottomright:4px;
-webkit-border-bottom-right-radius:4px;
border-radius:4px;
}
#help-tip-text-arrow{
border-top:7px solid #46688b;
border-left:7px solid transparent;
border-right:7px solid transparent;
width:1px;
margin:0 auto;
}
.search-ads{
margin-top:50px
}
.search-ads #yandex_direct{padding:10px;}
.company_admin #sidebar form .wide-wide-inputs{
border-bottom:1px solid #aaa;
padding-bottom:9px;
margin:8px 0 12px;
}
.company_admin #sidebar form p{
margin-top:1em;
margin-bottom:1em;
}
.company #sidebar{
margin-top:46px;
}
.side-side {
padding: 0 20px 20px;
}
.side-side h3{
margin:0 -20px 0.71em 0;
}
.side-side li{
margin:9px 0;
}
.side-side li small{
color:#999;
font-size:0.9em;
}
.wide-wide-inputs dl,.company_admin #sidebar form .wide-wide-inputs dl{
margin:0;
}
.wide-wide-inputs dt,.company_admin #sidebar form .wide-wide-inputs dt{
font-size:0.9em;
margin:0;
}
.wide-wide-inputs dd{
padding-right:5px;
}
.wide-wide-inputs dd input{
width:100%;
}
.js-do-more-inputs{
font-size:0.9em;
}
#js-field-holder-with-help{
overflow:hidden;
}
.ponchiki #wrapper{
overflow: hidden;
}
#john_black{
display: none;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: #000;
opacity: 0.5;
z-index: 40;
}
/* Сайдбар с кармаграфом и т.п. */
.karma-n-statistic p {
margin: 15px 0;
font-size:100%;
color:#666;
}
.karma-n-statistic h3 {
margin: 15px 0;
font: normal 1.5em/120% Verdana, sans-serif;/*18/12*/
letter-spacing: -1px;
color: #999;
}
.karma-n-statistic h2{
color: #999;
font-size:233% ;
margin:0 0 20px;
}
.karma-n-statistic .stats {
margin: 10px 0 35px;
color:#666;
overflow:hidden;
font-size:116%;
}
.karma-n-statistic
.karma-stat{
margin-bottom:50px;
}
.karma-n-statistic .stats dt{
float:left;
clear:left;
margin-right:4px;
}
.karma-n-statistic .stats dd{
float:left;
}
.karma-n-statistic .stats dd.global{
margin-bottom:30px;
}
.karma-n-statistic {
font-family: Verdana, sans-serif;
overflow: hidden;
}
.karma-n-statistic
.tag-cloud{
text-align:left;
margin-left:0;
float:none;
}
.search-results-title{
padding-left: 35px;
margin-bottom:16px;
}
#people-tags{
float: left;
margin-top: 38px;
width: 140px;
}
#people-tags li{
padding-bottom: 17px;
transition: opacity 200ms linear;
-webkit-transition: opacity 200ms linear;
}
#people-tags a{
display: block;
height: 46px;
width: 116px;
font: 13px/13px Helvetica, Arial, sans-serif;
text-decoration: none;
position: relative;
overflow: hidden;
background: no-repeat 0 50%;
}
#people-tags a span{
visibility: hidden;
}
#people-tags:hover li{
opacity: 0.6;
}
#people-tags:hover li.active, #people-tags:hover li:hover{
opacity: 1;
}
#table-people-rating #people-tags li {
width: 140px;
}
#table-people-rating #people-tags li a{
height: 46px;
width: 140px;
background-position: 50% 50%;
background-color: #ebf0f5;
border-top-left-radius: 23px;
border-bottom-left-radius: 23px;
-webkit-border-top-left-radius: 23px;
-webkit-border-bottom-left-radius: 23px;
-moz-border-radius-topleft: 23px;
-moz-border-radius-bottomleft: 23px;
}
#table-people-rating #people-tags li.active a{
background-color: #92b3d2;
}
#table-people-rating #people-tags a.podcaster {
background-position: 34px 50%;
}
#table-people-rating #people-tags li a.se_gamer {
margin-top: 20px;
}
#people-tags a.author { background-image: url(/i/tags/author.png); }
#people-tags a.star { background-image: url(/i/tags/star.png); }
#people-tags a.legend { background-image: url(/i/tags/legend.png); }
#people-tags a.oldresident{ background-image: url(/i/tags/oldresident.png); }
#people-tags a.commentator{ background-image: url(/i/tags/commentator.png); }
#people-tags a.podcaster { background-image: url(/i/tags/podcaster.png); }
#people-tags a.translator { background-image: url(/i/tags/translator.png); }
#people-tags a.statistic { background-image: url(/i/tags/statistic.png); }
#people-tags a.humorist { background-image: url(/i/tags/humorist.png); }
#people-tags a.habred { background-image: url(/i/tags/habred.png); }
#people-tags a.unhabred { background-image: url(/i/tags/unhabred.png); }
#people-tags a.troll { background-image: url(/i/tags/troll.png); }
#people-tags a.evangelist { background-image: url(/i/tags/evangelist.png); }
#people-tags a.reader { background-image: url(/i/tags/reader.png); }
#people-tags a.se_gamer, #people-tags a.se_supergamer, #people-tags a.se_turbogamer {
background-position: 52% 5px !important;
position: relative;
}
#people-tags a.se_gamer {
background-position: 56% 5px !important;
position: relative;
}
#people-tags a.se_gamer span, #people-tags a.se_supergamer span, #people-tags a.se_turbogamer span {
visibility: visible;
position: absolute;
display: block;
text-align: center;
width: 100%;
bottom: 5px;
color: #284fa2;
}
#people-tags a.se_gamer { background-image: url(/i/special/se/tags/gamer.png); }
#people-tags a.se_supergamer { background-image: url(/i/special/se/tags/supergamer.png); }
#people-tags a.se_turbogamer { background-image: url(/i/special/se/tags/turbogamer.png); }
.userinfo #people-tags{
overflow: hidden;
float: none;
width: auto;
margin-top: 0;
padding-top: 6px;
}
.userinfo #people-tags li{
float: left;
margin-bottom: 10px;
}
.userinfo #people-tags li a{
background-position: 50% 100%;
}
.habr-button{
font: 19px Arial, sans-serif;
color: #fff;
text-decoration:none;
border:2px outset #F0F0F0;
background: #cc9;
padding:0 6px;
display:inline-block;
}
.habr-button:active{
padding-left:8px;
padding-right:4px;
border-style:inset;
}
a.habr-button:hover{
background-color:#6DA3BD;
color:#fff;
}
.side-button{
margin-bottom: 20px;
}
.big-nice-text{
color:#E3A2A0;
font-size:32px;
letter-spacing:-2px;
}
.nice-time{
text-transform: lowercase;
}
.big-nice-text
input{
position: relative;
top: -6px;
}
#karma-reset-games{
padding-left: 35px;
}
.karma-reseting .karma-reset-form-reseting {
display: block;
}
.karma-noreseting .karma-reset-form-noreseting{
display: block;
}
.karma-reset-game{
display: none;
}
.karma-reset-form{
}
.karma-reset-button{
margin-top: 28px;
text-align: center;
font-size:32px;
}
.karma-reset-button input{
font-size: 32px;
}
input.disabled{
background-color: #ddd;
color: #eee;
border-style: solid ;
}
.tab-sun{
margin-top:-3px;
}
.sandbox .page-nav{
padding-left: 35px;
}
#js-topic-version-prototype{
display: none;
}
.topic-preview-content{
margin-left: -35px;
}
.topic-preview-content .hentry{
margin-bottom: 0;
}
.topic-preview{
margin-top: 5px;
padding: 15px;
border: 5px solid #D6D6D6;
}
.post-title{
font: 2.17em/100% Verdana, sans-serif;
letter-spacing: -1px;
padding:11px 0 22px;
margin: -11px 0 0;
width: 100%;
position: relative;
z-index: 15;
height: 26px;
}
.post-title .post-title-header{
color: #7fb084;
float: left;
font-size: 100%;
margin: 0 ;
}
.post-title .post-title-list{
position: relative;
float: left;
}
.post-title .post-title-list ul{
border: 1px solid #fff;
position: absolute;
top: -11px;
left: 0;
background: #fff;
list-style: none;
margin-left:4px;
padding: 10px 10px 10px 8px;
}
.post-title .post-title-list li{
display: none;
margin-bottom: 12px;
}
.post-title .post-title-list ul li.current{
display: block;
/*float: left;*/
}
.post-title .post-title-list ul a{
text-decoration: none;
font-size: 100%;
}
.post-title .can-select ul{
border-color: #ddd;
}
.post-title .can-select ul li{
display: block;
}
#js-topic-form-holder{
overflow: hidden;
}
/*Плашка с кнопками визуального редактирования текста*/
.editor {}
.editor .panel {
background: #eaecea;
float: left;
width: 100%;
padding: 2px 0;
}
.editor .panel a {
display: block;
width: 20px;
height: 20px;
overflow:hidden;
float: left;
margin-left:2px;
text-decoration:none;
}
.editor .panel a:hover {
background: #fff;
}
.editor .panel a.txt {
width:auto;
padding:0 2px;
}
.editor .panel a span {
color:#4d4d4d;
position:relative;
top:3px;
font-size:12px;
font-weight:bold;
letter-spacing:-1px;
}
.editor .panel select {
float: left;
margin-left:2px;
}
.editor .text-holder {
clear:both;
border-color:#d4d0c8;
border-style:inset;
border-width:2px 1px 1px 2px;
padding:2px 2px 2px 3px;
}
.editor .text-holder textarea {
overflow:auto;
border:none;
}
.emply_lenta{margin-left:35px;}
/* Nokia special */
#special_nokia{margin-left:35px;margin-bottom:20px;clear:both;background: #f0f0e7;padding:20px;position:relative;-webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;}
#special_nokia .logo{display:block;width:105px;height:66px;position:absolute;left:20px;top:20px;background: url(/i/special/nokia/after_post_html_block/logo.png) no-repeat; }
#special_nokia .ovi{display:block;width:68px;height:67px;position:absolute;right:20px;top:20px;background: url(/i/special/nokia/after_post_html_block/ovi.png) no-repeat; }
#special_nokia .text{margin-left:150px;margin-right:100px;font-size:10px;font-fimily:Arial;color:#555555;}
#special_nokia .text span{font-size:18px;}
#special_nokia .text .links{overflow:hidden;margin-top:15px;font-size:10px;}
/* common */
.hidden { display:none !important; }
del.robots-noindex{display:none;}
.has-two-inputs{
width:103%;
}
dd.has-two-inputs{
width:102%;
}
#comment_form input.loading {
background: url(/i/form/loader_button.gif) repeat;
}
#comment_form.loading input.post {
background: url(/i/form/loader_button.gif) repeat;
}
span.two-inputs{
float:left;
margin-right:3%;
}
/* Forms */
input.wide, select.wide, textarea.wide {
width:99%;
}
.input-row{
overflow:hidden;
}
.two-inputs{width:47%;margin-right:1%;}
.wide-me{
overflow:hidden;
}
.wide-me input.two-inputs{
width:98%;
}
.right-stick{
float:right;
margin-left:10px;
}
input.wide-half, select.wide-half, textarea.wide-half {
width:50%;
}
input.checkbox {vertical-align:middle;}
input.textfield {}
input.large {
font-size:3em;
}
textarea.large {
height:40em;
}
textarea.medium {
height:7em;
}
textarea.small {
height:3em;
}
select.with-title option {
background:#eaecea;
}
select.with-title option.title {
background:#fff;
}
input.btn-big {
font-size:2em;
}
.achtung-minen {
color: #f00;
display:none;
}
.js-marked-error .achtung-minen {
display:block;
}
form input.btn {
background:#d4d0c8 url(/i/form/loader_field.gif) no-repeat -1000px 0;
outline:none;
}
form.save-loading input.btn-save,
form.blogSave-loading input.btn-save {
background:#d4d0c8 url(/i/form/loader_field.gif) repeat 0 0;
}
form.preview-loading input.btn-preview {
background:#d4d0c8 url(/i/form/loader_field.gif) repeat 0 0;
}
form.draft-loading input.btn-draft {
background:#d4d0c8 url(/i/form/loader_field.gif) repeat 0 0;
}
form .loading input.textfield {
background:url(/i/form/loader_field.gif) repeat 0 0;
}
.topic-autosave {
padding:5px;
}
form.autosave-loading .topic-autosave {
background:url(/i/form/loader_field.gif) repeat 0 0;
}
.clear {
clear:both;
}
.sublabel {
margin: 2px 0 3px;
font-size: 11px;
color: #999;
overflow:hidden;
}
.block {
margin-bottom:2em;
}
.block-semi {
margin-bottom:1em;
}
.block-super {
margin-bottom:4em;
}
.block-tr td {
padding-bottom:2em;
}
.block-semi-tr td {
padding-bottom:1em;
}
.block-super-tr td {
padding-bottom:4em;
}
.system {
text-decoration:none;
}
.system em {
font-style:normal;
line-height:140%;
border-bottom:1px dashed #79B1D4;
}
h2.forms .system {
font-size:0.6em;
}
fieldset legend {
padding:5px 5px 1.5em 5px;
margin-left:-5px;
}
.topic-preview {
display:none;
}
.topic-preview .habracut {
padding-bottom:0.8em;
margin-bottom:0.8em;
border-bottom:1px dotted #999;
position:relative;
}
.topic-preview .habracut .scissors {
position:absolute;
left:30px;
bottom:-0.8em;
padding:0 3px;
color:#999;
background:#fff;
font-weight:bold;
letter-spacing:-1px;
}
/* Rounded corners blocks */
.round-corner-box {
margin-bottom: 20px;
font-size:1em; /*12px*/
font-family:tahoma,arial;
background: #f0f0e7 url(/i/bg-corner-top-left.gif) no-repeat 0 0;
}
.round-corner-box .bg-bott-r {
width: 100%;
background: url(/i/bg-corner-bottom-left.gif) no-repeat bottom left;
}
.round-corner-box .bg-bott-l {
background: url(/i/bg-corner-bottom-right.gif) no-repeat bottom right;
width: 100%;
}
.round-corner-box .bg-top-r {
background: url(/i/bg-corner-top-right.gif) no-repeat top right;
padding: 10px 20px;
}
/* Header inside */
.round-corner-box .bg-top-r h3 {
display: block;
margin:0 0 20px 0;
font-size: 2.33em; /*28px*/
font-weight: normal;
line-height: 1.1em;
letter-spacing: -1px;
text-decoration: none;
color: #999;
}
.round-corner-box .all {
text-align: right;
color:#999;
}
/* Blocks inside rounded corners */
/* Live comments */
.live-wrapper {margin-bottom: 10px;}
.live-comment {margin: 0 0 5px 0;}
.live-comment dt,
.live-comment dd,
.live-comment dd dl,
.live-comment dl dd dl dt {
margin: 0;
display: inline;
color:#999;
}
.live-comment span.who a, .live-comment .where, .live-comment .topic {
margin-bottom: 1ex;
line-height: 1.35em;
}
.live-comment .who {
padding-left: 16px;
background: url(/i/bg-user.gif) 0 50% no-repeat;
display: inline;
}
.live-comment .who a {color:#999;}
.live-comment .where{color:#666 ;}
.live-comment .topic {color:#666;}
/* Live' links behaviour */
.live-comment .who a:hover, .live-comment a.where:hover {
text-decoration: none;
background: #f66;
color:white;
}
.live-comment a.topic:hover {
text-decoration: none;
background: #6c6;
color:#fff;
}
.live-comment .total {color: #C00;}
/* Live popular companies */
.rating .title .new-feedback {
padding: 0 0 0 2px;
font: 11px/100% normal Arial,sans-serif;
color: #fff;
background: #6cf;
text-decoration: none;
}
/* Recommendations (habraprofile) */
.round-corner-box .recommendation {
margin: auto 0;
padding: 10px 20px;
font: 1em/150% Arial, sans-serif; /*12/12*/
}
.round-corner-box .recommendationl dt a {
padding-left: 16px;
color: #666;
background: url(/i/bg-blogs.gif) 0 80% no-repeat;
}
.round-corner-box .recommendation dd {
color: #000;
}
/* // Recommendations (habraprofile) */
/* Blocks inside rounded corners */
/* // Rounded corners */
/* Company card */
form#company-card {
margin-left: 20px;
}
form#company-card h1 {
margin-bottom:1em;
width:100%;
clear:both;
font-size:2.167em;
color: #767676;
font-weight: normal;
margin-left: -20px;
}
form#company-card dl {
margin-bottom:1em;
width:100%;
clear:both;
}
form#company-card dl input,
form#company-card dl select,
form#company-card dl label {
width:100%;
display:block;
}
form#company-card dl label { margin-bottom:0.3em; }
form#company-card dl#tariff-holder {
margin:0 5% 2em 0;
width:50%;
float:left;
clear:none;
}
form#company-card dl#actuality-holder {
width:15.7em;
float:right;
clear:none;
line-height:1.5em;
}
form#company-card dl#actuality-holder dt { float:left; }
form#company-card dl#actuality-holder dd { float:right; }
form#company-card dl#actuality-holder * { vertical-align:middle; }
form#company-card dl#actuality-holder label { display:inline; }
form#company-card dl#actuality-holder input {
width:6.5em;
display:inline;
}
form#company-card dl#rss-holder { margin-top:3em; }
form#company-card dl dd.error { color:#cc0000; }
form#company-card input.submit { float:right; margin-right: -6px; }
.zebra {text-decoration:none; border-bottom: 1px dashed #79B1D4;} /* Подчёркивание JavaScript-ссылок */
#getInviteYounger_text { color: #519500; }
.sort-order a {
margin-left:3px;
text-decoration:none;border-bottom:#77a3bb 1px dashed;
}
a.sort-order_lnk_Sel {
text-decoration:none; padding:0px 4px 2px 4px;
background:#e8e9eb; border-color:#e8e9eb; color:#000;
}
.sort-order_Srch {
margin:0 35px;
}
.answer-sort {
margin-top:50px;
}
.answer-sort .comments-header {
display:inline;
}
.answer-sort .sort-order {
padding-left:5px;
}
/* futu_alert */
/*
.futu_alerts_holder {
position:fixed;
_position:absolute;
top:0;
_top: expression(
eval(document.documentElement.scrollTop) + "px"
);
left:50%;
width:450px;
z-index:9999;
margin-left:-225px;
}
*/
.futu_alert_outer {
position: fixed;
top: 0; left: 0;
width: 100%;
z-index:9999;
}
.futu_alert_outer .frame {
position:relative;
z-index:9999;
}
.futu_alerts_holder {
position:absolute;
left:69%; top:0;
width:30%;
z-index:9999;
}
.futu_alerts_holder .futu_alert {
position:absolute;
top:-1000px;
background-color:#FFEBA0;
font:1em Tahoma, sans-serif;
border:1px solid #FFFFFF;
margin-left:60px;
}
.futu_alerts_holder .futu_alert .futu_alert_header {
font-size:1em;
margin:10px 20px 0;
}
.futu_alerts_holder .futu_alert .futu_alert_text {
font-size:0.8em;
margin:10px 20px;
}
.futu_alerts_holder .futu_alert .futu_alert_close_button {
position:absolute;
padding:10px;
top:0;
right:0;
outline:none;
}
.futu_alerts_holder .message {
color:#FFF;
background-color:#6690C9;
}
.futu_alerts_holder .error {
color:#FFF;
background-color:#ed6060;
}
.futu_alerts_holder .save {
color:#FFF;
background-color:#73a168;
}
/* form */
form.tm-form dl {
margin-bottom: 20px;
}
form.tm-form dl dd.desc {
color: gray;
}
form.tm-form dl.required dt label {
font-weight: bold;
}
form.tm-form dl dd.error {
color: red;
display: none;
}
form.tm-form dl.invalid dd.error {
display: block;
}
form.tm-form .unknown-error {
margin-top: 20px;
margin-bottom: 20px;
color: red;
}
form.tm-form .error-list {
display: none;
}
form.tm-form input.loading,
input.loading,
button.loading {
background: url(/i/form/loader_button.gif) repeat;
}
form.tm-form label {
display: inline;
}
form.tm-form dl dd.categories{
overflow:hidden;
margin:7px 0;
}
form.tm-form dl dd.categories label{
float:left;
width:49%;
}
/* xl */
.xl-little div.hentry { margin-bottom: 10px; }
.xl-panel { padding: 3px 7px; background: #f7f7f2; margin-bottom: 2em; clear: both; overflow: hidden; margin-left:35px;}
.xl-panel ul { list-style: none; float: left; width: 72px; height: 20px; padding: 0; margin: 0; background: transparent url(/i/xl.gif) -112px 0 no-repeat; cursor: pointer; }
.xl-panel ul li { margin: 0; padding: 0; width: 24px; height: 20px; float: left; }
.xl-panel li.little:hover { background: transparent url(/i/xl.gif) -184px 0 no-repeat; }
.xl-panel li.xl_view_radio_little_active { background: transparent url(/i/xl.gif) -256px 0 no-repeat !important; }
.xl-panel li.medium:hover { background: transparent url(/i/xl.gif) -208px 0 no-repeat; }
.xl-panel li.xl_view_radio_medium_active { background: transparent url(/i/xl.gif) -280px 0 no-repeat !important; }
.xl-panel li.full:hover { background: transparent url(/i/xl.gif) -232px 0 no-repeat; }
.xl-panel li.xl_view_radio_full_active { background: transparent url(/i/xl.gif) -304px 0 no-repeat !important; }
.xl-panel .help { float: left; color: #999; padding-left: 10px; }
.xl-panel .rss { float: right; display: block; width: 16px; height: 1.7em; overflow: hidden; text-indent: -1000px; background: transparent url(/i/feed_icon_16x16.gif) 0 50% no-repeat; }
.xl_updown, .xl_hide { cursor: pointer; display: -moz-inline-stack; display: inline-block; width: 21px; height: 20px; background: transparent url(/i/xl.gif) 0 50% no-repeat; }
.xl_updown:hover { background-position: -21px 50%; }
.xl_downarrow { background-position: -42px 50%; }
.xl_downarrow:hover { background-position: -63px 50%; }
.xl_hide { width: 14px; background-position: -84px 50%; }
.xl_hide:hover { background-position: -98px 50%; }
/* footer */
#footer a { color: #6da3bd; }
#footer a:hover{color:#4D7285;}
#about { float: left; }
a.footer_logo {
margin: 0 1.1em 0 2%;
float:left;
display:block;
width:31px;
height:29px;
background:url(/i/tm_logo_sharp.gif) no-repeat 0 0;
outline:none;
text-indent:-9999px;
}
a.footer_logo:hover {
background-position:0 -31px;
}
#copyright-and-footer-nav {
float: right;
margin-right: 20px;
}
#copyright-and-footer-nav li {
display: inline;
}
#footer {
width: 95%;
min-width: 725px;
max-width: 1200px;
clear: both;
margin: 10px auto 0;
font:.917em/120% Tahoma, Arial; /*11px/12px*/
color:#949494;
position: relative;
top: 20px;
overflow: hidden;
}
#footer .footer-conttent{
border-top: 1px solid #ccc;
padding: 30px 0;
overflow: hidden;
margin-left:35px;
}
.bottom_menu { width: 80%; position: relative; overflow: hidden; float: left; }
.bottom_menu dl { float: left; width: 16.5%; font-size: 1em;}
.bottom_menu dl.user { width: 18%; }
.bottom_menu dl.sections { width: 15%; }
.bottom_menu dl dt { margin-bottom: .6em; font-size: 1.2em; }
.bottom_menu dl dt a { font-weight: bold; }
.bottom_menu dl.user dt a { border: 0; font-weight: bold; }
.bottom_menu dl dd { margin-bottom: .4em; line-height: 1.6em; }
/* favourites_add */
#favourites_add_hidden { display: none; }
#favourites_add { position: relative; height: 0; clear: left; z-index: 10; margin-left: 35px; }
#favourites_add .favourites_add_inner { background: #f0f0e7; padding: 1em; position: absolute; top: 1em; left: 0; width: 95%; z-index: 10; }
#favourites_add label { font-size: 1.1em; padding-bottom: .1em; }
#favourites_add #favourites_add_tags { width: 99%; }
#favourites_add dd.desc { font-size: .9em; color: #666; }
#favourites_add .favourites_add_footer { margin-top: 1em; color: #666; }
#favourites_add #favourites_add_cancel { color: #000; text-decoration: none; border-bottom: 1px dashed; }
/* misc */
.top-tags { list-style: none; margin-bottom: 15px; }
.top-tags strong { font-weight: normal; }
.top-tags em { font-style: normal; float: right; text-align: right; color: #999; text-decoration: none; }
.top-tags a { display: block; padding: 4px 20px; overflow: hidden; text-decoration: none; }
.top-tags a strong { text-decoration: underline; }
.top-tags a:hover, .top-tags a.current { background: #d2d2c9; color: #fff; }
.top-tags a:hover strong, .top-tags a.current strong { text-decoration: none; }
.top-tags a:hover em, .top-tags a.current em { color: #fff; }
ul.tags li.fav a { color:#339900;}
ul.tags li.fav a:hover{
color:#85C266;
}
.tags li.favourites_edit_tags { margin-left: 10px; }
.tags li.favourites_edit_tags a, .tags li.favourites_edit_tags a:link, .tags li.favourites_edit_tags a:visited { color: #ccc; background: none; }
.tags li.favourites_edit_tags a:hover { color: #666; }
.sub-nav { clear: both; margin-bottom: 20px; }
.sub-nav li { display: inline; margin-right: 3px; }
.sub-nav li a { color: #093; font-size: 1.083em; padding: 0 2px; text-decoration: none; }
.sub-nav li.current a { color: #fff; background: #ff9525; }
/* re:store banner margins fix for opera */
@media all and (min-width: 0px) {
#iStoreMenuBanner { margin-top: -2px; margin-bottom: 0; }
}
/* header */
/** There is new habraheader bellow; Gleb Arestov, july 09**/
.header{
padding:10px 0 0;
overflow:hidden;
width: 95%;
margin:0 auto;
min-width: 725px;
max-width: 1200px;
}
.header
.panel-personal{
float:left;
}
.header
.panel-tools{
float:right;
}
.header
.logo{
text-align: center;
width:110px;
height:110px;
display:block;
margin:10px auto;
background:url(/i/bg-multilogo.png) no-repeat 50% -144px;
}
.header
.logo:hover{
background-position:50% -274px;
}
.header
a.root{
margin:0 auto;
width:240px;
height:130px;
background-position:0 0 !important;
}
.panel-personal, .panel-tools {
font-family: Arial, Helvetica, sans-serif;
}
.panel-personal{
padding-left:35px;
width:250px;
color:#999;
line-height:1.33em;
}
.panel-personal dt a{
margin-right:10px;
}
.panel-personal
.habrauser-charge{
margin-top:0.4em;
font-size: 91%;
line-height:1.2em;
}
.panel-personal
a{
color:#999;
}
.panel-personal
a:hover{
color:#333;
}
.panel-personal
dd
a{
margin-right:10px;
}
.panel-personal
a.habrauser{
color:#343434;
font-weight: 700;
}
.panel-personal
a.habrauser:hover{
color:#858585;
}
.panel-personal
.habrauser-newmail{
background:url(/i/icos/new-message.gif) no-repeat 0 2px;
padding-left:21px;
margin-left:-21px;
}
.panel-tools{
padding-right:1%;
width:271px;
}
.panel-tools
.panel-settings{
padding-right:28px;
margin-bottom:0.66em;
}
.panel-settings{
text-align: right;
}
.panel-settings
a{
color:#999;
}
.panel-settings
a:hover{
color:#333;
}
.panel-settings
small{
color:#ccc;
font-size:1em;
}
.panel-tools
.panel-search{
float:right;
width:auto;
}
.panel-search{
text-align: right;
margin-top:-2px;
padding:2px 0 2px 2px;
}
.panel-search
.panel-search-label{
position:relative;
float:left;
}
.panel-search
.panel-search-label
span{
position:absolute;
left:5px;
top:3px;
color:#ccc;
display:none;
cursor:pointer;
}
.panel-search
label.input-placeholding
span{
display:block;
}
.panel-search
.in-text{
border:1px solid #D1D1D1;
padding:2px;
float:left;
width:230px;
margin-right:5px;
height:15px;
padding:2px;
}
.panel-search
.in-text:focus{
outline:1px solid #6DA3BD;
}
.panel-search
.in-submit{
float:left;
padding:0;
margin:0;
border:none;
height:21px;
width:21px;
overflow:hidden;
background:transparent url(/i/bg-button-enter.png) no-repeat scroll 0 0;
}
.panel-search.enter-button-hightlight
input.in-submit,
.panel-search
input.in-submit:active{
outline:none;
background-position: 0px -22px;
}
.panel-search
p{
margin: 0;
}
.panel-search
.input-placeholding{
color:#ccc;
}
.panel-nav-top{
padding:30px 0 25px 35px;
overflow:hidden;
margin-top:-15px;
min-width:1000px;
text-transform: lowercase;
}
.panel-nav-top
li{
height:36px;
line-height:1.2em;
float:left;
font-size:250%;
margin-right:26px;
color:#343434;
}
.panel-nav-top
li
a{
color:#6da3bd;
}
.panel-nav-top
li
a:hover{
color:#4D7285;
}
.panel-nav-top
li.current
a{
color:#343434;
}
.panel-nav-top
li.current-full
a{
color:#000;
text-decoration: none;
cursor: default;
}
.panel-nav-top
li.current
a.disabled{
text-decoration:none;
}
.panel-nav-top
li.current
a:hover{
color:#000000;
}
.panel-nav-top
li span a{
float:left;
font-size:0.5em;
line-height:1.2em;
max-width:140px;
}
.panel-personal { width: 350px; }
.panel-personal iframe { display: -moz-inline-stack; display: inline-block; *display: inline; *zoom: 1; margin-left: 10px; position: relative; top: 3px; }
/* user_profile */
.profile-header{
float:left;
width:149%;
padding-left:35px;
margin:-8px 0 6px;
height:48px;
}
.profile-header h1{
float:left;
margin-right:5px;
}
.profile-header h1 .favicon{
margin-top:14px;
}
.profile-header .profile-actions{
float:left;
margin-right:10px;
position:relative;
}
.profile-header .profile-actions dt{
float:left;
overflow: hidden;
color:#333333;
padding:0;
line-height:1em;
height:42px;
font-size:300%;
}
.profile-header .profile-actions dt .habrauser{
line-height:1em;
padding:2px 6px 9px ;
float:left;
}
.profile-header
.profile-actions
dd.menu-arr{
position:relative;
z-index:2;
float:left;
display:none;
cursor:pointer;
font-size:175%;
font-weight:400;
line-height:46px;
width:15px;
padding:0 11px 0 7px;
margin-left:-6px;
text-align:center;
vertical-align:middle;
height:40px;
color:#ccc;
}
.profile-header
.profile-actions
dd.menu-arr
.press-done{
display:none;
}
.profile-header
.profile-actions
dd.menu-arr:hover{
color:#333;
}
.profile-header
.profile-actions
.profile-actions-menu-container{
display:none;
position:absolute;
width:200px;
right:0;
top:5px;
}
.company-header
.profile-actions-menu-too-left
.profile-actions-menu-container{
right:0;
left:-21px;
}
.profile-header
.profile-actions
.profile-actions-menu{
float:right;
padding:0;
background:#fff;
border:1px solid #333;
background:#fff;
margin-top:3px;
}
.profile-header
.profile-actions
.profile-actions-menu
.cor-1px{
padding:1px 0;
border:2px solid #333;
border-width:0 2px;
background:#fff;
margin:0 -2px;
}
.profile-header
.profile-actions
.profile-actions-menu
ul{
background:#fff;
margin:0 -1px;
padding:7px 40px 7px 14px;
}
.profile-header
.profile-actions
.profile-actions-menu
li{
padding:5px 0;
line-height:1.2em;
overflow:hidden;
font-size:108%;
}
.profile-header
.profile-actions
.profile-actions-menu
li
a{
}
.profile-actions-menu
li
a.js-cancel{
float:right;
font-size:0.8em;
line-height:1.2em;
padding-top:2px;
}
.js-you-love-this-corp .js-prof-company-addfan,
.js-you-work-here .js-prof-company-worker,
.js-prof-company-notworker,
.js-prof-company-removefan{
display:none;
}
.js-you-love-this-corp .js-prof-company-removefan,
.js-you-work-here .js-prof-company-notworker{
display:block;
}
.company-header
.profile-actions
.profile-actions-menu
ul{
padding:22px 14px 7px 14px;
}
.company-header
.profile-actions
.profile-actions-menu-container{
width:258px;
}
.company-header
.profile-actions
.profile-actions-menu{
float:none;
}
.profile-header
.profile-actions.profile-actions-usable
dd.menu-arr{
display:block;
}
.profile-header
.profile-actions.profile-actions-usable
dt:hover{
border-color:#B7D0E5;
}
.profile-header
.profile-actions.active
dt{
border-color:transparent !important;
}
.profile-header
.profile-actions.active
dd.menu-arr{
color:#333;
}
.profile-header
.profile-actions.active
dd.menu-arr
.press-can{
display:none;
}
.profile-header
.profile-actions.active
dd.menu-arr
.press-done{
display:inline;
}
.profile-actions.active
.profile-actions-menu-container{
display:block;
}
.profile-header
.profile-karma-holder{
float:left;
margin-top:-9px;
margin-left: 10px;
}
.profile-header
.profile-karma-holder
dl{
text-align:center;
}
.profile-header
.karma{
padding:0;
margin-right:15px;
}
.profile-header
.habraforce{
margin:0;
padding:0;
}
.profile-header
.profile-adm{
padding: 0 0 0;
float:left;
margin-left:20px;
}
.profile-header
.profile-adm
a{
display:block;
float:left;
margin:0 5px;
width:24px;
height:24px;
line-height:24px;
vertical-align:bottom;
text-align:center;
padding:6px;
}
.profile-header
.profile-adm
a.invitogiver{
background: url(/i/img-icon-invite.png) no-repeat 50% 50%;
}
.profile-header
.profile-adm
a.profedit{
background: url(/i/topic_edit.gif) no-repeat 50% 50%;
}
.profile-header
.profile-adm
a:hover{
background-color:#eee;
}
.profile-header
.karma,
.profile-header
.habraforce{
font-family: Verdana, sans-serif;
}
.profile-header .karma a{
margin-top:9px;
width:15px;
height:26px;
}
.profile-header .karma .vote_plus {
background:url(/i/icos/icons_vote_karma_big.gif) no-repeat 0 0 !important;
}
.profile-header .karma .vote_minus {
background:url(/i/icos/icons_vote_karma_big.gif) no-repeat -16px 0 !important;
}
.profile-header .karma.voted_plus .vote_plus {
background:url(/i/icos/icons_vote_karma_big.gif) no-repeat 0 -27px !important;
}
.profile-header .karma.voted_minus .vote_minus {
background:url(/i/icos/icons_vote_karma_big.gif) no-repeat -16px -27px !important;
}
.profile-header .karma dd.vote{
display:block;
}
.profile-header
.karma .mark,
.profile-header
.habraforce .number,
.profile-header
.habraindex .number{
background:transparent;
font-size:300%;
}
.profile-header
.karma .mark{
color:#6c6;
padding:0;
}
.profile-header
.habraforce .number{
color:#CC66CC;
}
.profile-header .karma dt,
.profile-header .karma .total,
.profile-header .habraforce dt,
.profile-header .habraindex dt{
color:#ccc;
}
.profile-header dt{
margin-bottom:-6px;
}
.profile-header .karma .total{
margin-top:-4px;
}
.company .page-navigation{
float:none;
width:auto;
padding-left:35px;
}
.profile-header .habraindex .number{
color:#CC66CC;
}
.profile .profile-header{}
.profile #sidebar{
margin-top:46px;
}
/* autosuggest */
/* autosuggest */
.js-autosuggest-holder {
width:100%;
position:relative;
z-index:10;
}
.js-autosuggest-holder .js-autosuggest-output {
width:100%;
overflow:hidden;
position:absolute;
z-index:10;
cursor:pointer;
padding-bottom:1px;
}
.js-autosuggest-holder .js-autosuggest-output iframe {
display:none;
display/**/:block;
position:absolute;
top:0;
left:0;
z-index:-1;
width:3000px;
height:3000px;
}
.js-autosuggest-output-container {
position: relative; height: 0;
}
.js-autosuggest-output div {
text-align:left;
position:relative;
padding: 3px 0 3px 3px;
font-size:0.9em;
border:1px solid #dadada;
line-height:1.4em;
margin-bottom:-1px;
background-color: #fff;
cursor: pointer;
}
.js-autosuggest-output div em {
font-style:normal;
font-weight:bold;
}
.js-autosuggest-output div.active {
background-color:#fdf5e6;
z-index:5;
border-color:#eee;
}
.js-autosuggest-holder .js-autosuggest-output .js-autosuggest-item {
padding:3px;
border-bottom:1px solid #7992b2;
}
.js-autosuggest-holder .js-autosuggest-output .current {
background-color:#7992b2;
}
.js-autosuggest-holder .js-autosuggest-output .js-autosuggest-item em {
font-weight:bold;
font-style:normal;
}
.panel-search
.js-autosuggest-holder{
width:100%;
}
.panel-search .js-autosuggest-output-container{
clear:both;
width:236px;
z-index:1;
}
.panel-search p{ position:relative;z-index:3;}
/* Autosuggest в форме поиска */
#info-search .js-autosuggest-holder {
position:relative;
}
#info-search .js-autosuggest-output {
width:100.3%;
left:0;
top: 22px;
margin-left: -3px;
text-align:left;
}
/* Autosuggest в форме поиска по тегам*/
.tag-search {
position:relative;
}
.tag-search .js-autosuggest-output {
width:51%;
left:97px;
top: 37px;
z-index:30;
}
.tag-search .js-autosuggest-output div {
padding:0 6px;
}
.main-search .js-autosuggest-output {
width: 78%;
padding-right:8px;
}
.main-search .js-autosuggest-output div{
margin-right:-8px;
}
/* Autosuggest в форме поиска по тегам*/
#favourites_add .js-autosuggest-holder div{
z-index:3;
position:relative;
}
#favourites_add .js-autosuggest-holder .js-autosuggest-output-container{
z-index:1;
}
#favourites_add .js-autosuggest-output {
left:0;
top: 000;
z-index:30;
}
/* autosuggest */
#js-topic-form-holder .js-autosuggest-holder {
position:relative;
}
#js-topic-form-holder .js-autosuggest-output {
width:100.3%;
left:0;
}
/* //autosuggest */
#write-post .js-autosuggest-holder {
position:relative;
}
#write-post .js-autosuggest-output {
padding:0;
width:101%;
margin-top: -10px;
}
/* //autosuggest */
/* top_companies */
.corps-list-top{
}
.corps-list-top
.page-nav,
.corps-list-top
.corps-list-top-menu{
padding-left:35px;
}
.corps-list{
padding-top:17px;
color:#7d7c7c;
font-family:Tahoma, sans-serif;
}
.corps-list
.corps-listhead{
margin:0 0 7px;
line-height:1.2em;
}
.corps-list
.corps-listhead
dt.corp-name{
height:1px;
}
.corps-list
.corps-listhead
dd.copr-habraindex{
font-family:Arial,sans-serif;
font-size:100%;
color:inherit;
padding-left:4px;
margin-right:-4px;
}
.corps-list li{
overflow:hidden;
padding-left:35px;
margin:0 0 20px;
line-height:31px;
}
.corps-list li dt,
.corps-list li dd{
float:left;
}
.corps-list li dt.corp-name{
font-size:208%;
width:63%;
}
.corps-list li dt.corp-name
img{
line-height:1em;
height:16px;
width:16px;
float:left;
margin:9px 12px 0 -28px;
font-size:33%;
}
.corps-list li dd.corp-descripton{
padding-top:1px;
float:none;
clear:left;
width:47%;
line-height:1.2em;
font-size:108%;
}
.corps-list li dd.corp-descripton
p{
margin:0;
}
.corps-list li dd.corp-descripton
p
a{
color:#666;
font-size:107%;
}
.corps-list li dd.corp-descripton
p
a:hover{
color:#A3A3A3;
}
.corps-list li dd.copr-habraindex{
width:21%;
color:#CC66CC;
float:right;
}
.corps-list li dd.copr-habraindex,
.corps-list li dd.copr-habraindex-change{
font-family:Verdana, sans-serif;
font-size:158%;
}
.corps-list li dd.habraindex-up{
color:#74c262;
}
.corps-list li dd.habraindex-down{
color:#ff0033;
}
.corps-list-page-description{
color:#999;
}
.corps-list-page-description
p{
font-size:133%;
margin:0 0 1em;
}
.corps-list-side
.side-rubrikator{
margin-top:35px ;
}
.corps-list-side
a.add{
color:#999;
font-size:133%;
}
.corps-list-side
a.add:hover{
color:#333;
}
.corps-list-side
.alfikator {
margin:30px 0;
}
.alfikator
ul{
font-size:166%;
overflow:hidden;
color:#ccc;
padding:1px 1px;
padding-left:4px;
margin-left:4px;
margin:0 0 30px;
}
.alfikator
ul
li{
float:left;
width:10%;
margin-right:8px;
}
.alfikator
ul
li
a{
color:#666;
text-decoration:none;
}
.alfikator
ul
li
a:hover{
color:#A3A3A3;
}
.alfikator
ul
li.active
a{
padding:2px 4px;
margin-left:-4px;
color:#333;
background:#C5DAE5;
}
/* users-lists */
h1.users-list-geo{
color:#999 ;
margin:-10px 0 3px !important;
}
h1.users-list-geo a{color:#999;}
h1.users-list-geo a:hover{color:#333;}
.lion-king{
background:url(/i/bg_lion_king.png) no-repeat 0px 0px;
width:23px;
height:20px;
position:absolute;
top:-21px;left:12px;
}
#people-list{
margin-left:-18px;
}
#people-wrapper .corplist-suggest-form{margin-bottom:10px;padding-top:0;padding-left:0;}
table.users-list{
width:100%;
}
table.users-list th {
font: normal 1em/180% Arial,sans-serif;
color:#999;
overflow:hidden;
padding:0 !important;
margin:0;
text-align:left;
}
table.users-list td {
vertical-align: top;
padding:0 0 26px;
}
table.users-list .rating-dyn {
vertical-align: top;
font-size: 1em;
width:18px;
text-align:left;
}
table.users-list .rating-dyn .rating-dyn-con{
position:relative;
width:18px;
margin-top:30px;
z-index:5;
}
table.users-list .rating-dyn .rating-dyn-con .rating-dyn-text{
position:absolute;
z-index:12;
top:-7px;
background:#fff;
padding-right:2px;
padding-top:1px;
right:5px;
text-align:right;
white-space:nowrap;
}
table.users-list .userava{
width:48px;
vertical-align: top;
}
table.users-list .userava .habrauserava{margin-top:5px;position:relative;}
table.users-list .user {
text-align: left;
padding-left: 14px;
line-height:1.2em;
color:#999;
}
table.users-list .user dl{
padding-right:3px;
}
table.users-list .user .lifetime{
font-size: 100% ;
color:#999;
}
table.users-list .user .last_post{
font-size: 100% ;
color:#999;
padding-right:20px;
}
table.users-list .user .last_post a{
color: #666666;
font-size: 100% ;
}
table.users-list .user .last_post a:hover{
color: #333;
}
table.users-list .user a {
}
table.users-list .user dt{
margin-bottom:5px;
font-size:200%;
line-height: 1em;
}
table.users-list .userkarma{
color:#74c262;
width:15%;
font-size:150%;
}
table.users-list .userrating{
color:#CC66CC;
font-size:150%;
width:10%;
}
/* yandex_direct */
#yandex_direct{padding:1.67em;}
.y5_vertical { padding: 1em 1.4em; margin-bottom: 0; }
.y5_vertical .y5_all a,
.y5_vertical .y5_how a,
#y5_direct2 .y5_all a,
#y5_direct2 .y5_how a { color: #F0F0E7 !important; }
/* highlight */
pre code {
font-size: 12px;
padding: 0.5em;
background: #f8f8f8;
display: block;
}
pre .subst,
pre .title {
font-weight: normal;
color: #000;
}
pre .comment,
pre .template_comment,
pre .javadoc,
pre .diff .header {
color: #808080;
}
pre .annotation,
pre .decorator,
pre .preprocessor,
pre .doctype,
pre .pi,
pre .chunk,
pre .shebang,
pre .apache .cbracket {
color: #808000;
}
pre .tag,
pre .tag .title,
pre .pi
pre .id,
pre .attr_selector,
pre .pseudo,
pre .literal,
pre .keyword,
pre .hexcolor,
pre .css .function,
pre .ini .title,
pre .css .class,
pre .list .title,
pre .tex .command {
color: #4d7386;
}
pre .attribute,
pre .rules .keyword,
pre .number,
pre .date,
pre .regexp,
pre .tex .special {
color: #2f98ff;
}
pre .number,
pre .regexp {
font-weight: normal;
}
pre .string,
pre .value,
pre .filter .argument,
pre .css .function .params,
pre .apache .tag {
color: #339900;
}
pre .symbol,
pre .ruby .symbol .string,
pre .ruby .symbol .keyword,
pre .ruby .symbol .keymethods,
pre .char,
pre .tex .formula {
color: #968e5b;
}
pre .phpdoc,
pre .yardoctag,
pre .javadoctag {
text-decoration: underline;
}
pre .variable,
pre .envvar,
pre .apache .sqbracket,
pre .nginx .built_in {
color: #968e5b;
}
pre .addition {
background: #baeeba;
}
pre .deletion {
background: #ffc8bd;
}
pre .diff .change {
background: #bccff9;
}
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=favicon.ico
Content-Type: image/x-icon; name=favicon.ico
Content-Location: http://habrahabr.ru/i/favicon.ico
Content-Transfer-Encoding: Base64
AAABAAIAICAAAAEAIACoEAAAJgAAABAQAAABACAAaAQAAM4QAAAoAAAAIAAAAEAA
AAABACAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAsKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/r556/7Cgfv+woH7/sqKA/7OkgP+zpIH/sqSB/7KjgP+woHz/sKB+/7Cg
fv+woH7/sqOA/7Kkgf+zpIH/s6SA/7Cgfv+woH7/sKB+/7Cgfv+woH7/rp53/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+unXj/sKB+/7Cg
fv///////////////////////////7Cgfv+woH7/sKB+/7Cgfv//////////////
/////////////7Cgfv+woH7/sKB+/7Cgfv+vn3v/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+////////////////////
////////sKB+/7Cgfv+woH7/sKB+//n69///////////////////////sKB+/7Cg
fv+woH7/sKB+/6+fe/+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7///////////////////////////+woH7/sKB+/7Cg
fv+woH7/+vr3//////////////////////+woH7/sKB+/7Cgfv+woH7/r597/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv///////////////////////////7Cgfv+woH7/sKB+/7Cgfv/29O//////////
/////////////7Cgfv+woH7/sKB+/7Cgfv+vn3v/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+////////////////////
////////sKB+/7Cgfv+woH7/sKB+//b18P//////////////////////sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7///////////////////////////+woH7/sKB+/7Cg
fv+woH7/9fTv//////////////////////+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv///////////////////////////7Cgfv+woH7/sKB+/7Cgfv//////////////
/////////////7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+////////////////////
////////////////////////////////////////////////////////sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/////////////////////////////////+vn2////
///8+/r//v7+//////////////////////+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv//////////////////////////////////////////////////////////////
/////////////7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+////////////////////
////////////////////////////////////////////////////////sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/////////////////////////////////////////
//////////////////////////////////+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv///////////////////////////7Cgfv+woH7/sKB+/7Cgfv//////////////
/////////////7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+////////////////////
////////sKB+/7Cgfv+woH7/sKB+////////////////////////////sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7///////////////////////////+woH7/sKB+/7Cg
fv+woH7///////////////////////////+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv///////////////////////////7Cgfv+woH7/sKB+/7Cgfv//////////////
/////////////7Cgfv+woH7/sKB+/7Cgfv+vn3r/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+////////////////////
////////sKB+/7Cgfv+woH7/sKB+////////////////////////////sKB+/7Cg
fv+woH7/sKB+/6+fev+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7///////////////////////////+woH7/sKB+/7Cg
fv+woH7///////////////////////////+woH7/sKB+/7Cgfv+woH7/r596/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv///////////////////////////7Cgfv+woH7/sKB+/7Cgfv//////////////
/////////////7Cgfv+woH7/sKB+/7Cgfv+woHv/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cg
fv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/7Cgfv+woH7/sKB+/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABAAAAAgAAAAAQAgAAAA
AABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwoH//sKB//7Cgf/+woH//sKB//7Cg
f/+woH//sKB//7Cgf/+woH//sKB//7Cgf/+woH//sKB//wAAAAAAAAAAsKB//7Cg
f/+woH//sKB//7Cgf/+woH//sKB//7Cgf/+woH//sKB//7Cgf/+woH//sKB//7Cg
f/8AAAAAAAAAALCgf/+woH//sKB//////////////////7Cgf/+woH//////////
////////sKB//7Cgf/+woH//AAAAAAAAAACwoH//sKB//7Cgf///////////////
//+woH//sKB//////////////////7Cgf/+woH//sKB//wAAAAAAAAAAsKB//7Cg
f/+woH//////////////////sKB//7Cgf/////////////////+woH//sKB//7Cg
f/8AAAAAAAAAALCgf/+woH//sKB//////////////////7Cgf/+woH//////////
////////sKB//7Cgf/+woH//AAAAAAAAAACwoH//sKB//7Cgf///////////////
/////////////////////////////7Cgf/+woH//sKB//wAAAAAAAAAAsKB//7Cg
f/+woH////////////////////////////////////////////+woH//sKB//7Cg
f/8AAAAAAAAAALCgf/+woH//sKB/////////////////////////////////////
////////sKB//7Cgf/+woH//AAAAAAAAAACwoH//sKB//7Cgf///////////////
//+woH//sKB//////////////////7Cgf/+woH//sKB//wAAAAAAAAAAsKB//7Cg
f/+woH//////////////////sKB//7Cgf/////////////////+woH//sKB//7Cg
f/8AAAAAAAAAALCgf/+woH//sKB//////////////////7Cgf/+woH//////////
////////sKB//7Cgf/+woH//AAAAAAAAAACwoH//sKB//7Cgf/+woH//sKB//7Cg
f/+woH//sKB//7Cgf/+woH//sKB//7Cgf/+woH//sKB//wAAAAAAAAAAsKB//7Cg
f/+woH//sKB//7Cgf/+woH//sKB//7Cgf/+woH//sKB//7Cgf/+woH//sKB//7Cg
f/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAgAEAAIAB
AACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAP//
AAD//wAA
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=karma.css
Content-Type: text/css; charset=utf-8; name=karma.css
Content-Location: http://habrahabr.ru/css/1307009785/karma.css
Content-Transfer-Encoding: 8bit
.karma-holder {
position: relative;
clear: both;
width: 100%;
height: 4em;
float: left;
border-bottom: 20px solid #fff; /*trick for IE 6*/
white-space: nowrap;
background: url(/i/bg-profile-center-line.gif) left center repeat-x;
}
.blogs h1 a {
position: relative;
font: 2.83em/2.17em Verdana, sans-serif; /*34/12*/
text-decoration: none;
}
body.blogs #main-content h1 a img {
float: left;
margin: 15px 10px 0 0;
border: 1px solid #ddd;
}
.karma,
.habraforce,
.blog-rating,
.habramoney {
font-family: Arial, Helvetica, sans-serif;
text-align: center;
float: left;
/*border: 1px solid red;*/
background: #fff;
}
.karma {
padding: 0 .83em 0 55px;
}
.karma-holder .infinity .vote {
display: none;
}
.karma-holder .infinity-sign {
display: none;
font-size: 1.83em;
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
margin-top: -5px;
color: gray;
}
.karma-holder .infinity .infinity-sign {
display: block;
}
.habraforce,
.blog-rating,
.habramoney {
padding: 0 1em;
}
.habraforce,
.blog-rating {
margin: 0 20px 0 20px;
padding-bottom: 1.1em;
}
.karma dl {float:left;}
.karma dd.vote {
margin:0 auto;
width:auto;
overflow:hidden;
display:inline;
}
.karma dt, .karma .total {
font-size: .83em;
}
.karma .total {
clear:left;
}
.karma a {
margin:3px 3px 0;
float:left;
width:9px;
height:20px;
}
.karma .mark {
float:left;
}
.karma strong {
font-weight:normal;
}
.karma .vote_plus {
background:url(/i/icos/icons_vote_karma.gif) no-repeat left top;
}
.karma .vote_minus {
background:url(/i/icos/icons_vote_karma.gif) no-repeat right top;
}
.karma.no_voting .vote_plus,
.karma.no_auth .vote_plus,
.karma.mine .vote_plus,
.karma.voted_minus .vote_plus {
background:url(/i/icos/icons_vote_karma.gif) no-repeat left bottom;
}
.karma.no_voting .vote_minus,
.karma.no_auth .vote_minus,
.karma.mine .vote_minus,
.karma.voted_plus .vote_minus {
background:url(/i/icos/icons_vote_karma.gif) no-repeat right bottom;
}
.habraforce dt,
.blog-rating dt,
.habramoney dt, .habramoney .pay {
font-size: .83em;
float: none;
}
.karma .total em {
font-style:normal;
}
.karma .mark,
.habraforce .number,
.blog-rating .number,
.habramoney .number {
font-size: 1.83em; /*22/12*/
padding: 0 .15em;
color: #fff;
}
.karma .mark {
background-color:#74c262;
}
.habraforce .number {
background: #25a8ff;
}
.blog-rating .number {
background: #d479b3;
}
.habramoney .number {
background: #ef7f35;
}
.buttons {
padding: .83em 0 0 .83em;
white-space: nowrap;
float: right;
background: #fff;
}
.blogs .buttons {
padding-left: 0;
}
.karma-holder .buttons a {margin-right:8px;}
.blogs .buttons img {
border: 1px solid #ddd;
}
.blogs .karma-holder .buttons a {margin-right:0px;margin-top:4px !important;}
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/icos/blog-small-open.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAABGdBTUEAAK/INwWK
6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFQUExURfT9
/8/o/N3w+LTP4J+/17PO4PP2+LjR47nZ8/j6+3OXrpu1yXGWrrDQ63KXrn2Zq16E
nnybr6DD2Iyswb/d84qsw+v2/bbQ4Mba6vb///X+/3aXr2uPqN/v9t7r8q66wYam
vZ290Z680KPA1oGkvdzw/KPA0uX1/KvG2XyetI6xyJmvvsHQ2H6gtNjt/GKDmcnf
7MLLz+Dz+qXA0TdDTZ67zzE3PLHO3tDf6ODz/Oz7/vz//7bR44uwyd/w+K3O39To
86fE2K3P453A1qWoq3uEjmWKo93k6dfn78PJzszW3c3m88HV5J23yqPB2Ze70ez6
/lZqeo6rwY2xy5+90NLn8q7K3Ji1yuXm59Do9HKWrZKxxtLr/LXQ4Oz6/abI36XB
1m+Uq5m80oKhuPT+/7PO33mRpavG18bj87rQ283c5NHq8+j4/f7//////////0ah
peUAAABwdFJOU///////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////////////////////wC3YWLSAAAAsUlEQVR42mKQYGe3EY9l
ZmZN9cnPz2dgzYMBDRA3LC8XChJAXEdrhiwQYGAI4eTMZ1BLyYECblElLwZTK6ZM
EGAylFeOF2QIV88GA0VfuYg0fYZoS+90INDyNzDScfVkEFbNAIIkIYeA0CCXfAYF
PREWFlsnO0nZYH62fIbkGA4OXmOpXDFnATagvZqMjIx+FnGR9jyJIGfocvFFBXqY
q7jJSIO4QJxvZqLtng8GAAEGAFBLNxR9F8JmAAAAAElFTkSuQmCC
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/icos/company-small.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAABGdBTUEAAK/INwWK
6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFrUExURZ3B
3f7//7DJ2eTt+sDX47XN3rzU6JCuwuft8dfm9Mjc6KvG2Pr8/Zu5zfL4/snc7aTB
3Ze0yszd6dTk8/b9//T+//n7/O7z94Koy/j//67G1oyqvZ6929rm7tno8rzR4JKu
wKjA0oerzsvb5oKqyUx2mMDY5djr9ZG62ZC52Or4/dn1/3OZtMnm+ICiua7J3G6U
rYuswY+wxVeBoMDb63qgv9Do84SlvI+uw9fv/dTr9OP0+snf74uswoiovef2/JSy
yL3U5MHf85zB3HGWrsnk88vm832ftYGiurvW6MHc7dbo8tvs9uz6/d3w+N3v+MLY
5sjg84aw0HOYsXSbtXact9fq9VB6nG+Yt4qz1M7k8tTo9FR/nmyVsm2UrO/6/meP
rfD8/1aAn+/7/3abs5G30YOku9Tn8snj84esycbf74iqwMPd7LzW5s7n85zB3dnt
9ev4/Y+319Ht/p3C3uz6/vz//3mbsv///wgIqscAAAB5dFJOU///////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////wClVIrsAAAA0ElEQVR42mKoAAEeIX0hHjCLAUTIssoxyrHK
Qvni8o7x/llhhQHy4kC+mDK3t7pJTnSUjU86t7IYAxOXqGQZBEiKcjExSPGWgAED
EOTzSjFUCCb62lv7FViZ5bm5CgLNU3Rgk1CNSTIO51cyUgSZbyEinKATEhrLyGkL
ts+QWSbC0yswk08gG8y3Y5YxzXDSTeUTMAfz00SEVSyLtZ0ZOT2AfA52PTaJSA3N
oiB+JXd2DgZpltLS0tzkUi01IM0izaBQDgQpwS4GcSCGAkCAAQDEsz0TMIua6gAA
AABJRU5ErkJggg==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://habrahabr.ru/i/join_button_bg.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAEAAAAaCAIAAAD5ZqGGAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA
AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U
Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6
eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8w
Mi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE
ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRv
YmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20v
eGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRv
YmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9Inht
cC5paWQ6MTY1REIxMzMyQzVCMTFFMDlBQzJEQ0I1MDVDM0RCNDEiIHhtcE1NOkRv
Y3VtZW50SUQ9InhtcC5kaWQ6MTY1REIxMzQyQzVCMTFFMDlBQzJEQ0I1MDVDM0RC
NDEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlp
ZDoxNjVEQjEzMTJDNUIxMUUwOUFDMkRDQjUwNUMzREI0MSIgc3RSZWY6ZG9jdW1l
bnRJRD0ieG1wLmRpZDoxNjVEQjEzMjJDNUIxMUUwOUFDMkRDQjUwNUMzREI0MSIv
PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
cGFja2V0IGVuZD0iciI/Pt1FlV8AAAAwSURBVHjaYnj79i0TAwMD0////8GYkZER
TMPEkOVgbJgadHmQ+L9//1D0QjFAgAEAcbMp2Vt/SuEAAAAASUVORK5CYII=
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=profile.css
Content-Type: text/css; name=profile.css
Content-Location: http://habrahabr.ru/css/1307009785/profile.css
Content-Transfer-Encoding: 8bit
/* Profile header */
.profile-header {
float: left;
font-size: 12px;
}
.nick-holder {
float: left;
width: 100%;
clear: both;
}
.profile-header h1 {
color: #666;
padding: 0;
font-size: 1em;
}
.profile-header h1 a {
font: 2.83em/135% Verdana, sans-serif; /*34px/12px*/
text-decoration: none;
color: #666;
}
.nick-holder .avatar-link {
float: left;
padding-right: 15px;
}
.nick-holder .avatar-link img, .nick-holder .edit img, .hresume .edit img {
border: 1px solid #DCDCDC;
}
.hresume .edit img {margin-left:10px;}
.nick-holder div {
float: left;
}
.nick-holder .twitter {
font: .9em/100% Arial, sans-serif;
font-weight: 400;
color: #999;
margin-bottom: 10px;
margin-top: -10px;
display: block;
float: left;
}
/* Userinfo+microformats */
.userinfo {
width: 100%;
}
.company .userinfo {
float: left;
clear:both;
margin-top: 20px;
}
.userinfo dl {
margin: 0 0 10px 0;
padding:0;
clear:left;
font-size: 1.33em; /*16/12*/
}
.userinfo dl.fn {
float: left;
clear: both;
}
.userinfo dl dt {
margin: 0;
padding: 0 .5em 0 0;
float: left;
width: 11em;
color:#666;
font-size: 83%;
font-weight:bold;
text-align: right;
}
.userinfo dl dd {
margin: 0 0 0 11em;
padding: 0 0 7px 12px;
text-align: left;
font-size: 83%;
}
/* Так выводится в профайле заголовок имя юзера */
.userinfo dl.user-name {
float: none;
clear: both;
margin: 0 0 1em 9.85em;
padding-top: 1em;
}
.userinfo
.leader-position{
font-size:0.8em;
color:#999;
}
.userinfo dl.user-name dt, .userinfo dl.user-name dd {
display: block;
float: none;
width: auto;
margin: 0;
padding: 0;
text-align: left;
color: rgb(119, 119, 119);
}
.userinfo dl.user-name dt {
font-size: 156%;
font-weight: normal;
}
.userinfo dl.fn dd a {
color: rgb(119, 119, 119);
}
.userinfo dl.user-name dd.twitter{
font-family: Arial, sans-serif;
font-size:68%;
margin:1.5em 0 1.5em -22px;
padding-left:22px;
color:#999;
background:url(/i/bg-icon-twitter.gif) no-repeat;
}
.userinfo dl.user-name dd.twitter #js-twitter-status-live{
padding-top:3px;
}
/* // Так выводится в профайле заголовок имя юзера */
/**
* Секретные заметки о пользователе
*/
.userinfo .note{}
.userinfo .note .add_note{cursor:pointer;color: green;border-bottom:1px dashed green;}
.userinfo .note .add_note.hide{display:none;}
.userinfo .note .current_note.hide{display:none;}
.userinfo .note .edit_note{display:none;}
.userinfo .note .edit_note.show{display:block;}
.userinfo .note .edit_note .description{color: #999999;font-size: 11px;margin: 2px 0 3px;overflow: hidden;}
.userinfo .note .edit_note input.text{width: 32em;}
.userinfo .note .edit_note input.btn{margin-right:0.2em;margin-top:0.5em;}
.userinfo .note .edit_note .cancel_note{cursor:pointer;color:#6DA3BD;border-bottom:1px dashed #6DA3BD;margin-left:0.2em;}
.dl_logic_wrap {
margin: 0 0 20px 0;
float: left;
width: 100%;
}
.friends_list, .blogs_list,
#favorite_companies_list, #working_in, #staff, .interests {
width: 100%;
}
.friends_list ul li, .blogs_list ul li,
#favorite_companies_list ul li, #working_in ul li, #staff ul li {
display: inline-block;
padding-left: 18px;
}
.interests ul li {
display: inline;
}
.friends_list ul li a, .blogs_list ul li a,
#favorite_companies_list ul li a, #working_in ul li a, #staff ul li a,
.interests ul li a {
margin-right: 11px;
color:#666;
font: normal 92.4%/1.5em arial;
}
.friends_list ul li a:hover, .blogs_list ul li a:hover,
#favorite_companies_list ul li a:hover, #working_in ul li a:hover, #staff ul li a:hover,
.interests ul li a:hover{
color:#A3A3A3
}
.interests ul li a {
margin: 0;
}
.friends_list ul li, #staff ul li {
background: url(/i/bg-user2.gif) 0 50% no-repeat;
}
.blogs_list ul li {
background: url(/i/icos/blog-small-open.png) 0 60% no-repeat;
line-height: 150%;
}
#favorite_companies_list ul li, #working_in ul li {
padding-left: 20px;
background: url(/i/icos/company-small.png) 0 60% no-repeat;
line-height: 150%;
}
.ICQ a, .Skype a {
text-decoration: none;
}
.ICQ a img {
margin: -.1em 3px 0 0;
}
.ICQ a > img {
margin-top: -.5em;
}
.Skype a img {
margin-right: 3px;
}
.Skype a > img {
margin-top: -.5em;
}
/* Marking links to user's mutual friends and groups */
.friends_list ul li a.cross, .blogs_list ul li a.cross,
#favorite_companies_list ul li a.cross, #working_in ul li a.cross,
#staff ul li a.cross,
.interests ul li a.cross {
font-weight: bold;
}
.profile .banner {
margin-top: 2em;
}
.profile .
.company .userinfo {
margin: 20px 0 20px 0;
}
/* Recommendations (user to user) */
.user-recommend-user {clear:both;}
/* // Recommendations (user to user) */
/* Companies section */
.profile .live, .company .tag-cloud {
background: #f0f0e7 url(/i/bg-corner-top-left.gif) no-repeat 0 0;
padding: 0;
}
.company .tag-cloud ul {
float: left;
margin: 0 20px 20px;
}
.company .live ol {
margin: 0 1.67em;
}
.company .live ol li {
line-height: 130%;
margin-bottom: .42em; /*5px*/
color: #999;
}
.company .live ol li a:hover {
text-decoration: none;
color: #fff;
background: #6c6;
}
.company .new-feedbacks div div {
padding-bottom: .84em; /*10px*/
}
#stats h2 {
font: normal 2.17em/110% Verdana, sans-serif; /*26/12*/
color: #999;
padding-bottom: .38em;
}
#stats dl {
margin: .83em 0;
}
#stats dl dt, #stats dd, #stats dl ul, #stats dl ul li {
display: inline;
}
#stats dl dt {
font: normal 1.5em/110% Verdana, sans-serif;
margin-right: .3em;
letter-spacing: -1px;
color: #ccc;
}
#stats dd {
line-height: 190%;
color: #666;
}
#stats dd li {
margin-right: .3em;
}
#stats dd a {
color: #999;
}
.friends_list ul .empty_spaces, #staff ul .empty_spaces {
margin-left:-0.7em;
background:none;
padding-left:0;
font-size:92.4%;
line-height:1.5em;
}
/* Шапка профайла компании */
.profile-title {margin: 0 0 20px 0;}
.profile-title .favicon {float: left; clear:both; margin: .75em 23px 0 23px;}
.profile-title h1 {
font: 2.5em/100% Verdana,sans-serif; /*30px/12px*/
}
.profile-title h1 a {color: #666; text-decoration: none;}
.profile-title h1 a.admin-link {color: #ccc; font-size: 70%;text-decoration: none;}
.profile-title h1 a.admin-link:hover {color: green;}
/* Отзывы пользователей о компании */
.company-comments {float:left; clear:both; width:100%;}
/* Resume */
.hresume h2 {
font: 1.67em Arial, sans-serif; /*20/12*/
margin-top: 30px;
margin-left: 7.75em;
margin-bottom: 20px;
letter-spacing: -1px;
color: #333;
float: none;
clear: both;
}
.hresume dl dd {
line-height: 100%;
}
#habrastat {
margin-top: 40px;
}
.hresume .price_block {
padding-top:1em;
}
.hresume .price_block span {
color:#666633;
font-size:2.8em;
letter-spacing:-1px;
line-height: 120%;
}
.hresume .price_block span.price {
color:#fff;
background-color:#9CC;
font-size:1.1em;
}
.hresume .user-name {
padding-top:0;
}
.hresume .hire_block span {
color:#E3A2A0;
font-family:arial,sans-serif;
font-size:2.6em;
letter-spacing:-1px;
line-height:40px;
}
.hresume .hire_block input.hire_button {
background-color:#E3A2A0;
color:#FFF;
font-size:1.1em;
}
.resume .vevent {margin-bottom:30px;}
/* Форма выборки постов в разделе "Моё" профайла */
.filter-form ul {
margin: 0 0 0 15px;
padding-bottom: 10px;
}
.filter-form li {float: left; clear: both; margin-bottom: 5px;}
.filter-form input, .filter-form label {float: left;}
input.show {
float: right;
clear: both;
margin: -10px 10px 10px 0;
}
/*Вакансии пользователя*/
.user-vacancies ol {
list-style: decimal;
margin: 0 10px 20px 40px;
color: #999;
}
.user-vacancies {line-height: 170%;}
/* Блок с выводом Избранного, постов и комментов юзера. Отступы для топиков и комментов */
.comments .items {
float: left;
clear: both;
width: 100%;
margin-top: 30px;
}
/* Юзернеймы и компании внутри хабратопиков и комментариев */
a.user_link {
padding-left:14px;
color:#666;
font: normal 92.4%/1.5em arial;
background: url(/i/bg-user2.gif) 0 60% no-repeat;
}
.company_link {
padding-left:14px;
color:#666;
font: normal 92.4%/1.5em arial;
background: url(/i/bg-company.gif) 0 60% no-repeat;
}
.company-header .js-addFan,
.company-header .js-removeFan,
#js-addWorker,
#js-removeWorker,
span#js-companyWorkerInactive,
span#js-companyFanInactive {
margin-top: 15px;
display: block;
width: 30px;
float: left;
background-repeat: no-repeat;
}
.company-header .js-addFan.hidden,
.company-header .js-removeFan.hidden,
#js-addWorker.hidden,
#js-removeWorker.hidden {
display: none;
}
.company-header a.js-addFan {
background-image: url('/i/company-fav.gif');
height: 19px;
margin-left: 27px;
}
.company-header a.js-removeFan {
background-image: url('/i/company-fav.gif');
background-position: left -19px;
height: 19px;
margin-left: 27px;
}
span#js-companyFanInactive {
background-image: url('/i/company-fav.gif');
background-position: left -57px;
height: 19px;
width: 24px;
}
a#js-addWorker {
background-image: url('/i/company-work.gif');
height: 20px;
}
a#js-removeWorker {
background-image: url('/i/company-work.gif');
background-position: left -20px;
height: 20px;
}
span#js-companyWorkerInactive {
background-image: url('/i/company-work.gif');
background-position: left -60px;
height: 20px;
width: 28px;
}
a#js-blogInfoSwitcher,
a.js-addBlogMember,
a.js-removeBlogMember {
height: 20px;
display: block;
float: left;
background-repeat: no-repeat;
background-color: white;
}
a.js-addBlogMember,
a.js-removeBlogMember {
padding: 5px;
height:16px;
display: block;
background: #dbdbdb url(/i/join_button_bg.png) repeat-x left top;
text-shadow: 0 1px #ededed;
color: #6b6b6b;
text-decoration:none;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
border-style: solid;
border-width: 1px;
font-weight:bold;
border-color: #afafaf #a9a9a9 #a3a3a3;
}
a:hover.js-addBlogMember,
a:hover.js-removeBlogMember{color:#5b5b5b}
a.js-addBlogMember.hidden,
a.js-removeBlogMember.hidden {
display: none;
}
a#js-blogInfoSwitcher {
width: 22px;
background-image: url(/i/icos/blog-info.gif);
}
a#js-blogInfoSwitcher.regular {
background-position: left top;
}
a#js-blogInfoSwitcher.regular:hover {
background-position: left bottom;
}
a#js-blogInfoSwitcher.active {
background-position: left bottom;
}
#js-invitationList {
height: 300px;
margin-left: 10px;
margin-right: 10px;
overflow: auto;
overflow-x: hidden;
}
.bloginfo{}
.bloginfo .blog-about-text-content{margin:0 1.67em 1.67em !important;overflow:hidden;}
.bloginfo .blog-about-text-content .join{float:left;overflow:hidden;margin-top:6px;}
.bloginfo .blog-about-text-content .stats{float:left;overflow:hidden;color:#999999;font-size:133%;margin-right:20px;}
.bloginfo .blog-about-text-content .is_banned{float:left;overflow:hidden;width: 180px;color:#999999;font-size:133%;}
.bloginfo .blog-about-text-content .is_banned img{float:left;margin-right:10px;}
.bloginfo .blog-about-text-content .is_banned span{float:left;margin-top:2px;}
#user-contacts .label {
display: block;
width: 270px;
float: left;
}
#user-contacts .end {
display: block;
}
#user-contacts .achtung-minen {
clear: both;
}
#user-contacts .js-field-holder input {
display: block;
float: left;
}
#user-contacts .label .name {
display: block;
width: 100px;
font-weight: bold;
float: left;
}
#user-contacts .label .begin {
display: block;
width: 170px;
float: right;
text-align: right;
}
#user-contacts .end, #user-contacts .begin {
font-size: 10px;
vertical-align: middle;
padding-top: 3px;
color: gray;
}
#invite-list {margin-top: 15px;}
#invite-list ul li {clear: both; padding-bottom: 10px;}
#invite-list ul li img {float:left; width: 24px; margin-right: 5px;}
#invite-list ul li a {line-height: 24px;}
#invite-list ul li a.idontlikeyouanymore { color: #c00; text-decoration: none;}
#invite-list .delete {color: #ddd; text-decoration: none;}
#invite-list .delete:hover {color: red;}
.friends_list ul li.banned a {text-decoration: line-through;}
.profile-buttons {
margin: 8px 0 0 20px;
}
.profile-buttons a {
margin-left: 10px;
}
.notes{margin-left:35px;}
.notes table{}
.notes table tr{}
.notes table tr th{text-align:left;padding:5px;border-bottom:2px solid #aaa;}
.notes table tr td{text-align:left;padding:5px;border-bottom:1px solid #eee;}
.notes table tr td.date{color:#666666;font-size:11px;}
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=category_blogs.css
Content-Type: text/css; name=category_blogs.css
Content-Location: http://habrahabr.ru/css/1307009785/sidebar/category_blogs.css
Content-Transfer-Encoding: 8bit
/**
* Блок - Другие блоги из выбранной категории.
*/
.category_blogs{}
.category_blogs h3{}
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=best_company.css
Content-Type: text/css; name=best_company.css
Content-Location: http://habrahabr.ru/css/1307009785/sidebar/best_company.css
Content-Transfer-Encoding: 8bit
/**
* Блок - компания недели
*/
.best_company{}
.best_company h3{}
.best_company h3 .help-tip{margin-bottom:2px;cursor:pointer;}
.best_company .company_info{margin-bottom:20px;}
.best_company .company_info .name{overflow:hidden;margin-left: 20px;margin-right: 20px;}
.best_company .company_info .name img{float:left;font-size:33%;height:16px;margin:8px 10px 0px 0px;line-height: 1em;width: 16px;}
.best_company .company_info .name a{float:left;font-size: 208%;}
.best_company .company_info p{}
.best_company .company_info p a{color:#666666}
.best_company .company_info p a:hover{color:#a3a3a3}
.best_company .company_info .like{overflow:hidden;margin-left:20px;}
.best_company .company_info #fans_count{float:left;margin-right:10px;color: #999999;font-size: 133%;margin-top:3px;}
a.js-addFan-Company,
a.js-removeFan-Company {
height: 20px;
display: block;
float: left;
background-repeat: no-repeat;
background-color: white;
padding: 5px;
height:16px;
display: block;
background: #dbdbdb url(/i/join_button_bg.png) repeat-x left top;
text-shadow: 0 1px #ededed;
color: #6b6b6b;
text-decoration:none;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
border-style: solid;
border-width: 1px;
font-weight:bold;
border-color: #afafaf #a9a9a9 #a3a3a3;
}
a:hover.js-addFan-Company,
a:hover.js-removeFan-Company{color:#5b5b5b}
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=mootools-1.2-core-yc.js
Content-Type: application/x-javascript; charset=utf-8; name=mootools-1.2-core-yc.js
Content-Location: http://habrahabr.ru/js/1307009785/mootools-1.2-core-yc.js
Content-Transfer-Encoding: Base64
Ly9Nb29Ub29scywgPGh0dHA6Ly9tb290b29scy5uZXQ+LCBNeSBPYmplY3QgT3Jp
ZW50ZWQgKEphdmFTY3JpcHQpIFRvb2xzLiBDb3B5cmlnaHQgKGMpIDIwMDYtMjAw
OCBWYWxlcmlvIFByb2lldHRpLCA8aHR0cDovL21hZDRtaWxrLm5ldD4sIE1JVCBT
dHlsZSBMaWNlbnNlLgoKdmFyIE1vb1Rvb2xzPXt2ZXJzaW9uOiIxLjIuMCIsYnVp
bGQ6IiJ9O3ZhciBOYXRpdmU9ZnVuY3Rpb24oSil7Sj1KfHx7fTt2YXIgRj1KLmFm
dGVySW1wbGVtZW50fHxmdW5jdGlvbigpe307dmFyIEc9Si5nZW5lcmljcztHPShH
IT09ZmFsc2UpO3ZhciBIPUoubGVnYWN5Owp2YXIgRT1KLmluaXRpYWxpemU7dmFy
IEI9Si5wcm90ZWN0O3ZhciBBPUoubmFtZTt2YXIgQz1FfHxIO0MuY29uc3RydWN0
b3I9TmF0aXZlO0MuJGZhbWlseT17bmFtZToibmF0aXZlIn07aWYoSCYmRSl7Qy5w
cm90b3R5cGU9SC5wcm90b3R5cGU7fUMucHJvdG90eXBlLmNvbnN0cnVjdG9yPUM7
CmlmKEEpe3ZhciBEPUEudG9Mb3dlckNhc2UoKTtDLnByb3RvdHlwZS4kZmFtaWx5
PXtuYW1lOkR9O05hdGl2ZS50eXBpemUoQyxEKTt9dmFyIEk9ZnVuY3Rpb24oTSxL
LE4sTCl7aWYoIUJ8fEx8fCFNLnByb3RvdHlwZVtLXSl7TS5wcm90b3R5cGVbS109
Tjt9aWYoRyl7TmF0aXZlLmdlbmVyaWNpemUoTSxLLEIpOwp9Ri5jYWxsKE0sSyxO
KTtyZXR1cm4gTTt9O0MuaW1wbGVtZW50PWZ1bmN0aW9uKEwsSyxOKXtpZih0eXBl
b2YgTD09InN0cmluZyIpe3JldHVybiBJKHRoaXMsTCxLLE4pO31mb3IodmFyIE0g
aW4gTCl7SSh0aGlzLE0sTFtNXSxLKTt9cmV0dXJuIHRoaXM7fTtDLmFsaWFzPWZ1
bmN0aW9uKE0sSyxOKXtpZih0eXBlb2YgTT09InN0cmluZyIpe009dGhpcy5wcm90
b3R5cGVbTV07CmlmKE0pe0kodGhpcyxLLE0sTik7fX1lbHNle2Zvcih2YXIgTCBp
biBNKXt0aGlzLmFsaWFzKEwsTVtMXSxLKTt9fXJldHVybiB0aGlzO307cmV0dXJu
IEM7fTtOYXRpdmUuaW1wbGVtZW50PWZ1bmN0aW9uKEQsQyl7Zm9yKHZhciBCPTAs
QT1ELmxlbmd0aDtCPEE7QisrKXtEW0JdLmltcGxlbWVudChDKTsKfX07TmF0aXZl
LmdlbmVyaWNpemU9ZnVuY3Rpb24oQixDLEEpe2lmKCghQXx8IUJbQ10pJiZ0eXBl
b2YgQi5wcm90b3R5cGVbQ109PSJmdW5jdGlvbiIpe0JbQ109ZnVuY3Rpb24oKXt2
YXIgRD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVy
biBCLnByb3RvdHlwZVtDXS5hcHBseShELnNoaWZ0KCksRCk7Cn07fX07TmF0aXZl
LnR5cGl6ZT1mdW5jdGlvbihBLEIpe2lmKCFBLnR5cGUpe0EudHlwZT1mdW5jdGlv
bihDKXtyZXR1cm4oJHR5cGUoQyk9PT1CKTt9O319O05hdGl2ZS5hbGlhcz1mdW5j
dGlvbihFLEIsQSxGKXtmb3IodmFyIEQ9MCxDPUUubGVuZ3RoO0Q8QztEKyspe0Vb
RF0uYWxpYXMoQixBLEYpOwp9fTsoZnVuY3Rpb24oQil7Zm9yKHZhciBBIGluIEIp
e05hdGl2ZS50eXBpemUoQltBXSxBKTt9fSkoeyJib29sZWFuIjpCb29sZWFuLCJu
YXRpdmUiOk5hdGl2ZSxvYmplY3Q6T2JqZWN0fSk7KGZ1bmN0aW9uKEIpe2Zvcih2
YXIgQSBpbiBCKXtuZXcgTmF0aXZlKHtuYW1lOkEsaW5pdGlhbGl6ZTpCW0FdLHBy
b3RlY3Q6dHJ1ZX0pOwp9fSkoe1N0cmluZzpTdHJpbmcsRnVuY3Rpb246RnVuY3Rp
b24sTnVtYmVyOk51bWJlcixBcnJheTpBcnJheSxSZWdFeHA6UmVnRXhwLERhdGU6
RGF0ZX0pOyhmdW5jdGlvbihCLEEpe2Zvcih2YXIgQz1BLmxlbmd0aDtDLS07Qyl7
TmF0aXZlLmdlbmVyaWNpemUoQixBW0NdLHRydWUpOwp9cmV0dXJuIGFyZ3VtZW50
cy5jYWxsZWU7fSkoQXJyYXksWyJwb3AiLCJwdXNoIiwicmV2ZXJzZSIsInNoaWZ0
Iiwic29ydCIsInNwbGljZSIsInVuc2hpZnQiLCJjb25jYXQiLCJqb2luIiwic2xp
Y2UiLCJ0b1N0cmluZyIsInZhbHVlT2YiLCJpbmRleE9mIiwibGFzdEluZGV4T2Yi
XSkoU3RyaW5nLFsiY2hhckF0IiwiY2hhckNvZGVBdCIsImNvbmNhdCIsImluZGV4
T2YiLCJsYXN0SW5kZXhPZiIsIm1hdGNoIiwicmVwbGFjZSIsInNlYXJjaCIsInNs
aWNlIiwic3BsaXQiLCJzdWJzdHIiLCJzdWJzdHJpbmciLCJ0b0xvd2VyQ2FzZSIs
InRvVXBwZXJDYXNlIiwidmFsdWVPZiJdKTsKZnVuY3Rpb24gJGNoayhBKXtyZXR1
cm4gISEoQXx8QT09PTApO31mdW5jdGlvbiAkY2xlYXIoQSl7Y2xlYXJUaW1lb3V0
KEEpO2NsZWFySW50ZXJ2YWwoQSk7cmV0dXJuIG51bGw7fWZ1bmN0aW9uICRkZWZp
bmVkKEEpe3JldHVybihBIT11bmRlZmluZWQpO31mdW5jdGlvbiAkZW1wdHkoKXt9
ZnVuY3Rpb24gJGFyZ3VtZW50cyhBKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4g
YXJndW1lbnRzW0FdOwp9O31mdW5jdGlvbiAkbGFtYmRhKEEpe3JldHVybih0eXBl
b2YgQT09ImZ1bmN0aW9uIik/QTpmdW5jdGlvbigpe3JldHVybiBBO307fWZ1bmN0
aW9uICRleHRlbmQoQyxBKXtmb3IodmFyIEIgaW4gKEF8fHt9KSl7Q1tCXT1BW0Jd
O31yZXR1cm4gQzt9ZnVuY3Rpb24gJHVubGluayhDKXt2YXIgQjsKc3dpdGNoKCR0
eXBlKEMpKXtjYXNlIm9iamVjdCI6Qj17fTtmb3IodmFyIEUgaW4gQyl7QltFXT0k
dW5saW5rKENbRV0pO31icmVhaztjYXNlImhhc2giOkI9JHVubGluayhDLmdldENs
ZWFuKCkpO2JyZWFrO2Nhc2UiYXJyYXkiOkI9W107Zm9yKHZhciBEPTAsQT1DLmxl
bmd0aDsKRDxBO0QrKyl7QltEXT0kdW5saW5rKENbRF0pO31icmVhaztkZWZhdWx0
OnJldHVybiBDO31yZXR1cm4gQjt9ZnVuY3Rpb24gJG1lcmdlKCl7dmFyIEU9e307
Zm9yKHZhciBEPTAsQT1hcmd1bWVudHMubGVuZ3RoO0Q8QTtEKyspe3ZhciBCPWFy
Z3VtZW50c1tEXTtpZigkdHlwZShCKSE9Im9iamVjdCIpe2NvbnRpbnVlOwp9Zm9y
KHZhciBDIGluIEIpe3ZhciBHPUJbQ10sRj1FW0NdO0VbQ109KEYmJiR0eXBlKEcp
PT0ib2JqZWN0IiYmJHR5cGUoRik9PSJvYmplY3QiKT8kbWVyZ2UoRixHKTokdW5s
aW5rKEcpO319cmV0dXJuIEU7fWZ1bmN0aW9uICRwaWNrKCl7Zm9yKHZhciBCPTAs
QT1hcmd1bWVudHMubGVuZ3RoOwpCPEE7QisrKXtpZihhcmd1bWVudHNbQl0hPXVu
ZGVmaW5lZCl7cmV0dXJuIGFyZ3VtZW50c1tCXTt9fXJldHVybiBudWxsO31mdW5j
dGlvbiAkcmFuZG9tKEIsQSl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20o
KSooQS1CKzEpK0IpO31mdW5jdGlvbiAkc3BsYXQoQil7dmFyIEE9JHR5cGUoQik7
CnJldHVybihBKT8oKEEhPSJhcnJheSImJkEhPSJhcmd1bWVudHMiKT9bQl06Qik6
W107fXZhciAkdGltZT1EYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERh
dGUoKS5nZXRUaW1lKCk7fTtmdW5jdGlvbiAkdHJ5KCl7Zm9yKHZhciBCPTAsQT1h
cmd1bWVudHMubGVuZ3RoOwpCPEE7QisrKXt0cnl7cmV0dXJuIGFyZ3VtZW50c1tC
XSgpO31jYXRjaChDKXt9fXJldHVybiBudWxsO31mdW5jdGlvbiAkdHlwZShBKXtp
ZihBPT11bmRlZmluZWQpe3JldHVybiBmYWxzZTt9aWYoQS4kZmFtaWx5KXtyZXR1
cm4oQS4kZmFtaWx5Lm5hbWU9PSJudW1iZXIiJiYhaXNGaW5pdGUoQSkpP2ZhbHNl
OkEuJGZhbWlseS5uYW1lOwp9aWYoQS5ub2RlTmFtZSl7c3dpdGNoKEEubm9kZVR5
cGUpe2Nhc2UgMTpyZXR1cm4iZWxlbWVudCI7Y2FzZSAzOnJldHVybigvXFMvKS50
ZXN0KEEubm9kZVZhbHVlKT8idGV4dG5vZGUiOiJ3aGl0ZXNwYWNlIjt9fWVsc2V7
aWYodHlwZW9mIEEubGVuZ3RoPT0ibnVtYmVyIil7aWYoQS5jYWxsZWUpe3JldHVy
biJhcmd1bWVudHMiOwp9ZWxzZXtpZihBLml0ZW0pe3JldHVybiJjb2xsZWN0aW9u
Ijt9fX19cmV0dXJuIHR5cGVvZiBBO312YXIgSGFzaD1uZXcgTmF0aXZlKHtuYW1l
OiJIYXNoIixpbml0aWFsaXplOmZ1bmN0aW9uKEEpe2lmKCR0eXBlKEEpPT0iaGFz
aCIpe0E9JHVubGluayhBLmdldENsZWFuKCkpOwp9Zm9yKHZhciBCIGluIEEpe3Ro
aXNbQl09QVtCXTt9cmV0dXJuIHRoaXM7fX0pO0hhc2guaW1wbGVtZW50KHtnZXRM
ZW5ndGg6ZnVuY3Rpb24oKXt2YXIgQj0wO2Zvcih2YXIgQSBpbiB0aGlzKXtpZih0
aGlzLmhhc093blByb3BlcnR5KEEpKXtCKys7fX1yZXR1cm4gQjsKfSxmb3JFYWNo
OmZ1bmN0aW9uKEIsQyl7Zm9yKHZhciBBIGluIHRoaXMpe2lmKHRoaXMuaGFzT3du
UHJvcGVydHkoQSkpe0IuY2FsbChDLHRoaXNbQV0sQSx0aGlzKTt9fX0sZ2V0Q2xl
YW46ZnVuY3Rpb24oKXt2YXIgQj17fTtmb3IodmFyIEEgaW4gdGhpcyl7aWYodGhp
cy5oYXNPd25Qcm9wZXJ0eShBKSl7QltBXT10aGlzW0FdOwp9fXJldHVybiBCO319
KTtIYXNoLmFsaWFzKCJmb3JFYWNoIiwiZWFjaCIpO2Z1bmN0aW9uICRIKEEpe3Jl
dHVybiBuZXcgSGFzaChBKTt9QXJyYXkuaW1wbGVtZW50KHtmb3JFYWNoOmZ1bmN0
aW9uKEMsRCl7Zm9yKHZhciBCPTAsQT10aGlzLmxlbmd0aDtCPEE7QisrKXtDLmNh
bGwoRCx0aGlzW0JdLEIsdGhpcyk7Cn19fSk7QXJyYXkuYWxpYXMoImZvckVhY2gi
LCJlYWNoIik7ZnVuY3Rpb24gJEEoQyl7aWYoQy5pdGVtKXt2YXIgRD1bXTtmb3Io
dmFyIEI9MCxBPUMubGVuZ3RoO0I8QTtCKyspe0RbQl09Q1tCXTt9cmV0dXJuIEQ7
fXJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChDKTsKfWZ1bmN0aW9u
ICRlYWNoKEMsQixEKXt2YXIgQT0kdHlwZShDKTsoKEE9PSJhcmd1bWVudHMifHxB
PT0iY29sbGVjdGlvbiJ8fEE9PSJhcnJheSIpP0FycmF5Okhhc2gpLmVhY2goQyxC
LEQpO312YXIgQnJvd3Nlcj1uZXcgSGFzaCh7RW5naW5lOntuYW1lOiJ1bmtub3du
Iix2ZXJzaW9uOiIifSxQbGF0Zm9ybTp7bmFtZToobmF2aWdhdG9yLnBsYXRmb3Jt
Lm1hdGNoKC9tYWN8d2lufGxpbnV4L2kpfHxbIm90aGVyIl0pWzBdLnRvTG93ZXJD
YXNlKCl9LEZlYXR1cmVzOnt4cGF0aDohIShkb2N1bWVudC5ldmFsdWF0ZSksYWly
OiEhKHdpbmRvdy5ydW50aW1lKX0sUGx1Z2luczp7fX0pOwppZih3aW5kb3cub3Bl
cmEpe0Jyb3dzZXIuRW5naW5lPXtuYW1lOiJwcmVzdG8iLHZlcnNpb246KGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpPzk1MDo5MjV9O31lbHNle2lmKHdp
bmRvdy5BY3RpdmVYT2JqZWN0KXtCcm93c2VyLkVuZ2luZT17bmFtZToidHJpZGVu
dCIsdmVyc2lvbjood2luZG93LlhNTEh0dHBSZXF1ZXN0KT81OjR9Owp9ZWxzZXtp
ZighbmF2aWdhdG9yLnRhaW50RW5hYmxlZCl7QnJvd3Nlci5FbmdpbmU9e25hbWU6
IndlYmtpdCIsdmVyc2lvbjooQnJvd3Nlci5GZWF0dXJlcy54cGF0aCk/NDIwOjQx
OX07fWVsc2V7aWYoZG9jdW1lbnQuZ2V0Qm94T2JqZWN0Rm9yIT1udWxsKXtCcm93
c2VyLkVuZ2luZT17bmFtZToiZ2Vja28iLHZlcnNpb246KGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUpPzE5OjE4fTsKfX19fUJyb3dzZXIuRW5naW5lW0Jy
b3dzZXIuRW5naW5lLm5hbWVdPUJyb3dzZXIuRW5naW5lW0Jyb3dzZXIuRW5naW5l
Lm5hbWUrQnJvd3Nlci5FbmdpbmUudmVyc2lvbl09dHJ1ZTtpZih3aW5kb3cub3Jp
ZW50YXRpb24hPXVuZGVmaW5lZCl7QnJvd3Nlci5QbGF0Zm9ybS5uYW1lPSJpcG9k
IjsKfUJyb3dzZXIuUGxhdGZvcm1bQnJvd3Nlci5QbGF0Zm9ybS5uYW1lXT10cnVl
O0Jyb3dzZXIuUmVxdWVzdD1mdW5jdGlvbigpe3JldHVybiAkdHJ5KGZ1bmN0aW9u
KCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdCgpO30sZnVuY3Rpb24oKXtyZXR1
cm4gbmV3IEFjdGl2ZVhPYmplY3QoIk1TWE1MMi5YTUxIVFRQIik7Cn0pO307QnJv
d3Nlci5GZWF0dXJlcy54aHI9ISEoQnJvd3Nlci5SZXF1ZXN0KCkpO0Jyb3dzZXIu
UGx1Z2lucy5GbGFzaD0oZnVuY3Rpb24oKXt2YXIgQT0oJHRyeShmdW5jdGlvbigp
e3JldHVybiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl0uZGVz
Y3JpcHRpb247Cn0sZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3Qo
IlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIikuR2V0VmFyaWFibGUoIiR2
ZXJzaW9uIik7fSl8fCIwIHIwIikubWF0Y2goL1xkKy9nKTtyZXR1cm57dmVyc2lv
bjpwYXJzZUludChBWzBdfHwwKyIuIitBWzFdfHwwKSxidWlsZDpwYXJzZUludChB
WzJdfHwwKX07Cn0pKCk7ZnVuY3Rpb24gJGV4ZWMoQil7aWYoIUIpe3JldHVybiBC
O31pZih3aW5kb3cuZXhlY1NjcmlwdCl7d2luZG93LmV4ZWNTY3JpcHQoQik7fWVs
c2V7dmFyIEE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7QS5zZXRB
dHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKTsKQS50ZXh0PUI7ZG9j
dW1lbnQuaGVhZC5hcHBlbmRDaGlsZChBKTtkb2N1bWVudC5oZWFkLnJlbW92ZUNo
aWxkKEEpO31yZXR1cm4gQjt9TmF0aXZlLlVJRD0xO3ZhciAkdWlkPShCcm93c2Vy
LkVuZ2luZS50cmlkZW50KT9mdW5jdGlvbihBKXtyZXR1cm4oQS51aWR8fChBLnVp
ZD1bTmF0aXZlLlVJRCsrXSkpWzBdOwp9OmZ1bmN0aW9uKEEpe3JldHVybiBBLnVp
ZHx8KEEudWlkPU5hdGl2ZS5VSUQrKyk7fTt2YXIgV2luZG93PW5ldyBOYXRpdmUo
e25hbWU6IldpbmRvdyIsbGVnYWN5OihCcm93c2VyLkVuZ2luZS50cmlkZW50KT9u
dWxsOndpbmRvdy5XaW5kb3csaW5pdGlhbGl6ZTpmdW5jdGlvbihBKXskdWlkKEEp
OwppZighQS5FbGVtZW50KXtBLkVsZW1lbnQ9JGVtcHR5O2lmKEJyb3dzZXIuRW5n
aW5lLndlYmtpdCl7QS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTt9
QS5FbGVtZW50LnByb3RvdHlwZT0oQnJvd3Nlci5FbmdpbmUud2Via2l0KT93aW5k
b3dbIltbRE9NRWxlbWVudC5wcm90b3R5cGVdXSJdOnt9Owp9cmV0dXJuICRleHRl
bmQoQSxXaW5kb3cuUHJvdG90eXBlKTt9LGFmdGVySW1wbGVtZW50OmZ1bmN0aW9u
KEIsQSl7d2luZG93W0JdPVdpbmRvdy5Qcm90b3R5cGVbQl09QTt9fSk7V2luZG93
LlByb3RvdHlwZT17JGZhbWlseTp7bmFtZToid2luZG93In19O25ldyBXaW5kb3co
d2luZG93KTsKdmFyIERvY3VtZW50PW5ldyBOYXRpdmUoe25hbWU6IkRvY3VtZW50
IixsZWdhY3k6KEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpP251bGw6d2luZG93LkRv
Y3VtZW50LGluaXRpYWxpemU6ZnVuY3Rpb24oQSl7JHVpZChBKTtBLmhlYWQ9QS5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdOwpBLmh0bWw9QS5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiaHRtbCIpWzBdO0Eud2luZG93PUEuZGVmYXVsdFZpZXd8
fEEucGFyZW50V2luZG93O2lmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQ0KXskdHJ5
KGZ1bmN0aW9uKCl7QS5leGVjQ29tbWFuZCgiQmFja2dyb3VuZEltYWdlQ2FjaGUi
LGZhbHNlLHRydWUpOwp9KTt9cmV0dXJuICRleHRlbmQoQSxEb2N1bWVudC5Qcm90
b3R5cGUpO30sYWZ0ZXJJbXBsZW1lbnQ6ZnVuY3Rpb24oQixBKXtkb2N1bWVudFtC
XT1Eb2N1bWVudC5Qcm90b3R5cGVbQl09QTt9fSk7RG9jdW1lbnQuUHJvdG90eXBl
PXskZmFtaWx5OntuYW1lOiJkb2N1bWVudCJ9fTsKbmV3IERvY3VtZW50KGRvY3Vt
ZW50KTtBcnJheS5pbXBsZW1lbnQoe2V2ZXJ5OmZ1bmN0aW9uKEMsRCl7Zm9yKHZh
ciBCPTAsQT10aGlzLmxlbmd0aDtCPEE7QisrKXtpZighQy5jYWxsKEQsdGhpc1tC
XSxCLHRoaXMpKXtyZXR1cm4gZmFsc2U7fX1yZXR1cm4gdHJ1ZTsKfSxmaWx0ZXI6
ZnVuY3Rpb24oRCxFKXt2YXIgQz1bXTtmb3IodmFyIEI9MCxBPXRoaXMubGVuZ3Ro
O0I8QTtCKyspe2lmKEQuY2FsbChFLHRoaXNbQl0sQix0aGlzKSl7Qy5wdXNoKHRo
aXNbQl0pO319cmV0dXJuIEM7fSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiB0aGlz
LmZpbHRlcigkZGVmaW5lZCk7Cn0saW5kZXhPZjpmdW5jdGlvbihDLEQpe3ZhciBB
PXRoaXMubGVuZ3RoO2Zvcih2YXIgQj0oRDwwKT9NYXRoLm1heCgwLEErRCk6RHx8
MDtCPEE7QisrKXtpZih0aGlzW0JdPT09Qyl7cmV0dXJuIEI7fX1yZXR1cm4gLTE7
fSxtYXA6ZnVuY3Rpb24oRCxFKXt2YXIgQz1bXTsKZm9yKHZhciBCPTAsQT10aGlz
Lmxlbmd0aDtCPEE7QisrKXtDW0JdPUQuY2FsbChFLHRoaXNbQl0sQix0aGlzKTt9
cmV0dXJuIEM7fSxzb21lOmZ1bmN0aW9uKEMsRCl7Zm9yKHZhciBCPTAsQT10aGlz
Lmxlbmd0aDtCPEE7QisrKXtpZihDLmNhbGwoRCx0aGlzW0JdLEIsdGhpcykpe3Jl
dHVybiB0cnVlOwp9fXJldHVybiBmYWxzZTt9LGFzc29jaWF0ZTpmdW5jdGlvbihD
KXt2YXIgRD17fSxCPU1hdGgubWluKHRoaXMubGVuZ3RoLEMubGVuZ3RoKTtmb3Io
dmFyIEE9MDtBPEI7QSsrKXtEW0NbQV1dPXRoaXNbQV07fXJldHVybiBEO30sbGlu
azpmdW5jdGlvbihDKXt2YXIgQT17fTsKZm9yKHZhciBFPTAsQj10aGlzLmxlbmd0
aDtFPEI7RSsrKXtmb3IodmFyIEQgaW4gQyl7aWYoQ1tEXSh0aGlzW0VdKSl7QVtE
XT10aGlzW0VdO2RlbGV0ZSBDW0RdO2JyZWFrO319fXJldHVybiBBO30sY29udGFp
bnM6ZnVuY3Rpb24oQSxCKXtyZXR1cm4gdGhpcy5pbmRleE9mKEEsQikhPS0xOwp9
LGV4dGVuZDpmdW5jdGlvbihDKXtmb3IodmFyIEI9MCxBPUMubGVuZ3RoO0I8QTtC
Kyspe3RoaXMucHVzaChDW0JdKTt9cmV0dXJuIHRoaXM7fSxnZXRMYXN0OmZ1bmN0
aW9uKCl7cmV0dXJuKHRoaXMubGVuZ3RoKT90aGlzW3RoaXMubGVuZ3RoLTFdOm51
bGw7fSxnZXRSYW5kb206ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5sZW5ndGgpP3Ro
aXNbJHJhbmRvbSgwLHRoaXMubGVuZ3RoLTEpXTpudWxsOwp9LGluY2x1ZGU6ZnVu
Y3Rpb24oQSl7aWYoIXRoaXMuY29udGFpbnMoQSkpe3RoaXMucHVzaChBKTt9cmV0
dXJuIHRoaXM7fSxjb21iaW5lOmZ1bmN0aW9uKEMpe2Zvcih2YXIgQj0wLEE9Qy5s
ZW5ndGg7QjxBO0IrKyl7dGhpcy5pbmNsdWRlKENbQl0pO31yZXR1cm4gdGhpczsK
fSxlcmFzZTpmdW5jdGlvbihCKXtmb3IodmFyIEE9dGhpcy5sZW5ndGg7QS0tO0Ep
e2lmKHRoaXNbQV09PT1CKXt0aGlzLnNwbGljZShBLDEpO319cmV0dXJuIHRoaXM7
fSxlbXB0eTpmdW5jdGlvbigpe3RoaXMubGVuZ3RoPTA7cmV0dXJuIHRoaXM7fSxm
bGF0dGVuOmZ1bmN0aW9uKCl7dmFyIEQ9W107CmZvcih2YXIgQj0wLEE9dGhpcy5s
ZW5ndGg7QjxBO0IrKyl7dmFyIEM9JHR5cGUodGhpc1tCXSk7aWYoIUMpe2NvbnRp
bnVlO31EPUQuY29uY2F0KChDPT0iYXJyYXkifHxDPT0iY29sbGVjdGlvbiJ8fEM9
PSJhcmd1bWVudHMiKT9BcnJheS5mbGF0dGVuKHRoaXNbQl0pOnRoaXNbQl0pOwp9
cmV0dXJuIEQ7fSxoZXhUb1JnYjpmdW5jdGlvbihCKXtpZih0aGlzLmxlbmd0aCE9
Myl7cmV0dXJuIG51bGw7fXZhciBBPXRoaXMubWFwKGZ1bmN0aW9uKEMpe2lmKEMu
bGVuZ3RoPT0xKXtDKz1DO31yZXR1cm4gQy50b0ludCgxNik7fSk7cmV0dXJuKEIp
P0E6InJnYigiK0ErIikiOwp9LHJnYlRvSGV4OmZ1bmN0aW9uKEQpe2lmKHRoaXMu
bGVuZ3RoPDMpe3JldHVybiBudWxsO31pZih0aGlzLmxlbmd0aD09NCYmdGhpc1sz
XT09MCYmIUQpe3JldHVybiJ0cmFuc3BhcmVudCI7fXZhciBCPVtdO2Zvcih2YXIg
QT0wO0E8MztBKyspe3ZhciBDPSh0aGlzW0FdLTApLnRvU3RyaW5nKDE2KTsKQi5w
dXNoKChDLmxlbmd0aD09MSk/IjAiK0M6Qyk7fXJldHVybihEKT9COiIjIitCLmpv
aW4oIiIpO319KTtGdW5jdGlvbi5pbXBsZW1lbnQoe2V4dGVuZDpmdW5jdGlvbihB
KXtmb3IodmFyIEIgaW4gQSl7dGhpc1tCXT1BW0JdO31yZXR1cm4gdGhpczt9LGNy
ZWF0ZTpmdW5jdGlvbihCKXt2YXIgQT10aGlzOwpCPUJ8fHt9O3JldHVybiBmdW5j
dGlvbihEKXt2YXIgQz1CLmFyZ3VtZW50cztDPShDIT11bmRlZmluZWQpPyRzcGxh
dChDKTpBcnJheS5zbGljZShhcmd1bWVudHMsKEIuZXZlbnQpPzE6MCk7aWYoQi5l
dmVudCl7Qz1bRHx8d2luZG93LmV2ZW50XS5leHRlbmQoQyk7Cn12YXIgRT1mdW5j
dGlvbigpe3JldHVybiBBLmFwcGx5KEIuYmluZHx8bnVsbCxDKTt9O2lmKEIuZGVs
YXkpe3JldHVybiBzZXRUaW1lb3V0KEUsQi5kZWxheSk7fWlmKEIucGVyaW9kaWNh
bCl7cmV0dXJuIHNldEludGVydmFsKEUsQi5wZXJpb2RpY2FsKTt9aWYoQi5hdHRl
bXB0KXtyZXR1cm4gJHRyeShFKTsKfXJldHVybiBFKCk7fTt9LHBhc3M6ZnVuY3Rp
b24oQSxCKXtyZXR1cm4gdGhpcy5jcmVhdGUoe2FyZ3VtZW50czpBLGJpbmQ6Qn0p
O30sYXR0ZW1wdDpmdW5jdGlvbihBLEIpe3JldHVybiB0aGlzLmNyZWF0ZSh7YXJn
dW1lbnRzOkEsYmluZDpCLGF0dGVtcHQ6dHJ1ZX0pKCk7Cn0sYmluZDpmdW5jdGlv
bihCLEEpe3JldHVybiB0aGlzLmNyZWF0ZSh7YmluZDpCLGFyZ3VtZW50czpBfSk7
fSxiaW5kV2l0aEV2ZW50OmZ1bmN0aW9uKEIsQSl7cmV0dXJuIHRoaXMuY3JlYXRl
KHtiaW5kOkIsZXZlbnQ6dHJ1ZSxhcmd1bWVudHM6QX0pO30sZGVsYXk6ZnVuY3Rp
b24oQixDLEEpe3JldHVybiB0aGlzLmNyZWF0ZSh7ZGVsYXk6QixiaW5kOkMsYXJn
dW1lbnRzOkF9KSgpOwp9LHBlcmlvZGljYWw6ZnVuY3Rpb24oQSxDLEIpe3JldHVy
biB0aGlzLmNyZWF0ZSh7cGVyaW9kaWNhbDpBLGJpbmQ6Qyxhcmd1bWVudHM6Qn0p
KCk7fSxydW46ZnVuY3Rpb24oQSxCKXtyZXR1cm4gdGhpcy5hcHBseShCLCRzcGxh
dChBKSk7fX0pO051bWJlci5pbXBsZW1lbnQoe2xpbWl0OmZ1bmN0aW9uKEIsQSl7
cmV0dXJuIE1hdGgubWluKEEsTWF0aC5tYXgoQix0aGlzKSk7Cn0scm91bmQ6ZnVu
Y3Rpb24oQSl7QT1NYXRoLnBvdygxMCxBfHwwKTtyZXR1cm4gTWF0aC5yb3VuZCh0
aGlzKkEpL0E7fSx0aW1lczpmdW5jdGlvbihCLEMpe2Zvcih2YXIgQT0wO0E8dGhp
cztBKyspe0IuY2FsbChDLEEsdGhpcyk7fX0sdG9GbG9hdDpmdW5jdGlvbigpe3Jl
dHVybiBwYXJzZUZsb2F0KHRoaXMpOwp9LHRvSW50OmZ1bmN0aW9uKEEpe3JldHVy
biBwYXJzZUludCh0aGlzLEF8fDEwKTt9fSk7TnVtYmVyLmFsaWFzKCJ0aW1lcyIs
ImVhY2giKTsoZnVuY3Rpb24oQil7dmFyIEE9e307Qi5lYWNoKGZ1bmN0aW9uKEMp
e2lmKCFOdW1iZXJbQ10pe0FbQ109ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aFtDXS5h
cHBseShudWxsLFt0aGlzXS5jb25jYXQoJEEoYXJndW1lbnRzKSkpOwp9O319KTtO
dW1iZXIuaW1wbGVtZW50KEEpO30pKFsiYWJzIiwiYWNvcyIsImFzaW4iLCJhdGFu
IiwiYXRhbjIiLCJjZWlsIiwiY29zIiwiZXhwIiwiZmxvb3IiLCJsb2ciLCJtYXgi
LCJtaW4iLCJwb3ciLCJzaW4iLCJzcXJ0IiwidGFuIl0pO1N0cmluZy5pbXBsZW1l
bnQoe3Rlc3Q6ZnVuY3Rpb24oQSxCKXtyZXR1cm4oKHR5cGVvZiBBPT0ic3RyaW5n
Iik/bmV3IFJlZ0V4cChBLEIpOkEpLnRlc3QodGhpcyk7Cn0sY29udGFpbnM6ZnVu
Y3Rpb24oQSxCKXtyZXR1cm4oQik/KEIrdGhpcytCKS5pbmRleE9mKEIrQStCKT4t
MTp0aGlzLmluZGV4T2YoQSk+LTE7fSx0cmltOmZ1bmN0aW9uKCl7cmV0dXJuIHRo
aXMucmVwbGFjZSgvXlxzK3xccyskL2csIiIpO30sY2xlYW46ZnVuY3Rpb24oKXty
ZXR1cm4gdGhpcy5yZXBsYWNlKC9ccysvZywiICIpLnRyaW0oKTsKfSxjYW1lbENh
c2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC8tXEQvZyxmdW5jdGlv
bihBKXtyZXR1cm4gQS5jaGFyQXQoMSkudG9VcHBlckNhc2UoKTt9KTt9LGh5cGhl
bmF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlcGxhY2UoL1tBLVpdL2csZnVu
Y3Rpb24oQSl7cmV0dXJuKCItIitBLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpKTsK
fSk7fSxjYXBpdGFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVwbGFjZSgv
XGJbYS16XS9nLGZ1bmN0aW9uKEEpe3JldHVybiBBLnRvVXBwZXJDYXNlKCk7fSk7
fSxlc2NhcGVSZWdFeHA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC8o
Wy0uKis/XiR7fSgpfFtcXVwvXFxdKS9nLCJcXCQxIik7Cn0sdG9JbnQ6ZnVuY3Rp
b24oQSl7cmV0dXJuIHBhcnNlSW50KHRoaXMsQXx8MTApO30sdG9GbG9hdDpmdW5j
dGlvbigpe3JldHVybiBwYXJzZUZsb2F0KHRoaXMpO30saGV4VG9SZ2I6ZnVuY3Rp
b24oQil7dmFyIEE9dGhpcy5tYXRjaCgvXiM/KFx3ezEsMn0pKFx3ezEsMn0pKFx3
ezEsMn0pJC8pOwpyZXR1cm4oQSk/QS5zbGljZSgxKS5oZXhUb1JnYihCKTpudWxs
O30scmdiVG9IZXg6ZnVuY3Rpb24oQil7dmFyIEE9dGhpcy5tYXRjaCgvXGR7MSwz
fS9nKTtyZXR1cm4oQSk/QS5yZ2JUb0hleChCKTpudWxsO30sc3RyaXBTY3JpcHRz
OmZ1bmN0aW9uKEIpe3ZhciBBPSIiOwp2YXIgQz10aGlzLnJlcGxhY2UoLzxzY3Jp
cHRbXj5dKj4oW1xzXFNdKj8pPFwvc2NyaXB0Pi9naSxmdW5jdGlvbigpe0ErPWFy
Z3VtZW50c1sxXSsiXG4iO3JldHVybiIiO30pO2lmKEI9PT10cnVlKXskZXhlYyhB
KTt9ZWxzZXtpZigkdHlwZShCKT09ImZ1bmN0aW9uIil7QihBLEMpOwp9fXJldHVy
biBDO30sc3Vic3RpdHV0ZTpmdW5jdGlvbihBLEIpe3JldHVybiB0aGlzLnJlcGxh
Y2UoQnx8KC9cXD9ceyhbXn1dKylcfS9nKSxmdW5jdGlvbihELEMpe2lmKEQuY2hh
ckF0KDApPT0iXFwiKXtyZXR1cm4gRC5zbGljZSgxKTt9cmV0dXJuKEFbQ10hPXVu
ZGVmaW5lZCk/QVtDXToiIjsKfSk7fX0pO0hhc2guaW1wbGVtZW50KHtoYXM6T2Jq
ZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxrZXlPZjpmdW5jdGlvbihCKXtm
b3IodmFyIEEgaW4gdGhpcyl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShBKSYmdGhp
c1tBXT09PUIpe3JldHVybiBBO319cmV0dXJuIG51bGw7Cn0saGFzVmFsdWU6ZnVu
Y3Rpb24oQSl7cmV0dXJuKEhhc2gua2V5T2YodGhpcyxBKSE9PW51bGwpO30sZXh0
ZW5kOmZ1bmN0aW9uKEEpe0hhc2guZWFjaChBLGZ1bmN0aW9uKEMsQil7SGFzaC5z
ZXQodGhpcyxCLEMpO30sdGhpcyk7cmV0dXJuIHRoaXM7fSxjb21iaW5lOmZ1bmN0
aW9uKEEpe0hhc2guZWFjaChBLGZ1bmN0aW9uKEMsQil7SGFzaC5pbmNsdWRlKHRo
aXMsQixDKTsKfSx0aGlzKTtyZXR1cm4gdGhpczt9LGVyYXNlOmZ1bmN0aW9uKEEp
e2lmKHRoaXMuaGFzT3duUHJvcGVydHkoQSkpe2RlbGV0ZSB0aGlzW0FdO31yZXR1
cm4gdGhpczt9LGdldDpmdW5jdGlvbihBKXtyZXR1cm4odGhpcy5oYXNPd25Qcm9w
ZXJ0eShBKSk/dGhpc1tBXTpudWxsOwp9LHNldDpmdW5jdGlvbihBLEIpe2lmKCF0
aGlzW0FdfHx0aGlzLmhhc093blByb3BlcnR5KEEpKXt0aGlzW0FdPUI7fXJldHVy
biB0aGlzO30sZW1wdHk6ZnVuY3Rpb24oKXtIYXNoLmVhY2godGhpcyxmdW5jdGlv
bihCLEEpe2RlbGV0ZSB0aGlzW0FdO30sdGhpcyk7CnJldHVybiB0aGlzO30saW5j
bHVkZTpmdW5jdGlvbihCLEMpe3ZhciBBPXRoaXNbQl07aWYoQT09dW5kZWZpbmVk
KXt0aGlzW0JdPUM7fXJldHVybiB0aGlzO30sbWFwOmZ1bmN0aW9uKEIsQyl7dmFy
IEE9bmV3IEhhc2g7SGFzaC5lYWNoKHRoaXMsZnVuY3Rpb24oRSxEKXtBLnNldChE
LEIuY2FsbChDLEUsRCx0aGlzKSk7Cn0sdGhpcyk7cmV0dXJuIEE7fSxmaWx0ZXI6
ZnVuY3Rpb24oQixDKXt2YXIgQT1uZXcgSGFzaDtIYXNoLmVhY2godGhpcyxmdW5j
dGlvbihFLEQpe2lmKEIuY2FsbChDLEUsRCx0aGlzKSl7QS5zZXQoRCxFKTt9fSx0
aGlzKTtyZXR1cm4gQTt9LGV2ZXJ5OmZ1bmN0aW9uKEIsQyl7Zm9yKHZhciBBIGlu
IHRoaXMpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoQSkmJiFCLmNhbGwoQyx0aGlz
W0FdLEEpKXtyZXR1cm4gZmFsc2U7Cn19cmV0dXJuIHRydWU7fSxzb21lOmZ1bmN0
aW9uKEIsQyl7Zm9yKHZhciBBIGluIHRoaXMpe2lmKHRoaXMuaGFzT3duUHJvcGVy
dHkoQSkmJkIuY2FsbChDLHRoaXNbQV0sQSkpe3JldHVybiB0cnVlO319cmV0dXJu
IGZhbHNlO30sZ2V0S2V5czpmdW5jdGlvbigpe3ZhciBBPVtdOwpIYXNoLmVhY2go
dGhpcyxmdW5jdGlvbihDLEIpe0EucHVzaChCKTt9KTtyZXR1cm4gQTt9LGdldFZh
bHVlczpmdW5jdGlvbigpe3ZhciBBPVtdO0hhc2guZWFjaCh0aGlzLGZ1bmN0aW9u
KEIpe0EucHVzaChCKTt9KTtyZXR1cm4gQTt9LHRvUXVlcnlTdHJpbmc6ZnVuY3Rp
b24oQSl7dmFyIEI9W107Ckhhc2guZWFjaCh0aGlzLGZ1bmN0aW9uKEYsRSl7aWYo
QSl7RT1BKyJbIitFKyJdIjt9dmFyIEQ7c3dpdGNoKCR0eXBlKEYpKXtjYXNlIm9i
amVjdCI6RD1IYXNoLnRvUXVlcnlTdHJpbmcoRixFKTticmVhaztjYXNlImFycmF5
Ijp2YXIgQz17fTtGLmVhY2goZnVuY3Rpb24oSCxHKXtDW0ddPUg7Cn0pO0Q9SGFz
aC50b1F1ZXJ5U3RyaW5nKEMsRSk7YnJlYWs7ZGVmYXVsdDpEPUUrIj0iK2VuY29k
ZVVSSUNvbXBvbmVudChGKTt9aWYoRiE9dW5kZWZpbmVkKXtCLnB1c2goRCk7fX0p
O3JldHVybiBCLmpvaW4oIiYiKTt9fSk7SGFzaC5hbGlhcyh7a2V5T2Y6ImluZGV4
T2YiLGhhc1ZhbHVlOiJjb250YWlucyJ9KTsKdmFyIEV2ZW50PW5ldyBOYXRpdmUo
e25hbWU6IkV2ZW50Iixpbml0aWFsaXplOmZ1bmN0aW9uKEEsRil7Rj1GfHx3aW5k
b3c7dmFyIEs9Ri5kb2N1bWVudDtBPUF8fEYuZXZlbnQ7aWYoQS4kZXh0ZW5kZWQp
e3JldHVybiBBO310aGlzLiRleHRlbmRlZD10cnVlO3ZhciBKPUEudHlwZTsKdmFy
IEc9QS50YXJnZXR8fEEuc3JjRWxlbWVudDt3aGlsZShHJiZHLm5vZGVUeXBlPT0z
KXtHPUcucGFyZW50Tm9kZTt9aWYoSi50ZXN0KC9rZXkvKSl7dmFyIEI9QS53aGlj
aHx8QS5rZXlDb2RlO3ZhciBNPUV2ZW50LktleXMua2V5T2YoQik7aWYoSj09Imtl
eWRvd24iKXt2YXIgRD1CLTExMTsKaWYoRD4wJiZEPDEzKXtNPSJmIitEO319TT1N
fHxTdHJpbmcuZnJvbUNoYXJDb2RlKEIpLnRvTG93ZXJDYXNlKCk7fWVsc2V7aWYo
Si5tYXRjaCgvKGNsaWNrfG1vdXNlfG1lbnUpL2kpKXtLPSghSy5jb21wYXRNb2Rl
fHxLLmNvbXBhdE1vZGU9PSJDU1MxQ29tcGF0Iik/Sy5odG1sOksuYm9keTsKdmFy
IEk9e3g6QS5wYWdlWHx8QS5jbGllbnRYK0suc2Nyb2xsTGVmdCx5OkEucGFnZVl8
fEEuY2xpZW50WStLLnNjcm9sbFRvcH07dmFyIEM9e3g6KEEucGFnZVgpP0EucGFn
ZVgtRi5wYWdlWE9mZnNldDpBLmNsaWVudFgseTooQS5wYWdlWSk/QS5wYWdlWS1G
LnBhZ2VZT2Zmc2V0OkEuY2xpZW50WX07CmlmKEoubWF0Y2goL0RPTU1vdXNlU2Ny
b2xsfG1vdXNld2hlZWwvKSl7dmFyIEg9KEEud2hlZWxEZWx0YSk/QS53aGVlbERl
bHRhLzEyMDotKEEuZGV0YWlsfHwwKS8zO312YXIgRT0oQS53aGljaD09Myl8fChB
LmJ1dHRvbj09Mik7dmFyIEw9bnVsbDtpZihKLm1hdGNoKC9vdmVyfG91dC8pKXtz
d2l0Y2goSil7Y2FzZSJtb3VzZW92ZXIiOkw9QS5yZWxhdGVkVGFyZ2V0fHxBLmZy
b21FbGVtZW50OwpicmVhaztjYXNlIm1vdXNlb3V0IjpMPUEucmVsYXRlZFRhcmdl
dHx8QS50b0VsZW1lbnQ7fWlmKCEoZnVuY3Rpb24oKXt3aGlsZShMJiZMLm5vZGVU
eXBlPT0zKXtMPUwucGFyZW50Tm9kZTt9cmV0dXJuIHRydWU7fSkuY3JlYXRlKHth
dHRlbXB0OkJyb3dzZXIuRW5naW5lLmdlY2tvfSkoKSl7TD1mYWxzZTsKfX19fXJl
dHVybiAkZXh0ZW5kKHRoaXMse2V2ZW50OkEsdHlwZTpKLHBhZ2U6SSxjbGllbnQ6
QyxyaWdodENsaWNrOkUsd2hlZWw6SCxyZWxhdGVkVGFyZ2V0OkwsdGFyZ2V0Okcs
Y29kZTpCLGtleTpNLHNoaWZ0OkEuc2hpZnRLZXksY29udHJvbDpBLmN0cmxLZXks
YWx0OkEuYWx0S2V5LG1ldGE6QS5tZXRhS2V5fSk7Cn19KTtFdmVudC5LZXlzPW5l
dyBIYXNoKHtlbnRlcjoxMyx1cDozOCxkb3duOjQwLGxlZnQ6MzcscmlnaHQ6Mzks
ZXNjOjI3LHNwYWNlOjMyLGJhY2tzcGFjZTo4LHRhYjo5LCJkZWxldGUiOjQ2fSk7
RXZlbnQuaW1wbGVtZW50KHtzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3Rv
cFByb3BhZ2F0aW9uKCkucHJldmVudERlZmF1bHQoKTsKfSxzdG9wUHJvcGFnYXRp
b246ZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50LnN0b3BQcm9wYWdhdGlvbil7dGhp
cy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTt9ZWxzZXt0aGlzLmV2ZW50LmNhbmNl
bEJ1YmJsZT10cnVlO31yZXR1cm4gdGhpczt9LHByZXZlbnREZWZhdWx0OmZ1bmN0
aW9uKCl7aWYodGhpcy5ldmVudC5wcmV2ZW50RGVmYXVsdCl7dGhpcy5ldmVudC5w
cmV2ZW50RGVmYXVsdCgpOwp9ZWxzZXt0aGlzLmV2ZW50LnJldHVyblZhbHVlPWZh
bHNlO31yZXR1cm4gdGhpczt9fSk7dmFyIENsYXNzPW5ldyBOYXRpdmUoe25hbWU6
IkNsYXNzIixpbml0aWFsaXplOmZ1bmN0aW9uKEIpe0I9Qnx8e307dmFyIEE9ZnVu
Y3Rpb24oRSl7Zm9yKHZhciBEIGluIHRoaXMpe3RoaXNbRF09JHVubGluayh0aGlz
W0RdKTsKfWZvcih2YXIgRiBpbiBDbGFzcy5NdXRhdG9ycyl7aWYoIXRoaXNbRl0p
e2NvbnRpbnVlO31DbGFzcy5NdXRhdG9yc1tGXSh0aGlzLHRoaXNbRl0pO2RlbGV0
ZSB0aGlzW0ZdO310aGlzLmNvbnN0cnVjdG9yPUE7aWYoRT09PSRlbXB0eSl7cmV0
dXJuIHRoaXM7fXZhciBDPSh0aGlzLmluaXRpYWxpemUpP3RoaXMuaW5pdGlhbGl6
ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpczsKaWYodGhpcy5vcHRpb25zJiZ0
aGlzLm9wdGlvbnMuaW5pdGlhbGl6ZSl7dGhpcy5vcHRpb25zLmluaXRpYWxpemUu
Y2FsbCh0aGlzKTt9cmV0dXJuIEM7fTskZXh0ZW5kKEEsdGhpcyk7QS5jb25zdHJ1
Y3Rvcj1DbGFzcztBLnByb3RvdHlwZT1CO3JldHVybiBBO319KTsKQ2xhc3MuaW1w
bGVtZW50KHtpbXBsZW1lbnQ6ZnVuY3Rpb24oKXtDbGFzcy5NdXRhdG9ycy5JbXBs
ZW1lbnRzKHRoaXMucHJvdG90eXBlLEFycmF5LnNsaWNlKGFyZ3VtZW50cykpO3Jl
dHVybiB0aGlzO319KTtDbGFzcy5NdXRhdG9ycz17SW1wbGVtZW50czpmdW5jdGlv
bihBLEIpeyRzcGxhdChCKS5lYWNoKGZ1bmN0aW9uKEMpeyRleHRlbmQoQSwoJHR5
cGUoQyk9PSJjbGFzcyIpP25ldyBDKCRlbXB0eSk6Qyk7Cn0pO30sRXh0ZW5kczpm
dW5jdGlvbihzZWxmLGtsYXNzKXt2YXIgaW5zdGFuY2U9bmV3IGtsYXNzKCRlbXB0
eSk7ZGVsZXRlIGluc3RhbmNlLnBhcmVudDtkZWxldGUgaW5zdGFuY2UucGFyZW50
T2Y7Zm9yKHZhciBrZXkgaW4gaW5zdGFuY2Upe3ZhciBjdXJyZW50PXNlbGZba2V5
XSxwcmV2aW91cz1pbnN0YW5jZVtrZXldOwppZihjdXJyZW50PT11bmRlZmluZWQp
e3NlbGZba2V5XT1wcmV2aW91cztjb250aW51ZTt9dmFyIGN0eXBlPSR0eXBlKGN1
cnJlbnQpLHB0eXBlPSR0eXBlKHByZXZpb3VzKTtpZihjdHlwZSE9cHR5cGUpe2Nv
bnRpbnVlO31zd2l0Y2goY3R5cGUpe2Nhc2UiZnVuY3Rpb24iOmlmKCFhcmd1bWVu
dHMuY2FsbGVlLmNhbGxlcil7c2VsZltrZXldPWV2YWwoIigiK1N0cmluZyhjdXJy
ZW50KS5yZXBsYWNlKC9cYnRoaXNcLnBhcmVudFwoXHMqKFwpKT8vZyxmdW5jdGlv
bihmdWxsLGNsb3NlKXtyZXR1cm4iYXJndW1lbnRzLmNhbGxlZS5fcGFyZW50Xy5j
YWxsKHRoaXMiKyhjbG9zZXx8IiwgIik7Cn0pKyIpIik7fXNlbGZba2V5XS5fcGFy
ZW50Xz1wcmV2aW91czticmVhaztjYXNlIm9iamVjdCI6c2VsZltrZXldPSRtZXJn
ZShwcmV2aW91cyxjdXJyZW50KTt9fXNlbGYucGFyZW50PWZ1bmN0aW9uKCl7cmV0
dXJuIGFyZ3VtZW50cy5jYWxsZWUuY2FsbGVyLl9wYXJlbnRfLmFwcGx5KHRoaXMs
YXJndW1lbnRzKTsKfTtzZWxmLnBhcmVudE9mPWZ1bmN0aW9uKGRlc2NlbmRhbnQp
e3JldHVybiBkZXNjZW5kYW50Ll9wYXJlbnRfLmFwcGx5KHRoaXMsQXJyYXkuc2xp
Y2UoYXJndW1lbnRzLDEpKTt9O319O3ZhciBDaGFpbj1uZXcgQ2xhc3Moe2NoYWlu
OmZ1bmN0aW9uKCl7dGhpcy4kY2hhaW49KHRoaXMuJGNoYWlufHxbXSkuZXh0ZW5k
KGFyZ3VtZW50cyk7CnJldHVybiB0aGlzO30sY2FsbENoYWluOmZ1bmN0aW9uKCl7
cmV0dXJuKHRoaXMuJGNoYWluJiZ0aGlzLiRjaGFpbi5sZW5ndGgpP3RoaXMuJGNo
YWluLnNoaWZ0KCkuYXBwbHkodGhpcyxhcmd1bWVudHMpOmZhbHNlO30sY2xlYXJD
aGFpbjpmdW5jdGlvbigpe2lmKHRoaXMuJGNoYWluKXt0aGlzLiRjaGFpbi5lbXB0
eSgpOwp9cmV0dXJuIHRoaXM7fX0pO3ZhciBFdmVudHM9bmV3IENsYXNzKHthZGRF
dmVudDpmdW5jdGlvbihDLEIsQSl7Qz1FdmVudHMucmVtb3ZlT24oQyk7aWYoQiE9
JGVtcHR5KXt0aGlzLiRldmVudHM9dGhpcy4kZXZlbnRzfHx7fTt0aGlzLiRldmVu
dHNbQ109dGhpcy4kZXZlbnRzW0NdfHxbXTsKdGhpcy4kZXZlbnRzW0NdLmluY2x1
ZGUoQik7aWYoQSl7Qi5pbnRlcm5hbD10cnVlO319cmV0dXJuIHRoaXM7fSxhZGRF
dmVudHM6ZnVuY3Rpb24oQSl7Zm9yKHZhciBCIGluIEEpe3RoaXMuYWRkRXZlbnQo
QixBW0JdKTt9cmV0dXJuIHRoaXM7fSxmaXJlRXZlbnQ6ZnVuY3Rpb24oQyxCLEEp
e0M9RXZlbnRzLnJlbW92ZU9uKEMpOwppZighdGhpcy4kZXZlbnRzfHwhdGhpcy4k
ZXZlbnRzW0NdKXtyZXR1cm4gdGhpczt9dGhpcy4kZXZlbnRzW0NdLmVhY2goZnVu
Y3Rpb24oRCl7RC5jcmVhdGUoe2JpbmQ6dGhpcyxkZWxheTpBLCJhcmd1bWVudHMi
OkJ9KSgpO30sdGhpcyk7cmV0dXJuIHRoaXM7fSxyZW1vdmVFdmVudDpmdW5jdGlv
bihCLEEpe0I9RXZlbnRzLnJlbW92ZU9uKEIpOwppZighdGhpcy4kZXZlbnRzfHwh
dGhpcy4kZXZlbnRzW0JdKXtyZXR1cm4gdGhpczt9aWYoIUEuaW50ZXJuYWwpe3Ro
aXMuJGV2ZW50c1tCXS5lcmFzZShBKTt9cmV0dXJuIHRoaXM7fSxyZW1vdmVFdmVu
dHM6ZnVuY3Rpb24oQyl7Zm9yKHZhciBEIGluIHRoaXMuJGV2ZW50cyl7aWYoQyYm
QyE9RCl7Y29udGludWU7Cn12YXIgQj10aGlzLiRldmVudHNbRF07Zm9yKHZhciBB
PUIubGVuZ3RoO0EtLTtBKXt0aGlzLnJlbW92ZUV2ZW50KEQsQltBXSk7fX1yZXR1
cm4gdGhpczt9fSk7RXZlbnRzLnJlbW92ZU9uPWZ1bmN0aW9uKEEpe3JldHVybiBB
LnJlcGxhY2UoL15vbihbQS1aXSkvLGZ1bmN0aW9uKEIsQyl7cmV0dXJuIEMudG9M
b3dlckNhc2UoKTsKfSk7fTt2YXIgT3B0aW9ucz1uZXcgQ2xhc3Moe3NldE9wdGlv
bnM6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnM9JG1lcmdlLnJ1bihbdGhpcy5vcHRp
b25zXS5leHRlbmQoYXJndW1lbnRzKSk7aWYoIXRoaXMuYWRkRXZlbnQpe3JldHVy
biB0aGlzO31mb3IodmFyIEEgaW4gdGhpcy5vcHRpb25zKXtpZigkdHlwZSh0aGlz
Lm9wdGlvbnNbQV0pIT0iZnVuY3Rpb24ifHwhKC9eb25bQS1aXS8pLnRlc3QoQSkp
e2NvbnRpbnVlOwp9dGhpcy5hZGRFdmVudChBLHRoaXMub3B0aW9uc1tBXSk7ZGVs
ZXRlIHRoaXMub3B0aW9uc1tBXTt9cmV0dXJuIHRoaXM7fX0pO0RvY3VtZW50Lmlt
cGxlbWVudCh7bmV3RWxlbWVudDpmdW5jdGlvbihBLEIpe2lmKEJyb3dzZXIuRW5n
aW5lLnRyaWRlbnQmJkIpe1sibmFtZSIsInR5cGUiLCJjaGVja2VkIl0uZWFjaChm
dW5jdGlvbihDKXtpZighQltDXSl7cmV0dXJuIDsKfUErPSIgIitDKyc9IicrQltD
XSsnIic7aWYoQyE9ImNoZWNrZWQiKXtkZWxldGUgQltDXTt9fSk7QT0iPCIrQSsi
PiI7fXJldHVybiAkLmVsZW1lbnQodGhpcy5jcmVhdGVFbGVtZW50KEEpKS5zZXQo
Qik7fSxuZXdUZXh0Tm9kZTpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5jcmVhdGVU
ZXh0Tm9kZShBKTsKfSxnZXREb2N1bWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlz
O30sZ2V0V2luZG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdFZpZXd8
fHRoaXMucGFyZW50V2luZG93O30scHVyZ2U6ZnVuY3Rpb24oKXt2YXIgQz10aGlz
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIik7CmZvcih2YXIgQj0wLEE9Qy5sZW5n
dGg7QjxBO0IrKyl7QnJvd3Nlci5mcmVlTWVtKENbQl0pO319fSk7dmFyIEVsZW1l
bnQ9bmV3IE5hdGl2ZSh7bmFtZToiRWxlbWVudCIsbGVnYWN5OndpbmRvdy5FbGVt
ZW50LGluaXRpYWxpemU6ZnVuY3Rpb24oQSxCKXt2YXIgQz1FbGVtZW50LkNvbnN0
cnVjdG9ycy5nZXQoQSk7CmlmKEMpe3JldHVybiBDKEIpO31pZih0eXBlb2YgQT09
InN0cmluZyIpe3JldHVybiBkb2N1bWVudC5uZXdFbGVtZW50KEEsQik7fXJldHVy
biAkKEEpLnNldChCKTt9LGFmdGVySW1wbGVtZW50OmZ1bmN0aW9uKEEsQil7aWYo
IUFycmF5W0FdKXtFbGVtZW50cy5pbXBsZW1lbnQoQSxFbGVtZW50cy5tdWx0aShB
KSk7Cn1FbGVtZW50LlByb3RvdHlwZVtBXT1CO319KTtFbGVtZW50LlByb3RvdHlw
ZT17JGZhbWlseTp7bmFtZToiZWxlbWVudCJ9fTtFbGVtZW50LkNvbnN0cnVjdG9y
cz1uZXcgSGFzaDt2YXIgSUZyYW1lPW5ldyBOYXRpdmUoe25hbWU6IklGcmFtZSIs
Z2VuZXJpY3M6ZmFsc2UsaW5pdGlhbGl6ZTpmdW5jdGlvbigpe3ZhciBFPUFycmF5
LmxpbmsoYXJndW1lbnRzLHtwcm9wZXJ0aWVzOk9iamVjdC50eXBlLGlmcmFtZTok
ZGVmaW5lZH0pOwp2YXIgQz1FLnByb3BlcnRpZXN8fHt9O3ZhciBCPSQoRS5pZnJh
bWUpfHxmYWxzZTt2YXIgRD1DLm9ubG9hZHx8JGVtcHR5O2RlbGV0ZSBDLm9ubG9h
ZDtDLmlkPUMubmFtZT0kcGljayhDLmlkLEMubmFtZSxCLmlkLEIubmFtZSwiSUZy
YW1lXyIrJHRpbWUoKSk7Qj1uZXcgRWxlbWVudChCfHwiaWZyYW1lIixDKTsKdmFy
IEE9ZnVuY3Rpb24oKXt2YXIgRj0kdHJ5KGZ1bmN0aW9uKCl7cmV0dXJuIEIuY29u
dGVudFdpbmRvdy5sb2NhdGlvbi5ob3N0O30pO2lmKEYmJkY9PXdpbmRvdy5sb2Nh
dGlvbi5ob3N0KXt2YXIgSD1uZXcgV2luZG93KEIuY29udGVudFdpbmRvdyk7dmFy
IEc9bmV3IERvY3VtZW50KEIuY29udGVudFdpbmRvdy5kb2N1bWVudCk7CiRleHRl
bmQoSC5FbGVtZW50LnByb3RvdHlwZSxFbGVtZW50LlByb3RvdHlwZSk7fUQuY2Fs
bChCLmNvbnRlbnRXaW5kb3csQi5jb250ZW50V2luZG93LmRvY3VtZW50KTt9Oygh
d2luZG93LmZyYW1lc1tDLmlkXSk/Qi5hZGRMaXN0ZW5lcigibG9hZCIsQSk6QSgp
O3JldHVybiBCOwp9fSk7dmFyIEVsZW1lbnRzPW5ldyBOYXRpdmUoe2luaXRpYWxp
emU6ZnVuY3Rpb24oRixCKXtCPSRleHRlbmQoe2RkdXA6dHJ1ZSxjYXNoOnRydWV9
LEIpO0Y9Rnx8W107aWYoQi5kZHVwfHxCLmNhc2gpe3ZhciBHPXt9LEU9W107Zm9y
KHZhciBDPTAsQT1GLmxlbmd0aDsKQzxBO0MrKyl7dmFyIEQ9JC5lbGVtZW50KEZb
Q10sIUIuY2FzaCk7aWYoQi5kZHVwKXtpZihHW0QudWlkXSl7Y29udGludWU7fUdb
RC51aWRdPXRydWU7fUUucHVzaChEKTt9Rj1FO31yZXR1cm4oQi5jYXNoKT8kZXh0
ZW5kKEYsdGhpcyk6Rjt9fSk7RWxlbWVudHMuaW1wbGVtZW50KHtmaWx0ZXI6ZnVu
Y3Rpb24oQSxCKXtpZighQSl7cmV0dXJuIHRoaXM7Cn1yZXR1cm4gbmV3IEVsZW1l
bnRzKEFycmF5LmZpbHRlcih0aGlzLCh0eXBlb2YgQT09InN0cmluZyIpP2Z1bmN0
aW9uKEMpe3JldHVybiBDLm1hdGNoKEEpO306QSxCKSk7fX0pO0VsZW1lbnRzLm11
bHRpPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBCPVtdOwp2YXIg
Rj10cnVlO2Zvcih2YXIgRD0wLEM9dGhpcy5sZW5ndGg7RDxDO0QrKyl7dmFyIEU9
dGhpc1tEXVtBXS5hcHBseSh0aGlzW0RdLGFyZ3VtZW50cyk7Qi5wdXNoKEUpO2lm
KEYpe0Y9KCR0eXBlKEUpPT0iZWxlbWVudCIpO319cmV0dXJuKEYpP25ldyBFbGVt
ZW50cyhCKTpCOwp9O307V2luZG93LmltcGxlbWVudCh7JDpmdW5jdGlvbihCLEMp
e2lmKEImJkIuJGZhbWlseSYmQi51aWQpe3JldHVybiBCO312YXIgQT0kdHlwZShC
KTtyZXR1cm4oJFtBXSk/JFtBXShCLEMsdGhpcy5kb2N1bWVudCk6bnVsbDt9LCQk
OmZ1bmN0aW9uKEEpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEmJnR5cGVvZiBBPT0i
c3RyaW5nIil7cmV0dXJuIHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudHMoQSk7Cn12
YXIgRj1bXTt2YXIgQz1BcnJheS5mbGF0dGVuKGFyZ3VtZW50cyk7Zm9yKHZhciBE
PTAsQj1DLmxlbmd0aDtEPEI7RCsrKXt2YXIgRT1DW0RdO3N3aXRjaCgkdHlwZShF
KSl7Y2FzZSJlbGVtZW50IjpFPVtFXTticmVhaztjYXNlInN0cmluZyI6RT10aGlz
LmRvY3VtZW50LmdldEVsZW1lbnRzKEUsdHJ1ZSk7CmJyZWFrO2RlZmF1bHQ6RT1m
YWxzZTt9aWYoRSl7Ri5leHRlbmQoRSk7fX1yZXR1cm4gbmV3IEVsZW1lbnRzKEYp
O30sZ2V0RG9jdW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb2N1bWVudDt9
LGdldFdpbmRvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzO319KTsKJC5zdHJpbmc9
ZnVuY3Rpb24oQyxCLEEpe0M9QS5nZXRFbGVtZW50QnlJZChDKTtyZXR1cm4oQyk/
JC5lbGVtZW50KEMsQik6bnVsbDt9OyQuZWxlbWVudD1mdW5jdGlvbihBLEQpeyR1
aWQoQSk7aWYoIUQmJiFBLiRmYW1pbHkmJiEoL15vYmplY3R8ZW1iZWQkL2kpLnRl
c3QoQS50YWdOYW1lKSl7dmFyIEI9RWxlbWVudC5Qcm90b3R5cGU7CmZvcih2YXIg
QyBpbiBCKXtBW0NdPUJbQ107fX1yZXR1cm4gQTt9OyQub2JqZWN0PWZ1bmN0aW9u
KEIsQyxBKXtpZihCLnRvRWxlbWVudCl7cmV0dXJuICQuZWxlbWVudChCLnRvRWxl
bWVudChBKSxDKTt9cmV0dXJuIG51bGw7fTskLnRleHRub2RlPSQud2hpdGVzcGFj
ZT0kLndpbmRvdz0kLmRvY3VtZW50PSRhcmd1bWVudHMoMCk7Ck5hdGl2ZS5pbXBs
ZW1lbnQoW0VsZW1lbnQsRG9jdW1lbnRdLHtnZXRFbGVtZW50OmZ1bmN0aW9uKEEs
Qil7cmV0dXJuICQodGhpcy5nZXRFbGVtZW50cyhBLHRydWUpWzBdfHxudWxsLEIp
O30sZ2V0RWxlbWVudHM6ZnVuY3Rpb24oQSxEKXtBPUEuc3BsaXQoIiwiKTsKdmFy
IEM9W107dmFyIEI9KEEubGVuZ3RoPjEpO0EuZWFjaChmdW5jdGlvbihFKXt2YXIg
Rj10aGlzLmdldEVsZW1lbnRzQnlUYWdOYW1lKEUudHJpbSgpKTsoQik/Qy5leHRl
bmQoRik6Qz1GO30sdGhpcyk7cmV0dXJuIG5ldyBFbGVtZW50cyhDLHtkZHVwOkIs
Y2FzaDohRH0pOwp9fSk7RWxlbWVudC5TdG9yYWdlPXtnZXQ6ZnVuY3Rpb24oQSl7
cmV0dXJuKHRoaXNbQV18fCh0aGlzW0FdPXt9KSk7fX07RWxlbWVudC5JbnNlcnRl
cnM9bmV3IEhhc2goe2JlZm9yZTpmdW5jdGlvbihCLEEpe2lmKEEucGFyZW50Tm9k
ZSl7QS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShCLEEpOwp9fSxhZnRlcjpmdW5j
dGlvbihCLEEpe2lmKCFBLnBhcmVudE5vZGUpe3JldHVybiA7fXZhciBDPUEubmV4
dFNpYmxpbmc7KEMpP0EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoQixDKTpBLnBh
cmVudE5vZGUuYXBwZW5kQ2hpbGQoQik7fSxib3R0b206ZnVuY3Rpb24oQixBKXtB
LmFwcGVuZENoaWxkKEIpOwp9LHRvcDpmdW5jdGlvbihCLEEpe3ZhciBDPUEuZmly
c3RDaGlsZDsoQyk/QS5pbnNlcnRCZWZvcmUoQixDKTpBLmFwcGVuZENoaWxkKEIp
O319KTtFbGVtZW50Lkluc2VydGVycy5pbnNpZGU9RWxlbWVudC5JbnNlcnRlcnMu
Ym90dG9tO0VsZW1lbnQuSW5zZXJ0ZXJzLmVhY2goZnVuY3Rpb24oQyxCKXt2YXIg
QT1CLmNhcGl0YWxpemUoKTsKRWxlbWVudC5pbXBsZW1lbnQoImluamVjdCIrQSxm
dW5jdGlvbihEKXtDKHRoaXMsJChELHRydWUpKTtyZXR1cm4gdGhpczt9KTtFbGVt
ZW50LmltcGxlbWVudCgiZ3JhYiIrQSxmdW5jdGlvbihEKXtDKCQoRCx0cnVlKSx0
aGlzKTtyZXR1cm4gdGhpczt9KTt9KTtFbGVtZW50LmltcGxlbWVudCh7Z2V0RG9j
dW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50Owp9LGdl
dFdpbmRvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuZ2V0
V2luZG93KCk7fSxnZXRFbGVtZW50QnlJZDpmdW5jdGlvbihELEMpe3ZhciBCPXRo
aXMub3duZXJEb2N1bWVudC5nZXRFbGVtZW50QnlJZChEKTtpZighQil7cmV0dXJu
IG51bGw7Cn1mb3IodmFyIEE9Qi5wYXJlbnROb2RlO0EhPXRoaXM7QT1BLnBhcmVu
dE5vZGUpe2lmKCFBKXtyZXR1cm4gbnVsbDt9fXJldHVybiAkLmVsZW1lbnQoQixD
KTt9LHNldDpmdW5jdGlvbihELEIpe3N3aXRjaCgkdHlwZShEKSl7Y2FzZSJvYmpl
Y3QiOmZvcih2YXIgQyBpbiBEKXt0aGlzLnNldChDLERbQ10pOwp9YnJlYWs7Y2Fz
ZSJzdHJpbmciOnZhciBBPUVsZW1lbnQuUHJvcGVydGllcy5nZXQoRCk7KEEmJkEu
c2V0KT9BLnNldC5hcHBseSh0aGlzLEFycmF5LnNsaWNlKGFyZ3VtZW50cywxKSk6
dGhpcy5zZXRQcm9wZXJ0eShELEIpO31yZXR1cm4gdGhpczt9LGdldDpmdW5jdGlv
bihCKXt2YXIgQT1FbGVtZW50LlByb3BlcnRpZXMuZ2V0KEIpOwpyZXR1cm4oQSYm
QS5nZXQpP0EuZ2V0LmFwcGx5KHRoaXMsQXJyYXkuc2xpY2UoYXJndW1lbnRzLDEp
KTp0aGlzLmdldFByb3BlcnR5KEIpO30sZXJhc2U6ZnVuY3Rpb24oQil7dmFyIEE9
RWxlbWVudC5Qcm9wZXJ0aWVzLmdldChCKTsoQSYmQS5lcmFzZSk/QS5lcmFzZS5h
cHBseSh0aGlzLEFycmF5LnNsaWNlKGFyZ3VtZW50cywxKSk6dGhpcy5yZW1vdmVQ
cm9wZXJ0eShCKTsKcmV0dXJuIHRoaXM7fSxtYXRjaDpmdW5jdGlvbihBKXtyZXR1
cm4oIUF8fEVsZW1lbnQuZ2V0KHRoaXMsInRhZyIpPT1BKTt9LGluamVjdDpmdW5j
dGlvbihCLEEpe0VsZW1lbnQuSW5zZXJ0ZXJzLmdldChBfHwiYm90dG9tIikodGhp
cywkKEIsdHJ1ZSkpO3JldHVybiB0aGlzOwp9LHdyYXBzOmZ1bmN0aW9uKEIsQSl7
Qj0kKEIsdHJ1ZSk7cmV0dXJuIHRoaXMucmVwbGFjZXMoQikuZ3JhYihCLEEpO30s
Z3JhYjpmdW5jdGlvbihCLEEpe0VsZW1lbnQuSW5zZXJ0ZXJzLmdldChBfHwiYm90
dG9tIikoJChCLHRydWUpLHRoaXMpO3JldHVybiB0aGlzOwp9LGFwcGVuZFRleHQ6
ZnVuY3Rpb24oQixBKXtyZXR1cm4gdGhpcy5ncmFiKHRoaXMuZ2V0RG9jdW1lbnQo
KS5uZXdUZXh0Tm9kZShCKSxBKTt9LGFkb3B0OmZ1bmN0aW9uKCl7QXJyYXkuZmxh
dHRlbihhcmd1bWVudHMpLmVhY2goZnVuY3Rpb24oQSl7QT0kKEEsdHJ1ZSk7Cmlm
KEEpe3RoaXMuYXBwZW5kQ2hpbGQoQSk7fX0sdGhpcyk7cmV0dXJuIHRoaXM7fSxk
aXNwb3NlOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucGFyZW50Tm9kZSk/dGhpcy5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpOnRoaXM7fSxjbG9uZTpmdW5jdGlv
bihELEMpe3N3aXRjaCgkdHlwZSh0aGlzKSl7Y2FzZSJlbGVtZW50Ijp2YXIgSD17
fTsKZm9yKHZhciBHPTAsRT10aGlzLmF0dHJpYnV0ZXMubGVuZ3RoO0c8RTtHKysp
e3ZhciBCPXRoaXMuYXR0cmlidXRlc1tHXSxMPUIubm9kZU5hbWUudG9Mb3dlckNh
c2UoKTtpZihCcm93c2VyLkVuZ2luZS50cmlkZW50JiYoL2lucHV0L2kpLnRlc3Qo
dGhpcy50YWdOYW1lKSYmKC93aWR0aHxoZWlnaHQvKS50ZXN0KEwpKXtjb250aW51
ZTsKfXZhciBLPShMPT0ic3R5bGUiJiZ0aGlzLnN0eWxlKT90aGlzLnN0eWxlLmNz
c1RleHQ6Qi5ub2RlVmFsdWU7aWYoISRjaGsoSyl8fEw9PSJ1aWQifHwoTD09Imlk
IiYmIUMpKXtjb250aW51ZTt9aWYoSyE9ImluaGVyaXQiJiZbInN0cmluZyIsIm51
bWJlciJdLmNvbnRhaW5zKCR0eXBlKEspKSl7SFtMXT1LOwp9fXZhciBKPW5ldyBF
bGVtZW50KHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxIKTtpZihEIT09ZmFs
c2Upe2Zvcih2YXIgST0wLEY9dGhpcy5jaGlsZE5vZGVzLmxlbmd0aDtJPEY7SSsr
KXt2YXIgQT1FbGVtZW50LmNsb25lKHRoaXMuY2hpbGROb2Rlc1tJXSx0cnVlLEMp
OwppZihBKXtKLmdyYWIoQSk7fX19cmV0dXJuIEo7Y2FzZSJ0ZXh0bm9kZSI6cmV0
dXJuIGRvY3VtZW50Lm5ld1RleHROb2RlKHRoaXMubm9kZVZhbHVlKTt9cmV0dXJu
IG51bGw7fSxyZXBsYWNlczpmdW5jdGlvbihBKXtBPSQoQSx0cnVlKTtBLnBhcmVu
dE5vZGUucmVwbGFjZUNoaWxkKHRoaXMsQSk7CnJldHVybiB0aGlzO30saGFzQ2xh
c3M6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuY2xhc3NOYW1lLmNvbnRhaW5zKEEs
IiAiKTt9LGFkZENsYXNzOmZ1bmN0aW9uKEEpe2lmKCF0aGlzLmhhc0NsYXNzKEEp
KXt0aGlzLmNsYXNzTmFtZT0odGhpcy5jbGFzc05hbWUrIiAiK0EpLmNsZWFuKCk7
Cn1yZXR1cm4gdGhpczt9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKEEpe3RoaXMuY2xh
c3NOYW1lPXRoaXMuY2xhc3NOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgiKF58XFxz
KSIrQSsiKD86XFxzfCQpIiksIiQxIikuY2xlYW4oKTtyZXR1cm4gdGhpczt9LHRv
Z2dsZUNsYXNzOmZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLmhhc0NsYXNzKEEpP3Ro
aXMucmVtb3ZlQ2xhc3MoQSk6dGhpcy5hZGRDbGFzcyhBKTsKfSxnZXRDb21wdXRl
ZFN0eWxlOmZ1bmN0aW9uKEIpe2lmKHRoaXMuY3VycmVudFN0eWxlKXtyZXR1cm4g
dGhpcy5jdXJyZW50U3R5bGVbQi5jYW1lbENhc2UoKV07fXZhciBBPXRoaXMuZ2V0
V2luZG93KCkuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLG51bGwpO3JldHVybihBKT9B
LmdldFByb3BlcnR5VmFsdWUoW0IuaHlwaGVuYXRlKCldKTpudWxsOwp9LGVtcHR5
OmZ1bmN0aW9uKCl7JEEodGhpcy5jaGlsZE5vZGVzKS5lYWNoKGZ1bmN0aW9uKEEp
e0Jyb3dzZXIuZnJlZU1lbShBKTtFbGVtZW50LmVtcHR5KEEpO0VsZW1lbnQuZGlz
cG9zZShBKTt9LHRoaXMpO3JldHVybiB0aGlzO30sZGVzdHJveTpmdW5jdGlvbigp
e0Jyb3dzZXIuZnJlZU1lbSh0aGlzLmVtcHR5KCkuZGlzcG9zZSgpKTsKcmV0dXJu
IG51bGw7fSxnZXRTZWxlY3RlZDpmdW5jdGlvbigpe3JldHVybiBuZXcgRWxlbWVu
dHMoJEEodGhpcy5vcHRpb25zKS5maWx0ZXIoZnVuY3Rpb24oQSl7cmV0dXJuIEEu
c2VsZWN0ZWQ7fSkpO30sdG9RdWVyeVN0cmluZzpmdW5jdGlvbigpe3ZhciBBPVtd
Owp0aGlzLmdldEVsZW1lbnRzKCJpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSIpLmVh
Y2goZnVuY3Rpb24oQil7aWYoIUIubmFtZXx8Qi5kaXNhYmxlZCl7cmV0dXJuIDt9
dmFyIEM9KEIudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT0ic2VsZWN0Iik/RWxlbWVu
dC5nZXRTZWxlY3RlZChCKS5tYXAoZnVuY3Rpb24oRCl7cmV0dXJuIEQudmFsdWU7
Cn0pOigoQi50eXBlPT0icmFkaW8ifHxCLnR5cGU9PSJjaGVja2JveCIpJiYhQi5j
aGVja2VkKT9udWxsOkIudmFsdWU7JHNwbGF0KEMpLmVhY2goZnVuY3Rpb24oRCl7
aWYoRCl7QS5wdXNoKEIubmFtZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEQpKTt9
fSk7fSk7cmV0dXJuIEEuam9pbigiJiIpOwp9LGdldFByb3BlcnR5OmZ1bmN0aW9u
KEMpe3ZhciBCPUVsZW1lbnQuQXR0cmlidXRlcyxBPUIuUHJvcHNbQ107dmFyIEQ9
KEEpP3RoaXNbQV06dGhpcy5nZXRBdHRyaWJ1dGUoQywyKTtyZXR1cm4oQi5Cb29s
c1tDXSk/ISFEOihBKT9EOkR8fG51bGw7fSxnZXRQcm9wZXJ0aWVzOmZ1bmN0aW9u
KCl7dmFyIEE9JEEoYXJndW1lbnRzKTsKcmV0dXJuIEEubWFwKGZ1bmN0aW9uKEIp
e3JldHVybiB0aGlzLmdldFByb3BlcnR5KEIpO30sdGhpcykuYXNzb2NpYXRlKEEp
O30sc2V0UHJvcGVydHk6ZnVuY3Rpb24oRCxFKXt2YXIgQz1FbGVtZW50LkF0dHJp
YnV0ZXMsQj1DLlByb3BzW0RdLEE9JGRlZmluZWQoRSk7CmlmKEImJkMuQm9vbHNb
RF0pe0U9KEV8fCFBKT90cnVlOmZhbHNlO31lbHNle2lmKCFBKXtyZXR1cm4gdGhp
cy5yZW1vdmVQcm9wZXJ0eShEKTt9fShCKT90aGlzW0JdPUU6dGhpcy5zZXRBdHRy
aWJ1dGUoRCxFKTtyZXR1cm4gdGhpczt9LHNldFByb3BlcnRpZXM6ZnVuY3Rpb24o
QSl7Zm9yKHZhciBCIGluIEEpe3RoaXMuc2V0UHJvcGVydHkoQixBW0JdKTsKfXJl
dHVybiB0aGlzO30scmVtb3ZlUHJvcGVydHk6ZnVuY3Rpb24oRCl7dmFyIEM9RWxl
bWVudC5BdHRyaWJ1dGVzLEI9Qy5Qcm9wc1tEXSxBPShCJiZDLkJvb2xzW0RdKTso
Qik/dGhpc1tCXT0oQSk/ZmFsc2U6IiI6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoRCk7
cmV0dXJuIHRoaXM7Cn0scmVtb3ZlUHJvcGVydGllczpmdW5jdGlvbigpe0FycmF5
LmVhY2goYXJndW1lbnRzLHRoaXMucmVtb3ZlUHJvcGVydHksdGhpcyk7cmV0dXJu
IHRoaXM7fX0pOyhmdW5jdGlvbigpe3ZhciBBPWZ1bmN0aW9uKEQsQixJLEMsRixI
KXt2YXIgRT1EW0l8fEJdO3ZhciBHPVtdOwp3aGlsZShFKXtpZihFLm5vZGVUeXBl
PT0xJiYoIUN8fEVsZW1lbnQubWF0Y2goRSxDKSkpe0cucHVzaChFKTtpZighRil7
YnJlYWs7fX1FPUVbQl07fXJldHVybihGKT9uZXcgRWxlbWVudHMoRyx7ZGR1cDpm
YWxzZSxjYXNoOiFIfSk6JChHWzBdLEgpO307RWxlbWVudC5pbXBsZW1lbnQoe2dl
dFByZXZpb3VzOmZ1bmN0aW9uKEIsQyl7cmV0dXJuIEEodGhpcywicHJldmlvdXNT
aWJsaW5nIixudWxsLEIsZmFsc2UsQyk7Cn0sZ2V0QWxsUHJldmlvdXM6ZnVuY3Rp
b24oQixDKXtyZXR1cm4gQSh0aGlzLCJwcmV2aW91c1NpYmxpbmciLG51bGwsQix0
cnVlLEMpO30sZ2V0TmV4dDpmdW5jdGlvbihCLEMpe3JldHVybiBBKHRoaXMsIm5l
eHRTaWJsaW5nIixudWxsLEIsZmFsc2UsQyk7fSxnZXRBbGxOZXh0OmZ1bmN0aW9u
KEIsQyl7cmV0dXJuIEEodGhpcywibmV4dFNpYmxpbmciLG51bGwsQix0cnVlLEMp
Owp9LGdldEZpcnN0OmZ1bmN0aW9uKEIsQyl7cmV0dXJuIEEodGhpcywibmV4dFNp
YmxpbmciLCJmaXJzdENoaWxkIixCLGZhbHNlLEMpO30sZ2V0TGFzdDpmdW5jdGlv
bihCLEMpe3JldHVybiBBKHRoaXMsInByZXZpb3VzU2libGluZyIsImxhc3RDaGls
ZCIsQixmYWxzZSxDKTsKfSxnZXRQYXJlbnQ6ZnVuY3Rpb24oQixDKXtyZXR1cm4g
QSh0aGlzLCJwYXJlbnROb2RlIixudWxsLEIsZmFsc2UsQyk7fSxnZXRQYXJlbnRz
OmZ1bmN0aW9uKEIsQyl7cmV0dXJuIEEodGhpcywicGFyZW50Tm9kZSIsbnVsbCxC
LHRydWUsQyk7fSxnZXRDaGlsZHJlbjpmdW5jdGlvbihCLEMpe3JldHVybiBBKHRo
aXMsIm5leHRTaWJsaW5nIiwiZmlyc3RDaGlsZCIsQix0cnVlLEMpOwp9LGhhc0No
aWxkOmZ1bmN0aW9uKEIpe0I9JChCLHRydWUpO3JldHVybighIUImJiRBKHRoaXMu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoQi50YWdOYW1lKSkuY29udGFpbnMoQikpO319
KTt9KSgpO0VsZW1lbnQuUHJvcGVydGllcz1uZXcgSGFzaDtFbGVtZW50LlByb3Bl
cnRpZXMuc3R5bGU9e3NldDpmdW5jdGlvbihBKXt0aGlzLnN0eWxlLmNzc1RleHQ9
QTsKfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdHlsZS5jc3NUZXh0O30s
ZXJhc2U6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmNzc1RleHQ9IiI7fX07RWxlbWVu
dC5Qcm9wZXJ0aWVzLnRhZz17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFn
TmFtZS50b0xvd2VyQ2FzZSgpOwp9fTtFbGVtZW50LlByb3BlcnRpZXMuaHJlZj17
Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKCF0aGlzLmhyZWYpP251bGw6dGhpcy5ocmVm
LnJlcGxhY2UobmV3IFJlZ0V4cCgiXiIrZG9jdW1lbnQubG9jYXRpb24ucHJvdG9j
b2wrIi8vIitkb2N1bWVudC5sb2NhdGlvbi5ob3N0KSwiIik7Cn19O0VsZW1lbnQu
UHJvcGVydGllcy5odG1sPXtzZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbm5l
ckhUTUw9QXJyYXkuZmxhdHRlbihhcmd1bWVudHMpLmpvaW4oIiIpO319O05hdGl2
ZS5pbXBsZW1lbnQoW0VsZW1lbnQsV2luZG93LERvY3VtZW50XSx7YWRkTGlzdGVu
ZXI6ZnVuY3Rpb24oQixBKXtpZih0aGlzLmFkZEV2ZW50TGlzdGVuZXIpe3RoaXMu
YWRkRXZlbnRMaXN0ZW5lcihCLEEsZmFsc2UpOwp9ZWxzZXt0aGlzLmF0dGFjaEV2
ZW50KCJvbiIrQixBKTt9cmV0dXJuIHRoaXM7fSxyZW1vdmVMaXN0ZW5lcjpmdW5j
dGlvbihCLEEpe2lmKHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcil7dGhpcy5yZW1v
dmVFdmVudExpc3RlbmVyKEIsQSxmYWxzZSk7fWVsc2V7dGhpcy5kZXRhY2hFdmVu
dCgib24iK0IsQSk7Cn1yZXR1cm4gdGhpczt9LHJldHJpZXZlOmZ1bmN0aW9uKEIs
QSl7dmFyIEQ9RWxlbWVudC5TdG9yYWdlLmdldCh0aGlzLnVpZCk7dmFyIEM9RFtC
XTtpZigkZGVmaW5lZChBKSYmISRkZWZpbmVkKEMpKXtDPURbQl09QTt9cmV0dXJu
ICRwaWNrKEMpO30sc3RvcmU6ZnVuY3Rpb24oQixBKXt2YXIgQz1FbGVtZW50LlN0
b3JhZ2UuZ2V0KHRoaXMudWlkKTsKQ1tCXT1BO3JldHVybiB0aGlzO30sZWxpbWlu
YXRlOmZ1bmN0aW9uKEEpe3ZhciBCPUVsZW1lbnQuU3RvcmFnZS5nZXQodGhpcy51
aWQpO2RlbGV0ZSBCW0FdO3JldHVybiB0aGlzO319KTtFbGVtZW50LkF0dHJpYnV0
ZXM9bmV3IEhhc2goe1Byb3BzOntodG1sOiJpbm5lckhUTUwiLCJjbGFzcyI6ImNs
YXNzTmFtZSIsImZvciI6Imh0bWxGb3IiLHRleHQ6KEJyb3dzZXIuRW5naW5lLnRy
aWRlbnQpPyJpbm5lclRleHQiOiJ0ZXh0Q29udGVudCJ9LEJvb2xzOlsiY29tcGFj
dCIsIm5vd3JhcCIsImlzbWFwIiwiZGVjbGFyZSIsIm5vc2hhZGUiLCJjaGVja2Vk
IiwiZGlzYWJsZWQiLCJyZWFkb25seSIsIm11bHRpcGxlIiwic2VsZWN0ZWQiLCJu
b3Jlc2l6ZSIsImRlZmVyIl0sQ2FtZWxzOlsidmFsdWUiLCJhY2Nlc3NLZXkiLCJj
ZWxsUGFkZGluZyIsImNlbGxTcGFjaW5nIiwiY29sU3BhbiIsImZyYW1lQm9yZGVy
IiwibWF4TGVuZ3RoIiwicmVhZE9ubHkiLCJyb3dTcGFuIiwidGFiSW5kZXgiLCJ1
c2VNYXAiXX0pOwpCcm93c2VyLmZyZWVNZW09ZnVuY3Rpb24oQSl7aWYoIUEpe3Jl
dHVybiA7fWlmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQmJigvb2JqZWN0L2kpLnRl
c3QoQS50YWdOYW1lKSl7Zm9yKHZhciBCIGluIEEpe2lmKHR5cGVvZiBBW0JdPT0i
ZnVuY3Rpb24iKXtBW0JdPSRlbXB0eTsKfX1FbGVtZW50LmRpc3Bvc2UoQSk7fWlm
KEEudWlkJiZBLnJlbW92ZUV2ZW50cyl7QS5yZW1vdmVFdmVudHMoKTt9fTsoZnVu
Y3Rpb24oQil7dmFyIEM9Qi5Cb29scyxBPUIuQ2FtZWxzO0IuQm9vbHM9Qz1DLmFz
c29jaWF0ZShDKTtIYXNoLmV4dGVuZChIYXNoLmNvbWJpbmUoQi5Qcm9wcyxDKSxB
LmFzc29jaWF0ZShBLm1hcChmdW5jdGlvbihEKXtyZXR1cm4gRC50b0xvd2VyQ2Fz
ZSgpOwp9KSkpO0IuZXJhc2UoIkNhbWVscyIpO30pKEVsZW1lbnQuQXR0cmlidXRl
cyk7d2luZG93LmFkZExpc3RlbmVyKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7d2luZG93
LnJlbW92ZUxpc3RlbmVyKCJ1bmxvYWQiLGFyZ3VtZW50cy5jYWxsZWUpO2RvY3Vt
ZW50LnB1cmdlKCk7CmlmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpe0NvbGxlY3RH
YXJiYWdlKCk7fX0pO0VsZW1lbnQuUHJvcGVydGllcy5ldmVudHM9e3NldDpmdW5j
dGlvbihBKXt0aGlzLmFkZEV2ZW50cyhBKTt9fTtOYXRpdmUuaW1wbGVtZW50KFtF
bGVtZW50LFdpbmRvdyxEb2N1bWVudF0se2FkZEV2ZW50OmZ1bmN0aW9uKEUsRyl7
dmFyIEg9dGhpcy5yZXRyaWV2ZSgiZXZlbnRzIix7fSk7CkhbRV09SFtFXXx8e2tl
eXM6W10sdmFsdWVzOltdfTtpZihIW0VdLmtleXMuY29udGFpbnMoRykpe3JldHVy
biB0aGlzO31IW0VdLmtleXMucHVzaChHKTt2YXIgRj1FLEE9RWxlbWVudC5FdmVu
dHMuZ2V0KEUpLEM9RyxJPXRoaXM7aWYoQSl7aWYoQS5vbkFkZCl7QS5vbkFkZC5j
YWxsKHRoaXMsRyk7Cn1pZihBLmNvbmRpdGlvbil7Qz1mdW5jdGlvbihKKXtpZihB
LmNvbmRpdGlvbi5jYWxsKHRoaXMsSikpe3JldHVybiBHLmNhbGwodGhpcyxKKTt9
cmV0dXJuIGZhbHNlO307fUY9QS5iYXNlfHxGO312YXIgRD1mdW5jdGlvbigpe3Jl
dHVybiBHLmNhbGwoSSk7fTt2YXIgQj1FbGVtZW50Lk5hdGl2ZUV2ZW50c1tGXXx8
MDsKaWYoQil7aWYoQj09Mil7RD1mdW5jdGlvbihKKXtKPW5ldyBFdmVudChKLEku
Z2V0V2luZG93KCkpO2lmKEMuY2FsbChJLEopPT09ZmFsc2Upe0ouc3RvcCgpO319
O310aGlzLmFkZExpc3RlbmVyKEYsRCk7fUhbRV0udmFsdWVzLnB1c2goRCk7cmV0
dXJuIHRoaXM7fSxyZW1vdmVFdmVudDpmdW5jdGlvbihELEMpe3ZhciBCPXRoaXMu
cmV0cmlldmUoImV2ZW50cyIpOwppZighQnx8IUJbRF0pe3JldHVybiB0aGlzO312
YXIgRz1CW0RdLmtleXMuaW5kZXhPZihDKTtpZihHPT0tMSl7cmV0dXJuIHRoaXM7
fXZhciBBPUJbRF0ua2V5cy5zcGxpY2UoRywxKVswXTt2YXIgRj1CW0RdLnZhbHVl
cy5zcGxpY2UoRywxKVswXTt2YXIgRT1FbGVtZW50LkV2ZW50cy5nZXQoRCk7Cmlm
KEUpe2lmKEUub25SZW1vdmUpe0Uub25SZW1vdmUuY2FsbCh0aGlzLEMpO31EPUUu
YmFzZXx8RDt9cmV0dXJuKEVsZW1lbnQuTmF0aXZlRXZlbnRzW0RdKT90aGlzLnJl
bW92ZUxpc3RlbmVyKEQsRik6dGhpczt9LGFkZEV2ZW50czpmdW5jdGlvbihBKXtm
b3IodmFyIEIgaW4gQSl7dGhpcy5hZGRFdmVudChCLEFbQl0pOwp9cmV0dXJuIHRo
aXM7fSxyZW1vdmVFdmVudHM6ZnVuY3Rpb24oQil7dmFyIEE9dGhpcy5yZXRyaWV2
ZSgiZXZlbnRzIik7aWYoIUEpe3JldHVybiB0aGlzO31pZighQil7Zm9yKHZhciBD
IGluIEEpe3RoaXMucmVtb3ZlRXZlbnRzKEMpO31BPW51bGw7fWVsc2V7aWYoQVtC
XSl7d2hpbGUoQVtCXS5rZXlzWzBdKXt0aGlzLnJlbW92ZUV2ZW50KEIsQVtCXS5r
ZXlzWzBdKTsKfUFbQl09bnVsbDt9fXJldHVybiB0aGlzO30sZmlyZUV2ZW50OmZ1
bmN0aW9uKEQsQixBKXt2YXIgQz10aGlzLnJldHJpZXZlKCJldmVudHMiKTtpZigh
Q3x8IUNbRF0pe3JldHVybiB0aGlzO31DW0RdLmtleXMuZWFjaChmdW5jdGlvbihF
KXtFLmNyZWF0ZSh7YmluZDp0aGlzLGRlbGF5OkEsImFyZ3VtZW50cyI6Qn0pKCk7
Cn0sdGhpcyk7cmV0dXJuIHRoaXM7fSxjbG9uZUV2ZW50czpmdW5jdGlvbihELEEp
e0Q9JChEKTt2YXIgQz1ELnJldHJpZXZlKCJldmVudHMiKTtpZighQyl7cmV0dXJu
IHRoaXM7fWlmKCFBKXtmb3IodmFyIEIgaW4gQyl7dGhpcy5jbG9uZUV2ZW50cyhE
LEIpO319ZWxzZXtpZihDW0FdKXtDW0FdLmtleXMuZWFjaChmdW5jdGlvbihFKXt0
aGlzLmFkZEV2ZW50KEEsRSk7Cn0sdGhpcyk7fX1yZXR1cm4gdGhpczt9fSk7RWxl
bWVudC5OYXRpdmVFdmVudHM9e2NsaWNrOjIsZGJsY2xpY2s6Mixtb3VzZXVwOjIs
bW91c2Vkb3duOjIsY29udGV4dG1lbnU6Mixtb3VzZXdoZWVsOjIsRE9NTW91c2VT
Y3JvbGw6Mixtb3VzZW92ZXI6Mixtb3VzZW91dDoyLG1vdXNlbW92ZToyLHNlbGVj
dHN0YXJ0OjIsc2VsZWN0ZW5kOjIsa2V5ZG93bjoyLGtleXByZXNzOjIsa2V5dXA6
Mixmb2N1czoyLGJsdXI6MixjaGFuZ2U6MixyZXNldDoyLHNlbGVjdDoyLHN1Ym1p
dDoyLGxvYWQ6MSx1bmxvYWQ6MSxiZWZvcmV1bmxvYWQ6MixyZXNpemU6MSxtb3Zl
OjEsRE9NQ29udGVudExvYWRlZDoxLHJlYWR5c3RhdGVjaGFuZ2U6MSxlcnJvcjox
LGFib3J0OjEsc2Nyb2xsOjF9OwooZnVuY3Rpb24oKXt2YXIgQT1mdW5jdGlvbihC
KXt2YXIgQz1CLnJlbGF0ZWRUYXJnZXQ7aWYoQz09dW5kZWZpbmVkKXtyZXR1cm4g
dHJ1ZTt9aWYoQz09PWZhbHNlKXtyZXR1cm4gZmFsc2U7fXJldHVybigkdHlwZSh0
aGlzKSE9ImRvY3VtZW50IiYmQyE9dGhpcyYmQy5wcmVmaXghPSJ4dWwiJiYhdGhp
cy5oYXNDaGlsZChDKSk7Cn07RWxlbWVudC5FdmVudHM9bmV3IEhhc2goe21vdXNl
ZW50ZXI6e2Jhc2U6Im1vdXNlb3ZlciIsY29uZGl0aW9uOkF9LG1vdXNlbGVhdmU6
e2Jhc2U6Im1vdXNlb3V0Iixjb25kaXRpb246QX0sbW91c2V3aGVlbDp7YmFzZToo
QnJvd3Nlci5FbmdpbmUuZ2Vja28pPyJET01Nb3VzZVNjcm9sbCI6Im1vdXNld2hl
ZWwifX0pOwp9KSgpO0VsZW1lbnQuUHJvcGVydGllcy5zdHlsZXM9e3NldDpmdW5j
dGlvbihBKXt0aGlzLnNldFN0eWxlcyhBKTt9fTtFbGVtZW50LlByb3BlcnRpZXMu
b3BhY2l0eT17c2V0OmZ1bmN0aW9uKEEsQil7aWYoIUIpe2lmKEE9PTApe2lmKHRo
aXMuc3R5bGUudmlzaWJpbGl0eSE9ImhpZGRlbiIpe3RoaXMuc3R5bGUudmlzaWJp
bGl0eT0iaGlkZGVuIjsKfX1lbHNle2lmKHRoaXMuc3R5bGUudmlzaWJpbGl0eSE9
InZpc2libGUiKXt0aGlzLnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiO319fWlm
KCF0aGlzLmN1cnJlbnRTdHlsZXx8IXRoaXMuY3VycmVudFN0eWxlLmhhc0xheW91
dCl7dGhpcy5zdHlsZS56b29tPTE7fWlmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQp
e3RoaXMuc3R5bGUuZmlsdGVyPShBPT0xKT8iIjoiYWxwaGEob3BhY2l0eT0iK0Eq
MTAwKyIpIjsKfXRoaXMuc3R5bGUub3BhY2l0eT1BO3RoaXMuc3RvcmUoIm9wYWNp
dHkiLEEpO30sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmV0cmlldmUoIm9w
YWNpdHkiLDEpO319O0VsZW1lbnQuaW1wbGVtZW50KHtzZXRPcGFjaXR5OmZ1bmN0
aW9uKEEpe3JldHVybiB0aGlzLnNldCgib3BhY2l0eSIsQSx0cnVlKTsKfSxnZXRP
cGFjaXR5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJvcGFjaXR5Iik7fSxz
ZXRTdHlsZTpmdW5jdGlvbihCLEEpe3N3aXRjaChCKXtjYXNlIm9wYWNpdHkiOnJl
dHVybiB0aGlzLnNldCgib3BhY2l0eSIscGFyc2VGbG9hdChBKSk7Y2FzZSJmbG9h
dCI6Qj0oQnJvd3Nlci5FbmdpbmUudHJpZGVudCk/InN0eWxlRmxvYXQiOiJjc3NG
bG9hdCI7Cn1CPUIuY2FtZWxDYXNlKCk7aWYoJHR5cGUoQSkhPSJzdHJpbmciKXt2
YXIgQz0oRWxlbWVudC5TdHlsZXMuZ2V0KEIpfHwiQCIpLnNwbGl0KCIgIik7QT0k
c3BsYXQoQSkubWFwKGZ1bmN0aW9uKEUsRCl7aWYoIUNbRF0pe3JldHVybiIiO31y
ZXR1cm4oJHR5cGUoRSk9PSJudW1iZXIiKT9DW0RdLnJlcGxhY2UoIkAiLE1hdGgu
cm91bmQoRSkpOkU7Cn0pLmpvaW4oIiAiKTt9ZWxzZXtpZihBPT1TdHJpbmcoTnVt
YmVyKEEpKSl7QT1NYXRoLnJvdW5kKEEpO319dGhpcy5zdHlsZVtCXT1BO3JldHVy
biB0aGlzO30sZ2V0U3R5bGU6ZnVuY3Rpb24oRyl7c3dpdGNoKEcpe2Nhc2Uib3Bh
Y2l0eSI6cmV0dXJuIHRoaXMuZ2V0KCJvcGFjaXR5Iik7CmNhc2UiZmxvYXQiOkc9
KEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpPyJzdHlsZUZsb2F0IjoiY3NzRmxvYXQi
O31HPUcuY2FtZWxDYXNlKCk7dmFyIEE9dGhpcy5zdHlsZVtHXTtpZighJGNoayhB
KSl7QT1bXTtmb3IodmFyIEYgaW4gRWxlbWVudC5TaG9ydFN0eWxlcyl7aWYoRyE9
Ril7Y29udGludWU7Cn1mb3IodmFyIEUgaW4gRWxlbWVudC5TaG9ydFN0eWxlc1tG
XSl7QS5wdXNoKHRoaXMuZ2V0U3R5bGUoRSkpO31yZXR1cm4gQS5qb2luKCIgIik7
fUE9dGhpcy5nZXRDb21wdXRlZFN0eWxlKEcpO31pZihBKXtBPVN0cmluZyhBKTt2
YXIgQz1BLm1hdGNoKC9yZ2JhP1woW1xkXHMsXStcKS8pOwppZihDKXtBPUEucmVw
bGFjZShDWzBdLENbMF0ucmdiVG9IZXgoKSk7fX1pZihCcm93c2VyLkVuZ2luZS5w
cmVzdG98fChCcm93c2VyLkVuZ2luZS50cmlkZW50JiYhJGNoayhwYXJzZUludChB
KSkpKXtpZihHLnRlc3QoL14oaGVpZ2h0fHdpZHRoKSQvKSl7dmFyIEI9KEc9PSJ3
aWR0aCIpP1sibGVmdCIsInJpZ2h0Il06WyJ0b3AiLCJib3R0b20iXSxEPTA7CkIu
ZWFjaChmdW5jdGlvbihIKXtEKz10aGlzLmdldFN0eWxlKCJib3JkZXItIitIKyIt
d2lkdGgiKS50b0ludCgpK3RoaXMuZ2V0U3R5bGUoInBhZGRpbmctIitIKS50b0lu
dCgpO30sdGhpcyk7cmV0dXJuIHRoaXNbIm9mZnNldCIrRy5jYXBpdGFsaXplKCld
LUQrInB4IjsKfWlmKEJyb3dzZXIuRW5naW5lLnByZXN0byYmU3RyaW5nKEEpLnRl
c3QoInB4Iikpe3JldHVybiBBO31pZihHLnRlc3QoLyhib3JkZXIoLispV2lkdGh8
bWFyZ2lufHBhZGRpbmcpLykpe3JldHVybiIwcHgiO319cmV0dXJuIEE7fSxzZXRT
dHlsZXM6ZnVuY3Rpb24oQil7Zm9yKHZhciBBIGluIEIpe3RoaXMuc2V0U3R5bGUo
QSxCW0FdKTsKfXJldHVybiB0aGlzO30sZ2V0U3R5bGVzOmZ1bmN0aW9uKCl7dmFy
IEE9e307QXJyYXkuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oQil7QVtCXT10aGlz
LmdldFN0eWxlKEIpO30sdGhpcyk7cmV0dXJuIEE7fX0pO0VsZW1lbnQuU3R5bGVz
PW5ldyBIYXNoKHtsZWZ0OiJAcHgiLHRvcDoiQHB4Iixib3R0b206IkBweCIscmln
aHQ6IkBweCIsd2lkdGg6IkBweCIsaGVpZ2h0OiJAcHgiLG1heFdpZHRoOiJAcHgi
LG1heEhlaWdodDoiQHB4IixtaW5XaWR0aDoiQHB4IixtaW5IZWlnaHQ6IkBweCIs
YmFja2dyb3VuZENvbG9yOiJyZ2IoQCwgQCwgQCkiLGJhY2tncm91bmRQb3NpdGlv
bjoiQHB4IEBweCIsY29sb3I6InJnYihALCBALCBAKSIsZm9udFNpemU6IkBweCIs
bGV0dGVyU3BhY2luZzoiQHB4IixsaW5lSGVpZ2h0OiJAcHgiLGNsaXA6InJlY3Qo
QHB4IEBweCBAcHggQHB4KSIsbWFyZ2luOiJAcHggQHB4IEBweCBAcHgiLHBhZGRp
bmc6IkBweCBAcHggQHB4IEBweCIsYm9yZGVyOiJAcHggQCByZ2IoQCwgQCwgQCkg
QHB4IEAgcmdiKEAsIEAsIEApIEBweCBAIHJnYihALCBALCBAKSIsYm9yZGVyV2lk
dGg6IkBweCBAcHggQHB4IEBweCIsYm9yZGVyU3R5bGU6IkAgQCBAIEAiLGJvcmRl
ckNvbG9yOiJyZ2IoQCwgQCwgQCkgcmdiKEAsIEAsIEApIHJnYihALCBALCBAKSBy
Z2IoQCwgQCwgQCkiLHpJbmRleDoiQCIsem9vbToiQCIsZm9udFdlaWdodDoiQCIs
dGV4dEluZGVudDoiQHB4IixvcGFjaXR5OiJAIn0pOwpFbGVtZW50LlNob3J0U3R5
bGVzPXttYXJnaW46e30scGFkZGluZzp7fSxib3JkZXI6e30sYm9yZGVyV2lkdGg6
e30sYm9yZGVyU3R5bGU6e30sYm9yZGVyQ29sb3I6e319O1siVG9wIiwiUmlnaHQi
LCJCb3R0b20iLCJMZWZ0Il0uZWFjaChmdW5jdGlvbihHKXt2YXIgRj1FbGVtZW50
LlNob3J0U3R5bGVzOwp2YXIgQj1FbGVtZW50LlN0eWxlcztbIm1hcmdpbiIsInBh
ZGRpbmciXS5lYWNoKGZ1bmN0aW9uKEgpe3ZhciBJPUgrRztGW0hdW0ldPUJbSV09
IkBweCI7fSk7dmFyIEU9ImJvcmRlciIrRztGLmJvcmRlcltFXT1CW0VdPSJAcHgg
QCByZ2IoQCwgQCwgQCkiO3ZhciBEPUUrIldpZHRoIixBPUUrIlN0eWxlIixDPUUr
IkNvbG9yIjsKRltFXT17fTtGLmJvcmRlcldpZHRoW0RdPUZbRV1bRF09QltEXT0i
QHB4IjtGLmJvcmRlclN0eWxlW0FdPUZbRV1bQV09QltBXT0iQCI7Ri5ib3JkZXJD
b2xvcltDXT1GW0VdW0NdPUJbQ109InJnYihALCBALCBAKSI7fSk7KGZ1bmN0aW9u
KCl7RWxlbWVudC5pbXBsZW1lbnQoe3Njcm9sbFRvOmZ1bmN0aW9uKEgsSSl7aWYo
Qih0aGlzKSl7dGhpcy5nZXRXaW5kb3coKS5zY3JvbGxUbyhILEkpOwp9ZWxzZXt0
aGlzLnNjcm9sbExlZnQ9SDt0aGlzLnNjcm9sbFRvcD1JO31yZXR1cm4gdGhpczt9
LGdldFNpemU6ZnVuY3Rpb24oKXtpZihCKHRoaXMpKXtyZXR1cm4gdGhpcy5nZXRX
aW5kb3coKS5nZXRTaXplKCk7fXJldHVybnt4OnRoaXMub2Zmc2V0V2lkdGgseTp0
aGlzLm9mZnNldEhlaWdodH07Cn0sZ2V0U2Nyb2xsU2l6ZTpmdW5jdGlvbigpe2lm
KEIodGhpcykpe3JldHVybiB0aGlzLmdldFdpbmRvdygpLmdldFNjcm9sbFNpemUo
KTt9cmV0dXJue3g6dGhpcy5zY3JvbGxXaWR0aCx5OnRoaXMuc2Nyb2xsSGVpZ2h0
fTt9LGdldFNjcm9sbDpmdW5jdGlvbigpe2lmKEIodGhpcykpe3JldHVybiB0aGlz
LmdldFdpbmRvdygpLmdldFNjcm9sbCgpOwp9cmV0dXJue3g6dGhpcy5zY3JvbGxM
ZWZ0LHk6dGhpcy5zY3JvbGxUb3B9O30sZ2V0U2Nyb2xsczpmdW5jdGlvbigpe3Zh
ciBJPXRoaXMsSD17eDowLHk6MH07d2hpbGUoSSYmIUIoSSkpe0gueCs9SS5zY3Jv
bGxMZWZ0O0gueSs9SS5zY3JvbGxUb3A7ST1JLnBhcmVudE5vZGU7Cn1yZXR1cm4g
SDt9LGdldE9mZnNldFBhcmVudDpmdW5jdGlvbigpe3ZhciBIPXRoaXM7aWYoQihI
KSl7cmV0dXJuIG51bGw7fWlmKCFCcm93c2VyLkVuZ2luZS50cmlkZW50KXtyZXR1
cm4gSC5vZmZzZXRQYXJlbnQ7fXdoaWxlKChIPUgucGFyZW50Tm9kZSkmJiFCKEgp
KXtpZihEKEgsInBvc2l0aW9uIikhPSJzdGF0aWMiKXtyZXR1cm4gSDsKfX1yZXR1
cm4gbnVsbDt9LGdldE9mZnNldHM6ZnVuY3Rpb24oKXt2YXIgST10aGlzLEg9e3g6
MCx5OjB9O2lmKEIodGhpcykpe3JldHVybiBIO313aGlsZShJJiYhQihJKSl7SC54
Kz1JLm9mZnNldExlZnQ7SC55Kz1JLm9mZnNldFRvcDtpZihCcm93c2VyLkVuZ2lu
ZS5nZWNrbyl7aWYoIUYoSSkpe0gueCs9QyhJKTsKSC55Kz1HKEkpO312YXIgSj1J
LnBhcmVudE5vZGU7aWYoSiYmRChKLCJvdmVyZmxvdyIpIT0idmlzaWJsZSIpe0gu
eCs9QyhKKTtILnkrPUcoSik7fX1lbHNle2lmKEkhPXRoaXMmJihCcm93c2VyLkVu
Z2luZS50cmlkZW50fHxCcm93c2VyLkVuZ2luZS53ZWJraXQpKXtILngrPUMoSSk7
CkgueSs9RyhJKTt9fUk9SS5vZmZzZXRQYXJlbnQ7aWYoQnJvd3Nlci5FbmdpbmUu
dHJpZGVudCl7d2hpbGUoSSYmIUkuY3VycmVudFN0eWxlLmhhc0xheW91dCl7ST1J
Lm9mZnNldFBhcmVudDt9fX1pZihCcm93c2VyLkVuZ2luZS5nZWNrbyYmIUYodGhp
cykpe0gueC09Qyh0aGlzKTsKSC55LT1HKHRoaXMpO31yZXR1cm4gSDt9LGdldFBv
c2l0aW9uOmZ1bmN0aW9uKEspe2lmKEIodGhpcykpe3JldHVybnt4OjAseTowfTt9
dmFyIEw9dGhpcy5nZXRPZmZzZXRzKCksST10aGlzLmdldFNjcm9sbHMoKTt2YXIg
SD17eDpMLngtSS54LHk6TC55LUkueX07dmFyIEo9KEsmJihLPSQoSykpKT9LLmdl
dFBvc2l0aW9uKCk6e3g6MCx5OjB9OwpyZXR1cm57eDpILngtSi54LHk6SC55LUou
eX07fSxnZXRDb29yZGluYXRlczpmdW5jdGlvbihKKXtpZihCKHRoaXMpKXtyZXR1
cm4gdGhpcy5nZXRXaW5kb3coKS5nZXRDb29yZGluYXRlcygpO312YXIgSD10aGlz
LmdldFBvc2l0aW9uKEopLEk9dGhpcy5nZXRTaXplKCk7CnZhciBLPXtsZWZ0Okgu
eCx0b3A6SC55LHdpZHRoOkkueCxoZWlnaHQ6SS55fTtLLnJpZ2h0PUsubGVmdCtL
LndpZHRoO0suYm90dG9tPUsudG9wK0suaGVpZ2h0O3JldHVybiBLO30sY29tcHV0
ZVBvc2l0aW9uOmZ1bmN0aW9uKEgpe3JldHVybntsZWZ0OkgueC1FKHRoaXMsIm1h
cmdpbi1sZWZ0IiksdG9wOkgueS1FKHRoaXMsIm1hcmdpbi10b3AiKX07Cn0scG9z
aXRpb246ZnVuY3Rpb24oSCl7cmV0dXJuIHRoaXMuc2V0U3R5bGVzKHRoaXMuY29t
cHV0ZVBvc2l0aW9uKEgpKTt9fSk7TmF0aXZlLmltcGxlbWVudChbRG9jdW1lbnQs
V2luZG93XSx7Z2V0U2l6ZTpmdW5jdGlvbigpe3ZhciBJPXRoaXMuZ2V0V2luZG93
KCk7CmlmKEJyb3dzZXIuRW5naW5lLnByZXN0b3x8QnJvd3Nlci5FbmdpbmUud2Vi
a2l0KXtyZXR1cm57eDpJLmlubmVyV2lkdGgseTpJLmlubmVySGVpZ2h0fTt9dmFy
IEg9QSh0aGlzKTtyZXR1cm57eDpILmNsaWVudFdpZHRoLHk6SC5jbGllbnRIZWln
aHR9O30sZ2V0U2Nyb2xsOmZ1bmN0aW9uKCl7dmFyIEk9dGhpcy5nZXRXaW5kb3co
KTsKdmFyIEg9QSh0aGlzKTtyZXR1cm57eDpJLnBhZ2VYT2Zmc2V0fHxILnNjcm9s
bExlZnQseTpJLnBhZ2VZT2Zmc2V0fHxILnNjcm9sbFRvcH07fSxnZXRTY3JvbGxT
aXplOmZ1bmN0aW9uKCl7dmFyIEk9QSh0aGlzKTt2YXIgSD10aGlzLmdldFNpemUo
KTtyZXR1cm57eDpNYXRoLm1heChJLnNjcm9sbFdpZHRoLEgueCkseTpNYXRoLm1h
eChJLnNjcm9sbEhlaWdodCxILnkpfTsKfSxnZXRQb3NpdGlvbjpmdW5jdGlvbigp
e3JldHVybnt4OjAseTowfTt9LGdldENvb3JkaW5hdGVzOmZ1bmN0aW9uKCl7dmFy
IEg9dGhpcy5nZXRTaXplKCk7cmV0dXJue3RvcDowLGxlZnQ6MCxib3R0b206SC55
LHJpZ2h0OkgueCxoZWlnaHQ6SC55LHdpZHRoOkgueH07Cn19KTt2YXIgRD1FbGVt
ZW50LmdldENvbXB1dGVkU3R5bGU7ZnVuY3Rpb24gRShILEkpe3JldHVybiBEKEgs
SSkudG9JbnQoKXx8MDt9ZnVuY3Rpb24gRihIKXtyZXR1cm4gRChILCItbW96LWJv
eC1zaXppbmciKT09ImJvcmRlci1ib3giO31mdW5jdGlvbiBHKEgpe3JldHVybiBF
KEgsImJvcmRlci10b3Atd2lkdGgiKTsKfWZ1bmN0aW9uIEMoSCl7cmV0dXJuIEUo
SCwiYm9yZGVyLWxlZnQtd2lkdGgiKTt9ZnVuY3Rpb24gQihIKXtyZXR1cm4oL14o
Pzpib2R5fGh0bWwpJC9pKS50ZXN0KEgudGFnTmFtZSk7fWZ1bmN0aW9uIEEoSCl7
dmFyIEk9SC5nZXREb2N1bWVudCgpO3JldHVybighSS5jb21wYXRNb2RlfHxJLmNv
bXBhdE1vZGU9PSJDU1MxQ29tcGF0Iik/SS5odG1sOkkuYm9keTsKfX0pKCk7TmF0
aXZlLmltcGxlbWVudChbV2luZG93LERvY3VtZW50LEVsZW1lbnRdLHtnZXRIZWln
aHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRTaXplKCkueTt9LGdldFdpZHRo
OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0U2l6ZSgpLng7fSxnZXRTY3JvbGxU
b3A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRTY3JvbGwoKS55Owp9LGdldFNj
cm9sbExlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRTY3JvbGwoKS54O30s
Z2V0U2Nyb2xsSGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0U2Nyb2xs
U2l6ZSgpLnk7fSxnZXRTY3JvbGxXaWR0aDpmdW5jdGlvbigpe3JldHVybiB0aGlz
LmdldFNjcm9sbFNpemUoKS54Owp9LGdldFRvcDpmdW5jdGlvbigpe3JldHVybiB0
aGlzLmdldFBvc2l0aW9uKCkueTt9LGdldExlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy5nZXRQb3NpdGlvbigpLng7fX0pO05hdGl2ZS5pbXBsZW1lbnQoW0RvY3Vt
ZW50LEVsZW1lbnRdLHtnZXRFbGVtZW50czpmdW5jdGlvbihILEcpe0g9SC5zcGxp
dCgiLCIpOwp2YXIgQyxFPXt9O2Zvcih2YXIgRD0wLEI9SC5sZW5ndGg7RDxCO0Qr
Kyl7dmFyIEE9SFtEXSxGPVNlbGVjdG9ycy5VdGlscy5zZWFyY2godGhpcyxBLEUp
O2lmKEQhPTAmJkYuaXRlbSl7Rj0kQShGKTt9Qz0oRD09MCk/RjooQy5pdGVtKT8k
QShDKS5jb25jYXQoRik6Qy5jb25jYXQoRik7Cn1yZXR1cm4gbmV3IEVsZW1lbnRz
KEMse2RkdXA6KEgubGVuZ3RoPjEpLGNhc2g6IUd9KTt9fSk7RWxlbWVudC5pbXBs
ZW1lbnQoe21hdGNoOmZ1bmN0aW9uKEIpe2lmKCFCKXtyZXR1cm4gdHJ1ZTt9dmFy
IEQ9U2VsZWN0b3JzLlV0aWxzLnBhcnNlVGFnQW5kSUQoQik7CnZhciBBPURbMF0s
RT1EWzFdO2lmKCFTZWxlY3RvcnMuRmlsdGVycy5ieUlEKHRoaXMsRSl8fCFTZWxl
Y3RvcnMuRmlsdGVycy5ieVRhZyh0aGlzLEEpKXtyZXR1cm4gZmFsc2U7fXZhciBD
PVNlbGVjdG9ycy5VdGlscy5wYXJzZVNlbGVjdG9yKEIpO3JldHVybihDKT9TZWxl
Y3RvcnMuVXRpbHMuZmlsdGVyKHRoaXMsQyx7fSk6dHJ1ZTsKfX0pO3ZhciBTZWxl
Y3RvcnM9e0NhY2hlOntudGg6e30scGFyc2VkOnt9fX07U2VsZWN0b3JzLlJlZ0V4
cHM9e2lkOigvIyhbXHctXSspLyksdGFnOigvXihcdyt8XCopLykscXVpY2s6KC9e
KFx3K3xcKikkLyksc3BsaXR0ZXI6KC9ccyooWys+flxzXSlccyooW2EtekEtWiMu
KjpcW10pL2cpLGNvbWJpbmVkOigvXC4oW1x3LV0rKXxcWyhcdyspKD86KFshKl4k
fnxdPz0pWyInXT8oLio/KVsiJ10/KT9cXXw6KFtcdy1dKykoPzpcKFsiJ10/KC4q
Pyk/WyInXT9cKXwkKS9nKX07ClNlbGVjdG9ycy5VdGlscz17Y2hrOmZ1bmN0aW9u
KEIsQyl7aWYoIUMpe3JldHVybiB0cnVlO312YXIgQT0kdWlkKEIpO2lmKCFDW0Fd
KXtyZXR1cm4gQ1tBXT10cnVlO31yZXR1cm4gZmFsc2U7fSxwYXJzZU50aEFyZ3Vt
ZW50OmZ1bmN0aW9uKEYpe2lmKFNlbGVjdG9ycy5DYWNoZS5udGhbRl0pe3JldHVy
biBTZWxlY3RvcnMuQ2FjaGUubnRoW0ZdOwp9dmFyIEM9Ri5tYXRjaCgvXihbKy1d
P1xkKik/KFthLXpdKyk/KFsrLV0/XGQqKT8kLyk7aWYoIUMpe3JldHVybiBmYWxz
ZTt9dmFyIEU9cGFyc2VJbnQoQ1sxXSk7dmFyIEI9KEV8fEU9PT0wKT9FOjE7dmFy
IEQ9Q1syXXx8ZmFsc2U7dmFyIEE9cGFyc2VJbnQoQ1szXSl8fDA7CmlmKEIhPTAp
e0EtLTt3aGlsZShBPDEpe0ErPUI7fXdoaWxlKEE+PUIpe0EtPUI7fX1lbHNle0I9
QTtEPSJpbmRleCI7fXN3aXRjaChEKXtjYXNlIm4iOkM9e2E6QixiOkEsc3BlY2lh
bDoibiJ9O2JyZWFrO2Nhc2Uib2RkIjpDPXthOjIsYjowLHNwZWNpYWw6Im4ifTsK
YnJlYWs7Y2FzZSJldmVuIjpDPXthOjIsYjoxLHNwZWNpYWw6Im4ifTticmVhaztj
YXNlImZpcnN0IjpDPXthOjAsc3BlY2lhbDoiaW5kZXgifTticmVhaztjYXNlImxh
c3QiOkM9e3NwZWNpYWw6Imxhc3QtY2hpbGQifTticmVhaztjYXNlIm9ubHkiOkM9
e3NwZWNpYWw6Im9ubHktY2hpbGQifTsKYnJlYWs7ZGVmYXVsdDpDPXthOihCLTEp
LHNwZWNpYWw6ImluZGV4In07fXJldHVybiBTZWxlY3RvcnMuQ2FjaGUubnRoW0Zd
PUM7fSxwYXJzZVNlbGVjdG9yOmZ1bmN0aW9uKEUpe2lmKFNlbGVjdG9ycy5DYWNo
ZS5wYXJzZWRbRV0pe3JldHVybiBTZWxlY3RvcnMuQ2FjaGUucGFyc2VkW0VdOwp9
dmFyIEQsSD17Y2xhc3NlczpbXSxwc2V1ZG9zOltdLGF0dHJpYnV0ZXM6W119O3do
aWxlKChEPVNlbGVjdG9ycy5SZWdFeHBzLmNvbWJpbmVkLmV4ZWMoRSkpKXt2YXIg
ST1EWzFdLEc9RFsyXSxGPURbM10sQj1EWzRdLEM9RFs1XSxKPURbNl07aWYoSSl7
SC5jbGFzc2VzLnB1c2goSSk7Cn1lbHNle2lmKEMpe3ZhciBBPVNlbGVjdG9ycy5Q
c2V1ZG8uZ2V0KEMpO2lmKEEpe0gucHNldWRvcy5wdXNoKHtwYXJzZXI6QSxhcmd1
bWVudDpKfSk7fWVsc2V7SC5hdHRyaWJ1dGVzLnB1c2goe25hbWU6QyxvcGVyYXRv
cjoiPSIsdmFsdWU6Sn0pO319ZWxzZXtpZihHKXtILmF0dHJpYnV0ZXMucHVzaCh7
bmFtZTpHLG9wZXJhdG9yOkYsdmFsdWU6Qn0pOwp9fX19aWYoIUguY2xhc3Nlcy5s
ZW5ndGgpe2RlbGV0ZSBILmNsYXNzZXM7fWlmKCFILmF0dHJpYnV0ZXMubGVuZ3Ro
KXtkZWxldGUgSC5hdHRyaWJ1dGVzO31pZighSC5wc2V1ZG9zLmxlbmd0aCl7ZGVs
ZXRlIEgucHNldWRvczt9aWYoIUguY2xhc3NlcyYmIUguYXR0cmlidXRlcyYmIUgu
cHNldWRvcyl7SD1udWxsOwp9cmV0dXJuIFNlbGVjdG9ycy5DYWNoZS5wYXJzZWRb
RV09SDt9LHBhcnNlVGFnQW5kSUQ6ZnVuY3Rpb24oQil7dmFyIEE9Qi5tYXRjaChT
ZWxlY3RvcnMuUmVnRXhwcy50YWcpO3ZhciBDPUIubWF0Y2goU2VsZWN0b3JzLlJl
Z0V4cHMuaWQpO3JldHVyblsoQSk/QVsxXToiKiIsKEMpP0NbMV06ZmFsc2VdOwp9
LGZpbHRlcjpmdW5jdGlvbihGLEMsRSl7dmFyIEQ7aWYoQy5jbGFzc2VzKXtmb3Io
RD1DLmNsYXNzZXMubGVuZ3RoO0QtLTtEKXt2YXIgRz1DLmNsYXNzZXNbRF07aWYo
IVNlbGVjdG9ycy5GaWx0ZXJzLmJ5Q2xhc3MoRixHKSl7cmV0dXJuIGZhbHNlO319
fWlmKEMuYXR0cmlidXRlcyl7Zm9yKEQ9Qy5hdHRyaWJ1dGVzLmxlbmd0aDsKRC0t
O0Qpe3ZhciBCPUMuYXR0cmlidXRlc1tEXTtpZighU2VsZWN0b3JzLkZpbHRlcnMu
YnlBdHRyaWJ1dGUoRixCLm5hbWUsQi5vcGVyYXRvcixCLnZhbHVlKSl7cmV0dXJu
IGZhbHNlO319fWlmKEMucHNldWRvcyl7Zm9yKEQ9Qy5wc2V1ZG9zLmxlbmd0aDtE
LS07RCl7dmFyIEE9Qy5wc2V1ZG9zW0RdOwppZighU2VsZWN0b3JzLkZpbHRlcnMu
YnlQc2V1ZG8oRixBLnBhcnNlcixBLmFyZ3VtZW50LEUpKXtyZXR1cm4gZmFsc2U7
fX19cmV0dXJuIHRydWU7fSxnZXRCeVRhZ0FuZElEOmZ1bmN0aW9uKEIsQSxEKXtp
ZihEKXt2YXIgQz0oQi5nZXRFbGVtZW50QnlJZCk/Qi5nZXRFbGVtZW50QnlJZChE
LHRydWUpOkVsZW1lbnQuZ2V0RWxlbWVudEJ5SWQoQixELHRydWUpOwpyZXR1cm4o
QyYmU2VsZWN0b3JzLkZpbHRlcnMuYnlUYWcoQyxBKSk/W0NdOltdO31lbHNle3Jl
dHVybiBCLmdldEVsZW1lbnRzQnlUYWdOYW1lKEEpO319LHNlYXJjaDpmdW5jdGlv
bihKLEksTyl7dmFyIEI9W107dmFyIEM9SS50cmltKCkucmVwbGFjZShTZWxlY3Rv
cnMuUmVnRXhwcy5zcGxpdHRlcixmdW5jdGlvbihaLFksWCl7Qi5wdXNoKFkpOwpy
ZXR1cm4iOikiK1g7fSkuc3BsaXQoIjopIik7dmFyIEssRixFLFY7Zm9yKHZhciBV
PTAsUT1DLmxlbmd0aDtVPFE7VSsrKXt2YXIgVD1DW1VdO2lmKFU9PTAmJlNlbGVj
dG9ycy5SZWdFeHBzLnF1aWNrLnRlc3QoVCkpe0s9Si5nZXRFbGVtZW50c0J5VGFn
TmFtZShUKTsKY29udGludWU7fXZhciBBPUJbVS0xXTt2YXIgTD1TZWxlY3RvcnMu
VXRpbHMucGFyc2VUYWdBbmRJRChUKTt2YXIgVz1MWzBdLE09TFsxXTtpZihVPT0w
KXtLPVNlbGVjdG9ycy5VdGlscy5nZXRCeVRhZ0FuZElEKEosVyxNKTt9ZWxzZXt2
YXIgRD17fSxIPVtdO2Zvcih2YXIgUz0wLFI9Sy5sZW5ndGg7ClM8UjtTKyspe0g9
U2VsZWN0b3JzLkdldHRlcnNbQV0oSCxLW1NdLFcsTSxEKTt9Sz1IO312YXIgRz1T
ZWxlY3RvcnMuVXRpbHMucGFyc2VTZWxlY3RvcihUKTtpZihHKXtFPVtdO2Zvcih2
YXIgUD0wLE49Sy5sZW5ndGg7UDxOO1ArKyl7Vj1LW1BdO2lmKFNlbGVjdG9ycy5V
dGlscy5maWx0ZXIoVixHLE8pKXtFLnB1c2goVik7Cn19Sz1FO319cmV0dXJuIEs7
fX07U2VsZWN0b3JzLkdldHRlcnM9eyIgIjpmdW5jdGlvbihILEcsSSxBLEUpe3Zh
ciBEPVNlbGVjdG9ycy5VdGlscy5nZXRCeVRhZ0FuZElEKEcsSSxBKTtmb3IodmFy
IEM9MCxCPUQubGVuZ3RoO0M8QjtDKyspe3ZhciBGPURbQ107aWYoU2VsZWN0b3Jz
LlV0aWxzLmNoayhGLEUpKXtILnB1c2goRik7Cn19cmV0dXJuIEg7fSwiPiI6ZnVu
Y3Rpb24oSCxHLEksQSxGKXt2YXIgQz1TZWxlY3RvcnMuVXRpbHMuZ2V0QnlUYWdB
bmRJRChHLEksQSk7Zm9yKHZhciBFPTAsRD1DLmxlbmd0aDtFPEQ7RSsrKXt2YXIg
Qj1DW0VdO2lmKEIucGFyZW50Tm9kZT09RyYmU2VsZWN0b3JzLlV0aWxzLmNoayhC
LEYpKXtILnB1c2goQik7Cn19cmV0dXJuIEg7fSwiKyI6ZnVuY3Rpb24oQyxCLEEs
RSxEKXt3aGlsZSgoQj1CLm5leHRTaWJsaW5nKSl7aWYoQi5ub2RlVHlwZT09MSl7
aWYoU2VsZWN0b3JzLlV0aWxzLmNoayhCLEQpJiZTZWxlY3RvcnMuRmlsdGVycy5i
eVRhZyhCLEEpJiZTZWxlY3RvcnMuRmlsdGVycy5ieUlEKEIsRSkpe0MucHVzaChC
KTsKfWJyZWFrO319cmV0dXJuIEM7fSwifiI6ZnVuY3Rpb24oQyxCLEEsRSxEKXt3
aGlsZSgoQj1CLm5leHRTaWJsaW5nKSl7aWYoQi5ub2RlVHlwZT09MSl7aWYoIVNl
bGVjdG9ycy5VdGlscy5jaGsoQixEKSl7YnJlYWs7fWlmKFNlbGVjdG9ycy5GaWx0
ZXJzLmJ5VGFnKEIsQSkmJlNlbGVjdG9ycy5GaWx0ZXJzLmJ5SUQoQixFKSl7Qy5w
dXNoKEIpOwp9fX1yZXR1cm4gQzt9fTtTZWxlY3RvcnMuRmlsdGVycz17YnlUYWc6
ZnVuY3Rpb24oQixBKXtyZXR1cm4oQT09IioifHwoQi50YWdOYW1lJiZCLnRhZ05h
bWUudG9Mb3dlckNhc2UoKT09QSkpO30sYnlJRDpmdW5jdGlvbihBLEIpe3JldHVy
bighQnx8KEEuaWQmJkEuaWQ9PUIpKTsKfSxieUNsYXNzOmZ1bmN0aW9uKEIsQSl7
cmV0dXJuKEIuY2xhc3NOYW1lJiZCLmNsYXNzTmFtZS5jb250YWlucyhBLCIgIikp
O30sYnlQc2V1ZG86ZnVuY3Rpb24oQSxELEMsQil7cmV0dXJuIEQuY2FsbChBLEMs
Qik7fSxieUF0dHJpYnV0ZTpmdW5jdGlvbihDLEQsQixFKXt2YXIgQT1FbGVtZW50
LnByb3RvdHlwZS5nZXRQcm9wZXJ0eS5jYWxsKEMsRCk7CmlmKCFBKXtyZXR1cm4g
ZmFsc2U7fWlmKCFCfHxFPT11bmRlZmluZWQpe3JldHVybiB0cnVlO31zd2l0Y2go
Qil7Y2FzZSI9IjpyZXR1cm4oQT09RSk7Y2FzZSIqPSI6cmV0dXJuKEEuY29udGFp
bnMoRSkpO2Nhc2UiXj0iOnJldHVybihBLnN1YnN0cigwLEUubGVuZ3RoKT09RSk7
CmNhc2UiJD0iOnJldHVybihBLnN1YnN0cihBLmxlbmd0aC1FLmxlbmd0aCk9PUUp
O2Nhc2UiIT0iOnJldHVybihBIT1FKTtjYXNlIn49IjpyZXR1cm4gQS5jb250YWlu
cyhFLCIgIik7Y2FzZSJ8PSI6cmV0dXJuIEEuY29udGFpbnMoRSwiLSIpO31yZXR1
cm4gZmFsc2U7Cn19O1NlbGVjdG9ycy5Qc2V1ZG89bmV3IEhhc2goe2VtcHR5OmZ1
bmN0aW9uKCl7cmV0dXJuICEodGhpcy5pbm5lclRleHR8fHRoaXMudGV4dENvbnRl
bnR8fCIiKS5sZW5ndGg7fSxub3Q6ZnVuY3Rpb24oQSl7cmV0dXJuICFFbGVtZW50
Lm1hdGNoKHRoaXMsQSk7fSxjb250YWluczpmdW5jdGlvbihBKXtyZXR1cm4odGhp
cy5pbm5lclRleHR8fHRoaXMudGV4dENvbnRlbnR8fCIiKS5jb250YWlucyhBKTsK
fSwiZmlyc3QtY2hpbGQiOmZ1bmN0aW9uKCl7cmV0dXJuIFNlbGVjdG9ycy5Qc2V1
ZG8uaW5kZXguY2FsbCh0aGlzLDApO30sImxhc3QtY2hpbGQiOmZ1bmN0aW9uKCl7
dmFyIEE9dGhpczt3aGlsZSgoQT1BLm5leHRTaWJsaW5nKSl7aWYoQS5ub2RlVHlw
ZT09MSl7cmV0dXJuIGZhbHNlOwp9fXJldHVybiB0cnVlO30sIm9ubHktY2hpbGQi
OmZ1bmN0aW9uKCl7dmFyIEI9dGhpczt3aGlsZSgoQj1CLnByZXZpb3VzU2libGlu
Zykpe2lmKEIubm9kZVR5cGU9PTEpe3JldHVybiBmYWxzZTt9fXZhciBBPXRoaXM7
d2hpbGUoKEE9QS5uZXh0U2libGluZykpe2lmKEEubm9kZVR5cGU9PTEpe3JldHVy
biBmYWxzZTsKfX1yZXR1cm4gdHJ1ZTt9LCJudGgtY2hpbGQiOmZ1bmN0aW9uKEcs
RSl7Rz0oRz09dW5kZWZpbmVkKT8ibiI6Rzt2YXIgQz1TZWxlY3RvcnMuVXRpbHMu
cGFyc2VOdGhBcmd1bWVudChHKTtpZihDLnNwZWNpYWwhPSJuIil7cmV0dXJuIFNl
bGVjdG9ycy5Qc2V1ZG9bQy5zcGVjaWFsXS5jYWxsKHRoaXMsQy5hLEUpOwp9dmFy
IEY9MDtFLnBvc2l0aW9ucz1FLnBvc2l0aW9uc3x8e307dmFyIEQ9JHVpZCh0aGlz
KTtpZighRS5wb3NpdGlvbnNbRF0pe3ZhciBCPXRoaXM7d2hpbGUoKEI9Qi5wcmV2
aW91c1NpYmxpbmcpKXtpZihCLm5vZGVUeXBlIT0xKXtjb250aW51ZTt9RisrO3Zh
ciBBPUUucG9zaXRpb25zWyR1aWQoQildOwppZihBIT11bmRlZmluZWQpe0Y9QStG
O2JyZWFrO319RS5wb3NpdGlvbnNbRF09Rjt9cmV0dXJuKEUucG9zaXRpb25zW0Rd
JUMuYT09Qy5iKTt9LGluZGV4OmZ1bmN0aW9uKEEpe3ZhciBCPXRoaXMsQz0wO3do
aWxlKChCPUIucHJldmlvdXNTaWJsaW5nKSl7aWYoQi5ub2RlVHlwZT09MSYmKytD
PkEpe3JldHVybiBmYWxzZTsKfX1yZXR1cm4oQz09QSk7fSxldmVuOmZ1bmN0aW9u
KEIsQSl7cmV0dXJuIFNlbGVjdG9ycy5Qc2V1ZG9bIm50aC1jaGlsZCJdLmNhbGwo
dGhpcywiMm4rMSIsQSk7fSxvZGQ6ZnVuY3Rpb24oQixBKXtyZXR1cm4gU2VsZWN0
b3JzLlBzZXVkb1sibnRoLWNoaWxkIl0uY2FsbCh0aGlzLCIybiIsQSk7Cn19KTtF
bGVtZW50LkV2ZW50cy5kb21yZWFkeT17b25BZGQ6ZnVuY3Rpb24oQSl7aWYoQnJv
d3Nlci5sb2FkZWQpe0EuY2FsbCh0aGlzKTt9fX07KGZ1bmN0aW9uKCl7dmFyIEI9
ZnVuY3Rpb24oKXtpZihCcm93c2VyLmxvYWRlZCl7cmV0dXJuIDt9QnJvd3Nlci5s
b2FkZWQ9dHJ1ZTsKd2luZG93LmZpcmVFdmVudCgiZG9tcmVhZHkiKTtkb2N1bWVu
dC5maXJlRXZlbnQoImRvbXJlYWR5Iik7fTtzd2l0Y2goQnJvd3Nlci5FbmdpbmUu
bmFtZSl7Y2FzZSJ3ZWJraXQiOihmdW5jdGlvbigpeyhbImxvYWRlZCIsImNvbXBs
ZXRlIl0uY29udGFpbnMoZG9jdW1lbnQucmVhZHlTdGF0ZSkpP0IoKTphcmd1bWVu
dHMuY2FsbGVlLmRlbGF5KDUwKTsKfSkoKTticmVhaztjYXNlInRyaWRlbnQiOnZh
ciBBPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOyhmdW5jdGlvbigpeygk
dHJ5KGZ1bmN0aW9uKCl7QS5kb1Njcm9sbCgibGVmdCIpO3JldHVybiAkKEEpLmlu
amVjdChkb2N1bWVudC5ib2R5KS5zZXQoImh0bWwiLCJ0ZW1wIikuZGlzcG9zZSgp
Owp9KSk/QigpOmFyZ3VtZW50cy5jYWxsZWUuZGVsYXkoNTApO30pKCk7YnJlYWs7
ZGVmYXVsdDp3aW5kb3cuYWRkRXZlbnQoImxvYWQiLEIpO2RvY3VtZW50LmFkZEV2
ZW50KCJET01Db250ZW50TG9hZGVkIixCKTt9fSkoKTt2YXIgSlNPTj1uZXcgSGFz
aCh7ZW5jb2RlOmZ1bmN0aW9uKEIpe3N3aXRjaCgkdHlwZShCKSl7Y2FzZSJzdHJp
bmciOnJldHVybiciJytCLnJlcGxhY2UoL1tceDAwLVx4MWZcXCJdL2csSlNPTi4k
cmVwbGFjZUNoYXJzKSsnIic7CmNhc2UiYXJyYXkiOnJldHVybiJbIitTdHJpbmco
Qi5tYXAoSlNPTi5lbmNvZGUpLmZpbHRlcigkZGVmaW5lZCkpKyJdIjtjYXNlIm9i
amVjdCI6Y2FzZSJoYXNoIjp2YXIgQT1bXTtIYXNoLmVhY2goQixmdW5jdGlvbihF
LEQpe3ZhciBDPUpTT04uZW5jb2RlKEUpO2lmKEMpe0EucHVzaChKU09OLmVuY29k
ZShEKSsiOiIrQyk7Cn19KTtyZXR1cm4ieyIrQSsifSI7Y2FzZSJudW1iZXIiOmNh
c2UiYm9vbGVhbiI6cmV0dXJuIFN0cmluZyhCKTtjYXNlIGZhbHNlOnJldHVybiJu
dWxsIjt9cmV0dXJuIG51bGw7fSwkc3BlY2lhbENoYXJzOnsiXGIiOiJcXGIiLCJc
dCI6IlxcdCIsIlxuIjoiXFxuIiwiXGYiOiJcXGYiLCJcciI6IlxcciIsJyInOidc
XCInLCJcXCI6IlxcXFwifSwkcmVwbGFjZUNoYXJzOmZ1bmN0aW9uKEEpe3JldHVy
biBKU09OLiRzcGVjaWFsQ2hhcnNbQV18fCJcXHUwMCIrTWF0aC5mbG9vcihBLmNo
YXJDb2RlQXQoKS8xNikudG9TdHJpbmcoMTYpKyhBLmNoYXJDb2RlQXQoKSUxNiku
dG9TdHJpbmcoMTYpOwp9LGRlY29kZTpmdW5jdGlvbihzdHJpbmcsc2VjdXJlKXtp
ZigkdHlwZShzdHJpbmcpIT0ic3RyaW5nInx8IXN0cmluZy5sZW5ndGgpe3JldHVy
biBudWxsO31pZihzZWN1cmUmJiEoL15bLDp7fVxbXF0wLTkuXC0rRWFlZmxuci11
IFxuXHJcdF0qJC8pLnRlc3Qoc3RyaW5nLnJlcGxhY2UoL1xcLi9nLCJAIikucmVw
bGFjZSgvIlteIlxcXG5ccl0qIi9nLCIiKSkpe3JldHVybiBudWxsOwp9cmV0dXJu
IGV2YWwoIigiK3N0cmluZysiKSIpO319KTtOYXRpdmUuaW1wbGVtZW50KFtIYXNo
LEFycmF5LFN0cmluZyxOdW1iZXJdLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm4g
SlNPTi5lbmNvZGUodGhpcyk7fX0pO3ZhciBDb29raWU9bmV3IENsYXNzKHtJbXBs
ZW1lbnRzOk9wdGlvbnMsb3B0aW9uczp7cGF0aDpmYWxzZSxkb21haW46ZmFsc2Us
ZHVyYXRpb246ZmFsc2Usc2VjdXJlOmZhbHNlLGRvY3VtZW50OmRvY3VtZW50fSxp
bml0aWFsaXplOmZ1bmN0aW9uKEIsQSl7dGhpcy5rZXk9QjsKdGhpcy5zZXRPcHRp
b25zKEEpO30sd3JpdGU6ZnVuY3Rpb24oQil7Qj1lbmNvZGVVUklDb21wb25lbnQo
Qik7aWYodGhpcy5vcHRpb25zLmRvbWFpbil7Qis9IjsgZG9tYWluPSIrdGhpcy5v
cHRpb25zLmRvbWFpbjt9aWYodGhpcy5vcHRpb25zLnBhdGgpe0IrPSI7IHBhdGg9
Iit0aGlzLm9wdGlvbnMucGF0aDsKfWlmKHRoaXMub3B0aW9ucy5kdXJhdGlvbil7
dmFyIEE9bmV3IERhdGUoKTtBLnNldFRpbWUoQS5nZXRUaW1lKCkrdGhpcy5vcHRp
b25zLmR1cmF0aW9uKjI0KjYwKjYwKjEwMDApO0IrPSI7IGV4cGlyZXM9IitBLnRv
R01UU3RyaW5nKCk7fWlmKHRoaXMub3B0aW9ucy5zZWN1cmUpe0IrPSI7IHNlY3Vy
ZSI7Cn10aGlzLm9wdGlvbnMuZG9jdW1lbnQuY29va2llPXRoaXMua2V5KyI9IitC
O3JldHVybiB0aGlzO30scmVhZDpmdW5jdGlvbigpe3ZhciBBPXRoaXMub3B0aW9u
cy5kb2N1bWVudC5jb29raWUubWF0Y2goIig/Ol58OylcXHMqIit0aGlzLmtleS5l
c2NhcGVSZWdFeHAoKSsiPShbXjtdKikiKTsKcmV0dXJuKEEpP2RlY29kZVVSSUNv
bXBvbmVudChBWzFdKTpudWxsO30sZGlzcG9zZTpmdW5jdGlvbigpe25ldyBDb29r
aWUodGhpcy5rZXksJG1lcmdlKHRoaXMub3B0aW9ucyx7ZHVyYXRpb246LTF9KSku
d3JpdGUoIiIpO3JldHVybiB0aGlzO319KTtDb29raWUud3JpdGU9ZnVuY3Rpb24o
QixDLEEpe3JldHVybiBuZXcgQ29va2llKEIsQSkud3JpdGUoQyk7Cn07Q29va2ll
LnJlYWQ9ZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBDb29raWUoQSkucmVhZCgpO307
Q29va2llLmRpc3Bvc2U9ZnVuY3Rpb24oQixBKXtyZXR1cm4gbmV3IENvb2tpZShC
LEEpLmRpc3Bvc2UoKTt9O3ZhciBTd2lmZj1uZXcgQ2xhc3Moe0ltcGxlbWVudHM6
W09wdGlvbnNdLG9wdGlvbnM6e2lkOm51bGwsaGVpZ2h0OjEsd2lkdGg6MSxjb250
YWluZXI6bnVsbCxwcm9wZXJ0aWVzOnt9LHBhcmFtczp7cXVhbGl0eToiaGlnaCIs
YWxsb3dTY3JpcHRBY2Nlc3M6ImFsd2F5cyIsd01vZGU6InRyYW5zcGFyZW50Iixz
d0xpdmVDb25uZWN0OnRydWV9LGNhbGxCYWNrczp7fSx2YXJzOnt9fSx0b0VsZW1l
bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vYmplY3Q7Cn0saW5pdGlhbGl6ZTpm
dW5jdGlvbihMLE0pe3RoaXMuaW5zdGFuY2U9IlN3aWZmXyIrJHRpbWUoKTt0aGlz
LnNldE9wdGlvbnMoTSk7TT10aGlzLm9wdGlvbnM7dmFyIEI9dGhpcy5pZD1NLmlk
fHx0aGlzLmluc3RhbmNlO3ZhciBBPSQoTS5jb250YWluZXIpO1N3aWZmLkNhbGxC
YWNrc1t0aGlzLmluc3RhbmNlXT17fTsKdmFyIEU9TS5wYXJhbXMsRz1NLnZhcnMs
Rj1NLmNhbGxCYWNrczt2YXIgSD0kZXh0ZW5kKHtoZWlnaHQ6TS5oZWlnaHQsd2lk
dGg6TS53aWR0aH0sTS5wcm9wZXJ0aWVzKTt2YXIgSz10aGlzO2Zvcih2YXIgRCBp
biBGKXtTd2lmZi5DYWxsQmFja3NbdGhpcy5pbnN0YW5jZV1bRF09KGZ1bmN0aW9u
KE4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBOLmFwcGx5KEsub2JqZWN0LGFy
Z3VtZW50cyk7Cn07fSkoRltEXSk7R1tEXT0iU3dpZmYuQ2FsbEJhY2tzLiIrdGhp
cy5pbnN0YW5jZSsiLiIrRDt9RS5mbGFzaFZhcnM9SGFzaC50b1F1ZXJ5U3RyaW5n
KEcpO2lmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpe0guY2xhc3NpZD0iY2xzaWQ6
RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIjsKRS5tb3ZpZT1M
O31lbHNle0gudHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giO0gu
ZGF0YT1MO312YXIgSj0nPG9iamVjdCBpZD0iJytCKyciJztmb3IodmFyIEkgaW4g
SCl7Sis9IiAiK0krJz0iJytIW0ldKyciJzt9Sis9Ij4iO2Zvcih2YXIgQyBpbiBF
KXtpZihFW0NdKXtKKz0nPHBhcmFtIG5hbWU9IicrQysnIiB2YWx1ZT0iJytFW0Nd
KyciIC8+JzsKfX1KKz0iPC9vYmplY3Q+Ijt0aGlzLm9iamVjdD0oKEEpP0EuZW1w
dHkoKTpuZXcgRWxlbWVudCgiZGl2IikpLnNldCgiaHRtbCIsSikuZmlyc3RDaGls
ZDt9LHJlcGxhY2VzOmZ1bmN0aW9uKEEpe0E9JChBLHRydWUpO0EucGFyZW50Tm9k
ZS5yZXBsYWNlQ2hpbGQodGhpcy50b0VsZW1lbnQoKSxBKTsKcmV0dXJuIHRoaXM7
fSxpbmplY3Q6ZnVuY3Rpb24oQSl7JChBLHRydWUpLmFwcGVuZENoaWxkKHRoaXMu
dG9FbGVtZW50KCkpO3JldHVybiB0aGlzO30scmVtb3RlOmZ1bmN0aW9uKCl7cmV0
dXJuIFN3aWZmLnJlbW90ZS5hcHBseShTd2lmZixbdGhpcy50b0VsZW1lbnQoKV0u
ZXh0ZW5kKGFyZ3VtZW50cykpOwp9fSk7U3dpZmYuQ2FsbEJhY2tzPXt9O1N3aWZm
LnJlbW90ZT1mdW5jdGlvbihvYmosZm4pe3ZhciBycz1vYmouQ2FsbEZ1bmN0aW9u
KCc8aW52b2tlIG5hbWU9IicrZm4rJyIgcmV0dXJudHlwZT0iamF2YXNjcmlwdCI+
JytfX2ZsYXNoX19hcmd1bWVudHNUb1hNTChhcmd1bWVudHMsMikrIjwvaW52b2tl
PiIpOwpyZXR1cm4gZXZhbChycyk7fTt2YXIgRng9bmV3IENsYXNzKHtJbXBsZW1l
bnRzOltDaGFpbixFdmVudHMsT3B0aW9uc10sb3B0aW9uczp7ZnBzOjUwLHVuaXQ6
ZmFsc2UsZHVyYXRpb246NTAwLGxpbms6Imlnbm9yZSIsdHJhbnNpdGlvbjpmdW5j
dGlvbihBKXtyZXR1cm4gLShNYXRoLmNvcyhNYXRoLlBJKkEpLTEpLzI7Cn19LGlu
aXRpYWxpemU6ZnVuY3Rpb24oQSl7dGhpcy5zdWJqZWN0PXRoaXMuc3ViamVjdHx8
dGhpczt0aGlzLnNldE9wdGlvbnMoQSk7dGhpcy5vcHRpb25zLmR1cmF0aW9uPUZ4
LkR1cmF0aW9uc1t0aGlzLm9wdGlvbnMuZHVyYXRpb25dfHx0aGlzLm9wdGlvbnMu
ZHVyYXRpb24udG9JbnQoKTsKdmFyIEI9dGhpcy5vcHRpb25zLndhaXQ7aWYoQj09
PWZhbHNlKXt0aGlzLm9wdGlvbnMubGluaz0iY2FuY2VsIjt9fSxzdGVwOmZ1bmN0
aW9uKCl7dmFyIEE9JHRpbWUoKTtpZihBPHRoaXMudGltZSt0aGlzLm9wdGlvbnMu
ZHVyYXRpb24pe3ZhciBCPXRoaXMub3B0aW9ucy50cmFuc2l0aW9uKChBLXRoaXMu
dGltZSkvdGhpcy5vcHRpb25zLmR1cmF0aW9uKTsKdGhpcy5zZXQodGhpcy5jb21w
dXRlKHRoaXMuZnJvbSx0aGlzLnRvLEIpKTt9ZWxzZXt0aGlzLnNldCh0aGlzLmNv
bXB1dGUodGhpcy5mcm9tLHRoaXMudG8sMSkpO3RoaXMuY29tcGxldGUoKTt9fSxz
ZXQ6ZnVuY3Rpb24oQSl7cmV0dXJuIEE7fSxjb21wdXRlOmZ1bmN0aW9uKEMsQixB
KXtyZXR1cm4gRnguY29tcHV0ZShDLEIsQSk7Cn0sY2hlY2s6ZnVuY3Rpb24oQSl7
aWYoIXRoaXMudGltZXIpe3JldHVybiB0cnVlO31zd2l0Y2godGhpcy5vcHRpb25z
Lmxpbmspe2Nhc2UiY2FuY2VsIjp0aGlzLmNhbmNlbCgpO3JldHVybiB0cnVlO2Nh
c2UiY2hhaW4iOnRoaXMuY2hhaW4oQS5iaW5kKHRoaXMsQXJyYXkuc2xpY2UoYXJn
dW1lbnRzLDEpKSk7CnJldHVybiBmYWxzZTt9cmV0dXJuIGZhbHNlO30sc3RhcnQ6
ZnVuY3Rpb24oQixBKXtpZighdGhpcy5jaGVjayhhcmd1bWVudHMuY2FsbGVlLEIs
QSkpe3JldHVybiB0aGlzO310aGlzLmZyb209Qjt0aGlzLnRvPUE7dGhpcy50aW1l
PTA7dGhpcy5zdGFydFRpbWVyKCk7CnRoaXMub25TdGFydCgpO3JldHVybiB0aGlz
O30sY29tcGxldGU6ZnVuY3Rpb24oKXtpZih0aGlzLnN0b3BUaW1lcigpKXt0aGlz
Lm9uQ29tcGxldGUoKTt9cmV0dXJuIHRoaXM7fSxjYW5jZWw6ZnVuY3Rpb24oKXtp
Zih0aGlzLnN0b3BUaW1lcigpKXt0aGlzLm9uQ2FuY2VsKCk7Cn1yZXR1cm4gdGhp
czt9LG9uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLmZpcmVFdmVudCgic3RhcnQiLHRo
aXMuc3ViamVjdCk7fSxvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7dGhpcy5maXJlRXZl
bnQoImNvbXBsZXRlIix0aGlzLnN1YmplY3QpO2lmKCF0aGlzLmNhbGxDaGFpbigp
KXt0aGlzLmZpcmVFdmVudCgiY2hhaW5Db21wbGV0ZSIsdGhpcy5zdWJqZWN0KTsK
fX0sb25DYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLmZpcmVFdmVudCgiY2FuY2VsIix0
aGlzLnN1YmplY3QpLmNsZWFyQ2hhaW4oKTt9LHBhdXNlOmZ1bmN0aW9uKCl7dGhp
cy5zdG9wVGltZXIoKTtyZXR1cm4gdGhpczt9LHJlc3VtZTpmdW5jdGlvbigpe3Ro
aXMuc3RhcnRUaW1lcigpOwpyZXR1cm4gdGhpczt9LHN0b3BUaW1lcjpmdW5jdGlv
bigpe2lmKCF0aGlzLnRpbWVyKXtyZXR1cm4gZmFsc2U7fXRoaXMudGltZT0kdGlt
ZSgpLXRoaXMudGltZTt0aGlzLnRpbWVyPSRjbGVhcih0aGlzLnRpbWVyKTtyZXR1
cm4gdHJ1ZTt9LHN0YXJ0VGltZXI6ZnVuY3Rpb24oKXtpZih0aGlzLnRpbWVyKXty
ZXR1cm4gZmFsc2U7Cn10aGlzLnRpbWU9JHRpbWUoKS10aGlzLnRpbWU7dGhpcy50
aW1lcj10aGlzLnN0ZXAucGVyaW9kaWNhbChNYXRoLnJvdW5kKDEwMDAvdGhpcy5v
cHRpb25zLmZwcyksdGhpcyk7cmV0dXJuIHRydWU7fX0pO0Z4LmNvbXB1dGU9ZnVu
Y3Rpb24oQyxCLEEpe3JldHVybihCLUMpKkErQzsKfTtGeC5EdXJhdGlvbnM9eyJz
aG9ydCI6MjUwLG5vcm1hbDo1MDAsImxvbmciOjEwMDB9O0Z4LkNTUz1uZXcgQ2xh
c3Moe0V4dGVuZHM6RngscHJlcGFyZTpmdW5jdGlvbihELEUsQil7Qj0kc3BsYXQo
Qik7dmFyIEM9QlsxXTtpZighJGNoayhDKSl7QlsxXT1CWzBdOwpCWzBdPUQuZ2V0
U3R5bGUoRSk7fXZhciBBPUIubWFwKHRoaXMucGFyc2UpO3JldHVybntmcm9tOkFb
MF0sdG86QVsxXX07fSxwYXJzZTpmdW5jdGlvbihBKXtBPSRsYW1iZGEoQSkoKTtB
PSh0eXBlb2YgQT09InN0cmluZyIpP0Euc3BsaXQoIiAiKTokc3BsYXQoQSk7CnJl
dHVybiBBLm1hcChmdW5jdGlvbihDKXtDPVN0cmluZyhDKTt2YXIgQj1mYWxzZTtG
eC5DU1MuUGFyc2Vycy5lYWNoKGZ1bmN0aW9uKEYsRSl7aWYoQil7cmV0dXJuIDt9
dmFyIEQ9Ri5wYXJzZShDKTtpZigkY2hrKEQpKXtCPXt2YWx1ZTpELHBhcnNlcjpG
fTt9fSk7CkI9Qnx8e3ZhbHVlOkMscGFyc2VyOkZ4LkNTUy5QYXJzZXJzLlN0cmlu
Z307cmV0dXJuIEI7fSk7fSxjb21wdXRlOmZ1bmN0aW9uKEQsQyxCKXt2YXIgQT1b
XTsoTWF0aC5taW4oRC5sZW5ndGgsQy5sZW5ndGgpKS50aW1lcyhmdW5jdGlvbihF
KXtBLnB1c2goe3ZhbHVlOkRbRV0ucGFyc2VyLmNvbXB1dGUoRFtFXS52YWx1ZSxD
W0VdLnZhbHVlLEIpLHBhcnNlcjpEW0VdLnBhcnNlcn0pOwp9KTtBLiRmYW1pbHk9
e25hbWU6ImZ4OmNzczp2YWx1ZSJ9O3JldHVybiBBO30sc2VydmU6ZnVuY3Rpb24o
QyxCKXtpZigkdHlwZShDKSE9ImZ4OmNzczp2YWx1ZSIpe0M9dGhpcy5wYXJzZShD
KTt9dmFyIEE9W107Qy5lYWNoKGZ1bmN0aW9uKEQpe0E9QS5jb25jYXQoRC5wYXJz
ZXIuc2VydmUoRC52YWx1ZSxCKSk7Cn0pO3JldHVybiBBO30scmVuZGVyOmZ1bmN0
aW9uKEEsRCxDLEIpe0Euc2V0U3R5bGUoRCx0aGlzLnNlcnZlKEMsQikpO30sc2Vh
cmNoOmZ1bmN0aW9uKEEpe2lmKEZ4LkNTUy5DYWNoZVtBXSl7cmV0dXJuIEZ4LkNT
Uy5DYWNoZVtBXTt9dmFyIEI9e307QXJyYXkuZWFjaChkb2N1bWVudC5zdHlsZVNo
ZWV0cyxmdW5jdGlvbihFLEQpe3ZhciBDPUUuaHJlZjsKaWYoQyYmQy5jb250YWlu
cygiOi8vIikmJiFDLmNvbnRhaW5zKGRvY3VtZW50LmRvbWFpbikpe3JldHVybiA7
fXZhciBGPUUucnVsZXN8fEUuY3NzUnVsZXM7QXJyYXkuZWFjaChGLGZ1bmN0aW9u
KEksRyl7aWYoIUkuc3R5bGUpe3JldHVybiA7fXZhciBIPShJLnNlbGVjdG9yVGV4
dCk/SS5zZWxlY3RvclRleHQucmVwbGFjZSgvXlx3Ky8sZnVuY3Rpb24oSil7cmV0
dXJuIEoudG9Mb3dlckNhc2UoKTsKfSk6bnVsbDtpZighSHx8IUgudGVzdCgiXiIr
QSsiJCIpKXtyZXR1cm4gO31FbGVtZW50LlN0eWxlcy5lYWNoKGZ1bmN0aW9uKEss
Sil7aWYoIUkuc3R5bGVbSl18fEVsZW1lbnQuU2hvcnRTdHlsZXNbSl0pe3JldHVy
biA7fUs9U3RyaW5nKEkuc3R5bGVbSl0pO0JbSl09KEsudGVzdCgvXnJnYi8pKT9L
LnJnYlRvSGV4KCk6SzsKfSk7fSk7fSk7cmV0dXJuIEZ4LkNTUy5DYWNoZVtBXT1C
O319KTtGeC5DU1MuQ2FjaGU9e307RnguQ1NTLlBhcnNlcnM9bmV3IEhhc2goe0Nv
bG9yOntwYXJzZTpmdW5jdGlvbihBKXtpZihBLm1hdGNoKC9eI1swLTlhLWZdezMs
Nn0kL2kpKXtyZXR1cm4gQS5oZXhUb1JnYih0cnVlKTsKfXJldHVybigoQT1BLm1h
dGNoKC8oXGQrKSxccyooXGQrKSxccyooXGQrKS8pKSk/W0FbMV0sQVsyXSxBWzNd
XTpmYWxzZTt9LGNvbXB1dGU6ZnVuY3Rpb24oQyxCLEEpe3JldHVybiBDLm1hcChm
dW5jdGlvbihFLEQpe3JldHVybiBNYXRoLnJvdW5kKEZ4LmNvbXB1dGUoQ1tEXSxC
W0RdLEEpKTsKfSk7fSxzZXJ2ZTpmdW5jdGlvbihBKXtyZXR1cm4gQS5tYXAoTnVt
YmVyKTt9fSxOdW1iZXI6e3BhcnNlOnBhcnNlRmxvYXQsY29tcHV0ZTpGeC5jb21w
dXRlLHNlcnZlOmZ1bmN0aW9uKEIsQSl7cmV0dXJuKEEpP0IrQTpCO319LFN0cmlu
Zzp7cGFyc2U6JGxhbWJkYShmYWxzZSksY29tcHV0ZTokYXJndW1lbnRzKDEpLHNl
cnZlOiRhcmd1bWVudHMoMCl9fSk7CkZ4LlR3ZWVuPW5ldyBDbGFzcyh7RXh0ZW5k
czpGeC5DU1MsaW5pdGlhbGl6ZTpmdW5jdGlvbihCLEEpe3RoaXMuZWxlbWVudD10
aGlzLnN1YmplY3Q9JChCKTt0aGlzLnBhcmVudChBKTt9LHNldDpmdW5jdGlvbihC
LEEpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpe0E9QjsKQj10aGlzLnByb3BlcnR5
fHx0aGlzLm9wdGlvbnMucHJvcGVydHk7fXRoaXMucmVuZGVyKHRoaXMuZWxlbWVu
dCxCLEEsdGhpcy5vcHRpb25zLnVuaXQpO3JldHVybiB0aGlzO30sc3RhcnQ6ZnVu
Y3Rpb24oQyxFLEQpe2lmKCF0aGlzLmNoZWNrKGFyZ3VtZW50cy5jYWxsZWUsQyxF
LEQpKXtyZXR1cm4gdGhpczsKfXZhciBCPUFycmF5LmZsYXR0ZW4oYXJndW1lbnRz
KTt0aGlzLnByb3BlcnR5PXRoaXMub3B0aW9ucy5wcm9wZXJ0eXx8Qi5zaGlmdCgp
O3ZhciBBPXRoaXMucHJlcGFyZSh0aGlzLmVsZW1lbnQsdGhpcy5wcm9wZXJ0eSxC
KTtyZXR1cm4gdGhpcy5wYXJlbnQoQS5mcm9tLEEudG8pOwp9fSk7RWxlbWVudC5Q
cm9wZXJ0aWVzLnR3ZWVuPXtzZXQ6ZnVuY3Rpb24oQSl7dmFyIEI9dGhpcy5yZXRy
aWV2ZSgidHdlZW4iKTtpZihCKXtCLmNhbmNlbCgpO31yZXR1cm4gdGhpcy5lbGlt
aW5hdGUoInR3ZWVuIikuc3RvcmUoInR3ZWVuOm9wdGlvbnMiLCRleHRlbmQoe2xp
bms6ImNhbmNlbCJ9LEEpKTsKfSxnZXQ6ZnVuY3Rpb24oQSl7aWYoQXx8IXRoaXMu
cmV0cmlldmUoInR3ZWVuIikpe2lmKEF8fCF0aGlzLnJldHJpZXZlKCJ0d2Vlbjpv
cHRpb25zIikpe3RoaXMuc2V0KCJ0d2VlbiIsQSk7fXRoaXMuc3RvcmUoInR3ZWVu
IixuZXcgRnguVHdlZW4odGhpcyx0aGlzLnJldHJpZXZlKCJ0d2VlbjpvcHRpb25z
IikpKTsKfXJldHVybiB0aGlzLnJldHJpZXZlKCJ0d2VlbiIpO319O0VsZW1lbnQu
aW1wbGVtZW50KHt0d2VlbjpmdW5jdGlvbihBLEMsQil7dGhpcy5nZXQoInR3ZWVu
Iikuc3RhcnQoYXJndW1lbnRzKTtyZXR1cm4gdGhpczt9LGZhZGU6ZnVuY3Rpb24o
Qyl7dmFyIEU9dGhpcy5nZXQoInR3ZWVuIiksRD0ib3BhY2l0eSIsQTsKQz0kcGlj
ayhDLCJ0b2dnbGUiKTtzd2l0Y2goQyl7Y2FzZSJpbiI6RS5zdGFydChELDEpO2Jy
ZWFrO2Nhc2Uib3V0IjpFLnN0YXJ0KEQsMCk7YnJlYWs7Y2FzZSJzaG93IjpFLnNl
dChELDEpO2JyZWFrO2Nhc2UiaGlkZSI6RS5zZXQoRCwwKTticmVhaztjYXNlInRv
Z2dsZSI6dmFyIEI9dGhpcy5yZXRyaWV2ZSgiZmFkZTpmbGFnIix0aGlzLmdldCgi
b3BhY2l0eSIpPT0xKTsKRS5zdGFydChELChCKT8wOjEpO3RoaXMuc3RvcmUoImZh
ZGU6ZmxhZyIsIUIpO0E9dHJ1ZTticmVhaztkZWZhdWx0OkUuc3RhcnQoRCxhcmd1
bWVudHMpO31pZighQSl7dGhpcy5lbGltaW5hdGUoImZhZGU6ZmxhZyIpO31yZXR1
cm4gdGhpczt9LGhpZ2hsaWdodDpmdW5jdGlvbihDLEEpe2lmKCFBKXtBPXRoaXMu
cmV0cmlldmUoImhpZ2hsaWdodDpvcmlnaW5hbCIsdGhpcy5nZXRTdHlsZSgiYmFj
a2dyb3VuZC1jb2xvciIpKTsKQT0oQT09InRyYW5zcGFyZW50Iik/IiNmZmYiOkE7
fXZhciBCPXRoaXMuZ2V0KCJ0d2VlbiIpO0Iuc3RhcnQoImJhY2tncm91bmQtY29s
b3IiLEN8fCIjZmZmZjg4IixBKS5jaGFpbihmdW5jdGlvbigpe3RoaXMuc2V0U3R5
bGUoImJhY2tncm91bmQtY29sb3IiLHRoaXMucmV0cmlldmUoImhpZ2hsaWdodDpv
cmlnaW5hbCIpKTsKQi5jYWxsQ2hhaW4oKTt9LmJpbmQodGhpcykpO3JldHVybiB0
aGlzO319KTtGeC5Nb3JwaD1uZXcgQ2xhc3Moe0V4dGVuZHM6RnguQ1NTLGluaXRp
YWxpemU6ZnVuY3Rpb24oQixBKXt0aGlzLmVsZW1lbnQ9dGhpcy5zdWJqZWN0PSQo
Qik7dGhpcy5wYXJlbnQoQSk7fSxzZXQ6ZnVuY3Rpb24oQSl7aWYodHlwZW9mIEE9
PSJzdHJpbmciKXtBPXRoaXMuc2VhcmNoKEEpOwp9Zm9yKHZhciBCIGluIEEpe3Ro
aXMucmVuZGVyKHRoaXMuZWxlbWVudCxCLEFbQl0sdGhpcy5vcHRpb25zLnVuaXQp
O31yZXR1cm4gdGhpczt9LGNvbXB1dGU6ZnVuY3Rpb24oRSxELEMpe3ZhciBBPXt9
O2Zvcih2YXIgQiBpbiBFKXtBW0JdPXRoaXMucGFyZW50KEVbQl0sRFtCXSxDKTsK
fXJldHVybiBBO30sc3RhcnQ6ZnVuY3Rpb24oQil7aWYoIXRoaXMuY2hlY2soYXJn
dW1lbnRzLmNhbGxlZSxCKSl7cmV0dXJuIHRoaXM7fWlmKHR5cGVvZiBCPT0ic3Ry
aW5nIil7Qj10aGlzLnNlYXJjaChCKTt9dmFyIEU9e30sRD17fTtmb3IodmFyIEMg
aW4gQil7dmFyIEE9dGhpcy5wcmVwYXJlKHRoaXMuZWxlbWVudCxDLEJbQ10pOwpF
W0NdPUEuZnJvbTtEW0NdPUEudG87fXJldHVybiB0aGlzLnBhcmVudChFLEQpO319
KTtFbGVtZW50LlByb3BlcnRpZXMubW9ycGg9e3NldDpmdW5jdGlvbihBKXt2YXIg
Qj10aGlzLnJldHJpZXZlKCJtb3JwaCIpO2lmKEIpe0IuY2FuY2VsKCk7fXJldHVy
biB0aGlzLmVsaW1pbmF0ZSgibW9ycGgiKS5zdG9yZSgibW9ycGg6b3B0aW9ucyIs
JGV4dGVuZCh7bGluazoiY2FuY2VsIn0sQSkpOwp9LGdldDpmdW5jdGlvbihBKXtp
ZihBfHwhdGhpcy5yZXRyaWV2ZSgibW9ycGgiKSl7aWYoQXx8IXRoaXMucmV0cmll
dmUoIm1vcnBoOm9wdGlvbnMiKSl7dGhpcy5zZXQoIm1vcnBoIixBKTt9dGhpcy5z
dG9yZSgibW9ycGgiLG5ldyBGeC5Nb3JwaCh0aGlzLHRoaXMucmV0cmlldmUoIm1v
cnBoOm9wdGlvbnMiKSkpOwp9cmV0dXJuIHRoaXMucmV0cmlldmUoIm1vcnBoIik7
fX07RWxlbWVudC5pbXBsZW1lbnQoe21vcnBoOmZ1bmN0aW9uKEEpe3RoaXMuZ2V0
KCJtb3JwaCIpLnN0YXJ0KEEpO3JldHVybiB0aGlzO319KTsoZnVuY3Rpb24oKXt2
YXIgQT1GeC5wcm90b3R5cGUuaW5pdGlhbGl6ZTsKRngucHJvdG90eXBlLmluaXRp
YWxpemU9ZnVuY3Rpb24oQil7QS5jYWxsKHRoaXMsQik7dmFyIEM9dGhpcy5vcHRp
b25zLnRyYW5zaXRpb247aWYodHlwZW9mIEM9PSJzdHJpbmciJiYoQz1DLnNwbGl0
KCI6IikpKXt2YXIgRD1GeC5UcmFuc2l0aW9ucztEPURbQ1swXV18fERbQ1swXS5j
YXBpdGFsaXplKCldOwppZihDWzFdKXtEPURbImVhc2UiK0NbMV0uY2FwaXRhbGl6
ZSgpKyhDWzJdP0NbMl0uY2FwaXRhbGl6ZSgpOiIiKV07fXRoaXMub3B0aW9ucy50
cmFuc2l0aW9uPUQ7fX07fSkoKTtGeC5UcmFuc2l0aW9uPWZ1bmN0aW9uKEIsQSl7
QT0kc3BsYXQoQSk7cmV0dXJuICRleHRlbmQoQix7ZWFzZUluOmZ1bmN0aW9uKEMp
e3JldHVybiBCKEMsQSk7Cn0sZWFzZU91dDpmdW5jdGlvbihDKXtyZXR1cm4gMS1C
KDEtQyxBKTt9LGVhc2VJbk91dDpmdW5jdGlvbihDKXtyZXR1cm4oQzw9MC41KT9C
KDIqQyxBKS8yOigyLUIoMiooMS1DKSxBKSkvMjt9fSk7fTtGeC5UcmFuc2l0aW9u
cz1uZXcgSGFzaCh7bGluZWFyOiRhcmd1bWVudHMoMCl9KTsKRnguVHJhbnNpdGlv
bnMuZXh0ZW5kPWZ1bmN0aW9uKEEpe2Zvcih2YXIgQiBpbiBBKXtGeC5UcmFuc2l0
aW9uc1tCXT1uZXcgRnguVHJhbnNpdGlvbihBW0JdKTt9fTtGeC5UcmFuc2l0aW9u
cy5leHRlbmQoe1BvdzpmdW5jdGlvbihCLEEpe3JldHVybiBNYXRoLnBvdyhCLEFb
MF18fDYpOwp9LEV4cG86ZnVuY3Rpb24oQSl7cmV0dXJuIE1hdGgucG93KDIsOCoo
QS0xKSk7fSxDaXJjOmZ1bmN0aW9uKEEpe3JldHVybiAxLU1hdGguc2luKE1hdGgu
YWNvcyhBKSk7fSxTaW5lOmZ1bmN0aW9uKEEpe3JldHVybiAxLU1hdGguc2luKCgx
LUEpKk1hdGguUEkvMik7Cn0sQmFjazpmdW5jdGlvbihCLEEpe0E9QVswXXx8MS42
MTg7cmV0dXJuIE1hdGgucG93KEIsMikqKChBKzEpKkItQSk7fSxCb3VuY2U6ZnVu
Y3Rpb24oRCl7dmFyIEM7Zm9yKHZhciBCPTAsQT0xOzE7Qis9QSxBLz0yKXtpZihE
Pj0oNy00KkIpLzExKXtDPS1NYXRoLnBvdygoMTEtNipCLTExKkQpLzQsMikrQSpB
OwpicmVhazt9fXJldHVybiBDO30sRWxhc3RpYzpmdW5jdGlvbihCLEEpe3JldHVy
biBNYXRoLnBvdygyLDEwKi0tQikqTWF0aC5jb3MoMjAqQipNYXRoLlBJKihBWzBd
fHwxKS8zKTt9fSk7WyJRdWFkIiwiQ3ViaWMiLCJRdWFydCIsIlF1aW50Il0uZWFj
aChmdW5jdGlvbihCLEEpe0Z4LlRyYW5zaXRpb25zW0JdPW5ldyBGeC5UcmFuc2l0
aW9uKGZ1bmN0aW9uKEMpe3JldHVybiBNYXRoLnBvdyhDLFtBKzJdKTsKfSk7fSk7
dmFyIFJlcXVlc3Q9bmV3IENsYXNzKHtJbXBsZW1lbnRzOltDaGFpbixFdmVudHMs
T3B0aW9uc10sb3B0aW9uczp7dXJsOiIiLGRhdGE6IiIsaGVhZGVyczp7IlgtUmVx
dWVzdGVkLVdpdGgiOiJYTUxIdHRwUmVxdWVzdCIsQWNjZXB0OiJ0ZXh0L2phdmFz
Y3JpcHQsIHRleHQvaHRtbCwgYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCwgKi8q
In0sYXN5bmM6dHJ1ZSxmb3JtYXQ6ZmFsc2UsbWV0aG9kOiJwb3N0IixsaW5rOiJp
Z25vcmUiLGlzU3VjY2VzczpudWxsLGVtdWxhdGlvbjp0cnVlLHVybEVuY29kZWQ6
dHJ1ZSxlbmNvZGluZzoidXRmLTgiLGV2YWxTY3JpcHRzOmZhbHNlLGV2YWxSZXNw
b25zZTpmYWxzZX0saW5pdGlhbGl6ZTpmdW5jdGlvbihBKXt0aGlzLnhocj1uZXcg
QnJvd3Nlci5SZXF1ZXN0KCk7CnRoaXMuc2V0T3B0aW9ucyhBKTt0aGlzLm9wdGlv
bnMuaXNTdWNjZXNzPXRoaXMub3B0aW9ucy5pc1N1Y2Nlc3N8fHRoaXMuaXNTdWNj
ZXNzO3RoaXMuaGVhZGVycz1uZXcgSGFzaCh0aGlzLm9wdGlvbnMuaGVhZGVycyk7
fSxvblN0YXRlQ2hhbmdlOmZ1bmN0aW9uKCl7aWYodGhpcy54aHIucmVhZHlTdGF0
ZSE9NHx8IXRoaXMucnVubmluZyl7cmV0dXJuIDsKfXRoaXMucnVubmluZz1mYWxz
ZTt0aGlzLnN0YXR1cz0wOyR0cnkoZnVuY3Rpb24oKXt0aGlzLnN0YXR1cz10aGlz
Lnhoci5zdGF0dXM7fS5iaW5kKHRoaXMpKTtpZih0aGlzLm9wdGlvbnMuaXNTdWNj
ZXNzLmNhbGwodGhpcyx0aGlzLnN0YXR1cykpe3RoaXMucmVzcG9uc2U9e3RleHQ6
dGhpcy54aHIucmVzcG9uc2VUZXh0LHhtbDp0aGlzLnhoci5yZXNwb25zZVhNTH07
CnRoaXMuc3VjY2Vzcyh0aGlzLnJlc3BvbnNlLnRleHQsdGhpcy5yZXNwb25zZS54
bWwpO31lbHNle3RoaXMucmVzcG9uc2U9e3RleHQ6bnVsbCx4bWw6bnVsbH07dGhp
cy5mYWlsdXJlKCk7fXRoaXMueGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT0kZW1wdHk7
fSxpc1N1Y2Nlc3M6ZnVuY3Rpb24oKXtyZXR1cm4oKHRoaXMuc3RhdHVzPj0yMDAp
JiYodGhpcy5zdGF0dXM8MzAwKSk7Cn0scHJvY2Vzc1NjcmlwdHM6ZnVuY3Rpb24o
QSl7aWYodGhpcy5vcHRpb25zLmV2YWxSZXNwb25zZXx8KC8oZWNtYXxqYXZhKXNj
cmlwdC8pLnRlc3QodGhpcy5nZXRIZWFkZXIoIkNvbnRlbnQtdHlwZSIpKSl7cmV0
dXJuICRleGVjKEEpO31yZXR1cm4gQS5zdHJpcFNjcmlwdHModGhpcy5vcHRpb25z
LmV2YWxTY3JpcHRzKTsKfSxzdWNjZXNzOmZ1bmN0aW9uKEIsQSl7dGhpcy5vblN1
Y2Nlc3ModGhpcy5wcm9jZXNzU2NyaXB0cyhCKSxBKTt9LG9uU3VjY2VzczpmdW5j
dGlvbigpe3RoaXMuZmlyZUV2ZW50KCJjb21wbGV0ZSIsYXJndW1lbnRzKS5maXJl
RXZlbnQoInN1Y2Nlc3MiLGFyZ3VtZW50cykuY2FsbENoYWluKCk7Cn0sZmFpbHVy
ZTpmdW5jdGlvbigpe3RoaXMub25GYWlsdXJlKCk7fSxvbkZhaWx1cmU6ZnVuY3Rp
b24oKXt0aGlzLmZpcmVFdmVudCgiY29tcGxldGUiKS5maXJlRXZlbnQoImZhaWx1
cmUiLHRoaXMueGhyKTt9LHNldEhlYWRlcjpmdW5jdGlvbihBLEIpe3RoaXMuaGVh
ZGVycy5zZXQoQSxCKTsKcmV0dXJuIHRoaXM7fSxnZXRIZWFkZXI6ZnVuY3Rpb24o
QSl7cmV0dXJuICR0cnkoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54aHIuZ2V0UmVz
cG9uc2VIZWFkZXIoQSk7fS5iaW5kKHRoaXMpKTt9LGNoZWNrOmZ1bmN0aW9uKEEp
e2lmKCF0aGlzLnJ1bm5pbmcpe3JldHVybiB0cnVlOwp9c3dpdGNoKHRoaXMub3B0
aW9ucy5saW5rKXtjYXNlImNhbmNlbCI6dGhpcy5jYW5jZWwoKTtyZXR1cm4gdHJ1
ZTtjYXNlImNoYWluIjp0aGlzLmNoYWluKEEuYmluZCh0aGlzLEFycmF5LnNsaWNl
KGFyZ3VtZW50cywxKSkpO3JldHVybiBmYWxzZTt9cmV0dXJuIGZhbHNlOwp9LHNl
bmQ6ZnVuY3Rpb24oSSl7aWYoIXRoaXMuY2hlY2soYXJndW1lbnRzLmNhbGxlZSxJ
KSl7cmV0dXJuIHRoaXM7fXRoaXMucnVubmluZz10cnVlO3ZhciBHPSR0eXBlKEkp
O2lmKEc9PSJzdHJpbmcifHxHPT0iZWxlbWVudCIpe0k9e2RhdGE6SX07fXZhciBE
PXRoaXMub3B0aW9uczsKST0kZXh0ZW5kKHtkYXRhOkQuZGF0YSx1cmw6RC51cmws
bWV0aG9kOkQubWV0aG9kfSxJKTt2YXIgRT1JLmRhdGEsQj1JLnVybCxBPUkubWV0
aG9kO3N3aXRjaCgkdHlwZShFKSl7Y2FzZSJlbGVtZW50IjpFPSQoRSkudG9RdWVy
eVN0cmluZygpO2JyZWFrO2Nhc2Uib2JqZWN0IjpjYXNlImhhc2giOkU9SGFzaC50
b1F1ZXJ5U3RyaW5nKEUpOwp9aWYodGhpcy5vcHRpb25zLmZvcm1hdCl7dmFyIEg9
ImZvcm1hdD0iK3RoaXMub3B0aW9ucy5mb3JtYXQ7RT0oRSk/SCsiJiIrRTpIO31p
Zih0aGlzLm9wdGlvbnMuZW11bGF0aW9uJiZbInB1dCIsImRlbGV0ZSJdLmNvbnRh
aW5zKEEpKXt2YXIgRj0iX21ldGhvZD0iK0E7CkU9KEUpP0YrIiYiK0U6RjtBPSJw
b3N0Ijt9aWYodGhpcy5vcHRpb25zLnVybEVuY29kZWQmJkE9PSJwb3N0Iil7dmFy
IEM9KHRoaXMub3B0aW9ucy5lbmNvZGluZyk/IjsgY2hhcnNldD0iK3RoaXMub3B0
aW9ucy5lbmNvZGluZzoiIjt0aGlzLmhlYWRlcnMuc2V0KCJDb250ZW50LXR5cGUi
LCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiK0MpOwp9aWYoRSYm
QT09ImdldCIpe0I9QisoQi5jb250YWlucygiPyIpPyImIjoiPyIpK0U7RT1udWxs
O310aGlzLnhoci5vcGVuKEEudG9VcHBlckNhc2UoKSxCLHRoaXMub3B0aW9ucy5h
c3luYyk7dGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlPXRoaXMub25TdGF0ZUNo
YW5nZS5iaW5kKHRoaXMpOwp0aGlzLmhlYWRlcnMuZWFjaChmdW5jdGlvbihLLEop
e2lmKCEkdHJ5KGZ1bmN0aW9uKCl7dGhpcy54aHIuc2V0UmVxdWVzdEhlYWRlcihK
LEspO3JldHVybiB0cnVlO30uYmluZCh0aGlzKSkpe3RoaXMuZmlyZUV2ZW50KCJl
eGNlcHRpb24iLFtKLEtdKTt9fSx0aGlzKTsKdGhpcy5maXJlRXZlbnQoInJlcXVl
c3QiKTt0aGlzLnhoci5zZW5kKEUpO2lmKCF0aGlzLm9wdGlvbnMuYXN5bmMpe3Ro
aXMub25TdGF0ZUNoYW5nZSgpO31yZXR1cm4gdGhpczt9LGNhbmNlbDpmdW5jdGlv
bigpe2lmKCF0aGlzLnJ1bm5pbmcpe3JldHVybiB0aGlzOwp9dGhpcy5ydW5uaW5n
PWZhbHNlO3RoaXMueGhyLmFib3J0KCk7dGhpcy54aHIub25yZWFkeXN0YXRlY2hh
bmdlPSRlbXB0eTt0aGlzLnhocj1uZXcgQnJvd3Nlci5SZXF1ZXN0KCk7dGhpcy5m
aXJlRXZlbnQoImNhbmNlbCIpO3JldHVybiB0aGlzO319KTsoZnVuY3Rpb24oKXt2
YXIgQT17fTsKWyJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIiwiR0VUIiwiUE9T
VCIsIlBVVCIsIkRFTEVURSJdLmVhY2goZnVuY3Rpb24oQil7QVtCXT1mdW5jdGlv
bigpe3ZhciBDPUFycmF5LmxpbmsoYXJndW1lbnRzLHt1cmw6U3RyaW5nLnR5cGUs
ZGF0YTokZGVmaW5lZH0pOwpyZXR1cm4gdGhpcy5zZW5kKCRleHRlbmQoQyx7bWV0
aG9kOkIudG9Mb3dlckNhc2UoKX0pKTt9O30pO1JlcXVlc3QuaW1wbGVtZW50KEEp
O30pKCk7RWxlbWVudC5Qcm9wZXJ0aWVzLnNlbmQ9e3NldDpmdW5jdGlvbihBKXt2
YXIgQj10aGlzLnJldHJpZXZlKCJzZW5kIik7CmlmKEIpe0IuY2FuY2VsKCk7fXJl
dHVybiB0aGlzLmVsaW1pbmF0ZSgic2VuZCIpLnN0b3JlKCJzZW5kOm9wdGlvbnMi
LCRleHRlbmQoe2RhdGE6dGhpcyxsaW5rOiJjYW5jZWwiLG1ldGhvZDp0aGlzLmdl
dCgibWV0aG9kIil8fCJwb3N0Iix1cmw6dGhpcy5nZXQoImFjdGlvbiIpfSxBKSk7
Cn0sZ2V0OmZ1bmN0aW9uKEEpe2lmKEF8fCF0aGlzLnJldHJpZXZlKCJzZW5kIikp
e2lmKEF8fCF0aGlzLnJldHJpZXZlKCJzZW5kOm9wdGlvbnMiKSl7dGhpcy5zZXQo
InNlbmQiLEEpO310aGlzLnN0b3JlKCJzZW5kIixuZXcgUmVxdWVzdCh0aGlzLnJl
dHJpZXZlKCJzZW5kOm9wdGlvbnMiKSkpOwp9cmV0dXJuIHRoaXMucmV0cmlldmUo
InNlbmQiKTt9fTtFbGVtZW50LmltcGxlbWVudCh7c2VuZDpmdW5jdGlvbihBKXt2
YXIgQj10aGlzLmdldCgic2VuZCIpO0Iuc2VuZCh7ZGF0YTp0aGlzLHVybDpBfHxC
Lm9wdGlvbnMudXJsfSk7cmV0dXJuIHRoaXM7fX0pO1JlcXVlc3QuSFRNTD1uZXcg
Q2xhc3Moe0V4dGVuZHM6UmVxdWVzdCxvcHRpb25zOnt1cGRhdGU6ZmFsc2UsZXZh
bFNjcmlwdHM6dHJ1ZSxmaWx0ZXI6ZmFsc2V9LHByb2Nlc3NIVE1MOmZ1bmN0aW9u
KEMpe3ZhciBCPUMubWF0Y2goLzxib2R5W14+XSo+KFtcc1xTXSo/KTxcL2JvZHk+
L2kpOwpDPShCKT9CWzFdOkM7dmFyIEE9bmV3IEVsZW1lbnQoImRpdiIpO3JldHVy
biAkdHJ5KGZ1bmN0aW9uKCl7dmFyIEQ9Ijxyb290PiIrQysiPC9yb290PiIsRztp
ZihCcm93c2VyLkVuZ2luZS50cmlkZW50KXtHPW5ldyBBY3RpdmVYT2JqZWN0KCJN
aWNyb3NvZnQuWE1MRE9NIik7CkcuYXN5bmM9ZmFsc2U7Ry5sb2FkWE1MKEQpO31l
bHNle0c9bmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhELCJ0ZXh0L3ht
bCIpO31EPUcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInJvb3QiKVswXTtmb3IodmFy
IEY9MCxFPUQuY2hpbGROb2Rlcy5sZW5ndGg7CkY8RTtGKyspe3ZhciBIPUVsZW1l
bnQuY2xvbmUoRC5jaGlsZE5vZGVzW0ZdLHRydWUsdHJ1ZSk7aWYoSCl7QS5ncmFi
KEgpO319cmV0dXJuIEE7fSl8fEEuc2V0KCJodG1sIixDKTt9LHN1Y2Nlc3M6ZnVu
Y3Rpb24oRCl7dmFyIEM9dGhpcy5vcHRpb25zLEI9dGhpcy5yZXNwb25zZTsKQi5o
dG1sPUQuc3RyaXBTY3JpcHRzKGZ1bmN0aW9uKEUpe0IuamF2YXNjcmlwdD1FO30p
O3ZhciBBPXRoaXMucHJvY2Vzc0hUTUwoQi5odG1sKTtCLnRyZWU9QS5jaGlsZE5v
ZGVzO0IuZWxlbWVudHM9QS5nZXRFbGVtZW50cygiKiIpO2lmKEMuZmlsdGVyKXtC
LnRyZWU9Qi5lbGVtZW50cy5maWx0ZXIoQy5maWx0ZXIpOwp9aWYoQy51cGRhdGUp
eyQoQy51cGRhdGUpLmVtcHR5KCkuYWRvcHQoQi50cmVlKTt9aWYoQy5ldmFsU2Ny
aXB0cyl7JGV4ZWMoQi5qYXZhc2NyaXB0KTt9dGhpcy5vblN1Y2Nlc3MoQi50cmVl
LEIuZWxlbWVudHMsQi5odG1sLEIuamF2YXNjcmlwdCk7fX0pO0VsZW1lbnQuUHJv
cGVydGllcy5sb2FkPXtzZXQ6ZnVuY3Rpb24oQSl7dmFyIEI9dGhpcy5yZXRyaWV2
ZSgibG9hZCIpOwppZihCKXtzZW5kLmNhbmNlbCgpO31yZXR1cm4gdGhpcy5lbGlt
aW5hdGUoImxvYWQiKS5zdG9yZSgibG9hZDpvcHRpb25zIiwkZXh0ZW5kKHtkYXRh
OnRoaXMsbGluazoiY2FuY2VsIix1cGRhdGU6dGhpcyxtZXRob2Q6ImdldCJ9LEEp
KTt9LGdldDpmdW5jdGlvbihBKXtpZihBfHwhdGhpcy5yZXRyaWV2ZSgibG9hZCIp
KXtpZihBfHwhdGhpcy5yZXRyaWV2ZSgibG9hZDpvcHRpb25zIikpe3RoaXMuc2V0
KCJsb2FkIixBKTsKfXRoaXMuc3RvcmUoImxvYWQiLG5ldyBSZXF1ZXN0LkhUTUwo
dGhpcy5yZXRyaWV2ZSgibG9hZDpvcHRpb25zIikpKTt9cmV0dXJuIHRoaXMucmV0
cmlldmUoImxvYWQiKTt9fTtFbGVtZW50LmltcGxlbWVudCh7bG9hZDpmdW5jdGlv
bigpe3RoaXMuZ2V0KCJsb2FkIikuc2VuZChBcnJheS5saW5rKGFyZ3VtZW50cyx7
ZGF0YTpPYmplY3QudHlwZSx1cmw6U3RyaW5nLnR5cGV9KSk7CnJldHVybiB0aGlz
O319KTtSZXF1ZXN0LkpTT049bmV3IENsYXNzKHtFeHRlbmRzOlJlcXVlc3Qsb3B0
aW9uczp7c2VjdXJlOnRydWV9LGluaXRpYWxpemU6ZnVuY3Rpb24oQSl7dGhpcy5w
YXJlbnQoQSk7dGhpcy5oZWFkZXJzLmV4dGVuZCh7QWNjZXB0OiJhcHBsaWNhdGlv
bi9qc29uIiwiWC1SZXF1ZXN0IjoiSlNPTiJ9KTsKfSxzdWNjZXNzOmZ1bmN0aW9u
KEEpe3RoaXMucmVzcG9uc2UuanNvbj1KU09OLmRlY29kZShBLHRoaXMub3B0aW9u
cy5zZWN1cmUpO3RoaXMub25TdWNjZXNzKHRoaXMucmVzcG9uc2UuanNvbixBKTt9
fSk7Ci8vTW9vVG9vbHMgTW9yZSwgPGh0dHA6Ly9tb290b29scy5uZXQvbW9yZT4u
IENvcHlyaWdodCAoYykgMjAwNi0yMDA4IFZhbGVyaW8gUHJvaWV0dGksIDxodHRw
Oi8vbWFkNG1pbGsubmV0PiwgTUlUIFN0eWxlIExpY2Vuc2UuCnZhciBBc3NldD1u
ZXcgSGFzaCh7amF2YXNjcmlwdDpmdW5jdGlvbihGLEQpe0Q9JGV4dGVuZCh7b25s
b2FkOiRlbXB0eSxkb2N1bWVudDpkb2N1bWVudCxjaGVjazokbGFtYmRhKHRydWUp
fSxEKTt2YXIgQj1uZXcgRWxlbWVudCgic2NyaXB0Iix7c3JjOkYsdHlwZToidGV4
dC9qYXZhc2NyaXB0In0pOwp2YXIgRT1ELm9ubG9hZC5iaW5kKEIpLEE9RC5jaGVj
ayxHPUQuZG9jdW1lbnQ7ZGVsZXRlIEQub25sb2FkO2RlbGV0ZSBELmNoZWNrO2Rl
bGV0ZSBELmRvY3VtZW50O0IuYWRkRXZlbnRzKHtsb2FkOkUscmVhZHlzdGF0ZWNo
YW5nZTpmdW5jdGlvbigpe2lmKFsibG9hZGVkIiwiY29tcGxldGUiXS5jb250YWlu
cyh0aGlzLnJlYWR5U3RhdGUpKXtFKCk7Cn19fSkuc2V0UHJvcGVydGllcyhEKTtp
ZihCcm93c2VyLkVuZ2luZS53ZWJraXQ0MTkpe3ZhciBDPShmdW5jdGlvbigpe2lm
KCEkdHJ5KEEpKXtyZXR1cm4gO30kY2xlYXIoQyk7RSgpO30pLnBlcmlvZGljYWwo
NTApO31yZXR1cm4gQi5pbmplY3QoRy5oZWFkKTt9LGNzczpmdW5jdGlvbihCLEEp
e3JldHVybiBuZXcgRWxlbWVudCgibGluayIsJG1lcmdlKHtyZWw6InN0eWxlc2hl
ZXQiLG1lZGlhOiJzY3JlZW4iLHR5cGU6InRleHQvY3NzIixocmVmOkJ9LEEpKS5p
bmplY3QoZG9jdW1lbnQuaGVhZCk7Cn0saW1hZ2U6ZnVuY3Rpb24oQyxCKXtCPSRt
ZXJnZSh7b25sb2FkOiRlbXB0eSxvbmFib3J0OiRlbXB0eSxvbmVycm9yOiRlbXB0
eX0sQik7dmFyIEQ9bmV3IEltYWdlKCk7dmFyIEE9JChEKXx8bmV3IEVsZW1lbnQo
ImltZyIpO1sibG9hZCIsImFib3J0IiwiZXJyb3IiXS5lYWNoKGZ1bmN0aW9uKEUp
e3ZhciBGPSJvbiIrRTsKdmFyIEc9QltGXTtkZWxldGUgQltGXTtEW0ZdPWZ1bmN0
aW9uKCl7aWYoIUQpe3JldHVybiA7fWlmKCFBLnBhcmVudE5vZGUpe0Eud2lkdGg9
RC53aWR0aDtBLmhlaWdodD1ELmhlaWdodDt9RD1ELm9ubG9hZD1ELm9uYWJvcnQ9
RC5vbmVycm9yPW51bGw7Ry5kZWxheSgxLEEsQSk7CkEuZmlyZUV2ZW50KEUsQSwx
KTt9O30pO0Quc3JjPUEuc3JjPUM7aWYoRCYmRC5jb21wbGV0ZSl7RC5vbmxvYWQu
ZGVsYXkoMSk7fXJldHVybiBBLnNldFByb3BlcnRpZXMoQik7fSxpbWFnZXM6ZnVu
Y3Rpb24oRCxDKXtDPSRtZXJnZSh7b25Db21wbGV0ZTokZW1wdHksb25Qcm9ncmVz
czokZW1wdHl9LEMpOwppZighRC5wdXNoKXtEPVtEXTt9dmFyIEE9W107dmFyIEI9
MDtELmVhY2goZnVuY3Rpb24oRil7dmFyIEU9bmV3IEFzc2V0LmltYWdlKEYse29u
bG9hZDpmdW5jdGlvbigpe0Mub25Qcm9ncmVzcy5jYWxsKHRoaXMsQixELmluZGV4
T2YoRikpO0IrKztpZihCPT1ELmxlbmd0aCl7Qy5vbkNvbXBsZXRlKCk7Cn19fSk7
QS5wdXNoKEUpO30pO3JldHVybiBuZXcgRWxlbWVudHMoQSk7fX0pOwovL01vb1Rv
b2xzIE1vcmUsIDxodHRwOi8vbW9vdG9vbHMubmV0L21vcmU+LiBDb3B5cmlnaHQg
KGMpIDIwMDYtMjAwOCBWYWxlcmlvIFByb2lldHRpLCA8aHR0cDovL21hZDRtaWxr
Lm5ldD4sIE1JVCBTdHlsZSBMaWNlbnNlLgpGeC5TY3JvbGw9bmV3IENsYXNzKHtF
eHRlbmRzOkZ4LG9wdGlvbnM6e29mZnNldDp7eDowLHk6MH0sd2hlZWxTdG9wczp0
cnVlfSxpbml0aWFsaXplOmZ1bmN0aW9uKEIsQSl7dGhpcy5lbGVtZW50PXRoaXMu
c3ViamVjdD0kKEIpO3RoaXMucGFyZW50KEEpO3ZhciBEPXRoaXMuY2FuY2VsLmJp
bmQodGhpcyxmYWxzZSk7CmlmKCR0eXBlKHRoaXMuZWxlbWVudCkhPSJlbGVtZW50
Iil7dGhpcy5lbGVtZW50PSQodGhpcy5lbGVtZW50LmdldERvY3VtZW50KCkuYm9k
eSk7fXZhciBDPXRoaXMuZWxlbWVudDtpZih0aGlzLm9wdGlvbnMud2hlZWxTdG9w
cyl7dGhpcy5hZGRFdmVudCgic3RhcnQiLGZ1bmN0aW9uKCl7Qy5hZGRFdmVudCgi
bW91c2V3aGVlbCIsRCk7Cn0sdHJ1ZSk7dGhpcy5hZGRFdmVudCgiY29tcGxldGUi
LGZ1bmN0aW9uKCl7Qy5yZW1vdmVFdmVudCgibW91c2V3aGVlbCIsRCk7fSx0cnVl
KTt9fSxzZXQ6ZnVuY3Rpb24oKXt2YXIgQT1BcnJheS5mbGF0dGVuKGFyZ3VtZW50
cyk7dGhpcy5lbGVtZW50LnNjcm9sbFRvKEFbMF0sQVsxXSk7Cn0sY29tcHV0ZTpm
dW5jdGlvbihFLEQsQyl7dmFyIEI9W107dmFyIEE9MjtBLnRpbWVzKGZ1bmN0aW9u
KEYpe0IucHVzaChGeC5jb21wdXRlKEVbRl0sRFtGXSxDKSk7fSk7cmV0dXJuIEI7
fSxzdGFydDpmdW5jdGlvbihDLEgpe2lmKCF0aGlzLmNoZWNrKGFyZ3VtZW50cy5j
YWxsZWUsQyxIKSl7cmV0dXJuIHRoaXM7Cn12YXIgRT10aGlzLmVsZW1lbnQuZ2V0
U2l6ZSgpLEY9dGhpcy5lbGVtZW50LmdldFNjcm9sbFNpemUoKTt2YXIgQj10aGlz
LmVsZW1lbnQuZ2V0U2Nyb2xsKCksRD17eDpDLHk6SH07Zm9yKHZhciBHIGluIEQp
e3ZhciBBPUZbR10tRVtHXTtpZigkY2hrKERbR10pKXtEW0ddPSgkdHlwZShEW0dd
KT09Im51bWJlciIpP0RbR10ubGltaXQoMCxBKTpBOwp9ZWxzZXtEW0ddPUJbR107
fURbR10rPXRoaXMub3B0aW9ucy5vZmZzZXRbR107fXJldHVybiB0aGlzLnBhcmVu
dChbQi54LEIueV0sW0QueCxELnldKTt9LHRvVG9wOmZ1bmN0aW9uKCl7cmV0dXJu
IHRoaXMuc3RhcnQoZmFsc2UsMCk7fSx0b0xlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy5zdGFydCgwLGZhbHNlKTsKfSx0b1JpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJu
IHRoaXMuc3RhcnQoInJpZ2h0IixmYWxzZSk7fSx0b0JvdHRvbTpmdW5jdGlvbigp
e3JldHVybiB0aGlzLnN0YXJ0KGZhbHNlLCJib3R0b20iKTt9LHRvRWxlbWVudDpm
dW5jdGlvbihCKXt2YXIgQT0kKEIpLmdldFBvc2l0aW9uKHRoaXMuZWxlbWVudCk7
CnJldHVybiB0aGlzLnN0YXJ0KEEueCxBLnkpO319KTsKLy9Nb29Ub29scyBNb3Jl
LCA8aHR0cDovL21vb3Rvb2xzLm5ldC9tb3JlPi4gQ29weXJpZ2h0IChjKSAyMDA2
LTIwMDggVmFsZXJpbyBQcm9pZXR0aSwgPGh0dHA6Ly9tYWQ0bWlsay5uZXQ+LCBN
SVQgU3R5bGUgTGljZW5zZS4KdmFyIERyYWc9bmV3IENsYXNzKHtJbXBsZW1lbnRz
OltFdmVudHMsT3B0aW9uc10sb3B0aW9uczp7c25hcDo2LHVuaXQ6InB4Iixncmlk
OmZhbHNlLHN0eWxlOnRydWUsbGltaXQ6ZmFsc2UsaGFuZGxlOmZhbHNlLGludmVy
dDpmYWxzZSxwcmV2ZW50RGVmYXVsdDpmYWxzZSxtb2RpZmllcnM6e3g6ImxlZnQi
LHk6InRvcCJ9fSxpbml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIEI9QXJyYXkubGlu
ayhhcmd1bWVudHMse29wdGlvbnM6T2JqZWN0LnR5cGUsZWxlbWVudDokZGVmaW5l
ZH0pOwp0aGlzLmVsZW1lbnQ9JChCLmVsZW1lbnQpO3RoaXMuZG9jdW1lbnQ9dGhp
cy5lbGVtZW50LmdldERvY3VtZW50KCk7dGhpcy5zZXRPcHRpb25zKEIub3B0aW9u
c3x8e30pO3ZhciBBPSR0eXBlKHRoaXMub3B0aW9ucy5oYW5kbGUpO3RoaXMuaGFu
ZGxlcz0oQT09ImFycmF5Inx8QT09ImNvbGxlY3Rpb24iKT8kJCh0aGlzLm9wdGlv
bnMuaGFuZGxlKTokKHRoaXMub3B0aW9ucy5oYW5kbGUpfHx0aGlzLmVsZW1lbnQ7
CnRoaXMubW91c2U9e25vdzp7fSxwb3M6e319O3RoaXMudmFsdWU9e3N0YXJ0Ont9
LG5vdzp7fX07dGhpcy5zZWxlY3Rpb249KEJyb3dzZXIuRW5naW5lLnRyaWRlbnQp
PyJzZWxlY3RzdGFydCI6Im1vdXNlZG93biI7dGhpcy5ib3VuZD17c3RhcnQ6dGhp
cy5zdGFydC5iaW5kKHRoaXMpLGNoZWNrOnRoaXMuY2hlY2suYmluZCh0aGlzKSxk
cmFnOnRoaXMuZHJhZy5iaW5kKHRoaXMpLHN0b3A6dGhpcy5zdG9wLmJpbmQodGhp
cyksY2FuY2VsOnRoaXMuY2FuY2VsLmJpbmQodGhpcyksZXZlbnRTdG9wOiRsYW1i
ZGEoZmFsc2UpfTsKdGhpcy5hdHRhY2goKTt9LGF0dGFjaDpmdW5jdGlvbigpe3Ro
aXMuaGFuZGxlcy5hZGRFdmVudCgibW91c2Vkb3duIix0aGlzLmJvdW5kLnN0YXJ0
KTtyZXR1cm4gdGhpczt9LGRldGFjaDpmdW5jdGlvbigpe3RoaXMuaGFuZGxlcy5y
ZW1vdmVFdmVudCgibW91c2Vkb3duIix0aGlzLmJvdW5kLnN0YXJ0KTsKcmV0dXJu
IHRoaXM7fSxzdGFydDpmdW5jdGlvbihDKXtpZih0aGlzLm9wdGlvbnMucHJldmVu
dERlZmF1bHQpe0MucHJldmVudERlZmF1bHQoKTt9dGhpcy5maXJlRXZlbnQoImJl
Zm9yZVN0YXJ0Iix0aGlzLmVsZW1lbnQpO3RoaXMubW91c2Uuc3RhcnQ9Qy5wYWdl
Owp2YXIgQT10aGlzLm9wdGlvbnMubGltaXQ7dGhpcy5saW1pdD17eDpbXSx5Oltd
fTtmb3IodmFyIEQgaW4gdGhpcy5vcHRpb25zLm1vZGlmaWVycyl7aWYoIXRoaXMu
b3B0aW9ucy5tb2RpZmllcnNbRF0pe2NvbnRpbnVlO31pZih0aGlzLm9wdGlvbnMu
c3R5bGUpe3RoaXMudmFsdWUubm93W0RdPXRoaXMuZWxlbWVudC5nZXRTdHlsZSh0
aGlzLm9wdGlvbnMubW9kaWZpZXJzW0RdKS50b0ludCgpOwp9ZWxzZXt0aGlzLnZh
bHVlLm5vd1tEXT10aGlzLmVsZW1lbnRbdGhpcy5vcHRpb25zLm1vZGlmaWVyc1tE
XV07fWlmKHRoaXMub3B0aW9ucy5pbnZlcnQpe3RoaXMudmFsdWUubm93W0RdKj0t
MTt9dGhpcy5tb3VzZS5wb3NbRF09Qy5wYWdlW0RdLXRoaXMudmFsdWUubm93W0Rd
OwppZihBJiZBW0RdKXtmb3IodmFyIEI9MjtCLS07Qil7aWYoJGNoayhBW0RdW0Jd
KSl7dGhpcy5saW1pdFtEXVtCXT0kbGFtYmRhKEFbRF1bQl0pKCk7fX19fWlmKCR0
eXBlKHRoaXMub3B0aW9ucy5ncmlkKT09Im51bWJlciIpe3RoaXMub3B0aW9ucy5n
cmlkPXt4OnRoaXMub3B0aW9ucy5ncmlkLHk6dGhpcy5vcHRpb25zLmdyaWR9Owp9
dGhpcy5kb2N1bWVudC5hZGRFdmVudHMoe21vdXNlbW92ZTp0aGlzLmJvdW5kLmNo
ZWNrLG1vdXNldXA6dGhpcy5ib3VuZC5jYW5jZWx9KTt0aGlzLmRvY3VtZW50LmFk
ZEV2ZW50KHRoaXMuc2VsZWN0aW9uLHRoaXMuYm91bmQuZXZlbnRTdG9wKTt9LGNo
ZWNrOmZ1bmN0aW9uKEEpe2lmKHRoaXMub3B0aW9ucy5wcmV2ZW50RGVmYXVsdCl7
QS5wcmV2ZW50RGVmYXVsdCgpOwp9dmFyIEI9TWF0aC5yb3VuZChNYXRoLnNxcnQo
TWF0aC5wb3coQS5wYWdlLngtdGhpcy5tb3VzZS5zdGFydC54LDIpK01hdGgucG93
KEEucGFnZS55LXRoaXMubW91c2Uuc3RhcnQueSwyKSkpO2lmKEI+dGhpcy5vcHRp
b25zLnNuYXApe3RoaXMuY2FuY2VsKCk7dGhpcy5kb2N1bWVudC5hZGRFdmVudHMo
e21vdXNlbW92ZTp0aGlzLmJvdW5kLmRyYWcsbW91c2V1cDp0aGlzLmJvdW5kLnN0
b3B9KTsKdGhpcy5maXJlRXZlbnQoInN0YXJ0Iix0aGlzLmVsZW1lbnQpLmZpcmVF
dmVudCgic25hcCIsdGhpcy5lbGVtZW50KTt9fSxkcmFnOmZ1bmN0aW9uKEEpe2lm
KHRoaXMub3B0aW9ucy5wcmV2ZW50RGVmYXVsdCl7QS5wcmV2ZW50RGVmYXVsdCgp
O310aGlzLm1vdXNlLm5vdz1BLnBhZ2U7CmZvcih2YXIgQiBpbiB0aGlzLm9wdGlv
bnMubW9kaWZpZXJzKXtpZighdGhpcy5vcHRpb25zLm1vZGlmaWVyc1tCXSl7Y29u
dGludWU7fXRoaXMudmFsdWUubm93W0JdPXRoaXMubW91c2Uubm93W0JdLXRoaXMu
bW91c2UucG9zW0JdO2lmKHRoaXMub3B0aW9ucy5pbnZlcnQpe3RoaXMudmFsdWUu
bm93W0JdKj0tMTsKfWlmKHRoaXMub3B0aW9ucy5saW1pdCYmdGhpcy5saW1pdFtC
XSl7aWYoJGNoayh0aGlzLmxpbWl0W0JdWzFdKSYmKHRoaXMudmFsdWUubm93W0Jd
PnRoaXMubGltaXRbQl1bMV0pKXt0aGlzLnZhbHVlLm5vd1tCXT10aGlzLmxpbWl0
W0JdWzFdO31lbHNle2lmKCRjaGsodGhpcy5saW1pdFtCXVswXSkmJih0aGlzLnZh
bHVlLm5vd1tCXTx0aGlzLmxpbWl0W0JdWzBdKSl7dGhpcy52YWx1ZS5ub3dbQl09
dGhpcy5saW1pdFtCXVswXTsKfX19aWYodGhpcy5vcHRpb25zLmdyaWRbQl0pe3Ro
aXMudmFsdWUubm93W0JdLT0odGhpcy52YWx1ZS5ub3dbQl0ldGhpcy5vcHRpb25z
LmdyaWRbQl0pO31pZih0aGlzLm9wdGlvbnMuc3R5bGUpe3RoaXMuZWxlbWVudC5z
ZXRTdHlsZSh0aGlzLm9wdGlvbnMubW9kaWZpZXJzW0JdLHRoaXMudmFsdWUubm93
W0JdK3RoaXMub3B0aW9ucy51bml0KTsKfWVsc2V7dGhpcy5lbGVtZW50W3RoaXMu
b3B0aW9ucy5tb2RpZmllcnNbQl1dPXRoaXMudmFsdWUubm93W0JdO319dGhpcy5m
aXJlRXZlbnQoImRyYWciLHRoaXMuZWxlbWVudCk7fSxjYW5jZWw6ZnVuY3Rpb24o
QSl7dGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudCgibW91c2Vtb3ZlIix0aGlzLmJv
dW5kLmNoZWNrKTsKdGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudCgibW91c2V1cCIs
dGhpcy5ib3VuZC5jYW5jZWwpO2lmKEEpe3RoaXMuZG9jdW1lbnQucmVtb3ZlRXZl
bnQodGhpcy5zZWxlY3Rpb24sdGhpcy5ib3VuZC5ldmVudFN0b3ApO3RoaXMuZmly
ZUV2ZW50KCJjYW5jZWwiLHRoaXMuZWxlbWVudCk7Cn19LHN0b3A6ZnVuY3Rpb24o
QSl7dGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudCh0aGlzLnNlbGVjdGlvbix0aGlz
LmJvdW5kLmV2ZW50U3RvcCk7dGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudCgibW91
c2Vtb3ZlIix0aGlzLmJvdW5kLmRyYWcpO3RoaXMuZG9jdW1lbnQucmVtb3ZlRXZl
bnQoIm1vdXNldXAiLHRoaXMuYm91bmQuc3RvcCk7CmlmKEEpe3RoaXMuZmlyZUV2
ZW50KCJjb21wbGV0ZSIsdGhpcy5lbGVtZW50KTt9fX0pO0VsZW1lbnQuaW1wbGVt
ZW50KHttYWtlUmVzaXphYmxlOmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgRHJhZyh0
aGlzLCRtZXJnZSh7bW9kaWZpZXJzOnt4OiJ3aWR0aCIseToiaGVpZ2h0In19LEEp
KTsKfX0pO3ZhciBTbGlkZXI9bmV3IENsYXNzKHtJbXBsZW1lbnRzOltFdmVudHMs
T3B0aW9uc10sb3B0aW9uczp7b25UaWNrOmZ1bmN0aW9uKEEpe2lmKHRoaXMub3B0
aW9ucy5zbmFwKXtBPXRoaXMudG9Qb3NpdGlvbih0aGlzLnN0ZXApO310aGlzLmtu
b2Iuc2V0U3R5bGUodGhpcy5wcm9wZXJ0eSxBKTsKfSxzbmFwOmZhbHNlLG9mZnNl
dDowLHJhbmdlOmZhbHNlLHdoZWVsOmZhbHNlLHN0ZXBzOjEwMCxtb2RlOiJob3Jp
em9udGFsIn0saW5pdGlhbGl6ZTpmdW5jdGlvbihFLEEsRCl7dGhpcy5zZXRPcHRp
b25zKEQpO3RoaXMuZWxlbWVudD0kKEUpO3RoaXMua25vYj0kKEEpOwp0aGlzLnBy
ZXZpb3VzQ2hhbmdlPXRoaXMucHJldmlvdXNFbmQ9dGhpcy5zdGVwPS0xO3RoaXMu
ZWxlbWVudC5hZGRFdmVudCgibW91c2Vkb3duIix0aGlzLmNsaWNrZWRFbGVtZW50
LmJpbmQodGhpcykpO2lmKHRoaXMub3B0aW9ucy53aGVlbCl7dGhpcy5lbGVtZW50
LmFkZEV2ZW50KCJtb3VzZXdoZWVsIix0aGlzLnNjcm9sbGVkRWxlbWVudC5iaW5k
V2l0aEV2ZW50KHRoaXMpKTsKfXZhciBGLEI9e30sQz17eDpmYWxzZSx5OmZhbHNl
fTtzd2l0Y2godGhpcy5vcHRpb25zLm1vZGUpe2Nhc2UidmVydGljYWwiOnRoaXMu
YXhpcz0ieSI7dGhpcy5wcm9wZXJ0eT0idG9wIjtGPSJvZmZzZXRIZWlnaHQiO2Jy
ZWFrO2Nhc2UiaG9yaXpvbnRhbCI6dGhpcy5heGlzPSJ4IjsKdGhpcy5wcm9wZXJ0
eT0ibGVmdCI7Rj0ib2Zmc2V0V2lkdGgiO310aGlzLmhhbGY9dGhpcy5rbm9iW0Zd
LzI7dGhpcy5mdWxsPXRoaXMuZWxlbWVudFtGXS10aGlzLmtub2JbRl0rKHRoaXMu
b3B0aW9ucy5vZmZzZXQqMik7dGhpcy5taW49JGNoayh0aGlzLm9wdGlvbnMucmFu
Z2VbMF0pP3RoaXMub3B0aW9ucy5yYW5nZVswXTowOwp0aGlzLm1heD0kY2hrKHRo
aXMub3B0aW9ucy5yYW5nZVsxXSk/dGhpcy5vcHRpb25zLnJhbmdlWzFdOnRoaXMu
b3B0aW9ucy5zdGVwczt0aGlzLnJhbmdlPXRoaXMubWF4LXRoaXMubWluO3RoaXMu
c3RlcHM9dGhpcy5vcHRpb25zLnN0ZXBzfHx0aGlzLmZ1bGw7dGhpcy5zdGVwU2l6
ZT1NYXRoLmFicyh0aGlzLnJhbmdlKS90aGlzLnN0ZXBzOwp0aGlzLnN0ZXBXaWR0
aD10aGlzLnN0ZXBTaXplKnRoaXMuZnVsbC9NYXRoLmFicyh0aGlzLnJhbmdlKTt0
aGlzLmtub2Iuc2V0U3R5bGUoInBvc2l0aW9uIiwicmVsYXRpdmUiKS5zZXRTdHls
ZSh0aGlzLnByb3BlcnR5LC10aGlzLm9wdGlvbnMub2Zmc2V0KTtDW3RoaXMuYXhp
c109dGhpcy5wcm9wZXJ0eTsKQlt0aGlzLmF4aXNdPVstdGhpcy5vcHRpb25zLm9m
ZnNldCx0aGlzLmZ1bGwtdGhpcy5vcHRpb25zLm9mZnNldF07dGhpcy5kcmFnPW5l
dyBEcmFnKHRoaXMua25vYix7c25hcDowLGxpbWl0OkIsbW9kaWZpZXJzOkMsb25E
cmFnOnRoaXMuZHJhZ2dlZEtub2IuYmluZCh0aGlzKSxvblN0YXJ0OnRoaXMuZHJh
Z2dlZEtub2IuYmluZCh0aGlzKSxvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7dGhpcy5k
cmFnZ2VkS25vYigpOwp0aGlzLmVuZCgpO30uYmluZCh0aGlzKX0pO2lmKHRoaXMu
b3B0aW9ucy5zbmFwKXt0aGlzLmRyYWcub3B0aW9ucy5ncmlkPU1hdGguY2VpbCh0
aGlzLnN0ZXBXaWR0aCk7dGhpcy5kcmFnLm9wdGlvbnMubGltaXRbdGhpcy5heGlz
XVsxXT10aGlzLmZ1bGw7fX0sc2V0OmZ1bmN0aW9uKEEpe2lmKCEoKHRoaXMucmFu
Z2U+MCleKEE8dGhpcy5taW4pKSl7QT10aGlzLm1pbjsKfWlmKCEoKHRoaXMucmFu
Z2U+MCleKEE+dGhpcy5tYXgpKSl7QT10aGlzLm1heDt9dGhpcy5zdGVwPU1hdGgu
cm91bmQoQSk7dGhpcy5jaGVja1N0ZXAoKTt0aGlzLmVuZCgpO3RoaXMuZmlyZUV2
ZW50KCJ0aWNrIix0aGlzLnRvUG9zaXRpb24odGhpcy5zdGVwKSk7cmV0dXJuIHRo
aXM7Cn0sY2xpY2tlZEVsZW1lbnQ6ZnVuY3Rpb24oQyl7dmFyIEI9dGhpcy5yYW5n
ZTwwPy0xOjE7dmFyIEE9Qy5wYWdlW3RoaXMuYXhpc10tdGhpcy5lbGVtZW50Lmdl
dFBvc2l0aW9uKClbdGhpcy5heGlzXS10aGlzLmhhbGY7QT1BLmxpbWl0KC10aGlz
Lm9wdGlvbnMub2Zmc2V0LHRoaXMuZnVsbC10aGlzLm9wdGlvbnMub2Zmc2V0KTsK
dGhpcy5zdGVwPU1hdGgucm91bmQodGhpcy5taW4rQip0aGlzLnRvU3RlcChBKSk7
dGhpcy5jaGVja1N0ZXAoKTt0aGlzLmVuZCgpO3RoaXMuZmlyZUV2ZW50KCJ0aWNr
IixBKTt9LHNjcm9sbGVkRWxlbWVudDpmdW5jdGlvbihBKXt2YXIgQj0odGhpcy5v
cHRpb25zLm1vZGU9PSJob3Jpem9udGFsIik/KEEud2hlZWw8MCk6KEEud2hlZWw+
MCk7CnRoaXMuc2V0KEI/dGhpcy5zdGVwLXRoaXMuc3RlcFNpemU6dGhpcy5zdGVw
K3RoaXMuc3RlcFNpemUpO0Euc3RvcCgpO30sZHJhZ2dlZEtub2I6ZnVuY3Rpb24o
KXt2YXIgQj10aGlzLnJhbmdlPDA/LTE6MTt2YXIgQT10aGlzLmRyYWcudmFsdWUu
bm93W3RoaXMuYXhpc107CkE9QS5saW1pdCgtdGhpcy5vcHRpb25zLm9mZnNldCx0
aGlzLmZ1bGwtdGhpcy5vcHRpb25zLm9mZnNldCk7dGhpcy5zdGVwPU1hdGgucm91
bmQodGhpcy5taW4rQip0aGlzLnRvU3RlcChBKSk7dGhpcy5jaGVja1N0ZXAoKTt9
LGNoZWNrU3RlcDpmdW5jdGlvbigpe2lmKHRoaXMucHJldmlvdXNDaGFuZ2UhPXRo
aXMuc3RlcCl7dGhpcy5wcmV2aW91c0NoYW5nZT10aGlzLnN0ZXA7CnRoaXMuZmly
ZUV2ZW50KCJjaGFuZ2UiLHRoaXMuc3RlcCk7fX0sZW5kOmZ1bmN0aW9uKCl7aWYo
dGhpcy5wcmV2aW91c0VuZCE9PXRoaXMuc3RlcCl7dGhpcy5wcmV2aW91c0VuZD10
aGlzLnN0ZXA7dGhpcy5maXJlRXZlbnQoImNvbXBsZXRlIix0aGlzLnN0ZXArIiIp
Owp9fSx0b1N0ZXA6ZnVuY3Rpb24oQSl7dmFyIEI9KEErdGhpcy5vcHRpb25zLm9m
ZnNldCkqdGhpcy5zdGVwU2l6ZS90aGlzLmZ1bGwqdGhpcy5zdGVwcztyZXR1cm4g
dGhpcy5vcHRpb25zLnN0ZXBzP01hdGgucm91bmQoQi09QiV0aGlzLnN0ZXBTaXpl
KTpCO30sdG9Qb3NpdGlvbjpmdW5jdGlvbihBKXtyZXR1cm4odGhpcy5mdWxsKk1h
dGguYWJzKHRoaXMubWluLUEpKS8odGhpcy5zdGVwcyp0aGlzLnN0ZXBTaXplKS10
aGlzLm9wdGlvbnMub2Zmc2V0Owp9fSk7
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=system.js
Content-Type: application/x-javascript; charset=utf-8; name=system.js
Content-Location: http://habrahabr.ru/js/1307009785/system.js
Content-Transfer-Encoding: Base64
RWxlbWVudC5pbXBsZW1lbnQoewoJZmxhc2g6IGZ1bmN0aW9uKHRvLGZyb20scmVw
cyxwcm9wLGR1cikgewoJCWlmKCFyZXBzKSB7IHJlcHMgPSAxOyB9CgkJaWYoIXBy
b3ApIHsgcHJvcCA9ICdiYWNrZ3JvdW5kLWNvbG9yJzsgfQoJCWlmKCFkdXIpIHsg
ZHVyID0gMjUwOyB9CgkJdmFyIGVmZmVjdCA9IG5ldyBGeC5Ud2Vlbih0aGlzLCB7
CgkJCQlkdXJhdGlvbjogZHVyLAoJCQkJbGluazogJ2NoYWluJwoJCQl9KQoJCWZv
cih4ID0gMTsgeCA8PSByZXBzOyB4KyspCgkJCWVmZmVjdC5zdGFydChwcm9wLGZy
b20sdG8pLnN0YXJ0KHByb3AsdG8sZnJvbSk7Cgl9LAoJcmVwbGFjZUNsYXNzOiBm
dW5jdGlvbihjbGFzczEsIGNsYXNzMikgewoJCXRoaXMucmVtb3ZlQ2xhc3MoY2xh
c3MxKTsKCQl0aGlzLmFkZENsYXNzKGNsYXNzMik7Cgl9LAoJc3dpdGNoQ2xhc3M6
IGZ1bmN0aW9uKGNsYXNzMSwgY2xhc3MyKSB7CgkJaWYgKHRoaXMuaGFzQ2xhc3Mo
Y2xhc3MxKSkKCQkJdGhpcy5yZXBsYWNlQ2xhc3MoY2xhc3MxLCBjbGFzczIpOwoJ
CWVsc2UKCQkJdGhpcy5yZXBsYWNlQ2xhc3MoY2xhc3MyLCBjbGFzczEpOwoJfQp9
KTsKCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8qKioqKioqKioq
KioqKiAg0JLQndCY0JzQkNCd0JjQlSEg0JTQkNCb0KzQqNCVINCY0JTQldCiINCh
0KLQoNCQ0KjQndCr0Jkg0KHQotCQ0KDQq9CZINCa0J7QlCEgICoqKioqKioqKioq
KioqKioqCi8vKioqKioqKioqKioqKioqKiAg0J7QlNCV0J3QrNCi0JUg0KHQmtCQ
0KTQkNCd0JTQoCDQn9Cg0Jgg0JLQpdCe0JTQlSDQkiDQrdCi0KMg0JfQntCd0KMh
ICAqKioqKioqKioqKioqKioqKioqCi8vKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKCgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiDQndCw0YHQ
u9C10LTQvtCy0LDQvdC40LUgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCkZ1bmN0aW9uLnByb3RvdHlwZS5pbmhlcml0c0Zyb20gPSBmdW5jdGlvbihC
YXNlQ2xhc3MpIHsgLy8gdGhhbmtzIHRvIEtldmluIExpbmRzZXkgZm9yIHRoaXMg
aWRlYQoJdmFyIEluaGVyaXRhbmNlID0gZnVuY3Rpb24oKSB7fTsKCUluaGVyaXRh
bmNlLnByb3RvdHlwZSA9IEJhc2VDbGFzcy5wcm90b3R5cGU7Cgl0aGlzLnByb3Rv
dHlwZSA9IG5ldyBJbmhlcml0YW5jZSgpOwoJdGhpcy5wcm90b3R5cGUuY29uc3Ry
dWN0b3IgPSB0aGlzOwoJdGhpcy5zdXBlckNsYXNzID0gQmFzZUNsYXNzOwp9CgpP
YmplY3QuZXh0ZW5kT2JqZWN0ID0gZnVuY3Rpb24oZGVzdGluYXRpb24sIHNvdXJj
ZSkgewoJZm9yICh2YXIgcHJvcGVydHkgaW4gc291cmNlKQoJCWRlc3RpbmF0aW9u
W3Byb3BlcnR5XSA9IHNvdXJjZVtwcm9wZXJ0eV07CglyZXR1cm4gZGVzdGluYXRp
b247Cn07CgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiDQoNCw0LHQvtGC
0LAg0YEg0YHQvtCx0YvRgtC40Y/QvNC4ICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgpmdW5jdGlvbiBnZXRDaGFyQ29kZShldikgewoJaWYgKGV2LmNoYXJD
b2RlKSB2YXIgY2hhckNvZGUgPSBldi5jaGFyQ29kZTsKCWVsc2UgaWYgKGV2Lmtl
eUNvZGUpIHZhciBjaGFyQ29kZSA9IGV2LmtleUNvZGU7CgllbHNlIGlmIChldi53
aGljaCkgdmFyIGNoYXJDb2RlID0gZXYud2hpY2g7CgllbHNlIHZhciBjaGFyQ29k
ZSA9IDA7CglyZXR1cm4gY2hhckNvZGU7Cn0KCi8vKioqKioqKioqKioqKioqKioq
KioqKioqKiDQntC/0YDQtdC00LXQu9C10L3QuNC1INCx0YDQvtGD0LfQtdGA0L7Q
siAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgppZiAod2luZG93LkFjdGl2
ZVhPYmplY3QpIHdpbmRvdy5pZSA9IHdpbmRvd1t3aW5kb3cuWE1MSHR0cFJlcXVl
c3QgPyAnaWU3JyA6ICdpZTYnXSA9IHRydWU7CmVsc2UgaWYgKGRvY3VtZW50LmNo
aWxkTm9kZXMgJiYgIWRvY3VtZW50LmFsbCAmJiAhbmF2aWdhdG9yLnRhaW50RW5h
YmxlZCkgd2luZG93LndlYmtpdCA9IHdpbmRvd1t3aW5kb3cueHBhdGggPyAnd2Vi
a2l0NDIwJyA6ICd3ZWJraXQ0MTknXSA9IHRydWU7CmVsc2UgaWYgKGRvY3VtZW50
LmdldEJveE9iamVjdEZvciAhPSBudWxsKSB3aW5kb3cuZ2Vja28gPSB0cnVlOwp2
YXIgaXNJRSAgPSAobmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZigiTVNJRSIp
ICE9IC0xKSA/IHRydWUgOiBmYWxzZTsKdmFyIGlzV2luID0gKG5hdmlnYXRvci5h
cHBWZXJzaW9uLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2luIikgIT0gLTEpID8g
dHJ1ZSA6IGZhbHNlOwp2YXIgaXNPcGVyYSA9IChuYXZpZ2F0b3IudXNlckFnZW50
LmluZGV4T2YoIk9wZXJhIikgIT0gLTEpID8gdHJ1ZSA6IGZhbHNlOwoKCi8vKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBBSkFYICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKLyoKCXVybCAtINC+0YLQutGD0LTQ
sCDQt9Cw0LPRgNGD0LbQsNC10LwKCWFqYXhDYWxsQmFja0Z1bmN0aW9uIC0g0YfR
gtC+INCy0YvQt9GL0LLQsNC10Lwg0L/QviDQt9Cw0LLQtdGA0YjQtdC90LjQuCDQ
t9Cw0LPRgNGD0LfQutC4CglwYXJhbXMgLSDQv9Cw0YDQsNC80LXRgtGA0Ysg0LIg
0LLQuNC00LUg0L7QsdGK0LXQutGC0LAg0LjQu9C4INC80LDRgdGB0LjQstCwCglj
YWxsT2JqZWN0IC0g0LzQtdGC0L7QtNC+0Lwg0LrQsNC60L7Qs9C+INC+0LHRitC1
0LrRgtCwINGP0LLQu9GP0LXRgtGB0Y8gYWpheENhbGxCYWNrRnVuY3Rpb24gKNC1
0YHQu9C4INGN0YLQviDQvNC10YLQvtC0LCDQsCDQvdC1INCz0LvQvtCx0LDQu9GM
0L3QsNGPINGE0YPQvdGG0LjRjykKKi8KZnVuY3Rpb24gYWpheFBvc3QodXJsLCBk
YXRhLCBhamF4Q2FsbEJhY2tGdW5jdGlvbiwgcGFyYW1zLCBjYWxsT2JqZWN0LCBh
amF4Q2FsbEJhY2tFcnJvckZ1bmN0aW9uKSB7Cgl2YXIgYWpheE9iamVjdCA9IG51
bGw7CglpZiAod2luZG93LlhNTEh0dHBSZXF1ZXN0KSAvLyBicmFuY2ggZm9yIG5h
dGl2ZSBYTUxIdHRwUmVxdWVzdCBvYmplY3QKCQlhamF4T2JqZWN0ID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7CgllbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkg
Ly8gYnJhbmNoIGZvciBJRS9XaW5kb3dzIEFjdGl2ZVggdmVyc2lvbgoJCWFqYXhP
YmplY3QgPSBuZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsK
CWlmKGFqYXhPYmplY3QpewoJCWFqYXhPYmplY3Qub25yZWFkeXN0YXRlY2hhbmdl
ID0gZnVuY3Rpb24oKXsKCQkJYWpheEhhbmRsZXIoYWpheE9iamVjdCwgYWpheENh
bGxCYWNrRnVuY3Rpb24sIHBhcmFtcywgY2FsbE9iamVjdCwgYWpheENhbGxCYWNr
RXJyb3JGdW5jdGlvbik7CgkJfQoJCWFqYXhPYmplY3Qub3BlbigiUE9TVCIsIHVy
bCwgdHJ1ZSk7CgkJYWpheE9iamVjdC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50
LXR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7CgkJ
YWpheE9iamVjdC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LWxlbmd0aCIsIGRh
dGEubGVuZ3RoKTsKCQlhamF4T2JqZWN0LnNldFJlcXVlc3RIZWFkZXIoIkNvbm5l
Y3Rpb24iLCAiY2xvc2UiKTsKCQlhamF4T2JqZWN0LnNlbmQoZGF0YSk7CQoJfQp9
CgoKZnVuY3Rpb24gYWpheEhhbmRsZXIoYWpheE9iamVjdCwgYWpheENhbGxCYWNr
RnVuY3Rpb24sIHBhcmFtcywgY2FsbE9iamVjdCwgYWpheENhbGxCYWNrRXJyb3JG
dW5jdGlvbil7IAoJaWYgKGFqYXhPYmplY3QucmVhZHlTdGF0ZSA9PSA0KQoJCWlm
IChhamF4T2JqZWN0LnN0YXR1cyA9PSAyMDApCgkJCWFqYXhDYWxsQmFja0Z1bmN0
aW9uLmNhbGwoY2FsbE9iamVjdCwgYWpheE9iamVjdCwgcGFyYW1zKTsKCQllbHNl
CgkJCWlmKGFqYXhDYWxsQmFja0Vycm9yRnVuY3Rpb24pCgkJCQlhamF4Q2FsbEJh
Y2tFcnJvckZ1bmN0aW9uLmNhbGwoY2FsbE9iamVjdCwgYWpheE9iamVjdCk7CQoJ
CQllbHNlCgkJCQlmdXR1X2FsZXJ0KCIiLC8qKCLQktC+0LfQvdC40LrQu9CwINC+
0YjQuNCx0LrQsCDQsiDQv9C+0LvRg9GH0LXQvdC40LggWE1MINC00LDQvdC90YvR
hTo8YnIgLz4iICsgYWpheE9iamVjdC5zdGF0dXNUZXh0KSovICfQo9C/0YEhINCn
0YLQvi3RgtC+INC/0L7RiNC70L4g0L3QtSDRgtCw0LouINCf0L7Qv9GA0L7QsdGD
0LnRgtC1INC10YnQtSDRgNCw0LcuJywgZmFsc2UsICdlcnJvcicpOwp9CgpmdW5j
dGlvbiBhamF4TG9hZFBvc3QodXJsLCBkYXRhLCBhamF4Q2FsbEJhY2tGdW5jdGlv
biwgY2FsbE9iamVjdCwgcGFyYW1zLCBhamF4Q2FsbEJhY2tFcnJvckZ1bmN0aW9u
KSB7Cgl2YXIgYWpheE9iamVjdCA9IG51bGw7CglpZiAod2luZG93LlhNTEh0dHBS
ZXF1ZXN0KSAvLyBicmFuY2ggZm9yIG5hdGl2ZSBYTUxIdHRwUmVxdWVzdCBvYmpl
Y3QKCQlhamF4T2JqZWN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CgllbHNlIGlm
ICh3aW5kb3cuQWN0aXZlWE9iamVjdCkgLy8gYnJhbmNoIGZvciBJRS9XaW5kb3dz
IEFjdGl2ZVggdmVyc2lvbgoJCWFqYXhPYmplY3QgPSBuZXcgQWN0aXZlWE9iamVj
dCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsKCWlmKGFqYXhPYmplY3QpewoJCWFqYXhP
YmplY3Qub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKXsKCQkJYWpheExv
YWRIYW5kbGVyKGFqYXhPYmplY3QsIGFqYXhDYWxsQmFja0Z1bmN0aW9uLCBjYWxs
T2JqZWN0LCBwYXJhbXMsIGFqYXhDYWxsQmFja0Vycm9yRnVuY3Rpb24pOwoJCX0K
CQlhamF4T2JqZWN0Lm9wZW4oIlBPU1QiLCB1cmwsIHRydWUpOwoJCWFqYXhPYmpl
Y3Quc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwgImFwcGxpY2F0aW9u
L3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpOwoJCWFqYXhPYmplY3Quc2V0UmVxdWVz
dEhlYWRlcigiQ29udGVudC1sZW5ndGgiLCBkYXRhLmxlbmd0aCk7CgkJYWpheE9i
amVjdC5zZXRSZXF1ZXN0SGVhZGVyKCJDb25uZWN0aW9uIiwgImNsb3NlIik7CgkJ
YWpheE9iamVjdC5zZW5kKGRhdGEpOwoJfQp9CmZ1bmN0aW9uIGFqYXhMb2FkSGFu
ZGxlcihhamF4T2JqZWN0LCBhamF4Q2FsbEJhY2tGdW5jdGlvbiwgY2FsbE9iamVj
dCwgcGFyYW1zLCBhamF4Q2FsbEJhY2tFcnJvckZ1bmN0aW9uKXsKCWlmIChhamF4
T2JqZWN0LnJlYWR5U3RhdGUgPT0gNCkKCQlpZiAoYWpheE9iamVjdC5zdGF0dXMg
PT0gMjAwKQoJCQlhamF4Q2FsbEJhY2tGdW5jdGlvbi5jYWxsKGNhbGxPYmplY3Qs
IGFqYXhPYmplY3QsIHBhcmFtcyk7CgkJZWxzZQoJCQlpZihhamF4Q2FsbEJhY2tF
cnJvckZ1bmN0aW9uKQoJCQkJYWpheENhbGxCYWNrRXJyb3JGdW5jdGlvbi5jYWxs
KGNhbGxPYmplY3QsIGFqYXhPYmplY3QpOwkKCQkJZWxzZQoJCQkJZnV0dV9hbGVy
dCgiIiwvKigi0JLQvtC30L3QuNC60LvQsCDQvtGI0LjQsdC60LAg0LIg0L/QvtC7
0YPRh9C10L3QuNC4IFhNTCDQtNCw0L3QvdGL0YU6PGJyIC8+IiArIGFqYXhPYmpl
Y3Quc3RhdHVzVGV4dCkqLyAn0KPQv9GBISDQp9GC0L4t0YLQviDQv9C+0YjQu9C+
INC90LUg0YLQsNC6LiDQn9C+0L/RgNC+0LHRg9C50YLQtSDQtdGJ0LUg0YDQsNC3
LicsIHRydWUsICdlcnJvcicpOwp9Cg==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=init.js
Content-Type: application/x-javascript; charset=utf-8; name=init.js
Content-Location: http://habrahabr.ru/js/1307009785/tm/init.js
Content-Transfer-Encoding: Base64
dmFyIHRtID0gKHR5cGVvZih0bSkgIT0gJ3VuZGVmaW5lZCcpID8gdG0gOiB7fTsK
CmRvY3VtZW50LmlkID0gJDsgLy8g0Y3RgtC+INGH0YLQvtCx0YsgTW9vdG9vbHMg
TW9yZSAxLjIuMy4xINGA0LDQsdC+0YLQsNC7INGBIE1vb3Rvb2xzIENvcmUgMS4y
LjAKCi8qKgogKiDQmNC90YLQtdGA0YTQtdC50YEg0LjQvdC40YbQuNCw0LvQuNC3
0LDRhtC40Lgg0LTQu9GPINCy0YHQtdCz0L4g0L3QsCDRgdCy0LXRgtC1CiAqIEBh
dXRob3IgYmVib3BraWQKKi8KCnRtLmluaXQgPSB7CglfaW5pdGlhbGl6YXRpb25z
OiBbXSwKCV93aW5kb3dMb2FkZWQ6IGZhbHNlLAoJZm9ybXM6IG51bGwsCgljb250
cm9sczogbnVsbCwKCWFkZDogZnVuY3Rpb24gKGYpIHsKCQlpZiAodGhpcy5fd2lu
ZG93TG9hZGVkKSB7CgkJCWYuY2FsbCh3aW5kb3cpOwoJCX0KCQllbHNlIHsKCQkJ
dGhpcy5faW5pdGlhbGl6YXRpb25zLnB1c2goZik7CgkJfTsKCX0sCglfbG9hZGVk
OiBmdW5jdGlvbiAoKSB7CgkJdGhpcy5fd2luZG93TG9hZGVkID0gdHJ1ZTsKCQl0
aGlzLl9pbml0aWFsaXphdGlvbnMuZWFjaCggZnVuY3Rpb24gKGYpIHsKCQkJZi5j
YWxsKHdpbmRvdyk7CgkJfSk7Cgl9Cn07Cgp3aW5kb3cuYWRkRXZlbnQoJ2RvbXJl
YWR5JywgdG0uaW5pdC5fbG9hZGVkLmJpbmQodG0uaW5pdCkpOwoKLyoqCiAqINCk
0YPQvdC60YbQuNGPINC00LvRjyDQu9C+0LPQuNGA0L7QstCw0L3QuNGPLCDQutC+
0YLQvtGA0LDRjyDQvdC1INCy0YvQt9GL0LLQsNC10YIg0L7RiNC40LHQvtC6LCDQ
tdGB0LvQuCDQvdC10YIg0LrQvtC90YHQvtC70LgKICogQGF1dGhvciBiZWJvcGtp
ZAoqLwp0bS5sb2cgPSBmdW5jdGlvbiAoKSB7CglpZiAoKHR5cGVvZihjb25zb2xl
KSAhPSAndW5kZWZpbmVkJykgJiYgKHR5cGVvZihjb25zb2xlLmxvZykgPT0gJ2Z1
bmN0aW9uJykpIHsKCSAgICAvL2ZvciAodmFyIGk9MCwgbD1hcmd1bWVudHMubGVu
Z3RoOyBpPGw7IGkrKykgewoJICAgICAgICBjb25zb2xlLmxvZyhhcmd1bWVudHMp
OwoJICAgLy8gfTsKCX0gZWxzZSBpZiAod2luZG93Lm9wZXJhICYmIG9wZXJhLnBv
c3RFcnJvcikgewoJCW9wZXJhLnBvc3RFcnJvcihhcmd1bWVudHMpOwoJfTsKfTsK
CnRtLmJhZFRhZ3MgPSBbCgknT0JKRUNUJywKCSdQQVJBTScsCgknRU1CRUQnLAoJ
J05PRU1CRUQnCl07Cgp0bS5oZWxwZXJzID0gewogICAgLyoqCiAgICAgKiDQktC+
0LfQstGA0LDRidCw0LXRgiDRhtC10LvQvtC1INGH0LjRgdC70L4g0LIg0YPQtNC+
0LHQvdC+0Lwg0LTQu9GPINGH0LXQu9C+0LLQtdC60LAg0LLQuNC00LUgLSDRgSDQ
v9GA0L7QsdC10LvQsNC80LgKICAgICAqIEBhdXRob3IgYmVib3BraWQKICAgICov
CiAgICBodW1hbml6ZU51bWJlcjogZnVuY3Rpb24gKG51bWJlcikgewogICAgICAg
IGlmICghbnVtYmVyKSB7IHJldHVybiAnJzsgfQogICAgICAgIHZhciBzID0gbnVt
YmVyLnRvU3RyaW5nKCk7CiAgICAgICAgdmFyIHIgPSAnJzsKICAgICAgICBmb3Ig
KCBpID0gMCwgbCA9IHMubGVuZ3RoOyBpPGw7IGkrKykgewogICAgICAgIAlyID0g
ciArICgoKCgobC1pKSAlIDMpID09IDApICYmIChpICE9IDApKSA/ICcgJyA6ICcn
KSArIHMuY2hhckF0KGkpOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIHI7CiAg
ICB9LAoJCgkvKioKCSAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC00LDRgtGDINC4
INCy0YDQtdC80Y8g0LIg0L3QvtGA0LzQsNC70YzQvdC+0Lwg0LLQuNC00LUKCSAq
IEBhdXRob3IgbWRldmlscwoJICovCglodW1hbml6ZURhdGU6IGZ1bmN0aW9uKHRp
bWVzdGFtcCwgZGF0ZU9ubHkpewoJCXZhciB0b2RheSA9IG5ldyBEYXRlKCk7CgkJ
dmFyIGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXAgKiAxMDAwKTsKCQl2YXIgbW9u
dGhzID0gWyLRj9C90LLQsNGA0Y8iLCAi0YTQtdCy0YDQsNC70Y8iLCAi0LzQsNGA
0YLQsCIsICLQsNC/0YDQtdC70Y8iLCAi0LzQsNGPIiwgItC40Y7QvdGPIiwgItC4
0Y7Qu9GPIiwgItCw0LLQs9GD0YHRgtCwIiwgItGB0LXQvdGC0Y/QsdGA0Y8iLCAi
0L7QutGC0Y/QsdGA0Y8iLCAi0L3QvtGP0LHRgNGPIiwgItC00LXQutCw0LHRgNGP
Il07OwoJCXZhciByZXN1bHQgPSAiIjsKCQlpZih0b2RheS5nZXREYXRlKCkgIT0g
ZGF0ZS5nZXREYXRlKCkgfHwgdG9kYXkuZ2V0TW9udGgoKSAhPSBkYXRlLmdldE1v
bnRoKCkgfHwgdG9kYXkuZ2V0RnVsbFllYXIoKSAhPSBkYXRlLmdldEZ1bGxZZWFy
KCkpCgkJCXJlc3VsdCA9IGRhdGUuZ2V0RGF0ZSgpICsgIiAiICsgbW9udGhzW2Rh
dGUuZ2V0TW9udGgoKV07CgkJaWYodG9kYXkuZ2V0RnVsbFllYXIoKSAhPSBkYXRl
LmdldEZ1bGxZZWFyKCkpCgkJCXJlc3VsdCArPSAiICIgKyBkYXRlLmdldEZ1bGxZ
ZWFyKCk7CgkJaWYoIWRhdGVPbmx5KSB7CgkJCWlmIChyZXN1bHQpIHJlc3VsdCAr
PSAiLCAiOwoJCQlyZXN1bHQgKz0gItCyICIgKyB0bS5oZWxwZXJzLmFkZFplcm8o
ZGF0ZS5nZXRIb3VycygpLCAyKSArICI6IiArIHRtLmhlbHBlcnMuYWRkWmVybyhk
YXRlLmdldE1pbnV0ZXMoKSwgMik7CgkJfQoJCXJldHVybiByZXN1bHQ7Cgl9LAoJ
CgkvKioKCSAqINCU0L7QsdCw0LLQu9GP0LXRgiDQvdGD0LvQuCDQv9C10YDQtdC0
INGH0LjRgdC70L7QvCDQtNC+INGC0LXRhSDQv9C+0YAsINC/0L7QutCwINC+0L3Q
viDQvdC1INC00L7RgdGC0LjQs9C90LXRgiDQvdGD0LbQvdC+0Lkg0LTQu9C40L3R
iwoJICogQGF1dGhvciBtZGV2aWxzCgkgKi8KCWFkZFplcm86IGZ1bmN0aW9uKG51
bWJlciwgbGVuKSB7CgkJdmFyIHMgPSBudW1iZXIudG9TdHJpbmcoKTsKCQl3aGls
ZSAocy5sZW5ndGggPCBsZW4pIHM9JzAnK3M7CgkJcmV0dXJuIHM7Cgl9Cn07CgpF
bGVtZW50LmltcGxlbWVudCh7CiAgICBzY3JvbGxUb01lOiBmdW5jdGlvbiAoX28p
IHsKICAgICAgICB2YXIgbyA9IF9vfHx7fTsKICAgICAgICAKICAgICAgICB2YXIg
eCA9IG8ueHx8MCwKICAgICAgICAgICAgeSA9IHRoaXMuZ2V0UG9zaXRpb24oKS55
ICsgKG8ueXx8MCk7CiAgICAgICAgCiAgICAgICAgKHRlbXAud2luZG93U2Nyb2xs
IHx8ICh0ZW1wLndpbmRvd1Njcm9sbCA9IG5ldyBGeC5TY3JvbGwoICQoZG9jdW1l
bnQuYm9keSkgLCB7ICdkdXJhdGlvbic6IDUwMCwgJ2xpbmsnOiAnY2FuY2VsJyB9
ICkgKSk7CiAgICAgICAgCiAgICAgICAgdGVtcC53aW5kb3dTY3JvbGxbIG8ubm93
ID8gJ3NldCcgOiAnc3RhcnQnIF0oMCwgdGhpcy5nZXRQb3NpdGlvbigpLnkpOwoK
ICAgICAgICBpZiAobyAmJiBvLmNhbGxiYWNrKSB7CiAgICAgICAgICAgIAogICAg
ICAgICAgICBvLm5vdyA/IG8uY2FsbGJhY2soKSA6IHRlbXAud2luZG93U2Nyb2xs
LmFkZEV2ZW50KCdjb21wbGV0ZScsIChmdW5jdGlvbiAoY2FsbGJhY2spIHsKICAg
ICAgICAgICAgICAgIHRoaXMucmVtb3ZlRXZlbnQoJ2NvbXBsZXRlJywgY2FsbGJh
Y2spOwogICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgICAgfSku
YmluZCh0ZW1wLndpbmRvd1Njcm9sbCwgby5jYWxsYmFjaykpOwogICAgICAgIH0K
ICAgICAgICByZXR1cm4gdGhpczsKICAgIH0KfSk7Cgp0bS5yZXMgPSB7fTsKCnRt
LnJlcy5fbG9hZGVkQ1NTID0gW107CnRtLnJlcy5sb2FkQ1NTID0gZnVuY3Rpb24o
dXJsKSB7CglpZiAoIXRtLnJlcy5fbG9hZGVkQ1NTW3VybF0pIHsKCQl2YXIgY3Nz
ID0gbmV3IEFzc2V0LmNzcyh1cmwpOwoJfQoJdG0ucmVzLl9sb2FkZWRDU1NbdXJs
XSA9IHRydWU7Cn07Cgp0bS5yZXMubG9hZElNRyA9IGZ1bmN0aW9uKHVybCkgewoJ
dmFyIGltZyA9IG5ldyBBc3NldC5pbWFnZSh1cmwpOwp9OwoKZnVuY3Rpb24gZCgp
IHsKCXZhciBkZWJ1Z1NjcmlwdCA9IG5ldyBBc3NldC5qYXZhc2NyaXB0KCcvanMv
dG0vZGVidWcuanMnLCB7aWQ6ICdkZWJ1Z1NjcmlwdCd9KTsKCXZhciBjb25zb2xl
U2NyaXB0ID0gbmV3IEFzc2V0LmphdmFzY3JpcHQoJy9qcy90bS9jb25zb2xlLmpz
Jywge2lkOiAnY29uc29sZVNjcmlwdCd9KTsKfQoKdG0uY3VzdG9tRXZlbnRNYW5h
Z2VyID0gewoJYWRkRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY2FsbGJhY2sp
IHsKCQl0aGlzLl9ldmVudHMgfHwgKHRoaXMuX2V2ZW50cyA9IFtdKTsKCQl0aGlz
Ll9ldmVudHNbZXZlbnROYW1lXSB8fCAodGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0g
PSBbXSk7CgkJdGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0ucHVzaChjYWxsYmFjayk7
Cgl9LAoJcmVtb3ZlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgY2FsbGJhY2sp
IHsKCQl0aGlzLl9ldmVudHMgfHwgKHRoaXMuX2V2ZW50cyA9IFtdKTsKCQl0aGlz
Ll9ldmVudHNbZXZlbnROYW1lXSB8fCAodGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0g
PSBbXSk7CgkJdGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0uZXJhc2UoY2FsbGJhY2sp
OwoJfSwKCWZpcmVFdmVudDogZnVuY3Rpb24oZXZlbnROYW1lKSB7CgkJdmFyIGFy
Z3MgPSBbXTsKCQlmb3IgKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKykK
CQkJYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7CgkJdGhpcy5fZXZlbnRzIHx8ICh0
aGlzLl9ldmVudHMgPSBbXSk7CgkJdGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0gfHwg
KHRoaXMuX2V2ZW50c1tldmVudE5hbWVdID0gW10pOwoJCXRoaXMuX2V2ZW50c1tl
dmVudE5hbWVdLmZvckVhY2goZnVuY3Rpb24oaXRlbSl7aXRlbS5hcHBseSh0aGlz
LCBhcmdzKTt9KTsKCQl0bS5sb2coYXJncywgZXZlbnROYW1lICsgJyAoJyArIHRo
aXMuX2V2ZW50c1tldmVudE5hbWVdLmxlbmd0aCArICcpJyk7Cgl9Cn07
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=common.js
Content-Type: application/x-javascript; charset=utf-8; name=common.js
Content-Location: http://habrahabr.ru/js/1307009785/common.js
Content-Transfer-Encoding: Base64
dG0uaW5pdC5hZGQoZnVuY3Rpb24oKXsKCXZhciBwYWdlTmF2ID0gbnVsbDsKCWlm
IChwYWdlTmF2ID0gJChkb2N1bWVudCkuZ2V0RWxlbWVudCgnLnBhZ2UtbmF2Jykp
IHsKCQl2YXIgcHJldiA9IHBhZ2VOYXYuZ2V0RWxlbWVudCgnLm5leHQtcHJldiAu
cHJldicpOwoJCXZhciBuZXh0ID0gcGFnZU5hdi5nZXRFbGVtZW50KCcubmV4dC1w
cmV2IC5uZXh0Jyk7CgkJJCh3aW5kb3cpLmFkZEV2ZW50KCdrZXlkb3duJywgZnVu
Y3Rpb24oZSl7CgkJCWlmICgoKGUuY29udHJvbCAmJiBlLmtleSA9PSAncmlnaHQn
KSB8fCAoZS5hbHQgJiYgZS5rZXkgPT0gJ3JpZ2h0JykpICYmIG5leHQpIHsKCQkJ
CXRvcC5sb2NhdGlvbi5ocmVmID0gbmV4dC5nZXQoImhyZWYiKTsKCQkJCWUuc3Rv
cCgpOwoJCQl9IGVsc2UgaWYgKCgoZS5jb250cm9sICYmIGUua2V5ID09ICdsZWZ0
JykgfHwgKGUuYWx0ICYmIGUua2V5ID09ICdsZWZ0JykpICYmIHByZXYpIHsKCQkJ
CXRvcC5sb2NhdGlvbi5ocmVmID0gcHJldi5nZXQoImhyZWYiKTsKCQkJCWUuc3Rv
cCgpOwoJCQl9CgkJfSk7Cgl9Cgl2YXIgc2VhcmNoID0gJCgic2VhcmNoIik7Cglp
ZiAoc2VhcmNoKSB7CgkJdmFyIGlucHV0IAkJPSBzZWFyY2gsCgkJCWxhYmVsIAkJ
PSBpbnB1dC5nZXRQYXJlbnQoKSwKCQkJbGFiZWxzcGFuIAk9IGxhYmVsLmdldEVs
ZW1lbnQoJ3NwYW4nKTsKCQlpZiAoaW5wdXQgJiYgbGFiZWwpIHsKCQkJCgkJCWlm
ICghaW5wdXQudmFsdWUpIHsKCQkJCWxhYmVsLmFkZENsYXNzKCJpbnB1dC1wbGFj
ZWhvbGRpbmciKTsKCQkJfQoKCQkJaW5wdXQuYWRkRXZlbnRzKHsKCQkJCSdmb2N1
cyc6IGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoIWxhYmVsLm5vcGxhY2Vob2xkaW5n
KSB7CgkJCQkJCWxhYmVsLnJlbW92ZUNsYXNzKCJpbnB1dC1wbGFjZWhvbGRpbmci
KTsKCQkJCQkJbGFiZWwubm9wbGFjZWhvbGRpbmcgPSB0cnVlOwoJCQkJCX0KCQkJ
CX0sCgkJCQknYmx1cic6IGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoaW5wdXQudmFs
dWUgPT0gJycpIHsKCQkJCQkJbGFiZWwuYWRkQ2xhc3MoImlucHV0LXBsYWNlaG9s
ZGluZyIpOwoJCQkJCQlsYWJlbC5ub3BsYWNlaG9sZGluZyA9IGZhbHNlOwoJCQkJ
CX0KCQkJCX0sCgkJCQknY2hhbmdlJyA6IGZ1bmN0aW9uKCkgewoJCQkJCWlmICgh
bGFiZWwubm9wbGFjZWhvbGRpbmcpIHsKCQkJCQkJbGFiZWwucmVtb3ZlQ2xhc3Mo
ImlucHV0LXBsYWNlaG9sZGluZyIpOwoJCQkJCQlsYWJlbC5ub3BsYWNlaG9sZGlu
ZyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9KQoJCQlsYWJlbHNwYW4uYWRkRXZl
bnQoJ21vdXNlZG93bicsZnVuY3Rpb24oKXsKCQkJCWlucHV0LmZvY3VzKCk7CgkJ
CQlyZXR1cm4gZmFsc2UKCQkJfSkKCQl9Cgl9Cgl2YXIgaGVscF90aXBzID0gJCQo
Jy5oZWxwLXRpcCcpOwoJaWYgKGhlbHBfdGlwcyAmJiBoZWxwX3RpcHMubGVuZ3Ro
KSB7CgkJdmFyIGN1cnJlbnRfdGlwID0gbnVsbDsKCQl2YXIgdGlwX2hpZGRpbmdf
dGltZW91dDsKCQkKCQl2YXIgaHRfbmljZV9ub2RlID0gJCgnaGVscC10aXAtdGV4
dCcpOwoJCQlodF9uaWNlX25vZGUudGV4dF9ub2RlID0gaHRfbmljZV9ub2RlLmdl
dEVsZW1lbnQoJyNoZWxwLXRpcC10ZXh0LWNvbnRlbnQnKTsKCgkJdmFyIHNob3df
aGVscF90aXAgPSBmdW5jdGlvbih0ZXh0LG5vZGUpewoJCQljbGVhclRpbWVvdXQo
dGlwX2hpZGRpbmdfdGltZW91dCk7CgkJCWlmIChjdXJyZW50X3RpcCA9PSBub2Rl
KSB7cmV0dXJuIHRydWU7fQoJCQkKCQkJdmFyIHAgPSBub2RlLmdldFBvc2l0aW9u
KCk7CgkJCQoJCQl2YXIgcHggPSBwLnggKyBub2RlLmdldFN0eWxlKCd3aWR0aCcp
LnRvSW50KCkvMjsKCQkJdmFyIHB5ID0gcC55OwoJCQlub2RlCgkJCQoJCQlodF9u
aWNlX25vZGUuc3R5bGUudG9wID0gcHkgKyAncHgnOwoJCQlodF9uaWNlX25vZGUu
c3R5bGUubGVmdCA9IHB4ICsgJ3B4JzsKCQkJaWYgKHB4IDwgMTc5ICkgewoJCQkJ
aHRfbmljZV9ub2RlLmFkZENsYXNzKCdoZWxwLXRpcHMtdG9vLW11Y2gtbGVmdCcp
OwoJCQl9CgkJCQoJCQlodF9uaWNlX25vZGUudGV4dF9ub2RlLmlubmVySFRNTCA9
IHRleHQ7CgkJCWh0X25pY2Vfbm9kZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsK
CQkJY3VycmVudF90aXAgPSBodF9uaWNlX25vZGU7CgkJfQoJCXZhciBoaWRlX2hl
bHBfdGlwID0gZnVuY3Rpb24oKXsKCQkJdGlwX2hpZGRpbmdfdGltZW91dCA9IHNl
dFRpbWVvdXQoZnVuY3Rpb24oKXsKCQkJCWh0X25pY2Vfbm9kZS5zdHlsZS5kaXNw
bGF5ID0gJyc7CgkJCQlodF9uaWNlX25vZGUudGV4dF9ub2RlLnRleHRDb250ZW50
ID0gJyc7CgkJCQlodF9uaWNlX25vZGUucmVtb3ZlQ2xhc3MoJ2hlbHAtdGlwcy10
b28tbXVjaC1sZWZ0Jyk7CgkJCX0sMzMzKQoJCQkKCQl9CgkJCgkJZm9yICh2YXIg
aT0wLCBsID0gaGVscF90aXBzLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCQl2YXIg
aGVscF90aXBfbm9kZSA9IGhlbHBfdGlwc1tpXTsKCQkJCgkJCXZhciBoZWxwX3Rp
cF9ub2RlX2NoaWxkcyA9IGhlbHBfdGlwX25vZGUuZ2V0RWxlbWVudHMoJyonKTsK
CQkJaWYgKGhlbHBfdGlwX25vZGVfY2hpbGRzICYmIGhlbHBfdGlwX25vZGVfY2hp
bGRzLmxlbmd0aCkgewoJCQkJCgkJCQlmb3IgKHZhciBrPTAsIGc9IGhlbHBfdGlw
X25vZGVfY2hpbGRzLmxlbmd0aDsgayA8IGc7IGsrKykgewoJCQkJCWhlbHBfdGlw
X25vZGVfY2hpbGRzW2tdLmh0biA9IGhlbHBfdGlwX25vZGU7CgoJCQkJfTsKCQkJ
fQoJCQl0bS5sb2coJ3p6d3d3Jyk7CgkJCQoJCQloZWxwX3RpcF9ub2RlLmh0biA9
IGhlbHBfdGlwX25vZGU7CgkJCQoJCQl2YXIgdGl0bGUgPSBoZWxwX3RpcF9ub2Rl
LnRpdGxlOwoJCQlpZiAodGl0bGUubWF0Y2goJ2JyLycpKSB7CgkJCQloZWxwX3Rp
cF9ub2RlLmhlbHBfdGlwID0gaGVscF90aXBfbm9kZS5nZXRFbGVtZW50KCcuaGVs
cC10aXAtdGV4dCcpLmlubmVySFRNTAoJCQl9IGVsc2UgewoJCQkJaGVscF90aXBf
bm9kZS5oZWxwX3RpcCA9IHRpdGxlOwoJCQl9CgkJCQoJCQloZWxwX3RpcF9ub2Rl
LnRpdGxlID0gJyc7CgkJCQoJCQloZWxwX3RpcF9ub2RlLmFkZEV2ZW50cyh7CgkJ
CQknbW91c2VvdmVyJzogZnVuY3Rpb24oZSl7IAoJCQkJCXNob3dfaGVscF90aXAo
ZS50YXJnZXQuaHRuLmhlbHBfdGlwLGUudGFyZ2V0Lmh0bik7CgkJCQl9LAoJCQkJ
J21vdXNlb3V0JzogaGlkZV9oZWxwX3RpcAoJCQl9KQoJCQkKCQkJCgkJfTsKCQlo
dF9uaWNlX25vZGUuYWRkRXZlbnRzKHsKCQkJJ21vdXNlb3Zlcic6IGZ1bmN0aW9u
KCl7IAoJCQkJY2xlYXJUaW1lb3V0KHRpcF9oaWRkaW5nX3RpbWVvdXQpOwoJCQl9
LAoJCQknbW91c2VvdXQnOiBoaWRlX2hlbHBfdGlwCgkJfSkKCX0KfSk7Cg==
------------ob20VL8QKHEQvTnoM6Hh2B
Content-Disposition: inline; filename=all.js
Content-Type: application/x-javascript; charset=utf-8; name=all.js
Content-Location: http://habrahabr.ru/js/1307009785/all.js
Content-Transfer-Encoding: Base64
CgovKiAgIGZhdm91cml0ZXMgICAqLwpmYXZzSGFuZGxlciA9IHsNCglidXR0b246
e30sDQoJdXJsOiAnL2FqYXgvZmF2b3JpdGVzLycsDQoJeG1sOiB7DQoJCXJlc3Bv
bnNlTm9kZXM6IHsNCgkJCWVycm9yOiAnZXJyb3InLA0KCQkJcmVzdWx0OiAnbWVz
c2FnZScNCgkJfSwNCg0KCQlwYXJzZTogZnVuY3Rpb24oeG1sT2JqKXsNCgkJCXZh
ciB4bWxOb2RlcyA9IHt9Ow0KCQkJZm9yIChwcm9wIGluIGZhdnNIYW5kbGVyLnht
bC5yZXNwb25zZU5vZGVzKXsNCgkJCQl4bWxOb2Rlc1twcm9wXSA9IHhtbE9iai5n
ZXRFbGVtZW50c0J5VGFnTmFtZShmYXZzSGFuZGxlci54bWwucmVzcG9uc2VOb2Rl
c1twcm9wXSk7DQoJCQl9DQoJCQlyZXR1cm4geG1sTm9kZXM7DQoJCX0NCgl9LA0K
CWZhdm9yaXRlc1NlbmQgOiBmdW5jdGlvbiAoYnV0dG9uLCB0YXJnZXRfdHlwZSwg
dGFyZ2V0X2lkKSB7DQoJCXZhciBob2xkZXIgPSAkKGJ1dHRvbikuZ2V0UGFyZW50
KCcuanMtdG9fZmF2c19ob2xkZXInKTsNCgkJaWYoaG9sZGVyLmhhc0NsYXNzKCd0
by1mYXZzJykpIHsNCiAgICAJCXZhciBkYXRhID0gJ2FjdGlvbj1hZGQmdGFyZ2V0
X3R5cGU9JysgdGFyZ2V0X3R5cGUgKycmdGFyZ2V0X2lkPScrIHRhcmdldF9pZDsN
CgkJfQ0KCQllbHNlIGlmIChob2xkZXIuaGFzQ2xhc3MoJ2Zhdl9hZGRlZCcpKXsN
CgkJCXZhciBkYXRhID0gJ2FjdGlvbj1yZW1vdmUmdGFyZ2V0X3R5cGU9JysgdGFy
Z2V0X3R5cGUgKycmdGFyZ2V0X2lkPScrIHRhcmdldF9pZDsNCgkJfQ0KCQlhamF4
TG9hZFBvc3QoZmF2c0hhbmRsZXIudXJsLCBkYXRhLCBmYXZzSGFuZGxlci5mYXZv
cml0ZXNTZW5kT25sb2FkLCB3aW5kb3csIHtidXR0b246IGJ1dHRvbiwgdGFyZ2V0
X3R5cGU6dGFyZ2V0X3R5cGUsIHRhcmdldF9pZDp0YXJnZXRfaWR9KTsNCgl9LA0K
DQoJZmF2b3JpdGVzU2VuZE9ubG9hZCA6IGZ1bmN0aW9uKGFqYXhPYmosIHBhcmFt
cykgew0KCQlpZihhamF4T2JqICYmIGFqYXhPYmoucmVzcG9uc2VYTUwpew0KDQoJ
CQl2YXIgeG1sT2JqID0gYWpheE9iai5yZXNwb25zZVhNTDsNCgkJCXZhciB4bWxO
b2RlcyA9IGZhdnNIYW5kbGVyLnhtbC5wYXJzZSh4bWxPYmopOw0KDQoJCQlpZih4
bWxOb2Rlcy5lcnJvciAmJiB4bWxOb2Rlcy5lcnJvci5sZW5ndGgpew0KCQkJCXZh
ciBlcnJvcnNfbGVuZ3RoID0geG1sTm9kZXMuZXJyb3IubGVuZ3RoOw0KCQkJCWZv
ciAodmFyIGkgPSAwOyBpIDwgZXJyb3JzX2xlbmd0aDsgaSsrKSB7DQoJCQkJCWZ1
dHVfYWxlcnQoRkFULmZhdm91cml0ZXNfaGVhZGVyLCB4bWxOb2Rlcy5lcnJvcltp
XS5maXJzdENoaWxkLmRhdGEsIHRydWUsICdlcnJvcicpOw0KCQkJCX0NCgkJCX0N
Cg0KCQkJdmFyIHJlc3VsdHMgPSB4bWxPYmouZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J3Jlc3VsdCcpOw0KCQkJaWYoeG1sTm9kZXMucmVzdWx0ICYmIHhtbE5vZGVzLnJl
c3VsdC5sZW5ndGgpIHsNCg0KDQoJCQkJdmFyIG5vZGUgPSBudWxsOw0KCQkJCWlm
IChyZXN1bHRzWzBdKSB7DQoJCQkJCW5vZGUgPSByZXN1bHRzWzBdOw0KCQkJCX0N
Cg0KDQoJCQkJdmFyIHByZXZpb3VzX29mZiA9ICQocGFyYW1zLmJ1dHRvbikuZ2V0
UGFyZW50KCcuanMtdG9fZmF2c19ob2xkZXInKS5oYXNDbGFzcygndG8tZmF2cycp
Ow0KCQkJCWlmKHByZXZpb3VzX29mZikgew0KDQoJCQkJCWlmIChub2RlKQ0KCQkJ
CQkJc3dpdGNoIChub2RlLmdldEF0dHJpYnV0ZSgidHlwZSIpKSB7DQoJCQkJCQkJ
Y2FzZSAnY29tcGFueV9jb21tZW50cyc6DQoJCQkJCQkJY2FzZSAnY29tbWVudHMn
Og0KCQkJCQkJCQlmdXR1X2FsZXJ0KEZBVC5mYXZvdXJpdGVzX2hlYWRlciwgRkFU
LmZhdm91cml0ZXNfcmVxdWVzdF9jb21tZW50X2FkZF9zdWNjZXNzLCBmYWxzZSwg
J21lc3NhZ2UnKTsNCgkJCQkJCQkJYnJlYWs7DQoJCQkJCQkJY2FzZSAncG9zdHMn
Og0KCQkJCQkJCQlmdXR1X2FsZXJ0KEZBVC5mYXZvdXJpdGVzX2hlYWRlciwgRkFU
LmZhdm91cml0ZXNfcmVxdWVzdF9wb3N0X2FkZF9zdWNjZXNzLCBmYWxzZSwgJ21l
c3NhZ2UnKTsNCgkJCQkJCQkJYnJlYWs7DQoJCQkJCQl9DQoJCQkJfQ0KCQkJCWVs
c2Ugew0KDQoJCQkJCWlmIChub2RlKQ0KCQkJCQkJc3dpdGNoIChub2RlLmdldEF0
dHJpYnV0ZSgidHlwZSIpKSB7DQoJCQkJCQkJY2FzZSAnY29tcGFueV9jb21tZW50
cyc6DQoJCQkJCQkJY2FzZSAnY29tbWVudHMnOg0KCQkJCQkJCQlmdXR1X2FsZXJ0
KEZBVC5mYXZvdXJpdGVzX2hlYWRlciwgRkFULmZhdm91cml0ZXNfcmVxdWVzdF9j
b21tZW50X3JlbW92ZV9zdWNjZXNzLCBmYWxzZSwgJ21lc3NhZ2UnKTsNCgkJCQkJ
CQkJYnJlYWs7DQoJCQkJCQkJY2FzZSAncG9zdHMnOg0KCQkJCQkJCQlmdXR1X2Fs
ZXJ0KEZBVC5mYXZvdXJpdGVzX2hlYWRlciwgRkFULmZhdm91cml0ZXNfcmVxdWVz
dF9wb3N0X3JlbW92ZV9zdWNjZXNzLCBmYWxzZSwgJ21lc3NhZ2UnKTsNCgkJCQkJ
CQkJYnJlYWs7DQoJCQkJCQl9DQoJCQkJCQlpZiAoIShwYXJhbXMudGFyZ2V0X3R5
cGUgPT0gJ2NvbW1lbnRzJykpIHsNCgkJCQkJCQl0ZW1wLmZhdm91cml0ZXNfYWRk
ICYmIHRlbXAuZmF2b3VyaXRlc19hZGQuY2xlYXJPd25UYWdzKCQocGFyYW1zLmJ1
dHRvbikpOw0KCQkJCQkJfQ0KDQoJCQkJfQ0KDQoJCQkJaWYgKHBhcmFtcy50YXJn
ZXRfdHlwZSA9PSAncG9zdHMnIHx8IHBhcmFtcy50YXJnZXRfdHlwZSA9PSAncXVl
c3Rpb25zJykgew0KCQkJCQkkKHBhcmFtcy5idXR0b24pLmdldFBhcmVudCgnLmpz
LXRvX2ZhdnNfaG9sZGVyJykuc3dpdGNoQ2xhc3MoJ2Zhdl9hZGRlZCcsICd0by1m
YXZzJyk7DQoNCgkJCQkJdmFyIGRpdiA9IHBhcmFtcy5idXR0b24uZ2V0UGFyZW50
KCdkaXYuaGVudHJ5Jyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjb3VudCA9
IGRpdi5nZXRFbGVtZW50KCcuZmF2c19jb3VudCcpOw0KICAgICAgICAgICAgICAg
ICAgICB2YXIgcHJldiA9IHBhcnNlSW50KGNvdW50LmdldCgndGV4dCcpKSB8fCAw
Ow0KCQkJCQlpZiAocHJldmlvdXNfb2ZmKSB7DQogICAgICAgICAgICBjb3VudC5z
ZXQoJ3RleHQnLCBwcmV2ICsgMSk7DQoJCQkJCQlwYXJhbXMuYnV0dG9uLnRpdGxl
ID0n0KPQtNCw0LvQuNGC0Ywg0LjQtyDQuNC30LHRgNCw0L3QvdC+0LPQvic7DQog
ICAgCQkJCWlmIChwYXJhbXMudGFyZ2V0X3R5cGUgPT0gJ3F1ZXN0aW9ucycpIHsN
Cg0KICAgIAkJCQl9ZWxzZXsNCgkJCQkJCSAgdmFyIHRhZ3MgPSBkaXYuZ2V0RWxl
bWVudCgnLnRhZ3MnKTsNCiAgICAJCQkJICAobmV3IEVsZW1lbnQoJ2xpJywgeyAn
Y2xhc3MnOiAnZmF2b3VyaXRlc19lZGl0X3RhZ3MnLCAnaHRtbCc6ICc8YSBvbmNs
aWNrPSJ0ZW1wLmZhdm91cml0ZXNfYWRkLmNoYW5nZV90YWdzKHRoaXMpOyByZXR1
cm4gZmFsc2UiIGhyZWY9IiMiPtCY0LfQvNC10L3QuNGC0Ywg0YHQstC+0Lgg0LzQ
tdGC0LrQuDwvYT4nfSkpLmluamVjdCh0YWdzKTsNCiAgICAJCQkJfQ0KCQkJCQl9
IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDEgPT0gcHJldikg
ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50LnNldCgndGV4dCcs
ICcnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb3VudC5zZXQoJ3RleHQnLCBwcmV2IC0gMSkN
CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCgkJCQkJCXBhcmFtcy5idXR0b24u
dGl0bGUgPSfQlNC+0LHQsNCy0LjRgtGMINCyINC40LfQsdGA0LDQvdC90L7QtScN
CgkJCQkJfQ0KCQkJCX0gZWxzZSBpZiAocGFyYW1zLnRhcmdldF90eXBlID09ICdj
b21tZW50cycpIHsNCg0KCQkJCQkkKHBhcmFtcy5idXR0b24pLmdldFBhcmVudCgn
LmpzLXRvX2ZhdnNfaG9sZGVyJykuc3dpdGNoQ2xhc3MoJ2Zhdl9hZGRlZCcsICd0
by1mYXZzJyk7DQoJCQkJfQ0KDQoJCQl9DQoJCX0NCgl9DQp9Ow0KDQp0bS5pbml0
LmFkZChmdW5jdGlvbiAoKSB7DQoJdGVtcC5mYXZvdXJpdGVzX2FkZCA9IHsNCgkJ
J2luaXQnOiBmdW5jdGlvbiAoKSB7DQoJCQlpZiAodGhpcy5pbml0ZWQpIHsgcmV0
dXJuOyB9DQoJCQl2YXIgc2VsZiA9IHRoaXM7DQoJCQl0aGlzLmluaXRlZCA9IHRy
dWU7DQoJCQl0aGlzLmhpZGRlbl9jb250YWluZXIgPSAkKCdmYXZvdXJpdGVzX2Fk
ZF9oaWRkZW4nKTsNCgkJCXRoaXMuZm9ybSA9ICQoJ2Zhdm91cml0ZXNfYWRkX2Zv
cm0nKTsNCgkJCXRoaXMuYWRkZXIgPSAkKCdmYXZvdXJpdGVzX2FkZCcpOw0KCQkJ
dGhpcy50YWdzID0gJCgnZmF2b3VyaXRlc19hZGRfdGFncycpOw0KCQkJdGhpcy5p
ZCA9ICQoJ2Zhdm91cml0ZXNfYWRkX2lkJyk7DQoJCQl0aGlzLmJ1dHRvbiA9ICQo
J2Zhdm91cml0ZXNfYWRkX3N1Ym1pdCcpOw0KDQoJCQlCcm93c2VyLkVuZ2luZS50
cmlkZW50ICYmIHRoaXMudGFncy5hZGRFdmVudCgna2V5cHJlc3MnLCBmdW5jdGlv
biAoZSkgew0KCQkJCWlmIChlLmtleSA9PSAnZW50ZXInKSB7DQoJCQkJCWUuc3Rv
cCgpOw0KCQkJCQlzZWxmLmZvcm0uYXR0YWNoZWQuc3VibWl0KCk7DQoJCQkJfQ0K
CQkJfSk7DQoNCgkJCXZhciBjYW5jZWwgPSAkKCdmYXZvdXJpdGVzX2FkZF9jYW5j
ZWwnKTsNCg0KCQkJY2FuY2VsICYmIGNhbmNlbC5hZGRFdmVudCgnY2xpY2snLCBm
dW5jdGlvbiAoZSkgew0KCQkJCWUuc3RvcCgpOw0KCQkJCXNlbGYuaGlkZSgpOw0K
CQkJfSk7DQoJCX0sDQoJCSdzaG93JzogZnVuY3Rpb24gKGNvbnRhaW5lciwgaWQs
IHRhZ3Nfc3RyaW5nKSB7DQoJCQkhdGhpcy5pbml0ZWQgJiYgdGhpcy5pbml0KCk7
DQoJCQl0aGlzLmlkLnZhbHVlID0gaWQ7DQoJCQlpZiAodGFnc19zdHJpbmcpIHsN
CgkJCQl0aGlzLnRhZ3MudmFsdWUgPSB0YWdzX3N0cmluZzsNCgkJCQl0aGlzLmJ1
dHRvbi52YWx1ZSA9ICfQodC+0YXRgNCw0L3QuNGC0YwnOw0KCQkJfQ0KCQkJdGhp
cy5jb250YWluZXIgPSBjb250YWluZXI7DQoJCQljb250YWluZXIgJiYgdGhpcy5h
ZGRlci5pbmplY3QoY29udGFpbmVyKTsNCgkJCXRoaXMudGFncy5mb2N1cygpOw0K
CQl9LA0KCQknaGlkZSc6IGZ1bmN0aW9uICgpIHsNCgkJCXRoaXMuYWRkZXIuaW5q
ZWN0KHRoaXMuaGlkZGVuX2NvbnRhaW5lcik7DQoJCQl0aGlzLnRhZ3MudmFsdWUg
PSAnJzsNCgkJCXRoaXMuaWQudmFsdWUgPSAnJzsNCgkJCXRoaXMuY29udGFpbmVy
ID0gbnVsbDsNCgkJCXRoaXMuYnV0dG9uLnZhbHVlID0gJ9CU0L7QsdCw0LLQuNGC
0Ywg0LIg0LjQt9Cx0YDQsNC90L3QvtC1JzsNCgkJfSwNCgkJJ2NoYW5nZV90YWdz
JzogZnVuY3Rpb24gKGJ1dHRvbikgew0KCQkJdmFyIGNvbnRhaW5lciA9ICQoYnV0
dG9uKS5nZXRQYXJlbnQoJ2Rpdi5oZW50cnknKSwNCgkJCQlpZCA9IGNvbnRhaW5l
ci5nZXRFbGVtZW50KCcuZW50cnktaW5mbycpLmlkLnJlcGxhY2UoJ2luZm9wYW5l
bCcsICcnKSwNCgkJCQl0YWdzX2hvbGRlciA9ICQoYnV0dG9uLnBhcmVudE5vZGUu
cGFyZW50Tm9kZSksDQoJCQkJdGFncyA9IHRhZ3NfaG9sZGVyLmdldEVsZW1lbnRz
KCdsaS5mYXYgYScpLA0KCQkJCXRhZ3Nfc3RyaW5nID0gJyc7DQoNCg0KCQkJZm9y
ICh2YXIgaSA9IDAsIGwgPSB0YWdzLmxlbmd0aDsgaTxsOyBpKyspIHsNCgkJCQko
aSE9MCkgJiYgKHRhZ3Nfc3RyaW5nICs9ICcsICcpOw0KCQkJCXRhZ3Nfc3RyaW5n
ICs9IHRhZ3NbaV0uaW5uZXJIVE1MOw0KCQkJfQ0KCQkJdGhpcy5zaG93KGNvbnRh
aW5lciwgaWQsIHRhZ3Nfc3RyaW5nKTsNCgkJfSwNCgkJJ2NsZWFyT3duVGFncyc6
IGZ1bmN0aW9uIChidXR0b24pIHsNCgkJCXRoaXMuY29udGFpbmVyID0gYnV0dG9u
LmdldFBhcmVudCgnZGl2LmhlbnRyeScpOw0KCQkJdmFyIGZhdiA9IHRoaXMuY29u
dGFpbmVyLmdldEVsZW1lbnQoJ2Rpdi5qcy10b19mYXZzX2hvbGRlcicpOw0KCQkJ
ZmF2ICYmIGZhdi5yZW1vdmVDbGFzcygndG8tZmF2cycpLmFkZENsYXNzKCdmYXZf
YWRkZWQnKTsNCgkJCXRoaXMuc2V0VGFncygnJywgdHJ1ZSk7DQoJCX0sDQoJCSdz
ZXRUYWdzJzogZnVuY3Rpb24gKHRhZ3MsIHVuZmF2KSB7DQoJCQlpZiAoIXRoaXMu
Y29udGFpbmVyKSB7IHJldHVybjsgfQ0KDQoJCQl2YXIgdGFnc19ob2xkZXIgPSB0
aGlzLmNvbnRhaW5lci5nZXRFbGVtZW50KCd1bC50YWdzJyk7DQoNCgkJCWlmICgh
dGFnc19ob2xkZXIpIHsNCgkJCQlpZiAodGFncykgew0KCQkJCQl2YXIgY29udGVu
dCA9IHRoaXMuY29udGFpbmVyLmdldEVsZW1lbnQoJ2Rpdi5jb250ZW50Jyk7DQoJ
CQkJCXRhZ3NfaG9sZGVyID0gKG5ldyBFbGVtZW50KCd1bCcsIHsgJ2NsYXNzJzog
J3RhZ3MgJ30pKS5pbmplY3QoY29udGVudCwgJ2FmdGVyJyk7DQoJCQkJfQ0KCQkJ
fQ0KCQkJaWYgKHRhZ3NfaG9sZGVyKSB7DQoJCQkJdmFyIGVkaXRfdGFncyA9IHRh
Z3NfaG9sZGVyLmdldEVsZW1lbnQoJ2xpLmZhdm91cml0ZXNfZWRpdF90YWdzJyk7
DQoNCgkJCQl0YWdzX2hvbGRlci5nZXRFbGVtZW50cygnbGkuZmF2JykuZGlzcG9z
ZSgpOw0KDQoJCQkJaWYgKHVuZmF2KSB7DQoJCQkJICAgIGlmIChlZGl0X3RhZ3Mp
IGVkaXRfdGFncy5kaXNwb3NlKCk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJaWYgKCFl
ZGl0X3RhZ3MpIHsNCgkJCQkJCWVkaXRfdGFncyA9IChuZXcgRWxlbWVudCgnbGkn
LCB7ICdjbGFzcyc6ICdmYXZvdXJpdGVzX2VkaXRfdGFncycsICdodG1sJzogJzxh
IG9uY2xpY2s9InRlbXAuZmF2b3VyaXRlc19hZGQuY2hhbmdlX3RhZ3ModGhpcyk7
IHJldHVybiBmYWxzZTsiIGhyZWY9IiMiPtCY0LfQvNC10L3QuNGC0Ywg0YHQstC+
0Lgg0LzQtdGC0LrQuDwvYT4nIH0pKS5pbmplY3QodGFnc19ob2xkZXIpOw0KCQkJ
CQl9DQoJCQkJfQ0KDQoJCQkJdmFyIGVtcHR5ID0gISh0YWdzX2hvbGRlci5nZXRF
bGVtZW50cygnbGknKS5sZW5ndGggKyAoZWRpdF90YWdzID8gLTEgOiAwICkpOw0K
DQoJCQkJaWYgKCF1bmZhdiAmJiB0YWdzKSB7DQoJCQkJCXZhciB0YWdzID0gdGFn
cy5zcGxpdCgnLCcpOw0KCQkJCQlmb3IodmFyIGk9MCwgbD10YWdzLmxlbmd0aDsg
aTxsOyBpKyspIHsNCgkJCQkJCXZhciB0YWcgPSB0YWdzW2ldLmNsZWFuKCk7DQoJ
CQkJCQkobmV3IEVsZW1lbnQoJ2xpJywgeyAnY2xhc3MnOiAnZmF2JywgJ2h0bWwn
OiAoKGVtcHR5ICYmIGk9PTApID8gJycgOiAnLCAnKSArICc8YSBocmVmPSJodHRw
Oi8vJyArIHRlbXAudXNlci5sb2dpbiArICcuJyArIHRlbXAuYmFzZV9zaG9ydCAr
ICcvZmF2b3JpdGVzL3RhZy8nICsgdGFnICsgJyI+JyArIHRhZyArICc8L2E+J30p
KS5pbmplY3QoZWRpdF90YWdzLCAnYmVmb3JlJyk7DQoJCQkJCX0NCgkJCQl9DQoN
CgkJCQlpZiAoIXRhZ3NfaG9sZGVyLmdldEVsZW1lbnRzKCdsaScpLmxlbmd0aCkg
eyB0YWdzX2hvbGRlci5kaXNwb3NlKCk7IH0NCg0KCQkJCXRoaXMuY29udGFpbmVy
ID0gbnVsbDsNCgkJCX0NCgkJfQ0KCX07DQp9KTsNCgoKCgovKiAgIGZ1dHVfYWxl
cnQgICAqLwpmdW5jdGlvbiBmdXR1X2FsZXJ0KGhlYWRlciwgdGV4dCwgY2xvc2Us
IGNsYXNzTmFtZSkgew0KCWlmICghJCgnZnV0dV9hbGVydHNfaG9sZGVyJykpIHsN
CgkJdmFyIGZ1dHVBbGVydE91dGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7DQoJCWZ1dHVBbGVydE91dGVyLmNsYXNzTmFtZSA9ICdmdXR1X2FsZXJ0
X291dGVyJzsNCgkJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmdXR1QWxlcnRP
dXRlcik7DQoJCXZhciBmdXR1QWxlcnRGcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOw0KCQlmdXR1QWxlcnRGcmFtZS5jbGFzc05hbWUgPSAnZnJh
bWUnOw0KCQlmdXR1QWxlcnRPdXRlci5hcHBlbmRDaGlsZChmdXR1QWxlcnRGcmFt
ZSk7DQoJCQ0KCQl2YXIgZnV0dUFsZXJ0c0hvbGRlciA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOw0KCQlmdXR1QWxlcnRzSG9sZGVyLmlkID0gJ2Z1dHVf
YWxlcnRzX2hvbGRlcic7DQoJCWZ1dHVBbGVydHNIb2xkZXIuY2xhc3NOYW1lID0g
J2Z1dHVfYWxlcnRzX2hvbGRlcic7DQoJCWZ1dHVBbGVydEZyYW1lLmFwcGVuZENo
aWxkKGZ1dHVBbGVydHNIb2xkZXIpOw0KCQkNCgl9IGVsc2Ugew0KDQoNCgl9DQoJ
dmFyIGZ1dHVBbGVydCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0K
CWZ1dHVBbGVydC5jbGFzc05hbWUgPSAnZnV0dV9hbGVydCAnICsgY2xhc3NOYW1l
Ow0KCSQoJ2Z1dHVfYWxlcnRzX2hvbGRlcicpLmFwcGVuZENoaWxkKGZ1dHVBbGVy
dCk7DQoNCgl2YXIgZnV0dUFsZXJ0SGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7DQoJZnV0dUFsZXJ0SGVhZGVyLmNsYXNzTmFtZSA9ICdmdXR1
X2FsZXJ0X2hlYWRlcic7DQoJZnV0dUFsZXJ0LmFwcGVuZENoaWxkKGZ1dHVBbGVy
dEhlYWRlcik7DQoJDQoJZnV0dUFsZXJ0SGVhZGVyLmlubmVySFRNTCA9IGhlYWRl
cjsNCglpZiAoY2xvc2UpIHsNCgkJdmFyIGZ1dHVBbGVydENsb3NlQnV0dG9uID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOw0KCQlmdXR1QWxlcnRDbG9zZUJ1
dHRvbi5ocmVmID0gJyMnOw0KCQlmdXR1QWxlcnRDbG9zZUJ1dHRvbi5jbGFzc05h
bWUgPSAnZnV0dV9hbGVydF9jbG9zZV9idXR0b24nOw0KCQlmdXR1QWxlcnRDbG9z
ZUJ1dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24oZXYpIHsNCgkJCWlmKCFldikgew0K
CQkJCWV2PXdpbmRvdy5ldmVudDsNCgkJCX0NCgkJCWlmICghZG9jdW1lbnQuYWxs
KSBldi5wcmV2ZW50RGVmYXVsdCgpOyBlbHNlIGV2LnJldHVyblZhbHVlID0gZmFs
c2U7DQoJCQkkKGZ1dHVBbGVydCkuZGlzcG9zZSgpDQoJCX0NCgkJZnV0dUFsZXJ0
LmFwcGVuZENoaWxkKGZ1dHVBbGVydENsb3NlQnV0dG9uKTsNCgkJDQoJCXZhciBm
dXR1QWxlcnRDbG9zZUJ1dHRvbkljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpbWcnKTsNCgkJZnV0dUFsZXJ0Q2xvc2VCdXR0b25JY29uLnNyYyA9ICcvaS9i
dXR0b25zL2J0bl9jbG9zZS5naWYnOw0KCQlmdXR1QWxlcnRDbG9zZUJ1dHRvbi5h
cHBlbmRDaGlsZChmdXR1QWxlcnRDbG9zZUJ1dHRvbkljb24pOw0KCX0NCgkNCgkN
Cgl2YXIgZnV0dUFsZXJ0VGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOw0KCWZ1dHVBbGVydFRleHQuY2xhc3NOYW1lID0gJ2Z1dHVfYWxlcnRfdGV4
dCc7DQoJZnV0dUFsZXJ0LmFwcGVuZENoaWxkKGZ1dHVBbGVydFRleHQpOw0KDQoJ
DQoJZnV0dUFsZXJ0VGV4dC5pbm5lckhUTUwgPSB0ZXh0Ow0KCQ0KCWZ1dHVBbGVy
dC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7DQoJZnV0dUFsZXJ0LnN0eWxl
LnRvcCA9ICcwJzsNCglmdXR1QWxlcnQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7
DQoNCgkNCglpZiAoIWNsb3NlKSB7DQoJCSQoZnV0dUFsZXJ0KS5hZGRFdmVudCgi
Y2xpY2siLGZ1bmN0aW9uKCl7DQoJCQkkKGZ1dHVBbGVydCkuZGlzcG9zZSgpDQoJ
CX0pDQoJCXNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyAkKGZ1dHVBbGVydCkuZGlz
cG9zZSgpIH0sIDMwMDApOw0KCQkNCgl9DQp9DQoNCi8vIEZ1dHUgQWxlcnQgVGV4
dHMNCnZhciBGQVQgPSB7DQoJcHJlbG9hZGVyIDogJ9CS0LDRiCDQt9Cw0L/RgNC+
0YEg0L7RgtC/0YDQsNCy0LvQtdC9INC/0L4g0YHQtdC60YDQtdGC0L3QvtC5INC7
0LjQvdC40LguINCW0LTQuNGC0LUg0L/QvtC20LDQu9GD0LnRgdGC0LAg0L7RgtCy
0LXRgtCwJywNCgllbXB0eTogJ9Cd0YMg0LTQu9GPINC90LDRh9Cw0LvQsCDRgdC6
0LDQttC40YLQtSwg0YfRgtC+INCy0Ysg0L3QsNC80LXRgNC10L3RiyDQtNC10LvQ
sNGC0YwnLA0KDQoJLy8g0L/RgNC+0YTQuNC70YwNCglwcm9maWxlX2hlYWRlciA6
ICfQpdCw0LHRgNCw0YXQsNCx0YAgLSDQndCw0YHRgtGA0L7QudC60LgnLA0KDQoJ
Ly8g0YDQtdC30Y7QvNC1DQoJcmVzdW1lX2hlYWRlciA6ICfQpdCw0LHRgNCw0YXQ
sNCx0YAg4oCUINCg0LXQt9GO0LzQtScsDQoJDQoJLy8g0L/QvtGH0YLQsA0KCW1h
aWxfaGVhZGVyIDogJ9Cl0LDQsdGA0LDRhdCw0LHRgCDigJQg0J/QvtGH0YLQsCcs
DQoJbWFpbF9sZXR0ZXJfc2VuZF9yZXF1ZXN0IDogJ9CS0Ysg0L7RgtC/0YDQsNCy
0LjQu9C4INC30LDQv9GA0L7RgSDQvdCwINC+0YLQv9GA0LDQstC60YMg0L/QuNGB
0YzQvNCwLicsDQoJbWFpbF9sZXR0ZXJfZGVsZXRlIDogJ9Cf0LjRgdGM0LzQviDR
g9C00LDQu9C10L3QvicsDQoNCgkvLyDQutC+0LzQvNC10L3RgtCw0YDQuNC4DQoJ
Y29tbWVudHNfaGVhZGVyIDogJ9Cl0LDQsdGA0LDRhdCw0LHRgCDigJQg0JrQvtC8
0LzQtdC90YLQsNGA0LjQuCcsDQoJY29tbWVudHNfZXJyb3JfYmxhbmtfbWVzc2Fn
ZSA6ICfQktCy0LXQtNC40YLQtSDRh9GC0L4t0L3QuNCx0YPQtNGMIScsDQoJY29t
bWVudHNfYWRkX3N1Y2Nlc3MgOiAn0JLRiyDQtNC+0LHQsNCy0LjQu9C4INC60L7Q
vNC80LXQvdGC0LDRgNC40LkuJywNCgljb21tZW50c19hZGRfcmVxdWVzdCA6ICfQ
ktGLINC+0YLQv9GA0LDQstC40LvQuCDQt9Cw0L/RgNC+0YEg0L3QsCDQtNC+0LHQ
sNCy0LvQtdC90LjQtSDQutC+0LzQvNC10L3RgtCw0YDQuNGPLicsDQoNCgkvLyDQ
s9C+0YHQvtCy0LDQvdC40LUNCgl2b3RpbmdzX2hlYWRlciA6ICfQpdCw0LHRgNCw
0YXQsNCx0YAg4oCUINCT0L7Qu9C+0YHQvtCy0LDQvdC40Y8nLA0KCXZvdGluZ3Nf
dW5rbm93bl9lcnJvciA6ICfQndC10L7Qv9C+0LfQvdCw0L3QvdCw0Y8g0YHRgtGA
0LDQvdC90LDRjyDQvtGI0LjQsdC60LAnLA0KCXZvdGluZ3NfZXJyb3Jfc2VsZiA6
ICfQk9C+0LvQvtGB0L7QstCw0YLRjCDQt9CwINGB0LLQvtC4INCy0LXRidC4INC9
0LXQu9GM0LfRjycsDQoJdm90aW5nc19lcnJvcl9wcm9oaWJpdGVkIDogJ9CS0LDQ
vCDQt9Cw0L/RgNC10YnQtdC90L4g0LfQtNC10YHRjCDQs9C+0LvQvtGB0L7QstCw
0YLRjCcsDQoJdm90aW5nc19lcnJvcl9pc19leHBpcmVkIDogJ9CS0YDQtdC80Y8g
0LPQvtC70L7RgdC+0LLQsNC90LjRjyDQv9GA0L7RiNC70L4nLA0KCXZvdGluZ3Nf
ZXJyb3Jfbm9fYWNjZXNzIDogJ9Ct0YLQviDQtNC10LnRgdGC0LLQuNC1INC00L7R
gdGC0YPQv9C90L4g0YLQvtC70YzQutC+INC00LvRjyDQt9Cw0YDQtdCz0LjRgdGC
0YDQuNGA0L7QstCw0L3QvdGL0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10Lkn
LA0KDQoJLy8g0LHQu9C+0LPQuA0KCWJsb2dzOiB7DQoJCWhlYWRlcjogJ9Cl0LDQ
sdGA0LDRhdCw0LHRgCDigJQg0JHQu9C+0LPQuCcsDQoJCWRpc2FibGVkOiAn0JLQ
sNGI0LAg0L/RgNC+0YHRjNCx0LAg0L4g0L/QvtC00L/QuNGB0LrQtS/QstGB0YLR
g9C/0LvQtdC90LjQuCDQsiDQsdC70L7QsyDRg9C20LUg0LHRi9C70LAg0L7RgtC/
0YDQsNCy0LvQtdC90LAg0LzQvtC00LXRgNCw0YLQvtGA0YMnLA0KCQllbXB0eV9m
aWVsZDogJ9Cd0YMg0LLQstC10LTQuNGC0LUg0YXQvtGC0Ywg0YfRgtC+LdC90LjQ
sdGD0LTRjCEnLA0KCQlibG9nX2pvaW46ICfQktGLINCy0YHRgtGD0L/QuNC70Lgg
0LIg0LHQu9C+0LMnLA0KCQlibG9nX2xlYXZlOiAn0JLRiyDQv9C+0LrQuNC90YPQ
u9C4INCx0LvQvtCzJw0KCX0sDQoNCg0KCS8vINGA0LXQs9C40YHRgtGA0LDRhtC4
0Y8NCglyZWdpc3RyYXRpb246IHsNCgkJaGVhZGVyOiAn0KXQsNCx0YDQsNGF0LDQ
sdGAIOKAlCDQoNC10LPQuNGB0YLRgNCw0YbQuNGPJywNCgkJZXJyb3I6ICfQntGI
0LjQsdC60LA6INC/0YDQvtCy0LXRgNGM0YLQtSDQv9GA0LDQstC40LvRjNC90L7R
gdGC0Ywg0LfQsNC/0L7Qu9C90LXQvdC40Y8g0YTQvtGA0LzRiycNCgl9LA0KDQoJ
Ly8g0L/QvtGB0YLRiw0KCXBvc3RzX2hlYWRlciA6ICfQpdCw0LHRgNCw0YXQsNCx
0YAg4oCUINCf0YPQsdC70LjQutCw0YbQuNC4JywNCglwb3N0c19zbGlkZXNob3df
YWRkIDogJ9Ch0LvQsNC50LTRiNC+0YMg0LTQvtCx0LDQstC70LXQvdC+JywNCg0K
CS8vINCU0L7QsdCw0LLQu9C10L3QuNC1INCyINC00YDRg9C30YzRjw0KCWZyaWVu
ZGxpZXJfaGVhZGVyIDogJ9Cl0LDQsdGA0LDRhdCw0LHRgCDigJQg0JTRgNGD0LfR
jNGPJywNCglmcmllbmRsaWVyX3Vua25vd25fZXJyb3IgOiAn0J3QtdC+0L/QvtC3
0L3QsNC90L3QsNGPINGB0YLRgNCw0L3QvdCw0Y8g0L7RiNC40LHQutCwJywNCg0K
CS8vINCd0LDRgdGC0YDQvtC50LrQuA0KCXVzZXJfc2V0dGluZ3NfaGVhZGVyIDog
J9Cl0LDQsdGA0LDRhdCw0LHRgCDigJQg0J3QsNGB0YLRgNC+0LnQutC4INC/0L7Q
u9GM0LfQvtCy0LDRgtC10LvRjycsDQoJdXNlcl9zZXR0aW5nc19zYXZlX3N1Y2Nl
c3MgOiAn0J3QsNGB0YLRgNC+0LnQutC4INC+0LHQvdC+0LLQu9C10L3RiycsDQoJ
dXNlcl9zZXR0aW5nc191bmtub3duX2Vycm9yIDogJ9Cd0LXQuNC30LLQtdGB0YLQ
vdCw0Y8g0L7RiNC40LHQutCwJywNCgkNCgkvLyDQmtCw0YDRgtCwINCx0LvQvtCz
0L7Qsg0KCWJsb2dfbWFwX2hlYWRlciA6ICfQpdCw0LHRgNCw0YXQsNCx0YAg4oCU
INCa0LDRgNGC0LAg0LHQu9C+0LPQvtCyJywNCglibG9nX2Vycm9yX25vX2JyYW5k
IDogJ9Cc0LDRgNC60LAg0L3QtSDQvdCw0LnQtNC10L3QsCcsDQoJYmxvZ19lcnJv
cl9ub19tb2RlbCA6ICfQnNC+0LTQtdC70Ywg0L3QtSDQvdCw0LnQtNC10L3QsCcs
DQoJYmxvZ19lcnJvcl9ub19ibG9nIDogJ9CR0LvQvtCzINC90LUg0L3QsNC50LTQ
tdC9JywNCgkNCgkvLyDQmtCw0YDRgtCwDQoJZ21hcF9oZWFkZXIgOiAn0KXQsNCx
0YDQsNGF0LDQsdGAIOKAlCDQmtCw0YDRgtGLJywNCglnbWFwX21hcmtlcl9hZGRf
c3VjY2VzcyA6ICfQntCx0YrQtdC60YIg0LTQvtCx0LDQstC70LXQvScsDQoJZ21h
cF9tYXJrZXJfYWRkX25vX21hcmtlciA6ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg
0LrQu9C40LrQvdC40YLQtSDQvdCwINC60LDRgNGC0YMg0LTQu9GPINC00L7QsdCw
0LLQu9C10L3QuNGPINC+0LHRitC10LrRgtCwJywNCglnbWFwX3NlYXJjaF9wbGFj
ZV9ub19hZGRyZXNzX2Vycm9yIDogJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDRg9GC
0L7Rh9C90LjRgtC1LCDRh9GC0L4sINGB0L7QsdGB0YLQstC10L3QvdC+LCDQuNGB
0LrQsNGC0YwuJywNCgkNCgkvLyDQmNC30LHRgNCw0L3QvdC+0LUNCglmYXZvdXJp
dGVzX2hlYWRlciA6ICAn0KXQsNCx0YDQsNGF0LDQsdGAIOKAlCDQmNC30LHRgNCw
0L3QvdC+0LUnLA0KCWZhdm91cml0ZXNfcmVxdWVzdF9hZGQgOiAgJ9Cl0LDQsdGA
0LDRhdCw0LHRgCDigJQg0JLRiyDQv9C+0YHQu9Cw0LvQuCDQt9Cw0L/RgNC+0YEg
0L3QsCDQtNC+0LHQsNCy0LvQtdC90LjQtSDQv9C+0YHRgtCwINCyINC40LfQsdGA
0LDQvdC90L7QtScsDQoJZmF2b3VyaXRlc19yZXF1ZXN0X3JlbW92ZSA6ICAn0KXQ
sNCx0YDQsNGF0LDQsdGAIOKAlCDQktGLINC/0L7RgdC70LDQu9C4INC30LDQv9GA
0L7RgSDQvdCwINGD0LTQsNC70LXQvdC40LUg0L/QvtGB0YLQsCDQuNC3INC40LfQ
sdGA0LDQvdC90L7Qs9C+JywNCg0KCWZhdm91cml0ZXNfcmVxdWVzdF9wb3N0X2Fk
ZF9zdWNjZXNzIDogICfQpdCw0LHRgNCw0YXQsNCx0YAg4oCUINCS0Ysg0LTQvtCx
0LDQstC40LvQuCDQv9C+0YHRgiDQsiDQuNC30LHRgNCw0L3QvdC+0LUnLA0KCWZh
dm91cml0ZXNfcmVxdWVzdF9wb3N0X3JlbW92ZV9zdWNjZXNzIDogICfQpdCw0LHR
gNCw0YXQsNCx0YAg4oCUINCS0Ysg0YPQtNCw0LvQuNC70Lgg0L/QvtGB0YIg0LjQ
tyDQuNC30LHRgNCw0L3QvdC+0LPQvicsDQoJDQoJZmF2b3VyaXRlc19yZXF1ZXN0
X2NvbW1lbnRfYWRkX3N1Y2Nlc3MgOiAgJ9Cl0LDQsdGA0LDRhdCw0LHRgCDigJQg
0JLRiyDQtNC+0LHQsNCy0LjQu9C4INC60L7QvNC80LXQvdGC0LDRgNC40Lkg0LIg
0LjQt9Cx0YDQsNC90L3QvtC1JywNCglmYXZvdXJpdGVzX3JlcXVlc3RfY29tbWVu
dF9yZW1vdmVfc3VjY2VzcyA6ICAn0KXQsNCx0YDQsNGF0LDQsdGAIOKAlCDQktGL
INGD0LTQsNC70LjQu9C4INC60L7QvNC80LXQvdGC0LDRgNC40Lkg0LjQtyDQuNC3
0LHRgNCw0L3QvdC+0LPQvicsDQoNCgkvLyDQn9Cf0JANCglwcGFfaGVhZGVyIDog
J9Cf0J/QkCcsDQoJDQoJDQoJLy8g0JPQtdC+DQoJZ2VvX2hlYWRlciA6ICAn0KXQ
sNCx0YDQsNGF0LDQsdGAIOKAlCDQodGC0YDQsNC90YsnLA0KCQ0KCS8vIA0KCWNv
bXBhbmllc19oZWFkZXIgOiAgJ9Cl0LDQsdGA0LDRhdCw0LHRgCDigJQg0JrQvtC8
0L/QsNC90LjQuCcsDQoJDQoJcG9sbF9oZWFkZXIgOiAn0KXQsNCx0YDQsNGF0LDQ
sdGAIOKAlCDQntC/0YDQvtGB0YsnLA0KCWZhaWx0dXJlIDogJ9Cl0LDQsdGA0LDR
hdCw0LHRgCDigJQg0J7RiNC40LHQutCwJywNCgkvLyBhamF4IGVycm9yDQoJYWph
eF9lcnJvciA6ICfQpdCw0LHRgNCw0YXQsNCx0YAg4oCUINCe0YjQuNCx0LrQsCBB
amF4LdC30LDQv9GA0L7RgdCwJw0KfTsNCgoKCgovKiAgIGdlbyAgICovCmdlb0hh
bmRsZXIgPSB7DQoJdXJsOiAnL2FqYXgvZ2VvLycsDQoJY2xhc3NOYW1lcyA6IHsN
CgkJYWxsSG9sZGVyOiAnanMtZ2VvX2Jsb2NrX2hvbGRlcicsDQoJCWNvdW50cnlI
b2xkZXI6ICdqcy1nZW9fY291bnRyeV9zZWxlY3RfaG9sZGVyJywNCgkJcmVnaW9u
SG9sZGVyOiAnanMtZ2VvX3JlZ2lvbl9zZWxlY3RfaG9sZGVyJywNCgkJY2l0eUhv
bGRlcjogJ2pzLWdlb19jaXR5X3NlbGVjdF9ob2xkZXInLA0KCQljb3VudHJ5U2Vs
ZWN0OiAnanMtZ2VvX2NvdW50cnlfc2VsZWN0JywNCgkJcmVnaW9uU2VsZWN0OiAn
anMtZ2VvX3JlZ2lvbl9zZWxlY3QnLA0KCQljaXR5U2VsZWN0OiAnanMtZ2VvX2Np
dHlfc2VsZWN0Jw0KCX0sDQoJeG1sOiB7DQoJCXJlc3BvbnNlTm9kZXM6IHsNCgkJ
CWVycm9yIDogJ2Vycm9yJywNCgkJCXJlc3VsdCA6ICdtZXNzYWdlJywNCgkJCXJl
Z2lvbiA6ICdyZWdpb24nLA0KCQkJY2l0eSA6ICdjaXR5Jw0KCQl9LA0KDQoJCXBh
cnNlOiBmdW5jdGlvbih4bWxPYmopew0KCQkJdmFyIHhtbE5vZGVzID0ge307DQoJ
CQlmb3IgKHByb3AgaW4gZ2VvSGFuZGxlci54bWwucmVzcG9uc2VOb2Rlcykgew0K
CQkJCXhtbE5vZGVzW3Byb3BdID0geG1sT2JqLmdldEVsZW1lbnRzQnlUYWdOYW1l
KGdlb0hhbmRsZXIueG1sLnJlc3BvbnNlTm9kZXNbcHJvcF0pOw0KCQkJfQ0KCQkJ
cmV0dXJuIHhtbE5vZGVzOw0KCQl9DQoJfSwNCgkNCglzZW5kRGF0YSA6IGZ1bmN0
aW9uIChzZWxlY3Rfb2JqLCBzZW5kX3R5cGUsIGdldF90eXBlKSB7DQoJCQ0KCQl2
YXIgYWxsSG9sZGVyID0gJChzZWxlY3Rfb2JqKS5nZXRQYXJlbnQoJy4nICsgZ2Vv
SGFuZGxlci5jbGFzc05hbWVzLmFsbEhvbGRlcik7DQoJCWlmIChzZWxlY3Rfb2Jq
LnZhbHVlID09ICcnKSB7DQoJCQlpZiAoZ2V0X3R5cGUgPT0gJ3JlZ2lvbnMnKSB7
DQoJCQkJJChhbGxIb2xkZXIpLmdldEVsZW1lbnQoJy4nICsgZ2VvSGFuZGxlci5j
bGFzc05hbWVzLnJlZ2lvbkhvbGRlcikuYWRkQ2xhc3MoJ2hpZGRlbicpOw0KCQkJ
CSQoYWxsSG9sZGVyKS5nZXRFbGVtZW50KCcuJyArIGdlb0hhbmRsZXIuY2xhc3NO
YW1lcy5jaXR5SG9sZGVyKS5hZGRDbGFzcygnaGlkZGVuJyk7DQoJCQkJJChhbGxI
b2xkZXIpLmdldEVsZW1lbnQoJy4nICsgZ2VvSGFuZGxlci5jbGFzc05hbWVzLnJl
Z2lvblNlbGVjdCkuc2VsZWN0ZWRJbmRleCA9IDA7DQoJCQkJJChhbGxIb2xkZXIp
LmdldEVsZW1lbnQoJy4nICsgZ2VvSGFuZGxlci5jbGFzc05hbWVzLmNpdHlTZWxl
Y3QpLnNlbGVjdGVkSW5kZXggPSAwOw0KCQkJfSBlbHNlIGlmIChnZXRfdHlwZSA9
PSAnY2l0aWVzJykgew0KCQkJCSQoYWxsSG9sZGVyKS5nZXRFbGVtZW50KCcuJyAr
IGdlb0hhbmRsZXIuY2xhc3NOYW1lcy5jaXR5SG9sZGVyKS5hZGRDbGFzcygnaGlk
ZGVuJyk7DQoJCQkJJChhbGxIb2xkZXIpLmdldEVsZW1lbnQoJy4nICsgZ2VvSGFu
ZGxlci5jbGFzc05hbWVzLmNpdHlTZWxlY3QpLnNlbGVjdGVkSW5kZXggPSAwOw0K
CQkJfQ0KCQkJDQoJCX0gZWxzZSB7DQoJCQl2YXIgZGF0YSA9IHNlbmRfdHlwZSAr
ICc9JyArIHNlbGVjdF9vYmoudmFsdWU7DQoJCQl2YXIgdXJsID0gJy9hamF4L2dl
by8nICsgZ2V0X3R5cGUgKyAnLyc7DQoJCQlhamF4TG9hZFBvc3QodXJsLCBkYXRh
LCBnZW9IYW5kbGVyLnNlbmREYXRhT25sb2FkLCB3aW5kb3csIHtzZWxlY3Rfb2Jq
OnNlbGVjdF9vYmosIHNlbmRfdHlwZTpzZW5kX3R5cGUsIGdldF90eXBlOmdldF90
eXBlfSk7DQoJCX0NCgl9LA0KCQ0KCXNlbmREYXRhT25sb2FkIDogZnVuY3Rpb24o
YWpheE9iaiwgcGFyYW1zKSB7DQoJCWlmKGFqYXhPYmogJiYgYWpheE9iai5yZXNw
b25zZVhNTCl7DQoJCQl2YXIgeG1sT2JqID0gYWpheE9iai5yZXNwb25zZVhNTDsN
CgkJCXZhciB4bWxOb2RlcyA9IGdlb0hhbmRsZXIueG1sLnBhcnNlKHhtbE9iaik7
DQoJCQlpZih4bWxOb2Rlcy5lcnJvciAmJiB4bWxOb2Rlcy5lcnJvci5sZW5ndGgp
ew0KCQkJCXZhciBlcnJvcnNfbGVuZ3RoID0geG1sTm9kZXMuZXJyb3IubGVuZ3Ro
Ow0KCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgZXJyb3JzX2xlbmd0aDsgaSsrKSB7
DQoJCQkJCWZ1dHVfYWxlcnQoRkFULmdlb19oZWFkZXIsIHhtbE5vZGVzLmVycm9y
W2ldLmZpcnN0Q2hpbGQuZGF0YSwgdHJ1ZSwgJ2Vycm9yJyk7DQoJCQkJfQ0KCQkJ
fQ0KCQkJaWYoeG1sTm9kZXMucmVzdWx0ICYmIHhtbE5vZGVzLnJlc3VsdC5sZW5n
dGgpIHsNCgkJCQlnZW9IYW5kbGVyLnNob3dSZXN1bHQoeG1sTm9kZXMsIHBhcmFt
cyk7DQoJCQl9DQoJCX0NCgl9LA0KCQ0KCXNob3dSZXN1bHQgOiBmdW5jdGlvbiAo
eG1sTm9kZXMsIHBhcmFtcykgew0KDQoJCXZhciBhbGxIb2xkZXIgPSAkKHBhcmFt
cy5zZWxlY3Rfb2JqKS5nZXRQYXJlbnQoJy4nICsgZ2VvSGFuZGxlci5jbGFzc05h
bWVzLmFsbEhvbGRlcik7DQogICAgICAgIA0KCQlpZiAocGFyYW1zLmdldF90eXBl
ID09ICdyZWdpb25zJykgew0KCQkJdmFyIHNlbGVjdFJlZ2lvbnMgPSAkKGFsbEhv
bGRlcikuZ2V0RWxlbWVudCgnLicgKyBnZW9IYW5kbGVyLmNsYXNzTmFtZXMucmVn
aW9uU2VsZWN0KTsNCgkJCXZhciBzZWxlY3RSZWdpb25zSG9sZGVyID0gJChhbGxI
b2xkZXIpLmdldEVsZW1lbnQoJy4nICsgZ2VvSGFuZGxlci5jbGFzc05hbWVzLnJl
Z2lvbkhvbGRlcik7DQoJCQkNCgkJCXZhciBjdXJPcHRpb25zID0gc2VsZWN0UmVn
aW9ucy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnb3B0aW9uJyk7DQoJCQl2YXIgY3Vy
T3B0aW9uc0xlbmd0aCA9IGN1ck9wdGlvbnMubGVuZ3RoOw0KCQkJDQoJCQlmb3Ig
KHZhciBpID0gMTsgaSA8IGN1ck9wdGlvbnNMZW5ndGg7IGkrKykgew0KCQkJCXNl
bGVjdFJlZ2lvbnMucmVtb3ZlKDEpOw0KCQkJfQ0KCQkJDQoJCQlpZiAoeG1sTm9k
ZXMucmVnaW9uICYmIHhtbE5vZGVzLnJlZ2lvbi5sZW5ndGgpIHsNCgkJCQlsID0g
eG1sTm9kZXMucmVnaW9uLmxlbmd0aDsNCgkJCQlmb3IgKHZhciBpID0gMDsgaSA8
IGw7IGkrKykgew0KCQkJCQl2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnb3B0aW9uJyk7DQoJCQkJCW9wdGlvbi52YWx1ZSA9IHhtbE5vZGVzLnJl
Z2lvbltpXS5nZXRBdHRyaWJ1dGUoJ2lkJyk7DQoJCQkJCW9wdGlvbi5pbm5lckhU
TUwgPSB4bWxOb2Rlcy5yZWdpb25baV0uZmlyc3RDaGlsZC5kYXRhOw0KCQkJCQlz
ZWxlY3RSZWdpb25zLmFwcGVuZENoaWxkKG9wdGlvbik7DQoJCQkJCSQoc2VsZWN0
UmVnaW9ucykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOw0KCQkJCQkkKHNlbGVjdFJl
Z2lvbnNIb2xkZXIpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTsNCgkJCQl9DQoJCQkJ
JChhbGxIb2xkZXIpLmdldEVsZW1lbnQoJy4nICsgZ2VvSGFuZGxlci5jbGFzc05h
bWVzLmNpdHlIb2xkZXIpLmFkZENsYXNzKCdoaWRkZW4nKTsNCgkJCQkkKGFsbEhv
bGRlcikuZ2V0RWxlbWVudCgnLicgKyBnZW9IYW5kbGVyLmNsYXNzTmFtZXMuY2l0
eVNlbGVjdCkuc2VsZWN0ZWRJbmRleCA9IDA7DQoJCQl9DQoJCQkNCgkJfSBlbHNl
IGlmIChwYXJhbXMuZ2V0X3R5cGUgPT0gJ2NpdGllcycpIHsNCgkJCXZhciBzZWxl
Y3RDaXRpZXMgPSAkKGFsbEhvbGRlcikuZ2V0RWxlbWVudCgnLicgKyBnZW9IYW5k
bGVyLmNsYXNzTmFtZXMuY2l0eVNlbGVjdCk7DQoJCQl2YXIgc2VsZWN0Q2l0aWVz
SG9sZGVyID0gJChhbGxIb2xkZXIpLmdldEVsZW1lbnQoJy4nICsgZ2VvSGFuZGxl
ci5jbGFzc05hbWVzLmNpdHlIb2xkZXIpOw0KCQkJDQoJCQl2YXIgY3VyT3B0aW9u
cyA9IHNlbGVjdENpdGllcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnb3B0aW9uJyk7
DQoJCQl2YXIgY3VyT3B0aW9uc0xlbmd0aCA9IGN1ck9wdGlvbnMubGVuZ3RoOw0K
CQkJDQoJCQlmb3IgKHZhciBpID0gMTsgaSA8IGN1ck9wdGlvbnNMZW5ndGg7IGkr
Kykgew0KCQkJCXNlbGVjdENpdGllcy5yZW1vdmUoMSk7DQoJCQl9DQoJCQlpZiAo
eG1sTm9kZXMuY2l0eSAmJiB4bWxOb2Rlcy5jaXR5Lmxlbmd0aCkgew0KCQkJCWwg
PSB4bWxOb2Rlcy5jaXR5Lmxlbmd0aDsNCgkJCQlmb3IgKHZhciBpID0gMDsgaSA8
IGw7IGkrKykgew0KCQkJCQl2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnb3B0aW9uJyk7DQoJCQkJCW9wdGlvbi52YWx1ZSA9IHhtbE5vZGVzLmNp
dHlbaV0uZ2V0QXR0cmlidXRlKCdpZCcpOw0KCQkJCQlvcHRpb24uaW5uZXJIVE1M
ID0geG1sTm9kZXMuY2l0eVtpXS5maXJzdENoaWxkLmRhdGE7DQoJCQkJCXNlbGVj
dENpdGllcy5hcHBlbmRDaGlsZChvcHRpb24pOw0KCQkJCQkkKHNlbGVjdENpdGll
cykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOw0KCQkJCQkkKHNlbGVjdENpdGllc0hv
bGRlcikucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOw0KCQkJCX0NCgkJCX0NCgkJfQ0K
CX0NCn07CgoKCi8qICAgYWpheEZvcm0gICAqLwovKg0KCWFqYXhGb3JtQ2xhc3MN
CgnQkdCw0LfQvtCy0YvQuSDQutC70LDRgdGBLCDQvdC1INC/0YDQuNC80LXQvdGP
0Y7RidC40LnRgdGPINGB0LDQvNC+0YHRgtC+0Y/RgtC10LvRjNC90L4gKNC+0YIg
0L3QtdCz0L4g0YPQttC1INC90LDRgdC70LXQtNGD0Y7RgiDQv9C+0LTQutC70LDR
gdGB0YssINC+0LHRgdC70YPQttC40LLQsNGO0YnQuNC1INC60L7QvdC60YDQtdGC
0L3Ri9C1INGE0L7RgNC80YspDQoNCiovDQp2YXIgYWpheEZvcm1DbGFzcyA9IGZ1
bmN0aW9uKCl7DQoNCgkvLyDQstC+0LfQvNC+0LbQvdGL0LUgdXJsICjQt9Cw0LTQ
sNGO0YLRgdGPINGB0LLQvtC40Lwg0LrQvtC90LrRgNC10YLQvdGL0Lwg0L/QvtC0
0LrQu9Cw0YHRgdC+0LwpDQoJLy8g0L/RgNC4INC+0YLQv9GA0LDQstC60LUg0LTQ
sNC90L3Ri9GFINC90LAg0YHQtdGA0LLQtdGAINC90LAg0YTQvtGA0LzRgyDQvdCw
0LLQtdGI0LjQstCw0Y7RgtGB0Y8g0LDQvdCw0LvQvtCz0LjRh9C90YvQtSDQutC7
0LDRgdGB0Ys6DQoJLy8gc2F2ZS1sb2FkaW5nLCBwcmV2aWV3LWxvYWRpbmcsIGRy
YWZ0LWxvYWRpbmcNCgl0aGlzLmFqYXhVcmxzID0gew0KCQlzYXZlOiAnJyAvLyDR
gdC+0YXRgNCw0L3QtdC90LjQtSDQv9C+0YHRgtCwDQoJCS8vcHJldmlldzogJycs
IC8vINC/0YDQtdC00L/RgNC+0YHQvNC+0YLRgA0KCQkvL2RyYWZ0OiAnJywgLy8g
0LIg0YfQtdGA0L3QvtCy0LjQutC4DQoJCS8vYXV0b3NhdmU6ICcnIC8vINCyINCw
0LLRgtC+0YHRjdC50LINCgl9Ow0KDQoJLy8g0JjQvNC10L3QsCB4bWwg0L3QvtC0
0L7QsiDQuCDRgdC+0L7RgtCy0LXRgdGC0LLRg9GO0YnQuNC1INC40Lwg0LjQvNC1
0L3QsCDRhNGD0L3QutGG0LjQuS3QvtCx0YDQsNCx0L7RgtGH0LjQutC+0LINCgl0
aGlzLnhtbFJlc3BvbnNlID0gew0KCQltZXNzYWdlOiB7DQoJCQlub2RlOiAnbWVz
c2FnZScsDQoJCQloYW5kbGVyOiBudWxsDQoJCX0sDQoNCgkJZXJyb3I6IHsNCgkJ
CW5vZGU6ICdlcnJvcicsDQoJCQloYW5kbGVyOiAneG1sUmVzcG9uc2VIYW5kbGVy
X2Vycm9yJw0KCQl9LA0KDQoJCXJlZGlyZWN0OiB7DQoJCQlub2RlOiAncmVkaXJl
Y3RfdXJsJywNCgkJCWhhbmRsZXI6ICd4bWxSZXNwb25zZUhhbmRsZXJfcmVkaXJl
Y3QnDQoJCX0NCgl9Ow0KDQoJLy8g0JjRgdC/0L7Qu9GM0LfRg9C10LzRi9C1INCy
INGE0L7RgNC80LUgY2xhc3NOYW1lcw0KCXRoaXMuY2xhc3NOYW1lcyA9IHsNCgkJ
ZmllbGRIb2xkZXI6ICdqcy1maWVsZC1ob2xkZXInLCAvLyDQutC+0L3RgtC10LnQ
vdC10YAt0YDQvtC00LjRgtC10LvRjCDQv9C+0LvRjyDRhNC+0YDQvNGLINC4INC+
0YjQuNCx0LrQuA0KCQlmaWVsZERhdGE6ICdqcy1maWVsZC1kYXRhJywgLy8g0L/Q
vtC70LUg0YTQvtGA0LzRiywg0LrQvtGC0L7RgNC+0LUg0L3Rg9C20L3QviDRgdC1
0YDQuNCw0LvQuNC30L7QstCw0YLRjA0KCQlmaWVsZEVycm9yTXNnQm94OiAnanMt
ZmllbGQtZXJyb3ItbXNnJywgLy8g0LrQvtC90YLQtdC50L3QtdGAINC00LvRjyDQ
stGL0LLQvtC00LAg0YHQvtC+0LHRidC10L3QuNGPINC+0LEg0L7RiNC40LHQutC1
DQoJCWZpZWxkTWFya2VkRXJyb3I6ICdqcy1tYXJrZWQtZXJyb3InLCAvLyDQv9C+
0LzQtdGH0LDQtdC8INC60L7QvdGC0LXQudC90LXRgCwg0LXRgdC70Lgg0LIg0L/Q
vtC70LUgLSDQvtGI0LjQsdC60LANCgkJZmllbGRNYXJrZWRDaGVja2VkOiAnanMt
bWFya2VkLWNoZWNrZWQnLCAvLyDQv9C+0LzQtdGH0LDQtdC8INC60L7QvdGC0LXQ
udC90LXRgCwg0LXRgdC70Lgg0L/QvtC70LUg0L/RgNC+0YjQu9C+INC/0YDQvtCy
0LXRgNC60YMNCgkJZmllbGRJc1JlcXVpcmVkOiAnanMtcmVxdWlyZWQnLCAvLyDQ
v9C+0LvQtSwg0L7QsdGP0LfQsNGC0LXQu9GM0L3QvtC1INC00LvRjyDQt9Cw0L/Q
vtC70L3QtdC90LjRjyANCgkJZmllbGRQYXNzXzE6ICdqcy1wYXNzLWZpZWxkLW1h
aW4nLCAvLyDQv9C+0LvQtSDRgSDQvtGB0L3QvtCy0L3Ri9C8INC/0LDRgNC+0LvQ
tdC8DQoJCWZpZWxkUGFzc18yOiAnanMtcGFzcy1maWVsZC1yZXBlYXQnLCAvLyDQ
v9C+0LvQtSDRgSDQv9C+0LLRgtC+0YDQvtC8INC/0LDRgNC+0LvRjw0KCQlpc0xv
YWRpbmc6ICdsb2FkaW5nJywgLy8g0L/RgNC10LvQvtCw0LTQtdGADQoJCXVua25v
d25FcnJvckhvbGRlcjogJ2pzLXVua25vd24tZXJyb3ItaG9sZGVyJywgLy8g0LTQ
tdGA0LbQsNGC0LXQu9GMINCy0YvQstC+0LTQsCDQvdC10L7Qv9C+0LfQvdCw0L3Q
vdC+0Lkg0L7RiNC40LHQutC4DQoJCXVua25vd25FcnJvck1zZzogJ2pzLXVua25v
d24tZXJyb3ItbXNnJyAvLyDRgdCw0LzQviDQv9C+0LvQtSDQvdC10L7Qv9C+0LfQ
vdCw0L3QvdC+0Lkg0L7RiNC40LHQutC4DQoJfTsNCg0KCS8vINCS0YvQstC+0LTQ
uNC80YvQtSDQutC70LjQtdC90YLQvtC8INGB0L7QvtCx0YnQtdC90LjRjyDQvtCx
INC+0YjQuNCx0LrQsNGFDQoJdGhpcy5lcnJvck1lc3NhZ2VzID0gew0KCQlmaWVs
ZElzRW1wdHk6ICfQndC10L7QsdGF0L7QtNC40LzQviDQt9Cw0L/QvtC70L3QuNGC
0Ywg0Y3RgtC+INC/0L7Qu9C1JywNCgkJaW5wdXRJc0luY29ycmVjdDogJ9CS0Ysg
0LLQstC10LvQuCDQvdC10LTQvtC/0YPRgdGC0LjQvNGL0Lkg0YHQuNC80LLQvtC7
JywNCgkJaW5wdXRJc0luc3VmZmljaWVudDogJ9CS0Ysg0LLQstC10LvQuCDQvdC1
0LTQvtGB0YLQsNGC0L7Rh9C90L4g0YHQuNC80LLQvtC70L7QsicsDQoJCWVtYWls
SXNJbmNvcnJlY3Q6ICfQktGLINCy0LLQtdC70Lgg0L3QtdC00L7Qv9GD0YHRgtC4
0LzRi9C5IGVtYWlsJywNCgkJdXJsSXNJbmNvcnJlY3Q6ICfQktGLINCy0LLQtdC7
0Lgg0L3QtdC00L7Qv9GD0YHRgtC40LzRi9C5IHVybCcsDQoJCWlucHV0Q2hhcnNO
dW1iZXJJc0luY29ycmVjdDogJ9CS0Ysg0LLQstC10LvQuCDQvdC10LLQtdGA0L3Q
vtC1INGH0LjRgdC70L4g0LHRg9C60LInLA0KCQlwYXNzd29yZElzU2hvcnQ6ICfQ
n9Cw0YDQvtC70Ywg0YHQu9C40YjQutC+0Lwg0LrQvtGA0L7RgtC60LjQuScsDQoJ
CXBhc3N3b3Jkc0FyZU5vdEVxdWFsOiAn0J/QsNGA0L7Qu9C4INC90LUg0YHQvtCy
0L/QsNC00LDRjtGCJywNCgkJdW5rbm93bkVycm9yOiAn0J3QtdC+0L/QvtC30L3Q
sNC90L3QsNGPINC+0YjQuNCx0LrQsCcgLy8g0J/Rg9GB0YLQvtC1INGB0L7QvtCx
0YnQtdC90LjQtSDQvtCxINC+0YjQuNCx0LrQtQ0KCX07DQoNCn07DQoNCg0KT2Jq
ZWN0LmV4dGVuZE9iamVjdCgNCglhamF4Rm9ybUNsYXNzLnByb3RvdHlwZSwgew0K
DQoJLy8J0J/QtdGA0LXQutC70Y7Rh9C10L3QuNC1INC80LXQttC00YMg0YTQvtGA
0LzQsNC80Lgg0L3QsCDRgdGC0YDQsNC90LjRhtC1DQoJc3dpdGNoRm9ybTogZnVu
Y3Rpb24obGluayl7DQoJCQkkKCdyZWctd3JhcHBlcicpLmNsYXNzTmFtZSA9IGxp
bmsuY2xhc3NOYW1lOw0KCQkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCg0KCS8vINCf
0LXRgNC10LLQvtC00LjQvCB4bWwg0LTQtdGA0LXQstC+INCyINC+0LHRitC10LrR
gg0KCXBhcnNlWE1MOiBmdW5jdGlvbih4bWxPYmopew0KCQkJdmFyIHhtbE5vZGVz
ID0ge307DQoJCQlmb3IgKHByb3AgaW4gdGhpcy54bWxSZXNwb25zZSl7DQoJCQkJ
eG1sTm9kZXNbcHJvcF0gPSB4bWxPYmouZ2V0RWxlbWVudHNCeVRhZ05hbWUodGhp
cy54bWxSZXNwb25zZVtwcm9wXS5ub2RlKTsNCgkJCX0NCgkJCXJldHVybiB4bWxO
b2RlczsNCgl9LA0KDQoNCgkvLyDQktC+0LfQstGA0LDRidCw0LXRgiDQsdC70L7Q
uiDQstGL0LLQvtC00LAg0L7RiNC40LHQutC4INC00LvRjyDQtNCw0L3QvdC+0LPQ
viDQv9C+0LvRjyDRhNC+0YDQvNGLDQoJZ2V0RXJyb3JNc2dCb3hCeUZpZWxkOiBm
dW5jdGlvbihmaWVsZCl7DQoJCQl2YXIgZmllbGRIb2xkZXIgPSAkKGZpZWxkKS5n
ZXRQYXJlbnQoJy4nICsgdGhpcy5jbGFzc05hbWVzLmZpZWxkSG9sZGVyKTsNCgkJ
CWlmKGZpZWxkSG9sZGVyKXsNCgkJCQl2YXIgZXJyb3JNc2dCb3hlcyA9ICQoZmll
bGRIb2xkZXIpLmdldEVsZW1lbnRzKCcuJyArIHRoaXMuY2xhc3NOYW1lcy5maWVs
ZEVycm9yTXNnQm94KTsNCgkJCQlpZihlcnJvck1zZ0JveGVzICYmIGVycm9yTXNn
Qm94ZXMubGVuZ3RoKXsNCgkJCQkJcmV0dXJuIGVycm9yTXNnQm94ZXNbMF07DQoJ
CQkJfSANCgkJCX1lbHNlIHsNCgkJCQlyZXR1cm4gbnVsbDsNCgkJCX0NCgl9LA0K
DQoNCgkvLyANCgljb21wbGV0ZUZvcm06IGZ1bmN0aW9uKHJlZGlyZWN0VXJsKXsN
CgkJCWlmKHJlZGlyZWN0VXJsKXsNCgkJCQl3aW5kb3cubG9jYXRpb24uaHJlZiA9
IHJlZGlyZWN0VXJsOw0KCQkJfSBlbHNlIHsNCgkJCQl3aW5kb3cubG9jYXRpb24u
aHJlZiA9ICIvIjsNCgkJCX0NCgl9LA0KDQoNCgkvLwnQn9GA0L7QstC10YDQutCw
INC30LDQv9C+0LvQvdC10L3QvdC+0YHRgtC4INGE0L7RgNC80Ysg0Lgg0L7RgtGB
0YPRgtGB0LLQuNGPINC+0YjQuNCx0L7QuiAo0YHQtNC10LvQsNGC0YwgY2xhc3NO
YW1lPSdyZXF1aXJlZCcg0LTQu9GPINC/0L7Qu9C10LkpDQoJY2hlY2tGb3JtQ29t
cGxpdGlvbjogZnVuY3Rpb24oZm9ybSl7DQoJCQl2YXIgZm9ybUlzQ29tcGxpdGVk
ID0gdHJ1ZTsgDQoJCQl2YXIgZGF0YXMgPSAkKGZvcm0pLmdldEVsZW1lbnRzKCcu
JyArIHRoaXMuY2xhc3NOYW1lcy5maWVsZERhdGEpOw0KDQoJCQlmb3IgKHZhciBp
PTAsIGxlbmd0aD1kYXRhcy5sZW5ndGg7IGk8bGVuZ3RoOyBpKyspew0KCQkJCQ0K
CQkJCQ0KCQkJCXZhciBmaWVsZEhvbGRlciA9ICQoZGF0YXNbaV0pLmdldFBhcmVu
dCgnLicgKyB0aGlzLmNsYXNzTmFtZXMuZmllbGRIb2xkZXIpOw0KCQkJCQ0KCQkJ
CWlmICgNCgkJCQkJCShkYXRhc1tpXS52YWx1ZSA9PSAnJyAmJiAvLyDQv9GD0YHR
gtC+0LUg0L7QsdGP0LfQsNGC0LXQu9GM0L3QvtC1INC/0L7Qu9C1DQoJCQkJCQkJ
JChkYXRhc1tpXSkuaGFzQ2xhc3ModGhpcy5jbGFzc05hbWVzLmZpZWxkSXNSZXF1
aXJlZCkpIHx8DQoJCQkJCQkNCgkJCQkJCShkYXRhc1tpXS5nZXRBdHRyaWJ1dGUo
J3R5cGUnKSA9PSAnY2hlY2tib3gnICYmIC8vINC+0LHRj9C30LDRgtC10LvRjNC9
0YvQuSDRh9C10LrQsdC+0LrRgQ0KCQkJCQkJCSQoZGF0YXNbaV0pLmhhc0NsYXNz
KHRoaXMuY2xhc3NOYW1lcy5maWVsZElzUmVxdWlyZWQpICYmDQoJCQkJCQkJIWRh
dGFzW2ldLmNoZWNrZWQpDQoJCQkJCSl7DQoJCQkJCWZvcm1Jc0NvbXBsaXRlZCA9
IGZhbHNlOw0KCQkJCQl0aGlzLm1hcmtGaWVsZF9lcnJvcihkYXRhc1tpXSwgdGhp
cy5lcnJvck1lc3NhZ2VzLmZpZWxkSXNFbXB0eSk7DQoNCgkJCQl9IGVsc2UgaWYo
DQoJCQkJCQkoZmllbGRIb2xkZXIgJiYgLy8g0L/QvtC70LUg0YEg0L3QtdC40YHQ
v9GA0LDQstC70LXQvdC90L7QuSDQvtGI0LjQsdC60L7QuQ0KCQkJCQkJCSQoZmll
bGRIb2xkZXIpLmhhc0NsYXNzKHRoaXMuY2xhc3NOYW1lcy5maWVsZE1hcmtlZEVy
cm9yKSkNCgkJCQkJKXsNCgkJCQkJdmFyIGVycm9yTXNnQm94ID0gdGhpcy5nZXRF
cnJvck1zZ0JveEJ5RmllbGQoZGF0YXNbaV0pOw0KCQkJCQlpZiAoZXJyb3JNc2dC
b3gpIHsNCgkJCQkJCWVycm9yTXNnQm94LmlubmVySFRNTCA9ICcnOw0KCQkJCQl9
DQoJDQoJCQkJCXRoaXMubWFya0ZpZWxkX2NsZWFyKGRhdGFzW2ldKTsNCgkJCQl9
DQoJCQl9DQoJCQlyZXR1cm4gZm9ybUlzQ29tcGxpdGVkOw0KCX0sDQoNCgkvLyDQ
odC10YDQuNCw0LvQuNC30LDRhtC40Y8g0L/QvtC70LXQuSDRhNC+0YDQvNGLDQoJ
c2VyaWFsaXplRm9ybTogZnVuY3Rpb24oZm9ybSl7DQoJCQl2YXIgZGF0YSA9ICcn
Ow0KCQkJDQoJCQl2YXIgZGF0YXMgPSAkKGZvcm0pLmdldEVsZW1lbnRzKCcuJyAr
IHRoaXMuY2xhc3NOYW1lcy5maWVsZERhdGEpOw0KCQkJZm9yICh2YXIgaT0wLCBs
ZW5ndGg9ZGF0YXMubGVuZ3RoOyBpPGxlbmd0aDsgaSsrKXsNCgkJCQl2YXIgdHlw
ZSA9IGRhdGFzW2ldLmdldEF0dHJpYnV0ZSgndHlwZScpOw0KCQkJCXZhciBwYXJh
bSA9IGRhdGFzW2ldLmdldEF0dHJpYnV0ZSgnbmFtZScpOw0KCQkJCXZhciB2YWx1
ZSA9IGRhdGFzW2ldLnZhbHVlOw0KDQoJCQkJaWYodHlwZSA9PSAncmFkaW8nICYm
ICFkYXRhc1tpXS5jaGVja2VkKXsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KDQoJ
CQkJaWYodHlwZSA9PSAnY2hlY2tib3gnKXsNCgkJCQkJdmFsdWUgPSBkYXRhc1tp
XS5jaGVja2VkID8gdHJ1ZSA6IGZhbHNlOw0KCQkJCX0gZWxzZSB7DQoJCQkJCXZh
bHVlID0gZGF0YXNbaV0udmFsdWU7DQoJCQkJfQ0KCQkJCWRhdGEgKz0gKGkhPTAg
PyAnJicgOiAnJykgKyBwYXJhbSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2
YWx1ZSk7DQoJCQl9DQoJCQlyZXR1cm4gZGF0YTsNCgl9LA0KCQ0KCS8vINCh0LXR
gNC40LDQu9C40LfQsNGG0LjRjyDQv9C+0LvQtdC5INGE0L7RgNC80YsNCgljbGFz
c2ljU2VyaWFsaXplRm9ybTogZnVuY3Rpb24oZm9ybSl7DQoJCQl2YXIgZGF0YSA9
ICcnOw0KCQkJDQoJCQl2YXIgZGF0YXMgPSAkKGZvcm0pLmdldEVsZW1lbnRzKCcu
JyArIHRoaXMuY2xhc3NOYW1lcy5maWVsZERhdGEpOw0KCQkJZm9yICh2YXIgaT0w
LCBsZW5ndGg9ZGF0YXMubGVuZ3RoOyBpPGxlbmd0aDsgaSsrKXsNCgkJCQl2YXIg
dHlwZSA9IGRhdGFzW2ldLmdldEF0dHJpYnV0ZSgndHlwZScpOw0KCQkJCXZhciBw
YXJhbSA9IGRhdGFzW2ldLmdldEF0dHJpYnV0ZSgnbmFtZScpOw0KCQkJCXZhciB2
YWx1ZSA9IGRhdGFzW2ldLnZhbHVlOw0KDQoJCQkJaWYodHlwZSA9PSAncmFkaW8n
ICYmICFkYXRhc1tpXS5jaGVja2VkKXsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0K
DQoJCQkJaWYodHlwZSA9PSAnY2hlY2tib3gnICYmICFkYXRhc1tpXS5jaGVja2Vk
KXsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KCQkJCWRhdGEgKz0gKGRhdGEhPScn
ID8gJyYnIDogJycpICsgcGFyYW0gKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQo
dmFsdWUpOw0KCQkJfQ0KCQkJcmV0dXJuIGRhdGE7DQoJfSwNCg0KCS8vINCh0LXR
gNC40LDQu9C40LfQsNGG0LjRjyDQv9C+0LvQtdC5INGE0L7RgNC80YsNCglyZWFs
U2VyaWFsaXplRm9ybTogZnVuY3Rpb24oZm9ybSl7DQoJCQl2YXIgZGF0YSA9ICcn
Ow0KCQkJDQoJCQl2YXIgZGF0YXMgPSBmb3JtLmVsZW1lbnRzOw0KCQkJZm9yICh2
YXIgaT0wLCBsZW5ndGg9ZGF0YXMubGVuZ3RoOyBpPGxlbmd0aDsgaSsrKXsNCgkJ
CQl2YXIgdHlwZSA9IGRhdGFzW2ldLmdldEF0dHJpYnV0ZSgndHlwZScpOw0KCQkJ
CXZhciBwYXJhbSA9IGRhdGFzW2ldLmdldEF0dHJpYnV0ZSgnbmFtZScpOw0KCQkJ
CXZhciB2YWx1ZSA9IGRhdGFzW2ldLnZhbHVlOw0KDQoJCQkJaWYodHlwZSA9PSAn
cmFkaW8nICYmICFkYXRhc1tpXS5jaGVja2VkKXsNCgkJCQkJY29udGludWU7DQoJ
CQkJfQ0KDQoJCQkJaWYodHlwZSA9PSAnY2hlY2tib3gnICYmICFkYXRhc1tpXS5j
aGVja2VkKXsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KCQkJCWRhdGEgKz0gKGRh
dGEhPScnID8gJyYnIDogJycpICsgcGFyYW0gKyAnPScgKyBlbmNvZGVVUklDb21w
b25lbnQodmFsdWUpOw0KCQkJfQ0KCQkJcmV0dXJuIGRhdGE7DQoJfSwNCg0KDQoJ
Ly8g0J7RgtC/0YDQsNCy0LrQsCDQstGB0LXRhSDQv9C+0LvQtdC5INGE0L7RgNC8
0Ysg0L3QsCDRgdC10YDQstC10YANCgkvLyBzdWJtaXRUeXBlIC0g0L3QtdC+0LHR
j9C30LDRgtC10LvRjNC90YvQuSDQv9Cw0YDQsNC80LXRgtGADQoJLy8gZkNoZWNr
Rm9ybUNvbXBsaXRpb24gLSDQvdC10L7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C5INC/
0LDRgNCw0LzQtdGC0YAgKNGB0LLQvtGPINGE0YPQvdC60YbQuNGPINC/0YDQvtCy
0LXRgNC60Lgg0YTQvtGA0LzRiyDQvdCwINC30LDQv9C+0LvQvdC10L3QvdC+0YHR
gtGMKQ0KCS8vCQlmQ2hlY2tGb3JtQ29tcGxpdGlvbiA9PSBmKCl7fSAo0L3QtSDQ
vdCw0LTQviDQv9GA0L7QstC10YDRj9GC0YwpDQoJLy8JCWZDaGVja0Zvcm1Db21w
bGl0aW9uID09IGZhbHNlINC40LvQuCBmQ2hlY2tGb3JtQ29tcGxpdGlvbiA9PSB1
bmRlZmluZWQgKNC90LDQtNC+INC/0YDQvtCy0LXRgNGP0YLRjCkNCglzZW5kRGF0
YTogZnVuY3Rpb24gKGZvcm0sIHN1Ym1pdFR5cGUsIGZDaGVja0Zvcm1Db21wbGl0
aW9uLCBjbGFzc2ljU2VyaWFsaXplKXsNCgkJCS8vINCf0YDQvtCy0LXRgNC60LAg
0L3QsCDQt9Cw0L/QvtC70L3QtdC90L3QvtGB0YLRjCDQstGB0LXRhSDQv9C+0LvQ
tdC5INC4INC90LAg0LjRhSDQstCw0LvQuNC00L3QvtGB0YLRjA0KCQkJaWYoIWZD
aGVja0Zvcm1Db21wbGl0aW9uICYmICF0aGlzLmNoZWNrRm9ybUNvbXBsaXRpb24o
Zm9ybSkpIHsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9IGVsc2UgaWYoZkNoZWNr
Rm9ybUNvbXBsaXRpb24gJiYgIWZDaGVja0Zvcm1Db21wbGl0aW9uKGZvcm0pKXsN
CgkJCQlhbGVydCgnZmFsc2UnKTsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoN
CgkJCS8vINCX0LDQtNCw0LXQvCDQutC70LDRgdGB0L3QtdC50LwsINC+0L/RgNC1
0LTQtdC70Y/RjtGJ0LjQuSwg0YfRgtC+INC40LzQtdC90L3QviDQs9GA0YPQt9C4
0YLRgdGPINCyINC00LDQvdC90YvQuSDQvNC+0LzQtdC90YINCgkJCXZhciBsb2Fk
aW5nQ2xhc3NOYW1lID0gKHN1Ym1pdFR5cGUgfHwgJ3NhdmUnKSArICctJyArIHRo
aXMuY2xhc3NOYW1lcy5pc0xvYWRpbmc7DQoNCgkJCS8vINCf0YDQvtCy0LXRgNC6
0LAg0YLQvtCz0L4sINGH0YLQviDRhNC+0YDQvNCwINC90LUg0L7QsdGA0LDQsdCw
0YLRi9Cy0LDQtdGCINGD0LbQtSDRgtC+0LPQviwg0YfRgtC+INC80Ysg0LfQsNC/
0YDQvtGB0LjQu9C4INCyINC00LDQvdC90YvQuSDQvNC+0LzQtdC90YINCgkJCWlm
KCQoZm9ybSkuaGFzQ2xhc3MobG9hZGluZ0NsYXNzTmFtZSkpew0KCQkJCXJldHVy
biBmYWxzZTsNCgkJCX0NCgkJCQ0KCQkJLy8g0LXRgdC70Lggc3VibWl0VHlwZSDQ
vdC1INC/0LXRgNC10LTQsNC9LCDRgtC+INC40YHQv9C+0LvRjNC30YPQtdC8IHRo
aXMuYWpheFVybHMuc2F2ZQ0KCQkJdmFyIHVybCA9IHRoaXMuYWpheFVybHNbc3Vi
bWl0VHlwZV0gfHwgdGhpcy5hamF4VXJscy5zYXZlOw0KCQkJDQoJCQlpZiAoIWNs
YXNzaWNTZXJpYWxpemUpIHsNCgkJCQl2YXIgZGF0YSA9IHRoaXMuc2VyaWFsaXpl
Rm9ybShmb3JtKTsNCgkJCX0gZWxzZSB7DQoJCQkJdmFyIGRhdGEgPSB0aGlzLmNs
YXNzaWNTZXJpYWxpemVGb3JtKGZvcm0pOw0KCQkJfQ0KDQoJCQl2YXIgcGFyYW1z
ID0gew0KCQkJCWZvcm06IGZvcm0sDQoJCQkJbG9hZGluZ0NsYXNzTmFtZTogbG9h
ZGluZ0NsYXNzTmFtZQ0KCQkJfTsNCg0KCQkJJChmb3JtKS5hZGRDbGFzcyhsb2Fk
aW5nQ2xhc3NOYW1lKTsNCgkJCQ0KCQkJYWpheFBvc3QoDQoJCQkJdXJsLA0KCQkJ
CWRhdGEsDQoJCQkJdGhpcy5zZW5kRGF0YU9ubG9hZCwNCgkJCQlwYXJhbXMsDQoJ
CQkJdGhpcyk7DQoJCQkNCgkJCXRoaXMuX2Zvcm0gPSAkKGZvcm0pOw0KCQkJcmV0
dXJuIGZhbHNlOw0KCX0sDQoNCg0KCS8vINCn0YLQtdC90LjQtSDQvtGC0LLQtdGC
0LAg0YHQtdGA0LLQtdGA0LAg0L3QsCDQv9C10YDQtdGB0YvQu9C60YMgINCy0YHQ
tdGFINC00LDQvdC90YvRhSDRhNC+0YDQvNGLINC4INC+0LHRgNCw0LHQvtGC0LrQ
sCDQstGL0LTQsNC90L3Ri9GFINC+0YjQuNCx0L7Qug0KCXNlbmREYXRhT25sb2Fk
OiBmdW5jdGlvbiAoYWpheE9iaiwgcGFyYW1zKXsNCg0KCQkJaWYgKHRoaXMuX2Zv
cm0pIHRoaXMuX2Zvcm0ucmVtb3ZlQ2xhc3MocGFyYW1zLmxvYWRpbmdDbGFzc05h
bWUpOw0KCQkJaWYoYWpheE9iaiAmJiBhamF4T2JqLnJlc3BvbnNlWE1MKXsNCgkJ
CQl2YXIgeG1sT2JqID0gYWpheE9iai5yZXNwb25zZVhNTDsNCgkJCQl2YXIgeG1s
Tm9kZXMgPSB0aGlzLnBhcnNlWE1MKHhtbE9iaik7DQoNCgkJCQlmb3IgKHByb3Ag
aW4geG1sTm9kZXMpew0KCQkJCQlpZih0aGlzW3RoaXMueG1sUmVzcG9uc2VbcHJv
cF0uaGFuZGxlcl0pIHsNCgkJCQkJCXRoaXNbdGhpcy54bWxSZXNwb25zZVtwcm9w
XS5oYW5kbGVyXSh4bWxOb2RlcywgcGFyYW1zKTsNCgkJCQkJfQ0KCQkJCX0NCgkJ
CX0NCgl9LA0KDQoJLy8g0J7QsdGA0LDQsdC+0YLRh9C40Log0L7RgtCy0LXRgtCw
INGB0LXRgNCy0LXRgNCwINC/0YDQuCDQv9C+0LvRg9GH0LXQvdC40Lgg0L7RiNC4
0LHQutC4DQoJeG1sUmVzcG9uc2VIYW5kbGVyX2Vycm9yOiBmdW5jdGlvbih4bWxO
b2RlcywgcGFyYW1zKXsNCgkJaWYoeG1sTm9kZXMuZXJyb3IgJiYgeG1sTm9kZXMu
ZXJyb3IubGVuZ3RoKSB7DQoJCQkkKHBhcmFtcy5mb3JtKS5yZW1vdmVDbGFzcyhw
YXJhbXMubG9hZGluZ0NsYXNzTmFtZSk7DQoNCgkJCWZvciAodmFyIGk9MDsgaTx4
bWxOb2Rlcy5lcnJvci5sZW5ndGg7IGkrKyl7DQoJCQkJdmFyIGZpZWxkTWFya2Vk
RXJyb3IgPSBwYXJhbXMuZm9ybVt4bWxOb2Rlcy5lcnJvcltpXS5nZXRBdHRyaWJ1
dGUoJ2ZpZWxkJyldOw0KCQkJCXZhciBlcnJvck1lc3NhZ2UgPSB4bWxOb2Rlcy5l
cnJvcltpXS5maXJzdENoaWxkID8geG1sTm9kZXMuZXJyb3JbaV0uZmlyc3RDaGls
ZC5kYXRhIDogdGhpcy5lcnJvck1lc3NhZ2VzLnVua25vd25FcnJvcjsNCg0KCQkJ
CWlmKCFmaWVsZE1hcmtlZEVycm9yKSB7DQoJCQkJCWZpZWxkTWFya2VkRXJyb3Ig
PSAkKHBhcmFtcy5mb3JtKS5nZXRFbGVtZW50KCcuJyArIHRoaXMuY2xhc3NOYW1l
cy51bmtub3duRXJyb3JNc2cpOw0KCQkJCX0gDQoJCQkJDQoJCQkJaWYgKGZpZWxk
TWFya2VkRXJyb3IpIHsNCgkJCQkJdGhpcy5tYXJrRmllbGRfZXJyb3IoZmllbGRN
YXJrZWRFcnJvciwgZXJyb3JNZXNzYWdlKTsNCgkJCQl9DQoJCQl9DQoNCgkJfQ0K
CX0sDQoNCgkvLyDQntCx0YDQsNCx0L7RgtGH0LjQuiDQvtGC0LLQtdGC0LAg0YHQ
tdGA0LLQtdGA0LAg0L/RgNC4INGA0LXQtNC40YDQtdC60YLQtQ0KCXhtbFJlc3Bv
bnNlSGFuZGxlcl9yZWRpcmVjdDogZnVuY3Rpb24oeG1sTm9kZXMsIHBhcmFtcyl7
DQoJCWlmKHhtbE5vZGVzLnJlZGlyZWN0ICYmIHhtbE5vZGVzLnJlZGlyZWN0Lmxl
bmd0aCkgew0KCQkJdGhpcy5jb21wbGV0ZUZvcm0oeG1sTm9kZXMucmVkaXJlY3Rb
MF0uZmlyc3RDaGlsZC5kYXRhKTsNCgkJfQ0KCX0sDQoNCg0KCS8vINCf0LXRgNC1
0YHRi9C70LrQsCDQv9C+0LvQtdC5INGE0L7RgNC80YsgKNC/0LXRgNCy0L7QtSDQ
v9C+0LvQtSDQvNCw0YHRgdC40LLQsCAtINGC0LXQutGD0YnQtdC1KQ0KCWNoZWNr
RGF0YTogZnVuY3Rpb24gKGZpZWxkcywgYWN0aW9uLCBzdWJtaXRUeXBlKXsNCgkJ
CQ0KCQkJLy8g0LXRgdC70Lggc3VibWl0VHlwZSDQvdC1INC/0LXRgNC10LTQsNC9
LCDRgtC+INC40YHQv9C+0LvRjNC30YPQtdC8IHRoaXMuYWpheFVybHMuc2F2ZQ0K
CQkJdmFyIHVybCA9IHRoaXMuYWpheFVybHNbc3VibWl0VHlwZV0gfHwgdGhpcy5h
amF4VXJscy5zYXZlOw0KDQoJCQl2YXIgZGF0YSA9ICIiOw0KCQkJdmFyIGZpZWxk
Ow0KCQkJDQoJCQlpZiAoZmllbGRzLmxlbmd0aCAmJiBmaWVsZHMubGVuZ3RoID4g
MSkgew0KCQkJCWZpZWxkID0gZmllbGRzWzBdOw0KCQkJCQ0KCQkJCWZvciAodmFy
IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7DQoJCQkJCXZhciB0eXBl
ID0gZmllbGRzW2ldLmdldEF0dHJpYnV0ZSgndHlwZScpOw0KCQkJCQl2YXIgcGFy
YW0gPSBmaWVsZHNbaV0uZ2V0QXR0cmlidXRlKCduYW1lJyk7DQoJCQkJCXZhciB2
YWx1ZTsNCg0KCQkJCQlpZih0eXBlID09ICdjaGVja2JveCcpew0KCQkJCQkJdmFs
dWUgPSBmaWVsZHNbaV0uY2hlY2tlZCA/IHRydWUgOiBmYWxzZTsNCgkJCQkJfSBl
bHNlIHsNCgkJCQkJCXZhbHVlID0gZmllbGRzW2ldLnZhbHVlOw0KCQkJCQl9DQoN
CgkJCQkJZGF0YSArPSAoaSE9MCA/ICcmJyA6ICcnKSArIHBhcmFtICsgJz0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTsNCgkJCQl9DQoJCQkJDQoJCQl9IGVs
c2Ugew0KCQkJCWZpZWxkID0gZmllbGRzLmxlbmd0aCA/IGZpZWxkc1swXSA6IGZp
ZWxkczsNCgkJCQl2YXIgcGFyYW0gPSBmaWVsZC5nZXRBdHRyaWJ1dGUoJ25hbWUn
KTsNCgkJCQl2YXIgdmFsdWUgPSBmaWVsZC52YWx1ZTsNCgkJCQlkYXRhID0gcGFy
YW0gKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpOw0KCQkJfQ0KCQkJ
DQoNCgkJCWRhdGEgKz0gIiZhY3Rpb249IiArIGFjdGlvbjsNCg0KCQkJdmFyIGZp
ZWxkUGFyZW50ID0gJChmaWVsZCkuZ2V0UGFyZW50KCcuJyArIHRoaXMuY2xhc3NO
YW1lcy5maWVsZEhvbGRlcik7DQoJCQlpZihmaWVsZFBhcmVudCkgJChmaWVsZFBh
cmVudCkuYWRkQ2xhc3ModGhpcy5jbGFzc05hbWVzLmlzTG9hZGluZyk7DQoJCQkN
CgkJCWFqYXhQb3N0KA0KCQkJCXVybCwNCgkJCQlkYXRhLA0KCQkJCXRoaXMuY2hl
Y2tEYXRhT25sb2FkLA0KCQkJCWZpZWxkLA0KCQkJCXRoaXMpOw0KCX0sDQoNCgkN
CgkvLyDQp9GC0LXQvdC40LUg0L7RgtCy0LXRgtCwINGB0LXRgNCy0LXRgNCwINC9
0LAg0L/QtdGA0LXRgdGL0LvQutGDINC60L7QvdC60YDQtdGC0L3QvtCz0L4g0L/Q
vtC70Y8g0YTQvtGA0LzRiyDQuCDQvtCx0YDQsNCx0L7RgtC60LAg0LLRi9C00LDQ
vdC90YvRhSDQvtGI0LjQsdC+0LoNCgljaGVja0RhdGFPbmxvYWQ6IGZ1bmN0aW9u
IChhamF4T2JqLCBmaWVsZCl7DQoJCQkNCgkJCXZhciBmaWVsZFBhcmVudCA9ICQo
ZmllbGQpLmdldFBhcmVudCgnLicgKyB0aGlzLmNsYXNzTmFtZXMuZmllbGRIb2xk
ZXIpOw0KCQkJaWYoZmllbGRQYXJlbnQpICQoZmllbGRQYXJlbnQpLnJlbW92ZUNs
YXNzKHRoaXMuY2xhc3NOYW1lcy5pc0xvYWRpbmcpOw0KDQoJCQlpZihhamF4T2Jq
ICYmIGFqYXhPYmoucmVzcG9uc2VYTUwpew0KCQkJCQ0KCQkJCXZhciB4bWxPYmog
PSBhamF4T2JqLnJlc3BvbnNlWE1MOw0KCQkJCXZhciB4bWxOb2RlcyA9IHRoaXMu
cGFyc2VYTUwoeG1sT2JqKTsNCgkJCQkNCgkJCQlpZih4bWxOb2Rlcy5lcnJvciAm
JiB4bWxOb2Rlcy5lcnJvci5sZW5ndGgpIHsNCgkJCQkJZm9yICh2YXIgaT0wOyBp
PHhtbE5vZGVzLmVycm9yLmxlbmd0aDsgaSsrKXsNCgkJCQkJCXZhciBmaWVsZE1h
cmtlZEVycm9yID0gZmllbGQ7DQoJCQkJCQl2YXIgZXJyb3JNZXNzYWdlID0geG1s
Tm9kZXMuZXJyb3JbaV0uZmlyc3RDaGlsZC5kYXRhOw0KCQkJCQkJdGhpcy5tYXJr
RmllbGRfZXJyb3IoZmllbGRNYXJrZWRFcnJvciwgZXJyb3JNZXNzYWdlKTsNCgkJ
CQkJfQ0KDQoJCQkJfSBlbHNlIGlmKHhtbE5vZGVzLnJlZGlyZWN0ICYmIHhtbE5v
ZGVzLnJlZGlyZWN0Lmxlbmd0aCkgew0KCQkJCQl0aGlzLmNvbXBsZXRlRm9ybSh4
bWxOb2Rlcy5yZWRpcmVjdFswXS5maXJzdENoaWxkLmRhdGEpOw0KDQoJCQkJfSBl
bHNlIHsNCgkJCQkJdGhpcy5tYXJrRmllbGRfY2hlY2tlZChmaWVsZCk7DQoJCQkJ
fQ0KDQoJCQl9DQoJfSwNCg0KDQoNCg0KCS8vINCe0YfQuNGJ0LDQtdC8INC/0L7Q
u9C1INC+0YIg0LvRjtCx0YvRhSDQvtGC0LzQtdGC0L7Qug0KCW1hcmtGaWVsZF9j
bGVhcjogZnVuY3Rpb24oZmllbGQpew0KCQkJdmFyIGZpZWxkSG9sZGVyID0gJChm
aWVsZCkuZ2V0UGFyZW50KCcuJyArIHRoaXMuY2xhc3NOYW1lcy5maWVsZEhvbGRl
cik7DQoJCQlpZihmaWVsZEhvbGRlcil7DQoJCQkJJChmaWVsZEhvbGRlcikucmVt
b3ZlQ2xhc3ModGhpcy5jbGFzc05hbWVzLmZpZWxkTWFya2VkRXJyb3IpOw0KCQkJ
CSQoZmllbGRIb2xkZXIpLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3NOYW1lcy5maWVs
ZE1hcmtlZENoZWNrZWQpOw0KCQkJfQ0KCX0sDQoNCg0KCS8vINCe0YLQvNC10YfQ
sNC10Lwg0L/QvtC70LUg0LrQsNC6INC/0YDQvtGI0LXQtNGI0LXQtSDQv9GA0L7Q
stC10YDQutGDDQoJbWFya0ZpZWxkX2NoZWNrZWQ6IGZ1bmN0aW9uKGZpZWxkKXsN
CgkJCXZhciBmaWVsZEhvbGRlciA9ICQoZmllbGQpLmdldFBhcmVudCgnLicgKyB0
aGlzLmNsYXNzTmFtZXMuZmllbGRIb2xkZXIpOw0KCQkJaWYoZmllbGRIb2xkZXIp
ew0KCQkJCSQoZmllbGRIb2xkZXIpLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3NOYW1l
cy5maWVsZE1hcmtlZEVycm9yKTsNCgkJCQkkKGZpZWxkSG9sZGVyKS5hZGRDbGFz
cyh0aGlzLmNsYXNzTmFtZXMuZmllbGRNYXJrZWRDaGVja2VkKTsNCgkJCX0NCgl9
LA0KDQoNCgkvLyDQntGC0LzQtdGH0LDQtdC8INC/0L7Qu9C1INC60LDQuiDQvtGI
0LjQsdC+0YfQvdC+0LUg0Lgg0LLRi9Cy0L7QtNC40Lwg0YHQvtC+0LHRidC10L3Q
uNC1INC+0LEg0L7RiNC40LHQutC1DQoJbWFya0ZpZWxkX2Vycm9yOiBmdW5jdGlv
bihmaWVsZCwgZXJyb3JNZXNzYWdlKSB7DQoJCQl2YXIgZmllbGRIb2xkZXIgPSAk
KGZpZWxkKS5nZXRQYXJlbnQoJy4nICsgdGhpcy5jbGFzc05hbWVzLmZpZWxkSG9s
ZGVyKTsNCgkJCWlmKGZpZWxkSG9sZGVyKXsNCgkJCQkkKGZpZWxkSG9sZGVyKS5y
ZW1vdmVDbGFzcyh0aGlzLmNsYXNzTmFtZXMuZmllbGRNYXJrZWRDaGVja2VkKTsN
CgkJCQkkKGZpZWxkSG9sZGVyKS5hZGRDbGFzcyh0aGlzLmNsYXNzTmFtZXMuZmll
bGRNYXJrZWRFcnJvcik7DQoNCgkJCQl2YXIgZXJyb3JNc2dCb3ggPSB0aGlzLmdl
dEVycm9yTXNnQm94QnlGaWVsZChmaWVsZCk7DQoJCQkJaWYoZXJyb3JNc2dCb3gp
ew0KCQkJCQllcnJvck1zZ0JveC5pbm5lckhUTUwgPSBlcnJvck1lc3NhZ2U7DQoJ
CQkJfQ0KCQkJfQ0KCQkJDQoJfSwNCg0KDQoJLy8J0J/RgNC+0LLQtdGA0LrQsCDQ
v9C+0LvRjyDQvdCwINC/0YPRgdGC0L7RgtGDDQoJY2hlY2tGaWVsZF9lbXB0eTog
ZnVuY3Rpb24oZSwgZmllbGQpew0KDQoJCQlpZihlID09IG51bGwgJiYgZmllbGQu
dmFsdWUgIT0gJycpIHsNCgkJCQl0aGlzLm1hcmtGaWVsZF9jbGVhcihmaWVsZCk7
DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQlpZighZSkgZSA9IHdpbmRvdy5ldmVu
dDsNCgkJCQ0KCQkJc3dpdGNoKGUudHlwZSl7DQoJCQkJY2FzZSAnYmx1cic6DQoJ
CQkJCWlmKGZpZWxkLnZhbHVlLmxlbmd0aCAhPSAwKXsNCgkJCQkJCXRoaXMubWFy
a0ZpZWxkX2NsZWFyKGZpZWxkKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCg0KCQkJ
CWNhc2UgJ2tleXVwJzoNCgkJCQkJdGhpcy5tYXJrRmllbGRfY2xlYXIoZmllbGQp
Ow0KCQkJCQlicmVhazsNCg0KCQkJCWNhc2UgJ2NoYW5nZSc6DQoJCQkJCWlmKGZp
ZWxkLnZhbHVlICE9ICcnKXsNCgkJCQkJCXRoaXMubWFya0ZpZWxkX2NsZWFyKGZp
ZWxkKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCX0NCgl9DQoNCn0pOwoKCgov
KiAgIHBvbGxGb3JtICAgKi8KdmFyIHBvbGxGb3JtQ2xhc3MgPSBmdW5jdGlvbigp
ew0KCXBvbGxGb3JtQ2xhc3Muc3VwZXJDbGFzcy5hcHBseSh0aGlzLCBhcmd1bWVu
dHMpOw0KDQoJdGhpcy5hamF4VXJscyA9IHsNCgkJc2F2ZTogIi9hamF4L3BvbGwv
Ig0KCX07DQoJDQoJT2JqZWN0LmV4dGVuZE9iamVjdCgNCgkJdGhpcy54bWxSZXNw
b25zZSwgew0KCQkNCgkJdHdpdHRlciA6IHsNCgkJCW5vZGU6ICd0d2l0dGVyJywN
CgkJCWhhbmRsZXI6ICd4bWxSZXNwb25zZUhhbmRsZXJfdHdpdHRlcicNCgkJfSwN
CgkJDQoJCXJlZ2lvbiA6IHsNCgkJCW5vZGU6ICdyZWdpb24nLA0KCQkJaGFuZGxl
cjogJ3htbFJlc3BvbnNlSGFuZGxlcl9yZWdpb24nDQoJCX0sDQoJCQ0KCQljaXR5
IDogew0KCQkJbm9kZTogJ2NpdHknLA0KCQkJaGFuZGxlcjogJ3htbFJlc3BvbnNl
SGFuZGxlcl9jaXR5Jw0KCQl9LA0KCQkNCgkJdGV4dCA6IHsNCgkJCW5vZGU6ICd0
ZXh0JywNCgkJCWhhbmRsZXI6ICd4bWxSZXNwb25zZUhhbmRsZXJfdGV4dCcNCgkJ
fSwNCgkJDQoJCWh0bWwgOiB7DQoJCQlub2RlOiAnaHRtbCcsDQoJCQloYW5kbGVy
OiAneG1sUmVzcG9uc2VIYW5kbGVyX2h0bWwnDQoJCX0NCgl9KTsNCg0KfTsNCg0K
cG9sbEZvcm1DbGFzcy5pbmhlcml0c0Zyb20oYWpheEZvcm1DbGFzcyk7DQoNCk9i
amVjdC5leHRlbmRPYmplY3QoDQoJcG9sbEZvcm1DbGFzcy5wcm90b3R5cGUsIHsN
CgkNCglzZW5kRGF0YTogZnVuY3Rpb24gKGZvcm0sIHN1Ym1pdFR5cGUsIHBvc3Rf
aWQpew0KCQkvLyDQl9Cw0LTQsNC10Lwg0LrQu9Cw0YHRgdC90LXQudC8LCDQvtC/
0YDQtdC00LXQu9GP0Y7RidC40LksINGH0YLQviDQuNC80LXQvdC90L4g0LPRgNGD
0LfQuNGC0YHRjyDQsiDQtNCw0L3QvdGL0Lkg0LzQvtC80LXQvdGCDQoJCXZhciBs
b2FkaW5nQ2xhc3NOYW1lID0gKHN1Ym1pdFR5cGUgfHwgJ3NhdmUnKSArICctJyAr
IHRoaXMuY2xhc3NOYW1lcy5pc0xvYWRpbmc7DQoNCgkJLy8g0J/RgNC+0LLQtdGA
0LrQsCDRgtC+0LPQviwg0YfRgtC+INGE0L7RgNC80LAg0L3QtSDQvtCx0YDQsNCx
0LDRgtGL0LLQsNC10YIg0YPQttC1INGC0L7Qs9C+LCDRh9GC0L4g0LzRiyDQt9Cw
0L/RgNC+0YHQuNC70Lgg0LIg0LTQsNC90L3Ri9C5INC80L7QvNC10L3Rgg0KCQlp
ZigkKGZvcm0pLmhhc0NsYXNzKGxvYWRpbmdDbGFzc05hbWUpKXsNCgkJCXJldHVy
biBmYWxzZTsNCgkJfQ0KCQlpZiAoc3VibWl0VHlwZSA9PSAncG9sbCcpIHsNCgkJ
CXZhciBkYXRhID0gJ2FjdGlvbj12b3RlJzsNCgkJfSBlbHNlIGlmIChzdWJtaXRU
eXBlID09ICdjYW5jZWwnKSB7DQoJCQl2YXIgZGF0YSA9ICdhY3Rpb249cGFzcyc7
DQoJCX0NCgkJZGF0YSArPSAnJnBvc3RfaWQ9JyArIHBvc3RfaWQgKyAnJic7DQoJ
CWRhdGEgKz0gdGhpcy5jbGFzc2ljU2VyaWFsaXplRm9ybShmb3JtKTsNCgkJDQoJ
CQ0KCQkvLyDQtdGB0LvQuCBzdWJtaXRUeXBlINC90LUg0L/QtdGA0LXQtNCw0L0s
INGC0L4g0LjRgdC/0L7Qu9GM0LfRg9C10LwgdGhpcy5hamF4VXJscy5zYXZlDQoJ
CXZhciB1cmwgPSB0aGlzLmFqYXhVcmxzW3N1Ym1pdFR5cGVdIHx8IHRoaXMuYWph
eFVybHMuc2F2ZTsNCgkJDQoJCQ0KCQl2YXIgcGFyYW1zID0gew0KCQkJZm9ybTog
Zm9ybSwNCgkJCWxvYWRpbmdDbGFzc05hbWU6IGxvYWRpbmdDbGFzc05hbWUNCgkJ
fTsNCg0KCQkkKGZvcm0pLmFkZENsYXNzKGxvYWRpbmdDbGFzc05hbWUpOw0KCQkN
CgkJYWpheFBvc3QoDQoJCQl1cmwsDQoJCQlkYXRhLA0KCQkJdGhpcy5zZW5kRGF0
YU9ubG9hZCwNCgkJCXBhcmFtcywNCgkJCXRoaXMpOw0KCQkNCgkJcmV0dXJuIGZh
bHNlOw0KCX0sDQoJeG1sUmVzcG9uc2VIYW5kbGVyX2h0bWw6IGZ1bmN0aW9uKHht
bE5vZGVzLCBwYXJhbXMpew0KCQlpZih4bWxOb2Rlcy5odG1sICYmIHhtbE5vZGVz
Lmh0bWwubGVuZ3RoKSB7DQoJCQlwYXJhbXMuZm9ybS5wYXJlbnROb2RlLmlubmVy
SFRNTCA9IHhtbE5vZGVzLmh0bWxbMF0uZmlyc3RDaGlsZC5kYXRhOw0KCQl9DQoJ
fSwNCgkvLyDQntCx0YDQsNCx0L7RgtGH0LjQuiDQvtGC0LLQtdGC0LAg0YHQtdGA
0LLQtdGA0LAg0L/RgNC4INC/0L7Qu9GD0YfQtdC90LjQuCDQvtGI0LjQsdC60LgN
Cgl4bWxSZXNwb25zZUhhbmRsZXJfZXJyb3I6IGZ1bmN0aW9uKHhtbE5vZGVzLCBw
YXJhbXMpew0KCQlpZih4bWxOb2Rlcy5lcnJvciAmJiB4bWxOb2Rlcy5lcnJvci5s
ZW5ndGgpIHsNCgkJCSQocGFyYW1zLmZvcm0pLnJlbW92ZUNsYXNzKHBhcmFtcy5s
b2FkaW5nQ2xhc3NOYW1lKTsNCg0KCQkJZm9yICh2YXIgaT0wOyBpPHhtbE5vZGVz
LmVycm9yLmxlbmd0aDsgaSsrKXsNCgkJCQl2YXIgZmllbGRNYXJrZWRFcnJvciA9
IHBhcmFtcy5mb3JtW3htbE5vZGVzLmVycm9yW2ldLmdldEF0dHJpYnV0ZSgnZmll
bGQnKV07DQoJCQkJaWYgKGZpZWxkTWFya2VkRXJyb3IpIHsNCgkJCQkJdmFyIGVy
cm9yTWVzc2FnZSA9IHhtbE5vZGVzLmVycm9yW2ldLmZpcnN0Q2hpbGQgPyB4bWxO
b2Rlcy5lcnJvcltpXS5maXJzdENoaWxkLmRhdGEgOiB0aGlzLmVycm9yTWVzc2Fn
ZXMudW5rbm93bkVycm9yOw0KDQoJCQkJCWlmKCFmaWVsZE1hcmtlZEVycm9yKQ0K
CQkJCQkJZmllbGRNYXJrZWRFcnJvciA9ICQocGFyYW1zLmZvcm0pLmdldEVsZW1l
bnQoJy4nICsgdGhpcy5jbGFzc05hbWVzLnVua25vd25FcnJvck1zZyk7DQoNCgkJ
CQkJdGhpcy5tYXJrRmllbGRfZXJyb3IoZmllbGRNYXJrZWRFcnJvciwgZXJyb3JN
ZXNzYWdlKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQl2YXIgZXJyb3JNZXNzYWdlID0g
eG1sTm9kZXMuZXJyb3JbaV0uZmlyc3RDaGlsZCA/IHhtbE5vZGVzLmVycm9yW2ld
LmZpcnN0Q2hpbGQuZGF0YSA6IHRoaXMuZXJyb3JNZXNzYWdlcy51bmtub3duRXJy
b3I7DQoJCQkJCWZ1dHVfYWxlcnQoRkFULnBvbGxfaGVhZGVyLCBlcnJvck1lc3Nh
Z2UsIGZhbHNlLCAnZXJyb3InKTsNCgkJCQl9DQoJCQl9DQoNCgkJfQ0KCX0NCn0p
Ow0KDQoNCnZhciBwb2xsRm9ybSA9IG5ldyBwb2xsRm9ybUNsYXNzKCk7CgoKCi8q
ICAgYmxvZ3MgICAqLwpibG9nc0hhbmRsZXIgPSB7DQoNCgl1cmxfbGVhdmVfam9p
bjogJy9hamF4L2Jsb2dzL21lbWJlcnNoaXAvJywNCgl1cmxfZ2V0X2luZm86ICcv
YWpheC9ibG9ncy9nZXRpbmZvLycsDQoJDQoJeG1sOiB7DQoJCXJlc3BvbnNlTm9k
ZXM6IHsNCgkJCWVycm9yIDogJ2Vycm9yJywNCgkJCW1lbWJlcnNfY291bnRfc3Ry
IDogJ21lbWJlcnNfY291bnRfc3RyJywNCgkJCXJlc3VsdCA6ICdtZXNzYWdlJywN
CgkJCXBhcmFtIDogJ3BhcmFtJywNCgkJCWRpdmNvbnRlbnQgOiAnZGl2Y29udGVu
dCcNCgkJfSwNCg0KCQlwYXJzZTogZnVuY3Rpb24oeG1sT2JqKXsNCgkJCXZhciB4
bWxOb2RlcyA9IHt9Ow0KCQkJZm9yIChwcm9wIGluIGJsb2dzSGFuZGxlci54bWwu
cmVzcG9uc2VOb2Rlcykgew0KCQkJCXhtbE5vZGVzW3Byb3BdID0geG1sT2JqLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKGJsb2dzSGFuZGxlci54bWwucmVzcG9uc2VOb2Rl
c1twcm9wXSk7DQoJCQl9DQoJCQlyZXR1cm4geG1sTm9kZXM7DQoJCX0NCgl9LA0K
CQ0KCWpvaW5MZWF2ZUJsb2cgOiBmdW5jdGlvbihhY3Rpb24sIHRhcmdldF9pZCkg
ew0KCQl2YXIgZGF0YSA9ICdhY3Rpb249JysgYWN0aW9uICsnJmJsb2dfaWQ9JyAr
IHRhcmdldF9pZDsNCgkJYWpheExvYWRQb3N0KGJsb2dzSGFuZGxlci51cmxfbGVh
dmVfam9pbiArIGFjdGlvbiArICcvJywgZGF0YSwgYmxvZ3NIYW5kbGVyLmpvaW5M
ZWF2ZUJsb2dPbmxvYWQpOw0KCX0sDQoJDQoJDQoJam9pbkxlYXZlQmxvZ09ubG9h
ZCA6IGZ1bmN0aW9uKGFqYXhPYmopIHsNCgkJaWYoYWpheE9iaiAmJiBhamF4T2Jq
LnJlc3BvbnNlWE1MKXsNCgkJCXZhciB4bWxPYmogPSBhamF4T2JqLnJlc3BvbnNl
WE1MOw0KCQkJdmFyIHhtbE5vZGVzID0gYmxvZ3NIYW5kbGVyLnhtbC5wYXJzZSh4
bWxPYmopOw0KCQkJaWYoeG1sTm9kZXMuZXJyb3IgJiYgeG1sTm9kZXMuZXJyb3Iu
bGVuZ3RoKXsNCgkJCQl2YXIgZXJyb3JzX2xlbmd0aCA9IHhtbE5vZGVzLmVycm9y
Lmxlbmd0aDsNCgkJCQlmb3IgKHZhciBpID0gMDsgaSA8IGVycm9yc19sZW5ndGg7
IGkrKykgew0KCQkJCQlmdXR1X2FsZXJ0KEZBVC5ibG9ncy5oZWFkZXIsIHhtbE5v
ZGVzLmVycm9yW2ldLmZpcnN0Q2hpbGQuZGF0YSwgdHJ1ZSwgJ2Vycm9yJyk7DQoJ
CQkJfQ0KCQkJfQ0KCQkJaWYoeG1sTm9kZXMucmVzdWx0ICYmIHhtbE5vZGVzLnJl
c3VsdC5sZW5ndGgpIHsNCgkJCQlpZih4bWxOb2Rlcy5wYXJhbSAmJiB4bWxOb2Rl
cy5wYXJhbS5sZW5ndGgpIHsNCgkJCQkJaWYgKHhtbE5vZGVzLnBhcmFtWzBdLmZp
cnN0Q2hpbGQuZGF0YSA9PSAnbGVhdmUnKSB7DQoJCQkJCQkkKCdqcy1hZGRCbG9n
TWVtYmVyJykucmVtb3ZlQ2xh