Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@总统影院抖阴@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi5oC757uf5b2x6Zmi5oqW6Zi0IiwiYXV0aG9yIjoiTGlnZW4iLCJ1cmwiOiJoaWtlcjovL2VtcHR5IyNmeXBhZ2UiLCJ2ZXJzaW9uIjoxLCJjb2xfdHlwZSI6Im1vdmllXzIiLCJjbGFzc19uYW1lIjoiIiwidHlwZSI6InZpZGVvIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6IFxudmFyIGQgPSBbXTtcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvaG9tZScpKS5ydWxlKTtcbnNldFJlc3VsdChkKSIsInNlYXJjaF91cmwiOiJoaWtlcjovL2VtcHR5P3BhZ2U9ZnlwYWdlJmt3PSoqIiwiZ3JvdXAiOiLnsr7lk4EiLCJzZWFyY2hGaW5kIjoianM6XG4kLnJlcXVpcmUoXCJzZWFjaFwiKSIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzMiLCJkZXRhaWxfZmluZF9ydWxlIjoiIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IioiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiIiLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiYWVzXCIsXCJwYXRoXCI6XCJhZXNcIixcInJ1bGVcIjpcIi8v5Yqg6L29Q3J5cHRvSlPlupNcXG5ldmFsKGdldENyeXB0b0pTKCkpXFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcXG4vL+eUn+aIkOmaj+acunV1aWRcXG5mdW5jdGlvbiBnZW5lcmF0ZVVVSUQoKSB7XFxuICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHtcXG4gICAgICAgIHZhciByID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMDtcXG4gICAgICAgIHZhciB2ID0gYyA9PT0gJ3gnID8gciA6IChyICYgMHgzIHwgMHg4KTtcXG4gICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcXG4gICAgfSk7XFxufVxcbi8v55Sf5oiQ5pe26Ze05oizXFxuZnVuY3Rpb24gZ2V0Q3VycmVudFRpbWVzdGFtcCgpIHtcXG4gICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xcbn1cXG4vL21kNeWKoOWvhlxcbmZ1bmN0aW9uIG1kNShzdHIpIHtcXG4gICAgcmV0dXJuIENyeXB0b0pTLk1ENShzdHIpLnRvU3RyaW5nKCk7XFxufVxcbi8vc2hhMjU25Yqg5a+GXFxuZnVuY3Rpb24gc2hhMjU2KHN0cikge1xcbiAgICByZXR1cm4gQ3J5cHRvSlMuU0hBMjU2KHN0cikudG9TdHJpbmcoKTtcXG59XFxuXFxuXFxuLy8g6Kej5a+G5Ye95pWwXFxuZnVuY3Rpb24gRGVjcnlwdCh3b3JkKSB7XFxuICAgIGNvbnN0IGtleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXCJjYzg4ZGRjOTM1N2ZmNDYxZTA4ZjA0N2FlZGVlNjkyYlxcXCIpO1xcbiAgICBjb25zdCBpdiA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXCJlODkyMjVjZmJiaW1na2N1XFxcIik7XFxuICAgIGxldCBlbmNyeXB0ZWRIZXhTdHIgPSBDcnlwdG9KUy5lbmMuSGV4LnBhcnNlKHdvcmQpO1xcbiAgICBsZXQgZGVjcnlwdCA9IENyeXB0b0pTLkFFUy5kZWNyeXB0KHtcXG4gICAgICAgIGNpcGhlcnRleHQ6IGVuY3J5cHRlZEhleFN0clxcbiAgICB9LCBrZXksIHtcXG4gICAgICAgIGl2OiBpdixcXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0ZCLFxcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLk5vUGFkZGluZyAvLyDms6jmhI/ov5nph4zlupTor6XmmK9DcnlwdG9KUy5wYWQuTm9QYWRkaW5nXFxuICAgIH0pO1xcbiAgICBpZiAoZGVjcnlwdCkge1xcbiAgICAgICAgbGV0IGRlY3J5cHRlZFN0ciA9IGRlY3J5cHQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xcbiAgICAgICAgcmV0dXJuIGRlY3J5cHRlZFN0cjtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIC8vIOino+WvhuWksei0pe+8jOi/lOWbnm51bGzmiJbplJnor6/kv6Hmga9cXG4gICAgICAgIHJldHVybiBudWxsO1xcbiAgICB9XFxufVxcblxcbi8vIOWKoOWvhuWHveaVsFxcbmZ1bmN0aW9uIEVuY3J5cHQocGxhaW50ZXh0KSB7XFxuICAgIGNvbnN0IGtleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXCJjYzg4ZGRjOTM1N2ZmNDYxZTA4ZjA0N2FlZGVlNjkyYlxcXCIpO1xcbiAgICBjb25zdCBpdiA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXCJlODkyMjVjZmJiaW1na2N1XFxcIik7XFxuICAgIHZhciBlbmNyeXB0ZWQgPSBDcnlwdG9KUy5BRVMuZW5jcnlwdChwbGFpbnRleHQsIGtleSwge1xcbiAgICAgICAgaXY6IGl2LFxcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DRkIsXFxuICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuTm9QYWRkaW5nIC8vIOazqOaEj+i/memHjOW6lOivpeaYr0NyeXB0b0pTLnBhZC5Ob1BhZGRpbmdcXG4gICAgfSk7XFxuICAgIHZhciBjaXBoZXJ0ZXh0ID0gZW5jcnlwdGVkLmNpcGhlcnRleHQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLkhleCk7XFxuICAgIHJldHVybiBjaXBoZXJ0ZXh0LnRvVXBwZXJDYXNlKCk7XFxufVxcblxcbnZhciBsYXp5ID0gJCgnJykuaW1hZ2UoKCkgPT4ge1xcbmNvbnN0IENyeXB0b1V0aWwgPSAkLnJlcXVpcmUoXFxcImhpa2VyOi8vYXNzZXRzL2NyeXB0by1qYXZhLmpzXFxcIik7XFxuXFx0bGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcImY1ZDk2NWRmNzUzMzYyNzBcXFwiKTtcXG5cXHRsZXQgaXYgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXCI5N2I2MDM5NGFiYzJmYmUxXFxcIik7XFxuXFx0bGV0IHRleHREYXRhID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSW5wdXRTdHJlYW0oaW5wdXQpO1xcblxcdGxldCBlbmNyeXB0ZWQgPSBDcnlwdG9VdGlsLkFFUy5kZWNyeXB0KHRleHREYXRhLCBrZXksIHtcXG4gIFxcdG1vZGU6IFxcXCJBRVMvQ0JDL1BLQ1M3UGFkZGluZ1xcXCIsXFxuXFx0XFx0aXY6IGl2XFxuXFx0fSk7XFxuXFx0cmV0dXJuIGVuY3J5cHRlZC50b0lucHV0U3RyZWFtKCk7XFxufSlcXG5cXG5cXG5mdW5jdGlvbiBwb3N0KHVybCxkYXRhMCl7XFxudmFyIGRhdGEgPSBFbmNyeXB0KGRhdGEwKTsgXFxudmFyIHNpZ24gPSBtZDUoc2hhMjU2KCdjbGllbnQ9cHdhJmRhdGE9JytkYXRhKycmdGltZXN0YW1wPScrdCsnY2M4OGRkYzkzNTdmZjQ2MWUwOGYwNDdhZWRlZTY5MmInKSk7IC8vbG9nKHNpZ24pXFxudmFyIGJvZHkgPSAnY2xpZW50PXB3YSZ0aW1lc3RhbXA9Jyt0KycmZGF0YT0nK2RhdGErJyZzaWduPScrc2lnbjsgXFxuLy9sb2coYm9keSlcXG52YXIgaHRtbCA9IGZldGNoKHVybCwge1xcbiAgICBoZWFkZXJzOiB7XFxuICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcXG4gICAndXNlci1hZ2VudCc6J0RhcnQvMy40KGRhcnQ6aW8pJyxcXG4gICAgfSxcXG4gICAgYm9keTogYm9keSxcXG4gICAgbWV0aG9kOiAnUE9TVCdcXG59KTsgXFxuLy9sb2coaHRtbClcXG5sZXQgaHRtbDEgPSBKU09OLnBhcnNlKGh0bWwpLmRhdGE7IFxcbi8vbG9nKGh0bWwxKVxcbmxldCBodG1sMiA9IERlY3J5cHQoaHRtbDEpOyBcXG5yZXR1cm4gaHRtbDI7XFxufVxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pe26Ze05oiz6L2s5o2iXCIsXCJwYXRoXCI6XCLml7bpl7TmiLPovazmjaJcIixcInJ1bGVcIjpcImZ1bmN0aW9uIHRpbWVzdGFtcFRvVGltZSh0bSwgdHMpIHtcXG5cXHRcXHR1bmRlZmluZWRcXG5cXHRcXHR2YXIgZGF0ZSA9IG5ldyBEYXRlKHRtICogMTAwMCk7IC8v5pe26Ze05oiz5Li6MTDkvY3pnIAqMTAwMO+8jOaXtumXtOaIs+S4ujEz5L2N55qE6K+d5LiN6ZyA5LmYMTAwMFxcblxcdFxcdHZhciBZID0gZGF0ZS5nZXRGdWxsWWVhcigpICsgJy0nO1xcblxcdFxcdHZhciBNID0gKGRhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/ICcwJyArIChkYXRlLmdldE1vbnRoKCkgKyAxKSA6IGRhdGUuZ2V0TW9udGgoKSArIDEpICsgJy0nO1xcblxcdFxcdHZhciBEID0gZGF0ZS5nZXREYXRlKCk7XFxuXFx0XFx0dmFyIGggPSAnIHwgJyArIGRhdGUuZ2V0SG91cnMoKSArICc6JztcXG5cXHRcXHR2YXIgbSA9IGRhdGUuZ2V0TWludXRlcygpO1xcblxcdFxcdGlmKG08MTApIG0gPSAnMCcrbTtcXG5cXHRcXHRtID0gbSArICc6J1xcblxcdFxcdHZhciBzID0gZGF0ZS5nZXRTZWNvbmRzKCk7XFxuXFx0XFx0aWYoczwxMCkgcyA9ICcwJytzO1xcblxcdFxcdGlmICh0cyA9PSAwKSByZXR1cm4gWSArIE0gKyBEO1xcblxcdFxcdGlmICh0cyA9PSAxKSByZXR1cm4gWSArIE0gKyBEICsgaCArIG0gKyBzO1xcblxcdH1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWIhuexu1wiLFwicGF0aFwiOlwiQ2F0ZWdvcnlcIixcInJ1bGVcIjpcImZ1bmN0aW9uIHN0cm9uZyhkLCBjKSB7XFxuICAgIHJldHVybiAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0jJyArIChjIHx8ICcwMDAwMDAnKSArICc+JyArIGQgKyAnPC9mb250Pjwvc3Ryb25nPic7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5KGxpc3Qsbixjb2wsZCkge1xcbiAgICAgdmFyIHRpdGxlID0gbGlzdFswXS50aXRsZS5zcGxpdCgnJicpO1xcbiAgICAgdmFyIGtleSA9IGxpc3RbMF0ua2V5LnNwbGl0KCcmJyk7XFxuICAgICAgaWYobGlzdFswXS5pbWchPW51bGwpe1xcbiAgICAgdmFyIGltZz1saXN0WzBdLmltZy5zcGxpdCgnJicpO1xcbiAgICB9ZWxzZXtcXG4gICAgdmFyIGltZz1bXTtcXG4gICAgfVxcbmZvciAodmFyIGkgaW4gdGl0bGUpIHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6ICAgKGdldE15VmFyKCdjb2xvcicrbiwgJzAnKSA9PSBpKSA/IHN0cm9uZyh0aXRsZVtpXSwgJ0ZGNjY5OScpIDogdGl0bGVbaV0sXFxuICAgICAgICAgICAgaW1nOmltZ1tpXSxcXG4gICAgICAgICAgICB1cmw6ICQoa2V5W2ldKS5sYXp5UnVsZSgoaSxuLHRpdGxlLGtleSkgPT4ge1xcbiAgICAgICAgICAgICAgIHB1dE15VmFyKG4sIGlucHV0KTtcXG4gICAgICAgICAgICAgICBwdXRNeVZhcignY29sb3InK24sIGkpO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcbiAgICAgICAgICAgIH0sIGksIG4sdGl0bGVbaV0sa2V5W2ldKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogY29sXFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdibGFua19ibG9jaycsXFxuICAgIH0pO1xcbiAgICByZXR1cm4gZDtcXG59XFxuJC5leHBvcnRzLkNhdGVnb3J5ID0gQ2F0ZWdvcnk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8yXCIsXCJuYW1lXCI6XCLmkJzntKJcIixcInBhdGhcIjpcInNlYWNoXCIsXCJydWxlXCI6XCJqczogXFxudmFyIGQgPSBbXTtcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2FlcycpKS5ydWxlKTtcXG52YXIgYzY9IFt7dGl0bGU6ICfplb/op4bpopEm55+t6KeG6aKRJuW4luWtkCcsa2V5OiAnNiYxJjMnfV07XFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICAkLnJlcXVpcmUoXFxcIkNhdGVnb3J5XFxcIikuQ2F0ZWdvcnkoYzYsJ2M2Jywnc2Nyb2xsX2J1dHRvbicsZCk7XFxufVxcbmxldCBreT1NWV9VUkwuc3BsaXQoJz0nKVsyXTtcXG5sZXQgcGc9TVlfVVJMLnNwbGl0KCc9JylbMV0ucmVwbGFjZSgnJmt3JywnJyk7XFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTsgLy9sb2codClcXG52YXIgZGF0YTA9J3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwicGpOQ1hUSTBJSWV0bHR5cl8xNzM0MDEwMzk0MzMwXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwiY29kZVxcXCI6XFxcInNlYXJjaFxcXCIsXFxcInR5cGVcXFwiOlxcXCInK2dldE15VmFyKCdjNicsICc2JykrJ1xcXCIsXFxcImtleVxcXCI6XFxcIicra3krJ1xcXCIsXFxcIm1vZFxcXCI6XFxcImluZGV4XFxcIixcXFwicGFnZVxcXCI6XFxcIicrcGcrJ1xcXCJ9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbmlmKGdldE15VmFyKCdjNicsICc2Jyk9PTMpe1xcbmxldCBkYXRhPSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhO1xcbi8vbG9nKGl0ZW0pXFxuZGF0YS5mb3JFYWNoKGRhdGEgPT4ge1xcbiAgICAgICAvL+eUqOaIt1xcbiAgICAgIHZhciB1c2VyPWRhdGEudXNlcjtcXG4gICAgICAgLy/lm77niYdcXG4gICAgICB2YXIgcGhvdG9zPWRhdGEucGhvdG9zO1xcbiAgICAgIC8v5Li76aKYXFxuICAgICAgdmFyIHRvcGljPWRhdGEudG9waWM7XFxuICAgICAgLy/lnIjlrZBcXG4gICAgICB2YXIgZ3JvdXA9ZGF0YS5ncm91cDtcXG4gICAgICBkLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICB0aXRsZTogdXNlci5uaWNrbmFtZSxcXG4gICAgICAgICAgICAgICAgaW1nOiB1c2VyLnRodW1iX3VybCtsYXp5LFxcclxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcImF2YXRhclxcXCIsXFxuICAgICAgICAgICAgICAgIHVybCA6ICdoaWtlcjovL2VtcHR5IyNmeXBhZ2UjIycrdXNlci51dWlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9kZXRhaWwzXFxcIiknLFxcbiAgICAgICB9LHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgICAgIGRlc2M6ZGF0YS5jb250ZW50LFxcbiAgICAgICAgICAgICAgICB1cmw6ICAgICdoaWtlcjovL2VtcHR5IyMnK2RhdGEuaWQrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2RldGFpbDRcXFwiKScsXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtsaW5lVmlzaWJsZTogZmFsc2V9XFxuICAgICAgIH0pO1xcbiAgICAgICBwaG90b3MuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgaW1nOiBkYXRhLm1lZGlhX3VybF9mdWxsK2xhenksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicGljXzNfY2FyZFxcXCIsXFxuICAgICAgICAgICAgICAgIHVybCA6IGRhdGEubWVkaWFfdXJsX2Z1bGwsXFxuICAgICAgIH0pXFxuICAgICAgfSlcXG4gICAgICAgaWYodG9waWMhPW51bGwpe1xcbiAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTp0b3BpYy5uYW1lLFxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5IyNmeXBhZ2UjIycrdG9waWMuaWQrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL3RvcGljXFxcIiknLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgIH0pXFxuICAgICAgfVxcbiAgICAgIGlmKGdyb3VwIT1udWxsKXtcXG4gICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTpncm91cC5uYW1lLFxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5IyNmeXBhZ2UjIycrZ3JvdXAuaWQrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2dyb3VwXFxcIiknLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgIH0pXFxuICAgICAgfVxcbn0pXFxufWVsc2V7XFxubGV0IGxpc3Q9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGE7XFxubG9nKGxpc3QpO1xcbmlmKGxpc3QhPW51bGwpe1xcbmxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgZGVzYzogZGF0YS5jcmVhdGVkX2F0KydcXFxcdFxcXFx0XFxcXHRcXFxcdCcrZGF0YS5kdXJhdGlvblN0cisnICAnK2RhdGEudGFncyxcXG4gICAgICAgICAgICBpbWc6IGRhdGEudGh1bWJJbWcrbGF6eSxcXG4gICAgICAgICAgICB1cmw6IGRhdGEucGxheVVybC5yZXBsYWNlKC9cXFxcL1xcXFwvLipwbGF5XFxcXC4vLCcvL2xvbmcuJyksXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8yXFxcIixcXG4gICAgICAgIH0pXFxuIH0pXFxufVxcbn1cXG5zZXRSZXN1bHQoZClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzJcIixcIm5hbWVcIjpcIummlumhteinhumikeS6jOe6p1wiLFwicGF0aFwiOlwiZXJqaVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQ9W107XFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTsgLy9sb2codClcXG52YXIgdDA9TWF0aC5mbG9vcihEYXRlLm5vdygpKTtcXG52YXIgaWQ9TVlfVVJMLnNwbGl0KCcjIycpWzJdO1xcbnZhciBwZz1NWV9VUkwuc3BsaXQoJyMjJylbMV07XFxudmFyIGMzPSBbe3RpdGxlOiAn5pyA5pawJuacgOeDrScsa2V5OiAnbmV3JmhvdCd9XTtcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgICQucmVxdWlyZShcXFwiQ2F0ZWdvcnlcXFwiKS5DYXRlZ29yeShjMywnYzMnLCdzY3JvbGxfYnV0dG9uJyxkKTtcXG59XFxudmFyIGRhdGEwPSd7XFxcIm9hdXRoX3R5cGVcXFwiOlxcXCJwd2FcXFwiLFxcXCJvYXV0aF9pZFxcXCI6XFxcInBqTkNYVEkwSUlldGx0eXJfMTczNDAxMDM5NDMzMFxcXCIsXFxcInZlcnNpb25cXFwiOlxcXCIzLjAuMFxcXCIsXFxcIm1vZFxcXCI6XFxcImVsZW1lbnRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZ2V0RWxlbWVudEl0ZW1ieUlkXFxcIixcXFwiaWRcXFwiOicraWQrJyxcXFwicGFnZVxcXCI6JytwZysnLFxcXCJ0eXBlXFxcIjpcXFwiJytnZXRNeVZhcignYzMnLCAnbmV3JykrJ1xcXCJ9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbmxldCBsaXN0PSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhLmxpc3Q7XFxuLy9sb2cobGlzdCk7XFxuaWYobGlzdCE9bnVsbCl7XFxubGlzdC5mb3JFYWNoKGRhdGEgPT4ge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXG4gICAgICAgICAgICBkZXNjOiBkYXRhLmNyZWF0ZWRfYXQrJ1xcXFx0XFxcXHRcXFxcdFxcXFx0JytkYXRhLmR1cmF0aW9uU3RyKycgICcrZGF0YS50YWdzLFxcbiAgICAgICAgICAgIGltZzogZGF0YS50aHVtYkltZytsYXp5LFxcbiAgICAgICAgICAgIHVybDogZGF0YS5wbGF5VXJsLnJlcGxhY2UoL1xcXFwvXFxcXC8uKnBsYXlcXFxcLi8sJy8vbG9uZy4nKVxcbiAgICAgICAgfSlcXG4gfSlcXG59XFxuc2V0UmVzdWx0KGQpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpppbpobXop4bpopFcIixcInBhdGhcIjpcInZpZGVvXCIsXCJydWxlXCI6XCJqczpcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2FlcycpKS5ydWxlKTtcXG52YXIgYzI9IFt7dGl0bGU6ICfmjqjojZAm55+t6KeG6aKRJueDreeCuSbmnIDmlrAm5oqW6Zi05Y6f5YibJuS5sSDkvKbmjaLlprsm5Zu95Lqn5a6a5Yi2JuaXpemfqSbpu5Hmlpkm572R6buEJuWQjOWfjibmmpfnvZEnLGtleTogJzEmNjYmNiY0JjImMTEmMyYxMCY3JjgmNSYxMid9XTtcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgICQucmVxdWlyZShcXFwiQ2F0ZWdvcnlcXFwiKS5DYXRlZ29yeShjMiwnYzInLCdzY3JvbGxfYnV0dG9uJyxkKTtcXG59XFxuaWYoZ2V0TXlWYXIoJ2MyJywgJzEnKT09Mil7XFxudmFyIGRhdGEwID0gJ3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwicGpOQ1hUSTBJSWV0bHR5cl8xNzM0MDEwMzk0MzMwXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwibW9kXFxcIjpcXFwiZWxlbWVudFxcXCIsXFxcImNvZGVcXFwiOlxcXCJnZXRDb25zdHJ1Y3RCeUlkXFxcIixcXFwicGFnZVxcXCI6JytwZysnLFxcXCJpZFxcXCI6JytnZXRNeVZhcignYzInLCAnMScpKyd9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbi8vbG9nKGh0bWwyKVxcbmxldCBkYXRhPSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhO1xcbi8vbG9nKGRhdGEpXFxuZGF0YS5mb3JFYWNoKGRhdGEgPT4ge1xcbmlmKGRhdGEuY29udGVudF90eXBlIT0xMSl7XFxudmFyIGxpc3Q9ZGF0YS5saXN0O1xcbi8vbG9nKGxpc3QpO1xcbmxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxyXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLm5pY2tuYW1lLFxcbiAgICAgICAgICAgICAgICBpbWc6IGRhdGEudGh1bWIrbGF6eSxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kXzRcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmwgOiAgJ2hpa2VyOi8vZW1wdHkjI2Z5cGFnZSMjJytkYXRhLnV1aWQrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2RldGFpbDVcXFwiKScsXFxuIH0pXFxufSlcXG59XFxufSlcXG59ZWxzZSBpZihnZXRNeVZhcignYzInLCAnMScpPT00KXtcXG5pZihwZz09MSl7XFxudmFyIGRhdGEwID0gJ3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwicGpOQ1hUSTBJSWV0bHR5cl8xNzM0MDEwMzk0MzMwXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwibW9kXFxcIjpcXFwiZWxlbWVudFxcXCIsXFxcImNvZGVcXFwiOlxcXCJnZXRDb25zdHJ1Y3RCeUlkXFxcIixcXFwicGFnZVxcXCI6JytwZysnLFxcXCJpZFxcXCI6JytnZXRNeVZhcignYzInLCAnMScpKyd9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbi8vbG9nKGh0bWwyKVxcbmxldCBkYXRhPSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhO1xcbi8vbG9nKGRhdGEpXFxuZGF0YS5mb3JFYWNoKGRhdGEgPT4ge1xcbmlmKGRhdGEuY29udGVudF90eXBlIT0xMSl7XFxudmFyIGxpc3Q9ZGF0YS5saXN0O1xcbi8vbG9nKGxpc3QpO1xcbmxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgZGVzYzogZGF0YS5jcmVhdGVkX2F0KydcXFxcdFxcXFx0XFxcXHRcXFxcdCcrZGF0YS5kdXJhdGlvblN0cisnICAnK2RhdGEudGFncyxcXG4gICAgICAgICAgICBpbWc6IGRhdGEudGh1bWJJbWcrbGF6eSxcXG4gICAgICAgICAgICB1cmw6IGRhdGEucGxheVVybC5yZXBsYWNlKC9cXFxcL1xcXFwvLipwbGF5XFxcXC4vLCcvL2xvbmcuJylcXG4gICAgICAgIH0pXFxuIH0pXFxufVxcbn0pXFxufWVsc2V7XFxudmFyIGRhdGEwID0gJ3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwicGpOQ1hUSTBJSWV0bHR5cl8xNzM0MDEwMzk0MzMwXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwibW9kXFxcIjpcXFwiZWxlbWVudFxcXCIsXFxcImNvZGVcXFwiOlxcXCJnZXRFbGVtZW50SXRlbWJ5SWRcXFwiLFxcXCJwYWdlXFxcIjonK3BnKycsXFxcImlkXFxcIjozM30nO1xcbnZhciB1cmwgPSAnaHR0cHM6Ly96aXZzc3kuaHppeWh1eS5jb20vcHdhLnBocCc7XFxuLy9sb2codXJsKVxcbmxldCBodG1sMiA9IHBvc3QodXJsLGRhdGEwKTsgXFxuLy9sb2coaHRtbDIpXFxubGV0IGRhdGE9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGEubGlzdDtcXG5kYXRhLmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcbiAgICAgICAgICAgIGRlc2M6IGRhdGEuY3JlYXRlZF9hdCsnXFxcXHRcXFxcdFxcXFx0XFxcXHQnK2RhdGEuZHVyYXRpb25TdHIrJyAgJytkYXRhLnRhZ3MsXFxuICAgICAgICAgICAgaW1nOiBkYXRhLnRodW1iSW1nK2xhenksXFxuICAgICAgICAgICAgdXJsOiBkYXRhLnBsYXlVcmwucmVwbGFjZSgvXFxcXC9cXFxcLy4qcGxheVxcXFwuLywnLy9sb25nLicpLFxcbiAgICAgICAgfSlcXG4gfSlcXG59XFxufWVsc2UgaWYoZ2V0TXlWYXIoJ2MyJywgJzEnKT09OCl7XFxudmFyIGRhdGEwID0gJ3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwicGpOQ1hUSTBJSWV0bHR5cl8xNzM0MDEwMzk0MzMwXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwibW9kXFxcIjpcXFwiYWN0b3JcXFwiLFxcXCJjb2RlXFxcIjpcXFwiaW5kZXhcXFwiLFxcXCJwYWdlXFxcIjonK3BnKyd9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbi8vbG9nKGh0bWwyKVxcbmxldCBkYXRhPSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhO1xcbi8vbG9nKGRhdGEpXFxuZGF0YS5mb3JFYWNoKGRhdGEgPT4ge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZGF0YS5uYW1lLFxcbiAgICAgICAgICAgIGRlc2M6IGRhdGEuYnJpZWYsXFxuICAgICAgICAgICAgaW1nOiBkYXRhLmNvdmVyK2xhenksXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMnK2RhdGEuaWQrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2RldGFpbDJcXFwiKScsXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY1xcXCIsXFxuICAgICAgICB9KVxcbn0pXFxufWVsc2UgaWYoZ2V0TXlWYXIoJ2MyJywgJzEnKT09NjYpe1xcbiQucmVxdWlyZShcXFwibWluaVxcXCIpXFxufWVsc2V7XFxudmFyIGRhdGEwID0gJ3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwicGpOQ1hUSTBJSWV0bHR5cl8xNzM0MDEwMzk0MzMwXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwibW9kXFxcIjpcXFwiZWxlbWVudFxcXCIsXFxcImNvZGVcXFwiOlxcXCJnZXRDb25zdHJ1Y3RCeUlkXFxcIixcXFwicGFnZVxcXCI6JytwZysnLFxcXCJpZFxcXCI6JytnZXRNeVZhcignYzInLCAnMScpKyd9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbmxldCBodG1sMiA9IHBvc3QodXJsLGRhdGEwKTsgXFxubGV0IGRhdGE9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGE7XFxuZGF0YS5mb3JFYWNoKGRhdGEgPT4ge1xcbmlmKChkYXRhLmNvbnRlbnRfdHlwZSE9MTEpJihkYXRhLmNvbnRlbnRfdHlwZSE9OCkpe1xcbiAgICAgICBkLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmwgOiAgJ2hpa2VyOi8vZW1wdHkjI2Z5cGFnZSMjJytkYXRhLmlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9lcmppXFxcIiknLFxcbn0pXFxudmFyIGxpc3Q9ZGF0YS5saXN0O1xcbi8vbG9nKGxpc3QpO1xcbmxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgZGVzYzogZGF0YS5jcmVhdGVkX2F0KydcXFxcdFxcXFx0XFxcXHRcXFxcdCcrZGF0YS5kdXJhdGlvblN0cisnICAnK2RhdGEudGFncyxcXG4gICAgICAgICAgICBpbWc6IGRhdGEudGh1bWJJbWcrbGF6eSxcXG4gICAgICAgICAgICB1cmw6IGRhdGEucGxheVVybC5yZXBsYWNlKC9cXFxcL1xcXFwvLipwbGF5XFxcXC4vLCcvL2xvbmcuJyksXFxuICAgICAgICB9KVxcbiB9KVxcbn1cXG59KVxcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIummlumhtVwiLFwicGF0aFwiOlwiaG9tZVwiLFwicnVsZVwiOlwianM6XFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICBkLnB1c2goe8KgwqDCoFxcbiAgICAgICAgdGl0bGU6IFxcXCLmkJzntKJcXFwiLFxcbiAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL3NlYWNoP3BhZ2U9ZnlwYWdlJmt3PVxcXCIgKyBpbnB1dFxcbiAgICB9KSxcXG4gICAgICAgIMKgwqDCoGRlc2M6IFxcXCLor7fovpPlhaXmkJzntKLlhbPplK7or41cXFwiLFxcbiAgICAgICAgwqDCoMKgY29sX3R5cGU6IFxcXCJpbnB1dFxcXCIsXFxuICAgIH0pXFxufTtcXG5cXG52YXIgcGc9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJyk7XFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTsgLy9sb2codClcXG52YXIgdDA9TWF0aC5mbG9vcihEYXRlLm5vdygpKTtcXG52YXIgYzE9IFt7dGl0bGU6ICfnsr7pgIkm5Y6f5YibJuekvuWMuibng63ngrkmdXDkuLsnLGtleTogJzEmMiYzJjQmNScsaW1nOidodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy90dWJpYW8vbWFpbi9tb3ZpZS8xMTEuc3ZnJmh0dHBzOi8vZ2hwcm94eS5uZXQvaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xzMTI1NzgxMDAzL3R1Ymlhby9tYWluL21vdmllLzExMi5zdmcmaHR0cHM6Ly9naHByb3h5Lm5ldC9odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbHMxMjU3ODEwMDMvdHViaWFvL21haW4vbW92aWUvMTEzLnN2ZyZodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy90dWJpYW8vbWFpbi9tb3ZpZS8xMTQuc3ZnJmh0dHBzOi8vZ2hwcm94eS5uZXQvaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xzMTI1NzgxMDAzL3R1Ymlhby9tYWluL21vdmllLzEyMi5zdmcnfV07XFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICAkLnJlcXVpcmUoXFxcIkNhdGVnb3J5XFxcIikuQ2F0ZWdvcnkoYzEsJ2MxJywnaWNvbl81JyxkKTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2xpbmUnLFxcbn0se1xcbiAgICBjb2xfdHlwZTogJ2JpZ19ibGFua19ibG9jaycsXFxufVxcbix7XFxuICAgIGNvbF90eXBlOiAnYmlnX2JsYW5rX2Jsb2NrJyxcXG59KTtcXG59XFxudmFyIOWIhuexuz1nZXRNeVZhcignYzEnLCAnMScpO1xcbmlmKOWIhuexuz09MSl7XFxuJC5yZXF1aXJlKFxcXCJ2aWRlb1xcXCIpXFxufWVsc2UgaWYo5YiG57G7PT0yKXtcXG4kLnJlcXVpcmUoXFxcIm9yZ1xcXCIpXFxufWVsc2UgaWYo5YiG57G7PT0zKXtcXG4kLnJlcXVpcmUoXFxcIm5ld3NcXFwiKVxcbn1lbHNlIGlmKOWIhuexuz09NCl7XFxuJC5yZXF1aXJlKFxcXCJob3RcXFwiKVxcbn1lbHNlIGlmKOWIhuexuz09NSl7XFxuJC5yZXF1aXJlKFxcXCJ1cFxcXCIpXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi54Ot54K5XCIsXCJwYXRoXCI6XCJob3RcIixcInJ1bGVcIjpcImpzOlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xcbnZhciBkYXRhMCA9ICd7XFxcIm9hdXRoX3R5cGVcXFwiOlxcXCJwd2FcXFwiLFxcXCJvYXV0aF9pZFxcXCI6XFxcInBqTkNYVEkwSUlldGx0eXJfMTczNDAxMDM5NDMzMFxcXCIsXFxcInZlcnNpb25cXFwiOlxcXCIzLjAuMFxcXCIsXFxcIm1vZFxcXCI6XFxcImhvdFxcXCIsXFxcImNvZGVcXFwiOlxcXCJpbmRleFxcXCJ9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbmxldCBob3Q9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGEuaG90O1xcbmxldCBsaXN0PSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhLmZpbmQ7XFxuLy9sb2cobGlzdClcXG5ob3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRhdGEubmFtZSxcXG4gICAgICAgICAgICAgICAgaW1nOiBkYXRhLmltZ191cmwrbGF6eSxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8zXFxcIixcXG4gICAgICAgICAgICAgICAgdXJsIDogICdoaWtlcjovL2VtcHR5IyNmeXBhZ2UjIycrZGF0YS50eXBlKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9lcmppMjJcXFwiKScsXFxufSlcXG59KVxcbmxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRhdGEubmFtZSxcXG4gICAgICAgICAgICAgICAgaW1nOiBkYXRhLmltZ191cmwrbGF6eSxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8zXFxcIixcXG4gICAgICAgICAgICAgICAgdXJsIDogICdoaWtlcjovL2VtcHR5IyNmeXBhZ2UjIycrZGF0YS5uYW1lKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9lcmppMlxcXCIpJyxcXG59KVxcbn0pXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8yXCIsXCJuYW1lXCI6XCLor6bmg4VcIixcInBhdGhcIjpcImRldGFpbFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQ9W107XFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTsgLy9sb2codClcXG52YXIgdDA9TWF0aC5mbG9vcihEYXRlLm5vdygpKTtcXG52YXIgaWQ9TVlfVVJMLnNwbGl0KCcjIycpWzJdO1xcbnZhciBwZz1NWV9VUkwuc3BsaXQoJyMjJylbMV07XFxudmFyIGRhdGEwPSd7XFxcIm9hdXRoX3R5cGVcXFwiOlxcXCJwd2FcXFwiLFxcXCJvYXV0aF9pZFxcXCI6XFxcInBqTkNYVEkwSUlldGx0eXJfMTczNDAxMDM5NDMzMFxcXCIsXFxcInZlcnNpb25cXFwiOlxcXCIzLjAuMFxcXCIsXFxcImNvZGVcXFwiOlxcXCJkZXRhaWxcXFwiLFxcXCJpZFxcXCI6JytpZCsnLFxcXCJtb2RcXFwiOlxcXCJjb2xsZWN0aW9uXFxcIixcXFwicGFnZVxcXCI6JytwZysnfSc7XFxudmFyIHVybCA9ICdodHRwczovL3ppdnNzeS5oeml5aHV5LmNvbS9wd2EucGhwJztcXG4vL2xvZyh1cmwpXFxubGV0IGh0bWwyID0gcG9zdCh1cmwsZGF0YTApOyBcXG4vL2xvZyhodG1sMilcXG5sZXQgbGlzdD0gSlNPTi5wYXJzZShodG1sMikuZGF0YS5saXN0O1xcbmlmKGxpc3QhPW51bGwpe1xcbmxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgZGVzYzogZGF0YS5jcmVhdGVkX2F0KydcXFxcdFxcXFx0XFxcXHRcXFxcdCcrZGF0YS5kdXJhdGlvblN0cisnICAnK2RhdGEudGFncyxcXG4gICAgICAgICAgICBpbWc6IGRhdGEudGh1bWJJbWcrbGF6eSxcXG4gICAgICAgICAgICB1cmw6IGRhdGEucGxheVVybC5yZXBsYWNlKC9cXFxcL1xcXFwvLipwbGF5XFxcXC4vLCcvL2xvbmcuJyksXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8zXFxcIixcXG4gICAgICAgIH0pXFxuIH0pXFxufVxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfMlwiLFwibmFtZVwiOlwi55+t6KeG6aKRXCIsXCJwYXRoXCI6XCJtaW5pXCIsXCJydWxlXCI6XCJqczpcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2FlcycpKS5ydWxlKTtcXG52YXIgZGF0YTA9J3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwicGpOQ1hUSTBJSWV0bHR5cl8xNzM0MDEwMzk0MzMwXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwibW9kXFxcIjpcXFwiaW5kZXhcXFwiLFxcXCJjb2RlXFxcIjpcXFwiaG9tZVxcXCIsXFxcInBhZ2VcXFwiOicrcGcrJyxcXFwibGltaXRcXFwiOjIwfSc7XFxudmFyIHVybCA9ICdodHRwczovL3ppdnNzeS5oeml5aHV5LmNvbS9wd2EucGhwJztcXG4vL2xvZyh1cmwpXFxubGV0IGh0bWwyID0gcG9zdCh1cmwsZGF0YTApOyBcXG5sZXQgbGlzdD0gSlNPTi5wYXJzZShodG1sMikuZGF0YTtcXG4vL2xvZyhsaXN0KTtcXG5pZihsaXN0IT1udWxsKXtcXG5saXN0LmZvckVhY2goZGF0YSA9PiB7XFxuICAgICBpZihkYXRhWydpc19hZHMnXT09ZmFsc2Upe1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXG4gICAgICAgICAgICBkZXNjOiBkYXRhLmNyZWF0ZWRfYXQrJ1xcXFx0XFxcXHRcXFxcdFxcXFx0JytkYXRhLmR1cmF0aW9uU3RyKycgICcrZGF0YS50YWdzLFxcbiAgICAgICAgICAgIGltZzogZGF0YS50aHVtYkltZytsYXp5LFxcbiAgICAgICAgICAgIHVybDogZGF0YS5wbGF5VXJsLnJlcGxhY2UoL1xcXFwvXFxcXC8uKnBsYXlcXFxcLi8sJy8vbG9uZy4nKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcIm1vdmllXzJcXFwiLFxcbiAgICAgICAgfSlcXG59XFxuIH0pXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Y6f5YibXCIsXCJwYXRoXCI6XCJvcmdcIixcInJ1bGVcIjpcImpzOlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xcbnZhciBkYXRhMCA9ICd7XFxcIm9hdXRoX3R5cGVcXFwiOlxcXCJwd2FcXFwiLFxcXCJvYXV0aF9pZFxcXCI6XFxcInBqTkNYVEkwSUlldGx0eXJfMTczNDAxMDM5NDMzMFxcXCIsXFxcInZlcnNpb25cXFwiOlxcXCIzLjAuMFxcXCIsXFxcIm1vZFxcXCI6XFxcImF1dGhvclxcXCIsXFxcImNvZGVcXFwiOlxcXCJjb2xsZWN0UmVjb21tZWRcXFwiLFxcXCJ0eXBlXFxcIjoxLFxcXCJwYWdlXFxcIjonK3BnKycsXFxcImxpbWl0XFxcIjoyMH0nO1xcbnZhciB1cmwgPSAnaHR0cHM6Ly96aXZzc3kuaHppeWh1eS5jb20vcHdhLnBocCc7XFxuLy9sb2codXJsKVxcbmxldCBodG1sMiA9IHBvc3QodXJsLGRhdGEwKTsgXFxubGV0IGl0ZW09IEpTT04ucGFyc2UoaHRtbDIpLmRhdGEuaXRlbTtcXG4vL2xvZyhpdGVtKVxcbml0ZW0uZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgdmFyIHVwPWRhdGEudXNlcjtcXG4gICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHVwLm5pY2tuYW1lLFxcbiAgICAgICAgICAgICAgICBpbWc6IHVwLnRodW1iK2xhenksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIixcXG4gICAgICAgICAgICAgICAgdXJsIDogICdoaWtlcjovL2VtcHR5IyNmeXBhZ2UjIycrZGF0YS5pZCsnQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZGV0YWlsXFxcIiknLFxcbn0pXFxudmFyIGxpc3Q9ZGF0YS52aWRlb19saXN0cztcXG4vL2xvZyhsaXN0KTtcXG5saXN0LmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcbiAgICAgICAgICAgIGRlc2M6IGRhdGEuY3JlYXRlZF9hdCsnXFxcXHRcXFxcdFxcXFx0XFxcXHQnK2RhdGEuZHVyYXRpb25TdHIrJyAgJytkYXRhLnRhZ3MsXFxuICAgICAgICAgICAgaW1nOiBkYXRhLnRodW1iSW1nK2xhenksXFxuICAgICAgICAgICAgdXJsOiBkYXRhLnBsYXlVcmwucmVwbGFjZSgvXFxcXC9cXFxcLy4qcGxheVxcXFwuLywnLy9sb25nLicpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwibW92aWVfM1xcXCIsXFxuICAgICAgICB9KVxcbiB9KVxcbn0pXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8yXCIsXCJuYW1lXCI6XCLng63ngrnkuoznuqdcIixcInBhdGhcIjpcImVyamkyXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZD1bXTtcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2FlcycpKS5ydWxlKTtcXG52YXIgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApOyAvL2xvZyh0KVxcbnZhciB0MD1NYXRoLmZsb29yKERhdGUubm93KCkpO1xcbnZhciBpZD1NWV9VUkwuc3BsaXQoJyMjJylbMl07XFxudmFyIHBnPU1ZX1VSTC5zcGxpdCgnIyMnKVsxXTtcXG52YXIgYzQ9IFt7dGl0bGU6ICfmnIDmlrAm5pyA54OtJyxrZXk6ICduZXcmaG90J31dO1xcbmlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgJC5yZXF1aXJlKFxcXCJDYXRlZ29yeVxcXCIpLkNhdGVnb3J5KGM0LCdjNCcsJ3Njcm9sbF9idXR0b24nLGQpO1xcbn1cXG52YXIgZGF0YTA9J3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwicGpOQ1hUSTBJSWV0bHR5cl8xNzM0MDEwMzk0MzMwXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwiY29kZVxcXCI6XFxcImxpc3RCeVRhZ1xcXCIsXFxcInRhZ3NcXFwiOlxcXCInK2lkKydcXFwiLFxcXCJtb2RcXFwiOlxcXCJpbmRleFxcXCIsXFxcInBhZ2VcXFwiOicrcGcrJyxcXFwidHlwZVxcXCI6XFxcIicrZ2V0TXlWYXIoJ2M0JywgJ25ldycpKydcXFwifSc7XFxudmFyIHVybCA9ICdodHRwczovL3ppdnNzeS5oeml5aHV5LmNvbS9wd2EucGhwJztcXG4vL2xvZyh1cmwpXFxubGV0IGh0bWwyID0gcG9zdCh1cmwsZGF0YTApOyBcXG5sZXQgbGlzdD0gSlNPTi5wYXJzZShodG1sMikuZGF0YS5pdGVtcztcXG4vL2xvZyhsaXN0KTtcXG5pZihsaXN0IT1udWxsKXtcXG5saXN0LmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcbiAgICAgICAgICAgIGRlc2M6IGRhdGEuY3JlYXRlZF9hdCsnXFxcXHRcXFxcdFxcXFx0XFxcXHQnK2RhdGEuZHVyYXRpb25TdHIrJyAgJytkYXRhLnRhZ3MsXFxuICAgICAgICAgICAgaW1nOiBkYXRhLnRodW1iSW1nK2xhenksXFxuICAgICAgICAgICAgdXJsOiBkYXRhLnBsYXlVcmwucmVwbGFjZSgvXFxcXC9cXFxcLy4qcGxheVxcXFwuLywnLy9sb25nLicpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwibW92aWVfMlxcXCIsXFxuICAgICAgICB9KVxcbiB9KVxcbn1cXG5zZXRSZXN1bHQoZClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcInVw5Li7XCIsXCJwYXRoXCI6XCJ1cFwiLFwicnVsZVwiOlwianM6XFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxudmFyIGM1PSBbe3RpdGxlOiAn5o6o6I2QJuasoui/jibmnIDmlrAnLGtleTogJzImMyY0J31dO1xcbmlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgJC5yZXF1aXJlKFxcXCJDYXRlZ29yeVxcXCIpLkNhdGVnb3J5KGM1LCdjNScsJ3Njcm9sbF9idXR0b24nLGQpO1xcbn1cXG52YXIgZGF0YTAgPSAne1xcXCJvYXV0aF90eXBlXFxcIjpcXFwicHdhXFxcIixcXFwib2F1dGhfaWRcXFwiOlxcXCJwak5DWFRJMElJZXRsdHlyXzE3MzQwMTAzOTQzMzBcXFwiLFxcXCJ2ZXJzaW9uXFxcIjpcXFwiMy4wLjBcXFwiLFxcXCJtb2RcXFwiOlxcXCJpbmRleFxcXCIsXFxcImNvZGVcXFwiOlxcXCJyYW5rTGlzdHNcXFwiLFxcXCJ0eXBlXFxcIjonK2dldE15VmFyKCdjNScsICcyJykrJyxcXFwicGFnZVxcXCI6JytwZysnLFxcXCJsaW1pdFxcXCI6MjB9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbi8vbG9nKGh0bWwyKVxcbmxldCBpdGVtPSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhO1xcbi8vbG9nKGl0ZW0pXFxuaXRlbS5mb3JFYWNoKGRhdGEgPT4ge1xcbiAgICAgICBkLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS5uaWNrbmFtZSxcXG4gICAgICAgICAgICAgICAgaW1nOiBkYXRhLnRodW1iK2xhenksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiaWNvbl9yb3VuZF80XFxcIixcXG4gICAgICAgICAgICAgICAgdXJsIDogICdoaWtlcjovL2VtcHR5IyNmeXBhZ2UjIycrZGF0YS51dWlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9kZXRhaWw1XFxcIiknLFxcbn0pXFxufSlcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzJcIixcIm5hbWVcIjpcIueDreeCueS6jOe6pzJcIixcInBhdGhcIjpcImVyamkyMlwiLFwicnVsZVwiOlwianM6XFxudmFyIGQ9W107XFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTsgLy9sb2codClcXG52YXIgdDA9TWF0aC5mbG9vcihEYXRlLm5vdygpKTtcXG52YXIgaWQ9TVlfVVJMLnNwbGl0KCcjIycpWzJdO1xcbnZhciBwZz1NWV9VUkwuc3BsaXQoJyMjJylbMV07XFxudmFyIGRhdGEwPSd7XFxcIm9hdXRoX3R5cGVcXFwiOlxcXCJwd2FcXFwiLFxcXCJvYXV0aF9pZFxcXCI6XFxcInBqTkNYVEkwSUlldGx0eXJfMTczNDAxMDM5NDMzMFxcXCIsXFxcInZlcnNpb25cXFwiOlxcXCIzLjAuMFxcXCIsXFxcIm1vZFxcXCI6XFxcImluZGV4XFxcIixcXFwiY29kZVxcXCI6XFxcImhvdExpc3RzXFxcIixcXFwidHlwZVxcXCI6XFxcIicraWQrJ1xcXCIsXFxcInBhZ2VcXFwiOicrcGcrJ30nO1xcbnZhciB1cmwgPSAnaHR0cHM6Ly96aXZzc3kuaHppeWh1eS5jb20vcHdhLnBocCc7XFxuLy9sb2codXJsKVxcbmxldCBodG1sMiA9IHBvc3QodXJsLGRhdGEwKTsgXFxubGV0IGxpc3Q9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGE7XFxuLy9sb2cobGlzdCk7XFxuaWYobGlzdCE9bnVsbCl7XFxubGlzdC5mb3JFYWNoKGRhdGEgPT4ge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXG4gICAgICAgICAgICBkZXNjOiBkYXRhLmNyZWF0ZWRfYXQrJ1xcXFx0XFxcXHRcXFxcdFxcXFx0JytkYXRhLmR1cmF0aW9uU3RyKycgICcrZGF0YS50YWdzLFxcbiAgICAgICAgICAgIGltZzogZGF0YS50aHVtYkltZytsYXp5LFxcbiAgICAgICAgICAgIHVybDogZGF0YS5wbGF5VXJsLnJlcGxhY2UoL1xcXFwvXFxcXC8uKnBsYXlcXFxcLi8sJy8vbG9uZy4nKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcIm1vdmllXzJcXFwiLFxcbiAgICAgICAgfSlcXG4gfSlcXG59XFxuc2V0UmVzdWx0KGQpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8yXCIsXCJuYW1lXCI6XCLmvJTlkZjor6bmg4VcIixcInBhdGhcIjpcImRldGFpbDJcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkPVtdO1xcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xcbnZhciB0ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7IC8vbG9nKHQpXFxudmFyIHQwPU1hdGguZmxvb3IoRGF0ZS5ub3coKSk7XFxudmFyIGlkPU1ZX1VSTC5zcGxpdCgnIyMnKVsyXTtcXG52YXIgcGc9TVlfVVJMLnNwbGl0KCcjIycpWzFdO1xcbnZhciBkYXRhMD0ne1xcXCJvYXV0aF90eXBlXFxcIjpcXFwicHdhXFxcIixcXFwib2F1dGhfaWRcXFwiOlxcXCJwak5DWFRJMElJZXRsdHlyXzE3MzQwMTAzOTQzMzBcXFwiLFxcXCJ2ZXJzaW9uXFxcIjpcXFwiMy4wLjBcXFwiLFxcXCJtb2RcXFwiOlxcXCJhY3RvclxcXCIsXFxcImNvZGVcXFwiOlxcXCJ2aWRlb3NcXFwiLFxcXCJwYWdlXFxcIjonK3BnKycsXFxcImlkXFxcIjonK2lkKyd9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbi8vbG9nKGh0bWwyKVxcbmxldCBsaXN0PSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhO1xcbmlmKGxpc3QhPW51bGwpe1xcbmxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgZGVzYzogZGF0YS5jcmVhdGVkX2F0KydcXFxcdFxcXFx0XFxcXHRcXFxcdCcrZGF0YS5kdXJhdGlvblN0cisnICAnK2RhdGEudGFncyxcXG4gICAgICAgICAgICBpbWc6IGRhdGEudGh1bWJJbWcrbGF6eSxcXG4gICAgICAgICAgICB1cmw6IGRhdGEucGxheVVybC5yZXBsYWNlKC9cXFxcL1xcXFwvLipwbGF5XFxcXC4vLCcvL2xvbmcuJyksXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8yXFxcIixcXG4gICAgICAgIH0pXFxuIH0pXFxufVxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfMlwiLFwibmFtZVwiOlwi5L2c5ZOB6K+m5oOFXCIsXCJwYXRoXCI6XCJkZXRhaWwzXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZD1bXTtcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2FlcycpKS5ydWxlKTtcXG52YXIgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApOyAvL2xvZyh0KVxcbnZhciB0MD1NYXRoLmZsb29yKERhdGUubm93KCkpO1xcbnZhciBpZD1NWV9VUkwuc3BsaXQoJyMjJylbMl07XFxudmFyIHBnPU1ZX1VSTC5zcGxpdCgnIyMnKVsxXTtcXG52YXIg5L2c5ZOBPSBbe3RpdGxlOiAn5L2c5ZOBJuWWnOasoicsa2V5OiAndmlkZW9zJmxpa2VzJ31dO1xcbmlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgJC5yZXF1aXJlKFxcXCJDYXRlZ29yeVxcXCIpLkNhdGVnb3J5KOS9nOWTgSwn5L2c5ZOBJywnc2Nyb2xsX2J1dHRvbicsZCk7XFxufVxcbnZhciBkYXRhMD0ne1xcXCJvYXV0aF90eXBlXFxcIjpcXFwicHdhXFxcIixcXFwib2F1dGhfaWRcXFwiOlxcXCJwak5DWFRJMElJZXRsdHlyXzE3MzQwMTAzOTQzMzBcXFwiLFxcXCJ2ZXJzaW9uXFxcIjpcXFwiMy4wLjBcXFwiLFxcXCJtb2RcXFwiOlxcXCJ1c2VyXFxcIixcXFwiY29kZVxcXCI6XFxcIicrZ2V0TXlWYXIoJ+S9nOWTgScsJ3ZpZGVvcycpKydcXFwiLFxcXCJpc0FsbFxcXCI6ZmFsc2UsXFxcInBhZ2VcXFwiOicrcGcrJyxcXFwidXVpZFxcXCI6XFxcIicraWQrJ1xcXCJ9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbmxldCBsaXN0PSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhO1xcbi8vbG9nKGxpc3QpO1xcbmlmKGxpc3QhPW51bGwpe1xcbmxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgZGVzYzogZGF0YS5jcmVhdGVkX2F0KydcXFxcdFxcXFx0XFxcXHRcXFxcdCcrZGF0YS5kdXJhdGlvblN0cisnICAnK2RhdGEudGFncyxcXG4gICAgICAgICAgICBpbWc6IGRhdGEudGh1bWJJbWcrbGF6eSxcXG4gICAgICAgICAgICB1cmw6IGRhdGEucGxheVVybC5yZXBsYWNlKC9cXFxcL1xcXFwvLipwbGF5XFxcXC4vLCcvL2xvbmcuJyksXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8zXFxcIixcXG4gICAgICAgIH0pXFxuIH0pXFxufVxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi56S+5Yy6XCIsXCJwYXRoXCI6XCJuZXdzXCIsXCJydWxlXCI6XCJqczpcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2FlcycpKS5ydWxlKTtcXG52YXIg56S+5Yy6PSBbe3RpdGxlOiAn5pyA5pawJuacgOeDrSbnsr7pgIkm6KeG6aKRJyxrZXk6ICduZXcmaG90JmVzc2VuY2UmdmlkZW8nfV07XFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICAkLnJlcXVpcmUoXFxcIkNhdGVnb3J5XFxcIikuQ2F0ZWdvcnko56S+5Yy6LCfnpL7ljLonLCdzY3JvbGxfYnV0dG9uJyxkKTtcXG59XFxudmFyIGRhdGEwID0gJ3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwiWW4xZEdjQ3RxeEx5a1Eycl8xNzM0MDkxOTc1NTE0XFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwibW9kXFxcIjpcXFwibmV3c1xcXCIsXFxcImNvZGVcXFwiOlxcXCJsaXN0TmV3c1xcXCIsXFxcInBhZ2VcXFwiOicrcGcrJyxcXFwidHlwZVxcXCI6XFxcIicrZ2V0TXlWYXIoJ+ekvuWMuicsJ25ldycpKydcXFwifSc7XFxudmFyIHVybCA9ICdodHRwczovL3ppdnNzeS5oeml5aHV5LmNvbS9wd2EucGhwJztcXG4vL2xvZyh1cmwpXFxubGV0IGh0bWwyID0gcG9zdCh1cmwsZGF0YTApOyBcXG4vL2xvZyhodG1sMilcXG5sZXQgZGF0YT0gSlNPTi5wYXJzZShodG1sMikuZGF0YTtcXG4vL2xvZyhpdGVtKVxcbmRhdGEuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgLy/nlKjmiLdcXG4gICAgICB2YXIgdXNlcj1kYXRhLnVzZXI7XFxuICAgICAgIC8v5Zu+54mHXFxuICAgICAgdmFyIHBob3Rvcz1kYXRhLnBob3RvcztcXG4gICAgICAvL+S4u+mimFxcbiAgICAgIHZhciB0b3BpYz1kYXRhLnRvcGljO1xcbiAgICAgIC8v5ZyI5a2QXFxuICAgICAgdmFyIGdyb3VwPWRhdGEuZ3JvdXA7XFxuICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHVzZXIubmlja25hbWUsXFxuICAgICAgICAgICAgICAgIGltZzogdXNlci50aHVtYl91cmwrbGF6eSxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmwgOiAnaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMnK3VzZXIudXVpZCsnQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZGV0YWlsM1xcXCIpJyxcXG4gICAgICAgfSx7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcbiAgICAgICAgICAgICAgICBkZXNjOmRhdGEuY29udGVudCxcXG4gICAgICAgICAgICAgICAgdXJsOiAgICAnaGlrZXI6Ly9lbXB0eSMjJytkYXRhLmlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9kZXRhaWw0XFxcIiknLFxcclxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7bGluZVZpc2libGU6IGZhbHNlfVxcbiAgICAgICB9KTtcXG4gICAgICAgcGhvdG9zLmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGltZzogZGF0YS5tZWRpYV91cmxfZnVsbCtsYXp5LFxcclxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcInBpY18zX2NhcmRcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmwgOiBkYXRhLm1lZGlhX3VybF9mdWxsLFxcbiAgICAgICB9KVxcbiAgICAgIH0pXFxuICAgICAgIGlmKHRvcGljIT1udWxsKXtcXG4gICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6dG9waWMubmFtZSxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMnK3RvcGljLmlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS90b3BpY1xcXCIpJyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICB9KVxcbiAgICAgIH1cXG4gICAgICBpZihncm91cCE9bnVsbCl7XFxuICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6Z3JvdXAubmFtZSxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMnK2dyb3VwLmlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9ncm91cFxcXCIpJyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICB9KVxcbiAgICAgIH1cXG59KVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfMlwiLFwibmFtZVwiOlwi56S+5Yy65LqM57qnXCIsXCJwYXRoXCI6XCJkZXRhaWw0XCIsXCJydWxlXCI6XCJqczpcXG52YXIgZD1bXTtcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2FlcycpKS5ydWxlKTtcXG52YXIgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApOyAvL2xvZyh0KVxcbnZhciB0MD1NYXRoLmZsb29yKERhdGUubm93KCkpO1xcbnZhciBpZD1NWV9VUkwuc3BsaXQoJyMjJylbMV07XFxudmFyIGRhdGEwPSd7XFxcIm9hdXRoX3R5cGVcXFwiOlxcXCJwd2FcXFwiLFxcXCJvYXV0aF9pZFxcXCI6XFxcInBqTkNYVEkwSUlldGx0eXJfMTczNDAxMDM5NDMzMFxcXCIsXFxcInZlcnNpb25cXFwiOlxcXCIzLjAuMFxcXCIsXFxcImNvZGVcXFwiOlxcXCJkZXRhaWxcXFwiLFxcXCJpZFxcXCI6JytpZCsnLFxcXCJtb2RcXFwiOlxcXCJuZXdzXFxcIixcXFwibmV3c19pZFxcXCI6JytpZCsnfSc7XFxudmFyIHVybCA9ICdodHRwczovL3ppdnNzeS5oeml5aHV5LmNvbS9wd2EucGhwJztcXG4vL2xvZyh1cmwpXFxubGV0IGh0bWwyID0gcG9zdCh1cmwsZGF0YTApOyBcXG5sZXQgZGF0YT0gSlNPTi5wYXJzZShodG1sMikuZGF0YS5kZXRhaWw7XFxuICAgICAgIC8v55So5oi3XFxuICAgICAgdmFyIHVzZXI9ZGF0YS51c2VyO1xcbiAgICAgICAvL+WbvueJh1xcbiAgICAgIHZhciBwaG90b3M9ZGF0YS5waG90b3M7XFxuICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHVzZXIubmlja25hbWUsXFxuICAgICAgICAgICAgICAgIGltZzogdXNlci50aHVtYl91cmwrbGF6eSxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmwgOiAnaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMnK3VzZXIudXVpZCsnQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZGV0YWlsM1xcXCIpJyxcXG4gICAgICAgfSx7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLmNvbnRlbnQsXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0JyxcXG4gICAgICAgfSk7XFxuICAgICAgIGlmKGRhdGEudmlkZW9zLmxlbmd0aCAhPSAwKXtcXG4gICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiAn6KeG6aKR4pa277iPJyxcXG4gICAgICAgICAgICBpbWc6ZGF0YS52aWRlb3NbMF0uY292ZXJfdXJsK2xhenksXFxuICAgICAgICAgICAgdXJsOiBkYXRhLnZpZGVvc1swXVsnbWVkaWFfdXJsX2Z1bGwnXSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzInLFxcbiAgICAgICAgfSk7XFxuICAgICAgfVxcbiAgICAgICBwaG90b3MuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgaW1nOiBkYXRhLm1lZGlhX3VybF9mdWxsK2xhenksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicGljXzFfZnVsbFxcXCIsXFxuICAgICAgICAgICAgICAgIHVybCA6IGRhdGEubWVkaWFfdXJsX2Z1bGwsXFxuICAgICAgIH0pXFxuICAgICAgfSlcXG5zZXRSZXN1bHQoZClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS4u+mimFwiLFwicGF0aFwiOlwidG9waWNcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkPVtdO1xcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xcbnZhciBpZD1NWV9VUkwuc3BsaXQoJyMjJylbMl07XFxudmFyIHBnPU1ZX1VSTC5zcGxpdCgnIyMnKVsxXTtcXG52YXIg5Li76aKYPSBbe3RpdGxlOiAn5pyA5pawJumHkeW4gScsa2V5OiAnbmV3JmNvaW5zJ31dO1xcbmlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgJC5yZXF1aXJlKFxcXCJDYXRlZ29yeVxcXCIpLkNhdGVnb3J5KOS4u+mimCwn5Li76aKYJywnc2Nyb2xsX2J1dHRvbicsZCk7XFxufVxcbnZhciBkYXRhMCA9ICd7XFxcIm9hdXRoX3R5cGVcXFwiOlxcXCJwd2FcXFwiLFxcXCJvYXV0aF9pZFxcXCI6XFxcIlh4U2Q4cHR0QmFJa0FLckZfMTczNDA5NzU5MTc1MFxcXCIsXFxcInZlcnNpb25cXFwiOlxcXCIzLjAuMFxcXCIsXFxcIm1vZFxcXCI6XFxcIm5ld3NcXFwiLFxcXCJjb2RlXFxcIjpcXFwibGlzdE5ld3NcXFwiLFxcXCJwYWdlXFxcIjonK3BnKycsXFxcInR5cGVcXFwiOlxcXCInK2dldE15VmFyKCfkuLvpopgnLCduZXcnKSsnXFxcIixcXFwiaWRcXFwiOicraWQrJyxcXFwiY2F0ZVxcXCI6XFxcInRvcGljXFxcIn0nO1xcbnZhciB1cmwgPSAnaHR0cHM6Ly96aXZzc3kuaHppeWh1eS5jb20vcHdhLnBocCc7XFxuLy9sb2codXJsKVxcbmxldCBodG1sMiA9IHBvc3QodXJsLGRhdGEwKTsgXFxuLy9sb2coaHRtbDIpXFxubGV0IGRhdGE9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGE7XFxuLy9sb2coaXRlbSlcXG5kYXRhLmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgIC8v55So5oi3XFxuICAgICAgdmFyIHVzZXI9ZGF0YS51c2VyO1xcbiAgICAgICAvL+WbvueJh1xcbiAgICAgIHZhciBwaG90b3M9ZGF0YS5waG90b3M7XFxuICAgICAgLy/kuLvpophcXG4gICAgICB2YXIgdG9waWM9ZGF0YS50b3BpYztcXG4gICAgICAvL+WciOWtkFxcbiAgICAgIHZhciBncm91cD1kYXRhLmdyb3VwO1xcbiAgICAgIGQucHVzaCh7XFxyXFxuICAgICAgICAgICAgICAgIHRpdGxlOiB1c2VyLm5pY2tuYW1lLFxcbiAgICAgICAgICAgICAgICBpbWc6IHVzZXIudGh1bWJfdXJsK2xhenksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIixcXG4gICAgICAgICAgICAgICAgdXJsIDogJ2hpa2VyOi8vZW1wdHkjI2Z5cGFnZSMjJyt1c2VyLnV1aWQrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2RldGFpbDNcXFwiKScsXFxuICAgICAgIH0se1xcbiAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXG4gICAgICAgICAgICAgICAgZGVzYzpkYXRhLmNvbnRlbnQsXFxuICAgICAgICAgICAgICAgIHVybDogICAgJ2hpa2VyOi8vZW1wdHkjIycrZGF0YS5pZCsnQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZGV0YWlsNFxcXCIpJyxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcbiAgICAgICAgICAgICAgICBleHRyYToge2xpbmVWaXNpYmxlOiBmYWxzZX1cXG4gICAgICAgfSk7XFxuICAgICAgIHBob3Rvcy5mb3JFYWNoKGRhdGEgPT4ge1xcbiAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICBpbWc6IGRhdGEubWVkaWFfdXJsX2Z1bGwrbGF6eSxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJwaWNfM19jYXJkXFxcIixcXG4gICAgICAgICAgICAgICAgdXJsIDogZGF0YS5tZWRpYV91cmxfZnVsbCxcXG4gICAgICAgfSlcXG4gICAgICB9KVxcbiAgICAgICBpZih0b3BpYyE9bnVsbCl7XFxuICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOnRvcGljLm5hbWUsXFxuICAgICAgICAgICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHkjI2Z5cGFnZSMjJyt0b3BpYy5pZCsnQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvdG9waWNcXFwiKScsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxuICAgICAgfSlcXG4gICAgICB9XFxuICAgICAgaWYoZ3JvdXAhPW51bGwpe1xcbiAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOmdyb3VwLm5hbWUsXFxuICAgICAgICAgICAgICAgIHVybDonaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMnK2dyb3VwLmlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9ncm91cFxcXCIpJyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICB9KVxcbiAgICAgIH1cXG59KVxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5ZyI5a2QXCIsXCJwYXRoXCI6XCJncm91cFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQ9W107XFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxudmFyIOWciOWtkD0gW3t0aXRsZTogJ+acgOaWsCbph5HluIEnLGtleTogJ25ldyZjb2lucyd9XTtcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgICQucmVxdWlyZShcXFwiQ2F0ZWdvcnlcXFwiKS5DYXRlZ29yeSjlnIjlrZAsJ+WciOWtkCcsJ3Njcm9sbF9idXR0b24nLGQpO1xcbn1cXG52YXIgaWQ9TVlfVVJMLnNwbGl0KCcjIycpWzJdO1xcbnZhciBwZz1NWV9VUkwuc3BsaXQoJyMjJylbMV07XFxudmFyIGRhdGEwID0gJ3tcXFwib2F1dGhfdHlwZVxcXCI6XFxcInB3YVxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwiWHhTZDhwdHRCYUlrQUtyRl8xNzM0MDk3NTkxNzUwXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuMC4wXFxcIixcXFwibW9kXFxcIjpcXFwibmV3c1xcXCIsXFxcImNvZGVcXFwiOlxcXCJsaXN0TmV3c1xcXCIsXFxcInBhZ2VcXFwiOicrcGcrJyxcXFwidHlwZVxcXCI6XFxcIicrZ2V0TXlWYXIoJ+WciOWtkCcsJ25ldycpKydcXFwiLFxcXCJpZFxcXCI6JytpZCsnLFxcXCJjYXRlXFxcIjpcXFwiZ3JvdXBcXFwifSc7XFxudmFyIHVybCA9ICdodHRwczovL3ppdnNzeS5oeml5aHV5LmNvbS9wd2EucGhwJztcXG4vL2xvZyh1cmwpXFxubGV0IGh0bWwyID0gcG9zdCh1cmwsZGF0YTApOyBcXG4vL2xvZyhodG1sMilcXG5sZXQgZGF0YT0gSlNPTi5wYXJzZShodG1sMikuZGF0YTtcXG4vL2xvZyhpdGVtKVxcbmRhdGEuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgLy/nlKjmiLdcXG4gICAgICB2YXIgdXNlcj1kYXRhLnVzZXI7XFxuICAgICAgIC8v5Zu+54mHXFxuICAgICAgdmFyIHBob3Rvcz1kYXRhLnBob3RvcztcXG4gICAgICAvL+S4u+mimFxcbiAgICAgIHZhciB0b3BpYz1kYXRhLnRvcGljO1xcbiAgICAgIC8v5ZyI5a2QXFxuICAgICAgdmFyIGdyb3VwPWRhdGEuZ3JvdXA7XFxuICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHVzZXIubmlja25hbWUsXFxuICAgICAgICAgICAgICAgIGltZzogdXNlci50aHVtYl91cmwrbGF6eSxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmwgOiAnaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMnK3VzZXIudXVpZCsnQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZGV0YWlsM1xcXCIpJyxcXG4gICAgICAgfSx7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcbiAgICAgICAgICAgICAgICBkZXNjOmRhdGEuY29udGVudCxcXG4gICAgICAgICAgICAgICAgdXJsOiAgICAnaGlrZXI6Ly9lbXB0eSMjJytkYXRhLmlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9kZXRhaWw0XFxcIiknLFxcclxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7bGluZVZpc2libGU6IGZhbHNlfVxcbiAgICAgICB9KTtcXG4gICAgICAgcGhvdG9zLmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGltZzogZGF0YS5tZWRpYV91cmxfZnVsbCtsYXp5LFxcclxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcInBpY18zX2NhcmRcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmwgOiBkYXRhLm1lZGlhX3VybF9mdWxsLFxcbiAgICAgICB9KVxcbiAgICAgIH0pXFxuICAgICAgIGlmKHRvcGljIT1udWxsKXtcXG4gICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6dG9waWMubmFtZSxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMnK3RvcGljLmlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS90b3BpY1xcXCIpJyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICB9KVxcbiAgICAgIH1cXG4gICAgICBpZihncm91cCE9bnVsbCl7XFxuICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6Z3JvdXAubmFtZSxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMnK2dyb3VwLmlkKydAcnVsZT1qczokLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9ncm91cFxcXCIpJyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICB9KVxcbiAgICAgIH1cXG59KVxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfMlwiLFwibmFtZVwiOlwi5oqW6Z+z5Y6f5Yib5LqM57qnXCIsXCJwYXRoXCI6XCJkZXRhaWw1XCIsXCJydWxlXCI6XCJqczpcXG52YXIgZD1bXTtcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2FlcycpKS5ydWxlKTtcXG52YXIgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApOyAvL2xvZyh0KVxcbnZhciB0MD1NYXRoLmZsb29yKERhdGUubm93KCkpO1xcbnZhciBpZD1NWV9VUkwuc3BsaXQoJyMjJylbMl07XFxudmFyIHBnPU1ZX1VSTC5zcGxpdCgnIyMnKVsxXTtcXG52YXIg57KJ5Lid5ZuiPSBbe3RpdGxlOiAn57KJ5Lid5ZuiJuS9nOWTgScsa2V5OiAnY2x1YiZ1c2VyJ31dO1xcbmlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgJC5yZXF1aXJlKFxcXCJDYXRlZ29yeVxcXCIpLkNhdGVnb3J5KOeyieS4neWboiwn57KJ5Lid5ZuiJywnc2Nyb2xsX2J1dHRvbicsZCk7XFxufVxcbnZhciBkYXRhMD0ne1xcXCJvYXV0aF90eXBlXFxcIjpcXFwicHdhXFxcIixcXFwib2F1dGhfaWRcXFwiOlxcXCJwak5DWFRJMElJZXRsdHlyXzE3MzQwMTAzOTQzMzBcXFwiLFxcXCJ2ZXJzaW9uXFxcIjpcXFwiMy4wLjBcXFwiLFxcXCJjb2RlXFxcIjpcXFwidmlkZW9zXFxcIixcXFwibW9kXFxcIjpcXFwiJytnZXRNeVZhcign57KJ5Lid5ZuiJywnY2x1YicpKydcXFwiLFxcXCJpc0FsbFxcXCI6ZmFsc2UsXFxcInBhZ2VcXFwiOicrcGcrJyxcXFwidXVpZFxcXCI6XFxcIicraWQrJ1xcXCJ9JztcXG52YXIgdXJsID0gJ2h0dHBzOi8veml2c3N5Lmh6aXlodXkuY29tL3B3YS5waHAnO1xcbi8vbG9nKHVybClcXG5sZXQgaHRtbDIgPSBwb3N0KHVybCxkYXRhMCk7IFxcbmlmKGdldE15VmFyKCfnsonkuJ3lm6InLCdjbHViJyk9PSdjbHViJyl7XFxubGV0IGxpc3Q9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGEuaXRlbTtcXG5saXN0LmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcbiAgICAgICAgICAgIGRlc2M6IGRhdGEuY3JlYXRlZF9hdCsnXFxcXHRcXFxcdFxcXFx0XFxcXHQnK2RhdGEuZHVyYXRpb25TdHIrJyAgJytkYXRhLnRhZ3MsXFxuICAgICAgICAgICAgaW1nOiBkYXRhLnRodW1iSW1nK2xhenksXFxuICAgICAgICAgICAgdXJsOiBkYXRhLnBsYXlVcmwucmVwbGFjZSgvXFxcXC9cXFxcLy4qcGxheVxcXFwuLywnLy9sb25nLicpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwibW92aWVfMlxcXCIsXFxuICAgICAgICB9KVxcbiB9KVxcblxcbn1lbHNle1xcbmxldCBsaXN0PSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhO1xcbi8vbG9nKGxpc3QpO1xcbmlmKGxpc3QhPW51bGwpe1xcbmxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgZGVzYzogZGF0YS5jcmVhdGVkX2F0KydcXFxcdFxcXFx0XFxcXHRcXFxcdCcrZGF0YS5kdXJhdGlvblN0cisnICAnK2RhdGEudGFncyxcXG4gICAgICAgICAgICBpbWc6IGRhdGEudGh1bWJJbWcrbGF6eSxcXG4gICAgICAgICAgICB1cmw6IGRhdGEucGxheVVybC5yZXBsYWNlKC9cXFxcL1xcXFwvLipwbGF5XFxcXC4vLCcvL2xvbmcuJyksXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8zXFxcIixcXG4gICAgICAgIH0pXFxuIH0pXFxufVxcbn1cXG5zZXRSZXN1bHQoZClcIn1dIiwiaWNvbiI6Imh0dHBzOi8vbW9ndWEuY28vZG93bmxvYWQvMGE5OGUxNTU3M2U5ZGNjYjYzMDNiOWU0YTQ2NTE4NmYtaWNvbi5wbmciLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment