Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥❤️接口多选测试@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbXSxcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi6IGa5b2x5aSW5oyCXCIsXCJ2ZXJzaW9uXCI6MCxcInVybFwiOlwiaGlrZXI6Ly9lbXB0eSNub1JlY29yZEhpc3RvcnkjO2dldDtVVEYtODt7VXNlci1BZ2VudEBNb3ppbGxhLzUuMCAoTGludXjvvJvvvJsgQW5kcm9pZCAxMe+8m++8myBNaSAxMCBQcm8pIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS84OC4wLjQzMjQuMTUyIE1vYmlsZSBTYWZhcmkvNTM3LjM2fVwiLFwiY29sX3R5cGVcIjpcIm1vdmllXzNfbWFycXVlZVwiLFwiZmluZF9ydWxlXCI6XCJqczooXFxuKGR4X3Rlc3QsIGprcGF0aCwgY29sb3IpID0+IHtcXG4gICAgc2V0UGFnZVRpdGxlKGR4X3Rlc3QpO1xcbiAgICBhZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICB9XFxuICAgICkpO1xcbiAgICBsZXQgZCA9IFtdO1xcbiAgICBsZXQgamtzID0gSlNPTi5wYXJzZShmZXRjaChqa3BhdGgpIHx8IFxcXCJbXVxcXCIpO1xcbiAgICBsZXQgZXhwYW5kID0gW1xcXCJ4cGF0aFxcXCIsIFxcXCJiaXViaXVcXFwiXTtcXG4gICAgbGV0IGp4cyA9IGprcy5maWx0ZXIoaXQgPT4gIWV4cGFuZC5pbmNsdWRlcyhpdC50eXBlKSk7XFxuICAgIGxldCBkYXRhID0gc3RvcmFnZTAuZ2V0TXlWYXIoXFxcImp4X3NlbGVjdGVkXFxcIikgfHwgW107XFxuICAgIGxldCBkeF9maWx0ZXIgPSBnZXRJdGVtKFxcXCJkeF9maWx0ZXJcXFwiLCBcXFwiXFxcXHU1MTY4XFxcXHU5MGU4XFxcIik7XFxuICAgIGlmIChkeF9maWx0ZXIgPT09IFxcXCJcXFxcdTVkZjJcXFxcdTkwMDlcXFwiKSB7XFxuICAgICAgICBqeHMgPSBqeHMuZmlsdGVyKGl0ID0+IGRhdGEuaW5jbHVkZXMoaXQudXJsKSk7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBpZiAoZHhfZmlsdGVyID09PSBcXFwiXFxcXHU2NzJhXFxcXHU5MDA5XFxcIikge1xcbiAgICAgICAgICAgIGp4cyA9IGp4cy5maWx0ZXIoaXQgPT4gIWRhdGEuaW5jbHVkZXMoaXQudXJsKSk7XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgZCA9IGp4cy5tYXAoKGl0KSA9PiB7XFxuICAgICAgICByZXR1cm4ge3RpdGxlOiAoQXJyYXkuaXNBcnJheShkYXRhKSAmJiBkYXRhLmluY2x1ZGVzKGl0LnVybCkpID8gY29sb3IoaXQubmFtZSwgXFxcIiMxMmI2NjhcXFwiKSA6IGl0Lm5hbWUsIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoaXQsIGNvbG9yKSA9PiB7XFxuICAgICAgICAgICAgbGV0IGRhdGEgPSBzdG9yYWdlMC5nZXRNeVZhcihcXFwianhfc2VsZWN0ZWRcXFwiKTtcXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5pbmNsdWRlcyhpdC51cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICBsb2coXFxcIlxcXFx1NTMwNVxcXFx1NTQyYjpcXFwiICsgaXQudXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGRhdGEuc3BsaWNlKGRhdGEuaW5kZXhPZihpdC51cmwpLCAxKTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGRhdGEucHVzaChpdC51cmwpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKFxcXCJqeF9zZWxlY3RlZFxcXCIsIGRhdGEpO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKFxcXCJqeF9zZWxlY3RlZFxcXCIsIFtpdC51cmxdKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKHN0b3JhZ2UwLmdldE15VmFyKFxcXCJqeF9zZWxlY3RlZFxcXCIpLmluY2x1ZGVzKGl0LnVybCkpIHtcXG4gICAgICAgICAgICAgICAgdXBkYXRlSXRlbShpdC51cmwsIHt0aXRsZTogY29sb3IoaXQubmFtZSwgXFxcIiMxMmI2NjhcXFwiKX0pO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZW0oaXQudXJsLCB7dGl0bGU6IGl0Lm5hbWV9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXG4gICAgICAgIH1cXG4gICAgICAgICwgaXQsIGNvbG9yKSwgY29sX3R5cGU6IFxcXCJ0ZXh0XzNcXFwiLCBkZXNjOiBKU09OLnN0cmluZ2lmeShpdCksIGV4dHJhOiB7aWQ6IGl0LnVybH19O1xcbiAgICB9XFxuICAgICk7XFxuICAgIGxldCBvcCA9IFtdO1xcbiAgICBvcC5wdXNoKHt0aXRsZTogXFxcIlxcXFx1NTE2OFxcXFx1OTAwOVxcXCIsIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoanhzLCBjb2xvcikgPT4ge1xcbiAgICAgICAgc3RvcmFnZTAucHV0TXlWYXIoXFxcImp4X3NlbGVjdGVkXFxcIiwganhzLm1hcChpdCA9PiBpdC51cmwpKTtcXG4gICAgICAgIGp4cy5mb3JFYWNoKGl0ID0+IHtcXG4gICAgICAgICAgICB1cGRhdGVJdGVtKHt0aXRsZTogY29sb3IoaXQubmFtZSwgXFxcIiMxMmI2NjhcXFwiKSwgZXh0cmE6IHtpZDogaXQudXJsfX0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgKTtcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgIH1cXG4gICAgLCBqeHMsIGNvbG9yKSwgY29sX3R5cGU6IFxcXCJmbGV4X2J1dHRvblxcXCJ9KTtcXG4gICAgb3AucHVzaCh7dGl0bGU6IFxcXCJcXFxcdTUxNjhcXFxcdTRlMGRcXFxcdTkwMDlcXFwiLCB1cmw6ICQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKGp4cykgPT4ge1xcbiAgICAgICAgc3RvcmFnZTAucHV0TXlWYXIoXFxcImp4X3NlbGVjdGVkXFxcIiwgW10pO1xcbiAgICAgICAganhzLmZvckVhY2goaXQgPT4ge1xcbiAgICAgICAgICAgIHVwZGF0ZUl0ZW0oe3RpdGxlOiBpdC5uYW1lLCBleHRyYToge2lkOiBpdC51cmx9fSk7XFxuICAgICAgICB9XFxuICAgICAgICApO1xcbiAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXG4gICAgfVxcbiAgICAsIGp4cyksIGNvbF90eXBlOiBcXFwiZmxleF9idXR0b25cXFwifSk7XFxuICAgIG9wLnB1c2goe3RpdGxlOiBcXFwiXFxcXHU1M2NkXFxcXHU5MDA5XFxcIiwgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKChqeHMsIGNvbG9yKSA9PiB7XFxuICAgICAgICBsZXQgb2xkU2VsID0gc3RvcmFnZTAuZ2V0TXlWYXIoXFxcImp4X3NlbGVjdGVkXFxcIiwgW10pO1xcbiAgICAgICAgZnVuY3Rpb24gZ2V0RGlmZmVyZW50RGF0YShhcnJBLCBhcnJCKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGFyckEuY29uY2F0KGFyckIpLmZpbHRlcihmdW5jdGlvbiAodiwgaSwgYXJyKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBhcnIuaW5kZXhPZih2KSA9PT0gYXJyLmxhc3RJbmRleE9mKHYpO1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgbGV0IGp4U2VsID0ganhzLm1hcChpdCA9PiBpdC51cmwpO1xcbiAgICAgICAgbGV0IG5ld1NlbCA9IGdldERpZmZlcmVudERhdGEoanhTZWwsIG9sZFNlbCk7XFxuICAgICAgICBzdG9yYWdlMC5wdXRNeVZhcihcXFwianhfc2VsZWN0ZWRcXFwiLCBuZXdTZWwpO1xcbiAgICAgICAgbmV3U2VsLmZvckVhY2goaXQgPT4ge1xcbiAgICAgICAgICAgIGxldCB0ID0ganhzLmZpbHRlcihpdHMgPT4gaXRzLnVybCA9PT0gaXQpWzBdO1xcbiAgICAgICAgICAgIHVwZGF0ZUl0ZW0oaXQsIHt0aXRsZTogY29sb3IodC5uYW1lLCBcXFwiIzEyYjY2OFxcXCIpfSk7XFxuICAgICAgICB9XFxuICAgICAgICApO1xcbiAgICAgICAgb2xkU2VsLmZvckVhY2goaXQgPT4ge1xcbiAgICAgICAgICAgIGxldCB0ID0ganhzLmZpbHRlcihpdHMgPT4gaXRzLnVybCA9PT0gaXQpWzBdO1xcbiAgICAgICAgICAgIHVwZGF0ZUl0ZW0oaXQsIHt0aXRsZTogdC5uYW1lfSk7XFxuICAgICAgICB9XFxuICAgICAgICApO1xcbiAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXG4gICAgfVxcbiAgICAsIGp4cywgY29sb3IpLCBjb2xfdHlwZTogXFxcImZsZXhfYnV0dG9uXFxcIn0pO1xcbiAgICBvcC5wdXNoKHt0aXRsZTogXFxcIlxcXFx1NjQxY1xcXFx1N2QyMlxcXFx1OGJjZFxcXCIsIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICByZXR1cm4gJChnZXRNeVZhcihcXFwic2tleVxcXCIsIFxcXCJcXFxcdTYyMTFcXFxcdTc2ODRcXFwiKSwgXFxcIlxcXFx1NWY1M1xcXFx1NTI0ZFxcXFx1NjQxY1xcXFx1N2QyMlxcXFx1OGJjZFxcXCIpLmlucHV0KCgpID0+IHtcXG4gICAgICAgICAgICBpZiAoaW5wdXQpIHtcXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoXFxcInNrZXlcXFwiLCBpbnB1dCk7XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgICAgICB9XFxuICAgICAgICApO1xcbiAgICB9XFxuICAgICksIGNvbF90eXBlOiBcXFwiZmxleF9idXR0b25cXFwifSk7XFxuICAgIG9wLnB1c2goe3RpdGxlOiBcXFwiXFxcXHU2ZDRiXFxcXHU4YmQ1XFxcIiwgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgIGxldCBzZWwgPSBzdG9yYWdlMC5nZXRNeVZhcihcXFwianhfc2VsZWN0ZWRcXFwiLCBbXSk7XFxuICAgICAgICBpZiAoc2VsLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8vXFxcXHU1NTY1XFxcXHU5MGZkXFxcXHU2Y2ExXFxcXHU5MDA5XFxcXHVmZjBjXFxcXHU2ZDRiXFxcXHU4YmQ1XFxcXHU0ZTJhXFxcXHU5ZTIxXFxcXHU2YmRiflxcXCI7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gJChcXFwiXFxcXHU3ODZlXFxcXHU4YmE0XFxcXHU2ZDRiXFxcXHU4YmQ1XFxcXHU1ZGYyXFxcXHU5MDA5XFxcXHU2MmU5XFxcXHU3Njg0OlxcXCIgKyBzZWxbMF0gKyBcXFwiXFxcXHU3YjQ5XFxcIiArIHNlbC5sZW5ndGggKyBcXFwiXFxcXHU2NzYxXFxcXHU2M2E1XFxcXHU1M2UzP1xcXCIpLmNvbmZpcm0oKHNlbCkgPT4ge1xcbiAgICAgICAgICAgIHJldHVybiAkKFxcXCJoaWtlcjovL2VtcHR5XFxcIikucnVsZSgoc2VsKSA9PiB7XFxuICAgICAgICAgICAgICAgIGFkZExpc3RlbmVyKFxcXCJvbkNsb3NlXFxcIiwgJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgKSk7XFxuICAgICAgICAgICAgICAgIGxldCBqa3BhdGggPSBcXFwiaGlrZXI6Ly9maWxlcy8vcnVsZXMvU3JjL0p1eWluZy9qaWVrb3UuanNvblxcXCI7XFxuICAgICAgICAgICAgICAgIGxldCBqa3MgPSBKU09OLnBhcnNlKGZldGNoKGprcGF0aCkgfHwgXFxcIltdXFxcIik7XFxuICAgICAgICAgICAgICAgIGxldCBhcGlqa3MgPSBqa3MuZmlsdGVyKGl0ID0+IHNlbC5pbmNsdWRlcyhpdC51cmwpKTtcXG4gICAgICAgICAgICAgICAgbGV0IHNrZXkgPSBnZXRNeVZhcihcXFwic2tleVxcXCIsIFxcXCJcXFxcdTYyMTFcXFxcdTc2ODRcXFwiKTtcXG4gICAgICAgICAgICAgICAgbGV0IGQgPSBbXTtcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHt0aXRsZTogXFxcIlxcXFx1NTIyMFxcXFx1OTY2NFxcXFx1NTc0ZlxcXFx1NzY4NFxcXFx1NjNhNVxcXFx1NTNlM1xcXCIsIGNvbF90eXBlOiBcXFwidGV4dF8yXFxcIiwgdXJsOiAkKCkubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFyciA9IChmaW5kSXRlbXNCeUNscyhcXFwiZmFpbGVkXFxcIikgfHwgW10pLm1hcCgoaXQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge2lkOiBpdC5leHRyYS5pZCwgbmFtZTogaXQuZXh0cmEubmFtZSwgdXJsOiBpdC5leHRyYS51cmx9O1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcnIubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly9cXFxcdTVmODhcXFxcdTY4ZDIsXFxcXHU1ZjUzXFxcXHU1MjRkXFxcXHU2ZDRiXFxcXHU4YmQ1XFxcXHU3ZWQzXFxcXHU2NzljXFxcXHU3NzBiXFxcXHU4ZDc3XFxcXHU2NzY1XFxcXHU2Y2ExXFxcXHU2NzA5XFxcXHU1NzRmXFxcXHU2Mzg5XFxcXHU3Njg0XFxcXHU2M2E1XFxcXHU1M2UzXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aXBzID0gYXJyLm1hcChpdCA9PiBpdC5uYW1lKS5qb2luKFxcXCIsXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChcXFwiXFxcXHU1ZjUzXFxcXHU1MjRkXFxcXHU2ZDRiXFxcXHU4YmQ1XFxcXHU3ZWQzXFxcXHU2NzljXFxcXHU1MTcxXFxcXHU4YmExXFxcIiArIGFyci5sZW5ndGggKyBcXFwiXFxcXHU0ZTJhXFxcXHU3NTkxXFxcXHU0ZjNjXFxcXHU1OTMxXFxcXHU2NTQ4XFxcXHU3Njg0XFxcXHU3Njg0XFxcXHU4ZDQ0XFxcXHU2ZTkwXFxcXHU2M2E1XFxcXHU1M2UzLFxcXFx1NjYyZlxcXFx1NTQyNlxcXFx1NTIyMFxcXFx1OTY2ND9cXFxcblxcXCIgKyB0aXBzKS5jb25maXJtKChhcnIpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgamtwYXRoID0gXFxcImhpa2VyOi8vZmlsZXMvL3J1bGVzL1NyYy9KdXlpbmcvamlla291Lmpzb25cXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcGlqa3MgPSBKU09OLnBhcnNlKGZldGNoKGprcGF0aCkgfHwgXFxcIltdXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbGVkID0gW107XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHVybHMgPSBbXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnIuZm9yRWFjaCgoaXQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXCJcXFxcdTUyMjBcXFxcdTk2NjRcXFxcdTYzYTVcXFxcdTUzZTM6XFxcIiArIGl0Lm5hbWUgKyBcXFwiLGlkOlxcXCIgKyBpdC5pZCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGVkLnB1c2goaXQubmFtZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbHVybHMucHVzaChpdC51cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwaWprcyA9IGFwaWprcy5maWx0ZXIoaXRzID0+ICFkZWx1cmxzLmluY2x1ZGVzKGl0cy51cmwpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2VsID0gc3RvcmFnZTAuZ2V0TXlWYXIoXFxcImp4X3NlbGVjdGVkXFxcIiwgW10pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbCA9IHNlbC5maWx0ZXIoaXRzID0+ICFkZWx1cmxzLmluY2x1ZGVzKGl0cykpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZUl0ZW1CeUNscyhcXFwiZmFpbGVkXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZTAucHV0TXlWYXIoXFxcImp4X3NlbGVjdGVkXFxcIiwgc2VsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoamtwYXRoLCBKU09OLnN0cmluZ2lmeShhcGlqa3MpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8vXFxcXHU1ZGYyXFxcXHU1MjIwXFxcXHU5NjY0OlxcXCIgKyBkZWxlZC5qb2luKFxcXCIsXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAsIGFycik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgKX0pO1xcbiAgICAgICAgICAgICAgICBkLnB1c2goe3RpdGxlOiBcXFwiXFxcXHU2N2U1XFxcXHU3NzBiXFxcXHU1NzRmXFxcXHU4NmNiXFxcIiwgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiLCB1cmw6ICQoKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgYXJyID0gKGZpbmRJdGVtc0J5Q2xzKFxcXCJmYWlsZWRcXFwiKSB8fCBbXSkubWFwKChpdCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7aWQ6IGl0LmlkLCBuYW1lOiBpdC5leHRyYS5uYW1lLCB1cmw6IGl0LmV4dHJhLnVybH07XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICApO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFyci5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL1xcXFx1NWY4OFxcXFx1NjhkMixcXFxcdTVmNTNcXFxcdTUyNGRcXFxcdTZkNGJcXFxcdThiZDVcXFxcdTdlZDNcXFxcdTY3OWNcXFxcdTc3MGJcXFxcdThkNzdcXFxcdTY3NjVcXFxcdTZjYTFcXFxcdTY3MDlcXFxcdTU3NGZcXFxcdTYzODlcXFxcdTc2ODRcXFxcdTYzYTVcXFxcdTUzZTNcXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoXFxcImhpa2VyOi8vZW1wdHkjbm9IaXN0b3J5IyNub1JlY29yZEhpc3RvcnkjXFxcIikucnVsZSgoYXJyKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFnZVRpdGxlKFxcXCJcXFxcdTU3NGZcXFxcdTg2Y2JcXFxcdTUyMTdcXFxcdTg4NjhcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZCA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGQucHVzaCh7dGl0bGU6IFxcXCJcXFxcdTUxNzFcXFxcdThiYTFcXFwiICsgYXJyLmxlbmd0aCArIFxcXCJcXFxcdTRlMmFcXFxcdTU3NGZcXFxcdTg2Y2JcXFwiLCB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIiwgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwifSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHt0aXRsZTogSlNPTi5zdHJpbmdpZnkoYXJyKSwgY29sX3R5cGU6IFxcXCJsb25nX3RleHRcXFwifSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGQpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgLCBhcnIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICl9KTtcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHt0aXRsZTogYOa1i+ivleaQnOe0ouKAnOKAnOKAneKAnTxmb250IGNvbG9yPVxcXCJyZWRcXFwiPiR7c2tleX08L2ZvbnQ+IOe7k+aenOWmguS4izpgLCBjb2xfdHlwZTogXFxcInRleHRfMVxcXCIsIHVybDogXFxcInRvYXN0Oi8vXFxcXHU3NzBiXFxcXHU0ZTBiXFxcXHU5NzYyXFxcXHU3Njg0IVxcXCIsIGV4dHJhOiB7aWQ6IFxcXCJyZXN1bHRcXFwifX0pO1xcbiAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZCk7XFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGdldEtleSgpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aW1lX3N0ciA9ICQuZGF0ZUZvcm1hdChuZXcgRGF0ZSgpLCBcXFwieXl5eS1NTS1kZCBISDptbTpzc1xcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRtcCA9IHRpbWVfc3RyLnNwbGl0KFxcXCIgXFxcIilbMF0uc3BsaXQoXFxcIi1cXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0bXBbMV0gKyB0bXBbMl07XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaXNJcHR2KGxpbmspIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvaXB0dnxDaGVuZ2NoZW5nLy50ZXN0KGxpbmspKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBsZXQgc3BlY2lhbCA9IFtcXFwidHYuaGZ5czgudmlwL2FwaS5waHAvU250di92b2RcXFwiLCBcXFwiZHN4dHYudHYuY2kvYXBpLnBocC9kc3gvdm9kXFxcIl07XFxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCB1cmwgb2Ygc3BlY2lhbCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5rLmluY2x1ZGVzKHVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHZhciBjb3VudCA9IGFwaWprcy5sZW5ndGg7XFxuICAgICAgICAgICAgICAgIGxvZyhcXFwiXFxcXHU1ZjAwXFxcXHU1NDJmXFxcXHU1OTFhXFxcXHU0ZWZiXFxcXHU1MmExXFxcXHU2ZDRiXFxcXHU4YmQ1LFxcXFx1NGVmYlxcXFx1NTJhMVxcXFx1NjU3MFxcXFx1OTFjZjpcXFwiICsgY291bnQpO1xcbiAgICAgICAgICAgICAgICB2YXIgdGFzayA9IGZ1bmN0aW9uIChvYmopIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBzdXJsID0gb2JqLnN1cmw7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgdWEgPSBvYmoudWE7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodWEgPT09IFxcXCJQQ19VQVxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB1YSA9IFBDX1VBO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodWEgPT09IFxcXCJNT0JJTEVfVUFcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVhID0gTU9CSUxFX1VBO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gZmV0Y2goc3VybCwge2hlYWRlcnM6IHtcXFwiVXNlci1BZ2VudFxcXCI6IHVhfSwgdGltZW91dDogTnVtYmVyKGdldE15VmFyKFxcXCJ0aW1lb3V0XFxcIiwgXFxcIjUwMDBcXFwiKSl9KSB8fCBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBjbHM7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG0gPSBodG1sLnNsaWNlKDAsIDIwMCk7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmV0ID0ge307XFxuICAgICAgICAgICAgICAgICAgICB2YXIganNvbiA9IHt9O1xcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBKU09OLnBhcnNlKGh0bWwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNscyA9IFxcXCJzdWNjZXNzXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JqLnYxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24gPSByZXQuZGF0YS5saXN0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvYmoudjIgfHwgb2JqLmlwdHYpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24gPSByZXQuZGF0YTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24gPSByZXQubGlzdDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShqc29uKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uID0ganNvblswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0ganNvbjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JqLm5hbWUuaW5jbHVkZXMoXFxcIlxcXFx1NzY3ZFxcXFx1NGU5MVxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2cob2JqLm5hbWUgKyBcXFwiXFxcXHU4OWUzXFxcXHU2NzkwXFxcXHU5NTE5XFxcXHU4YmVmOlxcXCIgKyBlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNscyA9IFxcXCJmYWlsZWRcXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtyZXQ6IHJldCwgc3VybDogc3VybCwgaG06IGhtLCBjbHM6IGNsc307XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgIHZhciBwYXJzZVJldCA9IFtdO1xcbiAgICAgICAgICAgICAgICBsZXQgdGFza3MgPSBhcGlqa3MubWFwKChpdCwgaWRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGUgPSBpdC50eXBlO1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxpbmsgPSBpdC51cmw7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgc3VybCA9IGxpbmsgKyBcXFwiP3dkPVxcXCIgKyBza2V5ICsgXFxcIiZwZz0xJmFjPWxpc3RcXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2MSA9IHR5cGUgPT09IFxcXCJ2MVxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdjIgPSB0eXBlID09PSBcXFwidjJcXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcCA9IHR5cGUgPT09IFxcXCJhcHBcXFwiIHx8IHYyO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlwdHYgPSB0eXBlID09PSBcXFwiaXB0dlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHYxID0gbGluay5pbmNsdWRlcyhcXFwiLnZvZFxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHYyID0gbGluay5pbmNsdWRlcyhcXFwiYXBwLnBocFxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcCA9IGxpbmsuaW5jbHVkZXMoXFxcIi9hcHBcXFwiKSB8fCB2MjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpcHR2ID0gaXNJcHR2KGxpbmspO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc3VybCA9IHN1cmwucmVwbGFjZShcXFwicGc9XFxcIiwgXFxcImxpbWl0PTIwJnBhZ2U9XFxcIikgKyBcXFwiJmtleT1cXFwiICsgZ2V0S2V5KCk7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHApIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VybCA9IGxpbmsgKyBcXFwiL3NlYXJjaD9wZz0xJnRleHQ9XFxcIiArIHNrZXkgKyBcXFwiJnRva2VuPVxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlwdHYpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cmwgPSBsaW5rICsgXFxcIi8/YWM9bGlzdCZwZz0xJndkPVxcXCIgKyBza2V5O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaXQuc3VybCA9IHN1cmw7XFxuICAgICAgICAgICAgICAgICAgICBpdC52MSA9IHYxO1xcbiAgICAgICAgICAgICAgICAgICAgaXQudjIgPSB2MjtcXG4gICAgICAgICAgICAgICAgICAgIGl0LmFwcCA9IGFwcDtcXG4gICAgICAgICAgICAgICAgICAgIGl0LmlwdHYgPSBpcHR2O1xcbiAgICAgICAgICAgICAgICAgICAgbG9nKGAke2l0Lm5hbWV9IOaQnOe0oumTvuaOpTogJHtzdXJsfSx1YToke2l0LnVhfSznsbvlnos6JHt0eXBlfWApO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtmdW5jOiB0YXNrLCBwYXJhbTogaXQsIGlkOiBcXFwidGFza1xcXCIgKyBpZGV4fTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICApO1xcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzb3J0QnlLZXkoYXJyYXksIGtleSwgb3JkZXIpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnJheS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHggPSBwYXJzZUludChhW2tleV0ubWF0Y2goLyhcXFxcZCspLylbMV0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB5ID0gcGFyc2VJbnQoYltrZXldLm1hdGNoKC8oXFxcXGQrKS8pWzFdKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3JkZXIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHggPiB5KSA/IDEgOiAwKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoeCA8IHkpID8gKCh4ID4geSkgPyAxIDogMCkgOiAtMSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgYmUodGFza3MsIHtmdW5jOiBmdW5jdGlvbiAob2JqLCBpZCwgZXJyb3IsIHJldCkge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhtID0gKHJldC5obSB8fCBcXFwiXFxcIikudHJpbSgpO1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhtMSA9IGhtLnNsaWNlKDAsIDEwKTtcXG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3IgfHwgXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgaXQgPSB0YXNrcy5maWx0ZXIoaXQgPT4gaXQuaWQgPT09IGlkKVswXS5wYXJhbTtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0gcmV0LnJldCB8fCB7fTtcXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlUmV0LnB1c2goe3Rhc2s6IGlkLCBkYXRhOiBkYXRhLCBzdXJsOiByZXQuc3VybCwgZXJyb3I6IGVycm9yLCBpdDogaXR9KTtcXG4gICAgICAgICAgICAgICAgICAgIGNvdW50IC09IDE7XFxuICAgICAgICAgICAgICAgICAgICBhZGRJdGVtQWZ0ZXIoXFxcInJlc3VsdFxcXCIsIHt0aXRsZTogZGF0YS52b2RfbmFtZSB8fCBkYXRhLnRpdGxlICsgXFxcIlxcXFxuXFxcIiArIGDigJjigJjigJnigJk8c21hbGw+PGZvbnQgY29sb3I9I2YxM2I2NmE+JHtkYXRhLnZvZF9yZW1hcmtzIHx8IGRhdGEuc3RhdGV9PC9mb250Pjwvc21hbGw+YCwgcGljX3VybDogZGF0YS52b2RfcGljIHx8IGRhdGEucGljLCBkZXNjOiBgJHtobTF9XFxcXG7igJjigJjigJnigJk8Zm9udCBjb2xvcj0jZjEzYjY2YT4ke2l0Lm5hbWV9PC9mb250PiAoJHtpdC50eXBlfSlgLCB1cmw6ICQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKHN1cmwsIG5hbWUsIHR5cGUsIGlkLCB1cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChbXFxcIlxcXFx1OGJiZlxcXFx1OTVlZVxcXCIsIFxcXCJcXFxcdTUyMjBcXFxcdTk2NjRcXFwiXSwgMiwgXFxcIlxcXFx1OGJmN1xcXFx1OTAwOVxcXFx1NjJlOVxcXFx1NjI2N1xcXFx1ODg0Y1xcXFx1NzY4NFxcXFx1NjRjZFxcXFx1NGY1Y1xcXCIpLnNlbGVjdCgoc3VybCwgbmFtZSwgdHlwZSwgdXJsLCBpZCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT09IFxcXCJcXFxcdThiYmZcXFxcdTk1ZWVcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3VybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PT0gXFxcIlxcXFx1NTIyMFxcXFx1OTY2NFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcIlxcXFx1NTIyMFxcXFx1OTY2NFxcXFx1NjNhNVxcXFx1NTNlMzpcXFwiICsgbmFtZSArIFxcXCIoXFxcIiArIHR5cGUgKyBcXFwiKSxpZDpcXFwiICsgaWQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZUl0ZW0oW2lkXSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGprcGF0aCA9IFxcXCJoaWtlcjovL2ZpbGVzLy9ydWxlcy9TcmMvSnV5aW5nL2ppZWtvdS5qc29uXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgamtzID0gSlNPTi5wYXJzZShmZXRjaChqa3BhdGgpIHx8IFxcXCJbXVxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcGlqa3MgPSBqa3MuZmlsdGVyKGl0ID0+ICEoaXQudXJsID09PSB1cmwpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoamtwYXRoLCBKU09OLnN0cmluZ2lmeShhcGlqa3MpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2VsID0gc3RvcmFnZTAuZ2V0TXlWYXIoXFxcImp4X3NlbGVjdGVkXFxcIiwgW10pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZGV4ID0gc2VsLmZpbmRJbmRleChpdCA9PiBpdCA9PT0gdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWRleCA+IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbC5zcGxpY2UoaWRleCwgMSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKFxcXCJqeF9zZWxlY3RlZFxcXCIsIHNlbCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly9cXFxcdTVkZjJcXFxcdTUyMjBcXFxcdTk2NjQ6XFxcIiArIG5hbWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLCBzdXJsLCBuYW1lLCB0eXBlLCB1cmwsIGlkKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICwgcmV0LnN1cmwsIGl0Lm5hbWUsIGl0LnR5cGUsIGlkLCBpdC51cmwpLCBjb2xfdHlwZTogXFxcIm1vdmllXzFfdmVydGljYWxfcGljXFxcIiwgZXh0cmE6IHtpZDogaWQsIHVhOiBpdC51YSwgaG06IGhtLCBjbHM6IHJldC5jbHMsIHVybDogaXQudXJsLCBuYW1lOiBpdC5uYW1lfX0pO1xcbiAgICAgICAgICAgICAgICB9LCBwYXJhbToge2hpOiBcXFwiY2NjXFxcIn19KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLCBzZWwpO1xcbiAgICAgICAgfVxcbiAgICAgICAgLCBzZWwpO1xcbiAgICB9XFxuICAgICksIGNvbF90eXBlOiBcXFwiZmxleF9idXR0b25cXFwifSk7XFxuICAgIG9wLnB1c2goe3RpdGxlOiBcXFwiXFxcXHU0ZmVlXFxcXHU2NTM5XFxcIiwgY29sX3R5cGU6IFxcXCJmbGV4X2J1dHRvblxcXCIsIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICBsZXQgc2VsID0gc3RvcmFnZTAuZ2V0TXlWYXIoXFxcImp4X3NlbGVjdGVkXFxcIiwgW10pO1xcbiAgICAgICAgaWYgKHNlbC5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL1xcXFx1NTU2NVxcXFx1OTBmZFxcXFx1NmNhMVxcXFx1OTAwOVxcXFx1ZmYwY1xcXFx1NGZlZVxcXFx1NjUzOVxcXFx1NGUyYVxcXFx1OWUyMVxcXFx1NmJkYn5cXFwiO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHNlbC5sZW5ndGggIT09IDEpIHtcXG4gICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8vXFxcXHU4MDVhXFxcXHU1ZjcxXFxcXHU1Yjk4XFxcXHU2NWI5XFxcXHU2NzJhXFxcXHU2M2QwXFxcXHU0ZjliXFxcXHU2Mjc5XFxcXHU5MWNmXFxcXHU0ZmVlXFxcXHU2NTM5XFxcXHU2M2E1XFxcXHU1M2UzXFxcXHVmZjBjXFxcXHU3NmVlXFxcXHU1MjRkXFxcXHU1M2VhXFxcXHU1MTQxXFxcXHU4YmI4XFxcXHU1MzU1XFxcXHU0ZTJhXFxcXHU0ZmVlXFxcXHU2NTM5XFxcXHVmZjBjXFxcXHU1YzNkXFxcXHU2MGM1XFxcXHU4YzA1XFxcXHU4OWUzflxcXCI7XFxuICAgICAgICB9XFxuICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoZmluZEl0ZW0oc2VsWzBdKS5kZXNjIHx8IFxcXCJ7fVxcXCIpO1xcbiAgICAgICAgcmV0dXJuICQoXFxcImhpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IyNub0hpc3RvcnkjXFxcIikucnVsZSgoZGF0YSkgPT4ge1xcbiAgICAgICAgICAgIHJlcXVpcmUoY29uZmlnLuS+nei1li5tYXRjaCgvaHR0cHMuKlxcXFwvLylbMF0gKyBcXFwiU3JjSnlTZXQuanNcXFwiKTtcXG4gICAgICAgICAgICBqaWVrb3UoXFxcInVwZGF0ZVxcXCIsIGRhdGEpO1xcbiAgICAgICAgfVxcbiAgICAgICAgLCBkYXRhKTtcXG4gICAgfVxcbiAgICApfSk7XFxuICAgIG9wLnB1c2goe3RpdGxlOiBcXFwiXFxcXHU1MjIwXFxcXHU5NjY0XFxcIiwgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgIGxldCBzZWwgPSBzdG9yYWdlMC5nZXRNeVZhcihcXFwianhfc2VsZWN0ZWRcXFwiLCBbXSk7XFxuICAgICAgICBpZiAoc2VsLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8vXFxcXHU1NTY1XFxcXHU5MGZkXFxcXHU2Y2ExXFxcXHU5MDA5XFxcXHVmZjBjXFxcXHU1MjIwXFxcXHU5NjY0XFxcXHU0ZTJhXFxcXHU5ZTIxXFxcXHU2YmRiflxcXCI7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gJChcXFwiXFxcXHU3ODZlXFxcXHU4YmE0XFxcXHU1MjIwXFxcXHU5NjY0XFxcXHU1ZGYyXFxcXHU5MDA5XFxcXHU2MmU5XFxcXHU3Njg0OlxcXCIgKyBzZWxbMF0gKyBcXFwiXFxcXHU3YjQ5XFxcIiArIHNlbC5sZW5ndGggKyBcXFwiXFxcXHU2NzYxXFxcXHU2M2E1XFxcXHU1M2UzP1xcXCIpLmNvbmZpcm0oKHNlbCkgPT4ge1xcbiAgICAgICAgICAgIGxldCBqa3BhdGggPSBcXFwiaGlrZXI6Ly9maWxlcy8vcnVsZXMvU3JjL0p1eWluZy9qaWVrb3UuanNvblxcXCI7XFxuICAgICAgICAgICAgbGV0IGprcyA9IEpTT04ucGFyc2UoZmV0Y2goamtwYXRoKSB8fCBcXFwiW11cXFwiKTtcXG4gICAgICAgICAgICBsZXQgZXhwYW5kID0gW1xcXCJ4cGF0aFxcXCIsIFxcXCJiaXViaXVcXFwiXTtcXG4gICAgICAgICAgICBsZXQgYXBpamtzID0gamtzLmZpbHRlcihpdCA9PiAhc2VsLmluY2x1ZGVzKGl0LnVybCkpO1xcbiAgICAgICAgICAgIHdyaXRlRmlsZShqa3BhdGgsICQuc3RyaW5naWZ5KGFwaWprcykpO1xcbiAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKFxcXCJqeF9zZWxlY3RlZFxcXCIsIFtdKTtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL1xcXFx1NWRmMlxcXFx1NWMwNlxcXFx1MzAxNlxcXCIgKyBzZWxbMF0gKyBcXFwiXFxcXHUzMDE3XFxcXHU3YjQ5XFxcIiArIHNlbC5sZW5ndGggKyBcXFwiXFxcXHU2NzYxXFxcXHU2M2E1XFxcXHU1M2UzXFxcXHU1MjIwXFxcXHU5NjY0XFxcIjtcXG4gICAgICAgIH1cXG4gICAgICAgICwgc2VsKTtcXG4gICAgfVxcbiAgICApLCBjb2xfdHlwZTogXFxcImZsZXhfYnV0dG9uXFxcIn0pO1xcbiAgICBvcC5wdXNoKHt0aXRsZTogXFxcIlxcXFx1NjRjZFxcXFx1NGY1Y3xcXFxcdTdiNWJcXFxcdTkwMDkgXFxcIiArIGNvbG9yKGp4cy5sZW5ndGgsIFxcXCIjZmY3MDAwXFxcIiksIHVybDogXFxcInRvYXN0Oi8vXFxcXHU1MjRkXFxcXHU5NzYyXFxcXHU2MzA5XFxcXHU5NGFlXFxcXHU2NjJmXFxcXHU2NGNkXFxcXHU0ZjVjXFxcXHVmZjBjXFxcXHU1NDBlXFxcXHU5NzYyXFxcXHU2MzA5XFxcXHU5NGFlXFxcXHU2NjJmXFxcXHU3YjViXFxcXHU5MDA5XFxcIiwgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIn0pO1xcbiAgICBvcC5wdXNoKHt0aXRsZTogZHhfZmlsdGVyID09PSBcXFwiXFxcXHU1MTY4XFxcXHU5MGU4XFxcIiA/IGNvbG9yKFxcXCJcXFxcdTUxNjhcXFxcdTkwZThcXFwiLCBcXFwiIzEyYjY2OFxcXCIpIDogXFxcIlxcXFx1NTE2OFxcXFx1OTBlOFxcXCIsIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICBzZXRJdGVtKFxcXCJkeF9maWx0ZXJcXFwiLCBcXFwiXFxcXHU1MTY4XFxcXHU5MGU4XFxcIik7XFxuICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcbiAgICB9XFxuICAgICksIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCJ9KTtcXG4gICAgb3AucHVzaCh7dGl0bGU6IGR4X2ZpbHRlciA9PT0gXFxcIlxcXFx1NWRmMlxcXFx1OTAwOVxcXCIgPyBjb2xvcihcXFwiXFxcXHU1ZGYyXFxcXHU5MDA5XFxcIiwgXFxcIiMxMmI2NjhcXFwiKSA6IFxcXCJcXFxcdTVkZjJcXFxcdTkwMDlcXFwiLCB1cmw6ICQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgc2V0SXRlbShcXFwiZHhfZmlsdGVyXFxcIiwgXFxcIlxcXFx1NWRmMlxcXFx1OTAwOVxcXCIpO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXG4gICAgfVxcbiAgICApLCBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwifSk7XFxuICAgIG9wLnB1c2goe3RpdGxlOiBkeF9maWx0ZXIgPT09IFxcXCJcXFxcdTY3MmFcXFxcdTkwMDlcXFwiID8gY29sb3IoXFxcIlxcXFx1NjcyYVxcXFx1OTAwOVxcXCIsIFxcXCIjMTJiNjY4XFxcIikgOiBcXFwiXFxcXHU2NzJhXFxcXHU5MDA5XFxcIiwgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgIHNldEl0ZW0oXFxcImR4X2ZpbHRlclxcXCIsIFxcXCJcXFxcdTY3MmFcXFxcdTkwMDlcXFwiKTtcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgIH1cXG4gICAgKSwgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIn0pO1xcbiAgICBkID0gb3AuY29uY2F0KGQpO1xcbiAgICBzZXRSZXN1bHQoZCk7XFxufVxcbikoXFxcIuKdpO+4j+aOpeWPo+WkmumAiea1i+ivlVxcXCIsXFxcImhpa2VyOi8vZmlsZXMvL3J1bGVzL1NyYy9KdXlpbmcvamlla291Lmpzb25cXFwiLFxcbmZ1bmN0aW9uICh0ZXh0LCBjb2xvcikge1xcbiAgICB0ZXh0ICs9IFxcXCJcXFwiO1xcbiAgICBpZiAodGV4dC5pbmRleE9mKFxcXCJcXFxcdTIwMWNcXFxcdTIwMWNcXFxcdTIwMWRcXFxcdTIwMWRcXFwiKSA9PT0gMCkge1xcbiAgICAgICAgdGV4dC5yZXBsYWNlKFxcXCJcXFxcdTIwMWNcXFxcdTIwMWNcXFxcdTIwMWRcXFxcdTIwMWRcXFwiLCBcXFwiXFxcIik7XFxuICAgIH1cXG4gICAgcmV0dXJuIFxcXCJcXFxcdTIwMWNcXFxcdTIwMWNcXFxcdTIwMWRcXFxcdTIwMWQ8Zm9udCBjb2xvcj0nXFxcIiArIGNvbG9yICsgXFxcIic+XFxcIiArIHRleHQgKyBcXFwiPC9mb250PlxcXCI7XFxufVxcbilcIixcImdyb3VwXCI6XCLlt6XlhbdcIixcInVhXCI6XCJtb2JpbGVcIixcInByZVJ1bGVcIjpcImluaXRDb25maWcoe1xcbiAgICDkvp3otZY6IFxcXCJodHRwczovL2dpdGNvZGUubmV0L3NyYzQ4NTk3OTYyL2hrLy0vcmF3L21hc3Rlci9TcmNKdXlpbmcuanNcXFwiXFxufSk7XFxuLy9ieS7luIXiiJpg5Lq65omNIOiBmuW9seaooeadv++8gVwiLFwicGFnZXNcIjpcIltdXCJ9IiwidGl0bGUiOiLinaTvuI/mjqXlj6PlpJrpgInmtYvor5UifQ==
Add Comment
Please, Sign In to add comment