xiaomianao666

邀您一起看:最强资源[秒播]

Sep 13th, 2024
500
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥最强资源[秒播]@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuW/q+eMq1wiLFwicGF0aFwiOlwia3VhaW1hby52XCIsXCJydWxlXCI6XCJqczpcXG5jb25zdCBrZXkgPSBcXFwia3VhaW1hb1xcXCI7XFxuYWRkTGlzdGVuZXIoXFxcIm9uQ2xvc2VcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxuY29uc3QgQ3J5cHRvVXRpbCA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9hc3NldHMvY3J5cHRvLWphdmEuanNcXFwiKTtcXG5cXG5jb25zdCBkID0gW107XFxuXFxuY29uc3QgY2xhc3NMaXN0ID0gW1xcXCLng63pl6hcXFwiLCBcXFwi5bm/5Zy6XFxcIl07XFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFwiOnR5cGVcXFwiLCBjbGFzc0xpc3RbMF0pO1xcbmlmIChNWV9QQUdFID09PSAxKSB7XFxuICAgIGNsYXNzTGlzdC5mb3JFYWNoKGl0ID0+IGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFwi4oCc4oCcXFxcIiArIGl0ICsgXFxcIuKAneKAnVxcXCIgOiBpdCxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICB1cmw6ICQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKGl0LCBrZXkpID0+IHB1dE15VmFyKGtleSwgaXQpIHx8IHJlZnJlc2hQYWdlKCkgfHwgXFxcImhpa2VyOi8vZW1wdHlcXFwiLCBpdCwga2V5ICsgXFxcIjp0eXBlXFxcIilcXG4gICAgfSkpO1xcbn1cXG5cXG5mdW5jdGlvbiBlbmNyeXB0KHRleHQpIHtcXG4gICAgbGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleChcXFwiMzYzMjM1MzIzMDMyNjYzOTMxMzQzOTZkNjE2ZjZkNjlcXFwiKTtcXG4gICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXCIzNTY1NjY2NDMzNjYzNjMwMzYzMDY1NmQ2MTZmNmQ2OVxcXCIpO1xcbiAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZW5jcnlwdCh0ZXh0LCBrZXksIHtcXG4gICAgICAgIGl2OiBpdixcXG4gICAgICAgIG1vZGU6IFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXCJcXG4gICAgfSk7XFxuICAgIHJldHVybiBlbmNyeXB0ZWQudG9IZXgoKS50b1VwcGVyQ2FzZSgpO1xcbn1cXG5cXG5mdW5jdGlvbiBkZWNyeXB0KHRleHQpIHtcXG4gICAgbGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcIjYyNTIwMmY5MTQ5bWFvbWlcXFwiKTtcXG4gICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFwiNWVmZDNmNjA2MGVtYW9taVxcXCIpO1xcbiAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZGVjcnlwdChDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgodGV4dCksIGtleSwge1xcbiAgICAgICAgaXY6IGl2LFxcbiAgICAgICAgbW9kZTogXFxcIkFFUy9DQkMvUGtjczdQYWRkaW5nXFxcIlxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGVuY3J5cHRlZC50b1N0cmluZygpO1xcbn1cXG5sZXQgcmVxRGF0YSA9IGVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoe1xcbiAgICBwZXJQYWdlOiAxOSxcXG4gICAgcGFnZTogTVlfUEFHRVxcbn0pKTtcXG5sZXQgc291cmNlID0gcG9zdChNWV9QQVJBTVMuYXBpICsgXFxcIi9hcGkvdmlkZW9zL1xcXCIgKyAodHlwZSA9PT0gXFxcIueDremXqFxcXCIgPyBcXFwibGlzdEhvdFxcXCIgOiBcXFwibGlzdEFsbFxcXCIpLCB7XFxuICAgIGJvZHk6IHtcXG4gICAgICAgIGRhdGE6IHJlcURhdGEsXFxuICAgICAgICBzaWc6IG1kNShcXFwiZGF0YT1cXFwiICsgcmVxRGF0YSArIFxcXCJtYW9taV9wYXNzX3h5elxcXCIpXFxuICAgIH1cXG59KTtcXG5sZXQgbGlzdCA9IEpTT04ucGFyc2UoZGVjcnlwdChzb3VyY2UpKS5kYXRhLmxpc3Q7XFxuZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcbiAgICBpZiAoaXQuaXNfY2F0X2FkcykgY29udGludWU7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogU3RyaW5nKGl0Lm12X2NyZWF0ZWQpLnNwbGl0KFxcXCIgXFxcIilbMF0gKyBcXFwiXFxcXG5cXFwiICsgaXQubXZfdGl0bGUsXFxuICAgICAgICBwaWNfdXJsOiBpdC5tdl9pbWdfdXJsLFxcbiAgICAgICAgdXJsOiBpdC5tdl9wbGF5X3VybC5yZXBsYWNlKC9odHRwPzpcXFxcL1xcXFwvLio/XFxcXC8vLCBcXFwiaHR0cHM6Ly9vd2VyYnNkLmh4cXF6dS54eXovXFxcIiksXFxuICAgICAgICBjb2xfdHlwZTogXFxcInBpY18yX2NhcmRcXFwiXFxuICAgIH0pO1xcbn1cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLni5Dni7jop4bpopFcIixcInBhdGhcIjpcImh1bGkudlwiLFwicnVsZVwiOlwianM6XFxuY29uc3Qga2V5ID0gXFxcImh1bGlcXFwiO1xcbmFkZExpc3RlbmVyKFxcXCJvbkNsb3NlXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcbmNvbnN0IFVSTCA9IE1ZX1BBUkFNUy5hcGkgKyBcXFwiL1xcXCIgKyBNWV9QQVJBTVMua2V5O1xcbmNvbnN0IGNsYXNzSHRtbCA9IGdldE15VmFyKGtleStcXFwiOmNsYXNzXFxcIixcXFwiXFxcIil8fGZldGNoKFVSTCArIFxcXCIvbGlzdC5waHBcXFwiKTtcXG5wdXRNeVZhcihrZXkrXFxcIjpjbGFzc1xcXCIsY2xhc3NIdG1sKTtcXG5jb25zdCBjbGFzc05hbWUgPSBwZGZhKGNsYXNzSHRtbCwgXFxcImJvZHkmJmgxXFxcIikubWFwKHYgPT4gcGRmaCh2LCBcXFwiVGV4dFxcXCIpKTtcXG5jb25zdCBjbGFzc0tleSA9IHBkZmEoY2xhc3NIdG1sLCBcXFwiYm9keSYmZHpcXFwiKS5tYXAodiA9PiBwZGZoKHYsIFxcXCJUZXh0XFxcIikpO1xcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjp0eXBlXFxcIiwgY2xhc3NLZXlbMF0pO1xcbmxldCBkID0gW107XFxuaWYgKE1ZX1BBR0UgPT09IDEpIHtcXG4gICAgY2xhc3NLZXkuZm9yRWFjaCgoaXQsIGkpID0+IGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFwi4oCc4oCcXFxcIiArIGNsYXNzTmFtZVtpXSArIFxcXCLigJ3igJ1cXFwiIDogY2xhc3NOYW1lW2ldLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsIGl0LCBrZXkgKyBcXFwiOnR5cGVcXFwiKVxcbiAgICB9KSk7XFxufVxcbmxldCBsaXN0ID0gSlNPTi5wYXJzZShmZXRjaChVUkwgKyBcXFwiL2xpc3QucGhwP3M9XFxcIiArIHR5cGUgKyBcXFwiJnA9XFxcIiArIE1ZX1BBR0UpKS5kYXRhO1xcblxcbmZvciAobGV0IGl0IG9mIGxpc3QpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBpdC50aXR0bGUsXFxuICAgICAgICBwaWNfdXJsOiBpdC5pbWcsXFxuICAgICAgICB1cmw6IGl0LnVybCxcXG4gICAgICAgIGRlc2M6IGl0LnRpbWUsXFxuICAgICAgICBjb2xfdHlwZTogXFxcIm1vdmllXzJcXFwiXFxuICAgIH0pO1xcbn1cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlpJzljYrmmZrmiqVcIixcInBhdGhcIjpcInllYmFuLnZcIixcInJ1bGVcIjpcImpzOlxcbmNvbnN0IGtleSA9IFxcXCJ5ZWJhblxcXCI7XFxuYWRkTGlzdGVuZXIoXFxcIm9uQ2xvc2VcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxubGV0IGQgPSBbXTtcXG5sZXQgY2xhc3NMaXN0ID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjpjbGFzc1xcXCIsIFxcXCJcXFwiKSB8fCBmZXRjaChcXFwiaHR0cHM6Ly9hcGkyLmZmdWRpbmdkYW5nLmNvbTo5MDAyL2xlaXhpbmcucGhwP3Q9XFxcIiArIE1ZX1BBUkFNUy5wYWdlVGl0bGUpO1xcbnB1dE15VmFyKGtleSArIFxcXCI6Y2xhc3NcXFwiLCBjbGFzc0xpc3QpO1xcbmNsYXNzTGlzdCA9IGNsYXNzTGlzdC5zcGxpdChcXFwiLVxcXCIpO1xcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjp0eXBlXFxcIiwgY2xhc3NMaXN0WzBdKTtcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcbiAgICBjbGFzc0xpc3QuZm9yRWFjaChpdCA9PiBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcIuKAnOKAnFxcXCIgKyBpdCArIFxcXCLigJ3igJ1cXFwiIDogaXQsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXCJoaWtlcjovL2VtcHR5XFxcIiwgaXQsIGtleSArIFxcXCI6dHlwZVxcXCIpXFxuICAgIH0pKTtcXG59XFxubGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1BBUkFNUy5hcGkgKyBcXFwiL2FwaS96aGNtcHQucGhwP3Q9XFxcIiArIHR5cGUgKyBcXFwiJnA9XFxcIiArIE1ZX1BBR0UgKyBcXFwiJnNqPTFcXFwiKSkuZGF0YTtcXG5cXG5mb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogaXQuYmlhb3RpLFxcbiAgICAgICAgcGljX3VybDogaXQudHVwaWFuLFxcbiAgICAgICAgdXJsOiBpdC5kaXpoaSxcXG4gICAgICAgIGRlc2M6IGl0LnNoaWppYW4gKyBcXFwiXFxcXHRcXFwiICsgaXQubGVpeGluZyxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwibW92aWVfMlxcXCJcXG4gICAgfSk7XFxufVxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueZvuiKseekvlwiLFwicGF0aFwiOlwiYmFpaHVhLnZcIixcInJ1bGVcIjpcImpzOlxcbmNvbnN0IGtleSA9IFxcXCJiYWlodWFcXFwiO1xcbmFkZExpc3RlbmVyKFxcXCJvbkNsb3NlXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcblxcbmNvbnN0IGNsYXNzSHRtbCA9IGdldE15VmFyKGtleSArIFxcXCI6Y2xhc3NcXFwiLCBcXFwiXFxcIikgfHwgZmV0Y2goTVlfUEFSQU1TLmFwaSArIFxcXCIvdm9kX2xpc3QucGhwP3A9XFxcIiArIE1ZX1BBUkFNUy5rZXksIHtcXG4gICAgaGVhZGVyczoge1xcbiAgICAgICAgYWNjZXB0OiBcXFwidGV4dC9odG1sLCBhcHBsaWNhdGlvbi94aHRtbCt4bWwsIGFwcGxpY2F0aW9uL3htbDsgcT0wLjksICovKjsgcT0wLjhcXFwiXFxuICAgIH1cXG59KTtcXG4vL2xvZyhjbGFzc0h0bWwpXFxucHV0TXlWYXIoa2V5ICsgXFxcIjpjbGFzc1xcXCIsIGNsYXNzSHRtbCk7XFxubGV0IGFyciA9IHBkZmEoY2xhc3NIdG1sLCBcXFwiLnN3aXBlci13cmFwcGVyLDEmJmFcXFwiKS5zbGljZSgxKTtcXG5cXG5jb25zdCBjbGFzc05hbWUgPSBhcnIubWFwKHYgPT4gcGRmaCh2LCBcXFwiVGV4dFxcXCIpKTtcXG5jb25zdCBjbGFzc0tleSA9IGFyci5tYXAodiA9PiBwZGZoKHYsIFxcXCJhJiZocmVmXFxcIikpO1xcblxcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjp0eXBlXFxcIiwgY2xhc3NLZXlbMF0pO1xcblxcbmxldCBkID0gW107XFxuaWYgKE1ZX1BBR0UgPT09IDEpIHtcXG4gICAgY2xhc3NLZXkuZm9yRWFjaCgoaXQsIGkpID0+IGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFwi4oCc4oCcXFxcIiArIGNsYXNzTmFtZVtpXSArIFxcXCLigJ3igJ1cXFwiIDogY2xhc3NOYW1lW2ldLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsIGl0LCBrZXkgKyBcXFwiOnR5cGVcXFwiKVxcbiAgICB9KSk7XFxufVxcbmxldCBsaXN0ID0gcGRmYShmZXRjaChNWV9QQVJBTVMuYXBpICsgdHlwZSArIFxcXCImcGFnZT1cXFwiICsgTVlfUEFHRSwge1xcbiAgICBoZWFkZXJzOiB7XFxuICAgICAgICBhY2NlcHQ6IFxcXCJ0ZXh0L2h0bWwsIGFwcGxpY2F0aW9uL3hodG1sK3htbCwgYXBwbGljYXRpb24veG1sOyBxPTAuOSwgKi8qOyBxPTAuOFxcXCJcXG4gICAgfVxcbn0pLCBcXFwiYm9keSYmLmxlby12aWRlby1pdGVtXFxcIik7XFxuXFxuZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHBkZmgoaXQsIFxcXCJoMiYmVGV4dFxcXCIpLFxcbiAgICAgICAgcGljX3VybDogcGRmaChpdCwgXFxcImltZyYmc3JjXFxcIiksXFxuICAgICAgICB1cmw6IE1ZX1BBUkFNUy5hcGkgKyBwZGZoKGl0LCBcXFwiYSYmaHJlZlxcXCIpLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8yXFxcIlxcbiAgICB9KTtcXG59XFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi54yr5ZKqXCIsXCJwYXRoXCI6XCJtYW9taVwiLFwicnVsZVwiOlwianM6XFxuY29uc3Qga2V5ID0gXFxcIm1hb21pXFxcIjtcXG5hZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsICQudG9TdHJpbmcoa2V5ID0+IGxpc3RNeVZhcktleXMoKS5mb3JFYWNoKGl0ID0+IGl0LmluY2x1ZGVzKGtleSkgJiYgY2xlYXJNeVZhcihpdCkpLCBrZXkpKTtcXG4kLmV4dGVuZCh7XFxuICAgIG1hb21pYXBpOk1ZX1BBUkFNUy5hcGksXFxuICAgIGdldENyeXB0bygpIHtcXG4gICAgICAgIGNvbnN0IENyeXB0b1V0aWwgPSAkLnJlcXVpcmUoXFxcImhpa2VyOi8vYXNzZXRzL2NyeXB0by1qYXZhLmpzXFxcIik7XFxuXFxuICAgICAgICBmdW5jdGlvbiBlbmNyeXB0KHRleHQpIHtcXG4gICAgICAgICAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXCIzNjMyMzUzMjMyMzI2NjM5MzEzNDM5NjUzOTM2MzE2NFxcXCIpO1xcbiAgICAgICAgICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleChcXFwiMzU2NTY2NjQ3NDY2MzYzMDM2MzA2NTMyNmYzMzMzMzBcXFwiKTtcXG4gICAgICAgICAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZW5jcnlwdCh0ZXh0LCBrZXksIHtcXG4gICAgICAgICAgICAgICAgaXY6IGl2LFxcbiAgICAgICAgICAgICAgICBtb2RlOiBcXFwiQUVTL0NCQy9Qa2NzN1BhZGRpbmdcXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b0hleCgpLnRvVXBwZXJDYXNlKCk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBmdW5jdGlvbiBkZWNyeXB0KHRleHQpIHtcXG4gICAgICAgICAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFwiNjI1MjIyZjkxNDllOTYxZFxcXCIpO1xcbiAgICAgICAgICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcIjVlZmR0ZjYwNjBlMm8zMzBcXFwiKTtcXG4gICAgICAgICAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZGVjcnlwdChDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgodGV4dCksIGtleSwge1xcbiAgICAgICAgICAgICAgICBpdjogaXYsXFxuICAgICAgICAgICAgICAgIG1vZGU6IFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXCJcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICByZXR1cm4gZW5jcnlwdGVkLnRvU3RyaW5nKCk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGVuY3J5cHQsXFxuICAgICAgICAgICAgZGVjcnlwdFxcbiAgICAgICAgfTtcXG4gICAgfVxcbn0pO1xcbmxldCB7XFxuICAgIGVuY3J5cHQsXFxuICAgIGRlY3J5cHRcXG59ID0gJC5nZXRDcnlwdG8oKTtcXG5cXG5jb25zdCBjbGFzc05hbWUgPSBbXFxcIuWOn+WIm1xcXCIsIFxcXCJBSVxcXCIsIFxcXCLkuI3pm4VcXFwiLCBcXFwi5Lqa5rSy5pegL+eggVxcXCIsIFxcXCLmipbpn7PlprlcXFwiLCBcXFwi54Ot5YmnXFxcIiwgXFxcIuS4iee6p1xcXCIsIFxcXCLkurrmsJTlpbMv5LyYXFxcIl07XFxuY29uc3QgY2xhc3NLZXkgPSBbXFxcIjEwXFxcIiwgXFxcIjE2XFxcIiwgXFxcIjVcXFwiLCBcXFwiOVxcXCIsIFxcXCIxMVxcXCIsIFxcXCIxMlxcXCIsIFxcXCIxM1xcXCIsIFxcXCI2XFxcIl07XFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFwiOnR5cGVcXFwiLCBjbGFzc0tleVswXSk7XFxubGV0IGQgPSBbXTtcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcbiAgICBjbGFzc0tleS5mb3JFYWNoKChpdCwgaSkgPT4gZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiB0eXBlID09PSBpdCA/IFxcXCLigJzigJxcXFwiICsgY2xhc3NOYW1lW2ldICsgXFxcIuKAneKAnVxcXCIgOiBjbGFzc05hbWVbaV0sXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXCJoaWtlcjovL2VtcHR5XFxcIiwgaXQsIGtleSArIFxcXCI6dHlwZVxcXCIpXFxuICAgIH0pKTtcXG59XFxuXFxubGV0IHJlcURhdGEgPSBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHtcXG4gICAgc3BlY2lhbF9pZDogTnVtYmVyKHR5cGUpLFxcbiAgICBwYWdlOiBNWV9QQUdFXFxufSkpO1xcblxcbmxldCBsYXp5ID0gJChcXFwiXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICBsZXQge1xcbiAgICAgICAgZW5jcnlwdCxcXG4gICAgICAgIGRlY3J5cHRcXG4gICAgfSA9ICQuZ2V0Q3J5cHRvKCk7XFxuICAgIGxldCBzb3VyY2UgPSBwb3N0KCQubWFvbWlhcGkgKyBcXFwiL2FwaS92aWRlby9kZXRhaWw/cGFyYW1zPVxcXCIgKyBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgIGlkOk51bWJlcihpbnB1dClcXG4gICAgfSkpKTtcXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjcnlwdChzb3VyY2UpKS5kYXRhLnZpZGVvc1swXS5maWxlO1xcbn0pO1xcbnRyeSB7XFxuICAgIGxldCBzb3VyY2UgPSBwb3N0KE1ZX1BBUkFNUy5hcGkgKyBcXFwiL2FwaS9zcGVjaWFsL3ZpZGVvP3BhcmFtcz1cXFwiICsgcmVxRGF0YSk7XFxuICAgIGxldCBsaXN0ID0gSlNPTi5wYXJzZShkZWNyeXB0KHNvdXJjZSkpLmRhdGEuZGF0YTtcXG4gICAgZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogaXQudXBkYXRlX2F0ICsgXFxcIlxcXFxuXFxcIiArIGl0LnZpZGVvX25hbWUsXFxuICAgICAgICAgICAgcGljX3VybDogaXQuaW1hZ2UsXFxuICAgICAgICAgICAgdXJsOiBpdC52aWRlb19pZCtsYXp5LFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicGljXzJfY2FyZFxcXCIsXFxuICAgICAgICAgICAgZXh0cmE6e1xcbiAgICAgICAgICAgICAgICBpbmhlcml0VGl0bGU6IGZhbHNlXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgIH1cXG59IGNhdGNoIChlKSB7XFxuXFxufVxcbnNldFJlc3VsdChkKTtcIn1dLFwicGFyYW1zXCI6XCJ7XFxcImFwaVxcXCI6XFxcImh0dHBzOi8vYXBpMS5mZnVkaW5nZGFuZy5jb206OTAwMlxcXCIsXFxcImtleVxcXCI6XFxcInpoY21wdFxcXCIsXFxcInBhZ2VUaXRsZVxcXCI6XFxcIuacgOW8uui1hOa6kFvnp5Lmkq1dXFxcIn1cIixcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi5beo6a2UXCIsXCJ2ZXJzaW9uXCI6MCxcInVybFwiOlwiaGlrZXI6Ly9wYWdlL3llYmFuLnY/cGFnZT1meXBhZ2VcIixcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJmaW5kX3J1bGVcIjpcImpzOlxcbmNvbnN0IGtleSA9IFxcXCJ5ZWJhblxcXCI7XFxuYWRkTGlzdGVuZXIoXFxcIm9uQ2xvc2VcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxubGV0IGQgPSBbXTtcXG5sZXQgY2xhc3NMaXN0ID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjpjbGFzc1xcXCIsIFxcXCJcXFwiKSB8fCBmZXRjaChcXFwiaHR0cHM6Ly9hcGkyLmZmdWRpbmdkYW5nLmNvbTo5MDAyL2xlaXhpbmcucGhwP3Q9XFxcIiArIE1ZX1BBUkFNUy5wYWdlVGl0bGUpO1xcbnB1dE15VmFyKGtleSArIFxcXCI6Y2xhc3NcXFwiLCBjbGFzc0xpc3QpO1xcbmNsYXNzTGlzdCA9IGNsYXNzTGlzdC5zcGxpdChcXFwiLVxcXCIpO1xcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjp0eXBlXFxcIiwgY2xhc3NMaXN0WzBdKTtcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcbiAgICBjbGFzc0xpc3QuZm9yRWFjaChpdCA9PiBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcIuKAnOKAnFxcXCIgKyBpdCArIFxcXCLigJ3igJ1cXFwiIDogaXQsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXCJoaWtlcjovL2VtcHR5XFxcIiwgaXQsIGtleSArIFxcXCI6dHlwZVxcXCIpXFxuICAgIH0pKTtcXG59XFxubGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1BBUkFNUy5hcGkgKyBcXFwiL2FwaS96aGNtcHQucGhwP3Q9XFxcIiArIHR5cGUgKyBcXFwiJnA9XFxcIiArIE1ZX1BBR0UgKyBcXFwiJnNqPTFcXFwiKSkuZGF0YTtcXG5cXG5mb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogaXQuYmlhb3RpLFxcbiAgICAgICAgcGljX3VybDogaXQudHVwaWFuLFxcbiAgICAgICAgdXJsOiBpdC5kaXpoaSxcXG4gICAgICAgIGRlc2M6IGl0LnNoaWppYW4gKyBcXFwiXFxcXHRcXFwiICsgaXQubGVpeGluZyxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwibW92aWVfMlxcXCJcXG4gICAgfSk7XFxufVxcbnNldFJlc3VsdChkKTtcIixcImdyb3VwXCI6XCLlvIDlj5HkuK3lv4NcIixcInVhXCI6XCJtb2JpbGVcIixcInByZVJ1bGVcIjpcIlwiLFwicGFnZXNcIjpcIlt7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLlv6vnjKtcXFwiLFxcXCJwYXRoXFxcIjpcXFwia3VhaW1hby52XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxuY29uc3Qga2V5ID0gXFxcXFxcXCJrdWFpbWFvXFxcXFxcXCI7XFxcXG5hZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcXFxuY29uc3QgQ3J5cHRvVXRpbCA9ICQucmVxdWlyZShcXFxcXFxcImhpa2VyOi8vYXNzZXRzL2NyeXB0by1qYXZhLmpzXFxcXFxcXCIpO1xcXFxuXFxcXG5jb25zdCBkID0gW107XFxcXG5cXFxcbmNvbnN0IGNsYXNzTGlzdCA9IFtcXFxcXFxcIueDremXqFxcXFxcXFwiLCBcXFxcXFxcIuW5v+WculxcXFxcXFwiXTtcXFxcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiLCBjbGFzc0xpc3RbMF0pO1xcXFxuaWYgKE1ZX1BBR0UgPT09IDEpIHtcXFxcbiAgICBjbGFzc0xpc3QuZm9yRWFjaChpdCA9PiBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFxcXFxcIuKAnOKAnFxcXFxcXFwiICsgaXQgKyBcXFxcXFxcIuKAneKAnVxcXFxcXFwiIDogaXQsXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiAkKFxcXFxcXFwiI25vTG9hZGluZyNcXFxcXFxcIikubGF6eVJ1bGUoKGl0LCBrZXkpID0+IHB1dE15VmFyKGtleSwgaXQpIHx8IHJlZnJlc2hQYWdlKCkgfHwgXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCIsIGl0LCBrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIpXFxcXG4gICAgfSkpO1xcXFxufVxcXFxuXFxcXG5mdW5jdGlvbiBlbmNyeXB0KHRleHQpIHtcXFxcbiAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXFxcXFwiMzYzMjM1MzIzMDMyNjYzOTMxMzQzOTZkNjE2ZjZkNjlcXFxcXFxcIik7XFxcXG4gICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXFxcXFwiMzU2NTY2NjQzMzY2MzYzMDM2MzA2NTZkNjE2ZjZkNjlcXFxcXFxcIik7XFxcXG4gICAgbGV0IGVuY3J5cHRlZCA9IENyeXB0b1V0aWwuQUVTLmVuY3J5cHQodGV4dCwga2V5LCB7XFxcXG4gICAgICAgIGl2OiBpdixcXFxcbiAgICAgICAgbW9kZTogXFxcXFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXFxcXFwiXFxcXG4gICAgfSk7XFxcXG4gICAgcmV0dXJuIGVuY3J5cHRlZC50b0hleCgpLnRvVXBwZXJDYXNlKCk7XFxcXG59XFxcXG5cXFxcbmZ1bmN0aW9uIGRlY3J5cHQodGV4dCkge1xcXFxuICAgIGxldCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXFxcXFwiNjI1MjAyZjkxNDltYW9taVxcXFxcXFwiKTtcXFxcbiAgICBsZXQgaXYgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXFxcXFwiNWVmZDNmNjA2MGVtYW9taVxcXFxcXFwiKTtcXFxcbiAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZGVjcnlwdChDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgodGV4dCksIGtleSwge1xcXFxuICAgICAgICBpdjogaXYsXFxcXG4gICAgICAgIG1vZGU6IFxcXFxcXFwiQUVTL0NCQy9Qa2NzN1BhZGRpbmdcXFxcXFxcIlxcXFxuICAgIH0pO1xcXFxuICAgIHJldHVybiBlbmNyeXB0ZWQudG9TdHJpbmcoKTtcXFxcbn1cXFxcbmxldCByZXFEYXRhID0gZW5jcnlwdChKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgcGVyUGFnZTogMTksXFxcXG4gICAgcGFnZTogTVlfUEFHRVxcXFxufSkpO1xcXFxubGV0IHNvdXJjZSA9IHBvc3QoTVlfUEFSQU1TLmFwaSArIFxcXFxcXFwiL2FwaS92aWRlb3MvXFxcXFxcXCIgKyAodHlwZSA9PT0gXFxcXFxcXCLng63pl6hcXFxcXFxcIiA/IFxcXFxcXFwibGlzdEhvdFxcXFxcXFwiIDogXFxcXFxcXCJsaXN0QWxsXFxcXFxcXCIpLCB7XFxcXG4gICAgYm9keToge1xcXFxuICAgICAgICBkYXRhOiByZXFEYXRhLFxcXFxuICAgICAgICBzaWc6IG1kNShcXFxcXFxcImRhdGE9XFxcXFxcXCIgKyByZXFEYXRhICsgXFxcXFxcXCJtYW9taV9wYXNzX3h5elxcXFxcXFwiKVxcXFxuICAgIH1cXFxcbn0pO1xcXFxubGV0IGxpc3QgPSBKU09OLnBhcnNlKGRlY3J5cHQoc291cmNlKSkuZGF0YS5saXN0O1xcXFxuZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcXFxuICAgIGlmIChpdC5pc19jYXRfYWRzKSBjb250aW51ZTtcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogU3RyaW5nKGl0Lm12X2NyZWF0ZWQpLnNwbGl0KFxcXFxcXFwiIFxcXFxcXFwiKVswXSArIFxcXFxcXFwiXFxcXFxcXFxuXFxcXFxcXCIgKyBpdC5tdl90aXRsZSxcXFxcbiAgICAgICAgcGljX3VybDogaXQubXZfaW1nX3VybCxcXFxcbiAgICAgICAgdXJsOiBpdC5tdl9wbGF5X3VybC5yZXBsYWNlKC9odHRwPzpcXFxcXFxcXC9cXFxcXFxcXC8uKj9cXFxcXFxcXC8vLCBcXFxcXFxcImh0dHBzOi8vb3dlcmJzZC5oeHFxenUueHl6L1xcXFxcXFwiKSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwicGljXzJfY2FyZFxcXFxcXFwiXFxcXG4gICAgfSk7XFxcXG59XFxcXG5cXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLni5Dni7jop4bpopFcXFwiLFxcXCJwYXRoXFxcIjpcXFwiaHVsaS52XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxuY29uc3Qga2V5ID0gXFxcXFxcXCJodWxpXFxcXFxcXCI7XFxcXG5hZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcXFxuY29uc3QgVVJMID0gTVlfUEFSQU1TLmFwaSArIFxcXFxcXFwiL1xcXFxcXFwiICsgTVlfUEFSQU1TLmtleTtcXFxcbmNvbnN0IGNsYXNzSHRtbCA9IGdldE15VmFyKGtleStcXFxcXFxcIjpjbGFzc1xcXFxcXFwiLFxcXFxcXFwiXFxcXFxcXCIpfHxmZXRjaChVUkwgKyBcXFxcXFxcIi9saXN0LnBocFxcXFxcXFwiKTtcXFxcbnB1dE15VmFyKGtleStcXFxcXFxcIjpjbGFzc1xcXFxcXFwiLGNsYXNzSHRtbCk7XFxcXG5jb25zdCBjbGFzc05hbWUgPSBwZGZhKGNsYXNzSHRtbCwgXFxcXFxcXCJib2R5JiZoMVxcXFxcXFwiKS5tYXAodiA9PiBwZGZoKHYsIFxcXFxcXFwiVGV4dFxcXFxcXFwiKSk7XFxcXG5jb25zdCBjbGFzc0tleSA9IHBkZmEoY2xhc3NIdG1sLCBcXFxcXFxcImJvZHkmJmR6XFxcXFxcXCIpLm1hcCh2ID0+IHBkZmgodiwgXFxcXFxcXCJUZXh0XFxcXFxcXCIpKTtcXFxcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiLCBjbGFzc0tleVswXSk7XFxcXG5sZXQgZCA9IFtdO1xcXFxuaWYgKE1ZX1BBR0UgPT09IDEpIHtcXFxcbiAgICBjbGFzc0tleS5mb3JFYWNoKChpdCwgaSkgPT4gZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcXFxcXCLigJzigJxcXFxcXFxcIiArIGNsYXNzTmFtZVtpXSArIFxcXFxcXFwi4oCd4oCdXFxcXFxcXCIgOiBjbGFzc05hbWVbaV0sXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiAkKFxcXFxcXFwiI25vTG9hZGluZyNcXFxcXFxcIikubGF6eVJ1bGUoKGl0LCBrZXkpID0+IHB1dE15VmFyKGtleSwgaXQpIHx8IHJlZnJlc2hQYWdlKCkgfHwgXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCIsIGl0LCBrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIpXFxcXG4gICAgfSkpO1xcXFxufVxcXFxubGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoKFVSTCArIFxcXFxcXFwiL2xpc3QucGhwP3M9XFxcXFxcXCIgKyB0eXBlICsgXFxcXFxcXCImcD1cXFxcXFxcIiArIE1ZX1BBR0UpKS5kYXRhO1xcXFxuXFxcXG5mb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IGl0LnRpdHRsZSxcXFxcbiAgICAgICAgcGljX3VybDogaXQuaW1nLFxcXFxuICAgICAgICB1cmw6IGl0LnVybCxcXFxcbiAgICAgICAgZGVzYzogaXQudGltZSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwibW92aWVfMlxcXFxcXFwiXFxcXG4gICAgfSk7XFxcXG59XFxcXG5zZXRSZXN1bHQoZCk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5aSc5Y2K5pma5oqlXFxcIixcXFwicGF0aFxcXCI6XFxcInllYmFuLnZcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5jb25zdCBrZXkgPSBcXFxcXFxcInllYmFuXFxcXFxcXCI7XFxcXG5hZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcXFxubGV0IGQgPSBbXTtcXFxcbmxldCBjbGFzc0xpc3QgPSBnZXRNeVZhcihrZXkgKyBcXFxcXFxcIjpjbGFzc1xcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFwiKSB8fCBmZXRjaChcXFxcXFxcImh0dHBzOi8vYXBpMi5mZnVkaW5nZGFuZy5jb206OTAwMi9sZWl4aW5nLnBocD90PVxcXFxcXFwiICsgTVlfUEFSQU1TLnBhZ2VUaXRsZSk7XFxcXG5wdXRNeVZhcihrZXkgKyBcXFxcXFxcIjpjbGFzc1xcXFxcXFwiLCBjbGFzc0xpc3QpO1xcXFxuY2xhc3NMaXN0ID0gY2xhc3NMaXN0LnNwbGl0KFxcXFxcXFwiLVxcXFxcXFwiKTtcXFxcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiLCBjbGFzc0xpc3RbMF0pO1xcXFxuaWYgKE1ZX1BBR0UgPT09IDEpIHtcXFxcbiAgICBjbGFzc0xpc3QuZm9yRWFjaChpdCA9PiBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFxcXFxcIuKAnOKAnFxcXFxcXFwiICsgaXQgKyBcXFxcXFxcIuKAneKAnVxcXFxcXFwiIDogaXQsXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiAkKFxcXFxcXFwiI25vTG9hZGluZyNcXFxcXFxcIikubGF6eVJ1bGUoKGl0LCBrZXkpID0+IHB1dE15VmFyKGtleSwgaXQpIHx8IHJlZnJlc2hQYWdlKCkgfHwgXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCIsIGl0LCBrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIpXFxcXG4gICAgfSkpO1xcXFxufVxcXFxubGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1BBUkFNUy5hcGkgKyBcXFxcXFxcIi9hcGkvemhjbXB0LnBocD90PVxcXFxcXFwiICsgdHlwZSArIFxcXFxcXFwiJnA9XFxcXFxcXCIgKyBNWV9QQUdFICsgXFxcXFxcXCImc2o9MVxcXFxcXFwiKSkuZGF0YTtcXFxcblxcXFxuZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBpdC5iaWFvdGksXFxcXG4gICAgICAgIHBpY191cmw6IGl0LnR1cGlhbixcXFxcbiAgICAgICAgdXJsOiBpdC5kaXpoaSxcXFxcbiAgICAgICAgZGVzYzogaXQuc2hpamlhbiArIFxcXFxcXFwiXFxcXFxcXFx0XFxcXFxcXCIgKyBpdC5sZWl4aW5nLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJtb3ZpZV8yXFxcXFxcXCJcXFxcbiAgICB9KTtcXFxcbn1cXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLnmb7oirHnpL5cXFwiLFxcXCJwYXRoXFxcIjpcXFwiYmFpaHVhLnZcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5jb25zdCBrZXkgPSBcXFxcXFxcImJhaWh1YVxcXFxcXFwiO1xcXFxuYWRkTGlzdGVuZXIoXFxcXFxcXCJvbkNsb3NlXFxcXFxcXCIsICQudG9TdHJpbmcoa2V5ID0+IGxpc3RNeVZhcktleXMoKS5mb3JFYWNoKGl0ID0+IGl0LmluY2x1ZGVzKGtleSkgJiYgY2xlYXJNeVZhcihpdCkpLCBrZXkpKTtcXFxcblxcXFxuY29uc3QgY2xhc3NIdG1sID0gZ2V0TXlWYXIoa2V5ICsgXFxcXFxcXCI6Y2xhc3NcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIikgfHwgZmV0Y2goTVlfUEFSQU1TLmFwaSArIFxcXFxcXFwiL3ZvZF9saXN0LnBocD9wPVxcXFxcXFwiICsgTVlfUEFSQU1TLmtleSwge1xcXFxuICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgYWNjZXB0OiBcXFxcXFxcInRleHQvaHRtbCwgYXBwbGljYXRpb24veGh0bWwreG1sLCBhcHBsaWNhdGlvbi94bWw7IHE9MC45LCAqLyo7IHE9MC44XFxcXFxcXCJcXFxcbiAgICB9XFxcXG59KTtcXFxcbi8vbG9nKGNsYXNzSHRtbClcXFxcbnB1dE15VmFyKGtleSArIFxcXFxcXFwiOmNsYXNzXFxcXFxcXCIsIGNsYXNzSHRtbCk7XFxcXG5sZXQgYXJyID0gcGRmYShjbGFzc0h0bWwsIFxcXFxcXFwiLnN3aXBlci13cmFwcGVyLDEmJmFcXFxcXFxcIikuc2xpY2UoMSk7XFxcXG5cXFxcbmNvbnN0IGNsYXNzTmFtZSA9IGFyci5tYXAodiA9PiBwZGZoKHYsIFxcXFxcXFwiVGV4dFxcXFxcXFwiKSk7XFxcXG5jb25zdCBjbGFzc0tleSA9IGFyci5tYXAodiA9PiBwZGZoKHYsIFxcXFxcXFwiYSYmaHJlZlxcXFxcXFwiKSk7XFxcXG5cXFxcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiLCBjbGFzc0tleVswXSk7XFxcXG5cXFxcbmxldCBkID0gW107XFxcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcXFxuICAgIGNsYXNzS2V5LmZvckVhY2goKGl0LCBpKSA9PiBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFxcXFxcIuKAnOKAnFxcXFxcXFwiICsgY2xhc3NOYW1lW2ldICsgXFxcXFxcXCLigJ3igJ1cXFxcXFxcIiA6IGNsYXNzTmFtZVtpXSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLFxcXFxuICAgICAgICB1cmw6ICQoXFxcXFxcXCIjbm9Mb2FkaW5nI1xcXFxcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIiwgaXQsIGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIilcXFxcbiAgICB9KSk7XFxcXG59XFxcXG5sZXQgbGlzdCA9IHBkZmEoZmV0Y2goTVlfUEFSQU1TLmFwaSArIHR5cGUgKyBcXFxcXFxcIiZwYWdlPVxcXFxcXFwiICsgTVlfUEFHRSwge1xcXFxuICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgYWNjZXB0OiBcXFxcXFxcInRleHQvaHRtbCwgYXBwbGljYXRpb24veGh0bWwreG1sLCBhcHBsaWNhdGlvbi94bWw7IHE9MC45LCAqLyo7IHE9MC44XFxcXFxcXCJcXFxcbiAgICB9XFxcXG59KSwgXFxcXFxcXCJib2R5JiYubGVvLXZpZGVvLWl0ZW1cXFxcXFxcIik7XFxcXG5cXFxcbmZvciAobGV0IGl0IG9mIGxpc3QpIHtcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogcGRmaChpdCwgXFxcXFxcXCJoMiYmVGV4dFxcXFxcXFwiKSxcXFxcbiAgICAgICAgcGljX3VybDogcGRmaChpdCwgXFxcXFxcXCJpbWcmJnNyY1xcXFxcXFwiKSxcXFxcbiAgICAgICAgdXJsOiBNWV9QQVJBTVMuYXBpICsgcGRmaChpdCwgXFxcXFxcXCJhJiZocmVmXFxcXFxcXCIpLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJtb3ZpZV8yXFxcXFxcXCJcXFxcbiAgICB9KTtcXFxcbn1cXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLnjKvlkqpcXFwiLFxcXCJwYXRoXFxcIjpcXFwibWFvbWlcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5jb25zdCBrZXkgPSBcXFxcXFxcIm1hb21pXFxcXFxcXCI7XFxcXG5hZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcXFxuJC5leHRlbmQoe1xcXFxuICAgIG1hb21pYXBpOk1ZX1BBUkFNUy5hcGksXFxcXG4gICAgZ2V0Q3J5cHRvKCkge1xcXFxuICAgICAgICBjb25zdCBDcnlwdG9VdGlsID0gJC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9hc3NldHMvY3J5cHRvLWphdmEuanNcXFxcXFxcIik7XFxcXG5cXFxcbiAgICAgICAgZnVuY3Rpb24gZW5jcnlwdCh0ZXh0KSB7XFxcXG4gICAgICAgICAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXFxcXFwiMzYzMjM1MzIzMjMyNjYzOTMxMzQzOTY1MzkzNjMxNjRcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICBsZXQgaXYgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgoXFxcXFxcXCIzNTY1NjY2NDc0NjYzNjMwMzYzMDY1MzI2ZjMzMzMzMFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgIGxldCBlbmNyeXB0ZWQgPSBDcnlwdG9VdGlsLkFFUy5lbmNyeXB0KHRleHQsIGtleSwge1xcXFxuICAgICAgICAgICAgICAgIGl2OiBpdixcXFxcbiAgICAgICAgICAgICAgICBtb2RlOiBcXFxcXFxcIkFFUy9DQkMvUGtjczdQYWRkaW5nXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b0hleCgpLnRvVXBwZXJDYXNlKCk7XFxcXG4gICAgICAgIH1cXFxcblxcXFxuICAgICAgICBmdW5jdGlvbiBkZWNyeXB0KHRleHQpIHtcXFxcbiAgICAgICAgICAgIGxldCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXFxcXFwiNjI1MjIyZjkxNDllOTYxZFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcXFxcXCI1ZWZkdGY2MDYwZTJvMzMwXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgbGV0IGVuY3J5cHRlZCA9IENyeXB0b1V0aWwuQUVTLmRlY3J5cHQoQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KHRleHQpLCBrZXksIHtcXFxcbiAgICAgICAgICAgICAgICBpdjogaXYsXFxcXG4gICAgICAgICAgICAgICAgbW9kZTogXFxcXFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXFxcXFwiXFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIHJldHVybiBlbmNyeXB0ZWQudG9TdHJpbmcoKTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICByZXR1cm4ge1xcXFxuICAgICAgICAgICAgZW5jcnlwdCxcXFxcbiAgICAgICAgICAgIGRlY3J5cHRcXFxcbiAgICAgICAgfTtcXFxcbiAgICB9XFxcXG59KTtcXFxcbmxldCB7XFxcXG4gICAgZW5jcnlwdCxcXFxcbiAgICBkZWNyeXB0XFxcXG59ID0gJC5nZXRDcnlwdG8oKTtcXFxcblxcXFxuY29uc3QgY2xhc3NOYW1lID0gW1xcXFxcXFwi5Y6f5YibXFxcXFxcXCIsIFxcXFxcXFwiQUlcXFxcXFxcIiwgXFxcXFxcXCLkuI3pm4VcXFxcXFxcIiwgXFxcXFxcXCLkuprmtLLml6Av56CBXFxcXFxcXCIsIFxcXFxcXFwi5oqW6Z+z5aa5XFxcXFxcXCIsIFxcXFxcXFwi54Ot5YmnXFxcXFxcXCIsIFxcXFxcXFwi5LiJ57qnXFxcXFxcXCIsIFxcXFxcXFwi5Lq65rCU5aWzL+S8mFxcXFxcXFwiXTtcXFxcbmNvbnN0IGNsYXNzS2V5ID0gW1xcXFxcXFwiMTBcXFxcXFxcIiwgXFxcXFxcXCIxNlxcXFxcXFwiLCBcXFxcXFxcIjVcXFxcXFxcIiwgXFxcXFxcXCI5XFxcXFxcXCIsIFxcXFxcXFwiMTFcXFxcXFxcIiwgXFxcXFxcXCIxMlxcXFxcXFwiLCBcXFxcXFxcIjEzXFxcXFxcXCIsIFxcXFxcXFwiNlxcXFxcXFwiXTtcXFxcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiLCBjbGFzc0tleVswXSk7XFxcXG5sZXQgZCA9IFtdO1xcXFxuaWYgKE1ZX1BBR0UgPT09IDEpIHtcXFxcbiAgICBjbGFzc0tleS5mb3JFYWNoKChpdCwgaSkgPT4gZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcXFxcXCLigJzigJxcXFxcXFxcIiArIGNsYXNzTmFtZVtpXSArIFxcXFxcXFwi4oCd4oCdXFxcXFxcXCIgOiBjbGFzc05hbWVbaV0sXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiAkKFxcXFxcXFwiI25vTG9hZGluZyNcXFxcXFxcIikubGF6eVJ1bGUoKGl0LCBrZXkpID0+IHB1dE15VmFyKGtleSwgaXQpIHx8IHJlZnJlc2hQYWdlKCkgfHwgXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCIsIGl0LCBrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIpXFxcXG4gICAgfSkpO1xcXFxufVxcXFxuXFxcXG5sZXQgcmVxRGF0YSA9IGVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoe1xcXFxuICAgIHNwZWNpYWxfaWQ6IE51bWJlcih0eXBlKSxcXFxcbiAgICBwYWdlOiBNWV9QQUdFXFxcXG59KSk7XFxcXG5cXFxcbmxldCBsYXp5ID0gJChcXFxcXFxcIlxcXFxcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgbGV0IHtcXFxcbiAgICAgICAgZW5jcnlwdCxcXFxcbiAgICAgICAgZGVjcnlwdFxcXFxuICAgIH0gPSAkLmdldENyeXB0bygpO1xcXFxuICAgIGxldCBzb3VyY2UgPSBwb3N0KCQubWFvbWlhcGkgKyBcXFxcXFxcIi9hcGkvdmlkZW8vZGV0YWlsP3BhcmFtcz1cXFxcXFxcIiArIGVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoe1xcXFxuICAgICAgICBpZDpOdW1iZXIoaW5wdXQpXFxcXG4gICAgfSkpKTtcXFxcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNyeXB0KHNvdXJjZSkpLmRhdGEudmlkZW9zWzBdLmZpbGU7XFxcXG59KTtcXFxcbnRyeSB7XFxcXG4gICAgbGV0IHNvdXJjZSA9IHBvc3QoTVlfUEFSQU1TLmFwaSArIFxcXFxcXFwiL2FwaS9zcGVjaWFsL3ZpZGVvP3BhcmFtcz1cXFxcXFxcIiArIHJlcURhdGEpO1xcXFxuICAgIGxldCBsaXN0ID0gSlNPTi5wYXJzZShkZWNyeXB0KHNvdXJjZSkpLmRhdGEuZGF0YTtcXFxcbiAgICBmb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogaXQudXBkYXRlX2F0ICsgXFxcXFxcXCJcXFxcXFxcXG5cXFxcXFxcIiArIGl0LnZpZGVvX25hbWUsXFxcXG4gICAgICAgICAgICBwaWNfdXJsOiBpdC5pbWFnZSxcXFxcbiAgICAgICAgICAgIHVybDogaXQudmlkZW9faWQrbGF6eSxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInBpY18yX2NhcmRcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIGV4dHJhOntcXFxcbiAgICAgICAgICAgICAgICBpbmhlcml0VGl0bGU6IGZhbHNlXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pO1xcXFxuICAgIH1cXFxcbn0gY2F0Y2ggKGUpIHtcXFxcblxcXFxufVxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9XVwiLFwicHJveHlcIjpcIlwifSIsInBpY1VybCI6Imh0dHA6Ly9hcGkueGthMS50b3AvNmltZy96dWlxaWFuZy5wbmciLCJ0aXRsZSI6IuacgOW8uui1hOa6kFvnp5Lmkq1dIn0=
Add Comment
Please, Sign In to add comment