Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@图书馆Pro@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi5Zu+5Lmm6aaGUHJvIiwiYXV0aG9yIjoiSm9lIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSIsInZlcnNpb24iOjEzLCJjb2xfdHlwZSI6Im1vdmllXzMiLCJjbGFzc19uYW1lIjoiIiwidHlwZSI6InJlYWQiLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbmxldCBsYXlvdXQgPSBbXTtcbmxheW91dC5wdXNoKHtcbiAgICBjb2xfdHlwZTogXCJiaWdfYmxhbmtfYmxvY2tcIlxufSk7XG5sYXlvdXQucHVzaCh7XG4gICAgY29sX3R5cGU6IFwiYmlnX2JsYW5rX2Jsb2NrXCJcbn0pO1xubGF5b3V0LnB1c2goe1xuICAgIGNvbF90eXBlOiBcImJpZ19ibGFua19ibG9ja1wiXG59KTtcbmxheW91dC5wdXNoKHtcbiAgICBjb2xfdHlwZTogXCJiaWdfYmxhbmtfYmxvY2tcIlxufSk7XG5cbmxheW91dC5wdXNoKHtcbiAgICB0aXRsZTogJzxoMSBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48YmlnPjxmb250IGNvbG9yPVwiI0ZFQkQ2RlwiPuWbvuS5pummhlBybzwvZm9udD48L2JpZz48YnI+PHNtYWxsPjxmb250IGNvbG9yPVwiI0ZCNkM3M1wiPuS9oOeahOengeS6uuWbvuS5pummhjwvZm9udD48L3NtYWxsPjwvaDE+JyxcbiAgICBjb2xfdHlwZTogXCJyaWNoX3RleHRcIlxufSk7XG5sYXlvdXQucHVzaCh7XG4gICAgY29sX3R5cGU6IFwiaW5wdXRcIixcbiAgICB1cmw6IFwiJ2hpa2VyOi8vc2VhcmNoP3M9JyArIGlucHV0XCIsXG4gICAgZXh0cmE6IHtcbiAgICAgICAgcnVsZXM6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGRhdGEgPSBbXTtcbiAgICAgICAgICAgICQucmVxdWlyZShcImFwaVwiKS5lbmdpbmVzLmZvckVhY2goKE1hcCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIFwidGl0bGVcIjogTWFwLFxuICAgICAgICAgICAgICAgICAgICBcInNlYXJjaF91cmxcIjogYnVpbGRVcmwoXCJoaWtlcjovL2VtcHR5XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGt3OiBcIioqXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBcImZ5cGFnZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lOiBNYXBcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIFwic2VhcmNoRmluZFwiOiBcImpzOiQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL+aQnOe0oj9ydWxlPeWbvuS5pummhlBybycpXCJcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICAgIH0pXG4gICAgfSxcbiAgICB0aXRsZTogXCLmkJzntKJcIlxufSlcbmxheW91dC5wdXNoKHtcbiAgICBjb2xfdHlwZTogXCJiaWdfYmxhbmtfYmxvY2tcIlxufSk7XG5sYXlvdXQucHVzaCh7XG4gICAgY29sX3R5cGU6IFwiYmlnX2JsYW5rX2Jsb2NrXCJcbn0pO1xubGF5b3V0LnB1c2goe1xuICAgIGNvbF90eXBlOiBcImJpZ19ibGFua19ibG9ja1wiXG59KTtcbmxheW91dC5wdXNoKHtcbiAgICB0aXRsZTogXCLwn5SwIOWOhuWPsuiusOW9lVwiLFxuICAgIGNvbF90eXBlOiBcInRleHRfMVwiLFxuICAgIHVybDogJChcIuehruiupOa4hemZpO+8n1wiKS5jb25maXJtKCgpID0+IHtcbiAgICAgICAgY2xlYXJJdGVtKFwiaGlzdG9yeVwiKVxuICAgICAgICByZWZyZXNoUGFnZSgpXG4gICAgICAgIHRvYXN0KFwi5riF55CG5oiQ5YqfXCIpXG4gICAgfSlcbn0pO1xudmFyIGhpc3RvcnkgPSBzdG9yYWdlMC5nZXRJdGVtKFwiaGlzdG9yeVwiLCBbXSlcbmhpc3RvcnkuZm9yRWFjaChpdGVtID0+IHtcbiAgICBsYXlvdXQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBpdGVtLFxuICAgICAgICB1cmw6ICdoaWtlcjovL3NlYXJjaD9zPScgKyBpdGVtLFxuICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgcnVsZXM6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBkYXRhID0gW107XG4gICAgICAgICAgICAgICAgJC5yZXF1aXJlKFwiYXBpXCIpLmVuZ2luZXMuZm9yRWFjaCgoTWFwLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInRpdGxlXCI6IE1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2VhcmNoX3VybFwiOiBidWlsZFVybChcImhpa2VyOi8vZW1wdHlcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3OiBcIioqXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogXCJmeXBhZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmU6IE1hcFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNlYXJjaEZpbmRcIjogXCJqczokLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS/mkJzntKI/cnVsZT3lm77kuabppoZQcm8nKVwiXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgY29sX3R5cGU6IFwiZmxleF9idXR0b25cIlxuICAgIH0pXG59KVxuc2V0UmVzdWx0KGxheW91dCk7Iiwic2VhcmNoX3VybCI6Imhpa2VyOi8vZW1wdHk/a3c9KioiLCJncm91cCI6IumYheivuyIsInNlYXJjaEZpbmQiOiJqczpcbnNldFJlc3VsdChbe1xuICAgIHVybDogJ2hpa2VyOi8vc2VhcmNoP3M9JyArIGdldFBhcmFtKFwia3dcIiksXG4gICAgZXh0cmE6IHtcbiAgICAgICAgcnVsZXM6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGRhdGEgPSBbXTtcbiAgICAgICAgICAgICQucmVxdWlyZShcImFwaVwiKS5lbmdpbmVzLmZvckVhY2goKE1hcCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIFwidGl0bGVcIjogTWFwLFxuICAgICAgICAgICAgICAgICAgICBcInNlYXJjaF91cmxcIjogYnVpbGRVcmwoXCJoaWtlcjovL2VtcHR5XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGt3OiBcIioqXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBcImZ5cGFnZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lOiBNYXBcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIFwic2VhcmNoRmluZFwiOiBcImpzOiQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL+aQnOe0oj9ydWxlPeWbvuS5pummhlBybycpXCJcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICAgIH0pXG4gICAgfSxcbiAgICB0aXRsZTogXCLmkJzntKLvvJpcIiArIGdldFBhcmFtKFwia3dcIilcbn1dKSIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJkZXRhaWxfZmluZF9ydWxlIjoiIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInVhIjoibW9iaWxlIiwicHJlUnVsZSI6IiIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJ0ZXh0XzFcIixcIm5hbWVcIjpcIuaQnOe0olwiLFwicGF0aFwiOlwi5pCc57SiXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbnZhciBoaXN0b3J5ID0gc3RvcmFnZTAuZ2V0SXRlbShcXFwiaGlzdG9yeVxcXCIsIFtdKVxcbmlmICghaGlzdG9yeS5pbmNsdWRlcyhnZXRQYXJhbShcXFwia3dcXFwiKSkpIHtcXG4gICAgaGlzdG9yeS51bnNoaWZ0KGdldFBhcmFtKFxcXCJrd1xcXCIpKVxcbiAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXCJoaXN0b3J5XFxcIiwgaGlzdG9yeSlcXG59XFxuJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvYXBpP3J1bGU95Zu+5Lmm6aaGUHJvXFxcIilbZ2V0UGFyYW0oXFxcImVuZ2luZVxcXCIpXShnZXRQYXJhbShcXFwia3dcXFwiKSwgTVlfUEFHRSlcXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJ0ZXh0XzFcIixcIm5hbWVcIjpcImFwaVwiLFwicGF0aFwiOlwiYXBpXCIsXCJydWxlXCI6XCIkLmV4cG9ydHMgPSB7XFxuICAgIGVuZ2luZXM6IFtcXFwi6LGG55OjXFxcIiwgXFxcIllsaWJyYXJ5XFxcIiwgXFxcIlpsaWJyYXJ5XFxcIiwgXFxcIkxpYmdlblxcXCIsIFxcXCLpuKDmkalcXFwiLCBcXFwi5peg5ZCN5Zu+5LmmXFxcIl0sXFxuICAgIOixhueTozogZnVuY3Rpb24oa3csIHBhZ2UpIHtcXG4gICAgICAgIHZhciBkID0gW107XFxuICAgICAgICB2YXIgY29tcHV0ZVJhdGluZyA9ICQucmVxdWlyZShcXFwiYXBpP3J1bGU95Zu+5Lmm6aaGUHJvXFxcIikuY29tcHV0ZVJhdGluZ1xcbiAgICAgICAgdmFyIHVybCA9IGJ1aWxkVXJsKFxcXCJodHRwczovL2Zyb2RvLmRvdWJhbi5jb20vYXBpL3YyL3NlYXJjaC9zdWJqZWN0c1xcXCIsIHtcXG4gICAgICAgICAgICB0eXBlOiBcXFwiYm9va1xcXCIsXFxuICAgICAgICAgICAgcToga3csXFxuICAgICAgICAgICAgc3RhcnQ6IHBhZ2UgPT0gMSA/IDAgOiAoKHBhZ2UgLSAxKSAqIDIwKSxcXG4gICAgICAgICAgICBjb3VudDogMjAsXFxuICAgICAgICAgICAgYXBpa2V5OiBcXFwiMGRhZDU1MWVjMGY4NGVkMDI5MDdmZjVjNDJlOGVjNzBcXFwiXFxuICAgICAgICB9KVxcbiAgICAgICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocG9zdCh1cmwsIHtcXG4gICAgICAgICAgICBib2R5OiB7XFxuICAgICAgICAgICAgICAgIGhvc3Q6IFxcXCJmcm9kby5kb3ViYW4uY29tXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJSZXh4YXItQ29yZS8wLjEuMyBhcGktY2xpZW50LzEgY29tLmRvdWJhbi5mcm9kby83LjkuMC5iZXRhMigyMTUpIEFuZHJvaWQvMjUgcHJvZHVjdC9UQVMtQUwwMCB2ZW5kb3IvSFVBV0VJIG1vZGVsL1RBUy1BTDAwICByb20vYW5kcm9pZCAgbmV0d29yay93aWZpICBwbGF0Zm9ybS9tb2JpbGUgY29tLmRvdWJhbi5mcm9kby83LjkuMC5iZXRhMigyMTUpIFJleHhhci8xLjIuMTUxICBwbGF0Zm9ybS9tb2JpbGUgMS4yLjE1MVxcXCJcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KSkuaXRlbXNcXG4gICAgICAgIHJlcy5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnRhcmdldFxcbiAgICAgICAgICAgIHN0YXIgPSAoaXRlbS5yYXRpbmcgPyBcXFwiXFxcXG5cXFwiICsgY29tcHV0ZVJhdGluZyhpdGVtLnJhdGluZy5tYXgsIGl0ZW0ucmF0aW5nLnZhbHVlKSArIFxcXCIg6K+E5YiG77yaXFxcIiArIGl0ZW0ucmF0aW5nLnZhbHVlIDogXFxcIlxcXCIpXFxuICAgICAgICAgICAgZGVzYyA9IGl0ZW0uY2FyZF9zdWJ0aXRsZSArIHN0YXJcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcXG4gICAgICAgICAgICAgICAgY29udGVudDogZGVzYyxcXG4gICAgICAgICAgICAgICAgaW1nOiBpdGVtLmNvdmVyX3VybCxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY1xcXCIsXFxuICAgICAgICAgICAgICAgIHVybDogJChcXFwiaGlrZXI6Ly9lbXB0eSNpbW1lcnNpdmVUaGVtZSNcXFwiKS5ydWxlKChpZCwgc3RhcikgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSBbXVxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHUgPSBidWlsZFVybChcXFwiaHR0cHM6Ly9mcm9kby5kb3ViYW4uY29tL2FwaS92Mi9ib29rL1xcXCIgKyBpZCwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwaWtleTogXFxcIjBkYWQ1NTFlYzBmODRlZDAyOTA3ZmY1YzQyZThlYzcwXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXMgPSBKU09OLnBhcnNlKHBvc3QodSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdDogXFxcImZyb2RvLmRvdWJhbi5jb21cXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogXFxcIlJleHhhci1Db3JlLzAuMS4zIGFwaS1jbGllbnQvMSBjb20uZG91YmFuLmZyb2RvLzcuOS4wLmJldGEyKDIxNSkgQW5kcm9pZC8yNSBwcm9kdWN0L1RBUy1BTDAwIHZlbmRvci9IVUFXRUkgbW9kZWwvVEFTLUFMMDAgIHJvbS9hbmRyb2lkICBuZXR3b3JrL3dpZmkgIHBsYXRmb3JtL21vYmlsZSBjb20uZG91YmFuLmZyb2RvLzcuOS4wLmJldGEyKDIxNSkgUmV4eGFyLzEuMi4xNTEgIHBsYXRmb3JtL21vYmlsZSAxLjIuMTUxXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAgICAgICAgICAgZC51bnNoaWZ0KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcmVzLnRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZzogcmVzLnBpYy5ub3JtYWwsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBcXFwieDU6Ly9cXFwiICsgcmVzLmluZm9fdXJsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IHJlcy5jYXJkX3N1YnRpdGxlICsgXFxcIlxcXFxuXFxcIiArIHN0YXIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwibGluZV9ibGFua1xcXCJcXG4gICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICB2YXIgaW50cm8gPSBg5L2c6ICF77yaJHtyZXMuYXV0aG9yLmpvaW4oXFxcIixcXFwiKX1cXFxcblxcXFxu57+76K+R77yaJHtyZXMudHJhbnNsYXRvci5qb2luKFxcXCIsXFxcIil9XFxcXG5cXFxcbueugOS7i++8miR7cmVzLmludHJvfVxcXFxuXFxcXG7kvZzogIXnroDku4vvvJoke3Jlcy5hdXRob3JfaW50cm99XFxcXG5cXFxcbuaRmOW9le+8miR7cmVzLmNhdGFsb2d9YFxcbiAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogaW50cm8sXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJsb25nX3RleHRcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGQpXFxuICAgICAgICAgICAgICAgIH0sIGl0ZW0uaWQsIHN0YXIpXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH0pXFxuICAgICAgICBzZXRSZXN1bHQoZCk7XFxuICAgIH0sXFxuICAgIFlsaWJyYXJ5OiBmdW5jdGlvbihrdywgcGFnZSkge1xcbiAgICAgICAgdmFyIGQgPSBbXVxcbiAgICAgICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocG9zdChcXFwiaHR0cHM6Ly9hcGkueWxpYnJhcnkub3JnL2FwaS9zZWFyY2gvXFxcIiwge1xcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgXFxcImtleXdvcmRcXFwiOiBrdyxcXG4gICAgICAgICAgICAgICAgXFxcInBhZ2VcXFwiOiBwYWdlLFxcbiAgICAgICAgICAgICAgICBcXFwic2Vuc2l0aXZlXFxcIjogZmFsc2VcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSkpLmRhdGFcXG4gICAgICAgIHJlcy5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBg5L2c6ICFOiR7aXRlbS5hdXRob3J9IOWHuueJiOekvjoke2l0ZW0ucHVibGlzaGVyP2l0ZW0ucHVibGlzaGVyOlxcXCLmmoLml6BcXFwifSBJU0JOOiR7aXRlbS5pc2JuP2l0ZW0uaXNibjpcXFwi5pqC5pegXFxcIn0g5Ye654mI5pe26Ze0OiR7aXRlbS55ZWFyP2l0ZW0ueWVhcjpcXFwi5pqC5pegXFxcIn0g5paH5Lu25qC85byPOiR7aXRlbS5leHRlbnNpb259IOaWh+S7tuWkp+WwjzokeyQucmVxdWlyZShcXFwiYXBpP3J1bGU95Zu+5Lmm6aaGUHJvXFxcIikuZ2V0RmlsZVNpemUoaXRlbS5maWxlc2l6ZSl9YCxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKGlkKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXMgPSBKU09OLnBhcnNlKHBvc3QoXFxcImh0dHBzOi8vYXBpLnlsaWJyYXJ5Lm9yZy9hcGkvZGV0YWlsL1xcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcImlkXFxcIjogaWQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwic291cmNlXFxcIjogXFxcInpsaWJyYXJ5XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXJzID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvYXBpP3J1bGU95Zu+5Lmm6aaGUHJvXFxcIikuc2VydmVyc1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcnMudW5zaGlmdChcXFwi55m+5bqm5LqR55uY6L2s5a2YXFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmluX2xpYmdlbikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzLnVuc2hpZnQoXFxcIkxpYmdlbijmjqjojZApXFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoc2VydmVycywgMSwgXFxcIumAieaLqee6v+i3r1xcXCIpLnNlbGVjdCgocmVzKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwiTGliZ2VuKOaOqOiNkClcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGRmaChyZXF1ZXN0KFxcXCJodHRwOi8vbGlicmFyeS5sb2wvbWFpbi9cXFwiICsgcmVzLm1kNSksIFxcXCIjZG93bmxvYWQmJmEmJmhyZWZcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09IFxcXCLnmb7luqbkupHnm5jovazlrZhcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJC5yZXF1aXJlKFxcXCJhcGk/cnVsZT3lm77kuabppoZQcm9cXFwiKS5iYWlkdShyZXMpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcImlwZnPkuIvovb1cXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYGh0dHBzOi8vaXBmcy1jaGVja2VyLjFrYnRvb2wuY29tLyR7cmVzLmlwZnNfY2lkfWBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dCArIHJlcy5pcGZzX2NpZFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgcmVzKVxcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhlLm1lc3NhZ2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ino+aekOWksei0pVxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSwgaXRlbS5pZClcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgICAgIHNldFJlc3VsdChkKTtcXG4gICAgfSxcXG4gICAgWmxpYnJhcnk6IGZ1bmN0aW9uKGt3LCBwYWdlKSB7XFxuICAgICAgICB2YXIgZCA9IFtdO1xcbiAgICAgICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocG9zdChcXFwiaHR0cHM6Ly93b3JrZXIuemxpYi5hcHAvYXBpL3NlYXJjaC9cXFwiLCB7XFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICBcXFwia2V5d29yZFxcXCI6IGt3LFxcbiAgICAgICAgICAgICAgICBcXFwicGFnZVxcXCI6IHBhZ2UsXFxuICAgICAgICAgICAgICAgIFxcXCJzZW5zaXRpdmVcXFwiOiBmYWxzZVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KSkuZGF0YVxcbiAgICAgICAgcmVzLmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGA8c21hbGw+5L2c6ICFOiR7aXRlbS5hdXRob3J9IOWHuueJiOekvjoke2l0ZW0ucHVibGlzaGVyP2l0ZW0ucHVibGlzaGVyOlxcXCLmmoLml6BcXFwifSBJU0JOOiR7aXRlbS5pc2JuP2l0ZW0uaXNibjpcXFwi5pqC5pegXFxcIn0g5Ye654mI5pe26Ze0OiR7aXRlbS55ZWFyP2l0ZW0ueWVhcjpcXFwi5pqC5pegXFxcIn0g5paH5Lu25qC85byPOiR7aXRlbS5leHRlbnNpb259IOaWh+S7tuWkp+WwjzokeyQucmVxdWlyZShcXFwiYXBpP3J1bGU95Zu+5Lmm6aaGUHJvXFxcIikuZ2V0RmlsZVNpemUoaXRlbS5maWxlc2l6ZSl9YCxcXG4gICAgICAgICAgICAgICAgaW1nOiBpdGVtLmNvdmVyLFxcbiAgICAgICAgICAgICAgICB1cmw6IFxcXCJodHRwczovL3dvcmtlci56bGliLmFwcC9kb3dubG9hZC9cXFwiICsgaXRlbS5pZFxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiAgICAgICAgc2V0UmVzdWx0KGQpXFxuICAgIH0sXFxuICAgIOm4oOaRqTogZnVuY3Rpb24oa3cpIHtcXG4gICAgICAgIHZhciBkID0gW11cXG4gICAgICAgIHZhciBpZCA9IEpTT04ucGFyc2UocG9zdChcXFwiaHR0cHM6Ly93d3c1LmppdW1vZGlhcnkuY29tL2luaXRfaHVicy5waHBcXFwiLCB7XFxuICAgICAgICAgICAgYm9keToge1xcbiAgICAgICAgICAgICAgICBxOiBrdyxcXG4gICAgICAgICAgICAgICAgcmVtb3RlX2lwOiBcXFwiXFxcIixcXG4gICAgICAgICAgICAgICAgdGltZV9pbnQ6IERhdGUucGFyc2UobmV3IERhdGUoKSkgKyBcXFwiXFxcIlxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pKS5pZFxcbiAgICAgICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocG9zdChcXFwiaHR0cHM6Ly93d3c1LmppdW1vZGlhcnkuY29tL2FqYXhfZmV0Y2hfaHVicy5waHBcXFwiLCB7XFxuICAgICAgICAgICAgYm9keToge1xcbiAgICAgICAgICAgICAgICBpZDogaWQsXFxuICAgICAgICAgICAgICAgIHNldDogMFxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pKS5zb3VyY2VzXFxuICAgICAgICByZXMuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgICBpdGVtLmRldGFpbHMuZGF0YS5mb3JFYWNoKGl0ZW0yID0+IHtcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtMi50aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0yLmRlcyArIFxcXCJcXFxcblxcXCIgKyBpdGVtMi52X2RlcyxcXG4gICAgICAgICAgICAgICAgICAgIGltZzogXFxcImh0dHA6XFxcIiArIGl0ZW0yLmltZ19saW5rLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGl0ZW0yLmltZ19saW5rID8gXFxcIm1vdmllXzFfdmVydGljYWxfcGljXFxcIiA6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBpdGVtMi5saW5rXFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH0pXFxuICAgICAgICBzZXRSZXN1bHQoZCk7XFxuICAgIH0sXFxuICAgIGNoZWNrTGliZ2VuOiBmdW5jdGlvbigpIHtcXG4gICAgICAgIHZhciBkb21haW5zID0gW1xcXCJodHRwOi8vbGliZ2VuLnJzXFxcIiwgXFxcImh0dHA6Ly9saWJnZW4uaXNcXFwiLCBcXFwiaHR0cDovL2xpYmdlbi5zdFxcXCJdXFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIGZvciAoaXRlbSBvZiBkb21haW5zKSB7XFxuICAgICAgICAgICAgICAgIHZhciBjb2RlID0gSlNPTi5wYXJzZShyZXF1ZXN0KGl0ZW0sIHtcXG4gICAgICAgICAgICAgICAgICAgIHdpdGhTdGF0dXNDb2RlOiB0cnVlXFxuICAgICAgICAgICAgICAgIH0pKS5zdGF0dXNDb2RlXFxuICAgICAgICAgICAgICAgIGlmIChjb2RlID09IDIwMCkge1xcbiAgICAgICAgICAgICAgICAgICAgc2V0SXRlbShcXFwibGliZ2VuXFxcIiwgaXRlbSlcXG4gICAgICAgICAgICAgICAgICAgIHRvYXN0KFxcXCLmo4DmtYvliLDlj6/nlKjplZzlg4/vvIzor7fliLfmlrDlkI7ph43mlrDmkJzntKJcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB0b2FzdChcXFwi5omA5pyJ6ZWc5YOP6YO95peg5rOV5L2/55So77yM6K+35omT5byAVFrkvb/nlKhcXFwiKVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIGxvZyhlLm1lc3NhZ2UpXFxuICAgICAgICB9XFxuICAgIH0sXFxuICAgIExpYmdlbjogZnVuY3Rpb24oa3csIHBhZ2UpIHtcXG4gICAgICAgIHZhciBkID0gW11cXG4gICAgICAgIGlmIChnZXRJdGVtKFxcXCJsaWJnZW5cXFwiLCBcXFwiXFxcIikgPT0gXFxcIlxcXCIpIHtcXG4gICAgICAgICAgICB0b2FzdChcXFwi5peg5Y+v55So6ZWc5YOP77yM5q2j5Zyo5qOA5rWL5LitLi4uXFxcIilcXG4gICAgICAgICAgICAkLnJlcXVpcmUoXFxcImFwaT9ydWxlPeWbvuS5pummhlByb1xcXCIpLmNoZWNrTGliZ2VuKClcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdmFyIHVybCA9IGdldEl0ZW0oXFxcImxpYmdlblxcXCIpICsgXFxcIi9zZWFyY2gucGhwP3JlcT1cXFwiICsga3cgKyBcXFwiJnBhZ2U9XFxcIiArIHBhZ2VcXG4gICAgICAgICAgICB2YXIgciA9IEpTT04ucGFyc2UocmVxdWVzdCh1cmwsIHtcXG4gICAgICAgICAgICAgICAgd2l0aEhlYWRlcnM6IHRydWVcXG4gICAgICAgICAgICB9KSlcXG4gICAgICAgICAgICBpZiAoci5zdGF0dXNDb2RlID09IDIwMCkge1xcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0gci5ib2R5XFxuICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gcGRmYShyZXMsIFxcXCJib2R5JiZ0clxcXCIpLmZpbHRlcihpdGVtID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmluY2x1ZGVzKFxcXCJub3dyYXBcXFwiKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBsaSA9IGl0ZW0ubWF0Y2gobmV3IFJlZ0V4cChcXFwiPHRkKC4qPyk8L3RkPlxcXCIsIFxcXCJnXFxcIikpXFxuICAgICAgICAgICAgICAgICAgICB2YXIgZGVzYyA9IHBkZmgobGlbMV0sIFxcXCJhJiZUZXh0XFxcIilcXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAzOyBpIDwgbGkubGVuZ3RoIC0gMzsgaSsrKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzYyArPSBcXFwi77ybXFxcIiArIHBkZmgobGlbaV0sIFxcXCJUZXh0XFxcIilcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgobGlbMl0sIFxcXCJUZXh0XFxcIiksXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogZGVzYyxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgobGkpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBkZmgocmVxdWVzdChwZGZoKGxpWzldLCBcXFwiYSYmaHJlZlxcXCIpKSwgXFxcIiNkb3dubG9hZCYmYSYmaHJlZlxcXCIpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgbGkpXFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHRvYXN0KFxcXCLplZzlg4/lpLHmlYjvvIzph43mlrDmo4DmtYvkuK0uLi5cXFwiKVxcbiAgICAgICAgICAgICAgICAkLnJlcXVpcmUoXFxcImFwaT9ydWxlPeWbvuS5pummhlByb1xcXCIpLmNoZWNrTGliZ2VuKClcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICBzZXRSZXN1bHQoZCk7XFxuICAgIH0sXFxuICAgIOe9keebmDogZnVuY3Rpb24oa3csIHBhZ2UpIHtcXG4gICAgICAgIHZhciBkID0gW11cXG4gICAgICAgIHZhciByZXMgPSBKU09OLnBhcnNlKHBvc3QoXFxcImh0dHBzOi8vYXBpLmJvb2twYW4ubmV0L2FwaS9zZWFyY2gvXFxcIiwge1xcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgXFxcImtleXdvcmRcXFwiOiBrdyxcXG4gICAgICAgICAgICAgICAgXFxcInBhZ2VcXFwiOiBwYWdlLFxcbiAgICAgICAgICAgICAgICBcXFwic2Vuc2l0aXZlXFxcIjogZmFsc2VcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSkpLmRhdGFcXG4gICAgICAgIHJlcy5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLmluZm8sXFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGl0ZW0uc291cmNlLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgoaWQsIHNvdXJjZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0gSlNPTi5wYXJzZShwb3N0KFxcXCJodHRwczovL2FwaS5ib29rcGFuLm5ldC9hcGkvZGV0YWlsL1xcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcImlkXFxcIjogaWQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwic291cmNlXFxcIjogc291cmNlXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kb3dubG9hZF9saW5rKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaWN0ID0ge31cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmRvd25sb2FkX2xpbmsudW5zaGlmdCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcXFwi5Y6f572R6aG1XFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogcmVzLnVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChyZXMuZG93bmxvYWRfbGluay5tYXAoZnVuY3Rpb24oaXRlbSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgMSwgXFxcIuivt+mAieaLqeS4i+i9vee6v+i3r1xcXCIpLnNlbGVjdCgobGlua3MpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsaW5rc1tsaW5rcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmluZGV4T2YoaW5wdXQpXS51cmxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgcmVzLmRvd25sb2FkX2xpbmspXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy51cmxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9nKGUubWVzc2FnZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6Kej5p6Q5aSx6LSlXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9LCBpdGVtLmlkLCBpdGVtLnNvdXJjZSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgICAgIHNldFJlc3VsdChkKTtcXG4gICAgfSxcXG4gICAg5peg5ZCN5Zu+5LmmOiBmdW5jdGlvbihrdywgcGFnZSkge1xcbiAgICAgICAgdmFyIGQgPSBbXVxcbiAgICAgICAgdmFyIHVybCA9IFxcXCJodHRwczovL3d3dy5ib29rMTIzLmluZm8vbGlzdD9rZXk9XFxcIiArIGt3ICsgXFxcIiZwYWdlPVxcXCIgKyBwYWdlXFxuICAgICAgICB2YXIgcmVzID0gcmVxdWVzdCh1cmwpXFxuICAgICAgICB2YXIgbGlzdCA9IHBkZmEocmVzLCBcXFwiLmxpc3RfcGFnZUNvbnRlbnRfX3pfeXp2JiZsaVxcXCIpXFxuICAgICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgoaXRlbSwgXFxcIi5saXN0X3RpdGxlX18wNm50MiYmVGV4dFxcXCIpLFxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBwZGZoKGl0ZW0sIFxcXCIubGlzdF9hdXRob3JfX2xQd3BsJiZUZXh0XFxcIikgKyBcXFwiXFxcXG5cXFwiICsgcGRmaChpdGVtLCBcXFwiLmxpc3RfcmF0ZV9fSjdPeDEmJlRleHRcXFwiKSArIFxcXCJcXFxcblxcXCIgKyBwZGZoKGl0ZW0sIFxcXCIubGlzdF9kZXNjX19rSmoxWSYmVGV4dFxcXCIpLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgodXJsKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGRmaChyZXF1ZXN0KHVybCksIFxcXCIuZGV0YWlsX2Rvd25sb2FkX2J0bl9fdjdiN2smJmhyZWZcXFwiKVxcbiAgICAgICAgICAgICAgICB9LCBcXFwiaHR0cHM6Ly93d3cuYm9vazEyMy5pbmZvXFxcIiArIHBkZmgoaXRlbSwgXFxcImEmJmhyZWZcXFwiKSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgICAgIHNldFJlc3VsdChkKTtcXG4gICAgfSxcXG4gICAgYmFpZHU6IGZ1bmN0aW9uKHJlcykge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBpZiAoIWZpbGVFeGlzdChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9Kb2UvYmFpZHUudHh0XFxcIikpIHtcXG4gICAgICAgICAgICAgICAgdG9hc3QoXFxcIui/mOacqueZu+mZhlxcXCIpXFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL2JhaWR1TG9naW4/cnVsZT3lm77kuabppoZQcm9cXFwiXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdmFyIGJkc3Rva2VuID0gSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJodHRwczovL3Bhbi5iYWlkdS5jb20vYXBpL2dldHRlbXBsYXRldmFyaWFibGU/ZmllbGRzPVslMjJiZHN0b2tlbiUyMl1cXFwiLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgQ29va2llOiByZXF1ZXN0KFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0pvZS9iYWlkdS50eHRcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KSkucmVzdWx0LmJkc3Rva2VuXFxuICAgICAgICAgICAgICAgIHJldHVybiAkKFxcXCIv55S15a2Q5LmmL1xcXCIgKyByZXMudGl0bGUgKyBcXFwiLlxcXCIgKyByZXMuZXh0ZW5zaW9uLCBcXFwi6K+36L6T5YWl5L+d5a2Y6Lev5b6EXFxcIikuaW5wdXQoKGJkc3Rva2VuLCByZXMpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXMgPSBKU09OLnBhcnNlKHBvc3QoXFxcImh0dHBzOi8vcGFuLmJhaWR1LmNvbS9yZXN0LzIuMC94cGFuL2ZpbGU/bWV0aG9kPWNyZWF0ZSZiZHN0b2tlbj1cXFwiICsgYmRzdG9rZW4sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvb2tpZTogcmVxdWVzdChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9Kb2UvYmFpZHUudHh0XFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogcmVzLmZpbGVzaXplICsgXFxcIlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGlucHV0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19saXN0OiBbcmVzLm1kNV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0eXBlOiAwXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSkpXFxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmVycm5vID09IDApIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6L2s5a2Y5oiQ5YqfXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMuZXJybm8gPT0gLTgpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6L2s5a2Y5aSx6LSl77yM5bey57uP5L+d5a2Y6L+H6L+Z5Liq5paH5Lu25LqGXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMuZXJybm8gPT0gMikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/ovazlrZjlpLHotKXvvIzplJnor6/nmoTot6/lvoRcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhyZXMuZXJybm8pXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+i9rOWtmOWksei0pVxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSwgYmRzdG9rZW4sIHJlcylcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgbG9nKGUubWVzc2FnZSlcXG4gICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6L2s5a2Y5aSx6LSlXFxcIlxcbiAgICAgICAgfVxcbiAgICB9LFxcbiAgICBjb21wdXRlUmF0aW5nOiBmdW5jdGlvbihlLCB0KSB7XFxuICAgICAgICBsZXQgaSA9IFxcXCJcXFwiO1xcbiAgICAgICAgZm9yIChsZXQgciA9IDA7IHIgPCA1OyByKyspIHIgPCBNYXRoLnJvdW5kKHQgLyAoZSAvIDUpKSA/IGkgKz0gXFxcIuKYhVxcXCIgOiBpICs9IFxcXCLimIZcXFwiO1xcbiAgICAgICAgcmV0dXJuIGk7XFxuICAgIH0sXFxuICAgIHNlcnZlcnM6IFtcXFwiaXBmc+S4i+i9vVxcXCIsIFxcXCJodHRwczovL2R3ZWIubGluay9pcGZzL1xcXCIsIFxcXCJodHRwczovL2lwZnMuanB1LmpwL2lwZnMvXFxcIiwgXFxcImh0dHBzOi8vY2YtaXBmcy5jb20vaXBmcy9cXFwiLCBcXFwiaHR0cHM6Ly9nYXRld2F5LnBpbmF0YS5jbG91ZC9pcGZzL1xcXCIsIFxcXCJodHRwczovL2lwZnMtZ2F0ZXdheS5jbG91ZC9pcGZzL1xcXCJdLFxcbiAgICBnZXRGaWxlU2l6ZTogZnVuY3Rpb24oc2l6ZSkge1xcbiAgICAgICAgaWYgKHNpemUgPD0gMCkge1xcbiAgICAgICAgICAgIHJldHVybiBcXFwiXFxcIjtcXG4gICAgICAgIH1cXG4gICAgICAgIGxldCB1bml0Rm9ybSA9IFtcXFwiQnl0ZVxcXCIsIFxcXCJLQlxcXCIsIFxcXCJNQlxcXCIsIFxcXCJHQlxcXCIsIFxcXCJUQlxcXCJdO1xcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHVuaXRGb3JtLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XFxuICAgICAgICAgICAgaWYgKHNpemUgPiAxMDI0KSB7XFxuICAgICAgICAgICAgICAgIHNpemUgLz0gMTAyNDtcXG4gICAgICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNpemUudG9GaXhlZCgyKS5yZXBsYWNlKC8oXFxcXC4wMCkkLywgXFxcIlxcXCIpICsgdW5pdEZvcm1baV07XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIFxcXCJFUlJPUjrmlbDlgLzov4flpKdcXFwiO1xcbiAgICB9XFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi55m+5bqm5LqR55uY55m76ZmGXCIsXCJwYXRoXCI6XCJiYWlkdUxvZ2luXCIsXCJydWxlXCI6XCJqczpcXG5zZXRSZXN1bHQoW3tcXG4gICAgdXJsOiBcXFwiaHR0cHM6Ly9wYW4uYmFpZHUuY29tL1xcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwieDVfd2Vidmlld19zaW5nbGVcXFwiLFxcbiAgICBkZXNjOiBcXFwiMTAwJSYmZmxvYXRcXFwiLFxcbiAgICBleHRyYToge1xcbiAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgIHZhciB1cmwgPSBsb2NhdGlvbi5ocmVmXFxuICAgICAgICAgICAgaWYgKHVybC5pbmNsdWRlcyhcXFwiaHR0cHM6Ly9wYW4uYmFpZHUuY29tL3dhcFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgIGZiYS53cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSm9lL2JhaWR1LnR4dFxcXCIsIGZiYS5nZXRDb29raWUoXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgICBhbGVydChcXFwi5bey6I635Y+W5YiwY29va2ll77yM6L+U5Zue5Y2z5Y+vXFxcIilcXG4gICAgICAgICAgICAgICAgZmJhLmJhY2soKVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pLFxcbiAgICAgICAgdWE6IE1PQklMRV9VQSxcXG4gICAgICAgIGNhbkJhY2s6IHRydWVcXG4gICAgfVxcbn1dKVwifV0iLCJpY29uIjoiaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL2tlLzM4LnBuZyIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment