Advertisement
xiaomianao666

邀您一起看:电影《铃芽之旅》完整版_免费在线观看- 新碟调网-🔗http://wap.618648.com/d...

Apr 7th, 2023
1,171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥电影《铃芽之旅》完整版_免费在线观看- 新碟调网-🔗http://wap.618648.com/d...@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuiOt+WPluinhumikeebruW9lVwiLFwicGF0aFwiOlwiZ2V0X3ZpZGVvX2NhdGFsb2d1ZS5qc1wiLFwicnVsZVwiOlwiZnVuY3Rpb24gaXNNb3ZpZSh0ZXh0KSB7XFxuXFxuICAgIGlmICh0ZXh0Lmxlbmd0aCA+IDgpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgfVxcbiAgICAvL+aOkumZpFxcbiAgICBsZXQgcmVnID0gL1xcXFwufOmrmOa4heebtOaSrXzlhpnnnJ/mjqjojZB85b2x6ZmifOW9seinhnzok53lhYnnlLXlvbF86auY5riF55S15b2xfOesrOS4gOWto3znrKzkuozlraN856ys5LiJ5a2jfOesrOWbm+Wto3znrKzkupTlraN8XFxcXG58XFxcXHIvO1xcbiAgICBpZiAocmVnLnRlc3QodGV4dCkpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgfVxcbiAgICByZXR1cm4gLyjljp/nlLt85aSH55SofOiTneWFiXzotoXmuIV86auY5riFfOato+eJh3zpn6nniYh8NEt8MTA4MFB8NzIwUHxUQ3xIRHxCRHzkuK3lrZd854mIKSQvaS50ZXN0KHRleHQpO1xcbn1cXG5cXG5mdW5jdGlvbiBub3RDaGFwdGVyKHRleHQpIHtcXG4gICAgcmV0dXJuIC9bMC05XVxcXFwuWzAtOV3liIYvLnRlc3QodGV4dCk7XFxufVxcbmxldCBsYXN0ID0gbnVsbDtcXG5cXG5mdW5jdGlvbiBpc0NoYXB0ZXIwKHRleHQsIG5leHRUZXh0KSB7XFxuICAgIGxldCBwcmkgPSAvXuesrFxcXFxkKyjpm4Z856ugfOivnSkkLztcXG4gICAgaWYgKHByaS50ZXN0KHRleHQpKSB7XFxuICAgICAgICAvL2ZiYS5sb2coXFxcImRlYnVnOlxcXCIgKyBSZWdFeHAuJDEgKyB0ZXh0KVxcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG5cXG4gICAgbGV0IG51bTEgPSBOdW1iZXIodGV4dCk7XFxuICAgIGlmICghdGV4dCB8fCBOdW1iZXIuaXNOYU4obnVtMSkpIHtcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXG4gICAgfVxcbiAgICBpZiAobnVtMSA9PT0gMSkge1xcbiAgICAgICAgLy9mYmEubG9nKFxcXCJkZWJ1ZzpcXFwiICsgbnVtMSArIHRleHQpXFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXG4gICAgfVxcbiAgICBpZiAobmV4dFRleHQgPT09IG51bGwpIHtcXG4gICAgICAgIC8vZmJhLmxvZyhcXFwiZGVidWc6XFxcIiArIG51bTEgKyBuZXh0VGV4dClcXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICB9XFxuICAgIGxldCBudW0yID0gTnVtYmVyKG5leHRUZXh0KTtcXG4gICAgaWYgKE51bWJlci5pc05hTihudW0yKSkge1xcbiAgICAgICAgaWYgKGxhc3QgJiYgKGxhc3QgLSBudW0xIDwgMiAmJiBsYXN0IC0gbnVtMSA+IC0yKSkge1xcbiAgICAgICAgICAgIC8vZmJhLmxvZyhcXFwiZGVidWc6XFxcIiArIGxhc3QpXFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG4gICAgaWYgKG51bTEgLSBudW0yIDwgMiAmJiBudW0xIC0gbnVtMiA+IC0yIC8qJiZudW0xIC0gbnVtMiE9PTAqLyApIHtcXG4gICAgICAgIGZiYS5sb2coXFxcImRlYnVnOlxcXCIgKyBudW0xICsgdGV4dCArIG51bTIgKyBuZXh0VGV4dClcXG4gICAgICAgIGxhc3QgPSBudW0xO1xcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG59XFxuXFxuZnVuY3Rpb24gaXNDaGFwdGVyKHRleHQsIG5leHRUZXh0KSB7XFxuICAgIHRleHQgPSB0ZXh0LnRyaW0oKTtcXG4gICAgbmV4dFRleHQgPSBuZXh0VGV4dCA/IG5leHRUZXh0LnRyaW0oKSA6IG5leHRUZXh0O1xcbiAgICBpZiAoIXRleHQgfHwgbm90Q2hhcHRlcih0ZXh0KSkge1xcbiAgICAgICAgLy/kvJjlhYjmjpLpmaRcXG4gICAgICAgIC8vZmJhLmxvZyhcXFwiMOaOkumZpDpcXFwiK3RleHQpXFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgIH1cXG4gICAgLy/liKTmlq3mmK/kuI3mmK/nlLXlvbFcXG4gICAgaWYgKGlzTW92aWUodGV4dCkpIHtcXG4gICAgICAgIC8vZmJhLmxvZyhcXFwiMeaYr+eUteW9sTpcXFwiICsgdGV4dClcXG4gICAgICAgIHJldHVybiB0cnVlO1xcbiAgICB9XFxuXFxuICAgIGlmIChpc0NoYXB0ZXIwKHRleHQsIG5leHRUZXh0KSkge1xcbiAgICAgICAgLy9mYmEubG9nKFxcXCIy5piv5Ymn6ZuGOlxcXCIgKyB0ZXh0KVxcbiAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgIH1cXG4gICAgLy9mYmEubG9nKHRleHQpXFxuICAgIHJldHVybiBmYWxzZTtcXG59XFxuLy90b3DmtY/op4jlmajihpNcXG52YXIgbGlzdF9kb2N1bWVudF9saW5rID0gW107XFxudmFyIGxpc3RfbGluayA9IFtdO1xcbnZhciB5bXVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xcbnZhciBjaG9vc2VfY2hhbm5lbCA9IDA7XFxubGlzdF9kb2N1bWVudF9saW5rID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYScpO1xcbnZhciB0b3BfaiA9IDA7XFxuXFxuZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0X2RvY3VtZW50X2xpbmsubGVuZ3RoOyBpKyspIHtcXG4gICAgdmFyIHRleHQgPSBsaXN0X2RvY3VtZW50X2xpbmtbaV0uaW5uZXJUZXh0O1xcbiAgICB2YXIgaHJlZiA9IGxpc3RfZG9jdW1lbnRfbGlua1tpXS5ocmVmO1xcbiAgICB2YXIgbmV4dFRleHQgPSBpICsgMSA+PSBsaXN0X2RvY3VtZW50X2xpbmsubGVuZ3RoID8gbnVsbCA6IGxpc3RfZG9jdW1lbnRfbGlua1tpICsgMV0uaW5uZXJUZXh0O1xcbiAgICBpZiAodGV4dCAmJiBpc0NoYXB0ZXIodGV4dCwgbmV4dFRleHQpICYmIGhyZWYgJiYgaHJlZi5pbmRleE9mKCdodHRwJykgPiAtMSAmJiBocmVmLmluZGV4T2YoeW11cmwgKyBcXFwiI1xcXCIpID09IC0xKSB7XFxuICAgICAgICBpZiAobGlzdF9kb2N1bWVudF9saW5rW2ldLnRhcmdldCA9PSAnX2JsYW5rJykge1xcbiAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGxpc3RfbGlua1t0b3Bfal0gPT09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgIGxpc3RfbGlua1t0b3Bfal0gPSBbXTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChocmVmID09IGxvY2F0aW9uLmhyZWYpIHtcXG4gICAgICAgICAgICBjaG9vc2VfY2hhbm5lbCA9IHRvcF9qO1xcbiAgICAgICAgfVxcbiAgICAgICAgdmFyIHNzID0gdGV4dC5yZXBsYWNlKC9bXlxcXFxkK10vZywgJycpO1xcbiAgICAgICAgaWYgKHNzLmluZGV4T2YoMCkgPT09IDApIHtcXG4gICAgICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCcwJywgJycpO1xcbiAgICAgICAgfVxcbiAgICAgICAgdmFyIGlzX3JlcGVhdCA9IGZhbHNlO1xcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaXN0X2xpbmtbdG9wX2pdLmxlbmd0aDsgaisrKSB7XFxuICAgICAgICAgICAgaWYgKGxpc3RfbGlua1t0b3Bfal1bal0uaHJlZiA9PSBocmVmKSB7XFxuICAgICAgICAgICAgICAgIGlzX3JlcGVhdCA9IHRydWU7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAobGlzdF9saW5rW3RvcF9qXVtqXS50ZXh0ID09IHRleHQpIHtcXG4gICAgICAgICAgICAgICAgdG9wX2ogKz0gMTtcXG4gICAgICAgICAgICAgICAgbGlzdF9saW5rW3RvcF9qXSA9IFtdO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChpc19yZXBlYXQpIHtcXG4gICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIHZhciBzdGQgPSB7fTtcXG4gICAgICAgIHN0ZC51cmwgPSBocmVmO1xcbiAgICAgICAgc3RkLnRleHQgPSB0ZXh0O1xcbiAgICAgICAgLy/mjpLpmaTlubTku6NcXG4gICAgICAgIGxldCByZWcgPSAvMXwyWzAtOV0rLztcXG4gICAgICAgIGlmICh0ZXh0Lmxlbmd0aCA9PSA0ICYmIHJlZy50ZXN0KHRleHQpKSB7XFxuICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICB9XFxuICAgICAgICBsaXN0X2xpbmtbdG9wX2pdLnB1c2goc3RkKTtcXG4gICAgfVxcbn1cXG4vL2h0bWxJbnRlcmZhY2UuZ2V0VmlkZW9DYXRhbG9ndWUoSlNPTi5zdHJpbmdpZnkobGlzdF9saW5rKSk7XFxuLy90b3DmtY/op4jlmajihpFcXG4vL2ZiYS5sb2coSlNPTi5zdHJpbmdpZnkobGlzdF9saW5rKSlcXG5pZiAobGlzdF9saW5rLmxlbmd0aCA9PSAxICYmIGxpc3RfbGlua1swXS5sZW5ndGggPD0gMCkge1xcbiAgICAvL2VtcHR5XFxufSBlbHNlIHtcXG4gICAgaWYgKGxpc3RfbGluay5sZW5ndGggPiAwKSB7XFxuICAgICAgICB3aW5kb3cuX19meVN1Y2Nlc3MgPSB0cnVlO1xcbiAgICAgICAgZmJhLm9wZW4oSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgIHJ1bGU6IGZ5X3RpdGxlLFxcbiAgICAgICAgICAgIHRpdGxlOiBkb2N1bWVudC50aXRsZSxcXG4gICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2UvdmlkZW9fY2F0YWxvZ3VlX3ZpZXcuanM/cnVsZT1cXFwiICsgZnlfdGl0bGUsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgbGlzdF9saW5rOiBsaXN0X2xpbmssXFxuICAgICAgICAgICAgICAgIGhyZWY6IGxvY2F0aW9uLmhyZWYsXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBkb2N1bWVudC50aXRsZVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pKTtcXG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LmJhY2soLTEpO1xcbiAgICB9XFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6KeG6aKR55uu5b2VXCIsXCJwYXRoXCI6XCJ2aWRlb19jYXRhbG9ndWVfdmlldy5qc1wiLFwicnVsZVwiOlwianM6XFxubGV0IGQgPSBbXTtcXG5sZXQgaSA9IDE7XFxuZm9yIChsZXQgcGxheUxpc3Qgb2YgTVlfUEFSQU1TLmxpc3RfbGluaykge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLnur/ot69cXFwiICsgaSsrLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgfSk7XFxuICAgIGZvciAobGV0IGxpIG9mIHBsYXlMaXN0KSB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBsaS50ZXh0LFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF80XFxcIixcXG4gICAgICAgICAgICB1cmw6IFxcXCJ2aWRlbzovL1xcXCIrbGkudXJsLFxcbiAgICAgICAgICAgIGV4dHJhOntcXG4gICAgICAgICAgICAgICAgYmxvY2tSdWxlczogW1xcXCIvYWQvXFxcIiwgXFxcImdvb2dsZVxcXCIsIFxcXCIvc2gvdG8vXFxcIiwgXFxcIi5HSUZcXFwiLCcubXAzJywnLmZsdicsICcuM2dwJywgJy5tcGVnJywgJy5naWYnLCAnLmpwZycsICcuanBlZycsICcucG5nJywgJy5pY28nLCAnLnN2ZyddLFxcbiAgICAgICAgICAgICAgICB2aWRlb0V4Y2x1ZGVSdWxlczogWyc/dXJsPSddXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgIH1cXG59XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9JyNhYWFhYWEnPvCflJdcXFwiICsgTVlfUEFSQU1TLmhyZWYgKyBcXFwiPC9mb250Pjwvc21hbGw+XFxcIixcXG4gICAgdXJsOiBcXFwiaGlrZXI6Ly9wYWdlL3g1P3U9XFxcIiArIGJhc2U2NEVuY29kZShNWV9QQVJBTVMuaHJlZiksXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIixcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIHBhZ2VUaXRsZTogTVlfUEFSQU1TLnRpdGxlLFxcbiAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgIH1cXG59KTtcXG5cXG5zZXRSZXN1bHQoZCk7XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmibnph4/lr7zlhaVcIixcInBhdGhcIjpcImltXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbmxldCBhID0gZ2V0UGFyYW0oXFxcImFcXFwiLCBcXFwiXFxcIik7XFxuaWYgKGEgIT0gXFxcIlxcXCIpIHtcXG4gICAgYSA9IGJhc2U2NERlY29kZShhKTtcXG59XFxuc2V0UGFnZVRpdGxlKE1ZX1JVTEUudGl0bGUgKyBcXFwi5om56YeP5a+85YWlXFxcIilcXG5wdXRNeVZhcihcXFwiaW1cXFwiLCBhKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIlxcXCIsXFxuICAgIHVybDogXFxcIlxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwiaW5wdXRcXFwiLFxcbiAgICBkZXNjOiBcXFwiXFxcIixcXG4gICAgcGljX3VybDogXFxcIlxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGEsXFxuICAgICAgICBvbkNoYW5nZTogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcImltXFxcIiwgaW5wdXQpO1xcbiAgICAgICAgfSksXFxuICAgICAgICB0aXRsZVZpc2libGU6IGZhbHNlLFxcbiAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXG4gICAgICAgIGhlaWdodDogMyxcXG4gICAgICAgIGhpZ2hsaWdodDogdHJ1ZVxcbiAgICB9XFxufSk7XFxuXFxubGV0IHNhdmUgPSAoKSA9PiB7XFxuICAgIGxldCBhID0gZ2V0TXlWYXIoXFxcImltXFxcIiwgXFxcIltdXFxcIik7XFxuICAgIGlmIChhID09IFxcXCJcXFwiIHx8ICFhLnN0YXJ0c1dpdGgoXFxcIltcXFwiKSkge1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ivt+i+k+WFpeato+ehrueahOagvOW8j1xcXCJcXG4gICAgfVxcbiAgICBsZXQgbGlzdCA9IEpTT04ucGFyc2UoYSk7XFxuICAgIGxldCB7XFxuICAgICAgICBhZGRBbGxcXG4gICAgfSA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2RhdGFcXFwiKTtcXG4gICAgbGV0IGNvdW50ID0gYWRkQWxsKGxpc3QpO1xcbiAgICBiYWNrKHRydWUpO1xcbiAgICByZXR1cm4gXFxcInRvYXN0Oi8v5bey5re75YqgXFxcIiArIGNvdW50ICsgXFxcIuadoeWcsOWdgFxcXCJcXG59O1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5a+85YWlXFxcIixcXG4gICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKHNhdmUpLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiLFxcbiAgICBkZXNjOiBcXFwiXFxcIixcXG4gICAgcGljX3VybDogXFxcIlxcXCJcXG59KTtcXG5cXG5pZiAoZ2V0UGFyYW0oXFxcImJcXFwiLCBcXFwiMFxcXCIpID09IFxcXCIxXFxcIikge1xcbiAgICBjb25maXJtKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi5rip6aao5o+Q56S6XFxcIixcXG4gICAgICAgIGNvbnRlbnQ6IFxcXCLnoa7lrprnq4vljbPlr7zlhaVcXFwiICsgTVlfUlVMRS50aXRsZSArIFxcXCLmlbDmja7vvJ9cXFwiLFxcbiAgICAgICAgY29uZmlybTogJC50b1N0cmluZyhzYXZlKVxcbiAgICB9KTtcXG59XFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5re75Yqg572R56uZXCIsXCJwYXRoXCI6XCJhZGRcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuYWRkTGlzdGVuZXIoXFxcIm9uQ2xvc2VcXFwiLCAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgY2xlYXJNeVZhcihcXFwibmFtZVxcXCIpO1xcbiAgICBjbGVhck15VmFyKFxcXCJ1cmxcXFwiKTtcXG59KSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCJcXFwiLFxcbiAgICB1cmw6IFxcXCJcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcImlucHV0XFxcIixcXG4gICAgZGVzYzogXFxcIuivt+i+k+WFpee9keermeWQjeensFxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBvbkNoYW5nZTogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcIm5hbWVcXFwiLCBpbnB1dCk7XFxuICAgICAgICB9KSxcXG4gICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2VcXG4gICAgfVxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwiXFxcIixcXG4gICAgdXJsOiBcXFwiXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJpbnB1dFxcXCIsXFxuICAgIGRlc2M6IFxcXCLor7fovpPlhaXnvZHnq5nlnLDlnYBcXFwiLFxcbiAgICBleHRyYToge1xcbiAgICAgICAgb25DaGFuZ2U6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgIHB1dE15VmFyKFxcXCJ1cmxcXFwiLCBpbnB1dCk7XFxuICAgICAgICB9KSxcXG4gICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2VcXG4gICAgfVxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5re75Yqg5L+d5a2YXFxcIixcXG4gICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgIGxldCBuYW1lID0gZ2V0TXlWYXIoXFxcIm5hbWVcXFwiLCBcXFwiXFxcIik7XFxuICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoXFxcInVybFxcXCIsIFxcXCJcXFwiKTtcXG4gICAgICAgIGlmIChuYW1lID09IFxcXCJcXFwiIHx8IHVybCA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/or7fovpPlhaXlrozmlbTkv6Hmga9cXFwiXFxuICAgICAgICB9XFxuICAgICAgICBsZXQge1xcbiAgICAgICAgICAgIGFkZFxcbiAgICAgICAgfSA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2RhdGFcXFwiKTtcXG4gICAgICAgIGFkZChuYW1lLCB1cmwpO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7Lmt7vliqBcXFwiXFxuICAgIH0pLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiLFxcbiAgICBkZXNjOiBcXFwiXFxcIixcXG4gICAgcGljX3VybDogXFxcIlxcXCJcXG59KTtcXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmlbDmja7nrqHnkIZcIixcInBhdGhcIjpcImRhdGFcIixcInJ1bGVcIjpcInZhciBkZWZhdWx0VmFsdWUgPSBbXFxuICAgIHtcXG4gICAgICAgIG5hbWU6IFxcXCLosYzosYZcXFwiLFxcbiAgICAgICAgdXJsOiBcXFwiaHR0cHM6Ly93d3cud2FuZG91LnByby9cXFwiXFxuICAgIH0sXFxuICAgIHtcXG4gICAgICAgIG5hbWU6IFxcXCLojLbmna/ni5BcXFwiLFxcbiAgICAgICAgdXJsOiBcXFwiaHR0cHM6Ly9jdXBmb3guYXBwL1xcXCJcXG4gICAgfSxcXG4gICAge1xcbiAgICAgICAgbmFtZTogXFxcIuaQnOeJh1xcXCIsXFxuICAgICAgICB1cmw6IFxcXCJodHRwOi8vc291cGlhbi5kZS9cXFwiXFxuICAgIH0sXFxuICAgIHtcXG4gICAgICAgIG5hbWU6IFxcXCLpnZLpuqZcXFwiLFxcbiAgICAgICAgdXJsOiBcXFwiaHR0cHM6Ly93d3cucWltYWl0di5jb20vXFxcIlxcbiAgICB9LFxcbiAgICB7XFxuICAgICAgICBuYW1lOiBcXFwi55S15b2x54uXXFxcIixcXG4gICAgICAgIHVybDogXFxcImh0dHBzOi8vd3d3LmRpYW55aW5nZ291LmNvbS95aW5na3UvXFxcIlxcbiAgICB9LFxcbiAgICB7XFxuICAgICAgICBuYW1lOiBcXFwi6Iy25p2v6JmOXFxcIixcXG4gICAgICAgIHVybDogXFxcImh0dHBzOi8vd3d3LjcyNTk5OC5jb20veWluZ2t1XFxcIlxcbiAgICB9LFxcbiAgICB7XFxuICAgICAgICBuYW1lOiBcXFwi5Zyf5ouo6bygXFxcIixcXG4gICAgICAgIHVybDogXFxcImh0dHBzOi8vd3d3LnRic2R5LmNvbS9tL2luZGV4Lmh0bWxcXFwiXFxuICAgIH1cXG5dO1xcbiQuZXhwb3J0cyA9IHtcXG4gICAgbG9hZDogZnVuY3Rpb24oKSB7XFxuICAgICAgICByZXR1cm4gc3RvcmFnZTAuZ2V0SXRlbShcXFwiZGF0YTFcXFwiLCBkZWZhdWx0VmFsdWUpO1xcbiAgICB9LFxcbiAgICBhZGQ6IGZ1bmN0aW9uKG5hbWUsIHVybCkge1xcbiAgICAgICAgbGV0IGRhdGEgPSBzdG9yYWdlMC5nZXRJdGVtKFxcXCJkYXRhMVxcXCIsIGRlZmF1bHRWYWx1ZSk7XFxuICAgICAgICBmb3IgKGxldCBpdCBvZiBkYXRhKSB7XFxuICAgICAgICAgICAgaWYgKGl0Lm5hbWUgPT0gbmFtZSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm5cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICBkYXRhLnB1c2goe1xcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXFxuICAgICAgICAgICAgdXJsOiB1cmxcXG4gICAgICAgIH0pO1xcbiAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwiZGF0YTFcXFwiLCBkYXRhKTtcXG4gICAgfSxcXG4gICAgYWRkQWxsOiBmdW5jdGlvbihsaXN0KSB7XFxuICAgICAgICBsZXQgZGF0YSA9IHN0b3JhZ2UwLmdldEl0ZW0oXFxcImRhdGExXFxcIiwgZGVmYXVsdFZhbHVlKTtcXG4gICAgICAgIGxldCBuYW1lcyA9IGRhdGEubWFwKGl0ID0+IGl0Lm5hbWUpO1xcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcXG4gICAgICAgIGZvciAobGV0IGl0IG9mIGxpc3QpIHtcXG4gICAgICAgICAgICBpZiAoIW5hbWVzLmluY2x1ZGVzKGl0Lm5hbWUpKSB7XFxuICAgICAgICAgICAgICAgIGRhdGEucHVzaChpdCk7XFxuICAgICAgICAgICAgICAgIGNvdW50Kys7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwiZGF0YTFcXFwiLCBkYXRhKTtcXG4gICAgICAgIHJldHVybiBjb3VudDtcXG4gICAgfSxcXG4gICAgcmVtb3ZlOiBmdW5jdGlvbihuYW1lKSB7XFxuICAgICAgICBsZXQgZGF0YSA9IHN0b3JhZ2UwLmdldEl0ZW0oXFxcImRhdGExXFxcIiwgZGVmYXVsdFZhbHVlKTtcXG4gICAgICAgIGRhdGEgPSBkYXRhLmZpbHRlcihpdCA9PiBpdC5uYW1lICE9IG5hbWUpO1xcbiAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwiZGF0YTFcXFwiLCBkYXRhKTtcXG4gICAgfSxcXG4gICAgdG9wOiBmdW5jdGlvbihuYW1lKSB7XFxuICAgICAgICBsZXQgZGF0YSA9IHN0b3JhZ2UwLmdldEl0ZW0oXFxcImRhdGExXFxcIiwgZGVmYXVsdFZhbHVlKTtcXG4gICAgICAgIGxldCBpdCA9IGRhdGEuZmlsdGVyKGl0ID0+IGl0Lm5hbWUgPT0gbmFtZSlbMF07XFxuICAgICAgICBsZXQgZCA9IFtdO1xcbiAgICAgICAgZC5wdXNoKGl0KTtcXG4gICAgICAgIGZvciAobGV0IGlpIG9mIGRhdGEpIHtcXG4gICAgICAgICAgICBpZiAoaWkubmFtZSAhPSBuYW1lKSB7XFxuICAgICAgICAgICAgICAgIGQucHVzaChpaSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwiZGF0YTFcXFwiLCBkKTtcXG4gICAgfVxcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcInVcIixcInBhdGhcIjpcInVcIixcInJ1bGVcIjpcIiQuZXhwb3J0cyA9IGZ1bmN0aW9uKHJ1bGUsIG9yaWdpbikge1xcbiAgICByZXR1cm4gJC50b1N0cmluZygocnVsZSwgb3JpZ2luKSA9PiB7XFxuICAgICAgICBpZiAoaW5wdXQuc3RhcnRzV2l0aChcXFwibWFnbmV0XFxcIikpIHtcXG4gICAgICAgICAgICBjb25maXJtKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLmuKnppqjmj5DnpLpcXFwiLFxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcXFwi5qOA5rWL5Yiw5paw55qE56OB6ZO+5Zyw5Z2A77yM54K55Ye756Gu5a6a5oyJ6ZKu5Y2z5Y+v5pKt5pS+77yM54K55Ye75Y+W5raI5oyJ6ZKu5Y+v5Lul5aSN5Yi26ZO+5o6lXFxcIixcXG4gICAgICAgICAgICAgICAgY29uZmlybTogJC50b1N0cmluZygobWFnKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFnO1xcbiAgICAgICAgICAgICAgICB9LCBpbnB1dCksXFxuICAgICAgICAgICAgICAgIGNhbmNlbDogJC50b1N0cmluZygobWFnKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImNvcHk6Ly9cXFwiICsgbWFnXFxuICAgICAgICAgICAgICAgIH0sIGlucHV0KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICB9IGVsc2UgaWYgKCFpbnB1dC5zdGFydHNXaXRoKFxcXCJodHRwXFxcIikpIHtcXG4gICAgICAgICAgICBsb2coaW5wdXQpO1xcbiAgICAgICAgICAgIC8v6IO95ZSk6LW3QVBQ55qE55m95ZCN5Y2VXFxuICAgICAgICAgICAgbGV0IHdoaXRlID0gW1xcbiAgICAgICAgICAgICAgICBcXFwicWtsaW5rXFxcIixcXG4gICAgICAgICAgICAgICAgXFxcImJkbmV0ZGlza1xcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCJ4dW5sZWlhcHBcXFwiLFxcbiAgICAgICAgICAgICAgICBcXFwic21hcnRkcml2ZVxcXCJcXG4gICAgICAgICAgICBdO1xcbiAgICAgICAgICAgIGxldCBpbldoaXRlID0gd2hpdGUuZmlsdGVyKGl0ID0+IGlucHV0LnN0YXJ0c1dpdGgoaXQpKS5sZW5ndGggPiAwO1xcbiAgICAgICAgICAgIGlmICghaW5XaGl0ZSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiAkLnRvU3RyaW5nKCh1cmwsIHJ1bGUpID0+IHtcXG4gICAgICAgICAgICAgICAgZnlfYnJpZGdlX2FwcC5vcGVuVGhpcmRBcHAgJiYgZnlfYnJpZGdlX2FwcC5vcGVuVGhpcmRBcHAodXJsKTtcXG4gICAgICAgICAgICB9LCBpbnB1dCwgcnVsZSlcXG4gICAgICAgIH1cXG4gICAgfSwgcnVsZSwgb3JpZ2luKTtcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJYNVwiLFwicGF0aFwiOlwieDVcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxubGV0IHVybCA9IGJhc2U2NERlY29kZShnZXRQYXJhbShcXFwidVxcXCIpKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIlxcXCIsXFxuICAgIHVybDogdXJsLFxcbiAgICBjb2xfdHlwZTogXFxcIng1X3dlYnZpZXdfc2luZ2xlXFxcIixcXG4gICAgZGVzYzogXFxcImZsb2F0JiYxMDAlXFxcIixcXG4gICAgcGljX3VybDogXFxcIlxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBmbG9hdFZpZGVvOiB0cnVlLFxcbiAgICAgICAgY2FuQmFjazogdHJ1ZSxcXG4gICAgICAgIGJsb2NrUnVsZXM6IFtcXFwiLmdpZlxcXCIsIFxcXCIvYWQvXFxcIiwgXFxcImdvb2dsZVxcXCIsIFxcXCIvc2gvdG8vXFxcIiwgXFxcIi5HSUZcXFwiXVxcbiAgICB9XFxufSk7XFxuc2V0UmVzdWx0KGQpO1wifV0sXCJwYXJhbXNcIjpcIntcXFwibGluZVZpc2libGVcXFwiOmZhbHNlLFxcXCJwYWdlVGl0bGVcXFwiOlxcXCLnlLXlvbHjgIrpk4Poir3kuYvml4XjgIvlrozmlbTniYhf5YWN6LS55Zyo57q/6KeC55yLLSDmlrDnop/osIPnvZFcXFwifVwiLFwic2F2ZWRcIjpmYWxzZSxcInRpdGxlXCI6XCJcXG5Ub3DmtYvor5VcIixcInZlcnNpb25cIjowLFwidXJsXCI6XCJoaWtlcjovL3BhZ2UveDU/dT1hSFIwY0RvdkwzZGhjQzQyTVRnMk5EZ3VZMjl0TDJScFpYUnBZVzh2TVRVd05UazFMbWgwYld3PVwiLFwiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcImZpbmRfcnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5sZXQgdXJsID0gYmFzZTY0RGVjb2RlKGdldFBhcmFtKFxcXCJ1XFxcIikpO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwiXFxcIixcXG4gICAgdXJsOiB1cmwsXFxuICAgIGNvbF90eXBlOiBcXFwieDVfd2Vidmlld19zaW5nbGVcXFwiLFxcbiAgICBkZXNjOiBcXFwiZmxvYXQmJjEwMCVcXFwiLFxcbiAgICBwaWNfdXJsOiBcXFwiXFxcIixcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIGZsb2F0VmlkZW86IHRydWUsXFxuICAgICAgICBjYW5CYWNrOiB0cnVlLFxcbiAgICAgICAgYmxvY2tSdWxlczogW1xcXCIuZ2lmXFxcIiwgXFxcIi9hZC9cXFwiLCBcXFwiZ29vZ2xlXFxcIiwgXFxcIi9zaC90by9cXFwiLCBcXFwiLkdJRlxcXCJdXFxuICAgIH1cXG59KTtcXG5zZXRSZXN1bHQoZCk7XCIsXCJncm91cFwiOlwi4pGiQUlcIixcInVhXCI6XCJtb2JpbGVcIixcInByZVJ1bGVcIjpcIlwiLFwicGFnZXNcIjpcIlt7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLojrflj5bop4bpopHnm67lvZVcXFwiLFxcXCJwYXRoXFxcIjpcXFwiZ2V0X3ZpZGVvX2NhdGFsb2d1ZS5qc1xcXCIsXFxcInJ1bGVcXFwiOlxcXCJmdW5jdGlvbiBpc01vdmllKHRleHQpIHtcXFxcblxcXFxuICAgIGlmICh0ZXh0Lmxlbmd0aCA+IDgpIHtcXFxcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xcXFxuICAgIH1cXFxcbiAgICAvL+aOkumZpFxcXFxuICAgIGxldCByZWcgPSAvXFxcXFxcXFwufOmrmOa4heebtOaSrXzlhpnnnJ/mjqjojZB85b2x6ZmifOW9seinhnzok53lhYnnlLXlvbF86auY5riF55S15b2xfOesrOS4gOWto3znrKzkuozlraN856ys5LiJ5a2jfOesrOWbm+Wto3znrKzkupTlraN8XFxcXFxcXFxufFxcXFxcXFxcci87XFxcXG4gICAgaWYgKHJlZy50ZXN0KHRleHQpKSB7XFxcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXFxcbiAgICB9XFxcXG4gICAgcmV0dXJuIC8o5Y6f55S7fOWkh+eUqHzok53lhYl86LaF5riFfOmrmOa4hXzmraPniYd86Z+p54mIfDRLfDEwODBQfDcyMFB8VEN8SER8QkR85Lit5a2XfOeJiCkkL2kudGVzdCh0ZXh0KTtcXFxcbn1cXFxcblxcXFxuZnVuY3Rpb24gbm90Q2hhcHRlcih0ZXh0KSB7XFxcXG4gICAgcmV0dXJuIC9bMC05XVxcXFxcXFxcLlswLTld5YiGLy50ZXN0KHRleHQpO1xcXFxufVxcXFxubGV0IGxhc3QgPSBudWxsO1xcXFxuXFxcXG5mdW5jdGlvbiBpc0NoYXB0ZXIwKHRleHQsIG5leHRUZXh0KSB7XFxcXG4gICAgbGV0IHByaSA9IC9e56ysXFxcXFxcXFxkKyjpm4Z856ugfOivnSkkLztcXFxcbiAgICBpZiAocHJpLnRlc3QodGV4dCkpIHtcXFxcbiAgICAgICAgLy9mYmEubG9nKFxcXFxcXFwiZGVidWc6XFxcXFxcXCIgKyBSZWdFeHAuJDEgKyB0ZXh0KVxcXFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICBsZXQgbnVtMSA9IE51bWJlcih0ZXh0KTtcXFxcbiAgICBpZiAoIXRleHQgfHwgTnVtYmVyLmlzTmFOKG51bTEpKSB7XFxcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXFxcbiAgICB9XFxcXG4gICAgaWYgKG51bTEgPT09IDEpIHtcXFxcbiAgICAgICAgLy9mYmEubG9nKFxcXFxcXFwiZGVidWc6XFxcXFxcXCIgKyBudW0xICsgdGV4dClcXFxcbiAgICAgICAgcmV0dXJuIHRydWU7XFxcXG4gICAgfVxcXFxuICAgIGlmIChuZXh0VGV4dCA9PT0gbnVsbCkge1xcXFxuICAgICAgICAvL2ZiYS5sb2coXFxcXFxcXCJkZWJ1ZzpcXFxcXFxcIiArIG51bTEgKyBuZXh0VGV4dClcXFxcbiAgICAgICAgcmV0dXJuIHRydWU7XFxcXG4gICAgfVxcXFxuICAgIGxldCBudW0yID0gTnVtYmVyKG5leHRUZXh0KTtcXFxcbiAgICBpZiAoTnVtYmVyLmlzTmFOKG51bTIpKSB7XFxcXG4gICAgICAgIGlmIChsYXN0ICYmIChsYXN0IC0gbnVtMSA8IDIgJiYgbGFzdCAtIG51bTEgPiAtMikpIHtcXFxcbiAgICAgICAgICAgIC8vZmJhLmxvZyhcXFxcXFxcImRlYnVnOlxcXFxcXFwiICsgbGFzdClcXFxcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHJldHVybiBmYWxzZTtcXFxcbiAgICB9XFxcXG4gICAgaWYgKG51bTEgLSBudW0yIDwgMiAmJiBudW0xIC0gbnVtMiA+IC0yIC8qJiZudW0xIC0gbnVtMiE9PTAqLyApIHtcXFxcbiAgICAgICAgZmJhLmxvZyhcXFxcXFxcImRlYnVnOlxcXFxcXFwiICsgbnVtMSArIHRleHQgKyBudW0yICsgbmV4dFRleHQpXFxcXG4gICAgICAgIGxhc3QgPSBudW0xO1xcXFxuICAgICAgICByZXR1cm4gdHJ1ZTtcXFxcbiAgICB9XFxcXG59XFxcXG5cXFxcbmZ1bmN0aW9uIGlzQ2hhcHRlcih0ZXh0LCBuZXh0VGV4dCkge1xcXFxuICAgIHRleHQgPSB0ZXh0LnRyaW0oKTtcXFxcbiAgICBuZXh0VGV4dCA9IG5leHRUZXh0ID8gbmV4dFRleHQudHJpbSgpIDogbmV4dFRleHQ7XFxcXG4gICAgaWYgKCF0ZXh0IHx8IG5vdENoYXB0ZXIodGV4dCkpIHtcXFxcbiAgICAgICAgLy/kvJjlhYjmjpLpmaRcXFxcbiAgICAgICAgLy9mYmEubG9nKFxcXFxcXFwiMOaOkumZpDpcXFxcXFxcIit0ZXh0KVxcXFxuICAgICAgICByZXR1cm4gZmFsc2U7XFxcXG4gICAgfVxcXFxuICAgIC8v5Yik5pat5piv5LiN5piv55S15b2xXFxcXG4gICAgaWYgKGlzTW92aWUodGV4dCkpIHtcXFxcbiAgICAgICAgLy9mYmEubG9nKFxcXFxcXFwiMeaYr+eUteW9sTpcXFxcXFxcIiArIHRleHQpXFxcXG4gICAgICAgIHJldHVybiB0cnVlO1xcXFxuICAgIH1cXFxcblxcXFxuICAgIGlmIChpc0NoYXB0ZXIwKHRleHQsIG5leHRUZXh0KSkge1xcXFxuICAgICAgICAvL2ZiYS5sb2coXFxcXFxcXCIy5piv5Ymn6ZuGOlxcXFxcXFwiICsgdGV4dClcXFxcbiAgICAgICAgcmV0dXJuIHRydWU7XFxcXG4gICAgfVxcXFxuICAgIC8vZmJhLmxvZyh0ZXh0KVxcXFxuICAgIHJldHVybiBmYWxzZTtcXFxcbn1cXFxcbi8vdG9w5rWP6KeI5Zmo4oaTXFxcXG52YXIgbGlzdF9kb2N1bWVudF9saW5rID0gW107XFxcXG52YXIgbGlzdF9saW5rID0gW107XFxcXG52YXIgeW11cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcXFxcbnZhciBjaG9vc2VfY2hhbm5lbCA9IDA7XFxcXG5saXN0X2RvY3VtZW50X2xpbmsgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhJyk7XFxcXG52YXIgdG9wX2ogPSAwO1xcXFxuXFxcXG5mb3IgKGxldCBpID0gMDsgaSA8IGxpc3RfZG9jdW1lbnRfbGluay5sZW5ndGg7IGkrKykge1xcXFxuICAgIHZhciB0ZXh0ID0gbGlzdF9kb2N1bWVudF9saW5rW2ldLmlubmVyVGV4dDtcXFxcbiAgICB2YXIgaHJlZiA9IGxpc3RfZG9jdW1lbnRfbGlua1tpXS5ocmVmO1xcXFxuICAgIHZhciBuZXh0VGV4dCA9IGkgKyAxID49IGxpc3RfZG9jdW1lbnRfbGluay5sZW5ndGggPyBudWxsIDogbGlzdF9kb2N1bWVudF9saW5rW2kgKyAxXS5pbm5lclRleHQ7XFxcXG4gICAgaWYgKHRleHQgJiYgaXNDaGFwdGVyKHRleHQsIG5leHRUZXh0KSAmJiBocmVmICYmIGhyZWYuaW5kZXhPZignaHR0cCcpID4gLTEgJiYgaHJlZi5pbmRleE9mKHltdXJsICsgXFxcXFxcXCIjXFxcXFxcXCIpID09IC0xKSB7XFxcXG4gICAgICAgIGlmIChsaXN0X2RvY3VtZW50X2xpbmtbaV0udGFyZ2V0ID09ICdfYmxhbmsnKSB7XFxcXG4gICAgICAgICAgICBjb250aW51ZTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBpZiAobGlzdF9saW5rW3RvcF9qXSA9PT0gdW5kZWZpbmVkKSB7XFxcXG4gICAgICAgICAgICBsaXN0X2xpbmtbdG9wX2pdID0gW107XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgaWYgKGhyZWYgPT0gbG9jYXRpb24uaHJlZikge1xcXFxuICAgICAgICAgICAgY2hvb3NlX2NoYW5uZWwgPSB0b3BfajtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICB2YXIgc3MgPSB0ZXh0LnJlcGxhY2UoL1teXFxcXFxcXFxkK10vZywgJycpO1xcXFxuICAgICAgICBpZiAoc3MuaW5kZXhPZigwKSA9PT0gMCkge1xcXFxuICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgnMCcsICcnKTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICB2YXIgaXNfcmVwZWF0ID0gZmFsc2U7XFxcXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGlzdF9saW5rW3RvcF9qXS5sZW5ndGg7IGorKykge1xcXFxuICAgICAgICAgICAgaWYgKGxpc3RfbGlua1t0b3Bfal1bal0uaHJlZiA9PSBocmVmKSB7XFxcXG4gICAgICAgICAgICAgICAgaXNfcmVwZWF0ID0gdHJ1ZTtcXFxcbiAgICAgICAgICAgICAgICBicmVhaztcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIGlmIChsaXN0X2xpbmtbdG9wX2pdW2pdLnRleHQgPT0gdGV4dCkge1xcXFxuICAgICAgICAgICAgICAgIHRvcF9qICs9IDE7XFxcXG4gICAgICAgICAgICAgICAgbGlzdF9saW5rW3RvcF9qXSA9IFtdO1xcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIGlmIChpc19yZXBlYXQpIHtcXFxcbiAgICAgICAgICAgIGNvbnRpbnVlO1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHZhciBzdGQgPSB7fTtcXFxcbiAgICAgICAgc3RkLnVybCA9IGhyZWY7XFxcXG4gICAgICAgIHN0ZC50ZXh0ID0gdGV4dDtcXFxcbiAgICAgICAgLy/mjpLpmaTlubTku6NcXFxcbiAgICAgICAgbGV0IHJlZyA9IC8xfDJbMC05XSsvO1xcXFxuICAgICAgICBpZiAodGV4dC5sZW5ndGggPT0gNCAmJiByZWcudGVzdCh0ZXh0KSkge1xcXFxuICAgICAgICAgICAgY29udGludWU7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgbGlzdF9saW5rW3RvcF9qXS5wdXNoKHN0ZCk7XFxcXG4gICAgfVxcXFxufVxcXFxuLy9odG1sSW50ZXJmYWNlLmdldFZpZGVvQ2F0YWxvZ3VlKEpTT04uc3RyaW5naWZ5KGxpc3RfbGluaykpO1xcXFxuLy90b3DmtY/op4jlmajihpFcXFxcbi8vZmJhLmxvZyhKU09OLnN0cmluZ2lmeShsaXN0X2xpbmspKVxcXFxuaWYgKGxpc3RfbGluay5sZW5ndGggPT0gMSAmJiBsaXN0X2xpbmtbMF0ubGVuZ3RoIDw9IDApIHtcXFxcbiAgICAvL2VtcHR5XFxcXG59IGVsc2Uge1xcXFxuICAgIGlmIChsaXN0X2xpbmsubGVuZ3RoID4gMCkge1xcXFxuICAgICAgICB3aW5kb3cuX19meVN1Y2Nlc3MgPSB0cnVlO1xcXFxuICAgICAgICBmYmEub3BlbihKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgICAgICAgICBydWxlOiBmeV90aXRsZSxcXFxcbiAgICAgICAgICAgIHRpdGxlOiBkb2N1bWVudC50aXRsZSxcXFxcbiAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL3BhZ2UvdmlkZW9fY2F0YWxvZ3VlX3ZpZXcuanM/cnVsZT1cXFxcXFxcIiArIGZ5X3RpdGxlLFxcXFxuICAgICAgICAgICAgZXh0cmE6IHtcXFxcbiAgICAgICAgICAgICAgICBsaXN0X2xpbms6IGxpc3RfbGluayxcXFxcbiAgICAgICAgICAgICAgICBocmVmOiBsb2NhdGlvbi5ocmVmLFxcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBkb2N1bWVudC50aXRsZVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9KSk7XFxcXG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LmJhY2soLTEpO1xcXFxuICAgIH1cXFxcbn1cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLop4bpopHnm67lvZVcXFwiLFxcXCJwYXRoXFxcIjpcXFwidmlkZW9fY2F0YWxvZ3VlX3ZpZXcuanNcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5sZXQgZCA9IFtdO1xcXFxubGV0IGkgPSAxO1xcXFxuZm9yIChsZXQgcGxheUxpc3Qgb2YgTVlfUEFSQU1TLmxpc3RfbGluaykge1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBcXFxcXFxcIue6v+i3r1xcXFxcXFwiICsgaSsrLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0XzFcXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgIH0pO1xcXFxuICAgIGZvciAobGV0IGxpIG9mIHBsYXlMaXN0KSB7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogbGkudGV4dCxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInRleHRfNFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgdXJsOiBcXFxcXFxcInZpZGVvOi8vXFxcXFxcXCIrbGkudXJsLFxcXFxuICAgICAgICAgICAgZXh0cmE6e1xcXFxuICAgICAgICAgICAgICAgIGJsb2NrUnVsZXM6IFtcXFxcXFxcIi9hZC9cXFxcXFxcIiwgXFxcXFxcXCJnb29nbGVcXFxcXFxcIiwgXFxcXFxcXCIvc2gvdG8vXFxcXFxcXCIsIFxcXFxcXFwiLkdJRlxcXFxcXFwiLCcubXAzJywnLmZsdicsICcuM2dwJywgJy5tcGVnJywgJy5naWYnLCAnLmpwZycsICcuanBlZycsICcucG5nJywgJy5pY28nLCAnLnN2ZyddLFxcXFxuICAgICAgICAgICAgICAgIHZpZGVvRXhjbHVkZVJ1bGVzOiBbJz91cmw9J11cXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfVxcXFxufVxcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogXFxcXFxcXCLigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9JyNhYWFhYWEnPvCflJdcXFxcXFxcIiArIE1ZX1BBUkFNUy5ocmVmICsgXFxcXFxcXCI8L2ZvbnQ+PC9zbWFsbD5cXFxcXFxcIixcXFxcbiAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9wYWdlL3g1P3U9XFxcXFxcXCIgKyBiYXNlNjRFbmNvZGUoTVlfUEFSQU1TLmhyZWYpLFxcXFxuICAgIGNvbF90eXBlOiBcXFxcXFxcInRleHRfMVxcXFxcXFwiLFxcXFxuICAgIGV4dHJhOiB7XFxcXG4gICAgICAgIHBhZ2VUaXRsZTogTVlfUEFSQU1TLnRpdGxlLFxcXFxuICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXFxcbiAgICB9XFxcXG59KTtcXFxcblxcXFxuc2V0UmVzdWx0KGQpO1xcXFxuXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5om56YeP5a+85YWlXFxcIixcXFwicGF0aFxcXCI6XFxcImltXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxudmFyIGQgPSBbXTtcXFxcbmxldCBhID0gZ2V0UGFyYW0oXFxcXFxcXCJhXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXCIpO1xcXFxuaWYgKGEgIT0gXFxcXFxcXCJcXFxcXFxcIikge1xcXFxuICAgIGEgPSBiYXNlNjREZWNvZGUoYSk7XFxcXG59XFxcXG5zZXRQYWdlVGl0bGUoTVlfUlVMRS50aXRsZSArIFxcXFxcXFwi5om56YeP5a+85YWlXFxcXFxcXCIpXFxcXG5wdXRNeVZhcihcXFxcXFxcImltXFxcXFxcXCIsIGEpO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICB1cmw6IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwiaW5wdXRcXFxcXFxcIixcXFxcbiAgICBkZXNjOiBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgIHBpY191cmw6IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgZXh0cmE6IHtcXFxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBhLFxcXFxuICAgICAgICBvbkNoYW5nZTogJC50b1N0cmluZygoKSA9PiB7XFxcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFxcXFxcImltXFxcXFxcXCIsIGlucHV0KTtcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2UsXFxcXG4gICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXFxcXG4gICAgICAgIGhlaWdodDogMyxcXFxcbiAgICAgICAgaGlnaGxpZ2h0OiB0cnVlXFxcXG4gICAgfVxcXFxufSk7XFxcXG5cXFxcbmxldCBzYXZlID0gKCkgPT4ge1xcXFxuICAgIGxldCBhID0gZ2V0TXlWYXIoXFxcXFxcXCJpbVxcXFxcXFwiLCBcXFxcXFxcIltdXFxcXFxcXCIpO1xcXFxuICAgIGlmIChhID09IFxcXFxcXFwiXFxcXFxcXCIgfHwgIWEuc3RhcnRzV2l0aChcXFxcXFxcIltcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly/or7fovpPlhaXmraPnoa7nmoTmoLzlvI9cXFxcXFxcIlxcXFxuICAgIH1cXFxcbiAgICBsZXQgbGlzdCA9IEpTT04ucGFyc2UoYSk7XFxcXG4gICAgbGV0IHtcXFxcbiAgICAgICAgYWRkQWxsXFxcXG4gICAgfSA9ICQucmVxdWlyZShcXFxcXFxcImhpa2VyOi8vcGFnZS9kYXRhXFxcXFxcXCIpO1xcXFxuICAgIGxldCBjb3VudCA9IGFkZEFsbChsaXN0KTtcXFxcbiAgICBiYWNrKHRydWUpO1xcXFxuICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8v5bey5re75YqgXFxcXFxcXCIgKyBjb3VudCArIFxcXFxcXFwi5p2h5Zyw5Z2AXFxcXFxcXCJcXFxcbn07XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiBcXFxcXFxcIuWvvOWFpVxcXFxcXFwiLFxcXFxuICAgIHVybDogJChcXFxcXFxcIiNub0xvYWRpbmcjXFxcXFxcXCIpLmxhenlSdWxlKHNhdmUpLFxcXFxuICAgIGNvbF90eXBlOiBcXFxcXFxcInRleHRfY2VudGVyXzFcXFxcXFxcIixcXFxcbiAgICBkZXNjOiBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgIHBpY191cmw6IFxcXFxcXFwiXFxcXFxcXCJcXFxcbn0pO1xcXFxuXFxcXG5pZiAoZ2V0UGFyYW0oXFxcXFxcXCJiXFxcXFxcXCIsIFxcXFxcXFwiMFxcXFxcXFwiKSA9PSBcXFxcXFxcIjFcXFxcXFxcIikge1xcXFxuICAgIGNvbmZpcm0oe1xcXFxuICAgICAgICB0aXRsZTogXFxcXFxcXCLmuKnppqjmj5DnpLpcXFxcXFxcIixcXFxcbiAgICAgICAgY29udGVudDogXFxcXFxcXCLnoa7lrprnq4vljbPlr7zlhaVcXFxcXFxcIiArIE1ZX1JVTEUudGl0bGUgKyBcXFxcXFxcIuaVsOaNru+8n1xcXFxcXFwiLFxcXFxuICAgICAgICBjb25maXJtOiAkLnRvU3RyaW5nKHNhdmUpXFxcXG4gICAgfSk7XFxcXG59XFxcXG5cXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLmt7vliqDnvZHnq5lcXFwiLFxcXCJwYXRoXFxcIjpcXFwiYWRkXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxudmFyIGQgPSBbXTtcXFxcbmFkZExpc3RlbmVyKFxcXFxcXFwib25DbG9zZVxcXFxcXFwiLCAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICBjbGVhck15VmFyKFxcXFxcXFwibmFtZVxcXFxcXFwiKTtcXFxcbiAgICBjbGVhck15VmFyKFxcXFxcXFwidXJsXFxcXFxcXCIpO1xcXFxufSkpO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICB1cmw6IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwiaW5wdXRcXFxcXFxcIixcXFxcbiAgICBkZXNjOiBcXFxcXFxcIuivt+i+k+WFpee9keermeWQjeensFxcXFxcXFwiLFxcXFxuICAgIGV4dHJhOiB7XFxcXG4gICAgICAgIG9uQ2hhbmdlOiAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwibmFtZVxcXFxcXFwiLCBpbnB1dCk7XFxcXG4gICAgICAgIH0pLFxcXFxuICAgICAgICB0aXRsZVZpc2libGU6IGZhbHNlXFxcXG4gICAgfVxcXFxufSk7XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgIHVybDogXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICBjb2xfdHlwZTogXFxcXFxcXCJpbnB1dFxcXFxcXFwiLFxcXFxuICAgIGRlc2M6IFxcXFxcXFwi6K+36L6T5YWl572R56uZ5Zyw5Z2AXFxcXFxcXCIsXFxcXG4gICAgZXh0cmE6IHtcXFxcbiAgICAgICAgb25DaGFuZ2U6ICQudG9TdHJpbmcoKCkgPT4ge1xcXFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcXFxcXCJ1cmxcXFxcXFxcIiwgaW5wdXQpO1xcXFxuICAgICAgICB9KSxcXFxcbiAgICAgICAgdGl0bGVWaXNpYmxlOiBmYWxzZVxcXFxuICAgIH1cXFxcbn0pO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogXFxcXFxcXCLmt7vliqDkv53lrZhcXFxcXFxcIixcXFxcbiAgICB1cmw6ICQoXFxcXFxcXCIjbm9Mb2FkaW5nI1xcXFxcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgICAgIGxldCBuYW1lID0gZ2V0TXlWYXIoXFxcXFxcXCJuYW1lXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXCIpO1xcXFxuICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoXFxcXFxcXCJ1cmxcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIik7XFxcXG4gICAgICAgIGlmIChuYW1lID09IFxcXFxcXFwiXFxcXFxcXCIgfHwgdXJsID09IFxcXFxcXFwiXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8v6K+36L6T5YWl5a6M5pW05L+h5oGvXFxcXFxcXCJcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBsZXQge1xcXFxuICAgICAgICAgICAgYWRkXFxcXG4gICAgICAgIH0gPSAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL3BhZ2UvZGF0YVxcXFxcXFwiKTtcXFxcbiAgICAgICAgYWRkKG5hbWUsIHVybCk7XFxcXG4gICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8v5bey5re75YqgXFxcXFxcXCJcXFxcbiAgICB9KSxcXFxcbiAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0X2NlbnRlcl8xXFxcXFxcXCIsXFxcXG4gICAgZGVzYzogXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICBwaWNfdXJsOiBcXFxcXFxcIlxcXFxcXFwiXFxcXG59KTtcXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLmlbDmja7nrqHnkIZcXFwiLFxcXCJwYXRoXFxcIjpcXFwiZGF0YVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJ2YXIgZGVmYXVsdFZhbHVlID0gW1xcXFxuICAgIHtcXFxcbiAgICAgICAgbmFtZTogXFxcXFxcXCLosYzosYZcXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiBcXFxcXFxcImh0dHBzOi8vd3d3LndhbmRvdS5wcm8vXFxcXFxcXCJcXFxcbiAgICB9LFxcXFxuICAgIHtcXFxcbiAgICAgICAgbmFtZTogXFxcXFxcXCLojLbmna/ni5BcXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiBcXFxcXFxcImh0dHBzOi8vY3VwZm94LmFwcC9cXFxcXFxcIlxcXFxuICAgIH0sXFxcXG4gICAge1xcXFxuICAgICAgICBuYW1lOiBcXFxcXFxcIuaQnOeJh1xcXFxcXFwiLFxcXFxuICAgICAgICB1cmw6IFxcXFxcXFwiaHR0cDovL3NvdXBpYW4uZGUvXFxcXFxcXCJcXFxcbiAgICB9LFxcXFxuICAgIHtcXFxcbiAgICAgICAgbmFtZTogXFxcXFxcXCLpnZLpuqZcXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiBcXFxcXFxcImh0dHBzOi8vd3d3LnFpbWFpdHYuY29tL1xcXFxcXFwiXFxcXG4gICAgfSxcXFxcbiAgICB7XFxcXG4gICAgICAgIG5hbWU6IFxcXFxcXFwi55S15b2x54uXXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogXFxcXFxcXCJodHRwczovL3d3dy5kaWFueWluZ2dvdS5jb20veWluZ2t1L1xcXFxcXFwiXFxcXG4gICAgfSxcXFxcbiAgICB7XFxcXG4gICAgICAgIG5hbWU6IFxcXFxcXFwi6Iy25p2v6JmOXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogXFxcXFxcXCJodHRwczovL3d3dy43MjU5OTguY29tL3lpbmdrdVxcXFxcXFwiXFxcXG4gICAgfSxcXFxcbiAgICB7XFxcXG4gICAgICAgIG5hbWU6IFxcXFxcXFwi5Zyf5ouo6bygXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogXFxcXFxcXCJodHRwczovL3d3dy50YnNkeS5jb20vbS9pbmRleC5odG1sXFxcXFxcXCJcXFxcbiAgICB9XFxcXG5dO1xcXFxuJC5leHBvcnRzID0ge1xcXFxuICAgIGxvYWQ6IGZ1bmN0aW9uKCkge1xcXFxuICAgICAgICByZXR1cm4gc3RvcmFnZTAuZ2V0SXRlbShcXFxcXFxcImRhdGExXFxcXFxcXCIsIGRlZmF1bHRWYWx1ZSk7XFxcXG4gICAgfSxcXFxcbiAgICBhZGQ6IGZ1bmN0aW9uKG5hbWUsIHVybCkge1xcXFxuICAgICAgICBsZXQgZGF0YSA9IHN0b3JhZ2UwLmdldEl0ZW0oXFxcXFxcXCJkYXRhMVxcXFxcXFwiLCBkZWZhdWx0VmFsdWUpO1xcXFxuICAgICAgICBmb3IgKGxldCBpdCBvZiBkYXRhKSB7XFxcXG4gICAgICAgICAgICBpZiAoaXQubmFtZSA9PSBuYW1lKSB7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgZGF0YS5wdXNoKHtcXFxcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXFxcXG4gICAgICAgICAgICB1cmw6IHVybFxcXFxuICAgICAgICB9KTtcXFxcbiAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFxcXFxcImRhdGExXFxcXFxcXCIsIGRhdGEpO1xcXFxuICAgIH0sXFxcXG4gICAgYWRkQWxsOiBmdW5jdGlvbihsaXN0KSB7XFxcXG4gICAgICAgIGxldCBkYXRhID0gc3RvcmFnZTAuZ2V0SXRlbShcXFxcXFxcImRhdGExXFxcXFxcXCIsIGRlZmF1bHRWYWx1ZSk7XFxcXG4gICAgICAgIGxldCBuYW1lcyA9IGRhdGEubWFwKGl0ID0+IGl0Lm5hbWUpO1xcXFxuICAgICAgICBsZXQgY291bnQgPSAwO1xcXFxuICAgICAgICBmb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxcXG4gICAgICAgICAgICBpZiAoIW5hbWVzLmluY2x1ZGVzKGl0Lm5hbWUpKSB7XFxcXG4gICAgICAgICAgICAgICAgZGF0YS5wdXNoKGl0KTtcXFxcbiAgICAgICAgICAgICAgICBjb3VudCsrO1xcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHN0b3JhZ2UwLnNldEl0ZW0oXFxcXFxcXCJkYXRhMVxcXFxcXFwiLCBkYXRhKTtcXFxcbiAgICAgICAgcmV0dXJuIGNvdW50O1xcXFxuICAgIH0sXFxcXG4gICAgcmVtb3ZlOiBmdW5jdGlvbihuYW1lKSB7XFxcXG4gICAgICAgIGxldCBkYXRhID0gc3RvcmFnZTAuZ2V0SXRlbShcXFxcXFxcImRhdGExXFxcXFxcXCIsIGRlZmF1bHRWYWx1ZSk7XFxcXG4gICAgICAgIGRhdGEgPSBkYXRhLmZpbHRlcihpdCA9PiBpdC5uYW1lICE9IG5hbWUpO1xcXFxuICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXFxcXFwiZGF0YTFcXFxcXFxcIiwgZGF0YSk7XFxcXG4gICAgfSxcXFxcbiAgICB0b3A6IGZ1bmN0aW9uKG5hbWUpIHtcXFxcbiAgICAgICAgbGV0IGRhdGEgPSBzdG9yYWdlMC5nZXRJdGVtKFxcXFxcXFwiZGF0YTFcXFxcXFxcIiwgZGVmYXVsdFZhbHVlKTtcXFxcbiAgICAgICAgbGV0IGl0ID0gZGF0YS5maWx0ZXIoaXQgPT4gaXQubmFtZSA9PSBuYW1lKVswXTtcXFxcbiAgICAgICAgbGV0IGQgPSBbXTtcXFxcbiAgICAgICAgZC5wdXNoKGl0KTtcXFxcbiAgICAgICAgZm9yIChsZXQgaWkgb2YgZGF0YSkge1xcXFxuICAgICAgICAgICAgaWYgKGlpLm5hbWUgIT0gbmFtZSkge1xcXFxuICAgICAgICAgICAgICAgIGQucHVzaChpaSk7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFxcXFxcImRhdGExXFxcXFxcXCIsIGQpO1xcXFxuICAgIH1cXFxcbn1cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCJ1XFxcIixcXFwicGF0aFxcXCI6XFxcInVcXFwiLFxcXCJydWxlXFxcIjpcXFwiJC5leHBvcnRzID0gZnVuY3Rpb24ocnVsZSwgb3JpZ2luKSB7XFxcXG4gICAgcmV0dXJuICQudG9TdHJpbmcoKHJ1bGUsIG9yaWdpbikgPT4ge1xcXFxuICAgICAgICBpZiAoaW5wdXQuc3RhcnRzV2l0aChcXFxcXFxcIm1hZ25ldFxcXFxcXFwiKSkge1xcXFxuICAgICAgICAgICAgY29uZmlybSh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi5rip6aao5o+Q56S6XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgY29udGVudDogXFxcXFxcXCLmo4DmtYvliLDmlrDnmoTno4Hpk77lnLDlnYDvvIzngrnlh7vnoa7lrprmjInpkq7ljbPlj6/mkq3mlL7vvIzngrnlh7vlj5bmtojmjInpkq7lj6/ku6XlpI3liLbpk77mjqVcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBjb25maXJtOiAkLnRvU3RyaW5nKChtYWcpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hZztcXFxcbiAgICAgICAgICAgICAgICB9LCBpbnB1dCksXFxcXG4gICAgICAgICAgICAgICAgY2FuY2VsOiAkLnRvU3RyaW5nKChtYWcpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiY29weTovL1xcXFxcXFwiICsgbWFnXFxcXG4gICAgICAgICAgICAgICAgfSwgaW5wdXQpXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxcXG4gICAgICAgIH0gZWxzZSBpZiAoIWlucHV0LnN0YXJ0c1dpdGgoXFxcXFxcXCJodHRwXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICBsb2coaW5wdXQpO1xcXFxuICAgICAgICAgICAgLy/og73llKTotbdBUFDnmoTnmb3lkI3ljZVcXFxcbiAgICAgICAgICAgIGxldCB3aGl0ZSA9IFtcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcInFrbGlua1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgIFxcXFxcXFwiYmRuZXRkaXNrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgXFxcXFxcXCJ4dW5sZWlhcHBcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBcXFxcXFxcInNtYXJ0ZHJpdmVcXFxcXFxcIlxcXFxuICAgICAgICAgICAgXTtcXFxcbiAgICAgICAgICAgIGxldCBpbldoaXRlID0gd2hpdGUuZmlsdGVyKGl0ID0+IGlucHV0LnN0YXJ0c1dpdGgoaXQpKS5sZW5ndGggPiAwO1xcXFxuICAgICAgICAgICAgaWYgKCFpbldoaXRlKSB7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgcmV0dXJuICQudG9TdHJpbmcoKHVybCwgcnVsZSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIGZ5X2JyaWRnZV9hcHAub3BlblRoaXJkQXBwICYmIGZ5X2JyaWRnZV9hcHAub3BlblRoaXJkQXBwKHVybCk7XFxcXG4gICAgICAgICAgICB9LCBpbnB1dCwgcnVsZSlcXFxcbiAgICAgICAgfVxcXFxuICAgIH0sIHJ1bGUsIG9yaWdpbik7XFxcXG59XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwiWDVcXFwiLFxcXCJwYXRoXFxcIjpcXFwieDVcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG52YXIgZCA9IFtdO1xcXFxubGV0IHVybCA9IGJhc2U2NERlY29kZShnZXRQYXJhbShcXFxcXFxcInVcXFxcXFxcIikpO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICB1cmw6IHVybCxcXFxcbiAgICBjb2xfdHlwZTogXFxcXFxcXCJ4NV93ZWJ2aWV3X3NpbmdsZVxcXFxcXFwiLFxcXFxuICAgIGRlc2M6IFxcXFxcXFwiZmxvYXQmJjEwMCVcXFxcXFxcIixcXFxcbiAgICBwaWNfdXJsOiBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgIGV4dHJhOiB7XFxcXG4gICAgICAgIGZsb2F0VmlkZW86IHRydWUsXFxcXG4gICAgICAgIGNhbkJhY2s6IHRydWUsXFxcXG4gICAgICAgIGJsb2NrUnVsZXM6IFtcXFxcXFxcIi5naWZcXFxcXFxcIiwgXFxcXFxcXCIvYWQvXFxcXFxcXCIsIFxcXFxcXFwiZ29vZ2xlXFxcXFxcXCIsIFxcXFxcXFwiL3NoL3RvL1xcXFxcXFwiLCBcXFxcXFxcIi5HSUZcXFxcXFxcIl1cXFxcbiAgICB9XFxcXG59KTtcXFxcbnNldFJlc3VsdChkKTtcXFwifV1cIn0iLCJ0aXRsZSI6IueUteW9seOAiumTg+iKveS5i+aXheOAi+WujOaVtOeJiF/lhY3otLnlnKjnur/op4LnnIstIOaWsOein+iwg+e9kS3wn5SXaHR0cDovL3dhcC42MTg2NDguY29tL2QuLi4ifQ==
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement