1 Star 0 Fork 1

zlq771/文件夹

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
update.json 45.50 KB
一键复制 编辑 原始数据 按行查看 历史
香雅情 提交于 2020-07-28 16:09 . No commit message
{
"notice": "仓库已整改开放。",
"picUrl":"",
"data": [
{
"title":"香雅情的仓库",
"author":"香雅情",
"version":6,
"updateText":"随Reborn大佬的模板更新而更新。",
"tips":"我的个人分类仓库,所有规则都在这。",
"rule":"rule://5rW36ZiU6KeG55WM6KeE5YiZ5YiG5Lqr77yM5b2T5YmN5YiG5Lqr55qE5piv77ya6aaW6aG16aKR6YGT77yM6aaZ4piG6ZuF4piG5oOF77+laG9tZV9ydWxl77+leyJmaXJzdEhlYWRlciI6ImNsYXNzIiwidGl0bGUiOiLpppnpm4Xmg4XnmoTku5PlupMiLCJhdXRob3IiOiLpppnpm4Xmg4UiLCJ1cmwiOiJoaWtlcjovL2hvbWUjZnlBbGwiLCJ2ZXJzaW9uIjo2LCJjb2xfdHlwZSI6InRleHRfMSIsImNsYXNzX25hbWUiOiLlhY3ll4Um5ZeF5o6iJui1hOa6kOe9kSbop4blkKwm5YW25a6DIiwiY2xhc3NfdXJsIjoi6aaZ6ZuF5oOFQEBhcGlUeXBlPScwJ0BAZnVsbFVybD0naHR0cHM6Ly9naXRlZS5jb20vbHprMjM1NTkvcnVsZWhvdXNlL3Jhdy9tYXN0ZXIvbWlhbnh0Lmpzb24nXG4m6aaZ6ZuF5oOFQEBhcGlUeXBlPScwJ0BAZnVsbFVybD0naHR0cHM6Ly9naXRlZS5jb20vbHprMjM1NTkvcnVsZWhvdXNlL3Jhdy9tYXN0ZXIvbm9taWFueHQuanNvbidcbibpppnpm4Xmg4VAQGFwaVR5cGU9JzAnQEBmdWxsVXJsPSdodHRwczovL2dpdGVlLmNvbS9semsyMzU1OS9ydWxlaG91c2UvcmF3L21hc3Rlci96eXcuanNvbidcbibpppnpm4Xmg4VAQGFwaVR5cGU9JzAnQEBmdWxsVXJsPSdodHRwczovL2dpdGVlLmNvbS9semsyMzU1OS9ydWxlaG91c2UvcmF3L21hc3Rlci9zaGl0aW5nLmpzb24nXG4m6aaZ6ZuF5oOFQEBhcGlUeXBlPScwJ0BAZnVsbFVybD0naHR0cHM6Ly9naXRlZS5jb20vbHprMjM1NTkvcnVsZWhvdXNlL3Jhdy9tYXN0ZXIvb3RoZXIuanNvbiciLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInllYXJfbmFtZSI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG52YXIgcmVzID0ge307XG52YXIgZCA9IFtdO1xudmFyIG1SdWxlID0gSlNPTi5wYXJzZShnZXRSdWxlKCkpO1xuXG52YXIgc2V0dGluZ3MgPSB7XG4gICAgLy8g5Y6L57yp5paH5pys5byA5YWz77yM5Y2z6KeE5YiZIOaPkOekui/mm7TmlrDml6Xlv5cg5LiN56m66KGM77yM5Lul5ZCO5Y+v6IO96L+Y5pyJ5YW25LuWXG4gICAgY29tcHJlc3NUZXh0OiBmYWxzZSxcbiAgICAvLyDorr7nva4gdHJ1ZSDkuIDplK7lh4DljJbvvIzpmaTkuobop4TliJnlkozku5PlupPpgJrnn6XvvIzllaXkuZ/kuI3opoFcbiAgICBoaWRlQWxsOiBmYWxzZSxcbiAgICAvLyDop4TliJnmlbDph4/mmL7npLrlvIDlhbPvvIzkuI3pnIDopoHmmL7npLror7forr7nva7kuLp0cnVlXG4gICAgbm9SdWxlc051bTogZmFsc2UsXG4gICAgLy8g5piv5ZCm5YWB6K646LaF6L+H5LiA5a6a6KeE5YiZ5pWw5ZCO5pS55Y+Y5pi+56S65qC35byP77yM6buY6K6k5LiN5byA5ZCv77yM6KaB5byA5aeL6K+36K6+572u5Li6IHRydWVcbiAgICBuZWVkQ2hhbmdlU2hvd1R5cGU6IGZhbHNlLFxuICAgIC8vIOiuvue9ruacgOWkp+aYvuekuuWujOaVtOaWh+acrOeahOinhOWImeaVsO+8jOWkp+S6juiuvue9ruWAvOWImeaYvuekuuS4uuaMiemSruagt+W8jyjpu5jorqQgdGV4dF8yKVxuICAgIHNob3dGdWxsVGV4dE1heDogMTAsXG4gICAgLy8g6K6+572u6LaF6L+H5YWB6K645pi+56S65a6M5pW05paH5pys55qE6KeE5YiZ5pWw5ZCO5pi+56S655qE5qC35byPXG4gICAgb3Zlck1heFNob3dUeXBlOiBcInRleHRfMlwiLFxuICAgIC8qKlxuICAgICAqIOinhOWImeaYoOWwhOWIl+ihqFxuICAgICAqIOW3puacrOWcsO+8jOWPs+i/nOerr++8jOacrOWcsOaYoOWwhOS4uui/nOerr++8jOi+vuWIsOabv+aNouWGheWuueeahOebrueahFxuICAgICAqIOmcgOimgeWFqOWQjeWMuemFjemcgOimgeWcqOaYoOWwhOihqOS4reWKoOWFpXsgXCJtYXRjaEFsbFwiOiB0cnVlIH1cbiAgICAgKiDvvIjms6jmhI/vvIznqIvluo/pgLvovpHkuLrlhYjmmKDlsITlkI7miafooYzkuIvpnaLnmoTliKDpmaTmoIforrDvvIlcbiAgICAgKi9cbiAgICBydWxlc01hcHBpbmc6IFtcbiAgICAgICAgLy8gW3tcInRpdGxlXCI6IFwi5Zeo5ZOG5ZKqXCIsIFwiYXV0aG9yXCI6IFwi5Y+R57Kq5raC5aKZXCJ9LCB7XCJ0aXRsZVwiOiBcIuWXqOWTmuWSquW9seinhlwiLCBcImF1dGhvclwiOiBcIuWPkeeyqua2guWimVwifSwge1wibWF0Y2hBbGxcIjogdHJ1ZX1dLFxuICAgICAgICAvLyBbe1widGl0bGVcIjogXCLpooTlkYrniYdcIiwgXCJhdXRob3JcIjogXCJSZWJvcm5cIn0sIHtcInRpdGxlXCI6IFwi6aKE5ZGK54mHKD894oCiUmUpXCIsIFwiYXV0aG9yXCI6IFwiUmVib3JuXCJ9XSxcbiAgICAgICAgLy8gW3tcInRpdGxlXCI6IFwi6aKE5ZGK54mH4oCiVFwiLCBcImF1dGhvclwiOiBcIlJlYm9yblwifSwge1widGl0bGVcIjogXCLpooTlkYrniYfigKJSZVwiLCBcImF1dGhvclwiOiBcIlJlYm9yblwifSwge1wibWF0Y2hBbGxcIjogdHJ1ZX1dLFxuICAgICAgICAvLyBbe1widGl0bGVcIjogXCIuKj8oPz3igKJUKVwiLCBcImF1dGhvclwiOiBcIlJlYm9yblwifSwge1widGl0bGVcIjogXCIuKj8oPz3igKJSZSlcIiwgXCJhdXRob3JcIjogXCJSZWJvcm5cIn1dLFxuICAgICAgICAvLyBbe1widGl0bGVcIjogXCIuKj8oPz3igKJCKVwiLCBcImF1dGhvclwiOiBcIlJlYm9yblwifSwge1widGl0bGVcIjogXCIuKj8oPz3igKJSZSlcIiwgXCJhdXRob3JcIjogXCJSZWJvcm5cIn1dXG4gICAgXSxcbiAgICAvLyDkupHnq6/op4TliJnmmKDlsITliJfooajpk77mjqXvvIzmoLzlvI/mmK9KU09O5pWw57uE77yM6K+36Ieq5bex6K6+572uXG4gICAgcmVtb3RlUnVsZXNNYXBwaW5nVXJsOiBcIlwiLFxuXG4gICAgLy8g5YWl5oiP5byA5YWz77yf77yI5ruR56i977yJLy8g5Yig6Zmk5byA5YWz77yM5LiN6ZyA6KaB5Yig6Zmk6K+36K6+572u5Li6ZmFsc2VcbiAgICBuZWVkRGVsU3ltYm9sOiB0cnVlLFxuICAgIC8vIOiHquihjOa3u+WKoOimgeiiq+WIoOaOieeahOagh+iusFxuICAgIHN5bWJvbHM6IFtcIuagh+iusDFcIiwgXCLmoIforrAyXCJdLFxuXG4gICAgLy8g6ZqQ6JeP5byA5YWz77yM5LiN6ZyA6KaB6ZqQ6JeP6K+36K6+572u5Li6ZmFsc2VcbiAgICBuZWVkSGlkZVJ1bGU6IHRydWUsXG4gICAgLy8g6Ieq6KGM5re75Yqg6KaB6ZqQ6JeP55qE5qCH6K6w77yM5qC85byP5Li677yaW+agh+iusOWQjV1cbiAgICBoaWRlU3ltYm9sczogW1wiW+aooeadv11cIiwgXCJb5pyq5a6M5oiQXVwiXSxcblxuICAgIC8vIOiLpemcgOimgeWFs+mXreW/veeVpeacrOasoeabtOaWsOivt+iuvue9ruS4unRydWVcbiAgICBub0lnbm9yZVVwZGF0ZTogZmFsc2UsXG4gICAgLy8g5pys5Zyw5b+955Wl5pu05paw5YiX6KGo77yMXG4gICAgLy8g5YaF5a655qih5p2/5Li6IHt0aXRsZTogXCLop4TliJnlkI1cIiwgYXV0aG9yOiBcIuinhOWImeS9nOiAhVwifVxuICAgIGlnbm9yZVVwZGF0ZVJ1bGVMaXN0OiBbXG4gICAgICAgIC8vIHt0aXRsZTogXCLpooTlkYrniYfigKJSZVwiLCBhdXRob3I6IFwiUmVib3JuXCJ9LFxuICAgIF0sXG4gICAgLy8g5LqR56uv5b+955Wl5pu05paw5YiX6KGo77yM5qC85byP5pivSlNPTuaVsOe7hO+8jOivt+iHquW3seiuvue9rlxuICAgIHJlbW90ZUlnbm9yZUxpc3RVcmw6IFwiXCIsXG4gICAgLy8g5Y+C6ICD6ZO+5o6l77yaXG4gICAgLy8gaHR0cHM6Ly9naXRlZS5jb20vUmVib3JuXzAvSGlrZXJSdWxlc0RlcG90L3Jhdy9tYXN0ZXIvaWdub3JlVXBkYXRlUnVsZUxpc3QuanNvblxuICAgIC8vIGh0dHBzOi8vZ2l0ZWUuY29tL3FpdXN1bnNoaW5lMjMzL2hpa2VyVmlldy9yYXcvbWFzdGVyL3J1bGV2ZXJzaW9uL1JlYm9ybi9pZ25vcmVVcGRhdGVSdWxlTGlzdC5qc29uXG5cbiAgICAvLyDkuLrmiYDmnInliIbnsbvmt7vliqDor6XliIbnsbvku5PlupPmm7TmlrDlip/og71cbiAgICAvLyDpnIDopoHlg4/mgLvku5PlupPkuIDmoLfljZXni6znlKjkuIDkuKpqc29u566h55CG77yM6Ieq6KGM5aGr5YWl5Zyw5Z2AXG4gICAgcmVtb3RlRGVwb3RSdWxlVXJsOiBcImh0dHBzOi8vZ2l0ZWUuY29tL1JlYm9ybl8wL0hpa2VyUnVsZXNEZXBvdC9yYXcvbWFzdGVyL3VwZGF0ZS5qc29uXCIsXG4gICAgLy8g6Iul5LiN6ZyA6KaB5pu05paw5YiZ5YWz6ZetXG4gICAgc2hvd1VwZGF0ZUVycm9yVGlwczogdHJ1ZSxcbn07XG5cbi8vIOS7k+W6k+eKtuaAgee8k+WtmOaWh+S7tuWcsOWdgFxudmFyIHN0YXR1c0NhY2hlRmlsZSA9IFwiaGlrZXI6Ly9maWxlcy9cIiArIG1SdWxlLnRpdGxlICsgXCJfXCIgKyBtUnVsZS5hdXRob3IgKyBcIi5qc29uXCI7XG4vLyDkuL7kvosgaGlrZXI6Ly9maWxlcy9kZXBvdFN0YXR1cy5qc29uXG5cbnZhciByZW1vdGVJZ25vcmVMaXN0ID0gW107XG50cnkge1xuICAgIGV2YWwoXCJyZW1vdGVJZ25vcmVMaXN0PVwiICsgZmV0Y2goc2V0dGluZ3MucmVtb3RlSWdub3JlTGlzdFVybCwge30pKTtcbn0gY2F0Y2ggKGUpIHtcbn1cbkFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHNldHRpbmdzLmlnbm9yZVVwZGF0ZVJ1bGVMaXN0LCByZW1vdGVJZ25vcmVMaXN0KTtcbi8vIHNldEVycm9yKEpTT04uc3RyaW5naWZ5KGlnbm9yZVVwZGF0ZVJ1bGVMaXN0KSk7XG5cbnZhciByZW1vdGVSdWxlc01hcHBpbmcgPSBbXTtcbnRyeSB7XG4gICAgZXZhbChcInJlbW90ZVJ1bGVzTWFwcGluZz1cIiArIGZldGNoKHNldHRpbmdzLnJlbW90ZVJ1bGVzTWFwcGluZ1VybCwge30pKTtcbn0gY2F0Y2ggKGUpIHtcbn1cbkFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHNldHRpbmdzLnJ1bGVzTWFwcGluZywgcmVtb3RlUnVsZXNNYXBwaW5nKTtcbi8vIHNldEVycm9yKEpTT04uc3RyaW5naWZ5KHJ1bGVzTWFwcGluZykpO1xuXG4vKipcbiAqIOWPr+WcqOatpOWkhOiHquWumuS5ieS7k+W6k++8jOWunueOsOengeS6uuS7k+W6k1xuICpcbiAqIOS7pVJlYm9ybuS7k+W6k+eahOmTvuaOpeS4uuWPguiAg1xuICpcbiAqIGh0dHBzOi8vZ2l0ZWUuY29tL1JlYm9ybl8wL0hpa2VyUnVsZXNEZXBvdC9ibG9iL21hc3Rlci91cGRhdGUuanNvblxuICovXG52YXIgYXV0aG9yTGlzdCA9IGdldFVybCgpLnNwbGl0KFwiI1wiKVsxXTtcbnZhciBhdXRob3JBbmRPd25lckFuZFByb2plY3QgPSBhdXRob3JMaXN0LnNwbGl0KFwiQEBcIik7XG52YXIgYXV0aG9yID0gYXV0aG9yQW5kT3duZXJBbmRQcm9qZWN0WzBdO1xudmFyIHJlbW90ZVVybCA9IFwiXCI7XG5cbnZhciBhcGlUeXBlID0gXCIxXCI7ICAvLyAwIOS4uuaWh+S7tuebtOmTvu+8jDEg5Li656CB5LqRQVBJXG52YXIgYXBpVHlwZUpTID0gYXV0aG9yTGlzdC5tYXRjaCgvYXBpVHlwZT0uW1xcc1xcU10qPycvKSArIFwiO1wiO1xuZXZhbChhcGlUeXBlSlMpO1xuaWYgKGFwaVR5cGUgPT0gbnVsbCkgYXBpVHlwZSA9IFwiMVwiO1xuXG5pZiAoYXBpVHlwZSA9PSBcIjBcIikge1xuICAgIHZhciBmdWxsVXJsID0gXCJcIjtcbiAgICB2YXIgZnVsbFVybEpTID0gYXV0aG9yTGlzdC5tYXRjaCgvZnVsbFVybD0uW1xcc1xcU10qPycvKSArIFwiO1wiO1xuICAgIGV2YWwoZnVsbFVybEpTKTtcbiAgICByZW1vdGVVcmwgPSBmdWxsVXJsO1xufSBlbHNlIGlmIChhcGlUeXBlID09IFwiMVwiKSB7XG4gICAgdmFyIHJlbW90ZUFwaUhvbWUgPSBcImh0dHBzOi8vZ2l0ZWUuY29tL2FwaS92NS9yZXBvcy9cIjtcbiAgICB2YXIgb3duZXIgPSBhdXRob3JBbmRPd25lckFuZFByb2plY3RbMV07ICAgLy8g5LuT5bqT5oul5pyJ6ICFXG4gICAgdmFyIHJlcG8gPSBhdXRob3JBbmRPd25lckFuZFByb2plY3RbMl07IC8vIOS7k+W6k+WQjVxuICAgIHZhciByZW1vdGVGaWxlbmFtZSA9IG51bGw7IC8vIOaWh+S7tuWQjVxuICAgIHZhciBwYXRoID0gcmVtb3RlRmlsZW5hbWU7ICAvLyDlnKjku5PlupPkuK3mlofku7bnmoTot6/lvoRcbiAgICB2YXIgYWNjZXNzX3Rva2VuID0gbnVsbDsgIC8vIOeUqOaIt+aOiOadg+egge+8jOWcqOeggeS6kVwi6K6+572u4oCUPuWuieWFqOiuvuWumi0+5Liq5Lq66K6/6Zeu5Luk54mMXCLkuK3lj6/ku6XnlJ/miJBcbiAgICB2YXIgdG9rZW5KUyA9IGF1dGhvckxpc3QubWF0Y2goL2FjY2Vzc190b2tlbj0uW1xcc1xcU10qPycvKSArIFwiO1wiO1xuICAgIGV2YWwodG9rZW5KUyk7XG4gICAgLy8gc2V0RXJyb3IoYWNjZXNzX3Rva2VuPT1udWxsKTtcbiAgICB2YXIgcmVtb3RlRmlsZW5hbWVKUyA9IGF1dGhvckxpc3QubWF0Y2goL3JlbW90ZUZpbGVuYW1lPS5bXFxzXFxTXSo/Jy8pICsgXCI7XCI7XG4gICAgZXZhbChyZW1vdGVGaWxlbmFtZUpTKTtcbiAgICBpZiAocmVtb3RlRmlsZW5hbWUgPT0gbnVsbCkge1xuICAgICAgICByZW1vdGVGaWxlbmFtZSA9IFwidXBkYXRlLmpzb25cIjtcbiAgICB9XG4gICAgcGF0aCA9IHJlbW90ZUZpbGVuYW1lO1xuICAgIC8vIHNldEVycm9yKHJlbW90ZUZpbGVuYW1lKVxuICAgIC8vIEFQSemTvuaOpeWPguiAg++8mmh0dHBzOi8vZ2l0ZWUuY29tL2FwaS92NS9yZXBvcy97e293bmVyfX0ve3tyZXBvfX0vY29udGVudHMve3twYXRofX0/YWNjZXNzX3Rva2VuPSoqKipcbiAgICByZW1vdGVVcmwgPSByZW1vdGVBcGlIb21lICsgb3duZXIgKyBcIi9cIiArIHJlcG8gKyBcIi9jb250ZW50cy9cIiArIHBhdGg7XG4gICAgaWYgKGFjY2Vzc190b2tlbiAhPSBudWxsKSB7XG4gICAgICAgIHJlbW90ZVVybCA9IHJlbW90ZVVybCArIFwiP2FjY2Vzc190b2tlbj1cIiArIGFjY2Vzc190b2tlbjtcbiAgICB9XG4gICAgLy8gc2V0RXJyb3IocmVtb3RlVXJsKTtcbiAgICAvLyB2YXIgcmVtb3RlSG9tZSA9IFwiaHR0cHM6Ly9naXRlZS5jb20vXCIgKyBvd25lciArIFwiL1wiICsgcmVwbyArIFwiL2Jsb2IvbWFzdGVyL3VwZGF0ZS5qc29uXCI7XG59XG5cbmZ1bmN0aW9uIHdyaXRlT2JqZWN0VG9GaWxlKGZpbGVVcmwsIG9iamVjdCkge1xuICAgIHdyaXRlRmlsZShmaWxlVXJsLCBKU09OLnN0cmluZ2lmeShvYmplY3QpKTtcbn1cblxuLy8g5oqK5oC75LuT5bqT54q25oCB5YaZ5YWl5paH5Lu2XG5mdW5jdGlvbiB3cml0ZURlcG90U3RhdHVzVG9GaWxlKGRlcG90U3RhdHVzKSB7XG4gICAgd3JpdGVPYmplY3RUb0ZpbGUoc3RhdHVzQ2FjaGVGaWxlLCBkZXBvdFN0YXR1cyk7XG59XG5cbi8vIOiLpeS4jeaYr+esrOS4gOasoeS9v+eUqOaAu+S7k+W6k+WImemakOiXj+W8gOWPkeaWh+aho1xudmFyIGRlcG90U3RhdHVzID0ge307XG52YXIgZGVwb3RTdGF0dXNGaWxlID0gZmV0Y2goc3RhdHVzQ2FjaGVGaWxlLCB7fSk7XG5pZiAoZGVwb3RTdGF0dXNGaWxlICE9IFwiXCIpIHtcbiAgICBldmFsKFwiZGVwb3RTdGF0dXM9XCIgKyBkZXBvdFN0YXR1c0ZpbGUpO1xufVxuXG52YXIgZGVwb3RSdWxlc1N0YXR1cyA9IHtcbiAgICB1cGRhdGVOdW06IDAsXG4gICAgbm9JbXBvcnROdW06IDAsXG4gICAgaWdub3JlTnVtOiAwLFxuICAgIHVua25vd25UeXBlTnVtOiAwXG59O1xuXG52YXIgZW50ZXJUZXh0ID0gXCJcXG5cXG5cIjtcbmlmIChzZXR0aW5ncy5jb21wcmVzc1RleHQgPT0gdHJ1ZSkgZW50ZXJUZXh0ID0gXCJcXG5cIjtcblxuZnVuY3Rpb24gZ2V0UnVsZU5vU3ltYm9scyhydWxlLCBzeW1ib2xMaXN0KSB7XG4gICAgaWYgKHNldHRpbmdzLm5lZWREZWxTeW1ib2wgIT0gdHJ1ZSkgcmV0dXJuIHJ1bGU7XG4gICAgdmFyIHJ1bGVUZW1wID0gcnVsZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbExpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHN5bWJvbFJlZyA9IG5ldyBSZWdFeHAoc3ltYm9sTGlzdFtpXSwgXCJnXCIpO1xuICAgICAgICBydWxlVGVtcC50aXRsZSA9IHJ1bGVUZW1wLnRpdGxlLnJlcGxhY2Uoc3ltYm9sUmVnLCBcIlwiKTtcbiAgICB9XG4vL3NldEVycm9yKEpTT04uc3RyaW5naWZ5KHJ1bGVUZW1wKSk7XG4gICAgcmV0dXJuIHJ1bGVUZW1wO1xufVxuXG5mdW5jdGlvbiBpc0hpZGVSdWxlKHJ1bGUpIHtcbiAgICBpZiAoc2V0dGluZ3MubmVlZEhpZGVSdWxlICE9IHRydWUpIHJldHVybiBmYWxzZTtcbiAgICAvLyBpZiAoaGlkZVN5bWJvbHMubGVuZ3RoID09IDApIHJldHVybiBmYWxzZTtcbiAgICB2YXIgcnVsZVRlbXAgPSBydWxlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2V0dGluZ3MuaGlkZVN5bWJvbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHJ1bGVUZW1wLnRpdGxlLmluZGV4T2Yoc2V0dGluZ3MuaGlkZVN5bWJvbHNbaV0pICE9IC0xKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXRSdWxlSW5BcnJheShydWxlcywgcnVsZSkge1xuICAgIGlmIChydWxlcyA9PSBudWxsIHx8IHJ1bGVzLmxlbmd0aCA9PSAwKSByZXR1cm4gbnVsbDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChydWxlc1tpXS50aXRsZSA9PSBydWxlLnRpdGxlICYmIHJ1bGVzW2ldLmF1dGhvciA9PSBhdXRob3IpIHJldHVybiBydWxlc1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzSWdub3JlVXBkYXRlUnVsZShydWxlKSB7XG4gICAgaWYgKGlzSW5BcnJheShzZXR0aW5ncy5pZ25vcmVVcGRhdGVSdWxlTGlzdCwgcnVsZSkgPT0gdHJ1ZSkge1xuICAgICAgICB2YXIgY2FjaGVJZ25vcmVSdWxlID0gZ2V0UnVsZUluQXJyYXkoZGVwb3RTdGF0dXMuaWdub3JlVXBkYXRlUnVsZUxpc3QsIHJ1bGUpO1xuICAgICAgICBpZiAoY2FjaGVJZ25vcmVSdWxlID09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChkZXBvdFN0YXR1cy5pZ25vcmVVcGRhdGVSdWxlTGlzdCA9PSBudWxsKSBkZXBvdFN0YXR1cy5pZ25vcmVVcGRhdGVSdWxlTGlzdCA9IFtdO1xuICAgICAgICAgICAgY2FjaGVJZ25vcmVSdWxlID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBydWxlLnRpdGxlLFxuICAgICAgICAgICAgICAgIGF1dGhvcjogYXV0aG9yLFxuICAgICAgICAgICAgICAgIHZlcnNpb246IHJ1bGUudmVyc2lvblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGRlcG90U3RhdHVzLmlnbm9yZVVwZGF0ZVJ1bGVMaXN0LnB1c2goY2FjaGVJZ25vcmVSdWxlKTtcbiAgICAgICAgICAgIHdyaXRlRGVwb3RTdGF0dXNUb0ZpbGUoZGVwb3RTdGF0dXMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocnVsZS52ZXJzaW9uICE9IGNhY2hlSWdub3JlUnVsZS52ZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVJZ25vcmVSdWxlLnZlcnNpb24gPSBydWxlLnZlcnNpb247XG4gICAgICAgICAgICAgICAgd3JpdGVEZXBvdFN0YXR1c1RvRmlsZShkZXBvdFN0YXR1cyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHNldElnbm9yZVVwZGF0ZVJ1bGUocnVsZSkge1xuICAgIGlmIChpc0lnbm9yZVVwZGF0ZVJ1bGUocnVsZSkgPT0gdHJ1ZSkgcnVsZS5pc0lnbm9yZVVwZGF0ZSA9IHRydWU7XG59XG5cbnZhciBydWxlcyA9IFtdO1xuZXZhbChcInJ1bGVzPVwiICsgZ2V0UmVzQ29kZSgpKTtcbnZhciBteVJ1bGVzID0gW107XG5mb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHJ1bGUgPSBydWxlc1tpXTtcbiAgICBpZiAocnVsZS5hdXRob3IgPT0gYXV0aG9yKSB7XG4gICAgICAgIG15UnVsZXMucHVzaChnZXRSdWxlTm9TeW1ib2xzKHJ1bGUsIHNldHRpbmdzLnN5bWJvbHMpKTtcbiAgICB9XG59XG4vLyBzZXRFcnJvcihKU09OLnN0cmluZ2lmeShteVJ1bGVzKSk7XG5cbi8vIOWmguaenOacrOWcsOayoeacieWImeaPkOekuuWvvOWFpeaWsOinhOWImVxuLy8g5Zug6YOo5YiG5omL5py65LiN5pSv5oyBZXM26K+t5rOV77yM5pWF5rOo6YeK5o6JXG4vKnZhciBteVJ1bGVzTWFwID0gbmV3IE1hcCgpO1xubXlSdWxlcy5tYXAocnVsZT0+e1xubXlSdWxlc01hcC5zZXQocnVsZS50aXRsZSwgdHJ1ZSk7XG59KTtcbi8vc2V0RXJyb3IobXlSdWxlc01hcC5nZXQoXCLohb7orq/igKJSZVwiKSk7Ki9cblxuLy8g5Y6f5aeL5pa55rOV77yM5q+U6L6D6ICX5pe2XG5mdW5jdGlvbiBpc0luQXJyYXkocnVsZXMsIHJ1bGUpIHtcbiAgICBpZiAocnVsZXMubGVuZ3RoID09IDApIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChydWxlc1tpXS50aXRsZSA9PSBydWxlLnRpdGxlKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXRSdWxlSW5SdWxlc1dpdGhNYXBwaW5nKHJ1bGVzLCBydWxlKSB7XG4gICAgaWYgKHJ1bGVzID09IG51bGwgfHwgcnVsZXMubGVuZ3RoID09IDAgfHwgcnVsZSA9PSBudWxsIHx8IHJ1bGUubWFwcGluZ1RpdGxlID09IG51bGwpIHJldHVybiBudWxsO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHJ1bGVzW2ldLm1hcHBpbmdUaXRsZSAhPSBudWxsICYmIHJ1bGVzW2ldLm1hcHBpbmdUaXRsZSA9PSBydWxlLm1hcHBpbmdUaXRsZSAmJiBydWxlc1tpXS5hdXRob3IgPT0gYXV0aG9yKSByZXR1cm4gcnVsZXNbaV07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBpc0luUnVsZXNXaXRoTWFwcGluZyhydWxlcywgcnVsZSkge1xuICAgIGlmIChnZXRSdWxlSW5SdWxlc1dpdGhNYXBwaW5nKHJ1bGVzLCBydWxlKSAhPSBudWxsKSByZXR1cm4gdHJ1ZTtcbiAgICBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxudmFyIGRlc2MgPSBmdW5jdGlvbiAocnVsZXMsIHJ1bGUpIHtcbiAgICBpZiAocnVsZSAhPSBudWxsICYmIHJ1bGUudmVyc2lvbiA8IDApIHtcbiAgICAgICAgZGVwb3RSdWxlc1N0YXR1cy51bmtub3duVHlwZU51bSArPSAxO1xuICAgICAgICByZXR1cm4gXCLku5PlupPml6Dms5Xmo4DmtYvor6Xop4TliJnnsbvlnovvvIzor7figJjigJjnnIvop4TliJnmm7TmlrDml7bpl7TigJnigJlcIjtcbiAgICB9XG4gICAgaWYgKGlzSW5SdWxlc1dpdGhNYXBwaW5nKHJ1bGVzLCBydWxlKSA9PSB0cnVlIHx8IGlzSW5BcnJheShydWxlcywgcnVsZSkgPT0gdHJ1ZSkge1xuICAgICAgICBpZiAocnVsZS5vbGRWZXJzaW9uICE9IG51bGwgJiYgcnVsZS5vbGRWZXJzaW9uIDwgcnVsZS52ZXJzaW9uKSB7XG4gICAgICAgICAgICBkZXBvdFJ1bGVzU3RhdHVzLnVwZGF0ZU51bSArPSAxO1xuICAgICAgICAgICAgcmV0dXJuIChcIuKAmOKAmOacieaWsOeJiOacrO+8mlwiICsgcnVsZS52ZXJzaW9uICsgXCLigJnigJnvvIzngrnlh7vlr7zlhaXmlrDniYjmnKxcIilcbiAgICAgICAgICAgICAgICArIChcbiAgICAgICAgICAgICAgICAgICAgZW50ZXJUZXh0ICsgXCJb5pu05paw5pel5b+XXSBcIlxuICAgICAgICAgICAgICAgICAgICArIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUudXBkYXRlVGV4dCA9PSBudWxsID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIuaXoFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBydWxlLnVwZGF0ZVRleHRcbiAgICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcnVsZS5vbGRWZXJzaW9uID4gcnVsZS52ZXJzaW9uID9cbiAgICAgICAgICAgICAgICBcIuKAmOKAmOWWte+8n+S4uuWVpeS9oOeahOinhOWImeeJiOacrOavlOaIkei/mOmrmO+8n+KAmeKAmVwiXG4gICAgICAgICAgICAgICAgOiBcIuW9k+WJjeinhOWImeW3suaYr+acgOaWsOeJiO+8jOeCueWHu+i3s+WIsOinhOWImemhtVwiO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZGVwb3RSdWxlc1N0YXR1cy5ub0ltcG9ydE51bSArPSAxO1xuICAgICAgICByZXR1cm4gXCLigJjigJjkvaDlsJrmnKrlr7zlhaXor6Xop4TliJnigJnigJnvvIzngrnlh7vlr7zlhaVcIjtcbiAgICB9XG59O1xuXG50cnkge1xuICAgIHZhciByZW1vdGVEZXBvdFJ1bGUgPSB7fTtcbiAgICBldmFsKFwicmVtb3RlRGVwb3RSdWxlPVwiICsgZmV0Y2goc2V0dGluZ3MucmVtb3RlRGVwb3RSdWxlVXJsLCB7fSkpO1xuICAgIHZhciBsb2NhbERlcG90UnVsZSA9IEpTT04ucGFyc2UoZ2V0UnVsZSgpKTtcbiAgICByZW1vdGVEZXBvdFJ1bGUgPSByZW1vdGVEZXBvdFJ1bGUuZGF0YVswXTtcbiAgICByZW1vdGVEZXBvdFJ1bGUub2xkVmVyc2lvbiA9IGxvY2FsRGVwb3RSdWxlLnZlcnNpb247XG4vL3NldEVycm9yKEpTT04uc3RyaW5naWZ5KGxvY2FsRGVwb3RSdWxlKSk7XG4vL3NldEVycm9yKEpTT04uc3RyaW5naWZ5KHJlbW90ZURlcG90UnVsZSkpO1xuICAgIGlmIChyZW1vdGVEZXBvdFJ1bGUub2xkVmVyc2lvbiA8IHJlbW90ZURlcG90UnVsZS52ZXJzaW9uKSB7XG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogXCLigJjigJjmqKHmnb/mnInmlrDniYjmnKzvvJpcIiArIHJlbW90ZURlcG90UnVsZS52ZXJzaW9uICsgXCLigJnigJnvvIzor7fogZTns7vkvZzogIXljrvmgLvku5PlupPmm7TmlrBcIixcbi8vIHJlbW90ZURlcG90UnVsZS50aXRsZSArIFwiXFx0XCIgKyBkZXNjKHJ1bGVzLCByZW1vdGVEZXBvdFJ1bGUpLFxuLy8gICAgICAgICAgICAgdXJsOiByZW1vdGVEZXBvdFJ1bGUucnVsZSB8fCBcIlwiLFxuICAgICAgICAgICAgdXJsOiBcImhpa2VyOi8vaG9tZUDmgLvku5PlupNcIixcbiAgICAgICAgICAgIGNvbF90eXBlOiBcInRleHRfY2VudGVyXzFcIixcbiAgICAgICAgICAgIC8vY29udGVudDogcmVtb3RlRGVwb3RSdWxlLnVwZGF0ZVRleHQsXG4gICAgICAgICAgICBkZXNjOiBcIuOAkOabtOaWsOaXpeW/l+OAkVxcblwiICsgcmVtb3RlRGVwb3RSdWxlLnVwZGF0ZVRleHRcbiAgICAgICAgfSk7XG4gICAgfVxufSBjYXRjaCAoZSkge1xuICAgIGlmIChzZXR0aW5ncy5zaG93VXBkYXRlRXJyb3JUaXBzID09IHRydWUpXG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogXCLigJjigJjmgLvku5PlupPmm7TmlrDnqIvluo/lt7LmjZ/lnY/igJnigJlcIixcbiAgICAgICAgICAgIGRlc2M6IFwi6K+36IGU57O7IFwiICsgbVJ1bGUuYXV0aG9yICsgXCIg5L+u5aSNXCIsXG4gICAgICAgICAgICBjb2xfdHlwZTogXCJ0ZXh0X2NlbnRlcl8xXCIsXG4gICAgICAgIH0pO1xufVxuXG52YXIgcmVtb3RlUnVsZXMgPSBbXTtcbi8vIHZhciByZW1vdGVVcmwgPSByZW1vdGVBcGlIb21lICsgZW5jb2RlVVJJQ29tcG9uZW50KGF1dGhvcikgKyBcIi9cIiArIHJlbW90ZUZpbGVuYW1lO1xudmFyIHJlbW90ZVNvdXJjZSA9IGZldGNoKHJlbW90ZVVybCwge30pO1xuLy8gc2V0RXJyb3IocmVtb3RlVXJsKTtcbnRyeSB7XG4gICAgZXZhbChcInJlbW90ZVNvdXJjZT1cIiArIHJlbW90ZVNvdXJjZSk7XG4gICAgaWYgKGFwaVR5cGUgPT0gXCIwXCIpIHtcbiAgICAgICAgcmVtb3RlUnVsZXMgPSByZW1vdGVTb3VyY2U7XG4gICAgfSBlbHNlIGlmIChhcGlUeXBlID09IFwiMVwiKSB7XG4gICAgICAgIGV2YWwoXCJyZW1vdGVSdWxlcz1cIiArIGJhc2U2NERlY29kZShyZW1vdGVTb3VyY2UuY29udGVudCkpO1xuICAgIH1cbiAgICBpZiAocmVtb3RlUnVsZXMuZGF0YSAhPSBudWxsKSB7XG4gICAgICAgIHZhciBub3RpY2UgPSByZW1vdGVSdWxlcy5ub3RpY2U7XG4gICAgICAgIGlmIChub3RpY2UgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiAobm90aWNlKSA9PSBcInN0cmluZ1wiICYmIG5vdGljZSAhPSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5LuT5bqT6YCa55+lXCIsXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6IG5vdGljZSxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFwicGljXzFcIlxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgKG5vdGljZSkgPT0gXCJvYmplY3RcIiAmJiBub3RpY2UuZGVzYyAhPSBudWxsICYmIG5vdGljZS5kZXNjICE9IFwiXCIpIHtcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogbm90aWNlLnRpdGxlICE9IG51bGwgJiYgbm90aWNlLnRpdGxlICE9IFwiXCIgPyBub3RpY2UudGl0bGUgOiBcIuS7k+W6k+mAmuefpVwiLFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiBub3RpY2UuZGVzYyxcbiAgICAgICAgICAgICAgICAgICAgcGljX3VybDogbm90aWNlLnBpY1VybCxcbi8vICE9IG51bGwgJiYgbm90aWNlLnBpY1VybCAhPSBcIlwiID8gbm90aWNlLnBpY1VybCA6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcInBpY18xXCJcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZW1vdGVSdWxlcyA9IHJlbW90ZVJ1bGVzLmRhdGE7XG4gICAgfVxufSBjYXRjaCAoZSkge1xufVxuLy9zZXRFcnJvcihyZW1vdGVSdWxlcy5sZW5ndGgpO1xuaWYgKHJlbW90ZVJ1bGVzLmxlbmd0aCA9PSAwKSB7XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IFwi6K+l6L+c56iL5LuT5bqT5peg5pWw5o2u77yBXCIsXG4gICAgICAgIGNvbF90eXBlOiBcInRleHRfY2VudGVyXzFcIlxuICAgIH0pO1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBcIuivpei/nOeoi+S7k+W6k+aXoOaVsOaNru+8gVwiLFxuICAgICAgICBjb2xfdHlwZTogXCJ0ZXh0X2NlbnRlcl8xXCJcbiAgICB9KTtcbiAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogXCLor6Xov5znqIvku5PlupPml6DmlbDmja7vvIFcIixcbiAgICAgICAgY29sX3R5cGU6IFwidGV4dF9jZW50ZXJfMVwiXG4gICAgfSk7XG59IGVsc2Uge1xuICAgIC8vc2V0RXJyb3IobXlSdWxlcy5sZW5ndGgpO1xuICAgIGlmIChteVJ1bGVzLmxlbmd0aCA+PSByZW1vdGVSdWxlcy5sZW5ndGgpIHtcbiAgICAgICAgLy8g5LiN55+l6YGT5Lya5LiN5Lya5pyJ6Zeu6aKYXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXlSdWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCByZW1vdGVSdWxlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIHZhciBsb2NhbFJ1bGUgPSBteVJ1bGVzW2ldO1xuICAgICAgICAgICAgICAgIHZhciByZW1vdGVSdWxlID0gcmVtb3RlUnVsZXNbal07XG4gICAgICAgICAgICAgICAgaWYgKGlzSGlkZVJ1bGUocmVtb3RlUnVsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3RlUnVsZXMuc3BsaWNlKGosIDEpO1xuICAgICAgICAgICAgICAgICAgICBqLS07XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRJZ25vcmVVcGRhdGVSdWxlKHJlbW90ZVJ1bGUpO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgc2V0dGluZ3MucnVsZXNNYXBwaW5nLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2lmICgobG9jYWxSdWxlLm1hcHBpbmdUaXRsZSAhPSBudWxsICYmIHJlbW90ZVJ1bGUubWFwcGluZ1RpdGxlICE9IG51bGwpIHx8IHJlbW90ZVJ1bGUuaXNNYXBwZWQgPT0gdHJ1ZSkgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcnVsZU1hcHBpbmcgPSBzZXR0aW5ncy5ydWxlc01hcHBpbmdba107XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbG9jYWxSdWxlTWFwcGluZ1RpdGxlID0gcnVsZU1hcHBpbmdbMF0udGl0bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVtb3RlUnVsZU1hcHBpbmdUaXRsZSA9IHJ1bGVNYXBwaW5nWzFdLnRpdGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5YWo5ZCN5pig5bCEXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxSdWxlLnRpdGxlID09IGxvY2FsUnVsZU1hcHBpbmdUaXRsZSAmJiByZW1vdGVSdWxlLnRpdGxlID09IHJlbW90ZVJ1bGVNYXBwaW5nVGl0bGUgJiYgcnVsZU1hcHBpbmdbMl0ubWF0Y2hBbGwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsUnVsZS5tYXBwaW5nVGl0bGUgPSByZW1vdGVSdWxlTWFwcGluZ1RpdGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZVJ1bGUubWFwcGluZ1RpdGxlID0gcmVtb3RlUnVsZU1hcHBpbmdUaXRsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlUmVnZXggPSBuZXcgUmVnRXhwKGxvY2FsUnVsZU1hcHBpbmdUaXRsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxSdWxlLm1hcHBpbmdUaXRsZSA9IGxvY2FsUnVsZS5tYXBwaW5nVGl0bGUgIT0gbnVsbCAmJiBsb2NhbFJ1bGUubWFwcGluZ1RpdGxlICE9IFwiXCIgPyBsb2NhbFJ1bGUubWFwcGluZ1RpdGxlIDogbG9jYWxSdWxlLnRpdGxlLm1hdGNoKHRpdGxlUmVnZXgpWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlUmVnZXggPSBuZXcgUmVnRXhwKHJlbW90ZVJ1bGVNYXBwaW5nVGl0bGUsIFwiZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVSdWxlLm1hcHBpbmdUaXRsZSA9IHJlbW90ZVJ1bGUudGl0bGUubWF0Y2godGl0bGVSZWdleClbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxSdWxlLm1hcHBpbmdUaXRsZSA9PSByZW1vdGVSdWxlLm1hcHBpbmdUaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZVJ1bGUubG9jYWxUaXRsZSA9IGxvY2FsUnVsZS50aXRsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVSdWxlLmlzTWFwcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVSdWxlLm9sZFZlcnNpb24gPSBsb2NhbFJ1bGUudmVyc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChsb2NhbFJ1bGUudGl0bGUgPT0gcmVtb3RlUnVsZS50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICByZW1vdGVSdWxlLm9sZFZlcnNpb24gPSBsb2NhbFJ1bGUudmVyc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgLy9yZW1vdGVSdWxlc1tqXS5ydWxlPW15UnVsZXNbaV0ucnVsZTtcbiAgICAgICAgICAgICAgICAgICAgLy9yZW1vdGVSdWxlc1tqXS5kZXNjPW15UnVsZXNbaV0uZGVzYztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbW90ZVJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgcmVtb3RlUnVsZSA9IHJlbW90ZVJ1bGVzW2ldO1xuICAgICAgICAgICAgaWYgKChpc0hpZGVSdWxlKHJlbW90ZVJ1bGUpKSkge1xuICAgICAgICAgICAgICAgIHJlbW90ZVJ1bGVzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICBpLS07XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRJZ25vcmVVcGRhdGVSdWxlKHJlbW90ZVJ1bGUpO1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBteVJ1bGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxvY2FsUnVsZSA9IG15UnVsZXNbal07XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBzZXR0aW5ncy5ydWxlc01hcHBpbmcubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vaWYgKChsb2NhbFJ1bGUubWFwcGluZ1RpdGxlICE9IG51bGwgJiYgcmVtb3RlUnVsZS5tYXBwaW5nVGl0bGUgIT0gbnVsbCkgfHwgcmVtb3RlUnVsZS5pc01hcHBlZCA9PSB0cnVlKSBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydWxlTWFwcGluZyA9IHNldHRpbmdzLnJ1bGVzTWFwcGluZ1trXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsb2NhbFJ1bGVNYXBwaW5nVGl0bGUgPSBydWxlTWFwcGluZ1swXS50aXRsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW1vdGVSdWxlTWFwcGluZ1RpdGxlID0gcnVsZU1hcHBpbmdbMV0udGl0bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyDlhajlkI3mmKDlsIRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbFJ1bGUudGl0bGUgPT0gbG9jYWxSdWxlTWFwcGluZ1RpdGxlICYmIHJlbW90ZVJ1bGUudGl0bGUgPT0gcmVtb3RlUnVsZU1hcHBpbmdUaXRsZSAmJiBydWxlTWFwcGluZ1syXS5tYXRjaEFsbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxSdWxlLm1hcHBpbmdUaXRsZSA9IHJlbW90ZVJ1bGVNYXBwaW5nVGl0bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlUnVsZS5tYXBwaW5nVGl0bGUgPSByZW1vdGVSdWxlTWFwcGluZ1RpdGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGVSZWdleCA9IG5ldyBSZWdFeHAobG9jYWxSdWxlTWFwcGluZ1RpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFJ1bGUubWFwcGluZ1RpdGxlID0gbG9jYWxSdWxlLm1hcHBpbmdUaXRsZSAhPSBudWxsICYmIGxvY2FsUnVsZS5tYXBwaW5nVGl0bGUgIT0gXCJcIiA/IGxvY2FsUnVsZS5tYXBwaW5nVGl0bGUgOiBsb2NhbFJ1bGUudGl0bGUubWF0Y2godGl0bGVSZWdleClbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGVSZWdleCA9IG5ldyBSZWdFeHAocmVtb3RlUnVsZU1hcHBpbmdUaXRsZSwgXCJnXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZVJ1bGUubWFwcGluZ1RpdGxlID0gcmVtb3RlUnVsZS50aXRsZS5tYXRjaCh0aXRsZVJlZ2V4KVswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbFJ1bGUubWFwcGluZ1RpdGxlID09IHJlbW90ZVJ1bGUubWFwcGluZ1RpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlUnVsZS5sb2NhbFRpdGxlID0gbG9jYWxSdWxlLnRpdGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZVJ1bGUuaXNNYXBwZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZVJ1bGUub2xkVmVyc2lvbiA9IGxvY2FsUnVsZS52ZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobG9jYWxSdWxlLnRpdGxlID09IHJlbW90ZVJ1bGUudGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3RlUnVsZS5vbGRWZXJzaW9uID0gbG9jYWxSdWxlLnZlcnNpb247XG4gICAgICAgICAgICAgICAgICAgIC8vcmVtb3RlUnVsZXNbaV0ucnVsZT1teVJ1bGVzW2pdLnJ1bGU7XG4gICAgICAgICAgICAgICAgICAgIC8vcmVtb3RlUnVsZXNbaV0uZGVzYz1teVJ1bGVzW2pdLmRlc2M7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VTb3J0KGFycikge1xuICAgICAgICB2YXIgbGVuID0gYXJyLmxlbmd0aDtcbiAgICAgICAgaWYgKGxlbiA8IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBhcnI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1pZGRsZSA9IE1hdGguZmxvb3IobGVuIC8gMiksXG4gICAgICAgICAgICBsZWZ0ID0gYXJyLnNsaWNlKDAsIG1pZGRsZSksXG4gICAgICAgICAgICByaWdodCA9IGFyci5zbGljZShtaWRkbGUpO1xuICAgICAgICByZXR1cm4gbWVyZ2UobWVyZ2VTb3J0KGxlZnQpLCBtZXJnZVNvcnQocmlnaHQpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtZXJnZShsZWZ0LCByaWdodCkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICAgIHZhciBpZ25vcmVVcGRhdGVMaXN0ID0gW107XG4gICAgICAgIHZhciBpc1RoaXNWZXJzaW9uTGlzdCA9IFtdO1xuXG4gICAgICAgIHdoaWxlIChsZWZ0Lmxlbmd0aCA+IDAgJiYgcmlnaHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKGxlZnRbMF0uaXNJZ25vcmVVcGRhdGUgPT0gdHJ1ZSAmJiBsZWZ0WzBdLm9sZFZlcnNpb24gIT0gbGVmdFswXS52ZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgaWdub3JlVXBkYXRlTGlzdC5wdXNoKGxlZnQuc2hpZnQoKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0WzBdLmlzSWdub3JlVXBkYXRlID09IHRydWUgJiYgcmlnaHRbMF0ub2xkVmVyc2lvbiAhPSByaWdodFswXS52ZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgaWdub3JlVXBkYXRlTGlzdC5wdXNoKHJpZ2h0LnNoaWZ0KCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsZWZ0WzBdLm9sZFZlcnNpb24gPCBsZWZ0WzBdLnZlcnNpb24pIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChsZWZ0LnNoaWZ0KCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyaWdodFswXS5vbGRWZXJzaW9uIDwgcmlnaHRbMF0udmVyc2lvbikge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJpZ2h0LnNoaWZ0KCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsZWZ0WzBdLm9sZFZlcnNpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGxlZnQuc2hpZnQoKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0WzBdLm9sZFZlcnNpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJpZ2h0LnNoaWZ0KCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpc1RoaXNWZXJzaW9uTGlzdC5wdXNoKGxlZnQuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgaXNUaGlzVmVyc2lvbkxpc3QucHVzaChyaWdodC5zaGlmdCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpZ25vcmVVcGRhdGVMaXN0Lmxlbmd0aCkgcmVzdWx0LnB1c2goaWdub3JlVXBkYXRlTGlzdC5zaGlmdCgpKTtcblxuICAgICAgICB3aGlsZSAoaXNUaGlzVmVyc2lvbkxpc3QubGVuZ3RoKSByZXN1bHQucHVzaChpc1RoaXNWZXJzaW9uTGlzdC5zaGlmdCgpKTtcblxuICAgICAgICB3aGlsZSAobGVmdC5sZW5ndGgpXG4gICAgICAgICAgICByZXN1bHQucHVzaChsZWZ0LnNoaWZ0KCkpO1xuXG4gICAgICAgIHdoaWxlIChyaWdodC5sZW5ndGgpXG4gICAgICAgICAgICByZXN1bHQucHVzaChyaWdodC5zaGlmdCgpKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJlbW90ZVJ1bGVzID0gbWVyZ2VTb3J0KHJlbW90ZVJ1bGVzKTtcblxuICAgIHZhciBydWxlUmVnID0gbmV3IFJlZ0V4cCgve1teXSovKTtcbiAgICBmdW5jdGlvbiBnZXRSdWxlSW5SZW1vdGUocmVtb3RlUnVsZSkge1xuICAgICAgICB2YXIgcmVtb3RlUnVsZVJ1bGUgPSBudWxsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZXZhbChcInJlbW90ZVJ1bGVSdWxlPVwiICsgYmFzZTY0RGVjb2RlKHJlbW90ZVJ1bGUucnVsZS5yZXBsYWNlKFwicnVsZTovL1wiLCBcIlwiKSkubWF0Y2gocnVsZVJlZylbMF0pO1xuICAgICAgICAgICAgaWYocmVtb3RlUnVsZS5ncm91cCAhPSBudWxsICYmIHJlbW90ZVJ1bGVSdWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZW1vdGVSdWxlUnVsZS5ncm91cCA9IHJlbW90ZVJ1bGUuZ3JvdXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxuICAgICAgICByZXR1cm4gcmVtb3RlUnVsZVJ1bGU7XG4gICAgfVxuXG4gICAgdmFyIGltcG9ydExpc3QgPSBbXTtcbiAgICB2YXIgdXBkYXRlTGlzdCA9IFtdO1xuICAgIHZhciBpbXBvcnRMaXN0RmlsZSA9IFwiaGlrZXI6Ly9maWxlcy90bXBfaW1wb3J0TGlzdC5qc29uXCI7XG4gICAgdmFyIHVwZGF0ZUxpc3RGaWxlID0gXCJoaWtlcjovL2ZpbGVzL3RtcF91cGRhdGVMaXN0Lmpzb25cIjtcbiAgICBmdW5jdGlvbiBnZW5lcmF0ZUhvbWVSdWxlc1VybChydWxlcywgZmlsZW5hbWUpIHtcbiAgICAgICAgdmFyIGhvbWVSdWxlc0tleSA9IFwiNXJXMzZaaVU2S2VHNTVXTTc3eU02YWFXNmFHMTZhS1I2WUdUNVpDSTZadUc3NytsYUc5dFpWOXlkV3hsWDNWeWJPKy9wUT09XCI7XG4gICAgICAgIC8vIHNldEVycm9yIChKU09OLnN0cmluZ2lmeShydWxlcykpO1xuICAgICAgICB3cml0ZU9iamVjdFRvRmlsZShmaWxlbmFtZSwgcnVsZXMpO1xuICAgICAgICB2YXIgc3RyID0gYmFzZTY0RGVjb2RlKGhvbWVSdWxlc0tleSkgKyBmaWxlbmFtZTtcbiAgICAgICAgcmV0dXJuIFwicnVsZTovL1wiICsgYmFzZTY0RW5jb2RlKHN0cikucmVwbGFjZSgvXFxuL2csICcnKTtcbiAgICB9XG5cbiAgICB2YXIgc2hvd1J1bGVMaXN0ID0gW107XG4gICAgLy8gc2V0RXJyb3IoSlNPTi5zdHJpbmdpZnkocmVtb3RlUnVsZXMpKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbW90ZVJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBqID0gcmVtb3RlUnVsZXNbaV07XG4gICAgICAgIHZhciBydWxlV2l0aE1hcHBpbmcgPSBnZXRSdWxlSW5SdWxlc1dpdGhNYXBwaW5nKHJlbW90ZVJ1bGVzLCBqKTtcbiAgICAgICAgaWYgKHJ1bGVXaXRoTWFwcGluZyAhPSBudWxsICYmIGdldFJ1bGVJblJ1bGVzV2l0aE1hcHBpbmcobXlSdWxlcywgaikpIGogPSBydWxlV2l0aE1hcHBpbmc7XG4gICAgICAgIHZhciByID0ge307XG4gICAgICAgIGlmIChzZXR0aW5ncy5uZWVkQ2hhbmdlU2hvd1R5cGUgPT0gdHJ1ZSAmJiBqLm9sZFZlcnNpb24gIT0gbnVsbCAmJiBqLm9sZFZlcnNpb24gPj0gai52ZXJzaW9uICYmIHJlbW90ZVJ1bGVzLmxlbmd0aCA+IHNldHRpbmdzLnNob3dGdWxsVGV4dE1heClcbiAgICAgICAgICAgIHIuY29sX3R5cGUgPSBzZXR0aW5ncy5vdmVyTWF4U2hvd1R5cGU7XG4gICAgICAgIGlmICgoc2V0dGluZ3Mubm9JZ25vcmVVcGRhdGUgIT0gdHJ1ZSAmJiBqLmlzSWdub3JlVXBkYXRlID09IHRydWUpICYmIChqLm9sZFZlcnNpb24gPT0gbnVsbCB8fCBqLm9sZFZlcnNpb24gPCBqLnZlcnNpb24pKSB7XG4gICAgICAgICAgICBkZXBvdFJ1bGVzU3RhdHVzLmlnbm9yZU51bSArPSAxO1xuICAgICAgICAgICAgci5kZXNjID0gXCLor6Xop4TliJnlt7Llv73nlaXmnKzmrKHmm7TmlrBcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHIuZGVzYyA9IGRlc2MobXlSdWxlcywgaik7XG4gICAgICAgIH1cbiAgICAgICAgci5kZXNjID0gci5kZXNjICsgKFxuICAgICAgICAgICAgai50aXBzICE9IG51bGwgJiYgai50aXBzICE9IFwiXCIgP1xuICAgICAgICAgICAgICAgIGVudGVyVGV4dCArIFwiVGlwczogXCIgKyBqLnRpcHMgOlxuICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgKTtcbiAgICAgICAgci50aXRsZSA9IGoubWFwcGluZ1RpdGxlICE9IG51bGwgJiYgai5tYXBwaW5nVGl0bGUgIT0gXCJcIiAmJiBqLmlzTWFwcGVkID09IHRydWUgP1xuICAgICAgICAgICAgai5tYXBwaW5nVGl0bGVcbiAgICAgICAgICAgIDogai50aXRsZTtcbiAgICAgICAgci51cmwgPSBqLnZlcnNpb24gPCAwID9cbiAgICAgICAgICAgIGoucnVsZSB8fCBcIlwiXG4gICAgICAgICAgICA6IGlzSW5BcnJheShteVJ1bGVzLCBqKSB8fCBqLmlzTWFwcGVkID09IHRydWUgP1xuICAgICAgICAgICAgICAgIChqLm9sZFZlcnNpb24gIT0gbnVsbCAmJiBqLm9sZFZlcnNpb24gPCBqLnZlcnNpb24gP1xuICAgICAgICAgICAgICAgICAgICAoai5ydWxlIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIDogKFwiaGlrZXI6Ly9ob21lQFwiICsgKGoubG9jYWxUaXRsZSAhPSBudWxsICYmIGoubG9jYWxUaXRsZSAhPSBcIlwiID9cbiAgICAgICAgICAgICAgICAgICAgICAgIGoubG9jYWxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBqLnRpdGxlKSkpXG4gICAgICAgICAgICAgICAgOiAoai5ydWxlIHx8IFwiXCIpO1xuICAgICAgICAvL3IuY29udGVudCA9IGoudXBkYXRlVGV4dDtcbiAgICAgICAgc2hvd1J1bGVMaXN0LnB1c2gocik7XG5cbiAgICAgICAgdmFyIHJ1bGVJblJlbW90ZSA9IGdldFJ1bGVJblJlbW90ZShqKTtcbiAgICAgICAgaWYgKHJ1bGVJblJlbW90ZSAhPW51bGwgKSB7XG4gICAgICAgICAgICBpZihqLm9sZFZlcnNpb24gIT0gbnVsbCAmJiBqLm9sZFZlcnNpb24gPCBqLnZlcnNpb24pIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVMaXN0LnB1c2gocnVsZUluUmVtb3RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGltcG9ydExpc3QucHVzaChydWxlSW5SZW1vdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZUxpc3QubGVuZ3RoICE9IDApIHtcbiAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBcIuKAmOKAmOKAmeKAmTxiPlvoh6rliqjnlJ/miJBd54K55Ye75LiA6ZSu5pu05paw5pys6aG1PC9iPlwiLFxuICAgICAgICAgICAgdXJsOiBnZW5lcmF0ZUhvbWVSdWxlc1VybCh1cGRhdGVMaXN0LCB1cGRhdGVMaXN0RmlsZSksXG4gICAgICAgICAgICBjb2xfdHlwZTogXCJ0ZXh0XzFcIixcbiAgICAgICAgICAgIGRlc2M6IFwi5pu05paw4oCY4oCY5LiN5b2x5ZON5Y6f5YiG57uE4oCZ4oCZ77yM5q2k6aG555Sx5oC75LuT5bqT6Ieq5Yqo55Sf5oiQ4oCY4oCYKOWunumqjOaAp+WKn+iDvSnigJnigJlcXG5cXG7ms6g6IOS7heaUr+aMgeWvvOWFpemmlumhteinhOWIme+8jOWFtuS7luivt+iHquihjOWvvOWFpe+8gVwiXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpbXBvcnRMaXN0Lmxlbmd0aCAhPSAwKSB7XG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogXCJb6Ieq5Yqo55Sf5oiQXeeCueWHu+S4gOmUruWvvOWFpeacrOmhtVwiLFxuICAgICAgICAgICAgdXJsOiBnZW5lcmF0ZUhvbWVSdWxlc1VybChpbXBvcnRMaXN0LCBpbXBvcnRMaXN0RmlsZSksXG4gICAgICAgICAgICBjb2xfdHlwZTogXCJwaWNfMVwiLFxuICAgICAgICAgICAgZGVzYzogXCLmraTpobnnlLHmgLvku5PlupPoh6rliqjnlJ/miJDigJjigJgo5a6e6aqM5oCn5Yqf6IO9KeKAmeKAmVxcblxcbuazqDog5LuF5pSv5oyB5a+85YWl6aaW6aG16KeE5YiZ77yM5YW25LuW6K+36Ieq6KGM5a+85YWl77yBXCJcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHNldHRpbmdzLm5vUnVsZXNOdW0gIT0gdHJ1ZSAmJiBzZXR0aW5ncy5oaWRlQWxsICE9IHRydWUpXG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogXCI8Yj7or6Xku5PlupPlhbHmnIkg4oCY4oCYXCIgKyByZW1vdGVSdWxlcy5sZW5ndGggKyBcIuKAmeKAmSDmnaHop4TliJk8L2I+XCIgK1xuICAgICAgICAgICAgICAgIFwiIChcIlxuICAgICAgICAgICAgICAgICsgXCLmm7TmlrA64oCY4oCYXCIgKyBkZXBvdFJ1bGVzU3RhdHVzLnVwZGF0ZU51bVxuICAgICAgICAgICAgICAgICsgXCLigJnigJkgIOacquWvvOWFpTrigJjigJhcIiArIGRlcG90UnVsZXNTdGF0dXMubm9JbXBvcnROdW1cbiAgICAgICAgICAgICAgICArIFwi4oCZ4oCZICDlv73nlaU64oCY4oCYXCIgKyBkZXBvdFJ1bGVzU3RhdHVzLmlnbm9yZU51bVxuICAgICAgICAgICAgICAgICsgXCLigJnigJkpXCIsXG4gICAgICAgICAgICBjb2xfdHlwZTogXCJ0ZXh0XzFcIixcbiAgICAgICAgfSk7XG5cbiAgICB3aGlsZSAoc2hvd1J1bGVMaXN0Lmxlbmd0aCkgZC5wdXNoKHNob3dSdWxlTGlzdC5zaGlmdCgpKVxufVxuXG5yZXMuZGF0YSA9IGQ7XG5zZXRIb21lUmVzdWx0KHJlcyk7Iiwic2VhcmNoX3VybCI6Imhpa2VyOi8vaG9tZSMqKiNmeXBhZ2UiLCJ0aXRsZUNvbG9yIjoiI2ZmZjIwYzAwIiwiZ3JvdXAiOiLku5PlupPpm4blkIgiLCJzZWFyY2hGaW5kIjoianM6XG5cbi8qKlxuICAqIOWIhuexu+S7k+W6k+imgeeUqOaQnOe0ouWKn+iDve+8jFxuICAqIOivpeS7k+W6k+euoeeQhuWRmOW/hemhu+iHquihjOWcqOS4i+aWuXNldHRpbmdzLmF1dGhvckxpc3TphY3nva7liIbnsbvpk77mjqVcbiAgKi9cblxudmFyIHJlcyA9IHt9O1xudmFyIGQgPSBbXTtcbmV2YWwoZ2V0Q3J5cHRvSlMoKSk7XG52YXIga2V5ID0gZ2V0VXJsKCkuc3BsaXQoXCIjXCIpWzFdO1xuLy8ga2V5ID0gXCLlvbHop4ZcIjtcbnZhciBwYWdlID0gMTtcbnRyeSB7IFxuICAgcGFnZSA9IHBhcnNlSW50KGdldFVybCgpLnNwbGl0KFwiI1wiKVsyXSk7XG59XG5jYXRjaCAoZSkgeyB9XG52YXIgcGFnZVNpemUgPSBwYWdlICogNTtcbi8qZC5wdXNoKHtcbiAgICB0aXRsZTogXCJwYWdlOiBcIiArIHBhZ2UsXG4gICAgZGVzYzogXCJwYWdlU2l6ZTogXCIrIHBhZ2VTaXplICsgXCIgcGFnZUFkZDogXCIrIHBhZ2VBZGRcbn0pOyovXG5cbmlmIChrZXkgIT0gbnVsbCAmJiBrZXkgIT0gXCJcIikge1xuICAgIHZhciByZWdFeHAgPSBuZXcgUmVnRXhwKFwiW15dKlwiK2tleStcIlteXSpcIik7XG4gICAgLy8g5LuT5bqT5Liq5oCn6K6+572uXG4gICAgdmFyIHNldHRpbmdzID0ge1xuICAgICAgICAvLyDlnKjov5nph4zmt7vliqDku5PlupPphY3nva7vvIzlj6/kvb/mnKzlnLDmt7vliqDnmoTku5PlupPnva7pobZcbiAgICAgICAgYXV0aG9yTGlzdDogW1wi6aaZ6ZuF5oOFQEBhcGlUeXBlPScwJ0BAZnVsbFVybD0naHR0cHM6Ly9naXRlZS5jb20vbHprMjM1NTkvcnVsZWhvdXNlL3Jhdy9tYXN0ZXIvbWlhbnh0Lmpzb24nXCIsXG5cIummmembheaDhUBAYXBpVHlwZT0nMCdAQGZ1bGxVcmw9J2h0dHBzOi8vZ2l0ZWUuY29tL2x6azIzNTU5L3J1bGVob3VzZS9yYXcvbWFzdGVyL25vbWlhbnh0Lmpzb24nXCIsXG5cIummmembheaDhUBAYXBpVHlwZT0nMCdAQGZ1bGxVcmw9J2h0dHBzOi8vZ2l0ZWUuY29tL2x6azIzNTU5L3J1bGVob3VzZS9yYXcvbWFzdGVyL3p5dy5qc29uJ1wiLFxuXCLpppnpm4Xmg4VAQGFwaVR5cGU9JzAnQEBmdWxsVXJsPSdodHRwczovL2dpdGVlLmNvbS9semsyMzU1OS9ydWxlaG91c2UvcmF3L21hc3Rlci9zaGl0aW5nLmpzb24nXCIsXG5cIummmembheaDhUBAYXBpVHlwZT0nMCdAQGZ1bGxVcmw9J2h0dHBzOi8vZ2l0ZWUuY29tL2x6azIzNTU5L3J1bGVob3VzZS9yYXcvbWFzdGVyL290aGVyLmpzb24nXCJcbiAgICAgICAgICAgLy8gXCJb5L6L5a2QXee9rumhtuengeS6uuS7k+W6k0BAUmVib3JuXzBAQEhpa2VyUnVsZXNQcml2YWN5QEBhY2Nlc3NfdG9rZW49JyoqKionXCIsXG4gICAgICAgICAgIC8vIFwiW+S+i+WtkF3oh6rlrprkuYnmlofku7blkI1AQFJlYm9ybl8wQEBIaWtlclJ1bGVzRGVwb3RAQHJlbW90ZUZpbGVuYW1lPSd1cGRhdGVfMS5qc29uJ1wiXG4gICAgICAgIF0sXG4gICAgICAgIC8vIOWcqOi/memHjOa3u+WKoOS7k+W6k+mFjee9ru+8jOWPr+S9v+acrOWcsOa3u+WKoOeahOS7k+W6k+e9ruW6lVxuICAgICAgICBhdXRob3JMaXN0Qm90dG9tOiBbXG4gICAgICAgICAgIC8vIFwiW+S+i+WtkF3nva7lupXmnKzlnLDku5PlupNAQFJlYm9ybl8wQEBIaWtlclJ1bGVzUHJpdmFjeVwiXG4gICAgICAgIF0sXG4gICAgfTtcblxuICAgIC8vIOS8vOS5juWKoOS6huS5i+WQjuaFouS6huW+iOWkmlxuICAgIHZhciBydWxlUmVnID0gbmV3IFJlZ0V4cCgve1teXSovKTtcbiAgICBmdW5jdGlvbiBnZXRSdWxlS2V5V29yZChyZW1vdGVSdWxlKSB7XG4gICAgICAgIHZhciByZW1vdGVSdWxlUnVsZSA9IG51bGw7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGV2YWwoXCJyZW1vdGVSdWxlUnVsZT1cIiArIGJhc2U2NERlY29kZShyZW1vdGVSdWxlLnJ1bGUucmVwbGFjZShcInJ1bGU6Ly9cIiwgXCJcIikpLm1hdGNoKHJ1bGVSZWcpWzBdKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxuICAgICAgICAgICAgdmFyIHJlbW90ZVJ1bGVLZXlXb3JkID0gbnVsbDtcbiAgICAgICAgICAgIGlmKHJlbW90ZVJ1bGVSdWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZW1vdGVSdWxlS2V5V29yZCA9IHJlbW90ZVJ1bGVSdWxlLnRpdGxlICsgcmVtb3RlUnVsZVJ1bGUudXJsICsgcmVtb3RlUnVsZVJ1bGUuYXV0aG9yO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYocmVtb3RlUnVsZUtleVdvcmQgPT0gbnVsbCkgcmVtb3RlUnVsZUtleVdvcmQgPSByZW1vdGVSdWxlLnRpdGxlO1xuICAgICAgICAgICAgcmV0dXJuIHJlbW90ZVJ1bGVLZXlXb3JkO1xuICAgIH1cblxuICAgIC8vIOaQnOe0ouino+aekOaAnei3r++8mlxuICAgIC8vIOiOt+WPluaQnOe0oumTvuaOpeS4reeahCoq77yM54S25ZCO5b6q546v6YGN5Y6G5q+P5LiA5Liq5LuT5bqT55qE6KeE5YiZ77yM5q2j5YiZ5qih57OK5Yy56YWN5Yiw5LiN5Li656m655qE5bCx5Yqg5YWl5pCc57Si57uT5p6cXG4gICAgdmFyIHJlbW90ZUF1dGhvckxpc3QgPSBbXTtcbiAgICB0cnkge1xuICAgICAgICBldmFsKFwicmVtb3RlQXV0aG9yTGlzdD1cIiArIGZldGNoKHNldHRpbmdzLnJlbW90ZUF1dGhvckxpc3RVcmwsIHt9KSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgIH1cbiAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShzZXR0aW5ncy5hdXRob3JMaXN0LCByZW1vdGVBdXRob3JMaXN0KTtcbiAgICBpZiAoc2V0dGluZ3MuYXV0aG9yTGlzdEJvdHRvbS5sZW5ndGggIT0gMCkgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoc2V0dGluZ3MuYXV0aG9yTGlzdCwgc2V0dGluZ3MuYXV0aG9yTGlzdEJvdHRvbSk7XG5cbiAgICAvLyDnqbrpl7TmjaLml7bpl7QsIG5eMi0+Mm7vvJ/omb3nhLZBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseeWPr+iDveS5n+aYr+S4gOS4qm7vvJ/vvIjkvZPpqozkuIrmsqHmhJ/op4nlv6vlpJrlsJHvvIzmr5Xnq5/pgqPkuKpmZXRjaOWkquWkmuS6hi4uLu+8iVxuICAgIHZhciBtUmVtb3RlUnVsZXMgPSBbXTtcbiAgICAvLyAxLuaLv+WIsOS7k+W6k1xuICAgIGZvciAodmFyIGkgPSAocGFnZS0xKSAqIDU7IGkgPCBzZXR0aW5ncy5hdXRob3JMaXN0Lmxlbmd0aCAmJiBpIDwgcGFnZVNpemU7IGkrKykge1xuICAgICAgIC8vIGlmIChpIDwgcGFnZVNpemUpIGJyZWFrO1xuICAgICAgICB2YXIgYXV0aG9yTGlzdCA9IHNldHRpbmdzLmF1dGhvckxpc3RbaV07XG4gICAgICAgIHZhciBhdXRob3JBbmRPd25lckFuZFByb2plY3QgPSBhdXRob3JMaXN0LnNwbGl0KFwiQEBcIik7XG4gICAgICAgIHZhciBhdXRob3IgPSBhdXRob3JBbmRPd25lckFuZFByb2plY3RbMF07XG4gICAgICAgIHZhciByZW1vdGVVcmwgPSBcIlwiO1xuXG4gICAgICAgIHZhciBhcGlUeXBlID0gXCIxXCI7ICAvLyAwIOS4uuaWh+S7tuebtOmTvu+8jDEg5Li656CB5LqRQVBJXG4gICAgICAgIHZhciBhcGlUeXBlSlMgPSBhdXRob3JMaXN0Lm1hdGNoKC9hcGlUeXBlPS5bXFxzXFxTXSo/Jy8pICsgXCI7XCI7XG4gICAgICAgIGV2YWwoYXBpVHlwZUpTKTtcbiAgICAgICAgaWYgKGFwaVR5cGUgPT0gbnVsbCkgYXBpVHlwZSA9IFwiMVwiO1xuXG4gICAgICAgIGlmIChhcGlUeXBlID09IFwiMFwiKSB7XG4gICAgICAgICAgICB2YXIgZnVsbFVybCA9IFwiXCI7XG4gICAgICAgICAgICB2YXIgZnVsbFVybEpTID0gYXV0aG9yTGlzdC5tYXRjaCgvZnVsbFVybD0uW1xcc1xcU10qPycvKSArIFwiO1wiO1xuICAgICAgICAgICAgZXZhbChmdWxsVXJsSlMpO1xuICAgICAgICAgICAgcmVtb3RlVXJsID0gZnVsbFVybDtcbiAgICAgICAgfSBlbHNlIGlmIChhcGlUeXBlID09IFwiMVwiKSB7XG4gICAgICAgICAgICB2YXIgcmVtb3RlQXBpSG9tZSA9IFwiaHR0cHM6Ly9naXRlZS5jb20vYXBpL3Y1L3JlcG9zL1wiO1xuICAgICAgICAgICAgdmFyIG93bmVyID0gYXV0aG9yQW5kT3duZXJBbmRQcm9qZWN0WzFdOyAgIC8vIOS7k+W6k+aLpeacieiAhVxuICAgICAgICAgICAgdmFyIHJlcG8gPSBhdXRob3JBbmRPd25lckFuZFByb2plY3RbMl07IC8vIOS7k+W6k+WQjVxuICAgICAgICAgICAgdmFyIHJlbW90ZUZpbGVuYW1lID0gbnVsbDsgLy8g5paH5Lu25ZCNXG4gICAgICAgICAgICB2YXIgcGF0aCA9IHJlbW90ZUZpbGVuYW1lOyAgLy8g5Zyo5LuT5bqT5Lit5paH5Lu255qE6Lev5b6EXG4gICAgICAgICAgICB2YXIgYWNjZXNzX3Rva2VuID0gbnVsbDsgIC8vIOeUqOaIt+aOiOadg+egge+8jOWcqOeggeS6kVwi6K6+572u4oCUPuWuieWFqOiuvuWumi0+5Liq5Lq66K6/6Zeu5Luk54mMXCLkuK3lj6/ku6XnlJ/miJBcbiAgICAgICAgICAgIHZhciB0b2tlbkpTID0gYXV0aG9yTGlzdC5tYXRjaCgvYWNjZXNzX3Rva2VuPS5bXFxzXFxTXSo/Jy8pICsgXCI7XCI7XG4gICAgICAgICAgICBldmFsKHRva2VuSlMpO1xuICAgICAgICAgICAgLy8gc2V0RXJyb3IoYWNjZXNzX3Rva2VuPT1udWxsKTtcbiAgICAgICAgICAgIHZhciByZW1vdGVGaWxlbmFtZUpTID0gYXV0aG9yTGlzdC5tYXRjaCgvcmVtb3RlRmlsZW5hbWU9LltcXHNcXFNdKj8nLykgKyBcIjtcIjtcbiAgICAgICAgICAgIGV2YWwocmVtb3RlRmlsZW5hbWVKUyk7XG4gICAgICAgICAgICBpZiAocmVtb3RlRmlsZW5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJlbW90ZUZpbGVuYW1lID0gXCJ1cGRhdGUuanNvblwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGF0aCA9IHJlbW90ZUZpbGVuYW1lO1xuICAgICAgICAgICAgLy8gc2V0RXJyb3IocmVtb3RlRmlsZW5hbWUpXG4gICAgICAgICAgICAvLyBBUEnpk77mjqXlj4LogIPvvJpodHRwczovL2dpdGVlLmNvbS9hcGkvdjUvcmVwb3Mve3tvd25lcn19L3t7cmVwb319L2NvbnRlbnRzL3t7cGF0aH19P2FjY2Vzc190b2tlbj0qKioqXG4gICAgICAgICAgICByZW1vdGVVcmwgPSByZW1vdGVBcGlIb21lICsgb3duZXIgKyBcIi9cIiArIHJlcG8gKyBcIi9jb250ZW50cy9cIiArIHBhdGg7XG4gICAgICAgICAgICBpZiAoYWNjZXNzX3Rva2VuICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZW1vdGVVcmwgPSByZW1vdGVVcmwgKyBcIj9hY2Nlc3NfdG9rZW49XCIgKyBhY2Nlc3NfdG9rZW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBzZXRFcnJvcihyZW1vdGVVcmwpO1xuICAgICAgICAgICAgLy8gdmFyIHJlbW90ZUhvbWUgPSBcImh0dHBzOi8vZ2l0ZWUuY29tL1wiICsgb3duZXIgKyBcIi9cIiArIHJlcG8gKyBcIi9ibG9iL21hc3Rlci91cGRhdGUuanNvblwiO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdmFyIHJlbW90ZVVybCA9IHJlbW90ZUFwaUhvbWUgKyBlbmNvZGVVUklDb21wb25lbnQoYXV0aG9yKSArIFwiL1wiICsgcmVtb3RlRmlsZW5hbWU7XG4gICAgICAgIHZhciByZW1vdGVTb3VyY2UgPSBmZXRjaChyZW1vdGVVcmwsIHt9KTtcbiAgICAgICAgLy8gc2V0RXJyb3IocmVtb3RlVXJsKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGV2YWwoXCJyZW1vdGVTb3VyY2U9XCIgKyByZW1vdGVTb3VyY2UpO1xuICAgICAgICAgICAgdmFyIHJlbW90ZVJ1bGVzID0gcmVtb3RlU291cmNlO1xuICAgICAgICAgICAgaWYgKGFwaVR5cGUgPT0gXCIwXCIpIHtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBpVHlwZSA9PSBcIjFcIikge1xuICAgICAgICAgICAgICAgIGV2YWwoXCJyZW1vdGVSdWxlcz1cIiArIGJhc2U2NERlY29kZShyZW1vdGVTb3VyY2UuY29udGVudCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlbW90ZVJ1bGVzLmRhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KG1SZW1vdGVSdWxlcywgcmVtb3RlUnVsZXMuZGF0YSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KG1SZW1vdGVSdWxlcywgcmVtb3RlU291cmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qaWYobVJlbW90ZVJ1bGVzLmxlbmd0aCA8IHBhZ2UgKiA4KSB7XG4gICAgICAgICAgICAgICAgIHBhZ2UrKztcbiAgICAgICAgICAgICAgICAgcGFnZVNpemUgPSBwYWdlICogNTtcbiAgICAgICAgICAgICAgICAgcGFnZUFkZCsrO1xuICAgICAgICAgICAgICAgICBwdXRWYXIoe2tleTogJ3BhZ2VBZGQnLCB2YWx1ZTogcGFnZUFkZH0pO1xuICAgICAgICAgICAgfSovXG4gICAgICAgIH1jYXRjaCAoZSkge1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIDIu5ou/5Yiw5Y2V5Liq5LuT5bqT55qE6KeE5YiZ5YiX6KGoXG4gICAgaWYgKG1SZW1vdGVSdWxlcy5sZW5ndGggIT0gMCkge1xuICAgICAgICAvLyDmjaLkuKrplKTlrZDnmoTkuozliIbms5XvvIzkuIDlrpropoHpgY3ljobmiYDmnInmlbDmja7nmoTvvIzov5nmoLfpobblpJrmmK9PKDEvMiBuKe+8jOW/veeVpeW4uOaVsOi/mOaYr08obinvvIznoa7lrp7kvJrlv6vkuIDkuKLkuKLvvIznqbrpl7TmjaLml7bpl7TnmoTnu5PmnpxcbiAgICAgICAgdmFyIGxlZnQgPSAwO1xuICAgICAgICB2YXIgcmlnaHQgPSBtUmVtb3RlUnVsZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKGxlZnQgPD0gcmlnaHQpIHtcbiAgICAgICAgICAgIHZhciByZW1vdGVSdWxlTGVmdCA9IG1SZW1vdGVSdWxlc1tsZWZ0XTtcbiAgICAgICAgICAgIHZhciByZW1vdGVSdWxlUmlnaHQgPSBtUmVtb3RlUnVsZXNbcmlnaHRdO1xuICAgICAgICAgICAgaWYgKHJlZ0V4cC50ZXN0KGdldFJ1bGVLZXlXb3JkKHJlbW90ZVJ1bGVMZWZ0KSkgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiByZW1vdGVSdWxlTGVmdC50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcImh0dHBzOi8vYmFpZHUuY29tI1wiICsgcmVtb3RlUnVsZUxlZnQucnVsZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogcmVtb3RlUnVsZUxlZnQuYXV0aG9yLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIuS6keerr+eJiOacrO+8mlwiICsgcmVtb3RlUnVsZUxlZnQudmVyc2lvblxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlZ0V4cC50ZXN0KGdldFJ1bGVLZXlXb3JkKHJlbW90ZVJ1bGVSaWdodCkpID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVtb3RlUnVsZVJpZ2h0LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiaHR0cHM6Ly9iYWlkdS5jb20jXCIgKyByZW1vdGVSdWxlUmlnaHQucnVsZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogcmVtb3RlUnVsZVJpZ2h0LmF1dGhvcixcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCLkupHnq6/niYjmnKzvvJpcIiArIHJlbW90ZVJ1bGVSaWdodC52ZXJzaW9uXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZWZ0Kys7XG4gICAgICAgICAgICByaWdodC0tO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5pZigocGFnZSkgKiA1IDwgc2V0dGluZ3MuYXV0aG9yTGlzdC5sZW5ndGgpIHtcbiAgICBpZihkLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgIHRpdGxlOiBcIuayoeWKoOi9veWIsOS4nOilv++8n+S4jeimgee0p++8jOS4iua7keWPr+iDveacieaDiuWWnOWTpu+8gVwiLFxuICAgICAgICAgICAgIGRlc2M6IFwiUFM6IOWPquimgeayoeaYvuekuuacgOWQjuS4gOmhteWwsei/mOacieW4jOacm++8gVwiXG4gICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICB0aXRsZTogXCLmnKrliLDmnIDlkI7kuIDpobXvvIzor7fnu6fnu63kuIrmu5HliqDovb3mm7TlpJrjgIJcIlxuICAgICAgICAgfSk7XG4gICAgfVxufSBlbHNlIHtcbiAgICAgZC5wdXNoKHtcbiAgICAgICAgIHRpdGxlOiBcIuW3suWIsOacgOWQjuS4gOmhtVwiXG4gICAgIH0pO1xufVxuXG4vLyBzZXRFcnJvcihKU09OLnN0cmluZ2lmeShkKSk7XG5yZXMuZGF0YSA9IGQ7XG5zZXRTZWFyY2hSZXN1bHQocmVzKTsiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInNkZXRhaWxfY29sX3R5cGUiOiJ0ZXh0X2NlbnRlcl8xIiwic2RldGFpbF9maW5kX3J1bGUiOiJqczpcbnZhciByZXMgPSB7fTtcbnZhciBkID0gW107XG5cbnZhciBydWxlID0gZ2V0VXJsKCkuc3BsaXQoXCIjXCIpWzFdO1xuaWYocnVsZSAhPSBudWxsICYmIHJ1bGUgIT0gXCJcIikge1xuICAgICBkLnB1c2goe1xuICAgICAgICAgIHRpdGxlOiBcIueri+WNs+WvvOWFpeinhOWImVwiLFxuICAgICAgICAgIHVybDogcnVsZVxuICAgICB9KTtcbn1cblxucmVzLmRhdGEgPSBkO1xuc2V0SG9tZVJlc3VsdChyZXMpOyJ9"
},{
"title":"[模板]",
"author":"香雅情",
"version":1,
"updateText":"暂无更新日志",
"tips":"",
"rule":"rule://"}
]
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zlq771/wenjian.git
git@gitee.com:zlq771/wenjian.git
zlq771
wenjian
文件夹
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385