Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@JustLive@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiSnVzdExpdmUiLCJhdXRob3IiOiJKb2UmJumaj+mjjiYm5Y+R57Kq5raC5aKZJiZSeCYmWnJ1aXJ5IiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjZnljbGFzcyMjZnlwYWdlIiwidmVyc2lvbiI6OSwiY29sX3R5cGUiOiJtb3ZpZV8yIiwiY2xhc3NfbmFtZSI6IuWFqOmDqCbomY7niZkm5paX6bG8JuWTlOWTqSbnvZHmmJMiLCJ0eXBlIjoidmlkZW8iLCJjbGFzc191cmwiOiJhbGwmaHV5YSZkb3V5dSZiaWxpYmlsaSZjYyIsImFyZWFfbmFtZSI6IiIsImFyZWFfdXJsIjoiIiwic29ydF9uYW1lIjoiIiwieWVhcl9uYW1lIjoiIiwic29ydF91cmwiOiIiLCJ5ZWFyX3VybCI6IiIsImZpbmRfcnVsZSI6ImpzOlxudmFyIGQgPSBbXTtcbnZhciBmeWNsYXNzID0gTVlfVVJMLnNwbGl0KFwiIyNcIilbMV1cbnB1dE15VmFyKFwiZnljbGFzc1wiLCBmeWNsYXNzKVxuaWYgKE1ZX1BBR0UgPT0gMSkge1xuICAgIGQudW5zaGlmdCh7XG4gICAgICAgIHRpdGxlOiBnZXRJdGVtKFwibmlja25hbWVcIiksXG4gICAgICAgIHVybDogJCgpLmxhenlSdWxlKCgpID0+IHtcbiAgICAgICAgICAgIHB1dE15VmFyKFwic1R5cGVcIiwgJ2xpdmluZycpO1xuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2UvaGlzdG9yeSNub0hpc3RvcnkjJ1xuICAgICAgICB9KSxcbiAgICAgICAgaW1nOiBcImh0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9rZS83My5wbmdcIixcbiAgICAgICAgY29sX3R5cGU6IFwiYXZhdGFyXCJcbiAgICB9KVxuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBcIuaQnOe0olwiLFxuICAgICAgICBkZXNjOiBmeWNsYXNzID09IFwiZG91eXVcIiA/IFwi5paX6bG85pCc5oi/6Ze05Y+3XCIgOiBcIuaQnOe0ouebtOaSremXtFwiLFxuICAgICAgICB1cmw6ICdcImhpa2VyOi8vc2VhcmNoP3M9XCIraW5wdXQrXCImcnVsZT1cIitNWV9SVUxFLnRpdGxlJyxcbiAgICAgICAgY29sX3R5cGU6IFwiaW5wdXRcIlxuICAgIH0pXG5cbiAgICBkLnB1c2goe1xuICAgICAgICBjb2xfdHlwZTogXCJiaWdfYmxhbmtfYmxvY2tcIlxuICAgIH0pXG4gICAgZC5wdXNoKHtcbiAgICAgICAgY29sX3R5cGU6IFwiYmlnX2JsYW5rX2Jsb2NrXCJcbiAgICB9KVxuICAgIGQucHVzaCh7XG4gICAgICAgIGNvbF90eXBlOiBcImxpbmVcIlxuICAgIH0pXG4gICAgdmFyIOabtOWkmiA9ICc8Zm9udCBjb2xvcj1cIiMwYWEzNDRcIj7mm7TlpJo8L2ZvbnQ+J1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiDmm7TlpJosXG4gICAgICAgIHVybDogJCgpLmxhenlSdWxlKCgpID0+IHtcbiAgICAgICAgICAgIHB1dE15VmFyKFwidHlwZU5hbWVWYXJcIiwgJ+WFqOmDqCcpO1xuICAgICAgICAgICAgcmV0dXJuIFwiaGlrZXI6Ly9wYWdlL25ld0NsYXNzXCIgKyAnI25vSGlzdG9yeSMnXG4gICAgICAgIH0pLFxuICAgICAgICBpbWc6IFwiaHR0cHM6Ly9pbWcxLmJhaWR1LmNvbS9pdC91PTExMzEzMzE0MTYsMjY2NjQ2NzM1NCZmbT0yNTMmZm10PWF1dG8mYXBwPTEyMCZmPVBORz93PTUwMCZoPTUwMEBSZWZlcmVyPVwiLFxuICAgICAgICBjb2xfdHlwZTogXCJhdmF0YXJcIlxuICAgIH0pXG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IFwi5aSn6K+d5omL5ri4XCIsXG4gICAgICAgIHVybDogXCJoaWtlcjovL3BhZ2UvbmV3Q2xhc3NMaXN0P3BhZ2U9ZnlwYWdlJnBsYXRmb3JtPWNjJmFyZWE95aSn6K+d6KW/5ri45omL5ri4I25vSGlzdG9yeSNcIixcbiAgICAgICAgaW1nOiBcImh0dHA6Ly9jb3R0b24ucmVzLm5ldGVhc2UuY29tL2J1Y2tldHMvNE5oUVdkL2ZpbGVzL1Fpa0RRTUpAUmVmZXJlcj1cIixcbiAgICAgICAgY29sX3R5cGU6IFwiaWNvbl9yb3VuZF9zbWFsbF80XCJcbiAgICB9KVxuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBcIueOi+iAheiNo+iAgFwiLFxuICAgICAgICB1cmw6IFwiaGlrZXI6Ly9wYWdlL25ld0NsYXNzTGlzdD9wYWdlPWZ5cGFnZSZwbGF0Zm9ybT1odXlhJmFyZWE9546L6ICF6I2j6ICAI25vSGlzdG9yeSNcIixcbiAgICAgICAgaW1nOiBcImh0dHBzOi8vaHV5YWltZy5tc3N0YXRpYy5jb20vY2RuaW1hZ2UvZ2FtZS8yMzM2LU1TLmpwZ0BSZWZlcmVyPVwiLFxuICAgICAgICBjb2xfdHlwZTogXCJpY29uX3JvdW5kX3NtYWxsXzRcIlxuICAgIH0pXG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IFwiQ09E5omL5ri4XCIsXG4gICAgICAgIHVybDogXCJoaWtlcjovL3BhZ2UvbmV3Q2xhc3NMaXN0P3BhZ2U9ZnlwYWdlJnBsYXRmb3JtPWh1eWEmYXJlYT1DT0TmiYvmuLgjbm9IaXN0b3J5I1wiLFxuICAgICAgICBpbWc6IFwiaHR0cHM6Ly9odXlhaW1nLm1zc3RhdGljLmNvbS9jZG5pbWFnZS9nYW1lLzQ3NjktTVMuanBnQFJlZmVyZXI9XCIsXG4gICAgICAgIGNvbF90eXBlOiBcImljb25fcm91bmRfc21hbGxfNFwiXG4gICAgfSlcbiAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogXCLltKnlnY8zXCIsXG4gICAgICAgIHVybDogXCJoaWtlcjovL3BhZ2UvbmV3Q2xhc3NMaXN0P3BhZ2U9ZnlwYWdlJnBsYXRmb3JtPWh1eWEmYXJlYT3ltKnlnY8zI25vSGlzdG9yeSNcIixcbiAgICAgICAgaW1nOiBcImh0dHBzOi8vaHV5YWltZy5tc3N0YXRpYy5jb20vY2RuaW1hZ2UvZ2FtZS8yNjM5LU1TLmpwZ0BSZWZlcmVyPVwiLFxuICAgICAgICBjb2xfdHlwZTogXCJpY29uX3JvdW5kX3NtYWxsXzRcIlxuICAgIH0pXG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IFwiTE9M5omL5ri4XCIsXG4gICAgICAgIHVybDogXCJoaWtlcjovL3BhZ2UvbmV3Q2xhc3NMaXN0P3BhZ2U9ZnlwYWdlJnBsYXRmb3JtPWh1eWEmYXJlYT3oi7Hpm4TogZTnm5/miYvmuLgjbm9IaXN0b3J5I1wiLFxuICAgICAgICBpbWc6IFwiaHR0cHM6Ly9odXlhaW1nLm1zc3RhdGljLmNvbS9jZG5pbWFnZS9nYW1lLzYyMDMtTVMuanBnQFJlZmVyZXI9XCIsXG4gICAgICAgIGNvbF90eXBlOiBcImljb25fcm91bmRfc21hbGxfNFwiXG4gICAgfSlcbiAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogXCLljp/npZ5cIixcbiAgICAgICAgdXJsOiBcImhpa2VyOi8vcGFnZS9uZXdDbGFzc0xpc3Q/cGFnZT1meXBhZ2UmcGxhdGZvcm09aHV5YSZhcmVhPeWOn+elniNub0hpc3RvcnkjXCIsXG4gICAgICAgIGltZzogXCJodHRwczovL2h1eWFpbWcubXNzdGF0aWMuY29tL2NkbmltYWdlL2dhbWUvNTQ4OS1NUy5qcGdAUmVmZXJlcj1cIixcbiAgICAgICAgY29sX3R5cGU6IFwiaWNvbl9yb3VuZF9zbWFsbF80XCJcbiAgICB9KVxuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBcIuWSjOW5s+eyvuiLsVwiLFxuICAgICAgICB1cmw6IFwiaGlrZXI6Ly9wYWdlL25ld0NsYXNzTGlzdD9wYWdlPWZ5cGFnZSZwbGF0Zm9ybT1odXlhJmFyZWE95ZKM5bmz57K+6IuxI25vSGlzdG9yeSNcIixcbiAgICAgICAgaW1nOiBcImh0dHBzOi8vaHV5YWltZy5tc3N0YXRpYy5jb20vY2RuaW1hZ2UvZ2FtZS8zMjAzLU1TLmpwZ0BSZWZlcmVyPVwiLFxuICAgICAgICBjb2xfdHlwZTogXCJpY29uX3JvdW5kX3NtYWxsXzRcIlxuICAgIH0pXG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IFwi5rC45Yqr5peg6Ze0XCIsXG4gICAgICAgIHVybDogXCJoaWtlcjovL3BhZ2UvbmV3Q2xhc3NMaXN0P3BhZ2U9ZnlwYWdlJnBsYXRmb3JtPWNjJmFyZWE95rC45Yqr5peg6Ze0I25vSGlzdG9yeSNcIixcbiAgICAgICAgaW1nOiBcImh0dHA6Ly9jb3R0b24ucmVzLm5ldGVhc2UuY29tL2J1Y2tldHMvNE5oUVdkL2ZpbGVzL1NSb0VHaXJAUmVmZXJlcj1cIixcbiAgICAgICAgY29sX3R5cGU6IFwiaWNvbl9yb3VuZF9zbWFsbF80XCJcbiAgICB9KVxuICAgIGQucHVzaCh7XG4gICAgICAgIGNvbF90eXBlOiBcImJpZ19ibGFua19ibG9ja1wiXG4gICAgfSlcbiAgICBkLnB1c2goe1xuICAgICAgICBjb2xfdHlwZTogXCJiaWdfYmxhbmtfYmxvY2tcIlxuICAgIH0pXG4gICAgZC5wdXNoKHtcbiAgICAgICAgY29sX3R5cGU6IFwibGluZVwiXG4gICAgfSlcbiAgICBkLnB1c2goe1xuICAgICAgICBjb2xfdHlwZTogXCJiaWdfYmxhbmtfYmxvY2tcIlxuICAgIH0pXG4gICAgZC5wdXNoKHtcbiAgICAgICAgY29sX3R5cGU6IFwiYmlnX2JsYW5rX2Jsb2NrXCJcbiAgICB9KVxuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBcIuWFqOmDqOebtOaSrVwiLFxuICAgICAgICB1cmw6IFwiaGlrZXI6Ly9lbXB0eVwiLFxuICAgICAgICBpbWc6IFwiaHR0cHM6Ly9pbWcyLmJhaWR1LmNvbS9pdC91PTUxNzg5MzAyNywyNDc0NTk2Njk3JmZtPTI1MyZmbXQ9YXV0byZhcHA9MTM4JmY9SlBFRz93PTUwMCZoPTU5NEBSZWZlcmVyPVwiLFxuICAgICAgICBjb2xfdHlwZTogXCJhdmF0YXJcIlxuICAgIH0pXG59XG5pZiAoZnljbGFzcyA9PSBcImFsbFwiKSB7XG4gICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocmVxdWVzdChcImh0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL2dldFJlY29tbWVuZD8mcGFnZT1cIiArIE1ZX1VSTC5zcGxpdChcIiMjXCIpWzJdICsgXCImc2l6ZT0yMFwiKSkuZGF0YVxuICAgIGZvciAoZGF0YSBvZiByZXMpIHtcbiAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBkYXRhLmNhdGVnb3J5TmFtZSArICfCtycgKyBkYXRhLnJvb21OYW1lLFxuICAgICAgICAgICAgZGVzYzogZGF0YS5wbGF0Rm9ybS5yZXBsYWNlKCdodXlhJywgJ+iZjueJmScpLnJlcGxhY2UoJ2RvdXl1JywgJ+aWl+mxvCcpLnJlcGxhY2UoJ2NjJywgJ+e9keaYk0NDJykucmVwbGFjZShcImJpbGliaWxpXCIsIFwi5ZOU5ZOp5ZOU5ZOpXCIpICsgJ8K3JyArIGRhdGEub3duZXJOYW1lLFxuICAgICAgICAgICAgaW1nOiAoZGF0YS5yb29tUGljLnN0YXJ0c1dpdGgoJy8nKSA/ICdodHRwczonICsgZGF0YS5yb29tUGljIDogZGF0YS5yb29tUGljKSArICdAUmVmZXJlcj0nLFxuICAgICAgICAgICAgdXJsOiBcImhpa2VyOi8vcGFnZS9kZXRhaWw/I2ltbWVyc2l2ZVRoZW1lIyZyb29taWQ9XCIgKyBkYXRhLnJvb21JZCArIFwiJnBsYXRmb3JtPVwiICsgZGF0YS5wbGF0Rm9ybVxuICAgICAgICB9KVxuICAgIH1cbn0gZWxzZSB7XG4gICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocmVxdWVzdChcImh0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL2dldFJlY29tbWVuZEJ5UGxhdGZvcm0/cGxhdGZvcm09XCIgKyBmeWNsYXNzICsgXCImcGFnZT1cIiArIE1ZX1VSTC5zcGxpdChcIiMjXCIpWzJdICsgXCImc2l6ZT0yMFwiKSkuZGF0YVxuICAgIGZvciAoZGF0YSBvZiByZXMpIHtcbiAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBkYXRhLnJvb21OYW1lLFxuICAgICAgICAgICAgZGVzYzogZGF0YS5jYXRlZ29yeU5hbWUgKyBcIsK3XCIgKyBkYXRhLm93bmVyTmFtZSxcbiAgICAgICAgICAgIGltZzogKGRhdGEucm9vbVBpYy5zdGFydHNXaXRoKCcvJykgPyAnaHR0cHM6JyArIGRhdGEucm9vbVBpYyA6IGRhdGEucm9vbVBpYykgKyAnQFJlZmVyZXI9JyxcbiAgICAgICAgICAgIHVybDogXCJoaWtlcjovL3BhZ2UvZGV0YWlsPyNpbW1lcnNpdmVUaGVtZSMmcm9vbWlkPVwiICsgZGF0YS5yb29tSWQgKyBcIiZwbGF0Zm9ybT1cIiArIGRhdGEucGxhdEZvcm1cbiAgICAgICAgfSlcbiAgICB9XG59XG5zZXRSZXN1bHQoZCk7Iiwic2VhcmNoX3VybCI6Imhpa2VyOi8vZW1wdHkjI2h0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL3NlYXJjaD9wbGF0Zm9ybT1hbGwma2V5V29yZHM9KiomaXNMaXZlPTAiLCJncm91cCI6IuKRpOebtOaSrSIsInNlYXJjaEZpbmQiOiJqczpcbnZhciB1cmwgPSBNWV9VUkwucmVwbGFjZShcImhpa2VyOi8vZW1wdHkjI1wiLCBcIlwiKS5yZXBsYWNlKFwiYWxsXCIsIGdldE15VmFyKFwiZnljbGFzc1wiKSlcbnZhciBqc29uID0gSlNPTi5wYXJzZShyZXF1ZXN0KHVybCkpLmRhdGFcbmQgPSBqc29uLm1hcChkYXRhID0+ICh7XG4gICAgdGl0bGU6IGRhdGEubmlja05hbWUsXG4gICAgZGVzYzogZGF0YS5wbGF0Zm9ybS5yZXBsYWNlKCdodXlhJywgJ+iZjueJmScpLnJlcGxhY2UoJ2RvdXl1JywgJ+aWl+mxvCcpLnJlcGxhY2UoJ2NjJywgJ+e9keaYk0NDJykucmVwbGFjZShcImJpbGliaWxpXCIsIFwi5ZOU5ZOp5ZOU5ZOpXCIpLFxuICAgIGltZzogKGRhdGEuaGVhZFBpYy5zdGFydHNXaXRoKCcvJykgPyAnaHR0cHM6JyArIGRhdGEuaGVhZFBpYyA6IGRhdGEuaGVhZFBpYykgKyAnQFJlZmVyZXI9JyxcbiAgICBjb250ZW50OiBkYXRhLmlzTGl2ZSA9PSAnMCcgPyAn5pyq5byA5pKtJyA6ICfnm7Tmkq3kuK0nLFxuICAgIHVybDogXCJoaWtlcjovL3BhZ2UvZGV0YWlsPyNpbW1lcnNpdmVUaGVtZSMmcm9vbWlkPVwiICsgZGF0YS5yb29tSWQgKyBcIiZwbGF0Zm9ybT1cIiArIGRhdGEucGxhdGZvcm1cbn0pKVxuc2V0UmVzdWx0KGQpIiwiZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsImRldGFpbF9maW5kX3J1bGUiOiIiLCJzZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsInNkZXRhaWxfZmluZF9ydWxlIjoiIiwidWEiOiJtb2JpbGUiLCJwcmVSdWxlIjoidmFyIGFjY291bnQgPSBnZXRJdGVtKFwiYWNjb3VudFwiLCBcIlwiKVxudmFyIHBhc3N3b3JkID0gZ2V0SXRlbShcInBhc3N3b3JkXCIpXG5pZiAoYWNjb3VudCAhPSBcIlwiICYmIGdldEl0ZW0oXCJ1aWRcIiwgXCJcIikgPT0gXCJcIikge1xuICAgIHZhciBjb29raWVzID0gSlNPTi5wYXJzZShyZXF1ZXN0KCdodHRwOi8vbGl2ZS55ajEyMTEud29yay9hcGkvbG9naW4nLCB7XG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdVc2VyLUFnZW50JzogUENfVUFcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogXCJ1c2VybmFtZT1cIiArIGFjY291bnQgKyBcIiZwYXNzd29yZD1cIiArIG1kNShwYXNzd29yZCksXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnXG4gICAgfSkpXG4gICAgLy9sb2coY29va2llcylcbiAgICBpZiAoY29va2llcy5jb2RlID09IDIwMCkge1xuICAgICAgICB0b2FzdChcIueZu+mZhuaIkOWKn1wiKVxuICAgICAgICBzZXRJdGVtKFwidWlkXCIsIGNvb2tpZXMuZGF0YS51aWQpXG4gICAgICAgIHNldEl0ZW0oXCJuaWNrbmFtZVwiLCBjb29raWVzLmRhdGEudXNlck5hbWUpXG4gICAgfSBlbHNlIHtcbiAgICAgICAgdG9hc3QoXCLnmbvpmYblpLHotKXvvIzlj6/og73mmK/nlKjmiLflkI3miJblr4bnoIHmnInor69cIilcbiAgICAgICAgc2V0SXRlbShcIm5pY2tuYW1lXCIsIFwi5pyq55m76ZmGXCIpXG4gICAgICAgIHNldEl0ZW0oXCJ1aWRcIiwgXCJcIilcbiAgICB9XG59IiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS6jOe6p1wiLFwicGF0aFwiOlwiZGV0YWlsXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbnZhciByZXMgPSBKU09OLnBhcnNlKHJlcXVlc3QoXFxcImh0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL2dldFJvb21JbmZvP3VpZD1cXFwiICsgZ2V0SXRlbShcXFwidWlkXFxcIikgKyBcXFwiJnBsYXRmb3JtPVxcXCIgKyBnZXRQYXJhbShcXFwicGxhdGZvcm1cXFwiKSArIFxcXCImcm9vbUlkPVxcXCIgKyBnZXRQYXJhbShcXFwicm9vbWlkXFxcIikpKVxcbi8v6L+Z5Lik5Liq6ZO+5o6l5LiN5ZCMXFxudmFyIHBsYXl1cmwgPSBKU09OLnBhcnNlKHJlcXVlc3QoXFxcImh0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL2dldFJlYWxVcmw/cGxhdGZvcm09XFxcIiArIGdldFBhcmFtKFxcXCJwbGF0Zm9ybVxcXCIpICsgXFxcIiZyb29tSWQ9XFxcIiArIGdldFBhcmFtKFxcXCJyb29taWRcXFwiKSkpLmRhdGFcXG52YXIgdWlkID0gZ2V0SXRlbShcXFwidWlkXFxcIilcXG52YXIgZm9sbG93ID0gcmVzLmRhdGEuaXNGb2xsb3dlZFxcbnZhciByb29taWQgPSByZXMuZGF0YS5yb29tSWRcXG52YXIgcGxhdGZvcm0gPSBnZXRQYXJhbShcXFwicGxhdGZvcm1cXFwiKVxcbnN3aXRjaCAocGxhdGZvcm0pIHtcXG4gICAgY2FzZSBcXFwiZG91eXVcXFwiOlxcbiAgICAgICAgdmFyIHVybCA9IFxcXCJodHRwczovL20uZG91eXUuY29tL1xcXCIgKyByb29taWRcXG4gICAgICAgIGJyZWFrXFxuICAgIGNhc2UgXFxcImJpbGliaWxpXFxcIjpcXG4gICAgICAgIHZhciB1cmwgPSBcXFwiaHR0cHM6Ly9saXZlLmJpbGliaWxpLmNvbS9oNS9cXFwiICsgcm9vbWlkXFxuICAgICAgICBicmVha1xcbiAgICBjYXNlIFxcXCJodXlhXFxcIjpcXG4gICAgICAgIHZhciB1cmwgPSBcXFwiaHR0cHM6Ly9tLmh1eWEuY29tL1xcXCIgKyByb29taWRcXG4gICAgICAgIGJyZWFrXFxuICAgIGNhc2UgXFxcImNjXFxcIjpcXG4gICAgICAgIHZhciB1cmwgPSBcXFwiaHR0cHM6Ly9oNS5jYy4xNjMuY29tL2NjL1xcXCIgKyByb29taWRcXG4gICAgICAgIGJyZWFrXFxufVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiByZXMuZGF0YS5yb29tTmFtZSxcXG4gICAgaW1nOiByZXMuZGF0YS5yb29tUGljICsgXFxcIkBSZWZlcmVyPVxcXCIsXFxuICAgIGRlc2M6IFxcXCLliIbljLrvvJpcXFwiICsgcmVzLmRhdGEucGxhdEZvcm0ucmVwbGFjZSgnaHV5YScsICfomY7niZknKS5yZXBsYWNlKCdkb3V5dScsICfmlpfpsbwnKS5yZXBsYWNlKCdjYycsICfnvZHmmJNDQycpLnJlcGxhY2UoXFxcImJpbGliaWxpXFxcIiwgXFxcIuWTlOWTqeWTlOWTqVxcXCIpICsgJ8K3JyArIHJlcy5kYXRhLmNhdGVnb3J5TmFtZSArIChyZXMuZGF0YS5pc0xpdmUgPT0gMSA/IFxcXCJcXFxcbueKtuaAge+8muato+WcqOebtOaSrVxcXCIgOiBcXFwiXFxcXG7nirbmgIHvvJrmnKrlvIDmkq1cXFwiKSArIFxcXCJcXFxcbueCueWHu+S4i+aWueS4u+aSreWktOWDj+i/m+WFpeWumOe9kVxcXCIsXFxuICAgIHVybDogcmVzLmRhdGEucm9vbVBpYyxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJyxcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIGdyYWRpZW50OiB0cnVlXFxuICAgIH1cXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiByZXMuZGF0YS5vd25lck5hbWUsXFxuICAgIGltZzogcmVzLmRhdGEub3duZXJIZWFkUGljICsgXFxcIkBSZWZlcmVyPVxcXCIsXFxuICAgIHVybDogdXJsLFxcbiAgICBjb2xfdHlwZTogXFxcImljb25fMl9yb3VuZFxcXCJcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiByZXMuZGF0YS5pc0ZvbGxvd2VkID09IDEgPyBcXFwi5bey5YWz5rOoXFxcIiA6IFxcXCLmnKrlhbPms6hcXFwiLFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHVpZCwgcm9vbWlkLCBwbGF0Zm9ybSwgZm9sbG93KSA9PiB7XFxuICAgICAgICBpZiAoZm9sbG93ID09IDApIHtcXG4gICAgICAgICAgICB2YXIgcmVzID0gSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJodHRwOi8vMTI0LjIyMi41LjEzMTo4MDEzL2FwaS9saXZlL2ZvbGxvdz9wbGF0Zm9ybT1cXFwiICsgcGxhdGZvcm0gKyBcXFwiJnJvb21JZD1cXFwiICsgcm9vbWlkICsgXFxcIiZ1aWQ9XFxcIiArIHVpZCkpXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly9cXFwiICsgcmVzLmRhdGFcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocmVxdWVzdChcXFwiaHR0cDovLzEyNC4yMjIuNS4xMzE6ODAxMy9hcGkvbGl2ZS91bkZvbGxvdz9wbGF0Zm9ybT1cXFwiICsgcGxhdGZvcm0gKyBcXFwiJnJvb21JZD1cXFwiICsgcm9vbWlkICsgXFxcIiZ1aWQ9XFxcIiArIHVpZCkpXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly9cXFwiICsgcmVzLmRhdGFcXG4gICAgICAgIH1cXG4gICAgfSwgdWlkLCByb29taWQsIHBsYXRmb3JtLCBmb2xsb3cpLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCJcXG59KVxcbnZhciBuYW1lID0ge1xcbiAgICBcXFwiT0RcXFwiOiBcXFwi5Y6f55S7XFxcIixcXG4gICAgXFxcIkZEXFxcIjogXFxcIua1geeVhVxcXCIsXFxuICAgIFxcXCJMRFxcXCI6IFxcXCLmoIfmuIVcXFwiLFxcbiAgICBcXFwiU0RcXFwiOiBcXFwi6auY5riFXFxcIixcXG4gICAgXFxcIkhEXFxcIjogXFxcIui2hea4hVxcXCIsXFxuICAgIFxcXCIyS1xcXCI6IFxcXCIyS1xcXCIsXFxuICAgIFxcXCI0S1xcXCI6IFxcXCI0S1xcXCIsXFxuICAgIFxcXCJGSERcXFwiOiBcXFwi5YWo6auY5riFXFxcIixcXG4gICAgXFxcIlhMRFxcXCI6IFxcXCLmnoHpgJ9cXFwiLFxcbiAgICBcXFwiU1FcXFwiOiBcXFwi5pmu6YCa6Z+z6LSoXFxcIixcXG4gICAgXFxcIkhRXFxcIjogXFxcIumrmOmfs+i0qFxcXCJcXG59XFxudmFyIHVybHMgPSBbXVxcbnZhciBuYW1lcyA9IFtdXFxuZm9yICh2YXIga2V5IGluIHBsYXl1cmwpIHtcXG4gICAgaWYgKCEvYXl5dWlkfHRvLy50ZXN0KGtleSkpIHtcXG4gICAgICAgIHVybHMucHVzaChwbGF5dXJsW2tleV0pXFxuICAgICAgICBuYW1lcy5wdXNoKG5hbWVba2V5XSlcXG4gICAgfVxcbn1cXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogXFxcImxpbmVfYmxhbmtcXFwiXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIumAieaLqeeUu+i0qFxcXCIsXFxuICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHlcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiXFxufSlcXG5mb3IgKHZhciBpIGluIG5hbWVzKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogbmFtZXNbaV0sXFxuICAgICAgICB1cmw6IHBsYXRmb3JtID09IFxcXCJkb3V5dVxcXCIgPyBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgIGRhbm11OiAnd2ViOi8vaHR0cDovL2RvdXl1X2Rhbm11LmRldi50eXJhbnRnLmNvbS8/cmlkPScgKyByb29taWQgKyAnJnZlcj0xJ1xcbiAgICAgICAgfSkgOiB1cmxzW2ldLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiXFxuICAgIH0pXFxufVxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzJcIixcIm5hbWVcIjpcIuWFs+azqOWIl+ihqFwiLFwicGF0aFwiOlwiaGlzdG9yeVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5zZXRQYWdlVGl0bGUoXFxcIuWFs+azqFxcXCIpXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IGdldEl0ZW0oXFxcIm5pY2tuYW1lXFxcIiksXFxuICAgIHVybDogJChcXFwi5piv5ZCm5rOo6ZSA77yfXFxcIikuY29uZmlybSgoKSA9PiB7XFxuICAgICAgICBzZXRJdGVtKFxcXCJ1aWRcXFwiLCBcXFwiXFxcIilcXG4gICAgICAgIHNldEl0ZW0oXFxcIm5pY2tuYW1lXFxcIiwgXFxcIuacqueZu+mZhlxcXCIpXFxuICAgICAgICBiYWNrKHRydWUpXFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5rOo6ZSA5oiQ5YqfXFxcIlxcbiAgICB9KSxcXG4gICAgaW1nOiBcXFwiaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL2tlLzczLnBuZ1xcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIlxcbn0pXFxuaWYgKGdldEl0ZW0oXFxcInVpZFxcXCIsIFxcXCJcXFwiKSA9PSBcXFwiXFxcIikge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgZGVzYzogXFxcIui0puWPt1xcXCIsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFwic2V0SXRlbSgnYWNjb3VudCcsaW5wdXQpXFxcIixcXG4gICAgICAgICAgICB0aXRsZVZpc2libGU6IGZhbHNlXFxuICAgICAgICB9LFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJpbnB1dFxcXCJcXG4gICAgfSlcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGRlc2M6IFxcXCLlr4bnoIFcXFwiLFxcbiAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICBvbkNoYW5nZTogXFxcInNldEl0ZW0oJ3Bhc3N3b3JkJyxpbnB1dClcXFwiLFxcbiAgICAgICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2VcXG4gICAgICAgIH0sXFxuICAgICAgICBjb2xfdHlwZTogXFxcImlucHV0XFxcIlxcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLnoa7lrppcXFwiLFxcbiAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIGJhY2soKVxcbiAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/ov5Tlm57oh6rliqjnmbvpmYZcXFwiXFxuICAgICAgICB9KSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCJcXG4gICAgfSlcXG59XFxudmFyIHJlcyA9IEpTT04ucGFyc2UocmVxdWVzdChcXFwiaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0Um9vbXNPbj91aWQ9XFxcIiArIGdldEl0ZW0oXFxcInVpZFxcXCIpKSlcXG52YXIgcmVzID0gcmVzLmRhdGFcXG4vL2xvZyhyZXMpXFxudmFyIHNUeXBlID0gZ2V0TXlWYXIoXFxcInNUeXBlXFxcIikgPyBnZXRNeVZhcihcXFwic1R5cGVcXFwiKSA6IFxcXCJsaXZpbmdcXFwiXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IHNUeXBlID09IFxcXCJsaXZpbmdcXFwiID8gJ+KAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9XFxcIiNGQTcyOThcXFwiPuato+WcqOebtOaSrTwvZnJvbnQ+PC9zdHJvbmc+JyA6IFxcXCLmraPlnKjnm7Tmkq1cXFwiLFxcbiAgICB1cmw6ICQoKS5sYXp5UnVsZSgoc1R5cGUpID0+IHtcXG4gICAgICAgIHB1dE15VmFyKFxcXCJzVHlwZVxcXCIsIHNUeXBlID09ICdsaXZpbmcnID8gJ291dGxpbmUnIDogJ2xpdmluZycpO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgfSwgc1R5cGUpLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCJcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBzVHlwZSA9PSBcXFwib3V0bGluZVxcXCIgPyAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj1cXFwiI0ZBNzI5OFxcXCI+5pyq55u05pKtPC9mcm9udD48L3N0cm9uZz4nIDogXFxcIuacquebtOaSrVxcXCIsXFxuICAgIHVybDogJCgpLmxhenlSdWxlKChzVHlwZSkgPT4ge1xcbiAgICAgICAgcHV0TXlWYXIoXFxcInNUeXBlXFxcIiwgc1R5cGUgPT0gJ291dGxpbmUnID8gJ2xpdmluZycgOiAnb3V0bGluZScpO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgfSwgc1R5cGUpLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCJcXG59KVxcbmlmIChzVHlwZSA9PSBcXFwibGl2aW5nXFxcIikge1xcbiAgICBmb3IgKHZhciBpIGluIHJlcykge1xcbiAgICAgICAgdmFyIHRlbXAgPSByZXNbaV1cXG4gICAgICAgIGlmICh0ZW1wLmlzTGl2ZSA9PSAxKSB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRlbXAuY2F0ZWdvcnlOYW1lICsgJ8K3JyArIHRlbXAucm9vbU5hbWUsXFxuICAgICAgICAgICAgICAgIGRlc2M6IHRlbXAucGxhdEZvcm0ucmVwbGFjZSgnaHV5YScsICfomY7niZknKS5yZXBsYWNlKCdkb3V5dScsICfmlpfpsbwnKS5yZXBsYWNlKCdjYycsICfnvZHmmJNDQycpLnJlcGxhY2UoXFxcImJpbGliaWxpXFxcIiwgXFxcIuWTlOWTqeWTlOWTqVxcXCIpICsgJ8K3JyArIHRlbXAub3duZXJOYW1lLFxcbiAgICAgICAgICAgICAgICBpbWc6IHRlbXAucm9vbVBpYyArIFxcXCJAUmVmZXJlcj1cXFwiLFxcbiAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2UvZGV0YWlsPyNpbW1lcnNpdmVUaGVtZSMmcm9vbWlkPVxcXCIgKyB0ZW1wLnJvb21JZCArIFxcXCImcGxhdGZvcm09XFxcIiArIHRlbXAucGxhdEZvcm1cXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcbiAgICB9XFxufSBlbHNlIHtcXG4gICAgZm9yICh2YXIgaSBpbiByZXMpIHtcXG4gICAgICAgIHZhciB0ZW1wID0gcmVzW2ldXFxuICAgICAgICBpZiAodGVtcC5pc0xpdmUgPT0gMCkge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0ZW1wLm93bmVyTmFtZSxcXG4gICAgICAgICAgICAgICAgaW1nOiB0ZW1wLm93bmVySGVhZFBpYyArIFxcXCJAUmVmZXJlcj1cXFwiLFxcbiAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2UvZGV0YWlsPyNpbW1lcnNpdmVUaGVtZSMmcm9vbWlkPVxcXCIgKyB0ZW1wLnJvb21JZCArIFxcXCImcGxhdGZvcm09XFxcIiArIHRlbXAucGxhdEZvcm1cXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcbiAgICB9XFxufVxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcInRleHRfM1wiLFwibmFtZVwiOlwi5YWo6YOo5YiG57G7XCIsXCJwYXRoXCI6XCJuZXdDbGFzc1wiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5hZGRMaXN0ZW5lcignb25DbG9zZScsICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICBjbGVhck15VmFyKCdNeWZsJylcXG4gICAgY2xlYXJNeVZhcignTXlwdCcpXFxufSkpXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IGdldE15VmFyKFxcXCJNeWZsXFxcIiwgXFxcIuadv+Wdl1xcXCIpID09IFxcXCLmnb/lnZdcXFwiID8gXFxcIvCflLTniYjlnZfliIbnsbtcXFwiIDogXFxcIuKaqu+4j+adv+Wdl+WIhuexu1xcXCIsXFxuICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgcHV0TXlWYXIoXFxcIk15ZmxcXFwiLCAn5p2/5Z2XJylcXG4gICAgICAgIGNsZWFyTXlWYXIoJ015ZmwnKVxcbiAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICB9KSxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogZ2V0TXlWYXIoXFxcIk15ZmxcXFwiKSA9PSBcXFwi5bmz5Y+wXFxcIiA/IFxcXCLwn5S05bmz5Y+w5YiG57G7XFxcIiA6IFxcXCLimqrvuI/lubPlj7DliIbnsbtcXFwiLFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgIHB1dE15VmFyKFxcXCJNeWZsXFxcIiwgJ+W5s+WPsCcpXFxuICAgICAgICBjbGVhck15VmFyKCdNeXB0JylcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgfSksXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8yXFxcIlxcbn0pXFxuXFxuLy/lubPlj7DliIbnsbtcXG5pZiAoZ2V0TXlWYXIoXFxcIk15ZmxcXFwiKSkge1xcbiAgICBsZXQgdGl0bGUgPSBnZXRNeVZhcihcXFwiTXlwdFxcXCIpLnJlcGxhY2UoJ2RvdXl1JywgJ+aWl+mxvCcpLnJlcGxhY2UoJ2h1eWEnLCAn6JmO54mZJykucmVwbGFjZSgnYmlsaWJpbGknLCAn5ZOU5ZOpJykucmVwbGFjZSgnY2MnLCAn572R5piTJylcXG4gICAgbGV0IGltZyA9IGdldE15VmFyKFxcXCJNeXB0XFxcIikucmVwbGFjZSgnZG91eXUnLCAnaHR0cHM6Ly9iLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAxODA4MDgvMTUzMzY5ODA0NTEwNTI3Ni5wbmdAUmVmZXJlcj0nKS5yZXBsYWNlKCdodXlhJywgJ2h0dHBzOi8vbWJzMS5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMjAwOTE1LzU4ZDNlMzgwLTgxOGItNDkxYS1hOTczLTFlZjQ3YWE1ZTg3Zi5qcGdAUmVmZXJlcj0nKS5yZXBsYWNlKCdiaWxpYmlsaScsICdodHRwczovL2IuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDE4MTAzMC8xNTQwODg5MDM4MTU5ODYyLnBuZ0BSZWZlcmVyPScpLnJlcGxhY2UoJ2NjJywgJ2h0dHBzOi8vY2MuZnAucHMubmV0ZWFzZS5jb20vZmlsZS82MGEzMWQzZTdmOWQyYTM5MTIwYmVhMDE2THA3WkVlMTAzQFJlZmVyZXI9JylcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi5paX6bG8XFxcIixcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFwiTXlwdFxcXCIsICdkb3V5dScpXFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgfSksXFxuICAgICAgICBpbWc6IFxcXCJodHRwczovL2IuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDE4MDgwOC8xNTMzNjk4MDQ1MTA1Mjc2LnBuZ0BSZWZlcmVyPVxcXCIsXFxuICAgICAgICBjb2xfdHlwZTogXFxcImljb25fcm91bmRfc21hbGxfNFxcXCJcXG4gICAgfSlcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn6JmO54mZJyxcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFwiTXlwdFxcXCIsICdodXlhJylcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICB9KSxcXG4gICAgICAgIGltZzogXFxcImh0dHBzOi8vbWJzMS5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMjAwOTE1LzU4ZDNlMzgwLTgxOGItNDkxYS1hOTczLTFlZjQ3YWE1ZTg3Zi5qcGdAUmVmZXJlcj1cXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kX3NtYWxsXzRcXFwiXFxuICAgIH0pXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIuWTlOWTqVxcXCIsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcIk15cHRcXFwiLCAnYmlsaWJpbGknKVxcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgIH0pLFxcbiAgICAgICAgaW1nOiBcXFwiaHR0cHM6Ly9iLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAxODEwMzAvMTU0MDg4OTAzODE1OTg2Mi5wbmdAUmVmZXJlcj1cXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kX3NtYWxsXzRcXFwiXFxuICAgIH0pXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIue9keaYk1xcXCIsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcIk15cHRcXFwiLCAnY2MnKVxcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgIH0pLFxcbiAgICAgICAgaW1nOiBcXFwiaHR0cHM6Ly9jYy5mcC5wcy5uZXRlYXNlLmNvbS9maWxlLzYwYTMxZDNlN2Y5ZDJhMzkxMjBiZWEwMTZMcDdaRWUxMDNAUmVmZXJlcj1cXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kX3NtYWxsXzRcXFwiXFxuICAgIH0pXFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogXFxcImJpZ19ibGFua19ibG9ja1xcXCJcXG4gICAgfSlcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiBcXFwiYmlnX2JsYW5rX2Jsb2NrXFxcIlxcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJsaW5lXFxcIlxcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJiaWdfYmxhbmtfYmxvY2tcXFwiXFxuICAgIH0pXFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogXFxcImJpZ19ibGFua19ibG9ja1xcXCJcXG4gICAgfSlcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBnZXRNeVZhcihcXFwiTXlwdFxcXCIpID8gdGl0bGUgKyBcXFwi5YiG57G7XFxcIiA6IFxcXCLomY7niZnliIbnsbtcXFwiLFxcbiAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsXFxuICAgICAgICBpbWc6IGdldE15VmFyKFxcXCJNeXB0XFxcIikgPyBpbWcgOiBcXFwiaHR0cHM6Ly9tYnMxLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAyMDA5MTUvNThkM2UzODAtODE4Yi00OTFhLWE5NzMtMWVmNDdhYTVlODdmLmpwZ0BSZWZlcmVyPVxcXCIsXFxuICAgICAgICBjb2xfdHlwZTogXFxcImF2YXRhclxcXCJcXG4gICAgfSlcXG4gICAgaWYgKGdldE15VmFyKFxcXCJNeXB0XFxcIikpIHtcXG4gICAgICAgIHZhciBwdF91cmwgPSBcXFwiaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0QXJlYXM/cGxhdGZvcm09XFxcIiArIGdldE15VmFyKFxcXCJNeXB0XFxcIilcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBwdF91cmwgPSBcXFwiaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0QXJlYXM/cGxhdGZvcm09aHV5YVxcXCJcXG4gICAgfVxcblxcbiAgICB2YXIgcmVzID0gSlNPTi5wYXJzZShyZXF1ZXN0KHB0X3VybCkpLmRhdGE7XFxuICAgIC8vbG9nKHJlcylcXG4gICAgZm9yIChsZXQgaiBpbiByZXMpIHtcXG4gICAgICAgIHZhciB0ZW1wID0gcmVzW2pdXFxuICAgICAgICBmb3IgKGRhdGEgb2YgdGVtcClcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS5hcmVhTmFtZSxcXG4gICAgICAgICAgICAgICAgaW1nOiBkYXRhLmFyZWFQaWMgKyBcXFwiQFJlZmVyZXI9XFxcIixcXG4gICAgICAgICAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9wYWdlL25ld0NsYXNzTGlzdD9wYWdlPWZ5cGFnZSZwbGF0Zm9ybT1cXFwiICsgZGF0YS5wbGF0Zm9ybSArIFxcXCImYXJlYT1cXFwiICsgZGF0YS5hcmVhTmFtZSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kXzRcXFwiXFxuICAgICAgICAgICAgfSlcXG4gICAgfVxcbn0gZWxzZSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogXFxcImJpZ19ibGFua19ibG9ja1xcXCJcXG4gICAgfSlcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiBcXFwiYmlnX2JsYW5rX2Jsb2NrXFxcIlxcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJsaW5lXFxcIlxcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJiaWdfYmxhbmtfYmxvY2tcXFwiXFxuICAgIH0pXFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogXFxcImJpZ19ibGFua19ibG9ja1xcXCJcXG4gICAgfSlcXG5cXG4gICAgLy/niYjlnZfliIbnsbtcXG4gICAgdmFyIHVybCA9ICdodHRwOi8vbGl2ZS55ajEyMTEud29yay9hcGkvbGl2ZS9nZXRBbGxBcmVhcyc7XFxuICAgIHZhciByZXMgPSBKU09OLnBhcnNlKHJlcXVlc3QodXJsKSkuZGF0YTtcXG4gICAgLy9sb2cocmVzKVxcblxcbiAgICB2YXIgdHlwZU5hbWVzID0gW107XFxuICAgIHZhciBiaWdMaXN0ID0gW107XFxuICAgIHZhciBzbWFsbExpc3QgPSBbXTtcXG4gICAgcHV0TXlWYXIoXFxcInR5cGVOYW1lVmFyXFxcIiwgIWdldE15VmFyKCd0eXBlTmFtZVZhcicpID8gJ+WFqOmDqCcgOiBnZXRNeVZhcigndHlwZU5hbWVWYXInKSk7XFxuICAgIHB1dE15VmFyKCdhcmVhJywgJ2FyZWFOYW1lJylcXG4gICAgZm9yIChsZXQgciBvZiByZXMpIHtcXG4gICAgICAgIGZvciAobGV0IHggb2Ygcikge1xcbiAgICAgICAgICAgIGlmICghdHlwZU5hbWVzLmluY2x1ZGVzKHgudHlwZU5hbWUpKSB7XFxuICAgICAgICAgICAgICAgIHR5cGVOYW1lcy5wdXNoKHgudHlwZU5hbWUpO1xcbiAgICAgICAgICAgICAgICBiaWdMaXN0LnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGdldE15VmFyKFxcXCJ0eXBlTmFtZVZhclxcXCIpID09IHgudHlwZU5hbWUgPyAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj1cXFwiI0ZBNzI5OFxcXCI+JyArIHgudHlwZU5hbWUgKyAnPC9mcm9udD48L3N0cm9uZz4nIDogeC50eXBlTmFtZSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgodHlwZU5hbWVWYXIpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwidHlwZU5hbWVWYXJcXFwiLCB0eXBlTmFtZVZhcik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9LCB4LnR5cGVOYW1lKSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCJcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgc21hbGxMaXN0LnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogeC5hcmVhTmFtZSxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9wYWdlL25ld0NsYXNzTGlzdD90eXBlTmFtZT0nICsgeC50eXBlTmFtZSArICcmYXJlYU5hbWU9JyArIHguYXJlYU5hbWUgKyBcXFwiJnBhZ2U9ZnlwYWdlXFxcIixcXG4gICAgICAgICAgICAgICAgaW1nOiB4LmFyZWFQaWMgKyBcXFwiQFJlZmVyZXI9XFxcIixcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kXzRcXFwiLFxcbiAgICAgICAgICAgICAgICB0eXBlTmFtZTogeC50eXBlTmFtZVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgIH1cXG5cXG4gICAgYmlnTGlzdC51bnNoaWZ0KHtcXG4gICAgICAgIHRpdGxlOiBnZXRNeVZhcihcXFwidHlwZU5hbWVWYXJcXFwiKSA9PSAn5YWo6YOoJyA/ICfigJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPVxcXCIjRkE3Mjk4XFxcIj7lhajpg6g8L2Zyb250Pjwvc3Ryb25nPicgOiAn5YWo6YOoJyxcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgodHlwZU5hbWVWYXIpID0+IHtcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFwidHlwZU5hbWVWYXJcXFwiLCB0eXBlTmFtZVZhcik7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICB9LCAn5YWo6YOoJyksXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiXFxuICAgIH0pXFxuICAgIGQgPSBkLmNvbmNhdChiaWdMaXN0KTtcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiBcXFwiYmlnX2JsYW5rX2Jsb2NrXFxcIlxcbiAgICB9KVxcblxcbiAgICAvL2xvZyhnZXRNeVZhcigndHlwZU5hbWVWYXInKSlcXG4gICAgaWYgKGdldE15VmFyKCd0eXBlTmFtZVZhcicpID09ICflhajpg6gnKSB7XFxuICAgICAgICBkID0gZC5jb25jYXQoc21hbGxMaXN0KTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGQgPSBkLmNvbmNhdChzbWFsbExpc3QuZmlsdGVyKHMgPT4gcy50eXBlTmFtZSA9PSBnZXRNeVZhcigndHlwZU5hbWVWYXInKSkpO1xcbiAgICB9XFxufVxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzJcIixcIm5hbWVcIjpcIuaAu+WIl+ihqFwiLFwicGF0aFwiOlwibmV3Q2xhc3NMaXN0XCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbmFkZExpc3RlbmVyKCdvbkNsb3NlJywgJC50b1N0cmluZygoKSA9PiB7XFxuICAgIGNsZWFyTXlWYXIoJ015ZnJvJylcXG59KSlcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgIGxldCB0aXRsZSA9IGdldE15VmFyKFxcXCJNeWZyb1xcXCIpLnJlcGxhY2UoJ2RvdXl1JywgJ+aWl+mxvCcpLnJlcGxhY2UoJ2h1eWEnLCAn6JmO54mZJykucmVwbGFjZSgnYmlsaWJpbGknLCAn5ZOU5ZOpJykucmVwbGFjZSgnY2MnLCAn572R5piTJylcXG4gICAgbGV0IGltZyA9IGdldE15VmFyKFxcXCJNeWZyb1xcXCIpLnJlcGxhY2UoJ2RvdXl1JywgJ2h0dHBzOi8vYi5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMTgwODA4LzE1MzM2OTgwNDUxMDUyNzYucG5nQFJlZmVyZXI9JykucmVwbGFjZSgnaHV5YScsICdodHRwczovL21iczEuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDIwMDkxNS81OGQzZTM4MC04MThiLTQ5MWEtYTk3My0xZWY0N2FhNWU4N2YuanBnQFJlZmVyZXI9JykucmVwbGFjZSgnYmlsaWJpbGknLCAnaHR0cHM6Ly9iLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAxODEwMzAvMTU0MDg4OTAzODE1OTg2Mi5wbmdAUmVmZXJlcj0nKS5yZXBsYWNlKCdjYycsICdodHRwczovL2NjLmZwLnBzLm5ldGVhc2UuY29tL2ZpbGUvNjBhMzFkM2U3ZjlkMmEzOTEyMGJlYTAxNkxwN1pFZTEwM0BSZWZlcmVyPScpXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogZ2V0TXlWYXIoXFxcIk15ZnJvXFxcIikgPT0gJycgPyAn5YiH5o2i5bmz5Y+wJyA6IHRpdGxlICsgJ+W5s+WPsCcsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgY2xlYXJNeVZhcihcXFwiTXlmcm9cXFwiKVxcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgIH0pLFxcbiAgICAgICAgaW1nOiBnZXRNeVZhcihcXFwiTXlmcm9cXFwiKSA9PSAnJyA/ICdodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8vbWVzc3kvNS5zdmdAUmVmZXJlcj0nIDogaW1nLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiXFxuICAgIH0pXFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIuaWl+mxvFxcXCIsXFxuICAgICAgICBpbWc6IFxcXCJodHRwczovL2IuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDE4MDgwOC8xNTMzNjk4MDQ1MTA1Mjc2LnBuZ0BSZWZlcmVyPVxcXCIsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIHB1dE15VmFyKFxcXCJNeWZyb1xcXCIsICdkb3V5dScpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgfSksXFxuICAgICAgICDCoGNvbF90eXBlOiBcXFwiaWNvbl9yb3VuZF9zbWFsbF80XFxcIixcXG4gICAgfSlcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi6JmO54mZXFxcIixcXG4gICAgICAgIGltZzogXFxcImh0dHBzOi8vbWJzMS5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMjAwOTE1LzU4ZDNlMzgwLTgxOGItNDkxYS1hOTczLTFlZjQ3YWE1ZTg3Zi5qcGdAUmVmZXJlcj1cXFwiLFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFwiTXlmcm9cXFwiLCAnaHV5YScpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgfSksXFxuICAgICAgICDCoGNvbF90eXBlOiBcXFwiaWNvbl9yb3VuZF9zbWFsbF80XFxcIixcXG4gICAgfSlcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi5ZOU5ZOpXFxcIixcXG4gICAgICAgIGltZzogXFxcImh0dHBzOi8vYi5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMTgxMDMwLzE1NDA4ODkwMzgxNTk4NjIucG5nQFJlZmVyZXI9XFxcIixcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcIk15ZnJvXFxcIiwgJ2JpbGliaWxpJyk7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICB9KSxcXG4gICAgICAgIMKgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kX3NtYWxsXzRcXFwiLFxcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLnvZHmmJNcXFwiLFxcbiAgICAgICAgaW1nOiBcXFwiaHR0cHM6Ly9jYy5mcC5wcy5uZXRlYXNlLmNvbS9maWxlLzYwYTMxZDNlN2Y5ZDJhMzkxMjBiZWEwMTZMcDdaRWUxMDNAUmVmZXJlcj1cXFwiLFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFwiTXlmcm9cXFwiLCAnY2MnKTtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgIH0pLFxcbiAgICAgICAgwqBjb2xfdHlwZTogXFxcImljb25fcm91bmRfc21hbGxfNFxcXCIsXFxuICAgIH0pXFxufVxcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiBcXFwibGluZVxcXCJcXG59KVxcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiBcXFwiYmlnX2JsYW5rX2Jsb2NrXFxcIlxcbn0pXFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6IFxcXCJiaWdfYmxhbmtfYmxvY2tcXFwiXFxufSlcXG5cXG5sZXQgem9uZyA9ICdodHRwOi8vbGl2ZS55ajEyMTEud29yay9hcGkvbGl2ZS9nZXRSZWNvbW1lbmRCeUFyZWFBbGw/YXJlYVR5cGU9JyArIGdldFBhcmFtKFxcXCJ0eXBlTmFtZVxcXCIpICsgJyZhcmVhPScgKyBnZXRQYXJhbShcXFwiYXJlYU5hbWVcXFwiKSArICcmcGFnZT0nICsgZ2V0UGFyYW0oXFxcInBhZ2VcXFwiKVxcblxcbmxldCB6ZiA9IFxcXCJodHRwOi8vbGl2ZS55ajEyMTEud29yay9hcGkvbGl2ZS9nZXRSZWNvbW1lbmRCeVBsYXRmb3JtQXJlYT9wbGF0Zm9ybT1cXFwiICsgZ2V0TXlWYXIoXFxcIk15ZnJvXFxcIikgKyBcXFwiJmFyZWE9XFxcIiArIGdldFBhcmFtKFxcXCJhcmVhTmFtZVxcXCIpICsgXFxcIiZwYWdlPVxcXCIgKyBnZXRQYXJhbShcXFwicGFnZVxcXCIpICsgXFxcIiZzaXplPTIwXFxcIlxcblxcbmxldCBwaW4gPSBcXFwiaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0UmVjb21tZW5kQnlQbGF0Zm9ybUFyZWFcXFwiICsgTVlfVVJMLnJlcGxhY2UoXFxcImhpa2VyOi8vcGFnZS9uZXdDbGFzc0xpc3RcXFwiLCBcXFwiXFxcIikgKyBcXFwiJnBhZ2U9XFxcIiArIGdldFBhcmFtKFxcXCJwYWdlXFxcIikgKyBcXFwiJnNpemU9MjBcXFwiXFxuLy9sb2cocGluKVxcblxcbmxldCBwZiA9IFxcXCJodHRwOi8vbGl2ZS55ajEyMTEud29yay9hcGkvbGl2ZS9nZXRSZWNvbW1lbmRCeVBsYXRmb3JtQXJlYT9wbGF0Zm9ybT1cXFwiICsgZ2V0TXlWYXIoXFxcIk15ZnJvXFxcIikgKyBcXFwiJmFyZWE9XFxcIiArIGdldE15VmFyKFxcXCJhcmVhXFxcIikgKyBcXFwiJnBhZ2U9XFxcIiArIGdldFBhcmFtKFxcXCJwYWdlXFxcIikgKyBcXFwiJnNpemU9MjBcXFwiXFxuXFxudHJ5IHtcXG4gICAgbGV0IGFyZWEgPSBwaW4ubWF0Y2goL2FyZWE9KC4qPykmLylbMV1cXG4gICAgLy9sb2coYXJlYSlcXG4gICAgcHV0TXlWYXIoXFxcImFyZWFcXFwiLCBhcmVhKVxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgdmFyIGFyZWEgPSAnJ1xcbn1cXG5pZiAoYXJlYSA9PSAnJykge1xcbiAgICBpZiAoZ2V0TXlWYXIoXFxcIk15ZnJvXFxcIikpIHtcXG4gICAgICAgIHZhciB1cmwgPSB6ZlxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIHVybCA9IHpvbmdcXG4gICAgfVxcbn0gZWxzZSB7XFxuICAgIGlmIChnZXRNeVZhcihcXFwiTXlmcm9cXFwiKSkge1xcbiAgICAgICAgdmFyIHVybCA9IHBmXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB2YXIgdXJsID0gcGluXFxuICAgIH1cXG59XFxuXFxudHJ5IHtcXG4gICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocmVxdWVzdCh1cmwpKS5kYXRhXFxuICAgIGlmIChyZXMgPT0gJycpIHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6ICc8YnI+JyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCdcXG4gICAgICAgIH0pXFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiAnPGJyPicsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxuICAgICAgICB9KVxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICBkZXNjOiAn5pqC5peg5oi/6Ze0XFxcXG5cXFxcbuivt+WIh+aNouW5s+WPsOingueciycsXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG5cXG4gICAgZm9yIChkYXRhIG9mIHJlcykge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZGF0YS5jYXRlZ29yeU5hbWUgKyAnwrcnICsgZGF0YS5yb29tTmFtZSxcXG4gICAgICAgICAgICBkZXNjOiBkYXRhLnBsYXRGb3JtLnJlcGxhY2UoJ2h1eWEnLCAn6JmO54mZJykucmVwbGFjZSgnZG91eXUnLCAn5paX6bG8JykucmVwbGFjZSgnY2MnLCAn572R5piTQ0MnKS5yZXBsYWNlKFxcXCJiaWxpYmlsaVxcXCIsIFxcXCLlk5Tlk6nlk5Tlk6lcXFwiKSArICfCtycgKyBkYXRhLm93bmVyTmFtZSxcXG4gICAgICAgICAgICBpbWc6IChkYXRhLnJvb21QaWMuc3RhcnRzV2l0aCgnLycpID8gJ2h0dHBzOicgKyBkYXRhLnJvb21QaWMgOiBkYXRhLnJvb21QaWMpICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9wYWdlL2RldGFpbD8jaW1tZXJzaXZlVGhlbWUjJnJvb21pZD1cXFwiICsgZGF0YS5yb29tSWQgKyBcXFwiJnBsYXRmb3JtPVxcXCIgKyBkYXRhLnBsYXRGb3JtXFxuICAgICAgICB9KVxcbiAgICB9XFxufSBjYXRjaCAoZSkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6ICc8YnI+JyxcXG4gICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0J1xcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6ICc8YnI+JyxcXG4gICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0J1xcbiAgICB9KTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGRlc2M6ICfmmoLml6DmiL/pl7RcXFxcblxcXFxu6K+35YiH5o2i5bmz5Y+w6KeC55yLJyxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICB9KTtcXG59XFxuc2V0UmVzdWx0KGQpO1wifV0iLCJpY29uIjoiaHR0cHM6Ly9pbWcuYW5mZW5zaS5jb20vdXBsb2FkLzIwMjItMy8yMDIyMzEyMTE3MTc0OTk0LnBuZyIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment