xiaomianao666

小程序:摸鱼日报

Sep 16th, 2024
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@摸鱼日报@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi5pG46bG85pel5oqlIiwiYXV0aG9yIjoiQXJpc2UiLCJ1cmwiOiJoaWtlcjovL2VtcHR5IyNmeXBhZ2UiLCJ2ZXJzaW9uIjoyMDI0MDUwMSwiY29sX3R5cGUiOiJwaWNfMV9jYXJkIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ2aWRlbyIsImNsYXNzX3VybCI6IiIsImFyZWFfbmFtZSI6IiIsImFyZWFfdXJsIjoiIiwic29ydF9uYW1lIjoiIiwieWVhcl9uYW1lIjoiIiwic29ydF91cmwiOiIiLCJ5ZWFyX3VybCI6IiIsImZpbmRfcnVsZSI6ImpzOlxudmFyIGQgPSBbXTtcbnZhciByciA9IHtcbiAgICBcImNvZGVcIjogXCJpbmRleFwiLFxuICAgIFwiZGF0YVwiOiB7fSxcbiAgICBcIm1vZFwiOiBcInN5c3RlbVwiLFxuICAgIFwib2F1dGhfaWRcIjogXCJrdEpnRFgxSU51WXVSSXN6MTcwNTM4MjkzNTExMlwiLFxuICAgIFwib2F1dGhfdHlwZVwiOiBcInB3YVwiLFxuICAgIFwidGltZXN0YW1wXCI6IDE3MDUzODUyODcsXG4gICAgXCJ2ZXJzaW9uXCI6IFwiNS42LjBcIlxufVxudmFyIGVuY3J5cHRkYXRhID0gJC5yZXF1aXJlKFwiZGF0YVwiKS5lbmNyeXB0KHJyKTtcblxudmFyIHRpbWVzdGFtcCA9IGVuY3J5cHRkYXRhLnRpbWVzdGFtcC50b1N0cmluZygpO1xudmFyIGRhdGEgPSBlbmNyeXB0ZGF0YS5kYXRhO1xudmFyIHNpZ24gPSBlbmNyeXB0ZGF0YS5zaWduO1xuXG52YXIgRGF0YSA9IHBvc3QoXCJodHRwczovL3p3c2Z4di5ibWFmZHh0LmNvbS9wd2EucGhwXCIsIHtcbiAgICBib2R5OiB7XG4gICAgICAgIFwiY2xpZW50XCI6IFwicHdhXCIsXG4gICAgICAgIFwidGltZXN0YW1wXCI6IHRpbWVzdGFtcCxcbiAgICAgICAgXCJkYXRhXCI6IGRhdGEsXG4gICAgICAgIFwic2lnblwiOiBzaWduXG4gICAgfVxufSlcbnZhciBoID0gRGF0YTtcblxubGV0IGltYWdlID0gJCgpLmltYWdlKCgpID0+ICQucmVxdWlyZShcImRhdGE/cnVsZT1cIiArIE1ZX1RJVExFKS5kZWNyeXB0KCkpO1xuXG52YXIgZGF0YSA9IEpTT04ucGFyc2UoaCkuZGF0YTtcbnZhciByID0gJC5yZXF1aXJlKFwiZGF0YVwiKS5EZWNyeXB0KGRhdGEpO1xudmFyIOWIhuexu2xpc3QgPSByLmRhdGEubmF2X2xpc3Q7XG4vKlxuaWYoZ2V0TXlWYXIoJ29uLW9mZicsJ29mZicpPT0nb2ZmJyl7XG5kLnB1c2goe1xuICAgaW1nOiBKU09OLnBhcnNlKGZldGNoKCdodHRwczovL2RheXUucXFzdXUuY24vbW95dXJpYmFvL2FwaXMucGhwP3R5cGU9anNvbicpKS5kYXRhLFxuICAgY29sX3R5cGU6ICdwaWNfMV9jZW50ZXInLFxuICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSdcbn0pO1xuZC5wdXNoKHtcbiAgIHRpdGxlOiAn8J+UkScsXG4gICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJyxcbiAgIHVybDogJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICBwdXRNeVZhcignb24tb2ZmJywnb24nKVxuICAgICAgICByZWZyZXNoUGFnZSgpO1xuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xuICAgIH0pXG59KTtcbn1cbiovXG4vL2lmKGdldE15VmFyKCdvbi1vZmYnLCdvZmYnKT09J29uJyl7XG5pZihNWV9QQUdFPT0xKXtcbiQucmVxdWlyZShcImRhdGFcIikuY2F0ZWdvcnko5YiG57G7bGlzdCxkKTtcbn1cbnZhciBsaXN0ID0gci5kYXRhLnJlY29tbWVuZGVkRGF0YTtcbmZvciAodmFyIGkgaW4gbGlzdCkge1xuICAgIHZhciBwbGF5dXJsID0gbGlzdFtpXS5wbGF5VXJsO1xuICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udGl0bGU7XG4gICAgdmFyIHV1aWQgPSBsaXN0W2ldLnV1aWQ7XG4gICAgdmFyIG5pY2tOYW1lID0gbGlzdFtpXS5uaWNrTmFtZTtcbiAgICB2YXIgZGVzYyA9ICdcXHTwn4aZJyArIGxpc3RbaV0uY3JlYXRlZF9hdCArICdcXHTwn5SlJyArIGxpc3RbaV0ucGxheV9jb3VudCArICdcXHTwn4+377iPJyArIG5pY2tOYW1lICsgJ1xcdOKPse+4jycgKyBsaXN0W2ldLmR1cmF0aW9uU3RyO1xuICAgIHZhciBpbWFnZXVybCA9IGxpc3RbaV0udGh1bWJJbWc7XG4gIGlmKG5pY2tOYW1lICE9XCLlrpjmlrnmjqjojZBcIil7XG5cdCAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgIGRlc2M6IGRlc2MsXG4gICAgICAgIGltZzogaW1hZ2V1cmwgKyBpbWFnZSxcbiAgICAgICAgY29sX3R5cGU6IChzdG9yYWdlMC5nZXRJdGVtKCdDb2wwJywgJycpID09ICcnKSA/ICdtb3ZpZV8zJyA6IHN0b3JhZ2UwLmdldEl0ZW0oJ0NvbDAnLCAnJyksXG4gICAgICAgIHVybDogcGxheXVybC5yZXBsYWNlKCcxMHBsYXknLCAnbG9uZycpLFxuICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgbG9uZ0NsaWNrOiBbe1xuICAgIHRpdGxlOiAn5qC35byPJyxcbiAgICBqczogJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgIHZhciBUeXBlID0gW1wibW92aWVfMVwiLCBcIm1vdmllXzJcIiwgXCJtb3ZpZV8zXCIsIFwibW92aWVfMV9sZWZ0X3BpY1wiLCBcIm1vdmllXzFfdmVydGljYWxfcGljXCIsIFwibW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1clwiLCBcInBpY18xXCIsIFwicGljXzJcIiwgXCJwaWNfM1wiLCBcInBpY18xX2Z1bGxcIiwgXCJwaWNfMV9jZW50ZXJcIiwgXCJwaWNfMV9jYXJkXCIsIFwicGljXzJfY2FyZFwiLCBcInBpY18zX3NxdWFyZVwiLCBcImNhcmRfcGljXzFcIiwgXCJjYXJkX3BpY18yXCIsIFwiY2FyZF9waWNfM1wiLCBcImNhcmRfcGljXzNfY2VudGVyXCIsIFwibG9uZ190ZXh0XCIsIFwicmljaF90ZXh0XCIsIFwic2Nyb2xsX2J1dHRvblwiLCBcImZsZXhfYnV0dG9uXCJdO1xuICAgICAgICB2YXIgVHlwZTEgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSBpbiBUeXBlKSB7XG4gICAgICAgICAgICB2YXIgY29sID0gc3RvcmFnZTAuZ2V0SXRlbSgndHlwZScsICcnKTtcbiAgICAgICAgICAgIHZhciBDb2wgPSAoY29sLmluY2x1ZGVzKCfwn5GJ8J+PvScpKSA/IGNvbC5zcGxpdCgn8J+RifCfj70nKVsxXSA6IGNvbDtcbiAgICAgICAgICAgIGlmIChUeXBlW2ldID09IENvbCkge1xuICAgICAgICAgICAgICAgIFR5cGVbaV0gPSAn8J+RifCfj70nICsgVHlwZVtpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgVHlwZVtpXSA9IFR5cGVbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBUeXBlMVtpXSA9IFR5cGVbaV07XG4gICAgICAgIH1cbiAgICAgICAgc2hvd1NlbGVjdE9wdGlvbnMoe1xuICAgICAgICAgICAgdGl0bGU6IFwi6YCJ5oup57G75Z6LXCIsXG4gICAgICAgICAgICBjb2w6IDIsXG4gICAgICAgICAgICBvcHRpb25zOiBUeXBlMSxcbiAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKCd0eXBlJywgaW5wdXQpO1xuICAgICAgICAgICAgICAgIHZhciBjb2wgPSBzdG9yYWdlMC5nZXRJdGVtKCd0eXBlJywgJycpO1xuICAgICAgICAgICAgICAgIHZhciBDb2wgPSAoY29sLmluY2x1ZGVzKCfwn5GJ8J+PvScpKSA/IGNvbC5zcGxpdCgn8J+RifCfj70nKVsxXSA6IGNvbDtcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKCdDb2wwJywgQ29sKTtcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBcImhpa2VyOi8vZW1wdHlcIlxuICAgIH0pLFxufSx7XG4gICAgdGl0bGU6ICfmkJzntKInLFxuICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2Uvc2VhcmNoJztcbiAgICB9KSxcbn0se1xuICAgICAgICAgICAgICAgIHRpdGxlOiAn6aaW6aG1JyxcbiAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICfnrKwnICsgTVlfUEFHRSArICfpobUnLFxuICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogbmlja05hbWUsXG4gICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKHV1aWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3V1aWQnLCB1dWlkKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2UvdXNlciNpbW1lcnNpdmVUaGVtZSMnO1xuICAgICAgICAgICAgICAgIH0sIHV1aWQpLFxuICAgICAgICAgICAgfV1cbiAgICAgICAgfVxuICAgIH0pO1xuICB9XG5cbn1cbi8vfVxuc2V0UmVzdWx0KGQpOyIsInNlYXJjaF91cmwiOiIiLCJncm91cCI6IuKRoua3seWknCIsInNlYXJjaEZpbmQiOiIiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiIiLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5L6d6LWWXCIsXCJwYXRoXCI6XCJkYXRhXCIsXCJydWxlXCI6XCJqczpcXG4kLmV4cG9ydHMuZGVjcnlwdCA9IGZ1bmN0aW9uKCkge1xcbiAgICBjb25zdCBDcnlwdG9VdGlsID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL2Fzc2V0cy9jcnlwdG8tamF2YS5qc1xcXCIpO1xcbiAgICBjb25zdCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KCdmNWQ5NjVkZjc1MzM2MjcwJyk7XFxuICAgIGNvbnN0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOCgnOTdiNjAzOTRhYmMyZmJlMScpO1xcbiAgICBjb25zdCB0ZXh0RGF0YSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUlucHV0U3RyZWFtKGlucHV0KS50b0Jhc2U2NChfYmFzZTY0Lk5PX1dSQVApO1xcbiAgICBjb25zdCBkZWNyeXB0ZWQgPSBDcnlwdG9VdGlsLkFFUy5kZWNyeXB0KHRleHREYXRhLCBrZXksIHtcXG4gICAgICAgIGl2OiBpdixcXG4gICAgICAgIG1vZGU6IFxcXCJBRVMvQ0JDL05vUGFkZGluZ1xcXCJcXG4gICAgfSkudG9CYXNlNjQoX2Jhc2U2NC5OT19XUkFQKTtcXG4gICAgY29uc3QgZGVjcnlwdGVkMCA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUJhc2U2NChkZWNyeXB0ZWQsIF9iYXNlNjQuTk9fV1JBUCk7XFxuICAgIHJldHVybiBkZWNyeXB0ZWQwLnRvSW5wdXRTdHJlYW0oKTtcXG59XFxuXFxuZnVuY3Rpb24gRGVjcnlwdChkYXRhKSB7XFxuICAgIGV2YWwoZ2V0Q3J5cHRvSlMoKSk7XFxuICAgIGNvbnN0IF8weDQwOTgyZSA9IENyeXB0b0pTLmVuYy5IZXgucGFyc2UoZGF0YSksXFxuICAgICAgICBrZXkgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZSgnY2M4OGRkYzkzNTdmZjQ2MWUwOGYwNDdhZWRlZTY5MmInKSxcXG4gICAgICAgIGl2ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoJ2U4OTIyNWNmYmJpbWdrY3UnKSxcXG4gICAgICAgIF8weDQzOWNhZSA9IENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KF8weDQwOTgyZSksXFxuICAgICAgICBfMHgzODVkMzcgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdChfMHg0MzljYWUsIGtleSwge1xcbiAgICAgICAgICAgICdpdic6IGl2LFxcbiAgICAgICAgICAgICdtb2RlJzogQ3J5cHRvSlMubW9kZS5DRkIsXFxuICAgICAgICAgICAgJ3BhZGRpbmcnOiBDcnlwdG9KUy5wYWQuTm9QYWRkaW5nXFxuICAgICAgICB9KTtcXG4gICAgY29uc3QgXzB4MjcwNTZiID0gXzB4Mzg1ZDM3LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoXzB4MjcwNTZiLnRvU3RyaW5nKCkpO1xcbn1cXG5cXG5mdW5jdGlvbiBkZWNyeXB0c2lnbihkZCkge1xcbiAgICBjb25zdCBDcnlwdG9VdGlsID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL2Fzc2V0cy9jcnlwdG8tamF2YS5qc1xcXCIpO1xcbiAgICBjb25zdCBEYXRhID0gXFxcImNsaWVudD1wd2EmZGF0YT1cXFwiICsgZGQuZGF0YSArIFxcXCImdGltZXN0YW1wPVxcXCIgKyBkZC50aW1lc3RhbXAgKyBcXFwiY2M4OGRkYzkzNTdmZjQ2MWUwOGYwNDdhZWRlZTY5MmJcXFwiO1xcbiAgICBjb25zdCB1dHQ4RGF0YSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoRGF0YSk7XFxuICAgIGNvbnN0IHNoYTI1NiA9IHV0dDhEYXRhLnRvRGlnZXN0KCkuc2hhMjU2KCk7XFxuICAgIGNvbnN0IHNpZ24gPSBtZDUoc2hhMjU2KTtcXG4gICAgcmV0dXJuIHNpZ247XFxufVxcblxcbmZ1bmN0aW9uIGVuY3J5cHQoXzB4M2FlOWFjKSB7XFxuICAgIGV2YWwoZ2V0Q3J5cHRvSlMoKSk7XFxuICAgIGNvbnN0IGtleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKCdjYzg4ZGRjOTM1N2ZmNDYxZTA4ZjA0N2FlZGVlNjkyYicpO1xcbiAgICBjb25zdCBpdiA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKCdlODkyMjVjZmJiaW1na2N1Jyk7XFxuICAgIF8weDNhZTlhYyA9IFxcXCJvYmplY3RcXFwiID09IHR5cGVvZiBfMHgzYWU5YWMgPyBKU09OLnN0cmluZ2lmeShfMHgzYWU5YWMpIDogXzB4M2FlOWFjO1xcbiAgICBsZXQgXzB4NzkyN2FlID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoXzB4M2FlOWFjKSxcXG4gICAgICAgIF8weDJlMjkxMCA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KF8weDc5MjdhZSwga2V5LCB7XFxuICAgICAgICAgICAgJ2l2JzogaXYsXFxuICAgICAgICAgICAgJ21vZGUnOiBDcnlwdG9KUy5tb2RlLkNGQixcXG4gICAgICAgICAgICAncGFkZGluZyc6IENyeXB0b0pTLnBhZC5Ob1BhZGRpbmdcXG4gICAgICAgIH0pO1xcbiAgICBjb25zdCBkYXRhID0gXzB4MmUyOTEwLmNpcGhlcnRleHQudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpLFxcbiAgICAgICAgXzB4NDljYjUyID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwLFxcbiAgICAgICAgdGltZXN0YW1wID0gcGFyc2VJbnQoXzB4NDljYjUyLnRvU3RyaW5nKCkpLFxcbiAgICAgICAgc2lnbiA9IGRlY3J5cHRzaWduKHtcXG4gICAgICAgICAgICAnY2xpZW50JzogXFxcInB3YVxcXCIsXFxuICAgICAgICAgICAgJ2RhdGEnOiBkYXRhLFxcbiAgICAgICAgICAgICd0aW1lc3RhbXAnOiB0aW1lc3RhbXBcXG4gICAgICAgIH0pO1xcbiAgICByZXR1cm4ge1xcbiAgICAgICAgJ2NsaWVudCc6IFxcXCJwd2FcXFwiLFxcbiAgICAgICAgJ3NpZ24nOiBzaWduLFxcbiAgICAgICAgJ3RpbWVzdGFtcCc6IHRpbWVzdGFtcCxcXG4gICAgICAgICdkYXRhJzogZGF0YVxcbiAgICB9O1xcbn1cXG5cXG5mdW5jdGlvbiBzdHJvbmcoZCwgYykge1xcbiAgICByZXR1cm4gJ+KAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9IycgKyAoYyB8fCAnMDAwMDAwJykgKyAnPicgKyBkICsgJzwvZm9udD48L3N0cm9uZz4nO1xcbn1cXG5cXG5mdW5jdGlvbiBzdHJvbmdSKGQsIGMpIHtcXG4gICAgcmV0dXJuICc8c3Ryb25nPjxmb250IGNvbG9yPSMnICsgKGMgfHwgJzAwMDAwMCcpICsgJz4nICsgZCArICc8L2ZvbnQ+PC9zdHJvbmc+JztcXG59XFxuXFxuZnVuY3Rpb24gQ2F0ZWdvcnkobGlzdCwgbW9kZSwgZCkge1xcbiAgICBmb3IgKHZhciBpIGluIGxpc3QpIHtcXG4gICAgICAgIHZhciBMaXN0ID0gbGlzdFtpXTtcXG4gICAgICAgIHZhciB0aXRsZSA9IExpc3QudGl0bGU7XFxuICAgICAgICB2YXIgVGl0bGUgPSAoZ2V0TXlWYXIoJ2NvbG9yJywgJy0xJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogVGl0bGUsXFxuICAgICAgICAgICAgdXJsOiAkKExpc3QudHlwZSkubGF6eVJ1bGUoKGksIG1vZGUsIExpc3QpID0+IHtcXG4gICAgICAgICAgICAgICAgaWYgKG1vZGUgPT0gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGUnLCBpbnB1dCk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndHlwZVMnLCBpbnB1dCk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PSAyKSB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndHlwZVNTJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcicsIGkpO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcbiAgICAgICAgICAgIH0sIGksIG1vZGUsIExpc3QpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdibGFua19ibG9jaycsXFxuICAgIH0pO1xcbiAgICByZXR1cm4gZDtcXG59XFxuXFxuZnVuY3Rpb24gY2F0ZWdvcnkobGlzdCwgZCkge1xcbiAgICBpZiAoZ2V0SXRlbSgnc3dpdGNoJywgJ29mZicpID09ICdvbicpIHtcXG4gICAgICAgIGZvciAodmFyIGkgaW4gbGlzdCkge1xcbiAgICAgICAgICAgIHZhciBMaXN0ID0gbGlzdFtpXTtcXG4gICAgICAgICAgICB2YXIgdGl0bGUgPSBMaXN0Lm5hbWU7XFxuICAgICAgICAgICAgdmFyIFRpdGxlID0gKGdldE15VmFyKCdDb2xvcicsICctMScpID09IGkpID8gc3Ryb25nKHRpdGxlLCAnRkY2Njk5JykgOiB0aXRsZTtcXG4gICAgICAgICAgICBpZiAoTGlzdC5pZCA9PSAnNicgfHwgTGlzdC5pZCA9PSAnMicpIHtcXG5cXG4gICAgICAgICAgICB9IGVsc2UgaWYgKExpc3QuaWQgPT0gJzQnIHx8IExpc3QuaWQgPT0gJzcnKSB7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogVGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoTGlzdC5pZCkubGF6eVJ1bGUoKGksIExpc3QpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignaWQnLCBpbnB1dCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ0NvbG9yJywgaSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS90eXBlMT9meXBhZ2UnO1xcbiAgICAgICAgICAgICAgICAgICAgfSwgaSwgTGlzdCksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogVGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoTGlzdC5pZCkubGF6eVJ1bGUoKGksIExpc3QpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignaWQnLCBpbnB1dCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ0NvbG9yJywgaSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS90eXBlMj9meXBhZ2UnO1xcbiAgICAgICAgICAgICAgICAgICAgfSwgaSwgTGlzdCksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICAvKmQucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ/CflJInLFxcbiAgICAgICAgdXJsOiAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ29uLW9mZicsICdvZmYnKVxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgIH0pLFxcbiAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgfSk7Ki9cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAoZ2V0SXRlbSgnc3dpdGNoJywgJ29mZicpID09ICdvZmYnKSA/ICfwn5OBJyA6ICfwn5OCJyxcXG4gICAgICAgIHVybDogJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIGlmIChnZXRJdGVtKCdzd2l0Y2gnLCAnb2ZmJykgPT0gJ29mZicpIHtcXG4gICAgICAgICAgICAgICAgc2V0SXRlbSgnc3dpdGNoJywgJ29uJyk7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgc2V0SXRlbSgnc3dpdGNoJywgJ29mZicpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxuICAgICAgICB9KSxcXG4gICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxuICAgIH0pO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6ICfwn5SNJyxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vcGFnZS9zZWFyY2gnLFxcbiAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgfSk7XFxuICAgIHJldHVybiBkO1xcbn1cXG5cXG4kLmV4cG9ydHMuQ2F0ZWdvcnkgPSBDYXRlZ29yeTtcXG4kLmV4cG9ydHMuY2F0ZWdvcnkgPSBjYXRlZ29yeTtcXG4kLmV4cG9ydHMuc3Ryb25nUiA9IHN0cm9uZ1I7XFxuJC5leHBvcnRzLnN0cm9uZyA9IHN0cm9uZztcXG4kLmV4cG9ydHMuZW5jcnlwdCA9IGVuY3J5cHQ7XFxuJC5leHBvcnRzLkRlY3J5cHQgPSBEZWNyeXB0O1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi4pGg6aG16Z2iLeexu+Wei+S4gFwiLFwicGF0aFwiOlwidHlwZTFcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxudmFyIHBhZ2UgPSBNWV9QQUdFO1xcbnZhciBQYWdlID0gZ2V0TXlWYXIoJ3BhZ2UnLCAnMCcpO1xcbi8vdmFyIGlkID0gTVlfUEFSQU1TLmlkO1xcbi8vdmFyIGNvbF90eXBlID0gTVlfUEFSQU1TLmNvbF90eXBlO1xcbnZhciBpZCA9IGdldE15VmFyKCdpZCcpO1xcbmlmIChpZCA9PSAnNycpIHtcXG4gICAgaWQgPSAnMjInO1xcbn0gZWxzZSBpZiAoaWQgPT0gJzQnKSB7XFxuICAgIGlkID0gJzMzJztcXG59XFxudmFyIHJyID0ge1xcbiAgICBcXFwiY29kZVxcXCI6IFxcXCJnZXRFbGVtZW50SXRlbWJ5SWRcXFwiLFxcbiAgICBcXFwiaWRcXFwiOiBpZCxcXG4gICAgXFxcImxpbWl0XFxcIjogMTIsXFxuICAgIFxcXCJtb2RcXFwiOiBcXFwiZWxlbWVudFxcXCIsXFxuICAgIFxcXCJvYXV0aF9pZFxcXCI6IFxcXCJneW5VR3RMdlNEaGtLQXNnMTcwNDUxMzc4OTI4NlxcXCIsXFxuICAgIFxcXCJvYXV0aF90eXBlXFxcIjogXFxcInB3YVxcXCIsXFxuICAgIFxcXCJwYWdlXFxcIjogKFBhZ2UgPT0gMCkgPyBwYWdlIDogUGFnZSxcXG4gICAgXFxcInRpbWVzdGFtcFxcXCI6IDEuNzA0NTQ2NjY3ODA2RTEyLFxcbiAgICBcXFwidmVyc2lvblxcXCI6IFxcXCI0LjUuMFxcXCJcXG59XFxuY2xlYXJNeVZhcigncGFnZScpO1xcbnZhciBlbmNyeXB0ZGF0YSA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLmVuY3J5cHQocnIpO1xcbmxvZyhlbmNyeXB0ZGF0YSlcXG52YXIgdGltZXN0YW1wID0gZW5jcnlwdGRhdGEudGltZXN0YW1wLnRvU3RyaW5nKCk7XFxudmFyIGRhdGEgPSBlbmNyeXB0ZGF0YS5kYXRhO1xcbnZhciBzaWduID0gZW5jcnlwdGRhdGEuc2lnbjtcXG5cXG52YXIgRGF0YSA9IHBvc3QoXFxcImh0dHBzOi8vendzZnh2LmJtYWZkeHQuY29tL3B3YS5waHBcXFwiLCB7XFxuICAgIGJvZHk6IHtcXG4gICAgICAgIFxcXCJjbGllbnRcXFwiOiBcXFwicHdhXFxcIixcXG4gICAgICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiB0aW1lc3RhbXAsXFxuICAgICAgICBcXFwiZGF0YVxcXCI6IGRhdGEsXFxuICAgICAgICBcXFwic2lnblxcXCI6IHNpZ25cXG4gICAgfVxcbn0pXFxudmFyIGggPSBEYXRhO1xcblxcbmxldCBpbWFnZSA9ICQoKS5pbWFnZSgoKSA9PiAkLnJlcXVpcmUoXFxcImRhdGE/cnVsZT1cXFwiICsgTVlfVElUTEUpLmRlY3J5cHQoKSk7XFxuXFxudmFyIGRhdGEgPSBKU09OLnBhcnNlKGgpLmRhdGE7XFxudmFyIHIgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5EZWNyeXB0KGRhdGEpO1xcblxcbnZhciBsaXN0ID0gci5kYXRhLmxpc3Q7XFxuZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgIHZhciBwbGF5dXJsID0gbGlzdFtpXS5wbGF5VXJsO1xcbiAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcbiAgICB2YXIgbmlja05hbWUgPSBsaXN0W2ldLm5pY2tOYW1lO1xcbiAgICB2YXIgdXVpZCA9IGxpc3RbaV0udXVpZDtcXG4gICAgdmFyIGRlc2MgPSAnXFxcXHTwn4aZJyArIGxpc3RbaV0uY3JlYXRlZF9hdCArICdcXFxcdPCflKUnICsgbGlzdFtpXS5wbGF5X2NvdW50ICsgJ1xcXFx08J+Pt++4jycgKyBuaWNrTmFtZSArICdcXFxcdOKPse+4jycgKyBsaXN0W2ldLmR1cmF0aW9uU3RyO1xcbiAgICB2YXIgaW1hZ2V1cmwgPSBsaXN0W2ldLnRodW1iSW1nO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgZGVzYzogZGVzYyxcXG4gICAgICAgIGltZzogaW1hZ2V1cmwgKyBpbWFnZSxcXG4gICAgICAgIGNvbF90eXBlOiAoc3RvcmFnZTAuZ2V0SXRlbSgnQ29sMScsICcnKSA9PSAnJykgPyAncGljXzFfY2FyZCcgOiBzdG9yYWdlMC5nZXRJdGVtKCdDb2wxJywgJycpLFxcbiAgICAgICAgdXJsOiBwbGF5dXJsLnJlcGxhY2UoJzEwcGxheScsICdsb25nJyksXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGxvbmdDbGljazogZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9sb25nQ2xpY2sxJykpLnJ1bGUpXFxuICAgICAgICB9XFxuICAgIH0pO1xcbn1cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLikaHpobXpnaIt55So5oi3LeWFqOmDqOmhtVwiLFwicGF0aFwiOlwidXNlcmxpc3RcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxudmFyIHBhZ2UgPSBNWV9QQUdFO1xcbnZhciBtb2QgPSBNWV9QQVJBTVMubW9kO1xcbnZhciBjb2RlID0gTVlfUEFSQU1TLmNvZGU7XFxudmFyIGNvbF90eXBlID0gTVlfUEFSQU1TLmNvbF90eXBlO1xcbnZhciByciA9IHtcXG4gICAgXFxcIm9hdXRoX3R5cGVcXFwiOiBcXFwicHdhXFxcIixcXG4gICAgXFxcIm9hdXRoX2lkXFxcIjogXFxcImd5blVHdEx2U0Roa0tBc2cxNzA0NTEzNzg5Mjg2XFxcIixcXG4gICAgXFxcInZlcnNpb25cXFwiOiBcXFwiNC41LjBcXFwiLFxcbiAgICBcXFwibW9kXFxcIjogbW9kLFxcbiAgICBcXFwiY29kZVxcXCI6IGNvZGUsXFxuICAgIFxcXCJwYWdlXFxcIjogcGFnZSxcXG4gICAgXFxcImxpbWl0XFxcIjogMjEsXFxuICAgIFxcXCJ1dWlkXFxcIjogZ2V0TXlWYXIoJ3V1aWQnLCAnJyksXFxuICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiAxLjcwNDU0NjY2NzgwNkUxMlxcbn1cXG5cXG52YXIgZW5jcnlwdGRhdGEgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5lbmNyeXB0KHJyKTtcXG5cXG52YXIgdGltZXN0YW1wID0gZW5jcnlwdGRhdGEudGltZXN0YW1wLnRvU3RyaW5nKCk7XFxudmFyIGRhdGEgPSBlbmNyeXB0ZGF0YS5kYXRhO1xcbnZhciBzaWduID0gZW5jcnlwdGRhdGEuc2lnbjtcXG5cXG52YXIgRGF0YSA9IHBvc3QoXFxcImh0dHBzOi8vendzZnh2LmJtYWZkeHQuY29tL3B3YS5waHBcXFwiLCB7XFxuICAgIGJvZHk6IHtcXG4gICAgICAgIFxcXCJjbGllbnRcXFwiOiBcXFwicHdhXFxcIixcXG4gICAgICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiB0aW1lc3RhbXAsXFxuICAgICAgICBcXFwiZGF0YVxcXCI6IGRhdGEsXFxuICAgICAgICBcXFwic2lnblxcXCI6IHNpZ25cXG4gICAgfVxcbn0pXFxudmFyIGggPSBEYXRhO1xcblxcbmxldCBpbWFnZSA9ICQoKS5pbWFnZSgoKSA9PiAkLnJlcXVpcmUoXFxcImRhdGE/cnVsZT1cXFwiICsgTVlfVElUTEUpLmRlY3J5cHQoKSk7XFxuXFxudmFyIGRhdGEgPSBKU09OLnBhcnNlKGgpLmRhdGE7XFxudmFyIHIgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5EZWNyeXB0KGRhdGEpO1xcbmlmIChtb2QgPT0gXFxcImNsdWJcXFwiKSB7XFxuICAgIHZhciBsaXN0ID0gci5kYXRhLml0ZW07XFxufSBlbHNlIGlmIChtb2QgPT0gXFxcInVzZXJcXFwiKSB7XFxuICAgIHZhciBsaXN0ID0gci5kYXRhO1xcbn1cXG5mb3IgKHZhciBpIGluIGxpc3QpIHtcXG4gICAgdmFyIHBsYXl1cmwgPSBsaXN0W2ldLnBsYXlVcmw7XFxuICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udGl0bGU7XFxuICAgIHZhciBkZXNjID0gJ1xcXFx08J+UpScgKyBsaXN0W2ldLnBsYXlfY291bnQ7XFxuICAgIHZhciBpbWFnZXVybCA9IGxpc3RbaV0udGh1bWJJbWc7XFxuICAgIHZhciBuaWNrTmFtZSA9IGxpc3RbaV0ubmlja05hbWU7XFxuICAgIHZhciB1dWlkID0gbGlzdFtpXS51dWlkO1xcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvbG9uZ0NsaWNrJykpLnJ1bGUpXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICBkZXNjOiBkZXNjLFxcbiAgICAgICAgaW1nOiBpbWFnZXVybCArIGltYWdlLFxcbiAgICAgICAgY29sX3R5cGU6IChzdG9yYWdlMC5nZXRJdGVtKCdDb2xfbWVkaWEnLCAnJykgPT0gJycpID8gY29sX3R5cGUgOiBzdG9yYWdlMC5nZXRJdGVtKCdDb2xfbWVkaWEnLCAnJyksXFxuICAgICAgICB1cmw6IHBsYXl1cmwucmVwbGFjZSgnMTBwbGF5JywgJ2xvbmcnKSxcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgbG9uZ0NsaWNrOiBsb25nQ2xpY2sxXFxuICAgICAgICB9XFxuICAgIH0pO1xcbn1cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLikaHpobXpnaIt55So5oi3LemihOiniOmhtVwiLFwicGF0aFwiOlwidXNlclwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5zZXRQYWdlVGl0bGUoJ1VQ5Li76aG1Jyk7XFxubGV0IGltYWdlID0gJCgpLmltYWdlKCgpID0+ICQucmVxdWlyZShcXFwiZGF0YT9ydWxlPVxcXCIgKyBNWV9USVRMRSkuZGVjcnlwdCgpKTtcXG52YXIgY29sX3R5cGUgPSBNWV9QQVJBTVMuY29sX3R5cGU7XFxuXFxuLy/nlKjmiLfmlbDmja4r5biW5a2Q5p2/5Z2XXFxudmFyIHJyID0ge1xcbiAgICBcXFwib2F1dGhfdHlwZVxcXCI6IFxcXCJwd2FcXFwiLFxcbiAgICBcXFwib2F1dGhfaWRcXFwiOiBcXFwiZ3luVUd0THZTRGhrS0FzZzE3MDQ1MTM3ODkyODZcXFwiLFxcbiAgICBcXFwidmVyc2lvblxcXCI6IFxcXCI0LjUuMFxcXCIsXFxuICAgIFxcXCJtb2RcXFwiOiBcXFwidXNlclxcXCIsXFxuICAgIFxcXCJjb2RlXFxcIjogXFxcIm90aGVyXFxcIixcXG4gICAgXFxcInV1aWRcXFwiOiBnZXRNeVZhcigndXVpZCcsICcnKSxcXG4gICAgXFxcInRpbWVzdGFtcFxcXCI6IDEuNzA0NTQ2NjY3ODA2RTEyXFxufVxcbnZhciBlbmNyeXB0ZGF0YSA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLmVuY3J5cHQocnIpO1xcbnZhciB0aW1lc3RhbXAgPSBlbmNyeXB0ZGF0YS50aW1lc3RhbXAudG9TdHJpbmcoKTtcXG52YXIgZGF0YSA9IGVuY3J5cHRkYXRhLmRhdGE7XFxudmFyIHNpZ24gPSBlbmNyeXB0ZGF0YS5zaWduO1xcbnZhciBEYXRhID0gcG9zdChcXFwiaHR0cHM6Ly96d3NmeHYuYm1hZmR4dC5jb20vcHdhLnBocFxcXCIsIHtcXG4gICAgYm9keToge1xcbiAgICAgICAgXFxcImNsaWVudFxcXCI6IFxcXCJwd2FcXFwiLFxcbiAgICAgICAgXFxcInRpbWVzdGFtcFxcXCI6IHRpbWVzdGFtcCxcXG4gICAgICAgIFxcXCJkYXRhXFxcIjogZGF0YSxcXG4gICAgICAgIFxcXCJzaWduXFxcIjogc2lnblxcbiAgICB9XFxufSlcXG52YXIgaCA9IERhdGE7XFxudmFyIGRhdGEgPSBKU09OLnBhcnNlKGgpLmRhdGE7XFxudmFyIHIgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5EZWNyeXB0KGRhdGEpO1xcbnZhciBsaXN0ID0gci5kYXRhO1xcblxcbnZhciBjbHViX3ZpZGVvX2NvdW50ID0gbGlzdC5jbHViX3ZpZGVvX2NvdW50O1xcbnZhciB2aWRlb3NDb3VudCA9IGxpc3QudmlkZW9zQ291bnQ7XFxudmFyIGxpa2VzQ291bnQgPSBsaXN0Lmxpa2VzQ291bnQ7XFxuXFxuaWYgKGxpc3QgIT0gJycgJiYgbGlzdCAhPSBudWxsICYmIE1ZX1BBR0UgPT0gMSkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJyxcXG4gICAgICAgIHRpdGxlOiAn8J+RqfCfj7/igI3wn6ayJyArIGxpc3Qubmlja25hbWUsXFxuICAgICAgICBkZXNjOiBsaXN0LmZhbnMgKyAn57KJ5LidXFxcXHRcXFxcdCcgKyBsaXN0LmZvbGxvd2VkICsgJ+WFs+azqFxcXFx0XFxcXHQnICsgbGlzdC5mYWJ1bG91cyArICfooqvotZ5cXFxcbicgKyAnXFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdCcgKyBsaXN0Lm5ld3NfbnVtICsgJ+W4luWtkFxcXFxuJyArICdcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx054K55Ye78J+RhvCfj7/liY3lvoAnLFxcbiAgICAgICAgaW1nOiBsaXN0LnRodW1iICsgaW1hZ2UsXFxuICAgICAgICB1cmw6ICdoaWtlcjovL3BhZ2UvbmV3cz9meXBhZ2UnLFxcbiAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICBtb2Q6IFxcXCJuZXdzXFxcIixcXG4gICAgICAgICAgICBjb2RlOiBcXFwidGFyZ2V0X25ld3NcXFwiLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIixcXG4gICAgICAgICAgICBwYWdlVGl0bGU6ICfluJblrZAnXFxuICAgICAgICB9XFxuICAgIH0pO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdiaWdfYmxhbmtfYmxvY2snLFxcbiAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgfSk7XFxufVxcblxcbi8v5LuW5Lq65Li76aG15a2Q5p2/5Z2XXFxudmFyIFR5cGVsaXN0ID0gW1xcbnt0aXRsZTogJ+eyieS4neWbouS4k+WxnicsIGNvdW50OiBjbHViX3ZpZGVvX2NvdW50ICwgY29sX3R5cGU6ICAndGV4dF9pY29uJywgbW9kOiAnY2x1YicsY29kZTogJ3ZpZGVvcyd9LFxcbnt0aXRsZTogJ1Rh55qE5L2c5ZOBJywgY291bnQ6IHZpZGVvc0NvdW50ICwgY29sX3R5cGU6ICAndGV4dF9pY29uJywgbW9kOiAndXNlcicsIGNvZGU6ICd2aWRlb3MnfSxcXG57dGl0bGU6ICdUYeeahOWWnOasoicsIGNvdW50OiBsaWtlc0NvdW50ICwgY29sX3R5cGU6ICAndGV4dF9pY29uJywgbW9kOiAndXNlcicsIGNvZGU6ICdsaWtlcyd9XFxuXTtcXG5mb3IgKHZhciBpIGluIFR5cGVsaXN0KSB7XFxuICAgIHZhciByciA9IHtcXG4gICAgICAgIFxcXCJvYXV0aF90eXBlXFxcIjogXFxcInB3YVxcXCIsXFxuICAgICAgICBcXFwib2F1dGhfaWRcXFwiOiBcXFwiZ3luVUd0THZTRGhrS0FzZzE3MDQ1MTM3ODkyODZcXFwiLFxcbiAgICAgICAgXFxcInZlcnNpb25cXFwiOiBcXFwiNC41LjBcXFwiLFxcbiAgICAgICAgXFxcIm1vZFxcXCI6IFR5cGVsaXN0W2ldLm1vZCxcXG4gICAgICAgIFxcXCJjb2RlXFxcIjogVHlwZWxpc3RbaV0uY29kZSxcXG4gICAgICAgIFxcXCJwYWdlXFxcIjogMSxcXG4gICAgICAgIFxcXCJsaW1pdFxcXCI6IDMsXFxuICAgICAgICBcXFwidXVpZFxcXCI6IGdldE15VmFyKCd1dWlkJywgJycpLFxcbiAgICAgICAgXFxcInRpbWVzdGFtcFxcXCI6IDEuNzA0NTQ2NjY3ODA2RTEyXFxuICAgIH1cXG4gICAgdmFyIGVuY3J5cHRkYXRhID0gJC5yZXF1aXJlKFxcXCJkYXRhXFxcIikuZW5jcnlwdChycik7XFxuICAgIHZhciB0aW1lc3RhbXAgPSBlbmNyeXB0ZGF0YS50aW1lc3RhbXAudG9TdHJpbmcoKTtcXG4gICAgdmFyIGRhdGEgPSBlbmNyeXB0ZGF0YS5kYXRhO1xcbiAgICB2YXIgc2lnbiA9IGVuY3J5cHRkYXRhLnNpZ247XFxuICAgIHZhciBEYXRhID0gcG9zdChcXFwiaHR0cHM6Ly96d3NmeHYuYm1hZmR4dC5jb20vcHdhLnBocFxcXCIsIHtcXG4gICAgICAgIGJvZHk6IHtcXG4gICAgICAgICAgICBcXFwiY2xpZW50XFxcIjogXFxcInB3YVxcXCIsXFxuICAgICAgICAgICAgXFxcInRpbWVzdGFtcFxcXCI6IHRpbWVzdGFtcCxcXG4gICAgICAgICAgICBcXFwiZGF0YVxcXCI6IGRhdGEsXFxuICAgICAgICAgICAgXFxcInNpZ25cXFwiOiBzaWduXFxuICAgICAgICB9XFxuICAgIH0pXFxuICAgIHZhciBoID0gRGF0YTtcXG4gICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGgpLmRhdGE7XFxuICAgIHZhciByID0gJC5yZXF1aXJlKFxcXCJkYXRhXFxcIikuRGVjcnlwdChkYXRhKTtcXG4gICAgaWYgKFR5cGVsaXN0W2ldLm1vZCA9PSBcXFwiY2x1YlxcXCIpIHtcXG4gICAgICAgIHZhciBsaXN0ID0gci5kYXRhLml0ZW07XFxuICAgIH0gZWxzZSBpZiAoVHlwZWxpc3RbaV0ubW9kID09IFxcXCJ1c2VyXFxcIikge1xcbiAgICAgICAgdmFyIGxpc3QgPSByLmRhdGE7XFxuICAgIH1cXG4gICAgaWYgKGxpc3QgIT0gJycgJiYgbGlzdCAhPSBudWxsICYmIE1ZX1BBR0UgPT0gMSkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogVHlwZWxpc3RbaV0uY29sX3R5cGUsXFxuICAgICAgICAgICAgdGl0bGU6ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLnN0cm9uZ1IoVHlwZWxpc3RbaV0udGl0bGUgKyBUeXBlbGlzdFtpXS5jb3VudCArICfpg6gnLCAnRkY2Njk5JyksXFxuICAgICAgICAgICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaWNvbl9yaWdodDUnLFxcbiAgICAgICAgICAgIHVybDogJ2hpa2VyOi8vcGFnZS91c2VybGlzdD9meXBhZ2UnLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIG1vZDogVHlwZWxpc3RbaV0ubW9kLFxcbiAgICAgICAgICAgICAgICBjb2RlOiBUeXBlbGlzdFtpXS5jb2RlLFxcbiAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IFR5cGVsaXN0W2ldLnRpdGxlXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICBmb3IgKHZhciBqIGluIGxpc3QpIHtcXG4gICAgICAgICAgICB2YXIgcGxheXVybCA9IGxpc3Rbal0ucGxheVVybDtcXG4gICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2pdLnRpdGxlO1xcbiAgICAgICAgICAgIHZhciBkZXNjID0gJ1xcXFx08J+UpScgKyBsaXN0W2pdLnBsYXlfY291bnQ7XFxuICAgICAgICAgICAgdmFyIGltYWdldXJsID0gbGlzdFtqXS50aHVtYkltZztcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICAgICAgICAgIGRlc2M6IGRlc2MsXFxuICAgICAgICAgICAgICAgIGltZzogaW1hZ2V1cmwgKyBpbWFnZSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IGNvbF90eXBlLFxcbiAgICAgICAgICAgICAgICB1cmw6IHBsYXl1cmwucmVwbGFjZSgnMTBwbGF5JywgJ2xvbmcnKVxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2JpZ19ibGFua19ibG9jaycsXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgIH0pO1xcbiAgICB9XFxufVxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuKRoemhtemdoi3nlKjmiLct5biW5a2Q5YiX6KGoXCIsXCJwYXRoXCI6XCJuZXdzXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbnZhciBwYWdlID0gTVlfUEFHRTtcXG52YXIgbW9kID0gTVlfUEFSQU1TLm1vZDtcXG52YXIgY29kZSA9IE1ZX1BBUkFNUy5jb2RlO1xcbnZhciBjb2xfdHlwZSA9IE1ZX1BBUkFNUy5jb2xfdHlwZTtcXG52YXIgcnIgPSB7XFxuICAgIFxcXCJvYXV0aF90eXBlXFxcIjogXFxcInB3YVxcXCIsXFxuICAgIFxcXCJvYXV0aF9pZFxcXCI6IFxcXCJneW5VR3RMdlNEaGtLQXNnMTcwNDUxMzc4OTI4NlxcXCIsXFxuICAgIFxcXCJ2ZXJzaW9uXFxcIjogXFxcIjQuNS4wXFxcIixcXG4gICAgXFxcIm1vZFxcXCI6IG1vZCxcXG4gICAgXFxcImNvZGVcXFwiOiBjb2RlLFxcbiAgICBcXFwicGFnZVxcXCI6IHBhZ2UsXFxuICAgIFxcXCJsaW1pdFxcXCI6IDE1LFxcbiAgICBcXFwidGFyZ2V0X3V1aWRcXFwiOiBnZXRNeVZhcigndXVpZCcsICcnKSxcXG4gICAgXFxcInRpbWVzdGFtcFxcXCI6IDEuNzA0NTQ2NjY3ODA2RTEyXFxufVxcblxcbnZhciBlbmNyeXB0ZGF0YSA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLmVuY3J5cHQocnIpO1xcblxcbnZhciB0aW1lc3RhbXAgPSBlbmNyeXB0ZGF0YS50aW1lc3RhbXAudG9TdHJpbmcoKTtcXG52YXIgZGF0YSA9IGVuY3J5cHRkYXRhLmRhdGE7XFxudmFyIHNpZ24gPSBlbmNyeXB0ZGF0YS5zaWduO1xcblxcbnZhciBEYXRhID0gcG9zdChcXFwiaHR0cHM6Ly96d3NmeHYuYm1hZmR4dC5jb20vcHdhLnBocFxcXCIsIHtcXG4gICAgYm9keToge1xcbiAgICAgICAgXFxcImNsaWVudFxcXCI6IFxcXCJwd2FcXFwiLFxcbiAgICAgICAgXFxcInRpbWVzdGFtcFxcXCI6IHRpbWVzdGFtcCxcXG4gICAgICAgIFxcXCJkYXRhXFxcIjogZGF0YSxcXG4gICAgICAgIFxcXCJzaWduXFxcIjogc2lnblxcbiAgICB9XFxufSlcXG52YXIgaCA9IERhdGE7XFxuXFxubGV0IGltYWdlID0gJCgpLmltYWdlKCgpID0+ICQucmVxdWlyZShcXFwiZGF0YT9ydWxlPVxcXCIgKyBNWV9USVRMRSkuZGVjcnlwdCgpKTtcXG5cXG52YXIgZGF0YSA9IEpTT04ucGFyc2UoaCkuZGF0YTtcXG52YXIgciA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLkRlY3J5cHQoZGF0YSk7XFxudmFyIGxpc3QgPSByLmRhdGE7XFxuZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgIHZhciBpZCA9IGxpc3RbaV0uaWQ7XFxuICAgIHZhciB0aXRsZSA9IGxpc3RbaV0uY29udGVudDtcXG4gICAgdmFyIGRlc2MgPSBsaXN0W2ldLmNyZWF0ZWRfYXQgKyAn5Y+R5biDXFxcXHRcXFxcdCcgKyBsaXN0W2ldLnZpZXdfbnVtICsgJ+a1j+iniFxcXFx0XFxcXHQnICsgbGlzdFtpXS5saWtlX251bSArICfngrnotZ4nO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgZGVzYzogZGVzYyxcXG4gICAgICAgIGNvbF90eXBlOiBjb2xfdHlwZSxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vcGFnZS9uZXdzZGV0YWlsJyxcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgbmV3c19pZDogaWQsXFxuICAgICAgICAgICAgbW9kOiBcXFwibmV3c1xcXCIsXFxuICAgICAgICAgICAgY29kZTogXFxcImRldGFpbF92MVxcXCIsXFxuICAgICAgICAgICAgcGFnZVRpdGxlOiBcXFwi5biW5a2Q6K+m5oOFXFxcIlxcbiAgICAgICAgfVxcbiAgICB9KTtcXG59XFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi4pGh6aG16Z2iLeeUqOaIty3luJblrZDor6bmg4VcIixcInBhdGhcIjpcIm5ld3NkZXRhaWxcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxudmFyIHBhZ2UgPSBNWV9QQUdFO1xcbnZhciBtb2QgPSBNWV9QQVJBTVMubW9kO1xcbnZhciBjb2RlID0gTVlfUEFSQU1TLmNvZGU7XFxudmFyIG5ld3NfaWQgPSBNWV9QQVJBTVMubmV3c19pZDtcXG52YXIgcnIgPSB7XFxuICAgIFxcXCJvYXV0aF90eXBlXFxcIjogXFxcInB3YVxcXCIsXFxuICAgIFxcXCJvYXV0aF9pZFxcXCI6IFxcXCJneW5VR3RMdlNEaGtLQXNnMTcwNDUxMzc4OTI4NlxcXCIsXFxuICAgIFxcXCJ2ZXJzaW9uXFxcIjogXFxcIjQuNS4wXFxcIixcXG4gICAgXFxcIm1vZFxcXCI6IG1vZCxcXG4gICAgXFxcImNvZGVcXFwiOiBjb2RlLFxcbiAgICBcXFwibmV3c19pZFxcXCI6IG5ld3NfaWQsXFxuICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiAxLjcwNDU0NjY2NzgwNkUxMlxcbn1cXG5cXG52YXIgZW5jcnlwdGRhdGEgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5lbmNyeXB0KHJyKTtcXG5cXG52YXIgdGltZXN0YW1wID0gZW5jcnlwdGRhdGEudGltZXN0YW1wLnRvU3RyaW5nKCk7XFxudmFyIGRhdGEgPSBlbmNyeXB0ZGF0YS5kYXRhO1xcbnZhciBzaWduID0gZW5jcnlwdGRhdGEuc2lnbjtcXG5cXG52YXIgRGF0YSA9IHBvc3QoXFxcImh0dHBzOi8vendzZnh2LmJtYWZkeHQuY29tL3B3YS5waHBcXFwiLCB7XFxuICAgIGJvZHk6IHtcXG4gICAgICAgIFxcXCJjbGllbnRcXFwiOiBcXFwicHdhXFxcIixcXG4gICAgICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiB0aW1lc3RhbXAsXFxuICAgICAgICBcXFwiZGF0YVxcXCI6IGRhdGEsXFxuICAgICAgICBcXFwic2lnblxcXCI6IHNpZ25cXG4gICAgfVxcbn0pXFxudmFyIGggPSBEYXRhO1xcblxcbmxldCBpbWFnZSA9ICQoKS5pbWFnZSgoKSA9PiAkLnJlcXVpcmUoXFxcImRhdGE/cnVsZT1cXFwiICsgTVlfVElUTEUpLmRlY3J5cHQoKSk7XFxuXFxudmFyIGRhdGEgPSBKU09OLnBhcnNlKGgpLmRhdGE7XFxudmFyIHIgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5EZWNyeXB0KGRhdGEpO1xcbnZhciBkZXRhaWwgPSByLmRhdGEuZGV0YWlsO1xcbnZhciBjb21tZW50X2xpc3QgPSByLmRhdGEuY29tbWVudF9saXN0O1xcbnZhciB0aXRsZSA9IGRldGFpbC50aXRsZTtcXG52YXIgY3JlYXRlZF9hdCA9IGRldGFpbC5jcmVhdGVkX2F0O1xcbnZhciBjb250ZW50ID0gZGV0YWlsLmNvbnRlbnQ7XFxudmFyIG1lZGlhbGlzdCA9IGRldGFpbC5tZWRpYXM7XFxudmFyIGNvbW1lbnRfbnVtID0gZGV0YWlsLmNvbW1lbnRfbnVtO1xcbnZhciBuaWNrTmFtZSA9IGRldGFpbC5uaWNrbmFtZTtcXG52YXIgdXVpZCA9IGRldGFpbC51dWlkO1xcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvbG9uZ0NsaWNrJykpLnJ1bGUpXFxuLy/moIfpophcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+WPkeW4g+S6jjonICsgY3JlYXRlZF9hdCArICdcXFxcdOKcjfCfj73vuI8nICsgdGl0bGUsXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxufSk7XFxuXFxuLy/mraPmlodcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogY29udGVudCxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgIGNvbF90eXBlOiAncmljaF90ZXh0JyxcXG59KTtcXG5cXG4vL+inhumikVxcbmZvciAodmFyIGkgaW4gbWVkaWFsaXN0KSB7XFxuICAgIHZhciBpbWFnZXVybCA9IG1lZGlhbGlzdFtpXS5tZWRpYV91cmw7XFxuICAgIGlmIChpbWFnZXVybC5pbmNsdWRlcygnbTN1OCcpKSB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiAn6KeG6aKR4pa277iPJyArIGksXFxuICAgICAgICAgICAgdXJsOiBpbWFnZXVybCxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMycsXFxuICAgICAgICB9KTtcXG4gICAgfVxcbn1cXG5cXG4vL+WbvueJh1xcbmZvciAodmFyIGkgaW4gbWVkaWFsaXN0KSB7XFxuICAgIHZhciBpbWFnZXVybCA9IG1lZGlhbGlzdFtpXS5tZWRpYV91cmw7XFxuICAgIGlmICghaW1hZ2V1cmwuaW5jbHVkZXMoJ20zdTgnKSkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICBpbWc6IGltYWdldXJsICsgaW1hZ2UsXFxuICAgICAgICAgICAgdXJsOiBpbWFnZXVybCArIGltYWdlLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAoc3RvcmFnZTAuZ2V0SXRlbSgnQ29sX3RleHQnLCAnJykgPT0gJycpID8gJ3BpY18xX2Z1bGwnIDogc3RvcmFnZTAuZ2V0SXRlbSgnQ29sX3RleHQnLCAnJyksXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgbG9uZ0NsaWNrOiBsb25nQ2xpY2syXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgIH1cXG59XFxuXFxuLy/or4TorrrljLpcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+WFqOmDqOivhOiuulxcXFx0KCcgKyBjb21tZW50X251bSArICcpJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG59KTtcXG5mb3IgKHZhciBpIGluIGNvbW1lbnRfbGlzdCkge1xcbiAgICB2YXIgbmlja25hbWUgPSBjb21tZW50X2xpc3RbaV0ubmlja25hbWU7XFxuICAgIHZhciBzZXhUeXBlID0gY29tbWVudF9saXN0W2ldLnNleFR5cGU7XFxuICAgIHZhciBzZXggPSAoc2V4VHlwZSA9PSAnMCcpID8gJ1xcXFx08J+RqfCfj71cXFxcdCcgOiAnXFxcXHTwn5Go8J+PvVxcXFx0JztcXG4gICAgdmFyIGNpdHluYW1lID0gY29tbWVudF9saXN0W2ldLmNpdHluYW1lO1xcbiAgICB2YXIgY3JlYXRlZF9hdCA9IGNvbW1lbnRfbGlzdFtpXS5jcmVhdGVkX2F0O1xcbiAgICB2YXIgY29tbWVudCA9IGNvbW1lbnRfbGlzdFtpXS5jb21tZW50O1xcbiAgICB2YXIgdGh1bWIgPSBjb21tZW50X2xpc3RbaV0udGh1bWI7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogbmlja25hbWUgKyBzZXgsXFxuICAgICAgICBkZXNjOiBjaXR5bmFtZSArICfCt1xcXFx0JyArIGNyZWF0ZWRfYXQsXFxuICAgICAgICBpbWc6IHRodW1iICsgaW1hZ2UsXFxuICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgICAgIGNvbF90eXBlOiAnYXZhdGFyJ1xcbiAgICB9KTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBjb21tZW50LFxcbiAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgfSk7XFxufVxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuKRoOmhtemdoi3nsbvlnovkuoxcIixcInBhdGhcIjpcInR5cGUyXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbnZhciBwYWdlID0gTVlfUEFHRTtcXG52YXIgUGFnZSA9IGdldE15VmFyKCdwYWdlJywgJzAnKTtcXG52YXIgaWQgPSBnZXRNeVZhcignaWQnKTtcXG52YXIgcnIgPSB7XFxuICAgIFxcXCJjb2RlXFxcIjogXFxcImdldENvbnN0cnVjdEJ5SWRcXFwiLFxcbiAgICBcXFwiaWRcXFwiOiBpZCxcXG4gICAgXFxcImxpbWl0XFxcIjogMTIsXFxuICAgIFxcXCJtb2RcXFwiOiBcXFwiZWxlbWVudFxcXCIsXFxuICAgIFxcXCJvYXV0aF9pZFxcXCI6IFxcXCJneW5VR3RMdlNEaGtLQXNnMTcwNDUxMzc4OTI4NlxcXCIsXFxuICAgIFxcXCJvYXV0aF90eXBlXFxcIjogXFxcInB3YVxcXCIsXFxuICAgIFxcXCJwYWdlXFxcIjogKFBhZ2UgPT0gMCkgPyBwYWdlIDogUGFnZSxcXG4gICAgXFxcInRpbWVzdGFtcFxcXCI6IDEuNzA0NTQ2NjY3ODA2RTEyLFxcbiAgICBcXFwidmVyc2lvblxcXCI6IFxcXCI0LjUuMFxcXCJcXG59XFxuY2xlYXJNeVZhcigncGFnZScpO1xcbnZhciBlbmNyeXB0ZGF0YSA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLmVuY3J5cHQocnIpO1xcblxcbnZhciB0aW1lc3RhbXAgPSBlbmNyeXB0ZGF0YS50aW1lc3RhbXAudG9TdHJpbmcoKTtcXG52YXIgZGF0YSA9IGVuY3J5cHRkYXRhLmRhdGE7XFxudmFyIHNpZ24gPSBlbmNyeXB0ZGF0YS5zaWduO1xcblxcbnZhciBEYXRhID0gcG9zdChcXFwiaHR0cHM6Ly96d3NmeHYuYm1hZmR4dC5jb20vcHdhLnBocFxcXCIsIHtcXG4gICAgYm9keToge1xcbiAgICAgICAgXFxcImNsaWVudFxcXCI6IFxcXCJwd2FcXFwiLFxcbiAgICAgICAgXFxcInRpbWVzdGFtcFxcXCI6IHRpbWVzdGFtcCxcXG4gICAgICAgIFxcXCJkYXRhXFxcIjogZGF0YSxcXG4gICAgICAgIFxcXCJzaWduXFxcIjogc2lnblxcbiAgICB9XFxufSlcXG52YXIgaCA9IERhdGE7XFxuXFxubGV0IGltYWdlID0gJCgpLmltYWdlKCgpID0+ICQucmVxdWlyZShcXFwiZGF0YT9ydWxlPVxcXCIgKyBNWV9USVRMRSkuZGVjcnlwdCgpKTtcXG5cXG52YXIgZGF0YSA9IEpTT04ucGFyc2UoaCkuZGF0YTtcXG52YXIgciA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLkRlY3J5cHQoZGF0YSk7XFxudmFyIExpc3QgPSByLmRhdGE7XFxuZm9yICh2YXIgaSBpbiBMaXN0KSB7XFxuICAgIHZhciB0aXRsZSA9IExpc3RbaV0udGl0bGU7XFxuICAgIHZhciBpZCA9IExpc3RbaV0uaWQ7XFxuICAgIHZhciBsaXN0ID0gTGlzdFtpXS5saXN0O1xcbiAgICBpZiAoIXRpdGxlLmluY2x1ZGVzKCdiYW5uZXInKSkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfaWNvbicsXFxuICAgICAgICAgICAgdGl0bGU6ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLnN0cm9uZ1IodGl0bGUsICdGRjY2OTknKSxcXG4gICAgICAgICAgICBpbWc6ICdoaWtlcjovL2ltYWdlcy9pY29uX3JpZ2h0NScsXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9wYWdlL3BsYXlsaXN0P2Z5cGFnZScsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgaWQ6IGlkLFxcbiAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IHRpdGxlXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgICAgICBmb3IgKHZhciBpIGluIGxpc3QpIHtcXG4gICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcbiAgICAgICAgICAgIHZhciBwbGF5VXJsID0gbGlzdFtpXS5wbGF5VXJsO1xcbiAgICAgICAgICAgIHZhciBuaWNrTmFtZSA9IGxpc3RbaV0ubmlja05hbWU7XFxuICAgICAgICAgICAgdmFyIHV1aWQgPSBsaXN0W2ldLnV1aWQ7XFxuICAgICAgICAgICAgdmFyIGRlc2MgPSAn8J+UpScgKyBsaXN0W2ldLnBsYXlfY291bnQgKyAnXFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx04o+x77iPJyArIGxpc3RbaV0uZHVyYXRpb25TdHI7XFxuICAgICAgICAgICAgdmFyIGltYWdldXJsID0gbGlzdFtpXS50aHVtYkltZztcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICAgICAgICAgIGRlc2M6IGRlc2MsXFxuICAgICAgICAgICAgICAgIGltZzogaW1hZ2V1cmwgKyBpbWFnZSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IChzdG9yYWdlMC5nZXRJdGVtKCdDb2wyJywgJycpID09ICcnKSA/ICdtb3ZpZV8yJyA6IHN0b3JhZ2UwLmdldEl0ZW0oJ0NvbDInLCAnJyksXFxuICAgICAgICAgICAgICAgIHVybDogcGxheVVybC5yZXBsYWNlKCcxMHBsYXknLCAnbG9uZycpLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgbG9uZ0NsaWNrOiBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2xvbmdDbGljazInKSkucnVsZSlcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2JpZ19ibGFua19ibG9jaycsXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgIH0pO1xcbiAgICB9XFxufVxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuKRoOmhtemdoi3nsbvlnovkuoxf5LqM57qnXCIsXCJwYXRoXCI6XCJwbGF5bGlzdFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG52YXIgcGFnZSA9IE1ZX1BBR0U7XFxudmFyIFBhZ2UgPSBnZXRNeVZhcigncGFnZScsICcwJyk7XFxudmFyIGlkID0gTVlfUEFSQU1TLmlkO1xcbnZhciB0eXBlbGlzdCA9IFt7XFxuICAgIHRpdGxlOiAn5pyA5pawJyxcXG4gICAgdHlwZTogJ25ldydcXG59LCB7XFxuICAgIHRpdGxlOiAn5pyA54OtJyxcXG4gICAgdHlwZTogJ2hvdCdcXG59XTtcXG5cXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLkNhdGVnb3J5KHR5cGVsaXN0LDAsZCk7XFxufVxcbnZhciByciA9IHtcXG4gICAgXFxcImNvZGVcXFwiOiBcXFwiZ2V0RWxlbWVudEl0ZW1ieUlkXFxcIixcXG4gICAgXFxcImlkXFxcIjogaWQsXFxuICAgIFxcXCJsaW1pdFxcXCI6IDEyLFxcbiAgICBcXFwibW9kXFxcIjogXFxcImVsZW1lbnRcXFwiLFxcbiAgICBcXFwidHlwZVxcXCI6IGdldE15VmFyKCd0eXBlJywgJ25ldycpLFxcbiAgICBcXFwib2F1dGhfaWRcXFwiOiBcXFwiZ3luVUd0THZTRGhrS0FzZzE3MDQ1MTM3ODkyODZcXFwiLFxcbiAgICBcXFwib2F1dGhfdHlwZVxcXCI6IFxcXCJwd2FcXFwiLFxcbiAgICBcXFwicGFnZVxcXCI6IChQYWdlID09IDApID8gcGFnZSA6IFBhZ2UsXFxuICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiAxLjcwNDU0NjY2NzgwNkUxMixcXG4gICAgXFxcInZlcnNpb25cXFwiOiBcXFwiNC41LjBcXFwiXFxufVxcbmNsZWFyTXlWYXIoJ3BhZ2UnKTtcXG52YXIgZW5jcnlwdGRhdGEgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5lbmNyeXB0KHJyKTtcXG5cXG52YXIgdGltZXN0YW1wID0gZW5jcnlwdGRhdGEudGltZXN0YW1wLnRvU3RyaW5nKCk7XFxudmFyIGRhdGEgPSBlbmNyeXB0ZGF0YS5kYXRhO1xcbnZhciBzaWduID0gZW5jcnlwdGRhdGEuc2lnbjtcXG5cXG52YXIgRGF0YSA9IHBvc3QoXFxcImh0dHBzOi8vendzZnh2LmJtYWZkeHQuY29tL3B3YS5waHBcXFwiLCB7XFxuICAgIGJvZHk6IHtcXG4gICAgICAgIFxcXCJjbGllbnRcXFwiOiBcXFwicHdhXFxcIixcXG4gICAgICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiB0aW1lc3RhbXAsXFxuICAgICAgICBcXFwiZGF0YVxcXCI6IGRhdGEsXFxuICAgICAgICBcXFwic2lnblxcXCI6IHNpZ25cXG4gICAgfVxcbn0pXFxudmFyIGggPSBEYXRhO1xcblxcbmxldCBpbWFnZSA9ICQoKS5pbWFnZSgoKSA9PiAkLnJlcXVpcmUoXFxcImRhdGE/cnVsZT1cXFwiICsgTVlfVElUTEUpLmRlY3J5cHQoKSk7XFxuXFxudmFyIGRhdGEgPSBKU09OLnBhcnNlKGgpLmRhdGE7XFxudmFyIHIgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5EZWNyeXB0KGRhdGEpO1xcblxcbnZhciBsaXN0ID0gci5kYXRhLmxpc3Q7XFxuZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgIHZhciBwbGF5dXJsID0gbGlzdFtpXS5wbGF5VXJsO1xcbiAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcbiAgICB2YXIgbmlja05hbWUgPSBsaXN0W2ldLm5pY2tOYW1lO1xcbiAgICB2YXIgdXVpZCA9IGxpc3RbaV0udXVpZDtcXG4gICAgdmFyIGRlc2MgPSAnXFxcXHTwn5SlJyArIGxpc3RbaV0ucGxheV9jb3VudCArICdcXFxcdOKPse+4jycgKyBsaXN0W2ldLmR1cmF0aW9uU3RyO1xcbiAgICB2YXIgaW1hZ2V1cmwgPSBsaXN0W2ldLnRodW1iSW1nOyBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2xvbmdDbGljaycpKS5ydWxlKVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgZGVzYzogZGVzYyxcXG4gICAgICAgIGltZzogaW1hZ2V1cmwgKyBpbWFnZSxcXG4gICAgICAgIGNvbF90eXBlOiAoc3RvcmFnZTAuZ2V0SXRlbSgnQ29sX21lZGlhJywgJycpID09ICcnKSA/ICdtb3ZpZV8yJyA6IHN0b3JhZ2UwLmdldEl0ZW0oJ0NvbF9tZWRpYScsICcnKSxcXG4gICAgICAgIHVybDogcGxheXVybC5yZXBsYWNlKCcxMHBsYXknLCAnbG9uZycpLFxcbiAgICAgICAgZXh0cmE6IHsgXFxuICAgICAgICAgICAgbG9uZ0NsaWNrOiBsb25nQ2xpY2sxXFxuICAgICAgICB9XFxuICAgIH0pO1xcbn1cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLikajlhajpg6jpobVfbG9uZ0NsaWNrXCIsXCJwYXRoXCI6XCJsb25nQ2xpY2tcIixcInJ1bGVcIjpcIi8vY29sX3R5cGXlqpLkvZPmmL7npLrmoLflvI9cXG52YXIgbG9uZ0NsaWNrMSA9IFt7XFxuICAgIHRpdGxlOiAn5qC35byPJyxcXG4gICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgdmFyIFR5cGUgPSBbXFxcIm1vdmllXzFcXFwiLCBcXFwibW92aWVfMlxcXCIsIFxcXCJtb3ZpZV8zXFxcIiwgXFxcIm1vdmllXzFfbGVmdF9waWNcXFwiLCBcXFwibW92aWVfMV92ZXJ0aWNhbF9waWNcXFwiLCBcXFwibW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1clxcXCIsIFxcXCJwaWNfMVxcXCIsIFxcXCJwaWNfMlxcXCIsIFxcXCJwaWNfM1xcXCIsIFxcXCJwaWNfMV9mdWxsXFxcIiwgXFxcInBpY18xX2NlbnRlclxcXCIsIFxcXCJwaWNfMV9jYXJkXFxcIiwgXFxcInBpY18yX2NhcmRcXFwiLCBcXFwicGljXzNfc3F1YXJlXFxcIiwgXFxcImNhcmRfcGljXzFcXFwiLCBcXFwiY2FyZF9waWNfMlxcXCIsIFxcXCJjYXJkX3BpY18zXFxcIiwgXFxcImNhcmRfcGljXzNfY2VudGVyXFxcIiwgXFxcImxvbmdfdGV4dFxcXCIsIFxcXCJyaWNoX3RleHRcXFwiLCBcXFwic2Nyb2xsX2J1dHRvblxcXCIsIFxcXCJmbGV4X2J1dHRvblxcXCJdO1xcbiAgICAgICAgdmFyIFR5cGUxID0gW107XFxuICAgICAgICBmb3IgKHZhciBpIGluIFR5cGUpIHtcXG4gICAgICAgICAgICB2YXIgY29sID0gc3RvcmFnZTAuZ2V0SXRlbSgndHlwZScsICcnKTtcXG4gICAgICAgICAgICB2YXIgQ29sID0gKGNvbC5pbmNsdWRlcygn8J+RifCfj70nKSkgPyBjb2wuc3BsaXQoJ/CfkYnwn4+9JylbMV0gOiBjb2w7XFxuICAgICAgICAgICAgaWYgKFR5cGVbaV0gPT0gQ29sKSB7XFxuICAgICAgICAgICAgICAgIFR5cGVbaV0gPSAn8J+RifCfj70nICsgVHlwZVtpXTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBUeXBlW2ldID0gVHlwZVtpXTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgVHlwZTFbaV0gPSBUeXBlW2ldO1xcbiAgICAgICAgfVxcbiAgICAgICAgc2hvd1NlbGVjdE9wdGlvbnMoe1xcbiAgICAgICAgICAgIHRpdGxlOiBcXFwi6YCJ5oup57G75Z6LXFxcIixcXG4gICAgICAgICAgICBjb2w6IDIsXFxuICAgICAgICAgICAgb3B0aW9uczogVHlwZTEsXFxuICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKCd0eXBlJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICB2YXIgY29sID0gc3RvcmFnZTAuZ2V0SXRlbSgndHlwZScsICcnKTtcXG4gICAgICAgICAgICAgICAgdmFyIENvbCA9IChjb2wuaW5jbHVkZXMoJ/CfkYnwn4+9JykpID8gY29sLnNwbGl0KCfwn5GJ8J+PvScpWzFdIDogY29sO1xcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKCdDb2xfbWVkaWEnLCBDb2wpO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KTtcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgfSl9LHtcXG4gICAgdGl0bGU6ICfmkJzntKInLFxcbiAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS9zZWFyY2gnO1xcbiAgICB9KSxcXG59LHtcXG4gICAgdGl0bGU6ICfpppbpobUnLFxcbiAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgfSksXFxufSwge1xcbiAgICB0aXRsZTogJ+esrCcgKyBNWV9QQUdFICsgJ+mhtScsXFxuICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxuICAgIH0pLFxcbn0sIHtcXG4gICAgdGl0bGU6ICfot7PovawnLFxcbiAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICByZXR1cm4gJCgnJykuaW5wdXQoKCkgPT4ge1xcbiAgICAgICAgICAgIGlucHV0ID0gaW5wdXQ7XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ3BhZ2UnLCBpbnB1dCk7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgIH0pO1xcbiAgICB9KSxcXG59LCB7XFxuICAgIHRpdGxlOiBuaWNrTmFtZSxcXG4gICAganM6ICQudG9TdHJpbmcoKHV1aWQpID0+IHtcXG4gICAgICAgIHB1dE15VmFyKCd1dWlkJywgdXVpZCk7XFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS91c2VyI2ltbWVyc2l2ZVRoZW1lIyc7XFxuICAgIH0sIHV1aWQpLFxcbn1dXFxuc3RvcmFnZTAuZ2V0SXRlbSgnbG9uZ0NsaWNrMScsIGxvbmdDbGljazEpO1xcblxcbi8vY29sX3R5cGXmlofmnKzmmL7npLrmoLflvI9cXG52YXIgbG9uZ0NsaWNrMiA9IFt7XFxuICAgIHRpdGxlOiAn5qC35byPJyxcXG4gICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgdmFyIFR5cGUgPSBbXFxcIm1vdmllXzFcXFwiLCBcXFwibW92aWVfMlxcXCIsIFxcXCJtb3ZpZV8zXFxcIiwgXFxcIm1vdmllXzFfbGVmdF9waWNcXFwiLCBcXFwibW92aWVfMV92ZXJ0aWNhbF9waWNcXFwiLCBcXFwibW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1clxcXCIsIFxcXCJwaWNfMVxcXCIsIFxcXCJwaWNfMlxcXCIsIFxcXCJwaWNfM1xcXCIsIFxcXCJwaWNfMV9mdWxsXFxcIiwgXFxcInBpY18xX2NlbnRlclxcXCIsIFxcXCJwaWNfMV9jYXJkXFxcIiwgXFxcInBpY18yX2NhcmRcXFwiLCBcXFwicGljXzNfc3F1YXJlXFxcIiwgXFxcImNhcmRfcGljXzFcXFwiLCBcXFwiY2FyZF9waWNfMlxcXCIsIFxcXCJjYXJkX3BpY18zXFxcIiwgXFxcImNhcmRfcGljXzNfY2VudGVyXFxcIiwgXFxcImxvbmdfdGV4dFxcXCIsIFxcXCJyaWNoX3RleHRcXFwiLCBcXFwic2Nyb2xsX2J1dHRvblxcXCIsIFxcXCJmbGV4X2J1dHRvblxcXCJdO1xcbiAgICAgICAgdmFyIFR5cGUxID0gW107XFxuICAgICAgICBmb3IgKHZhciBpIGluIFR5cGUpIHtcXG4gICAgICAgICAgICB2YXIgY29sID0gc3RvcmFnZTAuZ2V0SXRlbSgndHlwZScsICcnKTtcXG4gICAgICAgICAgICB2YXIgQ29sID0gKGNvbC5pbmNsdWRlcygn8J+RifCfj70nKSkgPyBjb2wuc3BsaXQoJ/CfkYnwn4+9JylbMV0gOiBjb2w7XFxuICAgICAgICAgICAgaWYgKFR5cGVbaV0gPT0gQ29sKSB7XFxuICAgICAgICAgICAgICAgIFR5cGVbaV0gPSAn8J+RifCfj70nICsgVHlwZVtpXTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBUeXBlW2ldID0gVHlwZVtpXTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgVHlwZTFbaV0gPSBUeXBlW2ldO1xcbiAgICAgICAgfVxcbiAgICAgICAgc2hvd1NlbGVjdE9wdGlvbnMoe1xcbiAgICAgICAgICAgIHRpdGxlOiBcXFwi6YCJ5oup57G75Z6LXFxcIixcXG4gICAgICAgICAgICBjb2w6IDIsXFxuICAgICAgICAgICAgb3B0aW9uczogVHlwZTEsXFxuICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKCd0eXBlJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICB2YXIgY29sID0gc3RvcmFnZTAuZ2V0SXRlbSgndHlwZScsICcnKTtcXG4gICAgICAgICAgICAgICAgdmFyIENvbCA9IChjb2wuaW5jbHVkZXMoJ/CfkYnwn4+9JykpID8gY29sLnNwbGl0KCfwn5GJ8J+PvScpWzFdIDogY29sO1xcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKCdDb2xfdGV4dCcsIENvbCk7XFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH0pO1xcbiAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICB9KVxcbn0se1xcbiAgICB0aXRsZTogbmlja05hbWUsXFxuICAgIGpzOiAkLnRvU3RyaW5nKCh1dWlkKSA9PiB7XFxuICAgICAgICBwdXRNeVZhcigndXVpZCcsIHV1aWQpO1xcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2UvdXNlciNpbW1lcnNpdmVUaGVtZSMnO1xcbiAgICB9LCB1dWlkKSxcXG59XVxcbnN0b3JhZ2UwLnNldEl0ZW0oJ2xvbmdDbGljazInLCBsb25nQ2xpY2syKTtcXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuKRqOexu+Wei+S6jF9sb25nQ2xpY2tcIixcInBhdGhcIjpcImxvbmdDbGljazJcIixcInJ1bGVcIjpcIi8vY29sX3R5cGXmmL7npLrmoLflvI9cXG5be1xcbiAgICB0aXRsZTogJ+agt+W8jycsXFxuICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgIHZhciBUeXBlID0gW1xcXCJtb3ZpZV8xXFxcIiwgXFxcIm1vdmllXzJcXFwiLCBcXFwibW92aWVfM1xcXCIsIFxcXCJtb3ZpZV8xX2xlZnRfcGljXFxcIiwgXFxcIm1vdmllXzFfdmVydGljYWxfcGljXFxcIiwgXFxcIm1vdmllXzFfdmVydGljYWxfcGljX2JsdXJcXFwiLCBcXFwicGljXzFcXFwiLCBcXFwicGljXzJcXFwiLCBcXFwicGljXzNcXFwiLCBcXFwicGljXzFfZnVsbFxcXCIsIFxcXCJwaWNfMV9jZW50ZXJcXFwiLCBcXFwicGljXzFfY2FyZFxcXCIsIFxcXCJwaWNfMl9jYXJkXFxcIiwgXFxcInBpY18zX3NxdWFyZVxcXCIsIFxcXCJjYXJkX3BpY18xXFxcIiwgXFxcImNhcmRfcGljXzJcXFwiLCBcXFwiY2FyZF9waWNfM1xcXCIsIFxcXCJjYXJkX3BpY18zX2NlbnRlclxcXCIsIFxcXCJsb25nX3RleHRcXFwiLCBcXFwicmljaF90ZXh0XFxcIiwgXFxcInNjcm9sbF9idXR0b25cXFwiLCBcXFwiZmxleF9idXR0b25cXFwiXTtcXG4gICAgICAgIHZhciBUeXBlMSA9IFtdO1xcbiAgICAgICAgZm9yICh2YXIgaSBpbiBUeXBlKSB7XFxuICAgICAgICAgICAgdmFyIGNvbCA9IHN0b3JhZ2UwLmdldEl0ZW0oJ3R5cGUnLCAnJyk7XFxuICAgICAgICAgICAgdmFyIENvbCA9IChjb2wuaW5jbHVkZXMoJ/CfkYnwn4+9JykpID8gY29sLnNwbGl0KCfwn5GJ8J+PvScpWzFdIDogY29sO1xcbiAgICAgICAgICAgIGlmIChUeXBlW2ldID09IENvbCkge1xcbiAgICAgICAgICAgICAgICBUeXBlW2ldID0gJ/CfkYnwn4+9JyArIFR5cGVbaV07XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgVHlwZVtpXSA9IFR5cGVbaV07XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIFR5cGUxW2ldID0gVHlwZVtpXTtcXG4gICAgICAgIH1cXG4gICAgICAgIHNob3dTZWxlY3RPcHRpb25zKHtcXG4gICAgICAgICAgICB0aXRsZTogXFxcIumAieaLqeexu+Wei1xcXCIsXFxuICAgICAgICAgICAgY29sOiAyLFxcbiAgICAgICAgICAgIG9wdGlvbnM6IFR5cGUxLFxcbiAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgc3RvcmFnZTAuc2V0SXRlbSgndHlwZScsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgdmFyIGNvbCA9IHN0b3JhZ2UwLmdldEl0ZW0oJ3R5cGUnLCAnJyk7XFxuICAgICAgICAgICAgICAgIHZhciBDb2wgPSAoY29sLmluY2x1ZGVzKCfwn5GJ8J+PvScpKSA/IGNvbC5zcGxpdCgn8J+RifCfj70nKVsxXSA6IGNvbDtcXG4gICAgICAgICAgICAgICAgc3RvcmFnZTAuc2V0SXRlbSgnQ29sMicsIENvbCk7XFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH0pO1xcbiAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICB9KSxcXG59LCB7XFxuICAgIHRpdGxlOiAn5pCc57SiJyxcXG4gICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2Uvc2VhcmNoJztcXG4gICAgfSksXFxufSx7XFxuICAgIHRpdGxlOiAn6aaW6aG1JyxcXG4gICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxuICAgIH0pLFxcbn0sIHtcXG4gICAgdGl0bGU6ICfnrKwnICsgTVlfUEFHRSArICfpobUnLFxcbiAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcbiAgICB9KSxcXG59LCB7XFxuICAgIHRpdGxlOiAn6Lez6L2sJyxcXG4gICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgcmV0dXJuICQoJycpLmlucHV0KCgpID0+IHtcXG4gICAgICAgICAgICBpbnB1dCA9IGlucHV0O1xcbiAgICAgICAgICAgIHB1dE15VmFyKCdwYWdlJywgaW5wdXQpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICB9KTtcXG4gICAgfSksXFxufSwge1xcbiAgICB0aXRsZTogbmlja05hbWUsXFxuICAgIGpzOiAkLnRvU3RyaW5nKCh1dWlkKSA9PiB7XFxuICAgICAgICBwdXRNeVZhcigndXVpZCcsIHV1aWQpO1xcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2UvdXNlciNpbW1lcnNpdmVUaGVtZSMnO1xcbiAgICB9LCB1dWlkKSxcXG59XVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi4pGo57G75Z6L5LiAX2xvbmdDbGlja1wiLFwicGF0aFwiOlwibG9uZ0NsaWNrMVwiLFwicnVsZVwiOlwiLy9jb2xfdHlwZeaYvuekuuagt+W8j1xcblt7XFxuICAgIHRpdGxlOiAn5qC35byPJyxcXG4gICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgdmFyIFR5cGUgPSBbXFxcIm1vdmllXzFcXFwiLCBcXFwibW92aWVfMlxcXCIsIFxcXCJtb3ZpZV8zXFxcIiwgXFxcIm1vdmllXzFfbGVmdF9waWNcXFwiLCBcXFwibW92aWVfMV92ZXJ0aWNhbF9waWNcXFwiLCBcXFwibW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1clxcXCIsIFxcXCJwaWNfMVxcXCIsIFxcXCJwaWNfMlxcXCIsIFxcXCJwaWNfM1xcXCIsIFxcXCJwaWNfMV9mdWxsXFxcIiwgXFxcInBpY18xX2NlbnRlclxcXCIsIFxcXCJwaWNfMV9jYXJkXFxcIiwgXFxcInBpY18yX2NhcmRcXFwiLCBcXFwicGljXzNfc3F1YXJlXFxcIiwgXFxcImNhcmRfcGljXzFcXFwiLCBcXFwiY2FyZF9waWNfMlxcXCIsIFxcXCJjYXJkX3BpY18zXFxcIiwgXFxcImNhcmRfcGljXzNfY2VudGVyXFxcIiwgXFxcImxvbmdfdGV4dFxcXCIsIFxcXCJyaWNoX3RleHRcXFwiLCBcXFwic2Nyb2xsX2J1dHRvblxcXCIsIFxcXCJmbGV4X2J1dHRvblxcXCJdO1xcbiAgICAgICAgdmFyIFR5cGUxID0gW107XFxuICAgICAgICBmb3IgKHZhciBpIGluIFR5cGUpIHtcXG4gICAgICAgICAgICB2YXIgY29sID0gc3RvcmFnZTAuZ2V0SXRlbSgndHlwZScsICcnKTtcXG4gICAgICAgICAgICB2YXIgQ29sID0gKGNvbC5pbmNsdWRlcygn8J+RifCfj70nKSkgPyBjb2wuc3BsaXQoJ/CfkYnwn4+9JylbMV0gOiBjb2w7XFxuICAgICAgICAgICAgaWYgKFR5cGVbaV0gPT0gQ29sKSB7XFxuICAgICAgICAgICAgICAgIFR5cGVbaV0gPSAn8J+RifCfj70nICsgVHlwZVtpXTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBUeXBlW2ldID0gVHlwZVtpXTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgVHlwZTFbaV0gPSBUeXBlW2ldO1xcbiAgICAgICAgfVxcbiAgICAgICAgc2hvd1NlbGVjdE9wdGlvbnMoe1xcbiAgICAgICAgICAgIHRpdGxlOiBcXFwi6YCJ5oup57G75Z6LXFxcIixcXG4gICAgICAgICAgICBjb2w6IDIsXFxuICAgICAgICAgICAgb3B0aW9uczogVHlwZTEsXFxuICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKCd0eXBlJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICB2YXIgY29sID0gc3RvcmFnZTAuZ2V0SXRlbSgndHlwZScsICcnKTtcXG4gICAgICAgICAgICAgICAgdmFyIENvbCA9IChjb2wuaW5jbHVkZXMoJ/CfkYnwn4+9JykpID8gY29sLnNwbGl0KCfwn5GJ8J+PvScpWzFdIDogY29sO1xcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKCdDb2wxJywgQ29sKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSk7XFxuICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgIH0pLFxcbn0sIHtcXG4gICAgdGl0bGU6ICfmkJzntKInLFxcbiAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS9zZWFyY2gnO1xcbiAgICB9KSxcXG59LHtcXG4gICAgdGl0bGU6ICfpppbpobUnLFxcbiAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgfSksXFxufSwge1xcbiAgICB0aXRsZTogJ+esrCcgKyBNWV9QQUdFICsgJ+mhtScsXFxuICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxuICAgIH0pLFxcbn0sIHtcXG4gICAgdGl0bGU6ICfot7PovawnLFxcbiAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICByZXR1cm4gJCgnJykuaW5wdXQoKCkgPT4ge1xcbiAgICAgICAgICAgIGlucHV0ID0gaW5wdXQ7XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ3BhZ2UnLCBpbnB1dCk7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgIH0pO1xcbiAgICB9KSxcXG59LCB7XFxuICAgIHRpdGxlOiBuaWNrTmFtZSxcXG4gICAganM6ICQudG9TdHJpbmcoKHV1aWQpID0+IHtcXG4gICAgICAgIHB1dE15VmFyKCd1dWlkJywgdXVpZCk7XFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS91c2VyI2ltbWVyc2l2ZVRoZW1lIyc7XFxuICAgIH0sIHV1aWQpLFxcbn1dXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLikaLpobXpnaIt5pCc57SiXCIsXCJwYXRoXCI6XCJzZWFyY2hcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuc2V0UGFnZVRpdGxlKCfmkJzntKLpobUnKTtcXG52YXIgcnIgPSB7XFxuICAgIFxcXCJjb2RlXFxcIjogXFxcInNlYXJjaEluZGV4XFxcIixcXG4gICAgXFxcIm1vZFxcXCI6IFxcXCJpbmRleFxcXCIsXFxuICAgIFxcXCJvYXV0aF9pZFxcXCI6IFxcXCJneW5VR3RMdlNEaGtLQXNnMTcwNDUxMzc4OTI4NlxcXCIsXFxuICAgIFxcXCJvYXV0aF90eXBlXFxcIjogXFxcInB3YVxcXCIsXFxuICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiAxLjcwNDU0NjY2NzgwNkUxMixcXG4gICAgXFxcInZlcnNpb25cXFwiOiBcXFwiNC41LjBcXFwiXFxufVxcbnZhciBlbmNyeXB0ZGF0YSA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLmVuY3J5cHQocnIpO1xcblxcbnZhciB0aW1lc3RhbXAgPSBlbmNyeXB0ZGF0YS50aW1lc3RhbXAudG9TdHJpbmcoKTtcXG52YXIgZGF0YSA9IGVuY3J5cHRkYXRhLmRhdGE7XFxudmFyIHNpZ24gPSBlbmNyeXB0ZGF0YS5zaWduO1xcblxcbnZhciBEYXRhID0gcG9zdChcXFwiaHR0cHM6Ly96d3NmeHYuYm1hZmR4dC5jb20vcHdhLnBocFxcXCIsIHtcXG4gICAgYm9keToge1xcbiAgICAgICAgXFxcImNsaWVudFxcXCI6IFxcXCJwd2FcXFwiLFxcbiAgICAgICAgXFxcInRpbWVzdGFtcFxcXCI6IHRpbWVzdGFtcCxcXG4gICAgICAgIFxcXCJkYXRhXFxcIjogZGF0YSxcXG4gICAgICAgIFxcXCJzaWduXFxcIjogc2lnblxcbiAgICB9XFxufSlcXG52YXIgaCA9IERhdGE7XFxubGV0IGltYWdlID0gJCgpLmltYWdlKCgpID0+ICQucmVxdWlyZShcXFwiZGF0YT9ydWxlPVxcXCIgKyBNWV9USVRMRSkuZGVjcnlwdCgpKTtcXG52YXIgZGF0YSA9IEpTT04ucGFyc2UoaCkuZGF0YTtcXG52YXIgciA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLkRlY3J5cHQoZGF0YSk7XFxudmFyIGxpc3QgPSByLmRhdGEuaG90U2VhcmNoO1xcbnZhciBsaXN0MSA9IHIuZGF0YS5ob3RUb3BpYztcXG52YXIgbGlzdDIgPSByLmRhdGEuY2F0ZWdvcnlbMF0ubXZsaXN0O1xcbnZhciB0aXRsZTIgPSByLmRhdGEuY2F0ZWdvcnlbMF0ubmFtZTtcXG52YXIgZGVzYzIgPSByLmRhdGEuY2F0ZWdvcnlbMF0uZGVzYztcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+aQnOe0oicsXFxuICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICBwdXRWYXIoJ2tleXdvcmQnLCBpbnB1dCk7XFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS9zZWFyY2hfcmVzdWx0P2Z5cGFnZSc7XFxuICAgIH0pLFxcbiAgICBjb2xfdHlwZTogJ2lucHV0JyxcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0VmFyKCdrZXl3b3JkJywgJycpLFxcbiAgICAgICAgcGFnZVRpdGxlOiAn5pCc57Si57uT5p6cJ1xcbiAgICB9XFxufSk7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdiaWdfYmxhbmtfYmxvY2snLFxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5J1xcbn0pO1xcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5zdHJvbmdSKCfng63mkJzmppwnLCAnRkY2Njk5JyksXFxuICAgIGNvbF90eXBlOiAndGV4dF9pY29uJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSdcXG59KTtcXG5mb3IgKHZhciBpIGluIGxpc3QpIHtcXG4gICAgdmFyIHRpdGxlID0gbGlzdFtpXTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nLFxcbiAgICAgICAgdXJsOiBcXFwiY29weTovL1xcXCIgKyB0aXRsZVxcbiAgICB9KTtcXG59XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdiaWdfYmxhbmtfYmxvY2snLFxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5J1xcbn0pO1xcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5zdHJvbmdSKCc5MeeDreeCuScsICdGRjY2OTknKSxcXG4gICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaWNvbl9yaWdodDUnLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfaWNvbicsXFxuICAgIHVybDogJ2hpa2VyOi8vcGFnZS9zZWFyY2hfaG90VG9waWNzJ1xcbn0pO1xcbmZvciAodmFyIGkgaW4gbGlzdDEpIHtcXG4gICAgdmFyIHRpdGxlID0gbGlzdDFbaV0udGl0bGU7XFxuICAgIHZhciBpZCA9IGxpc3QxW2ldLnZhbHVlO1xcbiAgICB2YXIgbnVtID0gTnVtYmVyKGkpICsgMTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBudW0gKyAnLlxcXFx0JyArIHRpdGxlLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcbiAgICAgICAgdXJsOiAnaGlrZXI6Ly9wYWdlL3NlYXJjaF9ob3RUb3BpY3NfZGV0YWlsJyxcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgaWQ6IGlkLFxcbiAgICAgICAgICAgIHBhZ2VUaXRsZTogJ+ivpuaDhSdcXG4gICAgICB9XFxuICAgIH0pO1xcbn1cXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2JpZ19ibGFua19ibG9jaycsXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHknXFxufSk7XFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IGRlc2MyICsgdGl0bGUyLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfaWNvbicsXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHknXFxufSk7XFxuZm9yICh2YXIgaSBpbiBsaXN0Mikge1xcbiAgICB2YXIgdGl0bGUgPSBsaXN0MltpXS50aXRsZTtcXG4gICAgdmFyIHBsYXlVcmwgPSBsaXN0MltpXS5wbGF5VXJsO1xcbiAgICB2YXIgbmlja05hbWUgPSBsaXN0MltpXS5uaWNrTmFtZTtcXG4gICAgdmFyIHV1aWQgPSBsaXN0MltpXS51dWlkO1xcbiAgICB2YXIgZGVzYyA9ICfwn5SlJyArIGxpc3QyW2ldLnBsYXlfY291bnQgKyAnXFxcXHQnICsgbGlzdDJbaV0uZHVyYXRpb25TdHI7XFxuICAgIHZhciBpbWFnZXVybCA9IGxpc3QyW2ldLnRodW1iSW1nO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgZGVzYzogZGVzYyxcXG4gICAgICAgIGltZzogaW1hZ2V1cmwgKyBpbWFnZSxcXG4gICAgICAgIGNvbF90eXBlOiAnbW92aWVfMycsXFxuICAgICAgICB1cmw6IHBsYXlVcmwucmVwbGFjZSgnMTBwbGF5JywgJ2xvbmcnKSxcXG4gICAgfSk7XFxufVxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuKRoumhtemdoi3mkJzntKJf57uT5p6cXCIsXCJwYXRoXCI6XCJzZWFyY2hfcmVzdWx0XCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbnZhciBwYWdlID0gTVlfUEFHRTtcXG52YXIgUGFnZSA9IGdldE15VmFyKCdwYWdlJywgJzAnKTtcXG52YXIgdHlwZVNsaXN0ID0gW3tcXG4gICAgdGl0bGU6ICfnn63op4bpopEnLFxcbiAgICB0eXBlOiAnMSdcXG59LCB7XFxuICAgIHRpdGxlOiAn5ZCI6ZuGJyxcXG4gICAgdHlwZTogJzUnXFxufSwge1xcbiAgICB0aXRsZTogJ+W4luWtkCcsXFxuICAgIHR5cGU6ICczJ1xcbn1dO1xcbmlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgJC5yZXF1aXJlKFxcXCJkYXRhXFxcIikuQ2F0ZWdvcnkodHlwZVNsaXN0LDEsZCk7XFxufVxcbnZhciByciA9IHtcXG4gICAgXFxcImNvZGVcXFwiOiBcXFwic2VhcmNoXFxcIixcXG4gICAgXFxcInR5cGVcXFwiOiBnZXRNeVZhcigndHlwZVMnLCAnMScpLFxcbiAgICBcXFwia2V5XFxcIjogZ2V0VmFyKCdrZXl3b3JkJywgJycpLFxcbiAgICBcXFwibW9kXFxcIjogXFxcImluZGV4XFxcIixcXG4gICAgXFxcIm9hdXRoX2lkXFxcIjogXFxcImd5blVHdEx2U0Roa0tBc2cxNzA0NTEzNzg5Mjg2XFxcIixcXG4gICAgXFxcIm9hdXRoX3R5cGVcXFwiOiBcXFwicHdhXFxcIixcXG4gICAgXFxcInBhZ2VcXFwiOiAoUGFnZSA9PSAwKSA/IHBhZ2UgOiBQYWdlLFxcbiAgICBcXFwidGltZXN0YW1wXFxcIjogMS43MDQ1NDY2Njc4MDZFMTIsXFxuICAgIFxcXCJ2ZXJzaW9uXFxcIjogXFxcIjQuNS4wXFxcIlxcbn1cXG5jbGVhck15VmFyKCdwYWdlJyk7XFxudmFyIGVuY3J5cHRkYXRhID0gJC5yZXF1aXJlKFxcXCJkYXRhXFxcIikuZW5jcnlwdChycik7XFxuXFxudmFyIHRpbWVzdGFtcCA9IGVuY3J5cHRkYXRhLnRpbWVzdGFtcC50b1N0cmluZygpO1xcbnZhciBkYXRhID0gZW5jcnlwdGRhdGEuZGF0YTtcXG52YXIgc2lnbiA9IGVuY3J5cHRkYXRhLnNpZ247XFxuXFxudmFyIERhdGEgPSBwb3N0KFxcXCJodHRwczovL3p3c2Z4di5ibWFmZHh0LmNvbS9wd2EucGhwXFxcIiwge1xcbiAgICBib2R5OiB7XFxuICAgICAgICBcXFwiY2xpZW50XFxcIjogXFxcInB3YVxcXCIsXFxuICAgICAgICBcXFwidGltZXN0YW1wXFxcIjogdGltZXN0YW1wLFxcbiAgICAgICAgXFxcImRhdGFcXFwiOiBkYXRhLFxcbiAgICAgICAgXFxcInNpZ25cXFwiOiBzaWduXFxuICAgIH1cXG59KVxcbnZhciBoID0gRGF0YTtcXG5cXG5sZXQgaW1hZ2UgPSAkKCkuaW1hZ2UoKCkgPT4gJC5yZXF1aXJlKFxcXCJkYXRhP3J1bGU9XFxcIiArIE1ZX1RJVExFKS5kZWNyeXB0KCkpO1xcblxcbnZhciBkYXRhID0gSlNPTi5wYXJzZShoKS5kYXRhO1xcbnZhciByID0gJC5yZXF1aXJlKFxcXCJkYXRhXFxcIikuRGVjcnlwdChkYXRhKTtcXG52YXIgbGlzdCA9IHIuZGF0YTtcXG5pZiAoci5zdGF0dXMgPT0gMCkge1xcbiAgICB0b2FzdChyLm1zZyk7XFxuICAgIGJhY2soKTtcXG59IGVsc2UgaWYgKGxpc3QgPT0gJycpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn5rKh5pyJ5pu05aSa5YaF5a65IScsXFxuICAgICAgICB1cmw6ICd0b2FzdDovL/Cfj4DkvaDlubLlmJt+JyxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcbiAgICB9KTtcXG5cXG59IGVsc2UgaWYoZ2V0TXlWYXIoJ3R5cGVTJywgJzEnKT09MSl7XFxuICAgIGZvciAodmFyIGkgaW4gbGlzdCkge1xcbiAgICAgICAgdmFyIHBsYXl1cmwgPSBsaXN0W2ldLnBsYXlVcmw7XFxuICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcbiAgICAgICAgdmFyIG5pY2tOYW1lID0gbGlzdFtpXS5uaWNrTmFtZTtcXG4gICAgICAgIHZhciB1dWlkID0gbGlzdFtpXS51dWlkO1xcbiAgICAgICAgdmFyIGRlc2MgPSAnXFxcXHTwn5SlJyArIGxpc3RbaV0ucGxheV9jb3VudCArICdcXFxcdOKPse+4jycgKyBsaXN0W2ldLmR1cmF0aW9uU3RyO1xcbiAgICAgICAgdmFyIGltYWdldXJsID0gbGlzdFtpXS50aHVtYkltZztcXG4gICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvbG9uZ0NsaWNrJykpLnJ1bGUpXFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgICAgICBkZXNjOiBkZXNjLFxcbiAgICAgICAgICAgIGltZzogaW1hZ2V1cmwgKyBpbWFnZSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogKHN0b3JhZ2UwLmdldEl0ZW0oJ0NvbF9tZWRpYScsICcnKSA9PSAnJykgPyAnbW92aWVfMicgOiBzdG9yYWdlMC5nZXRJdGVtKCdDb2xfbWVkaWEnLCAnJyksXFxuICAgICAgICAgICAgdXJsOiBwbGF5dXJsLnJlcGxhY2UoJzEwcGxheScsICdsb25nJyksXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgbG9uZ0NsaWNrOiBsb25nQ2xpY2sxXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgIH1cXG59IGVsc2UgaWYoZ2V0TXlWYXIoJ3R5cGVTJywgJzMnKT09Myl7XFxuZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgIHZhciBpZCA9IGxpc3RbaV0uaWQ7XFxuICAgIHZhciB0aXRsZSA9IGxpc3RbaV0uY29udGVudDtcXG4gICAgdmFyIGRlc2MgPSBsaXN0W2ldLmNyZWF0ZWRfYXQgKyAn5Y+R5biDXFxcXHRcXFxcdCcgKyBsaXN0W2ldLnZpZXdfbnVtICsgJ+a1j+iniFxcXFx0XFxcXHQnICsgbGlzdFtpXS5saWtlX251bSArICfngrnotZ4nO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgZGVzYzogZGVzYyxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vcGFnZS9uZXdzZGV0YWlsJyxcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgbmV3c19pZDogaWQsXFxuICAgICAgICAgICAgbW9kOiBcXFwibmV3c1xcXCIsXFxuICAgICAgICAgICAgY29kZTogXFxcImRldGFpbF92MVxcXCIsXFxuICAgICAgICAgICAgcGFnZVRpdGxlOiBcXFwi5biW5a2Q6K+m5oOFXFxcIlxcbiAgICAgICAgfVxcbiAgICB9KTtcXG59XFxufSBlbHNle1xcbiAgICAgIHRvYXN0KCflop7liqDlip/og73nmoTmnLrkvJrmnaXkuobvvIEnKTtcXG59XFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi4pGi6aG16Z2iLeaQnOe0ol85MeeDreeCuVwiLFwicGF0aFwiOlwic2VhcmNoX2hvdFRvcGljc1wiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG52YXIgcnIgPSB7XFxuICAgIFxcXCJvYXV0aF90eXBlXFxcIjogXFxcInB3YVxcXCIsXFxuICAgIFxcXCJvYXV0aF9pZFxcXCI6IFxcXCJneW5VR3RMdlNEaGtLQXNnMTcwNDUxMzc4OTI4NlxcXCIsXFxuICAgIFxcXCJ2ZXJzaW9uXFxcIjogXFxcIjQuNS4wXFxcIixcXG4gICAgXFxcIm1vZFxcXCI6IFxcXCJjYXRlZ29yeVxcXCIsXFxuICAgIFxcXCJjb2RlXFxcIjogXFxcImhvdFRvcGljc1xcXCIsXFxuICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiAxLjcwNDU0NjY2NzgwNkUxMlxcbn1cXG5cXG52YXIgZW5jcnlwdGRhdGEgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5lbmNyeXB0KHJyKTtcXG5cXG52YXIgdGltZXN0YW1wID0gZW5jcnlwdGRhdGEudGltZXN0YW1wLnRvU3RyaW5nKCk7XFxudmFyIGRhdGEgPSBlbmNyeXB0ZGF0YS5kYXRhO1xcbnZhciBzaWduID0gZW5jcnlwdGRhdGEuc2lnbjtcXG5cXG52YXIgRGF0YSA9IHBvc3QoXFxcImh0dHBzOi8vendzZnh2LmJtYWZkeHQuY29tL3B3YS5waHBcXFwiLCB7XFxuICAgIGJvZHk6IHtcXG4gICAgICAgIFxcXCJjbGllbnRcXFwiOiBcXFwicHdhXFxcIixcXG4gICAgICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiB0aW1lc3RhbXAsXFxuICAgICAgICBcXFwiZGF0YVxcXCI6IGRhdGEsXFxuICAgICAgICBcXFwic2lnblxcXCI6IHNpZ25cXG4gICAgfVxcbn0pXFxudmFyIGggPSBEYXRhO1xcblxcbmxldCBpbWFnZSA9ICQoKS5pbWFnZSgoKSA9PiAkLnJlcXVpcmUoXFxcImRhdGE/cnVsZT1cXFwiICsgTVlfVElUTEUpLmRlY3J5cHQoKSk7XFxuXFxudmFyIGRhdGEgPSBKU09OLnBhcnNlKGgpLmRhdGE7XFxudmFyIHIgPSAkLnJlcXVpcmUoXFxcImRhdGFcXFwiKS5EZWNyeXB0KGRhdGEpO1xcbnZhciBsaXN0ID0gci5kYXRhLmxpc3Q7XFxuZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgIHZhciBpZCA9IGxpc3RbaV0udmFsdWU7XFxuICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udGl0bGU7XFxuICAgIHZhciBpbWcgPSBsaXN0W2ldLmltZ191cmw7XFxuICAgIHZhciBkZXNjID0gbGlzdFtpXS51cGRhdGVkX2F0ICsgJ/CflKVcXFxcdFxcXFx0JytbaV0uaG90X251bSAgKyAn8J+Pt++4j1xcXFx0XFxcXHQnKyBsaXN0W2ldLnRhZ3NfbmFtZTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgIGRlc2M6ICcwJyxcXG4gICAgICAgIGltZzogaW1nICsgaW1hZ2UsXFxuICAgICAgICBjb2xfdHlwZTogJ2NhcmRfcGljXzEnLFxcbiAgICAgICAgdXJsOiAnaGlrZXI6Ly9wYWdlL3NlYXJjaF9ob3RUb3BpY3NfZGV0YWlsJyxcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgaWQ6IGlkLFxcbiAgICAgICAgICAgIHBhZ2VUaXRsZTogXFxcIuivpuaDhVxcXCJcXG4gICAgICAgIH1cXG4gICAgfSk7XFxufVxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuKRoumhtemdoi3mkJzntKJfOTHng63ngrlf5LqM57qnXCIsXCJwYXRoXCI6XCJzZWFyY2hfaG90VG9waWNzX2RldGFpbFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG52YXIgaWQgPSBNWV9QQVJBTVMuaWQ7XFxudmFyIHJyID0ge1xcbiAgICBcXFwib2F1dGhfdHlwZVxcXCI6IFxcXCJwd2FcXFwiLFxcbiAgICBcXFwiaWRcXFwiOiBpZCxcXG4gICAgXFxcIm9hdXRoX2lkXFxcIjogXFxcImd5blVHdEx2U0Roa0tBc2cxNzA0NTEzNzg5Mjg2XFxcIixcXG4gICAgXFxcInZlcnNpb25cXFwiOiBcXFwiNC41LjBcXFwiLFxcbiAgICBcXFwibW9kXFxcIjogXFxcImluZGV4XFxcIixcXG4gICAgXFxcImNvZGVcXFwiOiBcXFwiZGV0YWlsX3YxXFxcIixcXG4gICAgXFxcInRpbWVzdGFtcFxcXCI6IDEuNzA0NTQ2NjY3ODA2RTEyXFxufVxcblxcbnZhciBlbmNyeXB0ZGF0YSA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLmVuY3J5cHQocnIpO1xcblxcbnZhciB0aW1lc3RhbXAgPSBlbmNyeXB0ZGF0YS50aW1lc3RhbXAudG9TdHJpbmcoKTtcXG52YXIgZGF0YSA9IGVuY3J5cHRkYXRhLmRhdGE7XFxudmFyIHNpZ24gPSBlbmNyeXB0ZGF0YS5zaWduO1xcblxcbnZhciBEYXRhID0gcG9zdChcXFwiaHR0cHM6Ly96d3NmeHYuYm1hZmR4dC5jb20vcHdhLnBocFxcXCIsIHtcXG4gICAgYm9keToge1xcbiAgICAgICAgXFxcImNsaWVudFxcXCI6IFxcXCJwd2FcXFwiLFxcbiAgICAgICAgXFxcInRpbWVzdGFtcFxcXCI6IHRpbWVzdGFtcCxcXG4gICAgICAgIFxcXCJkYXRhXFxcIjogZGF0YSxcXG4gICAgICAgIFxcXCJzaWduXFxcIjogc2lnblxcbiAgICB9XFxufSlcXG52YXIgaCA9IERhdGE7XFxuXFxubGV0IGltYWdlID0gJCgpLmltYWdlKCgpID0+ICQucmVxdWlyZShcXFwiZGF0YT9ydWxlPVxcXCIgKyBNWV9USVRMRSkuZGVjcnlwdCgpKTtcXG5cXG52YXIgZGF0YSA9IEpTT04ucGFyc2UoaCkuZGF0YTtcXG52YXIgciA9ICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLkRlY3J5cHQoZGF0YSk7XFxudmFyIGRhdGEgPSByLmRhdGE7XFxudmFyIHRpdGxlID0gZGF0YS50aXRsZTtcXG52YXIgcGxheVVybCA9IGRhdGEucGxheVVybDtcXG52YXIgcHJldmlld1VybCA9IGRhdGEucHJldmlld1VybDtcXG52YXIgcGxheXVybCA9IChwbGF5VXJsIT0nJyk/cGxheVVybDpwcmV2aWV3VXJsO1xcbnZhciB0aHVtYkltZyA9IGRhdGEudGh1bWJJbWc7XFxudmFyIHRhZ3MgPSBkYXRhLnRhZ3M7XFxudmFyIGNyZWF0ZWRfYXQgPSBkYXRhLmNyZWF0ZWRfYXQ7XFxudmFyIHBsYXlfY291bnQgPSBkYXRhLnBsYXlfY291bnQ7XFxudmFyIGxpa2UgPSBkYXRhLmxpa2U7dmFyIGxpa2UgPSBkYXRhLmxpa2U7XFxudmFyIGNvbW1lbnQgPSBkYXRhLmNvbW1lbnQ7XFxudmFyIGR1cmF0aW9uU3RyID0gZGF0YS5kdXJhdGlvblN0cjtcXG52YXIgbmlja05hbWUgPSBkYXRhLm5pY2tOYW1lO1xcbnZhciB1dWlkID0gZGF0YS51dWlkO1xcbnZhciBtZWRpYWxpc3QgPSBkYXRhLnJlY29tbWVuZDsgLy/nsr7lvanop4bpopFcXG52YXIgY29tbWVudF9saXN0ID0gZGF0YS5jb21tZW50TGlzdDsgLy/or4TorrpcXG5cXG5kLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgZGVzYzogJzAnLFxcbiAgICAgICAgaW1nOiB0aHVtYkltZyArIGltYWdlLFxcbiAgICAgICAgdXJsOiBwbGF5dXJsLnJlcGxhY2UoJzEwcGxheScsICdsb25nJyksXFxuICAgICAgICBjb2xfdHlwZTogJ2NhcmRfcGljXzEnXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNtYWxsPicgKyflj5HluIPml7bpl7Q6JytjcmVhdGVkX2F0KydcXFxcdFxcXFx0VVDkuLs6JytuaWNrTmFtZSsnXFxcXG7wn4+377iPJyt0YWdzKydcXFxcdFxcXFx05pe26ZW/JytkdXJhdGlvblN0cisnXFxcXG7wn5SlJytwbGF5X2NvdW50KydcXFxcdFxcXFx04p2k77iPJytsaWtlKydcXFxcdFxcXFx04pyN8J+Pve+4jycrY29tbWVudCsnPC9zbWFsbD4nLFxcbiAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2JpZ19ibGFua19ibG9jaycsXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgIH0pO1xcbnZhciB0eXBlU1NsaXN0ID0gW3tcXG4gICAgdGl0bGU6ICfnsr7lvanop4bpopEnLFxcbiAgICB0eXBlOiAnMSdcXG59LCB7XFxuICAgIHRpdGxlOiAn6K+E6K66Jytjb21tZW50LFxcbiAgICB0eXBlOiAnMCdcXG59XTtcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgICQucmVxdWlyZShcXFwiZGF0YVxcXCIpLkNhdGVnb3J5KHR5cGVTU2xpc3QsMixkKTtcXG59XFxuaWYoZ2V0TXlWYXIoJ3R5cGVTUycsICcxJyk9PTApe1xcbmQucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+WFqOmDqOivhOiuulxcXFx0KCcrY29tbWVudCsnKScsXFxuICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcbn0pO1xcbmZvciAodmFyIGkgaW4gY29tbWVudF9saXN0KSB7XFxuICAgIHZhciBuaWNrbmFtZSA9IGNvbW1lbnRfbGlzdFtpXS5uaWNrTmFtZTtcXG4gICAgdmFyIHNleFR5cGUgPSBjb21tZW50X2xpc3RbaV0uc2V4VHlwZTtcXG4gICAgdmFyIHNleCA9IChzZXhUeXBlID09ICcwJykgPyAnXFxcXHTwn5Gp8J+PvVxcXFx0JyA6ICdcXFxcdPCfkajwn4+9XFxcXHQnO1xcbiAgICB2YXIgY3JlYXRlZF9hdCA9IGNvbW1lbnRfbGlzdFtpXS5jcmVhdGVkX2F0O1xcbiAgICB2YXIgY29tbWVudCA9IGNvbW1lbnRfbGlzdFtpXS5jb21tZW50O1xcbiAgICB2YXIgdGh1bWIgPSBjb21tZW50X2xpc3RbaV0udGh1bWI7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogbmlja25hbWUgKyBzZXgsXFxuICAgICAgICBkZXNjOiBjcmVhdGVkX2F0LFxcbiAgICAgICAgaW1nOiB0aHVtYiArIGltYWdlLFxcbiAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcidcXG4gICAgfSk7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogY29tbWVudCxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgIH0pO1xcbn1cXG59IGVsc2Uge1xcbmZvciAodmFyIGkgaW4gbWVkaWFsaXN0KSB7XFxuICAgIHZhciBpZCA9IG1lZGlhbGlzdFtpXS5pZDtcXG4gICAgdmFyIHRpdGxlID0gbWVkaWFsaXN0W2ldLnRpdGxlO1xcbiAgICB2YXIgaW1nID0gbWVkaWFsaXN0W2ldLnRodW1iSW1nO1xcbiAgICAvL3ZhciBwbGF5VXJsID0gbWVkaWFsaXN0W2ldLnBsYXlVcmw7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICBpbWc6IGltZyArIGltYWdlLFxcbiAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJyxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vcGFnZS9zZWFyY2hfaG90VG9waWNzX2RldGFpbCcsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGlkOiBpZCxcXG4gICAgICAgICAgICBwYWdlVGl0bGU6IFxcXCLor6bmg4VcXFwiXFxuICAgICAgICB9XFxuICAgIH0pO1xcbn1cXG59XFxuc2V0UmVzdWx0KGQpO1wifV0iLCJpY29uIjoiaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pWYXpVLnBuZyIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment