xiaomianao666

小程序:初学者写源工具

Jun 6th, 2023
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@初学者写源工具@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi5Yid5a2m6ICF5YaZ5rqQ5bel5YW3IiwiYXV0aG9yIjoiIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjIiwidmVyc2lvbiI6MCwiY29sX3R5cGUiOiJtb3ZpZV8zIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ0b29sIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG52YXIgcmVzID0ge307XG52YXIgaXRlbXMgPSBbXTtcbnZhciBpbWcgPSAnaHR0cHM6Ly9iaW5nLmltZy5ydW4vMTM2Nng3NjgucGhwJztcbml0ZW1zLnB1c2goe1xuICAgIGltZzogaW1nLFxuICAgIHVybDogaW1nICsgXCIjLmpwZ1wiLFxuICAgIGRlc2M6ICcwJyxcbiAgICBjb2xfdHlwZTogJ2NhcmRfcGljXzEnXG59KTtcblxuaXRlbXMucHVzaCh7XG4gICAgdGl0bGU6IFwi4oCc4oCc4oCd4oCdPGg0PuOAkOWIneWtpuiAheaVmeeoiybmqKHmnb8m5YaZ5rqQ5bel5YW35pS26ZuG44CRPC9oND5cIiArICc8c3BhbiBzdHlsZT1cImNvbG9yOiBncmV5XCI+5qyi6L+O5ZCE5L2N5bCP5Y+v54ix5re75Yqg5oiW5o+Q5bu66K6uPC9zcGFuPicsXG4gICAgY29sX3R5cGU6IFwidGV4dF9jZW50ZXJfMVwiLFxuICAgIHVybDogXCJ0b2FzdDovL+asoui/juS9v+eUqFwiXG59KTtcblxudmFyIFRpdGxlID0gWyfmtbfpmJTnu4Tku7blsZXnpLom5aSN5Yi2JywgJ+ivt+axgua1i+ivleOAjkpvZeOAjycsICdYWVHliIbnsbvnlJ/miJDlmajjgI7pppnpm4Xmg4XjgI8nLCAnSnNvbuWIhuexu+eUn+aIkOWZqOOAjummmembheaDheOAjycsICdGYXZpY29u6I635Y+WJ11cbnZhciBQYWdlID0gWydaSicsICdIb21lJywgJ1hZUScsICdKc29uJywgJ2Zhdmljb24nXVxuXG5UaXRsZS5mb3JFYWNoKGZ1bmN0aW9uKGRhdGEsIGlkKSB7XG4gICAgaXRlbXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiBkYXRhLFxuICAgICAgICB1cmw6IFwiaGlrZXI6Ly9wYWdlL1wiK1BhZ2VbaWRdK1wiI25vSGlzdG9yeSMjbm9SZWNvcmRIaXN0b3J5I1wiLFxuICAgICAgICBjb2xfdHlwZTogXCJ0ZXh0XzJcIixcbiAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgIG5ld1dpbmRvdzogdHJ1ZSxcbiAgICAgICAgICAgIHdpbmRvd0lkOiBNWV9SVUxFLnRpdGxlXG4gICAgICAgIH1cbiAgICB9KTtcbn0pXG5cbmNvbnN0IENvbG9yID0gXCIjMTlCODlEXCI7XG4vL+WPr+WkjeWItui/meS4gOauteWKoOWFpeS9oOa3u+WKoC/kv67mlLnkuobku4DkuYhcbnZhciBkZXNfZGVzYyA9ICc8aDEgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+8J+QvuabtOaWsFsxMjE2XTwvaDE+JyArXG4gICAgJzw8YmxvY2txdW90ZT48Zm9udCBjb2xvcj1cInJlZFwiPuKRoOWKoOWFpee7hOS7tuWxleekunzlhpnmupDlt6Xlhbfwn5ecPC9icj7ikaHliqDlhaXmma7pgJrkuIDnuqfmqKHmnb88YnI+PC88YmxvY2txdW90ZT4nXG5cblxuLy/kuIvpnaLkuI3nlKjliqhcbml0ZW1zLnB1c2goe1xuICAgIHRpdGxlOiAn5pu05paw6K+m5oOFIDxzbWFsbD48c21hbGw+PHNwYW4gc3R5bGU9XCJjb2xvcjojMTlCODlEXCI+5bGV5byAPjwvc3Bhbj48L3NtYWxsPjwvc21hbGw+JyxcbiAgICBpbWc6IFwiaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL21vcmUvMTk3LnBuZ1wiLFxuICAgIHVybDogJChcIiNub0xvYWRpbmcjXCIpLmxhenlSdWxlKChqamlkLCBkZWNpZCwgZGVzX2Rlc2MpID0+IHtcbiAgICAgICAgaWYgKGdldE15VmFyKFwiampzXCIsIFwi5pS26LW3XCIpID09IFwi5pS26LW3XCIpIHtcbiAgICAgICAgICAgIHB1dE15VmFyKFwiampzXCIsIFwi5bGV5byAXCIpO1xuXG4gICAgICAgICAgICB1cGRhdGVJdGVtKHtcbiAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICBpZDogamppZFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmm7TmlrDor6bmg4UgPHNtYWxsPjxzbWFsbD48c3BhbiBzdHlsZT1cImNvbG9yOiMxOUI4OURcIj7mlLbotbc+PC9zcGFuPjwvc21hbGw+PC9zbWFsbD4nXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICB1cGRhdGVJdGVtKHtcbiAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0U2l6ZTogMTQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmVTcGFjaW5nOiAzLFxuICAgICAgICAgICAgICAgICAgICBpZDogZGVjaWRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnPHNwYW4gc3R5bGU9XCJjb2xvcjojODA4MDgwXCI+JyArIGRlc19kZXNjICsgJzwvc3Bhbj4nXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmV0dXJuIFwiaGlrZXI6Ly9lbXB0eVwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwdXRNeVZhcihcImpqc1wiLCBcIuaUtui1t1wiKTtcblxuICAgICAgICAgICAgdXBkYXRlSXRlbSh7XG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGpqaWRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5pu05paw6K+m5oOFPHNtYWxsPjxzbWFsbD48c3BhbiBzdHlsZT1cImNvbG9yOiMxOUI4OURcIj7lsZXlvIA+PC9zcGFuPjwvc21hbGw+PC9zbWFsbD4nXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICB1cGRhdGVJdGVtKHtcbiAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0U2l6ZTogMTQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmVTcGFjaW5nOiAzLFxuICAgICAgICAgICAgICAgICAgICBpZDogZGVjaWRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnPHNwYW4gc3R5bGU9XCJjb2xvcjojODA4MDgwXCI+JyArIGRlc19kZXNjLnN1YnN0cigwLCAxNTApXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmV0dXJuIFwiaGlrZXI6Ly9lbXB0eVwiXG4gICAgICAgIH1cblxuICAgIH0sIE1ZX1JVTEUgKyBcIl9qamlkXCIsIE1ZX1JVTEUgKyBcIl9kZWNpZFwiLCBkZXNfZGVzYyksXG4gICAgY29sX3R5cGU6IFwiYXZhdGFyXCIsXG4gICAgZXh0cmE6IHtcbiAgICAgICAgaWQ6IE1ZX1JVTEUgKyBcIl9qamlkXCJcbiAgICB9XG59KTtcblxuaXRlbXMucHVzaCh7XG4gICAgdGl0bGU6ICc8c3BhbiBzdHlsZT1cImNvbG9yOiM4MDgwODBcIj4nICsgZGVzX2Rlc2Muc3Vic3RyKDAsIDE1MCksXG4gICAgY29sX3R5cGU6IFwicmljaF90ZXh0XCIsXG4gICAgZXh0cmE6IHtcbiAgICAgICAgdGV4dFNpemU6IDE0LFxuICAgICAgICBsaW5lU3BhY2luZzogMyxcbiAgICAgICAgaWQ6IE1ZX1JVTEUgKyBcIl9kZWNpZFwiXG4gICAgfVxufSk7XG5cbnJlcy5kYXRhID0gaXRlbXM7XG5zZXRIb21lUmVzdWx0KHJlcyk7Iiwic2VhcmNoX3VybCI6IiIsImdyb3VwIjoiI++4j+KDo+W+heWkhOeQhiIsInNlYXJjaEZpbmQiOiIiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiIiLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pmu6YCa5LiA57qnXCIsXCJwYXRoXCI6XCJQWVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG52YXIgY29kZSA9IGdldFJlc0NvZGUoKTtcXG4vL+WumuS9jeWhq+WcqFxcXCJcXFwi5oiWJyfkuK3vvIzkuI3lj6/ph43lpI3kvb/nlKjlkIzkuIDnp43nrKblj7dcXG5wZGZhKGNvZGUsIOWIl+ihqOWumuS9jSkuZm9yRWFjaChmdW5jdGlvbih6ZGF0YSkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogcGRmaCh6ZGF0YSwg5qCH6aKY5a6a5L2NKSxcXG4gICAgICAgICAgICB1cmw6IHBkKHpkYXRhLCDpk77mjqXlrprkvY0pLFxcbiAgICAgICAgICAgIHBpY191cmw6IHBkKHpkYXRhLCDlm77niYflrprkvY0pLFxcbiAgICAgICAgICAgIC8v5aaC5Zu+54mH6ZyA6YeN5a6a5ZCR5Y+v5YqgUmVmZXJlclxcbiAgICAgICAgICAgIC8vcGljX3VybDogcGQoemRhdGEsIOWbvueJh+WumuS9jSkrXFxcIkBSZWZlcmVyPVxcXCIrTVlfSE9NRSxcXG4gICAgICAgICAgICBkZXNjOiBwZGZoKHpkYXRhLCDor6bmg4XlrprkvY0pLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwibW92aWVfM1xcXCIvL+aYvuekuuagt+W8j1xcbiAgICAgICAgfSk7XFxuICAgIH0pO1xcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIue7hOS7tuWxleekulwiLFwicGF0aFwiOlwiWkpcIixcInJ1bGVcIjpcImpzOlxcbmxldCBkID0gW107XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfngrnlh7vljbPlpI3liLYnLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICB1cmw6ICd0b2FzdDovL+eCueaIkeW5suWYm++8nycsXFxuICAgIGRlc2M6J+ebuOW6lOeahOagt+W8j+WQjScsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3RleHRfMScsXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgdXJsOiAnY29weTovL3RleHRfMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3RleHRfMicsXFxuICAgIGNvbF90eXBlOiAndGV4dF8yJyxcXG4gICAgdXJsOiAnY29weTovL3RleHRfMicsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3RleHRfMycsXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJyxcXG4gICAgdXJsOiAnY29weTovL3RleHRfMycsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3RleHRfNCcsXFxuICAgIGNvbF90eXBlOiAndGV4dF80JyxcXG4gICAgdXJsOiAnY29weTovL3RleHRfNCcsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3RleHRfNScsXFxuICAgIGNvbF90eXBlOiAndGV4dF81JyxcXG4gICAgdXJsOiAnY29weTovL3RleHRfNScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICB1cmw6ICdjb3B5Oi8vdGV4dF9jZW50ZXJfMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ2xvbmdfdGV4dCcsXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgdXJsOiAnY29weTovL2xvbmdfdGV4dCcsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3JpY2hfdGV4dCcsXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgdXJsOiAnY29weTovL3JpY2hfdGV4dCcsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3RleHRfaWNvbicsXFxuICAgIGNvbF90eXBlOiAndGV4dF9pY29uJyxcXG4gICAgdXJsOiAnY29weTovL3RleHRfaWNvbicsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ21vdmllXzEnLFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzEnLFxcbiAgICB1cmw6ICdjb3B5Oi8vbW92aWVfMScsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ21vdmllXzFfbGVmdF9waWMnLFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfbGVmdF9waWMnLFxcbiAgICB1cmw6ICdjb3B5Oi8vbW92aWVfMV9sZWZ0X3BpYycsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ21vdmllXzFfdmVydGljYWxfcGljJyxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYycsXFxuICAgIHVybDogJ2NvcHk6Ly9tb3ZpZV8xX3ZlcnRpY2FsX3BpYycsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLFxcbiAgICB1cmw6ICdjb3B5Oi8vbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cicsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ21vdmllXzInLFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzInLFxcbiAgICB1cmw6ICdjb3B5Oi8vbW92aWVfMicsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ21vdmllXzMnLFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzMnLFxcbiAgICB1cmw6ICdjb3B5Oi8vbW92aWVfMycsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ21vdmllXzNfbWFycXVlZScsXFxuICAgIGNvbF90eXBlOiAnbW92aWVfM19tYXJxdWVlJyxcXG4gICAgdXJsOiAnY29weTovL21vdmllXzNfbWFycXVlZScsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3BpY18xJyxcXG4gICAgY29sX3R5cGU6ICdwaWNfMScsXFxuICAgIHVybDogJ2NvcHk6Ly9waWNfMScsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3BpY18xX2Z1bGwnLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgIHVybDogJ2NvcHk6Ly9waWNfMV9mdWxsJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAncGljXzFfZnVsbCcsXFxuICAgIGNvbF90eXBlOiAncGljXzFfZnVsbCcsXFxuICAgIHVybDogJ2NvcHk6Ly9waWNfMV9mdWxsJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAncGljXzFfY2FyZCcsXFxuICAgIGNvbF90eXBlOiAncGljXzFfY2FyZCcsXFxuICAgIHVybDogJ2NvcHk6Ly9waWNfMV9jYXJkJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAncGljXzInLFxcbiAgICBjb2xfdHlwZTogJ3BpY18yJyxcXG4gICAgdXJsOiAnY29weTovL3BpY18yJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAncGljXzJfY2FyZCcsXFxuICAgIGNvbF90eXBlOiAncGljXzJfY2FyZCcsXFxuICAgIHVybDogJ2NvcHk6Ly9waWNfMl9jYXJkJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAncGljXzMnLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgIHVybDogJ2NvcHk6Ly9waWNfMycsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3BpY18zJyxcXG4gICAgY29sX3R5cGU6ICdwaWNfMycsXFxuICAgIHVybDogJ2NvcHk6Ly9waWNfMycsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6J3BpY18zJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAncGljXzNfc3F1YXJlJyxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcbiAgICB1cmw6ICdjb3B5Oi8vcGljXzNfc3F1YXJlJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAncGljXzNfc3F1YXJlJyxcXG4gICAgY29sX3R5cGU6ICdwaWNfM19zcXVhcmUnLFxcbiAgICB1cmw6ICdjb3B5Oi8vcGljXzNfc3F1YXJlJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzoncGljXzNfc3F1YXJlJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl8xX3NlYXJjaCcsXFxuICAgIGNvbF90eXBlOiAnaWNvbl8xX3NlYXJjaCcsXFxuICAgIHVybDogJ2NvcHk6Ly9pY29uXzFfc2VhcmNoJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl8yJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzInLFxcbiAgICB1cmw6ICdjb3B5Oi8vaWNvbl8yJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl8yX3JvdW5kJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzJfcm91bmQnLFxcbiAgICB1cmw6ICdjb3B5Oi8vaWNvbl8yX3JvdW5kJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl9zbWFsbF8zJyxcXG4gICAgY29sX3R5cGU6ICdpY29uX3NtYWxsXzMnLFxcbiAgICB1cmw6ICdjb3B5Oi8vaWNvbl9zbWFsbF8zJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl80JyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzQnLFxcbiAgICB1cmw6ICdjb3B5Oi8vaWNvbl80JyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl80X2NhcmQnLFxcbiAgICBjb2xfdHlwZTogJ2ljb25fNF9jYXJkJyxcXG4gICAgdXJsOiAnY29weTovL2ljb25fNF9jYXJkJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl9zbWFsbF80JyxcXG4gICAgY29sX3R5cGU6ICdpY29uX3NtYWxsXzQnLFxcbiAgICB1cmw6ICdjb3B5Oi8vaWNvbl9zbWFsbF80JyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl9yb3VuZF80JyxcXG4gICAgY29sX3R5cGU6ICdpY29uX3JvdW5kXzQnLFxcbiAgICB1cmw6ICdjb3B5Oi8vaWNvbl9yb3VuZF80JyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl9yb3VuZF9zbWFsbF80JyxcXG4gICAgY29sX3R5cGU6ICdpY29uX3JvdW5kX3NtYWxsXzQnLFxcbiAgICB1cmw6ICdjb3B5Oi8vaWNvbl9yb3VuZF9zbWFsbF80JyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaWNvbl81JyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbiAgICB1cmw6ICdjb3B5Oi8vaWNvbl81JyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnaW5wdXQnLFxcbiAgICBjb2xfdHlwZTogJ2lucHV0JyxcXG4gICAgdXJsOiAnY29weTovL2lucHV0JyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnYXZhdGFyJyxcXG4gICAgY29sX3R5cGU6ICdhdmF0YXInLFxcbiAgICB1cmw6ICdjb3B5Oi8vYXZhdGFyJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAneDVfd2Vidmlld19zaW5nbGUnLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICB1cmw6ICdjb3B5Oi8veDVfd2Vidmlld19zaW5nbGUnLFxcbiAgICBkZXNjOicnLFxcbn0pXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICdmbGV4X2J1dHRvbicsXFxuICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nLFxcbiAgICB1cmw6ICdjb3B5Oi8vZmxleF9idXR0b24nLFxcbiAgICBpbWc6ICdoaWtlcjovL2ltYWdlcy9ob21lX3BpYzEnLFxcbiAgICBkZXNjOicnLFxcbn0pXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgdXJsOiAnY29weTovL3Njcm9sbF9idXR0b24nLFxcbiAgICBkZXNjOicnLFxcbn0pXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICdsaW5l5YiG5Ymy57q/57uGJyxcXG4gICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbicsXFxuICAgIHVybDogJ2NvcHk6Ly9saW5lJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnJyxcXG4gICAgY29sX3R5cGU6ICdsaW5lJyxcXG4gICAgdXJsOiAnJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnbGluZV9ibGFua+WIhuWJsue6v+eylycsXFxuICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nLFxcbiAgICB1cmw6ICdjb3B5Oi8vbGluZV9ibGFuaycsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJycsXFxuICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaycsXFxuICAgIHVybDogJycsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ2JsYW5rX2Jsb2NrJyxcXG4gICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbicsXFxuICAgIHVybDogJ2NvcHk6Ly9ibGFua19ibG9jaycsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJycsXFxuICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB1cmw6ICcnLFxcbiAgICBkZXNjOicnLFxcbn0pXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICdiaWdfYmxhbmtfYmxvY2snLFxcbiAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJyxcXG4gICAgdXJsOiAnY29weTovL2JpZ19ibGFua19ibG9jaycsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJycsXFxuICAgIGNvbF90eXBlOiAnYmlnX2JsYW5rX2Jsb2NrJyxcXG4gICAgdXJsOiAnJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnYmlnX2JpZ19ibGFua19ibG9jaycsXFxuICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nLFxcbiAgICB1cmw6ICdjb3B5Oi8vYmlnX2JpZ19ibGFua19ibG9jaycsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJycsXFxuICAgIGNvbF90eXBlOiAnYmlnX2JpZ19ibGFua19ibG9jaycsXFxuICAgIHVybDogJycsXFxuICAgIGRlc2M6JycsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ2NhcmRfcGljXzEnLFxcbiAgICBjb2xfdHlwZTogJ2NhcmRfcGljXzEnLFxcbiAgICB1cmw6ICdjb3B5Oi8vY2FyZF9waWNfMScsXFxuICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2hvbWVfcGljMScsXFxuICAgIGRlc2M6JzAnLFxcbn0pXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICdjYXJkX3BpY18yJyxcXG4gICAgY29sX3R5cGU6ICdjYXJkX3BpY18yJyxcXG4gICAgdXJsOiAnY29weTovL2NhcmRfcGljXzInLFxcbiAgICBpbWc6ICdoaWtlcjovL2ltYWdlcy9ob21lX3BpYzEnLFxcbiAgICBkZXNjOicwJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnY2FyZF9waWNfMl8yJyxcXG4gICAgY29sX3R5cGU6ICdjYXJkX3BpY18yXzInLFxcbiAgICB1cmw6ICdjb3B5Oi8vY2FyZF9waWNfMl8yJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnY2FyZF9waWNfMl8yX2xlZnQnLFxcbiAgICBjb2xfdHlwZTogJ2NhcmRfcGljXzJfMl9sZWZ0JyxcXG4gICAgdXJsOiAnY29weTovL2NhcmRfcGljXzJfMl9sZWZ0JyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnY2FyZF9waWNfMycsXFxuICAgIGNvbF90eXBlOiAnY2FyZF9waWNfMycsXFxuICAgIHVybDogJ2NvcHk6Ly9jYXJkX3BpY18zJyxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaG9tZV9waWMxJyxcXG4gICAgZGVzYzonJyxcXG59KVxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIlhZUeWIhuexu+eUn+aIkOWZqFwiLFwicGF0aFwiOlwiWFlRXCIsXCJydWxlXCI6XCJqczpcXG52YXIgaXRlbXMgPSBbXTtcXG5cXG5pdGVtcy5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLlj5bmupDnoIFcXFwiLFxcbiAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgZnVuY3Rpb24gYnR3YWYobmV0cGcsIGJ0dXJsLCBidHVhLCBjaGFycykge1xcbiAgICAgICAgICAgIC8vbG9nKG5ldHBnKTtcXG4gICAgICAgICAgICBpZiAobmV0cGcuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgbGV0IGNvb2sgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBidGh0bWwgPSBKU09OLnBhcnNlKGZldGNoKGJ0dXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6IGJ0dWFcXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhIZWFkZXJzOiB0cnVlXFxuICAgICAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgICAgICAvL2xvZyhidGh0bWwpO1xcbiAgICAgICAgICAgICAgICAgICAgbmV0cGcgPSBidGh0bWwuYm9keTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChidGh0bWwuc2VhcmNoKFxcXCJzZXQtY29va2llXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb29rID0gSlNPTi5wYXJzZShidGh0bWwpLmhlYWRlcnNbJ3NldC1jb29raWUnXVswXS5qb2luKCc7Jyk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvb2sgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBsb2coXFxcIkNvb2tpZeWAvO+8mlxcXCIgKyBjb29rKTtcXG4gICAgICAgICAgICAgICAgaWYgKGNvb2sgPT0gXFxcIlxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIGdodG1sID0gZmV0Y2goYnR1cmwgKyBcXFwiLz9idHdhZlxcXCIgKyBuZXRwZy5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFwiLylbMV0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogYnR1YVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgZ2h0bWwgPSBmZXRjaChidHVybCArIFxcXCIvP2J0d2FmXFxcIiArIG5ldHBnLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBidHVhLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiQ29va2llXFxcIjogY29va1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcblxcbiAgICAgICAgZnVuY3Rpb24gZ2V0aHRtbCh1cmwsIHVhLCBjaGFycykge1xcbiAgICAgICAgICAgIGlmICh1YSA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICB1YSA9IE1PQklMRV9VQTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHVhID09IFxcXCLmiYvmnLpcXFwiKSB7XFxuICAgICAgICAgICAgICAgIHVhID0gTU9CSUxFX1VBO1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodWEgPT0gXFxcIueUteiEkVxcXCIpIHtcXG4gICAgICAgICAgICAgICAgdWEgPSBQQ19VQTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICB1YSA9IHVhLnJlcGxhY2UoL++8m++8my9nLCAnOycpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoY2hhcnMgPT0gXFxcIlxcXCIpIHtcXG4gICAgICAgICAgICAgICAgZ2h0bWwgPSByZXF1ZXN0KHVybCwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogdWFcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgZ2h0bWwgPSByZXF1ZXN0KHVybCwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJDb250ZW50LVR5cGVcXFwiOiBcXFwidGV4dC9odG1sOyBjaGFyc2V0PVxcXCIgKyBjaGFycyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IHVhXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvL2xvZyhodG1sKTtcXG4gICAgICAgICAgICBidHdhZihnaHRtbCwgdXJsLCB1YSwgY2hhcnMpO1xcbiAgICAgICAgICAgIHJldHVybiBnaHRtbDtcXG4gICAgICAgIH1cXG4gICAgICAgIHNob3dMb2FkaW5nKFxcXCLmraPlnKjojrflj5bnvZHpobXmupDnoIHvvIzor7fnqI3lgJkuLi5cXFwiKTtcXG4gICAgICAgIHZhciBsaW5rID0gaW5wdXQuc3BsaXQoXFxcIjtcXFwiKTtcXG4gICAgICAgIHZhciBodG1sID0gXFxcIlxcXCI7XFxuICAgICAgICBpZiAobGluay5sZW5ndGggPT0gMSkge1xcbiAgICAgICAgICAgIGh0bWwgPSBnZXRodG1sKGxpbmtbMF0sIFxcXCJcXFwiLCBcXFwiXFxcIik7XFxuICAgICAgICB9IGVsc2UgaWYgKGxpbmsubGVuZ3RoID09IDIpIHtcXG4gICAgICAgICAgICBodG1sID0gZ2V0aHRtbChsaW5rWzBdLCBsaW5rWzFdLCBcXFwiXFxcIik7XFxuICAgICAgICB9IGVsc2UgaWYgKGxpbmsubGVuZ3RoID09IDMpIHtcXG4gICAgICAgICAgICBodG1sID0gZ2V0aHRtbChsaW5rWzBdLCBsaW5rWzFdLCBsaW5rWzJdKTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC8vbG9nKGh0bWwpO1xcbiAgICAgICAgcHV0TXlWYXIoJ3Jlc2NvZGUnLCBodG1sKTtcXG4gICAgICAgIHB1dE15VmFyKCdyZWFscmVzY29kZScsIGh0bWwpO1xcbiAgICAgICAgLy9oaWRlTG9hZGluZygpO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgaGlkZUxvYWRpbmcoKTtcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgIH0pLFxcbiAgICBleHRyYToge1xcbiAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXG4gICAgICAgIGhlaWdodDogLTEsXFxuICAgICAgICBvbkNoYW5nZTogXFxcInNldEl0ZW0oJ2xpbmt0ZXh0JyxpbnB1dClcXFwiLFxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRJdGVtKFxcXCJsaW5rdGV4dFxcXCIsIFxcXCJodHRwczovL3pqZHIudmlwL3ZvZHNob3cvaWQvMS9wYWdlLzEuaHRtbDvmiYvmnLo7dXRmLThcXFwiKSxcXG4gICAgICAgIHRpdGxlVmlzaWJsZTogdHJ1ZVxcbiAgICB9LFxcbiAgICBjb2xfdHlwZTogJ2lucHV0J1xcbn0pO1xcbmlmIChnZXRNeVZhcihcXFwiY29udGxpc3RcXFwiLCBcXFwiXFxcIikgIT0gXFxcIlxcXCIpIHtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAvL3RpdGxlOiBnZXRNeVZhcihcXFwicmVzY29kZVxcXCIsIFxcXCJcXFwiKSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwiaW5wdXRcXFwiLFxcbiAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICBoZWlnaHQ6IDMsXFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcihcXFwiY29udGxpc3RcXFwiLCBcXFwiXFxcIiksXFxuICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXG4gICAgICAgICAgICBoaWdobGlnaHQ6IHRydWVcXG4gICAgICAgIH1cXG5cXG4gICAgfSk7XFxufSBlbHNlIHtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+agvOW8j++8muaVsOe7hDvliJfooag75qCH6aKYO+mTvuaOpTvliIfliY3nvIA75YiH5ZCO57yAJyxcXG4gICAgICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHlcXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiXFxuICAgIH0pO1xcbn1cXG52YXIgY2xhc3NUZXh0ID0gZ2V0SXRlbShcXFwiY2xhc3N0ZXh0XFxcIiwgXFxcImJvZHkmJi5tb2R1bGUtY2xhc3MtaXRlbXM7Lm1vZHVsZS1jbGFzcy1pdGVtcyYmYTthJiZUZXh0O2EmJmhyZWY7aWQvOy5odG1sXFxcIik7XFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi55Sf5oiQXFxcIixcXG4gICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgIHB1dE15VmFyKCfnrZvpgInmlbDph48nLCBcXFwiMFxcXCIpO1xcbiAgICAgICAgcHV0TXlWYXIoJ2NvbnRsaXN0JywgXFxcIlxcXCIpO1xcbiAgICAgICAgcHV0TXlWYXIoJ2NsYXNzbGlzdCcsIFxcXCJcXFwiKTtcXG5cXG4gICAgICAgIHB1dE15VmFyKCdjb250bmFtZScsIFxcXCJcXFwiKTtcXG4gICAgICAgIHB1dE15VmFyKCdjb250dmFsdWUnLCBcXFwiXFxcIik7XFxuICAgICAgICBzaG93TG9hZGluZyhcXFwi5q2j5Zyo55Sf5oiQ77yM6K+356iN5YCZLi4uXFxcIik7XFxuXFxuICAgICAgICBmdW5jdGlvbiBzdWJjb250KGxpbiwgc3RhciwgZW5kKSB7XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgaWYgKHN0YXIgPT0gXFxcIlxcXCIgJiYgZW5kID09IFxcXCJcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGxpbik7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Rhci5sZW5ndGggPiAwICYmIGVuZCA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IG51YiA9IGxpbi5pbmRleE9mKHN0YXIpO1xcbiAgICAgICAgICAgICAgICAgICAgLy9sb2cobnViKTtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ID0gbGluLnN1YnN0cmluZyhudWIgKyBzdGFyLmxlbmd0aCk7XFxuICAgICAgICAgICAgICAgICAgICAvL2xvZyh2YWx1KTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodmFsdSk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgc3RyID0gc3RhciArIFxcXCIoLio/KVxcXCIgKyBlbmQ7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdSA9IGV2YWwobGluLm1hdGNoKHN0cikpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1WzFdKVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGxpbilcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuXFxuXFxuXFxuICAgICAgICB2YXIgc3BsID0gZ2V0SXRlbShcXFwiY2xhc3N0ZXh0XFxcIikuc3BsaXQoXFxcIjtcXFwiKTtcXG4gICAgICAgIC8vbG9nKHNwbC5sZW5ndGgpO1xcbiAgICAgICAgaWYgKGdldE15VmFyKFxcXCJyZWFscmVzY29kZVxcXCIsIFxcXCJcXFwiKSA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgIC8vcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICBoaWRlTG9hZGluZygpO1xcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/or7flhYjojrflj5bnvZHpobXmupDnoIHjgIInO1xcbiAgICAgICAgfSBlbHNlIGlmIChzcGxbMF0gPT0gXFxcIlxcXCIpIHtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgIGhpZGVMb2FkaW5nKCk7XFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+inhOWImeagvOW8j+Whq+WGmemUmeivr++8jOS4jeiDveS4uuepuuOAgic7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHZhciBodG1sID0gZ2V0TXlWYXIoXFxcInJlYWxyZXNjb2RlXFxcIiwgXFxcIlxcXCIpO1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIHZhciBjb250ID0gcGFyc2VEb21Gb3JBcnJheShodG1sLCBzcGxbMF0pO1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcign562b6YCJ5pWw6YePJywgY29udC5sZW5ndGgpO1xcbiAgICAgICAgICAgICAgICAvL2xvZyhjb250Lmxlbmd0aCk7XFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY29udC5sZW5ndGg7IGorKykge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NsYXNzbmFtZScgKyBqLCBcXFwiXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignY2xhc3N2YWx1ZScgKyBqLCBcXFwiXFxcIik7XFxuXFxuICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IHBhcnNlRG9tRm9yQXJyYXkoY29udFtqXSwgc3BsWzFdICsgJzpub3QoOm1hdGNoZXMo5YWo6YOofOmmlumhtXzlhazlkYp85aS05p2hfOS4k+mimHzmmI7mmJ985LiL6L29fGFwcHxBUFB857G75Z6LfOWIhuexu3zotYTorq9855WZ6KiAfOa2iOaBr3zpmLLotbB86YCa55+lfOeUqOaIt3zku4rml6V85a2X5q+NKSknKTtcXG5cXG4gICAgICAgICAgICAgICAgICAgIC8vbG9nKCfliJfooajvvJonICsgbGlzdC5sZW5ndGgpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3R0ID0gZ2V0TXlWYXIoJ2NsYXNzbGlzdCcsICcnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdHQubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlwdCA9IGxpc3RbaV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpcHQgPSBsaXN0dCArICdcXFxcblxcXFxuJyArIGxpc3RbaV1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NsYXNzbGlzdCcsIGxpcHQpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IHBhcnNlRG9tRm9ySHRtbChsaXN0W2ldLCBzcGxbMl0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1cmwgPSBwYXJzZURvbUZvckh0bWwobGlzdFtpXSwgc3BsWzNdKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3BsLmxlbmd0aCA9PSA1KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHN1YmNvbnQodXJsLCBzcGxbNF0sIFxcXCJcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNwbC5sZW5ndGggPT0gNikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSBzdWJjb250KHVybCwgc3BsWzRdLCBzcGxbNV0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHN1YmNvbnQodXJsLCBcXFwiXFxcIiwgXFxcIlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmlsZXQgPSBnZXRNeVZhcignY2xhc3NuYW1lJyArIGosICcnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmlsZSA9IGdldE15VmFyKCdjbGFzc3ZhbHVlJyArIGosICcnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZXQubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHlwdCA9IHRpdGxlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHlwaCA9IHVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHlwdCA9IGZpbGV0ICsgJyYnICsgdGl0bGU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0eXBoID0gZmlsZSArICcmJyArIHVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhmaWxlLmxlbmd0aCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NsYXNzbmFtZScgKyBqLCB0eXB0KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignY2xhc3N2YWx1ZScgKyBqLCB0eXBoKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gLy9mb3IgaVxcblxcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNmaWxldCA9IGdldE15VmFyKCdjb250bmFtZScsICcnKTtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBjZmlsZSA9IGdldE15VmFyKCdjb250dmFsdWUnLCAnJyk7XFxuXFxuICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ2NsYXNzbmFtZScgKyBqLCAnJykgIT0gJycpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaiA9PSAwKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdHlwdCA9ICflkI3np7DvvJonICsgZ2V0TXlWYXIoJ2NsYXNzbmFtZScgKyBqLCAnJykgKyAnXFxcXG7mm7/mjaLor43vvJonICsgZ2V0TXlWYXIoJ2NsYXNzdmFsdWUnICsgaiwgJycpICsgJ1xcXFxuXFxcXG4nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdHlwdCA9IGNmaWxldCArICflkI3np7DvvJonICsgZ2V0TXlWYXIoJ2NsYXNzbmFtZScgKyBqLCAnJykgKyBjZmlsZSArICdcXFxcbuabv+aNouivje+8micgKyBnZXRNeVZhcignY2xhc3N2YWx1ZScgKyBqLCAnJykgKyAnXFxcXG5cXFxcbic7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb250bmFtZScsIGN0eXB0KTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIHZhciBjbGlzdHQgPSBnZXRNeVZhcignY29udGxpc3QnLCAnJyk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoaiA9PSAwKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsaXB0ID0gY29udFtqXTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsaXB0ID0gY2xpc3R0ICsgJ1xcXFxuXFxcXG4nICsgY29udFtqXVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgLy9sb2coY2xpcHQpO1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NvbnRsaXN0JywgY2xpcHQpO1xcbiAgICAgICAgICAgICAgICAgICAgLy9sb2coZ2V0TXlWYXIoJ2NvbnRsaXN0JywgJycpKTtcXG4gICAgICAgICAgICAgICAgICAgIC8vcHV0TXlWYXIoJ2NvbnRsaXN0JywgZ2V0TXlWYXIoJ2NsYXNzbGlzdCcsICcnKT9nZXRNeVZhcignY29udGxpc3QnLCAnJyk6Z2V0TXlWYXIoJ2NsYXNzbGlzdCcsICcnKSk7XFxuICAgICAgICAgICAgICAgICAgICAvL3B1dE15VmFyKCdjb250bGlzdCcsIGdldE15VmFyKCdjbGFzc2xpc3QnLCAnJyk/OmdldE15VmFyKCdjbGFzc2xpc3QnLCAnJykpO1xcbiAgICAgICAgICAgICAgICB9IC8vZm9yIGpcXG5cXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NvbnRsaXN0JywgZ2V0TXlWYXIoJ2NsYXNzbGlzdCcsICcnKSA9PSBcXFwiXFxcIiA/IGdldE15VmFyKCdjb250bGlzdCcsICcnKSA6IGdldE15VmFyKCdjbGFzc2xpc3QnLCAnJykpO1xcblxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgLy9wdXRNeVZhcign5Yik5patJywgXFxcIjBcXFwiKTtcXG4gICAgICAgICAgICAgICAgbG9nKFxcXCLnlJ/miJDmiqXplJnlkq9cXFwiKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgIGhpZGVMb2FkaW5nKCk7XFxuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgIH1cXG4gICAgfSksXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxcbiAgICAgICAgaGVpZ2h0OiAtMSxcXG4gICAgICAgIG9uQ2hhbmdlOiBcXFwic2V0SXRlbSgnY2xhc3N0ZXh0JyxpbnB1dClcXFwiLFxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBjbGFzc1RleHQsXFxuICAgICAgICB0aXRsZVZpc2libGU6IHRydWVcXG4gICAgfSxcXG4gICAgY29sX3R5cGU6ICdpbnB1dCdcXG59KTtcXG5cXG5cXG5sZXQgY29udGRhID0gZ2V0TXlWYXIoJ+etm+mAieaVsOmHjycsICcwJyk7XFxuaWYgKGNvbnRkYSAhPSAnMCcgJiYgZ2V0TXlWYXIoJ2NsYXNzbGlzdCcsICcnKSAhPSBcXFwiXFxcIikge1xcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbnRkYTsgaSsrKSB7XFxuICAgICAgICBpZiAoZ2V0TXlWYXIoJ2NsYXNzbmFtZScgKyBpLCAnJykgIT0gJycpIHtcXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLlpI3liLZcXFwiICsgZ2V0TXlWYXIoJ2NsYXNzbmFtZScgKyBpLCAnJykuc3BsaXQoJyYnKVswXSArIFxcXCLooYxcXFwiLFxcbiAgICAgICAgICAgICAgICAvL2Rlc2M6IGdldFZhcihcXFwiZnJkdHZjb2RlXFxcIixcXFwiXFxcIiksXFxuICAgICAgICAgICAgICAgIHVybDogXFxcImNvbmZpcm06Ly/mmK/lkKbpnIDopoHlpI3liLblvZPliY3lhoXlrrnjgIIuanM6XFxcIiArICQudG9TdHJpbmcoKGkpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBqaWVndW8gPSBnZXRNeVZhcignY2xhc3NuYW1lJyArIGksICcnKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChqaWVndW8gPT0gJycpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5YaF5a655Li656m6LOWkjeWItuWksei0peOAgic7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGppZWd1by5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WGheWuuemVv+W6puS4jeWknyzlpI3liLblpLHotKXjgIInO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2NvcHk6Ly8nICsgZ2V0TXlWYXIoJ2NsYXNzbmFtZScgKyBpKVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9LCBpKSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJmbGV4X2J1dHRvblxcXCJcXG4gICAgICAgICAgICB9KTtcXG5cXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLlpI3liLZcXFwiICsgZ2V0TXlWYXIoJ2NsYXNzbmFtZScgKyBpLCAnJykuc3BsaXQoJyYnKVswXSArIFxcXCLooYxcXFwiICsgXFxcIuabv+aNouivjVxcXCIsXFxuICAgICAgICAgICAgICAgIC8vZGVzYzogZ2V0VmFyKFxcXCJmcmR0dmNvZGVcXFwiLFxcXCJcXFwiKSxcXG4gICAgICAgICAgICAgICAgdXJsOiBcXFwiY29uZmlybTovL+aYr+WQpumcgOimgeWkjeWItuW9k+WJjeWGheWuueOAgi5qczpcXFwiICsgJC50b1N0cmluZygoaSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGppZWd1byA9IGdldE15VmFyKCdjbGFzc3ZhbHVlJyArIGksICcnKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChqaWVndW8gPT0gJycpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5YaF5a655Li656m6LOWkjeWItuWksei0peOAgic7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGppZWd1by5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WGheWuuemVv+W6puS4jeWknyzlpI3liLblpLHotKXjgIInO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2NvcHk6Ly8nICsgZ2V0TXlWYXIoJ2NsYXNzdmFsdWUnICsgaSlcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSwgaSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiZmxleF9idXR0b25cXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH1cXG59XFxuXFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiAn5oGi5aSN6buY6K6kJyxcXG4gICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5JykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgY2xlYXJNeVZhcigncmVzY29kZScpO1xcbiAgICAgICAgY2xlYXJNeVZhcigncmVhbHJlc2NvZGUnKTtcXG5cXG4gICAgICAgIGNsZWFyTXlWYXIoJ2NsYXNzbmFtZScpO1xcbiAgICAgICAgY2xlYXJNeVZhcihcXFwiY2xhc3N2YWx1ZVxcXCIpO1xcbiAgICAgICAgY2xlYXJNeVZhcignY29udG5hbWUnKTtcXG4gICAgICAgIGNsZWFyTXlWYXIoXFxcImNvbnR2YWx1ZVxcXCIpO1xcblxcbiAgICAgICAgY2xlYXJNeVZhcignY2xhc3NsaXN0JylcXG4gICAgICAgIGNsZWFyTXlWYXIoJ2NvbnRsaXN0Jyk7XFxuICAgICAgICBjbGVhckl0ZW0oJ2xpbmt0ZXh0Jyk7XFxuICAgICAgICBjbGVhckl0ZW0oJ2NsYXNzdGV4dCcpO1xcbiAgICAgICAgY2xlYXJNeVZhcign562b6YCJ5pWw6YePJyk7XFxuICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgIH0pLFxcbiAgICBjb2xfdHlwZTogXFxcImZsZXhfYnV0dG9uXFxcIlxcbn0pO1xcblxcbmlmIChnZXRNeVZhcignY29udG5hbWUnLCBcXFwiXFxcIikgIT0gXFxcIlxcXCIpIHtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAvL3RpdGxlOiBnZXRNeVZhcihcXFwicmVzY29kZVxcXCIsIFxcXCJcXFwiKSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwiaW5wdXRcXFwiLFxcbiAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICBoZWlnaHQ6IDMsXFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcihcXFwiY29udG5hbWVcXFwiLCBcXFwiXFxcIiksXFxuICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXG4gICAgICAgICAgICBoaWdobGlnaHQ6IHRydWVcXG4gICAgICAgIH1cXG5cXG4gICAgfSk7XFxufVxcbml0ZW1zLnB1c2goe1xcbiAgICAvL3RpdGxlOiBnZXRNeVZhcihcXFwicmVzY29kZVxcXCIsIFxcXCJcXFwiKSxcXG4gICAgY29sX3R5cGU6IFxcXCJpbnB1dFxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBoZWlnaHQ6IDUsXFxuICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCdyZXNjb2RlJyxpbnB1dClcXFwiLFxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcihcXFwicmVzY29kZVxcXCIsIFxcXCJcXFwiKSA9PSBcXFwiXFxcIiA/IGdldE15VmFyKFxcXCJyZWFscmVzY29kZVxcXCIsIFxcXCLlvZPliY3mnKrojrflj5bmupDnoIHjgIJcXFwiKSA6IGdldE15VmFyKFxcXCJyZXNjb2RlXFxcIiwgXFxcIlxcXCIpLFxcbiAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXG4gICAgICAgIGhpZ2hsaWdodDogdHJ1ZVxcbiAgICB9XFxuXFxufSk7XFxuc2V0SG9tZVJlc3VsdChpdGVtcyk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJKc29u5YiG57G755Sf5oiQXCIsXCJwYXRoXCI6XCJKc29uXCIsXCJydWxlXCI6XCJqczpcXG52YXIgcmVzID0ge307XFxudmFyIGl0ZW1zID0gW107XFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiAnanNvbuaVsOaNricsXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG59KTtcXG5cXG5pdGVtcy5wdXNoKHtcXG4gICAgdGl0bGU6IGdldFZhcignbXlqc29uJywgJycpLFxcbiAgICB1cmw6IFxcXCJpbnB1dDovL1xcXCIgKyBnZXRWYXIoJ215anNvbicsICcnKSArIFxcXCIuanM6cHV0VmFyKCdteWpzb24nLGlucHV0KTtyZWZyZXNoUGFnZSgpXFxcIixcXG4gICAgY29sX3R5cGU6ICdpY29uXzFfc2VhcmNoJ1xcbn0pO1xcblxcblxcbml0ZW1zLnB1c2goe1xcbiAgICB0aXRsZTogJ+WumuS9jShsaXN0LnR5cGUpJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcbn0pO1xcbml0ZW1zLnB1c2goe1xcbiAgICB0aXRsZTogZ2V0VmFyKCdteXRyZWUnLCAnJyksXFxuICAgIHVybDogXFxcImlucHV0Oi8vXFxcIiArIGdldFZhcignbXl0cmVlJywgJycpICsgXFxcIi5qczpwdXRWYXIoJ215dHJlZScsaW5wdXQpO3JlZnJlc2hQYWdlKClcXFwiLFxcbiAgICBjb2xfdHlwZTogJ2ljb25fMV9zZWFyY2gnXFxufSk7XFxuXFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiAn5Y+W5YC8KHR5cGVfbmFtZSYmdHlwZV9pZCknLFxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxufSk7XFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiBnZXRWYXIoJ215dmFsJywgJycpLFxcbiAgICB1cmw6IFxcXCJpbnB1dDovL1xcXCIgKyBnZXRWYXIoJ215dmFsJywgJycpICsgXFxcIi5qczpwdXRWYXIoJ215dmFsJyxpbnB1dCk7cmVmcmVzaFBhZ2UoKVxcXCIsXFxuICAgIGNvbF90eXBlOiAnaWNvbl8xX3NlYXJjaCdcXG59KTtcXG4vL2xvZyhsaXN0KTtcXG5pdGVtcy5wdXNoKHtcXG4gICAgdGl0bGU6ICfnlJ/miJAnLFxcbiAgICB1cmw6ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgIHZhciB0cGpzb24gPSBKU09OLnBhcnNlKGdldFZhcignbXlqc29uJywgJ1tdJykpO1xcbiAgICAgICAgdmFyIGxpc3QgPSAndHBqc29uLicgKyBnZXRWYXIoJ215dHJlZScsICcnKTtcXG4gICAgICAgIHZhciBzcGwgPSBnZXRWYXIoJ215dmFsJywgJycpLnNwbGl0KCcmJicpO1xcbiAgICAgICAgdmFyIG9uZSA9ICd0eXBlY1tqXS4nICsgc3BsWzBdO1xcbiAgICAgICAgdmFyIHR3byA9ICd0eXBlY1tqXS4nICsgc3BsWzFdO1xcbiAgICAgICAgLy92YXIgdHBqc29uID0gSlNPTi5wYXJzZShqc29uKTtcXG4gICAgICAgIC8vbG9nKHRwanNvbik7XFxuICAgICAgICB2YXIgdHlwZWMgPSBldmFsKGxpc3QpO1xcbiAgICAgICAgLy9sb2codHlwZWMpO1xcbiAgICAgICAgdmFyIHR5cGV0ID0gXFxcIlxcXCIsXFxuICAgICAgICAgICAgdHlwZWwgPSBcXFwiXFxcIjtcXG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdHlwZWMubGVuZ3RoOyBqKyspIHtcXG4gICAgICAgICAgICB0eXBldCArPSBldmFsKG9uZSk7XFxuICAgICAgICAgICAgdHlwZWwgKz0gZXZhbCh0d28pO1xcbiAgICAgICAgICAgIGlmIChqIDwgdHlwZWMubGVuZ3RoIC0gMSkge1xcbiAgICAgICAgICAgICAgICB0eXBldCArPSBcXFwiJlxcXCI7XFxuICAgICAgICAgICAgICAgIHR5cGVsICs9IFxcXCImXFxcIjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuXFxuICAgICAgICBwdXRWYXIoJ2pzb250eXBldCcsIHR5cGV0KTtcXG4gICAgICAgIHB1dFZhcignanNvbnR5cGVsJywgdHlwZWwpO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgfSksXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcbn0pO1xcblxcbml0ZW1zLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuWkjeWItuWQjeensFxcXCIsXFxuICAgIHVybDogXFxcImNvbmZpcm06Ly/mmK/lkKbpnIDopoHlpI3liLblvZPliY3lhoXlrrnjgIIuanM6XFxcIiArICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgdmFyIGppZWd1byA9IGdldFZhcignanNvbnR5cGV0JywgJycpO1xcbiAgICAgICAgaWYgKGppZWd1byA9PSAnJykge1xcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lhoXlrrnkuLrnqbos5aSN5Yi25aSx6LSl44CCJztcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgcmV0dXJuICdjb3B5Oi8vJyArIGdldFZhcignanNvbnR5cGV0JylcXG4gICAgICAgIH1cXG4gICAgfSksXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIlxcbn0pO1xcblxcbml0ZW1zLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuWkjeWItuabv+aNouivjVxcXCIsXFxuICAgIHVybDogXFxcImNvbmZpcm06Ly/mmK/lkKbpnIDopoHlpI3liLblvZPliY3lhoXlrrnjgIIuanM6XFxcIiArICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgdmFyIGppZWd1byA9IGdldFZhcignanNvbnR5cGVsJywgJycpO1xcbiAgICAgICAgaWYgKGppZWd1byA9PSAnJykge1xcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lhoXlrrnkuLrnqbos5aSN5Yi25aSx6LSl44CCJztcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgcmV0dXJuICdjb3B5Oi8vJyArIGdldFZhcignanNvbnR5cGVsJylcXG4gICAgICAgIH1cXG4gICAgfSksXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIlxcbn0pO1xcblxcbml0ZW1zLnB1c2goe1xcbiAgICB0aXRsZTogZ2V0VmFyKFxcXCJqc29udHlwZXRcXFwiLCBcXFwiXFxcIikgKyAnPGJyPicgKyBnZXRWYXIoXFxcImpzb250eXBlbFxcXCIsIFxcXCJcXFwiKSxcXG4gICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxufSk7XFxuXFxucmVzLmRhdGEgPSBpdGVtcztcXG5zZXRIb21lUmVzdWx0KHJlcyk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLor7fmsYLmtYvor5VcIixcInBhdGhcIjpcImhvbWVcIixcInJ1bGVcIjpcInZhciBtZXRob2RzID0gW1xcXCJHRVRcXFwiLCBcXFwiUE9TVFxcXCIsIFxcXCJQVVRcXFwiLCBcXFwiREVMRVRFXFxcIl1cXG52YXIgZCA9IFt7XFxuICAgIGRlc2M6IFxcXCLor7fmsYLpk77mjqVcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcImlucHV0XFxcIixcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2UsXFxuICAgICAgICBvbkNoYW5nZTogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcInVybFxcXCIsIGlucHV0KVxcbiAgICAgICAgfSksXFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKFxcXCJ1cmxcXFwiLCBcXFwiXFxcIilcXG4gICAgfVxcbn0sIHtcXG4gICAgdGl0bGU6IFxcXCLor7fmsYLmlrnlvI86XFxcIiArIChnZXRNeVZhcihcXFwibWV0aG9kXFxcIiwgXFxcIkdFVFxcXCIpKSxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICB1cmw6ICQobWV0aG9kcykuc2VsZWN0KCgpID0+IHtcXG4gICAgICAgIHB1dE15VmFyKFxcXCJtZXRob2RcXFwiLCBpbnB1dClcXG4gICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgfSlcXG59LCB7XFxuICAgIGNvbF90eXBlOiBcXFwibGluZV9ibGFua1xcXCJcXG59LCB7XFxuICAgIHRpdGxlOiBcXFwi5re75YqgaGVhZGVyc1xcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCIsXFxuICAgIHVybDogJChcXFwiXFxcIiwgXFxcIumUruWAvFxcXCIpLmlucHV0KCgpID0+IHtcXG4gICAgICAgIHJldHVybiAkKFxcXCJcXFwiLCBcXFwi5YC8XFxcIikuaW5wdXQoKGEpID0+IHtcXG4gICAgICAgICAgICB2YXIgb2xkID0gc3RvcmFnZTAuZ2V0TXlWYXIoXFxcImhlYWRlcnNcXFwiLCB7fSlcXG4gICAgICAgICAgICBvbGRbYV0gPSBpbnB1dFxcbiAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKFxcXCJoZWFkZXJzXFxcIiwgb2xkKVxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgIH0sIGlucHV0KVxcbiAgICB9KVxcbn1dXFxudmFyIGhlYWRlcnMgPSBzdG9yYWdlMC5nZXRNeVZhcihcXFwiaGVhZGVyc1xcXCIsIHt9KVxcbk9iamVjdC5rZXlzKGhlYWRlcnMpLmZvckVhY2goaXRlbSA9PiB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogaXRlbSxcXG4gICAgICAgIGRlc2M6IGhlYWRlcnNbaXRlbV0sXFxuICAgICAgICB1cmw6ICQoXFxcIuehruiupOWIoOmZpOivpemhue+8n1xcXCIpLmNvbmZpcm0oKGtleSkgPT4ge1xcbiAgICAgICAgICAgIHZhciBvbGQgPSBzdG9yYWdlMC5nZXRNeVZhcihcXFwiaGVhZGVyc1xcXCIsIHt9KVxcbiAgICAgICAgICAgIGRlbGV0ZSBvbGRba2V5XVxcbiAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKFxcXCJoZWFkZXJzXFxcIiwgb2xkKVxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgIH0sIGl0ZW0pLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiXFxuICAgIH0pXFxufSlcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogXFxcImxpbmVfYmxhbmtcXFwiXFxufSwge1xcbiAgICB0aXRsZTogXFxcIua3u+WKoGJvZHlcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiLFxcbiAgICB1cmw6ICQoXFxcIlxcXCIsIFxcXCLplK7lgLxcXFwiKS5pbnB1dCgoKSA9PiB7XFxuICAgICAgICByZXR1cm4gJChcXFwiXFxcIiwgXFxcIuWAvFxcXCIpLmlucHV0KChhKSA9PiB7XFxuICAgICAgICAgICAgdmFyIG9sZCA9IHN0b3JhZ2UwLmdldE15VmFyKFxcXCJib2R5XFxcIiwge30pXFxuICAgICAgICAgICAgb2xkW2FdID0gaW5wdXRcXG4gICAgICAgICAgICBzdG9yYWdlMC5wdXRNeVZhcihcXFwiYm9keVxcXCIsIG9sZClcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICB9LCBpbnB1dClcXG4gICAgfSlcXG59KVxcbnZhciBib2R5ID0gc3RvcmFnZTAuZ2V0TXlWYXIoXFxcImJvZHlcXFwiLCB7fSlcXG5PYmplY3Qua2V5cyhib2R5KS5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGl0ZW0sXFxuICAgICAgICBkZXNjOiBib2R5W2l0ZW1dLFxcbiAgICAgICAgdXJsOiAkKFxcXCLnoa7orqTliKDpmaTor6XpobnvvJ9cXFwiKS5jb25maXJtKChrZXkpID0+IHtcXG4gICAgICAgICAgICB2YXIgb2xkID0gc3RvcmFnZTAuZ2V0TXlWYXIoXFxcImJvZHlcXFwiLCB7fSlcXG4gICAgICAgICAgICBkZWxldGUgb2xkW2tleV1cXG4gICAgICAgICAgICBzdG9yYWdlMC5wdXRNeVZhcihcXFwiYm9keVxcXCIsIG9sZClcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICB9LCBpdGVtKSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIlxcbiAgICB9KVxcbn0pXFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6IFxcXCJsaW5lX2JsYW5rXFxcIlxcbn0sIHtcXG4gICAgdGl0bGU6IFxcXCLlj5HpgIHor7fmsYJcXFwiLFxcbiAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2UvcmVwb3J0XFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbn0pXFxuc2V0UmVzdWx0KGQpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLor7fmsYLmiqXlkYpcIixcInBhdGhcIjpcInJlcG9ydFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG52YXIgYSA9IEpTT04ucGFyc2UocmVxdWVzdChnZXRNeVZhcihcXFwidXJsXFxcIiwgXFxcImhpa2VyOi8vZW1wdHlcXFwiKSwge1xcbiAgICBtZXRob2Q6IGdldE15VmFyKFxcXCJtZXRob2RcXFwiLCBcXFwiR0VUXFxcIiksXFxuICAgIHdpdGhIZWFkZXJzOiB0cnVlLFxcbiAgICBoZWFkZXJzOiBzdG9yYWdlMC5nZXRNeVZhcihcXFwiaGVhZGVyc1xcXCIsIHt9KSxcXG4gICAgYm9keTogc3RvcmFnZTAuZ2V0TXlWYXIoXFxcImJvZHlcXFwiLCB7fSlcXG59KSlcXG5pZiAoYS5lcnJvcikge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLplJnor69+fiAg5Luj56CBOlxcXCIgKyBhLnN0YXR1c0NvZGUsXFxuICAgICAgICBkZXNjOiBhLmVycm9yXFxuICAgIH0pXFxuICAgIGxvZyhhKVxcbiAgICBzZXRQYWdlVGl0bGUoXFxcIuivt+axguWksei0pVxcXCIpXFxufSBlbHNlIHtcXG4gICAgc2V0UGFnZVRpdGxlKFxcXCLor7fmsYLmiJDlip9cXFwiKVxcbiAgICBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogaXRlbSArIFxcXCI6XFxcIiArIGFbaXRlbV0sXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICAgICAgICAgIHVybDogYVtpdGVtXSArICQoXFxcIlxcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJjb3B5Oi8vXFxcIiArIGlucHV0XFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH0pXFxuICAgIH0pXFxufVxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuivt+axgua1i+ivleS4u+mhtVwiLFwicGF0aFwiOlwiSG9tZVwiLFwicnVsZVwiOlwianM6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvaG9tZVxcXCIpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJmYXZpY29uXCIsXCJwYXRoXCI6XCJmYXZpY29uXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICcgIOivt+WcqOS4i+aWuei+k+WFpemTvuaOpSDnhLblkI7ngrnnoa7orqQnLFxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxufSlcXG5cXG5kLnB1c2goe1xcbiAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgZnVuY3Rpb24gZ2V0RmF2KHVybCkge1xcbiAgICAgICAgICAgIFxcbiAgICAgICAgICAgIHZhciBkb21haW4gPSB1cmwucmVwbGFjZSgvKChodHRwfGh0dHBzKTpcXFxcL1xcXFwvKHd3dy4pPyhcXFxcdysoXFxcXC4pPykrKS4rL2dtLCAnJDEnKTtcXG4gICAgICAgICAgICB2YXIgZmF2ID0gZG9tYWluICsgJy9mYXZpY29uLmljbydcXG4gICAgICAgICAgICB0b2FzdCgn6K+356iN562JLi4uJylcXG4gICAgICAgICAgICB2YXIgbGluayA9IGZldGNoKGZhdilcXG4gICAgICAgICAgICAvL2xvZyhsaW5rKVxcbiAgICAgICAgICAgIGlmICghbGluay5pbmNsdWRlcygnPCFET0NUWVBFIGh0bWw+JykmJmxpbmshPScnKSB7XFxuICAgICAgICAgICAgICAgIC8vbG9nKGZhdilcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhdlxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB2YXIgaGYgPSAnJ1xcbiAgICAgICAgICAgIHZhciBodG1sID0gZmV0Y2godXJsKVxcbiAgICAgICAgICAgIC8vbG9nKGh0bWwpXFxuICAgICAgICAgICAgdmFyIGxpc3QgPSBwYXJzZURvbUZvckFycmF5KGh0bWwsIFxcXCJodG1sJiZsaW5rW3JlbCo9J2ljbyddXFxcIik7XFxuICAgICAgICAgICAgdmFyIGNvID0gbGlzdC5maWx0ZXIoeCA9PiB4LmluZGV4T2YoJ2ljb24nKSAhPSAtMSlcXG5cXG4gICAgICAgICAgICBpZiAoY28ubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgICAgICBoZiA9IHBkZmgoY28uc2xpY2UoLTEpWzBdLCAnbGluayYmaHJlZicpXFxuICAgICAgICAgICAgICAgIGlmIChoZi5zdGFydHNXaXRoKCcvLycpKSB7XFxuICAgICAgICAgICAgICAgICAgICBoZiA9ICdodHRwczonICsgaGZcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChoZi5pbmNsdWRlcygnaHR0cCcpKSB7XFxuXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBoZiA9IGRvbWFpbiArIGhmXFxuICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgbG9nKGhmKVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gaGZcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHZhciBmYXYgPSBnZXRGYXYoaW5wdXQpXFxuXFxuICAgICAgICBsb2coZmF2KVxcbiAgICAgICAgaWYgKGZhdiAhPSAnJykge1xcbiAgICAgICAgICAgIHRvYXN0KCfojrflj5bmiJDlip8nKVxcbiAgICAgICAgICAgIHVwZGF0ZUl0ZW0oJ2ltZycsIHtcXG4gICAgICAgICAgICAgICAgaW1nOiBmYXYsXFxuICAgICAgICAgICAgICAgIHVybDogZmF2ICE9ICcnID8gJ2NvcHk6Ly8nICsgZmF2IDogJydcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdG9hc3QoJ+iOt+WPluWksei0pScpXFxuICAgICAgICB9XFxuXFxuXFxuICAgICAgICByZXR1cm4gJydcXG4gICAgfSksXFxuICAgIGNvbF90eXBlOiAnaW5wdXQnLFxcbiAgICB0aXRsZTogJ+ehruWumicsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICAvL29uQ2hhbmdlOiBcXFwicHV0VmFyKCdteS1zZWFyY2gnLGlucHV0KTtsb2coZ2V0VmFyKCdteS1zZWFyY2gnKSk7XFxcIixcXG4gICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXFxuICAgICAgICBoZWlnaHQ6IC0xXFxuICAgIH1cXG59KVxcblxcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAnaWNvbl80X2NhcmQnLFxcbiAgICBpbWc6ICdoaWtlcjovL2ltYWdlcy9ob21lX3BpYzMnLFxcbiAgICBleHRyYToge1xcbiAgICAgICAgaWQ6ICdpbWcnXFxuICAgIH1cXG5cXG59KVxcblxcbnNldFJlc3VsdChkKTtcIn1dIiwiaWNvbiI6ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QmpiR0Z6Y3owaWFXTnZiaUlnYzNSNWJHVTlJbmRwWkhSb09pQXhaVzA3YUdWcFoyaDBPaUF4WlcwN2RtVnlkR2xqWVd3dFlXeHBaMjQ2SUcxcFpHUnNaVHRtYVd4c09pQmpkWEp5Wlc1MFEyOXNiM0k3YjNabGNtWnNiM2M2SUdocFpHUmxianNpSUhacFpYZENiM2c5SWpBZ01DQXhNREkwSURFd01qUWlJSFpsY25OcGIyNDlJakV1TVNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0OGNHRjBhQ0JrUFNKTk9EWXdJRGsxTkM0eVNERTJOR010T0RjdU9TQXdMVEUxT1M0MUxUY3hMall0TVRVNUxqVXRNVFU1TGpWMkxUUTJOR013TFRnM0xqa2dOekV1TmkweE5Ua3VOU0F4TlRrdU5TMHhOVGt1TldneE5EVmpNalFnTUNBME15NDFJREU1TGpVZ05ETXVOU0EwTXk0MVV6TXpNeUF5TlRndU1pQXpNRGtnTWpVNExqSklNVFkwWXkwME1DQXdMVGN5TGpVZ016SXVOUzAzTWk0MUlEY3lMalYyTkRZMFl6QWdOREFnTXpJdU5TQTNNaTQxSURjeUxqVWdOekl1TldnMk9UWmpOREFnTUNBM01pNDFMVE15TGpVZ056SXVOUzAzTWk0MWRpMDBOalJqTUMwME1DMHpNaTQxTFRjeUxqVXROekl1TlMwM01pNDFTRGN4TldNdE1qUWdNQzAwTXk0MUxURTVMalV0TkRNdU5TMDBNeTQxY3pFNUxqVXRORE11TlNBME15NDFMVFF6TGpWb01UUTFZemczTGprZ01DQXhOVGt1TlNBM01TNDJJREUxT1M0MUlERTFPUzQxZGpRMk5HTXdJRGc0TFRjeExqWWdNVFU1TGpVdE1UVTVMalVnTVRVNUxqVjZJaUJtYVd4c1BTSWpNakE0TVVZMklpQXZQanh3WVhSb0lHUTlJazAzT0RjdU5TQTBORFl1T0dndE1UUTFZeTB5TkNBd0xUUXpMalVnTVRrdU5TMDBNeTQxSURRekxqVnpNVGt1TlNBME15NDFJRFF6TGpVZ05ETXVOV2d4TkRWak1qUWdNQ0EwTXk0MUxURTVMalVnTkRNdU5TMDBNeTQxSURBdE1qUXVNUzB4T1M0MUxUUXpMalV0TkRNdU5TMDBNeTQxZWswMU5UVXVOU0EyT1M0NFl5MHhOU0F3TFRJNUxqY2dOeTQ0TFRNM0xqY2dNakV1T0V3eE9EUXVNeUEyTmprdU1tTXRNVElnTWpBdU9DMDBMamtnTkRjdU5DQXhOUzQ1SURVNUxqUWdOaTQ0SURRZ01UUXVNeUExTGpnZ01qRXVOeUExTGpnZ01UVWdNQ0F5T1M0M0xUY3VPQ0F6Tnk0M0xUSXhMamhNTlRrekxqSWdNVE0xWXpFeUxUSXdMamdnTkM0NUxUUTNMalF0TVRVdU9TMDFPUzQwTFRZdU9TMDBMVEUwTGpRdE5TNDRMVEl4TGpndE5TNDRlazAzT0RjdU5TQTJORGt1T0dndE16YzNZeTB5TkNBd0xUUXpMalVnTVRrdU5TMDBNeTQxSURRekxqVnpNVGt1TlNBME15NDFJRFF6TGpVZ05ETXVOV2d6Tnpkak1qUWdNQ0EwTXk0MUxURTVMalVnTkRNdU5TMDBNeTQxSURBdE1qUXVNUzB4T1M0MUxUUXpMalV0TkRNdU5TMDBNeTQxZWlJZ1ptbHNiRDBpSXpSRE5FWTFOQ0lnTHo0OEwzTjJaejQ9IiwicHJveHkiOiIifQ==
Add Comment
Please, Sign In to add comment