Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥更多-英雄联盟@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS6jOe6p1wiLFwicGF0aFwiOlwiZGV0YWlsXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbnZhciByZXMgPSBKU09OLnBhcnNlKHJlcXVlc3QoXFxcImh0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL2dldFJvb21JbmZvP3VpZD1cXFwiICsgZ2V0SXRlbShcXFwidWlkXFxcIikgKyBcXFwiJnBsYXRmb3JtPVxcXCIgKyBnZXRQYXJhbShcXFwicGxhdGZvcm1cXFwiKSArIFxcXCImcm9vbUlkPVxcXCIgKyBnZXRQYXJhbShcXFwicm9vbWlkXFxcIikpKVxcbi8v6L+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+w6KeC55yLJyxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICB9KTtcXG59XFxuc2V0UmVzdWx0KGQpO1wifV0sXCJzYXZlZFwiOmZhbHNlLFwidGl0bGVcIjpcIkp1c3RMaXZl55u05pKtXCIsXCJ2ZXJzaW9uXCI6MCxcInVybFwiOlwiaGlrZXI6Ly9wYWdlL25ld0NsYXNzTGlzdD90eXBlTmFtZT3nvZHmuLjnq57mioAmYXJlYU5hbWU96Iux6ZuE6IGU55ufJnBhZ2U9ZnlwYWdlXCIsXCJjb2xfdHlwZVwiOlwibW92aWVfMlwiLFwiZmluZF9ydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbmFkZExpc3RlbmVyKCdvbkNsb3NlJywgJC50b1N0cmluZygoKSA9PiB7XFxuICAgIGNsZWFyTXlWYXIoJ015ZnJvJylcXG59KSlcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgIGxldCB0aXRsZSA9IGdldE15VmFyKFxcXCJNeWZyb1xcXCIpLnJlcGxhY2UoJ2RvdXl1JywgJ+aWl+mxvCcpLnJlcGxhY2UoJ2h1eWEnLCAn6JmO54mZJykucmVwbGFjZSgnYmlsaWJpbGknLCAn5ZOU5ZOpJykucmVwbGFjZSgnY2MnLCAn572R5piTJylcXG4gICAgbGV0IGltZyA9IGdldE15VmFyKFxcXCJNeWZyb1xcXCIpLnJlcGxhY2UoJ2RvdXl1JywgJ2h0dHBzOi8vYi5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMTgwODA4LzE1MzM2OTgwNDUxMDUyNzYucG5nQFJlZmVyZXI9JykucmVwbGFjZSgnaHV5YScsICdodHRwczovL21iczEuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDIwMDkxNS81OGQzZTM4MC04MThiLTQ5MWEtYTk3My0xZWY0N2FhNWU4N2YuanBnQFJlZmVyZXI9JykucmVwbGFjZSgnYmlsaWJpbGknLCAnaHR0cHM6Ly9iLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAxODEwMzAvMTU0MDg4OTAzODE1OTg2Mi5wbmdAUmVmZXJlcj0nKS5yZXBsYWNlKCdjYycsICdodHRwczovL2NjLmZwLnBzLm5ldGVhc2UuY29tL2ZpbGUvNjBhMzFkM2U3ZjlkMmEzOTEyMGJlYTAxNkxwN1pFZTEwM0BSZWZlcmVyPScpXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogZ2V0TXlWYXIoXFxcIk15ZnJvXFxcIikgPT0gJycgPyAn5YiH5o2i5bmz5Y+wJyA6IHRpdGxlICsgJ+W5s+WPsCcsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgY2xlYXJNeVZhcihcXFwiTXlmcm9cXFwiKVxcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgIH0pLFxcbiAgICAgICAgaW1nOiBnZXRNeVZhcihcXFwiTXlmcm9cXFwiKSA9PSAnJyA/ICdodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8vbWVzc3kvNS5zdmdAUmVmZXJlcj0nIDogaW1nLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiXFxuICAgIH0pXFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIuaWl+mxvFxcXCIsXFxuICAgICAgICBpbWc6IFxcXCJodHRwczovL2IuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDE4MDgwOC8xNTMzNjk4MDQ1MTA1Mjc2LnBuZ0BSZWZlcmVyPVxcXCIsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIHB1dE15VmFyKFxcXCJNeWZyb1xcXCIsICdkb3V5dScpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgfSksXFxuICAgICAgICDCoGNvbF90eXBlOiBcXFwiaWNvbl9yb3VuZF9zbWFsbF80XFxcIixcXG4gICAgfSlcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi6JmO54mZXFxcIixcXG4gICAgICAgIGltZzogXFxcImh0dHBzOi8vbWJzMS5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMjAwOTE1LzU4ZDNlMzgwLTgxOGItNDkxYS1hOTczLTFlZjQ3YWE1ZTg3Zi5qcGdAUmVmZXJlcj1cXFwiLFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFwiTXlmcm9cXFwiLCAnaHV5YScpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgfSksXFxuICAgICAgICDCoGNvbF90eXBlOiBcXFwiaWNvbl9yb3VuZF9zbWFsbF80XFxcIixcXG4gICAgfSlcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi5ZOU5ZOpXFxcIixcXG4gICAgICAgIGltZzogXFxcImh0dHBzOi8vYi5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMTgxMDMwLzE1NDA4ODkwMzgxNTk4NjIucG5nQFJlZmVyZXI9XFxcIixcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcIk15ZnJvXFxcIiwgJ2JpbGliaWxpJyk7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICB9KSxcXG4gICAgICAgIMKgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kX3NtYWxsXzRcXFwiLFxcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLnvZHmmJNcXFwiLFxcbiAgICAgICAgaW1nOiBcXFwiaHR0cHM6Ly9jYy5mcC5wcy5uZXRlYXNlLmNvbS9maWxlLzYwYTMxZDNlN2Y5ZDJhMzkxMjBiZWEwMTZMcDdaRWUxMDNAUmVmZXJlcj1cXFwiLFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFwiTXlmcm9cXFwiLCAnY2MnKTtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgIH0pLFxcbiAgICAgICAgwqBjb2xfdHlwZTogXFxcImljb25fcm91bmRfc21hbGxfNFxcXCIsXFxuICAgIH0pXFxufVxcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiBcXFwibGluZVxcXCJcXG59KVxcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiBcXFwiYmlnX2JsYW5rX2Jsb2NrXFxcIlxcbn0pXFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6IFxcXCJiaWdfYmxhbmtfYmxvY2tcXFwiXFxufSlcXG5cXG5sZXQgem9uZyA9ICdodHRwOi8vbGl2ZS55ajEyMTEud29yay9hcGkvbGl2ZS9nZXRSZWNvbW1lbmRCeUFyZWFBbGw/YXJlYVR5cGU9JyArIGdldFBhcmFtKFxcXCJ0eXBlTmFtZVxcXCIpICsgJyZhcmVhPScgKyBnZXRQYXJhbShcXFwiYXJlYU5hbWVcXFwiKSArICcmcGFnZT0nICsgZ2V0UGFyYW0oXFxcInBhZ2VcXFwiKVxcblxcbmxldCB6ZiA9IFxcXCJodHRwOi8vbGl2ZS55ajEyMTEud29yay9hcGkvbGl2ZS9nZXRSZWNvbW1lbmRCeVBsYXRmb3JtQXJlYT9wbGF0Zm9ybT1cXFwiICsgZ2V0TXlWYXIoXFxcIk15ZnJvXFxcIikgKyBcXFwiJmFyZWE9XFxcIiArIGdldFBhcmFtKFxcXCJhcmVhTmFtZVxcXCIpICsgXFxcIiZwYWdlPVxcXCIgKyBnZXRQYXJhbShcXFwicGFnZVxcXCIpICsgXFxcIiZzaXplPTIwXFxcIlxcblxcbmxldCBwaW4gPSBcXFwiaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0UmVjb21tZW5kQnlQbGF0Zm9ybUFyZWFcXFwiICsgTVlfVVJMLnJlcGxhY2UoXFxcImhpa2VyOi8vcGFnZS9uZXdDbGFzc0xpc3RcXFwiLCBcXFwiXFxcIikgKyBcXFwiJnBhZ2U9XFxcIiArIGdldFBhcmFtKFxcXCJwYWdlXFxcIikgKyBcXFwiJnNpemU9MjBcXFwiXFxuLy9sb2cocGluKVxcblxcbmxldCBwZiA9IFxcXCJodHRwOi8vbGl2ZS55ajEyMTEud29yay9hcGkvbGl2ZS9nZXRSZWNvbW1lbmRCeVBsYXRmb3JtQXJlYT9wbGF0Zm9ybT1cXFwiICsgZ2V0TXlWYXIoXFxcIk15ZnJvXFxcIikgKyBcXFwiJmFyZWE9XFxcIiArIGdldE15VmFyKFxcXCJhcmVhXFxcIikgKyBcXFwiJnBhZ2U9XFxcIiArIGdldFBhcmFtKFxcXCJwYWdlXFxcIikgKyBcXFwiJnNpemU9MjBcXFwiXFxuXFxudHJ5IHtcXG4gICAgbGV0IGFyZWEgPSBwaW4ubWF0Y2goL2FyZWE9KC4qPykmLylbMV1cXG4gICAgLy9sb2coYXJlYSlcXG4gICAgcHV0TXlWYXIoXFxcImFyZWFcXFwiLCBhcmVhKVxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgdmFyIGFyZWEgPSAnJ1xcbn1cXG5pZiAoYXJlYSA9PSAnJykge1xcbiAgICBpZiAoZ2V0TXlWYXIoXFxcIk15ZnJvXFxcIikpIHtcXG4gICAgICAgIHZhciB1cmwgPSB6ZlxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIHVybCA9IHpvbmdcXG4gICAgfVxcbn0gZWxzZSB7XFxuICAgIGlmIChnZXRNeVZhcihcXFwiTXlmcm9cXFwiKSkge1xcbiAgICAgICAgdmFyIHVybCA9IHBmXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB2YXIgdXJsID0gcGluXFxuICAgIH1cXG59XFxuXFxudHJ5IHtcXG4gICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocmVxdWVzdCh1cmwpKS5kYXRhXFxuICAgIGlmIChyZXMgPT0gJycpIHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6ICc8YnI+JyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCdcXG4gICAgICAgIH0pXFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiAnPGJyPicsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxuICAgICAgICB9KVxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICBkZXNjOiAn5pqC5peg5oi/6Ze0XFxcXG5cXFxcbuivt+WIh+aNouW5s+WPsOingueciycsXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG5cXG4gICAgZm9yIChkYXRhIG9mIHJlcykge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZGF0YS5jYXRlZ29yeU5hbWUgKyAnwrcnICsgZGF0YS5yb29tTmFtZSxcXG4gICAgICAgICAgICBkZXNjOiBkYXRhLnBsYXRGb3JtLnJlcGxhY2UoJ2h1eWEnLCAn6JmO54mZJykucmVwbGFjZSgnZG91eXUnLCAn5paX6bG8JykucmVwbGFjZSgnY2MnLCAn572R5piTQ0MnKS5yZXBsYWNlKFxcXCJiaWxpYmlsaVxcXCIsIFxcXCLlk5Tlk6nlk5Tlk6lcXFwiKSArICfCtycgKyBkYXRhLm93bmVyTmFtZSxcXG4gICAgICAgICAgICBpbWc6IChkYXRhLnJvb21QaWMuc3RhcnRzV2l0aCgnLycpID8gJ2h0dHBzOicgKyBkYXRhLnJvb21QaWMgOiBkYXRhLnJvb21QaWMpICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9wYWdlL2RldGFpbD8jaW1tZXJzaXZlVGhlbWUjJnJvb21pZD1cXFwiICsgZGF0YS5yb29tSWQgKyBcXFwiJnBsYXRmb3JtPVxcXCIgKyBkYXRhLnBsYXRGb3JtXFxuICAgICAgICB9KVxcbiAgICB9XFxufSBjYXRjaCAoZSkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6ICc8YnI+JyxcXG4gICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0J1xcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6ICc8YnI+JyxcXG4gICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0J1xcbiAgICB9KTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGRlc2M6ICfmmoLml6DmiL/pl7RcXFxcblxcXFxu6K+35YiH5o2i5bmz5Y+w6KeC55yLJyxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICB9KTtcXG59XFxuc2V0UmVzdWx0KGQpO1wiLFwiZ3JvdXBcIjpcIjFcIixcInVhXCI6XCJtb2JpbGVcIixcInByZVJ1bGVcIjpcInZhciBhY2NvdW50ID0gZ2V0SXRlbShcXFwiYWNjb3VudFxcXCIsIFxcXCJcXFwiKVxcbnZhciBwYXNzd29yZCA9IGdldEl0ZW0oXFxcInBhc3N3b3JkXFxcIilcXG5pZiAoYWNjb3VudCAhPSBcXFwiXFxcIiAmJiBnZXRJdGVtKFxcXCJ1aWRcXFwiLCBcXFwiXFxcIikgPT0gXFxcIlxcXCIpIHtcXG4gICAgdmFyIGNvb2tpZXMgPSBKU09OLnBhcnNlKHJlcXVlc3QoJ2h0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9sb2dpbicsIHtcXG4gICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAnVXNlci1BZ2VudCc6IFBDX1VBXFxuICAgICAgICB9LFxcbiAgICAgICAgYm9keTogXFxcInVzZXJuYW1lPVxcXCIgKyBhY2NvdW50ICsgXFxcIiZwYXNzd29yZD1cXFwiICsgbWQ1KHBhc3N3b3JkKSxcXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnXFxuICAgIH0pKVxcbiAgICAvL2xvZyhjb29raWVzKVxcbiAgICBpZiAoY29va2llcy5jb2RlID09IDIwMCkge1xcbiAgICAgICAgdG9hc3QoXFxcIueZu+mZhuaIkOWKn1xcXCIpXFxuICAgICAgICBzZXRJdGVtKFxcXCJ1aWRcXFwiLCBjb29raWVzLmRhdGEudWlkKVxcbiAgICAgICAgc2V0SXRlbShcXFwibmlja25hbWVcXFwiLCBjb29raWVzLmRhdGEudXNlck5hbWUpXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB0b2FzdChcXFwi55m76ZmG5aSx6LSl77yM5Y+v6IO95piv55So5oi35ZCN5oiW5a+G56CB5pyJ6K+vXFxcIilcXG4gICAgICAgIHNldEl0ZW0oXFxcIm5pY2tuYW1lXFxcIiwgXFxcIuacqueZu+mZhlxcXCIpXFxuICAgICAgICBzZXRJdGVtKFxcXCJ1aWRcXFwiLCBcXFwiXFxcIilcXG4gICAgfVxcbn1cIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5LqM57qnXFxcIixcXFwicGF0aFxcXCI6XFxcImRldGFpbFxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbnZhciBkID0gW107XFxcXG52YXIgcmVzID0gSlNPTi5wYXJzZShyZXF1ZXN0KFxcXFxcXFwiaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0Um9vbUluZm8/dWlkPVxcXFxcXFwiICsgZ2V0SXRlbShcXFxcXFxcInVpZFxcXFxcXFwiKSArIFxcXFxcXFwiJnBsYXRmb3JtPVxcXFxcXFwiICsgZ2V0UGFyYW0oXFxcXFxcXCJwbGF0Zm9ybVxcXFxcXFwiKSArIFxcXFxcXFwiJnJvb21JZD1cXFxcXFxcIiArIGdldFBhcmFtKFxcXFxcXFwicm9vbWlkXFxcXFxcXCIpKSlcXFxcbi8v6L+Z5Lik5Liq6ZO+5o6l5LiN5ZCMXFxcXG52YXIgcGxheXVybCA9IEpTT04ucGFyc2UocmVxdWVzdChcXFxcXFxcImh0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL2dldFJlYWxVcmw/cGxhdGZvcm09XFxcXFxcXCIgKyBnZXRQYXJhbShcXFxcXFxcInBsYXRmb3JtXFxcXFxcXCIpICsgXFxcXFxcXCImcm9vbUlkPVxcXFxcXFwiICsgZ2V0UGFyYW0oXFxcXFxcXCJyb29taWRcXFxcXFxcIikpKS5kYXRhXFxcXG52YXIgdWlkID0gZ2V0SXRlbShcXFxcXFxcInVpZFxcXFxcXFwiKVxcXFxudmFyIGZvbGxvdyA9IHJlcy5kYXRhLmlzRm9sbG93ZWRcXFxcbnZhciByb29taWQgPSByZXMuZGF0YS5yb29tSWRcXFxcbnZhciBwbGF0Zm9ybSA9IGdldFBhcmFtKFxcXFxcXFwicGxhdGZvcm1cXFxcXFxcIilcXFxcbnN3aXRjaCAocGxhdGZvcm0pIHtcXFxcbiAgICBjYXNlIFxcXFxcXFwiZG91eXVcXFxcXFxcIjpcXFxcbiAgICAgICAgdmFyIHVybCA9IFxcXFxcXFwiaHR0cHM6Ly9tLmRvdXl1LmNvbS9cXFxcXFxcIiArIHJvb21pZFxcXFxuICAgICAgICBicmVha1xcXFxuICAgIGNhc2UgXFxcXFxcXCJiaWxpYmlsaVxcXFxcXFwiOlxcXFxuICAgICAgICB2YXIgdXJsID0gXFxcXFxcXCJodHRwczovL2xpdmUuYmlsaWJpbGkuY29tL2g1L1xcXFxcXFwiICsgcm9vbWlkXFxcXG4gICAgICAgIGJyZWFrXFxcXG4gICAgY2FzZSBcXFxcXFxcImh1eWFcXFxcXFxcIjpcXFxcbiAgICAgICAgdmFyIHVybCA9IFxcXFxcXFwiaHR0cHM6Ly9tLmh1eWEuY29tL1xcXFxcXFwiICsgcm9vbWlkXFxcXG4gICAgICAgIGJyZWFrXFxcXG4gICAgY2FzZSBcXFxcXFxcImNjXFxcXFxcXCI6XFxcXG4gICAgICAgIHZhciB1cmwgPSBcXFxcXFxcImh0dHBzOi8vaDUuY2MuMTYzLmNvbS9jYy9cXFxcXFxcIiArIHJvb21pZFxcXFxuICAgICAgICBicmVha1xcXFxufVxcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogcmVzLmRhdGEucm9vbU5hbWUsXFxcXG4gICAgaW1nOiByZXMuZGF0YS5yb29tUGljICsgXFxcXFxcXCJAUmVmZXJlcj1cXFxcXFxcIixcXFxcbiAgICBkZXNjOiBcXFxcXFxcIuWIhuWMuu+8mlxcXFxcXFwiICsgcmVzLmRhdGEucGxhdEZvcm0ucmVwbGFjZSgnaHV5YScsICfomY7niZknKS5yZXBsYWNlKCdkb3V5dScsICfmlpfpsbwnKS5yZXBsYWNlKCdjYycsICfnvZHmmJNDQycpLnJlcGxhY2UoXFxcXFxcXCJiaWxpYmlsaVxcXFxcXFwiLCBcXFxcXFxcIuWTlOWTqeWTlOWTqVxcXFxcXFwiKSArICfCtycgKyByZXMuZGF0YS5jYXRlZ29yeU5hbWUgKyAocmVzLmRhdGEuaXNMaXZlID09IDEgPyBcXFxcXFxcIlxcXFxcXFxcbueKtuaAge+8muato+WcqOebtOaSrVxcXFxcXFwiIDogXFxcXFxcXCJcXFxcXFxcXG7nirbmgIHvvJrmnKrlvIDmkq1cXFxcXFxcIikgKyBcXFxcXFxcIlxcXFxcXFxcbueCueWHu+S4i+aWueS4u+aSreWktOWDj+i/m+WFpeWumOe9kVxcXFxcXFwiLFxcXFxuICAgIHVybDogcmVzLmRhdGEucm9vbVBpYyxcXFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLFxcXFxuICAgIGV4dHJhOiB7XFxcXG4gICAgICAgIGdyYWRpZW50OiB0cnVlXFxcXG4gICAgfVxcXFxufSlcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6IHJlcy5kYXRhLm93bmVyTmFtZSxcXFxcbiAgICBpbWc6IHJlcy5kYXRhLm93bmVySGVhZFBpYyArIFxcXFxcXFwiQFJlZmVyZXI9XFxcXFxcXCIsXFxcXG4gICAgdXJsOiB1cmwsXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwiaWNvbl8yX3JvdW5kXFxcXFxcXCJcXFxcbn0pXFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiByZXMuZGF0YS5pc0ZvbGxvd2VkID09IDEgPyBcXFxcXFxcIuW3suWFs+azqFxcXFxcXFwiIDogXFxcXFxcXCLmnKrlhbPms6hcXFxcXFxcIixcXFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHVpZCwgcm9vbWlkLCBwbGF0Zm9ybSwgZm9sbG93KSA9PiB7XFxcXG4gICAgICAgIGlmIChmb2xsb3cgPT0gMCkge1xcXFxuICAgICAgICAgICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocmVxdWVzdChcXFxcXFxcImh0dHA6Ly8xMjQuMjIyLjUuMTMxOjgwMTMvYXBpL2xpdmUvZm9sbG93P3BsYXRmb3JtPVxcXFxcXFwiICsgcGxhdGZvcm0gKyBcXFxcXFxcIiZyb29tSWQ9XFxcXFxcXCIgKyByb29taWQgKyBcXFxcXFxcIiZ1aWQ9XFxcXFxcXCIgKyB1aWQpKVxcXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly9cXFxcXFxcIiArIHJlcy5kYXRhXFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICB2YXIgcmVzID0gSlNPTi5wYXJzZShyZXF1ZXN0KFxcXFxcXFwiaHR0cDovLzEyNC4yMjIuNS4xMzE6ODAxMy9hcGkvbGl2ZS91bkZvbGxvdz9wbGF0Zm9ybT1cXFxcXFxcIiArIHBsYXRmb3JtICsgXFxcXFxcXCImcm9vbUlkPVxcXFxcXFwiICsgcm9vbWlkICsgXFxcXFxcXCImdWlkPVxcXFxcXFwiICsgdWlkKSlcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcXFxcbiAgICAgICAgICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8vXFxcXFxcXCIgKyByZXMuZGF0YVxcXFxuICAgICAgICB9XFxcXG4gICAgfSwgdWlkLCByb29taWQsIHBsYXRmb3JtLCBmb2xsb3cpLFxcXFxuICAgIGNvbF90eXBlOiBcXFxcXFxcInRleHRfMlxcXFxcXFwiXFxcXG59KVxcXFxudmFyIG5hbWUgPSB7XFxcXG4gICAgXFxcXFxcXCJPRFxcXFxcXFwiOiBcXFxcXFxcIuWOn+eUu1xcXFxcXFwiLFxcXFxuICAgIFxcXFxcXFwiRkRcXFxcXFxcIjogXFxcXFxcXCLmtYHnlYVcXFxcXFxcIixcXFxcbiAgICBcXFxcXFxcIkxEXFxcXFxcXCI6IFxcXFxcXFwi5qCH5riFXFxcXFxcXCIsXFxcXG4gICAgXFxcXFxcXCJTRFxcXFxcXFwiOiBcXFxcXFxcIumrmOa4hVxcXFxcXFwiLFxcXFxuICAgIFxcXFxcXFwiSERcXFxcXFxcIjogXFxcXFxcXCLotoXmuIVcXFxcXFxcIixcXFxcbiAgICBcXFxcXFxcIjJLXFxcXFxcXCI6IFxcXFxcXFwiMktcXFxcXFxcIixcXFxcbiAgICBcXFxcXFxcIjRLXFxcXFxcXCI6IFxcXFxcXFwiNEtcXFxcXFxcIixcXFxcbiAgICBcXFxcXFxcIkZIRFxcXFxcXFwiOiBcXFxcXFxcIuWFqOmrmOa4hVxcXFxcXFwiLFxcXFxuICAgIFxcXFxcXFwiWExEXFxcXFxcXCI6IFxcXFxcXFwi5p6B6YCfXFxcXFxcXCIsXFxcXG4gICAgXFxcXFxcXCJTUVxcXFxcXFwiOiBcXFxcXFxcIuaZrumAmumfs+i0qFxcXFxcXFwiLFxcXFxuICAgIFxcXFxcXFwiSFFcXFxcXFxcIjogXFxcXFxcXCLpq5jpn7PotKhcXFxcXFxcIlxcXFxufVxcXFxudmFyIHVybHMgPSBbXVxcXFxudmFyIG5hbWVzID0gW11cXFxcbmZvciAodmFyIGtleSBpbiBwbGF5dXJsKSB7XFxcXG4gICAgaWYgKCEvYXl5dWlkfHRvLy50ZXN0KGtleSkpIHtcXFxcbiAgICAgICAgdXJscy5wdXNoKHBsYXl1cmxba2V5XSlcXFxcbiAgICAgICAgbmFtZXMucHVzaChuYW1lW2tleV0pXFxcXG4gICAgfVxcXFxufVxcXFxuZC5wdXNoKHtcXFxcbiAgICBjb2xfdHlwZTogXFxcXFxcXCJsaW5lX2JsYW5rXFxcXFxcXCJcXFxcbn0pXFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiBcXFxcXFxcIumAieaLqeeUu+i0qFxcXFxcXFwiLFxcXFxuICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCIsXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF9jZW50ZXJfMVxcXFxcXFwiXFxcXG59KVxcXFxuZm9yICh2YXIgaSBpbiBuYW1lcykge1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBuYW1lc1tpXSxcXFxcbiAgICAgICAgdXJsOiBwbGF0Zm9ybSA9PSBcXFxcXFxcImRvdXl1XFxcXFxcXCIgPyBKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxcXG4gICAgICAgICAgICBkYW5tdTogJ3dlYjovL2h0dHA6Ly9kb3V5dV9kYW5tdS5kZXYudHlyYW50Zy5jb20vP3JpZD0nICsgcm9vbWlkICsgJyZ2ZXI9MSdcXFxcbiAgICAgICAgfSkgOiB1cmxzW2ldLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0XzJcXFxcXFxcIlxcXFxuICAgIH0pXFxcXG59XFxcXG5zZXRSZXN1bHQoZCk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzJcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5YWz5rOo5YiX6KGoXFxcIixcXFwicGF0aFxcXCI6XFxcImhpc3RvcnlcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG52YXIgZCA9IFtdO1xcXFxuc2V0UGFnZVRpdGxlKFxcXFxcXFwi5YWz5rOoXFxcXFxcXCIpXFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiBnZXRJdGVtKFxcXFxcXFwibmlja25hbWVcXFxcXFxcIiksXFxcXG4gICAgdXJsOiAkKFxcXFxcXFwi5piv5ZCm5rOo6ZSA77yfXFxcXFxcXCIpLmNvbmZpcm0oKCkgPT4ge1xcXFxuICAgICAgICBzZXRJdGVtKFxcXFxcXFwidWlkXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXCIpXFxcXG4gICAgICAgIHNldEl0ZW0oXFxcXFxcXCJuaWNrbmFtZVxcXFxcXFwiLCBcXFxcXFxcIuacqueZu+mZhlxcXFxcXFwiKVxcXFxuICAgICAgICBiYWNrKHRydWUpXFxcXG4gICAgICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8v5rOo6ZSA5oiQ5YqfXFxcXFxcXCJcXFxcbiAgICB9KSxcXFxcbiAgICBpbWc6IFxcXFxcXFwiaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL2tlLzczLnBuZ1xcXFxcXFwiLFxcXFxuICAgIGNvbF90eXBlOiBcXFxcXFxcImF2YXRhclxcXFxcXFwiXFxcXG59KVxcXFxuaWYgKGdldEl0ZW0oXFxcXFxcXCJ1aWRcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIikgPT0gXFxcXFxcXCJcXFxcXFxcIikge1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIGRlc2M6IFxcXFxcXFwi6LSm5Y+3XFxcXFxcXCIsXFxcXG4gICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICBvbkNoYW5nZTogXFxcXFxcXCJzZXRJdGVtKCdhY2NvdW50JyxpbnB1dClcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2VcXFxcbiAgICAgICAgfSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiaW5wdXRcXFxcXFxcIlxcXFxuICAgIH0pXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgZGVzYzogXFxcXFxcXCLlr4bnoIFcXFxcXFxcIixcXFxcbiAgICAgICAgZXh0cmE6IHtcXFxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFxcXFxcInNldEl0ZW0oJ3Bhc3N3b3JkJyxpbnB1dClcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIHRpdGxlVmlzaWJsZTogZmFsc2VcXFxcbiAgICAgICAgfSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiaW5wdXRcXFxcXFxcIlxcXFxuICAgIH0pXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IFxcXFxcXFwi56Gu5a6aXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogJCgpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgIGJhY2soKVxcXFxuICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly/ov5Tlm57oh6rliqjnmbvpmYZcXFxcXFxcIlxcXFxuICAgICAgICB9KSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF9jZW50ZXJfMVxcXFxcXFwiXFxcXG4gICAgfSlcXFxcbn1cXFxcbnZhciByZXMgPSBKU09OLnBhcnNlKHJlcXVlc3QoXFxcXFxcXCJodHRwOi8vbGl2ZS55ajEyMTEud29yay9hcGkvbGl2ZS9nZXRSb29tc09uP3VpZD1cXFxcXFxcIiArIGdldEl0ZW0oXFxcXFxcXCJ1aWRcXFxcXFxcIikpKVxcXFxudmFyIHJlcyA9IHJlcy5kYXRhXFxcXG4vL2xvZyhyZXMpXFxcXG52YXIgc1R5cGUgPSBnZXRNeVZhcihcXFxcXFxcInNUeXBlXFxcXFxcXCIpID8gZ2V0TXlWYXIoXFxcXFxcXCJzVHlwZVxcXFxcXFwiKSA6IFxcXFxcXFwibGl2aW5nXFxcXFxcXCJcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6IHNUeXBlID09IFxcXFxcXFwibGl2aW5nXFxcXFxcXCIgPyAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj1cXFxcXFxcIiNGQTcyOThcXFxcXFxcIj7mraPlnKjnm7Tmkq08L2Zyb250Pjwvc3Ryb25nPicgOiBcXFxcXFxcIuato+WcqOebtOaSrVxcXFxcXFwiLFxcXFxuICAgIHVybDogJCgpLmxhenlSdWxlKChzVHlwZSkgPT4ge1xcXFxuICAgICAgICBwdXRNeVZhcihcXFxcXFxcInNUeXBlXFxcXFxcXCIsIHNUeXBlID09ICdsaXZpbmcnID8gJ291dGxpbmUnIDogJ2xpdmluZycpO1xcXFxuICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICB9LCBzVHlwZSksXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF8yXFxcXFxcXCJcXFxcbn0pXFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiBzVHlwZSA9PSBcXFxcXFxcIm91dGxpbmVcXFxcXFxcIiA/ICfigJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPVxcXFxcXFwiI0ZBNzI5OFxcXFxcXFwiPuacquebtOaSrTwvZnJvbnQ+PC9zdHJvbmc+JyA6IFxcXFxcXFwi5pyq55u05pKtXFxcXFxcXCIsXFxcXG4gICAgdXJsOiAkKCkubGF6eVJ1bGUoKHNUeXBlKSA9PiB7XFxcXG4gICAgICAgIHB1dE15VmFyKFxcXFxcXFwic1R5cGVcXFxcXFxcIiwgc1R5cGUgPT0gJ291dGxpbmUnID8gJ2xpdmluZycgOiAnb3V0bGluZScpO1xcXFxuICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICB9LCBzVHlwZSksXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF8yXFxcXFxcXCJcXFxcbn0pXFxcXG5pZiAoc1R5cGUgPT0gXFxcXFxcXCJsaXZpbmdcXFxcXFxcIikge1xcXFxuICAgIGZvciAodmFyIGkgaW4gcmVzKSB7XFxcXG4gICAgICAgIHZhciB0ZW1wID0gcmVzW2ldXFxcXG4gICAgICAgIGlmICh0ZW1wLmlzTGl2ZSA9PSAxKSB7XFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0ZW1wLmNhdGVnb3J5TmFtZSArICfCtycgKyB0ZW1wLnJvb21OYW1lLFxcXFxuICAgICAgICAgICAgICAgIGRlc2M6IHRlbXAucGxhdEZvcm0ucmVwbGFjZSgnaHV5YScsICfomY7niZknKS5yZXBsYWNlKCdkb3V5dScsICfmlpfpsbwnKS5yZXBsYWNlKCdjYycsICfnvZHmmJNDQycpLnJlcGxhY2UoXFxcXFxcXCJiaWxpYmlsaVxcXFxcXFwiLCBcXFxcXFxcIuWTlOWTqeWTlOWTqVxcXFxcXFwiKSArICfCtycgKyB0ZW1wLm93bmVyTmFtZSxcXFxcbiAgICAgICAgICAgICAgICBpbWc6IHRlbXAucm9vbVBpYyArIFxcXFxcXFwiQFJlZmVyZXI9XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vcGFnZS9kZXRhaWw/I2ltbWVyc2l2ZVRoZW1lIyZyb29taWQ9XFxcXFxcXCIgKyB0ZW1wLnJvb21JZCArIFxcXFxcXFwiJnBsYXRmb3JtPVxcXFxcXFwiICsgdGVtcC5wbGF0Rm9ybVxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgfVxcXFxuICAgIH1cXFxcbn0gZWxzZSB7XFxcXG4gICAgZm9yICh2YXIgaSBpbiByZXMpIHtcXFxcbiAgICAgICAgdmFyIHRlbXAgPSByZXNbaV1cXFxcbiAgICAgICAgaWYgKHRlbXAuaXNMaXZlID09IDApIHtcXFxcbiAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRlbXAub3duZXJOYW1lLFxcXFxuICAgICAgICAgICAgICAgIGltZzogdGVtcC5vd25lckhlYWRQaWMgKyBcXFxcXFxcIkBSZWZlcmVyPVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL3BhZ2UvZGV0YWlsPyNpbW1lcnNpdmVUaGVtZSMmcm9vbWlkPVxcXFxcXFwiICsgdGVtcC5yb29tSWQgKyBcXFxcXFxcIiZwbGF0Zm9ybT1cXFxcXFxcIiArIHRlbXAucGxhdEZvcm1cXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH1cXFxcbiAgICB9XFxcXG59XFxcXG5zZXRSZXN1bHQoZCk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcInRleHRfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLlhajpg6jliIbnsbtcXFwiLFxcXCJwYXRoXFxcIjpcXFwibmV3Q2xhc3NcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG52YXIgZCA9IFtdO1xcXFxuYWRkTGlzdGVuZXIoJ29uQ2xvc2UnLCAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICBjbGVhck15VmFyKCdNeWZsJylcXFxcbiAgICBjbGVhck15VmFyKCdNeXB0JylcXFxcbn0pKVxcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogZ2V0TXlWYXIoXFxcXFxcXCJNeWZsXFxcXFxcXCIsIFxcXFxcXFwi5p2/5Z2XXFxcXFxcXCIpID09IFxcXFxcXFwi5p2/5Z2XXFxcXFxcXCIgPyBcXFxcXFxcIvCflLTniYjlnZfliIbnsbtcXFxcXFxcIiA6IFxcXFxcXFwi4pqq77iP5p2/5Z2X5YiG57G7XFxcXFxcXCIsXFxcXG4gICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXFxcbiAgICAgICAgcHV0TXlWYXIoXFxcXFxcXCJNeWZsXFxcXFxcXCIsICfmnb/lnZcnKVxcXFxuICAgICAgICBjbGVhck15VmFyKCdNeWZsJylcXFxcbiAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgfSksXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF8yXFxcXFxcXCJcXFxcbn0pXFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiBnZXRNeVZhcihcXFxcXFxcIk15ZmxcXFxcXFxcIikgPT0gXFxcXFxcXCLlubPlj7BcXFxcXFxcIiA/IFxcXFxcXFwi8J+UtOW5s+WPsOWIhuexu1xcXFxcXFwiIDogXFxcXFxcXCLimqrvuI/lubPlj7DliIbnsbtcXFxcXFxcIixcXFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICBwdXRNeVZhcihcXFxcXFxcIk15ZmxcXFxcXFxcIiwgJ+W5s+WPsCcpXFxcXG4gICAgICAgIGNsZWFyTXlWYXIoJ015cHQnKVxcXFxuICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICB9KSxcXFxcbiAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0XzJcXFxcXFxcIlxcXFxufSlcXFxcblxcXFxuLy/lubPlj7DliIbnsbtcXFxcbmlmIChnZXRNeVZhcihcXFxcXFxcIk15ZmxcXFxcXFxcIikpIHtcXFxcbiAgICBsZXQgdGl0bGUgPSBnZXRNeVZhcihcXFxcXFxcIk15cHRcXFxcXFxcIikucmVwbGFjZSgnZG91eXUnLCAn5paX6bG8JykucmVwbGFjZSgnaHV5YScsICfomY7niZknKS5yZXBsYWNlKCdiaWxpYmlsaScsICflk5Tlk6knKS5yZXBsYWNlKCdjYycsICfnvZHmmJMnKVxcXFxuICAgIGxldCBpbWcgPSBnZXRNeVZhcihcXFxcXFxcIk15cHRcXFxcXFxcIikucmVwbGFjZSgnZG91eXUnLCAnaHR0cHM6Ly9iLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAxODA4MDgvMTUzMzY5ODA0NTEwNTI3Ni5wbmdAUmVmZXJlcj0nKS5yZXBsYWNlKCdodXlhJywgJ2h0dHBzOi8vbWJzMS5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMjAwOTE1LzU4ZDNlMzgwLTgxOGItNDkxYS1hOTczLTFlZjQ3YWE1ZTg3Zi5qcGdAUmVmZXJlcj0nKS5yZXBsYWNlKCdiaWxpYmlsaScsICdodHRwczovL2IuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDE4MTAzMC8xNTQwODg5MDM4MTU5ODYyLnBuZ0BSZWZlcmVyPScpLnJlcGxhY2UoJ2NjJywgJ2h0dHBzOi8vY2MuZnAucHMubmV0ZWFzZS5jb20vZmlsZS82MGEzMWQzZTdmOWQyYTM5MTIwYmVhMDE2THA3WkVlMTAzQFJlZmVyZXI9JylcXFxcblxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBcXFxcXFxcIuaWl+mxvFxcXFxcXFwiLFxcXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwiTXlwdFxcXFxcXFwiLCAnZG91eXUnKVxcXFxuICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgICAgIH0pLFxcXFxuICAgICAgICBpbWc6IFxcXFxcXFwiaHR0cHM6Ly9iLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAxODA4MDgvMTUzMzY5ODA0NTEwNTI3Ni5wbmdAUmVmZXJlcj1cXFxcXFxcIixcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiaWNvbl9yb3VuZF9zbWFsbF80XFxcXFxcXCJcXFxcbiAgICB9KVxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAn6JmO54mZJyxcXFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFxcXFxcIk15cHRcXFxcXFxcIiwgJ2h1eWEnKVxcXFxuICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgICAgIH0pLFxcXFxuICAgICAgICBpbWc6IFxcXFxcXFwiaHR0cHM6Ly9tYnMxLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAyMDA5MTUvNThkM2UzODAtODE4Yi00OTFhLWE5NzMtMWVmNDdhYTVlODdmLmpwZ0BSZWZlcmVyPVxcXFxcXFwiLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJpY29uX3JvdW5kX3NtYWxsXzRcXFxcXFxcIlxcXFxuICAgIH0pXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IFxcXFxcXFwi5ZOU5ZOpXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcXFxcXCJNeXB0XFxcXFxcXCIsICdiaWxpYmlsaScpXFxcXG4gICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIGltZzogXFxcXFxcXCJodHRwczovL2IuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDE4MTAzMC8xNTQwODg5MDM4MTU5ODYyLnBuZ0BSZWZlcmVyPVxcXFxcXFwiLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJpY29uX3JvdW5kX3NtYWxsXzRcXFxcXFxcIlxcXFxuICAgIH0pXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IFxcXFxcXFwi572R5piTXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcXFxcXCJNeXB0XFxcXFxcXCIsICdjYycpXFxcXG4gICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIGltZzogXFxcXFxcXCJodHRwczovL2NjLmZwLnBzLm5ldGVhc2UuY29tL2ZpbGUvNjBhMzFkM2U3ZjlkMmEzOTEyMGJlYTAxNkxwN1pFZTEwM0BSZWZlcmVyPVxcXFxcXFwiLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJpY29uX3JvdW5kX3NtYWxsXzRcXFxcXFxcIlxcXFxuICAgIH0pXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiYmlnX2JsYW5rX2Jsb2NrXFxcXFxcXCJcXFxcbiAgICB9KVxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImJpZ19ibGFua19ibG9ja1xcXFxcXFwiXFxcXG4gICAgfSlcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJsaW5lXFxcXFxcXCJcXFxcbiAgICB9KVxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImJpZ19ibGFua19ibG9ja1xcXFxcXFwiXFxcXG4gICAgfSlcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJiaWdfYmxhbmtfYmxvY2tcXFxcXFxcIlxcXFxuICAgIH0pXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IGdldE15VmFyKFxcXFxcXFwiTXlwdFxcXFxcXFwiKSA/IHRpdGxlICsgXFxcXFxcXCLliIbnsbtcXFxcXFxcIiA6IFxcXFxcXFwi6JmO54mZ5YiG57G7XFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCIsXFxcXG4gICAgICAgIGltZzogZ2V0TXlWYXIoXFxcXFxcXCJNeXB0XFxcXFxcXCIpID8gaW1nIDogXFxcXFxcXCJodHRwczovL21iczEuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDIwMDkxNS81OGQzZTM4MC04MThiLTQ5MWEtYTk3My0xZWY0N2FhNWU4N2YuanBnQFJlZmVyZXI9XFxcXFxcXCIsXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImF2YXRhclxcXFxcXFwiXFxcXG4gICAgfSlcXFxcbiAgICBpZiAoZ2V0TXlWYXIoXFxcXFxcXCJNeXB0XFxcXFxcXCIpKSB7XFxcXG4gICAgICAgIHZhciBwdF91cmwgPSBcXFxcXFxcImh0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL2dldEFyZWFzP3BsYXRmb3JtPVxcXFxcXFwiICsgZ2V0TXlWYXIoXFxcXFxcXCJNeXB0XFxcXFxcXCIpXFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgdmFyIHB0X3VybCA9IFxcXFxcXFwiaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0QXJlYXM/cGxhdGZvcm09aHV5YVxcXFxcXFwiXFxcXG4gICAgfVxcXFxuXFxcXG4gICAgdmFyIHJlcyA9IEpTT04ucGFyc2UocmVxdWVzdChwdF91cmwpKS5kYXRhO1xcXFxuICAgIC8vbG9nKHJlcylcXFxcbiAgICBmb3IgKGxldCBqIGluIHJlcykge1xcXFxuICAgICAgICB2YXIgdGVtcCA9IHJlc1tqXVxcXFxuICAgICAgICBmb3IgKGRhdGEgb2YgdGVtcClcXFxcbiAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRhdGEuYXJlYU5hbWUsXFxcXG4gICAgICAgICAgICAgICAgaW1nOiBkYXRhLmFyZWFQaWMgKyBcXFxcXFxcIkBSZWZlcmVyPVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL3BhZ2UvbmV3Q2xhc3NMaXN0P3BhZ2U9ZnlwYWdlJnBsYXRmb3JtPVxcXFxcXFwiICsgZGF0YS5wbGF0Zm9ybSArIFxcXFxcXFwiJmFyZWE9XFxcXFxcXCIgKyBkYXRhLmFyZWFOYW1lLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImljb25fcm91bmRfNFxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgIH1cXFxcbn0gZWxzZSB7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiYmlnX2JsYW5rX2Jsb2NrXFxcXFxcXCJcXFxcbiAgICB9KVxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImJpZ19ibGFua19ibG9ja1xcXFxcXFwiXFxcXG4gICAgfSlcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJsaW5lXFxcXFxcXCJcXFxcbiAgICB9KVxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImJpZ19ibGFua19ibG9ja1xcXFxcXFwiXFxcXG4gICAgfSlcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJiaWdfYmxhbmtfYmxvY2tcXFxcXFxcIlxcXFxuICAgIH0pXFxcXG5cXFxcbiAgICAvL+eJiOWdl+WIhuexu1xcXFxuICAgIHZhciB1cmwgPSAnaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0QWxsQXJlYXMnO1xcXFxuICAgIHZhciByZXMgPSBKU09OLnBhcnNlKHJlcXVlc3QodXJsKSkuZGF0YTtcXFxcbiAgICAvL2xvZyhyZXMpXFxcXG5cXFxcbiAgICB2YXIgdHlwZU5hbWVzID0gW107XFxcXG4gICAgdmFyIGJpZ0xpc3QgPSBbXTtcXFxcbiAgICB2YXIgc21hbGxMaXN0ID0gW107XFxcXG4gICAgcHV0TXlWYXIoXFxcXFxcXCJ0eXBlTmFtZVZhclxcXFxcXFwiLCAhZ2V0TXlWYXIoJ3R5cGVOYW1lVmFyJykgPyAn5YWo6YOoJyA6IGdldE15VmFyKCd0eXBlTmFtZVZhcicpKTtcXFxcbiAgICBwdXRNeVZhcignYXJlYScsICdhcmVhTmFtZScpXFxcXG4gICAgZm9yIChsZXQgciBvZiByZXMpIHtcXFxcbiAgICAgICAgZm9yIChsZXQgeCBvZiByKSB7XFxcXG4gICAgICAgICAgICBpZiAoIXR5cGVOYW1lcy5pbmNsdWRlcyh4LnR5cGVOYW1lKSkge1xcXFxuICAgICAgICAgICAgICAgIHR5cGVOYW1lcy5wdXNoKHgudHlwZU5hbWUpO1xcXFxuICAgICAgICAgICAgICAgIGJpZ0xpc3QucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBnZXRNeVZhcihcXFxcXFxcInR5cGVOYW1lVmFyXFxcXFxcXCIpID09IHgudHlwZU5hbWUgPyAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj1cXFxcXFxcIiNGQTcyOThcXFxcXFxcIj4nICsgeC50eXBlTmFtZSArICc8L2Zyb250Pjwvc3Ryb25nPicgOiB4LnR5cGVOYW1lLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHR5cGVOYW1lVmFyKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFxcXFxcInR5cGVOYW1lVmFyXFxcXFxcXCIsIHR5cGVOYW1lVmFyKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgeC50eXBlTmFtZSksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBzbWFsbExpc3QucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHguYXJlYU5hbWUsXFxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9wYWdlL25ld0NsYXNzTGlzdD90eXBlTmFtZT0nICsgeC50eXBlTmFtZSArICcmYXJlYU5hbWU9JyArIHguYXJlYU5hbWUgKyBcXFxcXFxcIiZwYWdlPWZ5cGFnZVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgIGltZzogeC5hcmVhUGljICsgXFxcXFxcXCJAUmVmZXJlcj1cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJpY29uX3JvdW5kXzRcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICB0eXBlTmFtZTogeC50eXBlTmFtZVxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgIGJpZ0xpc3QudW5zaGlmdCh7XFxcXG4gICAgICAgIHRpdGxlOiBnZXRNeVZhcihcXFxcXFxcInR5cGVOYW1lVmFyXFxcXFxcXCIpID09ICflhajpg6gnID8gJ+KAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9XFxcXFxcXCIjRkE3Mjk4XFxcXFxcXCI+5YWo6YOoPC9mcm9udD48L3N0cm9uZz4nIDogJ+WFqOmDqCcsXFxcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgodHlwZU5hbWVWYXIpID0+IHtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwidHlwZU5hbWVWYXJcXFxcXFxcIiwgdHlwZU5hbWVWYXIpO1xcXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXFxcbiAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICB9LCAn5YWo6YOoJyksXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIlxcXFxuICAgIH0pXFxcXG4gICAgZCA9IGQuY29uY2F0KGJpZ0xpc3QpO1xcXFxuXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiYmlnX2JsYW5rX2Jsb2NrXFxcXFxcXCJcXFxcbiAgICB9KVxcXFxuXFxcXG4gICAgLy9sb2coZ2V0TXlWYXIoJ3R5cGVOYW1lVmFyJykpXFxcXG4gICAgaWYgKGdldE15VmFyKCd0eXBlTmFtZVZhcicpID09ICflhajpg6gnKSB7XFxcXG4gICAgICAgIGQgPSBkLmNvbmNhdChzbWFsbExpc3QpO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIGQgPSBkLmNvbmNhdChzbWFsbExpc3QuZmlsdGVyKHMgPT4gcy50eXBlTmFtZSA9PSBnZXRNeVZhcigndHlwZU5hbWVWYXInKSkpO1xcXFxuICAgIH1cXFxcbn1cXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfMlxcXCIsXFxcIm5hbWVcXFwiOlxcXCLmgLvliJfooahcXFwiLFxcXCJwYXRoXFxcIjpcXFwibmV3Q2xhc3NMaXN0XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxudmFyIGQgPSBbXTtcXFxcbmFkZExpc3RlbmVyKCdvbkNsb3NlJywgJC50b1N0cmluZygoKSA9PiB7XFxcXG4gICAgY2xlYXJNeVZhcignTXlmcm8nKVxcXFxufSkpXFxcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxcXG4gICAgbGV0IHRpdGxlID0gZ2V0TXlWYXIoXFxcXFxcXCJNeWZyb1xcXFxcXFwiKS5yZXBsYWNlKCdkb3V5dScsICfmlpfpsbwnKS5yZXBsYWNlKCdodXlhJywgJ+iZjueJmScpLnJlcGxhY2UoJ2JpbGliaWxpJywgJ+WTlOWTqScpLnJlcGxhY2UoJ2NjJywgJ+e9keaYkycpXFxcXG4gICAgbGV0IGltZyA9IGdldE15VmFyKFxcXFxcXFwiTXlmcm9cXFxcXFxcIikucmVwbGFjZSgnZG91eXUnLCAnaHR0cHM6Ly9iLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAxODA4MDgvMTUzMzY5ODA0NTEwNTI3Ni5wbmdAUmVmZXJlcj0nKS5yZXBsYWNlKCdodXlhJywgJ2h0dHBzOi8vbWJzMS5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMjAwOTE1LzU4ZDNlMzgwLTgxOGItNDkxYS1hOTczLTFlZjQ3YWE1ZTg3Zi5qcGdAUmVmZXJlcj0nKS5yZXBsYWNlKCdiaWxpYmlsaScsICdodHRwczovL2IuYmRzdGF0aWMuY29tL3NlYXJjaGJveC9tYXBwY29uc29sZS9pbWFnZS8yMDE4MTAzMC8xNTQwODg5MDM4MTU5ODYyLnBuZ0BSZWZlcmVyPScpLnJlcGxhY2UoJ2NjJywgJ2h0dHBzOi8vY2MuZnAucHMubmV0ZWFzZS5jb20vZmlsZS82MGEzMWQzZTdmOWQyYTM5MTIwYmVhMDE2THA3WkVlMTAzQFJlZmVyZXI9JylcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogZ2V0TXlWYXIoXFxcXFxcXCJNeWZyb1xcXFxcXFwiKSA9PSAnJyA/ICfliIfmjaLlubPlj7AnIDogdGl0bGUgKyAn5bmz5Y+wJyxcXFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICBjbGVhck15VmFyKFxcXFxcXFwiTXlmcm9cXFxcXFxcIilcXFxcbiAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICB9KSxcXFxcbiAgICAgICAgaW1nOiBnZXRNeVZhcihcXFxcXFxcIk15ZnJvXFxcXFxcXCIpID09ICcnID8gJ2h0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9tZXNzeS81LnN2Z0BSZWZlcmVyPScgOiBpbWcsXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImF2YXRhclxcXFxcXFwiXFxcXG4gICAgfSlcXFxcblxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBcXFxcXFxcIuaWl+mxvFxcXFxcXFwiLFxcXFxuICAgICAgICBpbWc6IFxcXFxcXFwiaHR0cHM6Ly9iLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAxODA4MDgvMTUzMzY5ODA0NTEwNTI3Ni5wbmdAUmVmZXJlcj1cXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwiTXlmcm9cXFxcXFxcIiwgJ2RvdXl1Jyk7XFxcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgICAgIH0pLFxcXFxuICAgICAgICDCoGNvbF90eXBlOiBcXFxcXFxcImljb25fcm91bmRfc21hbGxfNFxcXFxcXFwiLFxcXFxuICAgIH0pXFxcXG5cXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogXFxcXFxcXCLomY7niZlcXFxcXFxcIixcXFxcbiAgICAgICAgaW1nOiBcXFxcXFxcImh0dHBzOi8vbWJzMS5iZHN0YXRpYy5jb20vc2VhcmNoYm94L21hcHBjb25zb2xlL2ltYWdlLzIwMjAwOTE1LzU4ZDNlMzgwLTgxOGItNDkxYS1hOTczLTFlZjQ3YWE1ZTg3Zi5qcGdAUmVmZXJlcj1cXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwiTXlmcm9cXFxcXFxcIiwgJ2h1eWEnKTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIMKgY29sX3R5cGU6IFxcXFxcXFwiaWNvbl9yb3VuZF9zbWFsbF80XFxcXFxcXCIsXFxcXG4gICAgfSlcXFxcblxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBcXFxcXFxcIuWTlOWTqVxcXFxcXFwiLFxcXFxuICAgICAgICBpbWc6IFxcXFxcXFwiaHR0cHM6Ly9iLmJkc3RhdGljLmNvbS9zZWFyY2hib3gvbWFwcGNvbnNvbGUvaW1hZ2UvMjAxODEwMzAvMTU0MDg4OTAzODE1OTg2Mi5wbmdAUmVmZXJlcj1cXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwiTXlmcm9cXFxcXFxcIiwgJ2JpbGliaWxpJyk7XFxcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgICAgIH0pLFxcXFxuICAgICAgICDCoGNvbF90eXBlOiBcXFxcXFxcImljb25fcm91bmRfc21hbGxfNFxcXFxcXFwiLFxcXFxuICAgIH0pXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IFxcXFxcXFwi572R5piTXFxcXFxcXCIsXFxcXG4gICAgICAgIGltZzogXFxcXFxcXCJodHRwczovL2NjLmZwLnBzLm5ldGVhc2UuY29tL2ZpbGUvNjBhMzFkM2U3ZjlkMmEzOTEyMGJlYTAxNkxwN1pFZTEwM0BSZWZlcmVyPVxcXFxcXFwiLFxcXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgcHV0TXlWYXIoXFxcXFxcXCJNeWZyb1xcXFxcXFwiLCAnY2MnKTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIMKgY29sX3R5cGU6IFxcXFxcXFwiaWNvbl9yb3VuZF9zbWFsbF80XFxcXFxcXCIsXFxcXG4gICAgfSlcXFxcbn1cXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwibGluZVxcXFxcXFwiXFxcXG59KVxcXFxuZC5wdXNoKHtcXFxcbiAgICBjb2xfdHlwZTogXFxcXFxcXCJiaWdfYmxhbmtfYmxvY2tcXFxcXFxcIlxcXFxufSlcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwiYmlnX2JsYW5rX2Jsb2NrXFxcXFxcXCJcXFxcbn0pXFxcXG5cXFxcbmxldCB6b25nID0gJ2h0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL2dldFJlY29tbWVuZEJ5QXJlYUFsbD9hcmVhVHlwZT0nICsgZ2V0UGFyYW0oXFxcXFxcXCJ0eXBlTmFtZVxcXFxcXFwiKSArICcmYXJlYT0nICsgZ2V0UGFyYW0oXFxcXFxcXCJhcmVhTmFtZVxcXFxcXFwiKSArICcmcGFnZT0nICsgZ2V0UGFyYW0oXFxcXFxcXCJwYWdlXFxcXFxcXCIpXFxcXG5cXFxcbmxldCB6ZiA9IFxcXFxcXFwiaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0UmVjb21tZW5kQnlQbGF0Zm9ybUFyZWE/cGxhdGZvcm09XFxcXFxcXCIgKyBnZXRNeVZhcihcXFxcXFxcIk15ZnJvXFxcXFxcXCIpICsgXFxcXFxcXCImYXJlYT1cXFxcXFxcIiArIGdldFBhcmFtKFxcXFxcXFwiYXJlYU5hbWVcXFxcXFxcIikgKyBcXFxcXFxcIiZwYWdlPVxcXFxcXFwiICsgZ2V0UGFyYW0oXFxcXFxcXCJwYWdlXFxcXFxcXCIpICsgXFxcXFxcXCImc2l6ZT0yMFxcXFxcXFwiXFxcXG5cXFxcbmxldCBwaW4gPSBcXFxcXFxcImh0dHA6Ly9saXZlLnlqMTIxMS53b3JrL2FwaS9saXZlL2dldFJlY29tbWVuZEJ5UGxhdGZvcm1BcmVhXFxcXFxcXCIgKyBNWV9VUkwucmVwbGFjZShcXFxcXFxcImhpa2VyOi8vcGFnZS9uZXdDbGFzc0xpc3RcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIikgKyBcXFxcXFxcIiZwYWdlPVxcXFxcXFwiICsgZ2V0UGFyYW0oXFxcXFxcXCJwYWdlXFxcXFxcXCIpICsgXFxcXFxcXCImc2l6ZT0yMFxcXFxcXFwiXFxcXG4vL2xvZyhwaW4pXFxcXG5cXFxcbmxldCBwZiA9IFxcXFxcXFwiaHR0cDovL2xpdmUueWoxMjExLndvcmsvYXBpL2xpdmUvZ2V0UmVjb21tZW5kQnlQbGF0Zm9ybUFyZWE/cGxhdGZvcm09XFxcXFxcXCIgKyBnZXRNeVZhcihcXFxcXFxcIk15ZnJvXFxcXFxcXCIpICsgXFxcXFxcXCImYXJlYT1cXFxcXFxcIiArIGdldE15VmFyKFxcXFxcXFwiYXJlYVxcXFxcXFwiKSArIFxcXFxcXFwiJnBhZ2U9XFxcXFxcXCIgKyBnZXRQYXJhbShcXFxcXFxcInBhZ2VcXFxcXFxcIikgKyBcXFxcXFxcIiZzaXplPTIwXFxcXFxcXCJcXFxcblxcXFxudHJ5IHtcXFxcbiAgICBsZXQgYXJlYSA9IHBpbi5tYXRjaCgvYXJlYT0oLio/KSYvKVsxXVxcXFxuICAgIC8vbG9nKGFyZWEpXFxcXG4gICAgcHV0TXlWYXIoXFxcXFxcXCJhcmVhXFxcXFxcXCIsIGFyZWEpXFxcXG59IGNhdGNoIChlKSB7XFxcXG4gICAgdmFyIGFyZWEgPSAnJ1xcXFxufVxcXFxuaWYgKGFyZWEgPT0gJycpIHtcXFxcbiAgICBpZiAoZ2V0TXlWYXIoXFxcXFxcXCJNeWZyb1xcXFxcXFwiKSkge1xcXFxuICAgICAgICB2YXIgdXJsID0gemZcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICB2YXIgdXJsID0gem9uZ1xcXFxuICAgIH1cXFxcbn0gZWxzZSB7XFxcXG4gICAgaWYgKGdldE15VmFyKFxcXFxcXFwiTXlmcm9cXFxcXFxcIikpIHtcXFxcbiAgICAgICAgdmFyIHVybCA9IHBmXFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgdmFyIHVybCA9IHBpblxcXFxuICAgIH1cXFxcbn1cXFxcblxcXFxudHJ5IHtcXFxcbiAgICB2YXIgcmVzID0gSlNPTi5wYXJzZShyZXF1ZXN0KHVybCkpLmRhdGFcXFxcbiAgICBpZiAocmVzID09ICcnKSB7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogJzxicj4nLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogJzxicj4nLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICBkZXNjOiAn5pqC5peg5oi/6Ze0XFxcXFxcXFxuXFxcXFxcXFxu6K+35YiH5o2i5bmz5Y+w6KeC55yLJyxcXFxcbiAgICAgICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcXFxuICAgICAgICB9KTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICBmb3IgKGRhdGEgb2YgcmVzKSB7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogZGF0YS5jYXRlZ29yeU5hbWUgKyAnwrcnICsgZGF0YS5yb29tTmFtZSxcXFxcbiAgICAgICAgICAgIGRlc2M6IGRhdGEucGxhdEZvcm0ucmVwbGFjZSgnaHV5YScsICfomY7niZknKS5yZXBsYWNlKCdkb3V5dScsICfmlpfpsbwnKS5yZXBsYWNlKCdjYycsICfnvZHmmJNDQycpLnJlcGxhY2UoXFxcXFxcXCJiaWxpYmlsaVxcXFxcXFwiLCBcXFxcXFxcIuWTlOWTqeWTlOWTqVxcXFxcXFwiKSArICfCtycgKyBkYXRhLm93bmVyTmFtZSxcXFxcbiAgICAgICAgICAgIGltZzogKGRhdGEucm9vbVBpYy5zdGFydHNXaXRoKCcvJykgPyAnaHR0cHM6JyArIGRhdGEucm9vbVBpYyA6IGRhdGEucm9vbVBpYykgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL3BhZ2UvZGV0YWlsPyNpbW1lcnNpdmVUaGVtZSMmcm9vbWlkPVxcXFxcXFwiICsgZGF0YS5yb29tSWQgKyBcXFxcXFxcIiZwbGF0Zm9ybT1cXFxcXFxcIiArIGRhdGEucGxhdEZvcm1cXFxcbiAgICAgICAgfSlcXFxcbiAgICB9XFxcXG59IGNhdGNoIChlKSB7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6ICc8YnI+JyxcXFxcbiAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxcXG4gICAgfSlcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogJzxicj4nLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCdcXFxcbiAgICB9KTtcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICBkZXNjOiAn5pqC5peg5oi/6Ze0XFxcXFxcXFxuXFxcXFxcXFxu6K+35YiH5o2i5bmz5Y+w6KeC55yLJyxcXFxcbiAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXFxcbiAgICB9KTtcXFxcbn1cXFxcbnNldFJlc3VsdChkKTtcXFwifV1cIixcInByb3h5XCI6XCJcIn0iLCJwaWNVcmwiOiJodHRwczovL3N0YS1vcC5kb3V5dWNkbi5jbi9keWNhdHIvZjcyZWJjNGZlYmU1MjI4MGVmNDYwNDk0ZTMwMjY0NTkucG5nQFJlZmVyZXI9IiwidGl0bGUiOiLmm7TlpJot6Iux6ZuE6IGU55ufIn0=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement