eval %q{IyBOYW1lOiAgICAgICAgICAgbGluZTJjeWwKIyBBdXRob3IgOiAgICAgICAg
RGlkaWVyIEJ1cgojIERlc2NyaXB0aW9uOiAgICBDcmVhdGUgY3lsaW5kZXJz
IHdpdGggc2VsZWN0ZWQgZWRnZXMgCiMgVXNhZ2U6ICAgICAgICAgIHNlbGVj
dCBsaW5lcywgZW50ZXIgZGlhbWV0ZXIgYW5kIHByZWNpc2lvbgojICAgICAg
ICAgICAgICAgICAgCiMgVHlwZTogICAgICAgICAgIFRvb2wKIyBEYXRlOiAg
ICAgICAgICAgMjAwNSwxMywwMQojIFJldmlzZWQ6ICAgICAgICAyMDA1LDE3
LDAxOiBhZGQgdGhlIGFyY3MgYW5kIGNpcmNsZXMgZm9sbG93bWUncwoKcmVx
dWlyZSAnc2tldGNodXAucmInCgoKCmNsYXNzIFByb2dyZXNzQmFyIAoKQEBl
cnJfdG90YWxfbm90bnVtZXJpYyA9ICJQcm9ncmVzc0JhcjogVG90YWwgbXVz
dCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIgpAQGVycl9jb3VudF9ub3RudW1l
cmljID0gIlByb2dyZXNzQmFyOiBJdGVyYXRpb24gQ291bnQgbXVzdCBiZSBu
dW1lcmljIgpAQGVuZF90aW1lICAgICAgICAgICAgID0gIkVuZCBAICIgCkBA
cHJvZ3Jlc3NjaGFyID0gIj4iIDsgCkBAaW5pdGlhbF9ibG9jayA9ICItIiAq
IDUwICAgICAjIERlZmF1bHQgcHJvZ3Jlc3MgYmFyIGxpbmUgc2VxdWVuY2Uu
CgpkZWYgaW5pdGlhbGl6ZSh0b3RhbCxwaGFzZT1uaWwpICAKICBpZiAoIXRv
dGFsLmludGVnZXI/IG9yIHRvdGFsIDwgMCkKICAgIHJhaXNlKEFyZ3VtZW50
RXJyb3IsQEBlcnJfdG90YWxfbm90bnVtZXJpYykgCiAgICByZXR1cm4gOyAK
ICAgIGVuZCA7IAogIEB0b3RhbCA9IHRvdGFsLnRvX2kgOyAKICBAcGhhc2Ug
PSBwaGFzZSA7IAogIEBmaXJzdHRpbWUgPSB0cnVlIDsgCiAgZW5kIDsgCgpk
ZWYgdXBkYXRlKGl0ZXJhdGlvbikgCiAgaWYgIWl0ZXJhdGlvbi5pbnRlZ2Vy
PyAKICAgIHJhaXNlKEFyZ3VtZW50RXJyb3IsQEBlcnJfY291bnRfbm90bnVt
ZXJpYykgIAogICAgcmV0dXJuIDsgCiAgICBlbmQgOyAKICBpdGVyYXRpb24g
PSBbaXRlcmF0aW9uLmFicyxAdG90YWxdLm1pbiAgIyBtYWtlIHN1cmUgd2Ug
ZG9uJ3QgZXhjZWVkIHRoZSB0b3RhbCBjb3VudCBvciBoYXZlIGEgdmFsdWUg
PCAwCiAgcGN0ID0gWzEsKGl0ZXJhdGlvbioxMDApL0B0b3RhbF0ubWF4ICAg
ICMgQ2FsY3VsYXRlIHBlcmNlbnRhZ2UgY29tcGxldGUuCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcm91bmQgdXAgdG8g
MSUgaWYgYW55dGhpbmcgbGVzcyB0aGFuIDElLgogIGVuZF90aW1lID0gIj8i
IDsgCiAgaWYgQGZpcnN0dGltZSB0aGVuIDsgCiAgICAjIEdldCB0aGUgY3Vy
cmVudCB0aW1lIG9mIGRheS4gCiAgICAjIHNldCB1cCBhbiBlbGFwc2VkIHRp
bWVyIHNvIHdlIGNhbiBjYWxjdWxhdGUgZXhwZWN0ZWQgZW5kIHRpbWUuICAK
ICAgIEB0aW1lMSA9IFRpbWUubm93IDsgICAgICMgR2V0IGN1cnJlbnQgdGlt
ZSBvZiBkYXkuIAogICAgQGZpcnN0dGltZSA9IGZhbHNlIDsgICAgIyB0dXJu
IG9mZiBzd2l0Y2ggCiAgZWxzZSAKICAgICMgZGl2aWRlIHRoZSBlbGFwc2Vk
IHRpbWUgYnkgdGhlIHBjdCBjb21wbGV0ZSwgdGhlbiBtdWx0aXBsZSB0aGF0
IGJ5IDEwMCwgdGhlbiBhZGQgdGhhdCB0byB0aGUgCiAgICAjIHN0YXJ0IHRp
bWUsIGFuZCB0aGF0IGlzIHRoZSBleHBlY3RlZCBlbmQgdGltZS4gIAogICAg
ZW5kX3RpbWUgPSBUaW1lLmF0KCgoKChUaW1lLm5vdy1AdGltZTEpLnRvX2Yp
L3BjdCkqMTAwICsgQHRpbWUxLnRvX2YpLnRvX2kpLnN0cmZ0aW1lKCIlSDol
TTolUyIpIAogICAgZW5kIDsgCiAgcGN0X3BvcyA9IFtwY3QvMiwxXS5tYXgg
OwogIGN1cnJlbnRfYmxvY2sgPSBAQGluaXRpYWxfYmxvY2tbMCxwY3RfcG9z
LTFdIDw8IEBAcHJvZ3Jlc3NjaGFyIDw8IEBAaW5pdGlhbF9ibG9ja1twY3Rf
cG9zLEBAaW5pdGlhbF9ibG9jay5sZW5ndGhdCiAgI1NrZXRjaHVwLnNldF9z
dGF0dXNfdGV4dChjdXJyZW50X2Jsb2NrIDw8ICIgICAiIDw8IChwY3QudG9f
cykgPDwgIiUuICN7QEBlbmRfdGltZX0gIiA8PCBlbmRfdGltZSA8PCAiICN7
QHBoYXNlfSIpCiAgU2tldGNodXAuc2V0X3N0YXR1c190ZXh0KGN1cnJlbnRf
YmxvY2sgPDwgIiAgICIgPDwgKHBjdC50b19zKSA8PCAiJSAje0BwaGFzZX0i
KQogIGVuZCA7IAoKZW5kIDsgIyBjbGFzcyBQcm9ncmVzc0JhciA7CgpkZWYg
bGluZTJjeWwKbW9kZWwgPSBTa2V0Y2h1cC5hY3RpdmVfbW9kZWwKbV9lbnRz
ID0gbW9kZWwuYWN0aXZlX2VudGl0aWVzCm1hdGVyaWFscz1tb2RlbC5tYXRl
cmlhbHMKc3MgPSBtb2RlbC5zZWxlY3Rpb24KaWdub3JlZCA9IDAKc3NfZWRn
ZXM9W10Kc3NfYWxvbmUgPSBbXQpzc19jdXJ2ZXMgPSBbXQpzc19jb25uZWN0
ZWQgPSBbXQp0cnVuaz1bXQokbDJjX2RpYW09MTAuY20gaWYgbm90ICRsMmNf
ZGlhbQokbDJjX3NlZ3M9MTAgaWYgbm90ICRsMmNfc2VncwokbDJjX29wdD0i
WWVzIiBpZiBub3QgJGwyY19vcHQKJGwyY19tYXQ9IkRlZmF1bHQiIGlmIG5v
dCAkbDJjX21hdAokbDJjX2dycDE9IlllcyIgaWYgbm90ICRsMmNfZ3JwMQok
bDJjX2dycDI9Ik5vIiBpZiBub3QgJGwyY19ncnAyCgpTa2V0Y2h1cC5zZXRf
c3RhdHVzX3RleHQoIiIpCgptb2RlbC5zdGFydF9vcGVyYXRpb24gIkxpbmVz
IC0+IEN5bGluZGVycyIKIyBTZWxlY3Rpb24gZXJyb3IgY2hlY2tpbmcKaWYg
c3MuZW1wdHk/IAogIFVJLm1lc3NhZ2Vib3goIk5vIHNlbGVjdGlvbi4iKQog
IHJldHVybiBuaWwKZW5kCiMgRGlhbG9nCmxpc3QyPW1hdGVyaWFscy5jb2xs
ZWN0IHsgfG18IG0ubmFtZSB9CmlmIGxpc3QyLmxlbmd0aD09MAogIGxpc3Qy
PVsiRGVmYXVsdCJdCmVuZApkcm9wcz1bWyJZZXMiLCJObyJdLmpvaW4oInwi
KSxbIlllcyIsIk5vIl0uam9pbigifCIpLFsiWWVzIiwiTm8iXS5qb2luKCJ8
IiksbGlzdDIuam9pbigifCIpXQpwcm9tcHRzID0gWyJGb2xsb3cgbWUgb24g
Y3VydmVzOiAiLCJDcmVhdGUgZ3JvdXA6ICIsIkVhY2ggdHViZSBpcyBhIGdy
b3VwOiAiLCJNYXRlcmlhbDogIiwiRGlhbWV0ZXI6ICIsICJQcmVjaXNpb246
ICAiXQp2YWx1ZXMgPSBbJGwyY19vcHQsJGwyY19ncnAxLCRsMmNfZ3JwMiwk
bDJjX21hdCwkbDJjX2RpYW0sJGwyY19zZWdzXQpyZXN1bHRzID0gaW5wdXRi
b3ggcHJvbXB0cywgdmFsdWVzLGRyb3BzLCAiUGFyYW1ldGVycyIKcmV0dXJu
IGlmIG5vdCByZXN1bHRzCgokbDJjX29wdCA9IHJlc3VsdHNbMF0KJGwyY19n
cnAxID0gcmVzdWx0c1sxXQokbDJjX2dycDIgPSByZXN1bHRzWzJdCiRsMmNf
bWF0ID0gcmVzdWx0c1szXQokbDJjX2RpYW0gPSByZXN1bHRzWzRdCiRsMmNf
c2VncyA9IHJlc3VsdHNbNV0KCiMgQ3JlYXRlIGdyb3VwIGlmIG5lZWRlZApp
ZiAkbDJjX2dycDE9PSJZZXMiCiAgZ3JwPW1fZW50cy5hZGRfZ3JvdXAKICBl
bnRzPWdycC5lbnRpdGllcwogIGVsc2UKICBlbnRzPW1fZW50cwplbmQKIyBE
aXNwYXRjaCBzZWxlY3Rpb24KQHBiID0gUHJvZ3Jlc3NCYXIubmV3KHNzLmxl
bmd0aCwiUGFyc2luZyBzZWxlY3Rpb24uLi4iKQpwYmNvdW50PTAKI1NrZXRj
aHVwLnNldF9zdGF0dXNfdGV4dCgiUGFyc2luZyBzZWxlY3Rpb24uLi4iKQpz
cy5lYWNoIGRvIHx4fAogIHNzX2VkZ2VzLnB1c2goeCkgaWYgeC50eXBlbmFt
ZT09IkVkZ2UiCiAgcGJjb3VudCs9MQogIEBwYi51cGRhdGUocGJjb3VudCkK
ZW5kCmlnbm9yZWQ9c3MubGVuZ3RoLXNzX2VkZ2VzLmxlbmd0aAoKaWYgJGwy
Y19vcHQ9PSJZZXMiCiNTa2V0Y2h1cC5zZXRfc3RhdHVzX3RleHQoIkRpc3Bh
dGNoaW5nIGVkZ2VzLi4uIikKcGJjb3VudD0wCkBwYiA9IFByb2dyZXNzQmFy
Lm5ldyhzc19lZGdlcy5sZW5ndGgsIkRpc3BhdGNoaW5nIGVkZ2VzLi4uIikK
c3NfZWRnZXMuZWFjaCBkbyB8ZXwKICBpZiBlLmN1cnZlCiAgICBzc19jdXJ2
ZXMucHVzaChlLmN1cnZlKQogIGVsc2UKICAgIHNzX2Fsb25lLnB1c2goZSkK
ICBlbmQKICAgICNpZiBlLmFsbF9jb25uZWN0ZWQubGVuZ3RoPjEgYW5kIG5v
dCBlLmN1cnZlCiAgICAgICNzc19jb25uZWN0ZWQucHVzaChlLmFsbF9jb25u
ZWN0ZWQpCiAgICAjZW5kCiAgICAjaWYgZS5hbGxfY29ubmVjdGVkLmxlbmd0
aD09MQogICAgICAjc3NfYWxvbmUucHVzaChlKQogICAgI2VuZAogIHBiY291
bnQrPTEKICBAcGIudXBkYXRlKHBiY291bnQpCmVuZApzc19jdXJ2ZXMudW5p
cSEKI3NzX2Nvbm5lY3RlZC51bmlxIQpzc19hbG9uZS51bmlxIQoKI1NrZXRj
aHVwLnNldF9zdGF0dXNfdGV4dCgiR2VuZXJhdGluZyBjeWxpbmRlcnMuLi4i
KQpwYmNvdW50PTAKQHBiID0gUHJvZ3Jlc3NCYXIubmV3KChzc19jdXJ2ZXMu
bGVuZ3RoK3NzX2Fsb25lLmxlbmd0aCksIkdlbmVyYXRpbmcgdHViZXMuLi4i
KQojIFB1c2hwdWxsIHRoZSBzdGFuZGFsb25lIGVkZ2VzIGluIHRoZWlyIG93
biBncm91cApzc19hbG9uZS5lYWNoIGRvIHxlfAogIHZlYyA9IGUubGluZVsx
XQogIHR1YmVfZ3JvdXA9ZW50cy5hZGRfZ3JvdXAKICB0dWJlX2VudHM9dHVi
ZV9ncm91cC5lbnRpdGllcwogIGNpcmNsZSA9IHR1YmVfZW50cy5hZGRfY2ly
Y2xlKGUudmVydGljZXNbMF0sIHZlYywgKCRsMmNfZGlhbSAvIDIuMCksICRs
MmNfc2VncykKICBpZiBjaXJjbGUKICAgIGJhc2UgPSB0dWJlX2VudHMuYWRk
X2ZhY2UoY2lyY2xlKQogICAgYmFzZS5tYXRlcmlhbD0kbDJjX21hdCBpZiAk
bDJjX21hdCE9IkRlZmF1bHQiCiAgICBpZiBiYXNlCiAgICAgIGJhc2UucmV2
ZXJzZSEgaWYgYmFzZS5ub3JtYWwgIT0gdmVjCiAgICAgIGJhc2UucHVzaHB1
bGwgZS5sZW5ndGgKICAgIGVuZAogICAgIyBTdG9yZSB0dWJlIGdyb3VwIGlu
IGEgdHJ1bmsKICAgIHRydW5rLnB1c2godHViZV9ncm91cCkKICBlbmQKICBw
YmNvdW50Kz0xCiAgQHBiLnVwZGF0ZShwYmNvdW50KQplbmQKCiMgRm9sbG93
bWUncyBvbiBjdXJ2ZXMKc3NfY3VydmVzLmVhY2ggZG8gfGN8CiAgZWRnZTEg
PSBjLmZpcnN0X2VkZ2UKICB2ZWMgPSBlZGdlMS5saW5lWzFdCiAgZXh0MSA9
IGVkZ2UxLnN0YXJ0LnBvc2l0aW9uCiAgYWxsX2VkZ2VzID0gYy5lZGdlcwog
IHR1YmVfZ3JvdXA9ZW50cy5hZGRfZ3JvdXAKICB0dWJlX2VudHM9dHViZV9n
cm91cC5lbnRpdGllcwogIGNpcmNsZSA9IHR1YmVfZW50cy5hZGRfY2lyY2xl
KGV4dDEsIHZlYywgKCRsMmNfZGlhbSAvIDIuMCksICRsMmNfc2VncykKICBp
ZiBjaXJjbGUKICAgIGJhc2UgPSB0dWJlX2VudHMuYWRkX2ZhY2UoY2lyY2xl
KQogICAgYmFzZS5tYXRlcmlhbD0kbDJjX21hdCBpZiAkbDJjX21hdCE9IkRl
ZmF1bHQiCiAgICBpZiBiYXNlCiAgICAgIGJhc2UucmV2ZXJzZSEKICAgICAg
YmFzZS5mb2xsb3dtZSBhbGxfZWRnZXMKICAgIGVuZAogICAgIyBTdG9yZSB0
dWJlIGdyb3VwIGluIGEgdHJ1bmsKICAgIHRydW5rLnB1c2godHViZV9ncm91
cCkKICBlbmQKICBwYmNvdW50Kz0xCiAgQHBiLnVwZGF0ZShwYmNvdW50KQpl
bmQKCnNzX2Nvbm5lY3RlZC5lYWNoIGRvIHxjb25uX2V8CiAgIyBmaW5kIGZp
cnN0IGVkZ2UKICBleHRfZWRnZXM9W10KICBjb25uX2UuZWFjaCB7IHxlfCBl
eHRfZWRnZXMucHVzaChlKSBpZiBlLnN0YXJ0LmVkZ2VzLmxlbmd0aD09MTsK
ICAgICAgICAgICAgICAgICAgICBleHRfZWRnZXMucHVzaChlKSBpZiBlLmVu
ZC5lZGdlcy5sZW5ndGg9PTEgfQogIAogIHZlYyA9IGV4dF9lZGdlc1swXS5s
aW5lWzFdCiAgdHViZV9ncm91cD1lbnRzLmFkZF9ncm91cAogIHR1YmVfZW50
cz10dWJlX2dyb3VwLmVudGl0aWVzCiAgY2lyY2xlID0gdHViZV9lbnRzLmFk
ZF9jaXJjbGUoZXh0MSwgdmVjLCAoJGwyY19kaWFtIC8gMi4wKSwgJGwyY19z
ZWdzKQogIGlmIGNpcmNsZQogICAgYmFzZSA9IHR1YmVfZW50cy5hZGRfZmFj
ZShjaXJjbGUpCiAgICBiYXNlLm1hdGVyaWFsPSRsMmNfbWF0IGlmICRsMmNf
bWF0IT0iRGVmYXVsdCIKICAgIGlmIGJhc2UKICAgICAgI2Jhc2UucmV2ZXJz
ZSEKICAgICAgYmFzZS5mb2xsb3dtZSBjb25uX2UKICAgIGVuZAogICAgIyBT
dG9yZSB0dWJlIGdyb3VwIGluIGEgdHJ1bmsKICAgIHRydW5rLnB1c2godHVi
ZV9ncm91cCkKICBlbmQKZW5kClNrZXRjaHVwLnNldF9zdGF0dXNfdGV4dCgi
IikKZW5kCgppZiAkbDJjX29wdD09Ik5vIgogIHBiY291bnQ9MAogIEBwYiA9
IFByb2dyZXNzQmFyLm5ldyhzc19lZGdlcy5sZW5ndGgsIkdlbmVyYXRpbmcg
dHViZXMuLi4iKQogICMgUHVzaHB1bGwgdGhlIHN0YW5kYWxvbmUgZWRnZXMg
aW4gdGhlaXIgb3duIGdyb3VwCiAgc3NfZWRnZXMuZWFjaCBkbyB8ZXwKICAg
IHZlYyA9IGUubGluZVsxXQogICAgdHViZV9ncm91cD1lbnRzLmFkZF9ncm91
cAogICAgdHViZV9lbnRzPXR1YmVfZ3JvdXAuZW50aXRpZXMKICAgIGNpcmNs
ZSA9IHR1YmVfZW50cy5hZGRfY2lyY2xlKGUuc3RhcnQucG9zaXRpb24sIHZl
YywgKCRsMmNfZGlhbSAvIDIuMCksICRsMmNfc2VncykKICAgIGlmIGNpcmNs
ZQogICAgICBiYXNlID0gdHViZV9lbnRzLmFkZF9mYWNlKGNpcmNsZSkKICAg
ICAgaWYgYmFzZQogICAgICAgIGJhc2UubWF0ZXJpYWw9JGwyY19tYXQgaWYg
JGwyY19tYXQhPSJEZWZhdWx0IgogICAgICAgIGJhc2UucmV2ZXJzZSEgaWYg
YmFzZS5ub3JtYWwgIT0gdmVjCiAgICAgICAgYmFzZS5wdXNocHVsbCBlLmxl
bmd0aAogICAgICBlbmQKICAgICMgU3RvcmUgdHViZSBncm91cCBpbiBhIHRy
dW5rCiAgICB0cnVuay5wdXNoKHR1YmVfZ3JvdXApCiAgICBlbmQKICAgIHBi
Y291bnQrPTEKICAgIEBwYi51cGRhdGUocGJjb3VudCkKICBlbmQKZW5kCgpT
a2V0Y2h1cC5zZXRfc3RhdHVzX3RleHQoIkRpc3BsYXlpbmcgdHViZXMsIHBs
ZWFzZSB3YWl0Li4uIikKIyBFeHBsb2RlIGFsbCB0dWJlIGdyb3VwcwppZiAk
bDJjX2dycDI9PSJObyIKICB0cnVuay5lYWNoIHsgfHR1YmV8IHR1YmUuZXhw
bG9kZSBpZiB0dWJlLnZhbGlkPyB9CmVuZApVSS5tZXNzYWdlYm94KHNzX2Vk
Z2VzLmxlbmd0aC50b19zKyIgdHViZXMgY3JlYXRlZCxcbiIraWdub3JlZC50
b19zKyIgb2JqZWN0cyB3ZXJlIG5vdCBsaW5lcyBhbmQgaGF2ZSBiZWVuIGln
bm9yZWQuIikKU2tldGNodXAuc2V0X3N0YXR1c190ZXh0KCIiKQptb2RlbC5j
b21taXRfb3BlcmF0aW9uCmVuZCAjb2YgZGVmCgoKCmlmKCBub3QgZmlsZV9s
b2FkZWQ/KCJsaW5lMmN5bC5yYiIpICkKICAgIGFkZF9zZXBhcmF0b3JfdG9f
bWVudSgiUGx1Z2lucyIpCiAgICBVSS5tZW51KCJUb29scyIpLmFkZF9pdGVt
KCJDb252ZXJ0IGFyY3MsY2lyY2xlcyxjdXJ2ZXMsbGluZXMgdG8gY3lsaW5k
ZXJzIikgeyBsaW5lMmN5bCB9CmVuZApmaWxlX2xvYWRlZCgibGluZTJjeWwu
cmIiKQo=}.unpack("m")[0]
