Advertisement
xiaomianao666

邀您一起看:金蕉视频[秒播]

Apr 29th, 2024
380
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+IGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFwi4oCc4oCcXFxcIiArIGNsYXNzTmFtZVtpXSArIFxcXCLigJ3igJ1cXFwiIDogY2xhc3NOYW1lW2ldLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsIGl0LCBrZXkgKyBcXFwiOnR5cGVcXFwiKVxcbiAgICB9KSk7XFxufVxcbmxldCBsaXN0ID0gcGRmYShmZXRjaChNWV9QQVJBTVMuYXBpICsgdHlwZSArIFxcXCImcGFnZT1cXFwiICsgTVlfUEFHRSwge1xcbiAgICBoZWFkZXJzOiB7XFxuICAgICAgICBhY2NlcHQ6IFxcXCJ0ZXh0L2h0bWwsIGFwcGxpY2F0aW9uL3hodG1sK3htbCwgYXBwbGljYXRpb24veG1sOyBxPTAuOSwgKi8qOyBxPTAuOFxcXCJcXG4gICAgfVxcbn0pLCBcXFwiYm9keSYmLmxlby12aWRlby1pdGVtXFxcIik7XFxuXFxuZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHBkZmgoaXQsIFxcXCJoMiYmVGV4dFxcXCIpLFxcbiAgICAgICAgcGljX3VybDogcGRmaChpdCwgXFxcImltZyYmc3JjXFxcIiksXFxuICAgICAgICB1cmw6IE1ZX1BBUkFNUy5hcGkgKyBwZGZoKGl0LCBcXFwiYSYmaHJlZlxcXCIpLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8yXFxcIlxcbiAgICB9KTtcXG59XFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfMlwiLFwibmFtZVwiOlwi54yr5ZKqXCIsXCJwYXRoXCI6XCJtYW9taVwiLFwicnVsZVwiOlwianM6XFxuY29uc3Qga2V5ID0gXFxcIm1hb21pXFxcIjtcXG5hZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsICQudG9TdHJpbmcoa2V5ID0+IGxpc3RNeVZhcktleXMoKS5mb3JFYWNoKGl0ID0+IGl0LmluY2x1ZGVzKGtleSkgJiYgY2xlYXJNeVZhcihpdCkpLCBrZXkpKTtcXG4kLmV4dGVuZCh7XFxuICAgIG1hb21pYXBpOk1ZX1BBUkFNUy5hcGksXFxuICAgIGdldENyeXB0bygpIHtcXG4gICAgICAgIGNvbnN0IENyeXB0b1V0aWwgPSAkLnJlcXVpcmUoXFxcImhpa2VyOi8vYXNzZXRzL2NyeXB0by1qYXZhLmpzXFxcIik7XFxuXFxuICAgICAgICBmdW5jdGlvbiBlbmNyeXB0KHRleHQpIHtcXG4gICAgICAgICAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXCIzNjMyMzUzMjMyMzI2NjM5MzEzNDM5NjUzOTM2MzE2NFxcXCIpO1xcbiAgICAgICAgICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleChcXFwiMzU2NTY2NjQ3NDY2MzYzMDM2MzA2NTMyNmYzMzMzMzBcXFwiKTtcXG4gICAgICAgICAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZW5jcnlwdCh0ZXh0LCBrZXksIHtcXG4gICAgICAgICAgICAgICAgaXY6IGl2LFxcbiAgICAgICAgICAgICAgICBtb2RlOiBcXFwiQUVTL0NCQy9Qa2NzN1BhZGRpbmdcXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b0hleCgpLnRvVXBwZXJDYXNlKCk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBmdW5jdGlvbiBkZWNyeXB0KHRleHQpIHtcXG4gICAgICAgICAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFwiNjI1MjIyZjkxNDllOTYxZFxcXCIpO1xcbiAgICAgICAgICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcIjVlZmR0ZjYwNjBlMm8zMzBcXFwiKTtcXG4gICAgICAgICAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZGVjcnlwdChDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgodGV4dCksIGtleSwge1xcbiAgICAgICAgICAgICAgICBpdjogaXYsXFxuICAgICAgICAgICAgICAgIG1vZGU6IFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXCJcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICByZXR1cm4gZW5jcnlwdGVkLnRvU3RyaW5nKCk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGVuY3J5cHQsXFxuICAgICAgICAgICAgZGVjcnlwdFxcbiAgICAgICAgfTtcXG4gICAgfVxcbn0pO1xcbmxldCB7XFxuICAgIGVuY3J5cHQsXFxuICAgIGRlY3J5cHRcXG59ID0gJC5nZXRDcnlwdG8oKTtcXG5cXG5jb25zdCBjbGFzc05hbWUgPSBbXFxcIuWOn+WIm1xcXCIsIFxcXCJBSVxcXCIsIFxcXCLkuI3pm4VcXFwiLCBcXFwi5Lqa5rSy5pegL+eggVxcXCIsIFxcXCLmipbpn7PlprlcXFwiLCBcXFwi54Ot5YmnXFxcIiwgXFxcIuS4iee6p1xcXCIsIFxcXCLkurrmsJTlpbMv5LyYXFxcIl07XFxuY29uc3QgY2xhc3NLZXkgPSBbXFxcIjEwXFxcIiwgXFxcIjE2XFxcIiwgXFxcIjVcXFwiLCBcXFwiOVxcXCIsIFxcXCIxMVxcXCIsIFxcXCIxMlxcXCIsIFxcXCIxM1xcXCIsIFxcXCI2XFxcIl07XFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFwiOnR5cGVcXFwiLCBjbGFzc0tleVswXSk7XFxubGV0IGQgPSBbXTtcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcbiAgICBjbGFzc0tleS5mb3JFYWNoKChpdCwgaSkgPT4gZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiB0eXBlID09PSBpdCA/IFxcXCLigJzigJxcXFwiICsgY2xhc3NOYW1lW2ldICsgXFxcIuKAneKAnVxcXCIgOiBjbGFzc05hbWVbaV0sXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXCJoaWtlcjovL2VtcHR5XFxcIiwgaXQsIGtleSArIFxcXCI6dHlwZVxcXCIpXFxuICAgIH0pKTtcXG59XFxuXFxubGV0IHJlcURhdGEgPSBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHtcXG4gICAgc3BlY2lhbF9pZDogTnVtYmVyKHR5cGUpLFxcbiAgICBwYWdlOiBNWV9QQUdFXFxufSkpO1xcblxcbmxldCBsYXp5ID0gJChcXFwiXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICBsZXQge1xcbiAgICAgICAgZW5jcnlwdCxcXG4gICAgICAgIGRlY3J5cHRcXG4gICAgfSA9ICQuZ2V0Q3J5cHRvKCk7XFxuICAgIGxldCBzb3VyY2UgPSBwb3N0KCQubWFvbWlhcGkgKyBcXFwiL2FwaS92aWRlby9kZXRhaWw/cGFyYW1zPVxcXCIgKyBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgIGlkOk51bWJlcihpbnB1dClcXG4gICAgfSkpKTtcXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjcnlwdChzb3VyY2UpKS5kYXRhLnZpZGVvc1swXS5maWxlO1xcbn0pO1xcbnRyeSB7XFxuICAgIGxldCBzb3VyY2UgPSBwb3N0KE1ZX1BBUkFNUy5hcGkgKyBcXFwiL2FwaS9zcGVjaWFsL3ZpZGVvP3BhcmFtcz1cXFwiICsgcmVxRGF0YSk7XFxuICAgIGxldCBsaXN0ID0gSlNPTi5wYXJzZShkZWNyeXB0KHNvdXJjZSkpLmRhdGEuZGF0YTtcXG4gICAgZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogaXQudXBkYXRlX2F0ICsgXFxcIlxcXFxuXFxcIiArIGl0LnZpZGVvX25hbWUsXFxuICAgICAgICAgICAgcGljX3VybDogaXQuaW1hZ2UsXFxuICAgICAgICAgICAgdXJsOiBpdC52aWRlb19pZCtsYXp5LFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicGljXzNfY2FyZFxcXCIsXFxuICAgICAgICAgICAgZXh0cmE6e1xcbiAgICAgICAgICAgICAgICBpbmhlcml0VGl0bGU6IGZhbHNlXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgIH1cXG59IGNhdGNoIChlKSB7XFxuXFxufVxcbnNldFJlc3VsdChkKTtcIn1dLFwicGFyYW1zXCI6XCJ7XFxcImFwaVxcXCI6XFxcImh0dHBzOi8vYXBpMS5mZnVkaW5nZGFuZy5jb206OTAwMlxcXCIsXFxcImtleVxcXCI6XFxcInhpYW5namlhb1xcXCIsXFxcInBhZ2VUaXRsZVxcXCI6XFxcIumHkeiVieinhumikVvnp5Lmkq1dXFxcIn1cIixcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi5beo6a2UXCIsXCJ2ZXJzaW9uXCI6MCxcInVybFwiOlwiaGlrZXI6Ly9wYWdlL3llYmFuLnY/cGFnZT1meXBhZ2VcIixcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJmaW5kX3J1bGVcIjpcImpzOlxcbmNvbnN0IGtleSA9IFxcXCJ5ZWJhblxcXCI7XFxuYWRkTGlzdGVuZXIoXFxcIm9uQ2xvc2VcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxubGV0IGQgPSBbXTtcXG5sZXQgY2xhc3NMaXN0ID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjpjbGFzc1xcXCIsIFxcXCJcXFwiKSB8fCBmZXRjaChcXFwiaHR0cHM6Ly9hcGkyLmZmdWRpbmdkYW5nLmNvbTo5MDAyL2xlaXhpbmcucGhwP3Q9XFxcIiArIE1ZX1BBUkFNUy5wYWdlVGl0bGUpO1xcbnB1dE15VmFyKGtleSArIFxcXCI6Y2xhc3NcXFwiLCBjbGFzc0xpc3QpO1xcbmNsYXNzTGlzdCA9IGNsYXNzTGlzdC5zcGxpdChcXFwiLVxcXCIpO1xcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjp0eXBlXFxcIiwgY2xhc3NMaXN0WzBdKTtcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcbiAgICBjbGFzc0xpc3QuZm9yRWFjaChpdCA9PiBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcIuKAnOKAnFxcXCIgKyBpdCArIFxcXCLigJ3igJ1cXFwiIDogaXQsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXCJoaWtlcjovL2VtcHR5XFxcIiwgaXQsIGtleSArIFxcXCI6dHlwZVxcXCIpXFxuICAgIH0pKTtcXG59XFxubGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1BBUkFNUy5hcGkgKyBcXFwiL2FwaS96aGNtcHQucGhwP3Q9XFxcIiArIHR5cGUgKyBcXFwiJnA9XFxcIiArIE1ZX1BBR0UgKyBcXFwiJnNqPTFcXFwiKSkuZGF0YTtcXG5cXG5mb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogaXQuYmlhb3RpLFxcbiAgICAgICAgcGljX3VybDogaXQudHVwaWFuLFxcbiAgICAgICAgdXJsOiBpdC5kaXpoaSxcXG4gICAgICAgIGRlc2M6IGl0LnNoaWppYW4gKyBcXFwiXFxcXHRcXFwiICsgaXQubGVpeGluZyxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwibW92aWVfMlxcXCJcXG4gICAgfSk7XFxufVxcbnNldFJlc3VsdChkKTtcIixcImdyb3VwXCI6XCLwn4y656eB5Lq65aSp5ZywXCIsXCJ1YVwiOlwibW9iaWxlXCIsXCJwcmVSdWxlXCI6XCJcIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5b+r54yrXFxcIixcXFwicGF0aFxcXCI6XFxcImt1YWltYW8udlxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmNvbnN0IGtleSA9IFxcXFxcXFwia3VhaW1hb1xcXFxcXFwiO1xcXFxuYWRkTGlzdGVuZXIoXFxcXFxcXCJvbkNsb3NlXFxcXFxcXCIsICQudG9TdHJpbmcoa2V5ID0+IGxpc3RNeVZhcktleXMoKS5mb3JFYWNoKGl0ID0+IGl0LmluY2x1ZGVzKGtleSkgJiYgY2xlYXJNeVZhcihpdCkpLCBrZXkpKTtcXFxcbmNvbnN0IENyeXB0b1V0aWwgPSAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL2Fzc2V0cy9jcnlwdG8tamF2YS5qc1xcXFxcXFwiKTtcXFxcblxcXFxuY29uc3QgZCA9IFtdO1xcXFxuXFxcXG5jb25zdCBjbGFzc0xpc3QgPSBbXFxcXFxcXCLng63pl6hcXFxcXFxcIiwgXFxcXFxcXCLlub/lnLpcXFxcXFxcIl07XFxcXG5sZXQgdHlwZSA9IGdldE15VmFyKGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIiwgY2xhc3NMaXN0WzBdKTtcXFxcbmlmIChNWV9QQUdFID09PSAxKSB7XFxcXG4gICAgY2xhc3NMaXN0LmZvckVhY2goaXQgPT4gZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcXFxcXCLigJzigJxcXFxcXFxcIiArIGl0ICsgXFxcXFxcXCLigJ3igJ1cXFxcXFxcIiA6IGl0LFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJzY3JvbGxfYnV0dG9uXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogJChcXFxcXFxcIiNub0xvYWRpbmcjXFxcXFxcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiLCBpdCwga2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiKVxcXFxuICAgIH0pKTtcXFxcbn1cXFxcblxcXFxuZnVuY3Rpb24gZW5jcnlwdCh0ZXh0KSB7XFxcXG4gICAgbGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleChcXFxcXFxcIjM2MzIzNTMyMzAzMjY2MzkzMTM0Mzk2ZDYxNmY2ZDY5XFxcXFxcXCIpO1xcXFxuICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleChcXFxcXFxcIjM1NjU2NjY0MzM2NjM2MzAzNjMwNjU2ZDYxNmY2ZDY5XFxcXFxcXCIpO1xcXFxuICAgIGxldCBlbmNyeXB0ZWQgPSBDcnlwdG9VdGlsLkFFUy5lbmNyeXB0KHRleHQsIGtleSwge1xcXFxuICAgICAgICBpdjogaXYsXFxcXG4gICAgICAgIG1vZGU6IFxcXFxcXFwiQUVTL0NCQy9Qa2NzN1BhZGRpbmdcXFxcXFxcIlxcXFxuICAgIH0pO1xcXFxuICAgIHJldHVybiBlbmNyeXB0ZWQudG9IZXgoKS50b1VwcGVyQ2FzZSgpO1xcXFxufVxcXFxuXFxcXG5mdW5jdGlvbiBkZWNyeXB0KHRleHQpIHtcXFxcbiAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFxcXFxcIjYyNTIwMmY5MTQ5bWFvbWlcXFxcXFxcIik7XFxcXG4gICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFxcXFxcIjVlZmQzZjYwNjBlbWFvbWlcXFxcXFxcIik7XFxcXG4gICAgbGV0IGVuY3J5cHRlZCA9IENyeXB0b1V0aWwuQUVTLmRlY3J5cHQoQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KHRleHQpLCBrZXksIHtcXFxcbiAgICAgICAgaXY6IGl2LFxcXFxuICAgICAgICBtb2RlOiBcXFxcXFxcIkFFUy9DQkMvUGtjczdQYWRkaW5nXFxcXFxcXCJcXFxcbiAgICB9KTtcXFxcbiAgICByZXR1cm4gZW5jcnlwdGVkLnRvU3RyaW5nKCk7XFxcXG59XFxcXG5sZXQgcmVxRGF0YSA9IGVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoe1xcXFxuICAgIHBlclBhZ2U6IDE5LFxcXFxuICAgIHBhZ2U6IE1ZX1BBR0VcXFxcbn0pKTtcXFxcbmxldCBzb3VyY2UgPSBwb3N0KE1ZX1BBUkFNUy5hcGkgKyBcXFxcXFxcIi9hcGkvdmlkZW9zL1xcXFxcXFwiICsgKHR5cGUgPT09IFxcXFxcXFwi54Ot6ZeoXFxcXFxcXCIgPyBcXFxcXFxcImxpc3RIb3RcXFxcXFxcIiA6IFxcXFxcXFwibGlzdEFsbFxcXFxcXFwiKSwge1xcXFxuICAgIGJvZHk6IHtcXFxcbiAgICAgICAgZGF0YTogcmVxRGF0YSxcXFxcbiAgICAgICAgc2lnOiBtZDUoXFxcXFxcXCJkYXRhPVxcXFxcXFwiICsgcmVxRGF0YSArIFxcXFxcXFwibWFvbWlfcGFzc194eXpcXFxcXFxcIilcXFxcbiAgICB9XFxcXG59KTtcXFxcbmxldCBsaXN0ID0gSlNPTi5wYXJzZShkZWNyeXB0KHNvdXJjZSkpLmRhdGEubGlzdDtcXFxcbmZvciAobGV0IGl0IG9mIGxpc3QpIHtcXFxcbiAgICBpZiAoaXQuaXNfY2F0X2FkcykgY29udGludWU7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IFN0cmluZyhpdC5tdl9jcmVhdGVkKS5zcGxpdChcXFxcXFxcIiBcXFxcXFxcIilbMF0gKyBcXFxcXFxcIlxcXFxcXFxcblxcXFxcXFwiICsgaXQubXZfdGl0bGUsXFxcXG4gICAgICAgIHBpY191cmw6IGl0Lm12X2ltZ191cmwsXFxcXG4gICAgICAgIHVybDogaXQubXZfcGxheV91cmwucmVwbGFjZSgvaHR0cD86XFxcXFxcXFwvXFxcXFxcXFwvLio/XFxcXFxcXFwvLywgXFxcXFxcXCJodHRwczovL293ZXJic2QuaHhxcXp1Lnh5ei9cXFxcXFxcIiksXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInBpY18yX2NhcmRcXFxcXFxcIlxcXFxuICAgIH0pO1xcXFxufVxcXFxuXFxcXG5zZXRSZXN1bHQoZCk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi54uQ54u46KeG6aKRXFxcIixcXFwicGF0aFxcXCI6XFxcImh1bGkudlxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmNvbnN0IGtleSA9IFxcXFxcXFwiaHVsaVxcXFxcXFwiO1xcXFxuYWRkTGlzdGVuZXIoXFxcXFxcXCJvbkNsb3NlXFxcXFxcXCIsICQudG9TdHJpbmcoa2V5ID0+IGxpc3RNeVZhcktleXMoKS5mb3JFYWNoKGl0ID0+IGl0LmluY2x1ZGVzKGtleSkgJiYgY2xlYXJNeVZhcihpdCkpLCBrZXkpKTtcXFxcbmNvbnN0IFVSTCA9IE1ZX1BBUkFNUy5hcGkgKyBcXFxcXFxcIi9cXFxcXFxcIiArIE1ZX1BBUkFNUy5rZXk7XFxcXG5jb25zdCBjbGFzc0h0bWwgPSBnZXRNeVZhcihrZXkrXFxcXFxcXCI6Y2xhc3NcXFxcXFxcIixcXFxcXFxcIlxcXFxcXFwiKXx8ZmV0Y2goVVJMICsgXFxcXFxcXCIvbGlzdC5waHBcXFxcXFxcIik7XFxcXG5wdXRNeVZhcihrZXkrXFxcXFxcXCI6Y2xhc3NcXFxcXFxcIixjbGFzc0h0bWwpO1xcXFxuY29uc3QgY2xhc3NOYW1lID0gcGRmYShjbGFzc0h0bWwsIFxcXFxcXFwiYm9keSYmaDFcXFxcXFxcIikubWFwKHYgPT4gcGRmaCh2LCBcXFxcXFxcIlRleHRcXFxcXFxcIikpO1xcXFxuY29uc3QgY2xhc3NLZXkgPSBwZGZhKGNsYXNzSHRtbCwgXFxcXFxcXCJib2R5JiZkelxcXFxcXFwiKS5tYXAodiA9PiBwZGZoKHYsIFxcXFxcXFwiVGV4dFxcXFxcXFwiKSk7XFxcXG5sZXQgdHlwZSA9IGdldE15VmFyKGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIiwgY2xhc3NLZXlbMF0pO1xcXFxubGV0IGQgPSBbXTtcXFxcbmlmIChNWV9QQUdFID09PSAxKSB7XFxcXG4gICAgY2xhc3NLZXkuZm9yRWFjaCgoaXQsIGkpID0+IGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiB0eXBlID09PSBpdCA/IFxcXFxcXFwi4oCc4oCcXFxcXFxcXCIgKyBjbGFzc05hbWVbaV0gKyBcXFxcXFxcIuKAneKAnVxcXFxcXFwiIDogY2xhc3NOYW1lW2ldLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJzY3JvbGxfYnV0dG9uXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogJChcXFxcXFxcIiNub0xvYWRpbmcjXFxcXFxcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiLCBpdCwga2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiKVxcXFxuICAgIH0pKTtcXFxcbn1cXFxcbmxldCBsaXN0ID0gSlNPTi5wYXJzZShmZXRjaChVUkwgKyBcXFxcXFxcIi9saXN0LnBocD9zPVxcXFxcXFwiICsgdHlwZSArIFxcXFxcXFwiJnA9XFxcXFxcXCIgKyBNWV9QQUdFKSkuZGF0YTtcXFxcblxcXFxuZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBpdC50aXR0bGUsXFxcXG4gICAgICAgIHBpY191cmw6IGl0LmltZyxcXFxcbiAgICAgICAgdXJsOiBpdC51cmwsXFxcXG4gICAgICAgIGRlc2M6IGl0LnRpbWUsXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcIm1vdmllXzJcXFxcXFxcIlxcXFxuICAgIH0pO1xcXFxufVxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuWknOWNiuaZmuaKpVxcXCIsXFxcInBhdGhcXFwiOlxcXCJ5ZWJhbi52XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxuY29uc3Qga2V5ID0gXFxcXFxcXCJ5ZWJhblxcXFxcXFwiO1xcXFxuYWRkTGlzdGVuZXIoXFxcXFxcXCJvbkNsb3NlXFxcXFxcXCIsICQudG9TdHJpbmcoa2V5ID0+IGxpc3RNeVZhcktleXMoKS5mb3JFYWNoKGl0ID0+IGl0LmluY2x1ZGVzKGtleSkgJiYgY2xlYXJNeVZhcihpdCkpLCBrZXkpKTtcXFxcbmxldCBkID0gW107XFxcXG5sZXQgY2xhc3NMaXN0ID0gZ2V0TXlWYXIoa2V5ICsgXFxcXFxcXCI6Y2xhc3NcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIikgfHwgZmV0Y2goXFxcXFxcXCJodHRwczovL2FwaTIuZmZ1ZGluZ2RhbmcuY29tOjkwMDIvbGVpeGluZy5waHA/dD1cXFxcXFxcIiArIE1ZX1BBUkFNUy5wYWdlVGl0bGUpO1xcXFxucHV0TXlWYXIoa2V5ICsgXFxcXFxcXCI6Y2xhc3NcXFxcXFxcIiwgY2xhc3NMaXN0KTtcXFxcbmNsYXNzTGlzdCA9IGNsYXNzTGlzdC5zcGxpdChcXFxcXFxcIi1cXFxcXFxcIik7XFxcXG5sZXQgdHlwZSA9IGdldE15VmFyKGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIiwgY2xhc3NMaXN0WzBdKTtcXFxcbmlmIChNWV9QQUdFID09PSAxKSB7XFxcXG4gICAgY2xhc3NMaXN0LmZvckVhY2goaXQgPT4gZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcXFxcXCLigJzigJxcXFxcXFxcIiArIGl0ICsgXFxcXFxcXCLigJ3igJ1cXFxcXFxcIiA6IGl0LFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJzY3JvbGxfYnV0dG9uXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogJChcXFxcXFxcIiNub0xvYWRpbmcjXFxcXFxcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiLCBpdCwga2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiKVxcXFxuICAgIH0pKTtcXFxcbn1cXFxcbmxldCBsaXN0ID0gSlNPTi5wYXJzZShmZXRjaChNWV9QQVJBTVMuYXBpICsgXFxcXFxcXCIvYXBpL3poY21wdC5waHA/dD1cXFxcXFxcIiArIHR5cGUgKyBcXFxcXFxcIiZwPVxcXFxcXFwiICsgTVlfUEFHRSArIFxcXFxcXFwiJnNqPTFcXFxcXFxcIikpLmRhdGE7XFxcXG5cXFxcbmZvciAobGV0IGl0IG9mIGxpc3QpIHtcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogaXQuYmlhb3RpLFxcXFxuICAgICAgICBwaWNfdXJsOiBpdC50dXBpYW4sXFxcXG4gICAgICAgIHVybDogaXQuZGl6aGksXFxcXG4gICAgICAgIGRlc2M6IGl0LnNoaWppYW4gKyBcXFxcXFxcIlxcXFxcXFxcdFxcXFxcXFwiICsgaXQubGVpeGluZyxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwibW92aWVfMlxcXFxcXFwiXFxcXG4gICAgfSk7XFxcXG59XFxcXG5zZXRSZXN1bHQoZCk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi55m+6Iqx56S+XFxcIixcXFwicGF0aFxcXCI6XFxcImJhaWh1YS52XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxuY29uc3Qga2V5ID0gXFxcXFxcXCJiYWlodWFcXFxcXFxcIjtcXFxcbmFkZExpc3RlbmVyKFxcXFxcXFwib25DbG9zZVxcXFxcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxcXG5cXFxcbmNvbnN0IGNsYXNzSHRtbCA9IGdldE15VmFyKGtleSArIFxcXFxcXFwiOmNsYXNzXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXCIpIHx8IGZldGNoKE1ZX1BBUkFNUy5hcGkgKyBcXFxcXFxcIi92b2RfbGlzdC5waHA/cD1cXFxcXFxcIiArIE1ZX1BBUkFNUy5rZXksIHtcXFxcbiAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgIGFjY2VwdDogXFxcXFxcXCJ0ZXh0L2h0bWwsIGFwcGxpY2F0aW9uL3hodG1sK3htbCwgYXBwbGljYXRpb24veG1sOyBxPTAuOSwgKi8qOyBxPTAuOFxcXFxcXFwiXFxcXG4gICAgfVxcXFxufSk7XFxcXG4vL2xvZyhjbGFzc0h0bWwpXFxcXG5wdXRNeVZhcihrZXkgKyBcXFxcXFxcIjpjbGFzc1xcXFxcXFwiLCBjbGFzc0h0bWwpO1xcXFxubGV0IGFyciA9IHBkZmEoY2xhc3NIdG1sLCBcXFxcXFxcIi5zd2lwZXItd3JhcHBlciwxJiZhXFxcXFxcXCIpLnNsaWNlKDEpO1xcXFxuXFxcXG5jb25zdCBjbGFzc05hbWUgPSBhcnIubWFwKHYgPT4gcGRmaCh2LCBcXFxcXFxcIlRleHRcXFxcXFxcIikpO1xcXFxuY29uc3QgY2xhc3NLZXkgPSBhcnIubWFwKHYgPT4gcGRmaCh2LCBcXFxcXFxcImEmJmhyZWZcXFxcXFxcIikpO1xcXFxuXFxcXG5sZXQgdHlwZSA9IGdldE15VmFyKGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIiwgY2xhc3NLZXlbMF0pO1xcXFxuXFxcXG5sZXQgZCA9IFtdO1xcXFxuaWYgKE1ZX1BBR0UgPT09IDEpIHtcXFxcbiAgICBjbGFzc0tleS5mb3JFYWNoKChpdCwgaSkgPT4gZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcXFxcXCLigJzigJxcXFxcXFxcIiArIGNsYXNzTmFtZVtpXSArIFxcXFxcXFwi4oCd4oCdXFxcXFxcXCIgOiBjbGFzc05hbWVbaV0sXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiAkKFxcXFxcXFwiI25vTG9hZGluZyNcXFxcXFxcIikubGF6eVJ1bGUoKGl0LCBrZXkpID0+IHB1dE15VmFyKGtleSwgaXQpIHx8IHJlZnJlc2hQYWdlKCkgfHwgXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCIsIGl0LCBrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIpXFxcXG4gICAgfSkpO1xcXFxufVxcXFxubGV0IGxpc3QgPSBwZGZhKGZldGNoKE1ZX1BBUkFNUy5hcGkgKyB0eXBlICsgXFxcXFxcXCImcGFnZT1cXFxcXFxcIiArIE1ZX1BBR0UsIHtcXFxcbiAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgIGFjY2VwdDogXFxcXFxcXCJ0ZXh0L2h0bWwsIGFwcGxpY2F0aW9uL3hodG1sK3htbCwgYXBwbGljYXRpb24veG1sOyBxPTAuOSwgKi8qOyBxPTAuOFxcXFxcXFwiXFxcXG4gICAgfVxcXFxufSksIFxcXFxcXFwiYm9keSYmLmxlby12aWRlby1pdGVtXFxcXFxcXCIpO1xcXFxuXFxcXG5mb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHBkZmgoaXQsIFxcXFxcXFwiaDImJlRleHRcXFxcXFxcIiksXFxcXG4gICAgICAgIHBpY191cmw6IHBkZmgoaXQsIFxcXFxcXFwiaW1nJiZzcmNcXFxcXFxcIiksXFxcXG4gICAgICAgIHVybDogTVlfUEFSQU1TLmFwaSArIHBkZmgoaXQsIFxcXFxcXFwiYSYmaHJlZlxcXFxcXFwiKSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwibW92aWVfMlxcXFxcXFwiXFxcXG4gICAgfSk7XFxcXG59XFxcXG5zZXRSZXN1bHQoZCk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzJcXFwiLFxcXCJuYW1lXFxcIjpcXFwi54yr5ZKqXFxcIixcXFwicGF0aFxcXCI6XFxcIm1hb21pXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxuY29uc3Qga2V5ID0gXFxcXFxcXCJtYW9taVxcXFxcXFwiO1xcXFxuYWRkTGlzdGVuZXIoXFxcXFxcXCJvbkNsb3NlXFxcXFxcXCIsICQudG9TdHJpbmcoa2V5ID0+IGxpc3RNeVZhcktleXMoKS5mb3JFYWNoKGl0ID0+IGl0LmluY2x1ZGVzKGtleSkgJiYgY2xlYXJNeVZhcihpdCkpLCBrZXkpKTtcXFxcbiQuZXh0ZW5kKHtcXFxcbiAgICBtYW9taWFwaTpNWV9QQVJBTVMuYXBpLFxcXFxuICAgIGdldENyeXB0bygpIHtcXFxcbiAgICAgICAgY29uc3QgQ3J5cHRvVXRpbCA9ICQucmVxdWlyZShcXFxcXFxcImhpa2VyOi8vYXNzZXRzL2NyeXB0by1qYXZhLmpzXFxcXFxcXCIpO1xcXFxuXFxcXG4gICAgICAgIGZ1bmN0aW9uIGVuY3J5cHQodGV4dCkge1xcXFxuICAgICAgICAgICAgbGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleChcXFxcXFxcIjM2MzIzNTMyMzIzMjY2MzkzMTM0Mzk2NTM5MzYzMTY0XFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXFxcXFwiMzU2NTY2NjQ3NDY2MzYzMDM2MzA2NTMyNmYzMzMzMzBcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZW5jcnlwdCh0ZXh0LCBrZXksIHtcXFxcbiAgICAgICAgICAgICAgICBpdjogaXYsXFxcXG4gICAgICAgICAgICAgICAgbW9kZTogXFxcXFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXFxcXFwiXFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIHJldHVybiBlbmNyeXB0ZWQudG9IZXgoKS50b1VwcGVyQ2FzZSgpO1xcXFxuICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgZnVuY3Rpb24gZGVjcnlwdCh0ZXh0KSB7XFxcXG4gICAgICAgICAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFxcXFxcIjYyNTIyMmY5MTQ5ZTk2MWRcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICBsZXQgaXYgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXFxcXFwiNWVmZHRmNjA2MGUybzMzMFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgIGxldCBlbmNyeXB0ZWQgPSBDcnlwdG9VdGlsLkFFUy5kZWNyeXB0KENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleCh0ZXh0KSwga2V5LCB7XFxcXG4gICAgICAgICAgICAgICAgaXY6IGl2LFxcXFxuICAgICAgICAgICAgICAgIG1vZGU6IFxcXFxcXFwiQUVTL0NCQy9Qa2NzN1BhZGRpbmdcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICByZXR1cm4gZW5jcnlwdGVkLnRvU3RyaW5nKCk7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgcmV0dXJuIHtcXFxcbiAgICAgICAgICAgIGVuY3J5cHQsXFxcXG4gICAgICAgICAgICBkZWNyeXB0XFxcXG4gICAgICAgIH07XFxcXG4gICAgfVxcXFxufSk7XFxcXG5sZXQge1xcXFxuICAgIGVuY3J5cHQsXFxcXG4gICAgZGVjcnlwdFxcXFxufSA9ICQuZ2V0Q3J5cHRvKCk7XFxcXG5cXFxcbmNvbnN0IGNsYXNzTmFtZSA9IFtcXFxcXFxcIuWOn+WIm1xcXFxcXFwiLCBcXFxcXFxcIkFJXFxcXFxcXCIsIFxcXFxcXFwi5LiN6ZuFXFxcXFxcXCIsIFxcXFxcXFwi5Lqa5rSy5pegL+eggVxcXFxcXFwiLCBcXFxcXFxcIuaKlumfs+WmuVxcXFxcXFwiLCBcXFxcXFxcIueDreWJp1xcXFxcXFwiLCBcXFxcXFxcIuS4iee6p1xcXFxcXFwiLCBcXFxcXFxcIuS6uuawlOWlsy/kvJhcXFxcXFxcIl07XFxcXG5jb25zdCBjbGFzc0tleSA9IFtcXFxcXFxcIjEwXFxcXFxcXCIsIFxcXFxcXFwiMTZcXFxcXFxcIiwgXFxcXFxcXCI1XFxcXFxcXCIsIFxcXFxcXFwiOVxcXFxcXFwiLCBcXFxcXFxcIjExXFxcXFxcXCIsIFxcXFxcXFwiMTJcXFxcXFxcIiwgXFxcXFxcXCIxM1xcXFxcXFwiLCBcXFxcXFxcIjZcXFxcXFxcIl07XFxcXG5sZXQgdHlwZSA9IGdldE15VmFyKGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIiwgY2xhc3NLZXlbMF0pO1xcXFxubGV0IGQgPSBbXTtcXFxcbmlmIChNWV9QQUdFID09PSAxKSB7XFxcXG4gICAgY2xhc3NLZXkuZm9yRWFjaCgoaXQsIGkpID0+IGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiB0eXBlID09PSBpdCA/IFxcXFxcXFwi4oCc4oCcXFxcXFxcXCIgKyBjbGFzc05hbWVbaV0gKyBcXFxcXFxcIuKAneKAnVxcXFxcXFwiIDogY2xhc3NOYW1lW2ldLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJzY3JvbGxfYnV0dG9uXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogJChcXFxcXFxcIiNub0xvYWRpbmcjXFxcXFxcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiLCBpdCwga2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiKVxcXFxuICAgIH0pKTtcXFxcbn1cXFxcblxcXFxubGV0IHJlcURhdGEgPSBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICBzcGVjaWFsX2lkOiBOdW1iZXIodHlwZSksXFxcXG4gICAgcGFnZTogTVlfUEFHRVxcXFxufSkpO1xcXFxuXFxcXG5sZXQgbGF6eSA9ICQoXFxcXFxcXCJcXFxcXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgIGxldCB7XFxcXG4gICAgICAgIGVuY3J5cHQsXFxcXG4gICAgICAgIGRlY3J5cHRcXFxcbiAgICB9ID0gJC5nZXRDcnlwdG8oKTtcXFxcbiAgICBsZXQgc291cmNlID0gcG9zdCgkLm1hb21pYXBpICsgXFxcXFxcXCIvYXBpL3ZpZGVvL2RldGFpbD9wYXJhbXM9XFxcXFxcXCIgKyBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICAgICAgaWQ6TnVtYmVyKGlucHV0KVxcXFxuICAgIH0pKSk7XFxcXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjcnlwdChzb3VyY2UpKS5kYXRhLnZpZGVvc1swXS5maWxlO1xcXFxufSk7XFxcXG50cnkge1xcXFxuICAgIGxldCBzb3VyY2UgPSBwb3N0KE1ZX1BBUkFNUy5hcGkgKyBcXFxcXFxcIi9hcGkvc3BlY2lhbC92aWRlbz9wYXJhbXM9XFxcXFxcXCIgKyByZXFEYXRhKTtcXFxcbiAgICBsZXQgbGlzdCA9IEpTT04ucGFyc2UoZGVjcnlwdChzb3VyY2UpKS5kYXRhLmRhdGE7XFxcXG4gICAgZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcXFxuICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6IGl0LnVwZGF0ZV9hdCArIFxcXFxcXFwiXFxcXFxcXFxuXFxcXFxcXCIgKyBpdC52aWRlb19uYW1lLFxcXFxuICAgICAgICAgICAgcGljX3VybDogaXQuaW1hZ2UsXFxcXG4gICAgICAgICAgICB1cmw6IGl0LnZpZGVvX2lkK2xhenksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJwaWNfM19jYXJkXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBleHRyYTp7XFxcXG4gICAgICAgICAgICAgICAgaW5oZXJpdFRpdGxlOiBmYWxzZVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9KTtcXFxcbiAgICB9XFxcXG59IGNhdGNoIChlKSB7XFxcXG5cXFxcbn1cXFxcbnNldFJlc3VsdChkKTtcXFwifV1cIixcInByb3h5XCI6XCJcIn0iLCJwaWNVcmwiOiJodHRwOi8vYXBpLnhrYTEudG9wLzZpbWcvamluamlhby5wbmciLCJ0aXRsZSI6IumHkeiVieinhumikVvnp5Lmkq1dIn0=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement