PD9waHAKLyoKUGx1Z2luIE5hbWU6IEZyYW5jb0RlYWwgUkdQRCBDb29raWUgQmFubmVyCkRlc2NyaXB0aW9uOiBHRFBSIGNvb2tpZSBiYW5uZXIgc2hvd24gdG8gYWxsIHZpc2l0b3JzIChzdHVkaW8gc3R5bGUpLiBDb250ZW50IGZyb20gcG9zdCA3Mzg2LgpWZXJzaW9uOiAxLjAKKi8KaWYoIWRlZmluZWQoJ0FCU1BBVEgnKSkgZXhpdDsKYWRkX2FjdGlvbignd3BfZm9vdGVyJywgZnVuY3Rpb24oKXsKPz4KPHNjcmlwdD4KCi8qIEZyYW5jb0RlYWwgLSBSR1BEIGNvb2tpZSBiYW5uZXIgKHN0dWRpbyBzdHlsZSkgKyBsZWdhbCBwb3B1cHM7IGNvbnRlbnQgZnJvbSBwb3N0IDczODYgKi8KKGZ1bmN0aW9uKCl7CmZ1bmN0aW9uIF9fZmRSdW4oKXsKaWYod2luZG93Ll9fZmRSZ3BkTG9hZGVkKSByZXR1cm47IHdpbmRvdy5fX2ZkUmdwZExvYWRlZD10cnVlOwp2YXIgQ1NTPSIiCisiI2ZkLWNvb2tpZS1iYXJ7cG9zaXRpb246Zml4ZWQ7bGVmdDo1MCU7dG9wOjI0cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7d2lkdGg6Y2FsYygxMDAlIC0gNDBweCk7bWF4LXdpZHRoOjExODBweDt6LWluZGV4Ojk5OTk4O2JhY2tncm91bmQ6IzBhMGEwYTtjb2xvcjojZThlOGU4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpO2JvcmRlci1yYWRpdXM6MjJweDtwYWRkaW5nOjMwcHggMzhweCAyNnB4O2ZvbnQtZmFtaWx5OidIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtib3gtc2hhZG93OjAgMjRweCA3MHB4IHJnYmEoMCwwLDAsLjYpO2Rpc3BsYXk6bm9uZX0iCisiI2ZkLWNvb2tpZS1iYXIuc2hvd3tkaXNwbGF5OmJsb2NrfSIKKyIjZmQtY2ItdG9we2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxOHB4fSIKKyIjZmQtY2ItY29va2lle2ZsZXg6MCAwIGF1dG87d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MS41cHggc29saWQgI0UwQTgyRTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjIwcHh9IgorIiNmZC1jYi1tYWlue2ZsZXg6MX0iCisiI2ZkLWNiLW1haW4gaDN7bWFyZ2luOjAgMCA4cHg7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7bGV0dGVyLXNwYWNpbmc6LS4zcHh9IgorIiNmZC1jYi1tZXNzYWdle21hcmdpbjowO2ZvbnQtc2l6ZToxNXB4O2xpbmUtaGVpZ2h0OjEuNTU7Y29sb3I6I2FlYjBiNDttYXgtd2lkdGg6OTgwcHh9IgorIiNmZC1jYi1jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjRweDtyaWdodDozMHB4O2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjb2xvcjojOGE4YzkwO2ZvbnQtc2l6ZToyNHB4O2xpbmUtaGVpZ2h0OjE7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzo0cHh9IgorIiNmZC1jYi1jbG9zZTpob3Zlcntjb2xvcjojZmZmfSIKKyIjZmQtY2ItYWN0aW9uc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbjoyMnB4IDAgMCA1OHB4fSIKKyIjZmQtY2ItYWN0aW9ucyBidXR0b257Zm9udC1mYW1pbHk6aW5oZXJpdCAhaW1wb3J0YW50O2ZvbnQtc2l6ZToxNXB4ICFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NjAwICFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXIgIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjExcHggIWltcG9ydGFudDt0cmFuc2l0aW9uOmFsbCAuMTVzICFpbXBvcnRhbnQ7dGV4dC10cmFuc2Zvcm06bm9uZSAhaW1wb3J0YW50O2xldHRlci1zcGFjaW5nOm5vcm1hbCAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMiAhaW1wb3J0YW50O3dpZHRoOmF1dG8gIWltcG9ydGFudDttYXJnaW46MCAhaW1wb3J0YW50fSIKKyIjZmQtY2ItYWNjZXB0e2JhY2tncm91bmQ6I0YyQjUzQyAhaW1wb3J0YW50O2NvbG9yOiMxYTFhMWEgIWltcG9ydGFudDtib3JkZXI6bm9uZSAhaW1wb3J0YW50O3BhZGRpbmc6MTNweCAzMHB4ICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lICFpbXBvcnRhbnR9IgorIiNmZC1jYi1hY2NlcHQ6aG92ZXJ7YmFja2dyb3VuZDojZjVjMTU1ICFpbXBvcnRhbnR9IgorIiNmZC1jYi1lc3NlbnRpYWx7YmFja2dyb3VuZDp0cmFuc3BhcmVudCAhaW1wb3J0YW50O2NvbG9yOiNlOGU4ZTggIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjIpICFpbXBvcnRhbnQ7cGFkZGluZzoxM3B4IDI4cHggIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudH0iCisiI2ZkLWNiLWVzc2VudGlhbDpob3Zlcntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNDUpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNSkgIWltcG9ydGFudH0iCisiI2ZkLWNiLWN1c3RvbWl6ZXtiYWNrZ3JvdW5kOm5vbmUgIWltcG9ydGFudDtjb2xvcjojY2ZkMGQzICFpbXBvcnRhbnQ7Ym9yZGVyOm5vbmUgIWltcG9ydGFudDtwYWRkaW5nOjEzcHggMTRweCAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50fSIKKyIjZmQtY2ItY3VzdG9taXplOmhvdmVye2NvbG9yOiNmZmYgIWltcG9ydGFudH0iCisiI2ZkLWNiLWxlYXJue21hcmdpbjoxOHB4IDAgMCA1OHB4O2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM5YTljYTB9IgorIiNmZC1jYi1sZWFybiBhe2NvbG9yOiNFMEE4MkU7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NjAwfSIKKyIjZmQtY2ItbGVhcm4gYTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfSIKKyJAbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsjZmQtY29va2llLWJhcntwYWRkaW5nOjI0cHggMjJweCAyMnB4O3RvcDoxNHB4fSNmZC1jYi1tYWluIGgze2ZvbnQtc2l6ZToyMHB4fSNmZC1jYi1hY3Rpb25zLCNmZC1jYi1sZWFybnttYXJnaW4tbGVmdDowfSNmZC1jYi1hY3Rpb25zIGJ1dHRvbntmbGV4OjEgMSBhdXRvfX0iCisiI2ZkLWxlZ2FsLW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4Ojk5OTk5O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNyk7ZGlzcGxheTpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MjBweH0iCisiI2ZkLWxlZ2FsLW92ZXJsYXkuc2hvd3tkaXNwbGF5OmZsZXh9IgorIiNmZC1sZWdhbC1tb2RhbHtiYWNrZ3JvdW5kOiMwYTBhMGE7Y29sb3I6I2RkZDttYXgtd2lkdGg6ODIwcHg7d2lkdGg6MTAwJTttYXgtaGVpZ2h0Ojg4dmg7Ym9yZGVyLXJhZGl1czoxOHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyMjQsMTY4LDQ2LC41KTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtZmFtaWx5Okdlb3JnaWEsJ1RpbWVzIE5ldyBSb21hbicsc2VyaWY7Ym94LXNoYWRvdzowIDEwcHggNTBweCByZ2JhKDAsMCwwLC42KX0iCisiI2ZkLWxlZ2FsLWhlYWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE4cHggMjRweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDIyNCwxNjgsNDYsLjI1KTtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcH0iCisiI2ZkLWxlZ2FsLWhlYWQgaDJ7bWFyZ2luOjA7Y29sb3I6I0UwQTgyRTtmb250LXNpemU6MjFweDtmbGV4OjF9IgorIiNmZC1sZWdhbC1sYW5ndG9nZ2xle2Rpc3BsYXk6ZmxleDtnYXA6NHB4fSIKKyIjZmQtbGVnYWwtbGFuZ3RvZ2dsZSBidXR0b257Zm9udC1mYW1pbHk6J0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6NXB4IDEzcHg7Ym9yZGVyOjFweCBzb2xpZCAjRTBBODJFO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I0UwQTgyRTtib3JkZXItcmFkaXVzOjdweDtjdXJzb3I6cG9pbnRlcn0iCisiI2ZkLWxlZ2FsLWxhbmd0b2dnbGUgYnV0dG9uLmFjdGl2ZXtiYWNrZ3JvdW5kOiNFMEE4MkU7Y29sb3I6IzFhMWExYTtmb250LXdlaWdodDpib2xkfSIKKyIjZmQtbGVnYWwtY2xvc2V7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2NvbG9yOiNFMEE4MkU7Zm9udC1zaXplOjI2cHg7bGluZS1oZWlnaHQ6MTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjAgNnB4fSIKKyIjZmQtbGVnYWwtYm9keXtvdmVyZmxvdy15OmF1dG87cGFkZGluZzoyMnB4IDI4cHg7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS42NX0iCisiI2ZkLWxlZ2FsLWJvZHkgaDN7Y29sb3I6I0UwQTgyRTtmb250LXNpemU6MTZweDttYXJnaW46MjBweCAwIDhweH0iCisiI2ZkLWxlZ2FsLWJvZHkgaDR7Y29sb3I6I2NmYTk0YTtmb250LXNpemU6MTRweDttYXJnaW46MTRweCAwIDZweH0iCisiI2ZkLWxlZ2FsLWJvZHkgcHttYXJnaW46OHB4IDB9I2ZkLWxlZ2FsLWJvZHkgdWx7bWFyZ2luOjhweCAwIDhweCAxOHB4fSNmZC1sZWdhbC1ib2R5IGxpe21hcmdpbjo0cHggMH0iCisiI2ZkLWxlZ2FsLWJvZHkgLmZkLW1ldGF7Y29sb3I6Izk5OTtmb250LXN0eWxlOml0YWxpYztmb250LXNpemU6MTJweH0iCisiI2ZkLWxlZ2FsLWJvZHkgdGFibGV7d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7bWFyZ2luOjEwcHggMDtmb250LXNpemU6MTNweH0iCisiI2ZkLWxlZ2FsLWJvZHkgdGR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIyNCwxNjgsNDYsLjI1KTtwYWRkaW5nOjZweCAxMHB4fSIKKyJAbWVkaWEobWF4LXdpZHRoOjYwMHB4KXsjZmQtbGVnYWwtaGVhZCBoMntmb250LXNpemU6MTdweH0jZmQtbGVnYWwtYm9keXtwYWRkaW5nOjE2cHh9fSI7CnZhciBzdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO3N0LmlkPSdmZC1yZ3BkLXN0eWxlJztzdC50ZXh0Q29udGVudD1DU1M7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdCk7CnZhciBDT09LSUU9Jzxzdmcgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0UwQTgyRSIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDJhMTAgMTAgMCAxIDAgMTAgMTAgNCA0IDAgMCAxLTUtNSA0IDQgMCAwIDEtNS01Ii8+PGNpcmNsZSBjeD0iOC41IiBjeT0iMTAuNSIgcj0iMSIgZmlsbD0iI0UwQTgyRSIvPjxjaXJjbGUgY3g9IjEzIiBjeT0iMTQuNSIgcj0iMSIgZmlsbD0iI0UwQTgyRSIvPjxjaXJjbGUgY3g9IjE1LjUiIGN5PSI5LjUiIHI9IjEiIGZpbGw9IiNFMEE4MkUiLz48L3N2Zz4nOwp2YXIgSFRNTD0nPGRpdiBpZD0iZmQtY29va2llLWJhciI+PGJ1dHRvbiBpZD0iZmQtY2ItY2xvc2UiIGFyaWEtbGFiZWw9IkNsb3NlIj4mdGltZXM7PC9idXR0b24+PGRpdiBpZD0iZmQtY2ItdG9wIj48ZGl2IGlkPSJmZC1jYi1jb29raWUiPicrQ09PS0lFKyc8L2Rpdj48ZGl2IGlkPSJmZC1jYi1tYWluIj48aDMgaWQ9ImZkLWNiLXRpdGxlIj48L2gzPjxwIGlkPSJmZC1jYi1tZXNzYWdlIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZmQtY2ItYWN0aW9ucyI+PGJ1dHRvbiBpZD0iZmQtY2ItYWNjZXB0Ij48L2J1dHRvbj48YnV0dG9uIGlkPSJmZC1jYi1lc3NlbnRpYWwiPjwvYnV0dG9uPjxidXR0b24gaWQ9ImZkLWNiLWN1c3RvbWl6ZSI+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iZmQtY2ItbGVhcm4iPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImZkLWxlZ2FsLW92ZXJsYXkiPjxkaXYgaWQ9ImZkLWxlZ2FsLW1vZGFsIj48ZGl2IGlkPSJmZC1sZWdhbC1oZWFkIj48aDIgaWQ9ImZkLWxlZ2FsLXRpdGxlIj48L2gyPjxkaXYgaWQ9ImZkLWxlZ2FsLWxhbmd0b2dnbGUiPjxidXR0b24gZGF0YS1sYW5nPSJlbiI+RU48L2J1dHRvbj48YnV0dG9uIGRhdGEtbGFuZz0iZnIiPkZSPC9idXR0b24+PC9kaXY+PGJ1dHRvbiBpZD0iZmQtbGVnYWwtY2xvc2UiIGFyaWEtbGFiZWw9IkNsb3NlIj4mdGltZXM7PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iZmQtbGVnYWwtYm9keSI+PC9kaXY+PC9kaXY+PC9kaXY+JzsKdmFyIHdyYXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7d3JhcC5pbm5lckhUTUw9SFRNTDt3aGlsZSh3cmFwLmZpcnN0Q2hpbGQpe2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQod3JhcC5maXJzdENoaWxkKTt9CnZhciBzaXRlTGFuZz0oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnbGFuZycpfHwnJykudG9Mb3dlckNhc2UoKTsKdmFyIHVpTGFuZz0vXmZyLy50ZXN0KHNpdGVMYW5nKT8nZnInOidlbic7dmFyIGN1ckxhbmc9dWlMYW5nOwp2YXIgVUk9e2VuOnt0aXRsZTonV2UgdXNlIGNvb2tpZXMnLG1zZzonV2UgdXNlIGNvb2tpZXMgdG8gaW1wcm92ZSB5b3VyIGV4cGVyaWVuY2UsIGFuYWx5emUgdHJhZmZpYyBhbmQgcGVyc29uYWxpemUgY29udGVudC4gWW91IGNhbiBhY2NlcHQgYWxsIGNvb2tpZXMgb3IgY3VzdG9taXplIHlvdXIgcHJlZmVyZW5jZXMuJyxhY2NlcHQ6J0FjY2VwdCBhbGwnLGVzc2VudGlhbDonRXNzZW50aWFsIG9ubHknLGN1c3RvbWl6ZTonQ3VzdG9taXplJyxsZWFybjonTGVhcm4gbW9yZSBpbiBvdXIgPGEgZGF0YS1kb2M9InByaXZhY3kiPlByaXZhY3kgUG9saWN5PC9hPid9LGZyOnt0aXRsZTonTm91cyB1dGlsaXNvbnMgZGVzIGNvb2tpZXMnLG1zZzonTm91cyB1dGlsaXNvbnMgZGVzIGNvb2tpZXMgcG91ciBhbcOpbGlvcmVyIHZvdHJlIGV4cMOpcmllbmNlLCBhbmFseXNlciBsZSB0cmFmaWMgZXQgcGVyc29ubmFsaXNlciBsZSBjb250ZW51LiBWb3VzIHBvdXZleiB0b3V0IGFjY2VwdGVyIG91IHBlcnNvbm5hbGlzZXIgdm9zIHByw6lmw6lyZW5jZXMuJyxhY2NlcHQ6J1RvdXQgYWNjZXB0ZXInLGVzc2VudGlhbDonRXNzZW50aWVscyB1bmlxdWVtZW50JyxjdXN0b21pemU6J1BlcnNvbm5hbGlzZXInLGxlYXJuOidFbiBzYXZvaXIgcGx1cyBkYW5zIG5vdHJlIDxhIGRhdGEtZG9jPSJwcml2YWN5Ij5Qb2xpdGlxdWUgZGUgQ29uZmlkZW50aWFsaXTDqTwvYT4nfX07CnZhciBUSVRMRVM9e3ByaXZhY3k6e2VuOidQcml2YWN5IFBvbGljeScsZnI6J1BvbGl0aXF1ZSBkZSBDb25maWRlbnRpYWxpdMOpJ30sbGVnYWw6e2VuOidMZWdhbCBOb3RpY2UnLGZyOidNZW50aW9ucyBMw6lnYWxlcyd9LHRlcm1zOntlbjonVGVybXMgb2YgVXNlJyxmcjoiQ29uZGl0aW9ucyBkJ1V0aWxpc2F0aW9uIn19Owp3aW5kb3cuRkRfTEVHQUw9d2luZG93LkZEX0xFR0FMfHx7fTsKdmFyIGJhcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmQtY29va2llLWJhcicpLG92ZXJsYXk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZkLWxlZ2FsLW92ZXJsYXknKSx0aXRsZUVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmZC1sZWdhbC10aXRsZScpLGJvZHlFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmQtbGVnYWwtYm9keScpOwpmdW5jdGlvbiByZW5kZXJCYXIoKXt2YXIgdT1VSVt1aUxhbmddO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmZC1jYi10aXRsZScpLnRleHRDb250ZW50PXUudGl0bGU7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZkLWNiLW1lc3NhZ2UnKS50ZXh0Q29udGVudD11Lm1zZztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmQtY2ItYWNjZXB0JykudGV4dENvbnRlbnQ9dS5hY2NlcHQ7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZkLWNiLWVzc2VudGlhbCcpLnRleHRDb250ZW50PXUuZXNzZW50aWFsO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmZC1jYi1jdXN0b21pemUnKS50ZXh0Q29udGVudD11LmN1c3RvbWl6ZTt2YXIgbGVhcm49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZkLWNiLWxlYXJuJyk7bGVhcm4uaW5uZXJIVE1MPXUubGVhcm47bGVhcm4ucXVlcnlTZWxlY3RvckFsbCgnYVtkYXRhLWRvY10nKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTtvcGVuRG9jKGEuZ2V0QXR0cmlidXRlKCdkYXRhLWRvYycpKTt9KTt9KTt9CnZhciBjdXJEb2M9J3ByaXZhY3knOwpmdW5jdGlvbiBvcGVuRG9jKGRvYyl7Y3VyRG9jPWRvYzt0aXRsZUVsLnRleHRDb250ZW50PVRJVExFU1tkb2NdW2N1ckxhbmddO3ZhciBodG1sPSh3aW5kb3cuRkRfTEVHQUxbZG9jXSYmd2luZG93LkZEX0xFR0FMW2RvY11bY3VyTGFuZ10pfHwnPHA+TG9hZGluZ+KApjwvcD4nO2JvZHlFbC5pbm5lckhUTUw9aHRtbDtib2R5RWwuc2Nyb2xsVG9wPTA7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI2ZkLWxlZ2FsLWxhbmd0b2dnbGUgYnV0dG9uJykuZm9yRWFjaChmdW5jdGlvbihiKXtiLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScsYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuZycpPT09Y3VyTGFuZyk7fSk7b3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7fQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmQtbGVnYWwtY2xvc2UnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtvdmVybGF5LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTt9KTsKb3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQ9PT1vdmVybGF5KW92ZXJsYXkuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO30pOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjZmQtbGVnYWwtbGFuZ3RvZ2dsZSBidXR0b24nKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7Y3VyTGFuZz1iLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5nJyk7b3BlbkRvYyhjdXJEb2MpO30pO30pOwpmdW5jdGlvbiBzZXRDb25zZW50KHYpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZmRfY29va2llX2NvbnNlbnQnLHYpO31jYXRjaChlKXt9YmFyLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTt9CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmZC1jYi1hY2NlcHQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtzZXRDb25zZW50KCdhY2NlcHRlZCcpO30pOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmQtY2ItZXNzZW50aWFsJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7c2V0Q29uc2VudCgnZXNzZW50aWFsJyk7fSk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmZC1jYi1jdXN0b21pemUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtvcGVuRG9jKCdwcml2YWN5Jyk7fSk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmZC1jYi1jbG9zZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe3NldENvbnNlbnQoJ2Rpc21pc3NlZCcpO30pOwpyZW5kZXJCYXIoKTsKdmFyIGNvbnNlbnQ9bnVsbDt0cnl7Y29uc2VudD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZmRfY29va2llX2NvbnNlbnQnKTt9Y2F0Y2goZSl7fQppZighY29uc2VudCl7c2V0VGltZW91dChmdW5jdGlvbigpe2Jhci5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7fSw3MDApO30Kd2luZG93LmZkT3BlbkxlZ2FsPW9wZW5Eb2M7CmZldGNoKGxvY2F0aW9uLm9yaWdpbisnL3dwLWpzb24vd3AvdjIvcG9zdHMvNzM4Nj9fZmllbGRzPWNvbnRlbnQnLHtjcmVkZW50aWFsczonb21pdCd9KS50aGVuKGZ1bmN0aW9uKHIpe3JldHVybiByLmpzb24oKTt9KS50aGVuKGZ1bmN0aW9uKHApe3ZhciByZW5kZXJlZD0ocC5jb250ZW50JiZwLmNvbnRlbnQucmVuZGVyZWQpfHwnJzt2YXIgbT1yZW5kZXJlZC5tYXRjaCgvRkRMRUdBTC0tXHgzZShbQS1aYS16MC05K1wvPVxzXSspXHgzYyEtLVwvRkRMRUdBTC8pO2lmKG0pe3RyeXt2YXIgZGVjPWRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoYXRvYihtWzFdLnJlcGxhY2UoL1xzL2csJycpKSkpO3dpbmRvdy5GRF9MRUdBTD1KU09OLnBhcnNlKGRlYyk7fWNhdGNoKGUpe319fSkuY2F0Y2goZnVuY3Rpb24oKXt9KTsKfQppZihkb2N1bWVudC5ib2R5KXtfX2ZkUnVuKCk7fWVsc2V7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsX19mZFJ1bik7fQp9KSgpOwoKPC9zY3JpcHQ+Cjw/cGhwCn0sIDk5KTsK
Deixe um comentário