xiaomianao666

小程序:🤖爱看机器人

Mar 27th, 2024
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@🤖爱看机器人@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi8J+klueIseeci+acuuWZqOS6uiIsImF1dGhvciI6Ikx1RmVpIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIiwidmVyc2lvbiI6MSwiY29sX3R5cGUiOiJtb3ZpZV8zIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ2aWRlbyIsImNsYXNzX3VybCI6IiIsImFyZWFfbmFtZSI6IiIsImFyZWFfdXJsIjoiIiwic29ydF9uYW1lIjoiIiwieWVhcl9uYW1lIjoiIiwic29ydF91cmwiOiIiLCJ5ZWFyX3VybCI6IiIsImZpbmRfcnVsZSI6ImpzOlxyXG5cclxuLy8gbGV0IHRlc3RfZnVuID0gJC5yZXF1aXJlKFwiaGlrZXI6Ly9wYWdlL3Rlc3RcIikudGVzdF9mdW5cclxuXHJcbi8vIHRlc3RfZnVuKClcclxudmFyIGxhbGEgPSBcIjY2NmZkc2ZmZHNmXCJcclxuZXZhbChyZXF1aXJlKFwiaGlrZXI6Ly9wYWdlL3Rlc3RcIikpXHJcbmZjKFwiaHR0cHM6Ly93d3cuYmFpZHUuY29tXCIpXHJcblxyXG5cclxudmFyIHRydWVfdXJsID0gJydcclxudmFyIHJlcyA9IFtdXHJcbnZhciBwcmVzID0gW11cclxudmFyIGN1cnJlbnRfcGFnZSA9ICcwJ1xyXG52YXIgY3VycmVudF9jbGFzcyA9ICfng63pl6gnXHJcbnB1dE15VmFyKCdpc19kZXRhaWxfY2FjaGUnLCAnMCcpXHJcbnZhciBzZWxlY3RfZml4X2l0ZW1fbnVtID0gZ2V0TXlWYXIoJ3NlbGVjdF9maXhfaXRlbV9udW0nLCAnMCcpXHJcbnZhciBzZWxlY3RfZHluX2l0ZW1fbnVtID0gZ2V0TXlWYXIoJ3NlbGVjdF9keW5faXRlbV9udW0nLCAnMCcpXHJcblxyXG52YXIgc2Vjb25kX3RhYnNfYXJyID0gW1xyXG4gICAgWyflhajpg6gnLCAn55S15b2xJywgJ+eUteinhuWJpyddLFxyXG4gICAgW1xyXG4gICAgICAgICfng63pl6gnLFxyXG4gICAgICAgICfmnIDmlrAnLFxyXG4gICAgICAgICfnu4/lhbgnLFxyXG4gICAgICAgICfosYbnk6Ppq5jliIYnLFxyXG4gICAgICAgICflhrfpl6jkvbPniYcnLFxyXG4gICAgICAgICfljY7or60nLFxyXG4gICAgICAgICfmrKfnvo4nLFxyXG4gICAgICAgICfpn6nlm70nLFxyXG4gICAgICAgICfml6XmnKwnLFxyXG4gICAgICAgICfliqjkvZwnLFxyXG4gICAgICAgICfllpzliacnLFxyXG4gICAgICAgICfniLHmg4UnLFxyXG4gICAgICAgICfnp5HlubsnLFxyXG4gICAgICAgICfmgqznlpEnLFxyXG4gICAgICAgICfmgZDmgJYnLFxyXG4gICAgICAgICfmlofoibonLFxyXG4gICAgICAgICfosYbnk6N0b3AyNTAnLFxyXG4gICAgXSxcclxuICAgIFsn54Ot6ZeoJywgJ+e+juWJpycsICfoi7HliacnLCAn6Z+p5YmnJywgJ+aXpeWJpycsICflm73kuqfliacnLCAn5riv5YmnJywgJ+aXpeacrOWKqOeUuycsICfnu7zoibonLCAn57qq5b2V54mHJ10sXHJcbiAgICBbJ+ixhueTo+S4gOWRqOeUteW9seWPo+eikeamnCcsICfosYbnk6PlhajnkIPlj6PnopHliafpm4bmppwnLCAn6LGG55Oj5Y2O6K+t5Y+j56KR5qacJywgJ+ixhueTo+WbveWGhee7vOiJuuWPo+eikeamnCcsICfosYbnk6Plm73lpJbnu7zoibrlj6PnopHmppwnXSxcclxuICAgIFtcclxuICAgICAgICAn5YWo6YOoJyxcclxuICAgICAgICAn5Ymn5oOFJyxcclxuICAgICAgICAn5oOF5oSfJyxcclxuICAgICAgICAn5rK75oSIJyxcclxuICAgICAgICAn6aKB5aWWJyxcclxuICAgICAgICAn54ix5oOFJyxcclxuICAgICAgICAn5Zac5YmnJyxcclxuICAgICAgICAn6I635aWWJyxcclxuICAgICAgICAn56eR5bm7JyxcclxuICAgICAgICAn5oGQ5oCWJyxcclxuICAgICAgICAn5ryr5aiBJyxcclxuICAgICAgICAn55Sc6JycJyxcclxuICAgICAgICAn5oKs55aRJyxcclxuICAgICAgICAn5Yqx5b+XJyxcclxuICAgICAgICAn5aSN5LuHJyxcclxuICAgIF0sXHJcbl1cclxuXHJcbi8vIOW8leWFpemhtumDqOWbuuWumuWIhuexu+WHveaVsGZpeF90YWLjgIHliqjmgIHlsI/nsbvlh73mlbBkeW5hbWljX3RhYuOAgeino+aekOe9kemhtemhueebruWIl+ihqOWHveaVsHBhcnNlX2l0ZW1cclxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9maXhlZF90YWInKSkucnVsZSlcclxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9wYXJzZV9pdGVtJykpLnJ1bGUpXHJcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZHluYW1pY190YWInKSkucnVsZSlcclxuXHJcbi8vIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZ2V0X2Rhbm11JykpLnJ1bGUpXHJcblxyXG5cclxuLy8g5Zu65a6a5aSn57G75ZKM5Yqo5oCB57G7XHJcbmZpeGVkX3RhYihwcmVzKVxyXG5cclxucHJlcy5wdXNoKHtcclxuICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxyXG59KVxyXG5cclxuZHluYW1pY190YWIoc2VsZWN0X2ZpeF9pdGVtX251bSwgc2Vjb25kX3RhYnNfYXJyLCBwcmVzKVxyXG5cclxuaWYgKE1ZX1BBR0UgPT0gMSkge1xyXG4gICAgc2V0UHJlUmVzdWx0KHByZXMpXHJcbn1cclxuXHJcbnN3aXRjaCAoc2VsZWN0X2ZpeF9pdGVtX251bSkge1xyXG4gICAgY2FzZSAnMSc6XHJcbiAgICAgICAgY3VycmVudF9wYWdlID0gTVlfVVJMLnNwbGl0KCcjIycpWzFdXHJcbiAgICAgICAgY3VycmVudF9jbGFzcyA9IHNlY29uZF90YWJzX2FycltzZWxlY3RfZml4X2l0ZW1fbnVtXVtzZWxlY3RfZHluX2l0ZW1fbnVtXVxyXG4gICAgICAgIHRydWVfdXJsID1cclxuICAgICAgICAgICAgY3VycmVudF9wYWdlID09ICcxJ1xyXG4gICAgICAgICAgICAgICAgPyAnaHR0cHM6Ly92LmlrYW5ib3QuY29tL2hvdC9pbmRleC1tb3ZpZS0nICsgY3VycmVudF9jbGFzcyArICcuaHRtbCdcclxuICAgICAgICAgICAgICAgIDogJ2h0dHBzOi8vdi5pa2FuYm90LmNvbS9ob3QvaW5kZXgtbW92aWUtJyArIGN1cnJlbnRfY2xhc3MgKyAnLXAtJyArIGN1cnJlbnRfcGFnZSArICcuaHRtbCdcclxuICAgICAgICBwYXJzZV9pdGVtKHRydWVfdXJsLCByZXMsIHNlbGVjdF9maXhfaXRlbV9udW0pXHJcbiAgICAgICAgYnJlYWtcclxuICAgIGNhc2UgJzInOlxyXG4gICAgICAgIGN1cnJlbnRfcGFnZSA9IE1ZX1VSTC5zcGxpdCgnIyMnKVsxXVxyXG4gICAgICAgIGN1cnJlbnRfY2xhc3MgPSBzZWNvbmRfdGFic19hcnJbc2VsZWN0X2ZpeF9pdGVtX251bV1bc2VsZWN0X2R5bl9pdGVtX251bV1cclxuICAgICAgICB0cnVlX3VybCA9XHJcbiAgICAgICAgICAgIGN1cnJlbnRfcGFnZSA9PSAnMSdcclxuICAgICAgICAgICAgICAgID8gJ2h0dHBzOi8vdi5pa2FuYm90LmNvbS9ob3QvaW5kZXgtdHYtJyArIGN1cnJlbnRfY2xhc3MgKyAnLmh0bWwnXHJcbiAgICAgICAgICAgICAgICA6ICdodHRwczovL3YuaWthbmJvdC5jb20vaG90L2luZGV4LXR2LScgKyBjdXJyZW50X2NsYXNzICsgJy1wLScgKyBjdXJyZW50X3BhZ2UgKyAnLmh0bWwnXHJcbiAgICAgICAgcGFyc2VfaXRlbSh0cnVlX3VybCwgcmVzLCBzZWxlY3RfZml4X2l0ZW1fbnVtKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICBjYXNlICczJzpcclxuICAgICAgICBjdXJyZW50X2NsYXNzID0gc2Vjb25kX3RhYnNfYXJyW3NlbGVjdF9maXhfaXRlbV9udW1dW3NlbGVjdF9keW5faXRlbV9udW1dXHJcbiAgICAgICAgdHJ1ZV91cmwgPSAnaHR0cHM6Ly92LmlrYW5ib3QuY29tL2JpbGxib2FyZC5odG1sJ1xyXG4gICAgICAgIHBhcnNlX2l0ZW0odHJ1ZV91cmwsIHJlcywgc2VsZWN0X2ZpeF9pdGVtX251bSwgc2VsZWN0X2R5bl9pdGVtX251bSlcclxuICAgICAgICBicmVha1xyXG4gICAgY2FzZSAnNCc6XHJcbiAgICAgICAgY3VycmVudF9wYWdlID0gTVlfVVJMLnNwbGl0KCcjIycpWzFdXHJcbiAgICAgICAgY3VycmVudF9jbGFzcyA9IHNlY29uZF90YWJzX2FycltzZWxlY3RfZml4X2l0ZW1fbnVtXVtzZWxlY3RfZHluX2l0ZW1fbnVtXVxyXG4gICAgICAgIHRydWVfdXJsID0gJ2h0dHBzOi8vdi5pa2FuYm90LmNvbS9rYW5saXN0LycgKyBjdXJyZW50X2NsYXNzICsgJy1wLScgKyBjdXJyZW50X3BhZ2UgKyAnLmh0bWwnXHJcbiAgICAgICAgcGFyc2VfaXRlbSh0cnVlX3VybCwgcmVzLCBzZWxlY3RfZml4X2l0ZW1fbnVtKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRydWVfdXJsID0gJ2h0dHBzOi8vd3d3LmlrYW5ib3QuY29tJ1xyXG4gICAgICAgIHBhcnNlX2l0ZW0odHJ1ZV91cmwsIHJlcywgMCwgc2VsZWN0X2R5bl9pdGVtX251bSlcclxufVxyXG5cclxuLy8g5pi+56S66aG555uuXHJcbnB1dE15VmFyKCdzZWxlY3Rfc291cmNlX251bScsICcwJylcclxuc2V0UmVzdWx0KHJlcylcclxuIiwic2VhcmNoX3VybCI6Imh0dHBzOi8vd3d3LmlrYW5ib3QuY29tL3NlYXJjaD9xPSoqJnA9ZnlwYWdlW2ZpcnN0UGFnZT1odHRwczovL3d3dy5pa2FuYm90LmNvbS9zZWFyY2g/cT0qKl0iLCJncm91cCI6IuKRoeacgOeIsSIsInNlYXJjaEZpbmQiOiJqczpcbnZhciByZXMgPSBbXVxudmFyIGxpc3QgPSBwYXJzZURvbUZvckFycmF5KGdldFJlc0NvZGUoKSwgJ2JvZHkmJmRpdi5tZWRpYScpIC8v5YiX6KGoXG5cbmZvciAodmFyIGkgaW4gbGlzdCkge1xuICAgIHJlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHBhcnNlRG9tRm9ySHRtbChsaXN0W2ldLCAnaDUmJmEmJlRleHQnKSxcbiAgICAgICAgZGVzYzogcGFyc2VEb21Gb3JIdG1sKGxpc3RbaV0sICdoNSYmc3BhbiYmVGV4dCcpLFxuICAgICAgICBjb250ZW50OiBwYXJzZURvbUZvckh0bWwobGlzdFtpXSwgJy5zbWFsbCwwJiZUZXh0JykgKyAnXFxuJyArIHBhcnNlRG9tRm9ySHRtbChsaXN0W2ldLCAnLnNtYWxsLDEmJlRleHQnKSxcbiAgICAgICAgcGljX3VybDogcGFyc2VEb21Gb3JIdG1sKGxpc3RbaV0sICdpbWcmJmRhdGEtc3JjJykgKyAnQFJlZmVyZXI9aHR0cHM6Ly93d3cuaWthbmJvdC5jb20nLFxuICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5IyMjJyArIHBhcnNlRG9tKGxpc3RbaV0sICdoNSYmYSYmaHJlZicpICsgJyNpbW1lcnNpdmVUaGVtZSMnLFxuICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLFxuICAgICAgICBleHRyYToge30sXG4gICAgfSlcbn1cbnB1dE15VmFyKCdzZWxlY3Rfc291cmNlX251bScsICcwJylcbnNldEhvbWVSZXN1bHQocmVzKVxuIiwiZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsImRldGFpbF9maW5kX3J1bGUiOiJqczpcbi8vIOW8leWFpeino+WvhuWHveaVsHRva2Vu44CB5p2l5rqQ55qE5pKt5pS+6ZO+5o6l5Ye95pWwZ2V0X3NvdXJjZV9saXN0XG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL3Rva2VuJykpLnJ1bGUpXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL3NvdXJjZV91cmxzJykpLnJ1bGUpXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2RvdWJhbl9kZXNjJykpLnJ1bGUpXG5cbmxldCB0cnVlX01ZX1VSTCA9IE1ZX1VSTC5zcGxpdCgnIyMjJylbMV1cblxuLy8g5Zu+54mH5ZKM566A5LuLXG4vLyBsb2coTVlfVVJMKVxuaWYgKHRydWVfTVlfVVJMLm1hdGNoKC9cXC9hcnRpY2xlXFwvLykpIHtcbiAgICBsZXQgcmVzID0gW11cbiAgICAvLyBsZXQgaHRtbCA9IGdldFJlc0NvZGUoKVxuICAgIGxldCBodG1sID0gZmV0Y2godHJ1ZV9NWV9VUkwpXG4gICAgbGV0IGxpc3QgPSBwYXJzZURvbUZvckFycmF5KGh0bWwsICdib2R5JiYuaXRlbS5yZXN1bHQtaW5mbycpXG5cbiAgICByZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiBwYXJzZURvbUZvckh0bWwoaHRtbCwgJ2JvZHkmJmgxJiZUZXh0JyksXG4gICAgICAgIHBpY191cmw6XG4gICAgICAgICAgICBwYXJzZURvbUZvckh0bWwobGlzdFtNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiBsaXN0Lmxlbmd0aCAtIDEpXSwgJ2JvZHkmJmltZyYmZGF0YS1zcmMnKSArXG4gICAgICAgICAgICAnQFJlZmVyZXI9aHR0cHM6Ly93d3cuaWthbmJvdC5jb20nLFxuICAgICAgICB1cmw6ICcnLFxuICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLFxuICAgIH0pXG4gICAgcHV0TXlWYXIoJ3NlbGVjdF9zb3VyY2VfbnVtJywgJzAnKVxuICAgIGZvciAobGV0IGl0ZW0gaW4gbGlzdCkge1xuICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogcGFyc2VEb21Gb3JIdG1sKGxpc3RbaXRlbV0sICdib2R5JiZoNS50aXRsZSYmVGV4dCcpLFxuICAgICAgICAgICAgcGljX3VybDogcGFyc2VEb21Gb3JIdG1sKGxpc3RbaXRlbV0sICdib2R5JiZpbWcmJmRhdGEtc3JjJykgKyAnQFJlZmVyZXI9aHR0cHM6Ly93d3cuaWthbmJvdC5jb20nLFxuICAgICAgICAgICAgLy8gdXJsOiBcImh0dHBzOi8vdi5pa2FuYm90LmNvbVwiICsgcGFyc2VEb21Gb3JIdG1sKGxpc3RbaXRlbV0sICdib2R5JiZhJiZocmVmJyksXG4gICAgICAgICAgICB1cmw6ICQoKS5ydWxlKFxuICAgICAgICAgICAgICAgIChpbnB1dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL3Rva2VuJykpLnJ1bGUpXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uvc291cmNlX3VybHMnKSkucnVsZSlcbiAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9kb3ViYW5fZGVzYycpKS5ydWxlKVxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoc291cmNlX3BsYXlfdXJscyhpbnB1dCArICcjaW1tZXJzaXZlVGhlbWUjJykpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnaHR0cHM6Ly92LmlrYW5ib3QuY29tJyArIHBhcnNlRG9tRm9ySHRtbChsaXN0W2l0ZW1dLCAnYm9keSYmYSYmaHJlZicpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGVzYzogcGFyc2VEb21Gb3JIdG1sKGxpc3RbaXRlbV0sICdib2R5JiYubWV0YS5ha2Euc21hbGwmJlRleHQnKSxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWMnLFxuICAgICAgICB9KVxuICAgIH1cbiAgICBzZXRSZXN1bHQocmVzKVxufSBlbHNlIHtcbiAgICBsZXQgcmVzID0gc291cmNlX3BsYXlfdXJscyh0cnVlX01ZX1VSTClcbiAgICBzZXRSZXN1bHQocmVzKVxufVxuIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IioiLCJ1YSI6ImF1dG8iLCJwcmVSdWxlIjoiLy8g5LyY6LSo5rqQ572u6aG277yM5byV55So6K+m5oOF6aG155qE5p2l5rqQ5ZCN5a2XKOS4reaWhynvvIznlKgmJuWIhuWJslxyXG5wdXRNeVZhcihcImJlc3Rfc291cmNlc1wiLFwi57Si5bC8JibpnZ7lh6EmJumHj+WtkCYm5pq06aOOXCIpIiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcInRva2VuXCIsXCJwYXRoXCI6XCJ0b2tlblwiLFwicnVsZVwiOlwiZnVuY3Rpb24gZ2V0X3RrcyhjdXJyZW50X2lkLCBlX3Rva2VuKSB7XFxyXFxuICAgICAgICBjb25zdCBfMHhmMDcyMjAgPSBmdW5jdGlvbiAoXzB4Zjc0Njk2LCBfMHg0ZDMyYWYpIHtcXHJcXG4gICAgICAgIGNvbnN0IF8weDQ1ZTA4NCA9IFtcXHJcXG4gICAgICAgICAgICAnNzA3MTUyeW93aE92JyxcXHJcXG4gICAgICAgICAgICAnZ2V0RWxlbWVudEJ5SWQnLFxcclxcbiAgICAgICAgICAgICc4NTU5MzZDR2FjenQnLFxcclxcbiAgICAgICAgICAgICdsZW5ndGgnLFxcclxcbiAgICAgICAgICAgICcyOTY2ODMxR0NHcHZuJyxcXHJcXG4gICAgICAgICAgICAnNjExMjY2bmZjVEVmJyxcXHJcXG4gICAgICAgICAgICAndmFsdWUnLFxcclxcbiAgICAgICAgICAgICdzdWJzdHJpbmcnLFxcclxcbiAgICAgICAgICAgICcxNTgwNjMwR25nbW1BJyxcXHJcXG4gICAgICAgICAgICAnMTE3dXZ3Zmx3JyxcXHJcXG4gICAgICAgICAgICAnam9pbicsXFxyXFxuICAgICAgICAgICAgJ2N1cnJlbnRfaWQnLFxcclxcbiAgICAgICAgICAgICc1NjU0NDhBcGtoaWcnLFxcclxcbiAgICAgICAgICAgICcyMzA5Mkp3bXl0VycsXFxyXFxuICAgICAgICBdXFxyXFxuICAgICAgICBfMHhmNzQ2OTYgPSBfMHhmNzQ2OTYgLSAweDFhOFxcclxcbiAgICAgICAgbGV0IF8weGNiZmEyOCA9IF8weDQ1ZTA4NFtfMHhmNzQ2OTZdXFxyXFxuICAgICAgICByZXR1cm4gXzB4Y2JmYTI4XFxyXFxuICAgIH1cXHJcXG5cXHJcXG4gICAgbGV0IF8weDM1MTYyZCA9IGN1cnJlbnRfaWQsXFxyXFxuICAgICAgICBfMHhmMjU2NzggPSBlX3Rva2VuXFxyXFxuICAgIGlmICghXzB4MzUxNjJkIHx8ICFfMHhmMjU2NzgpIHJldHVyblxcclxcbiAgICBsZXQgXzB4Mzg4MmEzID0gXzB4MzUxNjJkWydsZW5ndGgnXSxcXHJcXG4gICAgICAgIF8weDUyYTA5NyA9IF8weDM1MTYyZFtfMHhmMDcyMjAoMHgxYWYpXShfMHgzODgyYTMgLSAweDQsIF8weDM4ODJhMyksXFxyXFxuICAgICAgICBfMHgyZDlkMWIgPSBbXVxcclxcbiAgICBmb3IgKGxldCBfMHg1NzA3MTEgPSAweDA7IF8weDU3MDcxMSA8IF8weDUyYTA5N1tfMHhmMDcyMjAoMHgxYWIpXTsgXzB4NTcwNzExKyspIHtcXHJcXG4gICAgICAgIGxldCBfMHgyM2U1MzcgPSBwYXJzZUludChfMHg1MmEwOTdbXzB4NTcwNzExXSksXFxyXFxuICAgICAgICAgICAgXzB4NDhiOTNkID0gKF8weDIzZTUzNyAlIDB4MykgKyAweDFcXHJcXG4gICAgICAgIDsoXzB4MmQ5ZDFiW18weDU3MDcxMV0gPSBfMHhmMjU2NzhbXzB4ZjA3MjIwKDB4MWFmKV0oXzB4NDhiOTNkLCBfMHg0OGI5M2QgKyAweDgpKSxcXHJcXG4gICAgICAgICAgICAoXzB4ZjI1Njc4ID0gXzB4ZjI1Njc4W18weGYwNzIyMCgweDFhZildKF8weDQ4YjkzZCArIDB4OCwgXzB4ZjI1Njc4W18weGYwNzIyMCgweDFhYildKSlcXHJcXG4gICAgfVxcclxcbiAgICBsZXQgdl90a3MgPSBfMHgyZDlkMWJbXzB4ZjA3MjIwKDB4MWIyKV0oJycpXFxyXFxuXFxyXFxuICAgIC8vIGxvZyh2X3Rrcyk7XFxyXFxuICAgIHJldHVybiB2X3Rrc1xcclxcbn1cXHJcXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcImZpeGVkX3RhYlwiLFwicGF0aFwiOlwiZml4ZWRfdGFiXCIsXCJydWxlXCI6XCJmdW5jdGlvbiBzYXZlX2RheV9zYXlfY2FjaGUoKSB7XFxyXFxuICAgIGxldCBkYXlfc2F5X2NhY2hlID0ge31cXHJcXG4gICAgbGV0IGRheV9zYXlfaHRtbCA9IGZldGNoKCdodHRwczovL3YxLmhpdG9rb3RvLmNuJywge1xcclxcbiAgICAgICAgaGVhZGVyczoge1xcclxcbiAgICAgICAgICAgICdVc2VyLUFnZW50JzpcXHJcXG4gICAgICAgICAgICAgICAgJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMjIuMC4wLjAgU2FmYXJpLzUzNy4zNicsXFxyXFxuICAgICAgICB9LFxcclxcbiAgICB9KVxcclxcbiAgICBkYXlfc2F5X2h0bWwgPSBKU09OLnBhcnNlKGRheV9zYXlfaHRtbClcXHJcXG4gICAgZGF5X3NheV9jYWNoZVsnY29udGVudCddID0gZGF5X3NheV9odG1sWydoaXRva290byddXFxyXFxuICAgIGRheV9zYXlfY2FjaGVbJ3RpbWUnXSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApXFxyXFxuICAgIGdsb2JhbE1hcDAucHV0TXlWYXIoJ2RheXNheScsIGRheV9zYXlfY2FjaGUpXFxyXFxuICAgIHJldHVybiBkYXlfc2F5X2h0bWxbJ2hpdG9rb3RvJ11cXHJcXG59XFxyXFxuZnVuY3Rpb24gZml4ZWRfdGFiKHJlcykge1xcclxcbiAgICBsZXQgYXJyX2NvbG9yID0gWycjMDAwMDAwJywgJyMwMDAwMDAnLCAnIzAwMDAwMCcsICcjMDAwMDAwJywgJyMwMDAwMDAnXVxcclxcbiAgICBhcnJfY29sb3JbZ2V0TXlWYXIoJ3NlbGVjdF9maXhfaXRlbV9udW0nLCAnMCcpXSA9ICcjMWFiOTZjJ1xcclxcblxcclxcbiAgICAvLyDmr4/ml6XkuIDlj6VcXHJcXG4gICAgbGV0IGRheV9zYXkgPSAnJ1xcclxcbiAgICB0cnkge1xcclxcbiAgICAgICAgbGV0IGRheV9zYXlfY2FjaGUgPSB7fVxcclxcbiAgICAgICAgbGV0IGRheV90aW1lID0gMFxcclxcbiAgICAgICAgaWYgKGdsb2JhbE1hcDAuaGFzTXlWYXIoJ2RheXNheScpKSB7XFxyXFxuICAgICAgICAgICAgZGF5X3NheV9jYWNoZSA9IGdsb2JhbE1hcDAuZ2V0TXlWYXIoJ2RheXNheScsIHt9KVxcclxcbiAgICAgICAgICAgIGRheV90aW1lID0gZGF5X3NheV9jYWNoZVsndGltZSddXFxyXFxuICAgICAgICAgICAgaWYgKE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApIC0gZGF5X3RpbWUgPj0gMTApIHtcXHJcXG4gICAgICAgICAgICAgICAgZGF5X3NheSA9IHNhdmVfZGF5X3NheV9jYWNoZSgpXFxyXFxuICAgICAgICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgICAgICAgICAgZGF5X3NheSA9IGRheV9zYXlfY2FjaGVbJ2NvbnRlbnQnXVxcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgZGF5X3NheSA9IHNhdmVfZGF5X3NheV9jYWNoZSgpXFxyXFxuICAgICAgICB9XFxyXFxuICAgIH0gY2F0Y2gge1xcclxcbiAgICAgICAgZGF5X3NheSA9ICcnXFxyXFxuICAgIH1cXHJcXG5cXHJcXG4gICAgcmVzLnB1c2goe1xcclxcbiAgICAgICAgdGl0bGU6IFxcXCLmkJzntKJcXFwiLFxcclxcbiAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXFxyXFxuICAgICAgICBkZXNjOiAnIPCfpJbvvJonICsgZGF5X3NheSxcXHJcXG4gICAgICAgIHVybDogXFxcIidoaWtlcjovL3NlYXJjaD9zPScgKyBpbnB1dCArICcmcnVsZT3wn6SW54ix55yL5py65Zmo5Lq6J1xcXCIsXFxyXFxuICAgICAgICAvL2V4dHJhOiB7IGRlZmF1bHRWYWx1ZTogJ/CfpJbvvJonICsgZGF5X3NheSB9LFxcclxcbiAgICB9KVxcclxcblxcclxcbiAgICByZXMucHVzaCh7XFxyXFxuICAgICAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxzcGFuIHN0eWxlPVxcXCJjb2xvcjonICsgYXJyX2NvbG9yWzBdICsgJ1xcXCI+5o6o6I2QPC9zcGFuPicsXFxyXFxuICAgICAgICB1cmw6IFxcXCJAbGF6eVJ1bGU9LmpzOnB1dE15VmFyKCdzZWxlY3RfZml4X2l0ZW1fbnVtJywgJzAnKTsgcHV0TXlWYXIoJ3NlbGVjdF9keW5faXRlbV9udW0nLCAnMCcpOyByZWZyZXNoUGFnZSgpOyAnI25vSGlzdG9yeSNoaWtlcjovL2VtcHR5J1xcXCIsXFxyXFxuICAgICAgICAvLyB0aXRsZTogXFxcIuaOqOiNkFxcXCIsXFxyXFxuICAgICAgICAvLyBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJyxcXHJcXG4gICAgICAgIHBpY191cmw6IFxcXCJodHRwczovL2dpdGNvZGUubmV0L3FxXzQxODQ2NzU2L2hpa2VyLy0vcmF3L21hc3Rlci9pbWcv54Ot6ZeoLmpwZ1xcXCIsXFxyXFxuICAgICAgICBjb2xfdHlwZTogXFxcImljb25fNVxcXCJcXHJcXG4gICAgfSlcXHJcXG5cXHJcXG4gICAgcmVzLnB1c2goe1xcclxcbiAgICAgICAgdGl0bGU6ICfigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6JyArIGFycl9jb2xvclsxXSArICdcXFwiPueUteW9sTwvc3Bhbj4nLFxcclxcbiAgICAgICAgdXJsOiBcXFwiQGxhenlSdWxlPS5qczpwdXRNeVZhcignc2VsZWN0X2ZpeF9pdGVtX251bScsICcxJyk7IHB1dE15VmFyKCdzZWxlY3RfZHluX2l0ZW1fbnVtJywgJzAnKTsgcmVmcmVzaFBhZ2UoKTsgJyNub0hpc3RvcnkjaGlrZXI6Ly9lbXB0eSdcXFwiLFxcclxcbiAgICAgICAgcGljX3VybDpcXFwiaHR0cHM6Ly9naXRjb2RlLm5ldC9xcV80MTg0Njc1Ni9oaWtlci8tL3Jhdy9tYXN0ZXIvaW1nL+WIhuexuy5qcGdcXFwiLFxcclxcbiAgICAgICAgLy8gY29sX3R5cGU6ICdmbGV4X2J1dHRvbicsXFxyXFxuICAgICAgICBjb2xfdHlwZTogXFxcImljb25fNVxcXCJcXHJcXG4gICAgfSlcXHJcXG5cXHJcXG4gICAgcmVzLnB1c2goe1xcclxcbiAgICAgICAgdGl0bGU6ICfigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6JyArIGFycl9jb2xvclsyXSArICdcXFwiPuWJp+mbhjwvc3Bhbj4nLFxcclxcbiAgICAgICAgdXJsOiBcXFwiQGxhenlSdWxlPS5qczpwdXRNeVZhcignc2VsZWN0X2ZpeF9pdGVtX251bScsICcyJyk7IHB1dE15VmFyKCdzZWxlY3RfZHluX2l0ZW1fbnVtJywgJzAnKTsgcmVmcmVzaFBhZ2UoKTsgJyNub0hpc3RvcnkjaGlrZXI6Ly9lbXB0eSdcXFwiLFxcclxcbiAgICAgICAgcGljX3VybDpcXFwiaHR0cHM6Ly9pLnBvc3RpbWcuY2Mvd0J6R2h6TVkvaW1hZ2UucG5nXFxcIixcXHJcXG4gICAgICAgIC8vIGNvbF90eXBlOiAnZmxleF9idXR0b24nLFxcclxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uXzVcXFwiXFxyXFxuICAgIH0pXFxyXFxuXFxyXFxuICAgIHJlcy5wdXNoKHtcXHJcXG4gICAgICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNwYW4gc3R5bGU9XFxcImNvbG9yOicgKyBhcnJfY29sb3JbM10gKyAnXFxcIj7mppzljZU8L3NwYW4+JyxcXHJcXG4gICAgICAgIHVybDogXFxcIkBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ3NlbGVjdF9maXhfaXRlbV9udW0nLCAnMycpOyAgcHV0TXlWYXIoJ3NlbGVjdF9keW5faXRlbV9udW0nLCAnMCcpO3JlZnJlc2hQYWdlKCk7ICcjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknXFxcIixcXHJcXG4gICAgICAgIHBpY191cmw6XFxcImh0dHBzOi8vZ2l0Y29kZS5uZXQvcXFfNDE4NDY3NTYvaGlrZXIvLS9yYXcvbWFzdGVyL2ltZy/mppzljZUuanBnXFxcIixcXHJcXG4gICAgICAgIC8vIGNvbF90eXBlOiAnZmxleF9idXR0b24nLFxcclxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uXzVcXFwiXFxyXFxuICAgIH0pXFxyXFxuXFxyXFxuICAgIHJlcy5wdXNoKHtcXHJcXG4gICAgICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNwYW4gc3R5bGU9XFxcImNvbG9yOicgKyBhcnJfY29sb3JbNF0gKyAnXFxcIj7niYfljZU8L3NwYW4+JyxcXHJcXG4gICAgICAgIHVybDogXFxcIkBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ3NlbGVjdF9maXhfaXRlbV9udW0nLCAnNCcpOyAgcHV0TXlWYXIoJ3NlbGVjdF9keW5faXRlbV9udW0nLCAnMCcpO3JlZnJlc2hQYWdlKCk7ICcjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknXFxcIixcXHJcXG4gICAgICAgIHBpY191cmw6IFxcXCJodHRwczovL2dpdGNvZGUubmV0L3FxXzQxODQ2NzU2L2hpa2VyLy0vcmF3L21hc3Rlci9pbWcv54mH5Y2VLmpwZ1xcXCIsXFxyXFxuICAgICAgICAvLyBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJyxcXHJcXG4gICAgICAgIGNvbF90eXBlOiBcXFwiaWNvbl81XFxcIlxcclxcbiAgICB9KVxcclxcblxcclxcbiAgICByZXR1cm4gcmVzXFxyXFxufVxcclxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwicGFyc2VfaXRlbVwiLFwicGF0aFwiOlwicGFyc2VfaXRlbVwiLFwicnVsZVwiOlwiZnVuY3Rpb24gcGFyc2VfaXRlbSh0cnVlX3VybCwgcmVzLCBzZWxlY3RfbnVtLCBzZWxlY3Rfc2Vjb25kX251bSkge1xcclxcbiAgICBsZXQgaHRtbCA9IGZldGNoKHRydWVfdXJsKVxcclxcbiAgICBsZXQgbGlzdCA9ICcnXFxyXFxuICAgIHN3aXRjaCAoc2VsZWN0X251bSkge1xcclxcbiAgICAgICAgY2FzZSAnMyc6XFxyXFxuICAgICAgICAgICAgbGlzdCA9IHBhcnNlRG9tRm9yQXJyYXkoaHRtbCwgJ2JvZHkmJi5jb2wteHMtMTIuY29sLW1kLTQnKVxcclxcbiAgICAgICAgICAgIGxpc3QgPSBwYXJzZURvbUZvckFycmF5KGxpc3Rbc2VsZWN0X3NlY29uZF9udW1dLCAnYm9keSYmLml0ZW0ucmVzdWx0LWluZm8uYWN0aXZlJylcXHJcXG4gICAgICAgICAgICBmb3IgKHZhciBpdGVtIGluIGxpc3QpIHtcXHJcXG4gICAgICAgICAgICAgICAgcmVzLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBhcnNlRG9tRm9ySHRtbChsaXN0W2l0ZW1dLCAnLnRpdGxlJiZUZXh0JyksIC8v5qCH6aKYXFxyXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiAnJywgLy/lj4zph43mj4/ov7BcXHJcXG4gICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHBhcnNlRG9tKGxpc3RbaXRlbV0sICdpbWcmJmRhdGEtc3JjJykgKyAnQFJlZmVyZXI9aHR0cHM6Ly93d3cuaWthbmJvdC5jb20nLCAvL+WbvueJh1xcclxcbiAgICAgICAgICAgICAgICAgICAgdXJsOlxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICdoaWtlcjovL2VtcHR5IyMjJyArXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vd3d3LmlrYW5ib3QuY29tJyArXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VEb21Gb3JIdG1sKGxpc3RbaXRlbV0sICdhJiZocmVmJykgK1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICcjaW1tZXJzaXZlVGhlbWUjJywgLy/pk77mjqVcXHJcXG4gICAgICAgICAgICAgICAgfSlcXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgYnJlYWtcXHJcXG4gICAgICAgIGNhc2UgJzQnOlxcclxcbiAgICAgICAgICAgIGxpc3QgPSBwYXJzZURvbUZvckFycmF5KGh0bWwsICdib2R5JiYjc2VhcmNoLXJlc3VsdCYmLm1lZGlhJylcXHJcXG4gICAgICAgICAgICBmb3IgKHZhciBpdGVtIGluIGxpc3QpIHtcXHJcXG4gICAgICAgICAgICAgICAgcmVzLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBhcnNlRG9tRm9ySHRtbChsaXN0W2l0ZW1dLCAnLnRpdGxlLXRleHQmJlRleHQnKSwgLy/moIfpophcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6ICcnLCAvL+WPjOmHjeaPj+i/sFxcclxcbiAgICAgICAgICAgICAgICAgICAgcGljX3VybDogcGFyc2VEb20obGlzdFtpdGVtXSwgJ2ltZyYmZGF0YS1zcmMnKSArICdAUmVmZXJlcj1odHRwczovL3d3dy5pa2FuYm90LmNvbScsIC8v5Zu+54mHXFxyXFxuICAgICAgICAgICAgICAgICAgICB1cmw6XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2hpa2VyOi8vZW1wdHkjIyMnICtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly93d3cuaWthbmJvdC5jb20nICtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZURvbUZvckh0bWwobGlzdFtpdGVtXSwgJ2EmJmhyZWYnKSArXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgJyNpbW1lcnNpdmVUaGVtZSMnLCAvL+mTvuaOpVxcclxcbiAgICAgICAgICAgICAgICB9KVxcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICBicmVha1xcclxcbiAgICAgICAgZGVmYXVsdDpcXHJcXG4gICAgICAgICAgICBsaXN0ID0gcGFyc2VEb21Gb3JBcnJheShodG1sLCAnYm9keSYmLmNvbC14cy00LmNvbC1zbS0zJylcXHJcXG4gICAgICAgICAgICBpZiAoc2VsZWN0X251bSA9PSAnMCcpIHtcXHJcXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdF9zZWNvbmRfbnVtID09ICcwJykge1xcclxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdF9zZWNvbmRfbnVtID09ICcxJykge1xcclxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGxpc3Quc2xpY2UoMCwgMTIpXFxyXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0X3NlY29uZF9udW0gPT0gJzInKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gbGlzdC5zbGljZSgxMiwgbGlzdC5sZW5ndGgpXFxyXFxuICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICB9XFxyXFxuICAgICAgICAgICAgZm9yICh2YXIgaXRlbSBpbiBsaXN0KSB7XFxyXFxuICAgICAgICAgICAgICAgIHJlcy5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwYXJzZURvbUZvckh0bWwobGlzdFtpdGVtXSwgJ3AmJlRleHQnKSwgLy/moIfpophcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6ICcnLCAvL+WPjOmHjeaPj+i/sFxcclxcbiAgICAgICAgICAgICAgICAgICAgcGljX3VybDogcGFyc2VEb20obGlzdFtpdGVtXSwgJ2ltZyYmZGF0YS1zcmMnKSArICdAUmVmZXJlcj1odHRwczovL3d3dy5pa2FuYm90LmNvbScsIC8v5Zu+54mHXFxyXFxuICAgICAgICAgICAgICAgICAgICB1cmw6XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2hpa2VyOi8vZW1wdHkjIyMnICtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly93d3cuaWthbmJvdC5jb20nICtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZURvbUZvckh0bWwobGlzdFtpdGVtXSwgJ2EmJmhyZWYnKSArXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgJyNpbW1lcnNpdmVUaGVtZSMnLCAvL+mTvuaOpVxcclxcbiAgICAgICAgICAgICAgICB9KVxcclxcbiAgICAgICAgICAgIH1cXHJcXG4gICAgfVxcclxcblxcclxcbiAgICByZXR1cm4gcmVzXFxyXFxufVxcclxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiZHluYW1pY190YWJcIixcInBhdGhcIjpcImR5bmFtaWNfdGFiXCIsXCJydWxlXCI6XCJmdW5jdGlvbiBkeW5hbWljX3RhYihzZWxlY3RfbnVtLCBzZWNvbmRfdGFicywgcmVzKSB7XFxyXFxuICAgIC8vIHJlcy5wdXNoKHtcXHJcXG4gICAgLy8gICAgIHRpdGxlOiAnICcsXFxyXFxuICAgIC8vICAgICB1cmw6IFxcXCIjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknXFxcIixcXHJcXG4gICAgLy8gICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nLFxcclxcbiAgICAvLyB9KVxcclxcbiAgICBzZWNvbmRfdGFicyA9IHNlY29uZF90YWJzW3NlbGVjdF9udW1dXFxyXFxuICAgIGxldCBhcnJfY29sb3IgPSBbXVxcclxcbiAgICBmb3IgKGxldCBpIGluIHNlY29uZF90YWJzKSB7XFxyXFxuICAgICAgICBhcnJfY29sb3IucHVzaCgnIzAwMDAwMCcpXFxyXFxuICAgIH1cXHJcXG4gICAgYXJyX2NvbG9yW2dldE15VmFyKCdzZWxlY3RfZHluX2l0ZW1fbnVtJywgJzAnKV0gPSAnI2ViNzQwMidcXHJcXG4gICAgZm9yIChsZXQgdGFiX2l0ZW0gaW4gc2Vjb25kX3RhYnMpIHtcXHJcXG4gICAgICAgIHJlcy5wdXNoKHtcXHJcXG4gICAgICAgICAgICB0aXRsZTpcXHJcXG4gICAgICAgICAgICAgICAgJ+KAmOKAmOKAmeKAmTxzcGFuIHN0eWxlPVxcXCJjb2xvcjonICtcXHJcXG4gICAgICAgICAgICAgICAgYXJyX2NvbG9yW3RhYl9pdGVtXSArXFxyXFxuICAgICAgICAgICAgICAgICdcXFwiPicgK1xcclxcbiAgICAgICAgICAgICAgICBzZWNvbmRfdGFic1t0YWJfaXRlbV0gK1xcclxcbiAgICAgICAgICAgICAgICAnPC9zcGFuPicsXFxyXFxuICAgICAgICAgICAgdXJsOlxcclxcbiAgICAgICAgICAgICAgICBcXFwiQGxhenlSdWxlPS5qczpwdXRNeVZhcignc2VsZWN0X2R5bl9pdGVtX251bScsICdcXFwiICtcXHJcXG4gICAgICAgICAgICAgICAgdGFiX2l0ZW0gK1xcclxcbiAgICAgICAgICAgICAgICBcXFwiJyk7IHJlZnJlc2hQYWdlKCk7ICcjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknXFxcIixcXHJcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcclxcbiAgICAgICAgICAgIC8vIGNvbF90eXBlOiAnaWNvbl81JyxcXHJcXG4gICAgICAgIH0pXFxyXFxuICAgIH1cXHJcXG5cXHJcXG4gICAgLy8gc3dpdGNoIChzZWxlY3RfbnVtKSB7XFxyXFxuICAgIC8vICAgICBjYXNlICcxJzpcXHJcXG4gICAgLy8gICAgICAgICBkeW5hbWljX3RhYl9nZW5lcmF0aW9uKHNlY29uZF90YWJzLCByZXMpXFxyXFxuICAgIC8vICAgICAgICAgYnJlYWtcXHJcXG4gICAgLy8gICAgIGRlZmF1bHQ6XFxyXFxuICAgIC8vICAgICAgICAgcmV0dXJuIGZhbHNlXFxyXFxuICAgIC8vIH1cXHJcXG59XFxyXFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJzb3VyY2VfdXJsc1wiLFwicGF0aFwiOlwic291cmNlX3VybHNcIixcInJ1bGVcIjpcInZhciB2aWRlb19zb3VyY2VzX25hbWUgPSB7XFxyXFxuICAgIGJmenltM3U4OiAn5pq06aOOJyxcXHJcXG4gICAgdGttM3U4OiAn5aSp56m6JyxcXHJcXG4gICAganNtM3U4OiAn5p6B6YCfJyxcXHJcXG4gICAgbHptM3U4OiAn6YeP5a2QJyxcXHJcXG4gICAgenVpZGFtM3U4OiAn5pyA5aSnJyxcXHJcXG4gICAgd2ptM3U4OiAn5peg5bC9JyxcXHJcXG4gICAgc2RtM3U4OiAn6Zeq55S1JyxcXHJcXG4gICAgZ3NtM3U4OiAn5YWJ6YCfJyxcXHJcXG4gICAgZmZtM3U4OiAn6Z2e5YehJyxcXHJcXG4gICAga2NtM3U4OiAn5b+r6L2mJyxcXHJcXG4gICAgd29sb25nOiAn5Y2n6b6ZJyxcXHJcXG4gICAgamlueWluZ20zdTg6ICfph5HpubAnLFxcclxcbiAgICB4bG0zdTg6ICfmlrDmtaonLFxcclxcbiAgICBrdWFpa2FuOiAn5b+r55yLJyxcXHJcXG4gICAgZnNtM3U4OiAn6aOe6YCfJyxcXHJcXG4gICAgeWhtM3U4OiAn5qix6IqxJyxcXHJcXG4gICAgdHBtM3U4OiAn5reY54mHJyxcXHJcXG4gICAgbGVtM3U4OiAn6bG85LmQJyxcXHJcXG4gICAgZGJtM3U4OiAn55m+5bqmJyxcXHJcXG4gICAgYmptM3U4OiAn5YWr5oiSJyxcXHJcXG4gICAgdG9tbTN1ODogJ+eVquiMhCcsXFxyXFxuICAgIHVrbTN1ODogJ1XphbcnLFxcclxcbiAgICBpa20zdTg6ICdpa3VuJyxcXHJcXG4gICAgaG56eW0zdTg6ICfnuqLniZvlnKjnur8nLFxcclxcbiAgICBzbm0zdTg6ICfntKLlsLwnLFxcclxcbiAgICBNM1U4OiAn5aSn5rygJyxcXHJcXG4gICAgcWhtM3U4OiAn5aWH6JmOJyxcXHJcXG4gICAgJzEwODB6eWsnOiAn5LyY6LSoJyxcXHJcXG4gICAgJzY4enlfbTN1OCc6ICc2OCcsXFxyXFxufVxcclxcblxcclxcbnZhciBkZGVzYyA9IHtcXHJcXG4gICAgcXE6ICfohb7orq8nLFxcclxcbiAgICBxaXlpOiAn54ix5aWH6Im6JyxcXHJcXG4gICAgeW91a3U6ICfkvJjphbcnLFxcclxcbiAgICBiaWxpYmlsaTE6ICflk5Tlk6nlk5Tlk6knLFxcclxcbiAgICBpbWdvOiAn6IqS5p6cJyxcXHJcXG4gICAgZG91eWluOiAn5oqW6Z+zJyxcXHJcXG4gICAgbGV2cDogJ+S5kOinhicsXFxyXFxuICAgIGxlc2hpOiAn5LmQ6KeGJyxcXHJcXG4gICAgc29odTogJ+aQnOeLkCcsXFxyXFxuICAgIHBwdHY6ICdQUFRWJyxcXHJcXG4gICAgbTE5MDU6ICcxOTA1JyxcXHJcXG4gICAgeGlndWE6ICfopb/nk5wnLFxcclxcbn1cXHJcXG5cXHJcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2dldF9kYW5tdScpKS5ydWxlKVxcclxcblxcclxcbmZ1bmN0aW9uIHNvcnRfc291cmNlKHJlcykge1xcclxcbiAgICBsZXQgYmVzdF9yZXMgPSB7fVxcclxcbiAgICBsZXQgbm9ybWFsX3JlcyA9IFtdXFxyXFxuICAgIGxldCBzb3J0X2Jlc3RfcmVzID0gW11cXHJcXG4gICAgbGV0IGJlc3Rfc291cmNlcyA9IGdldE15VmFyKCdiZXN0X3NvdXJjZXMnKS5zcGxpdCgnJiYnKVxcclxcbiAgICBsZXQgbGFzdF9pbmRleCA9IDBcXHJcXG4gICAgZm9yIChsZXQgaSBpbiByZXMpIHtcXHJcXG4gICAgICAgIGlmIChiZXN0X3NvdXJjZXMuaW5kZXhPZih2aWRlb19zb3VyY2VzX25hbWVbcmVzW2ldLnNvdXJjZV9uYW1lXSkgIT0gLTEpIHtcXHJcXG4gICAgICAgICAgICBiZXN0X3Jlc1t2aWRlb19zb3VyY2VzX25hbWVbcmVzW2ldLnNvdXJjZV9uYW1lXV0gPSByZXNbaV1cXHJcXG4gICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgbm9ybWFsX3Jlcy5wdXNoKHJlc1tpXSlcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgfVxcclxcblxcclxcbiAgICBmb3IgKGxldCBpIGluIGJlc3Rfc291cmNlcykge1xcclxcbiAgICAgICAgaWYgKGJlc3RfcmVzW2Jlc3Rfc291cmNlc1tpXV0pIHtcXHJcXG4gICAgICAgICAgICBzb3J0X2Jlc3RfcmVzLnB1c2goYmVzdF9yZXNbYmVzdF9zb3VyY2VzW2ldXSlcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgfVxcclxcblxcclxcbiAgICAvLyBjb25zb2xlLmxvZyhzb3J0X2Jlc3RfcmVzKVxcclxcblxcclxcbiAgICByZXR1cm4gc29ydF9iZXN0X3Jlcy5jb25jYXQobm9ybWFsX3JlcylcXHJcXG59XFxyXFxuXFxyXFxuZnVuY3Rpb24gZ2V0X3NvdXJjZV9saXN0KGN1cnJlbnRfaWQsIGVfdG9rZW4sIHJlcywgdGl0bGUpIHtcXHJcXG4gICAgbGV0IGZyZXMgPSAnJ1xcclxcbiAgICBsZXQgZHJlcyA9ICcnXFxyXFxuICAgIGxldCBkc2V0ID0gWyfnm7TmjqXmkq3mlL4nXVxcclxcbiAgICBsZXQgZHNlbCA9IFtdXFxyXFxuICAgIGlmIChnZXRNeVZhcignaXNfZGV0YWlsX2NhY2hlJykgPT0gJzEnKSB7XFxyXFxuICAgICAgICBmcmVzID0gZ2V0TXlWYXIoJ2RldGFpbF9jYWNoZV9mcmVzJywgJycpXFxyXFxuICAgICAgICBkcmVzID0gSlNPTi5wYXJzZShnZXRNeVZhcignZGFubXVfbGlzdF9jYWNoZScsICdbXScpKVxcclxcbiAgICB9IGVsc2Uge1xcclxcbiAgICAgICAgZnJlcyA9IGZldGNoKFxcclxcbiAgICAgICAgICAgICdodHRwczovL3d3dy5pa2FuYm90LmNvbS9hcGkvZ2V0UmVzTj92aWRlb0lkPScgK1xcclxcbiAgICAgICAgICAgICAgICBjdXJyZW50X2lkICtcXHJcXG4gICAgICAgICAgICAgICAgJyZtdHlwZT0yJnRva2VuPScgK1xcclxcbiAgICAgICAgICAgICAgICBnZXRfdGtzKGN1cnJlbnRfaWQsIGVfdG9rZW4pXFxyXFxuICAgICAgICApXFxyXFxuICAgICAgICBwdXRNeVZhcignZGV0YWlsX2NhY2hlX2ZyZXMnLCBmcmVzKVxcclxcblxcclxcbiAgICAgICAgZHJlcyA9IHNlYXJjaF8zNjAodGl0bGUpXFxyXFxuICAgICAgICBwdXRNeVZhcignZGFubXVfbGlzdF9jYWNoZScsIEpTT04uc3RyaW5naWZ5KGRyZXMpKVxcclxcbiAgICB9XFxyXFxuXFxyXFxuICAgIGZvciAobGV0IGl0ZW0gb2YgZHJlcykge1xcclxcbiAgICAgICAgLy8gZm9yIChsZXQgc3ViX2l0ZW0gb2YgaXRlbS5zaXRlKSB7XFxyXFxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gaXRlbS5zaXRlKSB7XFxyXFxuICAgICAgICAgICAgaWYgKFsncXEnLCAncWl5aScsICd5b3VrdScsICdiaWxpYmlsaTEnLCAnaW1nbyddLmluZGV4T2Yoa2V5KSAhPSAtMSAmJiBpdGVtLnRpdGxlLmluZGV4T2YodGl0bGUpICE9IC0xKSB7XFxyXFxuICAgICAgICAgICAgICAgIGxldCB0ZF9pdGVtID0ge31cXHJcXG4gICAgICAgICAgICAgICAgdGRfaXRlbS5jYXRfaWQgPSBpdGVtLmNhdF9pZFxcclxcbiAgICAgICAgICAgICAgICB0ZF9pdGVtLmVuX2lkID0gaXRlbS5lbl9pZFxcclxcbiAgICAgICAgICAgICAgICB0ZF9pdGVtLnNpdGUgPSBrZXlcXHJcXG4gICAgICAgICAgICAgICAgdGRfaXRlbS50aXRsZSA9IGl0ZW0udGl0bGVcXHJcXG4gICAgICAgICAgICAgICAgdGRfaXRlbS5jYXRfbmFtZSA9IGl0ZW0uY2F0X25hbWVcXHJcXG4gICAgICAgICAgICAgICAgdGRfaXRlbS5pbmZvID0gaXRlbS5pbmZvID8gJywgJyArIGl0ZW0uaW5mbyA6ICcnXFxyXFxuICAgICAgICAgICAgICAgIHRkX2l0ZW0ucGxheWxpbmtzID0gaXRlbS5zaXRlXFxyXFxuICAgICAgICAgICAgICAgIGRzZWwucHVzaCh0ZF9pdGVtKVxcclxcbiAgICAgICAgICAgICAgICBkc2V0LnB1c2goZGRlc2NbdGRfaXRlbS5zaXRlXSArICcgLyA8JyArIHRkX2l0ZW0udGl0bGUgKyAnPiAvICcgKyB0ZF9pdGVtLmNhdF9uYW1lICsgdGRfaXRlbS5pbmZvICsgJycpXFxyXFxuICAgICAgICAgICAgfVxcclxcbiAgICAgICAgfVxcclxcbiAgICB9XFxyXFxuXFxyXFxuICAgIGZyZXMgPSBKU09OLnBhcnNlKGZyZXMpXFxyXFxuICAgIGxldCBsaW5lTGlzdCA9IGZyZXMuZGF0YS5saXN0XFxyXFxuXFxyXFxuICAgIGZvciAobGV0IGl0ZW0gaW4gbGluZUxpc3QpIHtcXHJcXG4gICAgICAgIGxldCBzb3VyY2VfcmVzID0gW11cXHJcXG4gICAgICAgIGxldCBzb3VjY2Vfb2JqZWN0ID0ge31cXHJcXG4gICAgICAgIGxldCBwdGVybSA9IEpTT04ucGFyc2UobGluZUxpc3RbaXRlbV0ucmVzRGF0YSlbMF0udXJsLnNwbGl0KCcjJylcXHJcXG4gICAgICAgIGZvciAobGV0IGl0ZW0yIGluIHB0ZXJtKSB7XFxyXFxuICAgICAgICAgICAgbGV0IHB0ID0gcHRlcm1baXRlbTJdLnNwbGl0KCckJylcXHJcXG4gICAgICAgICAgICBzb3VyY2VfcmVzLnB1c2goe1xcclxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxzcGFuIHN0eWxlPVxcXCJjb2xvcjonICsgJyMwMDAwMDAnICsgJ1xcXCI+PHNtYWxsPicgKyBwdFswXSArICc8L3NtYWxsPjwvc3Bhbj4nLFxcclxcbiAgICAgICAgICAgICAgICAvLyB1cmw6IHB0WzFdLFxcclxcbiAgICAgICAgICAgICAgICAvLyB1cmw6ICQoKS5sYXp5UnVsZSgocHVybCk9PntcXHJcXG4gICAgICAgICAgICAgICAgdXJsOiAkKGRzZXQsIDEsICfmmK/lkKbluKblvLnluZXmkq3mlL4nKS5zZWxlY3QoXFxyXFxuICAgICAgICAgICAgICAgICAgICAocGxheV91cmwsIGVwaXNvZGUsIGRzZXQsIGRzZWwpID0+IHtcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2dldF9kYW5tdScpKS5ydWxlKVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzZWxlY3RfaW5kZXggPSBkc2V0LmluZGV4T2YoaW5wdXQpIC0gMVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVwaXNvZGUgPSBlcGlzb2RlLnJlcGxhY2UoJ+esrCcsICcnKS5yZXBsYWNlKCfpm4YnLCAnJylcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBlcGlzb2RlID0gZXBpc29kZS5tYXRjaCgvKFsxLTldXFxcXGQqKSQvbSlcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBlcGlzb2RlID0gZXBpc29kZSA/IE51bWJlcihlcGlzb2RlWzFdKSA6IDBcXHJcXG5cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0X2luZGV4ID09IC0xKSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwbGF5X3VybFxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvZmZpY2FsX3VybCA9IGdldF9vZmZpY2FsX2xpbmsoZHNlbFtzZWxlY3RfaW5kZXhdLCBlcGlzb2RlKVxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZG1fdXJsID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZG1GdW4/cnVsZT1kbeebkuWtkCcpLmRtUm91dGUob2ZmaWNhbF91cmwpXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlfdXJsID0ge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3BsYXlfdXJsXSxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiBkbV91cmwsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBsYXlfdXJsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcclxcblxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICQubG9nKFxcXCLkvaDpgInkuoZcXFwiICsgc2VsZWN0X2luZGV4ICsgXFxcIiBcXFwiICsgaW5wdXQpXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3dpdGNoIChpbnB1dCkge1xcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBjYXNlICfnm7TmjqXmkq3mlL4nOlxcclxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgcmV0dXJuIHBsYXlfdXJsXFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGRlZmF1bHQ6XFxyXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICByZXR1cm4gcGxheV91cmxcXHJcXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XFxyXFxuICAgICAgICAgICAgICAgICAgICB9LFxcclxcbiAgICAgICAgICAgICAgICAgICAgcHRbMV0sXFxyXFxuICAgICAgICAgICAgICAgICAgICBwdFswXSxcXHJcXG4gICAgICAgICAgICAgICAgICAgIGRzZXQsXFxyXFxuICAgICAgICAgICAgICAgICAgICBkc2VsXFxyXFxuICAgICAgICAgICAgICAgICksXFxyXFxuICAgICAgICAgICAgICAgIC8vICQubG9nKGhhaGEpXFxyXFxuICAgICAgICAgICAgICAgIC8vIGxldCBwbGF5X3VybCA9IHB1cmxcXHJcXG4gICAgICAgICAgICAgICAgLy8gcmV0dXJuIHBsYXlfdXJsXFxyXFxuICAgICAgICAgICAgICAgIC8vIH0sIHB0WzFdKSxcXHJcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzMnLFxcclxcbiAgICAgICAgICAgIH0pXFxyXFxuICAgICAgICB9XFxyXFxuXFxyXFxuICAgICAgICBzb3VjY2Vfb2JqZWN0Wydzb3VyY2VfbmFtZSddID0gSlNPTi5wYXJzZShsaW5lTGlzdFtpdGVtXS5yZXNEYXRhKVswXS5mbGFnXFxyXFxuICAgICAgICBzb3VjY2Vfb2JqZWN0W0pTT04ucGFyc2UobGluZUxpc3RbaXRlbV0ucmVzRGF0YSlbMF0uZmxhZ10gPSBzb3VyY2VfcmVzXFxyXFxuICAgICAgICByZXMucHVzaChzb3VjY2Vfb2JqZWN0KVxcclxcbiAgICB9XFxyXFxufVxcclxcblxcclxcbmZ1bmN0aW9uIHNvdXJjZV90YWIoc2VsZWN0X251bSwgc291cmNlX3JlcywgcmVzKSB7XFxyXFxuICAgIHNlbGVjdF9zb3VyY2UgPSBzb3VyY2VfcmVzW3NlbGVjdF9udW1dXFxyXFxuICAgIGxldCBhcnJfY29sb3IgPSBbXVxcclxcbiAgICBmb3IgKGxldCBpIGluIHNvdXJjZV9yZXMpIHtcXHJcXG4gICAgICAgIGFycl9jb2xvci5wdXNoKCcjMDAwMDAwJylcXHJcXG4gICAgfVxcclxcbiAgICBhcnJfY29sb3JbZ2V0TXlWYXIoJ3NlbGVjdF9zb3VyY2VfbnVtJywgJzAnKV0gPSAnI2ViNzQwMidcXHJcXG5cXHJcXG4gICAgZm9yIChsZXQgdGFiX2l0ZW0gaW4gc291cmNlX3Jlcykge1xcclxcbiAgICAgICAgcmVzLnB1c2goe1xcclxcbiAgICAgICAgICAgIHRpdGxlOlxcclxcbiAgICAgICAgICAgICAgICAn4oCY4oCY4oCZ4oCZPHNwYW4gc3R5bGU9XFxcImNvbG9yOicgK1xcclxcbiAgICAgICAgICAgICAgICBhcnJfY29sb3JbdGFiX2l0ZW1dICtcXHJcXG4gICAgICAgICAgICAgICAgJ1xcXCI+JyArXFxyXFxuICAgICAgICAgICAgICAgIHZpZGVvX3NvdXJjZXNfbmFtZVtzb3VyY2VfcmVzW3RhYl9pdGVtXS5zb3VyY2VfbmFtZV0gK1xcclxcbiAgICAgICAgICAgICAgICAnKCcgK1xcclxcbiAgICAgICAgICAgICAgICBzb3VyY2VfcmVzW3RhYl9pdGVtXVtzb3VyY2VfcmVzW3RhYl9pdGVtXS5zb3VyY2VfbmFtZV0ubGVuZ3RoICtcXHJcXG4gICAgICAgICAgICAgICAgJyk8L3NwYW4+JyxcXHJcXG4gICAgICAgICAgICB1cmw6XFxyXFxuICAgICAgICAgICAgICAgIFxcXCJAbGF6eVJ1bGU9LmpzOnB1dE15VmFyKCdzZWxlY3Rfc291cmNlX251bScsICdcXFwiICtcXHJcXG4gICAgICAgICAgICAgICAgdGFiX2l0ZW0gK1xcclxcbiAgICAgICAgICAgICAgICBcXFwiJyk7IHB1dE15VmFyKCdpc19kZXRhaWxfY2FjaGUnLCAnMScpOyByZWZyZXNoUGFnZSgpOyAnI25vSGlzdG9yeSNoaWtlcjovL2VtcHR5J1xcXCIsXFxyXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXHJcXG4gICAgICAgIH0pXFxyXFxuICAgIH1cXHJcXG59XFxyXFxuXFxyXFxuZnVuY3Rpb24gc291cmNlX3BsYXlfdXJscyh0cnVlX3VybCkge1xcclxcbiAgICBsZXQgcmVzID0gW11cXHJcXG4gICAgbGV0IGh0bWwgPSAnJ1xcclxcbiAgICBpZiAoZ2V0TXlWYXIoJ2lzX2RldGFpbF9jYWNoZScpID09ICcxJykge1xcclxcbiAgICAgICAgaHRtbCA9IGdldE15VmFyKCdkZXRhaWxfY2FjaGUnLCAnJylcXHJcXG4gICAgfSBlbHNlIHtcXHJcXG4gICAgICAgIGh0bWwgPSBmZXRjaCh0cnVlX3VybClcXHJcXG4gICAgICAgIHB1dE15VmFyKCdkZXRhaWxfY2FjaGUnLCBodG1sKVxcclxcbiAgICB9XFxyXFxuXFxyXFxuICAgIGxldCBjdXJyZW50X2lkID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcjY3VycmVudF9pZCYmdmFsdWUnKVxcclxcbiAgICBsZXQgZV90b2tlbiA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnI2VfdG9rZW4mJnZhbHVlJylcXHJcXG4gICAgbGV0IHRpdGxlID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICdoMi5tZXRhLnRpdGxlJiZUZXh0JylcXHJcXG4gICAgbGV0IGR0aXRsZSA9IHRpdGxlXFxyXFxuICAgIGxldCB0aXRsZTIgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJ2gzLm1ldGEsMCYmVGV4dCcpXFxyXFxuICAgIHRpdGxlID0gJ+KAmOKAmOKAmeKAmTxzcGFuIHN0eWxlPVxcXCJjb2xvcjojRDkyNjJDXFxcIj4nICsgdGl0bGUgKyAnPC9zcGFuPidcXHJcXG4gICAgLy8gdGl0bGUyID0gJ+KAmOKAmOKAmeKAmTxzbWFsbD4nICsgdGl0bGUyICsgJzwvc21hbGw+J1xcclxcbiAgICAvLyB0aXRsZSA9IHRpdGxlICsgJ1xcXFxuJyArIHRpdGxlMlxcclxcbiAgICBsZXQgZGVzYyA9ICcnXFxyXFxuICAgIHRyeSB7XFxyXFxuICAgICAgICBkZXNjID0gdGl0bGUyICsgJ1xcXFxuJ1xcclxcbiAgICAgICAgZGVzYyArPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJ2gzLm1ldGEsMSYmVGV4dCcpICsgJ1xcXFxuJ1xcclxcbiAgICAgICAgZGVzYyArPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJ2gzLm1ldGEsMiYmVGV4dCcpICsgJ1xcXFxuJ1xcclxcbiAgICAgICAgZGVzYyArPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJ2gzLm1ldGEsMyYmVGV4dCcpXFxyXFxuICAgIH0gY2F0Y2gge31cXHJcXG4gICAgbGV0IHBpY191cmwgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJ2ltZy5jb3ZlciYmZGF0YS1zcmMnKVxcclxcbiAgICByZXMucHVzaCh7XFxyXFxuICAgICAgICB0aXRsZTogdGl0bGUsXFxyXFxuICAgICAgICBkZXNjOiBkZXNjLFxcclxcbiAgICAgICAgcGljX3VybDogcGljX3VybCArICdAUmVmZXJlcj1odHRwczovL3d3dy5pa2FuYm90LmNvbScsXFxyXFxuICAgICAgICAvLyB1cmw6ICdodHRwczovL3d3dy5kb3ViYW4uY29tJyxcXHJcXG4gICAgICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cicsXFxyXFxuICAgICAgICBleHRyYToge1xcXCJncmFkaWVudFxcXCI6IHRydWV9XFxyXFxuICAgIH0pXFxyXFxuXFxyXFxuICAgIC8vIOiOt+WPlua6kOeahOaSreaUvuWIl+ihqFxcclxcbiAgICBsZXQgc291cmNlX3JlcyA9IFtdXFxyXFxuICAgIGxldCBzZWxlY3Rfc291cmNlX251bSA9IGdldE15VmFyKCdzZWxlY3Rfc291cmNlX251bScsICcwJylcXHJcXG4gICAgZ2V0X3NvdXJjZV9saXN0KGN1cnJlbnRfaWQsIGVfdG9rZW4sIHNvdXJjZV9yZXMsIGR0aXRsZSlcXHJcXG4gICAgbGV0IGRlc2MyID0gZ2V0X2RvdWJhbl9kZXNjKGR0aXRsZSlcXHJcXG4gICAgcmVzLnB1c2goe1xcclxcbiAgICAgICAgdGl0bGU6ICc8c3BhbiBzdHlsZT1cXFwiY29sb3I6JyArICcjMWFiOTZjJyArICdcXFwiPicgKyAn566A5LuLOiAnICsgJzwvc3Bhbj48YnI+JyArIGRlc2MyLFxcclxcbiAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxcclxcbiAgICAgICAgLy8gZXh0cmE6IHtsaW5lVmlzaWJsZTogZmFsc2V9XFxyXFxuICAgIH0pXFxyXFxuXFxyXFxuICAgIHJlcy5wdXNoKHtcXHJcXG4gICAgICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNwYW4gc3R5bGU9XFxcImNvbG9yOicgKyAnIzA5OEFDMScgKyAnXFxcIj4nICsgJ+adpea6kDogJyArICc8L3NwYW4+JyxcXHJcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXHJcXG4gICAgICAgIGV4dHJhOiB7IGxpbmVWaXNpYmxlOiBmYWxzZSB9LFxcclxcbiAgICB9KVxcclxcblxcclxcbiAgICBzb3VyY2VfcmVzID0gc29ydF9zb3VyY2Uoc291cmNlX3JlcylcXHJcXG5cXHJcXG4gICAgLy8g5p2l5rqQ6YCJ6aG55oyJ6ZKuXFxyXFxuICAgIHNvdXJjZV90YWIoc2VsZWN0X3NvdXJjZV9udW0sIHNvdXJjZV9yZXMsIHJlcylcXHJcXG5cXHJcXG4gICAgLy8g5p2l5rqQ5pKt5pS+5Zyw5Z2AXFxyXFxuICAgIGxldCBwbGF5X3VybHMgPSBzb3VyY2VfcmVzW3NlbGVjdF9zb3VyY2VfbnVtXVtzb3VyY2VfcmVzW3NlbGVjdF9zb3VyY2VfbnVtXS5zb3VyY2VfbmFtZV1cXHJcXG5cXHJcXG4gICAgZm9yIChsZXQgcGxheV91cmwgb2YgcGxheV91cmxzKSB7XFxyXFxuICAgICAgICByZXMucHVzaChwbGF5X3VybClcXHJcXG4gICAgfVxcclxcblxcclxcbiAgICBwdXRNeVZhcignaXNfZGV0YWlsX2NhY2hlJywgJzAnKVxcclxcblxcclxcbiAgICByZXR1cm4gcmVzXFxyXFxufVxcclxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiZG91YmFuX2Rlc2NcIixcInBhdGhcIjpcImRvdWJhbl9kZXNjXCIsXCJydWxlXCI6XCJmdW5jdGlvbiBnZXRfZG91YmFuX2Rlc2Moa2V5d29yZCkge1xcclxcbiAgICBsZXQgZGVzYzIgPSB7fVxcclxcbiAgICBsZXQgZGVzYyA9IFxcXCLml6BcXFwiXFxyXFxuICAgIGlmIChnbG9iYWxNYXAwLmhhc015VmFyKCdkZXNjMicpKSB7XFxyXFxuICAgICAgICBkZXNjMiA9IGdsb2JhbE1hcDAuZ2V0TXlWYXIoJ2Rlc2MyJywge30pXFxyXFxuICAgIH1cXHJcXG5cXHJcXG4gICAgaWYgKGRlc2MyW2tleXdvcmRdKSB7XFxyXFxuICAgICAgICAvLyBsb2coXFxcIuWRveS4reeugOS7i+e8k+WtmFxcXCIpXFxyXFxuICAgICAgICByZXR1cm4gZGVzYzJba2V5d29yZF1cXHJcXG4gICAgfVxcclxcblxcclxcbiAgICBsZXQgaHRtbCA9IGZldGNoKFxcclxcbiAgICAgICAgJ2h0dHBzOi8vbS5kb3ViYW4uY29tL3JleHhhci9hcGkvdjIvc2VhcmNoP3E9JyArIGtleXdvcmQgKyAnJnR5cGU9JmxvY19pZD0mc3RhcnQ9MCZjb3VudD0xMCZzb3J0PXJlbGV2YW5jZScsXFxyXFxuICAgICAgICB7XFxyXFxuICAgICAgICAgICAgaGVhZGVyczoge1xcclxcbiAgICAgICAgICAgICAgICBSZWZlcmVyOiAnaHR0cHM6Ly93d3cuZG91YmFuLmNvbScsXFxyXFxuICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgKVxcclxcblxcclxcbiAgICBodG1sID0gSlNPTi5wYXJzZShodG1sKVxcclxcbiAgICBsZXQgZG91YmFuX3NlY29uZF9zZWFyY2hfdXJsID0gJydcXHJcXG5cXHJcXG4gICAgdHJ5IHtcXHJcXG4gICAgaWYgKGh0bWwuc3ViamVjdHMuaXRlbXMubGVuZ3RoID4gMCkge1xcclxcbiAgICAgICAgZG91YmFuX3NlY29uZF9zZWFyY2hfdXJsID0gaHRtbC5zdWJqZWN0cy5pdGVtc1swXS50YXJnZXQudXJpXFxyXFxuICAgICAgICAgICAgLnJlcGxhY2UoJ21vdmllJywgJ3N1YmplY3QnKVxcclxcbiAgICAgICAgICAgIC5yZXBsYWNlKCd0dicsICdzdWJqZWN0JylcXHJcXG4gICAgICAgICAgICAucmVwbGFjZSgnZG91YmFuOi8vJywgJ2h0dHBzOi8vbW92aWUuJylcXHJcXG4gICAgfSBlbHNlIHtcXHJcXG4gICAgICAgIGRvdWJhbl9zZWNvbmRfc2VhcmNoX3VybCA9IGh0bWwuc21hcnRfYm94WzBdLnRhcmdldC51cmlcXHJcXG4gICAgICAgICAgICAucmVwbGFjZSgnbW92aWUnLCAnc3ViamVjdCcpXFxyXFxuICAgICAgICAgICAgLnJlcGxhY2UoJ3R2JywgJ3N1YmplY3QnKVxcclxcbiAgICAgICAgICAgIC5yZXBsYWNlKCdkb3ViYW46Ly8nLCAnaHR0cHM6Ly9tb3ZpZS4nKVxcclxcbiAgICB9XFxyXFxuXFxyXFxuICAgIGh0bWwgPSBmZXRjaChkb3ViYW5fc2Vjb25kX3NlYXJjaF91cmwsIHtcXHJcXG4gICAgICAgIGhlYWRlcnM6IHtcXHJcXG4gICAgICAgICAgICBSZWZlcmVyOiAnaHR0cHM6Ly93d3cuZG91YmFuLmNvbScsXFxyXFxuICAgICAgICB9LFxcclxcbiAgICB9KVxcclxcbiAgICB9IGNhdGNoe1xcclxcblxcclxcbiAgICB9XFxyXFxuICAgIGRlc2MgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJ2JvZHkmJmRpdi5iZCYmcCYmVGV4dCcpXFxyXFxuXFxyXFxuICAgIC8vIGxvZyhcXFwi6K6+572u566A5LuL57yT5a2YXFxcIilcXHJcXG4gICAgZGVzYzJba2V5d29yZF0gPSBkZXNjXFxyXFxuICAgIGdsb2JhbE1hcDAucHV0TXlWYXIoJ2Rlc2MyJywgZGVzYzIpXFxyXFxuICAgIC8vIGxvZyhkZXNjKVxcclxcbiAgICByZXR1cm4gZGVzY1xcclxcbn1cXHJcXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcImdldF9kYW5tdVwiLFwicGF0aFwiOlwiZ2V0X2Rhbm11XCIsXCJydWxlXCI6XCIvLyBzZWFyY2hfMzYwKCflroznvo7kuJbnlYwnKVxcclxcbi8vIGdldF9vZmZpY2FsX2xpbmsoXFxyXFxuLy8gICAgIHtcXHJcXG4vLyAgICAgICAgIGNhdF9pZDogJzQnLFxcclxcbi8vICAgICAgICAgZW5faWQ6ICdPVUhrYko3bUxvM3dERCcsXFxyXFxuLy8gICAgICAgICBzaXRlOiBbJ3FxJywgJ3FpeWknXSxcXHJcXG4vLyAgICAgICAgIHRpdGxlOiAn5a6M576O5LiW55WMJyxcXHJcXG4vLyAgICAgICAgIGNhdGVnb3J5OiAn5Yqo5ryrJyxcXHJcXG4vLyAgICAgICAgIGluZm86ICfmm7TmlrDoh7MxNTXpm4YnLFxcclxcbi8vICAgICB9LFxcclxcbi8vICAgICAwLFxcclxcbi8vICAgICAxNTBcXHJcXG4vLyApXFxyXFxuXFxyXFxuZnVuY3Rpb24gc2VhcmNoXzM2MChrZXlfd29yZCkge1xcclxcbiAgICAvLyAkLmxvZyhrZXlfd29yZClcXHJcXG4gICAgbGV0IHJlc18zNjAgPSBbXVxcclxcblxcclxcbiAgICBsZXQgaHRtbCA9IGZldGNoKCdodHRwczovL2FwaS5zby4zNjBrYW4uY29tL2luZGV4P2t3PScgKyBrZXlfd29yZCwge1xcclxcbiAgICAgICAgaGVhZGVyczoge1xcclxcbiAgICAgICAgICAgIFJlZmVyZXI6ICdodHRwczovL3ZpZGVvLjM2MGthbi5jb20vJyxcXHJcXG4gICAgICAgICAgICAnVXNlci1BZ2VudCc6XFxyXFxuICAgICAgICAgICAgICAgICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTIyLjAuMC4wIFNhZmFyaS81MzcuMzYnLFxcclxcbiAgICAgICAgfSxcXHJcXG4gICAgfSlcXHJcXG5cXHJcXG4gICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbClcXHJcXG4gICAgLy8gbG9nKGh0bWwpXFxyXFxuICAgIC8vIGh0bWwuZGF0YS5sb25nRGF0YS5sZW5ndGhcXHJcXG4gICAgaWYgKGh0bWwuZGF0YS5sb25nRGF0YS5yb3dzKSB7XFxyXFxuICAgICAgICBmb3IgKGxldCBpdGVtIG9mIGh0bWwuZGF0YS5sb25nRGF0YS5yb3dzKSB7XFxyXFxuICAgICAgICAgICAgbGV0IHJlc19pdGVtID0ge31cXHJcXG4gICAgICAgICAgICByZXNfaXRlbS5jYXRfaWQgPSBpdGVtLmNhdF9pZFxcclxcbiAgICAgICAgICAgIHJlc19pdGVtLmVuX2lkID0gaXRlbS5lbl9pZFxcclxcbiAgICAgICAgICAgIHJlc19pdGVtLnNpdGUgPSBpdGVtLnBsYXlsaW5rc1xcclxcbiAgICAgICAgICAgIHJlc19pdGVtLnRpdGxlID0gaXRlbS50aXRsZVR4dFxcclxcbiAgICAgICAgICAgIHJlc19pdGVtLmNhdF9uYW1lID0gaXRlbS5jYXRfbmFtZVxcclxcbiAgICAgICAgICAgIHJlc19pdGVtLmNhdGVnb3J5ID0gaXRlbS5jYXRfbmFtZVxcclxcbiAgICAgICAgICAgIHJlc19pdGVtLmluZm8gPSBpdGVtLmNvdmVySW5mby50eHQgPyBpdGVtLmNvdmVySW5mby50eHQgOiAnJ1xcclxcbiAgICAgICAgICAgIHJlc18zNjAucHVzaChyZXNfaXRlbSlcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgfVxcclxcblxcclxcbiAgICByZXR1cm4gcmVzXzM2MFxcclxcbn1cXHJcXG5cXHJcXG5mdW5jdGlvbiBnZXRfb2ZmaWNhbF9saW5rKGl0ZW0sIGVwaXNvZGUpIHtcXHJcXG4gICAgLy8gJC5sb2coaXRlbSlcXHJcXG4gICAgLy8gJC5sb2coZXBpc29kZSlcXHJcXG5cXHJcXG4gICAgbGV0IG9mZmljYWxfbGluayA9ICcnXFxyXFxuXFxyXFxuICAgIGxldCBwYXJhbV9zID0gZW5jb2RlVVJJQ29tcG9uZW50KFxcclxcbiAgICAgICAgJ1t7XFxcImNhdF9pZFxcXCI6XFxcIicgKyBpdGVtLmNhdF9pZCArICdcXFwiLFxcXCJlbnRfaWRcXFwiOlxcXCInICsgaXRlbS5lbl9pZCArICdcXFwiLFxcXCJzaXRlXFxcIjpcXFwiJyArIGl0ZW0uc2l0ZSArICdcXFwifV0nXFxyXFxuICAgIClcXHJcXG5cXHJcXG4gICAgbGV0IGh0bWwgPSBmZXRjaCgnaHR0cHM6Ly9hcGkuc28uMzYwa2FuLmNvbS9lcGlzb2Rlc3YyP3ZfYXA9MSZzPScgKyBwYXJhbV9zICsgJyZjYj1fX2pwNScsIHtcXHJcXG4gICAgICAgIGhlYWRlcnM6IHtcXHJcXG4gICAgICAgICAgICBSZWZlcmVyOiAnaHR0cHM6Ly92aWRlby4zNjBrYW4uY29tLycsXFxyXFxuICAgICAgICAgICAgJ1VzZXItQWdlbnQnOlxcclxcbiAgICAgICAgICAgICAgICAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMi4wLjAuMCBTYWZhcmkvNTM3LjM2JyxcXHJcXG4gICAgICAgIH0sXFxyXFxuICAgIH0pXFxyXFxuXFxyXFxuICAgIGh0bWwgPSBodG1sLm1hdGNoKC9fX2pwLio/XFxcXCgoLio/KVxcXFwpOy8pWzFdXFxyXFxuICAgIGh0bWwgPSBKU09OLnBhcnNlKGh0bWwpXFxyXFxuXFxyXFxuICAgIGlmIChodG1sLmRhdGEubGVuZ3RoID09IDApIHtcXHJcXG4gICAgICAgIG9mZmljYWxfbGluayA9IGl0ZW0ucGxheWxpbmtzW2l0ZW0uc2l0ZV1cXHJcXG4gICAgfSBlbHNlIHtcXHJcXG4gICAgICAgIG9mZmljYWxfbGluayA9IGh0bWwuZGF0YVswXS5zZXJpZXNIVE1MLnNlcmllc1BsYXlsaW5rc1tlcGlzb2RlIC0gMV0udXJsXFxyXFxuICAgIH1cXHJcXG5cXHJcXG4gICAgcmV0dXJuICQubG9nKG9mZmljYWxfbGluaylcXHJcXG59XFxyXFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJ0ZXN0XCIsXCJwYXRoXCI6XCJ0ZXN0XCIsXCJydWxlXCI6XCIkLmV4cG9ydHMudGVzdF9mdW4gPSAoKSA9PiB7XFxyXFxuICAgIC8vIHN0b3JhZ2UwLnNldEl0ZW0oXFxcImlrYW5ib3RcXFwiLCBbXFxcIueIseeci+acuuWZqOS6uueahEl0ZW1cXFwiXSlcXHJcXG4gICAgLy8gLy8gc3RvcmFnZTAuc2V0UHVibGljSXRlbShcXFwiaWthbmJvdFxcXCIsW1xcXCLniLHnnIvmnLrlmajkurrnmoRJdGVtXFxcIl0gKVxcclxcbiAgICAvLyAvLyBjbGVhckl0ZW0oXFxcImlrYW5ib3RcXFwiKVxcclxcbiAgICAvLyAkLmxvZyhsaXN0TXlWYXJLZXlzKCkpXFxyXFxuICAgIC8vICQubG9nKHN0b3JhZ2UwLmdldEl0ZW0oXFxcImlrYW5ib3RcXFwiKSlcXHJcXG4gICAgJC5sb2coXFxcIua1i+ivlXJlcXVpcmXmlrnms5VcXFwiKVxcclxcbn1cXHJcXG4kLmxvZyhcXFwi5rWL6K+VcmVxdWlyZeaWueazlTEyMzEyM1xcXCIpXFxyXFxuJC5sb2cobGFsYSlcIn1dIiwiaWNvbiI6Imh0dHBzOi8vdi5pa2FuYm90LmNvbS9yZXNvdXJjZXMvbG9nby5zdmciLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment