Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@GithubApp@@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6ImJvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJmgyJiZUZXh0IiwidGl0bGUiOiJHaXRodWJBcHBAIiwiYXV0aG9yIjoiUjrkuI3opoHkv67mlLnlsI/nqIvluo/lkI3vvIzlj6/og73kvJrmiqXplJkiLCJ1cmwiOiJoaWtlcjovL2VtcHR5IyMiLCJ2ZXJzaW9uIjoyMDI0MDcxMiwiY29sX3R5cGUiOiJtb3ZpZV8zIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ0b29sIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG52YXIgZCA9IFtdXG5cbnZhciDmm7TmlrAgPSAyNCAvLyjlsI/ml7Yp5o+Q6YaS5qOA5rWL5pu05paw6Ze06ZqU5pe26Ze0XG52YXIg6Ze06ZqUID0gY29uZmlnLumXtOmalFxuXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+a3u+WKoCcsIHt9KSkucnVsZSlcblxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9kYXRhJywge30pKS5ydWxlKVxuXG4vLyDorr7nva7ljZXlh7vmk43kvZzmmK/ov5vlhaXkuoznuqfpobXpnaLov5jmmK/mjpLluo9cbnZhciBjbGlja19hY3Rpb24gPSBnZXRNeVZhcignY2xpY2tfYWN0aW9uJywgJ2NsaWNrJylcblxuaWYgKOmXtOmalCA+PSA4ICl7XG52YXIgdXBkYXRlO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS91cGxvYWQnLCB7fSkpLnJ1bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgeWRhdGEgPSBmZXRjaChcImh0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwXCIse3RpbWVvdXQ6MjAyM30pXG4gICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZSA9ICBiYXRjaHVwbG9hZCh5ZGF0YSwgJ0dpdGh1YkFwcCcpXG52YXIgcj0kLnJlcXVpcmUoXCJwdXRcIilcbmV2YWxQcml2YXRlSlMoJ3E3SnFYcmVIWmZVWFhzMzZFYkF4eVNrZXhPRFlqemtPNzZIdWhyekZXR1VuVDRPUzJ3NmYxcmp2NkxOVHdkb2xsb0Q0QXNQVW85VVFKSFB3S2MwM3FBPT0nKVxuci5wdXQocHV0dXJsLHtcbiAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwiY29udGVudC10eXBlXCI6IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9LS0ke2JvdW5kYXJ5fVwiXG4gICAgfVxufSwge1xuICAgIGM6IHVwZGF0ZSxcbn0pXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge31cbn1cblxuZC5wdXNoKHtcbiAgICBjb2xfdHlwZTogJ2lucHV0JyxcbiAgICB0aXRsZTogJ/CfjbMnLFxuICAgIGRlc2M6ICfmkJzntKJBcHAnLFxuICAgIHVybDogJ3B1dE15VmFyKFwiZmlsdGVyQXBwV29yZFwiLCBpbnB1dCk7IHJlZnJlc2hQYWdlKCk7XCJoaWtlcjovL2VtcHR5XCInLFxufSlcblxuZnVuY3Rpb24gY29tcGFyZUFycmF5cyhhcnIxLCBhcnIyKSB7XG4gICAgbGV0IGRpZmZlcmVudEluZGljZXMgPSBbXVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyMi5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoIWFycjEuaW5jbHVkZXMoYXJyMltpXSkpIHtcbiAgICAgICAgICAgIGRpZmZlcmVudEluZGljZXMucHVzaChpKVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkaWZmZXJlbnRJbmRpY2VzXG59XG5cbnZhciBkYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKVxuLy9sb2coZGF0YSlcbnZhciB2ZXJzaW9uID0gZ2V0SXRlbSgndicpLnNwbGl0KCfwn5SlJylcbnZhciBhcHB2cyA9IFtdXG5cbmlmIChNWV9QQUdFID09IDEpIHtcbiAgICBkLnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOlxuICAgICAgICAgICAgICAgIOmXtOmalCA8IOabtOaWsCA/ICfigJzigJzigJ3igJ0nICsgJ1xcdOKamSDmo4DmtYvmm7TmlrAg4pqZJy5ib2xkKCkgOiAn4oCc4oCc4oCd4oCdJyArICdcXHTimpkg5qOA5rWL5pu05pawIOKamScuYm9sZCgpLmZvbnRjb2xvcignI0ZGMDBGRicpLFxuICAgICAgICAgICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaWNvbl9zZWFyY2g2JyxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl8yX3JvdW5kJyxcbiAgICAgICAgICAgIHVybDpcbiAgICAgICAgICAgICAgICAnaGlrZXI6Ly9lbXB0eScgK1xuICAgICAgICAgICAgICAgICQoJycpLmxhenlSdWxlKFxuICAgICAgICAgICAgICAgICAgICAoZGF0YSwgdmVyc2lvbiwgY29tcGFyZUFycmF5cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1cmxzID0gW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgVXJscyA9IGRhdGEubWFwKChpKSA9PiBpLnNwbGl0KCfwn5SlJylbMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVXJscy5mb3JFYWNoKCh1KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHMucHVzaCh7IHVybDogdSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZzID0gYmYodXJscykubWFwKChoKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBkZmgoaCwgJ2JvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJmgyJiZUZXh0JylcbiAgfSBjYXRjaCAoZSkge1xuICAgIFxuICAgIHJldHVybiBwZGZoKGgsICdib2R5JiYjcmVwby1jb250ZW50LXBqYXgtY29udGFpbmVyJiZoMiYmVGV4dCcpXG4gICAgICAgXG4gIH1cbn0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByID0gY29tcGFyZUFycmF5cyh2ZXJzaW9uLCB2cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IHIuam9pbign8J+UpScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHYgPSB2cy5qb2luKCfwn5SlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodi5pbmNsdWRlcygn8J+UpfCflKUnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiAndG9hc3Q6Ly/mo4DmtYvlpLHotKXvvIzor7fph43or5UnXG4gICAgLy8g5qOA5rWL5aSx6LSl77yM5a6a5L2N5aSx6LSlYXBw77yM6I635Y+WYXBw55qE5ZCN5a2X5ZKM5L2N572uXG4gICAgdmFyIGYgPSBbXVxuICAgIHZzLm1hcCgoZWxlLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoZWxlID09IFwiXCIpIHtcbiAgICAgICAgICAgIGYucHVzaChkYXRhW2luZGV4XS5zcGxpdChcIvCflKVcIilbMF0gKyBgKCR7aW5kZXggKyAxfSlgKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIHRvYXN05o+Q56S65pyJ5ZOq5LqbYXBwKOW4puS9jee9rinmo4DmtYvlpLHotKXkuoZcbiAgICBmID0gZi5qb2luKFwiLCBcIik7XG4gICAgcmV0dXJuIFwidG9hc3Q6Ly/mo4DmtYvlpLHotKU6IOOAkFwiICsgZiArIFwi44CRXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcnNpb24ubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgndicsIHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/liJ3lp4vniYjmnKzlj7fmiJDlip8nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCdzJywgcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ3YnLCB2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5qOA5rWL5pyJJyArIHIubGVuZ3RoICsgJ+S4quabtOaWsH4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/msqHmnInmlbDmja5+J1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgICBjb21wYXJlQXJyYXlzXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgJ1xcdOKamSDmm7TlpJrlip/og70g4pqZJy5ib2xkKCksXG4gICAgICAgICAgICBpbWc6ICdoaWtlcjovL2ltYWdlcy9pY29uX21lbnU2JyxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl8yX3JvdW5kJyxcbiAgICAgICAgICAgIHVybDogJChcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICflr7zlhaXliIbkuqvmlbDmja4nLFxuICAgICAgICAgICAgICAgICAgICAn5YiG5Lqr5Y6f5aeL5pWw5o2uJyxcbiAgICAgICAgICAgICAgICAgICAgJ+WIhuS6q+S6keWJqui0tOadvycsXG4gICAgICAgICAgICAgICAgICAgICfliIbkuqvkupHlj6Pku6QnLFxuICAgICAgICAgICAgICAgICAgICAn5ouJ5Y+W4pqg77iP5LqR5pWw5o2uJyxcbiAgICAgICAgICAgICAgICAgICAgJ+WQiOW5tuacrOWcsOWSjOS6kScsXG4gICAgICAgICAgICAgICAgICAgICfmgaLlpI3pu5jorqTmlbDmja4nLFxuICAgICAgICAgICAgICAgICAgICAn5riF56m65pys5Zyw5pWw5o2uJyxcbiAgICAgICAgICAgICAgICAgICAgJ+e8lui+kei/nOeoi+aVsOaNricsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICApLnNlbGVjdCgobWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gJ+WvvOWFpeWIhuS6q+aVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJycsICfmlK/mjIHljp/lp4vmlbDmja7lkozkupHliarotLTmnb/liIbkuqsnKS5pbnB1dCgocnVsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9iYXRjaEltP3J1bGU9JyArIHJ1bGUpKS5ydWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoJ0dpdGh1YkFwcOWIhuS6qyMjJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGJhc2U2NERlY29kZShwYXJzZVBhc3RlKGlucHV0LnNwbGl0KCcjI1xcbicpWzFdKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuc3RhcnRzV2l0aCgnR2l0aHViQXBw5YiG5LqrLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBiYXNlNjREZWNvZGUocGFyc2VQYXN0ZShpbnB1dC5zcGxpdCgnXFxuJylbMV0uc3BsaXQoJ0AnKVswXSkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhdGNoSW1wb3J0KGlucHV0LCBydWxlKVxuICAgICAgICAgICAgICAgICAgICB9LCAnR2l0aHViQXBwJylcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICflkIjlubbmnKzlnLDlkozkupEnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2JhdGNoSW0nLCB7fSkpLnJ1bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgeWRhdGEgPSBmZXRjaChcImh0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwXCIse3RpbWVvdXQ6MjAyM30pXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmF0Y2hJbXBvcnQoeWRhdGEsICdHaXRodWJBcHAnKVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ojrflj5blpLHotKXvvIzor7fph43or5UnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfmi4nlj5bimqDvuI/kupHmlbDmja4nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9kYXRhJywge30pKS5ydWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHlkYXRhID0gSlNPTi5wYXJzZShmZXRjaChcImh0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwXCIse3RpbWVvdXQ6MjAyM30pKVxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsIEpTT04uc3RyaW5naWZ5KHlkYXRhKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ojrflj5blpLHotKXvvIzor7fph43or5UnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfmgaLlpI3pu5jorqTmlbDmja4nKSB7XG4vL2V2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZGF0YScsIHt9KSkucnVsZSlcbndyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLCBKU09OLnN0cmluZ2lmeShtZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICB9ZWxzZSBpZiAoaW5wdXQgPT0gJ+a4heepuuacrOWcsOaVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsICcnKVxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gJ+e8lui+kei/nOeoi+aVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJycsICflr4bnoIFcXG7kuI3nn6XpgZPor7fnlZnnqbonKS5pbnB1dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3dlYjovL2h0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwOicgKyBpbnB1dFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAkKCfnoa7lrprlr7zlh7rvvJ8nKS5jb25maXJtKCh0eXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gJ+WIhuS6q+S6keWJqui0tOadvycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9ICdHaXRodWJBcHDliIbkuqsjI1xcbicgKyBzaGFyZVBhc3RlKGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeShjb25maWcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAn5YiG5Lqr5LqR5Y+j5LukJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0dpdGh1YkFwcOWIhuS6qyzlpI3liLblkI7miZPlvIDova/ku7bljbPlj6/lr7zlhaVcXG4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVQYXN0ZShiYXNlNjRFbmNvZGUoSlNPTi5zdHJpbmdpZnkoY29uZmlnKSkpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BpbXBvcnQ9anM6ZXZhbChKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9wYWdlL2Nsb3VkP3J1bGU9R2l0aHViQXBwXCIpKS5ydWxlKSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnN0cmluZ2lmeShjb25maWcpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2NvcHk6Ly8nICsgZGF0YVxuICAgICAgICAgICAgICAgICAgICB9LCBpbnB1dClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LG1kYXRhKSxcbiAgICAgICAgfVxuICAgIClcbn1cblxuZC5wdXNoKHtcbiAgICBjb2xfdHlwZTogJ2JpZ19ibGFua19ibG9jaycsXG59KVxuXG52YXIgc3MgPSBnZXRJdGVtKCdzJykuc3BsaXQoJ/CflKUnKVxuZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGZpbHRlckFwcFdvcmQgPSBnZXRNeVZhcignZmlsdGVyQXBwV29yZCcsICcnKVxuICAgIHZhciBBcHAgPSBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMF1cbiAgICB2YXIgVXJscyA9IGRhdGFbaV0uc3BsaXQoJ/CflKUnKVsxXVxuICAgIHZhciBJbWcgPSBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMl1cblxuYXBwdnMucHVzaChBcHArJ++8muOAkCcrdmVyc2lvbltpXSsn44CRJylcblxuICAgIGlmIChBcHAudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlckFwcFdvcmQudG9Mb3dlckNhc2UoKSkgPT0gLTEpIHtcbiAgICAgICAgY29udGludWVcbiAgICB9XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHNzLmluZGV4T2YoaS50b1N0cmluZygpKSA9PSAnLTEnID8gQXBwIDogJ+KAnOKAnOKAneKAnScgKyBBcHAuZm9udGNvbG9yKCcjRkYwMEZGJyksXG4gICAgICAgIGRlc2M6IGkgKyAxLFxuICAgICAgICBpbWc6IEltZyxcbiAgICAgICAgLy8gdXJsOiBVcmxzLFxuICAgICAgICAvLyB1cmw6IFwidG9hc3Q6Ly/lh4blpIfmjpLluo/mi4lcIixcblx0XHQvLyDljZXlh7vmk43kvZw6IOi/lOWbnnVybHPvvIxcblx0XHQvLyDmjpLluo/mk43kvZw6IOagueaNruiOt+WPlueahOenu+WKqEFwcOS9jee9rm1vdmVfaW5kZXjlkozngrnlh7vopoHmlL7nva7kvY3nva5yZXBsYWNlX2luZGV477yM6L+b6KGM5a+5R2l0aHViQXBwLnR4dOeahOWGheWuuei/m+ihjOmHjeaWsOaOkuW6j+W5tumHjeaWsOWGmeWbnlxuICAgICAgICB1cmw6XG4gICAgICAgICAgICBjbGlja19hY3Rpb24gPT0gJ2NsaWNrJ1xuICAgICAgICAgICAgICAgID8gKFVybHMuZW5kc1dpdGgoJ3RhZ3MnKT8gXCJ3ZWI6Ly9cIiArIFVybHMgOiBVcmxzKVxuICAgICAgICAgICAgICAgIDogJCgpLmxhenlSdWxlKChyZXBsYWNlX2luZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NsaWNrX2FjdGlvbicsICdjbGljaycpXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IG1vdmVfaW5kZXggPSBnZXRNeVZhcignbW92ZV9pbmRleCcsIDApXG4gICAgICAgICAgICAgICAgICAgICAvLyAkLmxvZygn56e75Yqo55qE57Si5byV5Li6OiAnICsgbW92ZV9pbmRleClcbiAgICAgICAgICAgICAgICAgICAgIC8vICQubG9nKCfmm7/mjaLnmoTkvY3nva7kuLo6ICcgKyByZXBsYWNlX2luZGV4KVxuICAgICAgICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcpKVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb25maWcuc3BsaWNlKG1vdmVfaW5kZXgsIDEpWzBdXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnNwbGljZShyZXBsYWNlX2luZGV4LCAwLCBlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLCBKU09OLnN0cmluZ2lmeShjb25maWcpKVxuICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mjpLluo/lrozmr5UnXG4gICAgICAgICAgICAgICAgICB9LCBpKSxcbiAgICAgICAgY29sX3R5cGU6ICdpY29uXzRfY2FyZCcsXG4gICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICBzczogc3MsXG4gICAgICAgICAgICBpOiBpLFxuICAgICAgICAgICAgbG9uZ0NsaWNrOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJyDnvJYg6L6RICcsXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCgnaGlrZXI6Ly9lbXB0eScpLnJ1bGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQYWdlVGl0bGUoJ+e8lui+kUdpdGh1YkFwcCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZCA9IFtdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WQjeensCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaVBcHDlkI3lrZcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCduYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZGF0YVtpXS5zcGxpdCgn8J+UpScpWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogLTEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXCJwdXRNeVZhcignbmEnLGlucHV0KVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WcsOWdgCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaVnaXRodWIgcmVsZWFzZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdyZWxlYXNlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcInB1dE15VmFyKCdyZWxlYXNlJyxpbnB1dClcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflm77moIcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiAn6L6T5YWl5Zu+5qCH5Zyw5Z2AJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignaWNvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcInB1dE15VmFyKCdpY28nLGlucHV0KVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyAn56Gu6K6k5L+u5pS5Jy5mb250Y29sb3IoJyNGRjAwRkYnKS5iaWcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ25hJykgPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WQjeWtl+S4jeiDveS4uuepun4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ3JlbGVhc2UnKSA9PSAnJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhL15odHRwc1xcOlxcL1xcL2dpdGh1YlxcLmNvbVxcLy4qP1xcLyhyZWxlYXNlc3x0YWdzKS8udGVzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdyZWxlYXNlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v6K+36L6T5YWl5q2j56Gu55qE5Zyw5Z2AfidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNeVZhcignbmEnLCAnJykgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ/CflKUnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdyZWxlYXNlJywgJycpLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ/CflKUnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdpY28nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtpXSA9IGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqffidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHsgbGluZVZpc2libGU6IGZhbHNlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcg56e7IOS9jSAnLFxuICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLCBtb3ZlX2luZGV4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIOiuvue9ruWNleWHu+WKqOS9nOS4uuaOkuW6j++8jOiOt+WPluimgeenu+WKqEFwcOeahOS9jee9rm1vdmVfaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignY2xpY2tfYWN0aW9uJywgJ21vdmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdtb3ZlX2luZGV4JywgbW92ZV9pbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gJCgnJywgJ+ivt+i+k+WFpeenu+WKqOWIsOesrOWHoOS9jVxcbjHkuLrnva7pobYsJytkYXRhLmxlbmd0aCsn5Li6572u5bqVJykuaW5wdXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIChkYXRhLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB2YXIgdGVtcCA9IGRhdGFbaV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIGlmIChpbnB1dCAtIDEgPCBpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgZGF0YS5zcGxpY2UoaW5wdXQgLSAxLCAwLCB0ZW1wKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGRhdGEuc3BsaWNlKGkgKyAxLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBkYXRhLnNwbGljZShpbnB1dCwgMCwgdGVtcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBkYXRhLnNwbGljZShpLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgd3JpdGVGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgcmV0dXJuICd0b2FzdDovL+enu+S9jeaIkOWKn34nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyApXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcg5YigIOmZpCAnLFxuICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5zcGxpY2UoaSwgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnIOa3uyDliqAgJyxcbiAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICAo5re75YqgLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JyArIOa3u+WKoFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIOa3u+WKoCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcgJyArIChpICsgMSkgKyAnICcsXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKChkYXRhLHZlcnNpb24saSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGFpID0gSlNPTi5zdHJpbmdpZnkoW2RhdGFbaV1dKVxuICAgICAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ+eJiOacrOWPt++8micgKyB2ZXJzaW9uW2ldKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiY29weTovL1wiICsgZGF0YWlcbiAgICAgICAgICAgICAgICAgICAgfSxkYXRhLHZlcnNpb24saSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgfSlcbn1cblxuZC5wdXNoKHtcbiAgICB0aXRsZTogJ+a3u+WKoCcsXG4gICAgaW1nOiAnaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL0lLV2hSLnBuZycsXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScgKyDmt7vliqAsXG4gICAgY29sX3R5cGU6ICdpY29uXzRfY2FyZCcsXG4gICAgZXh0cmE6IHtcbiAgICAgICAgaTogZGF0YS5sZW5ndGgsXG4gICAgICAgIGxvbmdDbGljazogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAn5bm46L+Q5pelJyxcbiAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBudW1iID0gMSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMxKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L2g55qE5bm46L+Q5pel5piv44CQJyArIG51bWIgKyAn44CR5pelJ1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxufSlcblxuICAgICAgLy9sb2coYXBwdnMuam9pbignXFxuJykpXG5cbnNldFJlc3VsdChkKSIsInNlYXJjaF91cmwiOiIiLCJncm91cCI6IuW3peWFtyIsInNlYXJjaEZpbmQiOiIiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6ImpzOlxuYWRkTGlzdGVuZXIoXCJvbkNsb3NlXCIsICQudG9TdHJpbmcoKCkgPT4ge1xuICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxufSkpO1xudmFyIGQgPSBbXVxudmFyIGh0bWwgPSBmZXRjaChNWV9VUkwpXG5cbnZhciBzcyA9IE1ZX1BBUkFNUy5zc1xudmFyIGkgPSBNWV9QQVJBTVMuaVxuICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBzcy5pbmRleE9mKGkudG9TdHJpbmcoKSlcbiAgICAgICAgICAgICAgICAgICAgaWYoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHNzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcy5sZW5ndGg8MSlcbiAgICAgICAgICAgICAgICAgICAgICAge3ZhciBzID0gJyd9ZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgICAgdmFyIHMgPSBzcy5qb2luKCfwn5SlJyl9ICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgncycsIHMpXG4gICAgICAgICAgICAgICAgICAgICB9XG5cbnZhciBhdXRob3IgPSBwZGZoKGh0bWwsJ2JvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJi5tYi1tZC0yJiZUZXh0JylcbnZhciBpbWcgPSBwZGZoKGh0bWwsJ2JvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJi5tYi1tZC0yJiZpbWcmJnNyYycpXG52YXIgdmVyc2lvbiA9IHBkZmgoaHRtbCwnYm9keSYmZGl2W2RhdGEtaHBjXSYmc2VjdGlvbiYmaDImJlRleHQnKVxuZC5wdXNoKHtcbiAgICB0aXRsZTogYXV0aG9yLFxuICAgIGRlc2M6ICdMYXN077yaJyArIHZlcnNpb24uZm9udGNvbG9yKCcjRkY2Njk5JykuYmlnKCkgKyAnXFx0XFx0XFx0XFx0JyxcbiAgICBpbWc6IGltZyxcbiAgICB1cmw6IE1ZX1VSTCxcbiAgICBjb2xfdHlwZTogJ2F2YXRhcidcbn0pXG5cbnZhciBjb250ZW50ID0gcGRmaChodG1sLCBcImJvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJi5jb2wtbWQtOSYmZGl2W2RhdGEtcGpheD10cnVlXSYmVGV4dFwiKTtcbmQucHVzaCh7XG4gICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgY29udGVudC5mb250Y29sb3IoJyM0NTU1QjYnKS5zbWFsbCgpLFxuICAgIGRlc2M6ICcnLFxuICAgIHBpY191cmw6ICcnLFxuICAgIHVybDogTVlfVVJMICsgJCgnJykucnVsZSgoaHRtbCk9PntcbiAgICAgICAgICAgICAgdmFyIGQgPSBbXVxuICAgICAgICAgICAgICB2YXIgY29udGVudCA9IHBkZmgoaHRtbCwgXCJib2R5JiZkaXZbZGF0YS1ocGNdJiZzZWN0aW9uJiYuY29sLW1kLTkmJmRpdltkYXRhLXBqYXg9dHJ1ZV0mJkh0bWxcIikucmVwbGFjZSgvPFxccyooPyEobGl8cClcXHMqXFwvPylbXj5dKz4vZ20sICcnKTtcbiAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBjb250ZW50LmZvbnRjb2xvcignIzQ1NTVCNicpLnNtYWxsKCksXG4gICAgICAgICAgICAgICAgIGRlc2M6ICcnLFxuICAgICAgICAgICAgICAgICBwaWNfdXJsOiAnJyxcbiAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXRSZXN1bHQoZClcbiAgICAgICAgICAgICB9LGh0bWwpLFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xufSk7XG5cbnZhciB1cmwgPSBwZChodG1sLCdib2R5JiZkaXZbZGF0YS1ocGNdJiZzZWN0aW9uJiZkZXRhaWxzOmhhcyhpbmNsdWRlLWZyYWdtZW50KSYmaW5jbHVkZS1mcmFnbWVudCYmc3JjfHxkYXRhLWRlZmVycmVkLXNyYycpXG4vL2xvZyh1cmwpXG52YXIgbGlzdCA9IHBkZmEoZmV0Y2godXJsKSwndWwmJmxpJylcbmxpc3QuZm9yRWFjaChpdGVtPT57XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgcGRmaChpdGVtLCcuVHJ1bmNhdGUtdGV4dCYmVGV4dCcpLmZvbnRjb2xvcignIzNhNzM1NicpLFxuICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sJy5mbGV4LWp1c3RpZnktZW5kJiZUZXh0JykucmVwbGFjZSgvKFxcZHs0fSkvLCfwn5OGJDEnKS5yZXBsYWNlKC9aJC8sJycpLnJlcGxhY2UoJ1QnLCfij7AnKSxcbiAgICAgICAgdXJsOiBwZChpdGVtLCdhJiZocmVmJykgKyAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHsgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgcmV0dXJuICdkb3dubG9hZDovLycgKyBpbnB1dFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcbiAgIH0pXG59KVxuXG5zZXRSZXN1bHQoZCkiLCJzZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsInNkZXRhaWxfZmluZF9ydWxlIjoiIiwidWEiOiJtb2JpbGUiLCJwcmVSdWxlIjoibGV0IHRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygpXG5sZXQg5pe26Ze06Ze06ZqUID0gdGltZS1nZXRJdGVtKCd0aW1lJywgbmV3IERhdGUoKS5nZXRUaW1lKCkudG9TdHJpbmcoKSlcblxuc2V0SXRlbSgndGltZScsIHRpbWUpO1xuXG5sZXQg6Ze06ZqU5aSp5pWwID0gTWF0aC5mbG9vcijml7bpl7Tpl7TpmpQgLyAoMjQgKiA2MCAqIDYwICogMTAwMCkpLnRvU3RyaW5nKCk7XG5sZXQg6Ze06ZqU5pe25pWwID0gTWF0aC5mbG9vcijml7bpl7Tpl7TpmpQgLyAoNjAgKiA2MCAqIDEwMDApKS50b1N0cmluZygpO1xubGV0IOmXtOmalOWIhuaVsCA9IE1hdGguZmxvb3Io5pe26Ze06Ze06ZqUIC8gKCA2MCAqIDEwMDApKS50b1N0cmluZygpO1xubGV0IOmXtOmalOenkuaVsCA9IE1hdGguZmxvb3Io5pe26Ze06Ze06ZqUIC8gMTAwMCkudG9TdHJpbmcoKTtcblxuc2V0SXRlbSgn6Ze06ZqUJywg6Ze06ZqU5pe25pWwKVxuXG5pbml0Q29uZmlnKHtcbiAgICDpl7TpmpQ6IGdldEl0ZW0oJ+mXtOmalCcsICcwJylcbn0pOyIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpu5jorqTmlbDmja5cIixcInBhdGhcIjpcImRhdGFcIixcInJ1bGVcIjpcIi8v6L+c56iL5pWw5o2uXFxuLypcXG7lr4bnoIHkuLrjgJDilonilonilonilonilonilonjgJHor7fnlKjlsI/liIDliK7lvIDojrflj5ZcXG4qL1xcbi8v6buY6K6k5pWw5o2uXFxuICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtZGF0YSA9ICAgICAgICAgICAgICAgW1xcXCJTaW5nYm948J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9TYWdlck5ldC9zaW5nLWJveC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUthUEUucG5nXFxcIixcXFwiS2FyaW5n8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9LYXJpbmdYL2thcmluZy9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvejdEV1IucG5nXFxcIixcXFwiTmVrb2JvePCflKVodHRwczovL2dpdGh1Yi5jb20vTWF0c3VyaURheW8vTmVrb0JveEZvckFuZHJvaWQvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pyeDRSLndlYnBcXFwiLFxcXCJTYWdlck5ldPCflKVodHRwczovL2dpdGh1Yi5jb20vZHloa3dvbmcvc2FnZXJuZXQvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL0lGY3pMLmpwZ1xcXCIsXFxcIuiZjuWFlfCflKVodHRwczovL2dpdGh1Yi5jb20veGNoYWNoYTIwLXBvbHkxMzA1L2h1c2kvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pyRnpXLnBuZ1xcXCIsXFxcIkhpZGRpZnnwn5SlaHR0cHM6Ly9naXRodWIuY29tL2hpZGRpZnkvaGlkZGlmeS1uZXh0L3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96cFlCSi5wbmdcXFwiLFxcXCJGbENsYXNo8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9jaGVuMDgyMDkvZmxjbGFzaC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUY4V0QucG5nXFxcIixcXFwiQ01GQfCflKVodHRwczovL2dpdGh1Yi5jb20vbWV0YWN1YmV4L2NsYXNobWV0YWZvcmFuZHJvaWQvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL0lLUE9VLnBuZ1xcXCIsXFxcIlN1cmZib2FyZPCflKVodHRwczovL2dpdGh1Yi5jb20vZ2V0c3VyZmJvYXJkL3N1cmZib2FyZC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvenJyRkoucG5nXFxcIixcXFwiVjJyYXlOR/CflKVodHRwczovL2dpdGh1Yi5jb20vMmR1c3QvdjJyYXlORy9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUsyajQucG5nXFxcIixcXFwiUHJveHlQaW7wn5SlaHR0cHM6Ly9naXRodWIuY29tL3dhbmdob25nZW5waW4vbmV0d29ya19wcm94eV9mbHV0dGVyL3JlbGVhc2Vz8J+UpWh0dHBzOi8vdGh1bWJzbmFwLmNvbS9pL21zR1pZekFULnBuZ1xcXCIsXFxcIuWFg+iQneWNnPCflKVodHRwczovL2dpdGh1Yi5jb20va2F0YW5hLW9mZmljaWFsL3NwYXRjaC11cGRhdGUvcmVsZWFzZXPwn5SlaHR0cHM6Ly90aHVtYnNuYXAuY29tL2kvdmdDaHZxYVUuanBnXFxcIixcXFwiUmVxYWJsZfCflKVodHRwczovL2dpdGh1Yi5jb20vcmVxYWJsZS9yZXFhYmxlLWFwcC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUtCbmgud2VicFxcXCIsXFxcIuaIkeeahOeUteinhvCflKVodHRwczovL2dpdGh1Yi5jb20vbGl6b25neWluZy9teS10di9yZWxlYXNlc/CflKVodHRwczovL3BsYXktbGguZ29vZ2xldXNlcmNvbnRlbnQuY29tL2pKeUJ2aHJpMWsxVEg4TVhaYXRRNmFCclI3STJIN3hVZE1pbkRfSHpHVTZKUU5sY1NZVUtMdDZDU2Nsdkk2R3BGV2RmPXcyNDAtaDQ4MFxcXCIsXFxcIlNoaXp1a3Xwn5SlaHR0cHM6Ly9naXRodWIuY29tL1Jpa2thQXBwcy9TaGl6dWt1L3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JS0Q3di53ZWJwXFxcIixcXFwiRmFpckVtYWls8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9tNjZiL2ZhaXJlbWFpbC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSTZGUFgucG5nXFxcIl0gICAgICAgICAgICAgICAgICAgICAgICAgXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkupHlj6Pku6RcIixcInBhdGhcIjpcImNsb3VkXCIsXCJydWxlXCI6XCJldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2JhdGNoSW0/cnVsZT1HaXRodWJBcHBcXFwiKSkucnVsZSk7XFxubGV0IGNvbnRlbnQgPSBiYXNlNjREZWNvZGUocGFyc2VQYXN0ZShpbnB1dCkpO1xcbmJhdGNoSW1wb3J0KGNvbnRlbnQsIFxcXCJHaXRodWJBcHBcXFwiKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWIhuS6q+WvvOWFpVwiLFwicGF0aFwiOlwiYmF0Y2hJbVwiLFwicnVsZVwiOlwiZnVuY3Rpb24gYmF0Y2hJbXBvcnQoaW5wdXQsIHJ1bGUpIHtcXG4gICAgaW5wdXQgPSBpbnB1dC50cmltKCk7XFxuICAgIGlmIChpbnB1dC5sZW5ndGggPCAzICkge1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ivt+i+k+WFpeato+ehrueahOagvOW8j1xcXCJcXG4gICAgfVxcbiAgICBsZXQgaW0gPSBKU09OLnBhcnNlKGlucHV0KTtcXG4gICAgaWYgKGltID09IG51bGwgfHwgaW0ubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ivt+i+k+WFpeato+ehrueahOagvOW8j1xcXCJcXG4gICAgfVxcbiAgICBcXG4gICAgbGV0IGNvbmZpZyA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JykgfHwgJ1tdJyk7XFxuICAgIGxldCBjb3VudCA9IDA7XFxuICAgIGxldCBhbGwgPSBjb25maWcubWFwKGl0ID0+IGl0LnNwbGl0KCfwn5SlJylbMV0udG9Mb3dlckNhc2UoKSk7XFxuICAgIGZvciAobGV0IGkgb2YgaW0pIHtcXG4gICAgICAgIGlmIChhbGwuaW5kZXhPZihpLnNwbGl0KCfwn5SlJylbMV0udG9Mb3dlckNhc2UoKSkgPj0gMCkge1xcbiAgICAgICAgICAgIC8v6YeN5aSN55qE5LiN6KaBXFxuICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICB9XFxuICAgICAgICBjb3VudCsrO1xcbiAgICAgICAgY29uZmlnLnB1c2goaSlcXG4gICAgfVxcbiAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JywgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XFxuICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7Llr7zlhaVcXFwiICsgY291bnQgKyBcXFwi5LiqQXBwXFxcIjtcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmt7vliqBBcHBcIixcInBhdGhcIjpcIua3u+WKoFwiLFwicnVsZVwiOlwidmFyIOa3u+WKoCA9ICQoJycpLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIHZhciBpbmRleCA9IE1ZX1BBUkFNUy5pXFxuICAgICAgICAgICAgc2V0UGFnZVRpdGxlKCfmt7vliqBHaXRodWJBcHAnKVxcbiAgICAgICAgICAgIHZhciBkID0gW11cXG4gICAgICAgICAgICBkLnB1c2goXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5ZCN56ewJyxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaVBcHDlkI3lrZcnLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCduYW1lJylcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKCduYW1lJywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCduYW1lJyxpbnB1dClcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflnLDlnYAnLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogJ+i+k+WFpWdpdGh1YiByZWxlYXNlcycsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ3JlbGVhc2VzJylcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKCdyZWxlYXNlcycsICcnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogLTEsXFxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IFxcXCJwdXRNeVZhcigncmVsZWFzZXMnLGlucHV0KVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WbvuaghycsXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiAn6L6T5YWl5Zu+5qCH5Zyw5Z2AJyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignaWNvbicpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcignaWNvbicsICcnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogLTEsXFxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IFxcXCJwdXRNeVZhcignaWNvbicsaW5wdXQpXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArICfnoa7orqTmt7vliqAnLmZvbnRjb2xvcignI0ZGMDBGRicpLmJpZygpLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRNeVZhcignbmFtZScpID09ICcnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lkI3lrZfkuI3og73kuLrnqbp+J1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdyZWxlYXNlcycpID09ICcnIHx8XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICEvXmh0dHBzXFxcXDpcXFxcL1xcXFwvZ2l0aHViXFxcXC5jb21cXFxcLy4qP1xcXFwvKHJlbGVhc2VzJHx0YWdzJCkvLnRlc3QoZ2V0TXlWYXIoJ3JlbGVhc2VzJykpXFxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/or7fovpPlhaXmraPnoa7nmoTlnLDlnYB+572R5Z2A5ZCO57yA5rKh5pyJXFxcIi9cXFwiJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCduYW1lJywgJycpICtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICfwn5SlJyArXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNeVZhcigncmVsZWFzZXMnLCAnJykudG9Mb3dlckNhc2UoKSArXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn8J+UpScgK1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ2ljb24nLCAnJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0ciA9IGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RyKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IFtpdGVtXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsIEpTT04uc3RyaW5naWZ5KGxpc3QpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL0FwcOa3u+WKoOaIkOWKn34nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IEpTT04ucGFyc2Uoc3RyKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbGVhc2UgPSBsaXN0Lm1hcCgoaSkgPT4gaS5zcGxpdCgn8J+UpScpWzFdLnRvTG93ZXJDYXNlKCkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVsZWFzZS5pbmRleE9mKGl0ZW0uc3BsaXQoJ/CflKUnKVsxXSkgPT0gJy0xJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgbGlzdC5wdXNoKGl0ZW0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGlzdC51bnNoaWZ0KGl0ZW0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5zcGxpY2UoaW5kZXgsIDAsIGl0ZW0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZShcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkobGlzdClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly9BcHDmt7vliqDmiJDlip9+J1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5pyJ55u45ZCMQXBwfidcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0saW5kZXgpLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7IGxpbmVWaXNpYmxlOiBmYWxzZSB9LFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyAn54K55oiR6aKE6KeIJy5mb250Y29sb3IoJyMwMERBQzQnKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYTogeyBsaW5lVmlzaWJsZTogZmFsc2UgfSxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGdldE15VmFyKCduYW1lJywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgaW1nOiBnZXRNeVZhcignaWNvbicsICcnKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignaWNvbicpXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignbmFtZScpXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcigncmVsZWFzZXMnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpY29uXzRfY2FyZCcsXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICApXFxuICAgICAgICAgICAgc2V0UmVzdWx0KGQpXFxuICAgICAgICB9KVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5LiK5Lyg5LqR56uvXCIsXCJwYXRoXCI6XCJ1cGxvYWRcIixcInJ1bGVcIjpcImZ1bmN0aW9uIGJhdGNodXBsb2FkKGlucHV0LCBydWxlKSB7XFxuICAgIGlucHV0ID0gaW5wdXQudHJpbSgpO1xcbiAgICBsZXQgaW0gPSBKU09OLnBhcnNlKGlucHV0KTsgICBcXG4gICAgbGV0IGNvbmZpZyA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JykgfHwgJ1tdJyk7XFxuICAgIGxldCBjb3VudCA9IDA7XFxuICAgIGxldCBhbGwgPSBpbS5tYXAoaXQgPT4gaXQuc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKTtcXG4gICAgZm9yIChsZXQgaSBvZiBjb25maWcpIHtcXG4gICAgICAgIGlmIChhbGwuaW5kZXhPZihpLnNwbGl0KCfwn5SlJylbMV0udG9Mb3dlckNhc2UoKSkgPj0gMCkge1xcbiAgICAgICAgICAgIC8v6YeN5aSN55qE5LiN6KaBXFxuICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICB9XFxuICAgICAgICBjb3VudCsrO1xcbiAgICAgICAgaW0ucHVzaChpKVxcbiAgICB9XFxuICAgIGxldCBoZWkgPSBcXFwiaHR0cHM6Ly9naXRodWIuY29tL2hzc2t5Ym95L25wYWNoL3JlbGVhc2Vz8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9oc3NreWJveS9ucGF0Y2gvcmVsZWFzZXPwn5SlaHR0cHM6Ly9naXRodWIuY29tL2NldWlsaXNhL3BpeGl2LXNsaW5reS9yZWxlYXNlc1xcXCJcXG4gICAgbGV0IGpqID0gaGVpLnNwbGl0KFxcXCLwn5SlXFxcIikubWFwKGo9PmoudG9Mb3dlckNhc2UoKSlcXG4gICAgaW0gPSBpbS5maWx0ZXIoaXRlbSA9PiBqai5pbmRleE9mKGl0ZW0uc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKSA9PT0gLTEpO1xcbiAgICBpbSA9IGltLmZpbHRlcihpdGVtID0+ICEvXFxcXC8kLy50ZXN0KGl0ZW0uc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKSk7XFxuICAgIHZhciB1cGRhdGUgPSBKU09OLnN0cmluZ2lmeShpbSlcXG4gICAgcmV0dXJuIHVwZGF0ZVxcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIs6x5aSn5L2s5YaZ55qEcHV0XCIsXCJwYXRoXCI6XCJwdXRcIixcInJ1bGVcIjpcIihmdW5jdGlvbiAoKSB7XFxuICBmdW5jdGlvbiBnZW5lcmF0ZUJvdW5kYXJ5KHByZWZpeCwgcmFuZG9tTGVuZ3RoKSB7XFxuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xcbiAgICBsZXQgYm91bmRhcnkgPSAnJztcXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5kb21MZW5ndGg7IGkrKykgeyAvLyDmoLnmja7mjIflrprplb/luqbnlJ/miJDpmo/mnLrpg6jliIZcXG4gICAgICBib3VuZGFyeSArPSBjaGFyYWN0ZXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCkpO1xcbiAgICB9XFxuICAgIHJldHVybiBgJHtwcmVmaXh9JHtib3VuZGFyeX1gOyAvLyDov5Tlm57lrozmlbTnmoTovrnnlYzlrZfnrKbkuLJcXG4gIH1cXG4gIGZ1bmN0aW9uIHB1dFByb3RvY29sKHVybCwgaW5oZWFkLCBib2R5LCBib3Vub2JqKSB7XFxuICAgIGxldCBkZWZvYmogPSB7XFxuICAgICAgcHJlZml4OiAnLS1XZWJLaXRGb3JtQm91bmRhcnknLFxcbiAgICAgIG51bTogMTYsXFxuICAgICAgZmlsbDogWzQsIDQsIDJdXFxuICAgIH1cXG4gICAgaWYgKGJvdW5vYmogPT0gdW5kZWZpbmVkKSB7XFxuICAgICAgYm91bm9iaiA9IGRlZm9iajtcXG4gICAgfSBlbHNlIHtcXG4gICAgICBib3Vub2JqID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmb2JqLCBib3Vub2JqKTtcXG4gICAgfVxcbiAgICAvL2xvZyhib3Vub2JqKVxcblxcbiAgICB2YXIgZmlsbCA9IGJvdW5vYmouZmlsbC5tYXAoY291bnQgPT4gJy0nLnJlcGVhdChjb3VudCkpO1xcbiAgICAvL2xvZyhmaWxsKVxcbiAgICB2YXIgYm91bmRhcnkgPSBnZW5lcmF0ZUJvdW5kYXJ5KGJvdW5vYmoucHJlZml4LCBib3Vub2JqLm51bSk7XFxuICAgIGxldCBkZWZoZWFkID0ge1xcbiAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogTU9CSUxFX1VBLFxcbiAgICAgIH0sXFxuICAgICAgbWV0aG9kOiAnUFVUJyxcXG4gICAgfVxcbiAgICBpZiAoaW5oZWFkLmhlYWRlcnMgJiYgaW5oZWFkLmhlYWRlcnMuaGFzT3duUHJvcGVydHkoXFxcImNvbnRlbnQtdHlwZVxcXCIpKSB7XFxuICAgICAgaW5oZWFkLmhlYWRlcnNbXFxcImNvbnRlbnQtdHlwZVxcXCJdID0gaW5oZWFkLmhlYWRlcnNbXFxcImNvbnRlbnQtdHlwZVxcXCJdLnJlcGxhY2UoXFxcIiR7Ym91bmRhcnl9XFxcIiwgYm91bmRhcnkpO1xcbiAgICB9XFxuICAgIHZhciBoZWFkID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmaGVhZCwgaW5oZWFkKTtcXG4gICAgaWYgKGJvZHkpIHtcXG4gICAgICBoZWFkLmhlYWRlcnMuYm9keSA9IE9iamVjdC5rZXlzKGJvZHkpLm1hcChrZXkgPT4ge1xcbiAgICAgICAgcmV0dXJuIGAke2ZpbGxbMF19JHtib3VuZGFyeX1cXFxcclxcXFxuQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVxcXCIke2tleX1cXFwiXFxcXHJcXFxcblxcXFxyXFxcXG4ke2JvZHlba2V5XX1gXFxuICAgICAgfSkuam9pbignXFxcXHJcXFxcbicpICsgYFxcXFxyXFxcXG4ke2ZpbGxbMV19JHtib3VuZGFyeX0ke2ZpbGxbMl19XFxcXHJcXFxcbmBcXG4gICAgfVxcbiAgICAvL2xvZyhoZWFkKVxcbiAgICByZXR1cm4gZmV0Y2godXJsLCBoZWFkKTtcXG4gIH1cXG4gICQuZXhwb3J0cz17XFxuICAgICBnZXRCb3VuZGFyeTpnZW5lcmF0ZUJvdW5kYXJ5LFxcbiAgICAgcHV0OnB1dFByb3RvY29sXFxuICB9XFxufSkoKVwifV0iLCJpY29uIjoiaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pwbnB2LndlYnAiLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment