{"id":4691,"date":"2026-09-24T14:34:42","date_gmt":"2026-09-24T14:34:42","guid":{"rendered":"https:\/\/naroeco.com\/?page_id=4691"},"modified":"2026-09-24T18:06:56","modified_gmt":"2026-09-24T18:06:56","slug":"stay","status":"publish","type":"page","link":"https:\/\/naroeco.com\/","title":{"rendered":"Stay at Naro Eco Resort"},"content":{"rendered":"\n<div id=\"naro-app\" data-src=\"PHN0eWxlPgo6cm9vdHsKICBjb2xvci1zY2hlbWU6ZGFyazsKICAtLW5pZ2h0OiMwODE0MGY7IC0tZm9yZXN0OiMwZTFmMTg7IC0tbW9zczojMTYzMDJhOyAtLWNhcmQ6IzExMjUxZTsgLS1taXN0OiNlOGYwZWE7IC0tbWlzdDI6I2E4YmRiMDsgLS1saW5lOnJnYmEoMjMyLDI0MCwyMzQsLjE0KTsKICAtLWdvbGQ6I2VmYmY2MjsgLS1nb2xkLWluazojMjQxNzAzOyAtLXRlYWw6IzYzYjdiMDsgLS13YXJuOiNmZjliN2E7IC0tZ29vZDojN2ZkMWEwOwogIC0tcGFwZXI6I2YzZjZmMTsgLS1wYXBlci1pbms6IzEwMjUxYzsgLS1wYXBlci0yOiNlM2ViZTQ7IC0tcGFwZXItbGluZTojYzlkNmNjOyAtLXBhcGVyLW11dGU6IzRhNjA1NTsKICAtLWY6R2VvcmdpYSwnVGltZXMgTmV3IFJvbWFuJyxzZXJpZjsKfQoqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0KaDEsaDIsaDMsaDR7Zm9udC1mYW1pbHk6dmFyKC0tZik7Y29sb3I6aW5oZXJpdDtmb250LXdlaWdodDo0MDB9CmJ1dHRvbixpbnB1dCxzZWxlY3QsdGV4dGFyZWEsc3VtbWFyeXtmb250LWZhbWlseTp2YXIoLS1mKX0KcCxsaSxzcGFuLGxhYmVsLGF7Zm9udC1mYW1pbHk6dmFyKC0tZil9CgpodG1se3Njcm9sbC1iZWhhdmlvcjpzbW9vdGh9CmJvZHl7YmFja2dyb3VuZDp2YXIoLS1uaWdodCk7Y29sb3I6dmFyKC0tbWlzdCk7Zm9udDo0MDAgMTdweC8xLjY1IHZhcigtLWYpO3BhZGRpbmctaW5saW5lOjB9CmgxLGgyLGgzLGg0LHAsdWx7bWFyZ2luOjB9CmgxLGgyLGgze2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjA4O3RleHQtd3JhcDpiYWxhbmNlO2xldHRlci1zcGFjaW5nOi0uMDFlbX0KYXtjb2xvcjppbmhlcml0fQpidXR0b24saW5wdXQsc2VsZWN0LHRleHRhcmVhe2ZvbnQtZmFtaWx5OnZhcigtLWYpfQo6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjNweCBzb2xpZCB2YXIoLS1nb2xkKTtvdXRsaW5lLW9mZnNldDoycHh9Ci53cmFwe21heC13aWR0aDoxMTgwcHg7bWFyZ2luLWlubGluZTphdXRvO3BhZGRpbmctaW5saW5lOjIwcHh9Ci5leWVicm93e2ZvbnQtc2l6ZToxMnB4O2xldHRlci1zcGFjaW5nOi4yMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1nb2xkKX0KLmJ0bntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxMHB4O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6OTk5cHg7cGFkZGluZzoxNXB4IDI2cHg7Zm9udDo3MDAgMTVweC8xIHZhcigtLWYpO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMsZmlsdGVyIC4xNXN9Ci5idG46aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNyl9Ci5idG4tZ29sZHtiYWNrZ3JvdW5kOnZhcigtLWdvbGQpO2NvbG9yOnZhcigtLWdvbGQtaW5rKX0KLmJ0bi1saW5le2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tbWlzdCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKX0KLmJ0bi1kYXJre2JhY2tncm91bmQ6dmFyKC0tcGFwZXItaW5rKTtjb2xvcjp2YXIoLS1wYXBlcil9Ci5idG46ZGlzYWJsZWR7b3BhY2l0eTouNTU7Y3Vyc29yOndhaXQ7dHJhbnNmb3JtOm5vbmV9CgovKiBuYXYgKi8KLm5hdntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjMwO3BhZGRpbmctdG9wOmVudihzYWZlLWFyZWEtaW5zZXQtdG9wLDBweCk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoOCwyMCwxNSwuNzgpLHJnYmEoOCwyMCwxNSwwKSk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoNnB4KX0KLm5hdiAud3JhcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxNnB4O21pbi1oZWlnaHQ6NzBweH0KLmJyYW5ke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjIwcHh9Ci5icmFuZC1tYXJre3dpZHRoOjM4cHg7aGVpZ2h0OjM4cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1nb2xkKTtjb2xvcjp2YXIoLS1nb2xkLWluayk7ZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6MTlweDtmb250LXdlaWdodDo3MDA7ZmxleDpub25lfQouYnJhbmQgc21hbGx7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzouMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1taXN0Mil9Ci5uYXYgdWx7ZGlzcGxheTpmbGV4O2dhcDoyOHB4O2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7Zm9udC1zaXplOjE1cHh9Ci5uYXYgdWwgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjp2YXIoLS1taXN0Mil9Lm5hdiB1bCBhOmhvdmVye2NvbG9yOnZhcigtLW1pc3QpfQpAbWVkaWEobWF4LXdpZHRoOjg2MHB4KXsubmF2IHVse2Rpc3BsYXk6bm9uZX19CgovKiBoZXJvICovCi5oZXJve3Bvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6NzIwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtZW5kO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnZhcigtLW5pZ2h0KX0KI3NreXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpibG9ja30KLmhlcm86OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSg4LDIwLDE1LC41NSkgMCUscmdiYSg4LDIwLDE1LDApIDM4JSxyZ2JhKDgsMjAsMTUsLjU1KSA3OCUsdmFyKC0tbmlnaHQpIDEwMCUpO3BvaW50ZXItZXZlbnRzOm5vbmV9Ci5oZXJvIC53cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mjt3aWR0aDoxMDAlO3BhZGRpbmctYmxvY2s6MTUwcHggNjRweH0KLmhlcm8gaDF7Zm9udC1zaXplOmNsYW1wKDQ0cHgsOHZ3LDEwNHB4KTttYXgtd2lkdGg6MTJjaH0KLmhlcm8gaDEgZW17Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6dmFyKC0tZ29sZCl9Ci5oZXJvIC5sZWRle21heC13aWR0aDo1NGNoO21hcmdpbi10b3A6MjJweDtmb250LXNpemU6MTlweDtjb2xvcjp2YXIoLS1taXN0KX0KLmNtZHttYXJnaW4tdG9wOjM2cHg7bWF4LXdpZHRoOjgyMHB4O2JhY2tncm91bmQ6cmdiYSgxMCwyNiwyMCwuNzIpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czoyMnB4O3BhZGRpbmc6MTRweDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KTtib3gtc2hhZG93OjAgMzBweCA4MHB4IHJnYmEoMCwwLDAsLjQpfQouY21kLXJvd3tkaXNwbGF5OmZsZXg7Z2FwOjEycHg7YWxpZ24taXRlbXM6c3RyZXRjaDtmbGV4LXdyYXA6d3JhcH0KLmNtZCB0ZXh0YXJlYXtmbGV4OjEgMSAzMDBweDttaW4taGVpZ2h0OjYwcHg7cmVzaXplOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDtjb2xvcjp2YXIoLS1taXN0KTtmb250OjQwMCAxOHB4LzEuNDUgdmFyKC0tZik7cGFkZGluZzoxMnB4IDE0cHh9Ci5jbWQgdGV4dGFyZWE6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLW1pc3QyKX0KLmNtZC10YWd7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZvbnQtc2l6ZToxMnB4O2xldHRlci1zcGFjaW5nOi4xNmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1nb2xkKTtwYWRkaW5nOjhweCAxNHB4IDB9Ci5wdWxzZXt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWdvbGQpO2JveC1zaGFkb3c6MCAwIDAgMCByZ2JhKDIzOSwxOTEsOTgsLjcpO2FuaW1hdGlvbjpwdWxzZSAycyBpbmZpbml0ZX0KQGtleWZyYW1lcyBwdWxzZXs3MCV7Ym94LXNoYWRvdzowIDAgMCAxMHB4IHJnYmEoMjM5LDE5MSw5OCwwKX0xMDAle2JveC1zaGFkb3c6MCAwIDAgMCByZ2JhKDIzOSwxOTEsOTgsMCl9fQouY2hpcHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo4cHg7cGFkZGluZzo2cHggMTRweCA4cHh9Ci5jaGlwe2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS1taXN0Mik7Ym9yZGVyLXJhZGl1czo5OXB4O3BhZGRpbmc6N3B4IDE0cHg7Zm9udDo0MDAgMTRweC8xLjIgdmFyKC0tZik7Y3Vyc29yOnBvaW50ZXJ9Ci5jaGlwOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1nb2xkKTtjb2xvcjp2YXIoLS1taXN0KX0KLmFpbXNne3BhZGRpbmc6MCAxNHB4IDhweDtmb250LXNpemU6MTRweDtjb2xvcjp2YXIoLS1taXN0Mik7bWluLWhlaWdodDowfQouZmFjdHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDoxMHB4IDMwcHg7bWFyZ2luLXRvcDozMHB4O2ZvbnQtc2l6ZToxM3B4O2xldHRlci1zcGFjaW5nOi4xMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1taXN0Mil9Ci5mYWN0cyBzcGFuOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWdvbGQpO21hcmdpbi1yaWdodDoxMHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0KCi8qIGJvb2tpbmcgc3R1ZGlvICovCi5zdHVkaW97cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1ibG9jazoxMDBweCA5NnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1uaWdodCksdmFyKC0tZm9yZXN0KSl9Ci5zdHVkaW8taGVhZHtkaXNwbGF5OmdyaWQ7Z2FwOjEycHg7bWFyZ2luLWJvdHRvbToyOHB4O21heC13aWR0aDo2MGNofQouc3R1ZGlvLWhlYWQgaDJ7Zm9udC1zaXplOmNsYW1wKDMycHgsNXZ3LDU0cHgpfQouc3R1ZGlvLWhlYWQgcHtjb2xvcjp2YXIoLS1taXN0Mil9Ci5zdHVkaW8tZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjEuNWZyIDFmcjtnYXA6MjhweDthbGlnbi1pdGVtczpzdGFydH0KQG1lZGlhKG1heC13aWR0aDo5MDBweCl7LnN0dWRpby1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9fQouY2FyZHtiYWNrZ3JvdW5kOnZhcigtLXBhcGVyKTtjb2xvcjp2YXIoLS1wYXBlci1pbmspO2JvcmRlci1yYWRpdXM6MjBweDtib3gtc2hhZG93OjAgMzBweCA3MHB4IHJnYmEoMCwwLDAsLjM1KTtvdmVyZmxvdzpoaWRkZW59Ci5zdGVwc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LDFmcik7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tcGFwZXItbGluZSk7YmFja2dyb3VuZDp2YXIoLS1wYXBlci0yKX0KLnN0ZXBzIGJ1dHRvbntib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXBhcGVyLW11dGUpO3BhZGRpbmc6MTZweCA4cHg7Zm9udDo0MDAgMTNweC8xLjIgdmFyKC0tZik7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudH0KLnN0ZXBzIGJ1dHRvbiBie3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1wYXBlci1saW5lKTtjb2xvcjp2YXIoLS1wYXBlci1pbmspO2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjEzcHh9Ci5zdGVwcyBidXR0b24ub257Y29sb3I6dmFyKC0tcGFwZXItaW5rKTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWdvbGQpfQouc3RlcHMgYnV0dG9uLm9uIGIsLnN0ZXBzIGJ1dHRvbi5kb25lIGJ7YmFja2dyb3VuZDp2YXIoLS1wYXBlci1pbmspO2NvbG9yOnZhcigtLXBhcGVyKX0KLnN0ZXBzIGJ1dHRvbi5kb25le2NvbG9yOnZhcigtLXBhcGVyLWluayl9Ci5wYW5le3BhZGRpbmc6MjZweH0KLnBhbmUgaDN7Zm9udC1zaXplOjI4cHg7bWFyZ2luLWJvdHRvbTo2cHh9Ci5wYW5lIC5zdWJ7Y29sb3I6dmFyKC0tcGFwZXItbXV0ZSk7Zm9udC1zaXplOjE1cHg7bWFyZ2luLWJvdHRvbToyMHB4fQouZ3JpZDJ7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maXQsbWlubWF4KDIwMHB4LDFmcikpO2dhcDoxNnB4fQouZmxkIGxhYmVse2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEycHg7bGV0dGVyLXNwYWNpbmc6LjE0ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLXBhcGVyLW11dGUpO21hcmdpbi1ib3R0b206OHB4fQouZmxkIGlucHV0LC5mbGQgc2VsZWN0LC5mbGQgdGV4dGFyZWF7d2lkdGg6MTAwJTttaW4taGVpZ2h0OjUwcHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYXBlci1saW5lKTtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLXBhcGVyLWluayk7Zm9udDo0MDAgMTZweCB2YXIoLS1mKTtwYWRkaW5nOjEycHggMTRweH0KLmZsZCB0ZXh0YXJlYXttaW4taGVpZ2h0Ojg0cHg7cmVzaXplOnZlcnRpY2FsfQouc3RlcHBlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6NTBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhcGVyLWxpbmUpO2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNmZmZ9Ci5zdGVwcGVyIGJ1dHRvbnt3aWR0aDo1MHB4O2FsaWduLXNlbGY6c3RyZXRjaDtib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXBhcGVyLWluayk7Zm9udDo0MDAgMjRweCB2YXIoLS1mKTtjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOjEycHh9Ci5zdGVwcGVyIGJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXBhcGVyLTIpfQouc3RlcHBlciBvdXRwdXR7ZmxleDoxO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxN3B4O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30KLmFjdGlvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MjRweDthbGlnbi1pdGVtczpjZW50ZXJ9Ci5lcnJ7Y29sb3I6I2IyM2ExNztmb250LXNpemU6MTRweDttaW4taGVpZ2h0OjIwcHh9Ci5ub3Rle2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXBhcGVyLW11dGUpfQoub3B0c3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjhweH0KLm9wdHMgbGFiZWx7Y3Vyc29yOnBvaW50ZXJ9Ci5vcHRzIGlucHV0e3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MH0KLm9wdHMgc3BhbntkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjEwcHggMTZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhcGVyLWxpbmUpO2JvcmRlci1yYWRpdXM6OTlweDtiYWNrZ3JvdW5kOiNmZmY7Zm9udC1zaXplOjE1cHh9Ci5vcHRzIGlucHV0OmNoZWNrZWQrc3BhbntiYWNrZ3JvdW5kOnZhcigtLXBhcGVyLWluayk7Y29sb3I6dmFyKC0tcGFwZXIpO2JvcmRlci1jb2xvcjp2YXIoLS1wYXBlci1pbmspfQoub3B0cyBpbnB1dDpmb2N1cy12aXNpYmxlK3NwYW57b3V0bGluZTozcHggc29saWQgdmFyKC0tZ29sZCl9Ci5wYXktYm94e2JvcmRlcjoxcHggc29saWQgdmFyKC0tcGFwZXItbGluZSk7Ym9yZGVyLXJhZGl1czoxNHB4O3BhZGRpbmc6MThweDtiYWNrZ3JvdW5kOiNmZmY7ZGlzcGxheTpncmlkO2dhcDoxMHB4fQoucGF5LWJhZGdlc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjhweH0KLnBheS1iYWRnZXMgc3Bhbntmb250LXNpemU6MTNweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhcGVyLWxpbmUpO2JvcmRlci1yYWRpdXM6NnB4O3BhZGRpbmc6NHB4IDEwcHg7Y29sb3I6dmFyKC0tcGFwZXItbXV0ZSl9Ci5wcmV2aWV3bm90ZXtiYWNrZ3JvdW5kOiNmZmY2ZGM7Ym9yZGVyOjFweCBzb2xpZCAjZWNkNDhjO2NvbG9yOiM1YzQ1MDg7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTJweCAxNHB4O2ZvbnQtc2l6ZToxNHB4fQoKLyogc3VtbWFyeSAqLwouc3Vte3Bvc2l0aW9uOnN0aWNreTt0b3A6OTBweDtiYWNrZ3JvdW5kOnZhcigtLWNhcmQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MjRweDtkaXNwbGF5OmdyaWQ7Z2FwOjE2cHh9CkBtZWRpYShtYXgtd2lkdGg6OTAwcHgpey5zdW17cG9zaXRpb246c3RhdGljfX0KLnN1bSBoNHtmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1nb2xkKTtmb250LXdlaWdodDo0MDB9Ci5zdW0gLnN0YXktbHtkaXNwbGF5OmdyaWQ7Z2FwOjhweDtmb250LXNpemU6MTZweH0KLnN1bSAuc3RheS1sIGRpdntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHh9Ci5zdW0gLnN0YXktbCAudntmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9Ci5zdW0gLnRvdGFse2JvcmRlci10b3A6MXB4IGRhc2hlZCB2YXIoLS1saW5lKTtwYWRkaW5nLXRvcDoxMnB4O2ZvbnQtc2l6ZToyMnB4fQouc3VtIC5zYXZle2NvbG9yOnZhcigtLWdvb2QpO2ZvbnQtc2l6ZToxNHB4fQouYnJpZWZ7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxNHB4O2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLW1pc3QpO21pbi1oZWlnaHQ6NjRweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0KLnN1bSAud2h5e2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLW1pc3QyKX0KCi8qIHBhc3MgKi8KLnBhc3N7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCMxNTNiMmYsIzBjMjMxYik7Y29sb3I6dmFyKC0tbWlzdCk7Ym9yZGVyLXJhZGl1czoxOHB4O3BhZGRpbmc6MjRweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpncmlkO2dhcDoxNnB4fQoucGFzczo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTYwcHg7dG9wOi02MHB4O3dpZHRoOjIyMHB4O2hlaWdodDoyMjBweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUscmdiYSgyMzksMTkxLDk4LC40NSkscmdiYSgyMzksMTkxLDk4LDApIDcwJSl9Ci5wYXNzIC5yZWZ7Zm9udC1zaXplOjM0cHg7bGV0dGVyLXNwYWNpbmc6LjA4ZW07Y29sb3I6dmFyKC0tZ29sZCl9Ci5wYXNzIGRse21hcmdpbjowO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LG1pbm1heCgxNTBweCwxZnIpKTtnYXA6MTRweCAyMHB4fQoucGFzcyBkdHtmb250LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzouMThlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tbWlzdDIpfQoucGFzcyBkZHttYXJnaW46MnB4IDAgMDtmb250LXNpemU6MTdweH0KLnN0YW1we2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlcjoxcHggc29saWQgdmFyKC0tZ29sZCk7Y29sb3I6dmFyKC0tZ29sZCk7Ym9yZGVyLXJhZGl1czo5OXB4O3BhZGRpbmc6NXB4IDE0cHg7Zm9udC1zaXplOjEycHg7bGV0dGVyLXNwYWNpbmc6LjE0ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2p1c3RpZnktc2VsZjpzdGFydH0KLndlbGNvbWV7YmFja2dyb3VuZDp2YXIoLS1wYXBlci0yKTtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzoxNnB4O2ZvbnQtc2l6ZToxNnB4O3doaXRlLXNwYWNlOnByZS13cmFwO21pbi1oZWlnaHQ6NzBweH0KCi8qIHNlY3Rpb25zICovCnNlY3Rpb24uc3twYWRkaW5nLWJsb2NrOjEwMHB4fQoucy1oZWFke2Rpc3BsYXk6Z3JpZDtnYXA6MTRweDttYXJnaW4tYm90dG9tOjQ0cHg7bWF4LXdpZHRoOjYyY2h9Ci5zLWhlYWQgaDJ7Zm9udC1zaXplOmNsYW1wKDMycHgsNXZ3LDU4cHgpfQoucy1oZWFkIHB7Y29sb3I6dmFyKC0tbWlzdDIpO2ZvbnQtc2l6ZToxOHB4fQouYmFuZHtiYWNrZ3JvdW5kOnZhcigtLWZvcmVzdCl9Ci5zdGF5e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MS4xZnIgMWZyO2dhcDowO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czoyMnB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnZhcigtLWNhcmQpfQouc3RheSAucGh7bWluLWhlaWdodDo0MjBweH0KLnN0YXktYm9keXtwYWRkaW5nOjM2cHg7ZGlzcGxheTpncmlkO2dhcDoyMHB4O2FsaWduLWNvbnRlbnQ6Y2VudGVyfQouc3RheS1ib2R5IGgze2ZvbnQtc2l6ZTozNnB4fQoucHJpY2V7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2dhcDoxNHB4O2ZsZXgtd3JhcDp3cmFwfQoucHJpY2UgYntmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjQ0cHg7Y29sb3I6dmFyKC0tZ29sZCk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfQoucHJpY2Ugc3tjb2xvcjp2YXIoLS1taXN0Mik7Zm9udC1zaXplOjE5cHh9Ci5wcmljZSBzcGFue2NvbG9yOnZhcigtLW1pc3QyKTtmb250LXNpemU6MTVweH0KLnRpY2tze2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxMHB4IDIwcHg7Zm9udC1zaXplOjE2cHh9Ci50aWNrcyBsaTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1nb2xkKTtib3JkZXItdG9wOjA7Ym9yZGVyLWxlZnQ6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGVZKC0zcHgpO21hcmdpbi1yaWdodDoxMnB4fQpAbWVkaWEobWF4LXdpZHRoOjg2MHB4KXsuc3RheXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfS50aWNrc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfS5zdGF5IC5waHttaW4taGVpZ2h0OjI2MHB4fX0KLnBoe3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnZhcigtLW1vc3MpfQoucGggc3ZnLC5waCBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y292ZXI7ZGlzcGxheTpibG9ja30KLnRpbGVze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LG1pbm1heCgyNTBweCwxZnIpKTtnYXA6MjJweH0KLnRpbGV7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjE4cHg7cGFkZGluZzoyNnB4O2Rpc3BsYXk6Z3JpZDtnYXA6MTJweDthbGlnbi1jb250ZW50OnN0YXJ0O2JhY2tncm91bmQ6dmFyKC0tY2FyZCl9Ci50aWxlIGgze2ZvbnQtc2l6ZToyNnB4fQoudGlsZSBwe2NvbG9yOnZhcigtLW1pc3QyKTtmb250LXNpemU6MTZweH0KLnRpbGUgLmt7Zm9udC1zaXplOjEycHg7bGV0dGVyLXNwYWNpbmc6LjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tZ29sZCl9Ci5zcGxpdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjU2cHg7YWxpZ24taXRlbXM6Y2VudGVyfQpAbWVkaWEobWF4LXdpZHRoOjg2MHB4KXsuc3BsaXR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6MzRweH19Ci5iYXJze2Rpc3BsYXk6Z3JpZDtnYXA6MThweH0KLmJhcntkaXNwbGF5OmdyaWQ7Z2FwOjhweH0KLmJhciAudHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHg7Zm9udC1zaXplOjE2cHh9Ci5iYXIgLnQgc3BhbjpsYXN0LWNoaWxke2NvbG9yOnZhcigtLWdvbGQpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30KLmJhciBpe2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjk5cHg7YmFja2dyb3VuZDp2YXIoLS1tb3NzKTtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59Ci5iYXIgaTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym90dG9tOjA7d2lkdGg6dmFyKC0tdyk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdmFyKC0tdGVhbCksdmFyKC0tZ29sZCkpO2JvcmRlci1yYWRpdXM6OTlweH0KLmdhbGxlcnl7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maXQsbWlubWF4KDIyMHB4LDFmcikpO2dhcDoxNnB4O21hcmdpbi10b3A6NDBweH0KLmdhbGxlcnkgZmlndXJle21hcmdpbjowO2Rpc3BsYXk6Z3JpZDtnYXA6OHB4fQouZ2FsbGVyeSAucGh7YXNwZWN0LXJhdGlvOjQvMztib3JkZXItcmFkaXVzOjE2cHh9Ci5nYWxsZXJ5IGZpZ2NhcHRpb257Zm9udC1zaXplOjE0cHg7Y29sb3I6dmFyKC0tbWlzdDIpfQoucGxhbi1vdXR7d2hpdGUtc3BhY2U6cHJlLXdyYXA7YmFja2dyb3VuZDp2YXIoLS1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOjE4cHg7Zm9udC1zaXplOjE2cHg7bWluLWhlaWdodDoxMTBweDttYXJnaW4tdG9wOjE0cHh9Ci5yb3d7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwfQoucm93IGlucHV0e2ZsZXg6MSAxIDIyMHB4O21pbi1oZWlnaHQ6NTBweDtib3JkZXItcmFkaXVzOjk5cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLW1pc3QpO3BhZGRpbmc6MCAyMHB4O2ZvbnQ6NDAwIDE2cHggdmFyKC0tZil9Cgpmb290ZXJ7YmFja2dyb3VuZDojMDUwZDBhO3BhZGRpbmctYmxvY2s6NjRweCBjYWxjKDQ4cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwwcHgpKX0KZm9vdGVyIC5jb2xze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MS40ZnIgMWZyIDFmcjtnYXA6MzRweH0KZm9vdGVyIGg0e2ZvbnQtc2l6ZToxMnB4O2xldHRlci1zcGFjaW5nOi4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLWdvbGQpO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW4tYm90dG9tOjE0cHh9CmZvb3RlciBsaXtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luLWJvdHRvbTo4cHg7Y29sb3I6dmFyKC0tbWlzdDIpfQpmb290ZXIgdWx7cGFkZGluZzowfQpmb290ZXIgLmZpbmV7bWFyZ2luLXRvcDo0MHB4O3BhZGRpbmctdG9wOjIwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSk7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tbWlzdDIpfQpAbWVkaWEobWF4LXdpZHRoOjc2MHB4KXtmb290ZXIgLmNvbHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn19Ci5wZW5kaW5ne2ZvbnQtc3R5bGU6aXRhbGljfQoKLyogZmxvYXRpbmcgY29uY2llcmdlICovCi5mYWJ7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MThweDtib3R0b206Y2FsYygxOHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sMHB4KSk7ei1pbmRleDo0MDtiYWNrZ3JvdW5kOnZhcigtLWdvbGQpO2NvbG9yOnZhcigtLWdvbGQtaW5rKTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjk5cHg7cGFkZGluZzoxNXB4IDIycHg7Zm9udDo3MDAgMTVweCB2YXIoLS1mKTtjdXJzb3I6cG9pbnRlcjtib3gtc2hhZG93OjAgMTRweCA0MHB4IHJnYmEoMCwwLDAsLjQ1KTtkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyfQouY2hhdHtwb3NpdGlvbjpmaXhlZDtyaWdodDoxOHB4O2JvdHRvbTpjYWxjKDg0cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwwcHgpKTt6LWluZGV4OjQxO3dpZHRoOm1pbigzOTBweCxjYWxjKDEwMHZ3IC0gMzZweCkpO2hlaWdodDptaW4oNTYwcHgsY2FsYygxMDAlIC0gMTIwcHgpKTtiYWNrZ3JvdW5kOnZhcigtLXBhcGVyKTtjb2xvcjp2YXIoLS1wYXBlci1pbmspO2JvcmRlci1yYWRpdXM6MjBweDtib3gtc2hhZG93OjAgMzBweCA4MHB4IHJnYmEoMCwwLDAsLjU1KTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1yb3dzOmF1dG8gMWZyIGF1dG8gYXV0bztvdmVyZmxvdzpoaWRkZW59Ci5jaGF0W2hpZGRlbl17ZGlzcGxheTpub25lfQouY2hhdC1oe2JhY2tncm91bmQ6dmFyKC0tcGFwZXItaW5rKTtjb2xvcjp2YXIoLS1wYXBlcik7cGFkZGluZzoxNHB4IDE4cHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweH0KLmNoYXQtaCBidXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDtjb2xvcjp2YXIoLS1wYXBlcik7Zm9udC1zaXplOjIycHg7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MX0KLm1zZ3N7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6MTZweDtkaXNwbGF5OmdyaWQ7Z2FwOjEwcHg7YWxpZ24tY29udGVudDpzdGFydH0KLm17bWF4LXdpZHRoOjg4JTtwYWRkaW5nOjEwcHggMTRweDtib3JkZXItcmFkaXVzOjE0cHg7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MS41O3doaXRlLXNwYWNlOnByZS13cmFwfQoubS51e2p1c3RpZnktc2VsZjplbmQ7YmFja2dyb3VuZDp2YXIoLS1wYXBlci1pbmspO2NvbG9yOnZhcigtLXBhcGVyKX0KLm0uYXtqdXN0aWZ5LXNlbGY6c3RhcnQ7YmFja2dyb3VuZDp2YXIoLS1wYXBlci0yKX0KLmNoYXQgLnFze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6NnB4O3BhZGRpbmc6MCAxNHB4IDEwcHh9Ci5jaGF0IC5xcyAuY2hpcHtjb2xvcjp2YXIoLS1wYXBlci1tdXRlKTtib3JkZXItY29sb3I6dmFyKC0tcGFwZXItbGluZSk7Zm9udC1zaXplOjEzcHh9Ci5jaGF0IGZvcm17ZGlzcGxheTpmbGV4O2dhcDo4cHg7cGFkZGluZzoxMHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLXBhcGVyLWxpbmUpfQouY2hhdCBmb3JtIGlucHV0e2ZsZXg6MTttaW4taGVpZ2h0OjQ2cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYXBlci1saW5lKTtib3JkZXItcmFkaXVzOjk5cHg7cGFkZGluZzowIDE2cHg7Zm9udDo0MDAgMTVweCB2YXIoLS1mKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tcGFwZXItaW5rKX0KLmNoYXQgZm9ybSAuYnRue3BhZGRpbmc6MCAyMHB4fQoucnR7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTZweDtmbGV4LXdyYXA6d3JhcDtwYWRkaW5nLWJvdHRvbToxNnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpfQoucnQgaDN7Zm9udC1zaXplOjMwcHh9Ci5yc3tjb2xvcjp2YXIoLS1taXN0Mik7Zm9udC1zaXplOjE1cHh9Ci5zdGF5LWJvZHkgLnByaWNlIGJ7Zm9udC1zaXplOjM0cHh9Ci5wYXktYm94IC5zdGF5LWx7ZGlzcGxheTpncmlkO2dhcDo4cHg7Zm9udC1zaXplOjE2cHh9Ci5wYXktYm94IC5zdGF5LWwgZGl2e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweH0KLnBheS1ib3ggLnN0YXktbCAudG90YWx7Ym9yZGVyLXRvcDoxcHggZGFzaGVkIHZhcigtLXBhcGVyLWxpbmUpO3BhZGRpbmctdG9wOjEycHg7Zm9udC1zaXplOjIycHh9Ci5zdGF5LWwgLnZ7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfQoucmVhY2h7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxLjFmciAxZnI7Z2FwOjI4cHg7bWFyZ2luLXRvcDo1NnB4O2FsaWduLWl0ZW1zOnN0YXJ0fQpAbWVkaWEobWF4LXdpZHRoOjg2MHB4KXsucmVhY2h7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn19Ci5tYXBjYXJke2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czoyMHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnZhcigtLWNhcmQpfQoubWFwYXJ0e2FzcGVjdC1yYXRpbzoxNi8xMDtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiMwZjJhMjJ9Ci5tYXBhcnQgc3Zne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrfQoubWFwbm90ZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEycHg7Ym90dG9tOjEwcHg7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tbWlzdDIpfQoubWFwYnRuc3twYWRkaW5nOjE4cHg7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwfQouZGlyc3tsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO21hcmdpbjowfQouZGlycyBsaXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MTRweCAwO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpfQouZGlycyBzbWFsbHtkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLW1pc3QyKTtmb250LXNpemU6MTNweH0KLmRpcnMgYXt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6dmFyKC0tZ29sZCk7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjk5cHg7cGFkZGluZzo4cHggMTZweDtmb250LXNpemU6MTRweH0KLmRpcnMgYTpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tZ29sZCl9Ci5mYXEgZGV0YWlsc3tib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1saW5lKX0KLmZhcSBzdW1tYXJ5e2N1cnNvcjpwb2ludGVyO2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjIwcHggMDtmb250LXNpemU6MjBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjE2cHg7YWxpZ24taXRlbXM6Y2VudGVyfQouZmFxIHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXJ7ZGlzcGxheTpub25lfQouZmFxIHN1bW1hcnk6OmFmdGVye2NvbnRlbnQ6IisiO2NvbG9yOnZhcigtLWdvbGQpO2ZvbnQtc2l6ZToyOHB4O2xpbmUtaGVpZ2h0OjE7ZmxleDpub25lfQouZmFxIGRldGFpbHNbb3Blbl0gc3VtbWFyeTo6YWZ0ZXJ7Y29udGVudDoi4oiSIn0KLmZhcSBkZXRhaWxzIHB7Y29sb3I6dmFyKC0tbWlzdDIpO3BhZGRpbmc6MCAwIDIycHg7bWF4LXdpZHRoOjY4Y2h9CkBtZWRpYShwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7aHRtbHtzY3JvbGwtYmVoYXZpb3I6YXV0b30ucHVsc2V7YW5pbWF0aW9uOm5vbmV9fQo8L3N0eWxlPgoKPGhlYWRlciBjbGFzcz0ibmF2Ij4KICA8ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxhIGNsYXNzPSJicmFuZCIgaHJlZj0iI3RvcCI+PGltZyBjbGFzcz0iYnJhbmQtbG9nbyIgc3JjPSJodHRwczovL25hcm9lY28uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L05hcm9fRWNvX0xvZ29fLXJlbW92ZWJnLXByZXZpZXcucG5nIiBhbHQ9Ik5hcm8gRWNvIFJlc29ydCBsb2dvIiB3aWR0aD0iNDYiIGhlaWdodD0iNDYiPjxzcGFuPk5hcm8gRWNvIFJlc29ydDxzbWFsbD5ZYW11bm90cmkgSGlnaHdheTwvc21hbGw+PC9zcGFuPjwvYT4KICAgIDx1bD4KICAgICAgPGxpPjxhIGhyZWY9IiNzdGF5Ij5TdGF5PC9hPjwvbGk+CiAgICAgIDxsaT48YSBocmVmPSIjZXhwZXJpZW5jZXMiPkV4cGVyaWVuY2VzPC9hPjwvbGk+CiAgICAgIDxsaT48YSBocmVmPSIjZXZlbnRzIj5FdmVudHM8L2E+PC9saT4KICAgICAgPGxpPjxhIGhyZWY9IiNleHBsb3JlIj5FeHBsb3JlPC9hPjwvbGk+CiAgICAgIDxsaT48YSBocmVmPSIjZmFxIj5RdWVzdGlvbnM8L2E+PC9saT4KICAgIDwvdWw+CiAgICA8YSBjbGFzcz0iYnRuIGJ0bi1nb2xkIiBocmVmPSIjYm9vayI+Qm9vayBub3c8L2E+CiAgPC9kaXY+CjwvaGVhZGVyPgoKPG1haW4gaWQ9InRvcCI+CjxzZWN0aW9uIGNsYXNzPSJoZXJvIj4KICA8ZGl2IGNsYXNzPSJoZXJvLXBob3RvIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICA8Y2FudmFzIGlkPSJza3kiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2NhbnZhcz4KICA8ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxwIGNsYXNzPSJleWVicm93Ij5OZWFyIFZpa2FzIE5hZ2FyIMK3IDQ1IGttIGZyb20gRGVocmFkdW48L3A+CiAgICA8aDEgc3R5bGU9Im1hcmdpbi10b3A6MThweCI+V2FrZSB1cCBpbiB0aGUgPGVtPmZvb3RoaWxsczwvZW0+PC9oMT4KICAgIDxwIGNsYXNzPSJsZWRlIj5Db21mb3J0YWJsZSByb29tcyB3aXRoIGRlc2VydCBjb29sZXJzLCBhbiBvcmdhbmljIGdhcmRlbiBhbmQgTmFybyBSZXN0YXVyYW50IG9uIHRoZSBZYW11bm90cmkgSGlnaHdheS4gRGVzY3JpYmUgeW91ciB0cmlwIGluIGEgc2VudGVuY2UgYW5kIHdlIHNldCB1cCB5b3VyIHJvb21zIGFuZCB5b3VyIHByaWNlLjwvcD4KICAgIDxkaXYgY2xhc3M9ImNtZCI+CiAgICAgIDxkaXYgY2xhc3M9ImNtZC10YWciPjxzcGFuIGNsYXNzPSJwdWxzZSI+PC9zcGFuPiBUcmlwIHBsYW5uZXI8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY21kLXJvdyI+CiAgICAgICAgPHRleHRhcmVhIGlkPSJ0cmlwVGV4dCIgcm93cz0iMiIgYXJpYS1sYWJlbD0iRGVzY3JpYmUgeW91ciB0cmlwIiBwbGFjZWhvbGRlcj0iRm9yIGV4YW1wbGU6IDIgYWR1bHRzIGFuZCAyIGtpZHMgYWdlZCA2IGFuZCA4LCAzIG5pZ2h0cyBmcm9tIG5leHQgRnJpZGF5Ij48L3RleHRhcmVhPgogICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZ29sZCIgaWQ9InBsYW5CdG4iIHR5cGU9ImJ1dHRvbiI+UGxhbiBteSBzdGF5PC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaGlwcyIgaWQ9InNhbXBsZXMiPjwvZGl2PgogICAgICA8cCBjbGFzcz0iYWltc2ciIGlkPSJhaU1zZyIgcm9sZT0ic3RhdHVzIiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmYWN0cyI+PHNwYW4+UHVyZSB2ZWdldGFyaWFuIHJlc3RhdXJhbnQ8L3NwYW4+PHNwYW4+RGVzZXJ0IGNvb2xlciBpbiBldmVyeSByb29tPC9zcGFuPjxzcGFuPkZyZWUgcGFya2luZzwvc3Bhbj48c3Bhbj5Db3VwbGUgZnJpZW5kbHk8L3NwYW4+PHNwYW4+U3dpbW1pbmcgcG9vbCBvcGVuaW5nIHNvb248L3NwYW4+PC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzdHVkaW8iIGlkPSJib29rIj4KICA8ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxkaXYgY2xhc3M9InN0dWRpby1oZWFkIj48c3BhbiBjbGFzcz0iZXllYnJvdyI+Qm9vayBhbmQgY2hlY2sgaW48L3NwYW4+PGgyPlJlcXVlc3QgeW91ciBzdGF5LCBhcnJpdmUgd2l0aG91dCBxdWV1ZXM8L2gyPjxwPkZvdXIgc2hvcnQgc3RlcHMuIFlvdXIgY2hlY2staW4gZGV0YWlscyBhcmUgY29sbGVjdGVkIGJlZm9yZSB5b3UgdHJhdmVsLCBzbyByZWNlcHRpb24gb25seSBoYXMgdG8gaGFuZCB5b3UgdGhlIGtleS4gWW91IHBheSBzZWN1cmVseSBvbmxpbmUgd2l0aCBVUEksIGNhcmQgb3IgbmV0IGJhbmtpbmcsIGFuZCB0aGUgcmVzb3J0IGNvbmZpcm1zIHlvdXIgYm9va2luZy48L3A+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJzdHVkaW8tZ3JpZCI+CiAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9InN0ZXBzIiBpZD0ic3RlcHMiPgogICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtZ289IjEiPjxiPjE8L2I+VHJpcDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtZ289IjIiPjxiPjI8L2I+R3Vlc3Q8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBkYXRhLWdvPSIzIj48Yj4zPC9iPlBheTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtZ289IjQiPjxiPjQ8L2I+RG9uZTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lIiBpZD0icDEiPgogICAgICAgICAgPGgzPldoZW4gYXJlIHlvdSBjb21pbmc\/PC9oMz4KICAgICAgICAgIDxwIGNsYXNzPSJzdWIiPkNoYW5nZSBhbnl0aGluZyB0aGUgcGxhbm5lciBmaWxsZWQgaW4uPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZDIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGQiPjxsYWJlbCBmb3I9ImNpIj5DaGVjayBpbjwvbGFiZWw+PGlucHV0IGlkPSJjaSIgdHlwZT0iZGF0ZSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZCI+PGxhYmVsIGZvcj0iY28iPkNoZWNrIG91dDwvbGFiZWw+PGlucHV0IGlkPSJjbyIgdHlwZT0iZGF0ZSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZCI+PGxhYmVsPkFkdWx0czwvbGFiZWw+PGRpdiBjbGFzcz0ic3RlcHBlciI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtc3RlcD0iYWR1bHRzOi0xIiBhcmlhLWxhYmVsPSJGZXdlciBhZHVsdHMiPuKIkjwvYnV0dG9uPjxvdXRwdXQgaWQ9ImFkdWx0c08iPjA8L291dHB1dD48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1zdGVwPSJhZHVsdHM6MSIgYXJpYS1sYWJlbD0iTW9yZSBhZHVsdHMiPis8L2J1dHRvbj48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxkIj48bGFiZWw+Q2hpbGRyZW4gYWdlZCA5KzwvbGFiZWw+PGRpdiBjbGFzcz0ic3RlcHBlciI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtc3RlcD0ia2lkczk6LTEiIGFyaWEtbGFiZWw9IkZld2VyIGNoaWxkcmVuIGFnZWQgOSBhbmQgYWJvdmUiPuKIkjwvYnV0dG9uPjxvdXRwdXQgaWQ9ImtpZHM5TyI+MDwvb3V0cHV0PjxidXR0b24gdHlwZT0iYnV0dG9uIiBkYXRhLXN0ZXA9ImtpZHM5OjEiIGFyaWEtbGFiZWw9Ik1vcmUgY2hpbGRyZW4gYWdlZCA5IGFuZCBhYm92ZSI+KzwvYnV0dG9uPjwvZGl2PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGQiPjxsYWJlbD5DaGlsZHJlbiBiZWxvdyA5IChmcmVlKTwvbGFiZWw+PGRpdiBjbGFzcz0ic3RlcHBlciI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtc3RlcD0ia2lkc1U5Oi0xIiBhcmlhLWxhYmVsPSJGZXdlciBjaGlsZHJlbiBiZWxvdyA5Ij7iiJI8L2J1dHRvbj48b3V0cHV0IGlkPSJraWRzVTlPIj4wPC9vdXRwdXQ+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtc3RlcD0ia2lkc1U5OjEiIGFyaWEtbGFiZWw9Ik1vcmUgY2hpbGRyZW4gYmVsb3cgOSI+KzwvYnV0dG9uPjwvZGl2PjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjoyNnB4IDAgMTJweDtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjEycHg7bGV0dGVyLXNwYWNpbmc6LjE4ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLXBhcGVyLW11dGUpIj5Sb29tczwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkMiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZCI+PGxhYmVsPkRvdWJsZSByb29tcyDCtyDigrkyLDIwMCArIEdTVDwvbGFiZWw+PGRpdiBjbGFzcz0ic3RlcHBlciI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtc3RlcD0iZGJsOi0xIiBhcmlhLWxhYmVsPSJGZXdlciBkb3VibGUgcm9vbXMiPuKIkjwvYnV0dG9uPjxvdXRwdXQgaWQ9ImRibE8iPjA8L291dHB1dD48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1zdGVwPSJkYmw6MSIgYXJpYS1sYWJlbD0iTW9yZSBkb3VibGUgcm9vbXMiPis8L2J1dHRvbj48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxkIj48bGFiZWw+RmFtaWx5IHJvb20sIDQgYmVkcyDCtyDigrkzLDAwMCArIEdTVDwvbGFiZWw+PGRpdiBjbGFzcz0ic3RlcHBlciI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtc3RlcD0iZmFtOi0xIiBhcmlhLWxhYmVsPSJGZXdlciBmYW1pbHkgcm9vbXMiPuKIkjwvYnV0dG9uPjxvdXRwdXQgaWQ9ImZhbU8iPjA8L291dHB1dD48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1zdGVwPSJmYW06MSIgYXJpYS1sYWJlbD0iTW9yZSBmYW1pbHkgcm9vbXMiPis8L2J1dHRvbj48L2Rpdj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHAgY2xhc3M9Im5vdGUiIGlkPSJyb29tSGludCIgc3R5bGU9Im1hcmdpbi10b3A6MTJweCIgYXJpYS1saXZlPSJwb2xpdGUiPjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyIgc3R5bGU9Im1hcmdpbi10b3A6MTBweCI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5lIiBpZD0iYXV0b0J0biIgdHlwZT0iYnV0dG9uIiBzdHlsZT0iY29sb3I6dmFyKC0tcGFwZXItaW5rKTtib3JkZXItY29sb3I6dmFyKC0tcGFwZXItbGluZSk7cGFkZGluZzoxMXB4IDE4cHgiPlN1Z2dlc3QgYmVzdCByb29tczwvYnV0dG9uPjwvZGl2PgogICAgICAgICAgPHAgY2xhc3M9Im5vdGUiIHN0eWxlPSJtYXJnaW4tdG9wOjE0cHgiPlJhdGVzIGFyZSBwZXIgcm9vbSBwZXIgbmlnaHQgYW5kIGRvIG5vdCBpbmNsdWRlIEdTVC4gMTIlIEdTVCBpcyBhZGRlZCB0byB5b3VyIHRvdGFsLiBBbiBleHRyYSBiZWQgaXMg4oK5NTAwIGEgbmlnaHQuIENoaWxkcmVuIGJlbG93IDkgc3RheSBmcmVlLiBCcmVha2Zhc3QgaXMgbm90IGluY2x1ZGVkLjwvcD4KICAgICAgICAgIDxwIGNsYXNzPSJlcnIiIGlkPSJlMSIgcm9sZT0iYWxlcnQiPjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPjxzcGFuPjwvc3Bhbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhcmsiIHR5cGU9ImJ1dHRvbiIgZGF0YS1uZXh0PSIyIj5Db250aW51ZTwvYnV0dG9uPjwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lIiBpZD0icDIiIGhpZGRlbj4KICAgICAgICAgIDxoMz5XaG8gaXMgY2hlY2tpbmcgaW4\/PC9oMz4KICAgICAgICAgIDxwIGNsYXNzPSJzdWIiPldlIHVzZSB0aGVzZSBkZXRhaWxzIHRvIHByZXBhcmUgeW91ciByb29tIGFuZCBncmVldCB5b3UgYnkgbmFtZS48L3A+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkMiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZCI+PGxhYmVsIGZvcj0iZ05hbWUiPkZ1bGwgbmFtZTwvbGFiZWw+PGlucHV0IGlkPSJnTmFtZSIgdHlwZT0idGV4dCIgYXV0b2NvbXBsZXRlPSJuYW1lIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxkIj48bGFiZWwgZm9yPSJnUGhvbmUiPk1vYmlsZSBudW1iZXI8L2xhYmVsPjxpbnB1dCBpZD0iZ1Bob25lIiB0eXBlPSJ0ZWwiIGF1dG9jb21wbGV0ZT0idGVsIiBpbnB1dG1vZGU9InRlbCIgcGxhY2Vob2xkZXI9Iis5MSI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZCI+PGxhYmVsIGZvcj0iZ0VtYWlsIj5FbWFpbCAoZm9yIHlvdXIgcmVjZWlwdCk8L2xhYmVsPjxpbnB1dCBpZD0iZ0VtYWlsIiB0eXBlPSJlbWFpbCIgYXV0b2NvbXBsZXRlPSJlbWFpbCI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZCI+PGxhYmVsIGZvcj0iZ1ZlaCI+VmVoaWNsZSBudW1iZXIgKGZvciBwYXJraW5nKTwvbGFiZWw+PGlucHV0IGlkPSJnVmVoIiB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iT3B0aW9uYWwiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGQiIHN0eWxlPSJtYXJnaW4tdG9wOjE2cHgiPjxsYWJlbD5XaGVuIHdpbGwgeW91IGFycml2ZT88L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcHRzIiBpZD0iYXJyaXZlT3B0cyI+CiAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iYXJyIiB2YWx1ZT0iQmVmb3JlIG5vb24iPjxzcGFuPkJlZm9yZSBub29uPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iYXJyIiB2YWx1ZT0iMTIgdG8gMyBwbSIgY2hlY2tlZD48c3Bhbj4xMiB0byAzIHBtPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iYXJyIiB2YWx1ZT0iMyB0byA2IHBtIj48c3Bhbj4zIHRvIDYgcG08L3NwYW4+PC9sYWJlbD4KICAgICAgICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJhcnIiIHZhbHVlPSJBZnRlciA2IHBtIj48c3Bhbj5BZnRlciA2IHBtPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgICAgPHAgY2xhc3M9Im5vdGUiIHN0eWxlPSJtYXJnaW4tdG9wOjE0cHgiPk5hcm8gUmVzdGF1cmFudCBzZXJ2ZXMgcHVyZSB2ZWdldGFyaWFuIGZvb2Qgb25seS48L3A+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGQiIHN0eWxlPSJtYXJnaW4tdG9wOjE2cHgiPjxsYWJlbCBmb3I9ImdOb3RlIj5PY2Nhc2lvbiBvciByZXF1ZXN0czwvbGFiZWw+PHRleHRhcmVhIGlkPSJnTm90ZSIgcGxhY2Vob2xkZXI9IkJpcnRoZGF5LCBhbm5pdmVyc2FyeSwgZXh0cmEgYmVkLCBhbnl0aGluZyB5b3Ugd291bGQgbGlrZSB1cyB0byBrbm93Ij48L3RleHRhcmVhPjwvZGl2PgogICAgICAgICAgPHAgY2xhc3M9ImVyciIgaWQ9ImUyIiByb2xlPSJhbGVydCI+PC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5lIiBzdHlsZT0iY29sb3I6dmFyKC0tcGFwZXItaW5rKTtib3JkZXItY29sb3I6dmFyKC0tcGFwZXItbGluZSkiIHR5cGU9ImJ1dHRvbiIgZGF0YS1uZXh0PSIxIj5CYWNrPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kYXJrIiB0eXBlPSJidXR0b24iIGRhdGEtbmV4dD0iMyI+UmV2aWV3IGFuZCBwYXk8L2J1dHRvbj48L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icGFuZSIgaWQ9InAzIiBoaWRkZW4+CiAgICAgICAgICA8aDM+UmV2aWV3IGFuZCBwYXk8L2gzPgogICAgICAgICAgPHAgY2xhc3M9InN1YiI+Q2hlY2sgeW91ciByb29tcyBhbmQgdG90YWwsIGluY2x1ZGluZyAxMiUgR1NULCB0aGVuIGNob29zZSBob3cgeW91IHdvdWxkIGxpa2UgdG8gcGF5LjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9InBheS1ib3giPgogICAgICAgICAgICA8ZGl2IGlkPSJyZXZpZXdMaW5lcyIgY2xhc3M9InN0YXktbCI+PC9kaXY+CiAgICAgICAgICAgIDxzdHlsZT4ucG97ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym9yZGVyOjFweCBzb2xpZCAjYzk5ODJlO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjEycHggMTRweDttYXJnaW46OHB4IDA7Y3Vyc29yOnBvaW50ZXJ9LnBvIGlucHV0e21hcmdpbi10b3A6NXB4fS5wbyBzbWFsbHtkaXNwbGF5OmJsb2NrO29wYWNpdHk6Ljg7bWFyZ2luLXRvcDo0cHg7bGluZS1oZWlnaHQ6MS40NX08L3N0eWxlPgogICAgICAgICAgICA8ZmllbGRzZXQgc3R5bGU9ImJvcmRlcjowO3BhZGRpbmc6MDttYXJnaW46MTZweCAwIDAiPjxsZWdlbmQgc3R5bGU9ImZvbnQtc2l6ZToxN3B4O21hcmdpbi1ib3R0b206NnB4Ij5Ib3cgd291bGQgeW91IGxpa2UgdG8gcGF5PzwvbGVnZW5kPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0icG8iPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icGF5TW9kZSIgdmFsdWU9ImZ1bGwiIGNoZWNrZWQ+PHNwYW4+PGI+UGF5IGluIGZ1bGwgbm93PC9iPiA8c3BhbiBpZD0icG9GdWxsQW10Ij48L3NwYW4+PHNtYWxsPklmIHlvdXIgcGxhbnMgY2hhbmdlLCB5b3UgY2FuIHJlc2NoZWR1bGUgeW91ciBzdGF5IGZvciBhIOKCuTIwMCBjaGFuZ2UgZmVlLjwvc21hbGw+PC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJwbyI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJwYXlNb2RlIiB2YWx1ZT0iYWR2YW5jZSI+PHNwYW4+PGIgaWQ9InBvQWR2VCI+UGF5IOKCuTYwMCBub3c8L2I+IGFuZCB0aGUgcmVzdCBhdCB0aGUgcmVzb3J0PHNtYWxsIGlkPSJwb0FkdiI+PC9zbWFsbD48L3NwYW4+PC9sYWJlbD4KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgPHAgY2xhc3M9Im5vdGUiPllvdSBwYXkgc2VjdXJlbHkgd2l0aCBSYXpvcnBheSBvbiB0aGUgbmV4dCBzY3JlZW4sIHVzaW5nIFVQSSwgY2FyZCBvciBuZXQgYmFua2luZy4gVGhlIHJlc29ydCBjb25maXJtcyBhdmFpbGFiaWxpdHkgYWZ0ZXIgcGF5bWVudC48L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXdub3RlIiBpZD0icHJldmlld05vdGUiIHN0eWxlPSJtYXJnaW4tdG9wOjE0cHgiIGhpZGRlbj5QcmV2aWV3IG1vZGUuIE9uIHRoZSBsaXZlIHNpdGUgdGhpcyBidXR0b24gb3BlbnMgdGhlIHJlc29ydCdzIHBheW1lbnQgY2hlY2tvdXQuIE5vIHBheW1lbnQgaXMgdGFrZW4gaGVyZS48L2Rpdj4KICAgICAgICAgIDxwIGNsYXNzPSJlcnIiIGlkPSJlMyIgcm9sZT0iYWxlcnQiPjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tbGluZSIgc3R5bGU9ImNvbG9yOnZhcigtLXBhcGVyLWluayk7Ym9yZGVyLWNvbG9yOnZhcigtLXBhcGVyLWxpbmUpIiB0eXBlPSJidXR0b24iIGRhdGEtbmV4dD0iMiI+QmFjazwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ29sZCIgaWQ9InBheUJ0biIgdHlwZT0iYnV0dG9uIj5Db250aW51ZSB0byBwYXltZW50PC9idXR0b24+PC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InBhbmUiIGlkPSJwNCIgaGlkZGVuPgogICAgICAgICAgPGgzPllvdXIgYm9va2luZyByZXF1ZXN0PC9oMz4KICAgICAgICAgIDxwIGNsYXNzPSJzdWIiPlRoZSByZXNvcnQgd2lsbCBjb250YWN0IHlvdSB0byBjb25maXJtLiBLZWVwIHRoaXMgcmVmZXJlbmNlIGFuZCBzaG93IGl0IGF0IHJlY2VwdGlvbiB3aGVuIHlvdSBhcnJpdmUuPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0icGFzcyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGFtcCIgaWQ9InBhc3NTdGFtcCI+UmVxdWVzdCBzZW50PC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWYiIGlkPSJwYXNzUmVmIj48L2Rpdj4KICAgICAgICAgICAgPGRsIGlkPSJwYXNzRGwiPjwvZGw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOjIycHggMCA4cHg7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxMnB4O2xldHRlci1zcGFjaW5nOi4xOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1wYXBlci1tdXRlKSI+QSBub3RlIGJlZm9yZSB5b3UgdHJhdmVsPC9oND4KICAgICAgICAgIDxkaXYgY2xhc3M9IndlbGNvbWUiIGlkPSJ3ZWxjb21lIiBhcmlhLWxpdmU9InBvbGl0ZSI+UHJlcGFyaW5nIHlvdXIgbm90ZeKApjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kYXJrIiBpZD0iY29weVBhc3MiIHR5cGU9ImJ1dHRvbiI+Q29weSBwYXNzIGRldGFpbHM8L2J1dHRvbj48c3BhbiBjbGFzcz0ibm90ZSIgaWQ9ImNvcHlNc2ciPjwvc3Bhbj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8YXNpZGUgY2xhc3M9InN1bSIgYXJpYS1sYWJlbD0iWW91ciBzdGF5Ij4KICAgICAgICA8aDQ+WW91ciBzdGF5PC9oND4KICAgICAgICA8ZGl2IGNsYXNzPSJzdGF5LWwiIGlkPSJsaW5lcyI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnJpZWYiIGlkPSJicmllZiI+UGxhbiBhIHRyaXAgYWJvdmUgYW5kIHlvdXIgc3VtbWFyeSBhcHBlYXJzIGhlcmUuPC9kaXY+CiAgICAgICAgPHAgY2xhc3M9IndoeSI+Um9vbSByYXRlcyBhcmUgcGVyIG5pZ2h0IGFuZCBleGNsdWRlIEdTVC4gMTIlIEdTVCBpcyBhZGRlZCB0byB5b3VyIHRvdGFsLiBCcmVha2Zhc3QgaXMgbm90IGluY2x1ZGVkLiBDaGlsZHJlbiBiZWxvdyA5IHN0YXkgZnJlZS48L3A+CiAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InMiIGlkPSJzdGF5Ij4KICA8ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxkaXYgY2xhc3M9InMtaGVhZCI+PHNwYW4gY2xhc3M9ImV5ZWJyb3ciPlRoZSBzdGF5PC9zcGFuPjxoMj5Sb29tcyBmb3IgY291cGxlcyBhbmQgZmFtaWxpZXM8L2gyPjxwPk5pbmUgZG91YmxlIHJvb21zIGFuZCBvbmUgZm91ci1iZWQgZmFtaWx5IHJvb20sIGVhY2ggd2l0aCBhIGRlc2VydCBjb29sZXIuPC9wPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ic3RheSI+CiAgICAgIDxkaXYgY2xhc3M9InBoIiBkYXRhLXBob3RvPSJyb29tIiBkYXRhLXNlZWQ9IjEiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzdGF5LWJvZHkiPgogICAgICAgIDxkaXYgY2xhc3M9InJ0Ij48ZGl2PjxoMz5Eb3VibGUgUm9vbTwvaDM+PHAgY2xhc3M9InJzIj5Eb3VibGUgb2NjdXBhbmN5LCBkZXNlcnQgY29vbGVyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InByaWNlIj48Yj7igrkyLDIwMDwvYj48c3Bhbj4rIDEyJSBHU1QsIHBlciBuaWdodDwvc3Bhbj48L2Rpdj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJydCI+PGRpdj48aDM+RmFtaWx5IFJvb208L2gzPjxwIGNsYXNzPSJycyI+NCBiZWRzLCBkZXNlcnQgY29vbGVyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InByaWNlIj48Yj7igrkzLDAwMDwvYj48c3Bhbj4rIDEyJSBHU1QsIHBlciBuaWdodDwvc3Bhbj48L2Rpdj48L2Rpdj4KICAgICAgICA8dWwgY2xhc3M9InRpY2tzIj48bGk+RGVzZXJ0IGNvb2xlciBpbiBldmVyeSByb29tPC9saT48bGk+RXh0cmEgYmVkIOKCuTUwMCBhIG5pZ2h0PC9saT48bGk+Q2hpbGRyZW4gYmVsb3cgOSBzdGF5IGZyZWU8L2xpPjxsaT5BbGwgcmF0ZXMgZXhjbHVkZSAxMiUgR1NUPC9saT48bGk+V2ktRmkgYWxsIGRheTwvbGk+PGxpPjI0LWhvdXIgcG93ZXIgYmFja3VwPC9saT48bGk+SG90IGFuZCBjb2xkIHdhdGVyPC9saT48bGk+RnJlZSBwYXJraW5nPC9saT48L3VsPgogICAgICAgIDxwIGNsYXNzPSJycyI+QnJlYWtmYXN0IGlzIG5vdCBpbmNsdWRlZC4gTmFybyBSZXN0YXVyYW50IHNlcnZlcyBwdXJlIHZlZ2V0YXJpYW4gbWVhbHMuPC9wPgogICAgICAgIDxhIGNsYXNzPSJidG4gYnRuLWdvbGQiIGhyZWY9IiNib29rIiBzdHlsZT0ianVzdGlmeS1zZWxmOnN0YXJ0Ij5DaGVjayBkYXRlczwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InMgYmFuZCIgaWQ9ImV4cGVyaWVuY2VzIj4KICA8ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxkaXYgY2xhc3M9InMtaGVhZCI+PHNwYW4gY2xhc3M9ImV5ZWJyb3ciPk9uIHRoZSBwcm9wZXJ0eTwvc3Bhbj48aDI+RWF0LCB3YWxrLCB1bndpbmQ8L2gyPjxwPkV2ZXJ5dGhpbmcgaXMgd2l0aGluIHRoZSBncm91bmRzLCBhbmQgdGhlIHZlZ2V0YXJpYW4ga2l0Y2hlbiBkcmF3cyBvbiB0aGUgcmVzb3J0J3Mgb3duIG9yZ2FuaWMgZ2FyZGVuLjwvcD48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InRpbGVzIj4KICAgICAgPGRpdiBjbGFzcz0idGlsZSI+PGRpdiBjbGFzcz0icGggdHBoIiBkYXRhLXBob3RvPSJkaW5pbmciIGRhdGEtc2VlZD0iMiI+PC9kaXY+PHNwYW4gY2xhc3M9ImsiPkRpbmluZzwvc3Bhbj48aDM+TmFybyBSZXN0YXVyYW50PC9oMz48cD5QdXJlIHZlZ2V0YXJpYW4gZm9vZCwgc2VydmVkIG9uIHNpdGUuIEZvb2QgZGVsaXZlcnkgaXMgYXZhaWxhYmxlIHdpdGhpbiAxNSBrbS48L3A+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUiPjxzcGFuIGNsYXNzPSJrIj5PcGVuaW5nIHNvb248L3NwYW4+PGgzPlN3aW1taW5nIHBvb2w8L2gzPjxwPk91ciBzd2ltbWluZyBwb29sIHdpbGwgYmUgaW5hdWd1cmF0ZWQgc2hvcnRseS4gQXNrIHVzIGZvciB0aGUgb3BlbmluZyBkYXRlLjwvcD48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idGlsZSI+PGRpdiBjbGFzcz0icGggdHBoIiBkYXRhLXBob3RvPSJsYXduIiBkYXRhLXNlZWQ9IjMiPjwvZGl2PjxzcGFuIGNsYXNzPSJrIj5HYXJkZW48L3NwYW4+PGgzPk9yZ2FuaWMgdmVnZXRhYmxlIGdhcmRlbjwvaDM+PHA+V2FsayB0aHJvdWdoIHRoZSBiZWRzIHdoZXJlIG11Y2ggb2YgdGhlIGtpdGNoZW4ncyBwcm9kdWNlIGlzIGdyb3duLjwvcD48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idGlsZSI+PGRpdiBjbGFzcz0icGggdHBoIiBkYXRhLXBob3RvPSJ3YWxrIiBkYXRhLXNlZWQ9IjQiPjwvZGl2PjxzcGFuIGNsYXNzPSJrIj5PdXRkb29yczwvc3Bhbj48aDM+TmF0dXJlIHdhbGtzIGFuZCB0cmVrczwvaDM+PHA+Rm9yZXN0IHBhdGhzIGFuZCBzaG9ydCB0cmVrcyBiZWdpbiBjbG9zZSB0byB0aGUgcm9vbXMuIEFzayB0aGUgZnJvbnQgZGVzayBmb3IgYSBndWlkZS48L3A+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUiPjxzcGFuIGNsYXNzPSJrIj5Db21mb3J0PC9zcGFuPjxoMz5Mb29rZWQgYWZ0ZXIgYWxsIGRheTwvaDM+PHA+RGVzZXJ0IGNvb2xlcnMgaW4gZXZlcnkgcm9vbSwgMjQvNyBzZWN1cml0eSwgV2ktRmksIHBvd2VyIGJhY2t1cCwgaG90IGFuZCBjb2xkIHdhdGVyLCBhbmQgZnJlZSBwYXJraW5nIGZvciBtb3JlIHRoYW4gNTAgdmVoaWNsZXMuPC9wPjwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzIiBpZD0iZXZlbnRzIj4KICA8ZGl2IGNsYXNzPSJ3cmFwIHNwbGl0Ij4KICAgIDxkaXYgY2xhc3M9InMtaGVhZCIgc3R5bGU9Im1hcmdpbjowIj48c3BhbiBjbGFzcz0iZXllYnJvdyI+V2VkZGluZ3MgYW5kIGV2ZW50czwvc3Bhbj48aDI+Q2VsZWJyYXRlIGluIHRoZSBmb290aGlsbHM8L2gyPjxwPkEgNDAgw5cgNDAgZnQgY29uZmVyZW5jZSBoYWxsIGFuZCBvcGVuIGdyb3VuZHMgc3VpdCBkZXN0aW5hdGlvbiB3ZWRkaW5ncywgYmlydGhkYXlzIGFuZCBraXR0eSBwYXJ0aWVzLiBQYXJraW5nIGhvbGRzIG1vcmUgdGhhbiA1MCB2ZWhpY2xlcy48L3A+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1saW5lIiB0eXBlPSJidXR0b24iIGlkPSJldkFzayIgc3R5bGU9Imp1c3RpZnktc2VsZjpzdGFydCI+QXNrIGFib3V0IGFuIGV2ZW50PC9idXR0b24+PGRpdiBjbGFzcz0icGgiIGRhdGEtcGhvdG89IndlZGRpbmciIGRhdGEtc2VlZD0iMSIgc3R5bGU9ImhlaWdodDoyNjBweDttYXJnaW4tdG9wOjIycHg7Ym9yZGVyLXJhZGl1czoxNHB4O292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlIj48L2Rpdj48L2Rpdj4KICAgIDxkaXY+CiAgICAgIDxoMyBzdHlsZT0iZm9udC1zaXplOjI4cHgiPlBsYW4geW91ciBkYXlzIHdpdGggdXM8L2gzPgogICAgICA8cCBzdHlsZT0iY29sb3I6dmFyKC0tbWlzdDIpO21hcmdpbjoxMHB4IDAgMTZweCI+VGVsbCB1cyBob3cgbWFueSBkYXlzIHlvdSBoYXZlIGFuZCB3aGF0IHlvdXIgZ3JvdXAgZW5qb3lzLiBXZSBidWlsZCBhbiBpdGluZXJhcnkgYXJvdW5kIHRoZSByZXNvcnQgYW5kIHRoZSBzaWdodHMgbmVhcmJ5LjwvcD4KICAgICAgPGRpdiBjbGFzcz0icm93Ij48aW5wdXQgaWQ9InBsYW5JbiIgdHlwZT0idGV4dCIgYXJpYS1sYWJlbD0iSXRpbmVyYXJ5IHJlcXVlc3QiIHZhbHVlPSIyIGRheXMsIGZhbWlseSB3aXRoIGtpZHMsIGxpa2VzIHRlbXBsZXMgYW5kIGVhc3kgd2Fsa3MiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ29sZCIgaWQ9InBsYW5HbyIgdHlwZT0iYnV0dG9uIj5CdWlsZCBpdGluZXJhcnk8L2J1dHRvbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0icGxhbi1vdXQiIGlkPSJwbGFuT3V0IiBhcmlhLWxpdmU9InBvbGl0ZSI+WW91ciBpdGluZXJhcnkgYXBwZWFycyBoZXJlLjwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9uIGNsYXNzPSJzIGJhbmQiIGlkPSJleHBsb3JlIj4KICA8ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxkaXYgY2xhc3M9InNwbGl0Ij4KICAgICAgPGRpdiBjbGFzcz0icy1oZWFkIiBzdHlsZT0ibWFyZ2luOjAiPjxzcGFuIGNsYXNzPSJleWVicm93Ij5HZXR0aW5nIGFyb3VuZDwvc3Bhbj48aDI+Q2xvc2UgdG8gS2Fsc2ksIERha3BhdGhhciBhbmQgQXNhbjwvaDI+PHA+V2UgYXJlIG9uIHRoZSBZYW11bm90cmkgSGlnaHdheSBuZWFyIFZpa2FzIE5hZ2FyLiBIaXN0b3J5LCB3YXRlciBhbmQgdGVtcGxlcyBhcmUgYSBzaG9ydCBkcml2ZSBhd2F5LCBpbmNsdWRpbmcgTWFoYXN1LCBCaGFkcmFqLCBCaGFkcmEgS2FsaSBhbmQgU3dheWFtYmh1IFNoaXZhIHRlbXBsZXMuPC9wPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJiYXJzIiByb2xlPSJsaXN0IiBhcmlhLWxhYmVsPSJEaXN0YW5jZXMgZnJvbSB0aGUgcmVzb3J0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJiYXIiIHJvbGU9Imxpc3RpdGVtIj48ZGl2IGNsYXNzPSJ0Ij48c3Bhbj5Bc2hva2EgUm9jayBFZGljdHMsIEthbHNpPC9zcGFuPjxzcGFuPjYga208L3NwYW4+PC9kaXY+PGkgc3R5bGU9Ii0tdzoxMyUiPjwvaT48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJiYXIiIHJvbGU9Imxpc3RpdGVtIj48ZGl2IGNsYXNzPSJ0Ij48c3Bhbj5EYWtwYXRoYXIgQmFycmFnZTwvc3Bhbj48c3Bhbj44IGttPC9zcGFuPjwvZGl2PjxpIHN0eWxlPSItLXc6MTglIj48L2k+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYmFyIiByb2xlPSJsaXN0aXRlbSI+PGRpdiBjbGFzcz0idCI+PHNwYW4+QXNhbiBCYXJyYWdlLCBib2F0aW5nIGFuZCBiaXJkd2F0Y2hpbmc8L3NwYW4+PHNwYW4+MjUga208L3NwYW4+PC9kaXY+PGkgc3R5bGU9Ii0tdzo1NiUiPjwvaT48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJiYXIiIHJvbGU9Imxpc3RpdGVtIj48ZGl2IGNsYXNzPSJ0Ij48c3Bhbj5EZWhyYWR1bjwvc3Bhbj48c3Bhbj40NSBrbTwvc3Bhbj48L2Rpdj48aSBzdHlsZT0iLS13OjEwMCUiPjwvaT48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdhbGxlcnkiPgogICAgICA8ZmlndXJlPjxkaXYgY2xhc3M9InBoIiBkYXRhLXBob3RvPSJnYXRlIiBkYXRhLXNlZWQ9IjIiPjwvZGl2PjxmaWdjYXB0aW9uPlRoZSBlbnRyYW5jZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4KICAgICAgPGZpZ3VyZT48ZGl2IGNsYXNzPSJwaCIgZGF0YS1waG90bz0iY290dGFnZSIgZGF0YS1zZWVkPSIzIj48L2Rpdj48ZmlnY2FwdGlvbj5Db3R0YWdlcyBhbmQgZ2FyZGVuPC9maWdjYXB0aW9uPjwvZmlndXJlPgogICAgICA8ZmlndXJlPjxkaXYgY2xhc3M9InBoIiBkYXRhLXBob3RvPSJsYXduIiBkYXRhLXNlZWQ9IjQiPjwvZGl2PjxmaWdjYXB0aW9uPkdhcmRlbiBwYXRoczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4KICAgICAgPGZpZ3VyZT48ZGl2IGNsYXNzPSJwaCIgZGF0YS1waG90bz0iZGluaW5nIiBkYXRhLXNlZWQ9IjUiPjwvZGl2PjxmaWdjYXB0aW9uPk5hcm8gUmVzdGF1cmFudDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4KICAgICAgPGZpZ3VyZT48ZGl2IGNsYXNzPSJwaCIgZGF0YS1waG90bz0id2VkZGluZyIgZGF0YS1zZWVkPSIxIj48L2Rpdj48ZmlnY2FwdGlvbj5XZWRkaW5nIHNldHVwPC9maWdjYXB0aW9uPjwvZmlndXJlPgogICAgICA8ZmlndXJlPjxkaXYgY2xhc3M9InBoIiBkYXRhLXBob3RvPSJyb29tMiIgZGF0YS1zZWVkPSIyIj48L2Rpdj48ZmlnY2FwdGlvbj5BIGRvdWJsZSByb29tPC9maWdjYXB0aW9uPjwvZmlndXJlPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJyZWFjaCI+CiAgICAgIDxkaXYgY2xhc3M9Im1hcGNhcmQiPgogICAgICAgIDxkaXYgY2xhc3M9Im1hcGFydCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJTa2V0Y2ggbWFwIHNob3dpbmcgdGhlIHJlc29ydCBvbiB0aGUgWWFtdW5vdHJpIEhpZ2h3YXkgYmV0d2VlbiBEZWhyYWR1biBhbmQgdGhlIGhpbGxzIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDQ4MCAzMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIHNsaWNlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgIDxyZWN0IHdpZHRoPSI0ODAiIGhlaWdodD0iMzAwIiBmaWxsPSIjMGYyYTIyIi8+CiAgICAgICAgICAgIDxnIHN0cm9rZT0iIzFkNDQzOCIgc3Ryb2tlLXdpZHRoPSIxIj48cGF0aCBkPSJNMCA2MEg0ODBNMCAxMjBINDgwTTAgMTgwSDQ4ME0wIDI0MEg0ODBNODAgMFYzMDBNMTYwIDBWMzAwTTI0MCAwVjMwME0zMjAgMFYzMDBNNDAwIDBWMzAwIi8+PC9nPgogICAgICAgICAgICA8cGF0aCBkPSJNLTEwIDI1MCBDOTAgMjEwIDE1MCAyNDAgMjQwIDE5MCBTNDAwIDExMCA1MDAgMTMwIiBzdHJva2U9IiM2M2I3YjAiIHN0cm9rZS13aWR0aD0iNyIgZmlsbD0ibm9uZSIgb3BhY2l0eT0iLjU1Ii8+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0tMTAgMjgwIEMxMjAgMjMwIDIwMCAxOTAgMjYwIDE1MCBTNDAwIDYwIDUwMCA0MCIgc3Ryb2tlPSIjZThmMGVhIiBzdHJva2Utd2lkdGg9IjUiIGZpbGw9Im5vbmUiIG9wYWNpdHk9Ii44NSIvPgogICAgICAgICAgICA8cGF0aCBkPSJNLTEwIDI4MCBDMTIwIDIzMCAyMDAgMTkwIDI2MCAxNTAgUzQwMCA2MCA1MDAgNDAiIHN0cm9rZT0iIzBmMmEyMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjEwIDkiIGZpbGw9Im5vbmUiLz4KICAgICAgICAgICAgPGcgZmlsbD0iI2VmYmY2MiI+PGNpcmNsZSBjeD0iMjYyIiBjeT0iMTUwIiByPSI5Ii8+PGNpcmNsZSBjeD0iMjYyIiBjeT0iMTUwIiByPSIyMCIgb3BhY2l0eT0iLjIyIi8+PC9nPgogICAgICAgICAgICA8ZyBmaWxsPSIjZThmMGVhIiBmb250LWZhbWlseT0iR2VvcmdpYSxzZXJpZiI+PHRleHQgeD0iMjc4IiB5PSIxNDYiIGZvbnQtc2l6ZT0iMTUiPk5hcm8gRWNvIFJlc29ydDwvdGV4dD48dGV4dCB4PSIzMCIgeT0iMjcwIiBmb250LXNpemU9IjEyIiBvcGFjaXR5PSIuOCI+VG93YXJkcyBEZWhyYWR1biwgNDUga208L3RleHQ+PHRleHQgeD0iMzMwIiB5PSI1MCIgZm9udC1zaXplPSIxMiIgb3BhY2l0eT0iLjgiPllhbXVub3RyaSBIaWdod2F5PC90ZXh0PjwvZz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPHNwYW4gY2xhc3M9Im1hcG5vdGUiPlNrZXRjaCwgbm90IHRvIHNjYWxlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1hcGJ0bnMiPjxhIGNsYXNzPSJidG4gYnRuLWdvbGQiIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PU5hcm8rRWNvK1Jlc29ydCtWaWthcytOYWdhcitVdHRhcmFraGFuZCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPk9wZW4gaW4gR29vZ2xlIE1hcHM8L2E+PGEgY2xhc3M9ImJ0biBidG4tbGluZSIgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2Rpci8\/YXBpPTEmZGVzdGluYXRpb249TmFybytFY28rUmVzb3J0K1Zpa2FzK05hZ2FyK1V0dGFyYWtoYW5kJnRyYXZlbG1vZGU9ZHJpdmluZyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPkRpcmVjdGlvbnMgdG8gdGhlIHJlc29ydDwvYT48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDx1bCBjbGFzcz0iZGlycyIgYXJpYS1sYWJlbD0iTmVhcmJ5IHBsYWNlcyB3aXRoIGRpcmVjdGlvbnMgZnJvbSB0aGUgcmVzb3J0Ij4KICAgICAgICA8bGk+PHNwYW4+QXNob2thIFJvY2sgRWRpY3RzLCBLYWxzaTxzbWFsbD42IGttPC9zbWFsbD48L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2Rpci8\/YXBpPTEmb3JpZ2luPU5hcm8rRWNvK1Jlc29ydCtWaWthcytOYWdhcitVdHRhcmFraGFuZCZkZXN0aW5hdGlvbj1Bc2hva2ErUm9jaytFZGljdHMrS2Fsc2krVXR0YXJha2hhbmQmdHJhdmVsbW9kZT1kcml2aW5nIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+RGlyZWN0aW9uczwvYT48L2xpPgogICAgICAgIDxsaT48c3Bhbj5EYWtwYXRoYXIgQmFycmFnZTxzbWFsbD44IGttPC9zbWFsbD48L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2Rpci8\/YXBpPTEmb3JpZ2luPU5hcm8rRWNvK1Jlc29ydCtWaWthcytOYWdhcitVdHRhcmFraGFuZCZkZXN0aW5hdGlvbj1EYWtwYXRoYXIrQmFycmFnZStVdHRhcmFraGFuZCZ0cmF2ZWxtb2RlPWRyaXZpbmciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj5EaXJlY3Rpb25zPC9hPjwvbGk+CiAgICAgICAgPGxpPjxzcGFuPkFzYW4gQmFycmFnZSwgYm9hdGluZyBhbmQgYmlyZHdhdGNoaW5nPHNtYWxsPjI1IGttPC9zbWFsbD48L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2Rpci8\/YXBpPTEmb3JpZ2luPU5hcm8rRWNvK1Jlc29ydCtWaWthcytOYWdhcitVdHRhcmFraGFuZCZkZXN0aW5hdGlvbj1Bc2FuK0JhcnJhZ2UrVXR0YXJha2hhbmQmdHJhdmVsbW9kZT1kcml2aW5nIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+RGlyZWN0aW9uczwvYT48L2xpPgogICAgICAgIDxsaT48c3Bhbj5NYWhhc3UgVGVtcGxlPHNtYWxsPm5lYXJieTwvc21hbGw+PC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9kaXIvP2FwaT0xJm9yaWdpbj1OYXJvK0VjbytSZXNvcnQrVmlrYXMrTmFnYXIrVXR0YXJha2hhbmQmZGVzdGluYXRpb249TWFoYXN1K1RlbXBsZStVdHRhcmFraGFuZCZ0cmF2ZWxtb2RlPWRyaXZpbmciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj5EaXJlY3Rpb25zPC9hPjwvbGk+CiAgICAgICAgPGxpPjxzcGFuPkJoYWRyYWogVGVtcGxlPHNtYWxsPm5lYXJieTwvc21hbGw+PC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9kaXIvP2FwaT0xJm9yaWdpbj1OYXJvK0VjbytSZXNvcnQrVmlrYXMrTmFnYXIrVXR0YXJha2hhbmQmZGVzdGluYXRpb249QmhhZHJhaitUZW1wbGUrVXR0YXJha2hhbmQmdHJhdmVsbW9kZT1kcml2aW5nIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+RGlyZWN0aW9uczwvYT48L2xpPgogICAgICAgIDxsaT48c3Bhbj5CaGFkcmEgS2FsaSBUZW1wbGU8c21hbGw+bmVhcmJ5PC9zbWFsbD48L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2Rpci8\/YXBpPTEmb3JpZ2luPU5hcm8rRWNvK1Jlc29ydCtWaWthcytOYWdhcitVdHRhcmFraGFuZCZkZXN0aW5hdGlvbj1CaGFkcmErS2FsaStUZW1wbGUrVXR0YXJha2hhbmQmdHJhdmVsbW9kZT1kcml2aW5nIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+RGlyZWN0aW9uczwvYT48L2xpPgogICAgICAgIDxsaT48c3Bhbj5Td2F5YW1iaHUgU2hpdmEgVGVtcGxlPHNtYWxsPm5lYXJieTwvc21hbGw+PC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9kaXIvP2FwaT0xJm9yaWdpbj1OYXJvK0VjbytSZXNvcnQrVmlrYXMrTmFnYXIrVXR0YXJha2hhbmQmZGVzdGluYXRpb249U3dheWFtYmh1K1NoaXZhK1RlbXBsZStVdHRhcmFraGFuZCZ0cmF2ZWxtb2RlPWRyaXZpbmciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj5EaXJlY3Rpb25zPC9hPjwvbGk+CiAgICAgICAgPGxpPjxzcGFuPkRlaHJhZHVuPHNtYWxsPjQ1IGttPC9zbWFsbD48L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2Rpci8\/YXBpPTEmb3JpZ2luPU5hcm8rRWNvK1Jlc29ydCtWaWthcytOYWdhcitVdHRhcmFraGFuZCZkZXN0aW5hdGlvbj1EZWhyYWR1bitVdHRhcmFraGFuZCZ0cmF2ZWxtb2RlPWRyaXZpbmciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj5EaXJlY3Rpb25zPC9hPjwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9InMiIGlkPSJmYXEiPgogIDxkaXYgY2xhc3M9IndyYXAgc3BsaXQiIHN0eWxlPSJhbGlnbi1pdGVtczpzdGFydCI+CiAgICA8ZGl2IGNsYXNzPSJzLWhlYWQiIHN0eWxlPSJtYXJnaW46MCI+PHNwYW4gY2xhc3M9ImV5ZWJyb3ciPlF1ZXN0aW9uczwvc3Bhbj48aDI+QmVmb3JlIHlvdSBib29rPC9oMj48cD5SYXRlcywgZm9vZCwgcm9vbXMgYW5kIGdldHRpbmcgaGVyZS4gQW55dGhpbmcgZWxzZSwgYXNrIHRoZSBjb25jaWVyZ2UgYXQgdGhlIGJvdHRvbSByaWdodC48L3A+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmYXEiPgogICAgICA8ZGV0YWlscz48c3VtbWFyeT5XaGF0IGFyZSB0aGUgcm9vbSByYXRlcz88L3N1bW1hcnk+PHA+QSBEb3VibGUgUm9vbSBpcyDigrkyLDIwMCBwZXIgbmlnaHQgYW5kIHRoZSA0LWJlZCBGYW1pbHkgUm9vbSBpcyDigrkzLDAwMCBwZXIgbmlnaHQuIEFuIGV4dHJhIGJlZCBpcyDigrk1MDAgcGVyIG5pZ2h0LCBhbmQgY2hpbGRyZW4gYmVsb3cgOSBzdGF5IGZyZWUuIFJhdGVzIGRvIG5vdCBpbmNsdWRlIEdTVC48L3A+PC9kZXRhaWxzPgogICAgICA8ZGV0YWlscz48c3VtbWFyeT5JcyBHU1QgaW5jbHVkZWQgaW4gdGhlIHJhdGVzPzwvc3VtbWFyeT48cD5Oby4gVGhlIGxpc3RlZCByYXRlcyBleGNsdWRlIEdTVC4gMTIlIEdTVCBpcyBhZGRlZCB0byB5b3VyIHRvdGFsLCBhbmQgdGhlIGJvb2tpbmcgc3VtbWFyeSBzaG93cyBpdCBhcyBhIHNlcGFyYXRlIGxpbmUuPC9wPjwvZGV0YWlscz4KICAgICAgPGRldGFpbHM+PHN1bW1hcnk+SXMgYnJlYWtmYXN0IGluY2x1ZGVkPzwvc3VtbWFyeT48cD5Oby4gQnJlYWtmYXN0IGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgcm9vbSByYXRlLiBOYXJvIFJlc3RhdXJhbnQgaXMgb24gc2l0ZSBhbmQgc2VydmVzIHB1cmUgdmVnZXRhcmlhbiBmb29kLjwvcD48L2RldGFpbHM+CiAgICAgIDxkZXRhaWxzPjxzdW1tYXJ5PklzIHRoZSByZXNvcnQgY291cGxlIGZyaWVuZGx5Pzwvc3VtbWFyeT48cD5ZZXMuIFVubWFycmllZCBjb3VwbGVzIGFyZSB3ZWxjb21lIGF0IE5hcm8gRWNvIFJlc29ydC48L3A+PC9kZXRhaWxzPgogICAgICA8ZGV0YWlscz48c3VtbWFyeT5EbyB0aGUgcm9vbXMgaGF2ZSBhaXIgY29uZGl0aW9uaW5nPzwvc3VtbWFyeT48cD5FdmVyeSByb29tIGhhcyBhIGRlc2VydCBjb29sZXIuPC9wPjwvZGV0YWlscz4KICAgICAgPGRldGFpbHM+PHN1bW1hcnk+SXMgdGhlIHN3aW1taW5nIHBvb2wgb3Blbj88L3N1bW1hcnk+PHA+Tm90IHlldC4gVGhlIHBvb2wgd2lsbCBiZSBpbmF1Z3VyYXRlZCBzaG9ydGx5LiBBc2sgdXMgZm9yIHRoZSBvcGVuaW5nIGRhdGUuPC9wPjwvZGV0YWlscz4KICAgICAgPGRldGFpbHM+PHN1bW1hcnk+RG8geW91IHNlcnZlIG5vbi12ZWdldGFyaWFuIGZvb2Q\/PC9zdW1tYXJ5PjxwPk5vLiBUaGUgcmVzdGF1cmFudCBpcyBwdXJlIHZlZ2V0YXJpYW4uPC9wPjwvZGV0YWlscz4KICAgICAgPGRldGFpbHM+PHN1bW1hcnk+SG93IGZhciBhcmUgeW91IGZyb20gRGVocmFkdW4\/PC9zdW1tYXJ5PjxwPldlIGFyZSA0NSBrbSBmcm9tIERlaHJhZHVuIG9uIHRoZSBZYW11bm90cmkgSGlnaHdheSwgbmVhciBWaWthcyBOYWdhci4gVXNlIHRoZSBHb29nbGUgTWFwcyBidXR0b25zIGFib3ZlIGZvciBsaXZlIGRpcmVjdGlvbnMuPC9wPjwvZGV0YWlscz4KICAgICAgPGRldGFpbHM+PHN1bW1hcnk+SXMgdGhlcmUgcGFya2luZz88L3N1bW1hcnk+PHA+WWVzLiBQYXJraW5nIGlzIGZyZWUgYW5kIGhvbGRzIG1vcmUgdGhhbiA1MCB2ZWhpY2xlcy48L3A+PC9kZXRhaWxzPgogICAgICA8ZGV0YWlscz48c3VtbWFyeT5DYW4gSSBob3N0IGEgd2VkZGluZyBvciBldmVudD88L3N1bW1hcnk+PHA+WWVzLiBXZSBob3N0IGRlc3RpbmF0aW9uIHdlZGRpbmdzLCBiaXJ0aGRheXMgYW5kIGtpdHR5IHBhcnRpZXMsIGFuZCBoYXZlIGEgNDAgw5cgNDAgZnQgY29uZmVyZW5jZSBoYWxsLiBBc2sgdGhlIGNvbmNpZXJnZSBhbmQgdGhlIHRlYW0gd2lsbCBjb25maXJtIGRhdGVzIGFuZCBxdW90ZXMuPC9wPjwvZGV0YWlscz4KICAgICAgPGRldGFpbHM+PHN1bW1hcnk+SG93IGRvZXMgY2hlY2staW4gd29yaz88L3N1bW1hcnk+PHA+Qm9vayBvbmxpbmUgYW5kIGFkZCB5b3VyIGRldGFpbHMsIGFycml2YWwgdGltZSBhbmQgdmVoaWNsZSBudW1iZXIuIFlvdSByZWNlaXZlIGEgY2hlY2staW4gcGFzcywgc28gcmVjZXB0aW9uIG9ubHkgaGFzIHRvIGhhbmQgeW91IHRoZSBrZXkuPC9wPjwvZGV0YWlscz4KICAgICAgPGRldGFpbHM+PHN1bW1hcnk+Q2FuIEkgcGF5IGEgc21hbGwgYW1vdW50IG5vdz88L3N1bW1hcnk+PHA+WWVzLiBZb3UgY2FuIHBheSDigrk2MDAgcGVyIHJvb20gbm93IGFuZCB0aGUgcmVzdCBhdCB0aGUgcmVzb3J0LiBJZiB5b3UgZG8gbm90IGFycml2ZSwgdGhlIGFkdmFuY2UgaXMgZm9yZmVpdGVkIGFuZCBpcyBub3QgcmVmdW5kYWJsZS48L3A+PC9kZXRhaWxzPgogICAgICA8ZGV0YWlscz48c3VtbWFyeT5DYW4gSSByZXNjaGVkdWxlIG15IHN0YXk\/PC9zdW1tYXJ5PjxwPklmIHlvdSBwYXkgaW4gZnVsbCwgeW91IGNhbiByZXNjaGVkdWxlIHdpdGggYSDigrkyMDAgY2hhbmdlIGZlZSBpZiB5b3VyIHBsYW5zIGNoYW5nZSwgc3ViamVjdCB0byBhdmFpbGFiaWxpdHkuPC9wPjwvZGV0YWlscz4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L3NlY3Rpb24+CjwvbWFpbj4KCjxmb290ZXI+CiAgPGRpdiBjbGFzcz0id3JhcCI+CiAgICA8ZGl2IGNsYXNzPSJjb2xzIj4KICAgICAgPGRpdj48aW1nIGNsYXNzPSJicmFuZC1sb2dvIiBzdHlsZT0id2lkdGg6ODRweDtoZWlnaHQ6ODRweDttYXJnaW4tYm90dG9tOjE0cHgiIHNyYz0iaHR0cHM6Ly9uYXJvZWNvLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9OYXJvX0Vjb19Mb2dvXy1yZW1vdmViZy1wcmV2aWV3LnBuZyIgYWx0PSJOYXJvIEVjbyBSZXNvcnQgbG9nbyIgd2lkdGg9Ijg0IiBoZWlnaHQ9Ijg0Ij48aDMgc3R5bGU9ImZvbnQtc2l6ZToyOHB4O21hcmdpbi1ib3R0b206MTJweCI+TmFybyBFY28gUmVzb3J0PC9oMz48cCBzdHlsZT0iY29sb3I6dmFyKC0tbWlzdDIpIj5VbnJlZmluZWQgSmF1bnNhcmkgaG9zcGl0YWxpdHksIG9uIHRoZSBZYW11bm90cmkgSGlnaHdheSBuZWFyIFZpa2FzIE5hZ2FyLCBVdHRhcmFraGFuZC48L3A+PC9kaXY+CiAgICAgIDxkaXY+PGg0PlZpc2l0PC9oND48dWw+PGxpPllhbXVub3RyaSBIaWdod2F5PC9saT48bGk+TmVhciBWaWthcyBOYWdhcjwvbGk+PGxpPjQ1IGttIGZyb20gRGVocmFkdW48L2xpPjwvdWw+PC9kaXY+CiAgICAgIDxkaXY+PGg0PlJlYWNoIHVzPC9oND48dWwgaWQ9ImNvbnRhY3RMaXN0Ij48L3VsPjwvZGl2PgogICAgPC9kaXY+CiAgICA8cCBjbGFzcz0iZmluZSI+Um9vbSByYXRlcyBhcmUgcGVyIG5pZ2h0IGFuZCBleGNsdWRlIDEyJSBHU1QuIEF2YWlsYWJpbGl0eSBpcyBjb25maXJtZWQgYnkgdGhlIHJlc29ydC48L3A+CiAgPC9kaXY+CjwvZm9vdGVyPgoKPGJ1dHRvbiBjbGFzcz0iZmFiIiBpZD0iZmFiIiB0eXBlPSJidXR0b24iIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJjaGF0Ij48c3BhbiBjbGFzcz0icHVsc2UiIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWdvbGQtaW5rKSI+PC9zcGFuPkFzayBOYXJvPC9idXR0b24+CjxkaXYgY2xhc3M9ImNoYXQiIGlkPSJjaGF0IiBoaWRkZW4gcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsPSJOYXJvIGNvbmNpZXJnZSI+CiAgPGRpdiBjbGFzcz0iY2hhdC1oIj48c3BhbiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4Ij48aW1nIGNsYXNzPSJicmFuZC1sb2dvIiBzdHlsZT0id2lkdGg6MjZweDtoZWlnaHQ6MjZweCIgc3JjPSJodHRwczovL25hcm9lY28uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L05hcm9fRWNvX0xvZ29fLXJlbW92ZWJnLXByZXZpZXcucG5nIiBhbHQ9IiIgd2lkdGg9IjI2IiBoZWlnaHQ9IjI2Ij5OYXJvIENvbmNpZXJnZTwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNoYXRYIiBhcmlhLWxhYmVsPSJDbG9zZSBjaGF0Ij7DlzwvYnV0dG9uPjwvZGl2PgogIDxkaXYgY2xhc3M9Im1zZ3MiIGlkPSJtc2dzIiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9kaXY+CiAgPGRpdiBjbGFzcz0icXMiIGlkPSJxcyI+PC9kaXY+CiAgPGZvcm0gaWQ9ImNoYXRGb3JtIj48aW5wdXQgaWQ9ImNoYXRJbiIgdHlwZT0idGV4dCIgYXJpYS1sYWJlbD0iTWVzc2FnZSB0aGUgY29uY2llcmdlIiBwbGFjZWhvbGRlcj0iQXNrIGFib3V0IHJvb21zLCBmb29kLCBldmVudHPigKYiIGF1dG9jb21wbGV0ZT0ib2ZmIj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhcmsiIHR5cGU9InN1Ym1pdCIgaWQ9ImNoYXRTZW5kIj5QYXk8L2J1dHRvbj48L2Zvcm0+CjwvZGl2PgoKPHNjcmlwdD4KLyogLS0tLS0tLS0tLSBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0gKi8KLyogQ29udGFjdCBkZXRhaWxzIGFyZSBoaWRkZW4gdW50aWwgZmlsbGVkIGluLiAqLwpjb25zdCBDT05UQUNUID0geyBwaG9uZToiIiwgd2hhdHNhcHA6IiIsIGVtYWlsOiIiIH07Ci8qIFBob3RvcyBhbHJlYWR5IG9uIG5hcm9lY28uY29tLiBUaGV5IGxvYWQgb24gdGhlIGxpdmUgc2l0ZTsgaW4gdGhpcyBwcmV2aWV3IHRoZSBkcmF3biBhcnQgc2hvd3MgaW5zdGVhZC4gKi8KY29uc3QgVSA9ICJodHRwczovL25hcm9lY28uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8iOwpjb25zdCBQSE9UT1MgPSB7CiAgcm9vbTogImh0dHBzOi8vbmFyb2Vjby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDgvRGVsdXhlLVN1aXRlLVJvb20uanBnIiwgcm9vbTI6ICJodHRwczovL25hcm9lY28uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA4L1N1cGVyaW9yLVJvb20uanBnIiwgZ2F0ZTogImh0dHBzOi8vbmFyb2Vjby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDcvV2hhdHNBcHAtSW1hZ2UtMjAyNS0wNy0wMi1hdC0xMi4wMC4yOS1BTS5qcGVnIiwgY290dGFnZTogImh0dHBzOi8vbmFyb2Vjby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDcvV2hhdHNBcHAtSW1hZ2UtMjAyNS0wNy0wMi1hdC0xMi4wMC4zMS1BTS0xLmpwZWciLCBsYXduOiAiaHR0cHM6Ly9uYXJvZWNvLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNS8wNy9XaGF0c0FwcC1JbWFnZS0yMDI1LTA3LTAyLWF0LTEyLjAwLjMwLUFNLmpwZWciLCBkaW5pbmc6ICJodHRwczovL25hcm9lY28uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA3L1doYXRzQXBwLUltYWdlLTIwMjUtMDctMDItYXQtMTIuMDAuMzMtQU0tMi5qcGVnIiwgd2VkZGluZzogImh0dHBzOi8vbmFyb2Vjby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDcvV2hhdHNBcHAtSW1hZ2UtMjAyNS0wNy0wMS1hdC0xMS41OS4zNy1QTS0xLmpwZWciLCBzdGFnZTogImh0dHBzOi8vbmFyb2Vjby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDcvV2hhdHNBcHAtSW1hZ2UtMjAyNS0wNy0wMS1hdC0xMS41OS4zOC1QTS5qcGVnIiwgZGVjb3I6ICJodHRwczovL25hcm9lY28uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA3L1doYXRzQXBwLUltYWdlLTIwMjUtMDctMDEtYXQtMTEuNTkuNDAtUE0uanBlZyIsIHdhbGs6ICJodHRwczovL25hcm9lY28uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA3L1doYXRzQXBwLUltYWdlLTIwMjUtMDctMDItYXQtMTIuMDAuMzQtQU0uanBlZyIsIHJlc29ydDogImh0dHBzOi8vbmFyb2Vjby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDcvV2hhdHNBcHAtSW1hZ2UtMjAyNS0wNy0wMi1hdC0xMi4wMC4zMC1BTS0xLTEuanBlZyIKfTsKLyogUGF5bWVudDogdGhlIHJlc29ydCdzIHBheW1lbnQgZ2F0ZXdheSBpcyBub3QgdG91Y2hlZCBieSB0aGlzIHBhZ2UuCiAgIE9uIHRoZSBsaXZlIHNpdGUsIGRlZmluZSB3aW5kb3cuTmFyb1BheShvcmRlcikgdG8gb3BlbiB0aGUgZXhpc3RpbmcgY2hlY2tvdXQgYW5kIHJlc29sdmUge3BhaWQ6dHJ1ZSwgcGF5bWVudElkfS4KICAgV2l0aG91dCBpdCwgdGhlIHBhZ2UgcnVucyBpbiBwcmV2aWV3IG1vZGUgYW5kIHRha2VzIG5vIHBheW1lbnQuICovCmNvbnN0IExJVkVfQ0Y3ID0geyBpZDo0NjkwLCB1cmw6Ii93cC1qc29uL2NvbnRhY3QtZm9ybS03L3YxL2NvbnRhY3QtZm9ybXMvNDY5MC9mZWVkYmFjayIgfTsKY29uc3QgREJMID0gMjIwMCwgRkFNID0gMzAwMCwgWEJFRCA9IDUwMCwgR1NUID0gMC4xMjsgbGV0IE1BWERCTCA9IDksIE1BWEZBTSA9IDE7CmNvbnN0IEZBQ1RTID0gWwogIk5hcm8gRWNvIFJlc29ydCwgWWFtdW5vdHJpIEhpZ2h3YXkgbmVhciBWaWthcyBOYWdhciwgVXR0YXJha2hhbmQsIDQ1IGttIGZyb20gRGVocmFkdW4uIiwKICJSb29tczogOSBEb3VibGUgT2NjdXBhbmN5IFJvb21zIGF0IFJzIDIsMjAwIHBlciBuaWdodCwgYW5kIDEgRmFtaWx5IFJvb20gd2l0aCA0IGJlZHMgYXQgUnMgMywwMDAgcGVyIG5pZ2h0LiBUaGVzZSByYXRlcyBkbyBub3QgaW5jbHVkZSBHU1QuIiwKICJFdmVyeSByb29tIGhhcyBhIGRlc2VydCBjb29sZXIuIEV4dHJhIGJlZCBpcyBScyA1MDAgcGVyIG5pZ2h0LiBDaGlsZHJlbiBiZWxvdyA5IHN0YXkgZnJlZS4gR1NUIG9mIDEyJSBpcyBhZGRlZCBvbiB0b3Agb2YgdGhlIHJvb20gcmF0ZXMuIEJyZWFrZmFzdCBpcyBub3QgaW5jbHVkZWQuIiwKICJOYXJvIFJlc3RhdXJhbnQgc2VydmVzIHB1cmUgdmVnZXRhcmlhbiBmb29kIG9ubHkuIEZvb2QgZGVsaXZlcnkgaXMgYXZhaWxhYmxlIHdpdGhpbiAxNSBrbS4iLAogIlN3aW1taW5nIHBvb2w6IGl0IHdpbGwgYmUgaW5hdWd1cmF0ZWQgc2hvcnRseSBhbmQgaXMgbm90IG9wZW4geWV0LiIsCiAiQWxzbzogV2ktRmksIDI0LWhvdXIgcG93ZXIgYmFja3VwLCBob3QgYW5kIGNvbGQgd2F0ZXIsIDI0Lzcgc2VjdXJpdHksIG9yZ2FuaWMgdmVnZXRhYmxlIGdhcmRlbiwgZnJlZSBwYXJraW5nIGZvciA1MCsgdmVoaWNsZXMuIiwKICJFdmVudHM6IGRlc3RpbmF0aW9uIHdlZGRpbmdzLCBiaXJ0aGRheXMsIGtpdHR5IHBhcnRpZXM7IGNvbmZlcmVuY2UgaGFsbCA0MCB4IDQwIGZ0LiIsCiAiTmVhcmJ5OiBBc2hva2EgUm9jayBFZGljdHMgYXQgS2Fsc2kgNiBrbSwgRGFrcGF0aGFyIEJhcnJhZ2UgOCBrbSwgQXNhbiBCYXJyYWdlIGJvYXRpbmcgYW5kIGJpcmR3YXRjaGluZyAyNSBrbTsgTWFoYXN1LCBCaGFkcmFqLCBCaGFkcmEgS2FsaSBhbmQgU3dheWFtYmh1IFNoaXZhIHRlbXBsZXMuIiwKICJBY3Rpdml0aWVzOiBuYXR1cmUgd2Fsa3MsIGZvcmVzdCBleHBsb3JhdGlvbiwgdHJla2tpbmcuIiwKICJQYXltZW50IG9wdGlvbnM6IHBheSBScyA2MDAgcGVyIHJvb20gbm93IGFuZCB0aGUgYmFsYW5jZSBhdCB0aGUgcmVzb3J0ICh0aGUgYWR2YW5jZSBpcyBub24tcmVmdW5kYWJsZSBhbmQgaXMgZm9yZmVpdGVkIGlmIHRoZSBndWVzdCBkb2VzIG5vdCBhcnJpdmUpLCBvciBwYXkgaW4gZnVsbCBub3c7IGEgZnVsbHkgcGFpZCBib29raW5nIGNhbiBiZSByZXNjaGVkdWxlZCBmb3IgYSBScyAyMDAgY2hhbmdlIGZlZSBpZiBwbGFucyBjaGFuZ2UuIiwKICJHdWVzdHMgYm9vayBhbmQgcGF5IG9ubGluZSB0aHJvdWdoIFJhem9ycGF5LCBhbmQgdGhlIHJlc29ydCBjaGVja3MgYXZhaWxhYmlsaXR5IGF1dG9tYXRpY2FsbHkuIERpZ2l0YWwgY2hlY2staW4gZGV0YWlscyBhcmUgY29sbGVjdGVkIGJlZm9yZSBhcnJpdmFsLiBDb3VwbGUgZnJpZW5kbHk6IHVubWFycmllZCBjb3VwbGVzIGFyZSB3ZWxjb21lLiIKXS5qb2luKCJcbiIpOwoKLyogLS0tLS0tLS0tLSBoZWxwZXJzIC0tLS0tLS0tLS0gKi8KY29uc3QgJCA9IGlkID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKY29uc3QgaW5yID0gbiA9PiAi4oK5IiArIE1hdGgucm91bmQobikudG9Mb2NhbGVTdHJpbmcoImVuLUlOIik7CmNvbnN0IGlzbyA9IGQgPT4geyBjb25zdCB6ID0gbmV3IERhdGUoZC5nZXRUaW1lKCkgLSBkLmdldFRpbWV6b25lT2Zmc2V0KCkqNjAwMDApOyByZXR1cm4gei50b0lTT1N0cmluZygpLnNsaWNlKDAsMTApOyB9Owpjb25zdCBhZGREYXlzID0gKHMsbikgPT4geyBjb25zdCBkID0gbmV3IERhdGUocysiVDAwOjAwOjAwIik7IGQuc2V0RGF0ZShkLmdldERhdGUoKStuKTsgcmV0dXJuIGlzbyhkKTsgfTsKY29uc3QgZm10ID0gcyA9PiBuZXcgRGF0ZShzKyJUMDA6MDA6MDAiKS50b0xvY2FsZURhdGVTdHJpbmcoImVuLUlOIix7d2Vla2RheToic2hvcnQiLGRheToibnVtZXJpYyIsbW9udGg6InNob3J0Iix5ZWFyOiJudW1lcmljIn0pOwpjb25zdCBlc2MgPSB0ID0+IFN0cmluZyh0KS5yZXBsYWNlKC9bJjw+Il0vZyxjPT4oeyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyJ9W2NdKSk7CmNvbnN0IHRvZGF5ID0gaXNvKG5ldyBEYXRlKCkpOwpjb25zdCBmcmlkYXkgPSAoNS1uZXcgRGF0ZSgpLmdldERheSgpKzcpJTd8fDc7CmNvbnN0IFMgPSB7IHN0ZXA6MSwgY2k6YWRkRGF5cyh0b2RheSxmcmlkYXkpLCBhZHVsdHM6Miwga2lkczk6MCwga2lkc1U5OjAsIGRibDoxLCBmYW06MCwgYXV0bzp0cnVlLCByZWY6IiIsIHBhaWQ6ZmFsc2UgfTsKUy5jbyA9IGFkZERheXMoUy5jaSwyKTsKY29uc3QgbmlnaHRzID0gKCkgPT4geyBjb25zdCBuID0gTWF0aC5yb3VuZCgobmV3IERhdGUoUy5jbyktbmV3IERhdGUoUy5jaSkpLzg2NDAwMDAwKTsgcmV0dXJuIG4+MD9uOjA7IH07CmNvbnN0IHZhbCA9IGlkID0+ICQoaWQpLnZhbHVlLnRyaW0oKTsKY29uc3QgcmFkaW8gPSBuID0+IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBpbnB1dFtuYW1lPSIke259Il06Y2hlY2tlZGApfHx7fSkudmFsdWUgfHwgIiI7CmNvbnN0IHBsdXJhbCA9IChuLGEsYikgPT4gbisiICIrKG49PT0xP2E6Yik7CmNvbnN0IGd1ZXN0c1RleHQgPSAoKSA9PiBwbHVyYWwoUy5hZHVsdHMsImFkdWx0IiwiYWR1bHRzIikgKyAoUy5raWRzOT8iLCAiK3BsdXJhbChTLmtpZHM5LCJjaGlsZCIsImNoaWxkcmVuIikrIiBhZ2VkIDkrIjoiIikgKyAoUy5raWRzVTk\/IiwgIitwbHVyYWwoUy5raWRzVTksImNoaWxkIiwiY2hpbGRyZW4iKSsiIGJlbG93IDkiOiIiKTsKY29uc3Qgcm9vbXNUZXh0ID0gKCkgPT4gW1MuZGJsP3BsdXJhbChTLmRibCwiRG91YmxlIFJvb20iLCJEb3VibGUgUm9vbXMiKToiIiwgUy5mYW0\/cGx1cmFsKFMuZmFtLCJGYW1pbHkgUm9vbSIsIkZhbWlseSBSb29tcyIpOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiIGFuZCAiKSB8fCAibm8gcm9vbXMiOwoKbGV0IHNhbXBsZUZuOyBjb25zdCBzYW1wbGVSZWFkeSA9IChhc3luYygpPT57IHRyeXsgc2FtcGxlRm4gPSBhd2FpdCB3aW5kb3cuY2xhdWRlPy51c2UoInNhbXBsZSIpOyB9Y2F0Y2goZSl7IHNhbXBsZUZuID0gbnVsbDsgfSB9KSgpOwoKLyogLS0tLS0tLS0tLSBwaG90byBzbG90czogcmVhbCBwaG90byB3aGVuIHJlYWNoYWJsZSwgZHJhd24gYXJ0IG90aGVyd2lzZSAtLS0tLS0tLS0tICovCmZ1bmN0aW9uIGFydChzZWVkKXsKICBjb25zdCBodWUgPSBbWyAiIzFkNGEzYiIsIiMyZjZiNTciLCIjMGYyYTIxIl0sWyIjMjg0ODNmIiwiIzNjNmQ2MCIsIiMxMzJiMjUiXSxbIiMyYjRhNTIiLCIjM2Y3MDc4IiwiIzEzMmEzMCJdLFsiIzNhNGEzMyIsIiM1YjdhNGMiLCIjMWEyYTE3Il0sWyIjMzQ0NjNmIiwiIzU1Nzg2YSIsIiMxNTI3MWYiXV1bc2VlZCU1XTsKICBjb25zdCBzdW4gPSA2MCArIChzZWVkKjM3KSUxODA7CiAgcmV0dXJuIGA8c3ZnIHZpZXdCb3g9IjAgMCA0MDAgMzAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBzbGljZSIgYXJpYS1oaWRkZW49InRydWUiPjxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMzAwIiBmaWxsPSIke2h1ZVsyXX0iLz48Y2lyY2xlIGN4PSIke3N1bisxMjB9IiBjeT0iODAiIHI9IjMwIiBmaWxsPSIjZWZiZjYyIiBvcGFjaXR5PSIuNzUiLz48cGF0aCBkPSJNMCAxOTAgTDcwIDEyMCBMMTQwIDE3MCBMMjIwIDkwIEwzMDAgMTcwIEwzNjAgMTMwIEw0MDAgMTYwIFYzMDAgSDBaIiBmaWxsPSIke2h1ZVsxXX0iIG9wYWNpdHk9Ii43Ii8+PHBhdGggZD0iTTAgMjMwIEw5MCAxNzAgTDE4MCAyMjAgTDI3MCAxNjAgTDQwMCAyMzAgVjMwMCBIMFoiIGZpbGw9IiR7aHVlWzBdfSIvPjxwYXRoIGQ9Ik0wIDI2OCBDMTAwIDI1MCAyNTAgMjgwIDQwMCAyNTggVjMwMCBIMFoiIGZpbGw9IiR7aHVlWzJdfSIvPjwvc3ZnPmA7Cn0KZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtcGhvdG9dIikuZm9yRWFjaChlbD0+ewogIGVsLmlubmVySFRNTCA9IGFydCgrZWwuZGF0YXNldC5zZWVkfHwwKTsKICBjb25zdCB1ID0gUEhPVE9TW2VsLmRhdGFzZXQucGhvdG9dOyBpZighdSkgcmV0dXJuOwogIGNvbnN0IGltID0gbmV3IEltYWdlKCk7IGltLmFsdCA9ICIiOyAKICBpbS5vbmxvYWQgPSAoKSA9PiB7IGVsLmlubmVySFRNTCA9ICIiOyBlbC5hcHBlbmRDaGlsZChpbSk7IH07CiAgaW0uc3JjID0gdTsKfSk7CgovKiAtLS0tLS0tLS0tIGhlcm8gY2FudmFzOiByaWRnZWxpbmVzLCBtaXN0LCBmaXJlZmxpZXMsIHRpbnRlZCBieSB0aGUgdmlld2VyJ3MgbG9jYWwgaG91ciAtLS0tLS0tLS0tICovCihmdW5jdGlvbigpewogIGNvbnN0IGN2ID0gJCgic2t5IiksIGN4ID0gY3YuZ2V0Q29udGV4dCgiMmQiKTsgaWYoIWN4KSByZXR1cm47CiAgY29uc3QgaCA9IG5ldyBEYXRlKCkuZ2V0SG91cnMoKStuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKS82MDsKICBjb25zdCBQID0gaDw1LjV8fGg+PTE5LjUgPyB7dG9wOiIjMDUwYzE0IixtaWQ6IiMwZDIyMzAiLGhvcjoiIzFjNGE0YSIsZ2xvdzoiIzdmYjhjOCIsc3VuOjAuMCxtb29uOnRydWV9CiAgICAgICAgICA6IGg8OCA\/IHt0b3A6IiMxNDI2M2EiLG1pZDoiIzViNmI3YSIsaG9yOiIjZjBhMzZiIixnbG93OiIjZmZkMDhhIixzdW46MSxtb29uOmZhbHNlfQogICAgICAgICAgOiBoPDE2LjUgPyB7dG9wOiIjMTI0MDVhIixtaWQ6IiMzZjdmOGQiLGhvcjoiI2E4ZDBjMCIsZ2xvdzoiI2ZmZjBiOCIsc3VuOjEsbW9vbjpmYWxzZX0KICAgICAgICAgIDoge3RvcDoiIzFhMmE0YSIsbWlkOiIjOGE1YTZhIixob3I6IiNmMDhhNWEiLGdsb3c6IiNmZmMwNzAiLHN1bjoxLG1vb246ZmFsc2V9OwogIGxldCBXPTAsSD0wLGRwcj0xLG14PTAuNSx0MD1wZXJmb3JtYW5jZS5ub3coKSxyYWY9MDsKICBjb25zdCBmbGllcyA9IEFycmF5LmZyb20oe2xlbmd0aDo0Nn0sKF8saSk9Pih7eDpNYXRoLnJhbmRvbSgpLHk6LjQ1K01hdGgucmFuZG9tKCkqLjUscjouOCtNYXRoLnJhbmRvbSgpKjEuOCxwOk1hdGgucmFuZG9tKCkqNi4yOCxzOi4yK01hdGgucmFuZG9tKCkqLjZ9KSk7CiAgY29uc3QgbWlzdCA9IEFycmF5LmZyb20oe2xlbmd0aDo2fSwoXyxpKT0+KHt4Ok1hdGgucmFuZG9tKCkseTouNTUrTWF0aC5yYW5kb20oKSouMyxyOi4yNStNYXRoLnJhbmRvbSgpKi4zLHM6LjAwNCtNYXRoLnJhbmRvbSgpKi4wMDh9KSk7CiAgZnVuY3Rpb24gc2l6ZSgpeyBkcHI9TWF0aC5taW4oMix3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSk7IFc9Y3YuY2xpZW50V2lkdGg7IEg9Y3YuY2xpZW50SGVpZ2h0OyBjdi53aWR0aD1XKmRwcjsgY3YuaGVpZ2h0PUgqZHByOyBjeC5zZXRUcmFuc2Zvcm0oZHByLDAsMCxkcHIsMCwwKTsgfQogIGZ1bmN0aW9uIHJpZGdlKGJhc2UsYW1wLHNlZWQscGFyLGNvbCx0KXsKICAgIGN4LmJlZ2luUGF0aCgpOyBjeC5tb3ZlVG8oMCxIKTsKICAgIGZvcihsZXQgeD0wO3g8PVc7eCs9OCl7CiAgICAgIGNvbnN0IHU9eC9XKyhteC0uNSkqcGFyOwogICAgICBjb25zdCB5PUgqYmFzZSAtIGFtcCooTWF0aC5zaW4odSo1K3NlZWQpKi41K01hdGguc2luKHUqMTErc2VlZCoyLjMpKi4yOCtNYXRoLnNpbih1KjIzK3NlZWQqLjcpKi4xMikgLSBhbXAqLjI1Kk1hdGguc2luKHQqLjAwMDA2K3NlZWQrdSoyKTsKICAgICAgY3gubGluZVRvKHgseSk7CiAgICB9CiAgICBjeC5saW5lVG8oVyxIKTsgY3guY2xvc2VQYXRoKCk7IGN4LmZpbGxTdHlsZT1jb2w7IGN4LmZpbGwoKTsKICB9CiAgZnVuY3Rpb24gZnJhbWUobm93LHN0aWxsKXsKICAgIGNvbnN0IHQ9bm93LXQwOwogICAgY29uc3QgZz1jeC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLDAsMCxIKTsgZy5hZGRDb2xvclN0b3AoMCxQLnRvcCk7IGcuYWRkQ29sb3JTdG9wKC41NSxQLm1pZCk7IGcuYWRkQ29sb3JTdG9wKC44NSxQLmhvcik7IGN4LmZpbGxTdHlsZT1nOyBjeC5maWxsUmVjdCgwLDAsVyxIKTsKICAgIGNvbnN0IHN4PVcqKC42OCsobXgtLjUpKi4wNiksIHN5PUgqKFAubW9vbj8uMjouNDIpOwogICAgY29uc3Qgcmc9Y3guY3JlYXRlUmFkaWFsR3JhZGllbnQoc3gsc3ksMCxzeCxzeSxIKi41NSk7IHJnLmFkZENvbG9yU3RvcCgwLFAuZ2xvdysiY2MiKTsgcmcuYWRkQ29sb3JTdG9wKC4yNSxQLmdsb3crIjQ0Iik7IHJnLmFkZENvbG9yU3RvcCgxLFAuZ2xvdysiMDAiKTsgY3guZmlsbFN0eWxlPXJnOyBjeC5maWxsUmVjdCgwLDAsVyxIKTsKICAgIGN4LmJlZ2luUGF0aCgpOyBjeC5hcmMoc3gsc3ksUC5tb29uPzIwOjI2LDAsNi4yODMpOyBjeC5maWxsU3R5bGU9UC5tb29uPyIjZThmMGVhIjoiI2ZmZjNjZiI7IGN4Lmdsb2JhbEFscGhhPS45NTsgY3guZmlsbCgpOyBjeC5nbG9iYWxBbHBoYT0xOwogICAgcmlkZ2UoLjYyLEgqLjE2LDEuMiwuMDUsInJnYmEoODAsMTIwLDEyMCwuNTUpIix0KTsKICAgIHJpZGdlKC43MCxIKi4xNCwzLjEsLjA5LCJyZ2JhKDM4LDg4LDc2LC44KSIsdCk7CiAgICBtaXN0LmZvckVhY2gobT0+eyBjb25zdCB4PSgobS54K3QqbS5zKi4wMDAxKSUxLjQtLjIpKlcsIHk9bS55KkgsIHI9bS5yKlc7CiAgICAgIGNvbnN0IG1nPWN4LmNyZWF0ZVJhZGlhbEdyYWRpZW50KHgseSwwLHgseSxyKTsgbWcuYWRkQ29sb3JTdG9wKDAsInJnYmEoMjIwLDIzNiwyMjgsLjE2KSIpOyBtZy5hZGRDb2xvclN0b3AoMSwicmdiYSgyMjAsMjM2LDIyOCwwKSIpOyBjeC5maWxsU3R5bGU9bWc7IGN4LmZpbGxSZWN0KHgtcix5LXIscioyLHIqMik7IH0pOwogICAgcmlkZ2UoLjgwLEgqLjEyLDUuNCwuMTYsInJnYmEoMTYsNTIsNDIsLjk1KSIsdCk7CiAgICByaWRnZSguOTAsSCouMDksNy43LC4yNiwiIzBhMjExOSIsdCk7CiAgICBmbGllcy5mb3JFYWNoKGY9PnsgY29uc3QgYT0uMzUrLjY1Kk1hdGguYWJzKE1hdGguc2luKGYucCt0Ki4wMDEqZi5zKSk7IGNvbnN0IHg9KGYueCtNYXRoLnNpbih0Ki4wMDAyKmYucytmLnApKi4wMykqVywgeT0oZi55K01hdGguY29zKHQqLjAwMDI1KmYucytmLnApKi4wMikqSDsKICAgICAgY29uc3QgZmc9Y3guY3JlYXRlUmFkaWFsR3JhZGllbnQoeCx5LDAseCx5LGYucio2KTsgZmcuYWRkQ29sb3JTdG9wKDAsYHJnYmEoMjM5LDE5MSw5OCwke2F9KWApOyBmZy5hZGRDb2xvclN0b3AoMSwicmdiYSgyMzksMTkxLDk4LDApIik7IGN4LmZpbGxTdHlsZT1mZzsgY3guZmlsbFJlY3QoeC1mLnIqNix5LWYucio2LGYucioxMixmLnIqMTIpOyB9KTsKICAgIGlmKCFzdGlsbCkgcmFmPXJlcXVlc3RBbmltYXRpb25GcmFtZShuPT5mcmFtZShuLGZhbHNlKSk7CiAgfQogIGNvbnN0IHJlZHVjZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXM7CiAgc2l6ZSgpOyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwoKT0+eyBzaXplKCk7IGlmKHJlZHVjZSkgZnJhbWUocGVyZm9ybWFuY2Uubm93KCksdHJ1ZSk7IH0pOwogIGN2LnBhcmVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGU9PnsgbXg9ZS5jbGllbnRYL3dpbmRvdy5pbm5lcldpZHRoOyB9KTsKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+eyBjYW5jZWxBbmltYXRpb25GcmFtZShyYWYpOyBpZighZG9jdW1lbnQuaGlkZGVuICYmICFyZWR1Y2UpIHJhZj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobj0+ZnJhbWUobixmYWxzZSkpOyB9KTsKICBpZihyZWR1Y2UpIGZyYW1lKHBlcmZvcm1hbmNlLm5vdygpLHRydWUpOyBlbHNlIHJhZj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobj0+ZnJhbWUobixmYWxzZSkpOwp9KSgpOwoKLyogLS0tLS0tLS0tLSBwcmljaW5nOiA5IGRvdWJsZSByb29tcyBhbmQgMSBmYW1pbHkgcm9vbSwgR1NUIDEyJSAtLS0tLS0tLS0tICovCmZ1bmN0aW9uIGNhbGMoKXsKICBjb25zdCBHPVMuYWR1bHRzK1Mua2lkczksIFQ9RytTLmtpZHNVOSwgbj1uaWdodHMoKSwgcm9vbXM9Uy5kYmwrUy5mYW07CiAgY29uc3QgZXh0cmFzPU1hdGgubWF4KDAsRy0oMipTLmRibCs0KlMuZmFtKSk7CiAgbGV0IHByb2JsZW09IiI7CiAgaWYocm9vbXM8MSkgcHJvYmxlbT0iQ2hvb3NlIGF0IGxlYXN0IG9uZSByb29tLiI7CiAgZWxzZSBpZihyb29tcz5HKSBwcm9ibGVtPSJUaGVyZSBhcmUgbW9yZSByb29tcyB0aGFuIGd1ZXN0cy4gUmVkdWNlIHRoZSByb29tcyBvciB0YXAgU3VnZ2VzdCBiZXN0IHJvb21zLiI7CiAgZWxzZSBpZihleHRyYXM+Uy5kYmwpIHByb2JsZW09IlRoZXNlIHJvb21zIGNhbm5vdCBob2xkIHlvdXIgZ3JvdXAuIEFkZCBhIHJvb20gb3IgdGFwIFN1Z2dlc3QgYmVzdCByb29tcy4iOwogIGVsc2UgaWYoVD40KnJvb21zKSBwcm9ibGVtPSJBIHJvb20gaG9sZHMgdXAgdG8gNCBwZW9wbGUsIGluY2x1ZGluZyBjaGlsZHJlbi4gQWRkIGEgcm9vbSBvciB0YXAgU3VnZ2VzdCBiZXN0IHJvb21zLiI7CiAgY29uc3QgcGVyTmlnaHQ9REJMKlMuZGJsK0ZBTSpTLmZhbStYQkVEKmV4dHJhcywgc3ViPXBlck5pZ2h0Km4sIGdzdD1NYXRoLnJvdW5kKHN1YipHU1QpLCB0b3RhbD1zdWIrZ3N0OwogIHJldHVybiB7RyxULG4scm9vbXMsZXh0cmFzLHByb2JsZW0scGVyTmlnaHQsc3ViLGdzdCx0b3RhbH07Cn0KZnVuY3Rpb24gcmVjb21tZW5kKCl7CiAgY29uc3QgRz1TLmFkdWx0cytTLmtpZHM5LCBUPUcrUy5raWRzVTk7IGxldCBiZXN0PW51bGw7CiAgZm9yKGxldCB5PTA7eTw9TUFYRkFNO3krKykgZm9yKGxldCB4PTA7eDw9TUFYREJMO3grKyl7CiAgICBjb25zdCByb29tcz14K3k7IGlmKHJvb21zPDF8fHJvb21zPkcpIGNvbnRpbnVlOwogICAgY29uc3QgZXh0cmFzPU1hdGgubWF4KDAsRy0oMip4KzQqeSkpOyBpZihleHRyYXM+eHx8VD40KnJvb21zKSBjb250aW51ZTsKICAgIGNvbnN0IGNvc3Q9REJMKngrRkFNKnkrWEJFRCpleHRyYXM7CiAgICBpZighYmVzdHx8Y29zdDxiZXN0LmNvc3R8fChjb3N0PT09YmVzdC5jb3N0JiZyb29tczxiZXN0LnJvb21zKSkgYmVzdD17eCx5LGNvc3Qscm9vbXN9OwogIH0KICByZXR1cm4gYmVzdDsKfQpmdW5jdGlvbiBicmVha2Rvd24oYyl7CiAgY29uc3Qgbj1jLm4sIHI9W107CiAgci5wdXNoKFtmbXQoUy5jaSkrIiB0byAiK2ZtdChTLmNvKSwgcGx1cmFsKG4sIm5pZ2h0IiwibmlnaHRzIildKTsKICBpZihTLmRibCkgci5wdXNoKFtTLmRibCsiIMOXIERvdWJsZSBSb29tIiwgaW5yKERCTCpTLmRibCpuKV0pOwogIGlmKFMuZmFtKSByLnB1c2goW1MuZmFtKyIgw5cgRmFtaWx5IFJvb20iLCBpbnIoRkFNKlMuZmFtKm4pXSk7CiAgaWYoYy5leHRyYXMpIHIucHVzaChbcGx1cmFsKGMuZXh0cmFzLCJleHRyYSBiZWQiLCJleHRyYSBiZWRzIiksIGlucihYQkVEKmMuZXh0cmFzKm4pXSk7CiAgaWYoUy5raWRzVTkpIHIucHVzaChbcGx1cmFsKFMua2lkc1U5LCJjaGlsZCIsImNoaWxkcmVuIikrIiBiZWxvdyA5IiwgIkZyZWUiXSk7CiAgci5wdXNoKFsiU3VidG90YWwsIGJlZm9yZSBHU1QiLCBpbnIoYy5zdWIpXSxbIkdTVCAxMiUiLCBpbnIoYy5nc3QpXSk7CiAgcmV0dXJuIHIubWFwKHg9PmA8ZGl2PjxzcGFuPiR7eFswXX08L3NwYW4+PHNwYW4gY2xhc3M9InYiPiR7eFsxXX08L3NwYW4+PC9kaXY+YCkuam9pbigiIikrYDxkaXYgY2xhc3M9InRvdGFsIj48c3Bhbj5Ub3RhbCB3aXRoIEdTVDwvc3Bhbj48c3BhbiBjbGFzcz0idiI+JHtpbnIoYy50b3RhbCl9PC9zcGFuPjwvZGl2PmA7Cn0KCi8qIC0tLS0tLS0tLS0gc3RhdGUgdG8gc2NyZWVuIC0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gcmVuZGVyKCl7CiAgaWYoUy5hdXRvKXsgY29uc3QgYj1yZWNvbW1lbmQoKTsgaWYoYil7IFMuZGJsPWIueDsgUy5mYW09Yi55OyB9IH0KICBjb25zdCBjPWNhbGMoKTsKICAkKCJjaSIpLnZhbHVlPVMuY2k7ICQoImNvIikudmFsdWU9Uy5jbzsgJCgiY2kiKS5taW49dG9kYXk7ICQoImNvIikubWluPWFkZERheXMoUy5jaSwxKTsKICAkKCJhZHVsdHNPIikudGV4dENvbnRlbnQ9Uy5hZHVsdHM7ICQoImtpZHM5TyIpLnRleHRDb250ZW50PVMua2lkczk7ICQoImtpZHNVOU8iKS50ZXh0Q29udGVudD1TLmtpZHNVOTsgJCgiZGJsTyIpLnRleHRDb250ZW50PVMuZGJsOyAkKCJmYW1PIikudGV4dENvbnRlbnQ9Uy5mYW07CiAgJCgicm9vbUhpbnQiKS50ZXh0Q29udGVudCA9IGMucHJvYmxlbSB8fCAoKFMuYXV0bz8iUm9vbXMgY2hvc2VuIGZvciB0aGUgbG93ZXN0IHByaWNlIGZvciB5b3VyIGdyb3VwLiI6IlJvb21zIHNldCBieSB5b3UuIikrKGMuZXh0cmFzPyIgSW5jbHVkZXMgIitwbHVyYWwoYy5leHRyYXMsImV4dHJhIGJlZCIsImV4dHJhIGJlZHMiKSsiIGF0IOKCuTUwMCBhIG5pZ2h0LiI6IiIpKTsKICAkKCJyb29tSGludCIpLnN0eWxlLmNvbG9yID0gYy5wcm9ibGVtID8gIiNiMjNhMTciIDogIiI7CiAgJCgibGluZXMiKS5pbm5lckhUTUw9YnJlYWtkb3duKGMpOwogICQoImJyaWVmIikudGV4dENvbnRlbnQgPSBndWVzdHNUZXh0KCkrIi4gIitwbHVyYWwoYy5uLCJuaWdodCIsIm5pZ2h0cyIpKyIgZnJvbSAiK2ZtdChTLmNpKSsiLiAiK3Jvb21zVGV4dCgpKyIuIjsKICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjc3RlcHMgYnV0dG9uIikuZm9yRWFjaChiPT57IGNvbnN0IGs9K2IuZGF0YXNldC5nbzsgYi5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsaz09PVMuc3RlcCk7IGIuY2xhc3NMaXN0LnRvZ2dsZSgiZG9uZSIsazxTLnN0ZXApOyB9KTsKICBmb3IobGV0IGk9MTtpPD00O2krKykgJCgicCIraSkuaGlkZGVuID0gaSE9PVMuc3RlcDsKfQpjb25zdCBMSU09e2FkdWx0czpbMSwyMF0sa2lkczk6WzAsMTBdLGtpZHNVOTpbMCwxMF0sZGJsOlswLE1BWERCTF0sZmFtOlswLE1BWEZBTV19Owpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZT0+ewogIGNvbnN0IGI9ZS50YXJnZXQuY2xvc2VzdCgiW2RhdGEtc3RlcF0iKTsgaWYoIWIpIHJldHVybjsKICBjb25zdCBbayxkXT1iLmRhdGFzZXQuc3RlcC5zcGxpdCgiOiIpOyBjb25zdCBsPUxJTVtrXTsKICBTW2tdPU1hdGgubWluKGxbMV0sTWF0aC5tYXgobFswXSxTW2tdKyArZCkpOwogIFMuYXV0byA9ICEoaz09PSJkYmwifHxrPT09ImZhbSIpOwogIHJlbmRlcigpOwp9KTsKJCgiYXV0b0J0biIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+eyBTLmF1dG89dHJ1ZTsgcmVuZGVyKCk7IH0pOwokKCJjaSIpLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZT0+eyBpZighZS50YXJnZXQudmFsdWUpIHJldHVybjsgUy5jaT1lLnRhcmdldC52YWx1ZTsgaWYoUy5jbzw9Uy5jaSkgUy5jbz1hZGREYXlzKFMuY2ksMSk7IHJlbmRlcigpOyB9KTsKJCgiY28iKS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGU9PnsgaWYoIWUudGFyZ2V0LnZhbHVlKSByZXR1cm47IFMuY289ZS50YXJnZXQudmFsdWU7IGlmKFMuY288PVMuY2kpIFMuY289YWRkRGF5cyhTLmNpLDEpOyByZW5kZXIoKTsgfSk7CgovKiAtLS0tLS0tLS0tIHN0ZXBzIC0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gZ28obil7CiAgaWYobj5TLnN0ZXAgJiYgIXZhbGlkYXRlKFMuc3RlcCkpIHJldHVybjsKICBpZihuPT09NCAmJiAhUy5wYWlkKSByZXR1cm47CiAgUy5zdGVwPW47IHJlbmRlcigpOyBpZihuPT09MykgcmVuZGVyUmV2aWV3KCk7CiAgJCgiYm9vayIpLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoic3RhcnQifSk7Cn0KZnVuY3Rpb24gdmFsaWRhdGUoc3RlcCl7CiAgaWYoc3RlcD09PTEpewogICAgY29uc3QgYz1jYWxjKCk7CiAgICBpZihuaWdodHMoKTwxKXsgJCgiZTEiKS50ZXh0Q29udGVudD0iQ2hvb3NlIGEgY2hlY2stb3V0IGRhdGUgYWZ0ZXIgY2hlY2staW4uIjsgcmV0dXJuIGZhbHNlOyB9CiAgICBpZihTLmNpPHRvZGF5KXsgJCgiZTEiKS50ZXh0Q29udGVudD0iQ2hlY2staW4gY2Fubm90IGJlIGluIHRoZSBwYXN0LiI7IHJldHVybiBmYWxzZTsgfQogICAgaWYoYy5wcm9ibGVtKXsgJCgiZTEiKS50ZXh0Q29udGVudD1jLnByb2JsZW07IHJldHVybiBmYWxzZTsgfQogICAgJCgiZTEiKS50ZXh0Q29udGVudD0iIjsKICB9CiAgaWYoc3RlcD09PTIpewogICAgY29uc3QgcGg9dmFsKCJnUGhvbmUiKS5yZXBsYWNlKC9bXHMtXS9nLCIiKTsKICAgIGlmKHZhbCgiZ05hbWUiKS5sZW5ndGg8Mil7ICQoImUyIikudGV4dENvbnRlbnQ9IkVudGVyIHRoZSBuYW1lIG9mIHRoZSBwZXJzb24gY2hlY2tpbmcgaW4uIjsgcmV0dXJuIGZhbHNlOyB9CiAgICBpZighL14oXCs\/OTEpP1s2LTldXGR7OX0kLy50ZXN0KHBoKSl7ICQoImUyIikudGV4dENvbnRlbnQ9IkVudGVyIGEgMTAtZGlnaXQgSW5kaWFuIG1vYmlsZSBudW1iZXIuIjsgcmV0dXJuIGZhbHNlOyB9CiAgICBjb25zdCBlbT12YWwoImdFbWFpbCIpOyBpZihlbSAmJiAhL15bXkBcc10rQFteQFxzXStcLlteQFxzXSskLy50ZXN0KGVtKSl7ICQoImUyIikudGV4dENvbnRlbnQ9IlRoYXQgZW1haWwgYWRkcmVzcyBsb29rcyBpbmNvbXBsZXRlLiI7IHJldHVybiBmYWxzZTsgfQogICAgJCgiZTIiKS50ZXh0Q29udGVudD0iIjsKICB9CiAgcmV0dXJuIHRydWU7Cn0KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGU9PnsKICBjb25zdCBuPWUudGFyZ2V0LmNsb3Nlc3QoIltkYXRhLW5leHRdIik7IGlmKG4peyBnbygrbi5kYXRhc2V0Lm5leHQpOyByZXR1cm47IH0KICBjb25zdCBnPWUudGFyZ2V0LmNsb3Nlc3QoIiNzdGVwcyBbZGF0YS1nb10iKTsgaWYoZyl7IGNvbnN0IGs9K2cuZGF0YXNldC5nbzsgaWYoazw9Uy5zdGVwIHx8IGs9PT1TLnN0ZXArMSkgZ28oayk7IH0KfSk7CmZ1bmN0aW9uIHJlbmRlclJldmlldygpewogIGNvbnN0IGM9Y2FsYygpOwogICQoInJldmlld0xpbmVzIikuaW5uZXJIVE1MPWA8ZGl2PjxzcGFuPkd1ZXN0PC9zcGFuPjxzcGFuPiR7ZXNjKHZhbCgiZ05hbWUiKSl9PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+UGFydHk8L3NwYW4+PHNwYW4+JHtlc2MoZ3Vlc3RzVGV4dCgpKX08L3NwYW4+PC9kaXY+YCticmVha2Rvd24oYyk7CiAgJCgicHJldmlld05vdGUiKS5oaWRkZW4gPSB0cnVlOwp9CmFzeW5jIGZ1bmN0aW9uIHBheSgpewogIGNvbnN0IGJ0bj0kKCJwYXlCdG4iKTsgYnRuLmRpc2FibGVkPXRydWU7ICQoImUzIikudGV4dENvbnRlbnQ9IiI7IGNvbnN0IGM9Y2FsYygpOwogIFMucmVmID0gUy5yZWYgfHwgIk5BUk8tIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDcpLnRvVXBwZXJDYXNlKCk7CiAgY29uc3Qgb3JkZXI9eyByZWY6Uy5yZWYsIGN1cnJlbmN5OiJJTlIiLCBhbW91bnRJTlI6Yy50b3RhbCwgYW1vdW50UGFpc2U6Yy50b3RhbCoxMDAsCiAgICBwcmljaW5nOntzdWJ0b3RhbElOUjpjLnN1Yixnc3RSYXRlUGVyY2VudDoxMixnc3RJTlI6Yy5nc3QsdG90YWxJTlI6Yy50b3RhbCxwZXJOaWdodElOUjpjLnBlck5pZ2h0fSwKICAgIGd1ZXN0OntuYW1lOnZhbCgiZ05hbWUiKSxwaG9uZTp2YWwoImdQaG9uZSIpLGVtYWlsOnZhbCgiZ0VtYWlsIil9LAogICAgc3RheTp7Y2hlY2tpbjpTLmNpLGNoZWNrb3V0OlMuY28sbmlnaHRzOmMubixkb3VibGVSb29tczpTLmRibCxmYW1pbHlSb29tczpTLmZhbSxleHRyYUJlZHM6Yy5leHRyYXMsYWR1bHRzOlMuYWR1bHRzLGNoaWxkcmVuOVBsdXM6Uy5raWRzOSxjaGlsZHJlbkJlbG93OTpTLmtpZHNVOX0sCiAgICBjaGVja2luOnthcnJpdmFsOnJhZGlvKCJhcnIiKSx2ZWhpY2xlOnZhbCgiZ1ZlaCIpLG5vdGVzOnZhbCgiZ05vdGUiKX0gfTsKICB0cnl7CiAgICBpZih0eXBlb2Ygd2luZG93Lk5hcm9QYXk9PT0iZnVuY3Rpb24iKXsKICAgICAgY29uc3Qgcj1hd2FpdCB3aW5kb3cuTmFyb1BheShvcmRlcik7CiAgICAgIGlmKCFyfHwhci5wYWlkKSB0aHJvdyBuZXcgRXJyb3IoIlBheW1lbnQgd2FzIG5vdCBjb21wbGV0ZWQuIik7CiAgICAgIFMucGFpZD10cnVlOyBTLnByZXZpZXc9ZmFsc2U7IFMucGF5bWVudElkPXIucGF5bWVudElkfHwiIjsKICAgIH0gZWxzZSBpZihMSVZFX0NGNyAmJiBMSVZFX0NGNy51cmwpewogICAgICBjb25zdCBzdW1tYXJ5PVsiQ2hlY2sgaW46ICIrZm10KFMuY2kpLCJDaGVjayBvdXQ6ICIrZm10KFMuY28pKyIgKCIrcGx1cmFsKGMubiwibmlnaHQiLCJuaWdodHMiKSsiKSIsIlJvb21zOiAiK3Jvb21zVGV4dCgpLCJQYXJ0eTogIitndWVzdHNUZXh0KCksIkV4dHJhIGJlZHM6ICIrYy5leHRyYXMsCiAgICAgICAgIkFycml2YWw6ICIrcmFkaW8oImFyciIpLCJWZWhpY2xlOiAiKyh2YWwoImdWZWgiKXx8Im5vdCBnaXZlbiIpLCJTdWJ0b3RhbCBiZWZvcmUgR1NUOiAiK2lucihjLnN1YiksIkdTVCAxMiU6ICIraW5yKGMuZ3N0KSwiVG90YWwgd2l0aCBHU1Q6ICIraW5yKGMudG90YWwpLCJQYXltZW50IG9wdGlvbjogIisocmFkaW8oInBheU1vZGUiKT09PSJhZHZhbmNlIj8iQWR2YW5jZSBScyA2MDAgcGVyIHJvb20sIGJhbGFuY2UgYXQgdGhlIHJlc29ydCAobm9uLXJlZnVuZGFibGUgaWYgbm8gc2hvdykiOiJQYWlkIGluIGZ1bGwgKHJlc2NoZWR1bGUgd2l0aCBScyAyMDAgY2hhbmdlIGZlZSkiKSwiUmVxdWVzdHM6ICIrKHZhbCgiZ05vdGUiKXx8Im5vbmUiKV0uam9pbigiXG4iKTsKICAgICAgY29uc3QgZmQ9bmV3IEZvcm1EYXRhKCk7CiAgICAgIGZkLmFwcGVuZCgiX3dwY2Y3IixTdHJpbmcoTElWRV9DRjcuaWQpKTsgZmQuYXBwZW5kKCJfd3BjZjdfdmVyc2lvbiIsIjYuMSIpOyBmZC5hcHBlbmQoIl93cGNmN19sb2NhbGUiLCJlbl9VUyIpOwogICAgICBmZC5hcHBlbmQoIl93cGNmN191bml0X3RhZyIsIndwY2Y3LWYiK0xJVkVfQ0Y3LmlkKyItcDAtbzEiKTsgZmQuYXBwZW5kKCJfd3BjZjdfY29udGFpbmVyX3Bvc3QiLCIwIik7CiAgICAgIGZkLmFwcGVuZCgiZ3Vlc3QtbmFtZSIsdmFsKCJnTmFtZSIpKTsgZmQuYXBwZW5kKCJndWVzdC1waG9uZSIsdmFsKCJnUGhvbmUiKSk7IGZkLmFwcGVuZCgiZ3Vlc3QtZW1haWwiLHZhbCgiZ0VtYWlsIikpOwogICAgICBmZC5hcHBlbmQoImJvb2tpbmctcmVmIixTLnJlZik7IGZkLmFwcGVuZCgiYm9va2luZy1zdW1tYXJ5IixzdW1tYXJ5KTsKICAgICAgY29uc3QgcmVzPWF3YWl0IGZldGNoKExJVkVfQ0Y3LnVybCx7bWV0aG9kOiJQT1NUIixib2R5OmZkfSk7IGNvbnN0IGo9YXdhaXQgcmVzLmpzb24oKTsKICAgICAgaWYoai5zdGF0dXMhPT0ibWFpbF9zZW50IikgdGhyb3cgbmV3IEVycm9yKCJXZSBjb3VsZCBub3Qgc2VuZCB5b3VyIHJlcXVlc3QiKyhqLm1lc3NhZ2U\/IjogIitqLm1lc3NhZ2U6IiIpKyIuIFBsZWFzZSB0cnkgYWdhaW4uIik7CiAgICAgIGNvbnN0IHByPWF3YWl0IGZldGNoKCIvd3AtanNvbi9uYXJvL3YxL3BheSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NoZWNraW46Uy5jaSxjaGVja291dDpTLmNvLGRibDpTLmRibCxmYW06Uy5mYW0sYWR1bHRzOlMuYWR1bHRzLGtpZHM5OlMua2lkczksa2lkc1U5OlMua2lkc1U5LG5hbWU6dmFsKCJnTmFtZSIpLHBob25lOnZhbCgiZ1Bob25lIiksZW1haWw6dmFsKCJnRW1haWwiKSxyZWY6Uy5yZWYsYXJyaXZhbDpyYWRpbygiYXJyIiksdmVoaWNsZTp2YWwoImdWZWgiKSxub3RlOnZhbCgiZ05vdGUiKSxtb2RlOnJhZGlvKCJwYXlNb2RlIil9KX0pOyBjb25zdCBwaj1hd2FpdCBwci5qc29uKCkuY2F0Y2goKCk9Pih7fSkpOyBpZighcHIub2t8fCFwai5va3x8IXBqLnVybCkgdGhyb3cgbmV3IEVycm9yKHBqLm1lc3NhZ2V8fCJZb3VyIHJlcXVlc3Qgd2FzIHNlbnQsIGJ1dCB3ZSBjb3VsZCBub3Qgb3BlbiB0aGUgcGF5bWVudCBzY3JlZW4uIFRoZSByZXNvcnQgd2lsbCBjb250YWN0IHlvdSB0byBhcnJhbmdlIHBheW1lbnQuIik7IGxvY2F0aW9uLmhyZWY9cGoudXJsOyByZXR1cm47CiAgICB9IGVsc2UgeyBTLnBhaWQ9dHJ1ZTsgUy5wcmV2aWV3PXRydWU7IH0KICB9Y2F0Y2goZXJyKXsgJCgiZTMiKS50ZXh0Q29udGVudD0oZXJyJiZlcnIubWVzc2FnZSl8fCJZb3VyIHJlcXVlc3QgZGlkIG5vdCBnbyB0aHJvdWdoLiBQbGVhc2UgdHJ5IGFnYWluLiI7IGJ0bi5kaXNhYmxlZD1mYWxzZTsgcmV0dXJuOyB9CiAgYnRuLmRpc2FibGVkPWZhbHNlOyBTLnN0ZXA9NDsgcmVuZGVyKCk7IHJlbmRlclBhc3MoKTsgJCgiYm9vayIpLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoic3RhcnQifSk7Cn0KJCgicGF5QnRuIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHBheSk7CgpmdW5jdGlvbiByZW5kZXJQYXNzKCl7CiAgY29uc3QgYz1jYWxjKCk7CiAgJCgicGFzc1JlZiIpLnRleHRDb250ZW50PVMucmVmOwogICQoInBhc3NTdGFtcCIpLnRleHRDb250ZW50ID0gUy5wcmV2aWV3ID8gIlByZXZpZXcsIG5vdCBzZW50IiA6IChTLnBheW1lbnRJZCA\/ICJDb25maXJtZWQgYW5kIHBhaWQiIDogIlJlcXVlc3Qgc2VudCwgYXdhaXRpbmcgY29uZmlybWF0aW9uIik7CiAgY29uc3Qgcm93cz1bWyJHdWVzdCIsdmFsKCJnTmFtZSIpXSxbIkNoZWNrIGluIixmbXQoUy5jaSldLFsiQ2hlY2sgb3V0IixmbXQoUy5jbyldLFsiUm9vbXMiLHJvb21zVGV4dCgpXSwKICAgIFsiUGFydHkiLGd1ZXN0c1RleHQoKV0sWyJFeHRyYSBiZWRzIixTdHJpbmcoYy5leHRyYXMpXSxbIkFycml2aW5nIixyYWRpbygiYXJyIildLFsiVmVoaWNsZSIsdmFsKCJnVmVoIil8fCJOb3QgZ2l2ZW4iXSxbIlRvdGFsIHdpdGggR1NULCB0byBiZSBjb25maXJtZWQiLGlucihjLnRvdGFsKV1dOwogICQoInBhc3NEbCIpLmlubmVySFRNTD1yb3dzLm1hcChyPT5gPGRpdj48ZHQ+JHtyWzBdfTwvZHQ+PGRkPiR7ZXNjKHJbMV0pfTwvZGQ+PC9kaXY+YCkuam9pbigiIik7CiAgd3JpdGVXZWxjb21lKCk7Cn0KYXN5bmMgZnVuY3Rpb24gd3JpdGVXZWxjb21lKCl7CiAgY29uc3Qgbz0kKCJ3ZWxjb21lIik7IG8udGV4dENvbnRlbnQ9IlByZXBhcmluZyB5b3VyIG5vdGXigKYiOyBhd2FpdCBzYW1wbGVSZWFkeTsKICBjb25zdCBmaXJzdD12YWwoImdOYW1lIikuc3BsaXQoIiAiKVswXXx8Ikd1ZXN0IjsKICBjb25zdCBmYWxsYmFjaz1gV2VsY29tZSwgJHtmaXJzdH0uIFdlIGxvb2sgZm9yd2FyZCB0byBzZWVpbmcgeW91IG9uICR7Zm10KFMuY2kpfS4gVGhlIHJlc29ydCBpcyBvbiB0aGUgWWFtdW5vdHJpIEhpZ2h3YXkgbmVhciBWaWthcyBOYWdhciwgYWJvdXQgNDUga20gZnJvbSBEZWhyYWR1bi4gRnJlZSBwYXJraW5nIGlzIGF2YWlsYWJsZSwgYW5kIE5hcm8gUmVzdGF1cmFudCBzZXJ2ZXMgcHVyZSB2ZWdldGFyaWFuIG1lYWxzIHRocm91Z2hvdXQgeW91ciBzdGF5LiBUZWFtIE5hcm9gOwogIHRyeXsKICAgIGlmKCFzYW1wbGVGbikgdGhyb3cgbmV3IEVycm9yKCJ4Iik7CiAgICBjb25zdCByPWF3YWl0IHNhbXBsZUZuKGBXcml0ZSBhIHdhcm0sIHBsYWluIG5vdGUgb2YgMyB0byA0IHNlbnRlbmNlcyB0byBhIGd1ZXN0IGJlZm9yZSB0aGVpciBzdGF5IGF0IE5hcm8gRWNvIFJlc29ydC4gVXNlIG9ubHkgdGhlc2UgZmFjdHMgYW5kIGRvIG5vdCBpbnZlbnQgdGltZXMsIHByaWNlcywgd2VhdGhlciBvciBwb2xpY2llcy4gRG8gbm90IG1lbnRpb24gYnJlYWtmYXN0IGJlaW5nIGluY2x1ZGVkLlxuRkFDVFM6XG4ke0ZBQ1RTfVxuXG5HdWVzdCBmaXJzdCBuYW1lOiAke2ZpcnN0fVxuQ2hlY2sgaW46ICR7Zm10KFMuY2kpfSwgJHtuaWdodHMoKX0gbmlnaHRzXG5Sb29tczogJHtyb29tc1RleHQoKX1cblBhcnR5OiAke2d1ZXN0c1RleHQoKX1cbkFycml2YWwgd2luZG93OiAke3JhZGlvKCJhcnIiKX1cbk9jY2FzaW9uIG9yIHJlcXVlc3RzOiAke3ZhbCgiZ05vdGUiKXx8Im5vbmUifVxuTWVudGlvbiB0aGVpciBvY2Nhc2lvbiBvciByZXF1ZXN0IGlmIGFueSwgYW5kIG9uZSB0aGluZyB0byBsb29rIGZvcndhcmQgdG8uIFNpZ24gb2ZmIGFzIFRlYW0gTmFyby5gLHtvblRleHQ6KHt0ZXh0fSk9PntvLnRleHRDb250ZW50PXRleHQ7fX0pOwogICAgby50ZXh0Q29udGVudD1yLnRleHQ7CiAgfWNhdGNoKGUpeyBvLnRleHRDb250ZW50PWZhbGxiYWNrOyB9Cn0KJCgiY29weVBhc3MiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+ewogIGNvbnN0IHR4dD1gTmFybyBFY28gUmVzb3J0IGNoZWNrLWluIHBhc3MgJHtTLnJlZn1cbmArWy4uLiQoInBhc3NEbCIpLmNoaWxkcmVuXS5tYXAoZD0+ZC5jaGlsZHJlblswXS50ZXh0Q29udGVudCsiOiAiK2QuY2hpbGRyZW5bMV0udGV4dENvbnRlbnQpLmpvaW4oIlxuIik7CiAgdHJ5eyBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0eHQpOyAkKCJjb3B5TXNnIikudGV4dENvbnRlbnQ9IkNvcGllZC4iOyB9CiAgY2F0Y2goZSl7IGNvbnN0IHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsgci5zZWxlY3ROb2RlQ29udGVudHMoJCgicGFzc0RsIikpOyBjb25zdCBzPWdldFNlbGVjdGlvbigpOyBzLnJlbW92ZUFsbFJhbmdlcygpOyBzLmFkZFJhbmdlKHIpOyAkKCJjb3B5TXNnIikudGV4dENvbnRlbnQ9IlNlbGVjdGVkLiBQcmVzcyBjb3B5IG9uIHlvdXIgZGV2aWNlLiI7IH0KfSk7CgovKiAtLS0tLS0tLS0tIFRyaXAgcGxhbm5lciAtLS0tLS0tLS0tICovCmZ1bmN0aW9uIGxvY2FsUGFyc2UodCl7CiAgY29uc3Qgcz10LnRvTG93ZXJDYXNlKCksIG91dD17fTsgbGV0IG07CiAgaWYoKG09cy5tYXRjaCgvKFxkKylccyooYWR1bHR8cGVvcGxlfGd1ZXN0fHBlcnNvbnxvZiB1cykvKSkpIG91dC5hZHVsdHM9K21bMV07CiAgaWYoKG09cy5tYXRjaCgvKFxkKylccyooa2lkfGNoaWxkKS8pKSl7IG91dC5raWRzOT0rbVsxXTsgY29uc3QgYT1zLm1hdGNoKC9hZ2VkP1xzKyhcZHsxLDJ9KD86XHMqKD86LHxhbmR8JilccypcZHsxLDJ9KD8hXGR8XHMqKD86bmlnaHR8YWR1bHR8Z3Vlc3R8cGVvcGxlfGtpZHxjaGlsZCkpKSopLyk7IGlmKGEpeyBjb25zdCBhZ2VzPWFbMV0ubWF0Y2goL1xkKy9nKS5tYXAoTnVtYmVyKTsgb3V0LmtpZHNVOT1hZ2VzLmZpbHRlcih4PT54PDkpLmxlbmd0aDsgb3V0LmtpZHM5PU1hdGgubWF4KDAsK21bMV0tb3V0LmtpZHNVOSk7IH0gfQogIGlmKChtPXMubWF0Y2goLyhcZCspXHMqbmlnaHQvKSkpIG91dC5uaWdodHM9K21bMV07IGVsc2UgaWYoL3dlZWtlbmQvLnRlc3QocykpIG91dC5uaWdodHM9MjsKICBpZigvY291cGxlLy50ZXN0KHMpKSBvdXQuYWR1bHRzPTI7CiAgY29uc3QgZGF5cz1bInN1bmRheSIsIm1vbmRheSIsInR1ZXNkYXkiLCJ3ZWRuZXNkYXkiLCJ0aHVyc2RheSIsImZyaWRheSIsInNhdHVyZGF5Il0sIGQwPW5ldyBEYXRlKHRvZGF5KyJUMDA6MDA6MDAiKTsKICBkYXlzLmZvckVhY2goKGQsaSk9PnsgaWYocy5pbmNsdWRlcyhkKSl7IG91dC5jaGVja2luPWFkZERheXModG9kYXksKGktZDAuZ2V0RGF5KCkrNyklN3x8Nyk7IH0gfSk7CiAgaWYoIW91dC5jaGVja2luJiYvd2Vla2VuZC8udGVzdChzKSkgb3V0LmNoZWNraW49YWRkRGF5cyh0b2RheSxmcmlkYXkpOwogIGlmKCFvdXQuY2hlY2tpbiYmL3RvbW9ycm93Ly50ZXN0KHMpKSBvdXQuY2hlY2tpbj1hZGREYXlzKHRvZGF5LDEpOwogIHJldHVybiBvdXQ7Cn0KZnVuY3Rpb24gYXBwbHlQbGFuKHApewogIGlmKHAuYWR1bHRzKSBTLmFkdWx0cz1NYXRoLm1pbigyMCxNYXRoLm1heCgxLE1hdGgucm91bmQocC5hZHVsdHMpKSk7CiAgaWYocC5raWRzOSE9bnVsbCkgUy5raWRzOT1NYXRoLm1pbigxMCxNYXRoLm1heCgwLE1hdGgucm91bmQocC5raWRzOSkpKTsKICBpZihwLmtpZHNVOSE9bnVsbCkgUy5raWRzVTk9TWF0aC5taW4oMTAsTWF0aC5tYXgoMCxNYXRoLnJvdW5kKHAua2lkc1U5KSkpOwogIGlmKHAuY2hlY2tpbiYmL15cZHs0fS1cZHsyfS1cZHsyfSQvLnRlc3QocC5jaGVja2luKSYmcC5jaGVja2luPj10b2RheSkgUy5jaT1wLmNoZWNraW47CiAgY29uc3Qgbj1NYXRoLm1pbigyMSxNYXRoLm1heCgxLE1hdGgucm91bmQocC5uaWdodHN8fG5pZ2h0cygpfHwyKSkpOwogIFMuY289YWRkRGF5cyhTLmNpLG4pOyBTLmF1dG89dHJ1ZTsgUy5zdGVwPTE7IFMucGFpZD1mYWxzZTsgcmVuZGVyKCk7Cn0KYXN5bmMgZnVuY3Rpb24gcGxhblRyaXAoKXsKICBjb25zdCB0PXZhbCgidHJpcFRleHQiKTsgaWYoIXQpeyAkKCJhaU1zZyIpLnRleHRDb250ZW50PSJEZXNjcmliZSB5b3VyIHRyaXAgZmlyc3QsIG9yIHRhcCBvbmUgb2YgdGhlIGV4YW1wbGVzLiI7IHJldHVybjsgfQogIGNvbnN0IGJ0bj0kKCJwbGFuQnRuIik7IGJ0bi5kaXNhYmxlZD10cnVlOyAkKCJhaU1zZyIpLnRleHRDb250ZW50PSJSZWFkaW5nIHlvdXIgcmVxdWVzdOKApiI7IGF3YWl0IHNhbXBsZVJlYWR5OyBsZXQgcGxhbjsKICB0cnl7CiAgICBpZighc2FtcGxlRm4pIHRocm93IG5ldyBFcnJvcigieCIpOwogICAgY29uc3Qgaj1hd2FpdCBzYW1wbGVGbi5qc29uKGBFeHRyYWN0IGJvb2tpbmcgZGV0YWlscyBmcm9tIGEgZ3Vlc3QncyBtZXNzYWdlIGZvciBhIHJlc29ydCB3aXRoIGRvdWJsZSByb29tcyAoMiBndWVzdHMpIGFuZCBvbmUgZmFtaWx5IHJvb20gKDQgZ3Vlc3RzKS4gQ2hpbGRyZW4gYmVsb3cgOSBzdGF5IGZyZWUuIFRvZGF5IGlzICR7dG9kYXl9ICgke25ldyBEYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCJlbi1VUyIse3dlZWtkYXk6ImxvbmcifSl9KS4gUmVzb2x2ZSByZWxhdGl2ZSBkYXRlcyB0byBhIHJlYWwgZnV0dXJlIFlZWVktTU0tREQuIENoaWxkcmVuIHdob3NlIGFnZXMgYXJlIG5vdCBzdGF0ZWQgZ28gaW4gY2hpbGRyZW5fOV9wbHVzLCBhbmQgeW91ciBub3RlIG11c3QgdGhlbiBzYXkgYWdlcyB3ZXJlIG5vdCBnaXZlbiBhbmQgdGhhdCBjaGlsZHJlbiBiZWxvdyA5IHN0YXkgZnJlZS4gUmVwbHkgd2l0aCBvbmx5IEpTT046IHsiY2hlY2tpbiI6IllZWVktTU0tREQgb3IgbnVsbCIsIm5pZ2h0cyI6bnVtYmVyIG9yIG51bGwsImFkdWx0cyI6bnVtYmVyIG9yIG51bGwsImNoaWxkcmVuXzlfcGx1cyI6bnVtYmVyIG9yIDAsImNoaWxkcmVuX2JlbG93XzkiOm51bWJlciBvciAwLCJub3RlIjoib25lIHNob3J0IGZyaWVuZGx5IHNlbnRlbmNlIHNheWluZyB3aGF0IHlvdSBzZXQsIGFuZCBhbnl0aGluZyB1bmNsZWFyIn0uXG5HdWVzdCBtZXNzYWdlOiAke3R9YCx7bW9kZWxUaWVyOiJxdWljayJ9KTsKICAgIHBsYW49e2NoZWNraW46ai5jaGVja2luLG5pZ2h0czpqLm5pZ2h0cyxhZHVsdHM6ai5hZHVsdHMsa2lkczk6ai5jaGlsZHJlbl85X3BsdXN8fDAsa2lkc1U5OmouY2hpbGRyZW5fYmVsb3dfOXx8MCxub3RlOmoubm90ZX07CiAgfWNhdGNoKGUpeyBwbGFuPWxvY2FsUGFyc2UodCk7IHBsYW4ubm90ZT0iU2V0IGZyb20geW91ciBtZXNzYWdlLiBDaGlsZHJlbiBiZWxvdyA5IHN0YXkgZnJlZSwgc28gdGVsbCB1cyB0aGVpciBhZ2VzIGlmIHlvdSBoYXZlIG5vdC4iOyB9CiAgYXBwbHlQbGFuKHBsYW4pOyBidG4uZGlzYWJsZWQ9ZmFsc2U7CiAgJCgiYWlNc2ciKS50ZXh0Q29udGVudD0ocGxhbi5ub3RlfHwiQm9va2luZyB1cGRhdGVkLiIpKyIgVGFraW5nIHlvdSB0byB5b3VyIGJvb2tpbmcuIjsKICBzZXRUaW1lb3V0KCgpPT4kKCJib29rIikuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgifSksNTAwKTsKfQokKCJwbGFuQnRuIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHBsYW5UcmlwKTsKWyIyIGFkdWx0cyBhbmQgMiBraWRzIGFnZWQgNiBhbmQgOCwgMyBuaWdodHMgZnJvbSBuZXh0IEZyaWRheSIsIkdyb3VwIG9mIDYgYWR1bHRzIGZvciAyIG5pZ2h0cyBmcm9tIHRvbW9ycm93IiwiQ291cGxlJ3Mgd2Vla2VuZCBnZXRhd2F5Il0uZm9yRWFjaCh0PT57CiAgY29uc3QgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsgYi50eXBlPSJidXR0b24iOyBiLmNsYXNzTmFtZT0iY2hpcCI7IGIudGV4dENvbnRlbnQ9dDsgYi5vbmNsaWNrPSgpPT57ICQoInRyaXBUZXh0IikudmFsdWU9dDsgcGxhblRyaXAoKTsgfTsgJCgic2FtcGxlcyIpLmFwcGVuZENoaWxkKGIpOwp9KTsKCi8qIC0tLS0tLS0tLS0gY29uY2llcmdlIC0tLS0tLS0tLS0gKi8KY29uc3QgaGlzdG9yeT1bXTsKZnVuY3Rpb24gYWRkTXNnKHJvbGUsdGV4dCl7IGNvbnN0IGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7IGQuY2xhc3NOYW1lPSJtICIrKHJvbGU9PT0idSI\/InUiOiJhIik7IGQudGV4dENvbnRlbnQ9dGV4dDsgJCgibXNncyIpLmFwcGVuZENoaWxkKGQpOyAkKCJtc2dzIikuc2Nyb2xsVG9wPTFlOTsgcmV0dXJuIGQ7IH0KYWRkTXNnKCJhIiwiV2VsY29tZSB0byBOYXJvIEVjbyBSZXNvcnQuIEFzayBtZSBhYm91dCByb29tcywgcHJpY2VzLCBmb29kLCBldmVudHMgb3IgbmVhcmJ5IHBsYWNlcywgb3IgdGVsbCBtZSB5b3VyIGRhdGVzIGFuZCBJIHdpbGwgc2V0IHVwIHlvdXIgYm9va2luZy4iKTsKZnVuY3Rpb24gbG9jYWxBbnN3ZXIocSl7CiAgY29uc3Qgcz1xLnRvTG93ZXJDYXNlKCk7CiAgaWYoL3ByZXBheXxwcmUtcGF5fGFkdmFuY2V8dG9rZW58cmVzY2hlZHxjYW5jZWx8cmVmdW5kfG5vLj9zaG93fGNoYW5nZSAodGhlICk\/ZGF0ZS8udGVzdChzKSkgcmV0dXJuICJZb3UgY2FuIHBheSDigrk2MDAgcGVyIHJvb20gbm93IGFuZCB0aGUgcmVzdCBhdCB0aGUgcmVzb3J0LiBJZiB5b3UgZG8gbm90IGFycml2ZSwgdGhlIGFkdmFuY2UgaXMgZm9yZmVpdGVkIGFuZCBpcyBub3QgcmVmdW5kYWJsZS4gSWYgeW91IHBheSBpbiBmdWxsLCB5b3UgY2FuIHJlc2NoZWR1bGUgZm9yIGEg4oK5MjAwIGNoYW5nZSBmZWUgaWYgeW91ciBwbGFucyBjaGFuZ2UuIjsKICBpZigvYnJlYWtmYXN0Ly50ZXN0KHMpKSByZXR1cm4gIkJyZWFrZmFzdCBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIHJvb20gcmF0ZS4gTmFybyBSZXN0YXVyYW50IHNlcnZlcyBwdXJlIHZlZ2V0YXJpYW4gZm9vZCBvbiBzaXRlLiI7CiAgaWYoL2dzdHx0YXgvLnRlc3QocykpIHJldHVybiAiT3VyIHJhdGVzIGRvIG5vdCBpbmNsdWRlIEdTVC4gMTIlIEdTVCBpcyBhZGRlZCBvbiB0b3AsIGFuZCB5b3VyIGJvb2tpbmcgdG90YWwgc2hvd3MgaXQgc2VwYXJhdGVseS4iOwogIGlmKC9jaGlsZHxraWQvLnRlc3QocykpIHJldHVybiAiQ2hpbGRyZW4gYmVsb3cgOSBzdGF5IGZyZWUuIEFuIGV4dHJhIGJlZCBpcyDigrk1MDAgYSBuaWdodC4iOwogIGlmKC9leHRyYSBiZWQvLnRlc3QocykpIHJldHVybiAiQW4gZXh0cmEgYmVkIGlzIOKCuTUwMCBwZXIgbmlnaHQuIjsKICBpZigvcHJpY2V8cmF0ZXxjb3N0fHRhcmlmZnzigrl8cnNcYnxyb29tLy50ZXN0KHMpKSByZXR1cm4gIkEgRG91YmxlIFJvb20gaXMg4oK5MiwyMDAgYSBuaWdodCBhbmQgdGhlIDQtYmVkIEZhbWlseSBSb29tIGlzIOKCuTMsMDAwIGEgbmlnaHQsIGJvdGggcGx1cyAxMiUgR1NULiBFdmVyeSByb29tIGhhcyBhIGRlc2VydCBjb29sZXIuIDEyJSBHU1QgaXMgYWRkZWQsIGFuZCBicmVha2Zhc3QgaXMgbm90IGluY2x1ZGVkLiI7CiAgaWYoL3Bvb2x8c3dpbS8udGVzdChzKSkgcmV0dXJuICJPdXIgc3dpbW1pbmcgcG9vbCB3aWxsIGJlIGluYXVndXJhdGVkIHNob3J0bHkuIEl0IGlzIG5vdCBvcGVuIHlldC4iOwogIGlmKC9zcGF8bWFzc2FnZS8udGVzdChzKSkgcmV0dXJuICJUaGVyZSBpcyBubyBzcGEgYXQgdGhlIHJlc29ydCBhdCB0aGUgbW9tZW50LiI7CiAgaWYoL2NvdXBsZXx1bm1hcnJpZWR8aG9uZXltb29uLy50ZXN0KHMpKSByZXR1cm4gIlllcywgTmFybyBFY28gUmVzb3J0IGlzIGNvdXBsZSBmcmllbmRseSBhbmQgdW5tYXJyaWVkIGNvdXBsZXMgYXJlIHdlbGNvbWUuIjsKICBpZigvcGF5fHVwaXxjYXJkLy50ZXN0KHMpKSByZXR1cm4gIllvdSBwYXkgb25saW5lIHRocm91Z2ggUmF6b3JwYXkgYWZ0ZXIgeW91IHJldmlldyB5b3VyIGJvb2tpbmcuIFRoZSByZXNvcnQgdGVhbSBjb25maXJtcyBhdmFpbGFiaWxpdHkuIjsKICBpZigvd2VkZGluZ3xldmVudHxwYXJ0eXxiaXJ0aGRheXxoYWxsLy50ZXN0KHMpKSByZXR1cm4gIldlIGhvc3QgZGVzdGluYXRpb24gd2VkZGluZ3MsIGJpcnRoZGF5cyBhbmQga2l0dHkgcGFydGllcy4gVGhlIGNvbmZlcmVuY2UgaGFsbCBpcyA0MCDDlyA0MCBmdCBhbmQgcGFya2luZyBmaXRzIG92ZXIgNTAgdmVoaWNsZXMuIFRoZSB0ZWFtIGNvbmZpcm1zIGRhdGVzIGFuZCBxdW90ZXMuIjsKICBpZigvZm9vZHxlYXR8cmVzdGF1cmFudHxtZW51fGRlbGl2ZXJ8dmVnLy50ZXN0KHMpKSByZXR1cm4gIk5hcm8gUmVzdGF1cmFudCBzZXJ2ZXMgcHVyZSB2ZWdldGFyaWFuIGZvb2Qgb25seS4gRm9vZCBkZWxpdmVyeSBpcyBhdmFpbGFibGUgd2l0aGluIDE1IGttLiI7CiAgaWYoL25lYXJ8dmlzaXR8ZGlzdGFuY2V8a2Fsc2l8ZGFrcGF0aGFyfGFzYW58dGVtcGxlfHRyZWsvLnRlc3QocykpIHJldHVybiAiTmVhcmJ5OiBBc2hva2EgUm9jayBFZGljdHMgYXQgS2Fsc2kgKDYga20pLCBEYWtwYXRoYXIgQmFycmFnZSAoOCBrbSksIEFzYW4gQmFycmFnZSBmb3IgYm9hdGluZyBhbmQgYmlyZHdhdGNoaW5nICgyNSBrbSksIGFuZCBzZXZlcmFsIHRlbXBsZXMuIjsKICBpZigvd2hlcmV8bG9jYXRpb258cmVhY2h8ZGVocmFkdW4vLnRlc3QocykpIHJldHVybiAiV2UgYXJlIG9uIHRoZSBZYW11bm90cmkgSGlnaHdheSBuZWFyIFZpa2FzIE5hZ2FyLCBhYm91dCA0NSBrbSBmcm9tIERlaHJhZHVuLiI7CiAgcmV0dXJuICJJIGNhbiBoZWxwIHdpdGggcm9vbXMsIHByaWNlcywgZm9vZCwgZXZlbnRzLCBwYXltZW50IGFuZCBuZWFyYnkgcGxhY2VzLiBUaGUgcmVzb3J0IHRlYW0gY29uZmlybXMgYW55dGhpbmcgZWxzZSBkaXJlY3RseS4iOwp9CmFzeW5jIGZ1bmN0aW9uIGFzayhxKXsKICBhZGRNc2coInUiLHEpOyBoaXN0b3J5LnB1c2goIkd1ZXN0OiAiK3EpOyBjb25zdCBvdXQ9YWRkTXNnKCJhIiwi4oCmIik7ICQoImNoYXRTZW5kIikuZGlzYWJsZWQ9dHJ1ZTsgYXdhaXQgc2FtcGxlUmVhZHk7CiAgdHJ5ewogICAgaWYoIXNhbXBsZUZuKSB0aHJvdyBuZXcgRXJyb3IoIngiKTsKICAgIGNvbnN0IHI9YXdhaXQgc2FtcGxlRm4oYFlvdSBhcmUgdGhlIGNvbmNpZXJnZSBmb3IgTmFybyBFY28gUmVzb3J0LiBBbnN3ZXIgaW4gMSB0byA0IHNob3J0IHNlbnRlbmNlcywgd2FybSBhbmQgcGxhaW4uIFVzZSBvbmx5IHRoZXNlIGZhY3RzLiBJZiBzb21ldGhpbmcgaXMgbm90IGxpc3RlZCAoYXZhaWxhYmlsaXR5LCBjaGVjay1pbiB0aW1lcywgcGhvbmUgbnVtYmVycywgcmVmdW5kIHBvbGljeSksIHNheSB0aGUgcmVzb3J0IHRlYW0gd2lsbCBjb25maXJtIGl0LiBOZXZlciBpbnZlbnQgcHJpY2VzLiBGb3IgYSBwcmljZSBxdW90ZSBmb3Igc3BlY2lmaWMgZGF0ZXMgYW5kIGd1ZXN0cywgdGVsbCB0aGUgZ3Vlc3QgdG8gdXNlIHRoZSBib29raW5nIHNlY3Rpb24gb24gdGhpcyBwYWdlLCB3aGljaCBjYWxjdWxhdGVzIGl0IHdpdGggR1NULlxuRkFDVFM6XG4ke0ZBQ1RTfVxuXG5DT05WRVJTQVRJT046XG4ke2hpc3Rvcnkuc2xpY2UoLTgpLmpvaW4oIlxuIil9XG5Db25jaWVyZ2U6YCx7Y2FjaGU6ZmFsc2Usb25UZXh0Oih7dGV4dH0pPT57IG91dC50ZXh0Q29udGVudD10ZXh0OyAkKCJtc2dzIikuc2Nyb2xsVG9wPTFlOTsgfX0pOwogICAgb3V0LnRleHRDb250ZW50PXIudGV4dDsgaGlzdG9yeS5wdXNoKCJDb25jaWVyZ2U6ICIrci50ZXh0KTsKICB9Y2F0Y2goZSl7IGNvbnN0IGE9bG9jYWxBbnN3ZXIocSk7IG91dC50ZXh0Q29udGVudD1hOyBoaXN0b3J5LnB1c2goIkNvbmNpZXJnZTogIithKTsgfQogICQoImNoYXRTZW5kIikuZGlzYWJsZWQ9ZmFsc2U7Cn0KZnVuY3Rpb24gb3BlbkNoYXQob3Blbil7ICQoImNoYXQiKS5oaWRkZW49IW9wZW47ICQoImZhYiIpLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsU3RyaW5nKG9wZW4pKTsgaWYob3BlbikgJCgiY2hhdEluIikuZm9jdXMoKTsgfQokKCJmYWIiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pm9wZW5DaGF0KCQoImNoYXQiKS5oaWRkZW4pKTsKJCgiY2hhdFgiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pm9wZW5DaGF0KGZhbHNlKSk7CiQoImV2QXNrIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57IG9wZW5DaGF0KHRydWUpOyBhc2soIkNhbiBJIGhvc3QgYSB3ZWRkaW5nIG9yIGV2ZW50IGF0IHRoZSByZXNvcnQ\/Iik7IH0pOwokKCJjaGF0Rm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsZT0+eyBlLnByZXZlbnREZWZhdWx0KCk7IGNvbnN0IHY9dmFsKCJjaGF0SW4iKTsgaWYoIXYpIHJldHVybjsgJCgiY2hhdEluIikudmFsdWU9IiI7IGFzayh2KTsgfSk7ClsiSXMgYnJlYWtmYXN0IGluY2x1ZGVkPyIsIkFyZSBjb3VwbGVzIHdlbGNvbWU\/IiwiRG8gY2hpbGRyZW4gcGF5PyIsIklzIHRoZSBwb29sIG9wZW4\/Il0uZm9yRWFjaCh0PT57IGNvbnN0IGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7IGIudHlwZT0iYnV0dG9uIjsgYi5jbGFzc05hbWU9ImNoaXAiOyBiLnRleHRDb250ZW50PXQ7IGIub25jbGljaz0oKT0+YXNrKHQpOyAkKCJxcyIpLmFwcGVuZENoaWxkKGIpOyB9KTsKCi8qIC0tLS0tLS0tLS0gaXRpbmVyYXJ5IC0tLS0tLS0tLS0gKi8KJCgicGxhbkdvIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PnsKICBjb25zdCBxPXZhbCgicGxhbkluIik7IGlmKCFxKSByZXR1cm47IGNvbnN0IG89JCgicGxhbk91dCIpOyBvLnRleHRDb250ZW50PSJCdWlsZGluZyB5b3VyIGl0aW5lcmFyeeKApiI7ICQoInBsYW5HbyIpLmRpc2FibGVkPXRydWU7IGF3YWl0IHNhbXBsZVJlYWR5OwogIHRyeXsKICAgIGlmKCFzYW1wbGVGbikgdGhyb3cgbmV3IEVycm9yKCJ4Iik7CiAgICBjb25zdCByPWF3YWl0IHNhbXBsZUZuKGBXcml0ZSBhIHNob3J0IGRheS1ieS1kYXkgaXRpbmVyYXJ5IGZvciBhIGd1ZXN0IHN0YXlpbmcgYXQgTmFybyBFY28gUmVzb3J0LiBVc2Ugb25seSB0aGVzZSBmYWN0cy4gRG8gbm90IGludmVudCBvcGVuaW5nIGhvdXJzLCBwcmljZXMgb3IgdHJhdmVsIHRpbWVzLiBEbyBub3Qgc3VnZ2VzdCBub24tdmVnZXRhcmlhbiBmb29kIG9yIGEgc3BhLCBhbmQgZG8gbm90IHNheSB0aGUgcG9vbCBpcyBvcGVuLiBQbGFpbiB0ZXh0LCBvbmUgbGluZSBwZXIgcGFydCBvZiBkYXksIG5vIG1hcmtkb3duIHN5bWJvbHMuXG5GQUNUUzpcbiR7RkFDVFN9XG5cbkd1ZXN0IHJlcXVlc3Q6ICR7cX1gLHtvblRleHQ6KHt0ZXh0fSk9PntvLnRleHRDb250ZW50PXRleHQ7fX0pOwogICAgby50ZXh0Q29udGVudD1yLnRleHQ7CiAgfWNhdGNoKGUpeyBvLnRleHRDb250ZW50PSJEYXkgMVxuTW9ybmluZzogV2FsayB0aHJvdWdoIHRoZSBvcmdhbmljIGdhcmRlbiwgdGhlbiBhIG1lYWwgYXQgTmFybyBSZXN0YXVyYW50LlxuQWZ0ZXJub29uOiBWaXNpdCB0aGUgQXNob2thIFJvY2sgRWRpY3RzIGF0IEthbHNpLCA2IGttIGF3YXkuXG5FdmVuaW5nOiBEaW5uZXIgYXQgTmFybyBSZXN0YXVyYW50LlxuXG5EYXkgMlxuTW9ybmluZzogRGFrcGF0aGFyIEJhcnJhZ2UsIDgga20gYXdheS5cbkFmdGVybm9vbjogQSBzbG93IHdhbGsgdGhyb3VnaCB0aGUgZm9yZXN0IHBhdGhzIG5lYXIgdGhlIHJlc29ydC5cbkV2ZW5pbmc6IFJlbGF4IGJlZm9yZSB5b3UgbGVhdmUuIjsgfQogICQoInBsYW5HbyIpLmRpc2FibGVkPWZhbHNlOwp9KTsKCi8qIC0tLS0tLS0tLS0gZm9vdGVyIGNvbnRhY3QgLS0tLS0tLS0tLSAqLwooZnVuY3Rpb24oKXsKICBjb25zdCBpdD1bQ09OVEFDVC5waG9uZSYmIlBob25lOiAiK0NPTlRBQ1QucGhvbmUsQ09OVEFDVC53aGF0c2FwcCYmIldoYXRzQXBwOiAiK0NPTlRBQ1Qud2hhdHNhcHAsQ09OVEFDVC5lbWFpbCYmIkVtYWlsOiAiK0NPTlRBQ1QuZW1haWxdLmZpbHRlcihCb29sZWFuKTsKICAkKCJjb250YWN0TGlzdCIpLmlubmVySFRNTD1pdC5sZW5ndGg\/aXQubWFwKGk9PmA8bGk+JHtlc2MoaSl9PC9saT5gKS5qb2luKCIiKTpgPGxpPlVzZSB0aGUgYm9va2luZyBmb3JtIG9yIHRoZSBBc2sgTmFybyBjaGF0PC9saT5gOwp9KSgpOwpyZW5kZXIoKTsKPC9zY3JpcHQ+Cgo8c3R5bGU+Kntmb250LWZhbWlseTpHZW9yZ2lhLCJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmIWltcG9ydGFudDt0ZXh0LXRyYW5zZm9ybTpub25lIWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzpub3JtYWwhaW1wb3J0YW50O2ZvbnQtdmFyaWFudDpub3JtYWwhaW1wb3J0YW50fQoubmRsZ3twb3NpdGlvbjpmaXhlZDtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDt6LWluZGV4OjEwMDAwMDtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDpyZ2JhKDMsMTAsOCwuNjIpO3BhZGRpbmc6MTZweH0KLm5kbGcub257ZGlzcGxheTpmbGV4fQoubmRsZyAuYm94e21heC13aWR0aDo0MjBweDt3aWR0aDoxMDAlO2JhY2tncm91bmQ6IzBmMmEyMjtjb2xvcjojZThmMGVhO2JvcmRlcjoycHggc29saWQgI2VmYmY2Mjtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzoyMnB4IDIycHggMThweDtib3gtc2hhZG93OjAgMjBweCA2MHB4IHJnYmEoMCwwLDAsLjUpO2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuNX0KLm5kbGcgLmJveCBidXR0b257bWFyZ2luLXRvcDoxNHB4O2JvcmRlcjoxcHggc29saWQgI2VmYmY2MjtiYWNrZ3JvdW5kOiNlZmJmNjI7Y29sb3I6IzFhMTIwNDtib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6OXB4IDI0cHg7Zm9udC1zaXplOjE2cHg7Y3Vyc29yOnBvaW50ZXJ9PC9zdHlsZT4KPGRpdiBjbGFzcz0ibmRsZyIgaWQ9Im5kbGciIHJvbGU9ImFsZXJ0ZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIj48ZGl2IGNsYXNzPSJib3giPjxkaXYgaWQ9Im5kTXNnIj48L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9Im5kT2siPk9rYXk8L2J1dHRvbj48L2Rpdj48L2Rpdj4KPHNjcmlwdD4KKGZ1bmN0aW9uKCl7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5kbGciKSxtbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmRNc2ciKSxsYXN0PSIiOwpmdW5jdGlvbiBzaG93KHQpe21tLnRleHRDb250ZW50PXQ7ZC5jbGFzc0xpc3QuYWRkKCJvbiIpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZE9rIikuZm9jdXMoKTt9CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZE9rIikub25jbGljaz1mdW5jdGlvbigpe2QuY2xhc3NMaXN0LnJlbW92ZSgib24iKX07CmQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0PT09ZClkLmNsYXNzTGlzdC5yZW1vdmUoIm9uIil9KTsKZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oZSl7aWYoZS5rZXk9PT0iRXNjYXBlIilkLmNsYXNzTGlzdC5yZW1vdmUoIm9uIil9KTsKWyJlMSIsImUyIiwiZTMiLCJhaU1zZyIsImNvcHlNc2ciXS5mb3JFYWNoKGZ1bmN0aW9uKGlkKXt2YXIgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO2lmKCFlbClyZXR1cm47CiBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe3ZhciB0PWVsLnRleHRDb250ZW50LnRyaW0oKTtpZighdHx8L1x1MjAyNiQvLnRlc3QodCkpcmV0dXJuO3Nob3codCk7ZWwudGV4dENvbnRlbnQ9IiI7fSkub2JzZXJ2ZShlbCx7Y2hpbGRMaXN0OnRydWUsY2hhcmFjdGVyRGF0YTp0cnVlLHN1YnRyZWU6dHJ1ZX0pO30pOwp2YXIgcmg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb21IaW50Iik7CmlmKHJoKW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7dmFyIHQ9cmgudGV4dENvbnRlbnQudHJpbSgpO2lmKHJoLnN0eWxlLmNvbG9yJiZ0KXtpZih0IT09bGFzdCl7bGFzdD10O3Nob3codCk7fX1lbHNle2xhc3Q9IiI7fX0pLm9ic2VydmUocmgse2NoaWxkTGlzdDp0cnVlLGNoYXJhY3RlckRhdGE6dHJ1ZSxzdWJ0cmVlOnRydWUsYXR0cmlidXRlczp0cnVlfSk7Cn0pKCk7Cjwvc2NyaXB0PgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CnZhciB0PTAsYXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOyBhdi5pZD0iYXZhaWxNc2ciOyBhdi5jbGFzc05hbWU9Im5vdGUiOyBhdi5zdHlsZS5tYXJnaW5Ub3A9IjZweCI7CnZhciByaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm9vbUhpbnQiKTsgcmgucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYXYscmgubmV4dFNpYmxpbmcpOwp2YXIgX3I9cmVuZGVyOwpyZW5kZXI9ZnVuY3Rpb24oKXsgX3IoKTsgY2xlYXJUaW1lb3V0KHQpOyB0PXNldFRpbWVvdXQoY2hlY2ssMzUwKTsgfTsKYXN5bmMgZnVuY3Rpb24gY2hlY2soKXsKIHZhciBrPVMuY2krInwiK1MuY287IGlmKG5pZ2h0cygpPDF8fFMuY2k8dG9kYXkpIHJldHVybjsgdmFyIGE7CiB0cnl7IHZhciByPWF3YWl0IGZldGNoKCIvd3AtanNvbi9uYXJvL3YxL2F2YWlsP2NoZWNraW49IitTLmNpKyImY2hlY2tvdXQ9IitTLmNvLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSk7IGlmKCFyLm9rKSByZXR1cm47IGE9YXdhaXQgci5qc29uKCk7IGlmKCFhLm9rKSByZXR1cm47IH1jYXRjaChlKXsgcmV0dXJuOyB9CiBpZihrIT09Uy5jaSsifCIrUy5jbykgcmV0dXJuOwogdmFyIGNoYW5nZWQ9KGEuZGJsIT09TUFYREJMfHxhLmZhbSE9PU1BWEZBTSk7IE1BWERCTD1hLmRibDsgTUFYRkFNPWEuZmFtOyBMSU0uZGJsWzFdPWEuZGJsOyBMSU0uZmFtWzFdPWEuZmFtOyBTLmF2YWlsPWE7CiBhdi50ZXh0Q29udGVudD0oYS5kYmwrYS5mYW09PT0wKT8iU29ycnksIG5vIHJvb21zIGFyZSBmcmVlIGZvciB0aGVzZSBkYXRlcy4gUGxlYXNlIHRyeSBvdGhlciBkYXRlcy4iOiJGcmVlIG9uIHRoZXNlIGRhdGVzOiAiK2EuZGJsKyIgRG91YmxlIFJvb20iKyhhLmRibD09PTE\/IiI6InMiKSsiIGFuZCAiK2EuZmFtKyIgRmFtaWx5IFJvb20iKyhhLmZhbT09PTE\/IiI6InMiKSsiLiI7CiBpZihjaGFuZ2VkKSBfcigpOwp9CnZhciBfdj12YWxpZGF0ZTsKdmFsaWRhdGU9ZnVuY3Rpb24oc3RlcCl7CiBpZihzdGVwPT09MSYmUy5hdmFpbCl7CiAgaWYoUy5hdmFpbC5kYmwrUy5hdmFpbC5mYW09PT0wKXsgJCgiZTEiKS50ZXh0Q29udGVudD0iU29ycnksIG5vIHJvb21zIGFyZSBmcmVlIGZvciB0aGVzZSBkYXRlcy4gUGxlYXNlIHRyeSBvdGhlciBkYXRlcy4iOyByZXR1cm4gZmFsc2U7IH0KICBpZihTLmRibD5TLmF2YWlsLmRibHx8Uy5mYW0+Uy5hdmFpbC5mYW0peyAkKCJlMSIpLnRleHRDb250ZW50PSJPbmx5ICIrUy5hdmFpbC5kYmwrIiBEb3VibGUgUm9vbSIrKFMuYXZhaWwuZGJsPT09MT8iIjoicyIpKyIgYW5kICIrUy5hdmFpbC5mYW0rIiBGYW1pbHkgUm9vbSIrKFMuYXZhaWwuZmFtPT09MT8iIjoicyIpKyIgYXJlIGZyZWUgZm9yIHRoZXNlIGRhdGVzLiBQbGVhc2UgYWRqdXN0IHlvdXIgcm9vbXMuIjsgcmV0dXJuIGZhbHNlOyB9CiB9CiByZXR1cm4gX3Yoc3RlcCk7Cn07CnJlbmRlcigpOwp9KSgpOwo8L3NjcmlwdD4KCjxzY3JpcHQ+CihmdW5jdGlvbigpewpmdW5jdGlvbiB1cGQoKXsKIHZhciBjPWNhbGMoKSwgYWR2PU1hdGgubWluKDYwMCpjLnJvb21zLGMudG90YWwpLCBtb2RlPXJhZGlvKCJwYXlNb2RlIil8fCJmdWxsIjsKIHZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb0FkdiIpLCBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb0Z1bGxBbXQiKSwgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGF5QnRuIik7CiBpZihmKSBmLnRleHRDb250ZW50PSIoIitpbnIoYy50b3RhbCkrIikiOwogaWYoYSkgYS50ZXh0Q29udGVudD0iQmFsYW5jZSBvZiAiK2lucihjLnRvdGFsLWFkdikrIiB0byBwYXkgYXQgY2hlY2staW4uIElmIHlvdSBkbyBub3QgYXJyaXZlLCB0aGUgIitpbnIoYWR2KSsiIGlzIGZvcmZlaXRlZCBhbmQgaXMgbm90IHJlZnVuZGFibGUuIjsKIHZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb0FkdlQiKTsgaWYodCkgdC50ZXh0Q29udGVudD0iUGF5ICIraW5yKGFkdikrIiBub3ciOwogaWYoYikgYi50ZXh0Q29udGVudD0obW9kZT09PSJhZHZhbmNlIik\/IlBheSAiK2lucihhZHYpKyIgYW5kIGNvbmZpcm0iOiJQYXkgIitpbnIoYy50b3RhbCkrIiBhbmQgY29uZmlybSI7Cn0KdmFyIF9ycj1yZW5kZXJSZXZpZXc7IHJlbmRlclJldmlldz1mdW5jdGlvbigpeyBfcnIoKTsgdXBkKCk7IH07CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9InBheU1vZGUiXScpLmZvckVhY2goZnVuY3Rpb24oaSl7IGkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix1cGQpOyB9KTsKfSkoKTsKPC9zY3JpcHQ+Cgo8c3R5bGU+LmJyYW5kLWxvZ297d2lkdGg6NDZweDtoZWlnaHQ6NDZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmY7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6bm9uZTtkaXNwbGF5OmJsb2NrfTwvc3R5bGU+Cgo8c3R5bGU+Ci5oZXJvLXBob3Rve3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDQsMTYsMTMsLjUpLHJnYmEoNCwxNiwxMywuODgpKSx1cmwoaHR0cHM6Ly9uYXJvZWNvLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNS8wNy9XaGF0c0FwcC1JbWFnZS0yMDI1LTA3LTAyLWF0LTEyLjAwLjMxLUFNLTEuanBlZykgY2VudGVyL2NvdmVyIG5vLXJlcGVhdH0KI3NreXtvcGFjaXR5Oi40fQouZ2FsbGVyeXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLDFmcik7Z2FwOjE0cHh9Ci5nYWxsZXJ5IC5waHtoZWlnaHQ6MjEwcHg7Ym9yZGVyLXJhZGl1czoxNHB4O292ZXJmbG93OmhpZGRlbn0KLmdhbGxlcnkgLnBoIGltZywudHBoIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y292ZXI7ZGlzcGxheTpibG9ja30KLnRwaHtoZWlnaHQ6MTcwcHg7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjttYXJnaW4tYm90dG9tOjE0cHh9CkBtZWRpYShtYXgtd2lkdGg6NzAwcHgpey5nYWxsZXJ5e2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwxZnIpfS5nYWxsZXJ5IC5waHtoZWlnaHQ6MTUwcHh9fQo8L3N0eWxlPgo=\"><\/div>\n<script>(function(){var d=document.getElementById(`naro-app`);var s=atob(d.dataset.src);d.innerHTML=decodeURIComponent(escape(s));d.querySelectorAll(`script`).forEach(function(o){var n=document.createElement(`script`);n.text=o.text;o.replaceWith(n)})})();<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-4691","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/naroeco.com\/index.php\/wp-json\/wp\/v2\/pages\/4691","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naroeco.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/naroeco.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/naroeco.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naroeco.com\/index.php\/wp-json\/wp\/v2\/comments?post=4691"}],"version-history":[{"count":18,"href":"https:\/\/naroeco.com\/index.php\/wp-json\/wp\/v2\/pages\/4691\/revisions"}],"predecessor-version":[{"id":4716,"href":"https:\/\/naroeco.com\/index.php\/wp-json\/wp\/v2\/pages\/4691\/revisions\/4716"}],"wp:attachment":[{"href":"https:\/\/naroeco.com\/index.php\/wp-json\/wp\/v2\/media?parent=4691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}