Advertisement
xiaomianao666

邀您一起看:半是蜜糖半是伤

May 7th, 2023
753
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥半是蜜糖半是伤@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaOqOmAgVwiLFwicGF0aFwiOlwicHVzaFwiLFwicnVsZVwiOlwianM6XFxubGV0IGl0ZW1zID0gW107XFxubGV0IHB1c2hpbiA9IGRlY29kZVVSSUNvbXBvbmVudChnZXRQYXJhbShcXFwicHVzaHVybFxcXCIpKTtcXG5sZXQgdHZpcCA9IGdldEl0ZW0oJ2hpa2VydHZib3hzZXQnLCAnJyk7XFxuXFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiAn5b2T5YmNSVDvvJonICsgdHZpcCxcXG4gICAgdXJsOiBcXFwiaW5wdXQ6Ly9cXFwiICsgZ2V0SXRlbSgnaGlrZXJ0dmJveHNldCcsICdodHRwOi8vJyArIGdldElQKCkgKyAnOjk5NzgnKSArIFxcXCIvLy8v6K+36L6T5YWlVFZCb3jnq6/nmoRJUOWcsOWdgO+8jOWmgmh0dHA6Ly9cXFwiICsgZ2V0SVAoKSArIFxcXCI6OTk3OC5qczpzZXRJdGVtKCdoaWtlcnR2Ym94c2V0JyxpbnB1dCk7cmVmcmVzaFBhZ2UoKVxcXCIsXFxuICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxufSk7XFxudmFyIHB1cmwgPSBwdXNoaW47XFxuXFxuaWYgKHB1c2hpbi5pbmNsdWRlcygnXFxcXG4nKSAmJiAhcHVzaGluLnN0YXJ0c1dpdGgoJ3snKSkge1xcbiAgICBwdXJsID0gcHVzaGluLnJlcGxhY2UoXFxcIlxcXFxuXFxcIiwgJyQnKTtcXG59XFxuaWYgKHB1c2hpbi5zdGFydHNXaXRoKCdodHRwJykgJiYgcHVzaGluLmluY2x1ZGVzKCc7eycpKSB7XFxuICAgIHB1cmwgPSBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICBcXFwibmFtZVxcXCI6IFxcXCLmtbfpmJTnm7Tpk77mjqjpgIFcXFwiLFxcbiAgICAgICAgXFxcInVybFxcXCI6IHB1c2hpblxcbiAgICB9KVxcbn1cXG5pZiAocHVzaGluLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vd3d3LmFsaXl1bmRyaXZlLmNvbS9zLycpKSB7XFxuICAgIGxldCByZWZ0b2tlbiA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMvaWN5L2ljeS1hbGktdG9rZW4uanNvbicsIHt9KSlbMF0ucmVmcmVzaF90b2tlbjtcXG4gICAgcHVybCA9IEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgIFxcXCJ1cmxcXFwiOiBwdXNoaW4sXFxuICAgICAgICBcXFwicmVmcmVzaF90b2tlblxcXCI6IHJlZnRva2VuXFxuICAgIH0pXFxufVxcbmlmIChwdXNoaW4uaW5jbHVkZXMoJzo1MjAyMCcpKSB7XFxuICAgIGlmIChwdXNoaW4uaW5jbHVkZXMoJ3JlZGlyZWN0UGxheVVybCcpKSB7XFxuICAgICAgICBwdXJsID0gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgIFxcXCJuYW1lXFxcIjogXFxcIua1t+mYlOaKleWxj+ebtOmTvlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6IHB1c2hpblxcbiAgICAgICAgfSlcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHB1cmwgPSBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgXFxcIm5hbWVcXFwiOiBcXFwi5rW36ZiU572R6aG15oqV5bGPXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjogcHVzaGluXFxuICAgICAgICB9KVxcbiAgICB9XFxufVxcblxcbi8vbG9nKCfmjqjpgIEnK3B1cmwpO1xcbnZhciBzdGF0ZSA9IHJlcXVlc3QodHZpcCArICcvYWN0aW9uJywge1xcbiAgICBoZWFkZXJzOiB7XFxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXFxuICAgICAgICAvLydYLVJlcXVlc3RlZC1XaXRoJzogJ1hNTEh0dHBSZXF1ZXN0JyxcXG4gICAgICAgICdSZWZlcmVyJzogdHZpcFxcbiAgICB9LFxcbiAgICB0aW1lb3V0OiAyMDAwLFxcbiAgICBib2R5OiAnZG89cHVzaCZ1cmw9JyArIHB1cmwucmVwbGFjZSgvXFxcXCYvZywgJ++8hu+8hicpLFxcbiAgICBtZXRob2Q6ICdQT1NUJ1xcbn0pO1xcbi8vbG9nKHN0YXRlKTtcXG5pZiAoc3RhdGUgPT0gJ29rJykge1xcbiAgICAvL2xvZyhzdGF0ZSk7XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLinIVcXFwiICsgc3RhdGUsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIixcXG4gICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCJcXG4gICAgfSk7XFxufSBlbHNlIHtcXG4gICAgLy9sb2coc3RhdGUpO1xcbiAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi4p2OXFxcIiArIHN0YXRlLFxcbiAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiXFxuICAgIH0pO1xcblxcbn1cXG5zZXRSZXN1bHQoaXRlbXMpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6Kej5p6QXCIsXCJwYXRoXCI6XCJqeFwiLFwicnVsZVwiOlwibGF6eSA9ICQoXFxcIlxcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgdmFyIHBsYXllciA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCkubWF0Y2goL3IgcGxheWVyXy4qPz0oLio/KTwvKVsxXSk7XFxuICAgIHZhciB1cmwgPSBwbGF5ZXIudXJsO1xcbnZhciBmcm9tID0gcGxheWVyLmZyb207XFxuaWYgKC9tM3U4fG1wNC8udGVzdChmcm9tKSkge1xcblxcbiAgICAgICAgaWYgKC9senxmZnp5Ly50ZXN0KHVybCkpIHtcXHJcXG4gICAgICAgICAgIGV2YWxQcml2YXRlSlMoJ1R1U0pkcG5aYXFYR1J2dk9GUlIrM1M3ZVpVamVDMUNmZkZiSGhvbzBlNSthWjdLYXY5S1pWWnNma3dLa1VGZjR3emtUcmlvNGpBUkg2WndUWHBSbEgza0k0M3JXQ1RVNFBkWWFtMTVwUFlpcTVjVzBINmdVWGhKVzd0bUp0eUxLZGplMUthcEJJR3ZXYVhJMFdtb0hvTUVGQlYvTUFpY21QZ3B5QUpaanNjNUVtdmRoMW43MldQUGl5aFlOQ29Nblo5SnBQNmFFc1dRRW1RTWNBalB4Z3M2VU12c08vUE93NUNjcjc5c0p6aWNzdC9MbDNJT2o1TStQdnFLclRkNjE0N1ZHUEV6dGpzVWVFdWRBU3pUY24rOTVDOVZnMXV3VXZkOXowdzVxc1Bib1FoNW9aaFR5czRSUUV6QkdJcXVsUU1BQVFZNElGa2FuV1g5NUVJTlpEWDUwbUFpT1NHeUlkMDZIc3ByQWVsL2ZoN3d5TVhkbWV1K1MxNVhuY083VXV1ak1PbUdnU0FFTi9Tc2MyZXpreGxHdnBkeWhibDRwNERhUXVnL25yZ3N3aFpqNzUvTTUzc0tZWDJ6UmdPU1Q3Q01qVi8rcFBKZDFLUDkzNHV1L1ZzQlFVRzY5bVdOK0thRldoS253QlBoVjlxZHFHei9MU0puRnhJdlE4a0J4JylcXG4gICAgICAgICAgIHJldHVybiB1ICsgXFxcIj91cmw9XFxcIiArIGJhc2U2NEVuY29kZSh1cmwpICsgXFxcIiMubTN1OFxcXCI7XFxyXFxuICAgICAgICB9XFxyXFxuICAgICAgICByZXR1cm4gdXJsXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB2YXIgYXBpID0gXFxcImh0dHBzOi8vYmZxLmNkZHlzLnZpcC9iZnEvQVBJLnBocFxcXCI7XFxuICAgIHZhciBwYXJzZSA9IFxcXCJodHRwczovL2JmcS5jZGR5cy52aXAvYmZxLz91cmw9XFxcIiArIHVybDtcXG4gICAgbG9nKHBhcnNlKTtcXG4gICAgdmFyIHJlZiA9IFxcXCJcXFwiXFxuICAgIGlmIChyZWYpIHtcXG4gICAgICAgIHZhciBqeEh0bWwgPSByZXF1ZXN0KHBhcnNlLCB7XFxuICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICBcXFwiUmVmZXJlclxcXCI6IHJlZlxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIGp4SHRtbCA9IHJlcXVlc3QocGFyc2UpO1xcbiAgICB9XFxuICAgIGV2YWwoanhIdG1sLm1hdGNoKC92YXIgY29uZmlnID0ge1tcXFxcc1xcXFxTXSo/fS8pWzBdICsgXFxcIlxcXCIpO1xcbiAgICB2YXIga2V5ID0gY29uZmlnLmtleTtcXG4gICAgdmFyIHRpbWUgPSBjb25maWcudGltZTtcXG4gICAgdmFyIGpzb24gPSBKU09OLnBhcnNlKHJlcXVlc3QoYXBpLCB7XFxuICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgICAgIH0sXFxuICAgICAgICBib2R5OiBcXFwidXJsPVxcXCIgKyB1cmwgKyBcXFwiJnRpbWU9XFxcIiArIHRpbWUgKyBcXFwiJmtleT1cXFwiICsga2V5LFxcbiAgICAgICAgbWV0aG9kOiBcXFwiUE9TVFxcXCJcXG4gICAgfSkpO1xcbiAgICB2YXIgdXJsID0ganNvbi5jb2RlID09IDIwMCA/IGpzb24udXJsIDogXFxcIjQwNFxcXCI7XFxuICAgIGlmICh1cmwgPT0gXFxcIjQwNFxcXCIpIHtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly9cXFxcdTg5ZTNcXFxcdTY3OTBcXFxcdTU5MzFcXFxcdThkMjVcXFxcdWZmMGNcXFxcdThiZjdcXFxcdTkxY2RcXFxcdTY1YjBcXFxcdTkxNGRcXFxcdTdmNmVcXFwiO1xcbiAgICB9XFxuICAgIH1cXG4gICAgXFxuICAgIGlmICh1cmwuaW5kZXhPZihcXFwiYmlsaWJpbGlcXFwiKSA+IC0xKSB7XFxuICAgICAgICByZXR1cm4gdXJsICsgXFxcIiNpc1ZpZGVvPXRydWUjXFxcIiArIFxcXCI7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfVxcXCI7XFxuICAgIH0gZWxzZSBpZiAodXJsLmluZGV4T2YoXFxcIm1ndHZcXFwiKSA+IC0xKSB7XFxuICAgICAgICByZXR1cm4gdXJsICsgXFxcIiNpc1ZpZGVvPXRydWUjXFxcIiArIFxcXCI7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfVxcXCI7XFxuICAgIH0gZWxzZSBpZiAodXJsLmluZGV4T2YoXFxcIml4aWd1YVxcXCIpID4gLTEpIHtcXG4gICAgICAgIHJldHVybiB1cmwgKyBcXFwiI2lzVmlkZW89dHJ1ZSNcXFwiICsgXFxcIiMubXA0O3tSZWZlcmVyQGh0dHBzOi8vd3d3Lml4aWd1YS5jb20vJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfVxcXCI7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICByZXR1cm4gL3NvaHUvLnRlc3QodXJsKSA/IHVybCArIFxcXCI7e1VzZXItQWdlbnRATW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCl9XFxcIiA6IHVybDtcXG4gICAgfVxcbn0pO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Yqo5oCBXCIsXCJwYXRoXCI6XCJkdDFcIixcInJ1bGVcIjpcImNvbnN0IGVtcHR5ID0gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuXFxuaWYgKHR5cGVvZijmi7zmjqXliIbnsbspICE9ICd1bmRlZmluZWQnICYmIOaLvOaOpeWIhuexuyAhPSAnJykge1xcbiAgICB2YXIgY2F0ZWdvcmllcyA9IHBkZmEoaHRtbCwg5aSn57G75a6a5L2NKS5jb25jYXQocGRmYShodG1sLCDmi7zmjqXliIbnsbspKVxcbn0gZWxzZSB7XFxuICAgIHZhciBjYXRlZ29yaWVzID0gcGRmYShodG1sLCDlpKfnsbvlrprkvY0pXFxufVxcblxcbmxldCBpbml0X2NhdGUgPSBbXVxcblxcbmZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykge1xcbiAgICBpbml0X2NhdGUucHVzaChcXFwiMFxcXCIpXFxufVxcblxcbmNvbnN0IGZvbGQgPSBnZXRWYXIoTVlfUlVMRS5ncm91cCwgXFxcIjBcXFwiKVxcbmNvbnN0IGNhdGVfdGVtcF9qc29uID0gZ2V0VmFyKE1ZX1JVTEUudGl0bGUsIEpTT04uc3RyaW5naWZ5KGluaXRfY2F0ZSkpXFxuY29uc3QgY2F0ZV90ZW1wID0gSlNPTi5wYXJzZShjYXRlX3RlbXBfanNvbilcXG5cXG5pZiAocGFyc2VJbnQocGFnZSkgPT09IDEpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBmb2xkID09PSAnMScgPyAn4oCc4oCc4oCd4oCdPGI+JyArICfwn5OsJy5mb250Y29sb3IoXFxcIiNGRjAwMDBcXFwiKSArICc8L2I+JyA6ICfigJzigJzigJ3igJ08Yj4nICsgJ/Cfk6onLmZvbnRjb2xvcihcXFwiIzFhYWQxOVxcXCIpICsgJzwvYj4nLFxcbiAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKGZvbGQpID0+IHtcXG4gICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS5ncm91cCwgZm9sZCA9PT0gJzEnID8gJzAnIDogJzEnKTtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgfSwgZm9sZCksXFxuICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcbiAgICB9KVxcbiAgICBjYXRlZ29yaWVzLmZvckVhY2goKGNhdGVnb3J5LCBpbmRleCkgPT4ge1xcbiAgICAgICAgbGV0IHN1Yl9jYXRlZ29yaWVzID0gcGRmYShjYXRlZ29yeSwg5bCP57G75a6a5L2NKTtcXG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0sIGtleSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKGl0ZW0sIOWIhuexu+agh+mimClcXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZijmjpLpmaQpICE9ICd1bmRlZmluZWQnICYmIOaOkumZpCAhPSAnJykge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB0aXRsZS5yZXBsYWNlKG5ldyBSZWdFeHAo5o6S6ZmkLCBcXFwiZ1xcXCIpLCBcXFwiXFxcIilcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGtleS50b1N0cmluZygpID09PSBjYXRlX3RlbXBbaW5kZXhdID8gXFxcIuKAnOKAnOKAneKAnVxcXCIgKyB0aXRsZS5mb250Y29sb3Io5YiG57G76aKc6ImyKSA6IHRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKHBkKGl0ZW0sIOWIhuexu+mTvuaOpSkgKyAnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgocGFyYW1zKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld19jYXRlID0gW11cXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuY2F0ZV90ZW1wLmZvckVhY2goKGNhdGUsIGluZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19jYXRlLnB1c2goaW5kZXggPT09IDAgPyBwYXJhbXMua2V5LnRvU3RyaW5nKCkgOiBcXFwiMFxcXCIpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS50aXRsZSwgSlNPTi5zdHJpbmdpZnkobmV3X2NhdGUpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnVybCwgaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZV90ZW1wOiBjYXRlX3RlbXAsXFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogcGFnZSxcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiYmxhbmtfYmxvY2tcXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9IGVsc2UgaWYgKGZvbGQgPT09ICcxJykge1xcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0sIGtleSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKGl0ZW0sIOWIhuexu+agh+mimClcXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZijmjpLpmaQpICE9ICd1bmRlZmluZWQnICYmIOaOkumZpCAhPSAnJykge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB0aXRsZS5yZXBsYWNlKG5ldyBSZWdFeHAo5o6S6ZmkLCBcXFwiZ1xcXCIpLCBcXFwiXFxcIilcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGtleS50b1N0cmluZygpID09PSBjYXRlX3RlbXBbaW5kZXhdID8gXFxcIuKAnOKAnOKAneKAnVxcXCIgKyB0aXRsZS5mb250Y29sb3Io5YiG57G76aKc6ImyKSA6IHRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKHBkKGl0ZW0sIOWIhuexu+mTvuaOpSkgKyAnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgocGFyYW1zKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNhdGVfdGVtcFtwYXJhbXMuaW5kZXhdID0gcGFyYW1zLmtleS50b1N0cmluZygpXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudGl0bGUsIEpTT04uc3RyaW5naWZ5KHBhcmFtcy5jYXRlX3RlbXApKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnVybCwgaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZV90ZW1wOiBjYXRlX3RlbXAsXFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleToga2V5LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IHBhZ2UsXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcImJsYW5rX2Jsb2NrXFxcIlxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICB9KVxcbn1cIn1dLFwic2F2ZWRcIjpmYWxzZSxcInRpdGxlXCI6XCLoh63om4vom4tcIixcInZlcnNpb25cIjowLFwidXJsXCI6XCJodHRwczovL2NkZHlzLnZpcC92b2RkZXRhaWwvMzI0Nzk3Lmh0bWwjaW1tZXJzaXZlVGhlbWUjO2dldDtVVEYtODt7VXNlci1BZ2VudEBNb3ppbGxhLzUuMCAoTGludXjvvJvvvJsgQW5kcm9pZCAxMe+8m++8myBNaSAxMCBQcm8pIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS84OC4wLjQzMjQuMTUyIE1vYmlsZSBTYWZhcmkvNTM3LjM2fVwiLFwiY29sX3R5cGVcIjpcIm1vdmllXzFcIixcImZpbmRfcnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG52YXIgaHRtbCA9IGdldFJlc0NvZGUoKTtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2p4JykpLnJ1bGUpXFxuLy/nur/ot6/lkI3liJfooajnmoTlrprkvY1cXG52YXIgYXJ0cyA9IHBhcnNlRG9tRm9yQXJyYXkoaHRtbCwgJ2JvZHkmJi50YWItaXRlbScpO1xcbiAgXFxuLy/nur/ot6/lkI3liJfooajlkI3np7DnmoTlrprkvY1cXG52YXIgdGFicyA9IFtdO1xcbmZvciAodmFyIGkgaW4gYXJ0cykge1xcbiAgICB0YWJzLnB1c2gocGFyc2VEb21Gb3JIdG1sKGFydHNbaV0sICdzcGFuJiZUZXh0JykpXFxufVxcblxcblxcbi8v5pKt5pS+5YiX6KGo55qE5YiX6KGo55qE5a6a5L2NXFxudmFyIGNvbnRzID0gcGFyc2VEb21Gb3JBcnJheShodG1sLCAnYm9keSYmLm1vZHVsZS1wbGF5LWxpc3QnKTtcXG5cXG5cXG4vL+aSreaUvuWIl+ihqOeahOWIl+ihqOWQjeensOeahOWumuS9jVxcbnZhciBsaXN0cyA9IFtdO1xcbmZvciAodmFyIGkgaW4gY29udHMpIHtcXG4gICAgbGlzdHMucHVzaChwYXJzZURvbUZvckFycmF5KGNvbnRzW2ldLCAnYm9keSYmYScpKVxcbn1cXG5cXG5cXG52YXIg5a+85ryUID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcubW9kdWxlLWluZm8taXRlbSwyJiZUZXh0JykucmVwbGFjZSgvXFxcXC8vZywnICcpLnJlcGxhY2UoJyAgJywnJyk7XFxuXFxudmFyIOS4u+a8lCA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLm1vZHVsZS1pbmZvLWl0ZW0sMSYmVGV4dCcpLnJlcGxhY2UoL1xcXFwvL2csJyAnKS5yZXBsYWNlKCcgICcsJycpO1xcblxcbnZhciDmm7TmlrAgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5tb2R1bGUtaW5mby1pdGVtLDMmJlRleHQnKTtcXG5cXG52YXIg54q25oCBID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcubW9kdWxlLWluZm8taXRlbSw0JiZUZXh0Jyk7XFxuXFxudmFyIOWbvueJhyA9IHBhcnNlRG9tKGh0bWwsICcubGF6eSYmZGF0YS1vcmlnaW5hbCcpO1xcblxcbnZhciDnroDku4sgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5tb2R1bGUtaW5mby1pbnRyb2R1Y3Rpb24tY29udGVudCYmVGV4dCcpLnJlcGxhY2UoJ1vmlLbotbfpg6jliIZdJywnJyk7XFxuXFxuXFxudmFyIENvbG9yID0gXFxcIiNmMTNiNjZhXFxcIjtcXG52YXIgQ29sb3IxID0gXFxcIiMwOThBQzFcXFwiO1xcblxcbmZ1bmN0aW9uIGdldEhlYWQodGl0bGUpIHtcXG4gICAgcmV0dXJuICfigJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPVxcXCInICsgQ29sb3IgKyAnXFxcIj4nICsgdGl0bGUgKyAnPC9mcm9udD48L3N0cm9uZz4nO1xcbn1cXG5sZXQgbGluZV9tb2RlbCA9IDg7XFxubGV0IGxpbmVfdHlwZV9tb2RlbCA9ICdibGFua19ibG9jayc7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IOWvvOa8lCArICdcXFxcbicgKyDkuLvmvJQsXFxuICAgIGRlc2M6IOabtOaWsCArICdcXFxcbicgKyDnirbmgIEsXFxuICAgIHBpY191cmw6IOWbvueJhyxcXG4gICAgdXJsOiBNWV9VUkwsXFxuICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cidcXG59KTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxzbWFsbD48Zm9udCBjb2xvcj1cXFwiI2ZmMTQ4ZThlXFxcIj7nroDku4vvvJonICsg566A5LuLLnN1YnN0cigwLCA1NSkgKyAnLi4uPC9mb250PjxzbWFsbD48Zm9udCBjb2xvcj1cXFwicmVkXFxcIj7or6bmg4U8L2ZvbnQ+PC9zbWFsbD48L3NtYWxsPicsXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHkjJyArICdcXFxcbicgKyDnroDku4sgKyBgQHJ1bGU9anM6dmFyIHJlcyA9IHt9OyB2YXIgZCA9IFtdO2QucHVzaCh7dGl0bGU6J+W9seeJh+eugOS7i++8micrIE1ZX1VSTC5zcGxpdCgnaGlrZXI6Ly9lbXB0eSMnKVsxXSxjb2xfdHlwZTogJ2xvbmdfdGV4dCd9KTtyZXMuZGF0YSA9IGQ7IHNldEhvbWVSZXN1bHQocmVzKTtgLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG59KTtcXG5mb3IgKGxldCBpID0gMDsgaSA8IGxpbmVfbW9kZWw7IGkrKykge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IGxpbmVfdHlwZV9tb2RlbFxcbiAgICB9KVxcbn1cXG5cXG4vL+WkhOeQhuaOqOmAgVRWQm94IHN0YXJ0XFxubGV0IHRmcHVzaCA9IGdldEl0ZW0oJ3dlYnB1c2gnLCAnMCcpO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAoZ2V0SXRlbSgnd2VicHVzaCcsICcwJykgPT0gJzEnID8gJ+WNlembhuaOqOmAgfCfn6InIDogJ+WNlembhuaOqOmAgfCflLQnKSxcXG4gICAgdXJsOiBgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6Z2V0SXRlbSgnd2VicHVzaCcsJzAnKT09JzEnP3NldEl0ZW0oJ3dlYnB1c2gnLCcwJyk6c2V0SXRlbSgnd2VicHVzaCcsJzEnKTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdgLFxcblxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICforr7nva7nlLXop4ZJUCcsXFxuICAgIHVybDogXFxcImlucHV0Oi8vXFxcIiArIGdldEl0ZW0oJ2hpa2VydHZib3hzZXQnLCAnaHR0cDovLycgKyBnZXRJUCgpICsgJzo5OTc4JykgKyBcXFwiLy8vL+ivt+i+k+WFpXR2Ym945o6o6YCBSVDlnLDlnYDvvIzlpoJodHRwOi8vXFxcIiArIGdldElQKCkgKyBcXFwiOjk5NzguanM6c2V0SXRlbSgnaGlrZXJ0dmJveHNldCcsaW5wdXQpO3JlZnJlc2hQYWdlKClcXFwiLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IGdldEl0ZW0oJ2hpa2VydHZib3hzZXQnLCAnJyksXFxuICAgIC8vdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgIHVybDogXFxcImlucHV0Oi8vXFxcIiArIGdldEl0ZW0oJ2hpa2VydHZib3hzZXQnLCAnaHR0cDovLycgKyBnZXRJUCgpICsgJzo5OTc4JykgKyBcXFwiLy8vL+ivt+i+k+WFpXR2Ym945o6o6YCBSVDlnLDlnYDvvIzlpoJodHRwOi8vXFxcIiArIGdldElQKCkgKyBcXFwiOjk5NzguanM6c2V0SXRlbSgnaGlrZXJ0dmJveHNldCcsaW5wdXQpO3JlZnJlc2hQYWdlKClcXFwiLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSk7XFxuXFxudmFyIHBsYXlVcmxzID0gJyc7XFxuZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0cy5sZW5ndGg7IGkrKykge1xcbiAgICB2YXIgbGlzdCA9IGxpc3RzW2ldO1xcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXG4gICAgICAgIGlmIChqID09IGxpc3QubGVuZ3RoIC0gMSkge1xcbiAgICAgICAgICAgIHBsYXlVcmxzICs9IHBhcnNlRG9tRm9ySHRtbChsaXN0W2pdLCAnYSYmVGV4dCcpICsgXFxcIiRcXFwiICsgcGFyc2VEb20obGlzdFtqXSwgJ2EmJmhyZWYnKSArIFxcXCIkJCRcXFwiO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBwbGF5VXJscyArPSBwYXJzZURvbUZvckh0bWwobGlzdFtqXSwgJ2EmJlRleHQnKSArIFxcXCIkXFxcIiArIHBhcnNlRG9tKGxpc3Rbal0sICdhJiZocmVmJykgKyBcXFwiI1xcXCI7XFxuICAgICAgICB9XFxuICAgIH1cXG59XFxuXFxucGxheVVybHMgPSBwbGF5VXJscy5zdWJzdHJpbmcoMCwgcGxheVVybHMubGVuZ3RoIC0gMyk7XFxuLy9sb2cocGxheVVybHMpO1xcblxcbmxldCBwdXNoID0gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICBcXFwibmFtZVxcXCI6IGdldFBhZ2VUaXRsZSgpLFxcbiAgICBcXFwicGljXFxcIjogcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcubGF6eWxvYWQmJmRhdGEtb3JpZ2luYWwnKSxcXG4gICAgXFxcImNvbnRlbnRcXFwiOiBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5tb2R1bGUtaW5mby1pbnRyb2R1Y3Rpb24tY29udGVudCYmVGV4dCcpLFxcbiAgICBcXFwiZnJvbVxcXCI6IHRhYnMuam9pbignJCQkJyksXFxuICAgIFxcXCJ1cmxcXFwiOiBwbGF5VXJscy5yZXBsYWNlKC9cXFxcJi9nLCAn77yG77yGJylcXG59KTtcXG4vL2xvZyhwdXNoKTtcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuaOqOmAgeW9k+WJjemhteWIl+ihqOWIsFRWQm94XFxcIixcXG4gICAgdXJsOiAkKHB1c2gpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9wYWdlL3B1c2g/cHVzaHVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGlucHV0KTtcXG4gICAgfSksXFxuICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCJcXG59KTtcXG5cXG5kLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICB9KVxcbiAgICAvL+WkhOeQhuaOqOmAgVRWQm94IGVuZFxcblxcbmZ1bmN0aW9uIHNldFRhYnModGFicywgdmFyaSkge1xcbiAgICBmb3IgKHZhciBpIGluIHRhYnMpIHtcXG4gICAgICAgIHZhciB1cmwgPSBcXFwiI25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnB1dFZhcignXFxcIiArIHZhcmkgKyBcXFwiJywgJ1xcXCIgKyBpICsgXFxcIicpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnOycjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknXFxcIjtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGdldFZhcih2YXJpLCAnMCcpID09IGkgPyBnZXRIZWFkKHRhYnNbaV0pIDogdGFic1tpXSxcXG4gICAgICAgICAgICB1cmw6IHVybCxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICB9KVxcbiAgICB9XFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxuICAgIH0pXFxufVxcblxcbmZ1bmN0aW9uIHNldExpc3RzKGxpc3RzLCBpbmRleCkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICB9KVxcbn1cXG5pZiAoZ2V0VmFyKCdzaHNvcnQnKSA9PSAnMScpIHtcXG4gICAgdmFyIHN4ID0gJ+KAmOKAmOKAmeKAmTxmb250IGNvbG9yPVxcXCIjMGFhMzQ0XFxcIj7mjpLluo88L2ZvbnQ+PC9zbWFsbD4nICsgJzxzbWFsbD48Zm9udCBjb2xvcj1cXFwiIzBhYTM0NFxcXCI+4oaRPC9mb250Pjwvc21hbGw+JyArICc8c21hbGw+PGZvbnQgY29sb3I9XFxcIiNmZjRjMDBcXFwiPuKGkzwvZm9udD48L3NtYWxsPic7XFxufSBlbHNlIHtcXG4gICAgdmFyIHN4ID0gJ+KAmOKAmOKAmeKAmTxmb250IGNvbG9yPVxcXCIjMGFhMzQ0XFxcIj7mjpLluo88L2ZvbnQ+PC9zbWFsbD4nICsgJzxzbWFsbD48Zm9udCBjb2xvcj1cXFwiI2ZmNGMwMFxcXCI+4oaRPC9mb250Pjwvc21hbGw+JyArICc8c21hbGw+PGZvbnQgY29sb3I9XFxcIiMwYWEzNDRcXFwiPuKGkzwvZm9udD48L3NtYWxsPic7XFxufVxcblxcbmZ1bmN0aW9uIHNldExpc3RzKGxpc3RzLCBpbmRleCkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6ICfigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFwiY29sb3I6JyArIENvbG9yMSArICdcXFwiPjxzbWFsbD7pgInpm4bliJfooag8L3NtYWxsPicgKyAnXFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0PHNwYW4gc3R5bGU9XFxcImZsb2F0OnJpZ2h0XFxcIj4nICsgJzxzbWFsbD4nICsgc3ggKyAnPC9zbWFsbD4nLFxcbiAgICAgICAgdXJsOiBgI25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOmxldCBjb25mID0gZ2V0VmFyKCdzaHNvcnQnKTtpZihjb25mPT0nMScpe3B1dFZhcih7a2V5OidzaHNvcnQnLCB2YWx1ZTonMCd9KTt9ZWxzZXtwdXRWYXIoe2tleTonc2hzb3J0JywgdmFsdWU6JzEnfSl9O3JlZnJlc2hQYWdlKCk7J3RvYXN0Oi8v5YiH5o2i5o6S5bqP5oiQ5YqfJzsnI25vSGlzdG9yeSNoaWtlcjovL2VtcHR5J2AsXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxuICAgIH0pXFxuICAgIHZhciBsaXN0ID0gbGlzdHNbaW5kZXhdO1xcblxcbiAgICBpZiAoZ2V0VmFyKCdzaHNvcnQnKSA9PSAnMScpIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgZm9yICh2YXIgaiA9IGxpc3QubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHtcXG4gICAgICAgICAgICAgICAgaWYgKHRmcHVzaCA9PSAnMCcpIHtcXG4gICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBhcnNlRG9tRm9ySHRtbChsaXN0W2pdLCAnYSYmVGV4dCcpLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBwYXJzZURvbShsaXN0W2pdLCAnYSYmaHJlZicpICsgbGF6eSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogbGlzdC5sZW5ndGggPiA0ID8gJ3RleHRfNScgOiAndGV4dF8yJ1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgdXJseCA9ICdoaWtlcjovL3BhZ2UvcHVzaD9wdXNodXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJuYW1lXFxcIjogZ2V0UGFnZVRpdGxlKCkgKyBwYXJzZURvbUZvckh0bWwobGlzdFtqXSwgJ2EmJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFwicGljXFxcIjogcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcubGF6eWxvYWQmJmRhdGEtb3JpZ2luYWwnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFwiY29udGVudFxcXCI6IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLm1vZHVsZS1pbmZvLWludHJvZHVjdGlvbi1jb250ZW50JiZUZXh0JyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IHBhcnNlRG9tKGxpc3Rbal0sICdhJiZocmVmJylcXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBleHRyYXggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHBhcnNlRG9tKGxpc3Rbal0sICdhJiZocmVmJylcXG4gICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwYXJzZURvbUZvckh0bWwobGlzdFtqXSwgJ2EmJlRleHQnKS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdXJseCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogbGlzdC5sZW5ndGggPiA0ID8gJ3RleHRfNScgOiAndGV4dF8yJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYTogZXh0cmF4XFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+ayoeaciemAiembhuWTn++8jOS4jeS/oeeCueWbvueJh+WOu+eci+eci/CfkYAnLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xcbiAgICAgICAgICAgICAgICBpZiAodGZwdXNoID09ICcwJykge1xcbiAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGFyc2VEb21Gb3JIdG1sKGxpc3Rbal0sICdhJiZUZXh0JykucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHBhcnNlRG9tKGxpc3Rbal0sICdhJiZocmVmJykgKyBsYXp5LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBsaXN0Lmxlbmd0aCA+IDQgPyAndGV4dF81JyA6ICd0ZXh0XzInXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciB1cmx4ID0gJ2hpa2VyOi8vcGFnZS9wdXNoP3B1c2h1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcIm5hbWVcXFwiOiBnZXRQYWdlVGl0bGUoKSArIHBhcnNlRG9tRm9ySHRtbChsaXN0W2pdLCAnYSYmVGV4dCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJwaWNcXFwiOiBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbCcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJjb250ZW50XFxcIjogcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuc2hvdy1kZXNjJiZUZXh0JyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IHBhcnNlRG9tKGxpc3Rbal0sICdhJiZocmVmJylcXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBleHRyYXggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHBhcnNlRG9tKGxpc3Rbal0sICdhJiZocmVmJylcXG4gICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwYXJzZURvbUZvckh0bWwobGlzdFtqXSwgJ2EmJlRleHQnKS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdXJseCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogbGlzdC5sZW5ndGggPiA0ID8gJ3RleHRfNScgOiAndGV4dF8yJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYTogZXh0cmF4XFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+ayoeaciemAiembhuWTn++8jOS4jeS/oeeCueWbvueJh+WOu+eci+eci/CfkYAnLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuXFxuICAgIH1cXG59XFxuc2V0VGFicyh0YWJzLCBNWV9VUkwpO1xcbnNldExpc3RzKGxpc3RzLCBnZXRWYXIoTVlfVVJMLCAnMCcpKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJzxicj4nLFxcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCdcXG59KTtcXG5zZXRSZXN1bHQoZCk7XCIsXCJncm91cFwiOlwi6KeG6aKRXCIsXCJ1YVwiOlwibW9iaWxlXCIsXCJwcmVSdWxlXCI6XCJcIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5o6o6YCBXFxcIixcXFwicGF0aFxcXCI6XFxcInB1c2hcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5sZXQgaXRlbXMgPSBbXTtcXFxcbmxldCBwdXNoaW4gPSBkZWNvZGVVUklDb21wb25lbnQoZ2V0UGFyYW0oXFxcXFxcXCJwdXNodXJsXFxcXFxcXCIpKTtcXFxcbmxldCB0dmlwID0gZ2V0SXRlbSgnaGlrZXJ0dmJveHNldCcsICcnKTtcXFxcblxcXFxuaXRlbXMucHVzaCh7XFxcXG4gICAgdGl0bGU6ICflvZPliY1JUO+8micgKyB0dmlwLFxcXFxuICAgIHVybDogXFxcXFxcXCJpbnB1dDovL1xcXFxcXFwiICsgZ2V0SXRlbSgnaGlrZXJ0dmJveHNldCcsICdodHRwOi8vJyArIGdldElQKCkgKyAnOjk5NzgnKSArIFxcXFxcXFwiLy8vL+ivt+i+k+WFpVRWQm9456uv55qESVDlnLDlnYDvvIzlpoJodHRwOi8vXFxcXFxcXCIgKyBnZXRJUCgpICsgXFxcXFxcXCI6OTk3OC5qczpzZXRJdGVtKCdoaWtlcnR2Ym94c2V0JyxpbnB1dCk7cmVmcmVzaFBhZ2UoKVxcXFxcXFwiLFxcXFxuICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxcXG59KTtcXFxcbnZhciBwdXJsID0gcHVzaGluO1xcXFxuXFxcXG5pZiAocHVzaGluLmluY2x1ZGVzKCdcXFxcXFxcXG4nKSAmJiAhcHVzaGluLnN0YXJ0c1dpdGgoJ3snKSkge1xcXFxuICAgIHB1cmwgPSBwdXNoaW4ucmVwbGFjZShcXFxcXFxcIlxcXFxcXFxcblxcXFxcXFwiLCAnJCcpO1xcXFxufVxcXFxuaWYgKHB1c2hpbi5zdGFydHNXaXRoKCdodHRwJykgJiYgcHVzaGluLmluY2x1ZGVzKCc7eycpKSB7XFxcXG4gICAgcHVybCA9IEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICAgICAgXFxcXFxcXCJuYW1lXFxcXFxcXCI6IFxcXFxcXFwi5rW36ZiU55u06ZO+5o6o6YCBXFxcXFxcXCIsXFxcXG4gICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IHB1c2hpblxcXFxuICAgIH0pXFxcXG59XFxcXG5pZiAocHVzaGluLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vd3d3LmFsaXl1bmRyaXZlLmNvbS9zLycpKSB7XFxcXG4gICAgbGV0IHJlZnRva2VuID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9pY3kvaWN5LWFsaS10b2tlbi5qc29uJywge30pKVswXS5yZWZyZXNoX3Rva2VuO1xcXFxuICAgIHB1cmwgPSBKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IHB1c2hpbixcXFxcbiAgICAgICAgXFxcXFxcXCJyZWZyZXNoX3Rva2VuXFxcXFxcXCI6IHJlZnRva2VuXFxcXG4gICAgfSlcXFxcbn1cXFxcbmlmIChwdXNoaW4uaW5jbHVkZXMoJzo1MjAyMCcpKSB7XFxcXG4gICAgaWYgKHB1c2hpbi5pbmNsdWRlcygncmVkaXJlY3RQbGF5VXJsJykpIHtcXFxcbiAgICAgICAgcHVybCA9IEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibmFtZVxcXFxcXFwiOiBcXFxcXFxcIua1t+mYlOaKleWxj+ebtOmTvlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogcHVzaGluXFxcXG4gICAgICAgIH0pXFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgcHVybCA9IEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibmFtZVxcXFxcXFwiOiBcXFxcXFxcIua1t+mYlOe9kemhteaKleWxj1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogcHVzaGluXFxcXG4gICAgICAgIH0pXFxcXG4gICAgfVxcXFxufVxcXFxuXFxcXG4vL2xvZygn5o6o6YCBJytwdXJsKTtcXFxcbnZhciBzdGF0ZSA9IHJlcXVlc3QodHZpcCArICcvYWN0aW9uJywge1xcXFxuICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxcXFxuICAgICAgICAvLydYLVJlcXVlc3RlZC1XaXRoJzogJ1hNTEh0dHBSZXF1ZXN0JyxcXFxcbiAgICAgICAgJ1JlZmVyZXInOiB0dmlwXFxcXG4gICAgfSxcXFxcbiAgICB0aW1lb3V0OiAyMDAwLFxcXFxuICAgIGJvZHk6ICdkbz1wdXNoJnVybD0nICsgcHVybC5yZXBsYWNlKC9cXFxcXFxcXCYvZywgJ++8hu+8hicpLFxcXFxuICAgIG1ldGhvZDogJ1BPU1QnXFxcXG59KTtcXFxcbi8vbG9nKHN0YXRlKTtcXFxcbmlmIChzdGF0ZSA9PSAnb2snKSB7XFxcXG4gICAgLy9sb2coc3RhdGUpO1xcXFxuICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogXFxcXFxcXCLinIVcXFxcXFxcIiArIHN0YXRlLFxcXFxuICAgICAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0X2NlbnRlcl8xXFxcXFxcXCJcXFxcbiAgICB9KTtcXFxcbn0gZWxzZSB7XFxcXG4gICAgLy9sb2coc3RhdGUpO1xcXFxuICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogXFxcXFxcXCLinY5cXFxcXFxcIiArIHN0YXRlLFxcXFxuICAgICAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0X2NlbnRlcl8xXFxcXFxcXCJcXFxcbiAgICB9KTtcXFxcblxcXFxufVxcXFxuc2V0UmVzdWx0KGl0ZW1zKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLop6PmnpBcXFwiLFxcXCJwYXRoXFxcIjpcXFwianhcXFwiLFxcXCJydWxlXFxcIjpcXFwibGF6eSA9ICQoXFxcXFxcXCJcXFxcXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgIHZhciBwbGF5ZXIgPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pO1xcXFxuICAgIHZhciB1cmwgPSBwbGF5ZXIudXJsO1xcXFxudmFyIGZyb20gPSBwbGF5ZXIuZnJvbTtcXFxcbmlmICgvbTN1OHxtcDQvLnRlc3QoZnJvbSkpIHtcXFxcblxcXFxuICAgICAgICBpZiAoL2x6fGZmenkvLnRlc3QodXJsKSkge1xcXFxyXFxcXG4gICAgICAgICAgIGV2YWxQcml2YXRlSlMoJ1R1U0pkcG5aYXFYR1J2dk9GUlIrM1M3ZVpVamVDMUNmZkZiSGhvbzBlNSthWjdLYXY5S1pWWnNma3dLa1VGZjR3emtUcmlvNGpBUkg2WndUWHBSbEgza0k0M3JXQ1RVNFBkWWFtMTVwUFlpcTVjVzBINmdVWGhKVzd0bUp0eUxLZGplMUthcEJJR3ZXYVhJMFdtb0hvTUVGQlYvTUFpY21QZ3B5QUpaanNjNUVtdmRoMW43MldQUGl5aFlOQ29Nblo5SnBQNmFFc1dRRW1RTWNBalB4Z3M2VU12c08vUE93NUNjcjc5c0p6aWNzdC9MbDNJT2o1TStQdnFLclRkNjE0N1ZHUEV6dGpzVWVFdWRBU3pUY24rOTVDOVZnMXV3VXZkOXowdzVxc1Bib1FoNW9aaFR5czRSUUV6QkdJcXVsUU1BQVFZNElGa2FuV1g5NUVJTlpEWDUwbUFpT1NHeUlkMDZIc3ByQWVsL2ZoN3d5TVhkbWV1K1MxNVhuY083VXV1ak1PbUdnU0FFTi9Tc2MyZXpreGxHdnBkeWhibDRwNERhUXVnL25yZ3N3aFpqNzUvTTUzc0tZWDJ6UmdPU1Q3Q01qVi8rcFBKZDFLUDkzNHV1L1ZzQlFVRzY5bVdOK0thRldoS253QlBoVjlxZHFHei9MU0puRnhJdlE4a0J4JylcXFxcbiAgICAgICAgICAgcmV0dXJuIHUgKyBcXFxcXFxcIj91cmw9XFxcXFxcXCIgKyBiYXNlNjRFbmNvZGUodXJsKSArIFxcXFxcXFwiIy5tM3U4XFxcXFxcXCI7XFxcXHJcXFxcbiAgICAgICAgfVxcXFxyXFxcXG4gICAgICAgIHJldHVybiB1cmxcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICB2YXIgYXBpID0gXFxcXFxcXCJodHRwczovL2JmcS5jZGR5cy52aXAvYmZxL0FQSS5waHBcXFxcXFxcIjtcXFxcbiAgICB2YXIgcGFyc2UgPSBcXFxcXFxcImh0dHBzOi8vYmZxLmNkZHlzLnZpcC9iZnEvP3VybD1cXFxcXFxcIiArIHVybDtcXFxcbiAgICBsb2cocGFyc2UpO1xcXFxuICAgIHZhciByZWYgPSBcXFxcXFxcIlxcXFxcXFwiXFxcXG4gICAgaWYgKHJlZikge1xcXFxuICAgICAgICB2YXIganhIdG1sID0gcmVxdWVzdChwYXJzZSwge1xcXFxuICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgIFxcXFxcXFwiUmVmZXJlclxcXFxcXFwiOiByZWZcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgdmFyIGp4SHRtbCA9IHJlcXVlc3QocGFyc2UpO1xcXFxuICAgIH1cXFxcbiAgICBldmFsKGp4SHRtbC5tYXRjaCgvdmFyIGNvbmZpZyA9IHtbXFxcXFxcXFxzXFxcXFxcXFxTXSo/fS8pWzBdICsgXFxcXFxcXCJcXFxcXFxcIik7XFxcXG4gICAgdmFyIGtleSA9IGNvbmZpZy5rZXk7XFxcXG4gICAgdmFyIHRpbWUgPSBjb25maWcudGltZTtcXFxcbiAgICB2YXIganNvbiA9IEpTT04ucGFyc2UocmVxdWVzdChhcGksIHtcXFxcbiAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IE1PQklMRV9VQVxcXFxuICAgICAgICB9LFxcXFxuICAgICAgICBib2R5OiBcXFxcXFxcInVybD1cXFxcXFxcIiArIHVybCArIFxcXFxcXFwiJnRpbWU9XFxcXFxcXCIgKyB0aW1lICsgXFxcXFxcXCIma2V5PVxcXFxcXFwiICsga2V5LFxcXFxuICAgICAgICBtZXRob2Q6IFxcXFxcXFwiUE9TVFxcXFxcXFwiXFxcXG4gICAgfSkpO1xcXFxuICAgIHZhciB1cmwgPSBqc29uLmNvZGUgPT0gMjAwID8ganNvbi51cmwgOiBcXFxcXFxcIjQwNFxcXFxcXFwiO1xcXFxuICAgIGlmICh1cmwgPT0gXFxcXFxcXCI0MDRcXFxcXFxcIikge1xcXFxuICAgICAgICByZXR1cm4gXFxcXFxcXCJ0b2FzdDovL1xcXFxcXFxcdTg5ZTNcXFxcXFxcXHU2NzkwXFxcXFxcXFx1NTkzMVxcXFxcXFxcdThkMjVcXFxcXFxcXHVmZjBjXFxcXFxcXFx1OGJmN1xcXFxcXFxcdTkxY2RcXFxcXFxcXHU2NWIwXFxcXFxcXFx1OTE0ZFxcXFxcXFxcdTdmNmVcXFxcXFxcIjtcXFxcbiAgICB9XFxcXG4gICAgfVxcXFxuICAgIFxcXFxuICAgIGlmICh1cmwuaW5kZXhPZihcXFxcXFxcImJpbGliaWxpXFxcXFxcXCIpID4gLTEpIHtcXFxcbiAgICAgICAgcmV0dXJuIHVybCArIFxcXFxcXFwiI2lzVmlkZW89dHJ1ZSNcXFxcXFxcIiArIFxcXFxcXFwiO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH1cXFxcXFxcIjtcXFxcbiAgICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKFxcXFxcXFwibWd0dlxcXFxcXFwiKSA+IC0xKSB7XFxcXG4gICAgICAgIHJldHVybiB1cmwgKyBcXFxcXFxcIiNpc1ZpZGVvPXRydWUjXFxcXFxcXCIgKyBcXFxcXFxcIjt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9XFxcXFxcXCI7XFxcXG4gICAgfSBlbHNlIGlmICh1cmwuaW5kZXhPZihcXFxcXFxcIml4aWd1YVxcXFxcXFwiKSA+IC0xKSB7XFxcXG4gICAgICAgIHJldHVybiB1cmwgKyBcXFxcXFxcIiNpc1ZpZGVvPXRydWUjXFxcXFxcXCIgKyBcXFxcXFxcIiMubXA0O3tSZWZlcmVyQGh0dHBzOi8vd3d3Lml4aWd1YS5jb20vJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfVxcXFxcXFwiO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHJldHVybiAvc29odS8udGVzdCh1cmwpID8gdXJsICsgXFxcXFxcXCI7e1VzZXItQWdlbnRATW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCl9XFxcXFxcXCIgOiB1cmw7XFxcXG4gICAgfVxcXFxufSk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5Yqo5oCBXFxcIixcXFwicGF0aFxcXCI6XFxcImR0MVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJjb25zdCBlbXB0eSA9IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG5cXFxcbmlmICh0eXBlb2Yo5ou85o6l5YiG57G7KSAhPSAndW5kZWZpbmVkJyAmJiDmi7zmjqXliIbnsbsgIT0gJycpIHtcXFxcbiAgICB2YXIgY2F0ZWdvcmllcyA9IHBkZmEoaHRtbCwg5aSn57G75a6a5L2NKS5jb25jYXQocGRmYShodG1sLCDmi7zmjqXliIbnsbspKVxcXFxufSBlbHNlIHtcXFxcbiAgICB2YXIgY2F0ZWdvcmllcyA9IHBkZmEoaHRtbCwg5aSn57G75a6a5L2NKVxcXFxufVxcXFxuXFxcXG5sZXQgaW5pdF9jYXRlID0gW11cXFxcblxcXFxuZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XFxcXG4gICAgaW5pdF9jYXRlLnB1c2goXFxcXFxcXCIwXFxcXFxcXCIpXFxcXG59XFxcXG5cXFxcbmNvbnN0IGZvbGQgPSBnZXRWYXIoTVlfUlVMRS5ncm91cCwgXFxcXFxcXCIwXFxcXFxcXCIpXFxcXG5jb25zdCBjYXRlX3RlbXBfanNvbiA9IGdldFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUpKVxcXFxuY29uc3QgY2F0ZV90ZW1wID0gSlNPTi5wYXJzZShjYXRlX3RlbXBfanNvbilcXFxcblxcXFxuaWYgKHBhcnNlSW50KHBhZ2UpID09PSAxKSB7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IGZvbGQgPT09ICcxJyA/ICfigJzigJzigJ3igJ08Yj4nICsgJ/Cfk6wnLmZvbnRjb2xvcihcXFxcXFxcIiNGRjAwMDBcXFxcXFxcIikgKyAnPC9iPicgOiAn4oCc4oCc4oCd4oCdPGI+JyArICfwn5OqJy5mb250Y29sb3IoXFxcXFxcXCIjMWFhZDE5XFxcXFxcXCIpICsgJzwvYj4nLFxcXFxuICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgoZm9sZCkgPT4ge1xcXFxuICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUuZ3JvdXAsIGZvbGQgPT09ICcxJyA/ICcwJyA6ICcxJyk7XFxcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxcXG4gICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgfSwgZm9sZCksXFxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxcXG4gICAgfSlcXFxcbiAgICBjYXRlZ29yaWVzLmZvckVhY2goKGNhdGVnb3J5LCBpbmRleCkgPT4ge1xcXFxuICAgICAgICBsZXQgc3ViX2NhdGVnb3JpZXMgPSBwZGZhKGNhdGVnb3J5LCDlsI/nsbvlrprkvY0pO1xcXFxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcXFxcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0sIGtleSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IHBkZmgoaXRlbSwg5YiG57G75qCH6aKYKVxcXFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yo5o6S6ZmkKSAhPSAndW5kZWZpbmVkJyAmJiDmjpLpmaQgIT0gJycpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB0aXRsZS5yZXBsYWNlKG5ldyBSZWdFeHAo5o6S6ZmkLCBcXFxcXFxcImdcXFxcXFxcIiksIFxcXFxcXFwiXFxcXFxcXCIpXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXkudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2luZGV4XSA/IFxcXFxcXFwi4oCc4oCc4oCd4oCdXFxcXFxcXCIgKyB0aXRsZS5mb250Y29sb3Io5YiG57G76aKc6ImyKSA6IHRpdGxlLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQocGQoaXRlbSwg5YiG57G76ZO+5o6lKSArICcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfY2F0ZSA9IFtdXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuY2F0ZV90ZW1wLmZvckVhY2goKGNhdGUsIGluZGV4KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2NhdGUucHVzaChpbmRleCA9PT0gMCA/IHBhcmFtcy5rZXkudG9TdHJpbmcoKSA6IFxcXFxcXFwiMFxcXFxcXFwiKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShuZXdfY2F0ZSkpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS51cmwsIGlucHV0KVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlX3RlbXA6IGNhdGVfdGVtcCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleToga2V5LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogcGFnZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImJsYW5rX2Jsb2NrXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICB9IGVsc2UgaWYgKGZvbGQgPT09ICcxJykge1xcXFxuICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXMuZm9yRWFjaCgoaXRlbSwga2V5KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChpdGVtLCDliIbnsbvmoIfpopgpXFxcXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZijmjpLpmaQpICE9ICd1bmRlZmluZWQnICYmIOaOkumZpCAhPSAnJykge1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHRpdGxlLnJlcGxhY2UobmV3IFJlZ0V4cCjmjpLpmaQsIFxcXFxcXFwiZ1xcXFxcXFwiKSwgXFxcXFxcXCJcXFxcXFxcIilcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGtleS50b1N0cmluZygpID09PSBjYXRlX3RlbXBbaW5kZXhdID8gXFxcXFxcXCLigJzigJzigJ3igJ1cXFxcXFxcIiArIHRpdGxlLmZvbnRjb2xvcijliIbnsbvpopzoibIpIDogdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChwZChpdGVtLCDliIbnsbvpk77mjqUpICsgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcykgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNhdGVfdGVtcFtwYXJhbXMuaW5kZXhdID0gcGFyYW1zLmtleS50b1N0cmluZygpXFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShwYXJhbXMuY2F0ZV90ZW1wKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnVybCwgaW5wdXQpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVfdGVtcDogY2F0ZV90ZW1wLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYWdlLFxcXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXFxcbiAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiYmxhbmtfYmxvY2tcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgIH1cXFxcbiAgICB9KVxcXFxufVxcXCJ9XVwifSIsInBpY1VybCI6Imh0dHBzOi8vcGljMS56eWtwaWMuY29tL3VwbG9hZC92b2QvMjAyMi0wMy0yNC8xNjQ4MDk2MzY1My5qcGdAUmVmZXJlcj0iLCJ0aXRsZSI6IuWNiuaYr+icnOezluWNiuaYr+S8pCJ9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement