Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@IPFS资源@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiSVBGU+i1hOa6kCIsImF1dGhvciI6IjE1MyIsInVybCI6Imhpa2VyOi8vZW1wdHkjIyIsInZlcnNpb24iOjIsImNvbF90eXBlIjoibW92aWVfMyIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoidmlkZW8iLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+aWh+S7tuWkuSNjYWNoZU9ubHkjP+e8k+WtmElEPScrc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXIpKS5ydWxlKSIsInNlYXJjaF91cmwiOiIiLCJncm91cCI6IuKRoeiBmuWQiCIsInNlYXJjaEZpbmQiOiIiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiIiLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5paH5Lu25aS5XCIsXCJwYXRoXCI6XCLmlofku7blpLlcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuXFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcblxcblxcblxcbuaWh+S7tuWkueWQjSA9IE1ZX1BBUkFNUy7mlofku7blpLnlkI1cXG7mlofku7blpLlpZCA9IE1ZX1BBUkFNUy7mlofku7blpLlpZFxcbuWIhuS6q+eUqOaIt2lkID0gTVlfUEFSQU1TLnVzZXJpZFxcbnVzZXJpZCA9IOWIhuS6q+eUqOaIt2lkXFxu6ZyA6KaB55So5oi3aWQgPSBNWV9QQVJBTVMu6ZyA6KaB55So5oi3aWRcXG5cXG5pZiAoIeaWh+S7tuWkuWlkKSB7XFxuICAgIOaWh+S7tuWkueWQjSA9IHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS5uYW1lICsgXFxcIi3moLnnm67lvZVcXFwiXFxuICAgIOaWh+S7tuWkuWlkID0gMFxcbn1cXG5cXG5cXG5sZXQgcGFnZSA9IE51bWJlcihnZXRNeVZhcijmlofku7blpLlpZCArIFxcXCJwYWdlXFxcIiwgXFxcIjFcXFwiKSlcXG5cXG5cXG5pZiAoIeaWh+S7tuWkuWlkKSB7XFxuXFxuXFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIueuoeeQhui0puWPt1xcXCIsXFxuICAgICAgICBjb2xfdHlwZTogXFxcImljb25fc21hbGxfNFxcXCIsXFxuICAgICAgICBwaWNfdXJsOiDpppbpobXnrqHnkIbotKblj7flm77moIcsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2Uv566h55CG6LSm5Y+3I25vUmVjb3JkSGlzdG9yeSNcXFwiXFxuICAgIH0pXFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIuWvu+aJvui1hOa6kFxcXCIsXFxuICAgICAgICBjb2xfdHlwZTogXFxcImljb25fc21hbGxfNFxcXCIsXFxuICAgICAgICBwaWNfdXJsOiDpppbpobXlr7vmib7otYTmupDlm77moIcsXFxuICAgICAgICB1cmw6ICQoW1xcXCLlrpjmlrnotYTmupBcXFwiLCBcXFwi5Yqo5ryr6LWE5rqQ4pGgXFxcIl0sIDEsICfpnIDopoHlnKjlk6rph4zmib7otYTmupDvvJ8nKS5zZWxlY3QoKCkgPT4ge1xcblxcbiAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwi5Yqo5ryr6LWE5rqQ4pGgXFxcIikgcmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv5Yqo5ryr6LWE5rqQ4pGgI25vUmVjb3JkSGlzdG9yeSM/cGFnZT1meXBhZ2VcXFwiXFxuXFxuICAgICAgICAgICAgaWYgKGlucHV0ID09IFxcXCLlrpjmlrnotYTmupBcXFwiKSByZXR1cm4gXFxcImhpa2VyOi8vcGFnZS/lr7vmib7otYTmupAjbm9SZWNvcmRIaXN0b3J5Iz9wYWdlPWZ5cGFnZVxcXCJcXG5cXG5cXG4gICAgICAgICAgICAvL2lmIChpbnB1dCA9PSBcXFwi5aSW572R6LWE5rqQ4pGgXFxcIikgcmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv5aSW572R6LWE5rqQ4pGgI25vUmVjb3JkSGlzdG9yeSM/cGFnZT1meXBhZ2VcXFwiXFxuXFxuXFxuICAgICAgICB9KVxcbiAgICB9KVxcblxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLmiJHnmoTliIbkuqtcXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3NtYWxsXzRcXFwiLFxcbiAgICAgICAgcGljX3VybDog6aaW6aG15oiR55qE5YiG5Lqr5Zu+5qCHLFxcbiAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9wYWdlL+aIkeeahOWIhuS6qyNub1JlY29yZEhpc3RvcnkjXFxcIlxcbiAgICB9KVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLmiJHnmoTlpIfku71cXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3NtYWxsXzRcXFwiLFxcbiAgICAgICAgcGljX3VybDog6aaW6aG15oiR55qE5aSH5Lu95Zu+5qCHLFxcbiAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9wYWdlL+aIkeeahOWkh+S7vSNub1JlY29yZEhpc3RvcnkjXFxcIlxcbiAgICB9KVxcblxcblxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICB9KTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmlnX2JsYW5rX2Jsb2NrJ1xcbiAgICB9KTtcXG5cXG4gICAgZnVuY3Rpb24gZ2V0QWNjb3VudHMoZmlsZSkge1xcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgcmVxdWVzdChmaWxlKSB8fCAnW10nKTtcXG4gICAgfVxcblxcblxcbiAgICBmdW5jdGlvbiBnZXRDdXJJdGVtKCkge1xcbiAgICAgICAgbGV0IGl0ZW0gPSBzdG9yYWdlMC5nZXRJdGVtKFxcXCJjdXJJdGVtXFxcIilcXG5cXG4gICAgICAgIGlmICghaXRlbSkge1xcbiAgICAgICAgICAgIGxldCBsaXN0ID0gZ2V0QWNjb3VudHMoKTtcXG5cXG4gICAgICAgICAgICBpdGVtID0gbGlzdC5sZW5ndGggPyBsaXN0WzBdIDoge307XFxuICAgICAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwiY3VySXRlbVxcXCIsIGl0ZW0pXFxuICAgICAgICB9XFxuXFxuICAgICAgICByZXR1cm4gaXRlbVxcblxcbiAgICB9XFxuXFxuICAgIHZhciBjdXJJdGVtID0gZ2V0Q3VySXRlbSgpXFxuXFxuICAgIGxldCBzdWJfYWNjb3VudHMgPSBnZXRBY2NvdW50cygpO1xcblxcblxcbiAgICB0cnkge1xcbiAgICAgICAgaWYgKHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyKSB7XFxuICAgICAgICAgICAg5bey55So5a656YeP6K+35rGCID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuMC91c2VyL3VzZWRTcGFjZVxcXCJcXG5cXG4gICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgIFxcXCJBdXRob3JpemF0aW9uXFxcIjogXFxcIkJlYXJlciBcXFwiICsgc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAg6Lqr5L2TID0gYHt9YFxcblxcbiAgICAgICAgICAgIOesrOS4gOasoeWTjeW6lCA9IHBvc3Qo5bey55So5a656YeP6K+35rGCLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICB0aW1lb3V0OiA1MDBcXG4gICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgIOW3sueUqOWuuemHjyA9IEpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmZpbGVVc2VkU2l6ZVxcblxcblxcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiDlt7LnlKjlrrnph48gPyBcXFwi4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0nIzFFOTBGRic+5b2T5YmN6LSm5Y+35bey55So5a656YePOlxcXCIgKyBmb3JtYXRTaXplKOW3sueUqOWuuemHjykgKyBcXFwiPC9mcm9udD48L3N0cm9uZz5cXFwiIDogXFxcIuaWh+S7tumcgOimgeWOu+Wwj+m+meS6keebmEFQUOS4iuS8oFxcXCIsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIixcXG4gICAgICAgICAgICAgICAgdXJsOiBcXFwidG9hc3Q6Ly/ov5nmmK/lrrnph49cXFwiLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KTtcXG5cXG4gICAgICAgIH1cXG5cXG4gICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgbG9nKFxcXCLlsI/pvpnkupHnm5jlgJLpl63kuoZcXFwiKVxcbiAgICB9XFxuXFxuICAgIHN1Yl9hY2NvdW50cy5mb3JFYWNoKChpdGVtKSA9PiB7XFxuICAgICAgICB2YXIgaXNDbGlja2VkID0gY3VySXRlbS5uYW1lID09PSBpdGVtLm5hbWU7XFxuXFxuXFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBpc0NsaWNrZWQgPyBcXFwi4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0nIzFFOTBGRic+XFxcIiArIGl0ZW0ubmFtZSArIFxcXCI8L2Zyb250Pjwvc3Ryb25nPlxcXCIgOiBpdGVtLm5hbWUsXFxuICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpdGVtKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxvZyhpdGVtKVxcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXCJjdXJJdGVtXFxcIiwgaXRlbSk7XFxuXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn1xcXCJcXG4gICAgICAgICAgICB9LCBpdGVtKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiXFxuICAgICAgICB9KTtcXG4gICAgfSk7XFxuXFxuXFxuXFxuXFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogXFxcImJsYW5rX2Jsb2NrXFxcIlxcbiAgICB9KTtcXG5cXG5cXG59XFxuXFxuXFxuSVBGU+WvhumSpSA9IHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxubGV0IOWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuXFxuXFxu6K+35rGC5Y+Y6YePYiA9IFxcXCJcXFwiXFxuXFxuaWYgKOmcgOimgeeUqOaIt2lkICYmIOWIhuS6q+eUqOaIt2lkKSB7XFxuXFxuICAgIOivt+axguWPmOmHj2EgPSBcXFwiL2Ntc3Byb3ZpZGVyL3YyLjAvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG5cXG4gICAg6K+35rGC5Y+Y6YePYiA9IFxcXCIvY21zcHJvdmlkZXIvdjIuMC9jbG91ZC9maWxlTGlzdFxcXCJcXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuaWYgKCHliIbkuqvnlKjmiLdpZCkge1xcblxcblxcblxcbiAgICAvL+atpOWkhOW8gOWni+iOt+WPluaWh+S7tuWIl+ihqFxcbiAgICAvL+atpOWkhOW8gOWni+iOt+WPluaWh+S7tuWIl+ihqFxcbiAgICAvL+atpOWkhOW8gOWni+iOt+WPluaWh+S7tuWIl+ihqFxcbiAgICDor7fmsYLlj5jph49hID0gXFxcIi9jbG91ZGZpbGUvdjEvZm9sZGVyc1xcXCJcXG5cXG4gICAg6K+35rGC5Y+Y6YePYiA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZpbGVzXFxcIlxcblxcbiAgICDouqvkvZMgPSBge1xcblxcXCJmaWxlVHlwZVxcXCI6W10sXFxuXFxcImtleXdvcmRzXFxcIjpcXFwiXFxcIixcXG5cXFwicGFnZU51bVxcXCI6MSxcXG5cXFwicGFnZVNpemVcXFwiOjEwMCxcXG5cXFwicGFyZW50SWRcXFwiOlxcXCJgICsg5paH5Lu25aS5aWQgKyBgXFxcIixcXG5cXFwic29ydE1ldGhvZFxcXCI6XFxcImRlc2NcXFwiLFxcblxcXCJzb3J0VHlwZVxcXCI6XFxcInRpbWVcXFwiXFxufWBcXG5cXG4gICAg6Lqr5L2TID0gYHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJgICsgZ2V0VmFyKCfmkJzntKLlhbPplK7or40nLCAnJykgKyBgXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJgICsgc3RvcmFnZTAuZ2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYVxcXCIsIFxcXCJuYW1lXFxcIikgKyBgXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJgICsgc3RvcmFnZTAuZ2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYlxcXCIsIFxcXCJhc2NcXFwiKSArIGBcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAgKyDmlofku7blpLlpZCArIGBcXFwifWBcXG5cXG5cXG5cXG59IGVsc2Uge1xcblxcblxcbiAgICDouqvkvZMgPSBge1xcXCJwYXJlbnRJZFxcXCI6XFxcImAgKyDmlofku7blpLlpZCArIGBcXFwiLFxcXCJ1c2VySWRcXFwiOlxcXCJgICsg5YiG5Lqr55So5oi3aWQgKyBgXFxcIn1gXFxuXFxufVxcblxcblxcbnB1dFZhcign5pCc57Si5YWz6ZSu6K+NJywgXFxcIlxcXCIpXFxuXFxuXFxuXFxu5aS06YOoID0ge1xcbiAgICBcXFwiUmVmZXJlclxcXCI6IFxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcbiAgICBcXFwiQXV0aG9yaXphdGlvblxcXCI6IFxcXCJCZWFyZXIgXFxcIiArIElQRlPlr4bpkqVcXG59XFxuXFxuXFxu5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG7nrKzkuIDmrKHlk43lupQgPSBwb3N0KOWwj+m+meS6keivt+axgmEsIHtcXG4gICAgaGVhZGVyczog5aS06YOoLFxcbiAgICBib2R5OiDouqvkvZNcXG59KVxcblxcbuWwj+m+meS6keivt+axgmIgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49iXFxu56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgYm9keTog6Lqr5L2TXFxufSlcXG5cXG5cXG5cXG5cXG5cXG5cXG50cnkge1xcblxcbiAgICAvL+WIl+ihqGHmmK/mlofku7blpLnliJfooahcXG4gICAg5YiX6KGoYSA9IEpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxuICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICDliJfooahiID0gSlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGFcXG5cXG5cXG59IGNhdGNoIChlKSB7XFxuICAgIGxvZyhcXFwi5bCP6b6Z5LqR55uY5YCS6Zet5LqGXFxcIilcXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuaWYgKCHliIbkuqvnlKjmiLdpZCkge1xcbiAgICDliJfooahhID0g5YiX6KGoYS5kYXRhXFxuICAgIOWIl+ihqGIgPSDliJfooahiLmRhdGFcXG5cXG5cXG5cXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi4oeFXFxcIiArIHN0b3JhZ2UwLmdldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj1xcXCIsIFxcXCLlkI3np7DmraPluo9cXFwiKSArIFxcXCLih4VcXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzNcXFwiLFxcbiAgICAgICAgdXJsOiAkKFtcXFwi5ZCN56ew5q2j5bqPXFxcIiwgXFxcIuWQjeensOWAkuW6j1xcXCIsIFxcXCLml7bpl7TmraPluo9cXFwiLCBcXFwi5pe26Ze05YCS5bqPXFxcIiwgXFxcIuWkp+Wwj+ato+W6j1xcXCIsIFxcXCLlpKflsI/lgJLluo9cXFwiXSwgMiwgJ+mcgOimgeS7gOS5iOexu+Wei+aOkuW6j++8nycpLnNlbGVjdCgoKSA9PiB7XFxuXFxuICAgICAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePXFxcIiwgaW5wdXQpO1xcbiAgICAgICAgICAgIGlmIChpbnB1dC5pbmNsdWRlcyhcXFwi5ZCN56ewXFxcIikpXFxuICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2FcXFwiLCBcXFwibmFtZVxcXCIpO1xcbiAgICAgICAgICAgIGVsc2UgaWYgKGlucHV0LmluY2x1ZGVzKFxcXCLml7bpl7RcXFwiKSlcXG4gICAgICAgICAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYVxcXCIsIFxcXCJ1cGxvYWRcXFwiKTtcXG4gICAgICAgICAgICBlbHNlXFxuICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2FcXFwiLCBcXFwic2l6ZVxcXCIpO1xcblxcbiAgICAgICAgICAgIGlmIChpbnB1dC5pbmNsdWRlcyhcXFwi5q2j5bqPXFxcIikpXFxuICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaOkuW6j+WPmOmHj2JcXFwiLCBcXFwiYXNjXFxcIik7XFxuICAgICAgICAgICAgZWxzZVxcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXCLmjpLluo/lj5jph49iXFxcIiwgXFxcImRlc2NcXFwiKTtcXG5cXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn1xcXCJcXG5cXG4gICAgICAgIH0pXFxuICAgIH0pXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIuKAlFxcXCIgKyBzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI9cXFwiLCBcXFwi5YiX6KGo5qih5byPXFxcIikgKyBcXFwi4oCUXFxcIixcXG4gICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG4gICAgICAgIHVybDogJChbXFxcIuWIl+ihqOaooeW8j1xcXCIsIFxcXCLlm77mlofmqKHlvI9cXFwiLCBcXFwi5YWo5ZCN5qih5byPXFxcIiwgXFxcIua8q+eUu+aooeW8j1xcXCJdLCAyLCAn6ZyA6KaB5LuA5LmI5qC35byP5pi+56S677yfJykuc2VsZWN0KCgpID0+IHtcXG5cXG4gICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXCLmlofku7bmoLflvI9cXFwiLCBpbnB1dCk7XFxuICAgICAgICAgICAgaWYgKGlucHV0ID09IFxcXCLliJfooajmqKHlvI9cXFwiKVxcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwiYXZhdGFyXFxcIik7XFxuICAgICAgICAgICAgaWYgKGlucHV0ID09IFxcXCLlm77mlofmqKHlvI9cXFwiKVxcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwibW92aWVfMlxcXCIpO1xcbiAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwi5YWo5ZCN5qih5byPXFxcIilcXG4gICAgICAgICAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcInRleHRfMVxcXCIpO1xcblxcblxcblxcblxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5YqfXFxcIlxcblxcbiAgICAgICAgfSlcXG4gICAgfSlcXG5cXG5cXG5cXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi4p2F5pu05aSa5Yqf6IO94p2FXFxcIixcXG4gICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG4gICAgICAgIHVybDogJChbXFxcIuaWsOW7uuaWh+S7tuWkuVxcXCIsIFxcXCLmibnph4/mk43kvZxcXFwiLCBcXFwi5pCc57Si5b2T5YmN5paH5Lu25aS5XFxcIiwgXFxcIuWkh+S7veW9k+WJjeaWh+S7tuWkuVxcXCIsIFxcXCLmvKvnlLvmqKHlvI9cXFwiLCBcXFwi5b6F5byA5Y+RXFxcIl0sIDIsICfor7fpgInmi6nmm7TlpJrlip/og70nKS5zZWxlY3QoKOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwg5paH5Lu25aS5aWQsIElQRlPlr4bpkqUpID0+IHtcXG5cXG5cXG5cXG4gICAgICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIuaWsOW7uuaWh+S7tuWkuVxcXCIpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICQoXFxcIlxcXCIsIFxcXCLmlrDmlofku7blpLnlkI1cXFwiKS5pbnB1dCgo5paH5Lu25aS5aWQsIElQRlPlr4bpkqUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIOaWsOW7uuaWh+S7tuWkueivt+axgiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvYWRkRm9sZGVyXFxcIlxcblxcblxcbiAgICAgICAgICAgICAgICAgICAg5aS06YOoID0ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJBdXRob3JpemF0aW9uXFxcIjogXFxcIkJlYXJlciBcXFwiICsgSVBGU+WvhumSpVxcbiAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAg6Lqr5L2TID0gYHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJgICsgaW5wdXQgKyBgXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgICsg5paH5Lu25aS5aWQgKyBgXFxcIixcXFwidG9rZW5cXFwiOlxcXCJgICsgSVBGU+WvhumSpSArIGBcXFwifWBcXG5cXG4gICAgICAgICAgICAgICAgICAgIOesrOS4gOasoeWTjeW6lCA9IHBvc3Qo5paw5bu65paH5Lu25aS56K+35rGCLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkuWlkID0gSlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG5cXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/mlrDlu7otXFxcIiArIGlucHV0ICsgXFxcIihcXFwiICsg5paH5Lu25aS5aWQgKyBcXFwiKS3miJDlip9cXFwiXFxuXFxuXFxuICAgICAgICAgICAgICAgIH0sIOaWh+S7tuWkuWlkLCBJUEZT5a+G6ZKlKVxcblxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIuaQnOe0ouW9k+WJjeaWh+S7tuWkuVxcXCIpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICQoXFxcIlxcXCIsIFxcXCLmkJzntKLlhbPplK7or41cXFwiKS5pbnB1dCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRWYXIoJ+aQnOe0ouWFs+mUruivjScsIGlucHV0KVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+aQnOe0oi1cXFwiICsgaW5wdXQgKyBcXFwiLeaIkOWKn1xcXCJcXG5cXG5cXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09IFxcXCLlpIfku73lvZPliY3mlofku7blpLlcXFwiKSB7XFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgIHJldHVybiBjb25maXJtKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn6YCJ5oup5o+Q56S6JyxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfnoa7lrpot55u05o6l5a2Y5YWl5aSH5Lu95qC555uu5b2VXFxcXG7lj5bmtogt6YCJ5oup5a2Y5YWl5aSH5Lu955qE55uu5b2VJyxcXG5cXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpcm06ICQudG9TdHJpbmcoKOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIOWtmOaUvui3r+W+hCA9IFxcXCIwXFxcIlxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuICAgICAgICAgICAgICAgICAgICAgICAg5a2Y5ZOq6YeMID0gJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSwg5a2Y5pS+6Lev5b6ELCDlrZjlk6rph4wsIFxcXCLlpIfku71cXFwiKVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgfSwg5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlKSxcXG5cXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbDogJC50b1N0cmluZygo5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlKSA9PiB7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IOWwj+m+meS6keebmOWkh+S7veebruW9lSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku73nm67lvZUuanNvbicsIDApIHx8ICdbXScpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIOWkh+S7veaWh+S7tuWQjeWIl+ihqCA9IFtdXFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5aSH5Lu95paH5Lu25ZCN5YiX6KGoW2ldID0g5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VW2ldLnNwbGl0KFxcXCIvXFxcIikucmV2ZXJzZSgpWzFdXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKOWkh+S7veaWh+S7tuWQjeWIl+ihqCwgMSwgJ+mcgOimgeWtmOWcqOWTquS4quaAu+aWh+S7tu+8nycpLnNlbGVjdCgo5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlLCDlpIfku73mlofku7blkI3liJfooagsIOWwj+m+meS6keebmOWkh+S7veebruW9lSkgPT4ge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDngrnlh7vkvY3nva4gPSDlpIfku73mlofku7blkI3liJfooaguZmluZEluZGV4KGl0ID0+IGl0ID09PSBpbnB1dCk7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWtmOWTqumHjCA9IOWwj+m+meS6keebmOWkh+S7veebruW9lVvngrnlh7vkvY3nva5dLnJlcGxhY2UoJzAuanNvbicsICcnKVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+WtmOWTqumHjD0naGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vJ1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlrZjlk6rph4wgKyAnMC5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPCAxKSByZXR1cm4gXFxcInRvYXN0Oi8v5aSH5Lu95qC555uu5b2V6YO95rKh5pyJ5paH5Lu2IOS9oOmAieaLqeS4quWxgeeahOaWh+S7tuWkuVxcXCJcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0g5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGFcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu26Lev5b6EID0g5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9Lui3r+W+hFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDpgInmi6nmlofku7blpLnliJfooaggPSDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70u5paH5Lu25aS5XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDpgInmi6nmlofku7blpLnliJfooagudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQo6YCJ5oup5paH5Lu25aS55YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5aSH5Lu95paH5Lu25aS577yfJykuc2VsZWN0KCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70sIOaWh+S7tui3r+W+hCwg6YCJ5oup5paH5Lu25aS55YiX6KGoLCDliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUsIOWtmOWTqumHjCkgPT4ge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWkh+S7veaVsOaNriA9IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu26Lev5b6EID0g5paH5Lu26Lev5b6EICsg6Lev5b6E6Ze06ZqUICsgaW5wdXRcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwi5Yqg5YWl5q2k5aSEXFxcIikge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwiMFxcXCIpIOaWh+S7tui3r+W+hCA9IFxcXCIwXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ug5paH5Lu26Lev5b6EID0g5paH5Lu26Lev5b6ELnJlcGxhY2Uo6Lev5b6E6Ze06ZqUICsgXFxcIuWKoOWFpeatpOWkhFxcXCIsIFxcXCJcXFwiKVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIOWNleS4quaWh+S7tuWkueWkh+S7vSjliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUsIOaWh+S7tui3r+W+hCwg5a2Y5ZOq6YeMLCBcXFwi5aSH5Lu9XFxcIilcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMICsg5paH5Lu26Lev5b6EICsgJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoID0g5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnB1c2goXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/pgInmi6nlpIfku73mlofku7bot6/lvoQnKSkucnVsZSlcXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSwg5paH5Lu26Lev5b6ELCDpgInmi6nmlofku7blpLnliJfooagsIOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSwg5a2Y5ZOq6YeMKVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSwg5aSH5Lu95paH5Lu25ZCN5YiX6KGoLCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpXFxuXFxuICAgICAgICAgICAgICAgICAgICB9LCDliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUpLFxcblxcbiAgICAgICAgICAgICAgICB9KVxcblxcblxcbiAgICAgICAgICAgICAgICAvKlxcblxcbiAgICAgICAgICAgICAgICAqL1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIuaJuemHj+aTjeS9nFxcXCIpIHtcXG5cXG5cXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv5om56YeP5pON5L2cI25vUmVjb3JkSGlzdG9yeSM/ZGF0YT1cXFwiICsgSlNPTi5zdHJpbmdpZnko5YiX6KGoYS5jb25jYXQo5YiX6KGoYikpLnJlcGxhY2UoLygmfO+8jHxcXFxcPykvZywgJy4nKSArIFxcXCIm5paH5Lu25aS5aWQ9XFxcIiArIOaWh+S7tuWkuWlkICsgXFxcIibmlofku7blpLnlkI09XFxcIiArIOaWh+S7tuWkueWQjVxcblxcblxcblxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIua8q+eUu+aooeW8j1xcXCIpIHtcXG4gICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG4gICAgICAgICAgICAgICAg5Zu+54mH5YiX6KGoID0gW11cXG4gICAgICAgICAgICAgICAg5Zu+54mH5YiX6KGo5Y+Y6YePID0gMFxcblxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IOWIl+ihqGIubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIOaWh+S7tuWQjSA9IOWIl+ihqGJbaV0uZmlsZU5hbWVcXG4gICAgICAgICAgICAgICAgICAgIOaWh+S7tkNJRCA9IOWIl+ihqGJbaV0uZmlsZUNpZFxcblxcbiAgICAgICAgICAgICAgICAgICAgaWYgKC8oanBnfGdpZnxwbmd8anBlZ3x3ZWJwKSQvaS50ZXN0KOaWh+S7tuWQjSkpIHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICDlm77niYcgPSDnlJ/miJDnm7Tpk74oXFxcImh0dHBzOi8vaXBmc2d3MDIuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiLCDmlofku7ZDSUQsIOaWh+S7tuWQjSlcXG4gICAgICAgICAgICAgICAgICAgICAgICDlm77niYfliJfooahb5Zu+54mH5YiX6KGo5Y+Y6YePXSA9IOWbvueJh1xcbiAgICAgICAgICAgICAgICAgICAgICAgIOWbvueJh+WIl+ihqOWPmOmHjysrXFxuXFxuICAgICAgICAgICAgICAgICAgICB9XFxuXFxuXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKOWbvueJh+WIl+ihqC5sZW5ndGggPCAxKSByZXR1cm4gXFxcInRvYXN0Oi8v5rKh6K+G5Yir5Yiw5Zu+54mHXFxcIlxcblxcblxcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcInBpY3M6Ly9cXFwiICsg5Zu+54mH5YiX6KGoLmpvaW4oXFxcIiYmXFxcIilcXG5cXG5cXG5cXG4gICAgICAgICAgICB9XFxuXFxuXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+i/mOayoeW8gOWPkVxcXCJcXG5cXG4gICAgICAgIH0sIOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwg5paH5Lu25aS5aWQsIElQRlPlr4bpkqUpLFxcbiAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICBjbHM6IFxcXCJwbGF5bGlzdCDmm7TlpJrlip/og71cXFwiXFxuICAgICAgICB9XFxuICAgIH0pXFxuXFxuXFxufVxcblxcblxcblxcblxcblxcblxcblxcblxcbi8v5q2k5aSE5byA5aeL6I635Y+W5paH5Lu25YiX6KGoXFxuLy/mraTlpITlvIDlp4vojrflj5bmlofku7bliJfooahcXG4vL+atpOWkhOW8gOWni+iOt+WPluaWh+S7tuWIl+ihqFxcblxcblxcblxcblxcblxcblxcblxcblxcbnRyeSB7XFxuXFxuXFxuICAgIOWIl+ihqCA9IOWIl+ihqGEuY29uY2F0KOWIl+ihqGIpXFxuXFxuXFxuICAgIOWIh+WJsuWIl+ihqOWAvCA9IHN0b3JhZ2UwLmdldEl0ZW0oXFxcIklQRlPotYTmupDmlofku7bliJfooajliIflibLlgLxcXFwiLCBcXFwiNTBcXFwiKVxcblxcbiAgICDmgLvpobXmlbAgPSBNYXRoLmNlaWwo5YiX6KGoLmxlbmd0aCAvIOWIh+WJsuWIl+ihqOWAvClcXG5cXG5cXG5cXG5cXG4gICAgaWYgKOaAu+mhteaVsCA+IDEgJiYgcGFnZSA8PSDmgLvpobXmlbApIHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLkuIrkuIDpobVcXFwiLFxcbiAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgo5paH5Lu25aS5aWQpID0+IHtcXG5cXG4gICAgICAgICAgICAgICAgaWYgKGdldE15VmFyKOaWh+S7tuWkuWlkICsgXFxcInBhZ2VcXFwiLCBcXFwiMFxcXCIpID4gMSkge1xcbiAgICAgICAgICAgICAgICAgICAgeXNfc2MgPSBnZXRNeVZhcijmlofku7blpLlpZCArIFxcXCJwYWdlXFxcIiwgXFxcIjFcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgeXNfc2MtLVxcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIo5paH5Lu25aS5aWQgKyBcXFwicGFnZVxcXCIsIHlzX3NjKVxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/kuIrkuIDpobVcXFwiXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5bey57uP5pyA5YmNXFxcIlxcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgfSwg5paH5Lu25aS5aWQpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG4gICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICBjbHM6IFxcXCJwbGF5bGlzdCDkuIrkuIDpobVcXFwiXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuXFxuXFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBwYWdlICsgXFxcIi9cXFwiICsg5oC76aG15pWwLFxcbiAgICAgICAgICAgIHVybDogJCgnJywgJ+ivt+i+k+WFpemhteeggScpLmlucHV0KCjmgLvpobXmlbAsIOaWh+S7tuWkuWlkLCBwYWdlKSA9PiB7XFxuXFxuICAgICAgICAgICAgICAgIGlmIChpbnB1dCA+IDAgJiYgaW5wdXQgPD0g5oC76aG15pWwKSB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcijmlofku7blpLlpZCArICdwYWdlJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3sue7j+i3s+i9rFxcXCIgKyBpbnB1dFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr1xcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0sIOaAu+mhteaVsCwg5paH5Lu25aS5aWQsIHBhZ2UpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG4gICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICBjbHM6IFxcXCJwbGF5bGlzdCDmgLvpobXmlbBcXFwiLFxcbiAgICAgICAgICAgICAgICBsb25nQ2xpY2s6IFt7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+S/ruaUueavj+mhteaYvuekuuS4quaVsCcsXFxuICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygo5paH5Lu25aS5aWQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChzdG9yYWdlMC5nZXRJdGVtKFxcXCJJUEZT6LWE5rqQ5paH5Lu25YiX6KGo5YiH5Ymy5YC8XFxcIiwgXFxcIjUwXFxcIiksICfmraPmlbTmlbAnKS5pbnB1dCgo5paH5Lu25aS5aWQpID0+IHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcZCsvLnRlc3QoaW5wdXQpKSB7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKFxcXCJJUEZT6LWE5rqQ5paH5Lu25YiX6KGo5YiH5Ymy5YC8XFxcIiwgaW5wdXQubWF0Y2goL1xcXFxkKy8pWzBdKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKOaWh+S7tuWkuWlkICsgXFxcInBhZ2VcXFwiLCAxKVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/liIfmjaLmr4/pobXmmL7npLpcXFwiICsgaW5wdXQubWF0Y2goL1xcXFxkKy8pWzBdICsgXFxcIuS4qlxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHJldHVybiBcXFwidG9hc3Q6Ly/ovpPlhaXplJnor69cXFwiXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwg5paH5Lu25aS5aWQpXFxuXFxuICAgICAgICAgICAgICAgICAgICB9LCDmlofku7blpLlpZClcXG4gICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG5cXG5cXG5cXG5cXG5cXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLkuIvkuIDpobVcXFwiLFxcbiAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgo5oC76aG15pWwLCDmlofku7blpLlpZCwgcGFnZSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsb2co5oC76aG15pWwKVxcbiAgICAgICAgICAgICAgICBsb2co5paH5Lu25aS5aWQpXFxuICAgICAgICAgICAgICAgIGxvZyhwYWdlKVxcblxcbiAgICAgICAgICAgICAgICBpZiAocGFnZSA8IOaAu+mhteaVsCkge1xcbiAgICAgICAgICAgICAgICAgICAgbG9nKFxcXCLkv67mlLnliY1cXFwiICsgZ2V0TXlWYXIo5paH5Lu25aS5aWQgKyBcXFwicGFnZVxcXCIsIFxcXCIxXFxcIikpXFxuICAgICAgICAgICAgICAgICAgICB5c19zYyA9IGdldE15VmFyKOaWh+S7tuWkuWlkICsgXFxcInBhZ2VcXFwiLCBcXFwiMVxcXCIpXFxuICAgICAgICAgICAgICAgICAgICB5c19zYysrXFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcijmlofku7blpLlpZCArIFxcXCJwYWdlXFxcIiwgeXNfc2MpXFxuICAgICAgICAgICAgICAgICAgICBsb2coXFxcIuS/ruaUueWQjlxcXCIgKyBnZXRNeVZhcijmlofku7blpLlpZCArIFxcXCJwYWdlXFxcIiwgXFxcIjFcXFwiKSlcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5LiL5LiA6aG1XFxcIlxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3sue7j+acgOWQjlxcXCJcXG4gICAgICAgICAgICAgICAgfVxcblxcblxcbiAgICAgICAgICAgIH0sIOaAu+mhteaVsCwg5paH5Lu25aS5aWQsIHBhZ2UpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG4gICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICBjbHM6IFxcXCJwbGF5bGlzdCDkuIvkuIDpobVcXFwiXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuXFxuICAgIH1cXG5cXG5cXG5cXG5cXG4gICAgZm9yIChsZXQgaSA9IOWIh+WJsuWIl+ihqOWAvCAqIChwYWdlIC0gMSk7IGkgPCDliJfooagubGVuZ3RoICYmIGkgPCDliIflibLliJfooajlgLwgKiBwYWdlOyBpKyspIHtcXG4gICAgICAgIOagh+mimCA9IOWIl+ihqFtpXS5maWxlTmFtZVxcbiAgICAgICAgaWQgPSDliJfooahbaV0uaWRcXG4gICAgICAgIOaWh+S7tuWkp+WwjyA9IOWIl+ihqFtpXS5maWxlU2l6ZVxcbiAgICAgICAgZmlsZVR5cGUgPSDliJfooahbaV0uZmlsZVR5cGVcXG5cXG5cXG5cXG5cXG5cXG4gICAgICAgIGlmICjmlofku7blpKflsI8gPT0gMCkge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiDmoIfpopgsXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IOaWh+S7tuWkueWbvuaghyxcXG4gICAgICAgICAgICAgICAgdXJsOiBzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI9cXFwiKSA9PSBcXFwi5ryr55S75qih5byPXFxcIiA/ICQoJycpLmxhenlSdWxlKChpZCwgSVBGU+WvhumSpSkgPT4ge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkuWlkID0gaWRcXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICDor7fmsYLlj5jph49iID0gXFxcIi9jbG91ZGZpbGUvdjEvZmlsZXNcXFwiXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAg6Lqr5L2TID0gYHtcXG5cXFwiZmlsZVR5cGVcXFwiOltdLFxcblxcXCJrZXl3b3Jkc1xcXCI6XFxcIlxcXCIsXFxuXFxcInBhZ2VOdW1cXFwiOjEsXFxuXFxcInBhZ2VTaXplXFxcIjoxMDAsXFxuXFxcInBhcmVudElkXFxcIjpcXFwiYCArIOaWh+S7tuWkuWlkICsgYFxcXCIsXFxuXFxcInNvcnRNZXRob2RcXFwiOlxcXCJkZXNjXFxcIixcXG5cXFwic29ydFR5cGVcXFwiOlxcXCJ0aW1lXFxcIlxcbn1gXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAg6Lqr5L2TID0gYHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJgICsgZ2V0VmFyKCfmkJzntKLlhbPplK7or40nLCAnJykgKyBgXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJgICsgc3RvcmFnZTAuZ2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYVxcXCIsIFxcXCJuYW1lXFxcIikgKyBgXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJgICsgc3RvcmFnZTAuZ2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYlxcXCIsIFxcXCJhc2NcXFwiKSArIGBcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAgKyDmlofku7blpLlpZCArIGBcXFwifWBcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJSZWZlcmVyXFxcIjogXFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJBdXRob3JpemF0aW9uXFxcIjogXFxcIkJlYXJlciBcXFwiICsgSVBGU+WvhumSpVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICDlsI/pvpnkupHor7fmsYJiID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb21cXFwiICsg6K+35rGC5Y+Y6YePYlxcbiAgICAgICAgICAgICAgICAgICAgICAgIOesrOS6jOasoeWTjeW6lCA9IHBvc3Qo5bCP6b6Z5LqR6K+35rGCYiwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/liJfooahi5piv5paH5Lu25YiX6KGoXFxuICAgICAgICAgICAgICAgICAgICAgICAg5YiX6KGoYiA9IEpTT04ucGFyc2Uo56ys5LqM5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIOWbvueJh+WIl+ihqCA9IFtdXFxuICAgICAgICAgICAgICAgICAgICAgICAg5Zu+54mH5YiX6KGo5Y+Y6YePID0gMFxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg5YiX6KGoYi5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blkI0gPSDliJfooahiW2ldLmZpbGVOYW1lXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tkNJRCA9IOWIl+ihqGJbaV0uZmlsZUNpZFxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLyhqcGd8Z2lmfHBuZ3xqcGVnfHdlYnApJC9pLnRlc3Qo5paH5Lu25ZCNKSkge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5Zu+54mHID0g55Sf5oiQ55u06ZO+KFxcXCJodHRwczovL2lwZnNndzAyLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIiwg5paH5Lu2Q0lELCDmlofku7blkI0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlm77niYfliJfooahb5Zu+54mH5YiX6KGo5Y+Y6YePXSA9IOWbvueJh1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5Zu+54mH5YiX6KGo5Y+Y6YePKytcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAo5Zu+54mH5YiX6KGoLmxlbmd0aCA8IDEpIHJldHVybiBcXFwidG9hc3Q6Ly/msqHor4bliKvliLDlm77niYdcXFwiXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJwaWNzOi8vXFxcIiArIOWbvueJh+WIl+ihqC5qb2luKFxcXCImJlxcXCIpXFxuXFxuXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICB9LCBpZCwgSVBGU+WvhumSpSlcXG5cXG4gICAgICAgICAgICAgICAgICAgIDpcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJoaWtlcjovL3BhZ2Uv5paH5Lu25aS5I25vUmVjb3JkSGlzdG9yeSMjY2FjaGVPbmx5Iz9wYWdlVGl0bGU9XFxcIiArIOagh+mimCArIFxcXCIm57yT5a2YSUQ9XFxcIiArIHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyICsgaWQsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiDpnIDopoHnlKjmiLdpZCAmJiDliIbkuqvnlKjmiLdpZCA/IHtcXG4gICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjTog5qCH6aKYLFxcbiAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS5aWQ6IGlkLFxcbiAgICAgICAgICAgICAgICAgICAgdXNlcmlkOiDliIbkuqvnlKjmiLdpZCxcXG4gICAgICAgICAgICAgICAgICAgIOmcgOimgeeUqOaIt2lkOiBcXFwi6ZyA6KaBXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGxvbmdDbGljazogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuWtmOiHs+e9keebmFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKOWwj+S6kem+meS6keebmOWvhumSpSwgaWQsIHVzZXJpZCkgPT4ge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooaggPSBbXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIOWwj+S6kem+meS6keebmOWvhumSpSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoW2ldID0gaSArIOWwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5bCP6b6Z5LqR55uY77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUsIGlkLCB1c2VyaWQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpSA9IOWwj+S6kem+meS6keebmOWvhumSpVtpbnB1dC5tYXRjaCgvXFxcXGQvKVswXV0udXNlclxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg6K+35rGC5paH5Lu25aS56ZO+5o6lID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5aS06YOoID0ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJSZWZlcmVyXFxcIjogXFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIkF1dGhvcml6YXRpb25cXFwiOiBcXFwiQmVhcmVyIFxcXCIgKyDlsI/kupHpvpnkupHnm5jlr4bpkqVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcInBhcmVudElkXFxcIjpcXFwiMFxcXCJ9YFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjor7fmsYLmlofku7blpLnpk77mjqUsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55YiX6KGoID0gSlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjeensCA9IFtdXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXSA9IGkgKyDmlofku7blpLnliJfooahbaV0uZmlsZU5hbWVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXSA9IFxcXCLliqDlhaXmraTlpIRcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWIl+ihqGlkID0gXFxcIjBcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDnibnmroppZCA9IFxcXCJcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDluJblrZBpZCA9IFxcXCJcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mHjeWkjeivt+axguaWh+S7tuWkuScpKS5ydWxlKVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCDlsI/kupHpvpnkupHnm5jlr4bpkqUsIGlkLCB1c2VyaWQpXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLCBpZCwgdXNlcmlkKVxcbiAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgfSA6IHtcXG4gICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjTog5qCH6aKYLFxcbiAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS5aWQ6IGlkLFxcbiAgICAgICAgICAgICAgICAgICAgbG9uZ0NsaWNrOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcXFwi5paH5Lu25YiG5LqrXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygoSVBGU+WvhumSpSwgaWQsIOagh+mimCkgPT4ge1xcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChbXFxcIuWumOaWueWIhuS6qy3pnIDopoHnu5HlrprmiYvmnLrlj7dcXFwiLCBcXFwiQ0lE5YiG5LqrLeaXoOmcgOe7keWumuaJi+acuuWPt1xcXCJdLCAxLCAnNzU35ZOq56eN5YiG5Lqr5pa55byP77yfJykuc2VsZWN0KChJUEZT5a+G6ZKlLCBpZCwg5qCH6aKYKSA9PiB7XFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIuWumOaWueWIhuS6qy3pnIDopoHnu5HlrprmiYvmnLrlj7dcXFwiKSB7XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoXFxcIjBcXFwiLCBcXFwi5YiG5Lqr5aSp5pWwIDDkuLrmsLjkuYVcXFwiKS5pbnB1dCgoSVBGU+WvhumSpSwgaWQsIOagh+mimCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDor7fmsYLliIbkuqvpk77mjqUgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4wL2Nsb3VkL3NoYXJlXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiQXV0aG9yaXphdGlvblxcXCI6IFxcXCJCZWFyZXIgXFxcIiArIElQRlPlr4bpkqVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJpZHNcXFwiOltcXFwiYCArIGlkICsgYFxcXCJdLFxcXCJzaGFyZURheXNcXFwiOmAgKyBpbnB1dCArIGAsXFxcInNoYXJlQ29udGVudFxcXCI6XFxcImAgKyDmoIfpopggKyBgXFxcIixcXFwiZW5jcnlwdENvZGVcXFwiOlxcXCIwXFxcIn1gXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOesrOS4gOasoeWTjeW6lCA9IHBvc3Qo6K+35rGC5YiG5Lqr6ZO+5o6lLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKOesrOS4gOasoeWTjeW6lC5pbmNsdWRlcyhcXFwi57uR5a6a5omL5py65Y+3XFxcIikpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5pyq57uR5a6a5omL5py65Y+35peg5rOV5YiG5LqrJ1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDliIbkuqvpk77mjqUgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5saW5rXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoJ+aWh+S7tuWQjTonICsg5qCH6aKYICsgJ1xcXFxuJyArICfliIbkuqvpk77mjqU6JyArIOWIhuS6q+mTvuaOpSlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WIhuS6q+aIkOWKnyDlt7LlpI3liLbliIbkuqvpk77mjqUnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgSVBGU+WvhumSpSwgaWQsIOagh+mimClcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIkNJROWIhuS6qy3ml6DpnIDnu5HlrprmiYvmnLrlj7dcXFwiKSB7XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS5aWQgPSBpZFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjSA9IOagh+mimFxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOivt+axguWPmOmHj2EgPSBcXFwiL2Nsb3VkZmlsZS92MS9mb2xkZXJzXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOivt+axguWPmOmHj2IgPSBcXFwiL2Nsb3VkZmlsZS92MS9maWxlc1xcXCJcXG5cXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJSZWZlcmVyXFxcIjogXFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJBdXRob3JpemF0aW9uXFxcIjogXFxcIkJlYXJlciBcXFwiICsgSVBGU+WvhumSpVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJmaWxlTmFtZVxcXCI6XFxcIlxcXCIsXFxcInNvcnRGbGFnXFxcIjpcXFwibmFtZVxcXCIsXFxcInNvcnRUeXBlXFxcIjpcXFwiYXNjXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgICsg5paH5Lu25aS5aWQgKyBgXFxcIn1gXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDnrKzkuIDmrKHlk43lupQgPSBwb3N0KOWwj+m+meS6keivt+axgmEsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWwj+m+meS6keivt+axgmIgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49iXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+WIl+ihqGHmmK/mlofku7blpLnliJfooahcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDliJfooahhID0gSlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEuZGF0YVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWIl+ihqGIgPSBKU09OLnBhcnNlKOesrOS6jOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoW1xcXCLnm7TmjqXlpI3liLYt5rqQ5pWw5o2uXFxcIiwgXFxcIue9kee7nOmTvuaOpS3kupHlj6Pku6RcXFwiLCBcXFwi5a+85Ye65paH5Lu2Lea6kOaWh+S7tlxcXCJdLCAxLCAn5ZOq56eN5YiG5Lqr77yfJykuc2VsZWN0KCjliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUpID0+IHtcXG5cXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFxcXCLnm7TmjqXlpI3liLYt5rqQ5pWw5o2uXFxcIikge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5a2Y5pS+6Lev5b6EID0gXFxcIjBcXFwiXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5a2Y5ZOq6YeMID0gJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiDljZXkuKrmlofku7blpLnlpIfku70o5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlLCDlrZjmlL7ot6/lvoQsIOWtmOWTqumHjCwgXFxcIuWkjeWItlxcXCIpXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIue9kee7nOmTvuaOpS3kupHlj6Pku6RcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlrZjmlL7ot6/lvoQgPSBcXFwiMFxcXCJcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlrZjlk6rph4wgPSAnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIOWNleS4quaWh+S7tuWkueWkh+S7vSjliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUsIOWtmOaUvui3r+W+hCwg5a2Y5ZOq6YeMLCBcXFwi5aSN5Yi25LqR5Y+j5LukXFxcIilcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PSBcXFwi5a+85Ye65paH5Lu2Lea6kOaWh+S7tlxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWtmOaUvui3r+W+hCA9IFxcXCIwXFxcIlxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWtmOWTqumHjCA9ICdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSwg5a2Y5pS+6Lev5b6ELCDlrZjlk6rph4wsIFxcXCLlpI3liLblr7zlh7rmlofku7Yt5rqQ5paH5Lu2XFxcIilcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcblxcblxcblxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSlcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChcXFwi5rOo5oSPOuW9k+WJjeS4uuWIhuS6q+aWh+S7tuWkueS4i+eahOaWh+S7tkNJRFxcXFxu6Iul5paH5Lu26L+H5aSa6K+35L2/55So5paH5Lu25aSH5Lu95YaN5YiG5LqrXFxcIikuY29uZmlybSgoSVBGU+WvhumSpSwgaWQsIOagh+mimCkgPT4ge1xcblxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIElQRlPlr4bpkqUsIGlkLCDmoIfpopgpXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIElQRlPlr4bpkqUsIGlkLCDmoIfpopgpXFxuXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgSVBGU+WvhumSpSwgaWQsIOagh+mimClcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuaWh+S7tuWkh+S7vVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKElQRlPlr4bpkqUsIGlkLCDmoIfpopgpID0+IHtcXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS5aWQgPSBpZFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpLnlkI0gPSDmoIfpophcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg6K+35rGC5Y+Y6YePYSA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZvbGRlcnNcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOivt+axguWPmOmHj2IgPSBcXFwiL2Nsb3VkZmlsZS92MS9maWxlc1xcXCJcXG5cXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5aS06YOoID0ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlJlZmVyZXJcXFwiOiBcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJBdXRob3JpemF0aW9uXFxcIjogXFxcIkJlYXJlciBcXFwiICsgSVBGU+WvhumSpVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcImZpbGVOYW1lXFxcIjpcXFwiXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJuYW1lXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJhc2NcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAgKyDmlofku7blpLlpZCArIGBcXFwifWBcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJhLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2JcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25aS55YiX6KGoXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWIl+ihqGEgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDliJfooahiID0gSlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcblxcblxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlybSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+mAieaLqeaPkOekuicsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAn56Gu5a6aLeebtOaOpeWtmOWFpeWkh+S7veagueebruW9lVxcXFxu5Y+W5raILemAieaLqeWtmOWFpeWkh+S7veeahOebruW9lScsXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtOiAkLnRvU3RyaW5nKCjliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlrZjmlL7ot6/lvoQgPSBcXFwiMFxcXCJcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWtmOWTqumHjCA9ICdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIOWNleS4quaWh+S7tuWkueWkh+S7vSjliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUsIOWtmOaUvui3r+W+hCwg5a2Y5ZOq6YeMLCBcXFwi5aSH5Lu9XFxcIilcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSksXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWw6ICQudG9TdHJpbmcoKOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSkgPT4ge1xcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpIfku73mlofku7blkI3liJfooaggPSBbXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4g5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWkh+S7veaWh+S7tuWQjeWIl+ihqFtpXSA9IOWwj+m+meS6keebmOWkh+S7veebruW9lVtpXS5zcGxpdChcXFwiL1xcXCIpLnJldmVyc2UoKVsxXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCjlpIfku73mlofku7blkI3liJfooagsIDEsICfpnIDopoHlrZjlnKjlk6rkuKrmgLvmlofku7bvvJ8nKS5zZWxlY3QoKOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSwg5aSH5Lu95paH5Lu25ZCN5YiX6KGoLCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpID0+IHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg54K55Ye75L2N572uID0g5aSH5Lu95paH5Lu25ZCN5YiX6KGoLmZpbmRJbmRleChpdCA9PiBpdCA9PT0gaW5wdXQpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlrZjlk6rph4wgPSDlsI/pvpnkupHnm5jlpIfku73nm67lvZVb54K55Ye75L2N572uXS5yZXBsYWNlKCcwLmpzb24nLCAnJylcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/lrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMICsgJzAuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9IDwgMSkgcmV0dXJuIFxcXCJ0b2FzdDovL+Wkh+S7veagueebruW9lemDveayoeacieaWh+S7tiDkvaDpgInmi6nkuKrlsYHnmoTmlofku7blpLlcXFwiXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tui3r+W+hCA9IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS7ot6/lvoRcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoID0g5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LuaWh+S7tuWkuVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDpgInmi6nmlofku7blpLnliJfooagucHVzaChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKOmAieaLqeaWh+S7tuWkueWIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWkh+S7veaWh+S7tuWkue+8nycpLnNlbGVjdCgo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LCDmlofku7bot6/lvoQsIOmAieaLqeaWh+S7tuWkueWIl+ihqCwg5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlLCDlrZjlk6rph4wpID0+IHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpIfku73mlbDmja4gPSDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku71cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tui3r+W+hCA9IOaWh+S7tui3r+W+hCArIOi3r+W+hOmXtOmalCArIGlucHV0XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIuWKoOWFpeatpOWkhFxcXCIpIHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIjBcXFwiKSDmlofku7bot6/lvoQgPSBcXFwiMFxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIOaWh+S7tui3r+W+hCA9IOaWh+S7tui3r+W+hC5yZXBsYWNlKOi3r+W+hOmXtOmalCArIFxcXCLliqDlhaXmraTlpIRcXFwiLCBcXFwiXFxcIilcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiDljZXkuKrmlofku7blpLnlpIfku70o5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlLCDmlofku7bot6/lvoQsIOWtmOWTqumHjCwgXFxcIuWkh+S7vVxcXCIpXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcblxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCArIOaWh+S7tui3r+W+hCArICcuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqCA9IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EJykpLnJ1bGUpXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70sIOaWh+S7tui3r+W+hCwg6YCJ5oup5paH5Lu25aS55YiX6KGoLCDliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUsIOWtmOWTqumHjClcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCDliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUsIOWkh+S7veaWh+S7tuWQjeWIl+ihqCwg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwg5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlKSxcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG5cXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLypcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBJUEZT5a+G6ZKlLCBpZCwg5qCH6aKYKVxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcXFwi5paH5Lu26K+m5oOFXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygoSVBGU+WvhumSpSwgaWQsIOagh+mimCkgPT4ge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDor7fmsYLmlofku7blpLnor6bmg4UgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbG91ZGZpbGUvdjEvZGV0YWlsXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiQXV0aG9yaXphdGlvblxcXCI6IFxcXCJCZWFyZXIgXFxcIiArIElQRlPlr4bpkqVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJpZFxcXCI6XFxcImAgKyBpZCArIGBcXFwifWBcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjor7fmsYLmlofku7blpLnor6bmg4UsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcblxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlbDmja4gPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7bkuKrmlbAgPSDmlbDmja4uc3ViRmlsZXNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55Liq5pWwID0g5pWw5o2uLnN1YkZvbGRlcnNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55aSn5bCPID0g5pWw5o2uLnN1YkZpbGVTaXplRlxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYGNvbmZpcm06Ly/mlofku7bwn5OROmAgKyDmlofku7bkuKrmlbAgKyBgXFxcXG7mlofku7blpLnwn5eCOmAgKyDmlofku7blpLnkuKrmlbAgKyBgXFxcXG7lpKflsI/wn5KlOmAgKyDmlofku7blpLnlpKflsI8gKyBgLmpzOid0b2FzdDovL/CfjJrwn4ya8J+MmidgXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lpKflsI86JyArIOaWh+S7tuWkueWkp+WwjyArICcgIOaWh+S7tvCfk5E6JyArIOaWh+S7tuS4quaVsCArICcgIOaWh+S7tuWkufCfl4I6JyArIOaWh+S7tuWkueS4quaVsFxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIElQRlPlr4bpkqUsIGlkLCDmoIfpopgpXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLmlLnlkI1cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKChJUEZT5a+G6ZKlLCDmoIfpopgsIGlkLCDmlofku7blpLlpZCwgZmlsZVR5cGUpID0+IHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQo5qCH6aKYLCBcXFwi5paw55qE5paH5Lu25ZCNXFxcIikuaW5wdXQoKElQRlPlr4bpkqUsIGlkLCDmlofku7blpLlpZCwgZmlsZVR5cGUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOivt+axguaUueWQjemTvuaOpSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZmlsZVJlbmFtZVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWktOmDqCA9IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiQXV0aG9yaXphdGlvblxcXCI6IFxcXCJCZWFyZXIgXFxcIiArIElQRlPlr4bpkqVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcImlzRm9sZGVyXFxcIjowLFxcXCJyZW5hbWVcXFwiOlxcXCJgICsgaW5wdXQgKyBgXFxcIixcXFwiaWRcXFwiOlxcXCJgICsgaWQgKyBgXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgICsg5paH5Lu25aS5aWQgKyBgXFxcIixcXFwiZmlsZVR5cGVcXFwiOmAgKyBmaWxlVHlwZSArIGAsXFxcInRva2VuXFxcIjpcXFwiYCArIElQRlPlr4bpkqUgKyBgXFxcIn1gXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0KOivt+axguaUueWQjemTvuaOpSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIElQRlPlr4bpkqUsIGlkLCDmlofku7blpLlpZCwgZmlsZVR5cGUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgSVBGU+WvhumSpSwg5qCH6aKYLCBpZCwg5paH5Lu25aS5aWQsIGZpbGVUeXBlKVxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcXFwi56e75YqoXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygoSVBGU+WvhumSpSwg5qCH6aKYLCBpZCwg5paH5Lu25aS5aWQsIGZpbGVUeXBlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJpZCA9IFxcXCLml6BcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpSA9IElQRlPlr4bpkqVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg6K+35rGC5paH5Lu25aS56ZO+5o6lID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiUmVmZXJlclxcXCI6IFxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIkF1dGhvcml6YXRpb25cXFwiOiBcXFwiQmVhcmVyIFxcXCIgKyDlsI/kupHpvpnkupHnm5jlr4bpkqVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjor7fmsYLmlofku7blpLnpk77mjqUsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpLnliJfooaggPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpLnlkI3np7AgPSBbXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldID0gaSArIFxcXCIuXFxcIiArIOaWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXSA9IFxcXCLliqDlhaXmraTlpIRcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjeensC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpLnliJfooahpZCA9IFxcXCIwXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDnibnmroppZCA9IFxcXCJcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOW4luWtkGlkID0gXFxcIlxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIElQRlPlr4bpkqUsIOagh+mimCwgaWQsIOaWh+S7tuWkuWlkLCBmaWxlVHlwZSlcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuWIoOmZpFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKElQRlPlr4bpkqUsIGlkKSA9PiB7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOivt+axguWIoOmZpOmTvuaOpSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkZmlsZS92MS9tb3ZlLXRvLXRyYXNoXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiQXV0aG9yaXphdGlvblxcXCI6IFxcXCJCZWFyZXIgXFxcIiArIElQRlPlr4bpkqVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJmaWxlSWRzXFxcIjpbXFxcImAgKyBpZCArIGBcXFwiXX1gXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Qo6K+35rGC5Yig6Zmk6ZO+5o6lLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgSVBGU+WvhumSpSwgaWQpXFxuICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogc3RvcmFnZTAuZ2V0SXRlbShcXFwi5paH5Lu25qC35byPXFxcIikgPT0gXFxcIua8q+eUu+aooeW8j1xcXCIgPyBcXFwidGV4dF8yXFxcIiA6IFxcXCJhdmF0YXJcXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9IGVsc2Uge1xcblxcbiAgICAgICAgICAgIOaWh+S7tuagvOW8jyA9IOWIl+ihqFtpXS5zdWZmaXhcXG4gICAgICAgICAgICDmlofku7ZDSUQgPSDliJfooahbaV0uZmlsZUNpZFxcbiAgICAgICAgICAgIOaWh+S7tuWkp+Wwj+agvOW8j+WMliA9IGZvcm1hdFNpemUo5paH5Lu25aSn5bCPKVxcbiAgICAgICAgICAgIOWNleaWh+S7tuaVsOaNriA9IOWIl+ihqFtpXVxcblxcblxcbiAgICAgICAgICAgIGlmICjmlofku7ZDSUQubGVuZ3RoIDwgMSkg5qCH6aKYID0gXFxcIuKdjFxcXCIgKyDmoIfpophcXG5cXG5cXG4gICAgICAgICAgICBpZiAo5om+5Zu+54mH5q2j5YiZLnRlc3Qo5qCH6aKYKSkge1xcblxcbiAgICAgICAgICAgICAgICDpk77mjqXliY3nvIAgPSBcXFwiXFxcIlxcbiAgICAgICAgICAgICAgICDmlrDmoLzlvI8gPSAnIy5qcGcnXFxuICAgICAgICAgICAgICAgIOagvOW8jyA9IFxcXCIjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG4gICAgICAgICAgICAgICAg5Zu+54mHID0gXFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiICsg5paH5Lu2Q0lEICsgXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG5cXG4gICAgICAgICAgICAgICAgLy/lm77niYc955Sf5oiQ55u06ZO+KFxcXCJodHRwczovL2lwZnNndzAyLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIizmlofku7ZDSUQs5qCH6aKYKVxcblxcblxcblxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAo5om+6KeG6aKR5q2j5YiZLnRlc3Qo5qCH6aKYKSkge1xcbiAgICAgICAgICAgICAgICDpk77mjqXliY3nvIAgPSBcXFwiXFxcIlxcbiAgICAgICAgICAgICAgICDlm77niYcgPSDop4bpopHmlofku7blm77moIdcXG4gICAgICAgICAgICAgICAg5paw5qC85byPID0gJyNpc1ZpZGVvPXRydWUjJ1xcbiAgICAgICAgICAgICAgICDmoLzlvI8gPSBcXFwiI2lzVmlkZW89dHJ1ZSM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKOaJvumfs+mikeato+WImS50ZXN0KOagh+mimCkpIHtcXG5cXG4gICAgICAgICAgICAgICAg6ZO+5o6l5YmN57yAID0gXFxcIlxcXCJcXG4gICAgICAgICAgICAgICAg5paw5qC85byPID0gJyMubXAzJ1xcbiAgICAgICAgICAgICAgICDmoLzlvI8gPSBcXFwiIy5tcDM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG4gICAgICAgICAgICAgICAg5Zu+54mHID0gXFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9iYWZrcmVpZTYzbnFnaWF0cGt1eHZmZmVidmdoZHM3YW9vcGRjeDdsaWl3dGoycXlyamNjaDYyNTJkdSMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcbiAgICAgICAgICAgICAgICDlm77niYcgPSDpn7PkuZDmlofku7blm77moIdcXG5cXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICDpk77mjqXliY3nvIAgPSBcXFwiZG93bmxvYWQ6Ly9cXFwiXFxuICAgICAgICAgICAgICAgIOaWsOagvOW8jyA9IFxcXCJcXFwiXFxuICAgICAgICAgICAgICAgIOagvOW8jyA9IFxcXCI7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG4gICAgICAgICAgICAgICAg5Zu+54mHID0gXFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9iYWZrcmVpZm9oZnp5YWpvNWkzNjdncHk1NXRsM2syNGluZmZ4ZHNxd2xmZTRsY2JmNmQ0ZXJxYXVvZUBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG4gICAgICAgICAgICAgICAg5Zu+54mHID0g5YW25LuW5paH5Lu25Zu+5qCHXFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIOmTvuaOpSA9IFxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIiArIOaWh+S7tkNJRCArIOaWsOagvOW8j1xcblxcbiAgICAgICAgICAgIOe6v+i3rzEgPSBcXFwiaHR0cHM6Ly9pcGZzZ3cwMS5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG4gICAgICAgICAgICDnur/ot68yID0gXFxcImh0dHBzOi8vaXBmc2d3MDIuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxuICAgICAgICAgICAg57q/6LevMyA9IFxcXCJodHRwczovL2lwZnNndzAzLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbiAgICAgICAgICAgIOe6v+i3rzQgPSBcXFwiaHR0cHM6Ly9pcGZzZ3cwNC5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG4gICAgICAgICAgICDnur/ot681ID0gXFxcImh0dHBzOi8vaXBmc2d3MDUuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxuXFxuXFxuXFxuICAgICAgICAgICAg6ZO+5o6l5ZCO57yAID0g5paH5Lu2Q0lEICsgXFxcIj9maWxlbmFtZT0wJnY9MSZ0PVxcXCIgKyBcXFwiXFxcIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgXFxcIiZ1PTBcXFwiICsg5paw5qC85byPXFxuXFxuXFxuXFxuICAgICAgICAgICAg5paw6ZO+5o6lID0g55Sf5oiQ55u06ZO+KOe6v+i3rzIsIOaWh+S7tkNJRCwg5qCH6aKYKSArIOaWsOagvOW8j1xcblxcblxcbiAgICAgICAgICAgIC8v5paw6ZO+5o6lPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tJiZcXFwiK+aWsOagvOW8j1xcblxcbiAgICAgICAgICAgIC8v5paw6ZO+5o6lPVxcXCJodHRwOi8vMTExLjE4MC4yMDQuMTA4OjgwODAvaXBmcy9cXFwiK+aWh+S7tkNJRCvmlrDmoLzlvI9cXG5cXG5cXG4gICAgICAgICAgICAvL+Wkmue6v+i3r+mTvuaOpT1b6ZO+5o6lLOe6v+i3rzQr6ZO+5o6l5ZCO57yALOe6v+i3rzMr6ZO+5o6l5ZCO57yALOe6v+i3rzMr6ZO+5o6l5ZCO57yALOe6v+i3rzEr6ZO+5o6l5ZCO57yAXVxcblxcbiAgICAgICAgICAgIC8v5pyq55+l57q/6LevPVxcXCJodHRwOi8vMTExLjE4MC4yMDQuMTA4OjgwODAvaXBmcy9cXFwiK+aWh+S7tkNJRFxcbiAgICAgICAgICAgIOmTvuaOpTUgPSDnlJ/miJDnm7Tpk74o57q/6LevNSwg5paH5Lu2Q0lELCDmoIfpopgpXFxuICAgICAgICAgICAg6ZO+5o6lNCA9IOeUn+aIkOebtOmTvijnur/ot680LCDmlofku7ZDSUQsIOagh+mimClcXG4gICAgICAgICAgICDpk77mjqUzID0g55Sf5oiQ55u06ZO+KOe6v+i3rzMsIOaWh+S7tkNJRCwg5qCH6aKYKVxcbiAgICAgICAgICAgIOmTvuaOpTIgPSDnlJ/miJDnm7Tpk74o57q/6LevMiwg5paH5Lu2Q0lELCDmoIfpopgpXFxuICAgICAgICAgICAg6ZO+5o6lMSA9IOeUn+aIkOebtOmTvijnur/ot68xLCDmlofku7ZDSUQsIOagh+mimClcXG5cXG4gICAgICAgICAgICDlpJrnur/ot6/pk77mjqUgPSBb6ZO+5o6lNSArIOaWsOagvOW8jywg6ZO+5o6lNCArIOaWsOagvOW8jywg6ZO+5o6lMyArIOaWsOagvOW8jywg6ZO+5o6lMiArIOaWsOagvOW8jywg6ZO+5o6lMSArIOaWsOagvOW8jywg6ZO+5o6lXVxcblxcblxcblxcbiAgICAgICAgICAgIOaXoOagvOW8j+WQjue8gCA9IOaWh+S7tkNJRCArIFxcXCI/ZmlsZW5hbWU9MCZ2PTEmdD1cXFwiICsgXFxcIlxcXCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIFxcXCImdT0wXFxcIlxcblxcbiAgICAgICAgICAgIOWkjeWItuebtOmTviA9IFvpk77mjqUgKyBcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIiwg6ZO+5o6lNSwg6ZO+5o6lNCwg6ZO+5o6lMywg6ZO+5o6lMiwg6ZO+5o6lMV1cXG5cXG4gICAgICAgICAgICDlpJrnur/ot68gPSB7XFxuICAgICAgICAgICAgICAgIHVybHM6IOWkmue6v+i3r+mTvuaOpSxcXG4gICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzog6ZO+5o6lNVxcbiAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6IOmTvuaOpTRcXG4gICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiDpk77mjqUzXFxuICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzog6ZO+5o6lMlxcbiAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6IOmTvuaOpTFcXG4gICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vJ1xcbiAgICAgICAgICAgICAgICB9XSxcXG4gICAgICAgICAgICAgICAgbmFtZXM6IFsn57q/6LevNScsICfnur/ot680JywgJ+e6v+i3rzMnLCAn57q/6LevMicsICfnur/ot68xJywgJ+WklumTviddXFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIC8v5aSa57q/6LevPXt1cmxzOuWkmue6v+i3r+mTvuaOpSwgaGVhZGVyczogW3snUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nfSwgeydSZWZlcmVyJzog6ZO+5o6lNH0sIHsnUmVmZXJlcic6IOmTvuaOpTN9LCB7J1JlZmVyZXInOiDpk77mjqUyfSwgeydSZWZlcmVyJzog6ZO+5o6lMX0seydSZWZlcmVyJzog5pyq55+l57q/6LevfV0sbmFtZXM6WyflpJbpk74nLCfnur/ot680Jywn57q/6LevMycsJ+e6v+i3rzInLCfnur/ot68xJywn5pyq55+l57q/6LevJ119XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IOagh+mimCxcXG4gICAgICAgICAgICAgICAgZGVzYzog5paH5Lu25aSn5bCP5qC85byP5YyWLFxcbiAgICAgICAgICAgICAgICBwaWNfdXJsOiDlm77niYcsXFxuICAgICAgICAgICAgICAgIHVybDog5paH5Lu2Q0lEICsgXFxcIiYmXFxcIiArIOagh+mimCArIENJROmTvuaOpeino+aekCxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IOWIhuS6q+eUqOaIt2lkID8ge1xcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxcbiAgICAgICAgICAgICAgICAgICAgdXNlcmlkOiDliIbkuqvnlKjmiLdpZCxcXG4gICAgICAgICAgICAgICAgICAgIOmcgOimgeeUqOaIt2lkOiBcXFwi6ZyA6KaBXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGxvbmdDbGljazogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuWtmOiHs+e9keebmFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKOWwj+S6kem+meS6keebmOWvhumSpSwgaWQsIOWIhuS6q+eUqOaIt2lkKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJpZCA9IOWIhuS6q+eUqOaIt2lkXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCA9IFtdXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV0gPSBpICsg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2ldLm5hbWVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCjlsI/kupHpvpnkupHnm5jotKblj7fliJfooagsIDIsICflsIbmlofku7bmt7vliqDoh7Plk6rkuKrlsI/pvpnkupHnm5jvvJ8nKS5zZWxlY3QoKOWwj+S6kem+meS6keebmOWvhumSpSwgaWQsIHVzZXJpZCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlID0g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDor7fmsYLmlofku7blpLnpk77mjqUgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlJlZmVyZXJcXFwiOiBcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiQXV0aG9yaXphdGlvblxcXCI6IFxcXCJCZWFyZXIgXFxcIiArIOWwj+S6kem+meS6keebmOWvhumSpVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg6Lqr5L2TID0gYHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDnrKzkuIDmrKHlk43lupQgPSBwb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpLnliJfooaggPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55ZCN56ewID0gW11cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4g5paH5Lu25aS55YiX6KGoKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldID0gaSArIOaWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW+aWh+S7tuWkueWQjeensC5sZW5ndGhdID0gXFxcIuWKoOWFpeatpOWkhFxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjeensC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55YiX6KGoaWQgPSBcXFwiMFxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSwgaWQsIHVzZXJpZClcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCDlsI/kupHpvpnkupHnm5jlr4bpkqUsIGlkLCDliIbkuqvnlKjmiLdpZClcXG4gICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgIH0gOiB7XFxuICAgICAgICAgICAgICAgICAgICBpZDogaWQsXFxuICAgICAgICAgICAgICAgICAgICBsb25nQ2xpY2s6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLmlofku7bliIbkuqtcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKChJUEZT5a+G6ZKlLCBpZCwg5qCH6aKYLCDmlofku7ZDSUQsIOagh+mimCwgZmlsZVR5cGUsIOaWh+S7tuagvOW8jywg5paH5Lu25aSn5bCPLCDmlofku7blpLnlkI0pID0+IHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoW1xcXCLlrpjmlrnliIbkuqst6ZyA6KaB57uR5a6a5omL5py65Y+3XFxcIiwgXFxcIkNJROWIhuS6qy3ml6DpnIDnu5HlrprmiYvmnLrlj7dcXFwiXSwgMSwgJzY1NuWTquenjeWIhuS6q+aWueW8j++8nycpLnNlbGVjdCgoSVBGU+WvhumSpSwgaWQsIOagh+mimCwg5paH5Lu2Q0lELCDmoIfpopgsIGZpbGVUeXBlLCDmlofku7bmoLzlvI8sIOaWh+S7tuWkp+Wwjywg5paH5Lu25aS55ZCNKSA9PiB7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIuWumOaWueWIhuS6qy3pnIDopoHnu5HlrprmiYvmnLrlj7dcXFwiKSB7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoXFxcIjBcXFwiLCBcXFwi5YiG5Lqr5aSp5pWwIDDkuLrmsLjkuYVcXFwiKS5pbnB1dCgoSVBGU+WvhumSpSwgaWQsIOagh+mimCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDor7fmsYLliIbkuqvpk77mjqUgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4wL2Nsb3VkL3NoYXJlXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiQXV0aG9yaXphdGlvblxcXCI6IFxcXCJCZWFyZXIgXFxcIiArIElQRlPlr4bpkqVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJpZHNcXFwiOltcXFwiYCArIGlkICsgYFxcXCJdLFxcXCJzaGFyZURheXNcXFwiOmAgKyBpbnB1dCArIGAsXFxcInNoYXJlQ29udGVudFxcXCI6XFxcImAgKyDmoIfpopggKyBgXFxcIixcXFwiZW5jcnlwdENvZGVcXFwiOlxcXCIwXFxcIn1gXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOesrOS4gOasoeWTjeW6lCA9IHBvc3Qo6K+35rGC5YiG5Lqr6ZO+5o6lLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKOesrOS4gOasoeWTjeW6lC5pbmNsdWRlcyhcXFwi57uR5a6a5omL5py65Y+3XFxcIikpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5pyq57uR5a6a5omL5py65Y+35peg5rOV5YiG5LqrJ1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDliIbkuqvpk77mjqUgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5saW5rXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoJ+aWh+S7tuWQjTonICsg5qCH6aKYICsgJ1xcXFxuJyArICfliIbkuqvpk77mjqU6JyArIOWIhuS6q+mTvuaOpSlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WIhuS6q+aIkOWKnyDlt7LlpI3liLbliIbkuqvpk77mjqUnXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgSVBGU+WvhumSpSwgaWQsIOagh+mimClcXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIkNJROWIhuS6qy3ml6DpnIDnu5HlrprmiYvmnLrlj7dcXFwiKSB7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5pWw5o2uID0gYHtcXFwi5aSH5Lu95pe26Ze0XFxcIjpcXFwiYCArIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgYFxcXCIsXFxcIuexu+Wei1xcXCI6XFxcIuaWh+S7tuWkueWkh+S7vVxcXCIsXFxcImRhdGFcXFwiOiBbe1xcXCLlpIfku73ml7bpl7RcXFwiOlxcXCJgICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBgXFxcIixcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXSxcXFwi5paH5Lu2XFxcIjpbe1xcXCLmlofku7ZDSURcXFwiOlxcXCJgICsg5paH5Lu2Q0lEICsgYFxcXCIsXFxcIuaWh+S7tuWQjVxcXCI6XFxcImAgKyDmoIfpopggKyBgXFxcIixcXFwi5paH5Lu25qC85byPXFxcIjpcXFwiYCArIGZpbGVUeXBlICsgYFxcXCIsXFxcIuaWh+S7tuWkp+Wwj1xcXCI6XFxcImAgKyDmlofku7blpKflsI8gKyBgXFxcIn1dfV19YFxcblxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3B5KOaVsOaNrilcXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgSVBGU+WvhumSpSwgaWQsIOagh+mimCwg5paH5Lu2Q0lELCDmoIfpopgsIGZpbGVUeXBlLCDmlofku7bmoLzlvI8sIOaWh+S7tuWkp+Wwjywg5paH5Lu25aS55ZCNKVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIElQRlPlr4bpkqUsIGlkLCDmoIfpopgsIOaWh+S7tkNJRCwg5qCH6aKYLCBmaWxlVHlwZSwg5paH5Lu25qC85byPLCDmlofku7blpKflsI8sIOaWh+S7tuWkueWQjSlcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuaWh+S7tuWkh+S7vVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKOaWh+S7tkNJRCwg5qCH6aKYLCBmaWxlVHlwZSwg5paH5Lu25qC85byPLCDmlofku7blpKflsI8sIOaWh+S7tuWkueWQjSwg5Y2V5paH5Lu25pWw5o2uLCBJUEZT5a+G6ZKlKSA9PiB7XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaVsOaNriA9IGB7XFxcIuaWh+S7tkNJRFxcXCI6XFxcImAgKyDmlofku7ZDSUQgKyBgXFxcIixcXFwi5paH5Lu25ZCNXFxcIjpcXFwiYCArIOagh+mimCArIGBcXFwiLFxcXCLmlofku7bmoLzlvI9cXFwiOlxcXCJgICsgZmlsZVR5cGUgKyBgXFxcIixcXFwi5paH5Lu25aSn5bCPXFxcIjpcXFwiYCArIOaWh+S7tuWkp+WwjyArIGBcXFwifWBcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5YiX6KGoYSA9IFtdXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWIl+ihqGIgPSBb5Y2V5paH5Lu25pWw5o2uXVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlybSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+mAieaLqeaPkOekuicsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAn56Gu5a6aLeebtOaOpeWtmOWFpeWkh+S7veagueebruW9lVxcXFxu5Y+W5raILemAieaLqeWtmOWFpeWkh+S7veeahOebruW9lScsXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtOiAkLnRvU3RyaW5nKCjliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlrZjmlL7ot6/lvoQgPSBcXFwiMFxcXCJcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWtmOWTqumHjCA9ICdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIOWNleS4quaWh+S7tuWkueWkh+S7vSjliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUsIOWtmOaUvui3r+W+hCwg5a2Y5ZOq6YeMLCBcXFwi5aSH5Lu9XFxcIilcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSksXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWw6ICQudG9TdHJpbmcoKOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSkgPT4ge1xcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpIfku73mlofku7blkI3liJfooaggPSBbXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4g5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWkh+S7veaWh+S7tuWQjeWIl+ihqFtpXSA9IOWwj+m+meS6keebmOWkh+S7veebruW9lVtpXS5zcGxpdChcXFwiL1xcXCIpLnJldmVyc2UoKVsxXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCjlpIfku73mlofku7blkI3liJfooagsIDEsICfpnIDopoHlrZjlnKjlk6rkuKrmgLvmlofku7bvvJ8nKS5zZWxlY3QoKOWIl+ihqGEsIOWIl+ihqGIsIOaWh+S7tuWkueWQjSwgSVBGU+WvhumSpSwg5aSH5Lu95paH5Lu25ZCN5YiX6KGoLCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpID0+IHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg54K55Ye75L2N572uID0g5aSH5Lu95paH5Lu25ZCN5YiX6KGoLmZpbmRJbmRleChpdCA9PiBpdCA9PT0gaW5wdXQpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlrZjlk6rph4wgPSDlsI/pvpnkupHnm5jlpIfku73nm67lvZVb54K55Ye75L2N572uXS5yZXBsYWNlKCcwLmpzb24nLCAnJylcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/lrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LydcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMICsgJzAuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9IDwgMSkgcmV0dXJuIFxcXCJ0b2FzdDovL+Wkh+S7veagueebruW9lemDveayoeacieaWh+S7tiDkvaDpgInmi6nkuKrlsYHnmoTmlofku7blpLlcXFwiXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tui3r+W+hCA9IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS7ot6/lvoRcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoID0g5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LuaWh+S7tuWkuVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDpgInmi6nmlofku7blpLnliJfooagucHVzaChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKOmAieaLqeaWh+S7tuWkueWIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWkh+S7veaWh+S7tuWkue+8nycpLnNlbGVjdCgo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LCDmlofku7bot6/lvoQsIOmAieaLqeaWh+S7tuWkueWIl+ihqCwg5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlLCDlrZjlk6rph4wpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpIfku73mlbDmja4gPSDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku71cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tui3r+W+hCA9IOaWh+S7tui3r+W+hCArIOi3r+W+hOmXtOmalCArIGlucHV0XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIuWKoOWFpeatpOWkhFxcXCIpIHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIjBcXFwiKSDmlofku7bot6/lvoQgPSBcXFwiMFxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIOaWh+S7tui3r+W+hCA9IOaWh+S7tui3r+W+hC5yZXBsYWNlKOi3r+W+hOmXtOmalCArIFxcXCLliqDlhaXmraTlpIRcXFwiLCBcXFwiXFxcIilcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiDljZXkuKrmlofku7blpLnlpIfku70o5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlLCDmlofku7bot6/lvoQsIOWtmOWTqumHjCwgXFxcIuWkh+S7vVxcXCIpXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcblxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCArIOaWh+S7tui3r+W+hCArICcuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqCA9IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EJykpLnJ1bGUpXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70sIOaWh+S7tui3r+W+hCwg6YCJ5oup5paH5Lu25aS55YiX6KGoLCDliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUsIOWtmOWTqumHjClcXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCDliJfooahhLCDliJfooahiLCDmlofku7blpLnlkI0sIElQRlPlr4bpkqUsIOWkh+S7veaWh+S7tuWQjeWIl+ihqCwg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwg5YiX6KGoYSwg5YiX6KGoYiwg5paH5Lu25aS55ZCNLCBJUEZT5a+G6ZKlKSxcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvcHko5pWw5o2uKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIOaWh+S7tkNJRCwg5qCH6aKYLCBmaWxlVHlwZSwg5paH5Lu25qC85byPLCDmlofku7blpKflsI8sIOaWh+S7tuWkueWQjSwg5Y2V5paH5Lu25pWw5o2uLCBJUEZT5a+G6ZKlKVxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcXFwi5o+Q5Y+W55u06ZO+XFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygo5aSN5Yi255u06ZO+KSA9PiB7XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKFtcXFwi55u05o6l5LiL6L29XFxcIiwgXFxcIuWkjeWItuebtOmTvlxcXCJdLCAxLCAn5LuA5LmI5pON5L2c77yfJykuc2VsZWN0KCjlpI3liLbnm7Tpk74pID0+IHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwi55u05o6l5LiL6L29XFxcIikge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKOWkjeWItuebtOmTviwgMiwgJ+S4i+i9veWTquS4que6v+i3r++8nycpLnNlbGVjdCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiZG93bmxvYWQ6Ly9cXFwiICsgaW5wdXRcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PSBcXFwi5aSN5Yi255u06ZO+XFxcIikge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKOWkjeWItuebtOmTviwgMiwgJ+WkjeWItuWTquS4que6v+i3r++8nycpLnNlbGVjdCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3B5KGlucHV0KVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIOWkjeWItuebtOmTvilcXG5cXG5cXG5cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCDlpI3liLbnm7Tpk74pXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLmlLnlkI1cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKChJUEZT5a+G6ZKlLCDmoIfpopgsIGlkLCDmlofku7bmoLzlvI8sIOaWh+S7tuWkuWlkLCBmaWxlVHlwZSkgPT4ge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCjmoIfpopgsIFxcXCLmlrDnmoTmlofku7blkI1cXFwiKS5pbnB1dCgoSVBGU+WvhumSpSwgaWQsIOaWh+S7tuagvOW8jywg5paH5Lu25aS5aWQsIGZpbGVUeXBlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDor7fmsYLmlLnlkI3pk77mjqUgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZpbGVSZW5hbWVcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIkF1dGhvcml6YXRpb25cXFwiOiBcXFwiQmVhcmVyIFxcXCIgKyBJUEZT5a+G6ZKlXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJpc0ZvbGRlclxcXCI6MCxcXFwicmVuYW1lXFxcIjpcXFwiYCArIGlucHV0ICsgYFxcXCIsXFxcImlkXFxcIjpcXFwiYCArIGlkICsgYFxcXCIsXFxcInBhcmVudElkXFxcIjpcXFwiYCArIOaWh+S7tuWkuWlkICsgYFxcXCIsXFxcImZpbGVUeXBlXFxcIjpgICsgZmlsZVR5cGUgKyBgLFxcXCJ0b2tlblxcXCI6XFxcImAgKyBJUEZT5a+G6ZKlICsgYFxcXCJ9YFxcblxcblxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdCjor7fmsYLmlLnlkI3pk77mjqUsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqfJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBJUEZT5a+G6ZKlLCBpZCwg5paH5Lu25qC85byPLCDmlofku7blpLlpZCwgZmlsZVR5cGUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgSVBGU+WvhumSpSwg5qCH6aKYLCBpZCwg5paH5Lu25qC85byPLCDmlofku7blpLlpZCwgZmlsZVR5cGUpXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLnp7vliqhcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKChJUEZT5a+G6ZKlLCDmoIfpopgsIGlkLCDmlofku7bmoLzlvI8sIOaWh+S7tuWkuWlkLCBmaWxlVHlwZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyaWQgPSBcXFwi5pegXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqUgPSBJUEZT5a+G6ZKlXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOivt+axguaWh+S7tuWkuemTvuaOpSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5aS06YOoID0ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlJlZmVyZXJcXFwiOiBcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJBdXRob3JpemF0aW9uXFxcIjogXFxcIkJlYXJlciBcXFwiICsg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg6Lqr5L2TID0gYHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOesrOS4gOasoeWTjeW6lCA9IHBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55YiX6KGoID0gSlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55ZCN56ewID0gW11cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXSA9IGkgKyBcXFwiLlxcXCIgKyDmlofku7blpLnliJfooahbaV0uZmlsZU5hbWVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF0gPSBcXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aS55YiX6KGoaWQgPSBcXFwiMFxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg54m55q6KaWQgPSBcXFwiXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDluJblrZBpZCA9IFxcXCJcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBJUEZT5a+G6ZKlLCDmoIfpopgsIGlkLCDmlofku7bmoLzlvI8sIOaWh+S7tuWkuWlkLCBmaWxlVHlwZSlcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuWIoOmZpFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKElQRlPlr4bpkqUsIGlkKSA9PiB7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOivt+axguWIoOmZpOmTvuaOpSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkZmlsZS92MS9tb3ZlLXRvLXRyYXNoXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDlpLTpg6ggPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiQXV0aG9yaXphdGlvblxcXCI6IFxcXCJCZWFyZXIgXFxcIiArIElQRlPlr4bpkqVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJmaWxlSWRzXFxcIjpbXFxcImAgKyBpZCArIGBcXFwiXX1gXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Qo6K+35rGC5Yig6Zmk6ZO+5o6lLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgSVBGU+WvhumSpSwgaWQpXFxuICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogc3RvcmFnZTAuZ2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcImF2YXRhclxcXCIpXFxuICAgICAgICAgICAgfSk7XFxuXFxuXFxuXFxuXFxuICAgICAgICB9XFxuXFxuXFxuXFxuXFxuICAgIH1cXG4gICAgaWYgKHN0b3JhZ2UwLmdldEl0ZW0oXFxcIuaWh+S7tuagt+W8j1xcXCIpID09IFxcXCLmvKvnlLvmqKHlvI9cXFwiKVxcbiAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwi5paH5Lu25qC35byPXFxcIiwgXFxcIuWIl+ihqOaooeW8j1xcXCIpO1xcblxcbn0gY2F0Y2ggKGUpIHtcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBcXFwiPHN0cm9uZz48Zm9udCBjb2xvcj0nIzFFOTBGRic+5Y676K6+572u5re75Yqg6LSm5Y+354S25ZCO5rWP6KeI6Ieq5bex5LqR55uY5paH5Lu25piv5ZCm5pyJ6Zeu6aKY5YaN5pON5L2c5YW25LuW5Yqf6IO9IOS4jeeEtuaKpemUmeaQnuW+l+S9oOi9sOmahumahjwvZnJvbnQ+PC9zdHJvbmc+XFxcIixcXG4gICAgICAgIGNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIlxcbiAgICB9KTtcXG5cXG5cXG4gICAgbG9nKGUubWVzc2FnZSlcXG59XFxuXFxuXFxuXFxuXFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9XFxcXFxcXCIjYWFhYWFhXFxcXFxcXCI+6buY6K6k5Lya6Ieq5Yqo57yT5a2Y5paH5Lu25YiX6KGo77yM5aaC6ZyA5Yi35paw6K+354K55oiR5oiW5LiL5ouJ5Yi35pawPC9mb250Pjwvc21hbGw+XFxcIixcXG4gICAgICAgIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICB9KSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCIsXFxuICAgICAgICBkZXNjOiBcXFwiXFxcIixcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgICAgICB9XFxuICAgIH0pO1xcbn1cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLnrqHnkIbotKblj7dcIixcInBhdGhcIjpcIueuoeeQhui0puWPt1wiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5sZXQg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlID0gSlNPTi5wYXJzZShyZWFkRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCAwKSB8fCAnW10nKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+WQjeensCcsXFxuICAgIGRlc2M6ICflpIfms6jpmo/kvr/loasnLFxcbiAgICBjb2xfdHlwZTogJ2lucHV0JyxcXG4gICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHt9KSxcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ25hbWUnLCAnJyksXFxuICAgICAgICBvbkNoYW5nZTogJ3B1dE15VmFyKFxcXCJuYW1lXFxcIixpbnB1dCknXFxuICAgIH1cXG59KTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+i0puWPtyjlr4bpkqUpJyxcXG4gICAgZGVzYzogJ+W/hemhu+Whq+Wwj+m+meS6keebmOWvhumSpScsXFxuICAgIGNvbF90eXBlOiAnaW5wdXQnLFxcbiAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge30pLFxcbiAgICBleHRyYToge1xcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcigndXNlcmtleScsICcnKSxcXG4gICAgICAgIG9uQ2hhbmdlOiAncHV0TXlWYXIoXFxcInVzZXJrZXlcXFwiLGlucHV0KSdcXG4gICAgfVxcbn0pO1xcblxcblxcbmZ1bmN0aW9uIHNhdmVTdWIoKSB7XFxuICAgIGxldCBhX25hbWUgPSBnZXRNeVZhcignbmFtZScsICcnKS50cmltKCk7XFxuICAgIGxldCBhX3VzZXIgPSBnZXRNeVZhcigndXNlcmtleScsICcnKS50cmltKCk7XFxuXFxuXFxuXFxuICAgIGlmICghYV9uYW1lIHx8ICFhX3VzZXIpIHtcXG4gICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv6Hmga/kuI3lrozmlbQhJ1xcbiAgICB9XFxuXFxuXFxuICAgIGxldCDlsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcbiAgICBsZXQgaWRleCA9IOWwj+S6kem+meS6keebmOWvhumSpS5maW5kSW5kZXgoaXQgPT4gaXQubmFtZSA9PT0gYV9uYW1lKTtcXG4gICAgaWYgKGlkZXggPiAtMSkge1xcbiAgICAgICAgaWYgKOWwj+S6kem+meS6keebmOWvhumSpVtpZGV4XS51c2VyICE9PSBhX3VzZXIpIHtcXG5cXG4gICAgICAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqVbaWRleF0udXNlciA9IGFfdXNlcjtcXG4gICAgICAgICAgICByZXR1cm4gJCgn5qOA5rWL5Yiw5pys5Zyw5pyJ6YeN5aSN55qEJyArIGFfbmFtZSArICcs5piv5ZCm6KaG55uWPycpLmNvbmZpcm0oKOWwj+S6kem+meS6keebmOWvhumSpSkgPT4ge1xcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/kupHpvpnkupHnm5jlr4bpkqUpLCAwKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5L+d5a2YJ1xcbiAgICAgICAgICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSlcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ayoeacieaTjeS9nCdcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbnRyeSB7XFxu55m75b2V5pWw5o2uPeWwj+m+meS6keebmOeZu+W9lShhX3VzZXIpXFxu55u06ZO+5a+G6ZKlPeWwj+m+meS6keebmOebtOmTvuWvhumSpShhX3VzZXIpXFxuXFxu55So5oi35pWw5o2uPXtcXG4gICAgICAgICAgICBuYW1lOiBhX25hbWUsXFxuICAgICAgICAgICAgdXNlcjogYV91c2VyLFxcblxcXCLnm7Tpk77lr4bpkqVcXFwiOuebtOmTvuWvhumSpS5LZXksXFxuXFxcIuekvuS6pOeUqOaIt+WQjVxcXCI655m75b2V5pWw5o2uLm5pY2tuYW1lLFxcblxcXCLnpL7kuqTlpLTlg49DSURcXFwiOueZu+W9leaVsOaNri5pbWcsXFxuXFxcIuekvuS6pElEXFxcIjrnmbvlvZXmlbDmja4uaWRcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpS5wdXNoKOeUqOaIt+aVsOaNrik7XFxuXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwiY3VySXRlbVxcXCIs55So5oi35pWw5o2uKVxcblxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgcmV0dXJuICd0b2FzdDovL+WGjeS5sea3u+WKoO+8jOaIkeaNtuatu+S9oCdcXG59XFxuXFxuICAgICAgICBzYXZlRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/kupHpvpnkupHnm5jlr4bpkqUpLCAwKTtcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7Lkv53lrZgnXFxuICAgIH1cXG5cXG59XFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfmlrDlop7otKblj7cnLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCIsXFxuICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoc2F2ZVN1YikgPT4ge1xcbiAgICAgICAgbGV0IHRpcHMgPSBzYXZlU3ViKCk7XFxuICAgICAgICBjbGVhck15VmFyKFxcXCJuYW1lXFxcIik7XFxuICAgICAgICBjbGVhck15VmFyKFxcXCJ1c2Vya2V5XFxcIik7XFxuXFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiB0aXBzXFxuICAgIH0sIHNhdmVTdWIpXFxufSk7XFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfmm7TlpJrmk43kvZwnLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCIsXFxuICAgIHVybDogJChbXFxcIuS4gOmUruWIm+W7uui0puWPt1xcXCIsIFxcXCLkuIDplK7lr7zlh7rotKblj7dcXFwiXSwgMiwgJ+mcgOimgeS4gOmUruS7gOS5iOaTjeS9nO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLCBzYXZlU3ViKSA9PiB7XFxuXFxuICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIuS4gOmUruWIm+W7uui0puWPt1xcXCIpIHtcXG5cXG4gICAgICAgICAgICByZXR1cm4gJChcXFwiXFxcIiwgXFxcIuWkh+azqFxcXCIpLmlucHV0KChzYXZlU3ViKSA9PiB7XFxuXFxuICAgICAgICAgICAgICAgIOaWsOW7uuWvhumSpeivt+axgiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxL3VzZXIvcmVnaXN0ZXJcXFwiXFxuXFxuICAgICAgICAgICAgICAgIOWktOmDqCA9IHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJSZWZlcmVyXFxcIjogXFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJwZWVySWRcXFwiOlxcXCJcXFwifWBcXG5cXG4gICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjmlrDlu7rlr4bpkqXor7fmsYIsIHtcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICB9KVxcblxcblxcbiAgICAgICAgICAgICAgICDlr4bpkqUgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS50b2tlblxcblxcblxcbiAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwibmFtZVxcXCIsIGlucHV0KVxcbiAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwidXNlcmtleVxcXCIsIOWvhumSpSlcXG5cXG4gICAgICAgICAgICAgICAgbGV0IHRpcHMgPSBzYXZlU3ViKCk7XFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICByZXR1cm4gdGlwc1xcblxcblxcbiAgICAgICAgICAgIH0sIHNhdmVTdWIpXFxuXFxuICAgICAgICB9IGVsc2Uge1xcblxcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ov5jmsqHlgZonXFxuXFxuXFxuXFxuICAgICAgICB9XFxuXFxuXFxuICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSwgc2F2ZVN1YilcXG59KTtcXG5cXG5cXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqUuZm9yRWFjaCgoaXQsIGlkZXgpID0+IHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBpdC5uYW1lLFxcbiAgICAgICAgZGVzYzogaXQudXNlciArIChpdC5pc0xvY2FsID8gJ1xcXFxu5pys5Zyw5YiX6KGo5qih5byP77yM5YWx5pyJ5pys5Zyw5pWw5o2u5p2h5pWw77yaJyArIEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvY2FjaGUvJyArIGl0Lm5hbWUgKyAnLmpzb24nKSB8fCAnW10nKS5sZW5ndGggOiAnJyksXFxuICAgICAgICB1cmw6ICQoWyfnva7pobYnLCAn5Yig6ZmkJywgJ+S/ruaUueWkh+azqCcsICfkv67mlLnlr4bpkqUnLCAn5Zue5pS256uZJywgJ+W+heW8gOWPkSddLCAyLCAn6K+36YCJ5oupMeS4quaTjeS9nCcpLnNlbGVjdCgoaXQsIOWwj+S6kem+meS6keebmOWvhumSpSwgaWRleCkgPT4ge1xcbiAgICAgICAgICAgIGlmIChpbnB1dCA9PT0gJ+e9rumhticpIHtcXG4gICAgICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLnNwbGljZShpZGV4LCAxKTtcXG4gICAgICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLnVuc2hpZnQoaXQpO1xcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/kupHpvpnkupHnm5jlr4bpkqUpLCAwKTtcXG5cXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqfJ1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT09ICfliKDpmaQnKSB7XFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgcmV0dXJuICQoXFxcIlxcXCIsIFxcXCI0NysxNlxcXCIpLmlucHV0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUsaWRleCkgPT4ge1xcblxcbmlmKGlucHV0PT1cXFwiNjNcXFwiKXtcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIGxvZyhzdG9yYWdlMC5nZXRJdGVtKFxcXCJjdXJJdGVtXFxcIiwge30pKVxcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmFnZTAuZ2V0SXRlbShcXFwiY3VySXRlbVxcXCIsIHt9KS5uYW1lID09PSDlsI/kupHpvpnkupHnm5jlr4bpkqVbaWRleF0ubmFtZSkge1xcbiAgICAgICAgICAgICAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShcXFwiY3VySXRlbVxcXCIsIOWwj+S6kem+meS6keebmOWvhumSpVswXSk7XFxuICAgICAgICAgICAgICAgICAgICBjbGVhckl0ZW0o5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lkZXhdLm5hbWUpXFxuICAgICAgICAgICAgICAgICAgICBcXG5cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqUuc3BsaWNlKGlkZXgsIDEpO1xcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/kupHpvpnkupHnm5jlr4bpkqUpLCAwKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5Yig6Zmk5oiQ5YqfJ1xcbn1cXG5yZXR1cm4gJ3RvYXN0Oi8v5Y+W5raI5Yig6ZmkJ1xcblxcbn0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkZXgpXFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT09ICfkv67mlLnlpIfms6gnKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiAkKGl0Lm5hbWUsICfnu5nmraTotKblj7fmlLnkuKrlkI3lrZflkKcnKS5pbnB1dCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLCBpZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGlucHV0LnRyaW0oKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpVtpZGV4XS5uYW1lID0gaW5wdXQ7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSwgMCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip8nXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv67mlLnlpLHotKUnXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSwgaWRleCk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gJ+S/ruaUueWvhumSpScpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICQoaXQudXNlciwgJ+aWsOWvhumSpeaYr+WkmuWwkT8nKS5pbnB1dCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLCBpZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGlucHV0LnRyaW0oKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpVtpZGV4XS51c2VyID0gaW5wdXQ7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSwgMCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip8nXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv67mlLnlpLHotKUnXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSwgaWRleCk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gJ+WbnuaUtuermScpIHtcXG4gICAgICAgICAgICAgICAgbG9nKOWwj+S6kem+meS6keebmOWvhumSpSlcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2Uv5Zue5pS256uZP3Rva2VuPScgKyDlsI/kupHpvpnkupHnm5jlr4bpkqVbaWRleF0udXNlclxcblxcblxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT09ICfmlbDmja7lpIfku70nKSB7XFxuXFxuXFxu5aSH5Lu95paH5Lu25ZCNPVxcXCLlsI/pvpnkupHnm5jotKblj7fmgLvlpIfku70oXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVbaWRleF0ubmFtZStcXFwiKVxcXCJcXG5cXG7lrZjlk6rph4w9J2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7YvJyvlpIfku73mlofku7blkI0rJy8nXFxuXFxucmV0dXJuICQo5aSH5Lu95paH5Lu25ZCNLCBcXFwi5aSH5Lu95paH5Lu25ZCNXFxcIikuaW5wdXQoKOWwj+S6kem+meS6keebmOWvhumSpSxpZGV4LOWtmOWTqumHjCkgPT4ge1xcblxcblxcbuaWh+S7tui3r+W+hD1cXFwiMFxcXCJcXG5sb2co5a2Y5ZOq6YeMKVxcblxcblxcblxcbiAgICAgICAgICAgICAgICDor7fmsYLlj5jph49hID0gXFxcIi9jbG91ZGZpbGUvdjEvZm9sZGVyc1xcXCJcXG4gICAgICAgICAgICAgICAg6K+35rGC5Y+Y6YePYiA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZpbGVzXFxcIlxcbiAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJmaWxlTmFtZVxcXCI6XFxcIlxcXCIsXFxcInNvcnRGbGFnXFxcIjpcXFwibmFtZVxcXCIsXFxcInNvcnRUeXBlXFxcIjpcXFwiYXNjXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxuXFxu5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPeWwj+S6kem+meS6keebmOWvhumSpVtpZGV4XS51c2VyXFxuSVBGU+WvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVcXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIOWwj+m+meS6keivt+axgmEgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49hXFxuICAgICAgICAgICAgICAgIOesrOS4gOasoeWTjeW6lCA9IHBvc3Qo5bCP6b6Z5LqR6K+35rGCYSwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgICAgIOWwj+m+meS6keivt+axgmIgPSBcXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbVxcXCIgKyDor7fmsYLlj5jph49iXFxuICAgICAgICAgICAgICAgIOesrOS6jOasoeWTjeW6lCA9IHBvc3Qo5bCP6b6Z5LqR6K+35rGCYiwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog5aS06YOoLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keTog6Lqr5L2TXFxuICAgICAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWkueWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahhID0gSlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEuZGF0YVxcbiAgICAgICAgICAgICAgICAvL+WIl+ihqGHmmK/mlofku7bliJfooahcXG4gICAgICAgICAgICAgICAg5YiX6KGoYiA9IEpTT04ucGFyc2Uo56ys5LqM5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG5cXG7lrZjmlL7ot6/lvoQ9XFxcIjBcXFwiXFxu5paH5Lu25aS55ZCNPVxcXCLmoLnnm67lvZVcXFwiXFxuICAgIFxcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbiAgICBcXG5yZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjmlL7ot6/lvoQs5a2Y5ZOq6YeMKVxcblxcblxcblxcblxcbuaWh+S7tuaVsOe7hD1bXVxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGIpIHtcXG4gICAgICAgIOaWh+S7tuWQjT3liJfooahiW2ldLmZpbGVOYW1lXFxuICAgICAgICDmlofku7bmoLzlvI895YiX6KGoYltpXS5maWxlVHlwZVxcbiAgICAgICAg5paH5Lu2Q0lEPeWIl+ihqGJbaV0uZmlsZUNpZFxcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqGJbaV0uZmlsZVNpemVcXG4gICAgICAgIGpzb27mlbDmja49e1xcXCLmlofku7blkI1cXFwiOuaWh+S7tuWQjSxcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuagvOW8j1xcXCI65paH5Lu25qC85byPLFxcXCLmlofku7blpKflsI9cXFwiOuaWh+S7tuWkp+Wwj31cXG4gICAgICAgIOaWh+S7tuaVsOe7hFtpXT1qc29u5pWw5o2uXFxuICAgICAgICBcXG4gICAgfVxcbiAgICDmlofku7blpLnmlbDnu4Q9W11cXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahhKSB7XFxuICAgICAgICDmlofku7blpLnmlbDnu4RbaV095YiX6KGoYVtpXS5maWxlTmFtZVxcbiAgICB9XFxuICAgIFxcblxcblxcblxcblxcblxcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIizliJfooahhKVxcbuaWh+S7tuWkueWIl+ihqD3liJfooahhXFxuXFxu5paH5Lu25YiX6KGoPeWIl+ihqGJcXG5cXG5kYXRhPVtdXFxuXFxuZGF0YeWPmOmHjz0wXFxuZGF0YVtkYXRh5Y+Y6YePXT1kYXRhW2RhdGHlj5jph49dPUpTT04ucGFyc2UoYHtcXFwi5aSH5Lu95pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi6Lev5b6EXFxcIjpcXFwiYCvmlofku7bot6/lvoQrYFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7blpLnmlbDnu4QpK2AsXFxcIuaWh+S7tlxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7bmlbDnu4QpK2B9YClcXG5cXG5cXG5cXG7ot6/lvoTlsYLnuqflj5jph489MFxcblxcblxcbmZvciAodmFyIGkgaW4gc3RvcmFnZTAuZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiKSkge1xcblxcblxcblxcblxcblxcblxcbuaWh+S7tuWkueWQjT1zdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpW2ldLmZpbGVOYW1lXFxu5paH5Lu25aS5aWQ9c3RvcmFnZTAuZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiKVtpXS5pZFxcblxcbuaWh+S7tui3r+W+hD3mlofku7bot6/lvoQrXFxcIj5cXFwiK+aWh+S7tuWkueWQjVxcbnNob3dMb2FkaW5nKCfmraPlnKjlpIfku706Jyvmlofku7bot6/lvoQpXFxuXFxuICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcImZpbGVOYW1lXFxcIjpcXFwiXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJuYW1lXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJhc2NcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS5aWQrYFxcXCJ9YFxcblxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG4gICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJhLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2JcXG4gICAgICAgICAgICAgICAg56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25aS55YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGEgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahiID0gSlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcblxcbuaWh+S7tuaVsOe7hD1bXVxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGIpIHtcXG4gICAgICAgIOaWh+S7tuWQjT3liJfooahiW2ldLmZpbGVOYW1lXFxuICAgICAgICDmlofku7bmoLzlvI895YiX6KGoYltpXS5maWxlVHlwZVxcbiAgICAgICAg5paH5Lu2Q0lEPeWIl+ihqGJbaV0uZmlsZUNpZFxcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqGJbaV0uZmlsZVNpemVcXG4gICAgICAgIGpzb27mlbDmja49e1xcXCLmlofku7blkI1cXFwiOuaWh+S7tuWQjSxcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuagvOW8j1xcXCI65paH5Lu25qC85byPLFxcXCLmlofku7blpKflsI9cXFwiOuaWh+S7tuWkp+Wwj31cXG4gICAgICAgIOaWh+S7tuaVsOe7hFtpXT1qc29u5pWw5o2uXFxuICAgICAgICBcXG4gICAgfVxcbiAgICDmlofku7blpLnmlbDnu4Q9W11cXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahhKSB7XFxuICAgICAgICDmlofku7blpLnmlbDnu4RbaV095YiX6KGoYVtpXS5maWxlTmFtZVxcbiAgICB9XFxuICAgIFxcblxcblxcblxcblxcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIizliJfooahhKVxcbuaWh+S7tuWIl+ihqD3liJfooahiXFxuXFxuXFxuZGF0YeWPmOmHjysrXFxuZGF0YVtkYXRh5Y+Y6YePXT1KU09OLnBhcnNlKGB7XFxcIuWkh+S7veaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIui3r+W+hFxcXCI6XFxcImAr5paH5Lu26Lev5b6EK2BcXFwiLFxcXCLmlofku7blpLlcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25aS55pWw57uEKStgLFxcXCLmlofku7ZcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25pWw57uEKStgfWApXFxuXFxuXFxuXFxuXFxuXFxuaWYo5YiX6KGoYS5sZW5ndGg8MSkge1xcblxcbui3r+W+hOWIh+WJsj3mlofku7bot6/lvoQuc3BsaXQoXFxcIj5cXFwiKVxcblxcblxcbui3r+W+hOWIh+WJsi5zcGxpY2Uo6Lev5b6E5YiH5YmyLmxlbmd0aC0xLDEpXFxuXFxu5paH5Lu26Lev5b6EPei3r+W+hOWIh+WJsi5qb2luKCc+JylcXG5cXG5cXG5cXG5cXG5jb250aW51ZTtcXG59ZWxzZXtcXG7ot6/lvoTlsYLnuqflj5jph48rK1xcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5b6q546v5aSH5Lu9JykpLnJ1bGUpXFxuXFxu6Lev5b6E5YiH5YmyPeaWh+S7tui3r+W+hC5zcGxpdChcXFwiPlxcXCIpXFxu6Lev5b6E5YiH5YmyLnNwbGljZSjot6/lvoTliIflibIubGVuZ3RoLTEsMSlcXG5cXG7mlofku7bot6/lvoQ96Lev5b6E5YiH5YmyLmpvaW4oJz4nKVxcblxcbn1cXG5cXG59XFxuXFxu6LSm5Y+35aSH5Lu95pWw5o2uPWB7XFxcIuWkh+S7veaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIuexu+Wei1xcXCI6XFxcIui0puWPt+Wkh+S7vVxcXCIsXFxcImRhdGFcXFwiOmArSlNPTi5zdHJpbmdpZnkoZGF0YSkrYH1gXFxuXFxu5bCP6b6Z5LqR55uY5aSH5Lu95paH5Lu2PVxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAvXFxcIivlpIfku73mlofku7blkI0rXFxcIi5qc29uXFxcIlxcblxcbiAgc2F2ZUZpbGUo5bCP6b6Z5LqR55uY5aSH5Lu95paH5Lu2LCDotKblj7flpIfku73mlbDmja4sIDApO1xcblxcblxcbmxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbuWwj+m+meS6keebmOWkh+S7veebruW9lS5wdXNoKOWwj+m+meS6keebmOWkh+S7veaWh+S7tilcXG7lsI/pvpnkupHnm5jlpIfku73nm67lvZU95pWw57uE5Y676YeNKOWwj+m+meS6keebmOWkh+S7veebruW9lSlcXG5cXG5zYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSwgMCk7XFxuXFxuXFxuXFxuXFxuXFxuaGlkZUxvYWRpbmcoKVxcblxcblxcbnJldHVybiAndG9hc3Q6Ly/lpIfku73miJDlip8nXFxuXFxuXFxuXFxufSzlsI/kupHpvpnkupHnm5jlr4bpkqUsaWRleCzlrZjlk6rph4wpXFxuXFxuXFxuXFxuXFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgfSwgaXQsIOWwj+S6kem+meS6keebmOWvhumSpSwgaWRleCksXFxuICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfMVxcXCIsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGlkZXg6IGlkZXggKyAnJ1xcbiAgICAgICAgfVxcbiAgICB9KVxcbn0pO1xcblxcblxcblxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5a6Y5pa56LWE5rqQLeWvu+aJvui1hOa6kFwiLFwicGF0aFwiOlwi5a+75om+6LWE5rqQXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lm77moIcnKSkucnVsZSlcXG5cXG5cXG5pZighc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuekvuS6pElEKXtcXG5sb2coXFxcIuS4jeWtmOWcqGlkXFxcIilcXG7nmbvlvZXmlbDmja495bCP6b6Z5LqR55uY55m75b2VKHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyKVxcblxcbmxvZyjnmbvlvZXmlbDmja4ubmlja25hbWUpXFxuXFxu56S+5Lqk5pWw5o2uPXtcXFwi56S+5Lqk55So5oi35ZCNXFxcIjrnmbvlvZXmlbDmja4ubmlja25hbWUsXFxcIuekvuS6pOWktOWDj0NJRFxcXCI655m75b2V5pWw5o2uLmltZyxcXFwi56S+5LqkSURcXFwiOueZu+W9leaVsOaNri5pZH1cXG5cXG5sb2co56S+5Lqk5pWw5o2uKVxcbmxldCDlsI/pvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICDmn6Xmib7kvY3nva4gPSDlsI/pvpnkupHnm5jlr4bpkqUuZmluZEluZGV4KGl0ID0+IGl0LnVzZXIgPT09IHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyKTtcXG5cXG7lsI/pvpnkupHnm5jlr4bpkqVb5p+l5om+5L2N572uXT1PYmplY3QuYXNzaWduKOWwj+m+meS6keebmOWvhumSpVvmn6Xmib7kvY3nva5dLOekvuS6pOaVsOaNrilcXG5cXG5cXG5cXG5cXG5zdG9yYWdlMC5zZXRJdGVtKCdjdXJJdGVtJyzlsI/pvpnkupHnm5jlr4bpkqVb5p+l5om+5L2N572uXSlcXG5cXG5zYXZlRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlr4bpkqUpLCAwKTtcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgIHRvYXN0KFxcXCLpppbmrKHojrflj5bnpL7kuqTkv6Hmga/miJDlip9cXFwiKVxcbn0gXFxuXFxuaWYoIXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS7nm7Tpk77lr4bpkqUpe1xcblxcbmxvZyhcXFwi5LiN5a2Y5Zyo55u06ZO+5a+G6ZKlXFxcIilcXG7nm7Tpk77lr4bpkqU95bCP6b6Z5LqR55uY55u06ZO+5a+G6ZKlKHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyKVxcblxcbuebtOmTvuWvhumSpT17XFxcIuebtOmTvuWvhumSpVxcXCI655u06ZO+5a+G6ZKlLktleX1cXG5cXG5sb2co55u06ZO+5a+G6ZKlKVxcbmxldCDlsI/pvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbiAgICDmn6Xmib7kvY3nva4gPSDlsI/pvpnkupHnm5jlr4bpkqUuZmluZEluZGV4KGl0ID0+IGl0LnVzZXIgPT09IHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyKTtcXG5cXG7lsI/pvpnkupHnm5jlr4bpkqVb5p+l5om+5L2N572uXT1PYmplY3QuYXNzaWduKOWwj+m+meS6keebmOWvhumSpVvmn6Xmib7kvY3nva5dLOebtOmTvuWvhumSpSlcXG5cXG5cXG5cXG5cXG5zdG9yYWdlMC5zZXRJdGVtKCdjdXJJdGVtJyzlsI/pvpnkupHnm5jlr4bpkqVb5p+l5om+5L2N572uXSlcXG5cXG5zYXZlRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlr4bpkqUpLCAwKTtcXG4gICAgICAgIHRvYXN0KFxcXCLpppbmrKHojrflj5bnm7Tpk77lr4bpkqXmiJDlip9cXFwiKVxcblxcblxcblxcblxcbn1cXG5cXG5cXG5sZXQgcGFnZSA9IE51bWJlcihnZXRNeVZhcihcXFwicGFnZVxcXCIsIFxcXCIwXFxcIikpICsgTVlfUEFHRTtcXG5cXG5JUEZT5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxuXFxu5YiG57G7aWQ9Z2V0TXlWYXIoXFxcIklQRlPlrpjmlrnotYTmupDmnb/lnZdpZFxcXCIsIFxcXCIxXFxcIilcXG5cXG5pZihwYWdlPT0xKXtcXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOnN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS7npL7kuqTnlKjmiLflkI0sXFxucGljX3VybDpcXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIrc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuekvuS6pOWktOWDj0NJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG51cmw6XFxcImhpa2VyOi8vcGFnZS/lj5HluJborrDlvZU/cGFnZT1meXBhZ2VcXFwiKyAnI2ltbWVyc2l2ZVRoZW1lIycsXFxuZXh0cmE6e2lkOnN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS7npL7kuqRJRH0sXFxuY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiXFxufSlcXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOlxcXCLlj5HluJZcXFwiLFxcbnBpY191cmw65a6Y5pa56LWE5rqQ6aaW6aG15Y+R5biW5Zu+5qCHLFxcbmNvbF90eXBlOiBcXFwiaWNvbl9yb3VuZF9zbWFsbF80XFxcIlxcbn0pXFxuXFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi5pS26JePXFxcIixcXG5waWNfdXJsOuWumOaWuei1hOa6kOmmlumhteaUtuiXj+WbvuaghyxcXG5jb2xfdHlwZTogXFxcImljb25fcm91bmRfc21hbGxfNFxcXCJcXG59KVxcblxcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5pCc57SiXFxcIixcXG4gICAgcGljX3VybDrlrpjmlrnotYTmupDpppbpobXmkJzntKLlm77moIcsXFxuICAgIGNvbF90eXBlOiBcXFwiaWNvbl9yb3VuZF9zbWFsbF80XFxcIixcXG4gICAgdXJsOiAkKFxcXCJcXFwiLFxcXCLmkJzntKLlhbPplK7or41cXFwiKS5pbnB1dCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwi5pCc57Si5YWz6ZSu6K+NXFxcIixpbnB1dClcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mkJzntKI6JytpbnB1dFxcbiAgICAgICAgICAgICAgICB9KVxcbn0pXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLmnb/lnZdcXFwiLFxcbiAgIHBpY191cmw65a6Y5pa56LWE5rqQ6aaW6aG15p2/5Z2X5Zu+5qCHLFxcbiAgICBjb2xfdHlwZTogXFxcImljb25fcm91bmRfc21hbGxfNFxcXCIsXFxuICAgIHVybDogJChbXFxcIuaOqOiNkFxcXCIsXFxcIuWPjemmiFxcXCIsXFxcIuW9seinhlxcXCIsXFxcIuWoseS5kFxcXCIsXFxcIuWFtuS7llxcXCIsXFxcIuaxgueJh1xcXCJdLCAyLCfpnIDopoHlnKjlk6rph4zmib7otYTmupDvvJ8nKS5zZWxlY3QoKCkgPT4ge1xcblxcblxcbmlmKGlucHV0PT1cXFwi5o6o6I2QXFxcIikgcHV0TXlWYXIoXFxcIklQRlPlrpjmlrnotYTmupDmnb/lnZdpZFxcXCIsIFxcXCIxXFxcIilcXG5lbHNlIGlmKGlucHV0PT1cXFwi5Y+N6aaIXFxcIikgcHV0TXlWYXIoXFxcIklQRlPlrpjmlrnotYTmupDmnb/lnZdpZFxcXCIsIFxcXCI4XFxcIilcXG5lbHNlIGlmKGlucHV0PT1cXFwi5b2x6KeGXFxcIikgcHV0TXlWYXIoXFxcIklQRlPlrpjmlrnotYTmupDmnb/lnZdpZFxcXCIsIFxcXCIyXFxcIilcXG5lbHNlIGlmKGlucHV0PT1cXFwi5aix5LmQXFxcIikgcHV0TXlWYXIoXFxcIklQRlPlrpjmlrnotYTmupDmnb/lnZdpZFxcXCIsIFxcXCIzXFxcIilcXG5lbHNlIGlmKGlucHV0PT1cXFwi5YW25LuWXFxcIikgcHV0TXlWYXIoXFxcIklQRlPlrpjmlrnotYTmupDmnb/lnZdpZFxcXCIsIFxcXCI3XFxcIilcXG5lbHNlIGlmKGlucHV0PT1cXFwi5rGC54mHXFxcIikgcHV0TXlWYXIoXFxcIklQRlPlrpjmlrnotYTmupDmnb/lnZdpZFxcXCIsIFxcXCI2XFxcIilcXG5cXG5cXG5yZWZyZXNoUGFnZSgpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/liIfmjaLmiJDlip9cXFwiXFxuXFxufSlcXG59KVxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG7lsI/pvpnkupHor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWQtcmVzb3VyY2UvdjEvYXJ0aWNsZXNcXFwiXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxu6Lqr5L2TPWB7XFxuICBcXFwicHVibGlzaE1vZGVcXFwiOiAwLFxcbiAgXFxcInBhZ2VTaXplXFxcIjogMTAsXFxuICBcXFwiY29sbGVjdFNvcnRUeXBlXFxcIjogMCxcXG4gIFxcXCJ0aXRsZVxcXCI6IFxcXCJgK2dldE15VmFyKFxcXCLmkJzntKLlhbPplK7or41cXFwiLFxcXCJcXFwiKStgXFxcIixcXG4gIFxcXCJ1c2VyTmFtZVxcXCI6IFxcXCJcXFwiLFxcbiAgXFxcInVzZXJJZFxcXCI6IFxcXCIrc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuekvuS6pElEK1xcXCIsXFxuICBcXFwicGFnZU51bVxcXCI6IGArcGFnZStgLFxcbiAgXFxcInB1Ymxpc2hTb3J0VHlwZVxcXCI6IDAsXFxuICBcXFwiY29tbWVudFNvcnRUeXBlXFxcIjogMCxcXG4gIFxcXCJjbGlja1NvcnRUeXBlXFxcIjogMCxcXG4gIFxcXCJsaWtlU29ydFR5cGVcXFwiOiAwLFxcbiAgXFxcImRvd25sb2FkU29ydFR5cGVcXFwiOiAwLFxcbiAgXFxcImNhdGVnb3J5SWRcXFwiOiBgK+WIhuexu2lkK2BcXG59YFxcblxcblxcblxcblxcblxcblxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitJUEZT5a+G6ZKlXFxufVxcblxcblxcblxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOWwj+m+meS6keivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5cXG5cXG7liJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcbmlmKOWIl+ihqC5sZW5ndGg+MClcXG5mb3IgKHZhciBpIGluIOWIl+ihqCkge1xcbiAgICAgICAg5qCH6aKYPeWIl+ihqFtpXS50aXRsZVxcbiAgICAgICAg5YaF5a65PeWIl+ihqFtpXS5jb250ZW50XFxuICAgICAgICBpZD3liJfooahbaV0uaWRcXG4gICAgICAgIOWPkeW4luS6uj3liJfooahbaV0uYXV0aG9yLm5pY2tuYW1lXFxuICAgICAgICDlj5HluJbkurppZD3liJfooahbaV0uYXV0aG9yLmlkXFxuICAgICAgICDlj5HluJbkurrlpLTlg49pZD3liJfooahbaV0uYXV0aG9yLmltZ1xcbiAgICAgICAg5Y+R5biW5pe26Ze0PXRpbWVzdGFtcFRvVGltZSjliJfooahbaV0ucHRpbWUpXFxuICAgICAgICDmtY/op4jph4895YiX6KGoW2ldLnNob3dOdW1cXG4gICAgICAgIOWbnuWkjemHjz3liJfooahbaV0uY29tbWVudE51bVxcbiAgICAgICAg54K56LWe6YePPeWIl+ihqFtpXS5saWtlTnVtXFxuICAgICAgICDovazlrZjph4895YiX6KGoW2ldLmRvd25sb2FkTnVtXFxuICAgICAgICDlm77niYfph4895YiX6KGoW2ldLmltYWdlcy5sZW5ndGhcXG5cXG4gICAgXFxu5Y675bm/5ZGK5q2j5YiZPS8o6LWa6ZKxfOWFvOiBjHzliqDpgJ/lmah8dnBufOmCgOivt+eggXzml6Dlub/lkYopL2lcXG5pZijljrvlub/lkYrmraPliJkudGVzdCjlhoXlrrkpPT1mYWxzZSl7ICAgICAgXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgrYFxcXFxu4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0nIzc1NzU3NSc+YCvlhoXlrrkucmVwbGFjZSjmoIfpopgsJycpLnJlcGxhY2UoL1xcXFxzL2csJycpK2A8L2Zyb250Pjwvc3Ryb25nPmAsXFxucGljX3VybDpcXFwiaHR0cHM6Ly9zdGF0aWMubXlwaWtwYWsuY29tLzhjM2MxMTQ4NjA0OWIxNzQzNDUyNjIzNmE3ZWQ2NTc4NzdiODZhYTNAUmVmZXJlcj1cXFwiLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+W4luWtkOS6jOe6p1xcXCIsXFxuZGVzYzon5rWP6KeI6YePOicr5rWP6KeI6YePKycg5Zue5aSN6YePOicr5Zue5aSN6YePKycg6L2s5a2Y6YePOicr6L2s5a2Y6YePKycg5Zu+54mH6YePOicr5Zu+54mH6YePLFxcbmV4dHJhOntpZDppZH0sXFxuY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiXFxufSk7XFxuXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrlj5HluJbkurosXFxucGljX3VybDpcXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5Y+R5biW5Lq65aS05YOPaWQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxudXJsOlxcXCJoaWtlcjovL3BhZ2Uv5Y+R5biW6K6w5b2VP3BhZ2U9ZnlwYWdlXFxcIisgJyNpbW1lcnNpdmVUaGVtZSMnLFxcbmRlc2M6XFxcIiDlj5HluJbml7bpl7Q6XFxcIivlj5HluJbml7bpl7QsXFxuY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLGV4dHJhOiB7aWQ65Y+R5biW5Lq6aWQsbG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5ouJ6buRXFxcIiwganM6ICQudG9TdHJpbmcoKOWPkeW4luS6umlkKT0+e1xcblxcbmlmKHN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS7npL7kuqRJRD095Y+R5biW5Lq6aWQpIHJldHVybiBcXFwidG9hc3Q6Ly/oh6rlt7Hmi4npu5Hoh6rlt7HvvJ9cXFwiXFxuXFxu5ouJ6buR6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkLXJlc291cmNlL3YxL2FkZC1ibGFja2xpc3RcXFwiXFxuXFxu5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxuXFxuXFxu6Lqr5L2TPWB7XFxcInVzZXJJZFxcXCI6XFxcIjUzNzUxMjk4OTgxMzY0MTIxNlxcXCIsXFxcInJlZnVzZVVzZXJJZHNcXFwiOltcXFwiYCvlj5HluJbkurppZCtgXFxcIl19YFxcblxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOaLiem7keivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+W3suaLiem7kVxcXCJcXG4gICAgXFxuICB9LOWPkeW4luS6umlkKVxcbn1dfX0pO1xcblxcbmQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxuICAgIH0pO1xcblxcbn1cXG4gXFxuXFxufVxcbmVsc2Uge2NsZWFyTXlWYXIoJ+aQnOe0ouWFs+mUruivjScpO1xcbmQucHVzaCh7XFxudGl0bGU6XFxcIuKAnOKAnOS7peS4iuS4uuWFqOmDqOaQnOe0oue7k+aenO+8jOS4iuaLieWwhuaYvuekuuaOqOiNkOi1hOa6kOKAneKAnVxcXCIsXFxudXJsOlxcXCJ0b2FzdDovL+eCueaIkeaIkeayoeaciVxcXCIsXFxuY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbn0pO1xcbn1cXG5cXG5cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlrpjmlrnotYTmupAt5biW5a2Q5LqM57qnXCIsXCJwYXRoXCI6XCLluJblrZDkuoznuqdcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcbmlkPU1ZX1BBUkFNUy5pZFxcblxcbklQRlPlr4bpkqU9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG5cXG5cXG5cXG5cXG7lsI/pvpnkupHor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuNC9jbG91ZC1yZXNvdXJjZXMvZ2V0U2luZ2xlQnlJZFxcXCJcXG5cXG5cXG7ouqvkvZM9YHtcXFwiaWRcXFwiOmAraWQrYH1gXFxuXFxuXFxuXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuXFxuXFxuXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo5bCP6b6Z5LqR6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbmRhdGE9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG7mlofku7bliJfooag9ZGF0YS5hdHRhY2htZW50c1xcblxcblxcbnVzZXJpZD1kYXRhLnVzZXJJZFxcblxcbuW4luWtkGlkPWRhdGEuaWRcXG5cXG5cXG5sZXQg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlID0gSlNPTi5wYXJzZShyZWFkRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5mb3IgKHZhciBpIGluIOaWh+S7tuWIl+ihqCkge1xcbiAgICAgICAg5qCH6aKYPeaWh+S7tuWIl+ihqFtpXS5maWxlTmFtZVxcbiAgICAgICAgaWQ95paH5Lu25YiX6KGoW2ldLmlkXFxuICAgICAgICDmlofku7blpKflsI895paH5Lu25YiX6KGoW2ldLmZpbGVTaXplXFxuICAgICAgICDnibnmroppZD3mlofku7bliJfooahbaV0uc25hcHNob3RJZFxcbiAgICAgICAg6L2s5a2Y6YePPeaWh+S7tuWIl+ihqFtpXS5zYXZlTnVtXFxubG9nKOaWh+S7tuWkp+WwjylcXG5pZijmlofku7blpKflsI89PTApe1xcbmQucHVzaCh7XFxudGl0bGU65qCH6aKYLFxcbnBpY191cmw65paH5Lu25aS55Zu+5qCHLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+aWh+S7tuWkuVxcXCIsXFxuZGVzYzpcXFwi6L2s5a2Y6YePOlxcXCIr6L2s5a2Y6YePLFxcblxcbmNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIiwgZXh0cmE6IHsg5paH5Lu25aS5aWQ6aWQsdXNlcmlkOnVzZXJpZCzpnIDopoHnlKjmiLdpZDpcXFwi6ZyA6KaBXFxcIixsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLlrZjoh7PnvZHnm5hcXFwiLCBqczogJC50b1N0cmluZygo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZCznibnmroppZCzluJblrZBpZCk9PntcXG4gICAgICAgIGxvZyjlsI/kupHpvpnkupHnm5jlr4bpkqUpXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZCznibnmroppZCzluJblrZBpZCkgPT4ge1xcbiAgICAgICAgICAgIGxvZyjnibnmroppZClcXG4gICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPeWwj+S6kem+meS6keebmOWvhumSpVtpbnB1dC5tYXRjaCgvXFxcXGQvKVswXV0udXNlclxcbuivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxcInBhcmVudElkXFxcIjpcXFwiMFxcXCJ9YFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlofku7blpLnliJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG7mlofku7blpLnlkI3np7A9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5paH5Lu25aS55YiX6KGoKSB7XFxuICAgICAgICAgICDmlofku7blpLnlkI3np7BbaV09aSvmlofku7blpLnliJfooahbaV0uZmlsZU5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewW+aWh+S7tuWkueWQjeensC5sZW5ndGhdPVxcXCLliqDlhaXmraTlpIRcXFwiXFxuICAgICAgICDmlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mHjeWkjeivt+axguaWh+S7tuWkuScpKS5ydWxlKVxcblxcbmxvZyjph43lpI3or7fmsYLmlofku7blpLkpXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5XFxuXFxuICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQs54m55q6KaWQs5biW5a2QaWQpXFxuXFxuICAgICAgICBcXG4gICAgICAgIH0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZCznibnmroppZCzluJblrZBpZCl9XSB9XFxufSk7XFxufWVsc2V7XFxuXFxu5paH5Lu25qC85byPPeaWh+S7tuWIl+ihqFtpXS5zdWZmaXhcXG7mlofku7ZDSUQ95paH5Lu25YiX6KGoW2ldLmZpbGVDaWRcXG5cXG5sb2co5qCH6aKYKVxcblxcbmlmKC8oanBnfGdpZnxwbmd8anBlZykkL2kudGVzdCjmoIfpopgpKXtcXG5cXG7moLzlvI89XFxcIiMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcbuWbvueJhz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxuXFxufWVsc2UgaWYoL1xcXFwuKGF2aXx0c3xtcDR8bW92fG00dnwzZ3B8cm18cm12Ynx3bXZ8YXNmfGFzeGF2aXxkYXR8bWt2fGZsdnx2b2IpJC9pLnRlc3Qo5qCH6aKYKSl7XFxu5Zu+54mHPeinhumikeaWh+S7tuWbvuagh1xcbuagvOW8jz1cXFwiI2lzVmlkZW89dHJ1ZSM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG59ZWxzZSBpZigvKG1wMykkL2kudGVzdCjmoIfpopgpKXtcXG5cXG7moLzlvI89XFxcIiMubXAzO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxu5Zu+54mHPemfs+S5kOaWh+S7tuWbvuagh1xcblxcbn1lbHNle1xcbuagvOW8jz1cXFwiO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxu5Zu+54mHPeWFtuS7luaWh+S7tuWbvuagh1xcbn1cXG5cXG7pk77mjqU9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCvmoLzlvI9cXG5cXG5kLnB1c2goe1xcbnRpdGxlOuagh+mimCxcXG5waWNfdXJsOuWbvueJhyxcXG51cmw65paH5Lu2Q0lEK1xcXCImJlxcXCIr5qCH6aKYK0NJROmTvuaOpeino+aekCxcXG4vL3VybDrmoLzlvI89PVxcXCI7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCI/XFxcImRvd25sb2FkOi8vXFxcIivpk77mjqU66ZO+5o6lLFxcbmRlc2M6XFxcIui9rOWtmOmHjzpcXFwiK+i9rOWtmOmHjyxcXG5cXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCIsIGV4dHJhOiB7IGlkOmlkLGxvbmdDbGljazogW3t0aXRsZTogXFxcIuWtmOiHs+e9keebmFxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKT0+e1xcbiAgICAgICAgbG9nKOWwj+S6kem+meS6keebmOWvhumSpSlcXG4gICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/kupHpvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqFtpXT1pK+Wwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5bCP6b6Z5LqR55uY77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKSA9PiB7XFxuICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXJcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxubG9nKOmHjeWkjeivt+axguaWh+S7tuWkuSlcXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG4gICAgfSwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZClcXG5cXG4gICAgICAgIFxcbiAgICAgICAgfSzlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKX1dIH1cXG59KTtcXG5cXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuIFxcblxcbn1cXG5cXG5pZijmlofku7bliJfooagubGVuZ3RoPjApe1xcbuWIhuWJsue6v+mTvuaOpT1cXFwiaHR0cHM6Ly9tLjM2MGJ1eWltZy5jb20vYmFiZWwvamZzL3QxLzI2Mzc0LzM3LzE3ODk0LzQ2NDA3LzYyZDMzZjA1RTk2MTZiNWEyL2YxYzFkMDY4MjQ2ZWE4NGYucG5nXFxcIlxcblxcblxcblxcbmlmKCFmaWxlRXhpc3QoJ2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lm77moIcv5YiG5Ymy57q/LnBuZycpKXtcXG5sb2coXFxcIuW8gOWni+e8k+WtmOWbvueJh1xcXCIpXFxuc2F2ZUltYWdlKOWIhuWJsue6v+mTvuaOpSwnaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wbvuaghy/liIblibLnur8ucG5nJylcXG5cXG59XFxuXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTon5YiG5Ymy57q/JyxcXG5waWNfdXJsOidoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5Zu+5qCHL+WIhuWJsue6vy5wbmcnLFxcbmNvbF90eXBlOiAncGljXzFfZnVsbCdcXG59KTtcXG5cXG5cXG59XFxuXFxuICAgICAgICDmoIfpopg9ZGF0YS50aXRsZVxcbiAgICAgICAg5YaF5a65PWRhdGEuY29udGVudFxcbiAgICAgICAgaWQ9ZGF0YS5pZFxcbiAgICAgICAg5Y+R5biW5Lq6PWRhdGEuYXV0aG9yLm5pY2tuYW1lXFxuICAgICAgICDlj5HluJbkurppZD1kYXRhLmF1dGhvci5pZFxcbiAgICAgICAg5Y+R5biW5Lq65aS05YOPaWQ9ZGF0YS5hdXRob3IuaW1nXFxuICAgICAgICDlj5HluJbml7bpl7Q9dGltZXN0YW1wVG9UaW1lKGRhdGEucHRpbWUpXFxuICAgICAgICDmtY/op4jph489ZGF0YS5zaG93TnVtXFxuICAgICAgICDlm57lpI3ph489ZGF0YS5jb21tZW50TnVtXFxuICAgICAgICDngrnotZ7ph489ZGF0YS5saWtlTnVtXFxuICAgICAgICDlm77niYfph489cGFyc2VJbnQoZGF0YS5pbWFnZXMubGVuZ3RoKVxcbiAgICAgICAg5Zu+54mH5YiX6KGoPWRhdGEuaW1hZ2VzXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrlj5HluJbkurosXFxucGljX3VybDpcXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5Y+R5biW5Lq65aS05YOPaWQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxudXJsOlxcXCJoaWtlcjovL3BhZ2Uv5Y+R5biW6K6w5b2VP3BhZ2U9ZnlwYWdlXFxcIisgJyNpbW1lcnNpdmVUaGVtZSMnLFxcbmRlc2M6XFxcIuWPkeW4luaXtumXtDpcXFwiK+WPkeW4luaXtumXtCxcXG5leHRyYTp7aWQ65Y+R5biW5Lq6aWR9LFxcbmNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIixleHRyYToge2lkOuWPkeW4luS6umlkLGdyYWRpZW50OiB0cnVlLGxvbmdDbGljazogW3t0aXRsZTogXFxcIuaLiem7kVxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlj5HluJbkurppZCk9PntcXG5pZihzdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJyku56S+5LqkSUQ9PeWPkeW4luS6umlkKSByZXR1cm4gXFxcInRvYXN0Oi8v6Ieq5bex5ouJ6buR6Ieq5bex77yfXFxcIlxcblxcbuaLiem7keivt+axgj1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbG91ZC1yZXNvdXJjZS92MS9hZGQtYmxhY2tsaXN0XFxcIlxcblxcbuWwj+S6kem+meS6keebmOWvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcblxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcblxcblxcbui6q+S9kz1ge1xcXCJ1c2VySWRcXFwiOlxcXCI1Mzc1MTI5ODk4MTM2NDEyMTZcXFwiLFxcXCJyZWZ1c2VVc2VySWRzXFxcIjpbXFxcImAr5Y+R5biW5Lq6aWQrYFxcXCJdfWBcXG5cXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjmi4npu5Hor7fmsYIse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuYmFjayh0cnVlKVxcbnJldHVybiBcXFwidG9hc3Q6Ly/lt7Lmi4npu5FcXFwiXFxuICAgIFxcbiAgfSzlj5HluJbkurppZClcXG59XX19KTtcXG5cXG5cXG5cXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOuagh+mimC5yZXBsYWNlKOWGheWuuSwnJykrXFxcIuOAglxcXCIr5YaF5a65LnJlcGxhY2Uo5qCH6aKYLCcnKS5yZXBsYWNlKCdcXFxcbicsJzxicj4nKStgPGJyPjxzdHJvbmc+PGZvbnQgY29sb3I9JyM3NTc1NzUnPmArJ+a1j+iniOmHjzonK+a1j+iniOmHjysnIOeCuei1numHjzonK+eCuei1numHjysnIOWbnuWkjemHjzonK+WbnuWkjemHjytgPC9mcm9udD48L3N0cm9uZz5gLFxcbmNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIlxcbn0pO1xcblxcblxcbnNoYXJlSWTmlbDnu4Q9W11cXG5pZigvd3guc3Rhcml2ZXJwYW4uY29tLio/c2hhcmVJZD0uKyYvLnRlc3Qo5qCH6aKYK+WGheWuuSkpe1xcbnNoYXJlSWTmlbDnu4Q95YaF5a65Lm1hdGNoKC9bYS16MC05XXsyNH0vaWcpXFxuXFxufVxcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Zu+5qCHJykpLnJ1bGUpXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmtY/op4jph48sXFxucGljX3VybDrmtY/op4jph4/lm77moIcsXFxuY29sX3R5cGU6IFxcXCJpY29uXzVcXFwiLFxcbnVybDpcXFwidG9hc3Q6Ly/ooqvmtY/op4hcXFwiK+a1j+iniOmHjytcXFwi5qyhXFxcIlxcbn0pO1xcbmQucHVzaCh7XFxudGl0bGU65Zue5aSN6YePLFxcbnBpY191cmw65Zue5aSN6YeP5Zu+5qCHLFxcbmNvbF90eXBlOiBcXFwiaWNvbl81XFxcIixcXG51cmw6ICQoXFxcIlxcXCIsXFxcIuivhOiuuuWGheWuuVxcXCIpLmlucHV0KChpZCkgPT4ge1xcblxcbuivhOiuuuivt+axgj1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4xL2Rpc2N1c3MvYWRkQ29tbWVudFxcXCIgICAgICAgICAgICAgICAgXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK3N0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxufVxcblxcbui6q+S9kz1ge1xcXCJhcnRpY2xlSWRcXFwiOmAraWQrYCxcXFwiY29udGVudFxcXCI6XFxcImAraW5wdXQrYFxcXCIsXFxcInBhcmVudElkXFxcIjowfWBcXG5cXG5wb3N0KOivhOiuuuivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+ivhOiuuuaIkOWKn1xcXCJcXG5cXG5cXG59LGlkKVxcbn0pO1xcbmQucHVzaCh7XFxudGl0bGU654K56LWe6YePLFxcbnBpY191cmw65pS26JeP6YeP5Zu+5qCHLFxcbmNvbF90eXBlOiBcXFwiaWNvbl81XFxcIixcXG51cmw6XFxcInRvYXN0Oi8v6L+Y5rKh5YaZ5pS26JePXFxcIlxcbn0pO1xcbmQucHVzaCh7XFxudGl0bGU65Zu+54mH6YePLFxcbnBpY191cmw65Zu+54mH6YeP5Zu+5qCHLFxcbmNvbF90eXBlOiBcXFwiaWNvbl81XFxcIixcXG51cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgo5Zu+54mH5YiX6KGoKSA9PiB7XFxuaWYo5Zu+54mH5YiX6KGoLmxlbmd0aDwxKSByZXR1cm4gXFxcInRvYXN0Oi8v5rKh6K+G5Yir5Yiw5Zu+54mHXFxcIiAgXFxuXFxu5Zu+54mH5pWw57uEPVtdXFxuZm9yICh2YXIgaSBpbiDlm77niYfliJfooagpIHtcXG5cXG7lm77niYfmlbDnu4RbaV09XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+WbvueJh+WIl+ihqFtpXS5maWxlQ2lkK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxuXFxufVxcblxcbnJldHVybiBcXFwicGljczovL1xcXCIgK+WbvueJh+aVsOe7hC5qb2luKFxcXCImJlxcXCIpXFxuXFxufSzlm77niYfliJfooagpXFxufSk7XFxuXFxuZC5wdXNoKHtcXG50aXRsZTpwYXJzZUludChzaGFyZUlk5pWw57uELmxlbmd0aCksXFxucGljX3VybDrpk77mjqXph4/lm77moIcsXFxuY29sX3R5cGU6IFxcXCJpY29uXzVcXFwiLFxcbnVybDpzaGFyZUlk5pWw57uELmxlbmd0aDwxP1xcXCJ0b2FzdDovL+ayoeivhuWIq+WIsOmTvuaOpVxcXCI6JChzaGFyZUlk5pWw57uELCAxLCfmib7liLDpk77mjqXmlbDmja4nKS5zZWxlY3QoKHNoYXJlSWTmlbDnu4QpID0+IHtcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbueCueWHu+S9jee9rj1zaGFyZUlk5pWw57uELmZpbmRJbmRleChpdCA9PiBpdCA9PT0gaW5wdXQpO1xcbnJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL+ino+aekOWIhuS6q+mTvuaOpT9pZD1cXFwiK+ino+WvhuWIhuS6q+mTvuaOpShzaGFyZUlk5pWw57uEW+eCueWHu+S9jee9rl0pXFxuXFxuXFxufSxzaGFyZUlk5pWw57uEKVxcbn0pO1xcblxcblxcblxcblxcblxcbi8qXFxuXFxuaWYoL3d4LnN0YXJpdmVycGFuLmNvbS4qP3NoYXJlSWQ9LismLy50ZXN0KOagh+mimCvlhoXlrrkpKXtcXG5zaGFyZUlkPeWGheWuuS5tYXRjaCgvc2hhcmVJZFxcXFw9KC4qKSYvKVsxXVxcbuaWh+S7tmlkPeino+WvhuWIhuS6q+mTvuaOpShzaGFyZUlkKVxcblxcbn1cXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOifigJzigJwnK3NoYXJlSWQrJ+KAneKAnScsXFxuLy9waWNfdXJsOixcXG51cmw6XFxcImhpa2VyOi8vcGFnZS/op6PmnpDliIbkuqvpk77mjqU/aWQ9XFxcIivmlofku7ZpZCxcXG4vL2Rlc2M6LFxcbmNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCJcXG59KTtcXG5cXG5cXG5cXG5cXG5mb3IgKHZhciBpIGluIOWbvueJh+WIl+ihqCkge1xcblxcbmQucHVzaCh7XFxuLy90aXRsZTosXFxucGljX3VybDpcXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5Zu+54mH5YiX6KGoW2ldLmZpbGVDaWQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxudXJsOlxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivlm77niYfliJfooahbaV0uZmlsZUNpZCtcXFwiIy5qcGdAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcbi8vZGVzYzosXFxuY29sX3R5cGU6IFxcXCJwaWNfM19zcXVhcmVcXFwiXFxufSk7XFxuXFxufVxcblxcbiovXFxuXFxuaWYo5Zue5aSN6YePPjApe1xcblxcblxcblxcbuivhOiuuuivt+axgj1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4xL2Rpc2N1c3MvY29tbWVudExpc3RGb3JBcHBcXFwiXFxuXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK3N0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxufVxcblxcbui6q+S9kz1ge1xcXCJpc1NvcnRcXFwiOnRydWUsXFxcInJvb3RJZFxcXCI6MCxcXFwiYXJ0aWNsZUlkXFxcIjpgK2lkK2AsXFxcImxhc3RJZFxcXCI6MCxcXFwicGFnZVNpemVcXFwiOjIwLFxcXCJpc1ZpZXdBdXRob3JcXFwiOmZhbHNlfWBcXG4gICAgICAgIFxcbuivhOiuuuWTjeW6lD1wb3N0KOivhOiuuuivt+axgix7aGVhZGVyczrlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuivhOiuuuWIl+ihqD1KU09OLnBhcnNlKOivhOiuuuWTjeW6lCkuZGF0YVxcblxcblxcblxcbmlmKOivhOiuuuWIl+ihqCE9bnVsbCl7XFxuXFxuZC5wdXNoKHtcXG50aXRsZTon57KX5YiG5Ymy57q/JyxcXG5jb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxufSk7XFxuXFxufVxcblxcblxcbmZvciAodmFyIGkgaW4g6K+E6K665YiX6KGoKSB7XFxuXFxuXFxuICAgICAgICAgICBcXG7or4TorrppZD3or4TorrrliJfooahbaV0uaWRcXG7or4TorrrlhoXlrrk96K+E6K665YiX6KGoW2ldLmNvbnRlbnRcXG5cXG7or4Torrrml7bpl7Q9dGltZXN0YW1wVG9UaW1lKOivhOiuuuWIl+ihqFtpXS5wdGltZSlcXG5cXG5cXG5cXG7or4TorrrkurppZD3or4TorrrliJfooahbaV0udXNlci5pZFxcbuivhOiuuuS6uuWQjT3or4TorrrliJfooahbaV0udXNlci5uaWNrbmFtZVxcbuivhOiuuuS6uuWktOWDj2lkPeivhOiuuuWIl+ihqFtpXS51c2VyLmltZ1xcblxcbmQucHVzaCh7XFxudGl0bGU66K+E6K665Lq65ZCNLFxcbnBpY191cmw6XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+ivhOiuuuS6uuWktOWDj2lkK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+WPkeW4luiusOW9lT9wYWdlPWZ5cGFnZVxcXCIrICcjaW1tZXJzaXZlVGhlbWUjJyxcXG5kZXNjOlxcXCLor4Torrrml7bpl7Q6XFxcIivor4Torrrml7bpl7QsXFxuZXh0cmE6e2lkOuivhOiuuuS6umlkfSxcXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCIsZXh0cmE6IHtpZDror4TorrrkurppZCxncmFkaWVudDogdHJ1ZSxsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLmi4npu5FcXFwiLCBqczogJC50b1N0cmluZygo6K+E6K665Lq6aWQpPT57XFxuXFxuaWYoc3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLuekvuS6pElEPT3or4TorrrkurppZCkgcmV0dXJuIFxcXCJ0b2FzdDovL+iHquW3seaLiem7keiHquW3se+8n1xcXCJcXG7mi4npu5Hor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWQtcmVzb3VyY2UvdjEvYWRkLWJsYWNrbGlzdFxcXCJcXG5cXG7lsI/kupHpvpnkupHnm5jlr4bpkqU9c3RvcmFnZTAuZ2V0SXRlbSgnY3VySXRlbScpLnVzZXJcXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG5cXG5cXG7ouqvkvZM9YHtcXFwidXNlcklkXFxcIjpcXFwiNTM3NTEyOTg5ODEzNjQxMjE2XFxcIixcXFwicmVmdXNlVXNlcklkc1xcXCI6W1xcXCJgK+ivhOiuuuS6umlkK2BcXFwiXX1gXFxuXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo5ouJ6buR6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5bey5ouJ6buRXFxcIlxcbiAgICBcXG4gIH0s6K+E6K665Lq6aWQpXFxufV19fSk7XFxuXFxuXFxu6KKr5Zue5aSN5pWwPeivhOiuuuWIl+ihqFtpXS5zdWJDb3VudFxcblxcbmlmKOiiq+WbnuWkjeaVsD4wKXtcXG5cXG5cXG7lm57lpI3or4Torrror7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuMS9kaXNjdXNzL2NvbW1lbnRMaXN0Rm9yQXBwXFxcIlxcblxcblxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitzdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiYXJ0aWNsZUlkXFxcIjpgK2lkK2AsXFxcImlzU29ydFxcXCI6dHJ1ZSxcXFwibGFzdElkXFxcIjowLFxcXCJwYWdlU2l6ZVxcXCI6MTAwLFxcXCJyb290SWRcXFwiOmAr6K+E6K66aWQrYH1gXFxuICAgICAgICBcXG7lm57lpI3or4Torrrlk43lupQ9cG9zdCjor4Torrror7fmsYIse2hlYWRlcnM65aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7lm57lpI3or4TorrrliJfooag9SlNPTi5wYXJzZSjlm57lpI3or4Torrrlk43lupQpLmRhdGEucmV2ZXJzZSgpXFxuXFxuZm9yICh2YXIgaSBpbiDlm57lpI3or4TorrrliJfooagpIHtcXG5cXG5cXG4gICAgICAgICAgIFxcbuWbnuWkjeivhOiuumlkPeWbnuWkjeivhOiuuuWIl+ihqFtpXS5pZFxcbuWbnuWkjeivhOiuuuWGheWuuT3lm57lpI3or4TorrrliJfooahbaV0uY29udGVudFxcblxcbuWbnuWkjeivhOiuuuaXtumXtD10aW1lc3RhbXBUb1RpbWUo5Zue5aSN6K+E6K665YiX6KGoW2ldLnB0aW1lKVxcblxcbuWbnuWkjeivhOiuuuS6umlkPeWbnuWkjeivhOiuuuWIl+ihqFtpXS51c2VyLmlkXFxu5Zue5aSN6K+E6K665Lq65ZCNPeWbnuWkjeivhOiuuuWIl+ihqFtpXS51c2VyLm5pY2tuYW1lXFxu5Zue5aSN6K+E6K665Lq65aS05YOPaWQ95Zue5aSN6K+E6K665YiX6KGoW2ldLnVzZXIuaW1nXFxuXFxu6K+E6K665YaF5a65PeivhOiuuuWGheWuuStcXFwiPGJyPuKAlOKAlFxcXCIr5Zue5aSN6K+E6K665Lq65ZCNK1xcXCI6XFxcIivlm57lpI3or4TorrrlhoXlrrlcXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxufVxcblxcblxcblxcblxcbmQucHVzaCh7XFxudGl0bGU66K+E6K665YaF5a65LFxcbmNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIlxcbn0pO1xcblxcbmQucHVzaCh7XFxudGl0bGU6J+e7huWIhuWJsue6vycsXFxuY29sX3R5cGU6ICdsaW5lJ1xcbn0pO1xcblxcblxcblxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5a6Y5pa56LWE5rqQLeWPkeW4luiusOW9lVwiLFwicGF0aFwiOlwi5Y+R5biW6K6w5b2VXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuaWQ9TVlfUEFSQU1TLmlkXFxubGV0IHBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIoXFxcInBhZ2VcXFwiLCBcXFwiMFxcXCIpKSArIE1ZX1BBR0U7XFxuXFxuSVBGU+WvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcblxcblxcblxcbumTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi40L2Nsb3VkLXJlc291cmNlcy9hcnRpY2xlLWxpc3Q/cGFnZVNpemU9MjAmcXVlcnlVc2VySWQ9XFxcIitpZCtcXFwiJnBhZ2VOdW09XFxcIitwYWdlK1xcXCImaXNWaWV3TWU9ZmFsc2VcXFwiXFxuXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG5cXG59XFxuXFxu5rqQ56CBPXJlcXVlc3Qo6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6h9KVxcblxcblxcblxcbuWIl+ihqD1KU09OLnBhcnNlKOa6kOeggSkuZGF0YS5kYXRhXFxuXFxuaWYo5YiX6KGoLmxlbmd0aD4wKXtcXG4gICAgICAgIOWPkeW4luS6uj3liJfooahbMF0uYXV0aG9yLm5pY2tuYW1lXFxuICAgICAgICDlj5HluJbkurppZD3liJfooahbMF0uYXV0aG9yLmlkXFxuICAgICAgICDlj5HluJbkurrlpLTlg49pZD3liJfooahbMF0uYXV0aG9yLmltZ1xcblxcbmlmKHBhZ2U9PTEpXFxuZC5wdXNoKHtcXG50aXRsZTrlj5HluJbkurosXFxucGljX3VybDpcXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5Y+R5biW5Lq65aS05YOPaWQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxudXJsOlxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivlj5HluJbkurrlpLTlg49pZCtcXFwiIy5qcGdAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcbmV4dHJhOntpZDrlj5HluJbkurppZH0sXFxuY29sX3R5cGU6IFxcXCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyXFxcIixleHRyYToge2dyYWRpZW50OiB0cnVlLGxvbmdDbGljazogW3t0aXRsZTogXFxcIuaLiem7kVxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlj5HluJbkurppZCk9PntcXG5cXG5pZihzdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJyku56S+5LqkSUQ9PeWPkeW4luS6umlkKSByZXR1cm4gXFxcInRvYXN0Oi8v6Ieq5bex5ouJ6buR6Ieq5bex77yfXFxcIlxcblxcblxcbuaLiem7keivt+axgj1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbG91ZC1yZXNvdXJjZS92MS9hZGQtYmxhY2tsaXN0XFxcIlxcblxcbuWwj+S6kem+meS6keebmOWvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcblxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcblxcblxcbui6q+S9kz1ge1xcXCJ1c2VySWRcXFwiOlxcXCJgK3N0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS7npL7kuqRJRCtgXFxcIixcXFwicmVmdXNlVXNlcklkc1xcXCI6W1xcXCJgK+WPkeW4luS6umlkK2BcXFwiXX1gXFxuXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo5ouJ6buR6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbmJhY2sodHJ1ZSlcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5bey5ouJ6buRXFxcIlxcbiAgICBcXG4gIH0s5Y+R5biW5Lq6aWQpXFxufV19fSk7XFxuXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDliJfooagpIHtcXG4gICAgICAgIOagh+mimD3liJfooahbaV0udGl0bGVcXG4gICAgICAgIOWGheWuuT3liJfooahbaV0uY29udGVudFxcbiAgICAgICAgaWQ95YiX6KGoW2ldLmlkXFxuICAgICAgICDlj5HluJbkuro95YiX6KGoW2ldLmF1dGhvci5uaWNrbmFtZVxcbiAgICAgICAg5Y+R5biW5Lq6aWQ95YiX6KGoW2ldLmF1dGhvci5pZFxcbiAgICAgICAg5Y+R5biW5Lq65aS05YOPaWQ95YiX6KGoW2ldLmF1dGhvci5pbWdcXG4gICAgICAgIOWPkeW4luaXtumXtD10aW1lc3RhbXBUb1RpbWUo5YiX6KGoW2ldLnB0aW1lKVxcbiAgICAgICAg5rWP6KeI6YePPeWIl+ihqFtpXS5zaG93TnVtXFxuICAgICAgICDlm57lpI3ph4895YiX6KGoW2ldLmNvbW1lbnROdW1cXG4gICAgICAgIOeCuei1numHjz3liJfooahbaV0ubGlrZU51bVxcbiAgICAgICAg6L2s5a2Y6YePPeWIl+ihqFtpXS5kb3dubG9hZE51bVxcbiAgICAgICAg5Zu+54mH6YePPeWIl+ihqFtpXS5pbWFnZXMubGVuZ3RoXFxuXFxuZC5wdXNoKHtcXG50aXRsZTpg4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0nIzFFOTBGRic+YCvmoIfpopgrYDwvZnJvbnQ+PC9zdHJvbmc+XFxcXG5gK+WGheWuuSxcXG5waWNfdXJsOlxcXCJodHRwczovL3N0YXRpYy5teXBpa3Bhay5jb20vOGMzYzExNDg2MDQ5YjE3NDM0NTI2MjM2YTdlZDY1Nzg3N2I4NmFhM0BSZWZlcmVyPVxcXCIsXFxudXJsOlxcXCJoaWtlcjovL3BhZ2Uv5biW5a2Q5LqM57qnXFxcIixcXG5kZXNjOifmtY/op4jph486JyvmtY/op4jph48rJyDlm57lpI3ph486Jyvlm57lpI3ph48rJyDovazlrZjph486JyvovazlrZjph48rJyDlm77niYfph486Jyvlm77niYfph48sXFxuZXh0cmE6e2lkOmlkfSxcXG5jb2xfdHlwZTogXFxcInRleHRfMVxcXCJcXG59KTtcXG5cXG5cXG5cXG5cXG5kLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICB9KTtcXG5cXG5cXG4gXFxufVxcblxcbn1cXG5cXG5cXG5cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLop6PmnpDliIbkuqvpk77mjqVcIixcInBhdGhcIjpcIuino+aekOWIhuS6q+mTvuaOpVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5cXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Zu+5qCHJykpLnJ1bGUpXFxuXFxuXFxuXFxuaWQ9Z2V0UGFyYW0oJ2lkJylcXG5cXG5cXG5JUEZT5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxubGV0IOWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuaWYoaWQpe1xcblxcbuivt+axgumTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4wL2Nsb3VkL3ZlcmlmeUNvZGVcXFwiXFxuXFxu6K+35rGC5a+G56CB6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjAvY2xvdWQvY2hlY2tTaGFyZUlkXFxcIlxcblxcblxcbui6q+S9kz1ge1xcXCJpZFxcXCI6XFxcImAraWQrYFxcXCJ9YFxcblxcblxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIitJUEZT5a+G6ZKlLFxcblxcXCJSZWZlcmVyXFxcIjogXFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG59XFxuXFxuXFxuXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5a+G56CB6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcblxcblxcbuWvhueggT1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbmxvZyjlr4bnoIEpXFxuXFxuaWYo5a+G56CBKXtcXG5cXG7ouqvkvZM9YHtcXFwiY29kZVxcXCI6XFxcImAr5a+G56CBK2BcXFwiLFxcXCJpZFxcXCI6XFxcImAraWQrYFxcXCJ9YFxcblxcbn1cXG5cXG5cXG50cnkge1xcblxcbuesrOS6jOasoeWTjeW6lD1wb3N0KOivt+axgumTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5kYXRhPUpTT04ucGFyc2Uo56ys5LqM5qyh5ZON5bqUKS5kYXRhXFxubG9nKGRhdGEpXFxu5YiX6KGoPWRhdGEuc2hhcmVGaWxlSW5mb1xcbmxvZyjliJfooagpXFxuXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDliJfooagpIHtcXG4gICAgICAgIOagh+mimD3liJfooahbaV0uZmlsZU5hbWVcXG4gICAgICAgIGlkPeWIl+ihqFtpXS5pZFxcbiAgICAgICAgdXNlcmlkPeWIl+ihqFtpXS51c2VySWRcXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahbaV0uZmlsZVNpemVcXG5cXG5sb2co5paH5Lu25aSn5bCPKVxcbmlmKOaWh+S7tuWkp+Wwjz09MCl7XFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgsXFxucGljX3VybDrmlofku7blpLnlm77moIcsXFxudXJsOlxcXCJoaWtlcjovL3BhZ2Uv5paH5Lu25aS5XFxcIixcXG4vL2Rlc2M6aWQsXFxuZXh0cmE6e+aWh+S7tuWkuWlkOmlkLHVzZXJpZDp1c2VyaWQs6ZyA6KaB55So5oi3aWQ6XFxcIumcgOimgVxcXCIsbG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5a2Y6Iez572R55uYXFxcIiwganM6ICQudG9TdHJpbmcoKOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQpPT57XFxuICAgICAgICBsb2co5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKVxcbiAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOWwj+S6kem+meS6keebmOWvhumSpSkge1xcbiAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoW2ldPWkr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2ldLm5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICByZXR1cm4gJCjlsI/kupHpvpnkupHnm5jotKblj7fliJfooagsIDIsICflsIbmlofku7bmt7vliqDoh7Plk6rkuKrlsI/pvpnkupHnm5jvvJ8nKS5zZWxlY3QoKOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQpID0+IHtcXG4gICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPeWwj+S6kem+meS6keebmOWvhumSpVtpbnB1dC5tYXRjaCgvXFxcXGQvKVswXV0udXNlclxcbuivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxcInBhcmVudElkXFxcIjpcXFwiMFxcXCJ9YFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlofku7blpLnliJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG7mlofku7blpLnlkI3np7A9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5paH5Lu25aS55YiX6KGoKSB7XFxuICAgICAgICAgICDmlofku7blpLnlkI3np7BbaV09aSvmlofku7blpLnliJfooahbaV0uZmlsZU5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewW+aWh+S7tuWkueWQjeensC5sZW5ndGhdPVxcXCLliqDlhaXmraTlpIRcXFwiXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxubG9nKOmHjeWkjeivt+axguaWh+S7tuWkuSlcXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG4gICAgfSwg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZClcXG5cXG4gICAgICAgIFxcbiAgICAgICAgfSzlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKX1dfSxcXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCJcXG59KTtcXG59ZWxzZXtcXG5cXG7mlofku7bmoLzlvI895YiX6KGoW2ldLnN1ZmZpeFxcbuaWh+S7tkNJRD3liJfooahbaV0uZmlsZUNpZFxcbuaWh+S7tuWkp+Wwjz1mb3JtYXRTaXplKOaWh+S7tuWkp+WwjylcXG5cXG5cXG5cXG5pZigvKGpwZ3xnaWZ8cG5nfGpwZWcpJC9pLnRlc3Qo5qCH6aKYKSl7XFxuXFxu5qC85byPPVxcXCIjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG7lm77niYc9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcblxcbn1lbHNlIGlmKC9cXFxcLihhdml8dHN8bXA0fG1vdnxtNHZ8M2dwfHJtfHJtdmJ8d212fGFzZnxhc3hhdml8ZGF0fG1rdnxmbHZ8dm9iKSQvaS50ZXN0KOagh+mimCkpe1xcbuWbvueJhz3op4bpopHmlofku7blm77moIdcXG7moLzlvI89XFxcIiNpc1ZpZGVvPXRydWUjO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxufWVsc2UgaWYoLyhtcDN8d21hKSQvaS50ZXN0KOagh+mimCkpe1xcblxcbuagvOW8jz1cXFwiIy5tcDM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG7lm77niYc96Z+z5LmQ5paH5Lu25Zu+5qCHXFxuXFxufWVsc2V7XFxu5qC85byPPVxcXCI7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG7lm77niYc95YW25LuW5paH5Lu25Zu+5qCHXFxufVxcblxcbumTvuaOpT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK+agvOW8j1xcblxcbmQucHVzaCh7XFxudGl0bGU65paH5Lu25aSn5bCPK1xcXCItXFxcIivmoIfpopgsXFxucGljX3VybDrlm77niYcsXFxudXJsOuaWh+S7tkNJRCtcXFwiJiZcXFwiK+agh+mimCtDSUTpk77mjqXop6PmnpAsXFxuLy9kZXNjOmlkLFxcbmV4dHJhOntpZDppZCx1c2VyaWQ6dXNlcmlkLGxvbmdDbGljazogW3t0aXRsZTogXFxcIuWtmOiHs+e9keebmFxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKT0+e1xcbiAgICAgICBcXG4gICAgICAgIGxvZyjlsI/kupHpvpnkupHnm5jlr4bpkqUpXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZCkgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG7nibnmroppZD1cXFwiXFxcIlxcbuW4luWtkGlkPVxcXCJcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbiAgICB9LCDlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkKVxcblxcbiAgICAgICAgXFxuICAgICAgICB9LOWwj+S6kem+meS6keebmOWvhumSpSxpZCx1c2VyaWQpfV19LFxcbmNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIlxcbn0pO1xcblxcblxcblxcblxcbn1cXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxufSBjYXRjaCAoZSkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGA8Zm9udCBjb2xvcj1cXFwiI0ZCNkM3M1xcXCI+5YiG5Lqr5Y+v6IO96L+H5pyfPC9mb250PmAsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInJpY2hfdGV4dFxcXCJcXG5cXG59KVxcbiAgICBcXG4gICAgXFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxufVxcblxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLph43lpI3or7fmsYLmlofku7blpLlcIixcInBhdGhcIjpcIumHjeWkjeivt+axguaWh+S7tuWkuVwiLFwicnVsZVwiOlwiaWYodHlwZW9mKGlkKT09XFxcInVuZGVmaW5lZFxcXCIpaWQ9XFxcIlxcXCJcXG5pZih0eXBlb2YodXNlcmlkKT09XFxcInVuZGVmaW5lZFxcXCIpdXNlcmlkPVxcXCJcXFwiXFxuaWYodHlwZW9mKOeJueauimlkKT09XFxcInVuZGVmaW5lZFxcXCIp54m55q6KaWQ9XFxcIlxcXCJcXG5pZih0eXBlb2Yo5biW5a2QaWQpPT1cXFwidW5kZWZpbmVkXFxcIinluJblrZBpZD1cXFwiXFxcIlxcbmlmKHR5cGVvZijlsI/pvpnkupHnm5jlpIfku70pPT1cXFwidW5kZWZpbmVkXFxcIinlsI/pvpnkupHnm5jlpIfku709XFxcIuaXoFxcXCJcXG5pZih0eXBlb2Yo5paH5Lu25aS557qv5ZCN56ewKT09XFxcInVuZGVmaW5lZFxcXCIp5paH5Lu25aS557qv5ZCN56ewPVxcXCJcXFwiXFxuaWYodHlwZW9mKOaWh+S7tuWkuee6r+WQjeensCk9PVxcXCJ1bmRlZmluZWRcXFwiKeaWh+S7tuWkueWQjeensD1cXFwiXFxcIlxcblxcblxcbnZhciDph43lpI3or7fmsYLmlofku7blpLkgPSQo5paH5Lu25aS55ZCN56ewLCAyLCflsIbmlofku7bmt7vliqDoh7Plk6rkuKrmlofku7blpLnvvJ8nKS5zZWxlY3QoKOaWh+S7tuWkueWIl+ihqGlkLOaWh+S7tuWkueWIl+ihqCzlsI/kupHpvpnkupHnm5jlr4bpkqUsaWQsdXNlcmlkLOeJueauimlkLOW4luWtkGlkLOWwj+m+meS6keebmOWkh+S7vSzmlofku7blpLnlkI3np7As5paH5Lu25aS557qv5ZCN56ewKSA9PiB7XFxuXFxuXFxuICAgICAgIGlmKGlucHV0PT1cXFwi5Yqg5YWl5q2k5aSEXFxcIikge1xcblxcbmlmKHVzZXJpZD09XFxcIuaXoFxcXCIpe1xcblxcbmxvZyhcXFwiMVxcXCIpXFxu56e75Yqo6K+35rGC6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZmlsZU1vdmVcXFwiXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiaWRzXFxcIjpbXFxcImAraWQrYFxcXCJdLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS55YiX6KGoaWQrYFxcXCJ9YFxcblxcbnBvc3Qo56e75Yqo6K+35rGC6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcbnJlZnJlc2hQYWdlKGZhbHNlKVxcblxcbnJldHVybiAndG9hc3Q6Ly/np7vliqjmiJDlip8nXFxuXFxufWVsc2UgaWYodXNlcmlkPT1cXFwi5pegKENJRClcXFwiKXtcXG5sb2coXFxcIjJcXFwiKVxcblxcblxcbmlmKOWwj+m+meS6keebmOWkh+S7vSE9PVxcXCLml6BcXFwiKXtcXG5cXG7mlrDlu7rmlofku7blpLnlkI095bCP6b6Z5LqR55uY5aSH5Lu9LuaWh+S7tuWkueWQjVxcbmRhdGE95bCP6b6Z5LqR55uY5aSH5Lu9LmRhdGFcXG5cXG5cXG5cXG5cXG5zaG93TG9hZGluZygn5q2j5Zyo5paw5bu65paH5Lu25aS5JylcXG5cXG7mlrDlu7rmlofku7blpLnor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9hZGRGb2xkZXJcXFwiXFxuXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJgK+aWsOW7uuaWh+S7tuWkueWQjStgXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkueWIl+ihqGlkK2BcXFwiLFxcXCJ0b2tlblxcXCI6XFxcImAr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlK2BcXFwifWBcXG4gICAgICAgIFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOaWsOW7uuaWh+S7tuWkueivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlrDlu7rmlofku7blpLlpZD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcblxcblxcblxcbn1lbHNle1xcbi8vQ0lE5a2Y5paH5Lu25LiA5Liq5paH5Lu255qE5oOF5Ya1XFxuXFxuZGF0YT1bSlNPTi5wYXJzZShpZCldXFxubG9nKGRhdGEpXFxu5paw5bu65paH5Lu25aS5aWQ95paH5Lu25aS55YiX6KGoaWRcXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiBkYXRhKSB7XFxuXFxuXFxuXFxu5paH5Lu25ZCNPWRhdGFbaV0u5paH5Lu25ZCNXFxu5paH5Lu2Q0lEPWRhdGFbaV0u5paH5Lu2Q0lEXFxu5paH5Lu25aSn5bCPPWRhdGFbaV0u5paH5Lu25aSn5bCPXFxu5paH5Lu25qC85byPPWRhdGFbaV0u5paH5Lu25qC85byPXFxuXFxuc2hvd0xvYWRpbmcoXFxcIuS/neWtmOaWh+S7tjpcXFwiK+aWh+S7tuWQjSlcXG5cXG5cXG7np5LlrZjor7fmsYLpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuNS9jbG91ZC9hZGQtZmlsZVxcXCJcXG5cXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcblxcbui6q+S9kz1ge1xcXCJjb3ZlclxcXCI6XFxcIlxcXCIsXFxcImR1cmF0aW9uXFxcIjowLFxcXCJ0aHVtYm5haWxcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwiZmlsZU5hbWVcXFwiOlxcXCJgK+aWh+S7tuWQjStgXFxcIixcXFwiZmlsZVNpemVcXFwiOmAr5paH5Lu25aSn5bCPK2AsXFxcImZpbGVDaWRcXFwiOlxcXCJgK+aWh+S7tkNJRCtgXFxcIixcXFwiZmlsZVR5cGVcXFwiOmAr5paH5Lu25qC85byPK2AsXFxcInBhcmVudElkXFxcIjpcXFwiYCvmlrDlu7rmlofku7blpLlpZCtgXFxcIn1gXFxuXFxuXFxuXFxuXFxucG9zdCjnp5LlrZjor7fmsYLpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuXFxuXFxuamF2YS5sYW5nLlRocmVhZC5zbGVlcCg1MDApXFxuXFxufVxcblxcblxcbmhpZGVMb2FkaW5nKClcXG5yZXR1cm4gJ3RvYXN0Oi8v5L+d5a2Y5oiQ5YqfJ1xcblxcblxcblxcblxcblxcbn1lbHNle1xcbmxvZyhcXFwiM1xcXCIpXFxu5L+d5a2Y6K+35rGC6ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YyLjAvY2xvdWQvc2F2ZVNoYXJlRmlsZXNcXFwiXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxuXFxuaWYoIeeJueauimlkKXtcXG7ouqvkvZM9YHtcXFwiaWRzXFxcIjpbXFxcImAraWQrYFxcXCJdLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS55YiX6KGoaWQrYFxcXCIsXFxcInNoYXJlVXNlcklkXFxcIjpcXFwiYCt1c2VyaWQrYFxcXCJ9YFxcbn1lbHNle1xcbuS/neWtmOivt+axgumTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4wL2Nsb3VkL3NhdmVTbmFwc2hvdEZpbGVzXFxcIlxcblxcbui6q+S9kz1ge1xcXCJhcnRpY2xlSWRcXFwiOmAr5biW5a2QaWQrYCxcXFwiaWRzXFxcIjpbYCvnibnmroppZCtgXSxcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkueWIl+ihqGlkK2BcXFwifWBcXG59XFxucG9zdCjkv53lrZjor7fmsYLpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxucmV0dXJuICd0b2FzdDovL+S/neWtmOaIkOWKnydcXG59XFxuXFxufVxcbmxvZyhcXFwiNFxcXCIpXFxuXFxuXFxuXFxu5paH5Lu25aS55YiX6KGoaWQ95paH5Lu25aS55YiX6KGoW2lucHV0Lm1hdGNoKC9cXFxcZCsvKVswXV0uaWRcXG5cXG5cXG5sb2co5paH5Lu25aS55YiX6KGoaWQpXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxuXFxuLy/or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbG91ZGZpbGUvdjEvZm9sZGVyc1xcXCJcXG5cXG4vL+i6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS55YiX6KGoaWQrYFxcXCJ9YFxcblxcbui6q+S9kz1ge1xcXCJmaWxlTmFtZVxcXCI6XFxcIlxcXCIsXFxcInNvcnRGbGFnXFxcIjpcXFwibmFtZVxcXCIsXFxcInNvcnRUeXBlXFxcIjpcXFwiYXNjXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkueWIl+ihqGlkK2BcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG7mlofku7blpLnliJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK1xcXCIuXFxcIivmlofku7blpLnliJfooahbaV0uZmlsZU5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewW+aWh+S7tuWkueWQjeensC5sZW5ndGhdPVxcXCLliqDlhaXmraTlpIRcXFwiXFxuICAgICAgICDmlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mHjeWkjeivt+axguaWh+S7tuWkuScpKS5ydWxlKVxcbi8vbG9nKOmHjeWkjeivt+axguaWh+S7tuWkuSlcXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG4gICAgfSzmlofku7blpLnliJfooahpZCzmlofku7blpLnliJfooags5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLGlkLHVzZXJpZCznibnmroppZCzluJblrZBpZCzlsI/pvpnkupHnm5jlpIfku70s5paH5Lu25aS55ZCN56ewLOaWh+S7tuWkuee6r+WQjeensClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaIkeeahOWIhuS6q1wiLFwicGF0aFwiOlwi5oiR55qE5YiG5LqrXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICcnLFxcbiAgICBkZXNjOiAn6K+36L6T5YWl5YiG5Lqr6ZO+5o6lLi4uJyxcXG4gICAgY29sX3R5cGU6ICdpbnB1dCcsXFxuICAgIHVybDogJC50b1N0cmluZygo6Kej5a+G5YiG5Lqr6ZO+5o6lKSA9PiB7XFxuXFxudHJ5IHtcXG5cXG5pbnB1dD1pbnB1dC5tYXRjaCgvc2hhcmVJZFxcXFw9KC4qKSYvKVsxXVxcbiAgICAgICAgICAgICAgICAgICAgbG9nKGlucHV0KVxcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ96Kej5a+G5YiG5Lqr6ZO+5o6lKGlucHV0KVxcbiAgICAgICAgICAgICAgICAgICAgcHV0VmFyKCfliIbkuqvpk77mjqVpZCcsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgICAgIGxvZyhpbnB1dClcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL+ino+aekOWIhuS6q+mTvuaOpT9pZD1cXFwiK2lucHV0XFxuXFxuXFxufSBjYXRjaCAoZSkge1xcbiAgICBsb2coZS5tZXNzYWdlKVxcbiAgICByZXR1cm4gXFxcInRvYXN0Oi8v6L6T5YWl6ZSZ6K+vXFxcIlxcbn1cXG5cXG5cXG59LOino+WvhuWIhuS6q+mTvuaOpSlcXG4gICAgXFxufSk7XFxuXFxuXFxuXFxu5YiG5Lqr6ZO+5o6l6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkZmlsZS92MS9teS1zaGFyZXNcXFwiXFxuXFxu5bCP5LqR6b6Z5LqR55uY5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxuXFxuXFxu6Lqr5L2TPWB7XFxcInBhZ2VTaXplXFxcIjoyMCxcXFwic3RhdGVcXFwiOjEsXFxcInBhZ2VOdW1cXFwiOjF9YFxcblxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOWIhuS6q+mTvuaOpeivt+axgix7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG7liJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcbmxvZyjliJfooagpXFxuXFxuZm9yICh2YXIgaSBpbiDliJfooagpIHtcXG5cXG7mlofku7blkI095YiX6KGoW2ldLmZpbGUuZmlsZU5hbWVcXG7mlofku7ZpZD3liJfooahbaV0uaWRcXG7mlofku7blpKflsI895YiX6KGoW2ldLmZpbGUuZmlsZVNpemVcXG5pZijmlofku7blpKflsI89PTAp5paH5Lu25ZCNPVxcXCJb5paH5Lu25aS5XVxcXCIr5paH5Lu25ZCNXFxu5paH5Lu26ZO+5o6lPeWIl+ihqFtpXS5saW5rXFxu5YiG5Lqr57uT5p2f5pe26Ze0PeWIl+ihqFtpXS5leHBpcmF0aW9uVGltZVxcbuWIhuS6q+W8gOWni+aXtumXtD3liJfooahbaV0uc2hhcmVUaW1lXFxuXFxuXFxuXFxuaWYo5YiG5Lqr57uT5p2f5pe26Ze0PT0wKeWIhuS6q+WJqeS9meaXtumXtD1cXFwi5rC45LmF5YiG5LqrXFxcIlxcbmVsc2Ug5YiG5Lqr5Ymp5L2Z5pe26Ze0PWludGVydmFsVGltZSjliIbkuqvlvIDlp4vml7bpl7Qs5YiG5Lqr57uT5p2f5pe26Ze0KVxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiDmlofku7blkI0sXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIixcXG4gICAgdXJsOlxcXCJjb3B5Oi8v5paH5Lu25ZCNOlxcXCIr5paH5Lu25ZCNKydcXFxcbicrXFxcIuaWh+S7tumTvuaOpTpcXFwiK+aWh+S7tumTvuaOpSxcXG5kZXNjOuWIhuS6q+WJqeS9meaXtumXtCxcXG5leHRyYTp7bG9uZ0NsaWNrOiBbe3RpdGxlOiBcXFwi5rWP6KeI5paH5Lu2XFxcIiwganM6ICQudG9TdHJpbmcoKOaWh+S7tmlkKT0+e1xcblxcbnJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL+ino+aekOWIhuS6q+mTvuaOpT9pZD1cXFwiK+aWh+S7tmlkXFxuICAgIFxcbiAgfSzmlofku7ZpZClcXG59LHt0aXRsZTogXFxcIue7iOatouWIhuS6q1xcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/kupHpvpnkupHnm5jlr4bpkqUs5paH5Lu2aWQpPT57XFxuXFxu5YiG5Lqr57uI5q2i6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Nsb3VkZmlsZS92MS9zdG9wLXNoYXJlXFxcIlxcblxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcblxcbui6q+S9kz1ge1xcXCJmb3JldmVyXFxcIjp0cnVlLFxcXCJpZHNcXFwiOltcXFwiYCvmlofku7ZpZCtgXFxcIl19YFxcblxcbnBvc3Qo5YiG5Lqr57uI5q2i6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuWIhuS6q+WIoOmZpOivt+axgj1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbG91ZGZpbGUvdjEvZGVsZXRlLXNoYXJlXFxcIlxcbui6q+S9kz1ge1xcXCJpZHNcXFwiOltcXFwiYCvmlofku7ZpZCtgXFxcIl19YFxcbnBvc3Qo5YiG5Lqr5Yig6Zmk6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5bey57uI5q2i5YiG5LqrXFxcIlxcblxcbiAgICBcXG4gIH0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOaWh+S7tmlkKVxcbn1dfX0pXFxuXFxuICAgICAgICAgICBcXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5aSW572R6LWE5rqQ4pGgXCIsXCJwYXRoXCI6XCLlpJbnvZHotYTmupDikaBcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxudmFyIGdldFJhbmdlQ29sb3JzID0gZnVuY3Rpb24oKSB7wqDCoMKgwqDCoMKgwqBcXG4gICAgcmV0dXJuICcjJyArICgnMDAwMDAnICsgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAgPDwgMCkudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTYpO8KgwqDCoMKgwqBcXG59XFxuXFxuLy/lrprkuYnlj5jph48s5L2c55So77yM5om+5YiG57G75a6a5L2NXFxuY29uc3Qg5YiG57G76aKc6ImyID0gZ2V0UmFuZ2VDb2xvcnMoKVxcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxubGV0IHBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIoXFxcInBhZ2VcXFwiLCBcXFwiMFxcXCIpKSArIE1ZX1BBR0UgLSAxO1xcblxcbmxvZyhwYWdlKVxcbuaVsOaNruivt+axgumTvuaOpT1cXFwiaHR0cHM6Ly9hcGkuaXBmcy1zZWFyY2guY29tL3YxL3NlYXJjaD9xPVxcXCIrZ2V0VmFyKCflpJbnvZHikaDmkJzntKLlhbPplK7or40nLCBcXFwiXFxcIikrZ2V0VmFyKCflpJbnvZHikaDmkJzntKLmlofku7blpKflsI8nLCBcXFwiXFxcIikrXFxcIiUyMGxhc3Qtc2VlbiUzQVxcXCIrZ2V0VmFyKCflpJbnvZHikaDmkJzntKLmlofku7blpKnmlbAnLCBcXFwiKlxcXCIpK1xcXCIlMjBtZXRhZGF0YS5Db250ZW50LVR5cGUlM0EoXFxcIitnZXRWYXIoJ+Wklue9keKRoOaQnOe0ouexu+WeiycsIFxcXCJ2aWRlb1xcXCIpK1xcXCIqKSZ0eXBlPWZpbGUmcGFnZT1cXFwiK3BhZ2VcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5sb2co5pWw5o2u6K+35rGC6ZO+5o6lKVxcblxcblxcbmlmKHBhZ2U9PTApe1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi54K55Ye75pCc57SiXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiLFxcbiAgICB1cmw6ICQoKS5pbnB1dCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRWYXIoJ+Wklue9keKRoOaQnOe0ouWFs+mUruivjScsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mkJzntKI6JytpbnB1dFxcbiAgICAgICAgICAgICAgICB9KVxcbn0pXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLliIfmjaI6XFxcIitnZXRWYXIoJ+Wklue9keKRoOaQnOe0ouexu+WeiycsIFxcXCJ2aWRlb1xcXCIpLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCIsXFxuICAgIHVybDogJChbXFxcInZpZGVvXFxcIixcXFwiaW1hZ2VcXFwiLFxcXCJhdWRpb1xcXCJdLCAxLCfpnIDopoHku4DkuYjnsbvlnovnmoTotYTmupDvvJ8nKS5zZWxlY3QoKCkgPT4ge1xcbnB1dFZhcign5aSW572R4pGg5pCc57Si57G75Z6LJywgaW5wdXQpXFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcbnJldHVybiAndG9hc3Q6Ly/liIfmjaLkuLo6JytpbnB1dFxcbn0pXFxufSlcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogZ2V0VmFyKCflpJbnvZHikaDmkJzntKLmlofku7blpKnmlbAnLCBcXFwiKlxcXCIpID09PSBcXFwiKlxcXCI/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICcgKyDliIbnsbvpopzoibIgKyAnXFxcIj7lhajpg6g8L3NwYW4+PC9iPicgOiBcXFwi5YWo6YOoXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG51cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuXFxucHV0VmFyKCflpJbnvZHikaDmkJzntKLmlofku7blpKnmlbAnLCBcXFwiKlxcXCIpXFxucmVmcmVzaFBhZ2UodHJ1ZSlcXG5yZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxufSlcXG59KVxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBnZXRWYXIoJ+Wklue9keKRoOaQnOe0ouaWh+S7tuWkqeaVsCcsIFxcXCIqXFxcIikgPT09IFxcXCIlNUIlMjBub3ctMjRoJTVDJTJGaCUyMFRPJTIwKiU1RFxcXCI/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICcgKyDliIbnsbvpopzoibIgKyAnXFxcIj4x5aSp5YaFPC9zcGFuPjwvYj4nIDogXFxcIjHlpKnlhoVcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG5cXG5wdXRWYXIoJ+Wklue9keKRoOaQnOe0ouaWh+S7tuWkqeaVsCcsIFxcXCIlNUIlMjBub3ctMjRoJTVDJTJGaCUyMFRPJTIwKiU1RFxcXCIpXFxucmVmcmVzaFBhZ2UodHJ1ZSlcXG5yZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxufSlcXG59KVxcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBnZXRWYXIoJ+Wklue9keKRoOaQnOe0ouaWh+S7tuWkqeaVsCcsIFxcXCIqXFxcIikgPT09IFxcXCIlNUIlMjBub3clNUMlMkZkLTdkJTIwVE8lMjAqJTVEXFxcIj8gJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVxcXCJjb2xvcjogJyArIOWIhuexu+minOiJsiArICdcXFwiPjflpKnlhoU8L3NwYW4+PC9iPicgOiBcXFwiN+WkqeWGhVxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxudXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcblxcbnB1dFZhcign5aSW572R4pGg5pCc57Si5paH5Lu25aSp5pWwJywgXFxcIiU1QiUyMG5vdyU1QyUyRmQtN2QlMjBUTyUyMColNURcXFwiKVxcbnJlZnJlc2hQYWdlKHRydWUpXFxucmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbn0pXFxufSlcXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogZ2V0VmFyKCflpJbnvZHikaDmkJzntKLmlofku7blpKnmlbAnLCBcXFwiKlxcXCIpID09PSBcXFwiJTVCJTIwbm93JTVDJTJGZC0zMGQlMjBUTyUyMColNURcXFwiPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAnICsg5YiG57G76aKc6ImyICsgJ1xcXCI+MzDlpKnlhoU8L3NwYW4+PC9iPicgOiBcXFwiMzDlpKnlhoVcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG5cXG5wdXRWYXIoJ+Wklue9keKRoOaQnOe0ouaWh+S7tuWkqeaVsCcsIFxcXCIlNUIlMjBub3clNUMlMkZkLTMwZCUyMFRPJTIwKiU1RFxcXCIpXFxucmVmcmVzaFBhZ2UodHJ1ZSlcXG5yZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxufSlcXG59KVxcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi56m655m95qC8XFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCIsXFxufSlcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogZ2V0VmFyKCflpJbnvZHikaDmkJzntKLmlofku7blpKflsI8nLCBcXFwiXFxcIikgPT09IFxcXCJcXFwiPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAnICsg5YiG57G76aKc6ImyICsgJ1xcXCI+5YWo6YOoPC9zcGFuPjwvYj4nIDogXFxcIuWFqOmDqFxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxudXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcblxcbnB1dFZhcign5aSW572R4pGg5pCc57Si5paH5Lu25aSn5bCPJywgXFxcIlxcXCIpXFxucmVmcmVzaFBhZ2UodHJ1ZSlcXG5yZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxufSlcXG4gICAgXFxufSlcXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogZ2V0VmFyKCflpJbnvZHikaDmkJzntKLmlofku7blpKflsI8nLCBcXFwiXFxcIikgPT09IFxcXCJzaXplJTNBJTNFMTA3Mzc0MTgyNCUyMFxcXCI/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICcgKyDliIbnsbvpopzoibIgKyAnXFxcIj4xRys8L3NwYW4+PC9iPicgOiBcXFwiMUcrXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG51cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuXFxucHV0VmFyKCflpJbnvZHikaDmkJzntKLmlofku7blpKflsI8nLCBcXFwic2l6ZSUzQSUzRTEwNzM3NDE4MjQlMjBcXFwiKVxcbnJlZnJlc2hQYWdlKHRydWUpXFxucmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbn0pXFxuICAgIFxcbn0pXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IGdldFZhcign5aSW572R4pGg5pCc57Si5paH5Lu25aSn5bCPJywgXFxcIlxcXCIpID09PSBcXFwic2l6ZSUzQSUzRTEwNDg1NzYwMCUyMHNpemUlM0ElM0MlM0QxMDczNzQxODI0XFxcIj8gJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVxcXCJjb2xvcjogJyArIOWIhuexu+minOiJsiArICdcXFwiPjEwME0tMUcrPC9zcGFuPjwvYj4nIDogXFxcIjEwME0tMUdcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG5cXG5wdXRWYXIoJ+Wklue9keKRoOaQnOe0ouaWh+S7tuWkp+WwjycsIFxcXCJzaXplJTNBJTNFMTA0ODU3NjAwJTIwc2l6ZSUzQSUzQyUzRDEwNzM3NDE4MjRcXFwiKVxcbnJlZnJlc2hQYWdlKHRydWUpXFxucmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbn0pXFxuICAgIFxcbn0pXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IGdldFZhcign5aSW572R4pGg5pCc57Si5paH5Lu25aSn5bCPJywgXFxcIlxcXCIpID09PSBcXFwic2l6ZSUzQSUzRTEwNDg1NzYwJTIwc2l6ZSUzQSUzQyUzRDEwNDg1NzYwMFxcXCI/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICcgKyDliIbnsbvpopzoibIgKyAnXFxcIj4xME0tMTAwTSs8L3NwYW4+PC9iPicgOiBcXFwiMTBNLTEwME1cXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbnVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG5cXG5wdXRWYXIoJ+Wklue9keKRoOaQnOe0ouaWh+S7tuWkp+WwjycsIFxcXCJzaXplJTNBJTNFMTA0ODU3NjAlMjBzaXplJTNBJTNDJTNEMTA0ODU3NjAwXFxcIilcXG5yZWZyZXNoUGFnZSh0cnVlKVxcbnJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG59KVxcbiAgICBcXG59KVxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBnZXRWYXIoJ+Wklue9keKRoOaQnOe0ouaWh+S7tuWkp+WwjycsIFxcXCJcXFwiKSA9PT0gXFxcInNpemUlM0ElM0MlM0QxMDQ4NTc2MFxcXCI/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICcgKyDliIbnsbvpopzoibIgKyAnXFxcIj4xTS0xME08L3NwYW4+PC9iPicgOiBcXFwiMU0tMTBNXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG51cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuXFxucHV0VmFyKCflpJbnvZHikaDmkJzntKLmlofku7blpKflsI8nLCBcXFwic2l6ZSUzQSUzQyUzRDEwNDg1NzYwXFxcIilcXG5yZWZyZXNoUGFnZSh0cnVlKVxcbnJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG59KVxcbiAgICBcXG59KVxcblxcblxcblxcbn1cXG5cXG5cXG5cXG7nrKzkuIDmrKHlk43lupQ9cmVxdWVzdCjmlbDmja7or7fmsYLpk77mjqUpXFxuXFxu5YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5oaXRzXFxuaWYo5YiX6KGoLmxlbmd0aD4wKXtcXG5mb3IgKHZhciBpIGluIOWIl+ihqCkge1xcblxcbmxvZyjliJfooahbaV0pXFxuXFxu5paH5Lu2Q0lEPeWIl+ihqFtpXS5oYXNoXFxu5paH5Lu25ZCNPeWIl+ihqFtpXS50aXRsZVxcbmlmKOaJvuWkmuS9mS50ZXN0KOaWh+S7tuWQjSkp5paH5Lu25ZCNPeaWh+S7tuWQjS5yZXBsYWNlKOaJvuWkmuS9mSxcXFwiXFxcIilcXG5cXG7mlofku7bnsbvlnos95YiX6KGoW2ldLm1pbWV0eXBlXFxu5paH5Lu25aSn5bCPPeWIl+ihqFtpXS5zaXplXFxuXFxu5LiK5Lyg5pe26Ze0PeWIl+ihqFtpXVsnY3JlYXRpb25fZGF0ZSddXFxu5pyA6L+R6K6/6ZeuPeWIl+ihqFtpXVtcXFwiZmlyc3Qtc2VlblxcXCJdXFxuXFxuXFxuXFxuaWYo5om+5paH5Lu25ZCN5ZCO57yALnRlc3Qo5paH5Lu25ZCNKT09ZmFsc2Up5paH5Lu25ZCNPeaWh+S7tuWQjStcXFwiLlxcXCIr5paH5Lu257G75Z6LLnNwbGl0KFxcXCIvXFxcIilbMV1cXG5cXG5pZijmib7lm77niYfmraPliJkudGVzdCjmlofku7bnsbvlnospKXtcXG5cXG7mlofku7bmoLzlvI89XFxcIjJcXFwiXFxu5qC85byPPVxcXCIjLmpwZ0BSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG5cXG59ZWxzZSBpZijmib7op4bpopHmraPliJkudGVzdCjmlofku7bnsbvlnospKXtcXG5cXG7mlofku7bmoLzlvI89XFxcIjNcXFwiXFxu5qC85byPPVxcXCIjaXNWaWRlbz10cnVlIzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcblxcbn1lbHNlIGlmKOaJvumfs+mikeato+WImS50ZXN0KOaWh+S7tuexu+Weiykpe1xcbuaWh+S7tuagvOW8jz1cXFwiNFxcXCJcXG7moLzlvI89XFxcIiMubXAzO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxuXFxufWVsc2V7XFxu5paH5Lu25qC85byPPVxcXCI1XFxcIlxcbuagvOW8jz1cXFwiXFxcIlxcblxcbn1cXG5cXG5cXG5kLnB1c2goe1xcbnRpdGxlOmkrXFxcIuOAgVxcXCIr5paH5Lu25ZCNLFxcbmRlc2M6XFxcIuaWh+S7tuWkp+WwjzpcXFwiK2Zvcm1hdFNpemUo5paH5Lu25aSn5bCPKStcXFwiIOacgOi/keiuv+mXrjpcXFwiK+acgOi/keiuv+mXrixcXG5jb2xfdHlwZTogXFxcInRleHRfMVxcXCIsXFxudXJsOuaWh+S7tkNJRCtcXFwiJiZcXFwiK+aWh+S7tuWQjStDSUTpk77mjqXop6PmnpAsXFxuZXh0cmE6e2xvbmdDbGljazogW3t0aXRsZTogXFxcIuWtmOiHs+e9keebmFxcXCIsIGpzOiAkLnRvU3RyaW5nKCjmlofku7blkI0s5paH5Lu25aSn5bCPLOaWh+S7tkNJRCzmlofku7bmoLzlvI8pPT57XFxuXFxuXFxuXFxuXFxu5bCP5LqR6b6Z5LqR55uY5a+G6ZKlID0gSlNPTi5wYXJzZShyZWFkRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG4gICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/kupHpvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqFtpXT1pK+Wwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5bCP6b6Z5LqR55uY77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUs5paH5Lu2Q0lELOaWh+S7tuWQjSzmlofku7bmoLzlvI8s5paH5Lu25aSn5bCPKSA9PiB7XFxuICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXJcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxuXFxuXFxuXFxuaWQ9YHtcXFwi5paH5Lu2Q0lEXFxcIjpcXFwiYCvmlofku7ZDSUQrYFxcXCIsXFxcIuaWh+S7tuWQjVxcXCI6XFxcImAr5paH5Lu25ZCNK2BcXFwiLFxcXCLmlofku7bmoLzlvI9cXFwiOlxcXCJgK+aWh+S7tuagvOW8jytgXFxcIixcXFwi5paH5Lu25aSn5bCPXFxcIjpcXFwiYCvmlofku7blpKflsI8rYFxcXCJ9YFxcblxcbnVzZXJpZD1cXFwi5pegKENJRClcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxubG9nKOmHjeWkjeivt+axguaWh+S7tuWkuSlcXG4gICAgICAgIHJldHVybiDph43lpI3or7fmsYLmlofku7blpLlcXG5cXG59LOWwj+S6kem+meS6keebmOWvhumSpSzmlofku7ZDSUQs5paH5Lu25ZCNLOaWh+S7tuagvOW8jyzmlofku7blpKflsI8pXFxuXFxuXFxuXFxuXFxufSzmlofku7blkI0s5paH5Lu25aSn5bCPLOaWh+S7tkNJRCzmlofku7bmoLzlvI8pXFxufV19XFxufSk7XFxuXFxufVxcbn1cXG5lbHNlIHtjbGVhclZhcign5aSW572R4pGg5pCc57Si5YWz6ZSu6K+NJyk7XFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi4oCc4oCc5Lul5LiK5Li65YWo6YOo5pCc57Si57uT5p6c77yM5LiK5ouJ5bCG5pi+56S65o6o6I2Q6LWE5rqQ4oCd4oCdXFxcIixcXG51cmw6XFxcInRvYXN0Oi8v54K55oiR5oiR5rKh5pyJXFxcIixcXG5jb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiXFxufSk7XFxufVxcblxcblxcbnNldFJlc3VsdChkKTtcXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWHveaVsFwiLFwicGF0aFwiOlwi5Ye95pWwXCIsXCJydWxlXCI6XCIvL2V2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxu5om+5Zu+54mH5q2j5YiZID0gL1xcXFwuKGpwZ3xnaWZ8cG5nfGpwZWd8d2VicHxpbWFnZSkkL2lcXG7mib7op4bpopHmraPliJkgPSAvXFxcXC4oYXZpfHRzfG1wNHxtb3Z8bTR2fDNncHxybXxybXZifHdtdnxhc2Z8YXN4YXZpfGRhdHxta3Z8Zmx2fHZvYikkL2lcXG7mib7pn7PpopHmraPliJkgPSAvXFxcXC4od2F2fGF1ZGlvfG1wM3x3bWF8bTRhfGZsYWMpJC9pXFxuXFxu5om+5paH5Lu25ZCN5ZCO57yAID0gL1xcXFwuXFxcXHcrJC9cXG7mib7lpJrkvZkgPSAvKFxcXFwuKHdlYnApfDxcXFxcLz9lbT4pL2lnXFxuXFxu6Lev5b6E6Ze06ZqUPVxcXCLiuJ1cXFwiXFxuXFxu5aSa5paH5Lu25YiG5Lqr5pWZ56iLPVxcXCLmk43kvZznm67lvZU6L3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9JUEZT6LWE5rqQL+S4tOaXtuWvvOWHuuWIhuS6qy8gXFxcXG7ms6jmhI86L3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV35Li65rW36ZiU6KeG55WM5YyF5ZCN5L2N572u77yM5q+P5Liq5Lq655qE5Y+v6IO95LiN5LiA5qC377yM5aSa5byA55qE5rW36ZiU6KeG55WM5oiR5Lmf5LiN5Lya5byE77yM5bCP56iL5bqP6YO95piv55So55qE55u45a+56Lev5b6E5LiN5Lya5Yay56qBXFxcXG5cXFxcblxcXFxu5YiG5Lqr5Lq65pON5L2cOlxcXFxu5bCG6K+l55uu5b2V55qE5omA5pyJ5paH5Lu25omT5YyF5YiG5Lqr57uZ5o6l5pS25Lq6XFxcXG5cXFxcblxcXFxu5o6l5pS25Lq65pON5L2cOlxcXFxu4pGg5YWI5qOA5p+l5LiK5pa555uu5b2V5piv5ZCm5a2Y5Zyo5paH5Lu277yM6Iul5pyJ5YiZ5Yig6Zmk55uu5b2V5LiL55qE5omA5pyJ5paH5Lu277yM6Iul5peg5paH5Lu25aS55YiZ5paw5bu65paH5Lu25aS5XFxcXG7ikaHop6PljovmiYDmnInmlofku7bliLDkuIrmlrnnm67lvZVcXFxcbuKRoua1t+mYlOinhueVjC3miJHnmoTlpIfku70t5pu05aSa5pON5L2cLeWIh+aNouWkh+S7vS3mt7vliqDlpIfku71cXFxcbuKRo+WwhuS4iuaWueebruW9leWhq+WFpea3u+WKoOWkh+S7vVxcXFxu4pGk5rW36ZiU6KeG55WMLeaIkeeahOWkh+S7vS3mm7TlpJrmk43kvZwt5YiH5o2i5aSH5Lu9LeS4tOaXtuWvvOWHuuWIhuS6q1xcXFxu4pGl6K+35Y+K5pe26L2s5a2Y5paH5Lu277yM6K+l55uu5b2V55qE5paH5Lu25Lya6KKr5LiL5qyh55qE5aSa5paH5Lu25YiG5Lqr55qE5pON5L2c6KaG55uWXFxcIlxcblxcblxcblxcbmZ1bmN0aW9uIGZvcm1hdFNpemUobGltaXQpIHtcXG4gICAgaWYgKCFsaW1pdCB8fCBOdW1iZXIobGltaXQpID09IDApIHJldHVybiAnJ1xcbiAgICBsaW1pdCA9IE51bWJlcihsaW1pdClcXG4gICAgLy8g5bCGc2l6ZSBC6L2s5o2i5oiQIE1cXG4gICAgdmFyIHNpemUgPSAnJ1xcbiAgICBpZiAobGltaXQgPCAxICogMTAyNCkge1xcbiAgICAgICAgLy/lsI/kuo4xS0LvvIzliJnovazljJbmiJBCXFxuICAgICAgICBzaXplID0gbGltaXQudG9GaXhlZCgyKSArICdCJ1xcbiAgICB9IGVsc2UgaWYgKGxpbWl0IDwgMSAqIDEwMjQgKiAxMDI0KSB7XFxuICAgICAgICAvL+Wwj+S6jjFNQu+8jOWImei9rOWMluaIkEtCXFxuICAgICAgICBzaXplID0gKGxpbWl0IC8gMTAyNCkudG9GaXhlZCgyKSArICdLQidcXG4gICAgfSBlbHNlIGlmIChsaW1pdCA8IDEgKiAxMDI0ICogMTAyNCAqIDEwMjQpIHtcXG4gICAgICAgIC8v5bCP5LqOMUdC77yM5YiZ6L2s5YyW5oiQTUJcXG4gICAgICAgIHNpemUgPSAobGltaXQgLyAoMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDIpICsgJ01CJ1xcbiAgICB9IGVsc2UgaWYgKGxpbWl0IDwgMSAqIDEwMjQgKiAxMDI0ICogMTAyNCAqIDEwMjQpIHtcXG4gICAgICAgIC8vLy/lsI/kuo4xVELvvIzliJnovazljJbmiJBHQlxcbiAgICAgICAgc2l6ZSA9IChsaW1pdCAvICgxMDI0ICogMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDIpICsgJ0dCJ1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgLy8vL+Wkp+S6jjFUQu+8jOWImei9rOWMluaIkFRCXFxuICAgICAgICBzaXplID0gKGxpbWl0IC8gKDEwMjQgKiAxMDI0ICogMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDIpICsgJ1RCJ1xcblxcbiAgICB9XFxuXFxuICAgIHZhciBzaXplU3RyID0gc2l6ZSArICcnIC8v6L2s5oiQ5a2X56ym5LiyXFxuICAgIHZhciBpbmRleCA9IHNpemVTdHIuaW5kZXhPZignLicpIC8v6I635Y+W5bCP5pWw54K55aSE55qE57Si5byVXFxuICAgIHZhciBkb3UgPSBzaXplU3RyLnN1YnN0cihpbmRleCArIDEsIDIpIC8v6I635Y+W5bCP5pWw54K55ZCO5Lik5L2N55qE5YC8XFxuICAgIGlmIChkb3UgPT0gJzAwJykge1xcbiAgICAgICAgLy/liKTmlq3lkI7kuKTkvY3mmK/lkKbkuLowMO+8jOWmguaenOaYr+WImeWIoOmZpDAwXFxuICAgICAgICByZXR1cm4gc2l6ZVN0ci5zdWJzdHJpbmcoMCwgaW5kZXgpICsgc2l6ZVN0ci5zdWJzdHIoaW5kZXggKyAzLCAyKVxcbiAgICB9XFxuICAgIHJldHVybiBzaXplXFxufVxcblxcblxcblxcbmZ1bmN0aW9uIOino+WvhuWIhuS6q+mTvuaOpShpKSB7XFxuXFxuICAgIG8gPSBcXFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL1xcXCJcXG4gICAgcyA9IC9bXFxcXHRcXFxcblxcXFxmXFxcXHIgXS9nXFxuXFxuXFxuXFxuICAgIGkgPSBTdHJpbmcoaSkucmVwbGFjZShzLCBcXFwiXFxcIik7XFxuICAgIHZhciBJID0gaS5sZW5ndGg7XFxuICAgIEkgJSA0ID09IDAgJiYgKGkgPSBpLnJlcGxhY2UoLz09PyQvLCBcXFwiXFxcIiksXFxuICAgICAgICAgICAgSSA9IGkubGVuZ3RoKSxcXG4gICAgICAgIChJICUgNCA9PSAxIHx8IC9bXithLXpBLVowLTkvXS8udGVzdChpKSkgJiYgbChcXFwiSW52YWxpZCBjaGFyYWN0ZXI6IHRoZSBzdHJpbmcgdG8gYmUgZGVjb2RlZCBpcyBub3QgY29ycmVjdGx5IGVuY29kZWQuXFxcIik7XFxuICAgIGZvciAodmFyIGYgPSAwLCBCLCBrLCBqID0gXFxcIlxcXCIsIEcgPSAtMTsgKytHIDwgSTspXFxuICAgICAgICBrID0gby5pbmRleE9mKGkuY2hhckF0KEcpKSxcXG4gICAgICAgIEIgPSBmICUgNCA/IEIgKiA2NCArIGsgOiBrLFxcbiAgICAgICAgZisrICUgNCAmJiAoaiArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSAmIEIgPj4gKC0yICogZiAmIDYpKSk7XFxuICAgIHJldHVybiBqXFxufVxcblxcblxcblxcblxcbi8v6K6h566X5Lik5Liq5pe26Ze05LmL6Ze055qE5pe26Ze05beuIOWkmuWwkeWkqeaXtuWIhuenklxcbmZ1bmN0aW9uIGludGVydmFsVGltZShzdGFydFRpbWUsIGVuZFRpbWUpIHtcXG4gICAgLy8gdmFyIHRpbWVzdGFtcD1uZXcgRGF0ZSgpLmdldFRpbWUoKTsgLy/orqHnrpflvZPliY3ml7bpl7TmiLNcXG4gICAgdmFyIHRpbWVzdGFtcCA9IChEYXRlLnBhcnNlKG5ldyBEYXRlKCkpKSAvIDEwMDA7IC8v6K6h566X5b2T5YmN5pe26Ze05oizICjmr6vnp5LnuqcpXFxuICAgIHZhciBkYXRlMSA9IFxcXCJcXFwiOyAvL+W8gOWni+aXtumXtFxcbiAgICBpZiAodGltZXN0YW1wIDwgc3RhcnRUaW1lKSB7XFxuICAgICAgICBkYXRlMSA9IHN0YXJ0VGltZTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGRhdGUxID0gdGltZXN0YW1wOyAvL+W8gOWni+aXtumXtFxcbiAgICB9XFxuICAgIHZhciBkYXRlMiA9IGVuZFRpbWU7IC8v57uT5p2f5pe26Ze0XFxuICAgIC8vIHZhciBkYXRlMyA9IGRhdGUyLmdldFRpbWUoKSAtIGRhdGUxLmdldFRpbWUoKTsgLy/ml7bpl7Tlt67nmoTmr6vnp5LmlbBcXG4gICAgdmFyIGRhdGUzID0gKGRhdGUyIC0gZGF0ZTEpICogMTAwMDsgLy/ml7bpl7Tlt67nmoTmr6vnp5LmlbBcXG4gICAgLy/orqHnrpflh7rnm7jlt67lpKnmlbBcXG4gICAgdmFyIGRheXMgPSBNYXRoLmZsb29yKGRhdGUzIC8gKDI0ICogMzYwMCAqIDEwMDApKTtcXG4gICAgLy/orqHnrpflh7rlsI/ml7bmlbBcXG5cXG4gICAgdmFyIGxlYXZlMSA9IGRhdGUzICUgKDI0ICogMzYwMCAqIDEwMDApOyAvL+iuoeeul+WkqeaVsOWQjuWJqeS9meeahOavq+enkuaVsFxcbiAgICB2YXIgaG91cnMgPSBNYXRoLmZsb29yKGxlYXZlMSAvICgzNjAwICogMTAwMCkpO1xcbiAgICAvL+iuoeeul+ebuOW3ruWIhumSn+aVsFxcbiAgICB2YXIgbGVhdmUyID0gbGVhdmUxICUgKDM2MDAgKiAxMDAwKTsgLy/orqHnrpflsI/ml7bmlbDlkI7liankvZnnmoTmr6vnp5LmlbBcXG4gICAgdmFyIG1pbnV0ZXMgPSBNYXRoLmZsb29yKGxlYXZlMiAvICg2MCAqIDEwMDApKTtcXG5cXG4gICAgLy/orqHnrpfnm7jlt67np5LmlbBcXG5cXG4gICAgdmFyIGxlYXZlMyA9IGxlYXZlMiAlICg2MCAqIDEwMDApOyAvL+iuoeeul+WIhumSn+aVsOWQjuWJqeS9meeahOavq+enkuaVsFxcbiAgICB2YXIgc2Vjb25kcyA9IE1hdGgucm91bmQobGVhdmUzIC8gMTAwMCk7XFxuICAgIGNvbnNvbGUubG9nKGRheXMgKyBcXFwi5aSpIFxcXCIgKyBob3VycyArIFxcXCLlsI/ml7YgXFxcIilcXG4gICAgLy8gcmV0dXJuICAgZGF5cyArIFxcXCLlpKkgXFxcIiArIGhvdXJzICsgXFxcIuWwj+aXtiBcXFwiICsgbWludXRlcyArIFxcXCIg5YiG6ZKfXFxcIiArIHNlY29uZHMgKyBcXFwiIOenklxcXCJcXG4gICAgcmV0dXJuIGRheXMgKyBcXFwi5aSpIFxcXCIgKyBob3VycyArIFxcXCLlsI/ml7YgXFxcIlxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG4vLyAxMOS9jeaXtumXtOaIs+enkui9rOaNouS4uuagh+WHhuaXtumXtCAxMOS9jeaXtumXtOaIs+S5mOS7pTEwMDBcXG5mdW5jdGlvbiB0aW1lc3RhbXBUb1RpbWUodGltZXN0YW1wKSB7XFxuICAgIHZhciBkYXRlID0gbmV3IERhdGUodGltZXN0YW1wICogMTAwMClcXG4gICAgdmFyIFkgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAnLSdcXG4gICAgdmFyIE0gPSAoZGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gJzAnICsgKGRhdGUuZ2V0TW9udGgoKSArIDEpIDogZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLSdcXG4gICAgY29uc3QgRCA9IChkYXRlLmdldERhdGUoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXREYXRlKCkgOiBkYXRlLmdldERhdGUoKSkgKyAnICdcXG4gICAgY29uc3QgaCA9IChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyAnOidcXG4gICAgY29uc3QgbSA9IChkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKSkgKyAnOidcXG4gICAgY29uc3QgcyA9IChkYXRlLmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRTZWNvbmRzKCkgOiBkYXRlLmdldFNlY29uZHMoKSlcXG4gICAgcmV0dXJuIFkgKyBNICsgRCArIGggKyBtICsgc1xcbn1cXG5cXG5cXG5cXG4vLyAxM+S9jeaXtumXtOaIs+avq+enkuS4jeeUqOS5mOS7pTEwMDBcXG5mdW5jdGlvbiB0aW1lc3RhbXBUb1RpbWVMb25nKHRpbWVzdGFtcCkge1xcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcClcXG4gICAgdmFyIFkgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAnLSdcXG4gICAgdmFyIE0gPSAoZGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gJzAnICsgKGRhdGUuZ2V0TW9udGgoKSArIDEpIDogZGF0ZS5nZXRNb250aCgpICsgMSkgKyAnLSdcXG4gICAgY29uc3QgRCA9IChkYXRlLmdldERhdGUoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXREYXRlKCkgOiBkYXRlLmdldERhdGUoKSkgKyAnICdcXG4gICAgY29uc3QgaCA9IChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyAnOidcXG4gICAgY29uc3QgbSA9IChkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKSkgKyAnOidcXG4gICAgY29uc3QgcyA9IChkYXRlLmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRTZWNvbmRzKCkgOiBkYXRlLmdldFNlY29uZHMoKSlcXG4gICAgcmV0dXJuIFkgKyBNICsgRCArIGggKyBtICsgc1xcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG4vKlxcbi8v5pe26Ze05oiz6L2s5o2iXFxuZnVuY3Rpb24gdGltZXN0YW1wVG9UaW1lKHRtLCB0cykge1xcbiAgICB1bmRlZmluZWRcXG4gICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0bSAqIDEwMDApOyAvL+aXtumXtOaIs+S4ujEw5L2N6ZyAKjEwMDDvvIzml7bpl7TmiLPkuLoxM+S9jeeahOivneS4jemcgOS5mDEwMDBcXG4gICAgdmFyIFkgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAnLSc7XFxuICAgIHZhciBNID0gKGRhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/ICcwJyArIChkYXRlLmdldE1vbnRoKCkgKyAxKSA6IGRhdGUuZ2V0TW9udGgoKSArIDEpICsgJy0nO1xcbiAgICB2YXIgRCA9IGRhdGUuZ2V0RGF0ZSgpO1xcbiAgICB2YXIgaCA9ICcgfCAnICsgZGF0ZS5nZXRIb3VycygpICsgJzonO1xcbiAgICB2YXIgbSA9IGRhdGUuZ2V0TWludXRlcygpO1xcbiAgICBpZiAobSA8IDEwKSBtID0gJzAnICsgbTtcXG4gICAgbSA9IG0gKyAnOidcXG4gICAgdmFyIHMgPSBkYXRlLmdldFNlY29uZHMoKTtcXG4gICAgaWYgKHMgPCAxMCkgcyA9ICcwJyArIHM7XFxuICAgIGlmICh0cyA9PSAwKSByZXR1cm4gWSArIE0gKyBEO1xcbiAgICBpZiAodHMgPT0gMSkgcmV0dXJuIFkgKyBNICsgRCArIGggKyBtICsgcztcXG59XFxuKi9cXG5cXG5cXG4vKiogKiDml6XmnJ/moLzlvI/ljJYgKiBAcGFyYW0gTnVtYmVyIHRpbWUg5pe26Ze05oizICogQHBhcmFtIFN0cmluZyBmb3JtYXQg5qC85byPICovXFxuXFxuLy/ml7bpl7TmiLPovazkuLrml6XmnJ9cXG5mdW5jdGlvbiBkYXRlRm9ybWF0KHRpbWUsIGZvcm1hdCkge1xcbiAgICBjb25zdCB0ID0gbmV3IERhdGUodGltZSkgLy8g5pel5pyf5qC85byPXFxuICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnWS1tLWQgaDppOnMnXFxuICAgIGxldCB5ZWFyID0gdC5nZXRGdWxsWWVhcigpIC8vIOeUseS6jiBnZXRNb250aCDov5Tlm57lgLzkvJrmr5TmraPluLjmnIjku73lsI8gMSBcXG4gICAgbGV0IG1vbnRoID0gdC5nZXRNb250aCgpICsgMVxcbiAgICBsZXQgZGF5ID0gdC5nZXREYXRlKClcXG4gICAgbGV0IGhvdXJzID0gdC5nZXRIb3VycygpXFxuICAgIGxldCBtaW51dGVzID0gdC5nZXRNaW51dGVzKClcXG4gICAgbGV0IHNlY29uZHMgPSB0LmdldFNlY29uZHMoKVxcbiAgICBjb25zdCBoYXNoID0ge1xcbiAgICAgICAgJ3knOiB5ZWFyLFxcbiAgICAgICAgJ20nOiBtb250aCxcXG4gICAgICAgICdkJzogZGF5LFxcbiAgICAgICAgJ2gnOiBob3VycyxcXG4gICAgICAgICdpJzogbWludXRlcyxcXG4gICAgICAgICdzJzogc2Vjb25kc1xcbiAgICB9IC8vIOaYr+WQpuihpSAwIFxcbiAgICBjb25zdCBpc0FkZFplcm8gPSAobykgPT4ge1xcbiAgICAgICAgcmV0dXJuIC9NfER8SHxJfFMvLnRlc3QobylcXG4gICAgfVxcbiAgICByZXR1cm4gZm9ybWF0LnJlcGxhY2UoL1xcXFx3L2csIG8gPT4ge1xcbiAgICAgICAgbGV0IHJ0ID0gaGFzaFtvLnRvTG9jYWxlTG93ZXJDYXNlKCldXFxuICAgICAgICByZXR1cm4gcnQgPiAxMCB8fCAhaXNBZGRaZXJvKG8pID8gcnQgOiBgMCR7cnR9YFxcbiAgICB9KVxcbn1cXG5cXG5cXG5cXG4vL+iOt+WPluWtl+espuS4sueahOWtl+iKguaVsCBcXG5mdW5jdGlvbiDojrflj5blrZfoioLmlbAoa2V5KSB7XFxuICAgIHZhciDmib7kuK3mlocgPSAvW1xcXFx1NGUwMC1cXFxcdTlmYTVdL2c7XFxuICAgIGlmICjmib7kuK3mlocudGVzdChrZXkpKSB7XFxuICAgICAgICDkuK3mlofmlbAgPSBrZXkubWF0Y2go5om+5Lit5paHKS5sZW5ndGhcXG4gICAgICAgIHJldHVybiBrZXkubGVuZ3RoICsg5Lit5paH5pWwICogMjtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJldHVybiBrZXkubGVuZ3RoO1xcbiAgICB9XFxufVxcblxcblxcbmZ1bmN0aW9uIOiOt+WPluWwj+m+meS6keebmOaSreaUvue6v+i3rygpe1xcbiAgICBcXG4gICAg6I635Y+W5pKt5pS+57q/6Lev6K+35rGCPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2NvbmZpZy1jZW50ZXIvdjEvY29uZmlnXFxcIlxcbiAgICBcXG4gICAg5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK3N0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxufVxcblxcblxcbiAgICAgICAgICAgICAgICDouqvkvZMgPWB7YCtgXFxcInBsYXRmb3JtXFxcIjpcXFwiYW5kcm9pZFxcXCIsXFxcImFwcHNcXFwiOltcXFwiZGN0XFxcIixcXFwiY2xvdWRcXFwiYCtgXX1gXFxu57q/6Lev5ZON5bqUID0gcG9zdCjojrflj5bmkq3mlL7nur/ot6/or7fmsYIsIHtcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgXFxu57q/6Lev5pWw57uEPUpTT04ucGFyc2Uo57q/6Lev5ZON5bqUKS5kYXRhLmNvbW1vbi5pcGZzZ3dcXG5cXG5mb3IodmFyIGkgaW4g57q/6Lev5pWw57uEKXtcXG4gICAg57q/6Lev5pWw57uEW2ldPee6v+i3r+aVsOe7hFtpXS5hZGRyK1xcXCIvaXBmcy9cXFwiXFxufVxcblxcbnJldHVybiDnur/ot6/mlbDnu4RcXG5cXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAgXFxufVxcblxcblxcblxcblxcbnZhciBDSUTpk77mjqXop6PmnpAgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG5cXG4vL2lucHV0PUNJRCYm5paH5Lu25ZCNXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG7mlofku7ZDSUQ9aW5wdXQuc3BsaXQoXFxcIiYmXFxcIilbMF1cXG7moIfpopg9aW5wdXQuc3BsaXQoXFxcIiYmXFxcIilbMV1cXG5cXG5cXG5cXG5cXG5pZijmib7op4bpopHmraPliJkudGVzdCjmoIfpopgpKXtcXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7mlrDmoLzlvI89JyNpc1ZpZGVvPXRydWUjJ1xcbuagvOW8jz1cXFwiI2lzVmlkZW89dHJ1ZSM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG5cXG5cXG5cXG5cXG59ZWxzZSBpZijmib7pn7PpopHmraPliJkudGVzdCjmoIfpopgpKXtcXG5cXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7mlrDmoLzlvI89JyMubXAzJ1xcbuagvOW8jz1cXFwiIy5tcDM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG5cXG5cXG5cXG59ZWxzZSBpZijmib7lm77niYfmraPliJkudGVzdCjmoIfpopgpKXtcXG5cXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7mlrDmoLzlvI89JyMuanBnJ1xcbuagvOW8jz1cXFwiIy5qcGdAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxuXFxuXFxufWVsc2V7XFxu6ZO+5o6l5YmN57yAPVxcXCJkb3dubG9hZDovL1xcXCJcXG7mlrDmoLzlvI89XFxcIlxcXCJcXG7moLzlvI89XFxcIjt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcblxcbn1cXG5cXG7lpJbpk749XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRFxcblxcblxcblxcbue6v+i3rzE9XFxcImh0dHBzOi8vaXBmc2d3MDEuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevMj1cXFwiaHR0cHM6Ly9pcGZzZ3cwMi5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot68zPVxcXCJodHRwczovL2lwZnNndzAzLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzQ9XFxcImh0dHBzOi8vaXBmc2d3MDQuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevNT1cXFwiaHR0cHM6Ly9pcGZzZ3cwNS5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG5cXG4vL+e6v+i3rzY9XFxcImh0dHBzOi8vaXBmcy5qdWd1Z3UuY24vaXBmcy9cXFwiK+aWh+S7tkNJRFxcbue6v+i3rzY9XFxcImh0dHBzOi8vaXBmcy1ndy5ubWVkaWEuc3BhY2UvaXBmcy9cXFwiK+aWh+S7tkNJRFxcblxcbi8v57q/6LevNz1cXFwiaHR0cHM6Ly9cXFwiK+aWh+S7tkNJRCtcXFwiLmlwZnMudzNzLmxpbmsvI3gtaXBmcy1jb21wYW5pb24tbm8tcmVkaXJlY3RcXFwiXFxuLy/nur/ot683PVxcXCJodHRwczovL1xcXCIr5paH5Lu2Q0lEK1xcXCIuaXBmcy5uZnRzdG9yYWdlLmxpbmsvXFxcIlxcblxcbue6v+i3rzc9XFxcImh0dHBzOi8vZ2xpcGZzLmNvbS9pcGZzL1xcXCIr5paH5Lu2Q0lEXFxuXFxuLypcXG7mib7nur/ot6/nvZHnq5lcXG5hY2djbi5tbFxcbmh0dHBzOi8vaXBmcy5iaXRhcmsuaW5mby9pcGZzL1xcblxcbiovXFxuXFxu5YW25LuW57q/6Lev5pWw57uEPVtcXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEXFxuLFxcXCJodHRwczovL2lwZnMuczExZWRhby5jb20vaXBmcy9cXFwiK+aWh+S7tkNJRCxcXFwiaHR0cHM6Ly9pcGZzLmJpdGFyay5pbmZvL2lwZnMvXFxcIivmlofku7ZDSUQsXFxcImh0dHBzOi8vZ2xpcGZzLmNvbS9pcGZzL1xcXCIr5paH5Lu2Q0lELFxcXCJodHRwczovL2lwZnMtZ3cubm1lZGlhLnNwYWNlL2lwZnMvXFxcIivmlofku7ZDSUQsXFxcImh0dHBzOi8vaW1nLmtlbm5lbGNsdWIucHJvL2lwZnMvXFxcIivmlofku7ZDSUQsXFxcImh0dHBzOi8vaXBmcy1ndy5ubWVkaWEuc3BhY2UvaXBmcy9cXFwiK+aWh+S7tkNJRF1cXG5cXG5cXG5cXG5cXG5cXG5pZihzdG9yYWdlMC5nZXRJdGVtKCdJUEZT6LWE5rqQ5Lu75Yqh5pe26Ze05oizJykpe1xcblxcbmlmKHN0b3JhZ2UwLmdldEl0ZW0oJ0lQRlPotYTmupDku7vliqHml7bpl7TmiLMnKSE9bmV3IERhdGUoKS50b0RhdGVTdHJpbmcoKSl7XFxuXFxu5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEPeiOt+WPluWwj+m+meS6keebmOaSreaUvue6v+i3rygpXFxuc3RvcmFnZTAuc2V0SXRlbSgn5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEJywg5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEKVxcblxcbnN0b3JhZ2UwLnNldEl0ZW0oJ0lQRlPotYTmupDku7vliqHml7bpl7TmiLMnLG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCkpXFxufVxcblxcbn1lbHNle1xcblxcbuWwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hD3ojrflj5blsI/pvpnkupHnm5jmkq3mlL7nur/ot68oKVxcbnN0b3JhZ2UwLnNldEl0ZW0oJ+Wwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hCcsIOWwj+m+meS6keebmOaSreaUvue6v+i3r+aVsOe7hClcXG5zdG9yYWdlMC5zZXRJdGVtKCdJUEZT6LWE5rqQ5Lu75Yqh5pe26Ze05oizJyxuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpKVxcbn1cXG5cXG5cXG5cXG5cXG4vLy8vLy/nlJ/miJDlpJrnur/ot69cXG5cXG4vKlxcbumTvuaOpTU955Sf5oiQ55u06ZO+KOe6v+i3rzUs5paH5Lu2Q0lELOagh+mimClcXG7pk77mjqU0PeeUn+aIkOebtOmTvijnur/ot680LOaWh+S7tkNJRCzmoIfpopgpXFxu6ZO+5o6lMz3nlJ/miJDnm7Tpk74o57q/6LevMyzmlofku7ZDSUQs5qCH6aKYKVxcbumTvuaOpTI955Sf5oiQ55u06ZO+KOe6v+i3rzIs5paH5Lu2Q0lELOagh+mimClcXG7pk77mjqUxPeeUn+aIkOebtOmTvijnur/ot68xLOaWh+S7tkNJRCzmoIfpopgpXFxuKi9cXG5cXG7lsI/pvpnkupHnm5jmkq3mlL7nur/ot6/mlbDnu4Q9c3RvcmFnZTAuZ2V0SXRlbSgn5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEJylcXG5mb3IodmFyIGkgaW4g5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEKXtcXG4gICAg5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uEW2ldPeeUn+aIkOebtOmTvijlsI/pvpnkupHnm5jmkq3mlL7nur/ot6/mlbDnu4RbaV0s5paH5Lu2Q0lELOagh+mimCkr5paw5qC85byPXFxufVxcbi8q5L+d5oyB5oC757q/6Lev5Li65YG25pWw5a+556ewXFxuaWYo5bCP6b6Z5LqR55uY5pKt5pS+57q/6Lev5pWw57uELmxlbmd0aCUyKXtcXG5pZijlhbbku5bnur/ot6/mlbDnu4QubGVuZ3RoJTIp5YW25LuW57q/6Lev5pWw57uEPeWFtuS7lue6v+i3r+aVsOe7hFxcbmVsc2Ug5YW25LuW57q/6Lev5pWw57uEPeWFtuS7lue6v+i3r+aVsOe7hFxcbn1lbHNle1xcbiAgICBpZijlhbbku5bnur/ot6/mlbDnu4QubGVuZ3RoJTIp5YW25LuW57q/6Lev5pWw57uEPeWFtuS7lue6v+i3r+aVsOe7hFxcbmVsc2Ug5YW25LuW57q/6Lev5pWw57uEPeWFtuS7lue6v+i3r+aVsOe7hFxcbiAgICB9XFxuICAgIFxcbiAgICAqL1xcblxcbuWkmue6v+i3r+mTvuaOpT3lsI/pvpnkupHnm5jmkq3mlL7nur/ot6/mlbDnu4QuY29uY2F0KOWFtuS7lue6v+i3r+aVsOe7hClcXG7nur/ot6/lpLTpg6g9W11cXG7nur/ot6/lkI3np7A9W11cXG7nur/ot6/lkI3np7Dlj5jph489MVxcblxcbuiHquWumuS5iVVBPSdEYWx2aWsvMi4xLjAgKExpbnV4OyBVOyBBbmRyb2lkIDEyOyAyMjAxMTIyQyBCdWlsZC9TS1ExLjIxMTAwNi4wMDEpJ1xcbmZvcih2YXIgaSBpbiDlpJrnur/ot6/pk77mjqUpe1xcbiAgICBcXG4gICAgaWYo5aSa57q/6Lev6ZO+5o6lW2ldLmluY2x1ZGVzKFxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnNcXFwiKSl7XFxuICAgICAgICDnur/ot6/lpLTpg6hbaV09eydSZWZlcmVyJzogJ2h0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tLycsJ1VzZXItQWdlbnQnOiDoh6rlrprkuYlVQX1cXG4gICAgICAgIOe6v+i3r+WQjeensFtpXT1cXFwi5bCP6b6Z5aSW6ZO+XFxcIlxcbiAgICB9ZWxzZSBpZijlpJrnur/ot6/pk77mjqVbaV0uaW5jbHVkZXMoXFxcInN0YXJpdmVycGFuLmNvbVxcXCIpKXtcXG4gICAgICAg57q/6Lev5aS06YOoW2ldPXsnVXNlci1BZ2VudCc66Ieq5a6a5LmJVUF9XFxuICAgICAgIOe6v+i3r+WQjeensFtpXT1cXFwi5bCP6b6Z57q/6LevXFxcIivnur/ot6/lkI3np7Dlj5jph49cXG4gICAgfWVsc2V7XFxuICAgICAgIOe6v+i3r+WktOmDqFtpXT17J1VzZXItQWdlbnQnOuiHquWumuS5iVVBfVxcbiAgICAgICDnur/ot6/lkI3np7BbaV09XFxcIuWFtuS7lue6v+i3r1xcXCIr57q/6Lev5ZCN56ew5Y+Y6YePXFxuICAgIH1cXG4gICAg57q/6Lev5ZCN56ew5Y+Y6YePKytcXG4gICAgXFxuICAgIFxcbn1cXG5cXG5cXG7lpJrnur/ot689e3VybHM65aSa57q/6Lev6ZO+5o6lLGhlYWRlcnM657q/6Lev5aS06YOoLG5hbWVzOue6v+i3r+WQjeensH1cXG5cXG4vKlxcblxcbuWkmue6v+i3r+mTvuaOpT1b57q/6LevMSvmlrDmoLzlvI8s57q/6LevMivmlrDmoLzlvI8s57q/6LevMyvmlrDmoLzlvI8s57q/6LevNCvmlrDmoLzlvI8r5paw5qC85byPLOe6v+i3rzYr5paw5qC85byPLOe6v+i3rzcr5paw5qC85byPXVxcblxcblxcbuWkmue6v+i3rz17dXJsczrlpJrnur/ot6/pk77mjqUsIGhlYWRlcnM6IFt7J1VzZXItQWdlbnQnOuiHquWumuS5iVVBfSwgeydVc2VyLUFnZW50Jzroh6rlrprkuYlVQX0sIHsnVXNlci1BZ2VudCc66Ieq5a6a5LmJVUF9LCB7J1VzZXItQWdlbnQnOuiHquWumuS5iVVBfSwgeydVc2VyLUFnZW50Jzroh6rlrprkuYlVQX0seydSZWZlcmVyJzogJ2h0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tLycsJ1VzZXItQWdlbnQnOiDoh6rlrprkuYlVQX0seydVc2VyLUFnZW50Jzog6Ieq5a6a5LmJVUF9LHsnVXNlci1BZ2VudCc6IOiHquWumuS5iVVBfV0sbmFtZXM6Wyfnur/ot681Jywn57q/6LevNCcsJ+e6v+i3rzMnLCfnur/ot68yJywn57q/6LevMScsJ+WklumTvicsJ+e6v+i3rzYnLCfnur/ot683J119XFxuXFxuKi9cXG5cXG4vLy8vLy8v55Sf5oiQ5aSa57q/6LevXFxuXFxuaWYoLyhtcDN8aXNWaWRlbykvLnRlc3Qo5paw5qC85byPKSl7XFxuICAgIFxcblxcblxcblxcbnJldHVybiBKU09OLnN0cmluZ2lmeSjlpJrnur/ot68pXFxuXFxuXFxufWVsc2UgcmV0dXJuICQo57q/6Lev5ZCN56ewLCAyLOaWsOagvOW8jz09JyMuanBnJz8n6YCJ5oup6Kej5p6Q57q/6LevJzon6YCJ5oup5LiL6L2957q/6LevJykuc2VsZWN0KCjnur/ot6/lkI3np7As5aSa57q/6Lev6ZO+5o6lLOaWsOagvOW8jyzmoLzlvI8pID0+IHtcXG4gICAg54K55Ye75L2N572uPee6v+i3r+WQjeensC5maW5kSW5kZXgoaXQgPT4gaXQgPT09IGlucHV0KTtcXG4gICAg5paH5Lu26ZO+5o6lPeWkmue6v+i3r+mTvuaOpVvngrnlh7vkvY3nva5dXFxuICAgIGlmKOaWsOagvOW8jz09JyMuanBnJyl7XFxuICAgIGlmKOaWh+S7tumTvuaOpS5pbmNsdWRlcyhcXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzXFxcIikpIHJldHVybiDmlofku7bpk77mjqUr5qC85byPXFxuICAgIGVsc2UgcmV0dXJuIOaWh+S7tumTvuaOpSvmlrDmoLzlvI9cXG4gICAgfWVsc2V7XFxuICAgICAgICBpZijmlofku7bpk77mjqUuaW5jbHVkZXMoXFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmc1xcXCIpKSByZXR1cm4gXFxcImRvd25sb2FkOi8vXFxcIivmlofku7bpk77mjqUrJzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99J1xcbiAgICBlbHNlIHJldHVybiBcXFwiZG93bmxvYWQ6Ly9cXFwiK+aWh+S7tumTvuaOpVxcbiAgICB9XFxufSznur/ot6/lkI3np7As5aSa57q/6Lev6ZO+5o6lLOaWsOagvOW8jyzmoLzlvI8pXFxuXFxuXFxucmV0dXJuIOmTvuaOpeWJjee8gCvlpJbpk74r5qC85byPXFxuXFxuXFxuXFxuXFxuLy/ogIHpk77mjqU9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20mJlxcXCIr5paw5qC85byPXFxuXFxufSlcXG5cXG5cXG5cXG5mdW5jdGlvbiDop6Plr4bmqKHmnb8o56eY5paHLCBrZXksaXYpIHtcXG4gICAgXFxuICAgIGV2YWwoZ2V0Q3J5cHRvSlMoKSk7XFxuXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ3J5cHRvSlMuQUVTLmRlY3J5cHQo56eY5paHLCBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShrZXkpLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcIml2XFxcIjogQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoaXYpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJtb2RlXFxcIjogQ3J5cHRvSlMubW9kZS5DQkMsXFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcInBhZGRpbmdcXFwiOiBDcnlwdG9KUy5wYWQuUGtjczdcXG4gICAgICAgICAgICAgICAgICAgIH0pLnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KVxcbiAgICAgICAgICAgICAgICB9XFxuXFxuXFxuXFxuXFxuXFxudmFyIOS4g+iJsueVquino+aekCA9ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXG5cXG7nvZHpobXmupDnoIE9cmVxdWVzdChpbnB1dCwge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiaVBob25lXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJDb29raWVcXFwiOiBcXFwidXNlcl9pZD01MDY7IHVzZXJfbmFtZT0xMjc5OTc0NDA7IGdyb3VwX2lkPTI7IGdyb3VwX25hbWU9JUU5JUJCJTk4JUU4JUFFJUE0JUU0JUJDJTlBJUU1JTkxJTk4OyB1c2VyX2NoZWNrPTkzNTgwMGZhMDIyZTk1OGU2ZTk4ZTZkMTJhZjM0ZDhhOyB1c2VyX3BvcnRyYWl0PSUyRnN0YXRpYyUyRmltYWdlcyUyRnRvdXhpYW5nLnBuZ1xcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxuICAgIHZhciDmlbDmja4gPSBKU09OLnBhcnNlKOe9kemhtea6kOeggS5tYXRjaCgvciBwbGF5ZXJfLio/PSguKj8pPC8pWzFdKVxcblxcbiAgICB2YXIgdXJsID0g5pWw5o2uLnVybFxcbiAgICB2YXIgZW5jcnlwdD3mlbDmja4uZW5jcnlwdFxcbiAgICB2YXIgZnJvbT3mlbDmja4uZnJvbVxcblxcbiAgICBpZiAo5pWw5o2uLmVuY3J5cHQgPT0gJzEnKSB7XFxuICAgICAgICB1cmwgPSB1bmVzY2FwZSh1cmwpO1xcbiAgICB9IGVsc2UgaWYgKOaVsOaNri5lbmNyeXB0ID09ICcyJykge1xcbiAgICAgICAgdXJsID0gdW5lc2NhcGUoYmFzZTY0RGVjb2RlKHVybCkpO1xcbiAgICB9XFxuaWYgKC9tM3U4fG1wNC8udGVzdCh1cmwpKSAgIHJldHVybiB1cmxcXG5cXG5sb2codXJsKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxu56ys5LqM5qyh6K+35rGCPWdldE15VmFyKFxcXCLkuIPoibLnlarln5/lkI1cXFwiKS5yZXBsYWNlKFxcXCJ3d3cuXFxcIixcXFwicGxheS5cXFwiKStcXFwiL3BsYXkucGhwP3VybD1cXFwiK3VybFxcblxcbnVybD1yZXF1ZXN0KOesrOS6jOasoeivt+axgilcXG5cXG5ldmFsKHBkZmgodXJsLCdib2R5JiZzY3JpcHQmJkh0bWwnKS5tYXRjaCgvdmFyIGNvbmZpZyA9IHtbXFxcXHNcXFxcU10qP30vKVswXSlcXG51cmw9Y29uZmlnLnVybFxcblxcbmxvZyh1cmwpXFxuXFxua2V5PVxcXCJXZWlLYW5KdTIwMjMwMjA2XFxcIlxcbml2PVxcXCI5ZmE0MjhhNWZjMWM0ZDA4XFxcIlxcblxcblxcblxcblxcblxcbnVybD3op6Plr4bmqKHmnb8odXJsLGtleSxpdikubWF0Y2goL1xcXFx3ezU5fS8pWzBdXFxuXFxuXFxuXFxuXFxubG9nKHVybClcXG5cXG5yZXR1cm4gdXJsK1xcXCImJi5tcDRcXFwiK0NJROmTvuaOpeino+aekFxcblxcblxcblxcblxcbn0pXFxuXFxuXFxuXFxuXFxuXFxuZnVuY3Rpb24g6I635Y+W5paH5Lu25aSn5bCPKENJRCkge1xcblxcbnNob3dMb2FkaW5nKCfojrflj5bmlofku7blpKflsI/kuK0uLi4uLicpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG7nur/ot689XFxcImh0dHBzOi8vaXBmc2d3MDQuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxuXFxuXFxu6K+35rGC6ZO+5o6lPeeUn+aIkOebtOmTvijnur/ot68sQ0lEKVxcblxcbi8v6K+35rGC6ZO+5o6lPVxcXCJodHRwczovL2lwZnNndzA0LnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIitDSUQrXFxcIj9maWxlbmFtZT0wJnY9MSZ0PVxcXCIrbmV3IERhdGUoKS5nZXRUaW1lKCkrXFxcIiZ1PTBcXFwiXFxuXFxuZm9yICg7Oykge1xcbuWTjeW6lOWktOmDqD1yZXF1ZXN0KOivt+axgumTvuaOpSx7b25seUhlYWRlcnM6dHJ1ZX0pXFxuaWYo5ZON5bqU5aS06YOoLmluY2x1ZGVzKFxcXCJjb250ZW50LWxlbmd0aFxcXCIpKSBicmVhaztcXG59XFxuXFxuXFxuaGlkZUxvYWRpbmcoKVxcbnJldHVybiBKU09OLnBhcnNlKOWTjeW6lOWktOmDqCkuaGVhZGVyc1tcXFwiY29udGVudC1sZW5ndGhcXFwiXVswXVxcblxcbn1cXG5cXG5cXG5cXG4vLy/ljrvph43liqDmjpLluo9cXG4vL+aOkuW6j+aMiTrnrKblj7c+5pWw57uEPuS4reaWhz7lsI/lhpnlrZfmr40+5aSn5YaZ5a2X5q+NXFxuXFxuZnVuY3Rpb24g5pWw57uE5Y676YeNKOaVsOe7hCkge1xcblxcbmZvciAodmFyIGkgPSAxOyBpIDwg5pWw57uELmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8PSBpOyBqKyspIHtcXG4gICAgICAgICAgICDmr5TovoNhPeaVsOe7hFtpXVxcbiAgICAgICAgICAgIOavlOi+g2I95pWw57uEW2kgLSBqXVxcbiAgICAgICAgICAgIGlmKOaVsOe7hFtpXSA9PT0gT2JqZWN0KVxcbiAgICAgICAgICAgIOavlOi+g2E9SlNPTi5zdHJpbmdpZnko5pWw57uEW2ldKVxcbiAgICAgICAgICAgIGlmKOaVsOe7hFtpIC0gal0gPT09IE9iamVjdClcXG4gICAgICAgICAgICDmr5TovoNiPUpTT04uc3RyaW5naWZ5KOaVsOe7hFtpIC0gal0pXFxuICAgICAgICAgICAgXFxuICAgICAgICAgICAgaWYgKOavlOi+g2EgPT0g5q+U6L6DYikge1xcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAg5pWw57uELnNwbGljZShpLDEpO1xcbiAgICAgICAgICAgICAgICBpLS1cXG5cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIFxcbiAgICAgICAgfVxcbiAgICB9XFxuXFxuXFxubGV0IOi/h+a7pOWFg+e0oCA9W3VuZGVmaW5lZCwnJywsZmFsc2UsdHJ1ZSxudWxsXSBcXG7ov4fmu6TlhYPntKAuZmlsdGVyKOaVsOe7hD0+5pWw57uEKVxcbiAgICBcXG50cnkge1xcbiAgICBcXG4gICAgXFxuICAgIOaVsOe7hCA9IOaVsOe7hC5zb3J0KFxcbihhLGIpPT5hLuaWh+S7tuWQjS5sb2NhbGVDb21wYXJlKGIu5paH5Lu25ZCNKVxcbilcXG4gICAgXFxufSBjYXRjaCAoZSkge1xcbiAgICDmlbDnu4QgPSDmlbDnu4Quc29ydChcXG4oYSxiKT0+YS5sb2NhbGVDb21wYXJlKGIpXFxuKVxcbiAgICBsb2coZS5tZXNzYWdlKVxcbn1cXG5cXG5yZXR1cm4g5pWw57uEXFxuXFxuXFxufVxcblxcblxcblxcbmZ1bmN0aW9uIOaVsOe7hOaOkuW6jyjmlbDnu4Qs5a+56LGh5ZCNKSB7XFxuICAgIFxcblxcbmxldCDov4fmu6TlhYPntKAgPVt1bmRlZmluZWQsJycsLGZhbHNlLHRydWUsbnVsbF0gXFxu6L+H5ruk5YWD57SgLmZpbHRlcijmlbDnu4Q9PuaVsOe7hClcXG4gICAgXFxudHJ5IHsgICBcXG4gICAg5pWw57uEID0g5pWw57uELnNvcnQoXFxuKGEsYik9PmEu5paH5Lu25ZCNLmxvY2FsZUNvbXBhcmUoYi5maWxlTmFtZSlcXG4pXFxuICAgIFxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgXFxuICAgIOaVsOe7hCA9IOaVsOe7hC5zb3J0KFxcbihhLGIpPT5hLmxvY2FsZUNvbXBhcmUoYilcXG4pXFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxufVxcblxcbnJldHVybiDmlbDnu4RcXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuZnVuY3Rpb24g6I635Y+W5paH5Lu25aS5Q0lEKOaWh+S7tuWkuUlELOaWh+S7tuWkueWQjSxJUEZT5a+G6ZKlLOaTjeS9nCkge1xcbiAgICBcXG4gICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG7mlofku7bot6/lvoQ9XFxcIjBcXFwiK+i3r+W+hOmXtOmalCvmlofku7blpLnlkI1cXG5zaG93TG9hZGluZygn5q2j5Zyo5aSH5Lu9Oicr5paH5Lu26Lev5b6EKVxcblxcbmxldCDmlbTkvZPmlbDmja49W11cXG5cXG5cXG7or7fmsYLlj5jph49hID0gXFxcIi9jbG91ZGZpbGUvdjEvZm9sZGVyc1xcXCJcXG7or7fmsYLlj5jph49iID0gXFxcIi9jbG91ZGZpbGUvdjEvZmlsZXNcXFwiXFxuICAgICAgICAgICAgICAgIFxcblxcblxcblxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrSVBGU+WvhumSpVxcbn1cXG5cXG5cXG4gICAgICAgICAgICAgICAg6Lqr5L2TID0gYHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJcXFwiLFxcXCJzb3J0RmxhZ1xcXCI6XFxcIm5hbWVcXFwiLFxcXCJzb3J0VHlwZVxcXCI6XFxcImFzY1xcXCIsXFxcInBhcmVudElkXFxcIjpcXFwiYCvmlofku7blpLlJRCtgXFxcIn1gXFxuXFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICDlsI/pvpnkupHor7fmsYJhID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb21cXFwiICsg6K+35rGC5Y+Y6YePYVxcbiAgICAgICAgICAgICAgICDnrKzkuIDmrKHlk43lupQgPSBwb3N0KOWwj+m+meS6keivt+axgmEsIHtcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgICAgICDlsI/pvpnkupHor7fmsYJiID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb21cXFwiICsg6K+35rGC5Y+Y6YePYlxcbiAgICAgICAgICAgICAgICDnrKzkuozmrKHlk43lupQgPSBwb3N0KOWwj+m+meS6keivt+axgmIsIHtcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgICAgICAvL+WIl+ihqGHmmK/mlofku7blpLnliJfooahcXG4gICAgICAgICAgICAgICAg5YiX6KGoYSA9IEpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGIgPSBKU09OLnBhcnNlKOesrOS6jOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuXFxuXFxubGV0IOaWh+S7tuaVsOe7hD1bXVxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGIpIHtcXG4gICAgICAgIOaWh+S7tuWQjT3liJfooahiW2ldLmZpbGVOYW1lXFxuICAgICAgICDmlofku7bmoLzlvI895YiX6KGoYltpXS5maWxlVHlwZVxcbiAgICAgICAg5paH5Lu2Q0lEPeWIl+ihqGJbaV0uZmlsZUNpZFxcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqGJbaV0uZmlsZVNpemVcXG4gICAgICAgIGpzb27mlbDmja49e1xcXCLmlofku7blkI1cXFwiOuaWh+S7tuWQjSxcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuagvOW8j1xcXCI65paH5Lu25qC85byPLFxcXCLmlofku7blpKflsI9cXFwiOuaWh+S7tuWkp+Wwj31cXG4gICAgICAgIOaWh+S7tuaVsOe7hFtpXT1qc29u5pWw5o2uXFxuICAgICAgICBcXG4gICAgfVxcbiAgICBsZXQg5paH5Lu25aS55pWw57uEPVtdXFxuICAgIGZvciAodmFyIGkgaW4g5YiX6KGoYSkge1xcbiAgICAgICAg5paH5Lu25aS55pWw57uEW2ldPeWIl+ihqGFbaV0uZmlsZU5hbWUgICAgIFxcbiAgICB9XFxuICAgIFxcblxcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIizliJfooahhKVxcblxcbuaWh+S7tuWkueWIl+ihqD3liJfooahhXFxuXFxu5paH5Lu25YiX6KGoPeWIl+ihqGJcXG5cXG5cXG5kYXRh5pWw5o2uPWB7XFxcIuaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIui3r+W+hFxcXCI6XFxcImAr5paH5Lu26Lev5b6EK2BcXFwiLFxcXCLmlofku7blpLlcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25aS55pWw57uEKStgLFxcXCLmlofku7ZcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25pWw57uEKStgfWBcXG5cXG5cXG7mlbTkvZPmlbDmja4ucHVzaChKU09OLnBhcnNlKGRhdGHmlbDmja4pKVxcblxcblxcblxcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5b6q546v6I635Y+W5paH5Lu25aS5Q0lEJykpLnJ1bGUpXFxuXFxu6Lev5b6E5YiH5YmyPeaWh+S7tui3r+W+hC5zcGxpdCjot6/lvoTpl7TpmpQpXFxu6Lev5b6E5YiH5YmyLnNwbGljZSjot6/lvoTliIflibIubGVuZ3RoLTEsMSlcXG5cXG7mlofku7bot6/lvoQ96Lev5b6E5YiH5YmyLmpvaW4o6Lev5b6E6Ze06ZqUKVxcblxcblxcbnJldHVybiDmlbTkvZPmlbDmja5cXG5cXG5cXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuLy/liJfooahh5Li65paH5Lu25aS55YiX6KGoIOWIl+ihqGLkuLrmlofku7bliJfooaggXFxuLy/mlofku7blpLnlkI3kuLrlvZPliY3lpIfku73nmoTmlofku7blpLnlkI1cXG4vL0lQRlPlr4bpkqXkuLrlvZPliY3lpIfku73nmoTlsI/pvpnkupHnm5jlr4bpkqVcXG4vL+WtmOaUvui3r+W+hOS4gOiIrOS4ulxcXCIvMFxcXCIs5Lmf5Y+v5Lul6Ieq5a6a5LmJ5oiW6ICF6YCJ5oupXFxuXFxuZnVuY3Rpb24g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjmlL7ot6/lvoQs5a2Y5ZOq6YeMLOaTjeS9nCkge1xcbiAgICBcXG4gICAgXFxuICAgIFxcblxcblxcblxcbiAgICByZXR1cm4gJCjmlofku7blpLnlkI0sLyjlpI3liLZ85LqR5Y+j5LukfOWvvOWHuikvLnRlc3Qo5pON5L2cKT9cXFwi6K6+572u5a+85Ye655qE5paH5Lu25aS55ZCN5LiN6IO956m6XFxcXG7pu5jorqTlkozljp/mnaXkuIDmoLfngrnnoa7lrprljbPlj69cXFwiOlxcXCLlpIfku73mlrDlu7rnmoTmlofku7blpLnlkI1cXFxcbuS4jei+k+WFpeWImeS4jeW7uuaWh+S7tuWkuVxcXCIpLmlucHV0KCjliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5a2Y5pS+6Lev5b6ELOWtmOWTqumHjCzmk43kvZwpID0+IHtcXG4gICAgICAgIFxcbiAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5pZijliJfooahiLmxlbmd0aDwxJibliJfooahhLmxlbmd0aDwxKXJldHVybiBcXFwidG9hc3Q6Ly/msqHmlofku7bkvaDlpIfku73kuKrplKTlrZBcXFwiXFxuZWxzZXtcXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAg5paH5Lu25aS55ZCNPWlucHV0XFxuICAgIGlmKCHmlofku7blpLnlkI0pIOaWh+S7tui3r+W+hCA9IOWtmOaUvui3r+W+hFxcbiAgICBlbHNlIOaWh+S7tui3r+W+hCA9IOWtmOaUvui3r+W+hCvot6/lvoTpl7TpmpQr5paH5Lu25aS55ZCNXFxuXFxuICAgICDlrZjlhaXot6/lvoQgPSDlrZjmlL7ot6/lvoRcXG4gICAgXFxuICAgIOWwj+S6kem+meS6keebmOWvhumSpT1JUEZT5a+G6ZKlXFxuICAgIFxcbiAgICBcXG4gICAgbGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7veagueebruW9lSA9IHJlYWRGaWxlKOWtmOWTqumHjCsnMC5qc29uJywgMCkgfHwgW107XFxuICAgICBcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbmlmKCHmlofku7blpLnlkI0p5paH5Lu25aS55pWw57uEPWBbXWBcXG5lbHNlIOaWh+S7tuWkueaVsOe7hD1gW1xcXCJgK+aWh+S7tuWkueWQjStgXFxcIl1gXFxuXFxuICAgIC8v5Zyo5oyH5a6a6Lev5b6E5Yqg5YWl5paH5Lu25aS5XFxuICAgIFxcbiAgICBcXG5pZigv5aSH5Lu9Ly50ZXN0KOaTjeS9nCkpe1xcbmlmKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7veagueebruW9lS5sZW5ndGg8MSl7XFxuICAgIFxcbmxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKXx8ICdbXScpO1xcblxcblxcbiAgICAgXFxu5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLnB1c2go5a2Y5ZOq6YeMKycwLmpzb24nKVxcblxcbuWwj+m+meS6keebmOWkh+S7veebruW9lT3mlbDnu4Tljrvph40o5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKVxcblxcblxcblxcbnNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku73nm67lvZUpLCAwKTtcXG5cXG5cXG5cXG5cXG5cXG5cXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku73moLnnm67lvZU9YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IHtcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBgK+aWh+S7tuWkueaVsOe7hCtgLFxcXCLmlofku7ZcXFwiOltdfX1gXFxuXFxuXFxuc2F2ZUZpbGUo5a2Y5ZOq6YeMKycwLmpzb24nLCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku73moLnnm67lvZUsIDApO1xcblxcbn1lbHNlIHtcXG4gICAgXFxuXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMK+WtmOWFpei3r+W+hCsnLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG4gICAgaWYo5paH5Lu25aS55ZCNKeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuS5wdXNoKOaWh+S7tuWkueWQjSlcXG5cXG4gICAg5paH5Lu25aS55YiX6KGoPeaVsOe7hOWOu+mHjSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLkpXFxuICAgIFxcbiAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLk95paH5Lu25aS55YiX6KGoXFxuICAgIFxcblxcbnNhdmVGaWxlKOWtmOWTqumHjCvlrZjlhaXot6/lvoQrJy5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxuaWYo5a2Y5YWl6Lev5b6ELmxlbmd0aD4yMjUpe1xcbiAgICB0b2FzdChcXFwi6YGH6Lev5b6E6LaF6ZW/IOivpuaDheeci+aXpeW/l1xcXCIpXFxuICAgIGxvZyhcXFwi6K+35Yu/5Y+g5Yqg5aSa5Liq5paH5Lu25aS5IOivt+ajgOafpeivpei3r+W+hOeahOWkh+S7vTpcXFwiK+WtmOWTqumHjClcXG4gICAgXFxufVxcblxcbiAgICBcXG59XFxuICAgICAgICBcXG59XFxuXFxuaWYoL+WkjeWIti8udGVzdCjmk43kvZwpKXtcXG4gICAgXFxuICAgIFxcblxcbuaVtOS9k+aVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjogW3tcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXFxcImAr5paH5Lu25aS55ZCNK2BcXFwiXSxcXFwi5paH5Lu2XFxcIjpbXX1dfWBcXG5cXG5cXG5cXG7mlbTkvZPmlbDmja49SlNPTi5wYXJzZSjmlbTkvZPmlbDmja4pXFxuXFxufVxcbiAgXFxuICAgIFxcbiAgICBcXG4gICAg5paH5Lu25pWw57uEPVtdXFxuICAgIFxcbiAgICBcXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahiKSB7XFxuICAgICAgICDmlofku7blkI095YiX6KGoYltpXS5maWxlTmFtZVxcbiAgICAgICAg5paH5Lu25qC85byPPeWIl+ihqGJbaV0uZmlsZVR5cGVcXG4gICAgICAgIOaWh+S7tkNJRD3liJfooahiW2ldLmZpbGVDaWRcXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahiW2ldLmZpbGVTaXplXFxuICAgICAgICBqc29u5pWw5o2uPXtcXFwi5paH5Lu25ZCNXFxcIjrmlofku7blkI0sXFxcIuaWh+S7tkNJRFxcXCI65paH5Lu2Q0lELFxcXCLmlofku7bmoLzlvI9cXFwiOuaWh+S7tuagvOW8jyxcXFwi5paH5Lu25aSn5bCPXFxcIjrmlofku7blpKflsI99XFxuICAgICAgICDmlofku7bmlbDnu4RbaV09anNvbuaVsOaNrlxcbiAgICAgICAgXFxuICAgIH1cXG4gICAgXFxuICAgIOaWh+S7tuWkueaVsOe7hD1bXVxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGEpIHtcXG4gICAgICAgIOaWh+S7tuWkueaVsOe7hFtpXT3liJfooahhW2ldLmZpbGVOYW1lXFxuICAgIH1cXG4gICAgXFxuXFxucHV0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiLOWIl+ihqGEpXFxuXFxu5paH5Lu25aS55YiX6KGoPeWIl+ihqGFcXG5cXG7mlofku7bliJfooag95YiX6KGoYlxcblxcblxcblxcblxcblxcbmRhdGHmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi6Lev5b6EXFxcIjpcXFwiYCvmlofku7bot6/lvoQrYFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7blpLnmlbDnu4QpK2AsXFxcIuaWh+S7tlxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7bmlbDnu4QpK2B9YFxcblxcbuWkh+S7veaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjogYCtkYXRh5pWw5o2uK2B9YFxcblxcblxcblxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSByZWFkRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIDApIHx8IFtdO1xcblxcblxcblxcbmlmKC/lpI3liLYvLnRlc3Qo5pON5L2cKSl7XFxuICAgIFxcbiAgXFxuXFxu5pW05L2T5pWw5o2uLmRhdGEucHVzaChKU09OLnBhcnNlKGRhdGHmlbDmja4pKVxcblxcbn1cXG4gIFxcbiAgICBcXG5cXG5pZigv5aSH5Lu9Ly50ZXN0KOaTjeS9nCkpe1xcblxcbmlmKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5sZW5ndGg8MSl7XFxuXFxuXFxuXFxuc2F2ZUZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCDlpIfku73mlbDmja4sIDApO1xcblxcbmlmKOaWh+S7tui3r+W+hC5sZW5ndGg+MjI1KXtcXG4gICAgdG9hc3QoXFxcIumBh+i3r+W+hOi2hemVvyDor6bmg4XnnIvml6Xlv5dcXFwiKVxcbiAgICBsb2coXFxcIuivt+WLv+WPoOWKoOWkmuS4quaWh+S7tuWkuSDor7fmo4Dmn6Xor6Xot6/lvoTnmoTlpIfku706XFxcIivlrZjlk6rph4wpXFxufVxcblxcblxcbn1lbHNle1xcbiAgICBcXG4gICAgXFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vT1KU09OLnBhcnNlKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSlcXG4gICAg5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcbiAgICDmlofku7bliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2XFxuICAgIOaWh+S7tuWkueWIl+ihqD3mlofku7blpLnliJfooaguY29uY2F0KOaWh+S7tuWkueaVsOe7hClcXG4gICAg5paH5Lu25YiX6KGoPeaWh+S7tuWIl+ihqC5jb25jYXQo5paH5Lu25pWw57uEKVxcblxcbiAgICBcXG4gICAg5paH5Lu25aS55YiX6KGoPeaVsOe7hOWOu+mHjSjmlofku7blpLnliJfooagpXFxuICAgIOaWh+S7tuWIl+ihqD3mlbDnu4Tljrvph40o5paH5Lu25YiX6KGoKVxcbiAgICBcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5PeaWh+S7tuWkueWIl+ihqFxcbiAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7Y95paH5Lu25YiX6KGoXFxuICAgIFxcblxcblxcbnNhdmVGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxuaWYo5paH5Lu26Lev5b6ELmxlbmd0aD4yMjUpe1xcbiAgICB0b2FzdChcXFwi6YGH6Lev5b6E6LaF6ZW/IOivpuaDheeci+aXpeW/l1xcXCIpXFxuICAgIGxvZyhcXFwi6K+35Yu/5Y+g5Yqg5aSa5Liq5paH5Lu25aS5IOivt+ajgOafpeivpei3r+W+hOeahOWkh+S7vTpcXFwiK+WtmOWTqumHjClcXG59XFxuICAgIFxcbmlmKOWIl+ihqGEubGVuZ3RoPDEpIHJldHVybiBcXFwidG9hc3Q6Ly/lpIfku73miJDlip9cXFwiXFxuXFxuXFxufVxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5cXG5mb3IgKHZhciBpIGluIHN0b3JhZ2UwLmdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIikpIHtcXG5cXG5cXG7mlofku7blpLnlkI09c3RvcmFnZTAuZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiKVtpXS5maWxlTmFtZVxcbuaWh+S7tuWkuWlkPXN0b3JhZ2UwLmdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIilbaV0uaWRcXG5cXG7mlofku7bot6/lvoQ95paH5Lu26Lev5b6EK+i3r+W+hOmXtOmalCvmlofku7blpLnlkI1cXG5zaG93TG9hZGluZygn5q2j5Zyo5aSH5Lu9Oicr5paH5Lu26Lev5b6EKVxcblxcblxcbuivt+axguWPmOmHj2EgPSBcXFwiL2Nsb3VkZmlsZS92MS9mb2xkZXJzXFxcIlxcbuivt+axguWPmOmHj2IgPSBcXFwiL2Nsb3VkZmlsZS92MS9maWxlc1xcXCJcXG4gICAgICAgICAgICAgICAgXFxuXFxuXFxuXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxuXFxuXFxuICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcImZpbGVOYW1lXFxcIjpcXFwiXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJuYW1lXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJhc2NcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS5aWQrYFxcXCJ9YFxcblxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG4gICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJhLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2JcXG4gICAgICAgICAgICAgICAg56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25aS55YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGEgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahiID0gSlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcblxcbuaWh+S7tuaVsOe7hD1bXVxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGIpIHtcXG4gICAgICAgIOaWh+S7tuWQjT3liJfooahiW2ldLmZpbGVOYW1lXFxuICAgICAgICDmlofku7bmoLzlvI895YiX6KGoYltpXS5maWxlVHlwZVxcbiAgICAgICAg5paH5Lu2Q0lEPeWIl+ihqGJbaV0uZmlsZUNpZFxcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqGJbaV0uZmlsZVNpemVcXG4gICAgICAgIGpzb27mlbDmja49e1xcXCLmlofku7blkI1cXFwiOuaWh+S7tuWQjSxcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuagvOW8j1xcXCI65paH5Lu25qC85byPLFxcXCLmlofku7blpKflsI9cXFwiOuaWh+S7tuWkp+Wwj31cXG4gICAgICAgIOaWh+S7tuaVsOe7hFtpXT1qc29u5pWw5o2uXFxuICAgICAgICBcXG4gICAgfVxcbiAgICDmlofku7blpLnmlbDnu4Q9W11cXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahhKSB7XFxuICAgICAgICDmlofku7blpLnmlbDnu4RbaV095YiX6KGoYVtpXS5maWxlTmFtZSAgICAgXFxuICAgIH1cXG4gICAgXFxuXFxucHV0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiLOWIl+ihqGEpXFxuXFxu5paH5Lu25aS55YiX6KGoPeWIl+ihqGFcXG5cXG7mlofku7bliJfooag95YiX6KGoYlxcblxcblxcblxcbmRhdGHmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi6Lev5b6EXFxcIjpcXFwiYCvmlofku7bot6/lvoQrYFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7blpLnmlbDnu4QpK2AsXFxcIuaWh+S7tlxcXCI6YCtKU09OLnN0cmluZ2lmeSjmlofku7bmlbDnu4QpK2B9YFxcblxcbuWkh+S7veaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjogYCtkYXRh5pWw5o2uK2B9YFxcblxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSByZWFkRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIDApIHx8IFtdO1xcblxcblxcbmlmKC/lpI3liLYvLnRlc3Qo5pON5L2cKSl7XFxuXFxu5pW05L2T5pWw5o2uLmRhdGEucHVzaChKU09OLnBhcnNlKGRhdGHmlbDmja4pKVxcblxcblxcbn1cXG4gIFxcblxcbmlmKC/lpIfku70vLnRlc3Qo5pON5L2cKSl7XFxuXFxuXFxuaWYo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9Lmxlbmd0aDwxKXtcXG5cXG5cXG5cXG5zYXZlRmlsZSjlrZjlk6rph4wr5paH5Lu26Lev5b6EKycuanNvbicsIOWkh+S7veaVsOaNriwgMCk7XFxuXFxuaWYo5paH5Lu26Lev5b6ELmxlbmd0aD4yMjUpe1xcbiAgICB0b2FzdChcXFwi6YGH6Lev5b6E6LaF6ZW/IOivpuaDheeci+aXpeW/l1xcXCIpXFxuICAgIGxvZyhcXFwi6K+35Yu/5Y+g5Yqg5aSa5Liq5paH5Lu25aS5IOivt+ajgOafpeivpei3r+W+hOeahOWkh+S7vTpcXFwiK+WtmOWTqumHjClcXG59XFxuXFxuXFxufWVsc2V7XFxuICAgIFxcbiAgICBcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9PUpTT04ucGFyc2Uo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KVxcbiAgICBcXG4gICAg5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcbiAgICDmlofku7bliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2XFxuICAgIOaWh+S7tuWkueWIl+ihqD3mlofku7blpLnliJfooaguY29uY2F0KOaWh+S7tuWkueaVsOe7hClcXG4gICAg5paH5Lu25YiX6KGoPeaWh+S7tuWIl+ihqC5jb25jYXQo5paH5Lu25pWw57uEKVxcblxcbiAgICBcXG4gICAg5paH5Lu25aS55YiX6KGoPeaVsOe7hOWOu+mHjSjmlofku7blpLnliJfooagpXFxuICAgIOaWh+S7tuWIl+ihqD3mlbDnu4Tljrvph40o5paH5Lu25YiX6KGoKVxcbiAgICBcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5PeaWh+S7tuWkueWIl+ihqFxcbiAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7Y95paH5Lu25YiX6KGoXFxuICAgIFxcblxcblxcbnNhdmVGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxuaWYo5paH5Lu26Lev5b6ELmxlbmd0aD4yMjUpe1xcbiAgICB0b2FzdChcXFwi6YGH6Lev5b6E6LaF6ZW/IOivpuaDheeci+aXpeW/l1xcXCIpXFxuICAgIGxvZyhcXFwi6K+35Yu/5Y+g5Yqg5aSa5Liq5paH5Lu25aS5IOivt+ajgOafpeivpei3r+W+hOeahOWkh+S7vTpcXFwiK+WtmOWTqumHjClcXG59XFxuICAgIFxcblxcblxcblxcbn1cXG5cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuaWYo5YiX6KGoYS5sZW5ndGg8MSkge1xcblxcblxcbmNsZWFyVmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIilcXG4gICAgXFxuXFxuXFxu6Lev5b6E5YiH5YmyPeaWh+S7tui3r+W+hC5zcGxpdCjot6/lvoTpl7TpmpQpXFxuXFxuXFxu6Lev5b6E5YiH5YmyLnNwbGljZSjot6/lvoTliIflibIubGVuZ3RoLTEsMSlcXG5cXG7mlofku7bot6/lvoQ96Lev5b6E5YiH5YmyLmpvaW4o6Lev5b6E6Ze06ZqUKVxcblxcblxcblxcblxcblxcbmNvbnRpbnVlO1xcbn1lbHNle1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5b6q546v5aSH5Lu9JykpLnJ1bGUpXFxuXFxu6Lev5b6E5YiH5YmyPeaWh+S7tui3r+W+hC5zcGxpdCjot6/lvoTpl7TpmpQpXFxu6Lev5b6E5YiH5YmyLnNwbGljZSjot6/lvoTliIflibIubGVuZ3RoLTEsMSlcXG5cXG7mlofku7bot6/lvoQ96Lev5b6E5YiH5YmyLmpvaW4o6Lev5b6E6Ze06ZqUKVxcblxcbn1cXG5cXG59XFxuXFxuaGlkZUxvYWRpbmcoKVxcbmlmKC/lr7zlh7rmlofku7YvLnRlc3Qo5pON5L2cKSl7XFxuICAgIFxcbiAgIHJldHVybiAkKFxcXCLmlofku7Y65bCP6b6Z5LqR55uY5YiG5Lqr5Li05pe25a+85Ye6Lmpzb25cXFxcbui3r+W+hDovc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL0lQRlPotYTmupBcXFxcbuaYr+WQpuWvvOWHuuaVsOaNruWIsOacrOWcsOaWh+S7tlxcXFxu54K55Ye756Gu5a6a5a+85Ye65bm25aSN5Yi25paH5Lu26Lev5b6EXFxcIikuY29uZmlybSgo5pW05L2T5pWw5o2uKT0+e1xcbiAgICAgICBcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbuaWh+S7tuWkueWQjT1cXFwiMC5qc29uXFxcIlxcblxcbuaWh+S7tuebruW9lT1cXFwiaGlrZXI6Ly9maWxlcy8vSVBGU+i1hOa6kC/kuLTml7blr7zlh7rliIbkuqsvMC5qc29uXFxcIlxcbiAgICAgICBcXG5pZihmaWxlRXhpc3Qo5paH5Lu255uu5b2VKSl7XFxu6ZyA5aSE55CG5YiX6KGoPVtdXFxu6ZyA5aSE55CG5YiX6KGoPeWkh+S7veaWh+S7tuWkueWkhOeQhijmlofku7bnm67lvZUs5paH5Lu25aS55ZCNLFxcXCLliKDpmaRcXFwiLOmcgOWkhOeQhuWIl+ihqClcXG5cXG4vL2xvZyjpnIDlpITnkIbliJfooagpXFxuZm9yICh2YXIgaSBpbiDpnIDlpITnkIbliJfooagpIHtcXG4gICAgICAgICAgIFxcbmRlbGV0ZUZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldKVxcbn1cXG59XFxuXFxuZGF0YT3mlbTkvZPmlbDmja4uZGF0YVxcbmZvciAodmFyIGkgaW4gZGF0YSkge1xcbui3r+W+hD1kYXRhW2ldLui3r+W+hFxcblxcbuWGmeWFpeaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnliIbkuqtcXFwiLFxcXCJkYXRhXFxcIjpgK0pTT04uc3RyaW5naWZ5KGRhdGFbaV0pK2B9YFxcblxcbnNhdmVGaWxlKOaWh+S7tuebruW9lS5yZXBsYWNlKCcwLmpzb24nLCcnKSvot6/lvoQrXFxcIi5qc29uXFxcIiwg5YaZ5YWl5pWw5o2uLCAwKSAgICAgICBcXG5cXG59XFxuXFxuc2F2ZUZpbGUo5paH5Lu255uu5b2VLnJlcGxhY2UoJzAuanNvbicsJycpK1xcXCJBQeWIhuS6q+aVmeeoiy50eHRcXFwiLCDlpJrmlofku7bliIbkuqvmlZnnqIssIDApICAgICAgIFxcbiAgICAgICBcXG5yZXR1cm4gY29weShcXFwiL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9JUEZT6LWE5rqQL+S4tOaXtuWvvOWHuuWIhuS6qy9cXFwiKSAgXFxuICAgICAgIFxcbiAgICAgICBcXG4gICAgICAgXFxuICAgIFxcblxcbiAgICAgICBcXG59LOaVtOS9k+aVsOaNrikgXFxuICAgIFxcbn1lbHNlIGlmKC/kupHlj6Pku6QvLnRlc3Qo5pON5L2cKSl7XFxuXFxuXFxudmFyIOS6keWPo+S7pCA9ICdJUEZT5aSH5Lu95aSa5paH5Lu25YiG5LqrOicraW5wdXQrJ1xcXFxu5aSN5Yi25ZCO5omT5byA6L2v5Lu25Y2z5Y+v5a+85YWlXFxcXG4nICsgc2hhcmVQYXN0ZShKU09OLnN0cmluZ2lmeSjmlbTkvZPmlbDmja4pKSArICdAaW1wb3J0PWpzOmV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL+S6keWPo+S7pD9ydWxlPUlQRlPotYTmupBcXFwiKSkucnVsZSknXFxuXFxuaWYoL2Vycm9yLy50ZXN0KOS6keWPo+S7pCkpIHJldHVybiAkKFxcXCLinYzinYzkupHlj6Pku6Tlj5HnlJ/plJnor6/inYzinYxcXFxcbuaYr+WQpuWvvOWHuuaVsOaNruWIsOacrOWcsOaWh+S7tlxcXFxu5a+85Ye65Li65aSa5paH5Lu25YiG5Lqr6ZyA5omT5YyFXFxcXG7noa7lrprlr7zlh7rlubblpI3liLbmlofku7bot6/lvoRcXFwiKS5jb25maXJtKCjmlbTkvZPmlbDmja4pPT57XFxuICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG7mlofku7blpLnlkI09XFxcIjAuanNvblxcXCJcXG5cXG7mlofku7bnm67lvZU9XFxcImhpa2VyOi8vZmlsZXMvL0lQRlPotYTmupAv5Li05pe25a+85Ye65YiG5LqrLzAuanNvblxcXCJcXG4gICAgICAgXFxuaWYoZmlsZUV4aXN0KOaWh+S7tuebruW9lSkpe1xcbumcgOWkhOeQhuWIl+ihqD1bXVxcbumcgOWkhOeQhuWIl+ihqD3lpIfku73mlofku7blpLnlpITnkIYo5paH5Lu255uu5b2VLOaWh+S7tuWkueWQjSxcXFwi5Yig6ZmkXFxcIizpnIDlpITnkIbliJfooagpXFxuXFxuLy9sb2co6ZyA5aSE55CG5YiX6KGoKVxcbmZvciAodmFyIGkgaW4g6ZyA5aSE55CG5YiX6KGoKSB7XFxuICAgICAgICAgICBcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxufVxcblxcbmRhdGE95pW05L2T5pWw5o2uLmRhdGFcXG5mb3IgKHZhciBpIGluIGRhdGEpIHtcXG7ot6/lvoQ9ZGF0YVtpXS7ot6/lvoRcXG5cXG7lhpnlhaXmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55YiG5LqrXFxcIixcXFwiZGF0YVxcXCI6YCtKU09OLnN0cmluZ2lmeShkYXRhW2ldKStgfWBcXG5cXG5zYXZlRmlsZSjmlofku7bnm67lvZUucmVwbGFjZSgnMC5qc29uJywnJykr6Lev5b6EK1xcXCIuanNvblxcXCIsIOWGmeWFpeaVsOaNriwgMCkgICAgICAgXFxuXFxufVxcblxcblxcbnNhdmVGaWxlKOaWh+S7tuebruW9lS5yZXBsYWNlKCcwLmpzb24nLCcnKStcXFwiQUHliIbkuqvmlZnnqIsudHh0XFxcIiwg5aSa5paH5Lu25YiG5Lqr5pWZ56iLLCAwKSAgICAgICBcXG5cXG5yZXR1cm4gY29weShcXFwiL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9JUEZT6LWE5rqQL+S4tOaXtuWvvOWHuuWIhuS6qy9cXFwiKSAgXFxuICAgICAgIFxcblxcbiAgICAgICBcXG59LOaVtOS9k+aVsOaNrilcXG5lbHNlIHJldHVybiBjb3B5KOS6keWPo+S7pClcXG5cXG59ZWxzZSBpZigv5aSN5Yi2Ly50ZXN0KOaTjeS9nCkpe1xcblxcbiAgXFxuICByZXR1cm4gY29weShKU09OLnN0cmluZ2lmeSjmlbTkvZPmlbDmja4pKVxcblxcblxcbn1lbHNlIGlmKC/lpIfku70vLnRlc3Qo5pON5L2cKSl7XFxuXFxuICBcXG4gICBcXG4gIHJldHVybiBcXFwidG9hc3Q6Ly/lpIfku73miJDlip9cXFwiXFxuXFxufVxcblxcblxcblxcbn1cXG5cXG5cXG5cXG59LOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzlrZjmlL7ot6/lvoQs5a2Y5ZOq6YeMLOaTjeS9nClcXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuZnVuY3Rpb24g55Sf5oiQ55u06ZO+KOe6v+i3ryzmlofku7ZDSUQs5paH5Lu25ZCNKSB7XFxuXFxuXFxu5pe26Ze05oizPW5ldyBEYXRlKCkuZ2V0VGltZSgpXFxu5pe26Ze05oizPU1hdGgucm91bmQobmV3IERhdGUoKS5nZXRUaW1lKCkvMTAwMCkudG9TdHJpbmcoKVxcbi8v5pe26Ze05oizPVxcXCIxNjc2MTM0MDcyXFxcIlxcblxcblxcbuaXtumXtOaIsz1OdW1iZXIoRGF0ZS5wYXJzZSggbmV3IERhdGUoKSApLnRvU3RyaW5nKCkuc3Vic3RyKDAsMTApKSs4NjQwMCo2O1xcblxcbi8v5pe26Ze05oizPU51bWJlcihEYXRlLnBhcnNlKCBuZXcgRGF0ZSgpICkudG9TdHJpbmcoKS5zdWJzdHIoMCwxMCkpKzM2MDAqODtcXG4vL+aXtumXtOaIsz1OdW1iZXIobmV3IERhdGUoKS5nZXRUaW1lKCkpKzg2NDAwXFxuXFxuXFxuXFxu55u06ZO+5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS7nm7Tpk77lr4bpkqVcXG7nlKjmiLdJRD1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJyku56S+5LqkSURcXG5cXG5cXG5cXG5cXG51PeeUqOaIt0lEXFxucz1tZDUo55u06ZO+5a+G6ZKlK+aWh+S7tkNJRCvml7bpl7TmiLMpXFxubWQ1cz1tZDUocylcXG5cXG5cXG5yZXR1cm4g57q/6LevK+aWh+S7tkNJRCtcXFwiP2ZpbGVuYW1lPTAmdj0xJnQ9XFxcIivml7bpl7TmiLMrXFxcIiZ1PVxcXCIrdStcXFwiJnM9XFxcIittZDVzXFxuXFxuXFxuXFxufVxcblxcblxcblxcblxcblxcbmZ1bmN0aW9uIOWkh+S7veaWh+S7tuWkueWkhOeQhijlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLOWkhOeQhuexu+WeiyzpnIDlpITnkIbliJfooagpIHtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbmlmKOaWh+S7tuWkueWQjSE9XFxcIjAuanNvblxcXCIpe1xcbiAgICBcXG4gICAg5aSH5Lu955uu5b2VPeWkh+S7veebruW9lS5yZXBsYWNlKFxcXCIuanNvblxcXCIsXFxcIlxcXCIpK+i3r+W+hOmXtOmalCvmlofku7blpLnlkI0rXFxcIi5qc29uXFxcIlxcbiAgICBcXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuICAgIOaJvumcgOWkhOeQhuaWh+S7tuaVsOaNriA9IEpTT04ucGFyc2UocmVhZEZpbGUo5aSH5Lu955uu5b2VLCAwKSB8fCAnW10nKTtcXG4gICAgXFxuXFxuXFxudHJ5IHtcXG5cXG7mib7pnIDlpITnkIbmlofku7blpLk95om+6ZyA5aSE55CG5paH5Lu25pWw5o2uLmRhdGEu5paH5Lu25aS5XFxu6ZyA5aSE55CG5YiX6KGoLnB1c2go5aSH5Lu955uu5b2VKVxcblxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgLy/pnIDlpITnkIbliJfooag96ZyA5aSE55CG5YiX6KGoLnNsaWNlKDAsLTMpXFxuICAgIHRvYXN0KCfot7Pov4fplJnor6/mlofku7Yg5pel5b+X5p+l55yL6K+m5oOFJyk7XFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxuICAgIFxcbiAgICBsb2co5aSE55CG57G75Z6LK1xcXCLml7blj5HnjrDkuKLlpLHnmoTmlofku7Y6XFxcIivlpIfku73nm67lvZUpXFxuICAgIHJldHVybiDpnIDlpITnkIbliJfooahcXG59XFxuXFxucHV0TXlWYXIo5aSH5Lu955uu5b2VK1xcXCLmlofku7blpLnliJfooahcXFwiLOaJvumcgOWkhOeQhuaWh+S7tuWkuSlcXG5cXG5cXG5pZijmib7pnIDlpITnkIbmlofku7blpLkubGVuZ3RoPDEpe1xcbmNsZWFyVmFyKOWkh+S7veebruW9lStcXFwi5paH5Lu25aS55YiX6KGoXFxcIilcXG5yZXR1cm4g6ZyA5aSE55CG5YiX6KGoXFxufVxcbmZvciAodmFyIGkgaW4gc3RvcmFnZTAuZ2V0TXlWYXIo5aSH5Lu955uu5b2VK1xcXCLmlofku7blpLnliJfooahcXFwiKSkge1xcblxcbuWkh+S7veaWh+S7tuWkueWkhOeQhijlpIfku73nm67lvZUsc3RvcmFnZTAuZ2V0TXlWYXIo5aSH5Lu955uu5b2VK1xcXCLmlofku7blpLnliJfooahcXFwiKVtpXSzlpITnkIbnsbvlnoss6ZyA5aSE55CG5YiX6KGoKVxcblxcblxcbn1cXG5cXG5yZXR1cm4g6ZyA5aSE55CG5YiX6KGoXFxuXFxuXFxufVxcblxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xcblxcblxcblxcbmZ1bmN0aW9uIOmAieaLqeWwj+m+meS6keebmOaWh+S7tuWkuSjlsI/pvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgXFxuICAgIGlmKCHlsI/pvpnkupHnm5jlr4bpkqUpe1xcbiAgICAgICAgXFxuICAgICAgICBcXG5cXG4gICAgICAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCflsI/kupHpvpnkupHnm5jlr4bpkqUuanNvbicsIDApIHx8ICdbXScpO1xcblxcbiAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOWwj+S6kem+meS6keebmOWvhumSpSkge1xcbiAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoW2ldPWkr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2ldLm5hbWUgICAgICAgXFxuICAgICAgICAgfVxcbiAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAxLCfpgInmi6nkuIDkuKrlsI/pvpnkupHnm5jotKblj7cnKS5zZWxlY3QoKOWwj+S6kem+meS6keebmOWvhumSpSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbiAgICAgICAgICAgICAgcmV0dXJuIOmAieaLqeWwj+m+meS6keebmOaWh+S7tuWkuSjlsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXIpXFxuICAgICAgICAgICAgICBcXG59LOWwj+S6kem+meS6keebmOWvhumSpSlcXG4gICAgICAgXFxuICAgICAgICBcXG4gICAgICAgIFxcbiAgICB9Ly/liKTmlq3mmK/lkKbkvKDlhaXlsI/pvpnkupHnm5jlr4bpkqVcXG5cXG5cXG5yZXR1cm4g5bCP6b6Z5LqR55uY5a+G6ZKlXFxuXFxuICAgIFxcbiAgICBcXG59XFxuXFxuXFxuXFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXFxuXFxuXFxuXFxuZnVuY3Rpb24g5bCP6b6Z5LqR55uY55m75b2VKOWwj+m+meS6keebmOWvhumSpSkge1xcblxcbuWwj+m+meS6keebmOeZu+W9leivt+axgj1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS91c2VyL2xvZ2luXFxcIlxcblxcbuWktOmDqD17fVxcblxcbui6q+S9kz1ge1xcXCJ0b2tlblxcXCI6XFxcImAr5bCP6b6Z5LqR55uY5a+G6ZKlK2BcXFwifWBcXG5cXG7nmbvlvZXlk43lupQ9cG9zdCjlsI/pvpnkupHnm5jnmbvlvZXor7fmsYIse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxucmV0dXJuIEpTT04ucGFyc2Uo55m75b2V5ZON5bqUKS5kYXRhXFxuXFxuXFxuXFxuXFxufVxcblxcblxcblxcbmZ1bmN0aW9uIOWwj+m+meS6keebmOebtOmTvuWvhumSpSjlsI/pvpnkupHnm5jlr4bpkqUpIHtcXG5cXG7lsI/pvpnkupHnm5jnmbvlvZXor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEvdXNlci9lbmNyeXB0aW9uLWtleVxcXCJcXG5cXG7lpLTpg6g9e31cXG5cXG7ouqvkvZM9YHtcXFwidG9rZW5cXFwiOlxcXCJgK+Wwj+m+meS6keebmOWvhumSpStgXFxcIn1gXFxuXFxu55m75b2V5ZON5bqUPXBvc3Qo5bCP6b6Z5LqR55uY55m75b2V6K+35rGCLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbnJldHVybiBKU09OLnBhcnNlKOeZu+W9leWTjeW6lCkuZGF0YVxcblxcblxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWbnuaUtuermVwiLFwicGF0aFwiOlwi5Zue5pS256uZXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxu5bCP6b6Z5LqR55uY5a+G6ZKlPWdldFBhcmFtKCd0b2tlbicpXFxuXFxuXFxubG9nKOWwj+m+meS6keebmOWvhumSpSlcXG7lm57mlLbnq5nor7fmsYI9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWRmaWxlL3YxL3RyYXNoLWZpbGVzXFxcIlxcblxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz3ouqvkvZM9YHtcXFwiZmlsZU5hbWVcXFwiOlxcXCJgK2dldFZhcign5pCc57Si5YWz6ZSu6K+NJywgJycpK2BcXFwiLFxcXCJzb3J0RmxhZ1xcXCI6XFxcImArc3RvcmFnZTAuZ2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYVxcXCIsIFxcXCJuYW1lXFxcIikrYFxcXCIsXFxcInNvcnRUeXBlXFxcIjpcXFwiYCtzdG9yYWdlMC5nZXRJdGVtKFxcXCLmjpLluo/lj5jph49iXFxcIiwgXFxcImFzY1xcXCIpK2BcXFwifWBcXG5cXG5cXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjlm57mlLbnq5nor7fmsYIse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6XFxcIuKHhVxcXCIrc3RvcmFnZTAuZ2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePXFxcIiwgXFxcIuWQjeensOato+W6j1xcXCIpLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfM1xcXCIsXFxuICAgIHVybDokKFtcXFwi5ZCN56ew5q2j5bqPXFxcIixcXFwi5ZCN56ew5YCS5bqPXFxcIixcXFwi5pe26Ze05q2j5bqPXFxcIixcXFwi5pe26Ze05YCS5bqPXFxcIixcXFwi5aSn5bCP5q2j5bqPXFxcIixcXFwi5aSn5bCP5YCS5bqPXFxcIl0sIDIsJ+mcgOimgeS7gOS5iOexu+Wei+aOkuW6j++8nycpLnNlbGVjdCgoKSA9PiB7XFxuXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePXFxcIiwgaW5wdXQpO1xcbmlmKGlucHV0LmluY2x1ZGVzKFxcXCLlkI3np7BcXFwiKSlcXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmjpLluo/lj5jph49hXFxcIiwgXFxcIm5hbWVcXFwiKTtcXG5lbHNlIGlmKGlucHV0LmluY2x1ZGVzKFxcXCLml7bpl7RcXFwiKSlcXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmjpLluo/lj5jph49hXFxcIiwgXFxcInVwbG9hZFxcXCIpO1xcbmVsc2VcXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmjpLluo/lj5jph49hXFxcIiwgXFxcInNpemVcXFwiKTtcXG5cXG5pZihpbnB1dC5pbmNsdWRlcyhcXFwi5q2j5bqPXFxcIikpXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYlxcXCIsIFxcXCJhc2NcXFwiKTtcXG5lbHNlXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5o6S5bqP5Y+Y6YePYlxcXCIsIFxcXCJkZXNjXFxcIik7XFxuXFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/liIfmjaLmiJDlip9cXFwiXFxuXFxuICAgIH0pXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIvCfkYBcXFwiK3N0b3JhZ2UwLmdldEl0ZW0oXFxcIuaWh+S7tuagt+W8j1xcXCIsIFxcXCLliJfooajmqKHlvI9cXFwiKSxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzNcXFwiLFxcbiAgICB1cmw6JChbXFxcIuWIl+ihqOaooeW8j1xcXCIsXFxcIuWbvuaWh+aooeW8j1xcXCIsXFxcIuWFqOaWh+S7tuWQjeaooeW8j1xcXCJdLCAxLCfpnIDopoHku4DkuYjmoLflvI/mmL7npLrvvJ8nKS5zZWxlY3QoKCkgPT4ge1xcblxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIuaWh+S7tuagt+W8j1xcXCIsIGlucHV0KTtcXG5pZihpbnB1dD09XFxcIuWIl+ihqOaooeW8j1xcXCIpXFxuc3RvcmFnZTAuc2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcImF2YXRhclxcXCIpO1xcbmlmKGlucHV0PT1cXFwi5Zu+5paH5qih5byPXFxcIilcXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwibW92aWVfMlxcXCIpO1xcbmlmKGlucHV0PT1cXFwi5YWo5paH5Lu25ZCN5qih5byPXFxcIilcXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwidGV4dF8xXFxcIik7XFxuXFxuXFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/liIfmjaLmiJDlip9cXFwiXFxuXFxuICAgIH0pXFxufSlcXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuWNkOabtOWkmuWKn+iDvVxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG4gICAgdXJsOiQoW1xcXCLmkJzntKLlvZPliY3mlofku7blpLlcXFwiLFxcXCLmgaLlpI3miYDmnInmlofku7ZcXFwiLFxcXCLmm7TlpJrlvoXlvIDlj5FcXFwiXSwgMSwn6K+36YCJ5oup5pu05aSa5Yqf6IO9Jykuc2VsZWN0KCjnrKzkuIDmrKHlk43lupQs5bCP6b6Z5LqR55uY5a+G6ZKlKSA9PiB7XFxuXFxuaWYoaW5wdXQ9PVxcXCLmkJzntKLlvZPliY3mlofku7blpLlcXFwiKXtcXG5yZXR1cm4gJChcXFwiXFxcIixcXFwi5pCc57Si5YWz6ZSu6K+NXFxcIikuaW5wdXQoKCkgPT4ge1xcbnB1dFZhcign5pCc57Si5YWz6ZSu6K+NJywgaW5wdXQpXFxuXFxuXFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/mkJzntKItXFxcIitpbnB1dCtcXFwiLeaIkOWKn1xcXCJcXG5cXG5cXG59KVxcblxcbn1lbHNlIGlmKGlucHV0PT1cXFwi5oGi5aSN5omA5pyJ5paH5Lu2XFxcIil7XFxuXFxuXFxuXFxucmV0dXJuICQoXFxcIlxcXCIsIFxcXCLlr4bnoIFcXFwiKS5pbnB1dCgo56ys5LiA5qyh5ZON5bqULOWwj+m+meS6keebmOWvhumSpSkgPT4ge1xcblxcbmlmKGlucHV0PT0xMjEzOCl7XFxuXFxu5YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG7mlofku7ZpZOaVsOe7hD1bXVxcbmZvciAodmFyIGkgaW4g5YiX6KGoKXvmlofku7ZpZOaVsOe7hFtpXT0nXFxcIicr5YiX6KGoW2ldLmlkKydcXFwiJ31cXG7or7fmsYLmgaLlpI3pk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuMC9maWxlL3JlY292ZXJEZWxldGVcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/pvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxuICBcXFwiaWRzXFxcIjogW2Ar5paH5Lu2aWTmlbDnu4QrYF1cXG59YFxcblxcbnBvc3Qo6K+35rGC5oGi5aSN6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICBcXG5yZXR1cm4gJ3RvYXN0Oi8v5oGi5aSN5oiQ5YqfJ1xcblxcblxcbn1cXG5cXG5cXG5cXG59LOesrOS4gOasoeWTjeW6lCzlsI/pvpnkupHnm5jlr4bpkqUpXFxuXFxuXFxuXFxufVxcblxcblxcblxcblxcbnJldHVybiBcXFwidG9hc3Q6Ly/ov5jmsqHlvIDlj5FcXFwiXFxuXFxuICAgIH0s56ys5LiA5qyh5ZON5bqULOWwj+m+meS6keebmOWvhumSpSlcXG59KVxcblxcblxcblxcblxcblxcblxcblxcblxcbnRyeSB7XFxu5YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG5mb3IgKHZhciBpIGluIOWIl+ihqCkge1xcbiAgICAgICAg5qCH6aKYPeWIl+ihqFtpXS5maWxlTmFtZVxcbiAgICAgICAgaWQ95YiX6KGoW2ldLmlkXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoW2ldLmZpbGVTaXplXFxuICAgICAgICBmaWxlVHlwZT3liJfooahbaV0uZmlsZVR5cGVcXG5cXG5cXG5cXG5cXG5cXG5pZijmlofku7blpKflsI89PTApe1xcbmQucHVzaCh7XFxudGl0bGU65qCH6aKYLFxcbnBpY191cmw6XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9iYWZrcmVpZ243Zm5oYWhjNXV6NHY2ZnVnM3JrZmJxengycjZvdjM0dXRwa2dla2N5aWN4anp2Mmd0eSMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG51cmw6XFxcInRvYXN0Oi8v5Zue5pS256uZLeemgeatouiuv+mXrlxcXCIsXFxuZXh0cmE6e+aWh+S7tuWkuWlkOmlkLGxvbmdDbGljazogW3t0aXRsZTogXFxcIuaBouWkjVxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jlr4bpkqUs5qCH6aKYLGlkLGZpbGVUeXBlKT0+e1xcblxcbuivt+axguaBouWkjemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92Mi4wL2ZpbGUvcmVjb3ZlckRlbGV0ZVxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+m+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXG4gIFxcXCJpZHNcXFwiOiBbXFxuICAgIFxcXCJgK2lkK2BcXFwiXFxuICBdXFxufWBcXG5cXG5wb3N0KOivt+axguaBouWkjemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgXFxucmV0dXJuICd0b2FzdDovL+aBouWkjeaIkOWKnydcXG5cXG4gICAgICAgIH0s5bCP6b6Z5LqR55uY5a+G6ZKlLOagh+mimCxpZCxmaWxlVHlwZSl9LHt0aXRsZTogXFxcIuWIoOmZpFxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jlr4bpkqUsaWQpPT57XFxuXFxucmV0dXJuICd0b2FzdDovL+S9oOWIoOmZpOWBmueUmu+8n+WPjeato+mDveaYr+aXoOmZkOepuumXtCdcXG7or7fmsYLliKDpmaTpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY2xvdWRmaWxlL3YxL21vdmUtdG8tdHJhc2hcXFwiXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+m+meS6keebmOWvhumSpVxcbn1cXG5cXG5cXG7ouqvkvZM9YHtcXFwiZmlsZUlkc1xcXCI6W1xcXCJgK2lkK2BcXFwiXX1gXFxuICAgICAgICBcXG5cXG5cXG5cXG5wb3N0KOivt+axguWIoOmZpOmTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5yZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgIFxcbnJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxuICAgICAgIFxcbiAgICAgICAgfSzlsI/pvpnkupHnm5jlr4bpkqUsaWQpfV19LFxcbmNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIlxcbn0pO1xcbn1lbHNle1xcblxcbuaWh+S7tuagvOW8jz3liJfooahbaV0uc3VmZml4XFxu5paH5Lu2Q0lEPeWIl+ihqFtpXS5maWxlQ2lkXFxu5paH5Lu25aSn5bCP5qC85byP5YyWPWZvcm1hdFNpemUo5paH5Lu25aSn5bCPKVxcblxcblxcblxcbmlmKC8oanBnfGdpZnxwbmd8anBlZykkL2kudGVzdCjmoIfpopgpKXtcXG5cXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7mlrDmoLzlvI89JyMuanBnJ1xcbuagvOW8jz1cXFwiIy5qcGdAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxu5Zu+54mHPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG5cXG59ZWxzZSBpZigvXFxcXC4oYXZpfHRzfG1wNHxtb3Z8bTR2fDNncHxybXxybXZifHdtdnxhc2Z8YXN4YXZpfGRhdHxta3Z8Zmx2fHZvYikkL2kudGVzdCjmoIfpopgpKXtcXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7lm77niYc9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9iYWZrcmVpYzRvZDRvendwaG1iY3Z1dHd2eG4zdmdhdWw0dzVudjd6d3BoZTNtYXlza2JkN3o3bHZpZUBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG7mlrDmoLzlvI89JyNpc1ZpZGVvPXRydWUjJ1xcbuagvOW8jz1cXFwiI2lzVmlkZW89dHJ1ZSM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG59ZWxzZSBpZigvKGZsYWN8bXAzfHdtYSkkL2kudGVzdCjmoIfpopgpKXtcXG5cXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7mlrDmoLzlvI89JyMubXAzJ1xcbuagvOW8jz1cXFwiIy5tcDM7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG7lm77niYc9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9iYWZrcmVpZTYzbnFnaWF0cGt1eHZmZmVidmdoZHM3YW9vcGRjeDdsaWl3dGoycXlyamNjaDYyNTJkdSMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcblxcbn1lbHNle1xcbumTvuaOpeWJjee8gD1cXFwiZG93bmxvYWQ6Ly9cXFwiXFxu5paw5qC85byPPVxcXCJcXFwiXFxu5qC85byPPVxcXCI7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG7lm77niYc9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9iYWZrcmVpZm9oZnp5YWpvNWkzNjdncHk1NXRsM2syNGluZmZ4ZHNxd2xmZTRsY2JmNmQ0ZXJxYXVvZUBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG59XFxuXFxu6ZO+5o6lPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQr5paw5qC85byPXFxuXFxu57q/6LevMT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMS5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot68yPVxcXCJodHRwczovL2lwZnNndzAyLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzM9XFxcImh0dHBzOi8vaXBmc2d3MDMuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevND1cXFwiaHR0cHM6Ly9pcGZzZ3cwNC5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG5cXG7pk77mjqXlkI7nvIA95paH5Lu2Q0lEK1xcXCI/ZmlsZW5hbWU9MCZ2PTEmdD1cXFwiK1xcXCJcXFwiK25ldyBEYXRlKCkuZ2V0VGltZSgpK1xcXCImdT0wXFxcIivmlrDmoLzlvI9cXG5cXG5cXG5cXG7mlrDpk77mjqU96ZO+5o6l5YmN57yAK+e6v+i3rzIr6ZO+5o6l5ZCO57yAXFxuXFxu5aSa57q/6Lev6ZO+5o6lPVvnur/ot68xK+mTvuaOpeWQjue8gCznur/ot68yK+mTvuaOpeWQjue8gCznur/ot68zK+mTvuaOpeWQjue8gCznur/ot680K+mTvuaOpeWQjue8gCzpk77mjqVdXFxuXFxu5peg5qC85byP5ZCO57yAPeaWh+S7tkNJRCtcXFwiP2ZpbGVuYW1lPTAmdj0xJnQ9XFxcIitcXFwiXFxcIituZXcgRGF0ZSgpLmdldFRpbWUoKStcXFwiJnU9MFxcXCJcXG5cXG7lpI3liLbnm7Tpk749W+e6v+i3rzEr5peg5qC85byP5ZCO57yALOe6v+i3rzIr5peg5qC85byP5ZCO57yALOe6v+i3rzMr5peg5qC85byP5ZCO57yALOe6v+i3rzQr5peg5qC85byP5ZCO57yAXVxcblxcbuWkmue6v+i3rz17dXJsczrlpJrnur/ot6/pk77mjqUsIGhlYWRlcnM6IFt7J1JlZmVyZXInOiDnur/ot68xK+mTvuaOpeWQjue8gH0sIHsnUmVmZXJlcic6IOe6v+i3rzIr6ZO+5o6l5ZCO57yAfSwgeydSZWZlcmVyJzog57q/6LevMyvpk77mjqXlkI7nvIB9LCB7J1JlZmVyZXInOiDnur/ot680K+mTvuaOpeWQjue8gH0sIHsnUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nfV0sbmFtZXM6Wyfnur/ot68xJywn57q/6LevMicsJ+e6v+i3rzMnLCfnur/ot680Jywn5aSW6ZO+J119XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgsXFxucGljX3VybDrlm77niYcsXFxuZGVzYzrmlofku7blpKflsI/moLzlvI/ljJYsXFxudXJsOuaWh+S7tkNJRCtcXFwiJiZcXFwiK+agh+mimCtDSUTpk77mjqXop6PmnpAsXFxuZXh0cmE6e2lkOmlkLGxvbmdDbGljazogW3t0aXRsZTogXFxcIuWkjeWItuebtOmTvlxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlpI3liLbnm7Tpk74pPT57XFxuXFxuICAgICAgIHJldHVybiAkKOWkjeWItuebtOmTviwgMiwn5aSN5Yi25ZOq5Liq57q/6Lev77yfJykuc2VsZWN0KCgpID0+IHtcXG4gICAgICAgICAgIHJldHVybiBjb3B5KGlucHV0KVxcbiAgICAgICAgICAgXFxuICAgICAgICAgICB9KVxcbiAgICAgICAgfSzlpI3liLbnm7Tpk74pfSx7dGl0bGU6IFxcXCJJROWIhuS6q1xcXCIsIGpzOiAkLnRvU3RyaW5nKCjmlofku7ZDSUQs5qCH6aKYLGZpbGVUeXBlLOaWh+S7tuagvOW8jyzmlofku7blpKflsI8pPT57XFxuXFxuICAgICAgIHJldHVybiBjb3B5KGB7XFxcIuaWh+S7tkNJRFxcXCI6XFxcImAr5paH5Lu2Q0lEK2BcXFwiLFxcXCLmlofku7blkI1cXFwiOlxcXCJgK+agh+mimCtgXFxcIixcXFwi5paH5Lu25qC85byPXFxcIjpcXFwiYCtmaWxlVHlwZStgXFxcIixcXFwi5paH5Lu25aSn5bCPXFxcIjpcXFwiYCvmlofku7blpKflsI8rYFxcXCJ9YClcXG4gICAgICAgIH0s5paH5Lu2Q0lELOagh+mimCxmaWxlVHlwZSzmlofku7bmoLzlvI8s5paH5Lu25aSn5bCPKX0se3RpdGxlOiBcXFwi5oGi5aSNXFxcIiwganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOWvhumSpSzmoIfpopgsaWQs5paH5Lu25qC85byPLGZpbGVUeXBlKT0+e1xcblxcbiAgICAgICBcXG7or7fmsYLmgaLlpI3pk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuMC9maWxlL3JlY292ZXJEZWxldGVcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/pvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxuICBcXFwiaWRzXFxcIjogW1xcbiAgICBcXFwiYCtpZCtgXFxcIlxcbiAgXVxcbn1gXFxuXFxucG9zdCjor7fmsYLmgaLlpI3pk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgIFxcbnJldHVybiAndG9hc3Q6Ly/mgaLlpI3miJDlip8nXFxuXFxuICAgICAgICB9LOWwj+m+meS6keebmOWvhumSpSzmoIfpopgsaWQs5paH5Lu25qC85byPLGZpbGVUeXBlKX0se3RpdGxlOiBcXFwi5Yig6ZmkXFxcIiwganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOWvhumSpSxpZCk9PntcXG5cXG5cXG5yZXR1cm4gJ3RvYXN0Oi8v5L2g5Yig6Zmk5YGa55Sa77yf5Y+N5q2j6YO95piv5peg6ZmQ56m66Ze0J1xcblxcbuivt+axguWIoOmZpOmTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbG91ZGZpbGUvdjEvbW92ZS10by10cmFzaFxcXCJcXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP6b6Z5LqR55uY5a+G6ZKlXFxufVxcblxcblxcbui6q+S9kz1ge1xcXCJmaWxlSWRzXFxcIjpbXFxcImAraWQrYFxcXCJdfWBcXG4gICAgICAgIFxcblxcblxcblxcbnBvc3Qo6K+35rGC5Yig6Zmk6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcbnJlZnJlc2hQYWdlKGZhbHNlKVxcbnJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxuICAgICAgIFxcbiAgICAgICAgfSzlsI/pvpnkupHnm5jlr4bpkqUsaWQpfV19LFxcbmNvbF90eXBlOiBzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwiYXZhdGFyXFxcIilcXG59KTtcXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuIFxcblxcbn1cXG5cXG59IGNhdGNoIChlKSB7XFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxufVxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaIkeeahOWkh+S7vVwiLFwicGF0aFwiOlwi5oiR55qE5aSH5Lu9XCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lm77moIcnKSkucnVsZSlcXG5cXG5kLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOlxcXCLigJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPScjMUU5MEZGJz4tXFxcIitnZXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIixcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIikuc3BsaXQoXFxcIi9cXFwiKS5zbGljZSgtMilbMF0rXFxcIi08L2Zyb250Pjwvc3Ryb25nPlxcXCIsXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIixcXG4gICAgICAgICAgICB1cmw6IFxcXCJjb3B5Oi8vXFxcIitnZXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIixcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIikucmVwbGFjZShcXFwiaGlrZXI6Ly9maWxlc1xcXCIsXFxcIi9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHNcXFwiKS5yZXBsYWNlKCcvMC5qc29uJywnJyksZXh0cmE6IHtsaW5lVmlzaWJsZTogZmFsc2V9XFxuICAgICAgICB9KTtcXG5cXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuWkh+S7veino+aekFxcXCIsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8yXFxcIixcXG4gICAgdXJsOiAkKGB7XFxcIuaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIuexu+Wei1xcXCI6XFxcIuaWh+S7tuWkueWkh+S7vVxcXCIsXFxcImRhdGFcXFwiOiBbe1xcXCLot6/lvoRcXFwiOiBcXFwiMFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6IFtdLFxcXCLmlofku7ZcXFwiOlt7XFxcIuaWh+S7tkNJRFxcXCI6XFxcIuW/heWhq1xcXCIsXFxcIuaWh+S7tuWQjVxcXCI6XFxcIuW/heWhq1xcXCIsXFxcIuaWh+S7tuagvOW8j1xcXCI6XFxcIjNcXFwiLFxcXCLmlofku7blpKflsI9cXFwiOlxcXCLlv4XpobvloatcXFwifV19XX1gLFxcXCLop6PmnpDlrZfnrKbotorlpJrotormhaJcXFxcbuKRoOaUr+aMgeino+aekOWkh+S7vSBqc29uXFxcXG7ikaHmlK/mjIHop6PmnpAxMTUgc2hhMVxcXCIpLmlucHV0KCgpID0+IHtcXG5cXG5cXG5cXG50cnkge1xcbuaVsOaNrj1KU09OLnBhcnNlKGlucHV0KS5kYXRhXFxu5paH5Lu26Lev5b6EPeaVsOaNrlswXS7ot6/lvoRcXG7mlofku7blpLnlkI09XFxcIjBcXFwiXFxuXFxuXFxucmV0dXJuIFxcXCJoaWtlcjovL3BhZ2Uv5aSH5Lu96K+m5oOFI25vUmVjb3JkSGlzdG9yeSM/5aSH5Lu95pWw5o2uPVxcXCIrSlNPTi5zdHJpbmdpZnko5pWw5o2uKStcXFwiJuaWh+S7tui3r+W+hD1cXFwiK+aWh+S7tui3r+W+hCtcXFwiJuaWh+S7tuWkueWQjT1cXFwiK+aWh+S7tuWkueWQjStcXFwiJnBhZ2VUaXRsZT3lpIfku73mlbDmja7op6PmnpBcXFwiXFxuXFxuXFxufSBjYXRjaCAoZSkge1xcblxcbmlmKC9bYS1mMC05XXs0MH0vaWcudGVzdChpbnB1dCkpe1xcblxcblxcblxcbnJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL+ino+aekOWTiOW4jOWAvCNub1JlY29yZEhpc3RvcnkjP+aVsOaNrj1cXFwiK0pTT04uc3RyaW5naWZ5KGlucHV0KStcXFwiJnBhZ2VUaXRsZT3lk4jluIzlgLzop6PmnpBcXFwiXFxuXFxufVxcbiAgICBsb2coZS5tZXNzYWdlKVxcbiAgICByZXR1cm4gXFxcInRvYXN0Oi8v6L6T5YWl6ZSZ6K+vXFxcIlxcbn1cXG4gICAgICAgICAgICAgICAgICAgIFxcblxcbiAgICAgICAgICAgICAgICB9KVxcbn0pXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLmm7TlpJrmk43kvZxcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCIsXFxuICAgICAgICB1cmw6JChbXFxcIuWIh+aNouWkh+S7vVxcXCIsXFxcIuWIhuS6q+Wkh+S7vVxcXCIsXFxcIuaJuemHj+aTjeS9nFxcXCIsXFxcIuaWsOW7uuaWh+S7tuWkuVxcXCIsXFxcIuWIoOmZpOWkh+S7vVxcXCIsXFxcIuW+heW8gOWPkVxcXCJdLCAyLCfpnIDopoHku4DkuYjmk43kvZzvvJ8nKS5zZWxlY3QoKCkgPT4ge1xcbmlmIChpbnB1dCA9PSBcXFwi5YiH5o2i5aSH5Lu9XFxcIikge1xcbiAgICBcXG4gICAgXFxuXFxuICAgIFxcbmxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG7lpIfku73mlofku7blkI3liJfooag9W11cXG5mb3IgKHZhciBpIGluIOWwj+m+meS6keebmOWkh+S7veebruW9lSkge1xcbiAgICAgICAgICAg5aSH5Lu95paH5Lu25ZCN5YiX6KGoW2ldPeWwj+m+meS6keebmOWkh+S7veebruW9lVtpXS5zcGxpdChcXFwiL1xcXCIpLnJldmVyc2UoKVsxXVxcbn1cXG5cXG7lpIfku73mlofku7blkI3liJfooagucHVzaChcXFwiLea3u+WKoOaWsOeahOebruW9lS1cXFwiKVxcblxcbnJldHVybiAkKOWkh+S7veaWh+S7tuWQjeWIl+ihqCwgMSwn6ZyA6KaB5Zyo5ZOq6YeM5om+6LWE5rqQ77yfJykuc2VsZWN0KCjlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSA9PiB7XFxuICAgIFxcbmlmKGlucHV0PT1cXFwiLea3u+WKoOaWsOeahOebruW9lS1cXFwiKXtcXG4gICAgXFxuXFxucmV0dXJuICQoXFxcIlxcXCIsIFxcXCLikaDmlrDlu7rlpIfku73nm67lvZXlkI3np7AgICjlsL3ph4/liKvnlKjnrKblj7cpXFxcXG7ikaFKU09O5a6M5pW05aSH5Lu95paH5Lu25omA5Zyo55qE57ud5a+56Lev5b6EXFxcIikuaW5wdXQoKCkgPT4ge1xcblxcblxcbmlmKC8uKj9cXFxcL2NvbVxcXFwuZXhhbXBsZVxcXFwuaGlrZXJ2aWV3XFxcXC9maWxlc1xcXFwvRG9jdW1lbnRzXFxcXC8vLnRlc3QoaW5wdXQpKXtcXG5cXG7nm7jlr7not6/lvoQ9aW5wdXQucmVwbGFjZSgvLio/XFxcXC9jb21cXFxcLmV4YW1wbGVcXFxcLmhpa2Vydmlld1xcXFwvZmlsZXNcXFxcL0RvY3VtZW50c1xcXFwvLywnaGlrZXI6Ly9maWxlcy8nKVxcblxcbn1lbHNle1xcblxcblxcbmlmKC9bXFxcXD9cXFxc44CBXFxcXOKVslxcXFwvXFxcXCpcXFxc4oCcXFxcXOKAnVxcXFw8XFxcXD5cXFxcfFxcXFzvvI5cXFxc44CDXFxcXO+8j1xcXFw6XFxcXOOAgVxcXFzjgJRcXFxc44CVXFxcXOOAiFxcXFzjgIlcXFxc77yLXFxcXO+8nVxcXFzvvJsgXFxcXO+8jF0vLnRlc3QoaW5wdXQpKSByZXR1cm4gXFxcInRvYXN0Oi8v6L6T5YWl6ZSZ6K+vXFxcIlxcbmVsc2Ug55u45a+56Lev5b6EPVxcXCJoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L1xcXCIraW5wdXQrXFxcIi9cXFwiXFxuXFxuXFxufVxcblxcblxcblxcbiAgICBsZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxu5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLnB1c2go55u45a+56Lev5b6EK1xcXCIwLmpzb25cXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VPeaVsOe7hOWOu+mHjSjlsI/pvpnkupHnm5jlpIfku73nm67lvZUpXFxuXFxuICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku73nm67lvZUpLCAwKSAgIFxcbnB1dE15VmFyKFxcXCLop6PmnpDlpIfku73mlofku7ZcXFwiLOebuOWvuei3r+W+hClcXG5cXG5cXG5cXG5pZighZmlsZUV4aXN0KOebuOWvuei3r+W+hCtcXFwiMC5qc29uXFxcIikpe1xcblxcbuepuueahOagueebruW9lT1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjoge1xcXCLot6/lvoRcXFwiOiBcXFwiMFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6IFtdLFxcXCLmlofku7ZcXFwiOltdfX1gXFxuXFxuc2F2ZUZpbGUo55u45a+56Lev5b6EK1xcXCIwLmpzb25cXFwiLCDnqbrnmoTmoLnnm67lvZUsIDApICAgXFxuXFxuXFxuICByZXR1cm4gJ3RvYXN0Oi8v5paw5bu655uu5b2V5oiQ5YqfJyAgIFxcblxcblxcbn1cXG4gICAgXFxuICAgIFxcblxcbiAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgcmV0dXJuICd0b2FzdDovL+WvvOWFpeaWh+S7tuaIkOWKnycgICBcXG4gICAgXFxufSlcXG4gICAgXFxufWVsc2V7XFxuICAgIFxcbueCueWHu+S9jee9rj3lpIfku73mlofku7blkI3liJfooaguZmluZEluZGV4KGl0ID0+IGl0ID09PSBpbnB1dCk7XFxuXFxu6Kej5p6Q5aSH5Lu95paH5Lu2PeWwj+m+meS6keebmOWkh+S7veebruW9lVvngrnlh7vkvY3nva5dXFxuXFxuaWYo6Kej5p6Q5aSH5Lu95paH5Lu2LnJlcGxhY2UoJzAuanNvbicsJycpPT1nZXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIikpIHJldHVybiBcXFwidG9hc3Q6Ly/lvZPliY3lt7Lnu4/mmK86XFxcIitpbnB1dFxcbnB1dE15VmFyKFxcXCLop6PmnpDlpIfku73mlofku7ZcXFwiLOino+aekOWkh+S7veaWh+S7ti5yZXBsYWNlKCcwLmpzb24nLCcnKSlcXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+W3suWIh+aNolxcXCIraW5wdXRcXG59XFxuXFxufSzlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKVxcblxcblxcbiAgICBcXG4gICAgXFxufWVsc2UgaWYgKGlucHV0ID09IFxcXCLliIbkuqvlpIfku71cXFwiKSB7XFxuXFxuXFxuaWYoZmlsZUV4aXN0KGdldE15VmFyKFxcXCLop6PmnpDlpIfku73mlofku7ZcXFwiLFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS9cXFwiKStcXFwiMC5qc29uXFxcIikpe1xcbiAgICBcXG5yZXR1cm4gJChcXFwi5aSH5Lu95bCG5pWw5o2u5ouG5YiG5Li65aSa5Liq5paH5Lu25a2Y5YKoXFxcXG7pnIDopoHliY3lvoDmlofku7bot6/lvoTmiZPljIXmlofku7bliIbkuqtcXFxcbueCueWHu+ehruWumuS8muS/neWtmOaVmeeoi+WIsOaWh+S7tui3r+W+hFxcXCIpLmNvbmZpcm0oKCk9PntcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbnNhdmVGaWxlKGdldE15VmFyKFxcXCLop6PmnpDlpIfku73mlofku7ZcXFwiLFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS9cXFwiKStcXFwiQUHliIbkuqvmlZnnqIsudHh0XFxcIiwg5aSa5paH5Lu25YiG5Lqr5pWZ56iLLCAwKSAgICAgICBcXG5cXG5yZXR1cm4gJ3RvYXN0Oi8v5oiQ5YqfJ1xcblxcbn0pXFxuXFxuXFxufWVsc2UgcmV0dXJuICd0b2FzdDovL+ayoeaWh+S7tuS9oOWIhuS6q+m4oeavmydcXG5cXG5cXG5cXG5cXG5cXG5cXG59ZWxzZSBpZihpbnB1dD09XFxcIuWIoOmZpOWkh+S7vVxcXCIpe1xcblxcblxcbnJldHVybiAkKFxcXCJcXFwiLCAnLScrZ2V0TXlWYXIoXFxcIuino+aekOWkh+S7veaWh+S7tlxcXCIsXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9L1xcXCIpLnNwbGl0KFxcXCIvXFxcIikuc2xpY2UoLTIpWzBdKyctXFxcXG7ovpPlhaVcXFwiMTIxMzhcXFwi5Yig6ZmkJykuaW5wdXQoKCkgPT4ge1xcbiAgICBcXG4gICAgXFxuICAgIGlmKGlucHV0PT1cXFwiMTIxMzhcXFwiKXtcXG4gICAgICAgIFxcbiAgICAgICBzaG93TG9hZGluZygn5q2j5Zyo5Yig6ZmkJyk7IGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5paH5Lu25aS55ZCNPVxcXCIwLmpzb25cXFwiXFxuXFxu5paH5Lu255uu5b2VPWdldE15VmFyKFxcXCLop6PmnpDlpIfku73mlofku7ZcXFwiLFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS9cXFwiKSsnMC5qc29uJ1xcblxcblxcblxcblxcblxcbmlmKGZpbGVFeGlzdCjmlofku7bnm67lvZUpKXtcXG7pnIDlpITnkIbliJfooag9W11cXG7pnIDlpITnkIbliJfooag95pWw57uE5Y676YeNKOWkh+S7veaWh+S7tuWkueWkhOeQhijmlofku7bnm67lvZUs5paH5Lu25aS55ZCNLFxcXCLliKDpmaRcXFwiLOmcgOWkhOeQhuWIl+ihqCkpXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDpnIDlpITnkIbliJfooagpIHtcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxuXFxufVxcblxcbi8v5Yig6Zmk5pWZ56iLXFxuXFxu5pWZ56iL5paH5Lu2PWdldE15VmFyKFxcXCLop6PmnpDlpIfku73mlofku7ZcXFwiLFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS9cXFwiKStcXFwiQUHliIbkuqvmlZnnqIsudHh0XFxcIlxcbmlmKGZpbGVFeGlzdCjmlZnnqIvmlofku7YpKSBkZWxldGVGaWxlKOaVmeeoi+aWh+S7tilcXG4gICAgICAgIFxcbiAgICAgICAgbGV0IOWwj+m+meS6keebmOWkh+S7veebruW9lSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku73nm67lvZUuanNvbicsIDApIHx8ICdbXScpO1xcbiAgICAgICAgXFxuICAgICAgICBcXG7liKDpmaTkvY3nva495bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmZpbmRJbmRleChpdCA9PiBpdCA9PT0g5paH5Lu255uu5b2VKTtcXG4gICAgICAgIFxcbuWwj+m+meS6keebmOWkh+S7veebruW9lS5zcGxpY2Uo5Yig6Zmk5L2N572uLDEpICAgIFxcblxcblxcbnNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku73nm67lvZUpLCAwKSAgIFxcbmNsZWFyTXlWYXIoJ+ino+aekOWkh+S7veaWh+S7ticpO1xcbmhpZGVMb2FkaW5nKCk7XFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgcmV0dXJuICd0b2FzdDovL+aIkOWKnyc7XFxuICAgICAgICBcXG4gICAgICAgIFxcbiAgICAgICAgXFxuICAgIH1cXG4gICAgXFxuICAgIHJldHVybiAndG9hc3Q6Ly/ovpPlhaXplJnor68nO1xcbiAgICBcXG59KVxcblxcblxcbn1cXG5cXG5cXG5yZXR1cm4gXFxcInRvYXN0Oi8v5b6F5byA5Y+RXFxcIlxcblxcbiAgICB9KVxcbn0pXFxuXFxuXFxuXFxuXFxuLy8vLy8vLy8vL1xcblxcblxcbi8vLy8vLy8vLy9cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG50cnkge1xcblxcbuWkh+S7veebruW9lT1nZXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIixcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIikrJzAuanNvbidcXG5cXG5cXG5cXG5cXG5cXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlpIfku73nm67lvZUsIDApIHx8ICdbXScpO1xcblxcblxcblxcblxcbiAgICBkYXRhPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhXFxuXFxuICAgIOaWh+S7tui3r+W+hD1kYXRhLui3r+W+hFxcbiAgICDliJfooahhPWRhdGEu5paH5Lu25aS5XFxuICAgIOWIl+ihqGI9ZGF0YS7mlofku7ZcXG5cXG5cXG5sZXQgcGFnZSA9IE51bWJlcihnZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLCBcXFwiMVxcXCIpKVxcbuaAu+WIl+ihqD3liJfooahhLmNvbmNhdCAo5YiX6KGoYilcXG5cXG7liIflibLliJfooajlgLw9c3RvcmFnZTAuZ2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsXFxcIjUwXFxcIilcXG5cXG7mgLvpobXmlbA9TWF0aC5jZWlsKOaAu+WIl+ihqC5sZW5ndGgv5YiH5Ymy5YiX6KGo5YC8KVxcblxcblxcblxcblxcbmlmKOaAu+mhteaVsD4xJiZwYWdlPD3mgLvpobXmlbApe1xcbmQucHVzaCh7XFxudGl0bGU6XFxcIuS4iuS4gOmhtVxcXCIsXFxudXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKOaWh+S7tui3r+W+hCkgPT4ge1xcblxcbmlmKGdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIsXFxcIjBcXFwiKT4xKVxcbntcXG55c19zYz1nZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLFxcXCIxXFxcIilcXG55c19zYy0tXFxucHV0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIix5c19zYylcXG5yZWZyZXNoUGFnZSgpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/kuIrkuIDpobVcXFwiXFxufWVsc2V7cmV0dXJuIFxcXCJ0b2FzdDovL+W3sue7j+acgOWJjVxcXCJ9XFxuXFxufSzmlofku7bot6/lvoQpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG5leHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOS4iuS4gOmhtVxcXCJcXG59XFxufSk7XFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTpwYWdlK1xcXCIvXFxcIivmgLvpobXmlbAsXFxudXJsOiQoJycsJ+ivt+i+k+WFpemhteeggScpLmlucHV0KCjmgLvpobXmlbAs5paH5Lu26Lev5b6ELHBhZ2UpPT57XFxuXFxuICAgICAgICBpZihpbnB1dD4wJiZpbnB1dDw95oC76aG15pWwKXtcXG4gICAgICAgIHB1dE15VmFyKOaWh+S7tui3r+W+hCsncGFnZScsaW5wdXQpO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3sue7j+i3s+i9rFxcXCIraW5wdXRcXG4gICAgICAgIH1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/ovpPlhaXplJnor69cXFwifVxcbiAgICB9LOaAu+mhteaVsCzmlofku7bot6/lvoQscGFnZSksXFxuY29sX3R5cGU6IFxcXCJ0ZXh0XzNcXFwiLCBcXG5leHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOaAu+mhteaVsFxcXCIsXFxuIGxvbmdDbGljazogW3t0aXRsZTogJ+S/ruaUueavj+mhteaYvuekuuS4quaVsCcsIGpzOiAkLnRvU3RyaW5nKCjmlofku7bot6/lvoQpPT57IFxcbnJldHVybiAkKHN0b3JhZ2UwLmdldEl0ZW0oXFxcIklQRlPotYTmupDmlofku7bliJfooajliIflibLlgLxcXFwiLFxcXCI1MFxcXCIpLCfmraPmlbTmlbAnKS5pbnB1dCgo5paH5Lu26Lev5b6EKT0+e1xcblxcbmlmKC9cXFxcZCsvLnRlc3QoaW5wdXQpKXtcXG5cXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCJJUEZT6LWE5rqQ5paH5Lu25YiX6KGo5YiH5Ymy5YC8XFxcIixpbnB1dC5tYXRjaCgvXFxcXGQrLylbMF0pO1xcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIsMSlcXG5cXG5yZWZyZXNoUGFnZSgpO1xcbnJldHVybiAgXFxcInRvYXN0Oi8v5YiH5o2i5q+P6aG15pi+56S6XFxcIitpbnB1dC5tYXRjaCgvXFxcXGQrLylbMF0rXFxcIuS4qlxcXCJcXG59ZWxzZSByZXR1cm4gIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr1xcXCJcXG5cXG59LOaWh+S7tui3r+W+hClcXG5cXG59LOaWh+S7tui3r+W+hCl9XSBcXG59IFxcbn0pO1xcblxcblxcblxcblxcblxcbmQucHVzaCh7XFxudGl0bGU6XFxcIuS4i+S4gOmhtVxcXCIsXFxudXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKOaAu+mhteaVsCzmlofku7bot6/lvoQscGFnZSkgPT4ge1xcbiAgICBsb2co5oC76aG15pWwKVxcbiAgICBsb2co5paH5Lu26Lev5b6EKVxcbiAgICBsb2cocGFnZSlcXG5cXG5pZihwYWdlPOaAu+mhteaVsClcXG57XFxuICAgIGxvZyhcXFwi5L+u5pS55YmNXFxcIitnZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLFxcXCIxXFxcIikpXFxueXNfc2M9Z2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIixcXFwiMVxcXCIpXFxueXNfc2MrK1xcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIseXNfc2MpXFxubG9nKFxcXCLkv67mlLnlkI5cXFwiK2dldE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIsXFxcIjFcXFwiKSlcXG5yZWZyZXNoUGFnZSgpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/kuIvkuIDpobVcXFwiXFxufWVsc2V7cmV0dXJuIFxcXCJ0b2FzdDovL+W3sue7j+acgOWQjlxcXCJ9XFxuXFxuXFxufSzmgLvpobXmlbAs5paH5Lu26Lev5b6ELHBhZ2UpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG5leHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOS4i+S4gOmhtVxcXCJcXG59XFxufSk7XFxuXFxufVxcblxcblxcblxcblxcbmZvcihsZXQgaSA9IOWIh+WJsuWIl+ihqOWAvCoocGFnZS0xKTtpIDwg5YiX6KGoYS5sZW5ndGgmJmk85YiH5Ymy5YiX6KGo5YC8KnBhZ2U7aSsrKSB7XFxuXFxuICAgICAgICBcXG4gICAgICAgIOaWh+S7tuWkueWQjT3liJfooahhW2ldXFxuZC5wdXNoKHtcXG50aXRsZTrmlofku7blpLnlkI0sXFxucGljX3VybDrmlofku7blpLnlm77moIcsXFxudXJsOlxcXCJoaWtlcjovL3BhZ2Uv5aSH5Lu96K+m5oOFI25vUmVjb3JkSGlzdG9yeSNcXFwiLFxcbmNvbF90eXBlOiBzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwiYXZhdGFyXFxcIiksXFxuZXh0cmE6e1xcXCLmlofku7bot6/lvoRcXFwiOuaWh+S7tui3r+W+hCxcXFwi5paH5Lu25aS55ZCNXFxcIjrmlofku7blpLnlkI0sbG9uZ0NsaWNrOiBbe3RpdGxlOiAn5a2Y6Iez5LqR55uYJywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpPT57XFxuICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuICAgIFxcbiAgICByZXR1cm4g6YCJ5oup5bCP6b6Z5LqR55uY5paH5Lu25aS5KClcXG5cXG5yZXR1cm4gJCjmlofku7blpLnlkI0sIFxcXCLmlrDnmoTmlofku7blkI1cXFwiKS5pbnB1dCgo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSkgPT4ge1xcblxcbiByZXR1cm4gJ3RvYXN0Oi8v5rKh5YaZ5ZGiJ1xcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSlcXG5cXG5cXG5cXG5cXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpfSx7dGl0bGU6ICfliIbkuqsnLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSk9PntcXG5cXG5yZXR1cm4gJCjmlofku7blpLnlkI0sIFxcXCLmlrDnmoTmlofku7blkI1cXFwiKS5pbnB1dCgo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSkgPT4ge1xcblxcbiBcXG4gcmV0dXJuICd0b2FzdDovL+ayoeWGmeWRoidcXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpXFxuXFxuXFxuXFxuXFxuXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKX0se3RpdGxlOiAn5pS55ZCNJywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpPT57XFxuXFxuXFxucmV0dXJuICQo5paH5Lu25aS55ZCNLCBcXFwi5paw55qE5paH5Lu25aS55ZCNXFxcIikuaW5wdXQoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG4gICAgc2hvd0xvYWRpbmcoJ+aUueWQjeS4rScpO1xcbiAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbuWOn+i3r+W+hD3lpIfku73nm67lvZUuc3BsaXQoXFxcIi9cXFwiKS5zbGljZSgtMSlbMF1cXG7ljp/ot6/lvoQ95Y6f6Lev5b6ELnJlcGxhY2UoXFxcIi5qc29uXFxcIixcXFwiXFxcIikr6Lev5b6E6Ze06ZqUK+aWh+S7tuWkueWQjVxcblxcbuaWsOi3r+W+hD3lpIfku73nm67lvZUuc3BsaXQoXFxcIi9cXFwiKS5zbGljZSgtMSlbMF1cXG7mlrDot6/lvoQ95paw6Lev5b6ELnJlcGxhY2UoXFxcIi5qc29uXFxcIixcXFwiXFxcIikr6Lev5b6E6Ze06ZqUK2lucHV0XFxuXFxu5piv5ZCm6YeN5aSNPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuS5maW5kSW5kZXgoaXQgPT4gaXQgPT09IGlucHV0KTtcXG5pZijmmK/lkKbph43lpI0+LTEpcmV0dXJuICd0b2FzdDovL+mHjeWQjeS6hidcXG5cXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLlbaV09aW5wdXRcXG5cXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLk95pWw57uE5Y676YeNKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuSlcXG5zYXZlRmlsZSjlpIfku73nm67lvZUsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSksIDApO1xcblxcbumcgOWkhOeQhuWIl+ihqD1bXVxcblxcbumcgOWkhOeQhuWIl+ihqD3mlbDnu4Tljrvph40o5aSH5Lu95paH5Lu25aS55aSE55CGKOWkh+S7veebruW9lSzmlofku7blpLnlkI0sXFxcIuaUueWQjVxcXCIs6ZyA5aSE55CG5YiX6KGoKSlcXG5cXG5cXG5cXG5cXG5mb3IgKHZhciBpIGluIOmcgOWkhOeQhuWIl+ihqCkge1xcblxcbuivu+WPluWkhOeQhuaVsOaNriA9IEpTT04ucGFyc2UocmVhZEZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldLCAwKSB8fCAnW10nKTtcXG5cXG7or7vlj5blpITnkIbmlbDmja4uZGF0YS7ot6/lvoQ96K+75Y+W5aSE55CG5pWw5o2uLmRhdGEu6Lev5b6ELnJlcGxhY2Uo5Y6f6Lev5b6ELOaWsOi3r+W+hClcXG5cXG5cXG5pZihmaWxlRXhpc3Qo6ZyA5aSE55CG5YiX6KGoW2ldLnJlcGxhY2Uo5Y6f6Lev5b6ELOaWsOi3r+W+hCkpKXtcXG5cXG7lt7LmnInmlbDmja4gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXS5yZXBsYWNlKOWOn+i3r+W+hCzmlrDot6/lvoQpLCAwKSB8fCAnW10nKTtcXG5cXG7lt7LmnInmlbDmja4uZGF0YS7mlofku7blpLkucHVzaCjor7vlj5blpITnkIbmlbDmja4uZGF0YS7mlofku7blpLkpXFxu5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu2LnB1c2go6K+75Y+W5aSE55CG5pWw5o2uLmRhdGEu5paH5Lu2KVxcbuW3suacieaVsOaNri5kYXRhLuaWh+S7tuWkuT3mlbDnu4Tljrvph40o5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu25aS5KVxcbuW3suacieaVsOaNri5kYXRhLuaWh+S7tj3mlbDnu4Tljrvph40o5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu2KVxcblxcbn1lbHNle1xcblxcbnNhdmVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXS5yZXBsYWNlKOWOn+i3r+W+hCzmlrDot6/lvoQpLCBKU09OLnN0cmluZ2lmeSjor7vlj5blpITnkIbmlbDmja4pLCAwKTtcXG5cXG59XFxuXFxuXFxuXFxuXFxuICAgICAgICAgICBcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxuXFxuaGlkZUxvYWRpbmcoKTtcXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqfJ1xcblxcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSlcXG5cXG5cXG5cXG5cXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpfSx7dGl0bGU6ICfnp7vliqgnLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSk9PntcXG5cXG5sZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxu5aSH5Lu95paH5Lu25ZCN5YiX6KGoPVtdXFxuZm9yICh2YXIgaSBpbiDlsI/pvpnkupHnm5jlpIfku73nm67lvZUpIHtcXG4gICAgICAgICAgIOWkh+S7veaWh+S7tuWQjeWIl+ihqFtpXT3lsI/pvpnkupHnm5jlpIfku73nm67lvZVbaV0uc3BsaXQoXFxcIi9cXFwiKS5yZXZlcnNlKClbMV1cXG59XFxuXFxuXFxucmV0dXJuICQo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLCAxLCfpnIDopoHnp7vliqjliLDlk6rkuKrmgLvmlofku7bvvJ8nKS5zZWxlY3QoKOWkh+S7veaWh+S7tuWQjeWIl+ihqCzlsI/pvpnkupHnm5jlpIfku73nm67lvZUs5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSkgPT4ge1xcbiAgICBcXG4gICAgXFxuICAgIOWTqumHjOadpT3lpIfku73nm67lvZUucmVwbGFjZSgvKDBcXFxcLmpzb258MOK4nS4qP1xcXFwuanNvbikvLCcnKVxcbiAgICBcXG4gICAg54K55Ye75L2N572uPeWkh+S7veaWh+S7tuWQjeWIl+ihqC5maW5kSW5kZXgoaXQgPT4gaXQgPT09IGlucHV0KTtcXG5cXG7lrZjlk6rph4w95bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VW+eCueWHu+S9jee9rl0ucmVwbGFjZSgnMC5qc29uJywnJylcXG5cXG7mlofku7bot6/lvoQ9XFxcIjBcXFwiXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG7pgInmi6nmlofku7blpLnliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5XFxu6YCJ5oup5paH5Lu25aS55YiX6KGoLnB1c2goXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/pgInmi6nlpIfku73mlofku7bot6/lvoQyJykpLnJ1bGUpXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5Mlxcblxcblxcblxcbn0s5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKVxcblxcbiBcXG5cXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpfSx7dGl0bGU6ICfliKDpmaQnLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSk9PntcXG5cXG5cXG5cXG4gcmV0dXJuICQoXFxcIuehruWumuWIoOmZpO+8n1xcXCIpLmNvbmZpcm0oKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG4gICAgIHNob3dMb2FkaW5nKCfliKDpmaTkuK0nKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5LnNwbGljZShpLDEpXFxuXFxuc2F2ZUZpbGUo5aSH5Lu955uu5b2VLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70pLCAwKTtcXG5cXG50cnkge1xcbumcgOWkhOeQhuWIl+ihqD1bXVxcbumcgOWkhOeQhuWIl+ihqD3lpIfku73mlofku7blpLnlpITnkIYo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxcXFwi5Yig6ZmkXFxcIizpnIDlpITnkIbliJfooagpXFxuXFxu6ZyA5aSE55CG5YiX6KGoPeaVsOe7hOWOu+mHjSjpnIDlpITnkIbliJfooagpXFxuXFxuXFxufSBjYXRjaCAoZSkge1xcbiByZWZyZXNoUGFnZShmYWxzZSk7XFxuIGxvZyhcXFwi5Yig6Zmk6ZSZ6K+v5paH5Lu25aS5XFxcIilcXG4gcmV0dXJuICd0b2FzdDovL+S9oOWPr+iDveWIoOmZpOS6huS4gOS4qumUmeivr+eahOaWh+S7tuWkuSdcXG4gICAgbG9nKGUubWVzc2FnZSlcXG59XFxuXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDpnIDlpITnkIbliJfooagpIHtcXG4gICAgICAgICAgIFxcbmRlbGV0ZUZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldKVxcbn1cXG5cXG5cXG4gIGhpZGVMb2FkaW5nKCk7XFxuIFxcbiByZWZyZXNoUGFnZShmYWxzZSk7XFxuIHJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxuXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKVxcblxcblxcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSl9XX1cXG59KVxcbiAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICBcXG4gICAgICAgIFxcbiAgICAgICAgXFxuICAgICAgICBcXG4gICAgICAgIGZvciAodmFyIGkgaW4g5YiX6KGoYikge1xcbiAgICAgICAg5paH5Lu25ZCNPeWIl+ihqGJbaV0u5paH5Lu25ZCNXFxuICAgICAgICDmlofku7ZDSUQ95YiX6KGoYltpXS7mlofku7ZDSURcXG4gICAgICAgIOaWh+S7tuagvOW8jz3liJfooahiW2ldLuaWh+S7tuagvOW8j1xcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqGJbaV0u5paH5Lu25aSn5bCPXFxuICAgICAgICBpZigvKGpwZ3xnaWZ8cG5nfGpwZWcpJC9pLnRlc3Qo5paH5Lu25ZCNKSl7XFxuXFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5paw5qC85byPPScjLmpwZydcXG7moLzlvI89XFxcIiMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcbuWbvueJhz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxuXFxufWVsc2UgaWYoL1xcXFwuKGF2aXx0c3xtcDR8bW92fG00dnwzZ3B8cm18cm12Ynx3bXZ8YXNmfGFzeGF2aXxkYXR8bWt2fGZsdnx2b2IpJC9pLnRlc3Qo5paH5Lu25ZCNKSl7XFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5Zu+54mHPeinhumikeaWh+S7tuWbvuagh1xcbuaWsOagvOW8jz0nI2lzVmlkZW89dHJ1ZSMnXFxu5qC85byPPVxcXCIjaXNWaWRlbz10cnVlIzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbn1lbHNlIGlmKC8oZmxhY3xtcDN8d21hKSQvaS50ZXN0KOaWh+S7tuWQjSkpe1xcblxcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuaWsOagvOW8jz0nIy5tcDMnXFxu5qC85byPPVxcXCIjLm1wMzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz3pn7PkuZDmlofku7blm77moIdcXG5cXG59ZWxzZXtcXG7pk77mjqXliY3nvIA9XFxcImRvd25sb2FkOi8vXFxcIlxcbuaWsOagvOW8jz1cXFwiXFxcIlxcbuagvOW8jz1cXFwiO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxu5Zu+54mHPeWFtuS7luaWh+S7tuWbvuagh1xcbn1cXG5cXG7pk77mjqU9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCvmlrDmoLzlvI9cXG5cXG7nur/ot68xPVxcXCJodHRwczovL2lwZnNndzAxLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzI9XFxcImh0dHBzOi8vaXBmc2d3MDIuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevMz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMy5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot680PVxcXCJodHRwczovL2lwZnNndzA0LnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcblxcbumTvuaOpeWQjue8gD3mlofku7ZDSUQrXFxcIj9maWxlbmFtZT0wJnY9MSZ0PVxcXCIrXFxcIlxcXCIrbmV3IERhdGUoKS5nZXRUaW1lKCkrXFxcIiZ1PTBcXFwiK+aWsOagvOW8j1xcblxcblxcblxcbuaWsOmTvuaOpT3pk77mjqXliY3nvIAr57q/6LevMyvpk77mjqXlkI7nvIBcXG5cXG7mlrDpk77mjqU9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vJiZcXFwiK+mTvuaOpeWQjue8gFxcblxcbuWkmue6v+i3r+mTvuaOpT1b6ZO+5o6lLOe6v+i3rzQr6ZO+5o6l5ZCO57yALOe6v+i3rzMr6ZO+5o6l5ZCO57yALOe6v+i3rzMr6ZO+5o6l5ZCO57yALOe6v+i3rzEr6ZO+5o6l5ZCO57yAXVxcblxcblxcbumTvuaOpTQ955Sf5oiQ55u06ZO+KOe6v+i3rzQs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG7pk77mjqUzPeeUn+aIkOebtOmTvijnur/ot68zLOaWh+S7tkNJRCzmlofku7blkI0pXFxu6ZO+5o6lMj3nlJ/miJDnm7Tpk74o57q/6LevMizmlofku7ZDSUQs5paH5Lu25ZCNKVxcbumTvuaOpTE955Sf5oiQ55u06ZO+KOe6v+i3rzEs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG5cXG7lpJrnur/ot6/pk77mjqU9W+mTvuaOpSzpk77mjqU0K+aWsOagvOW8jyzpk77mjqUzK+aWsOagvOW8jyvpk77mjqXlkI7nvIAs6ZO+5o6lMivmlrDmoLzlvI8s6ZO+5o6lMyvmlrDmoLzlvI9dXFxuXFxuXFxuXFxu5peg5qC85byP5ZCO57yAPeaWh+S7tkNJRCtcXFwiP2ZpbGVuYW1lPTAmdj0xJnQ9XFxcIitcXFwiXFxcIituZXcgRGF0ZSgpLmdldFRpbWUoKStcXFwiJnU9MFxcXCJcXG5cXG7lpI3liLbnm7Tpk749W+mTvuaOpTQs6ZO+5o6lMyzpk77mjqUyLOmTvuaOpTFdXFxuXFxu5aSa57q/6LevPXt1cmxzOuWkmue6v+i3r+mTvuaOpSwgaGVhZGVyczogW3snUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nfSwgeydSZWZlcmVyJzog57q/6LevNCvpk77mjqXlkI7nvIB9LCB7J1JlZmVyZXInOiDnur/ot68zK+mTvuaOpeWQjue8gH0sIHsnUmVmZXJlcic6IOe6v+i3rzIr6ZO+5o6l5ZCO57yAfSwgeydSZWZlcmVyJzog57q/6LevMSvpk77mjqXlkI7nvIB9XSxuYW1lczpbJ+WklumTvicsJ+e6v+i3rzQnLCfnur/ot68zJywn57q/6LevMicsJ+e6v+i3rzEnXX1cXG5cXG7lpJrnur/ot689e3VybHM65aSa57q/6Lev6ZO+5o6lLCBoZWFkZXJzOiBbeydSZWZlcmVyJzogJ2h0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tLyd9LCB7J1JlZmVyZXInOiDnur/ot680fSwgeydSZWZlcmVyJzog57q/6LevM30sIHsnUmVmZXJlcic6IOe6v+i3rzJ9LCB7J1JlZmVyZXInOiDnur/ot68xfV0sbmFtZXM6WyflpJbpk74nLCfnur/ot680Jywn57q/6LevMycsJ+e6v+i3rzInLCfnur/ot68xJ119XFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IGZvcm1hdFNpemUo5paH5Lu25aSn5bCPKStcXFwiLVxcXCIr5paH5Lu25ZCNLFxcbiAgICBwaWNfdXJsOuWbvueJhyxcXG4gICAgdXJsOuaWh+S7tkNJRCtcXFwiJiZcXFwiK+aWh+S7tuWQjStDSUTpk77mjqXop6PmnpAsXFxuY29sX3R5cGU6IHN0b3JhZ2UwLmdldEl0ZW0oXFxcIuaWh+S7tuagt+W8j+WPmOmHj1xcXCIsIFxcXCJhdmF0YXJcXFwiKSwgZXh0cmE6IHsgbG9uZ0NsaWNrOiBbe3RpdGxlOiAn5a2Y6Iez5LqR55uYJywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUsaSk9PntcXG4gICAgcmV0dXJuICd0b2FzdDovL+ayoeWGmeWRoidcXG5cXG5yZXR1cm4gJCjmlofku7blpLnlkI0sIFxcXCLmlrDnmoTmlofku7blkI1cXFwiKS5pbnB1dCgo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSkgPT4ge1xcblxcbiByZXR1cm4gJ3RvYXN0Oi8v5rKh5YaZ5ZGiJ1xcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSlcXG5cXG5cXG5cXG5cXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUsaSl9LHt0aXRsZTogJ+WIhuS6qycsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLGkpPT57XFxuXFxuXFxuIHJldHVybiAndG9hc3Q6Ly/msqHlhpnlkaInXFxuXFxuXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLGkpfSx7dGl0bGU6ICfmlLnlkI0nLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blkI0saSk9PntcXG5cXG5yZXR1cm4gJCjmlofku7blkI0sIFxcXCLmlrDnmoTmlofku7blkI1cXFwiKS5pbnB1dCgo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blkI0saSkgPT4ge1xcblxcbuaYr+WQpumHjeWkjT3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7YuZmluZEluZGV4KGl0ID0+IGl0LuaWh+S7tuWQjSA9PT0gaW5wdXQpO1xcblxcbmlmKOaYr+WQpumHjeWkjT4tMSlyZXR1cm4gJ3RvYXN0Oi8v6YeN5ZCN5LqGJ1xcblxcbuWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tltpXS7mlofku7blkI09aW5wdXRcXG5cXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7Y95pWw57uE5Y676YeNKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tilcXG5cXG5zYXZlRmlsZSjlpIfku73nm67lvZUsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSksIDApO1xcblxcbiByZWZyZXNoUGFnZShmYWxzZSk7XFxuIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip8nXFxufSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpKVxcblxcblxcblxcblxcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSzmlofku7blkI0saSl9LHt0aXRsZTogJ+enu+WKqCcsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLGks5paH5Lu25ZCNLOaWh+S7tkNJRCk9PntcXG5cXG5cXG5cXG4gbGV0IOWwj+m+meS6keebmOWkh+S7veebruW9lSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku73nm67lvZUuanNvbicsIDApIHx8ICdbXScpO1xcblxcbuWkh+S7veaWh+S7tuWQjeWIl+ihqD1bXVxcbmZvciAodmFyIGkgaW4g5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKSB7XFxuICAgICAgICAgICDlpIfku73mlofku7blkI3liJfooahbaV095bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VW2ldLnNwbGl0KFxcXCIvXFxcIikucmV2ZXJzZSgpWzFdXFxufVxcblxcbnJldHVybiAkKOWkh+S7veaWh+S7tuWQjeWIl+ihqCwgMSwn6ZyA6KaB56e75Yqo5Yiw5ZOq5Liq5oC75paH5Lu277yfJykuc2VsZWN0KCjlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25ZCNLGks5paH5Lu2Q0lEKSA9PiB7XFxuICAgIFxcbiAgICDngrnlh7vkvY3nva495aSH5Lu95paH5Lu25ZCN5YiX6KGoLmZpbmRJbmRleChpdCA9PiBpdCA9PT0gaW5wdXQpO1xcbiAgICBcXG7lk6rph4zmnaU95aSH5Lu955uu5b2VLnJlcGxhY2UoLygwXFxcXC5qc29ufDDiuJ0uKj9cXFxcLmpzb24pLywnJylcXG5cXG7lrZjlk6rph4w95bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VW+eCueWHu+S9jee9rl0ucmVwbGFjZSgnMC5qc29uJywnJylcXG5cXG5cXG5cXG7mlofku7bot6/lvoQ9XFxcIjBcXFwiXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG7pgInmi6nmlofku7blpLnliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5XFxu6YCJ5oup5paH5Lu25aS55YiX6KGoLnB1c2goXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/pgInmi6nlpIfku73mlofku7bot6/lvoQzJykpLnJ1bGUpXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5M1xcblxcblxcblxcbn0s5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpLOaWh+S7tkNJRClcXG5cXG5cXG5cXG59LOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUsaSzmlofku7blkI0s5paH5Lu2Q0lEKX0se3RpdGxlOiAn5Yig6ZmkJywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUsaSk9PntcXG5cXG5yZXR1cm4gJChcXFwi56Gu5a6a5Yig6Zmk77yfXFxcIikuY29uZmlybSgo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSxpKSA9PiB7XFxuXFxu5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2LnNwbGljZShpLDEpXFxuXFxuc2F2ZUZpbGUo5aSH5Lu955uu5b2VLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70pLCAwKTtcXG5cXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiByZXR1cm4gJ3RvYXN0Oi8v5Yig6Zmk5oiQ5YqfJ1xcblxcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSxpKVxcblxcblxcblxcbn0s5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LOWkh+S7veebruW9lSxpKX1dIH0gXFxufSlcXG4gICAgICAgIH1cXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAgXFxuXFxuLypcXG5cXG5mb3IgKHZhciBpIGluIOWIl+ihqGEpIHtcXG4gICAgXFxuICAgIFxcbmRhdGE95YiX6KGoYltpXS5kYXRhXFxu5paH5Lu25aS55ZCNPeWIl+ihqGJbaV0u5paH5Lu25aS55ZCNXFxu5aSH5Lu95pe26Ze0PWRhdGVGb3JtYXQo5bCP6b6Z5LqR55uY5aSH5Lu9W2ldLuaXtumXtClcXG5cXG5sZXQgaWRleCA9IOWwj+m+meS6keebmOWkh+S7vS5maW5kSW5kZXgoaXQgPT4gaXQu5paH5Lu25aS55ZCNID09PSDmlofku7blpLnlkI0pO1xcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5paH5Lu25aS5OlxcXCIr5paH5Lu25aS55ZCNK1xcXCJcXFxcbuWkh+S7veaXtumXtDpcXFwiK+Wkh+S7veaXtumXtCxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICB1cmw6XFxcImhpa2VyOi8vcGFnZS/lpIfku73or6bmg4Ujbm9SZWNvcmRIaXN0b3J5I1xcXCIsXFxuICAgIGV4dHJhOntkYXRhOmRhdGEsbG9uZ0NsaWNrOiBbe3RpdGxlOiAn5YiG5Lqr5aSH5Lu9JywganM6ICQudG9TdHJpbmcoKOWwj+m+meS6keebmOWkh+S7vSxpZGV4LOaWh+S7tuWkueWQjSk9PntcXG5cXG5yZXR1cm4gJChbXFxcIuWOn+Wni+aVsOaNrlxcXCIsIFxcXCLkupHliarotLTmnb9cXFwiLCBcXFwi5LqR5Y+j5LukXFxcIl0sIDMpLnNlbGVjdCgo5bCP6b6Z5LqR55uY5aSH5Lu9LGlkZXgs5paH5Lu25aS55ZCNKSA9PiB7XFxuICAgICAgICAgICAgcmV0dXJuICQoJ+ehruWumuWvvOWHuu+8nycpLmNvbmZpcm0oKGlucHV0LOWwj+m+meS6keebmOWkh+S7vSxpZGV4LOaWh+S7tuWkueWQjSkgPT4ge1xcbiAgICAgICAgICAgICAgICBcXG5cXG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFxcXCLkupHliarotLTmnb9cXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9ICdJUEZT5aSH5Lu95paH5Lu25YiG5LqrOicr5paH5Lu25aS55ZCNKydcXFxcbicgKyBzaGFyZVBhc3RlKEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOWkh+S7vVtpZGV4XSkpO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09IFxcXCLkupHlj6Pku6RcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9ICdJUEZT5aSH5Lu95paH5Lu25YiG5LqrOicr5paH5Lu25aS55ZCNKycs5aSN5Yi25ZCO5omT5byA6L2v5Lu25Y2z5Y+v5a+85YWlXFxcXG4nICsgc2hhcmVQYXN0ZShKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku71baWRleF0pKSArICdAaW1wb3J0PWpzOmV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL+S6keWPo+S7pD9ydWxlPUlQRlPotYTmupBcXFwiKSkucnVsZSknO1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku71baWRleF0pXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJjb3B5Oi8vXFxcIiArIGRhdGE7XFxuICAgICAgICAgICAgfSwgaW5wdXQs5bCP6b6Z5LqR55uY5aSH5Lu9LGlkZXgs5paH5Lu25aS55ZCNKVxcbiAgICAgICAgfSzlsI/pvpnkupHnm5jlpIfku70saWRleCzmlofku7blpLnlkI0pXFxuXFxuXFxuXFxucmV0dXJuIGNvcHkoSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu9W2lkZXhdKSlcXG5cXG5cXG59LOWwj+m+meS6keebmOWkh+S7vSxpZGV4LOaWh+S7tuWkueWQjSl9LHt0aXRsZTogXFxcIuWtmOiHs+e9keebmFxcXCIsIGpzOiAkLnRvU3RyaW5nKCjlsI/pvpnkupHnm5jlpIfku70saWRleCk9PntcXG4gICAgICAgICAgICDlsI/pvpnkupHnm5jlpIfku7095bCP6b6Z5LqR55uY5aSH5Lu9W2lkZXhdXFxuICAgICAgICAgICAgXFxuICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlID0gSlNPTi5wYXJzZShyZWFkRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG4gICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/kupHpvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqFtpXT1pK+Wwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5bCP6b6Z5LqR55uY77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUs5bCP6b6Z5LqR55uY5aSH5Lu9KSA9PiB7XFxuICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXJcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxu5paH5Lu25aS557qv5ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lIFxcbiAgICAgICAgICAg5paH5Lu25aS557qv5ZCN56ewW2ldPeaWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5cXG7mlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5pZD1cXFwiXFxcIlxcbnVzZXJpZD1cXFwi5pegKENJRClcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5XFxuXFxuICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSzlsI/pvpnkupHnm5jlpIfku70pXFxuXFxuICAgICAgICBcXG4gICAgICAgIH0s5bCP6b6Z5LqR55uY5aSH5Lu9LGlkZXgpfSx7dGl0bGU6ICfliKDpmaTlpIfku70nLCBqczogJC50b1N0cmluZygo5bCP6b6Z5LqR55uY5aSH5Lu9LGlkZXgpPT57IFxcblxcbnJldHVybiAkKFxcXCLkuIDml6bliKDpmaQg5peg5rOV5om+5ZueXFxcIikuY29uZmlybSgo5bCP6b6Z5LqR55uY5aSH5Lu9LGlkZXgpPT57XFxuXFxu5bCP6b6Z5LqR55uY5aSH5Lu9LnNwbGljZShpZGV4LCAxKTtcXG5zYXZlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7vS5qc29uJywgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5aSH5Lu9KSwgMCk7XFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcbnJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxuXFxuXFxuXFxufSzlsI/pvpnkupHnm5jlpIfku70saWRleClcXG5cXG5cXG59LOWwj+m+meS6keebmOWkh+S7vSxpZGV4KX1dIFxcblxcblxcbn1cXG5cXG59KVxcblxcblxcblxcbn0qL1xcblxcblxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgbG9nKGUubWVzc2FnZSlcXG59XFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5aSH5Lu96K+m5oOFXCIsXCJwYXRoXCI6XCLlpIfku73or6bmg4VcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcblxcblxcblxcbuaWh+S7tui3r+W+hD1NWV9QQVJBTVMu5paH5Lu26Lev5b6EXFxu5paH5Lu25aS55ZCNPU1ZX1BBUkFNUy7mlofku7blpLnlkI1cXG5cXG7mlofku7blpLlpZD3mlofku7bot6/lvoQr5paH5Lu25aS55ZCNXFxuXFxucGFnZSA9IE51bWJlcihnZXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsIFxcXCIxXFxcIikpXFxuXFxuaWYo5paH5Lu26Lev5b6EJibmlofku7blpLnlkI0pe1xcblxcbuWkh+S7veebruW9lT1nZXRNeVZhcihcXFwi6Kej5p6Q5aSH5Lu95paH5Lu2XFxcIixcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIikr5paH5Lu26Lev5b6EK+i3r+W+hOmXtOmalCvmlofku7blpLnlkI0rJy5qc29uJ1xcblxcblxcblxcblxcblxcblxcblxcblxcbmlmIChmaWxlRXhpc3Qo5aSH5Lu955uu5b2VKSkge1xcbiAgICBcXG4gICAgXFxuXFxuICAgICAgICBcXG4gICAgIGxldCAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5aSH5Lu955uu5b2VLCAwKSB8fCAnW10nKTtcXG5cXG5cXG5cXG5cXG4gICAg5aSH5Lu95pWw5o2uPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhXFxuXFxuXFxuICAgIOaWh+S7tui3r+W+hD3lpIfku73mlbDmja4u6Lev5b6EXFxuICAgIOWIl+ihqGE95aSH5Lu95pWw5o2uLuaWh+S7tuWkuVxcbiAgICDliJfooahiPeWkh+S7veaVsOaNri7mlofku7ZcXG4gICAgICAgXFxuXFxuXFxuICAgICAgICBcXG5cXG5sZXQgcGFnZSA9IE51bWJlcihnZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLCBcXFwiMVxcXCIpKVxcblxcbuWIl+ihqD3liJfooahhLmNvbmNhdCAo5YiX6KGoYilcXG5cXG7liIflibLliJfooajlgLw9c3RvcmFnZTAuZ2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsXFxcIjUwXFxcIilcXG5cXG7mgLvpobXmlbA9TWF0aC5jZWlsKOWIl+ihqC5sZW5ndGgv5YiH5Ymy5YiX6KGo5YC8KVxcblxcblxcblxcblxcbmlmKOaAu+mhteaVsD4xJiZwYWdlPD3mgLvpobXmlbApe1xcbmQucHVzaCh7XFxudGl0bGU6XFxcIuS4iuS4gOmhtVxcXCIsXFxudXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKOaWh+S7tui3r+W+hCkgPT4ge1xcblxcbmlmKGdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIsXFxcIjBcXFwiKT4xKVxcbntcXG55c19zYz1nZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLFxcXCIxXFxcIilcXG55c19zYy0tXFxucHV0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIix5c19zYylcXG5yZWZyZXNoUGFnZSgpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/kuIrkuIDpobVcXFwiXFxufWVsc2V7cmV0dXJuIFxcXCJ0b2FzdDovL+W3sue7j+acgOWJjVxcXCJ9XFxuXFxufSzmlofku7bot6/lvoQpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG5leHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOS4iuS4gOmhtVxcXCJcXG59XFxufSk7XFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTpwYWdlK1xcXCIvXFxcIivmgLvpobXmlbAsXFxudXJsOiQoJycsJ+ivt+i+k+WFpemhteeggScpLmlucHV0KCjmgLvpobXmlbAs5paH5Lu26Lev5b6ELHBhZ2UpPT57XFxuXFxuICAgICAgICBpZihpbnB1dD4wJiZpbnB1dDw95oC76aG15pWwKXtcXG4gICAgICAgIHB1dE15VmFyKOaWh+S7tui3r+W+hCsncGFnZScsaW5wdXQpO1xcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3sue7j+i3s+i9rFxcXCIraW5wdXRcXG4gICAgICAgIH1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/ovpPlhaXplJnor69cXFwifVxcbiAgICB9LOaAu+mhteaVsCzmlofku7bot6/lvoQscGFnZSksXFxuY29sX3R5cGU6IFxcXCJ0ZXh0XzNcXFwiLCBcXG5leHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOaAu+mhteaVsFxcXCIsXFxuIGxvbmdDbGljazogW3t0aXRsZTogJ+S/ruaUueavj+mhteaYvuekuuS4quaVsCcsIGpzOiAkLnRvU3RyaW5nKCjmlofku7bot6/lvoQpPT57IFxcbnJldHVybiAkKHN0b3JhZ2UwLmdldEl0ZW0oXFxcIklQRlPotYTmupDmlofku7bliJfooajliIflibLlgLxcXFwiLFxcXCI1MFxcXCIpLCfmraPmlbTmlbAnKS5pbnB1dCgo5paH5Lu26Lev5b6EKT0+e1xcblxcbmlmKC9cXFxcZCsvLnRlc3QoaW5wdXQpKXtcXG5cXG5zdG9yYWdlMC5zZXRJdGVtKFxcXCJJUEZT6LWE5rqQ5paH5Lu25YiX6KGo5YiH5Ymy5YC8XFxcIixpbnB1dC5tYXRjaCgvXFxcXGQrLylbMF0pO1xcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIsMSlcXG5cXG5yZWZyZXNoUGFnZSgpO1xcbnJldHVybiAgXFxcInRvYXN0Oi8v5YiH5o2i5q+P6aG15pi+56S6XFxcIitpbnB1dC5tYXRjaCgvXFxcXGQrLylbMF0rXFxcIuS4qlxcXCJcXG59ZWxzZSByZXR1cm4gIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr1xcXCJcXG5cXG59LOaWh+S7tui3r+W+hClcXG5cXG59LOaWh+S7tui3r+W+hCl9XSBcXG59IFxcbn0pO1xcblxcblxcblxcblxcblxcbmQucHVzaCh7XFxudGl0bGU6XFxcIuS4i+S4gOmhtVxcXCIsXFxudXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKOaAu+mhteaVsCzmlofku7bot6/lvoQscGFnZSkgPT4ge1xcbiAgICBsb2co5oC76aG15pWwKVxcbiAgICBsb2co5paH5Lu26Lev5b6EKVxcbiAgICBsb2cocGFnZSlcXG5cXG5pZihwYWdlPOaAu+mhteaVsClcXG57XFxuICAgIGxvZyhcXFwi5L+u5pS55YmNXFxcIitnZXRNeVZhcijmlofku7bot6/lvoQrXFxcInBhZ2VcXFwiLFxcXCIxXFxcIikpXFxueXNfc2M9Z2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCJwYWdlXFxcIixcXFwiMVxcXCIpXFxueXNfc2MrK1xcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIseXNfc2MpXFxubG9nKFxcXCLkv67mlLnlkI5cXFwiK2dldE15VmFyKOaWh+S7tui3r+W+hCtcXFwicGFnZVxcXCIsXFxcIjFcXFwiKSlcXG5yZWZyZXNoUGFnZSgpO1xcbnJldHVybiBcXFwidG9hc3Q6Ly/kuIvkuIDpobVcXFwiXFxufWVsc2V7cmV0dXJuIFxcXCJ0b2FzdDovL+W3sue7j+acgOWQjlxcXCJ9XFxuXFxuXFxufSzmgLvpobXmlbAs5paH5Lu26Lev5b6ELHBhZ2UpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG5leHRyYToge1xcbmNsczogXFxcInBsYXlsaXN0IOS4i+S4gOmhtVxcXCJcXG59XFxufSk7XFxuXFxufVxcblxcblxcblxcblxcbmZvcihsZXQgaSA9IOWIh+WJsuWIl+ihqOWAvCoocGFnZS0xKTtpIDwg5YiX6KGoLmxlbmd0aCYmaTzliIflibLliJfooajlgLwqcGFnZTtpKyspIHtcXG4gICAgXFxuICAgICAgICDmlofku7blpLnlkI095YiX6KGoYVtpXVxcbmlmKCEh5paH5Lu25aS55ZCNKXtcXG4gICAgICAgIGQucHVzaCh7XFxudGl0bGU65paH5Lu25aS55ZCNLFxcbnBpY191cmw65paH5Lu25aS55Zu+5qCHLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+Wkh+S7veivpuaDhSNub1JlY29yZEhpc3RvcnkjXFxcIixcXG5jb2xfdHlwZTogc3RvcmFnZTAuZ2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcImF2YXRhclxcXCIpLFxcbmV4dHJhOntcXFwi5paH5Lu26Lev5b6EXFxcIjrmlofku7bot6/lvoQsXFxcIuaWh+S7tuWkueWQjVxcXCI65paH5Lu25aS55ZCNLGxvbmdDbGljazogW3t0aXRsZTogJ+WIhuS6qycsIGpzOiAkLnRvU3RyaW5nKCjlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpPT57XFxuXFxucmV0dXJuICQo5paH5Lu25aS55ZCNLCBcXFwi5paw55qE5paH5Lu25ZCNXFxcIikuaW5wdXQoKOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSkgPT4ge1xcblxcbiByZWZyZXNoUGFnZShmYWxzZSk7XFxuIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip8nXFxufSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpXFxuXFxuXFxuXFxuXFxuXFxufSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpfSx7dGl0bGU6ICfmlLnlkI0nLCBqczogJC50b1N0cmluZygo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKT0+e1xcblxcblxcbnJldHVybiAkKOaWh+S7tuWkueWQjSwgXFxcIuaWsOeahOaWh+S7tuWkueWQjVxcXCIpLmlucHV0KCjlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlpIfku73nm67lvZUsIDApIHx8ICdbXScpO1xcblxcbiAgICBzaG93TG9hZGluZygn5pS55ZCN5LitJyk7XFxuICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxu5Y6f6Lev5b6EPeWkh+S7veebruW9lS5zcGxpdChcXFwiL1xcXCIpLnNsaWNlKC0xKVswXVxcbuWOn+i3r+W+hD3ljp/ot6/lvoQucmVwbGFjZShcXFwiLmpzb25cXFwiLFxcXCJcXFwiKSvot6/lvoTpl7TpmpQr5paH5Lu25aS55ZCNXFxuXFxu5paw6Lev5b6EPeWkh+S7veebruW9lS5zcGxpdChcXFwiL1xcXCIpLnNsaWNlKC0xKVswXVxcbuaWsOi3r+W+hD3mlrDot6/lvoQucmVwbGFjZShcXFwiLmpzb25cXFwiLFxcXCJcXFwiKSvot6/lvoTpl7TpmpQraW5wdXRcXG5cXG7mmK/lkKbph43lpI095bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5LmZpbmRJbmRleChpdCA9PiBpdCA9PT0gaW5wdXQpO1xcbmlmKOaYr+WQpumHjeWkjT4tMSlyZXR1cm4gJ3RvYXN0Oi8v6YeN5ZCN5LqGJ1xcblxcbuWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVtpXT1pbnB1dFxcblxcbuWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuT3mlbDnu4Tljrvph40o5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5KVxcbnNhdmVGaWxlKOWkh+S7veebruW9lSwgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxu6ZyA5aSE55CG5YiX6KGoPVtdXFxuXFxu6ZyA5aSE55CG5YiX6KGoPeaVsOe7hOWOu+mHjSjlpIfku73mlofku7blpLnlpITnkIYo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxcXFwi5pS55ZCNXFxcIizpnIDlpITnkIbliJfooagpKVxcblxcblxcblxcblxcbmZvciAodmFyIGkgaW4g6ZyA5aSE55CG5YiX6KGoKSB7XFxuXFxu6K+75Y+W5aSE55CG5pWw5o2uID0gSlNPTi5wYXJzZShyZWFkRmlsZSjpnIDlpITnkIbliJfooahbaV0sIDApIHx8ICdbXScpO1xcblxcbuivu+WPluWkhOeQhuaVsOaNri5kYXRhLui3r+W+hD3or7vlj5blpITnkIbmlbDmja4uZGF0YS7ot6/lvoQucmVwbGFjZSjljp/ot6/lvoQs5paw6Lev5b6EKVxcblxcblxcbmlmKGZpbGVFeGlzdCjpnIDlpITnkIbliJfooahbaV0ucmVwbGFjZSjljp/ot6/lvoQs5paw6Lev5b6EKSkpe1xcblxcbuW3suacieaVsOaNriA9IEpTT04ucGFyc2UocmVhZEZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldLnJlcGxhY2Uo5Y6f6Lev5b6ELOaWsOi3r+W+hCksIDApIHx8ICdbXScpO1xcblxcbuW3suacieaVsOaNri5kYXRhLuaWh+S7tuWkuS5wdXNoKOivu+WPluWkhOeQhuaVsOaNri5kYXRhLuaWh+S7tuWkuSlcXG7lt7LmnInmlbDmja4uZGF0YS7mlofku7YucHVzaCjor7vlj5blpITnkIbmlbDmja4uZGF0YS7mlofku7YpXFxu5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu25aS5PeaVsOe7hOWOu+mHjSjlt7LmnInmlbDmja4uZGF0YS7mlofku7blpLkpXFxu5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu2PeaVsOe7hOWOu+mHjSjlt7LmnInmlbDmja4uZGF0YS7mlofku7YpXFxuXFxufWVsc2V7XFxuXFxuc2F2ZUZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldLnJlcGxhY2Uo5Y6f6Lev5b6ELOaWsOi3r+W+hCksIEpTT04uc3RyaW5naWZ5KOivu+WPluWkhOeQhuaVsOaNriksIDApO1xcblxcbn1cXG5cXG5cXG5cXG5cXG4gICAgICAgICAgIFxcbmRlbGV0ZUZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldKVxcbn1cXG5cXG5oaWRlTG9hZGluZygpO1xcbiByZWZyZXNoUGFnZShmYWxzZSk7XFxuIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip8nXFxuXFxufSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpXFxuXFxuXFxuXFxuXFxuXFxufSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpfSx7dGl0bGU6ICfnp7vliqgnLCBqczogJC50b1N0cmluZygo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKT0+e1xcblxcblxcblxcbmxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG7lpIfku73mlofku7blkI3liJfooag9W11cXG5mb3IgKHZhciBpIGluIOWwj+m+meS6keebmOWkh+S7veebruW9lSkge1xcbiAgICAgICAgICAg5aSH5Lu95paH5Lu25ZCN5YiX6KGoW2ldPeWwj+m+meS6keebmOWkh+S7veebruW9lVtpXS5zcGxpdChcXFwiL1xcXCIpLnJldmVyc2UoKVsxXVxcbn1cXG5cXG5cXG5yZXR1cm4gJCjlpIfku73mlofku7blkI3liJfooagsIDEsJ+mcgOimgeenu+WKqOWIsOWTquS4quaAu+aWh+S7tu+8nycpLnNlbGVjdCgo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG4gICAgXFxuICAgIFxcbiAgICDlk6rph4zmnaU95aSH5Lu955uu5b2VLnJlcGxhY2UoLygwXFxcXC5qc29ufDDiuJ0uKj9cXFxcLmpzb24pLywnJylcXG4gICAgXFxuICAgIOeCueWHu+S9jee9rj3lpIfku73mlofku7blkI3liJfooaguZmluZEluZGV4KGl0ID0+IGl0ID09PSBpbnB1dCk7XFxuXFxu5a2Y5ZOq6YeMPeWwj+m+meS6keebmOWkh+S7veebruW9lVvngrnlh7vkvY3nva5dLnJlcGxhY2UoJzAuanNvbicsJycpXFxuXFxu5paH5Lu26Lev5b6EPVxcXCIwXFxcIlxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcbumAieaLqeaWh+S7tuWkueWIl+ihqC5wdXNoKFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbumAieaLqeaWh+S7tuWkueWIl+ihqC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EMicpKS5ydWxlKVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuTJcXG5cXG5cXG5cXG59LOWkh+S7veaWh+S7tuWQjeWIl+ihqCzlsI/pvpnkupHnm5jlpIfku73nm67lvZUs5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxpKVxcblxcbiBcXG5cXG5cXG59LOWkh+S7veebruW9lSzmlofku7blpLnlkI0saSl9LHt0aXRsZTogJ+WIoOmZpCcsIGpzOiAkLnRvU3RyaW5nKCjlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpPT57XFxuXFxuXFxuXFxuIHJldHVybiAkKFxcXCLnoa7lrprliKDpmaTvvJ9cXFwiKS5jb25maXJtKCjlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpID0+IHtcXG4gICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5aSH5Lu955uu5b2VLCAwKSB8fCAnW10nKTtcXG4gICAgIHNob3dMb2FkaW5nKCfliKDpmaTkuK0nKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5LnNwbGljZShpLDEpXFxuXFxuc2F2ZUZpbGUo5aSH5Lu955uu5b2VLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70pLCAwKTtcXG5cXG50cnkge1xcbumcgOWkhOeQhuWIl+ihqD1bXVxcbumcgOWkhOeQhuWIl+ihqD3lpIfku73mlofku7blpLnlpITnkIYo5aSH5Lu955uu5b2VLOaWh+S7tuWkueWQjSxcXFwi5Yig6ZmkXFxcIizpnIDlpITnkIbliJfooagpXFxuXFxu6ZyA5aSE55CG5YiX6KGoPeaVsOe7hOWOu+mHjSjpnIDlpITnkIbliJfooagpXFxuXFxuXFxufSBjYXRjaCAoZSkge1xcbiByZWZyZXNoUGFnZShmYWxzZSk7XFxuIGxvZyhcXFwi5Yig6Zmk6ZSZ6K+v5paH5Lu25aS5XFxcIilcXG4gcmV0dXJuICd0b2FzdDovL+S9oOWPr+iDveWIoOmZpOS6huS4gOS4qumUmeivr+eahOaWh+S7tuWkuSdcXG4gICAgbG9nKGUubWVzc2FnZSlcXG59XFxuXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDpnIDlpITnkIbliJfooagpIHtcXG4gICAgICAgICAgIFxcbmRlbGV0ZUZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldKVxcbn1cXG5cXG5cXG4gIGhpZGVMb2FkaW5nKCk7XFxuIFxcbiByZWZyZXNoUGFnZShmYWxzZSk7XFxuIHJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxuXFxufSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpXFxuXFxuXFxufSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGkpfV19XFxufSlcXG4gXFxuICAgICAgICBcXG5cXG5cXG5cXG5cXG5cXG59ZWxzZXtcXG4gICAgXFxuXFxuICAgICAgICBcXG5cXG4gICAgICAgIOaWh+S7tuWQjT3liJfooahbaV0u5paH5Lu25ZCNXFxuICAgICAgICDmlofku7ZDSUQ95YiX6KGoW2ldLuaWh+S7tkNJRFxcbiAgICAgICAg5paH5Lu25qC85byPPeWIl+ihqFtpXS7mlofku7bmoLzlvI9cXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahbaV0u5paH5Lu25aSn5bCPXFxuICAgICAgICBpZigvKGpwZ3xnaWZ8cG5nfGpwZWcpJC9pLnRlc3Qo5paH5Lu25ZCNKSl7XFxuXFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5paw5qC85byPPScjLmpwZydcXG7moLzlvI89XFxcIiMuanBnQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIlxcbuWbvueJhz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxuXFxufWVsc2UgaWYoL1xcXFwuKGF2aXx0c3xtcDR8bW92fG00dnwzZ3B8cm18cm12Ynx3bXZ8YXNmfGFzeGF2aXxkYXR8bWt2fGZsdnx2b2IpJC9pLnRlc3Qo5paH5Lu25ZCNKSl7XFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5Zu+54mHPeinhumikeaWh+S7tuWbvuagh1xcbuaWsOagvOW8jz0nI2lzVmlkZW89dHJ1ZSMnXFxu5qC85byPPVxcXCIjaXNWaWRlbz10cnVlIzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbn1lbHNlIGlmKC8oZmxhY3xtcDN8d21hKSQvaS50ZXN0KOaWh+S7tuWQjSkpe1xcblxcbumTvuaOpeWJjee8gD1cXFwiXFxcIlxcbuaWsOagvOW8jz0nIy5tcDMnXFxu5qC85byPPVxcXCIjLm1wMzt7UmVmZXJlckBodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS99XFxcIlxcbuWbvueJhz3pn7PkuZDmlofku7blm77moIdcXG5cXG59ZWxzZXtcXG7pk77mjqXliY3nvIA9XFxcImRvd25sb2FkOi8vXFxcIlxcbuaWsOagvOW8jz1cXFwiXFxcIlxcbuagvOW8jz1cXFwiO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxu5Zu+54mHPeWFtuS7luaWh+S7tuWbvuagh1xcbn1cXG5cXG5cXG5cXG7pk77mjqU9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCvmlrDmoLzlvI9cXG5cXG7nur/ot68xPVxcXCJodHRwczovL2lwZnNndzAxLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzI9XFxcImh0dHBzOi8vaXBmc2d3MDIuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevMz1cXFwiaHR0cHM6Ly9pcGZzZ3cwMy5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot680PVxcXCJodHRwczovL2lwZnNndzA0LnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcblxcbumTvuaOpeWQjue8gD3mlofku7ZDSUQrXFxcIj9maWxlbmFtZT0wJnY9MSZ0PVxcXCIrXFxcIlxcXCIrbmV3IERhdGUoKS5nZXRUaW1lKCkrXFxcIiZ1PTBcXFwiK+aWsOagvOW8j1xcblxcblxcblxcbuaWsOmTvuaOpT3pk77mjqXliY3nvIAr57q/6LevMyvpk77mjqXlkI7nvIBcXG5cXG7mlrDpk77mjqU9XFxcImh0dHBzOi8vaXBmc2d3MDAuc3Rhcml2ZXJwYW4uY29tOjkwOTUvaXBmcy9cXFwiK+aWh+S7tkNJRCtcXFwiQFJlZmVyZXI9aHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vJiZcXFwiK+mTvuaOpeWQjue8gFxcblxcbuWkmue6v+i3r+mTvuaOpT1b6ZO+5o6lLOe6v+i3rzQr6ZO+5o6l5ZCO57yALOe6v+i3rzMr6ZO+5o6l5ZCO57yALOe6v+i3rzMr6ZO+5o6l5ZCO57yALOe6v+i3rzEr6ZO+5o6l5ZCO57yAXVxcblxcblxcbumTvuaOpTQ955Sf5oiQ55u06ZO+KOe6v+i3rzQs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG7pk77mjqUzPeeUn+aIkOebtOmTvijnur/ot68zLOaWh+S7tkNJRCzmlofku7blkI0pXFxu6ZO+5o6lMj3nlJ/miJDnm7Tpk74o57q/6LevMizmlofku7ZDSUQs5paH5Lu25ZCNKVxcbumTvuaOpTE955Sf5oiQ55u06ZO+KOe6v+i3rzEs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG5cXG7lpJrnur/ot6/pk77mjqU9W+mTvuaOpSzpk77mjqU0K+aWsOagvOW8jyzpk77mjqUzK+aWsOagvOW8jyvpk77mjqXlkI7nvIAs6ZO+5o6lMivmlrDmoLzlvI8s6ZO+5o6lMyvmlrDmoLzlvI9dXFxuXFxuXFxuXFxu5peg5qC85byP5ZCO57yAPeaWh+S7tkNJRCtcXFwiP2ZpbGVuYW1lPTAmdj0xJnQ9XFxcIitcXFwiXFxcIituZXcgRGF0ZSgpLmdldFRpbWUoKStcXFwiJnU9MFxcXCJcXG5cXG7lpI3liLbnm7Tpk749W+mTvuaOpTQs6ZO+5o6lMyzpk77mjqUyLOmTvuaOpTFdXFxuXFxu5aSa57q/6LevPXt1cmxzOuWkmue6v+i3r+mTvuaOpSwgaGVhZGVyczogW3snUmVmZXJlcic6ICdodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8nfSwgeydSZWZlcmVyJzog57q/6LevNCvpk77mjqXlkI7nvIB9LCB7J1JlZmVyZXInOiDnur/ot68zK+mTvuaOpeWQjue8gH0sIHsnUmVmZXJlcic6IOe6v+i3rzIr6ZO+5o6l5ZCO57yAfSwgeydSZWZlcmVyJzog57q/6LevMSvpk77mjqXlkI7nvIB9XSxuYW1lczpbJ+WklumTvicsJ+e6v+i3rzQnLCfnur/ot68zJywn57q/6LevMicsJ+e6v+i3rzEnXX1cXG5cXG7lpJrnur/ot689e3VybHM65aSa57q/6Lev6ZO+5o6lLCBoZWFkZXJzOiBbeydSZWZlcmVyJzogJ2h0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tLyd9LCB7J1JlZmVyZXInOiDnur/ot680fSwgeydSZWZlcmVyJzog57q/6LevM30sIHsnUmVmZXJlcic6IOe6v+i3rzJ9LCB7J1JlZmVyZXInOiDnur/ot68xfV0sbmFtZXM6WyflpJbpk74nLCfnur/ot680Jywn57q/6LevMycsJ+e6v+i3rzInLCfnur/ot68xJ119XFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IOaWh+S7tuWQjSxcXG4gICAgcGljX3VybDrlm77niYcsXFxuICAgIHVybDrmlofku7ZDSUQrXFxcIiYmXFxcIivmlofku7blkI0rQ0lE6ZO+5o6l6Kej5p6QLFxcbmNvbF90eXBlOiBzdG9yYWdlMC5nZXRJdGVtKFxcXCLmlofku7bmoLflvI/lj5jph49cXFwiLCBcXFwiYXZhdGFyXFxcIiksIGV4dHJhOiB7IGxvbmdDbGljazogW3t0aXRsZTogJ+WIhuS6qycsIGpzOiAkLnRvU3RyaW5nKCjlpIfku73nm67lvZUsaSk9PntcXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlpIfku73nm67lvZUsIDApIHx8ICdbXScpO1xcblxcblxcbiByZWZyZXNoUGFnZShmYWxzZSk7XFxuIHJldHVybiAndG9hc3Q6Ly/liKDpmaTmiJDlip8nXFxuXFxuXFxufSzlpIfku73nm67lvZUsaSl9LHt0aXRsZTogJ+aUueWQjScsIGpzOiAkLnRvU3RyaW5nKCjlpIfku73nm67lvZUs5paH5Lu25ZCNLGkpPT57XFxuXFxuXFxucmV0dXJuICQo5paH5Lu25ZCNLCBcXFwi5paw55qE5paH5Lu25ZCNXFxcIikuaW5wdXQoKOWkh+S7veebruW9lSzmlofku7blkI0saSkgPT4ge1xcbiAgICBcXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlpIfku73nm67lvZUsIDApIHx8ICdbXScpO1xcblxcbiAgICBcXG7mmK/lkKbph43lpI095bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2LmZpbmRJbmRleChpdCA9PiBpdC7mlofku7blkI0gPT09IGlucHV0KTtcXG5pZijmmK/lkKbph43lpI0+LTEpcmV0dXJuICd0b2FzdDovL+mHjeWQjeS6hidcXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7ZbaV0u5paH5Lu25ZCNPWlucHV0XFxuXFxuc2F2ZUZpbGUo5aSH5Lu955uu5b2VLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70pLCAwKTtcXG5cXG4gcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqfJ1xcbn0s5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpKVxcblxcblxcblxcblxcbn0s5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpKX0se3RpdGxlOiAn56e75YqoJywganM6ICQudG9TdHJpbmcoKOWkh+S7veebruW9lSxpLOaWh+S7tuWQjSzmlofku7ZDSUQpPT57XFxuXFxuXFxuXFxuIGxldCDlsI/pvpnkupHnm5jlpIfku73nm67lvZUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG7lpIfku73mlofku7blkI3liJfooag9W11cXG5mb3IgKHZhciBpIGluIOWwj+m+meS6keebmOWkh+S7veebruW9lSkge1xcbiAgICAgICAgICAg5aSH5Lu95paH5Lu25ZCN5YiX6KGoW2ldPeWwj+m+meS6keebmOWkh+S7veebruW9lVtpXS5zcGxpdChcXFwiL1xcXCIpLnJldmVyc2UoKVsxXVxcbn1cXG5cXG5yZXR1cm4gJCjlpIfku73mlofku7blkI3liJfooagsIDEsJ+mcgOimgeenu+WKqOWIsOWTquS4quaAu+aWh+S7tu+8nycpLnNlbGVjdCgo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlpIfku73nm67lvZUs5paH5Lu25ZCNLGks5paH5Lu2Q0lEKSA9PiB7XFxuICAgIFxcbiAgICDlk6rph4zmnaU95aSH5Lu955uu5b2VLnJlcGxhY2UoLygwXFxcXC5qc29ufDDiuJ0uKj9cXFxcLmpzb24pLywnJylcXG4gICAg54K55Ye75L2N572uPeWkh+S7veaWh+S7tuWQjeWIl+ihqC5maW5kSW5kZXgoaXQgPT4gaXQgPT09IGlucHV0KTtcXG5cXG7lrZjlk6rph4w95bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VW+eCueWHu+S9jee9rl0ucmVwbGFjZSgnMC5qc29uJywnJylcXG5cXG5cXG5cXG5cXG7mlofku7bot6/lvoQ9XFxcIjBcXFwiXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG7pgInmi6nmlofku7blpLnliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5XFxu6YCJ5oup5paH5Lu25aS55YiX6KGoLnB1c2goXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/pgInmi6nlpIfku73mlofku7bot6/lvoQzJykpLnJ1bGUpXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5M1xcblxcblxcblxcbn0s5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlpIfku73nm67lvZUs5paH5Lu25ZCNLGks5paH5Lu2Q0lEKVxcblxcblxcblxcbn0s5aSH5Lu955uu5b2VLGks5paH5Lu25ZCNLOaWh+S7tkNJRCl9LHt0aXRsZTogJ+WIoOmZpCcsIGpzOiAkLnRvU3RyaW5nKCjlpIfku73nm67lvZUsaSk9PntcXG5cXG5yZXR1cm4gJChcXFwi56Gu5a6a5Yig6Zmk77yfXFxcIikuY29uZmlybSgo5aSH5Lu955uu5b2VLGkpID0+IHtcXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlpIfku73nm67lvZUsIDApIHx8ICdbXScpO1xcblxcblxcbuWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7ti5zcGxpY2UoaSwxKVxcblxcbnNhdmVGaWxlKOWkh+S7veebruW9lSwgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxuIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gcmV0dXJuICd0b2FzdDovL+WIoOmZpOaIkOWKnydcXG5cXG59LOWkh+S7veebruW9lSxpKVxcblxcblxcblxcbn0s5aSH5Lu955uu5b2VLGkpfV0gfSBcXG59KVxcblxcblxcblxcbn1cXG4gICAgICAgIH0vL+WIl+ihqOW+queOr+eahOaLrOWPt1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbn1lbHNle1xcbmQucHVzaCh7XFxuICAgICAgICB0aXRsZTogYDxmb250IGNvbG9yPVxcXCIjRkI2QzczXFxcIj7mlofku7bkuKLlpLE8L2ZvbnQ+YCxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIlxcblxcbn0pXFxuXFxuXFxufVxcblxcblxcblxcblxcblxcblxcblxcbn1lbHNle1xcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5aSH5Lu96Kej5p6QXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiLFxcbiAgICB1cmw6IFxcXCIjbm9SZWNvcmRIaXN0b3J5I1xcXCIrJChge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjogW3tcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXSxcXFwi5paH5Lu2XFxcIjpbe1xcXCLmlofku7ZDSURcXFwiOlxcXCLlv4XloatcXFwiLFxcXCLmlofku7blkI1cXFwiOlxcXCLlv4XloatcXFwiLFxcXCLmlofku7bmoLzlvI9cXFwiOlxcXCIzXFxcIixcXFwi5paH5Lu25aSn5bCPXFxcIjpcXFwi5b+F6aG75aGrXFxcIn1dfV19YCxcXFwi6Kej5p6Q5a2X56ym6LaK5aSa6LaK5oWiXFxcXG7ikaDmlK/mjIHop6PmnpDljp/lp4vmlbDmja4ganNvbuagvOW8j1xcXFxu4pGh5pSv5oyB6Kej5p6QMTE1IOWTiOW4jOWAvOaVsOaNrlxcXCIpLmlucHV0KCgpID0+IHtcXG5cXG5pZigvW2EtZjAtOV17NDB9L2lnLnRlc3QoaW5wdXQpKXtcXG5cXG5cXG5cXG5yZXR1cm4gXFxcImhpa2VyOi8vcGFnZS/op6PmnpDlk4jluIzlgLwjbm9SZWNvcmRIaXN0b3J5Iz/mlbDmja49XFxcIitKU09OLnN0cmluZ2lmeShpbnB1dClcXG5cXG59XFxuXFxuXFxudHJ5IHtcXG4g5pWw5o2uPUpTT04ucGFyc2UoaW5wdXQpLmRhdGFcXG5cXG7mlofku7bot6/lvoQ95pWw5o2uWzBdLui3r+W+hFxcbuaWh+S7tuWkueWQjT1cXFwiMFxcXCJcXG5cXG5cXG5yZXR1cm4gXFxcImhpa2VyOi8vcGFnZS/lpIfku73or6bmg4Ujbm9SZWNvcmRIaXN0b3J5Iz/lpIfku73mlbDmja49XFxcIitKU09OLnN0cmluZ2lmeSjmlbDmja4pK1xcXCIm5paH5Lu26Lev5b6EPVxcXCIr5paH5Lu26Lev5b6EK1xcXCIm5paH5Lu25aS55ZCNPVxcXCIr5paH5Lu25aS55ZCNXFxuXFxuXFxufSBjYXRjaCAoZSkge1xcbiAgICBsb2coZS5tZXNzYWdlKVxcbiAgICByZXR1cm4gXFxcInRvYXN0Oi8v6L6T5YWl6ZSZ6K+vXFxcIlxcbn1cXG4gICAgICAgICAgICAgICAgICAgIFxcblxcbiAgICAgICAgICAgICAgICB9KVxcbn0pXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLmm7TlpJrmk43kvZxcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCJcXG59KVxcblxcbuaWh+S7tui3r+W+hD1nZXRQYXJhbSgn5paH5Lu26Lev5b6EJywgJ+aWh+S7tui3r+W+hCcpXFxuXFxu5paH5Lu25aS55ZCNPWdldFBhcmFtKCfmlofku7blpLnlkI0nLCAn5paH5Lu25aS55ZCNJylcXG5cXG7lpIfku73mlbDmja49SlNPTi5wYXJzZShnZXRQYXJhbSgn5aSH5Lu95pWw5o2uJywgJ+Wkh+S7veaVsOaNricpKVxcblxcbmlmKOWkh+S7veaVsOaNrj09XFxcIuWvvOWFpeS4tOaXtuaWh+S7tlxcXCIpIOWkh+S7veaVsOaNrj1KU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5YiG5Lqr5Li05pe25a+85Ye6Lmpzb24nLCAwKXx8ICdbXScpLmRhdGE7XFxuXFxuXFxuXFxu5paH5Lu26Lev5b6EPeaWh+S7tui3r+W+hCvot6/lvoTpl7TpmpQr5paH5Lu25aS55ZCNXFxuaWYo5paH5Lu25aS55ZCNPT1cXFwiMFxcXCIpIOaWh+S7tui3r+W+hD1cXFwiMFxcXCJcXG5cXG5cXG5cXG5cXG5cXG4vL2xldCDmn6Xmib7lnZDmoIcgPSDlpIfku73mlbDmja4uZmluZEluZGV4KGl0ID0+IGl0Lui3r+W+hCA9PT0g5paH5Lu26Lev5b6EKTtcXG7mn6Xmib7lnZDmoIc9LTFcXG5mb3IodmFyIGkgaW4g5aSH5Lu95pWw5o2uKXtcXG5cXG5pZijmlofku7bot6/lvoQ9PeWkh+S7veaVsOaNrltpXS7ot6/lvoQpe1xcbuafpeaJvuWdkOaghz1pXFxuYnJlYWs7XFxufVxcbn1cXG5cXG5cXG5cXG5cXG5pZiAo5p+l5om+5Z2Q5qCHID4gLTEpIHtcXG5cXG4gICDliJfooahhPeWkh+S7veaVsOaNrlvmn6Xmib7lnZDmoIddLuaWh+S7tuWkuVxcbiAgIOWIl+ihqGI95aSH5Lu95pWw5o2uW+afpeaJvuWdkOagh10u5paH5Lu2XFxuICAgIFxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGEpIHtcXG4gICAgICAgIOaWh+S7tuWkueWQjT3liJfooahhW2ldXFxuICAgICAgICBkLnB1c2goe1xcbnRpdGxlOuaWh+S7tuWkueWQjSxcXG5waWNfdXJsOuaWh+S7tuWkueWbvuaghyxcXG51cmw6XFxcImhpa2VyOi8vcGFnZS/lpIfku73or6bmg4Ujbm9SZWNvcmRIaXN0b3J5Iz/lpIfku73mlbDmja49XFxcIitKU09OLnN0cmluZ2lmeSjlpIfku73mlbDmja4pK1xcXCIm5paH5Lu26Lev5b6EPVxcXCIr5paH5Lu26Lev5b6ELnJlcGxhY2UoXFxcIjxcXFwiK+aWh+S7tuWkueWQjSxcXFwiXFxcIikrXFxcIibmlofku7blpLnlkI09XFxcIivmlofku7blpLnlkI0sXFxuY29sX3R5cGU6IHN0b3JhZ2UwLmdldEl0ZW0oXFxcIuaWh+S7tuagt+W8j+WPmOmHj1xcXCIsIFxcXCJhdmF0YXJcXFwiKVxcbn0pXFxuICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIFxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDliJfooahiKSB7XFxuICAgICAgICDmlofku7blkI095YiX6KGoYltpXS7mlofku7blkI1cXG4gICAgICAgIOaWh+S7tkNJRD3liJfooahiW2ldLuaWh+S7tkNJRFxcbiAgICAgICAg5paH5Lu25qC85byPPeWIl+ihqGJbaV0u5paH5Lu25qC85byPXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoYltpXS7mlofku7blpKflsI9cXG4gICAgICAgIGlkPeaWh+S7tkNJRFxcbmlmKC8oanBnfGdpZnxwbmd8anBlZykkL2kudGVzdCjmlofku7blkI0pKXtcXG5cXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7mlrDmoLzlvI89JyMuanBnJ1xcbuagvOW8jz1cXFwiIy5qcGdAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiXFxu5Zu+54mHPVxcXCJodHRwczovL2lwZnNndzAwLnN0YXJpdmVycGFuLmNvbTo5MDk1L2lwZnMvXFxcIivmlofku7ZDSUQrXFxcIkBSZWZlcmVyPWh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCJcXG5cXG59ZWxzZSBpZigvXFxcXC4oYXZpfHRzfG1wNHxtb3Z8bTR2fDNncHxybXxybXZifHdtdnxhc2Z8YXN4YXZpfGRhdHxta3Z8Zmx2fHZvYikkL2kudGVzdCjmlofku7blkI0pKXtcXG7pk77mjqXliY3nvIA9XFxcIlxcXCJcXG7lm77niYc96KeG6aKR5paH5Lu25Zu+5qCHXFxu5paw5qC85byPPScjaXNWaWRlbz10cnVlIydcXG7moLzlvI89XFxcIiNpc1ZpZGVvPXRydWUjO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxufWVsc2UgaWYoLyhmbGFjfG1wM3x3bWEpJC9pLnRlc3Qo5paH5Lu25ZCNKSl7XFxuXFxu6ZO+5o6l5YmN57yAPVxcXCJcXFwiXFxu5paw5qC85byPPScjLm1wMydcXG7moLzlvI89XFxcIiMubXAzO3tSZWZlcmVyQGh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL31cXFwiXFxu5Zu+54mHPemfs+S5kOaWh+S7tuWbvuagh1xcblxcbn1lbHNle1xcbumTvuaOpeWJjee8gD1cXFwiZG93bmxvYWQ6Ly9cXFwiXFxu5paw5qC85byPPVxcXCJcXFwiXFxu5qC85byPPVxcXCI7e1JlZmVyZXJAaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vfVxcXCJcXG7lm77niYc95YW25LuW5paH5Lu25Zu+5qCHXFxufVxcblxcblxcblxcbumTvuaOpT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK+aWsOagvOW8j1xcblxcbue6v+i3rzE9XFxcImh0dHBzOi8vaXBmc2d3MDEuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxu57q/6LevMj1cXFwiaHR0cHM6Ly9pcGZzZ3cwMi5zdGFyaXZlcnBhbi5jb206OTA5Ni9pcGZzL1xcXCJcXG7nur/ot68zPVxcXCJodHRwczovL2lwZnNndzAzLnN0YXJpdmVycGFuLmNvbTo5MDk2L2lwZnMvXFxcIlxcbue6v+i3rzQ9XFxcImh0dHBzOi8vaXBmc2d3MDQuc3Rhcml2ZXJwYW4uY29tOjkwOTYvaXBmcy9cXFwiXFxuXFxu6ZO+5o6l5ZCO57yAPeaWh+S7tkNJRCtcXFwiP2ZpbGVuYW1lPTAmdj0xJnQ9XFxcIitcXFwiXFxcIituZXcgRGF0ZSgpLmdldFRpbWUoKStcXFwiJnU9MFxcXCIr5paw5qC85byPXFxuXFxuXFxuXFxu5paw6ZO+5o6lPemTvuaOpeWJjee8gCvnur/ot68zK+mTvuaOpeWQjue8gFxcblxcbuaWsOmTvuaOpT1cXFwiaHR0cHM6Ly9pcGZzZ3cwMC5zdGFyaXZlcnBhbi5jb206OTA5NS9pcGZzL1xcXCIr5paH5Lu2Q0lEK1xcXCJAUmVmZXJlcj1odHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS8mJlxcXCIr6ZO+5o6l5ZCO57yAXFxuXFxu5aSa57q/6Lev6ZO+5o6lPVvpk77mjqUs57q/6LevNCvpk77mjqXlkI7nvIAs57q/6LevMyvpk77mjqXlkI7nvIAs57q/6LevMyvpk77mjqXlkI7nvIAs57q/6LevMSvpk77mjqXlkI7nvIBdXFxuXFxuXFxu6ZO+5o6lND3nlJ/miJDnm7Tpk74o57q/6LevNCzmlofku7ZDSUQs5paH5Lu25ZCNKVxcbumTvuaOpTM955Sf5oiQ55u06ZO+KOe6v+i3rzMs5paH5Lu2Q0lELOaWh+S7tuWQjSlcXG7pk77mjqUyPeeUn+aIkOebtOmTvijnur/ot68yLOaWh+S7tkNJRCzmlofku7blkI0pXFxu6ZO+5o6lMT3nlJ/miJDnm7Tpk74o57q/6LevMSzmlofku7ZDSUQs5paH5Lu25ZCNKVxcblxcbuWkmue6v+i3r+mTvuaOpT1b6ZO+5o6lLOmTvuaOpTQr5paw5qC85byPLOmTvuaOpTMr5paw5qC85byPK+mTvuaOpeWQjue8gCzpk77mjqUyK+aWsOagvOW8jyzpk77mjqUzK+aWsOagvOW8j11cXG5cXG5cXG5cXG7ml6DmoLzlvI/lkI7nvIA95paH5Lu2Q0lEK1xcXCI/ZmlsZW5hbWU9MCZ2PTEmdD1cXFwiK1xcXCJcXFwiK25ldyBEYXRlKCkuZ2V0VGltZSgpK1xcXCImdT0wXFxcIlxcblxcbuWkjeWItuebtOmTvj1b6ZO+5o6lNCzpk77mjqUzLOmTvuaOpTIs6ZO+5o6lMV1cXG5cXG7lpJrnur/ot689e3VybHM65aSa57q/6Lev6ZO+5o6lLCBoZWFkZXJzOiBbeydSZWZlcmVyJzogJ2h0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tLyd9LCB7J1JlZmVyZXInOiDnur/ot680K+mTvuaOpeWQjue8gH0sIHsnUmVmZXJlcic6IOe6v+i3rzMr6ZO+5o6l5ZCO57yAfSwgeydSZWZlcmVyJzog57q/6LevMivpk77mjqXlkI7nvIB9LCB7J1JlZmVyZXInOiDnur/ot68xK+mTvuaOpeWQjue8gH1dLG5hbWVzOlsn5aSW6ZO+Jywn57q/6LevNCcsJ+e6v+i3rzMnLCfnur/ot68yJywn57q/6LevMSddfVxcblxcbuWkmue6v+i3rz17dXJsczrlpJrnur/ot6/pk77mjqUsIGhlYWRlcnM6IFt7J1JlZmVyZXInOiAnaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vJ30sIHsnUmVmZXJlcic6IOe6v+i3rzR9LCB7J1JlZmVyZXInOiDnur/ot68zfSwgeydSZWZlcmVyJzog57q/6LevMn0sIHsnUmVmZXJlcic6IOe6v+i3rzF9XSxuYW1lczpbJ+WklumTvicsJ+e6v+i3rzQnLCfnur/ot68zJywn57q/6LevMicsJ+e6v+i3rzEnXX1cXG5cXG5cXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogZm9ybWF0U2l6ZSjmlofku7blpKflsI8pK1xcXCItXFxcIivmlofku7blkI0sXFxuICAgIHBpY191cmw65Zu+54mHLFxcbiAgICB1cmw65paH5Lu2Q0lEK1xcXCImJlxcXCIr5paH5Lu25ZCNK0NJROmTvuaOpeino+aekCxcXG5jb2xfdHlwZTogc3RvcmFnZTAuZ2V0SXRlbShcXFwi5paH5Lu25qC35byP5Y+Y6YePXFxcIiwgXFxcImF2YXRhclxcXCIpLFxcbmV4dHJhOntsb25nQ2xpY2s6IFt7dGl0bGU6IFxcXCLlrZjoh7PnvZHnm5hcXFwiLCBqczogJC50b1N0cmluZygo5paH5Lu25ZCNLOaWh+S7tuWkp+Wwjyzmlofku7ZDSUQs5paH5Lu25qC85byPKT0+e1xcblxcblxcblxcblxcbuWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOaWh+S7tkNJRCzmlofku7blkI0s5paH5Lu25qC85byPLOaWh+S7tuWkp+WwjykgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG4gICAgICAgIOaWh+S7tuWkueWQjeensC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbuaWh+S7tuWkueWIl+ihqGlkPVxcXCIwXFxcIlxcblxcblxcblxcbmlkPWB7XFxcIuaWh+S7tkNJRFxcXCI6XFxcImAr5paH5Lu2Q0lEK2BcXFwiLFxcXCLmlofku7blkI1cXFwiOlxcXCJgK+aWh+S7tuWQjStgXFxcIixcXFwi5paH5Lu25qC85byPXFxcIjpcXFwiYCvmlofku7bmoLzlvI8rYFxcXCIsXFxcIuaWh+S7tuWkp+Wwj1xcXCI6XFxcImAr5paH5Lu25aSn5bCPK2BcXFwifWBcXG5cXG51c2VyaWQ9XFxcIuaXoChDSUQpXFxcIlxcbueJueauimlkPVxcXCJcXFwiXFxu5biW5a2QaWQ9XFxcIlxcXCJcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mHjeWkjeivt+axguaWh+S7tuWkuScpKS5ydWxlKVxcblxcblxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbn0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOaWh+S7tkNJRCzmlofku7blkI0s5paH5Lu25qC85byPLOaWh+S7tuWkp+WwjylcXG5cXG5cXG5cXG5cXG59LOaWh+S7tuWQjSzmlofku7blpKflsI8s5paH5Lu2Q0lELOaWh+S7tuagvOW8jylcXG59XX1cXG59KVxcbiAgICAgICAgfVxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbn1lbHNle1xcbmQucHVzaCh7XFxuICAgICAgICB0aXRsZTogYDxmb250IGNvbG9yPVxcXCIjRkI2QzczXFxcIj7mlofku7bkuKLlpLE8L2ZvbnQ+YCxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIlxcblxcbn0pXFxuXFxuXFxufVxcblxcblxcblxcbn1cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkupHlj6Pku6RcIixcInBhdGhcIjpcIuS6keWPo+S7pFwiLFwicnVsZVwiOlwiXFxuXFxuXFxuXFxuXFxuXFxuZnVuY3Rpb24g5aSE55CG5LqR5Y+j5LukKOaVsOaNrikge1xcbiAgICBcXG4gICAgXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbA/cnVsZT1JUEZT6LWE5rqQJykpLnJ1bGUpXFxuXFxuICAgXFxuXFxuICAgIGlmICjmlbDmja4ubGVuZ3RoIDwgMyB8fCDmlbDmja5bMF0gIT0gYHtgKSB7XFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6K+36L6T5YWl5q2j56Gu55qE5qC85byPXFxcIlxcbiAgICB9XFxuXFxuICAgICDmlbDmja4gPSBKU09OLnBhcnNlKOaVsOaNrilcXG5cXG5cXG4gICAgIFxcblxcbiAgICBpZiAo5pWw5o2uLmRhdGEgPT0gbnVsbCB8fCDmlbDmja4uZGF0YS5sZW5ndGggPCAxKSB7XFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6K+36L6T5YWl5q2j56Gu55qE5pWw5o2uXFxcIlxcbiAgICB9IGVsc2Uge1xcblxcbnRyeSB7XFxu5a2Y5YWl5paH5Lu25YiX6KGoPeaVsOaNri5kYXRhWzBdLuaWh+S7tuWkuS5qb2luKFxcXCLjgIFcXFwiKVxcbn0gY2F0Y2ggKGUpIHtcXG7lrZjlhaXmlofku7bliJfooag95pWw5o2uLmRhdGFbMF0u5paH5Lu2LmpvaW4oXFxcIuOAgVxcXCIpXFxuICAgIGxvZyhlLm1lc3NhZ2UpXFxufVxcblxcblxcbnJldHVybiBjb25maXJtKHtcXG50aXRsZTon6YCJ5oup5o+Q56S6JywgXFxuY29udGVudDon5a2Y5YWl55qE5paH5Lu25Li6Oicr5a2Y5YWl5paH5Lu25YiX6KGoKydcXFxcbueCueWHu+ehruWumuWQjuWtmOWFpeaWh+S7tuWkueWkh+S7vScsIFxcblxcbmNvbmZpcm06JC50b1N0cmluZygo5pWw5o2uKSA9PiB7XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbA/cnVsZT1JUEZT6LWE5rqQJykpLnJ1bGUpXFxuXFxu5pWw5o2u5YiX6KGoPeaVsOaNri5kYXRhXFxuZm9yICh2YXIgaSBpbiDmlbDmja7liJfooagpIHtcXG5cXG5sb2co5pWw5o2u5YiX6KGoW2ldLui3r+W+hClcXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wkh+S7veaWh+S7ti/lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70vXFxcIivmlbDmja7liJfooahbaV0u6Lev5b6EK1xcXCIuanNvblxcXCIsIDApIHx8ICdbXScpO1xcblxcblxcbmxvZyjmlbDmja7liJfooahbaV0pXFxuXFxucHV0TXlWYXIoXFxcIuino+aekOWkh+S7veaWh+S7tlxcXCIsXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lpIfku73mlofku7Yv5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9L1xcXCIpXFxuXFxuaWYo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9Lmxlbmd0aDwxKXtcXG5cXG5sZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCl8fCAnW10nKTtcXG5cXG5cXG4gICAgIFxcbuWwj+m+meS6keebmOWkh+S7veebruW9lS5wdXNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS8wLmpzb24nKVxcblxcbuWwj+m+meS6keebmOWkh+S7veebruW9lT3mlbDnu4Tljrvph40o5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VKVxcblxcblxcblxcblxcblxcbnNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku73nm67lvZUpLCAwKTtcXG5cXG5cXG5cXG7lsI/pvpnkupHnm5jmlofku7blpLnlpIfku709e1xcXCLlpIfku73ml7bpl7RcXFwiOm5ldyBEYXRlKCkuZ2V0VGltZSgpLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjog5pWw5o2u5YiX6KGoW2ldfVxcblxcbmxvZyjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70pXFxuXFxufWVsc2V7XFxuXFxuXFxu5paH5Lu25aS55pWw57uEPeaVsOaNruWIl+ihqFtpXS7mlofku7blpLlcXG7mlofku7bmlbDnu4Q95pWw5o2u5YiX6KGoW2ldLuaWh+S7tlxcbiAgICDmlofku7blpLnliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5XFxuICAgIOaWh+S7tuWIl+ihqD3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7ZcXG5cXG4gICAg5paH5Lu25aS55YiX6KGoPeaWh+S7tuWkueWIl+ihqC5jb25jYXQo5paH5Lu25aS55pWw57uEKVxcbiAgICDmlofku7bliJfooag95paH5Lu25YiX6KGoLmNvbmNhdCjmlofku7bmlbDnu4QpXFxuXFxuICAgIFxcbiAgICDmlofku7blpLnliJfooag95pWw57uE5Y676YeNKOaWh+S7tuWkueWIl+ihqClcXG4gICAg5paH5Lu25YiX6KGoPeaVsOe7hOWOu+mHjSjmlofku7bliJfooagpXFxuICAgIFxcbiAgICDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLk95paH5Lu25aS55YiX6KGoXFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tj3mlofku7bliJfooahcXG4gICAgXFxuXFxuXFxuXFxuXFxufVxcblxcbnNhdmVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS9cXFwiK+aVsOaNruWIl+ihqFtpXS7ot6/lvoQrXFxcIi5qc29uXFxcIiwgSlNPTi5zdHJpbmdpZnko5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KSwgMCk7XFxuXFxufVxcblxcbnJldHVybid0b2FzdDovL+W3suWvvOWFpSDmlofku7blpLnlpIfku70nXFxuXFxuXFxuXFxuICAgIFxcbiAgICAgICAgICAgICAgICB9LOaVsOaNriksXFxuXFxuY2FuY2VsOiQudG9TdHJpbmcoKOaVsOaNrikgPT4ge1xcblxcbiAgICAgICAgICAgcmV0dXJuJ3RvYXN0Oi8v5L2g5Y+W5raI5LqG5a+85YWlJ1xcbiAgICAgICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIH0pLFxcblxcbn0s5pWw5o2uKVxcblxcblxcblxcblxcbnJldHVybiAkKFtcXFwi6YCJ5oup5a+85YWlXFxcIixcXFwi5YWo6YOo5a+85YWlXFxcIl0sIDIsJ+mcgOimgeWTqumHjOWvvOWFpeaWueW8j++8nycpLnNlbGVjdCgo5pWw5o2uKSA9PiB7XFxuICAgIFxcbiAgICBpZihpbnB1dD09XFxcIumAieaLqeWvvOWFpVxcXCIpe1xcblxcbuaVsOaNrj3mlbDmja4uZGF0YVxcbuaWh+S7tui3r+W+hD3mlbDmja5bMF0u6Lev5b6EXFxu5paH5Lu25aS55ZCNPeaWh+S7tui3r+W+hC5zcGxpdChcXFwiL1xcXCIpLnJldmVyc2UoKVswXVxcbmxvZyhcXFwi5YmN5paH5Lu26Lev5b6EXFxcIivmlofku7bot6/lvoQpXFxubG9nKFxcXCLliY3mlofku7blpLnlkI1cXFwiK+aWh+S7tuWkueWQjSlcXG5cXG5yZXR1cm4gXFxcImhpa2VyOi8vcGFnZS/lpIfku73or6bmg4U/5aSH5Lu95pWw5o2uPVxcXCIrSlNPTi5zdHJpbmdpZnko5pWw5o2uKStcXFwiJuaWh+S7tui3r+W+hD1cXFwiK+aWh+S7tui3r+W+hC5yZXBsYWNlKFxcXCIvXFxcIivmlofku7blpLnlkI0sXFxcIlxcXCIpK1xcXCIm5paH5Lu25aS55ZCNPVxcXCIr5paH5Lu25aS55ZCNXFxuXFxuICAgICAgICBcXG4gICAgfWVsc2UgaWYoaW5wdXQ9PVxcXCLlhajpg6jlr7zlhaVcXFwiKXtcXG4gICAgICAgIHJldHVybiAkKFxcXCLnvZHlj4vliIbkuqtcXFwiK3N0b3JhZ2UwLmdldE15VmFyKFxcXCLlsI/pvpnkupHnm5jlr7zlhaXkupHlj6Pku6TmrKHmlbBcXFwiLDEpK1xcXCIoXFxcIituZXcgRGF0ZSgpLmdldFRpbWUoKStcXFwiKVxcXCIsXFxcIuaWsOeahOWkh+S7veaWh+S7tuWQjVxcXCIpLmlucHV0KCjmlbDmja4pPT57XFxuICAgICAgICAgICAgXFxu5a+85YWl5aSH5Lu96Lev5b6EPVxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAvXFxcIitpbnB1dCtcXFwiLmpzb25cXFwiXFxuXFxuc2F2ZUZpbGUo5a+85YWl5aSH5Lu96Lev5b6ELCBKU09OLnN0cmluZ2lmeSjmlbDmja4pLCAwKTtcXG5cXG5cXG5sZXQg5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7veebruW9lS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG7lsI/pvpnkupHnm5jlpIfku73nm67lvZUucHVzaCjlr7zlhaXlpIfku73ot6/lvoQpXFxu5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VPeaVsOe7hOWOu+mHjSjlsI/pvpnkupHnm5jlpIfku73nm67lvZUpXFxuXFxuc2F2ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvSVBGU+i1hOa6kC/lsI/pvpnkupHnm5jlpIfku73nm67lvZUuanNvbicsIEpTT04uc3RyaW5naWZ5KOWwj+m+meS6keebmOWkh+S7veebruW9lSksIDApO1xcblxcbnN0b3JhZ2UwLnB1dE15VmFyKFxcXCLlsI/pvpnkupHnm5jlr7zlhaXkupHlj6Pku6TmrKHmlbBcXFwiLHN0b3JhZ2UwLmdldE15VmFyKFxcXCLlsI/pvpnkupHnm5jlr7zlhaXkupHlj6Pku6TmrKHmlbBcXFwiLDEpKyspXFxuXFxuICAgICAgcmV0dXJuICd0b2FzdDovL+WvvOWFpeaIkOWKnzonK2lucHV0XFxuICAgICAgICAgICAgXFxuICAgICAgICB9LOaVsOaNrilcXG4gICAgICAgIFxcbiAgICB9ZWxzZXtcXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuJ3RvYXN0Oi8v5pyq5byA5Y+RJ1xcbiAgICB9XFxuXFxuXFxuXFxuXFxuXFxufSzmlbDmja4pXFxuXFxuXFxuXFxuXFxuLypcXG5cXG5sZXQg5bCP6b6Z5LqR55uY5aSH5Lu9ID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9JUEZT6LWE5rqQL+Wwj+m+meS6keebmOWkh+S7vS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuICAgICAgICDmlofku7blpLnlkI0gPSDmlbDmja4u5paH5Lu25aS55ZCNXFxuICAgICAgICDmlofku7bmlbA95pWw5o2uLmRhdGEubGVuZ3RoXFxuXFxubG9nKOWwj+m+meS6keebmOWkh+S7vSlcXG5sb2co5paH5Lu25aS55ZCNKVxcblxcbiAgICAgICAgbGV0IGlkZXggPSDlsI/pvpnkupHnm5jlpIfku70uZmluZEluZGV4KGl0ID0+IGl0LuaWh+S7tuWkueWQjSA9PT0g5paH5Lu25aS55ZCNKTtcXG4gICAgICAgIGxvZyhcXFwiaWRleFxcXCIgKyBpZGV4KVxcbiAgICAgICAgaWYgKGlkZXggPiAtMSkge1xcbiAgICAgICAgICAgIGlmICjlsI/pvpnkupHnm5jlpIfku71baWRleF0u5paH5Lu25aS55ZCNID09IOaWh+S7tuWkueWQjSkge1xcblxcblxcblxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/msqHmnInmk43kvZwnXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICDlsI/pvpnkupHnm5jlpIfku70ucHVzaCjmlbDmja4pO1xcbiAgICAgICAgICAgIHNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5bCP6b6Z5LqR55uY5aSH5Lu9Lmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jlpIfku70pLCAwKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5aSH5Lu95paH5Lu25pWwOlxcXCIgKyDmlofku7bmlbBcXG5cXG4gICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgXFxuKi9cXG5cXG5cXG5cXG5cXG5cXG5cXG59XFxuXFxufVxcblxcbuaVsOaNriA9IHBhcnNlUGFzdGUoaW5wdXQpO1xcblxcbuWkhOeQhuS6keWPo+S7pCjmlbDmja4pXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmibnph4/mk43kvZxcIixcInBhdGhcIjpcIuaJuemHj+aTjeS9nFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Zu+5qCHJykpLnJ1bGUpXFxuXFxu5YiX6KGoPUpTT04ucGFyc2UoZ2V0UGFyYW0oJ2RhdGEnLCAn5pegJykpXFxu5paH5Lu25aS5aWQ9Z2V0UGFyYW0oJ+aWh+S7tuWkuWlkJywgJ+aXoCcpXFxu5paH5Lu25aS55ZCNPWdldFBhcmFtKCfmlofku7blpLnlkI0nLCAn5pegJylcXG5cXG5cXG5wYWdlID0gTnVtYmVyKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCJwYWdlXFxcIiwgXFxcIjFcXFwiKSk7XFxuXFxu5YiH5Ymy5YiX6KGo5YC8PXN0b3JhZ2UwLmdldEl0ZW0oXFxcIklQRlPotYTmupDmlofku7bliJfooajliIflibLlgLxcXFwiLFxcXCI1MFxcXCIpXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTpcXFwiPHN0cm9uZz48Zm9udCBjb2xvcj0nIzFFOTBGRic+6K+36YCJ5oup6ZyA6KaB5aSE55CG55qE5paH5Lu2IOW9k+WJjeW3sumAiTpcXFwiK0pTT04ucGFyc2UoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsXFxcIltdXFxcIikpLmxlbmd0aCtcXFwiPC9mcm9udD48L3N0cm9uZz5cXFwiLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIixcXG4gICAgICAgIH0pO1xcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5YWo6YCJXFxcIixcXG4gICAgdXJsOiQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKOaWh+S7tuWkuWlkLOWIl+ihqCkgPT4ge1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Zu+5qCHJykpLnJ1bGUpXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uEPUpTT04ucGFyc2UoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsXFxcIltdXFxcIikpXFxuXFxucGFnZSA9IE51bWJlcihnZXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsIFxcXCIxXFxcIikpO1xcblxcbuWIh+WJsuWIl+ihqOWAvD1zdG9yYWdlMC5nZXRJdGVtKFxcXCJJUEZT6LWE5rqQ5paH5Lu25YiX6KGo5YiH5Ymy5YC8XFxcIixcXFwiNTBcXFwiKVxcblxcbmZvcihsZXQgaSA9IOWIh+WJsuWIl+ihqOWAvCoocGFnZS0xKTtpIDwg5YiX6KGoLmxlbmd0aCYmaTzliIflibLliJfooajlgLwqcGFnZTtpKyspIHtcXG4gICAgICAgIOagh+mimD3liJfooahbaV0uZmlsZU5hbWVcXG4gICAgICAgIGlkPeWIl+ihqFtpXS5pZFxcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqFtpXS5maWxlU2l6ZVxcbiAgICAgICAgZmlsZVR5cGU95YiX6KGoW2ldLmZpbGVUeXBlXFxuXFxuaWYo5paH5Lu25aSn5bCPPT0wKXtcXG7mlofku7ZDSUQ9XFxcIuaXoFxcXCJcXG59ZWxzZXtcXG5cXG7mlofku7ZDSUQ95YiX6KGoW2ldLmZpbGVDaWRcXG5cXG59XFxu5om56YeP6YCJ5oup5pWw5o2uPWlkK1xcXCImJlxcXCIr5qCH6aKYK1xcXCImJlxcXCIr5paH5Lu2Q0lEK1xcXCImJlxcXCIr5paH5Lu25aSn5bCPK1xcXCImJlxcXCIrZmlsZVR5cGVcXG5cXG5cXG5cXG7mibnph4/pgInmi6nmlbDmja7mlbDnu4QucHVzaCjmibnph4/pgInmi6nmlbDmja4pXFxuXFxuXFxuXFxucHV0TXlWYXIo5paH5Lu25aS5aWQr5om56YeP6YCJ5oup5pWw5o2uLOmAieWumuWbvuaghylcXG5cXG5cXG5cXG59XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG7mibnph4/pgInmi6nmlbDmja7mlbDnu4Q95pWw57uE5Y676YeNKOaJuemHj+mAieaLqeaVsOaNruaVsOe7hClcXG5cXG5wdXRNeVZhcijmlofku7blpLlpZCtcXFwi5om56YeP6YCJ5oup5pWw5o2u5pWw57uEXFxcIixKU09OLnN0cmluZ2lmeSjmibnph4/pgInmi6nmlbDmja7mlbDnu4QpKVxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKVxcbnJldHVybiAndG9hc3Q6Ly/lt7Lnu4/lhajpgIknXFxuXFxuXFxufSzmlofku7blpLlpZCzliJfooagpLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfM1xcXCIsXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuWPjemAiVxcXCIsXFxuICAgIHVybDokKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCjmlofku7blpLlpZCzliJfooagpID0+IHtcXG5cXG7mibnph4/pgInmi6nmlbDmja7mlbDnu4Q9SlNPTi5wYXJzZShnZXRNeVZhcijmlofku7blpLlpZCtcXFwi5om56YeP6YCJ5oup5pWw5o2u5pWw57uEXFxcIixcXFwiW11cXFwiKSlcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcblxcbuWFqOmDqOaVsOaNruaVsOe7hD1bXVxcblxcbnBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcInBhZ2VcXFwiLCBcXFwiMVxcXCIpKTtcXG7liIflibLliJfooajlgLw9c3RvcmFnZTAuZ2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsXFxcIjUwXFxcIilcXG5cXG5mb3IobGV0IGkgPSDliIflibLliJfooajlgLwqKHBhZ2UtMSk7aSA8IOWIl+ihqC5sZW5ndGgmJmk85YiH5Ymy5YiX6KGo5YC8KnBhZ2U7aSsrKSB7XFxuICAgICAgICDmoIfpopg95YiX6KGoW2ldLmZpbGVOYW1lXFxuICAgICAgICBpZD3liJfooahbaV0uaWRcXG4gICAgICAgIOaWh+S7tuWkp+Wwjz3liJfooahbaV0uZmlsZVNpemVcXG4gICAgICAgIGZpbGVUeXBlPeWIl+ihqFtpXS5maWxlVHlwZVxcblxcbmlmKOaWh+S7tuWkp+Wwjz09MCl7XFxu5paH5Lu2Q0lEPVxcXCLml6BcXFwiXFxufWVsc2V7XFxuXFxuXFxu5paH5Lu2Q0lEPeWIl+ihqFtpXS5maWxlQ2lkXFxufVxcbuaJuemHj+mAieaLqeaVsOaNrj1pZCtcXFwiJiZcXFwiK+agh+mimCtcXFwiJiZcXFwiK+aWh+S7tkNJRCtcXFwiJiZcXFwiK+aWh+S7tuWkp+WwjytcXFwiJiZcXFwiK2ZpbGVUeXBlXFxuXFxu5YWo6YOo5pWw5o2u5pWw57uELnB1c2go5om56YeP6YCJ5oup5pWw5o2uKVxcblxcblxcbnB1dE15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrizpgInlrprlm77moIcpXFxuXFxuXFxuXFxuXFxufVxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcbmZvciAodmFyIGkgaW4g5om56YeP6YCJ5oup5pWw5o2u5pWw57uEKSB7XFxuY2xlYXJNeVZhcijmlofku7blpLlpZCvmibnph4/pgInmi6nmlbDmja7mlbDnu4RbaV0pXFxu5YWo6YOo5pWw5o2u5pWw57uELnNwbGljZSjlhajpg6jmlbDmja7mlbDnu4QuaW5kZXhPZijmibnph4/pgInmi6nmlbDmja7mlbDnu4RbaV0pLDEpXFxufVxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD3lhajpg6jmlbDmja7mlbDnu4RcXG5cXG5wdXRNeVZhcijmlofku7blpLlpZCtcXFwi5om56YeP6YCJ5oup5pWw5o2u5pWw57uEXFxcIixKU09OLnN0cmluZ2lmeSjmibnph4/pgInmi6nmlbDmja7mlbDnu4QpKVxcblxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKVxcbnJldHVybiAndG9hc3Q6Ly/lt7Lnu4/lj43pgIknXFxuXFxuXFxuXFxuXFxuXFxuXFxufSzmlofku7blpLlpZCzliJfooagpLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfM1xcXCIsXFxufSlcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIuaTjeS9nFxcXCIsXFxuICAgIHVybDokKFtcXFwi5Y+W5raI5bey6YCJXFxcIixcXFwi5bqP5Y+36YCJ5oupXFxcIixcXFwi5YiG5Lqr5bey6YCJXFxcIixcXFwi5aSH5Lu95bey6YCJXFxcIixcXFwi5pS55ZCN5bey6YCJXFxcIixcXFwi56e75Yqo5bey6YCJXFxcIixcXFwi5Yig6Zmk5bey6YCJXFxcIixcXFwi5b6F5byA5Y+RXFxcIl0sIDIsJ+mcgOimgei/m+ihjOS7gOS5iOaTjeS9nO+8nycpLnNlbGVjdCgo5paH5Lu25aS5aWQs5paH5Lu25aS55ZCNKSA9PiB7XFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uEPUpTT04ucGFyc2UoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsXFxcIltdXFxcIikpXFxuXFxuSVBGU+WvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcblxcbmlkPVtdXFxu5qCH6aKYPVtdXFxuZm9yICh2YXIgaSBpbiDmibnph4/pgInmi6nmlbDmja7mlbDnu4QpIHtcXG5pZFtpXT3mibnph4/pgInmi6nmlbDmja7mlbDnu4RbaV0uc3BsaXQoXFxcIiYmXFxcIilbMF1cXG7moIfpophbaV095om56YeP6YCJ5oup5pWw5o2u5pWw57uEW2ldLnNwbGl0KFxcXCImJlxcXCIpWzFdLnJlcGxhY2UoL1xcXFwuXFxcXHcrJC9nLCcnKVxcbn1cXG5cXG5pZD1pZC5qb2luKGBcXFwiLFxcXCJgKVxcbuagh+mimD3moIfpopguam9pbihcXFwi44CBXFxcIikuc3Vic3RyKDAsIDU1KVxcblxcblxcblxcblxcblxcbmlmKGlucHV0PT1cXFwi5Y+W5raI5bey6YCJXFxcIil7XFxuXFxuZm9yKGk9MDtpPOaJuemHj+mAieaLqeaVsOaNruaVsOe7hC5sZW5ndGg7aSsrKXtcXG5jbGVhck15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNruaVsOe7hFtpXSlcXG59XFxuY2xlYXJNeVZhcijmlofku7blpLlpZCtcXFwi5om56YeP6YCJ5oup5pWw5o2u5pWw57uEXFxcIilcXG5yZWZyZXNoUGFnZShmYWxzZSlcXG5yZXR1cm4gJ3RvYXN0Oi8v5bey5YWo6YOo5Y+W5raIJ1xcblxcblxcblxcbn1lbHNlIGlmKGlucHV0PT1cXFwi5bqP5Y+36YCJ5oupXFxcIil7XFxuXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCLliIbkuqvlt7LpgIlcXFwiKXtcXG4gICAgXFxuICAgIFxcbiAgICBcXG5cXG5yZXR1cm4gJChbXFxcIuWumOaWueWIhuS6qy3lpKfmlofku7bliIbkuqtcXFwiLFxcXCJDSUTliIbkuqst5bCR6YeP5pWw5o2u5YiG5LqrXFxcIl0sIDEsJ+WTquenjeWIhuS6q++8nycpLnNlbGVjdCgo5paH5Lu25aS5aWQs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUsaWQs5qCH6aKYKSA9PiB7XFxuXFxuXFxuaWYoaW5wdXQ9PVxcXCLlrpjmlrnliIbkuqst5aSn5paH5Lu25YiG5LqrXFxcIil7XFxuXFxuXFxucmV0dXJuICQoXFxcIjBcXFwiLFxcXCLliIbkuqvlpKnmlbAgMOS4uuawuOS5hVxcXCIpLmlucHV0KCjmlofku7blpLlpZCxJUEZT5a+G6ZKlLGlkLOagh+mimCkgPT4ge1xcblxcbuWIhuS6q+WkqeaVsD1pbnB1dFxcblxcbnJldHVybiAkKFtcXFwi5omA5pyJ5paH5Lu25LiA5Liq6ZO+5o6lXFxcIixcXFwi5q+P5Liq5paH5Lu25LiA5Liq6ZO+5o6lXFxcIl0sIDEsJ+WTquenjeWIhuS6q++8nycpLnNlbGVjdCgo5paH5Lu25aS5aWQs5YiG5Lqr5aSp5pWwLElQRlPlr4bpkqUsaWQs5qCH6aKYKSA9PiB7XFxuXFxuXFxuXFxuXFxuXFxuXFxuaWYoaW5wdXQ9PVxcXCLmiYDmnInmlofku7bkuIDkuKrpk77mjqVcXFwiKXtcXG5cXG7or7fmsYLliIbkuqvpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuMC9jbG91ZC9zaGFyZVxcXCJcXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrSVBGU+WvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiaWRzXFxcIjpbXFxcImAraWQrYFxcXCJdLFxcXCJzaGFyZURheXNcXFwiOmAr5YiG5Lqr5aSp5pWwK2AsXFxcInNoYXJlQ29udGVudFxcXCI6XFxcImAr5qCH6aKYK2BcXFwiLFxcXCJlbmNyeXB0Q29kZVxcXCI6XFxcIjBcXFwifWBcXG4gICAgICAgIFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguWIhuS6q+mTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG5pZijnrKzkuIDmrKHlk43lupQuaW5jbHVkZXMoXFxcIue7keWumuaJi+acuuWPt1xcXCIpKVxcbnJldHVybiAndG9hc3Q6Ly/mnKrnu5HlrprmiYvmnLrlj7fml6Dms5XliIbkuqsnXFxuXFxu5YiG5Lqr6ZO+5o6lPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmxpbmtcXG5jb3B5KCfmlofku7blkI06JyvmoIfpopgrJ1xcXFxuJysn5YiG5Lqr6ZO+5o6lOicr5YiG5Lqr6ZO+5o6lKVxcbiAgICAgICAgXFxucmV0dXJuICd0b2FzdDovL+WIhuS6q+aIkOWKnyDlt7LlpI3liLbliIbkuqvpk77mjqUnXFxuXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCLmr4/kuKrmlofku7bkuIDkuKrpk77mjqVcXFwiKXtcXG5cXG7or7fmsYLliIbkuqvpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjIuMC9jbG91ZC9zaGFyZVxcXCJcXG7lpLTpg6g9e1xcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIrSVBGU+WvhumSpVxcbn1cXG5cXG7liIbkuqvpk77mjqU9W11cXG5mb3IgKHZhciBpIGluIOaJuemHj+mAieaLqeaVsOaNruaVsOe7hCkge1xcblxcbmlkPeaJuemHj+mAieaLqeaVsOaNruaVsOe7hFtpXS5zcGxpdChcXFwiJiZcXFwiKVswXVxcbuagh+mimD3mibnph4/pgInmi6nmlbDmja7mlbDnu4RbaV0uc3BsaXQoXFxcIiYmXFxcIilbMV1cXG5cXG7ouqvkvZM9YHtcXFwiaWRzXFxcIjpbXFxcImAraWQrYFxcXCJdLFxcXCJzaGFyZURheXNcXFwiOmAr5YiG5Lqr5aSp5pWwK2AsXFxcInNoYXJlQ29udGVudFxcXCI6XFxcImAr5qCH6aKYK2BcXFwiLFxcXCJlbmNyeXB0Q29kZVxcXCI6XFxcIjBcXFwifWBcXG5cXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLliIbkuqvpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxuaWYo56ys5LiA5qyh5ZON5bqULmluY2x1ZGVzKFxcXCLnu5HlrprmiYvmnLrlj7dcXFwiKSlcXG5yZXR1cm4gJ3RvYXN0Oi8v5pyq57uR5a6a5omL5py65Y+35peg5rOV5YiG5LqrJ1xcblxcbuWIhuS6q+mTvuaOpVtpXT0n5paH5Lu25ZCNOicr5qCH6aKYKydcXFxcbicrJ+WIhuS6q+mTvuaOpTonK0pTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmxpbmtcXG5cXG5cXG59XFxuXFxu5YiG5Lqr6ZO+5o6lPeWIhuS6q+mTvuaOpS5qb2luKCdcXFxcblxcXFxuJylcXG5cXG5jb3B5KOWIhuS6q+mTvuaOpSlcXG4gICAgICAgIFxcbnJldHVybiAndG9hc3Q6Ly/liIbkuqvmiJDlip8g5bey5aSN5Yi25YWo6YOo6ZO+5o6lJ1xcblxcblxcbn1cXG5cXG5cXG5cXG59LOaWh+S7tuWkuWlkLOWIhuS6q+WkqeaVsCxJUEZT5a+G6ZKlLGlkLOagh+mimClcXG5cXG59LOaWh+S7tuWkuWlkLElQRlPlr4bpkqUsaWQs5qCH6aKYKVxcblxcbiAgICAgICAgICAgICAgICAgICAgXFxuXFxuXFxuXFxuXFxuXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCJDSUTliIbkuqst5bCR6YeP5pWw5o2u5YiG5LqrXFxcIil7XFxuXFxuXFxuXFxucmV0dXJuICQoW1xcXCLnm7TmjqXlpI3liLYt5rqQ5pWw5o2uXFxcIixcXFwi572R57uc6ZO+5o6lLeS6keWPo+S7pFxcXCIsXFxcIuWvvOWHuuaWh+S7ti3mupDmlofku7ZcXFwiXSwgMSwn5ZOq56eN5YiG5Lqr77yfJykuc2VsZWN0KCjmlofku7blpLlpZCzmlofku7blpLnlkI0sSVBGU+WvhumSpSxpZCzmoIfpopgpID0+IHtcXG4gICAgXFxuICAgIFxcbiAgICDliIbkuqvmlrnlvI89aW5wdXRcXG4gICAgXFxuICAgIHJldHVybiAkKFxcXCItXFxcIituZXcgRGF0ZSgpLmdldFRpbWUoKSwgXFxcIuivt+i+k+WFpeaWh+S7tuWkueWQjei/m+ihjOW9kue6s+WIhuS6q1xcXFxu5LiN5aGr5YiZ5LiN5Lya5b2S57qz5Yiw5LiA5Liq5paH5Lu25aS5XFxcIikuaW5wdXQoKOaWh+S7tuWkuWlkLOaWh+S7tuWkueWQjSzliIbkuqvmlrnlvI8sSVBGU+WvhumSpSxpZCzmoIfpopgpID0+IHtcXG5cXG4gICAgXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uEPUpTT04ucGFyc2UoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsXFxcIltdXFxcIikpXFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG7mlofku7blpLnmlbDmja49W11cXG7mlofku7blpLnmlbDnu4Q9W11cXG7mlofku7bmlbDnu4Q9W11cXG7mlofku7blpLnmlbDnu4Tlj5jph489MFxcbuaWh+S7tuaVsOe7hOWPmOmHjz0wXFxuXFxuZm9yICh2YXIgaSBpbiDmibnph4/pgInmi6nmlbDmja7mlbDnu4QpIHtcXG7mibnph4/pgInmi6nmlbDmja495om56YeP6YCJ5oup5pWw5o2u5pWw57uEW2ldLnNwbGl0KFxcXCImJlxcXCIpXFxuSUQ95om56YeP6YCJ5oup5pWw5o2uWzBdXFxu5qCH6aKYPeaJuemHj+mAieaLqeaVsOaNrlsxXVxcbuaWh+S7tkNJRD3mibnph4/pgInmi6nmlbDmja5bMl1cXG7mlofku7blpKflsI895om56YeP6YCJ5oup5pWw5o2uWzNdXFxu5paH5Lu257G75Z6LPeaJuemHj+mAieaLqeaVsOaNrls0XVxcblxcbmlmKOaWh+S7tuWkp+Wwjz09MCl7XFxuXFxu5paH5Lu25aS55pWw57uEW+aWh+S7tuWkueaVsOe7hOWPmOmHj1095qCH6aKYXFxu5paH5Lu25aS55pWw57uE5Y+Y6YePKytcXG5cXG5cXG5JUEZT5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxuXFxuaWYoaW5wdXQubGVuZ3RoPjAp5qCH6aKYPWlucHV0K+i3r+W+hOmXtOmalCvmoIfpophcXG5cXG7mlofku7blpLnmlbDmja495paH5Lu25aS55pWw5o2uLmNvbmNhdCjojrflj5bmlofku7blpLlDSUQoSUQs5qCH6aKYLElQRlPlr4bpkqUsXFxcIuiOt+WPllxcXCIpKVxcblxcbn1lbHNle1xcblxcbuaWh+S7tuaVsOe7hFvmlofku7bmlbDnu4Tlj5jph49dPWB7XFxcIuaWh+S7tkNJRFxcXCI6XFxcImAr5paH5Lu2Q0lEK2BcXFwiLFxcXCLmlofku7blkI1cXFwiOlxcXCJgK+agh+mimCtgXFxcIixcXFwi5paH5Lu25qC85byPXFxcIjpcXFwiYCvmlofku7bnsbvlnosrYFxcXCIsXFxcIuaWh+S7tuWkp+Wwj1xcXCI6XFxcImAr5paH5Lu25aSn5bCPK2BcXFwifWBcXG7mlofku7bmlbDnu4Tlj5jph48rK1xcblxcbn1cXG5cXG59XFxuXFxuXFxu5paH5Lu25aS55pWw57uEPeaWh+S7tuWkueaVsOe7hC5qb2luKCdcXFwiLFxcXCInKVxcbuaWh+S7tuaVsOe7hD3mlofku7bmlbDnu4Quam9pbignLCcpXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDmlofku7blpLnmlbDmja4pIHtcXG5cXG7mlofku7blpLnmlbDmja5baV09SlNPTi5zdHJpbmdpZnko5paH5Lu25aS55pWw5o2uW2ldKVxcbiAgICAgICAgICAgXFxuXFxufVxcblxcbuaWh+S7tuWkueaVsOaNrj3mlofku7blpLnmlbDmja4uam9pbignLCcpXFxuXFxuaWYoaW5wdXQubGVuZ3RoPjApe1xcbiAgICBcXG4gICAgXFxuICAgIGlmKOaWh+S7tuWkueaVsOaNri5sZW5ndGg8MSl7XFxuICAgIOaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnliIbkuqtcXFwiLFxcXCJkYXRhXFxcIjogW3tcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXFxcImAraW5wdXQrYFxcXCJdLFxcXCLmlofku7ZcXFwiOltdfSx7XFxcIui3r+W+hFxcXCI6IFxcXCIwYCvot6/lvoTpl7TpmpQraW5wdXQrYFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6IFtdLFxcXCLmlofku7ZcXFwiOltgK+aWh+S7tuaVsOe7hCtgXX1dfWAgXFxuICAgIFxcbn1lbHNle1xcblxcblxcblxcbuaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjogW3tcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXFxcImAraW5wdXQrYFxcXCJdLFxcXCLmlofku7ZcXFwiOltdfSx7XFxcIui3r+W+hFxcXCI6IFxcXCIwYCvot6/lvoTpl7TpmpQraW5wdXQrYFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6IFtcXFwiYCvmlofku7blpLnmlbDnu4QrYFxcXCJdLFxcXCLmlofku7ZcXFwiOltgK+aWh+S7tuaVsOe7hCtgXX0sYCvmlofku7blpLnmlbDmja4rYF19YFxcblxcblxcbn1cXG4gICAgXFxuICAgIFxcbiAgICBcXG4gICAgXFxufWVsc2V7XFxuXFxuXFxuIGlmKOaWh+S7tuWkueaVsOaNri5sZW5ndGg8MSl7XFxuICAgIOaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjogW3tcXFwiLFxcXCLot6/lvoRcXFwiOiBcXFwiMFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6IFtdLFxcXCLmlofku7ZcXFwiOltgK+aWh+S7tuaVsOe7hCtgXX1dfWAgXFxuICAgIFxcbn1lbHNle1xcblxcblxcblxcbuaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnlpIfku71cXFwiLFxcXCJkYXRhXFxcIjogW3tcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXFxcImAr5paH5Lu25aS55pWw57uEK2BcXFwiXSxcXFwi5paH5Lu2XFxcIjpbYCvmlofku7bmlbDnu4QrYF19LGAr5paH5Lu25aS55pWw5o2uK2BdfWBcXG5cXG5cXG59XFxuXFxufVxcblxcblxcbmhpZGVMb2FkaW5nKClcXG5pZijliIbkuqvmlrnlvI89PVxcXCLnm7TmjqXlpI3liLYt5rqQ5pWw5o2uXFxcIil7XFxuXFxuXFxuIHJldHVybiBjb3B5KOaVsOaNrilcXG5cXG5cXG5cXG59ZWxzZSBpZijliIbkuqvmlrnlvI89PVxcXCLnvZHnu5zpk77mjqUt5LqR5Y+j5LukXFxcIil7XFxuICAgIFxcbiAgICDliIbkuqvotYTmupDmoIfpopg95paH5Lu25aS55pWw57uELmxlbmd0aD4wP+aWh+S7tuWkueaVsOe7hC5yZXBsYWNlKC9cXFwiLFxcXCIvZywn44CBJykuc3Vic3RyKDAsIDU1KTpcXFwi5paH5Lu25YiX6KGo5YiG5LqrXFxcIlxcblxcbnZhciDkupHlj6Pku6QgPSAnSVBGU+i1hOa6kOWIhuS6qzonK+WIhuS6q+i1hOa6kOagh+mimCsnXFxcXG7lpI3liLblkI7miZPlvIDova/ku7bljbPlj6/lr7zlhaVcXFxcbicgKyBzaGFyZVBhc3RlKOaVsOaNrikgKyAnQGltcG9ydD1qczpldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS/kupHlj6Pku6Q/cnVsZT1JUEZT6LWE5rqQXFxcIikpLnJ1bGUpJ1xcblxcbmlmKC9lcnJvci8udGVzdCjkupHlj6Pku6QpKSByZXR1cm4gJChcXFwi4p2M4p2M5LqR5Y+j5Luk5Y+R55Sf6ZSZ6K+v4p2M4p2MXFxcXG7mmK/lkKblr7zlh7rmlbDmja7liLDmnKzlnLDmlofku7ZcXFxcbuWvvOWHuuS4uuWkmuaWh+S7tuWIhuS6q+mcgOaJk+WMhVxcXFxu56Gu5a6a5a+85Ye65bm25aSN5Yi25paH5Lu26Lev5b6EXFxcIikuY29uZmlybSgo5pWw5o2uKT0+e1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5paH5Lu25aS55ZCNPVxcXCIwLmpzb25cXFwiXFxuXFxu5paH5Lu255uu5b2VPVxcXCJoaWtlcjovL2ZpbGVzLy9JUEZT6LWE5rqQL+S4tOaXtuWvvOWHuuWIhuS6qy8wLmpzb25cXFwiXFxuXFxuaWYoZmlsZUV4aXN0KOaWh+S7tuebruW9lSkpe1xcbumcgOWkhOeQhuWIl+ihqD1bXVxcbumcgOWkhOeQhuWIl+ihqD3lpIfku73mlofku7blpLnlpITnkIYo5paH5Lu255uu5b2VLOaWh+S7tuWkueWQjSxcXFwi5Yig6ZmkXFxcIizpnIDlpITnkIbliJfooagpXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDpnIDlpITnkIbliJfooagpIHtcXG4gICAgICAgICAgIFxcbmRlbGV0ZUZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldKVxcbn1cXG59XFxuXFxuZGF0YT1KU09OLnBhcnNlKOaVsOaNrikuZGF0YVxcbmZvciAodmFyIGkgaW4gZGF0YSkge1xcbui3r+W+hD1kYXRhW2ldLui3r+W+hFxcblxcbuWGmeWFpeaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLnsbvlnotcXFwiOlxcXCLmlofku7blpLnliIbkuqtcXFwiLFxcXCJkYXRhXFxcIjpgK0pTT04uc3RyaW5naWZ5KGRhdGFbaV0pK2B9YFxcblxcbnNhdmVGaWxlKOaWh+S7tuebruW9lS5yZXBsYWNlKCcwLmpzb24nLCcnKSvot6/lvoQrXFxcIi5qc29uXFxcIiwg5YaZ5YWl5pWw5o2uLCAwKSAgICAgICBcXG5cXG59XFxuXFxuXFxuc2F2ZUZpbGUo5paH5Lu255uu5b2VLnJlcGxhY2UoJzAuanNvbicsJycpK1xcXCJBQeWIhuS6q+aVmeeoiy50eHRcXFwiLCDlpJrmlofku7bliIbkuqvmlZnnqIssIDApICAgICAgIFxcblxcbiAgIFxcbiAgICAgICBcXG4gICAgICAgcmV0dXJuIGNvcHkoXFxcIi9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvSVBGU+i1hOa6kC/kuLTml7blr7zlh7rliIbkuqsvXFxcIikgIFxcbiAgICAgICBcXG59LOaVsOaNrilcXG5lbHNlIHJldHVybiBjb3B5KOS6keWPo+S7pClcXG5cXG5cXG5cXG5cXG59ZWxzZSBpZijliIbkuqvmlrnlvI89PVxcXCLlr7zlh7rmlofku7Yt5rqQ5paH5Lu2XFxcIil7XFxuXFxucmV0dXJuICQoXFxcIuaYr+WQpuWvvOWHuuaVsOaNruWIsOacrOWcsOaWh+S7tlxcXFxu5a+85Ye65Li65aSa5paH5Lu25YiG5Lqr6ZyA5omT5YyFXFxcXG7noa7lrprlr7zlh7rlubblpI3liLbmlofku7bot6/lvoRcXFwiKS5jb25maXJtKCjmlbDmja4pPT57XFxuICAgICAgIFxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5paH5Lu25aS55ZCNPVxcXCIwLmpzb25cXFwiXFxuXFxu5paH5Lu255uu5b2VPVxcXCJoaWtlcjovL2ZpbGVzLy9JUEZT6LWE5rqQL+S4tOaXtuWvvOWHuuWIhuS6qy8wLmpzb25cXFwiXFxuICAgICAgIFxcbmlmKGZpbGVFeGlzdCjmlofku7bnm67lvZUpKXtcXG7pnIDlpITnkIbliJfooag9W11cXG7pnIDlpITnkIbliJfooag95aSH5Lu95paH5Lu25aS55aSE55CGKOaWh+S7tuebruW9lSzmlofku7blpLnlkI0sXFxcIuWIoOmZpFxcXCIs6ZyA5aSE55CG5YiX6KGoKVxcblxcblxcbmZvciAodmFyIGkgaW4g6ZyA5aSE55CG5YiX6KGoKSB7XFxuICAgICAgICAgICBcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxufVxcblxcblxcblxcbmRhdGE9SlNPTi5wYXJzZSjmlbDmja4pLmRhdGFcXG5cXG5mb3IgKHZhciBpIGluIGRhdGEpIHtcXG5cXG7ot6/lvoQ9ZGF0YVtpXS7ot6/lvoRcXG5cXG7lhpnlhaXmlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55YiG5LqrXFxcIixcXFwiZGF0YVxcXCI6YCtKU09OLnN0cmluZ2lmeShkYXRhW2ldKStgfWBcXG5cXG5zYXZlRmlsZSjmlofku7bnm67lvZUucmVwbGFjZSgnMC5qc29uJywnJykr6Lev5b6EK1xcXCIuanNvblxcXCIsIOWGmeWFpeaVsOaNriwgMCkgICAgICAgXFxuXFxufVxcblxcblxcbnNhdmVGaWxlKOaWh+S7tuebruW9lS5yZXBsYWNlKCcwLmpzb24nLCcnKStcXFwiQUHliIbkuqvmlZnnqIsudHh0XFxcIiwg5aSa5paH5Lu25YiG5Lqr5pWZ56iLLCAwKSAgICAgICBcXG4gICAgICAgXFxuICAgICAgIHJldHVybiBjb3B5KFxcXCIvc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL0lQRlPotYTmupAv5Li05pe25a+85Ye65YiG5LqrL1xcXCIpICBcXG4gICAgXFxuXFxuICAgICAgIFxcbn0s5pWw5o2uKSBcXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxufSzmlofku7blpLlpZCzmlofku7blpLnlkI0s5YiG5Lqr5pa55byPLElQRlPlr4bpkqUsaWQs5qCH6aKYKVxcblxcbn0s5paH5Lu25aS5aWQs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUsaWQs5qCH6aKYKVxcblxcblxcblxcblxcblxcblxcblxcbn1cXG5cXG59LOaWh+S7tuWkuWlkLOaWh+S7tuWkueWQjSxJUEZT5a+G6ZKlLGlkLOagh+mimClcXG5cXG5cXG5cXG5cXG59ZWxzZSBpZihpbnB1dD09XFxcIuWkh+S7veW3sumAiVxcXCIpe1xcblxcblxcbn1lbHNlIGlmKGlucHV0PT1cXFwi5pS55ZCN5bey6YCJXFxcIil7XFxuXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCLnp7vliqjlt7LpgIlcXFwiKXtcXG4gICAgXFxuICAgIHVzZXJpZD1cXFwi5pegXFxcIlxcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU9SVBGU+WvhumSpVxcbuivt+axguaWh+S7tuWkuemTvuaOpT1cXFwiaHR0cHM6Ly9wcm9kdWN0YXBpLnN0YXJpdmVycGFuLmNvbS9jbXNwcm92aWRlci92MS4yL2Nsb3VkL2ZvbGRlckxpc3RcXFwiXFxu5aS06YOoPXtcXG5cXFwiUmVmZXJlclxcXCI6XFxcImh0dHBzOi8vd3guc3Rhcml2ZXJwYW4uY29tL1xcXCIsXFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/kupHpvpnkupHnm5jlr4bpkqVcXG59XFxu6Lqr5L2TPWB7XFxcInBhcmVudElkXFxcIjpcXFwiMFxcXCJ9YFxcbuesrOS4gOasoeWTjeW6lD1wb3N0KOivt+axguaWh+S7tuWkuemTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSlcXG5cXG7mlofku7blpLnliJfooag9SlNPTi5wYXJzZSjnrKzkuIDmrKHlk43lupQpLmRhdGFcXG7mlofku7blpLnlkI3np7A9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5paH5Lu25aS55YiX6KGoKSB7XFxuICAgICAgICAgICDmlofku7blpLnlkI3np7BbaV09aStcXFwiLlxcXCIr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbiAgICAgICAg5paH5Lu25aS55ZCN56ewLnVuc2hpZnQoXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxu5paH5Lu25aS55YiX6KGoaWQ9XFxcIjBcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5XFxuXFxuXFxufWVsc2UgaWYoaW5wdXQ9PVxcXCLliKDpmaTlt7LpgIlcXFwiKXtcXG5cXG5cXG59XFxuXFxucmV0dXJuICd0b2FzdDovL+ayoeWGmeWRoidcXG5cXG5cXG5cXG5cXG59LOaWh+S7tuWkuWlkLOaWh+S7tuWkueWQjSksXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF8zXFxcIixcXG59KVxcblxcblxcblxcblxcblxcblxcblxcblxcbnRyeSB7XFxuXFxu5oC76aG15pWwPU1hdGguY2VpbCjliJfooagubGVuZ3RoL+WIh+WJsuWIl+ihqOWAvClcXG5cXG5cXG5cXG5cXG5pZijmgLvpobXmlbA+MSYm5paH5Lu25aS5aWQmJnBhZ2U8PeaAu+mhteaVsCl7XFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi5LiK5LiA6aG1XFxcIixcXG51cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgo5paH5Lu25aS5aWQpID0+IHtcXG5cXG5pZihnZXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsXFxcIjBcXFwiKT4xKVxcbntcXG55c19zYz1nZXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIsXFxcIjFcXFwiKVxcbnlzX3NjLS1cXG5wdXRNeVZhcijmlofku7blpLlpZCtcXFwicGFnZVxcXCIseXNfc2MpXFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gXFxcInRvYXN0Oi8v5LiK5LiA6aG1XFxcIlxcbn1lbHNle3JldHVybiBcXFwidG9hc3Q6Ly/lt7Lnu4/mnIDliY1cXFwifVxcblxcbn0s5paH5Lu25aS5aWQpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIlxcbn0pO1xcblxcblxcbmQucHVzaCh7XFxudGl0bGU6cGFnZStcXFwiL1xcXCIr5oC76aG15pWwLFxcbnVybDokKCcnLCfor7fovpPlhaXpobXnoIEnKS5pbnB1dCgo5oC76aG15pWwLOaWh+S7tuWkuWlkLHBhZ2UpPT57XFxuXFxuICAgICAgICBpZihpbnB1dD4wJiZpbnB1dDw95oC76aG15pWwKXtcXG4gICAgICAgIHB1dE15VmFyKOaWh+S7tuWkuWlkKydwYWdlJyxpbnB1dCk7XFxuICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5bey57uP6Lez6L2sXFxcIitpbnB1dFxcbiAgICAgICAgfWVsc2V7cmV0dXJuIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr1xcXCJ9XFxuICAgIH0s5oC76aG15pWwLOaWh+S7tuWkuWlkLHBhZ2UpLFxcbmNvbF90eXBlOiBcXFwidGV4dF8zXFxcIiwgXFxuZXh0cmE6IHtcXG4gbG9uZ0NsaWNrOiBbe3RpdGxlOiAn5L+u5pS55q+P6aG15pi+56S65Liq5pWwJywganM6ICQudG9TdHJpbmcoKCk9PnsgXFxucmV0dXJuICQoc3RvcmFnZTAuZ2V0SXRlbShcXFwiSVBGU+i1hOa6kOaWh+S7tuWIl+ihqOWIh+WJsuWAvFxcXCIsXFxcIjUwXFxcIiksJ+ato+aVtOaVsCcpLmlucHV0KCgpPT57XFxuXFxuaWYoL1xcXFxkKy8udGVzdChpbnB1dCkpe1xcblxcbnN0b3JhZ2UwLnNldEl0ZW0oXFxcIklQRlPotYTmupDmlofku7bliJfooajliIflibLlgLxcXFwiLGlucHV0Lm1hdGNoKC9cXFxcZCsvKVswXSk7XFxucmVmcmVzaFBhZ2UoKTtcXG5yZXR1cm4gIFxcXCJ0b2FzdDovL+WIh+aNouavj+mhteaYvuekulxcXCIraW5wdXQubWF0Y2goL1xcXFxkKy8pWzBdK1xcXCLkuKpcXFwiXFxufWVsc2UgcmV0dXJuICBcXFwidG9hc3Q6Ly/ovpPlhaXplJnor69cXFwiXFxuXFxufSlcXG5cXG59KX1dIFxcbn0gXFxufSk7XFxuXFxuXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi5LiL5LiA6aG1XFxcIixcXG51cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgo5oC76aG15pWwLOaWh+S7tuWkuWlkLHBhZ2UpID0+IHtcXG5cXG5pZihwYWdlPOaAu+mhteaVsClcXG57XFxueXNfc2M9Z2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcInBhZ2VcXFwiLFxcXCIxXFxcIilcXG55c19zYysrXFxucHV0TXlWYXIo5paH5Lu25aS5aWQrXFxcInBhZ2VcXFwiLHlzX3NjKVxcbnJlZnJlc2hQYWdlKCk7XFxucmV0dXJuIFxcXCJ0b2FzdDovL+S4i+S4gOmhtVxcXCJcXG59ZWxzZXtyZXR1cm4gXFxcInRvYXN0Oi8v5bey57uP5pyA5ZCOXFxcIn1cXG5cXG5cXG59LOaAu+mhteaVsCzmlofku7blpLlpZCxwYWdlKSxcXG5jb2xfdHlwZTogXFxcInRleHRfM1xcXCJcXG59KTtcXG5cXG59XFxuXFxuXFxuXFxuZm9yKGxldCBpID0g5YiH5Ymy5YiX6KGo5YC8KihwYWdlLTEpO2kgPCDliJfooagubGVuZ3RoJiZpPOWIh+WJsuWIl+ihqOWAvCpwYWdlO2krKykge1xcbiAgICAgICAg5qCH6aKYPeWIl+ihqFtpXS5maWxlTmFtZVxcbiAgICAgICAgaWQ95YiX6KGoW2ldLmlkXFxuICAgICAgICDmlofku7blpKflsI895YiX6KGoW2ldLmZpbGVTaXplXFxuICAgICAgICBmaWxlVHlwZT3liJfooahbaV0uZmlsZVR5cGVcXG5cXG5cXG5cXG5cXG5cXG5pZijmlofku7blpKflsI89PTApe1xcbuaWh+S7tkNJRD1cXFwi5pegXFxcIlxcblxcbuaJuemHj+mAieaLqeaVsOaNrj1pZCtcXFwiJiZcXFwiK+agh+mimCtcXFwiJiZcXFwiK+aWh+S7tkNJRCtcXFwiJiZcXFwiK+aWh+S7tuWkp+WwjytcXFwiJiZcXFwiK2ZpbGVUeXBlXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmoIfpopgsXFxucGljX3VybDpnZXRNeVZhcijmlofku7blpLlpZCvmibnph4/pgInmi6nmlbDmja4s5paH5Lu25aS55Zu+5qCHKSxcXG51cmw6JChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgo5paH5Lu25aS5aWQs5om56YeP6YCJ5oup5pWw5o2uLOagh+mimCkgPT4ge1xcblxcblxcblxcbmlmKGdldE15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrikpe1xcblxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hC5zcGxpY2Uo5om56YeP6YCJ5oup5pWw5o2u5pWw57uELmluZGV4T2Yo5om56YeP6YCJ5oup5pWw5o2uKSwxKVxcblxcbnB1dE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLEpTT04uc3RyaW5naWZ5KOaJuemHj+mAieaLqeaVsOaNruaVsOe7hCkpXFxuXFxuXFxuXFxuY2xlYXJNeVZhcijmlofku7blpLlpZCvmibnph4/pgInmi6nmlbDmja4pXFxuXFxuXFxuXFxucmVmcmVzaFBhZ2UoZmFsc2UpXFxuXFxucmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbnJldHVybiAndG9hc3Q6Ly/lj5bmtog6JyvmoIfpophcXG5cXG59ZWxzZXtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WbvuaghycpKS5ydWxlKVxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hD1KU09OLnBhcnNlKGdldE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLFxcXCJbXVxcXCIpKVxcblxcblxcblxcbuaJuemHj+mAieaLqeaVsOaNruaVsOe7hC5wdXNoKOaJuemHj+mAieaLqeaVsOaNrilcXG5cXG5wdXRNeVZhcijmlofku7blpLlpZCtcXFwi5om56YeP6YCJ5oup5pWw5o2u5pWw57uEXFxcIixKU09OLnN0cmluZ2lmeSjmibnph4/pgInmi6nmlbDmja7mlbDnu4QpKVxcblxcbnB1dE15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrizpgInlrprlm77moIcpXFxuXFxucmVmcmVzaFBhZ2UoZmFsc2UpXFxucmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbnJldHVybiAndG9hc3Q6Ly/pgInmi6k6JyvmoIfpophcXG59XFxuXFxufSzmlofku7blpLlpZCzmibnph4/pgInmi6nmlbDmja4s5qCH6aKYKSxcXG5jb2xfdHlwZTogXFxcImF2YXRhclxcXCIsIGV4dHJhOiB7IFxcblxcbmxvbmdDbGljazogW3t0aXRsZTogJ+WkjeWItuW6j+WPtycsIGpzOiAkLnRvU3RyaW5nKCgpPT57IFxcblxcbnJldHVybiAndG9hc3Q6Ly/ov5jmsqHlgZrlkaInXFxuXFxufSl9XSBcXG5cXG59XFxufSk7XFxufWVsc2V7XFxuXFxu5paH5Lu25qC85byPPeWIl+ihqFtpXS5zdWZmaXhcXG7mlofku7ZDSUQ95YiX6KGoW2ldLmZpbGVDaWRcXG7mlofku7blpKflsI/moLzlvI/ljJY9Zm9ybWF0U2l6ZSjmlofku7blpKflsI8pXFxuXFxuaWYo5paH5Lu2Q0lELmxlbmd0aDwxKeagh+mimD1cXFwi4p2MXFxcIivmoIfpophcXG5cXG5cXG5pZigvKGpwZ3xnaWZ8cG5nfGpwZWd8d2VicCkkL2kudGVzdCjmoIfpopgpKXtcXG5cXG7lm77niYc95Zu+54mH5paH5Lu25Zu+5qCHXFxuXFxufWVsc2UgaWYoL1xcXFwuKGF2aXx0c3xtcDR8bW92fG00dnwzZ3B8cm18cm12Ynx3bXZ8YXNmfGFzeGF2aXxkYXR8bWt2fGZsdnx2b2IpJC9pLnRlc3Qo5qCH6aKYKSl7XFxuXFxu5Zu+54mHPeinhumikeaWh+S7tuWbvuagh1xcblxcbn1lbHNlIGlmKC8oZmxhY3xtcDN8d21hKSQvaS50ZXN0KOagh+mimCkpe1xcblxcbuWbvueJhz3pn7PkuZDmlofku7blm77moIdcXG5cXG59ZWxzZXtcXG5cXG7lm77niYc95YW25LuW5paH5Lu25Zu+5qCHXFxufVxcblxcbuaJuemHj+mAieaLqeaVsOaNrj1pZCtcXFwiJiZcXFwiK+agh+mimCtcXFwiJiZcXFwiK+aWh+S7tkNJRCtcXFwiJiZcXFwiK+aWh+S7tuWkp+WwjytcXFwiJiZcXFwiK2ZpbGVUeXBlXFxuXFxuZC5wdXNoKHtcXG50aXRsZTrmlofku7blpKflsI/moLzlvI/ljJYrXFxcIi1cXFwiK+agh+mimCxcXG5waWNfdXJsOmdldE15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrizlm77niYcpLFxcbnVybDokKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCjmlofku7blpLlpZCzmibnph4/pgInmi6nmlbDmja4s5qCH6aKYKSA9PiB7XFxuXFxuXFxuXFxuaWYoZ2V0TXlWYXIo5paH5Lu25aS5aWQr5om56YeP6YCJ5oup5pWw5o2uKSl7XFxuXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uEPUpTT04ucGFyc2UoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsXFxcIltdXFxcIikpXFxuXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uELnNwbGljZSjmibnph4/pgInmi6nmlbDmja7mlbDnu4QuaW5kZXhPZijmibnph4/pgInmi6nmlbDmja4pLDEpXFxuXFxucHV0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsSlNPTi5zdHJpbmdpZnko5om56YeP6YCJ5oup5pWw5o2u5pWw57uEKSlcXG5cXG5cXG5cXG5jbGVhck15VmFyKOaWh+S7tuWkuWlkK+aJuemHj+mAieaLqeaVsOaNrilcXG5cXG5cXG5cXG5yZWZyZXNoUGFnZShmYWxzZSlcXG5cXG5yZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxucmV0dXJuICd0b2FzdDovL+WPlua2iDonK+agh+mimFxcblxcbn1lbHNle1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Zu+5qCHJykpLnJ1bGUpXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uEPUpTT04ucGFyc2UoZ2V0TXlWYXIo5paH5Lu25aS5aWQrXFxcIuaJuemHj+mAieaLqeaVsOaNruaVsOe7hFxcXCIsXFxcIltdXFxcIikpXFxuXFxuXFxuXFxu5om56YeP6YCJ5oup5pWw5o2u5pWw57uELnB1c2go5om56YeP6YCJ5oup5pWw5o2uKVxcblxcbnB1dE15VmFyKOaWh+S7tuWkuWlkK1xcXCLmibnph4/pgInmi6nmlbDmja7mlbDnu4RcXFwiLEpTT04uc3RyaW5naWZ5KOaJuemHj+mAieaLqeaVsOaNruaVsOe7hCkpXFxuXFxucHV0TXlWYXIo5paH5Lu25aS5aWQr5om56YeP6YCJ5oup5pWw5o2uLOmAieWumuWbvuaghylcXG5cXG5yZWZyZXNoUGFnZShmYWxzZSlcXG5yZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxucmV0dXJuICd0b2FzdDovL+mAieaLqTonK+agh+mimFxcbn1cXG5cXG59LOaWh+S7tuWkuWlkLOaJuemHj+mAieaLqeaVsOaNrizmoIfpopgpLFxcbmNvbF90eXBlOiBcXFwiYXZhdGFyXFxcIiwgZXh0cmE6IHsgXFxuXFxubG9uZ0NsaWNrOiBbe3RpdGxlOiAn5aSN5Yi25bqP5Y+3JywganM6ICQudG9TdHJpbmcoKCk9PnsgXFxuXFxucmV0dXJuICd0b2FzdDovL+i/mOayoeWBmuWRoidcXG5cXG59KX1dIFxcblxcbn1cXG5cXG5cXG59KTtcXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxuIFxcblxcbn0vL2ZvcuW+queOr+eahOaLrOWPt1xcblxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgbG9nKGUubWVzc2FnZSlcXG59XFxuXFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Yqo5ryr6LWE5rqQ4pGgXCIsXCJwYXRoXCI6XCLliqjmvKvotYTmupDikaBcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuXFxuLypcXG7nvZHnq5npmLLotbDkuKLlvJXlr7zpobVcXG53d3cuN3NlZnVuLmNvbVxcbuS4u+ermVxcbnd3dy43c2VmdW4udG9wXFxu5aSH55So56uZ77yI5aaC5p6c5Li756uZ5peg5rOV5pKt5pS+77yJXFxud3d3LnlvaWZ1bi5jb21cXG53d3cuZWxmdW4ueHl6XFxu5Zu96ZmF56uZ77yI5riv5r6z5Y+w57mB5L2T5a2X5bmV56uZLOWGheWuueS4sOWvjOS4re+8iVxcbnd3dy5kaW1pZnVuLmNvbVxcbuWKqOa8q+S4i+i9veerme+8iOWGheWuueS4sOWvjOS4re+8iVxcbnd3dy5iYWlwaWFveWEudG9wXFxuKi9cXG7kuIPoibLnlarln5/lkI09XFxcImh0dHBzOi8vd3d3LjdzZWZ1bi50b3BcXFwiXFxucHV0TXlWYXIoXFxcIuS4g+iJsueVquWfn+WQjVxcXCIs5LiD6Imy55Wq5Z+f5ZCNKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxubGV0IHBhZ2UgPSBOdW1iZXIoZ2V0TXlWYXIoXFxcInBhZ2VcXFwiLCBcXFwiMFxcXCIpKSArIE1ZX1BBR0UgLSAxO1xcblxcbmlmKHBhZ2U9PTApe1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi54K55Ye75pCc57SiXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiLFxcbiAgICB1cmw6ICQoKS5pbnB1dCgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRWYXIoJ+WKqOa8q+i1hOa6kOKRoOaQnOe0ouWFs+mUruivjScsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mkJzntKI6JytpbnB1dFxcbiAgICAgICAgICAgICAgICB9KVxcbn0pXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLliIfmjaLmmL7npLpcXFwiLFxcbiAgICBjb2xfdHlwZTogXFxcInRleHRfMlxcXCIsXFxuICAgIHVybDogJChbXFxcIuWbvea8q+eVqlxcXCIsXFxcIuaXpea8q+eVqlxcXCIsXFxcIue+jua8q+eVqlxcXCIsXFxcIuWbvea8q+eUteW9sVxcXCIsXFxcIuaXpea8q+eUteW9sVxcXCIsXFxcIue+jua8q+eUteW9sVxcXCJdLDIsJ+mcgOimgeaYvuekuuWTquenjei1hOa6kO+8nycpLnNlbGVjdCgoKSA9PiB7XFxuXFxuaWYoaW5wdXQ9PVxcXCLlm73mvKvnlapcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjZcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLml6XmvKvnlapcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjFcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLnvo7mvKvnlapcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjhcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLlm73mvKvnlLXlvbFcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjdcXFwiKVxcbmVsc2UgaWYoaW5wdXQ9PVxcXCLml6XmvKvnlLXlvbFcXFwiKXB1dFZhcign5Yqo5ryr6LWE5rqQ4pGg5YiG57G7JywgXFxcIjJcXFwiKTtcXG5lbHNlIGlmKGlucHV0PT1cXFwi576O5ryr55S15b2xXFxcIilwdXRWYXIoJ+WKqOa8q+i1hOa6kOKRoOWIhuexuycsIFxcXCI5XFxcIik7XFxuXFxuXFxuXFxuICAgICAgICAgICAgICAgICAgICBjbGVhclZhcign5Yqo5ryr6LWE5rqQ4pGg5pCc57Si5YWz6ZSu6K+NJyk7XFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5YiH5o2i5oiQ5YqfJ1xcbiAgICAgICAgICAgXFxuXFxuXFxufSlcXG59KVxcblxcblxcblxcbn1cXG5cXG5cXG4vL+aKpemUmVxcbnRyeSB7XFxuXFxuaWYoIWdldFZhcign5Yqo5ryr6LWE5rqQ4pGg5pCc57Si5YWz6ZSu6K+NJykpe1xcbmxvZyjkuIPoibLnlarln5/lkI0rXFxcIi92b2RzaG93L1xcXCIrZ2V0VmFyKCfliqjmvKvotYTmupDikaDliIbnsbsnLFxcXCIxXFxcIikrXFxcIi0tLS0tLS0tXFxcIitwYWdlK1xcXCItLS0uaHRtbFxcXCIpXFxuXFxuaHRtbD1yZXF1ZXN0KOS4g+iJsueVquWfn+WQjStcXFwiL3ZvZHNob3cvXFxcIitnZXRWYXIoJ+WKqOa8q+i1hOa6kOKRoOWIhuexuycsXFxcIjZcXFwiKStcXFwiLS0tLS0tLS1cXFwiK3BhZ2UrXFxcIi0tLS5odG1sXFxcIiwge2hlYWRlcnM6e1xcXCJVc2VyLUFnZW50XFxcIjpcXFwiaXBob25lXFxcIn19KVxcblxcblxcbi8vdmFyIOWIl+ihqCA9IHBkZmEoaHRtbCwnYm9keSYmLm1vZHVsZS1wYWdlJiYubW9kdWxlLXBvc3Rlci1pdGVtcy1iYXNlJiZhJyk7XFxudmFyIOWIl+ihqCA9IHBkZmEoaHRtbCwnYm9keSYmYTpoYXMoLm1vZHVsZS1pdGVtLWNvdmVyKScpO1xcblxcblxcblxcbiAgICAgICAgXFxuXFxuZm9yICh2YXIgaSBpbiDliJfooagpIHtcXG7moIfpopg9cGRmaCjliJfooahbaV0sJ2ltZyYmYWx0JylcXG7lm77niYc9cGRmaCjliJfooahbaV0sJ2ltZyYmZGF0YS1vcmlnaW5hbCcpXFxu6ZO+5o6lPXBkZmgo5YiX6KGoW2ldLCdhJiZocmVmJylcXG7mj4/ov7A9cGRmaCjliJfooahbaV0sJy5tb2R1bGUtaXRlbS1ub3RlJiZUZXh0JylcXG5cXG7pk77mjqU95LiD6Imy55Wq5Z+f5ZCNK+mTvuaOpVxcbmQucHVzaCh7XFxudGl0bGU65qCH6aKYLFxcbnBpY191cmw65Zu+54mHLFxcbnVybDpcXFwiaGlrZXI6Ly9wYWdlL+WKqOa8q+i1hOa6kOKRoCjkuoznuqcpI2ltbWVyc2l2ZVRoZW1lI1xcXCIsXFxuZGVzYzrmj4/ov7AsXFxuY29sX3R5cGU6IFxcXCJtb3ZpZV8zXFxcIixcXG5leHRyYTp76ZO+5o6lOumTvuaOpSzniYflkI065qCH6aKYLGxvbmdDbGljazogW3t0aXRsZTogJ+WtmOiHs+e9keebmCcsIGpzOiAkLnRvU3RyaW5nKCjmoIfpopgs6ZO+5o6lKT0+e1xcblxcbiByZXR1cm4gJCjmoIfpopgsXFxcIuaWsOW7uuaWh+S7tuWkuVxcXCIpLmlucHV0KCjmoIfpopgs6ZO+5o6lKSA9PiB7XFxuXFxuaHRtbD1yZXF1ZXN0KOmTvuaOpSwge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiaXBob25lXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJDb29raWVcXFwiOiBcXFwidXNlcl9pZD01MDY7IHVzZXJfbmFtZT0xMjc5OTc0NDA7IGdyb3VwX2lkPTI7IGdyb3VwX25hbWU9JUU5JUJCJTk4JUU4JUFFJUE0JUU0JUJDJTlBJUU1JTkxJTk4OyB1c2VyX2NoZWNrPTkzNTgwMGZhMDIyZTk1OGU2ZTk4ZTZkMTJhZjM0ZDhhOyB1c2VyX3BvcnRyYWl0PSUyRnN0YXRpYyUyRmltYWdlcyUyRnRvdXhpYW5nLnBuZ1xcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxudmFyIGNvbnRzID0gcGRmYShodG1sLCAnYm9keSYmLm1vZHVsZS1wbGF5LWxpc3QtY29udGVudCcpO1xcbnZhciBsaXN0cyA9IFtdO1xcbmZvciAodmFyIGkgaW4gY29udHMpIHtcXG4gICAgbGlzdHMucHVzaChwZGZhKGNvbnRzW2ldLCAnYm9keSYmYScpKVxcbn1cXG7pm4bmlbDliJfooag9bGlzdHNbMF1cXG5kYXRhPVtdXFxuXFxuXFxuXFxuZm9yICh2YXIgaSBpbiDpm4bmlbDliJfooagpIHtcXG5cXG5cXG5cXG7pm4bmlbDpk77mjqU9Z2V0TXlWYXIoXFxcIuS4g+iJsueVquWfn+WQjVxcXCIpK3BkZmgo6ZuG5pWw5YiX6KGoW2ldLCAnYSYmaHJlZicpXFxu6ZuG5pWw5qCH6aKYPXBkZmgo6ZuG5pWw5YiX6KGoW2ldLCAnc3BhbiYmVGV4dCcpLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJylcXG5cXG5zaG93TG9hZGluZygn5q2j5Zyo6ZuG5pWwJyvpm4bmlbDmoIfpopgpXFxuXFxu572R6aG15rqQ56CBPXJlcXVlc3Qo6ZuG5pWw6ZO+5o6lLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXHJcXG5cXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJpcGhvbmVcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIkNvb2tpZVxcXCI6IFxcXCJ1c2VyX2lkPTUwNjsgdXNlcl9uYW1lPTEyNzk5NzQ0MDsgZ3JvdXBfaWQ9MjsgZ3JvdXBfbmFtZT0lRTklQkIlOTglRTglQUUlQTQlRTQlQkMlOUElRTUlOTElOTg7IHVzZXJfY2hlY2s9OTM1ODAwZmEwMjJlOTU4ZTZlOThlNmQxMmFmMzRkOGE7IHVzZXJfcG9ydHJhaXQ9JTJGc3RhdGljJTJGaW1hZ2VzJTJGdG91eGlhbmcucG5nXFxcIlxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSlcXG4gICAgdmFyIOaVsOaNriA9IEpTT04ucGFyc2Uo572R6aG15rqQ56CBLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxuXFxuICAgIHZhciB1cmwgPSDmlbDmja4udXJsXFxuICAgIHZhciBlbmNyeXB0PeaVsOaNri5lbmNyeXB0XFxuICAgIHZhciBmcm9tPeaVsOaNri5mcm9tXFxuXFxuICAgIGlmICjmlbDmja4uZW5jcnlwdCA9PSAnMScpIHtcXG4gICAgICAgIHVybCA9IHVuZXNjYXBlKHVybCk7XFxuICAgIH0gZWxzZSBpZiAo5pWw5o2uLmVuY3J5cHQgPT0gJzInKSB7XFxuICAgICAgICB1cmwgPSB1bmVzY2FwZShiYXNlNjREZWNvZGUodXJsKSk7XFxuICAgIH1cXG4gICAgXFxuICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxu56ys5LqM5qyh6K+35rGCPWdldE15VmFyKFxcXCLkuIPoibLnlarln5/lkI1cXFwiKS5yZXBsYWNlKFxcXCJ3d3cuXFxcIixcXFwicGxheS5cXFwiKStcXFwiL3BsYXkucGhwP3VybD1cXFwiK3VybFxcblxcbnVybD1yZXF1ZXN0KOesrOS6jOasoeivt+axgilcXG5cXG5ldmFsKHBkZmgodXJsLCdib2R5JiZzY3JpcHQmJkh0bWwnKS5tYXRjaCgvdmFyIGNvbmZpZyA9IHtbXFxcXHNcXFxcU10qP30vKVswXSlcXG51cmw9Y29uZmlnLnVybFxcbmtleT1cXFwiV2VpS2FuSnUyMDIzMDIwNlxcXCJcXG5pdj1cXFwiOWZhNDI4YTVmYzFjNGQwOFxcXCJcXG51cmw96Kej5a+G5qih5p2/KHVybCxrZXksaXYpLm1hdGNoKC9cXFxcd3s1OX0vKVswXVxcblxcbuaWh+S7tkNJRD11cmxcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcbmRhdGFbaV09e1xcXCLmlofku7blkI1cXFwiOuagh+mimCtcXFwiLVxcXCIr6ZuG5pWw5qCH6aKYK1xcXCIubXA0XFxcIixcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuWkp+Wwj1xcXCI66I635Y+W5paH5Lu25aSn5bCPKOaWh+S7tkNJRCksXFxcIuaWh+S7tuagvOW8j1xcXCI6M31cXG5cXG5pZihpPT3pm4bmlbDliJfooagubGVuZ3RoLTEpc2hvd0xvYWRpbmcoJ+iOt+WPluaIkOWKn++8jOWNs+WwhuWtmOiHs+e9keebmCcpXFxuXFxuamF2YS5sYW5nLlRocmVhZC5zbGVlcCgxNTAwKVxcblxcbn1cXG5cXG5oaWRlTG9hZGluZygpXFxuXFxu5pWw5o2uPXtcXFwi5paH5Lu25aS55ZCNXFxcIjrmoIfpopgsXFxcImRhdGFcXFwiOmRhdGF9XFxuXFxuXFxuLy/mlbDmja49SlNPTi5wYXJzZSjmlbDmja4pXFxu5bCP6b6Z5LqR55uY5aSH5Lu9PeaVsOaNrlxcbmxvZyjlsI/pvpnkupHnm5jlpIfku70pXFxuICAgICAgICAgICAgXFxuICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlID0gSlNPTi5wYXJzZShyZWFkRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG4gICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/kupHpvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqFtpXT1pK+Wwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5bCP6b6Z5LqR55uY77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUs5bCP6b6Z5LqR55uY5aSH5Lu9KSA9PiB7XFxuICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXJcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbuaWh+S7tuWkueWIl+ihqGlkPVxcXCIwXFxcIlxcblxcbuaWh+S7tuWkueWQjeensC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbmlkPVxcXCJcXFwiXFxudXNlcmlkPVxcXCLml6AoQ0lEKVxcXCJcXG7nibnmroppZD1cXFwiXFxcIlxcbuW4luWtkGlkPVxcXCJcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG4vL2xvZyjph43lpI3or7fmsYLmlofku7blpLkpXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5XFxuXFxuICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSzlsI/pvpnkupHnm5jlpIfku70pXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxufSzmoIfpopgs6ZO+5o6lKVxcblxcbn0s5qCH6aKYLOmTvuaOpSl9XX1cXG59KTtcXG5cXG59XFxuXFxufWVsc2V7XFxuXFxubG9nKOS4g+iJsueVquWfn+WQjStcXFwiL3ZvZHNlYXJjaC9cXFwiK2dldFZhcign5Yqo5ryr6LWE5rqQ4pGg5pCc57Si5YWz6ZSu6K+NJykrXFxcIi0tLS0tLS0tLS1cXFwiK3BhZ2UrXFxcIi0tLS5odG1sXFxcIilcXG5cXG5odG1sPXJlcXVlc3Qo5LiD6Imy55Wq5Z+f5ZCNK1xcXCIvdm9kc2VhcmNoL1xcXCIrZ2V0VmFyKCfliqjmvKvotYTmupDikaDmkJzntKLlhbPplK7or40nKStcXFwiLS0tLS0tLS0tLVxcXCIrcGFnZStcXFwiLS0tLmh0bWxcXFwiLCB7aGVhZGVyczp7XFxcIlVzZXItQWdlbnRcXFwiOlxcXCJpcGhvbmVcXFwifX0pXFxuXFxubG9nKOS4g+iJsueVquWfn+WQjStcXFwiL3ZvZHNob3cvXFxcIitnZXRWYXIoJ+WKqOa8q+i1hOa6kOKRoOWIhuexuycsXFxcIjFcXFwiKStcXFwiLS0tLS0tLS1cXFwiK3BhZ2UrXFxcIi0tLS5odG1sXFxcIilcXG5cXG52YXIg5YiX6KGoID0gcGRmYShodG1sLCdib2R5JiYubW9kdWxlLWl0ZW1zJiYubW9kdWxlLWl0ZW0nKTtcXG5cXG5cXG5cXG4gICAgICAgIFxcblxcbmZvciAodmFyIGkgaW4g5YiX6KGoKSB7XFxu5qCH6aKYPXBkZmgo5YiX6KGoW2ldLCcubW9kdWxlLWNhcmQtaXRlbS10aXRsZSYmVGV4dCcpXFxu5Zu+54mHPXBkZmgo5YiX6KGoW2ldLCdpbWcmJmRhdGEtb3JpZ2luYWwnKVxcbumTvuaOpT1wZGZoKOWIl+ihqFtpXSwnYSYmaHJlZicpXFxu5o+P6L+wPXBkZmgo5YiX6KGoW2ldLCcubW9kdWxlLWl0ZW0tbm90ZSYmVGV4dCcpXFxuXFxu6ZO+5o6lPeS4g+iJsueVquWfn+WQjSvpk77mjqVcXG5kLnB1c2goe1xcbnRpdGxlOuagh+mimCxcXG5waWNfdXJsOuWbvueJhyxcXG51cmw6XFxcImhpa2VyOi8vcGFnZS/liqjmvKvotYTmupDikaAo5LqM57qnKSNpbW1lcnNpdmVUaGVtZSNcXFwiLFxcbmRlc2M65o+P6L+wLFxcbmNvbF90eXBlOiBcXFwibW92aWVfM1xcXCIsXFxuZXh0cmE6e+mTvuaOpTrpk77mjqUs54mH5ZCNOuagh+mimCxsb25nQ2xpY2s6IFt7dGl0bGU6ICflrZjoh7PnvZHnm5gnLCBqczogJC50b1N0cmluZygo5qCH6aKYLOmTvuaOpSk9PntcXG5cXG4gcmV0dXJuICQo5qCH6aKYLFxcXCLmlrDlu7rmlofku7blpLlcXFwiKS5pbnB1dCgo5qCH6aKYLOmTvuaOpSkgPT4ge1xcblxcbmh0bWw9cmVxdWVzdCjpk77mjqUsIHtcXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xcclxcblxcXCJVc2VyLUFnZW50XFxcIjogXFxcImlwaG9uZVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiQ29va2llXFxcIjogXFxcInVzZXJfaWQ9NTA2OyB1c2VyX25hbWU9MTI3OTk3NDQwOyBncm91cF9pZD0yOyBncm91cF9uYW1lPSVFOSVCQiU5OCVFOCVBRSVBNCVFNCVCQyU5QSVFNSU5MSU5ODsgdXNlcl9jaGVjaz05MzU4MDBmYTAyMmU5NThlNmU5OGU2ZDEyYWYzNGQ4YTsgdXNlcl9wb3J0cmFpdD0lMkZzdGF0aWMlMkZpbWFnZXMlMkZ0b3V4aWFuZy5wbmdcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KVxcbnZhciBjb250cyA9IHBkZmEoaHRtbCwgJ2JvZHkmJi5tb2R1bGUtcGxheS1saXN0LWNvbnRlbnQnKTtcXG52YXIgbGlzdHMgPSBbXTtcXG5mb3IgKHZhciBpIGluIGNvbnRzKSB7XFxuICAgIGxpc3RzLnB1c2gocGRmYShjb250c1tpXSwgJ2JvZHkmJmEnKSlcXG59XFxu6ZuG5pWw5YiX6KGoPWxpc3RzWzBdXFxuZGF0YT1bXVxcblxcblxcblxcbmZvciAodmFyIGkgaW4g6ZuG5pWw5YiX6KGoKSB7XFxuXFxuXFxuXFxu6ZuG5pWw6ZO+5o6lPWdldE15VmFyKFxcXCLkuIPoibLnlarln5/lkI1cXFwiKStwZGZoKOmbhuaVsOWIl+ihqFtpXSwgJ2EmJmhyZWYnKVxcbumbhuaVsOagh+mimD1wZGZoKOmbhuaVsOWIl+ihqFtpXSwgJ3NwYW4mJlRleHQnKS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpXFxuXFxuc2hvd0xvYWRpbmcoJ+ato+WcqOmbhuaVsCcr6ZuG5pWw5qCH6aKYKVxcblxcbue9kemhtea6kOeggT1yZXF1ZXN0KOmbhuaVsOmTvuaOpSwge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiaXBob25lXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJDb29raWVcXFwiOiBcXFwidXNlcl9pZD01MDY7IHVzZXJfbmFtZT0xMjc5OTc0NDA7IGdyb3VwX2lkPTI7IGdyb3VwX25hbWU9JUU5JUJCJTk4JUU4JUFFJUE0JUU0JUJDJTlBJUU1JTkxJTk4OyB1c2VyX2NoZWNrPTkzNTgwMGZhMDIyZTk1OGU2ZTk4ZTZkMTJhZjM0ZDhhOyB1c2VyX3BvcnRyYWl0PSUyRnN0YXRpYyUyRmltYWdlcyUyRnRvdXhpYW5nLnBuZ1xcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxuICAgIHZhciDmlbDmja4gPSBKU09OLnBhcnNlKOe9kemhtea6kOeggS5tYXRjaCgvciBwbGF5ZXJfLio/PSguKj8pPC8pWzFdKVxcblxcbiAgICB2YXIgdXJsID0g5pWw5o2uLnVybFxcbiAgICB2YXIgZW5jcnlwdD3mlbDmja4uZW5jcnlwdFxcbiAgICB2YXIgZnJvbT3mlbDmja4uZnJvbVxcblxcbiAgICBpZiAo5pWw5o2uLmVuY3J5cHQgPT0gJzEnKSB7XFxuICAgICAgICB1cmwgPSB1bmVzY2FwZSh1cmwpO1xcbiAgICB9IGVsc2UgaWYgKOaVsOaNri5lbmNyeXB0ID09ICcyJykge1xcbiAgICAgICAgdXJsID0gdW5lc2NhcGUoYmFzZTY0RGVjb2RlKHVybCkpO1xcbiAgICB9XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG5cXG7nrKzkuozmrKHor7fmsYI9Z2V0TXlWYXIoXFxcIuS4g+iJsueVquWfn+WQjVxcXCIpLnJlcGxhY2UoXFxcInd3dy5cXFwiLFxcXCJwbGF5LlxcXCIpK1xcXCIvcGxheS5waHA/dXJsPVxcXCIrdXJsXFxuXFxudXJsPXJlcXVlc3Qo56ys5LqM5qyh6K+35rGCKVxcblxcbmV2YWwocGRmaCh1cmwsJ2JvZHkmJnNjcmlwdCYmSHRtbCcpLm1hdGNoKC92YXIgY29uZmlnID0ge1tcXFxcc1xcXFxTXSo/fS8pWzBdKVxcbnVybD1jb25maWcudXJsXFxua2V5PVxcXCJXZWlLYW5KdTIwMjMwMjA2XFxcIlxcbml2PVxcXCI5ZmE0MjhhNWZjMWM0ZDA4XFxcIlxcbnVybD3op6Plr4bmqKHmnb8odXJsLGtleSxpdikubWF0Y2goL1xcXFx3ezU5fS8pWzBdXFxuXFxuXFxu5paH5Lu2Q0lEPXVybFxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuZGF0YVtpXT17XFxcIuaWh+S7tuWQjVxcXCI65qCH6aKYK1xcXCItXFxcIivpm4bmlbDmoIfpopgrXFxcIi5tcDRcXFwiLFxcXCLmlofku7ZDSURcXFwiOuaWh+S7tkNJRCxcXFwi5paH5Lu25aSn5bCPXFxcIjrojrflj5bmlofku7blpKflsI8o5paH5Lu2Q0lEKSxcXFwi5paH5Lu25qC85byPXFxcIjozfVxcblxcbmlmKGk9PembhuaVsOWIl+ihqC5sZW5ndGgtMSlzaG93TG9hZGluZygn6I635Y+W5oiQ5Yqf77yM5Y2z5bCG5a2Y6Iez572R55uYJylcXG5cXG5qYXZhLmxhbmcuVGhyZWFkLnNsZWVwKDE1MDApXFxuXFxufVxcblxcbmhpZGVMb2FkaW5nKClcXG5cXG7mlbDmja49e1xcXCLmlofku7blpLnlkI1cXFwiOuagh+mimCxcXFwiZGF0YVxcXCI6ZGF0YX1cXG5cXG5cXG4vL+aVsOaNrj1KU09OLnBhcnNlKOaVsOaNrilcXG7lsI/pvpnkupHnm5jlpIfku7095pWw5o2uXFxuICAgICAgICAgICAgXFxuICAgICAgICAgICAg5bCP5LqR6b6Z5LqR55uY5a+G6ZKlID0gSlNPTi5wYXJzZShyZWFkRmlsZSgn5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG4gICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDlsI/kupHpvpnkupHnm5jlr4bpkqUpIHtcXG4gICAgICAgICAgIOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqFtpXT1pK+Wwj+S6kem+meS6keebmOWvhumSpVtpXS5uYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgcmV0dXJuICQo5bCP5LqR6b6Z5LqR55uY6LSm5Y+35YiX6KGoLCAyLCAn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5bCP6b6Z5LqR55uY77yfJykuc2VsZWN0KCjlsI/kupHpvpnkupHnm5jlr4bpkqUs5bCP6b6Z5LqR55uY5aSH5Lu9KSA9PiB7XFxuICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpT3lsI/kupHpvpnkupHnm5jlr4bpkqVbaW5wdXQubWF0Y2goL1xcXFxkLylbMF1dLnVzZXJcXG7or7fmsYLmlofku7blpLnpk77mjqU9XFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb20vY21zcHJvdmlkZXIvdjEuMi9jbG91ZC9mb2xkZXJMaXN0XFxcIlxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbui6q+S9kz1ge1xcXCJwYXJlbnRJZFxcXCI6XFxcIjBcXFwifWBcXG7nrKzkuIDmrKHlk43lupQ9cG9zdCjor7fmsYLmlofku7blpLnpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30pXFxuXFxu5paH5Lu25aS55YiX6KGoPUpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhXFxu5paH5Lu25aS55ZCN56ewPVtdXFxuICAgICAgICBmb3IgKHZhciBpIGluIOaWh+S7tuWkueWIl+ihqCkge1xcbiAgICAgICAgICAg5paH5Lu25aS55ZCN56ewW2ldPWkr5paH5Lu25aS55YiX6KGoW2ldLmZpbGVOYW1lICAgICAgIFxcbiAgICAgICAgIH1cXG4gICAgICAgIOaWh+S7tuWkueWQjeensFvmlofku7blpLnlkI3np7AubGVuZ3RoXT1cXFwi5Yqg5YWl5q2k5aSEXFxcIlxcbuaWh+S7tuWkueWIl+ihqGlkPVxcXCIwXFxcIlxcblxcbuaWh+S7tuWkueWQjeensC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbmlkPVxcXCJcXFwiXFxudXNlcmlkPVxcXCLml6AoQ0lEKVxcXCJcXG7nibnmroppZD1cXFwiXFxcIlxcbuW4luWtkGlkPVxcXCJcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG4vL2xvZyjph43lpI3or7fmsYLmlofku7blpLkpXFxuICAgICAgICByZXR1cm4g6YeN5aSN6K+35rGC5paH5Lu25aS5XFxuXFxuICAgIH0sIOWwj+S6kem+meS6keebmOWvhumSpSzlsI/pvpnkupHnm5jlpIfku70pXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxufSzmoIfpopgs6ZO+5o6lKVxcblxcbn0s5qCH6aKYLOmTvuaOpSl9XX1cXG59KTtcXG5cXG59XFxuXFxuXFxuXFxufVxcblxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgbG9nKGUubWVzc2FnZSlcXG5kLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLnvZHnq5nlj6/og73mjILkuoYg54K55oiR6K6/6Zeu572R6aG1XFxcIixcXG4gICAgICAgIHVybDogXFxcImh0dHBzOi8vd3d3LjdzZWZ1bi50b3BcXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbiAgICB9KTtcXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Yqo5ryr6LWE5rqQ4pGgKOS6jOe6pylcIixcInBhdGhcIjpcIuWKqOa8q+i1hOa6kOKRoCjkuoznuqcpXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbumTvuaOpT1NWV9QQVJBTVMu6ZO+5o6lXFxu54mH5ZCNPU1ZX1BBUkFNUy7niYflkI1cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbmxvZyjpk77mjqUpXFxuXFxuaHRtbD1yZXF1ZXN0KOmTvuaOpSwge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiaXBob25lXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJDb29raWVcXFwiOiBcXFwidXNlcl9pZD01MDY7IHVzZXJfbmFtZT0xMjc5OTc0NDA7IGdyb3VwX2lkPTI7IGdyb3VwX25hbWU9JUU5JUJCJTk4JUU4JUFFJUE0JUU0JUJDJTlBJUU1JTkxJTk4OyB1c2VyX2NoZWNrPTkzNTgwMGZhMDIyZTk1OGU2ZTk4ZTZkMTJhZjM0ZDhhOyB1c2VyX3BvcnRyYWl0PSUyRnN0YXRpYyUyRmltYWdlcyUyRnRvdXhpYW5nLnBuZ1xcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxuXFxuXFxuXFxuXFxudmFyIOWIhuexuyA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLm1vZHVsZS1pbmZvLXRhZy1saW5rLDImJlRleHQnKS5yZXBsYWNlKCfnsbvlnovvvJonLCcnKTtcXG5cXG52YXIg5Li75ryUID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcubW9kdWxlLWluZm8tdGFnLWxpbmssMSYmVGV4dCcpLnN1YnN0cmluZygwLDE1KTtcXG5cXG52YXIg5a+85ryUID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcubW9kdWxlLWluZm8tdGFnLWxpbmssMCYmVGV4dCcpO1xcblxcbnZhciDnirbmgIEgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5tb2R1bGUtaW5mby1pdGVtLDQmJlRleHQnKTtcXG5cXG52YXIg5Zu+54mHID0gcGFyc2VEb20oaHRtbCwgJy5tYWluJiZpbWcmJmRhdGEtb3JpZ2luYWwnKTtcXG5cXG52YXIg566A5LuLID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcubW9kdWxlLWluZm8taW50cm9kdWN0aW9uLWNvbnRlbnQmJlRleHQnKS5yZXBsYWNlKCfnroDku4vvvJonLCcnKTtcXG5cXG5cXG5cXG52YXIgQ29sb3IgPSBcXFwiI2YxM2I2NmFcXFwiO1xcbnZhciBDb2xvcjEgPSBcXFwiIzA5OEFDMVxcXCI7XFxuZnVuY3Rpb24gZ2V0SGVhZCh0aXRsZSkge1xcbiAgICByZXR1cm4gJ+KAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9XFxcIicgKyBDb2xvciArICdcXFwiPicgKyB0aXRsZSArICc8L2Zyb250Pjwvc3Ryb25nPic7XFxufVxcbmxldCBsaW5lX21vZGVsID0gODtcXG5sZXQgbGluZV90eXBlX21vZGVsID0gJ2JsYW5rX2Jsb2NrJztcXG5kLnB1c2goe1xcbiAgICB0aXRsZTog5YiG57G7ICsgJ1xcXFxuJyArIOS4u+a8lCxcXG4gICAgZGVzYzog5a+85ryUICsgJ1xcXFxuJyArIOeKtuaAgSxcXG4gICAgcGljX3VybDog5Zu+54mHLFxcbiAgICB1cmw65Zu+54mHLFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLGV4dHJhOiB7Z3JhZGllbnQ6IHRydWV9XFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfigJjigJjigJnigJk8c21hbGw+PGZvbnQgY29sb3I9XFxcIiNmZjE0OGU4ZVxcXCI+566A5LuL77yaJyArIOeugOS7iy5zdWJzdHIoMCwgNTUpICsgJy4uLjwvZm9udD48c21hbGw+PGZvbnQgY29sb3I9XFxcInJlZFxcXCI+6K+m5oOFPC9mb250Pjwvc21hbGw+PC9zbWFsbD4nLFxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5IycgKyAnXFxcXG4nICsg566A5LuLICsgYEBydWxlPWpzOnZhciByZXMgPSB7fTsgdmFyIGQgPSBbXTtkLnB1c2goe3RpdGxlOiflvbHniYfnroDku4vvvJonKyBNWV9VUkwuc3BsaXQoJ2hpa2VyOi8vZW1wdHkjJylbMV0sY29sX3R5cGU6ICdsb25nX3RleHQnfSk7cmVzLmRhdGEgPSBkOyBzZXRIb21lUmVzdWx0KHJlcyk7YCxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxufSk7XFxuXFxuLy/nur/ot6/liJfooajnmoTlrprkvY1cXG52YXIgYXJ0cyA9IHBkZmEoaHRtbCwgJyN5LXBsYXlMaXN0JiYubW9kdWxlLXRhYi1pdGVtJyk7XFxuXFxuLy/nur/ot6/liJfooajlkI3nmoTlrprkvY1cXG52YXIgdGFicyA9IFtdO1xcbmZvciAodmFyIGkgaW4gYXJ0cykge1xcbnRhYnMucHVzaChwZGZoKGFydHNbaV0sJ3NwYW4mJlRleHQnKSlcXG59XFxuXFxuLy/mkq3mlL7liJfooajnmoTliJfooajnmoTlrprkvY1cXG52YXIgY29udHMgPSBwZGZhKGh0bWwsICdib2R5JiYubW9kdWxlLXBsYXktbGlzdC1jb250ZW50Jyk7XFxudmFyIGxpc3RzID0gW107XFxuZm9yICh2YXIgaSBpbiBjb250cykge1xcbiAgICBsaXN0cy5wdXNoKHBkZmEoY29udHNbaV0sICdib2R5JiZhJykpXFxufVxcblxcblxcbmxvZyhcXFwi5oiQ5Yqf5aS0XFxcIilcXG5cXG5mdW5jdGlvbiBzZXRUYWJzKHRhYnMsIHZhcmkpIHtcXG4gICAgZm9yICh2YXIgaSBpbiB0YWJzKSB7XFxuICAgICAgICB2YXIgdXJsID0gXFxcIiNub0xvYWRpbmcjQGxhenlSdWxlPS5qczpwdXRWYXIoJ1xcXCIgKyB2YXJpICsgXFxcIicsICdcXFwiICsgaSArIFxcXCInKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJzsnI25vSGlzdG9yeSNoaWtlcjovL2VtcHR5J1xcXCI7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBnZXRWYXIodmFyaSwgJzAnKSA9PSBpID8gZ2V0SGVhZCh0YWJzW2ldKSA6IHRhYnNbaV0sXFxuICAgICAgICAgICAgdXJsOiB1cmwsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICAgICAgfSlcXG4gICAgfVxcblxcblxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICB9KVxcbn1cXG5mdW5jdGlvbiBzZXRMaXN0cyhsaXN0cywgaW5kZXgpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXG4gICAgfSlcXG59XFxuXFxuXFxuXFxuZnVuY3Rpb24gc2V0VGFicyh0YWJzLCB2YXJpKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogKGdldFZhcignc2hzb3J0JykgPT0gJzEnKSA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICNGRjAwMDBcXFwiPumAhuW6jzwvc3Bhbj48L2I+JyA6ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICMxYWFkMTlcXFwiPuato+W6jzwvc3Bhbj48L2I+JyxcXG4gICAgICAgIHVybDogYEBsYXp5UnVsZT0uanM6bGV0IGNvbmYgPSBnZXRWYXIoJ3Noc29ydCcpO2lmKGNvbmY9PScxJyl7cHV0VmFyKHtrZXk6J3Noc29ydCcsIHZhbHVlOicwJ30pO31lbHNle3B1dFZhcih7a2V5OidzaHNvcnQnLCB2YWx1ZTonMSd9KX07cmVmcmVzaFBhZ2UoKTsndG9hc3Q6Ly/liIfmjaLmjpLluo/miJDlip8nYCxcXG4gICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxuICAgIH0pXFxuXFxuXFxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFicy5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgdmFyIHVybCA9IFxcXCIjbm9Mb2FkaW5nI0BsYXp5UnVsZT0uanM6cHV0VmFyKCdcXFwiICsgdmFyaSArIFxcXCInLCAnXFxcIiArIGkgKyBcXFwiJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSc7JyNub0hpc3RvcnkjaGlrZXI6Ly9lbXB0eSdcXFwiO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZ2V0VmFyKHZhcmksICcwJykgPT0gaSA/ICfigJzigJwnICsgdGFic1tpXSArICfigJ3igJ0nIDogdGFic1tpXSxcXG4gICAgICAgICAgICB1cmw6IHVybCxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSlcXG4gICAgfVxcbn1cXG5cXG5cXG5mdW5jdGlvbiBzZXRMaXN0cyhsaXN0cywgaW5kZXgpIHtcXG52YXIgbGlzdCA9IGxpc3RzW2luZGV4XTtcXG5cXG4gICAgaWYgKGdldFZhcignc2hzb3J0JykgPT0gJzEnKSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIGZvciAodmFyIGogPSBsaXN0Lmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XFxuXFxuXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGRmaChsaXN0W2pdLCAnYSYmVGV4dCcpLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6cGQobGlzdFtqXSwgJ2EmJmhyZWYnKStsYXp5LFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGxpc3QubGVuZ3RoID4gNCA/ICd0ZXh0XzUnIDogJ3RleHRfMidcXG4gICAgICAgICAgICAgICAgfSk7XFxuXFxuXFxuXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5rKh5pyJ6YCJ6ZuG5ZOf77yM5LiN5L+h54K55Zu+54mH5Y6755yL55yL8J+RgCcsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XFxuXFxuaWYobGlzdFtqXS5pbmNsdWRlcyhcXFwia2FuanVqaWFuXFxcIikpe1xcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBhcnNlRG9tRm9ySHRtbChsaXN0W2pdLCAnYSYmVGV4dCcpLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6XFxcIiNpc1ZpZGVvPXRydWUjXFxcIit1bmVzY2FwZShwYXJzZURvbShsaXN0W2pdLCAnYSYmcGxheV91cmwnKS5zcGxpdChcXFwic2lhbXVybD1cXFwiKVsxXSApLGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tSdWxlczogWycubTRhJywgJy5tcDMnLCAnLm1wNCcsICcuZmx2JywgJy5hdmknLCAnLjNncCcsICcubXBlZycsICcud212JywgJy5tb3YnLCAnLnJtdmInLCAnLmdpZicsICcuanBnJywgJy5qcGVnJywgJy5wbmcnLCAnLmljbycsICcuc3ZnJywnY256eiddXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGxpc3QubGVuZ3RoID4gNCA/ICd0ZXh0XzUnIDogJ3RleHRfMidcXG4gICAgICAgICAgICAgICAgfSk7XFxuXFxufWVsc2V7XFxuXFxu6KeG6aKR6YCJ6ZuGPXBkZmgobGlzdFtqXSwgJ3NwYW4mJlRleHQnKS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpXFxu6KeG6aKR6ZO+5o6lPWdldE15VmFyKFxcXCLkuIPoibLnlarln5/lkI1cXFwiKStwZGZoKGxpc3Rbal0sICdhJiZocmVmJylcXG7pm4bmlbDmraPliJk9L1tzXVxcXFxkXFxcXGRbZV1cXFxcZFxcXFxkfOmYv+mHjC5cXFxcV3zlpLjlhYsuXFxcXFd86L+F6Zu3LlxcXFxXfDExNS5cXFxcV3zlvq7kupEuXFxcXFd85aSp57+8LlxcXFxXfOmYv+mHjHzlpLjlhYt86L+F6Zu3fDExNXzlvq7kupF85aSp57+8L2dpXFxuXFxuICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU66KeG6aKR6YCJ6ZuGLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOuinhumikemTvuaOpSvkuIPoibLnlarop6PmnpAsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogbGlzdC5sZW5ndGggPiA0ID8gJ3RleHRfNScgOiAndGV4dF8yJyxcXG4gICAgICAgICAgICAgICAgICAgZXh0cmE6e2xvbmdDbGljazogW3t0aXRsZTogJ+WtmOiHs+e9keebmCcsIGpzOiAkLnRvU3RyaW5nKCjniYflkI0s6KeG6aKR6YCJ6ZuGLOinhumikemTvuaOpSk9PntcXG5cXG4gcmV0dXJuICQo54mH5ZCNK1xcXCItXFxcIivop4bpopHpgInpm4YrXFxcIi5tcDRcXFwiLFxcXCLmlofku7blkI1cXFwiKS5pbnB1dCgo54mH5ZCNLOinhumikemAiembhizop4bpopHpk77mjqUpID0+IHtcXG5cXG7mlofku7blkI09aW5wdXRcXG5sb2coaW5wdXQpXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG7nvZHpobXmupDnoIE9cmVxdWVzdCjop4bpopHpk77mjqUsIHtcXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xcclxcblxcXCJVc2VyLUFnZW50XFxcIjogXFxcImlwaG9uZVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiQ29va2llXFxcIjogXFxcInVzZXJfaWQ9NTA2OyB1c2VyX25hbWU9MTI3OTk3NDQwOyBncm91cF9pZD0yOyBncm91cF9uYW1lPSVFOSVCQiU5OCVFOCVBRSVBNCVFNCVCQyU5QSVFNSU5MSU5ODsgdXNlcl9jaGVjaz05MzU4MDBmYTAyMmU5NThlNmU5OGU2ZDEyYWYzNGQ4YTsgdXNlcl9wb3J0cmFpdD0lMkZzdGF0aWMlMkZpbWFnZXMlMkZ0b3V4aWFuZy5wbmdcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KVxcbiAgICB2YXIg5pWw5o2uID0gSlNPTi5wYXJzZSjnvZHpobXmupDnoIEubWF0Y2goL3IgcGxheWVyXy4qPz0oLio/KTwvKVsxXSlcXG5cXG4gICAgdmFyIHVybCA9IOaVsOaNri51cmxcXG4gICAgdmFyIGVuY3J5cHQ95pWw5o2uLmVuY3J5cHRcXG4gICAgdmFyIGZyb2095pWw5o2uLmZyb21cXG5cXG4gICAgaWYgKOaVsOaNri5lbmNyeXB0ID09ICcxJykge1xcbiAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXG4gICAgfSBlbHNlIGlmICjmlbDmja4uZW5jcnlwdCA9PSAnMicpIHtcXG4gICAgICAgIHVybCA9IHVuZXNjYXBlKGJhc2U2NERlY29kZSh1cmwpKTtcXG4gICAgfVxcbmlmICgvbTN1OHxtcDQvLnRlc3QodXJsKSkgICByZXR1cm4gdXJsXFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG5cXG7nrKzkuozmrKHor7fmsYI9Z2V0TXlWYXIoXFxcIuS4g+iJsueVquWfn+WQjVxcXCIpLnJlcGxhY2UoXFxcInd3dy5cXFwiLFxcXCJwbGF5LlxcXCIpK1xcXCIvcGxheS5waHA/dXJsPVxcXCIrdXJsXFxuXFxudXJsPXJlcXVlc3Qo56ys5LqM5qyh6K+35rGCKVxcblxcbmV2YWwocGRmaCh1cmwsJ2JvZHkmJnNjcmlwdCYmSHRtbCcpLm1hdGNoKC92YXIgY29uZmlnID0ge1tcXFxcc1xcXFxTXSo/fS8pWzBdKVxcbnVybD1jb25maWcudXJsXFxua2V5PVxcXCJXZWlLYW5KdTIwMjMwMjA2XFxcIlxcbml2PVxcXCI5ZmE0MjhhNWZjMWM0ZDA4XFxcIlxcbnVybD3op6Plr4bmqKHmnb8odXJsLGtleSxpdikubWF0Y2goL1xcXFx3ezU5fS8pWzBdXFxuXFxu5paH5Lu2Q0lEPXVybFxcblxcblxcbuaWh+S7tuWkp+Wwjz3ojrflj5bmlofku7blpKflsI8o5paH5Lu2Q0lEKVxcbuaWh+S7tuagvOW8jz1cXFwiM1xcXCJcXG5cXG5cXG5sb2co5paH5Lu25ZCNKVxcblxcbuWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOaWh+S7tkNJRCzmlofku7blkI0s5paH5Lu25qC85byPLOaWh+S7tuWkp+WwjykgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG4gICAgICAgIOaWh+S7tuWkueWQjeensC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbuaWh+S7tuWkueWIl+ihqGlkPVxcXCIwXFxcIlxcblxcblxcblxcbmlkPWB7XFxcIuaWh+S7tkNJRFxcXCI6XFxcImAr5paH5Lu2Q0lEK2BcXFwiLFxcXCLmlofku7blkI1cXFwiOlxcXCJgK+aWh+S7tuWQjStgXFxcIixcXFwi5paH5Lu25qC85byPXFxcIjpcXFwiYCvmlofku7bmoLzlvI8rYFxcXCIsXFxcIuaWh+S7tuWkp+Wwj1xcXCI6XFxcImAr5paH5Lu25aSn5bCPK2BcXFwifWBcXG5cXG5sb2coaWQpXFxuXFxudXNlcmlkPVxcXCLml6AoQ0lEKVxcXCJcXG7nibnmroppZD1cXFwiXFxcIlxcbuW4luWtkGlkPVxcXCJcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/ph43lpI3or7fmsYLmlofku7blpLknKSkucnVsZSlcXG5cXG5sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbn0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOaWh+S7tkNJRCzmlofku7blkI0s5paH5Lu25qC85byPLOaWh+S7tuWkp+WwjylcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG59LOeJh+WQjSzop4bpopHpgInpm4Ys6KeG6aKR6ZO+5o6lKVxcblxcbn0s54mH5ZCNLOinhumikemAiembhizop4bpopHpk77mjqUpfV19XFxuICAgICAgICAgICAgICAgIH0pO1xcbn1cXG5cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmsqHmnInpgInpm4blk5/vvIzkuI3kv6Hngrnlm77niYfljrvnnIvnnIvwn5GAJyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcblxcbiAgICB9XFxufVxcblxcblxcbnNldFRhYnModGFicywgTVlfVVJMKTtcXG5zZXRMaXN0cyhsaXN0cywgZ2V0VmFyKE1ZX1VSTCwgJzAnKSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICc8YnI+JyxcXG4gICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxufSk7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5b6q546v5aSH5Lu9XCIsXCJwYXRoXCI6XCLlvqrnjq/lpIfku71cIixcInJ1bGVcIjpcIi8vZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lvqrnjq/lpIfku70nKSkucnVsZSlcXG5cXG5mb3IgKHZhciBpIGluIHN0b3JhZ2UwLmdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIikpIHtcXG5cXG5cXG5cXG5cXG5cXG7mlofku7blpLnlkI09c3RvcmFnZTAuZ2V0TXlWYXIo5paH5Lu26Lev5b6EK1xcXCLmlofku7blpLnliJfooahcXFwiKVtpXS5maWxlTmFtZVxcbuaWh+S7tuWkuWlkPXN0b3JhZ2UwLmdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIilbaV0uaWRcXG5zaG93TG9hZGluZygn5q2j5Zyo5aSH5Lu9Oicr5paH5Lu26Lev5b6EKVxcbuaWh+S7tui3r+W+hD3mlofku7bot6/lvoQr6Lev5b6E6Ze06ZqUK+aWh+S7tuWkueWQjVxcblxcblxcbuivt+axguWPmOmHj2EgPSBcXFwiL2Nsb3VkZmlsZS92MS9mb2xkZXJzXFxcIlxcbiAgICAgICAgICAgICAgICDor7fmsYLlj5jph49iID0gXFxcIi9jbG91ZGZpbGUvdjEvZmlsZXNcXFwiXFxuICAgICAgICAgICAgICAgIOi6q+S9kyA9IGB7XFxcImZpbGVOYW1lXFxcIjpcXFwiXFxcIixcXFwic29ydEZsYWdcXFwiOlxcXCJuYW1lXFxcIixcXFwic29ydFR5cGVcXFwiOlxcXCJhc2NcXFwiLFxcXCJwYXJlbnRJZFxcXCI6XFxcImAr5paH5Lu25aS5aWQrYFxcXCJ9YFxcblxcbuWktOmDqD17XFxuXFxcIlJlZmVyZXJcXFwiOlxcXCJodHRwczovL3d4LnN0YXJpdmVycGFuLmNvbS9cXFwiLFxcblxcXCJBdXRob3JpemF0aW9uXFxcIjpcXFwiQmVhcmVyIFxcXCIr5bCP5LqR6b6Z5LqR55uY5a+G6ZKlXFxufVxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYSA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2FcXG4gICAgICAgICAgICAgICAg56ys5LiA5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJhLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAg5bCP6b6Z5LqR6K+35rGCYiA9IFxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tXFxcIiArIOivt+axguWPmOmHj2JcXG4gICAgICAgICAgICAgICAg56ys5LqM5qyh5ZON5bqUID0gcG9zdCjlsI/pvpnkupHor7fmsYJiLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiDlpLTpg6gsXFxuICAgICAgICAgICAgICAgICAgICBib2R5OiDouqvkvZNcXG4gICAgICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25aS55YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGEgPSBKU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuICAgICAgICAgICAgICAgIC8v5YiX6KGoYeaYr+aWh+S7tuWIl+ihqFxcbiAgICAgICAgICAgICAgICDliJfooahiID0gSlNPTi5wYXJzZSjnrKzkuozmrKHlk43lupQpLmRhdGEuZGF0YVxcblxcbuaWh+S7tuaVsOe7hD1bXVxcblxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGIpIHtcXG4gICAgICAgIOaWh+S7tuWQjT3liJfooahiW2ldLmZpbGVOYW1lXFxuICAgICAgICDmlofku7bmoLzlvI895YiX6KGoYltpXS5maWxlVHlwZVxcbiAgICAgICAg5paH5Lu2Q0lEPeWIl+ihqGJbaV0uZmlsZUNpZFxcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqGJbaV0uZmlsZVNpemVcXG4gICAgICAgIGpzb27mlbDmja49e1xcXCLmlofku7blkI1cXFwiOuaWh+S7tuWQjSxcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuagvOW8j1xcXCI65paH5Lu25qC85byPLFxcXCLmlofku7blpKflsI9cXFwiOuaWh+S7tuWkp+Wwj31cXG4gICAgICAgIOaWh+S7tuaVsOe7hFtpXT1qc29u5pWw5o2uXFxuICAgICAgICBcXG4gICAgfVxcbiAgICDmlofku7blpLnmlbDnu4Q9W11cXG4gICAgZm9yICh2YXIgaSBpbiDliJfooahhKSB7XFxuICAgICAgICDmlofku7blpLnmlbDnu4RbaV095YiX6KGoYVtpXS5maWxlTmFtZVxcbiAgICB9XFxuICAgIFxcbnB1dE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIizliJfooahhKVxcblxcbuaWh+S7tuWkueWIl+ihqD3liJfooahhXFxuXFxu5paH5Lu25YiX6KGoPeWIl+ihqGJcXG5cXG5cXG5cXG5kYXRh5pWw5o2uPWB7XFxcIuaXtumXtFxcXCI6XFxcImArbmV3IERhdGUoKS5nZXRUaW1lKCkrYFxcXCIsXFxcIui3r+W+hFxcXCI6XFxcImAr5paH5Lu26Lev5b6EK2BcXFwiLFxcXCLmlofku7blpLlcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25aS55pWw57uEKStgLFxcXCLmlofku7ZcXFwiOmArSlNPTi5zdHJpbmdpZnko5paH5Lu25pWw57uEKStgfWBcXG5cXG7lpIfku73mlbDmja49YHtcXFwi5pe26Ze0XFxcIjpcXFwiYCtuZXcgRGF0ZSgpLmdldFRpbWUoKStgXFxcIixcXFwi57G75Z6LXFxcIjpcXFwi5paH5Lu25aS55aSH5Lu9XFxcIixcXFwiZGF0YVxcXCI6IGArZGF0YeaVsOaNritgfWBcXG5cXG5cXG5sZXQg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9ID0gcmVhZEZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCAwKSB8fCBbXTtcXG5cXG5cXG5pZigv5aSN5Yi2Ly50ZXN0KOaTjeS9nCkpe1xcblxcbuaVtOS9k+aVsOaNri5kYXRhLnB1c2goSlNPTi5wYXJzZShkYXRh5pWw5o2uKSlcXG5cXG5cXG59XFxuICBcXG5cXG5pZigv5aSH5Lu9Ly50ZXN0KOaTjeS9nCkpe1xcblxcblxcbmlmKOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5sZW5ndGg8MSl7XFxuXFxuXFxuXFxuc2F2ZUZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCDlpIfku73mlbDmja4sIDApO1xcblxcblxcbn1lbHNle1xcbiAgICBcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9PUpTT04ucGFyc2Uo5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9KVxcbiAgICBcXG4gICAgXFxuICAgIOaWh+S7tuWkueWIl+ihqD3lsI/pvpnkupHnm5jmlofku7blpLnlpIfku70uZGF0YS7mlofku7blpLlcXG4gICAg5paH5Lu25YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tlxcbiAgICDmlofku7blpLnliJfooag95paH5Lu25aS55YiX6KGoLmNvbmNhdCjmlofku7blpLnmlbDnu4QpXFxuICAgIOaWh+S7tuWIl+ihqD3mlofku7bliJfooaguY29uY2F0KOaWh+S7tuaVsOe7hClcXG5cXG4gICAgXFxuICAgIOaWh+S7tuWkueWIl+ihqD3mlbDnu4Tljrvph40o5paH5Lu25aS55YiX6KGoKVxcbiAgICDmlofku7bliJfooag95pWw57uE5Y676YeNKOaWh+S7tuWIl+ihqClcXG4gICAgXFxuICAgIOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuT3mlofku7blpLnliJfooahcXG4gICAg5bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu2PeaWh+S7tuWIl+ihqFxcblxcblxcbnNhdmVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL0lQRlPotYTmupAv5aSH5Lu95paH5Lu2L+Wwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS8nK+aWh+S7tui3r+W+hCsnLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70pLCAwKTtcXG4gICAgXFxufVxcblxcbn1cXG5cXG5cXG5pZijliJfooahhLmxlbmd0aDwxKXtcXG5cXG5jbGVhclZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpXFxu6Lev5b6E5YiH5YmyPeaWh+S7tui3r+W+hC5zcGxpdCjot6/lvoTpl7TpmpQpXFxuXFxuXFxu6Lev5b6E5YiH5YmyLnNwbGljZSjot6/lvoTliIflibIubGVuZ3RoLTEsMSlcXG5cXG7mlofku7bot6/lvoQ96Lev5b6E5YiH5YmyLmpvaW4o6Lev5b6E6Ze06ZqUKVxcblxcblxcblxcblxcbmNvbnRpbnVlO1xcbn1lbHNle1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5b6q546v5aSH5Lu9JykpLnJ1bGUpXFxuXFxu6Lev5b6E5YiH5YmyPeaWh+S7tui3r+W+hC5zcGxpdCjot6/lvoTpl7TpmpQpXFxu6Lev5b6E5YiH5YmyLnNwbGljZSjot6/lvoTliIflibIubGVuZ3RoLTEsMSlcXG5cXG7mlofku7bot6/lvoQ96Lev5b6E5YiH5YmyLmpvaW4o6Lev5b6E6Ze06ZqUKVxcblxcblxcbn1cXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpgInmi6nlpIfku73mlofku7bot6/lvoRcIixcInBhdGhcIjpcIumAieaLqeWkh+S7veaWh+S7tui3r+W+hFwiLFwicnVsZVwiOlwiXFxuXFxuXFxudmFyIOmHjeWkjeivt+axguaWh+S7tuWkuSA9JCjpgInmi6nmlofku7blpLnliJfooagsIDIsJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quaWh+S7tuWkue+8nycpLnNlbGVjdCgo5aSH5Lu95pWw5o2uLOaWh+S7tui3r+W+hCzliJfooahhLOWIl+ihqGIs5paH5Lu25aS55ZCNLElQRlPlr4bpkqUs5a2Y5ZOq6YeMKSA9PiB7XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG7mlofku7bot6/lvoQ95paH5Lu26Lev5b6EK+i3r+W+hOmXtOmalCtpbnB1dFxcblxcbmlmKGlucHV0PT1cXFwi5Yqg5YWl5q2k5aSEXFxcIikge1xcblxcbmlmKGlucHV0PT1cXFwiMFxcXCIpICDmlofku7bot6/lvoQ9XFxcIjBcXFwiIFxcbmVsc2Ug5paH5Lu26Lev5b6EPeaWh+S7tui3r+W+hC5yZXBsYWNlKOi3r+W+hOmXtOmalCtcXFwi5Yqg5YWl5q2k5aSEXFxcIiAsXFxcIlxcXCIpXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5yZXR1cm4g5Y2V5Liq5paH5Lu25aS55aSH5Lu9KOWIl+ihqGEs5YiX6KGoYizmlofku7blpLnlkI0sSVBGU+WvhumSpSzmlofku7bot6/lvoQs5a2Y5ZOq6YeMLFxcXCLlpIfku71cXFwiKVxcblxcbn1lbHNle1xcblxcblxcbmxldCDlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70gPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuXFxuXFxu6YCJ5oup5paH5Lu25aS55YiX6KGoPeWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vS5kYXRhLuaWh+S7tuWkuVxcblxcbiAgICAgICAg6YCJ5oup5paH5Lu25aS55YiX6KGoLnB1c2goXFxcIuWKoOWFpeatpOWkhFxcXCIpXFxuICAgICAgICDpgInmi6nmlofku7blpLnliJfooagudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mAieaLqeWkh+S7veaWh+S7tui3r+W+hCcpKS5ydWxlKVxcblxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcblxcblxcblxcbn1cXG5cXG5cXG59LOWkh+S7veaVsOaNrizmlofku7bot6/lvoQs5YiX6KGoYSzliJfooahiLOaWh+S7tuWkueWQjSxJUEZT5a+G6ZKlLOWtmOWTqumHjClcXG5cXG5cXG5cXG5cXG5cXG5cXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIumAieaLqeWkh+S7veaWh+S7tui3r+W+hDJcIixcInBhdGhcIjpcIumAieaLqeWkh+S7veaWh+S7tui3r+W+hDJcIixcInJ1bGVcIjpcInZhciDph43lpI3or7fmsYLmlofku7blpLkyID0kKOmAieaLqeaWh+S7tuWkueWIl+ihqCwgMiwn5bCG5paH5Lu25re75Yqg6Iez5ZOq5Liq5paH5Lu25aS577yfJykuc2VsZWN0KCjlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGks5ZOq6YeM5p2lLOWtmOWTqumHjCzmlofku7bot6/lvoQpID0+IHtcXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcblxcblxcblxcblxcbmlmKGlucHV0PT1cXFwi5Yqg5YWl5q2k5aSEXFxcIikge1xcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxu5LiK57qn6Lev5b6EPeWkh+S7veebruW9lS5zcGxpdChcXFwiL1xcXCIpLnNsaWNlKC0xKVswXVxcbuS4iue6p+i3r+W+hD3kuIrnuqfot6/lvoQucmVwbGFjZShcXFwiLmpzb25cXFwiLFxcXCJcXFwiKVxcblxcbuWOn+S4iue6p+i3r+W+hD3lpIfku73nm67lvZUuc3BsaXQoXFxcIi9cXFwiKS5zbGljZSgtMSlbMF0ucmVwbGFjZShcXFwiLmpzb25cXFwiLFxcXCJcXFwiKVxcbuWOn+i3r+W+hD3kuIrnuqfot6/lvoQr6Lev5b6E6Ze06ZqUK+aWh+S7tuWkueWQjVxcblxcbuaWsOS4iue6p+i3r+W+hD3mlofku7bot6/lvoRcXG7mlrDot6/lvoQ95paH5Lu26Lev5b6EK+i3r+W+hOmXtOmalCvmlofku7blpLnlkI1cXG5cXG5cXG5pZijlrZjlk6rph4w9PeWTqumHjOadpSYm5paw6Lev5b6ELmluY2x1ZGVzKOWOn+i3r+W+hCkpIHJldHVybiAndG9hc3Q6Ly/or7fmo4Dmn6Xnp7vliqjot6/lvoQnXFxuXFxuc2hvd0xvYWRpbmcoJ+aTjeS9nOS4rScpXFxuLy/liKDpmaTmlofku7blpLnlkI1cXG7kuIrnuqfot6/lvoTmlofku7YgPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWTqumHjOadpSvljp/kuIrnuqfot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxu5LiK57qn5paH5Lu25aS55YiX6KGoPeS4iue6p+i3r+W+hOaWh+S7ti5kYXRhLuaWh+S7tuWkuVxcbuWIoOmZpOS9jee9rj3kuIrnuqfmlofku7blpLnliJfooaguZmluZEluZGV4KGl0ID0+IGl0ID09PSDmlofku7blpLnlkI0pO1xcbuS4iue6p+i3r+W+hOaWh+S7ti5kYXRhLuaWh+S7tuWkuS5zcGxpY2Uo5Yig6Zmk5L2N572uLDEpXFxuc2F2ZUZpbGUo5ZOq6YeM5p2lK+WOn+S4iue6p+i3r+W+hCsnLmpzb24nLEpTT04uc3RyaW5naWZ5KOS4iue6p+i3r+W+hOaWh+S7tiksIDApO1xcblxcblxcbi8v5paw55uu5b2V5aKe5Yqg5paH5Lu25aS55ZCNXFxu5aSH5Lu95aKe5Yqg5paH5Lu25aS5ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlrZjlk6rph4wr5paw5LiK57qn6Lev5b6EKycuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbuWkh+S7veWinuWKoOaWh+S7tuWkuS5kYXRhLuaWh+S7tuWkuS5wdXNoKOaWh+S7tuWkueWQjSlcXG7lpIfku73lop7liqDmlofku7blpLkuZGF0YS7mlofku7blpLk95pWw57uE5Y676YeNKOWkh+S7veWinuWKoOaWh+S7tuWkuS5kYXRhLuaWh+S7tuWkuSlcXG5zYXZlRmlsZSjlrZjlk6rph4wr5paw5LiK57qn6Lev5b6EKycuanNvbicsIEpTT04uc3RyaW5naWZ5KOWkh+S7veWinuWKoOaWh+S7tuWkuSksIDApO1xcblxcblxcblxcbumcgOWkhOeQhuWIl+ihqD1bXVxcbumcgOWkhOeQhuWIl+ihqD3mlbDnu4Tljrvph40o5aSH5Lu95paH5Lu25aS55aSE55CGKOWkh+S7veebruW9lSzmlofku7blpLnlkI0sXFxcIuenu+WKqFxcXCIs6ZyA5aSE55CG5YiX6KGoKSlcXG5cXG5cXG5mb3IgKHZhciBpIGluIOmcgOWkhOeQhuWIl+ihqCkge1xcblxcbuivu+WPluWkhOeQhuaVsOaNriA9IEpTT04ucGFyc2UocmVhZEZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldLCAwKSB8fCAnW10nKTtcXG5cXG7or7vlj5blpITnkIbmlbDmja4uZGF0YS7ot6/lvoQ96K+75Y+W5aSE55CG5pWw5o2uLmRhdGEu6Lev5b6ELnJlcGxhY2Uo5Y6f6Lev5b6ELOaWsOi3r+W+hClcXG5cXG5pZihmaWxlRXhpc3Qo6ZyA5aSE55CG5YiX6KGoW2ldLnJlcGxhY2Uo5ZOq6YeM5p2lK+WOn+i3r+W+hCzlrZjlk6rph4wr5paw6Lev5b6EKSkpe1xcblxcbuW3suacieaVsOaNriA9IEpTT04ucGFyc2UocmVhZEZpbGUo6ZyA5aSE55CG5YiX6KGoW2ldLnJlcGxhY2Uo5ZOq6YeM5p2lK+WOn+i3r+W+hCzlrZjlk6rph4wr5paw6Lev5b6EKSwgMCkgfHwgJ1tdJyk7XFxuXFxu5bey5pyJ5pWw5o2uLmRhdGEu5paH5Lu25aS5LnB1c2go6K+75Y+W5aSE55CG5pWw5o2uLmRhdGEu5paH5Lu25aS5KVxcbuW3suacieaVsOaNri5kYXRhLuaWh+S7ti5wdXNoKOivu+WPluWkhOeQhuaVsOaNri5kYXRhLuaWh+S7tilcXG7lt7LmnInmlbDmja4uZGF0YS7mlofku7blpLk95pWw57uE5Y676YeNKOW3suacieaVsOaNri5kYXRhLuaWh+S7tuWkuSlcXG7lt7LmnInmlbDmja4uZGF0YS7mlofku7Y95pWw57uE5Y676YeNKOW3suacieaVsOaNri5kYXRhLuaWh+S7tilcXG5cXG5zYXZlRmlsZSjpnIDlpITnkIbliJfooahbaV0ucmVwbGFjZSjlk6rph4zmnaUr5Y6f6Lev5b6ELOWtmOWTqumHjCvmlrDot6/lvoQpLCBKU09OLnN0cmluZ2lmeSjlt7LmnInmlbDmja4pLCAwKTtcXG5cXG59ZWxzZXtcXG5cXG5zYXZlRmlsZSjpnIDlpITnkIbliJfooahbaV0ucmVwbGFjZSjlk6rph4zmnaUr5Y6f6Lev5b6ELOWtmOWTqumHjCvmlrDot6/lvoQpLCBKU09OLnN0cmluZ2lmeSjor7vlj5blpITnkIbmlbDmja4pLCAwKTtcXG5cXG59XFxuICAgICAgICAgICBcXG5kZWxldGVGaWxlKOmcgOWkhOeQhuWIl+ihqFtpXSlcXG59XFxuaGlkZUxvYWRpbmcoKVxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gJ3RvYXN0Oi8v56e75Yqo5oiQ5YqfJ1xcblxcbn1lbHNle1xcblxcbuaWh+S7tui3r+W+hD3mlofku7bot6/lvoQr6Lev5b6E6Ze06ZqUK2lucHV0XFxuXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG5cXG5cXG7pgInmi6nmlofku7blpLnliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5XFxuXFxuICAgICAgICDpgInmi6nmlofku7blpLnliJfooagucHVzaChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG4gICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EMicpKS5ydWxlKVxcblxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuTJcXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxufSzlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25aS55ZCNLGks5ZOq6YeM5p2lLOWtmOWTqumHjCzmlofku7bot6/lvoQpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpgInmi6nlpIfku73mlofku7bot6/lvoQzXCIsXCJwYXRoXCI6XCLpgInmi6nlpIfku73mlofku7bot6/lvoQzXCIsXCJydWxlXCI6XCJ2YXIg6YeN5aSN6K+35rGC5paH5Lu25aS5MyA9JCjpgInmi6nmlofku7blpLnliJfooagsIDIsJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quaWh+S7tuWkue+8nycpLnNlbGVjdCgo5aSH5Lu95paH5Lu25ZCN5YiX6KGoLOWwj+m+meS6keebmOWkh+S7veebruW9lSzlsI/pvpnkupHnm5jmlofku7blpLnlpIfku70s5aSH5Lu955uu5b2VLOaWh+S7tuWQjSxpLOWTqumHjOadpSzlrZjlk6rph4ws5paH5Lu26Lev5b6ELOaWh+S7tkNJRCkgPT4ge1xcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxuXFxuXFxuXFxuaWYoaW5wdXQ9PVxcXCLliqDlhaXmraTlpIRcXFwiKSB7XFxuXFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG7kuIrnuqfot6/lvoQ95aSH5Lu955uu5b2VLnNwbGl0KFxcXCIvXFxcIikuc2xpY2UoLTEpWzBdXFxu5LiK57qn6Lev5b6EPeS4iue6p+i3r+W+hC5yZXBsYWNlKFxcXCIuanNvblxcXCIsXFxcIlxcXCIpXFxuXFxu5Y6f6Lev5b6EPeS4iue6p+i3r+W+hFxcblxcbuaWsOi3r+W+hD3mlofku7bot6/lvoRcXG5cXG5cXG5cXG5cXG5cXG5pZijlk6rph4zmnaUr5paH5Lu26Lev5b6EPT3lrZjlk6rph4wr5Y6f6Lev5b6EKXJldHVybiAndG9hc3Q6Ly/or7fmo4Dmn6Xnp7vliqjot6/lvoQnXFxuXFxuXFxuXFxu5Y6f6Lev5b6E5paH5Lu2ID0gSlNPTi5wYXJzZShyZWFkRmlsZSjlk6rph4zmnaUr5Y6f6Lev5b6EKycuanNvbicsIDApIHx8ICdbXScpO1xcblxcblxcbuWOn+i3r+W+hOaWh+S7tuWIl+ihqD3ljp/ot6/lvoTmlofku7YuZGF0YS7mlofku7ZcXG7liKDpmaTkvY3nva495Y6f6Lev5b6E5paH5Lu25YiX6KGoLmZpbmRJbmRleChpdCA9PiBpdC7mlofku7ZDSUQgPT09IOaWh+S7tkNJRCk7XFxuXFxuXFxuXFxuLy/mlrDnm67lvZXlop7liqDmlofku7ZcXG7lpIfku73lop7liqDmlofku7YgPSBKU09OLnBhcnNlKHJlYWRGaWxlKOWtmOWTqumHjCvmlofku7bot6/lvoQrJy5qc29uJywgMCkgfHwgJ1tdJyk7XFxu5aSH5Lu95aKe5Yqg5paH5Lu2LmRhdGEu5paH5Lu2LnB1c2go5Y6f6Lev5b6E5paH5Lu25YiX6KGoW+WIoOmZpOS9jee9rl0pXFxu5aSH5Lu95aKe5Yqg5paH5Lu2LmRhdGEu5paH5Lu2PeaVsOe7hOWOu+mHjSjlpIfku73lop7liqDmlofku7YuZGF0YS7mlofku7YpXFxuc2F2ZUZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCBKU09OLnN0cmluZ2lmeSjlpIfku73lop7liqDmlofku7YpLCAwKTtcXG5cXG5cXG5cXG4vL+WIoOmZpOWOn+i3r+W+hOeahOaWh+S7tuaVsOaNrlxcbuWOn+i3r+W+hOaWh+S7ti5kYXRhLuaWh+S7ti5zcGxpY2Uo5Yig6Zmk5L2N572uLDEpXFxuc2F2ZUZpbGUo5ZOq6YeM5p2lK+WOn+i3r+W+hCsnLmpzb24nLEpTT04uc3RyaW5naWZ5KOWOn+i3r+W+hOaWh+S7tiksIDApO1xcblxcblxcblxcbnJlZnJlc2hQYWdlKGZhbHNlKTtcXG5yZXR1cm4gJ3RvYXN0Oi8v56e75Yqo5oiQ5YqfJ1xcblxcbn1lbHNle1xcblxcbuaWh+S7tui3r+W+hD3mlofku7bot6/lvoQr6Lev5b6E6Ze06ZqUK2lucHV0XFxuXFxuXFxubGV0IOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSA9IEpTT04ucGFyc2UocmVhZEZpbGUo5a2Y5ZOq6YeMK+aWh+S7tui3r+W+hCsnLmpzb24nLCAwKSB8fCAnW10nKTtcXG5cXG5cXG5cXG5cXG7pgInmi6nmlofku7blpLnliJfooag95bCP6b6Z5LqR55uY5paH5Lu25aS55aSH5Lu9LmRhdGEu5paH5Lu25aS5XFxuXFxuICAgICAgICDpgInmi6nmlofku7blpLnliJfooagucHVzaChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG4gICAgICAgIOmAieaLqeaWh+S7tuWkueWIl+ihqC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YCJ5oup5aSH5Lu95paH5Lu26Lev5b6EMycpKS5ydWxlKVxcblxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuTNcXG5cXG5cXG5cXG5cXG59XFxuXFxuXFxufSzlpIfku73mlofku7blkI3liJfooags5bCP6b6Z5LqR55uY5aSH5Lu955uu5b2VLOWwj+m+meS6keebmOaWh+S7tuWkueWkh+S7vSzlpIfku73nm67lvZUs5paH5Lu25ZCNLGks5ZOq6YeM5p2lLOWtmOWTqumHjCzmlofku7bot6/lvoQs5paH5Lu2Q0lEKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Zu+5qCHXCIsXCJwYXRoXCI6XCLlm77moIdcIixcInJ1bGVcIjpcIi8vZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lm77moIcnKSkucnVsZSlcXG7mlofku7blpLnlm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk04MTkuMiUyMDg3Ny4yMjY2NjdIMjA0LjhjLTU4LjAyNjY2NyUyMDAtMTAyLjQtNDQuMzczMzMzLTEwMi40LTEwMi40di00NzcuODY2NjY3YzAtNTguMDI2NjY3JTIwNDQuMzczMzMzLTEwMi40JTIwMTAyLjQtMTAyLjRoMjExLjYyNjY2N2MyNy4zMDY2NjclMjAwJTIwNTQuNjEzMzMzJTIwMTAuMjQlMjA3MS42OCUyMDMwLjcybDEzLjY1MzMzMyUyMDEzLjY1MzMzM2MxMy42NTMzMzMlMjAxMy42NTMzMzMlMjAxMy42NTMzMzMlMjAzNC4xMzMzMzMlMjAwJTIwNDcuNzg2NjY3cy0zNC4xMzMzMzMlMjAxMy42NTMzMzMtNDcuNzg2NjY3JTIwMGwtMTMuNjUzMzMzLTEzLjY1MzMzM2MtNi44MjY2NjctNi44MjY2NjctMTMuNjUzMzMzLTEwLjI0LTIzLjg5MzMzMy0xMC4yNEgyMDQuOGMtMjAuNDglMjAwLTM0LjEzMzMzMyUyMDEzLjY1MzMzMy0zNC4xMzMzMzMlMjAzNC4xMzMzMzN2NDc3Ljg2NjY2N2MwJTIwMjAuNDglMjAxMy42NTMzMzMlMjAzNC4xMzMzMzMlMjAzNC4xMzMzMzMlMjAzNC4xMzMzMzNoNjE0LjRjMjAuNDglMjAwJTIwMzQuMTMzMzMzLTEzLjY1MzMzMyUyMDM0LjEzMzMzMy0zNC4xMzMzMzN2LTM0MS4zMzMzMzRjMC0yMC40OC0xMy42NTMzMzMtMzQuMTMzMzMzLTM0LjEzMzMzMy0zNC4xMzMzMzNIMjczLjA2NjY2N2MtMjAuNDglMjAwLTM0LjEzMzMzMy0xMy42NTMzMzMtMzQuMTMzMzM0LTM0LjEzMzMzM3MxMy42NTMzMzMtMzQuMTMzMzMzJTIwMzQuMTMzMzM0LTM0LjEzMzMzNGg1NDYuMTMzMzMzYzU4LjAyNjY2NyUyMDAlMjAxMDIuNCUyMDQ0LjM3MzMzMyUyMDEwMi40JTIwMTAyLjR2MzQxLjMzMzMzNGMwJTIwNTQuNjEzMzMzLTQ0LjM3MzMzMyUyMDEwMi40LTEwMi40JTIwMTAyLjR6JTIyJTIwZmlsbCUzRCUyMiUyM0ZGQjAwMCUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG5cXG7mlofku7blpLnlm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk04ODUuMzMzMzMzJTIwMTY4LjUzMzMzM2gtNDQ4TDM0MS4zMzMzMzMlMjAxMTAuOTMzMzMzYy02LjQtNC4yNjY2NjctMTQuOTMzMzMzLTYuNC0yMS4zMzMzMzMtNi40SDEzNC40Yy01MS4yJTIwMC05My44NjY2NjclMjA0Mi42NjY2NjctOTMuODY2NjY3JTIwOTMuODY2NjY3djYyMi45MzMzMzNjMCUyMDUxLjIlMjA0Mi42NjY2NjclMjA5My44NjY2NjclMjA5My44NjY2NjclMjA5My44NjY2NjdoNzUwLjkzMzMzM2M1MS4yJTIwMCUyMDkzLjg2NjY2Ny00Mi42NjY2NjclMjA5My44NjY2NjctOTMuODY2NjY3VjI2Mi40YzAtNTEuMi00MC41MzMzMzMtOTMuODY2NjY3LTkzLjg2NjY2Ny05My44NjY2Njd6JTIwbS03MzguMTMzMzMzJTIwMjEuMzMzMzM0aDE2MGw5NiUyMDU3LjZjNi40JTIwNC4yNjY2NjclMjAxNC45MzMzMzMlMjA2LjQlMjAyMS4zMzMzMzMlMjA2LjRoNDQ1Ljg2NjY2N2MxMi44JTIwMCUyMDIxLjMzMzMzMyUyMDguNTMzMzMzJTIwMjEuMzMzMzMzJTIwMjEuMzMzMzMzVjI5OC42NjY2NjdjMCUyMDEyLjgtOC41MzMzMzMlMjAyMS4zMzMzMzMtMjEuMzMzMzMzJTIwMjEuMzMzMzMzaC03MjUuMzMzMzMzYy0xMi44JTIwMC0yMS4zMzMzMzMtOC41MzMzMzMtMjEuMzMzMzM0LTIxLjMzMzMzM1YyMTEuMmMyLjEzMzMzMy0xMC42NjY2NjclMjAxMi44LTIxLjMzMzMzMyUyMDIzLjQ2NjY2Ny0yMS4zMzMzMzN6JTIyJTIwZmlsbCUzRCUyMiUyMzgwQjhGOCUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG7op4bpopHmlofku7blm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDEuMDE0NjQ4NDM3NWVtJTNCaGVpZ2h0JTNBJTIwMWVtJTNCdmVydGljYWwtYWxpZ24lM0ElMjBtaWRkbGUlM0JmaWxsJTNBJTIwY3VycmVudENvbG9yJTNCb3ZlcmZsb3clM0ElMjBoaWRkZW4lM0IlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMDM5JTIwMTAyNCUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTgwOC4wMTUwNjYlMjA3NTIuMDkwMzk1aC01MzkuOTYyMzM1Yy04NC44NTEyMjQlMjAwLTE1NC4yNzQ5NTMtNjkuNDIzNzI5LTE1NC4yNzQ5NTMtMTU0LjI3NDk1MnYtMzA4LjU0OTkwNmMwLTg0Ljg1MTIyNCUyMDY5LjQyMzcyOS0xNTQuMjc0OTUzJTIwMTU0LjI3NDk1My0xNTQuMjc0OTUzaDUzOS45NjIzMzVjODQuODUxMjI0JTIwMCUyMDE1NC4yNzQ5NTMlMjA2OS40MjM3MjklMjAxNTQuMjc0OTUzJTIwMTU0LjI3NDk1M3YzMDguNTQ5OTA2YzAlMjA4NC44NTEyMjQtNjkuNDIzNzI5JTIwMTU0LjI3NDk1My0xNTQuMjc0OTUzJTIwMTU0LjI3NDk1MnolMjBtLTUzOS45NjIzMzUtNTM5Ljk2MjMzNWMtNDIuNDI1NjEyJTIwMC03Ny4xMzc0NzYlMjAzNC43MTE4NjQtNzcuMTM3NDc3JTIwNzcuMTM3NDc3djMwOC41NDk5MDZjMCUyMDQyLjQyNTYxMiUyMDM0LjcxMTg2NCUyMDc3LjEzNzQ3NiUyMDc3LjEzNzQ3NyUyMDc3LjEzNzQ3Nmg1MzkuOTYyMzM1YzQyLjQyNTYxMiUyMDAlMjA3Ny4xMzc0NzYtMzQuNzExODY0JTIwNzcuMTM3NDc2LTc3LjEzNzQ3NnYtMzA4LjU0OTkwNmMwLTQyLjQyNTYxMi0zNC43MTE4NjQtNzcuMTM3NDc2LTc3LjEzNzQ3Ni03Ny4xMzc0NzdoLTUzOS45NjIzMzV6JTIyJTIwZmlsbCUzRCUyMiUyMzM4OENFQiUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTQ5OS40NjUxNiUyMDYxNy4wOTk4MTJjLTIzLjE0MTI0MyUyMDAtNDQuMzU0MDQ5LTUuNzg1MzExLTYxLjcwOTk4MS0xNy4zNTU5MzMtNDAuNDk3MTc1LTI2Ljk5ODExNy01OS43ODE1NDQtODAuOTk0MzUtNTMuOTk2MjM0LTE2MS45ODg3JTIwMy44NTY4NzQtODIuOTIyNzg3JTIwMjYuOTk4MTE3LTEzMy4wNjIxNDclMjA3MS4zNTIxNjYtMTU2LjIwMzM5JTIwNDQuMzU0MDQ5LTIzLjE0MTI0MyUyMDEwMC4yNzg3MTktMTEuNTcwNjIxJTIwMTcxLjYzMDg4NSUyMDMyLjc4MzQyOHMxMDQuMTM1NTkzJTIwOTAuNjM2NTM1JTIwMTAyLjIwNzE1NyUyMDE0MC43NzU4OTRjLTEuOTI4NDM3JTIwNTAuMTM5MzYtNDAuNDk3MTc1JTIwOTAuNjM2NTM1LTExNS43MDYyMTUlMjAxMjkuMjA1MjczLTQyLjQyNTYxMiUyMDIzLjE0MTI0My04MC45OTQzNSUyMDMyLjc4MzQyNy0xMTMuNzc3Nzc4JTIwMzIuNzgzNDI4eiUyMG01Ljc4NTMxMS0yNjkuOTgxMTY4Yy03LjcxMzc0OCUyMDAtMTEuNTcwNjIxJTIwMS45Mjg0MzctMTMuNDk5MDU5JTIwMS45Mjg0MzctMTcuMzU1OTMyJTIwNy43MTM3NDgtMjYuOTk4MTE3JTIwNDIuNDI1NjEyLTMwLjg1NDk5JTIwOTAuNjM2NTM1LTMuODU2ODc0JTIwNzEuMzUyMTY2JTIwMTMuNDk5MDU4JTIwODguNzA4MDk4JTIwMTkuMjg0MzY5JTIwOTQuNDkzNDA4JTIwNy43MTM3NDglMjA1Ljc4NTMxMSUyMDMyLjc4MzQyNyUyMDEzLjQ5OTA1OCUyMDk4LjM1MDI4Mi0xOS4yODQzNjklMjA2Ny40OTUyOTItMzIuNzgzNDI3JTIwNzMuMjgwNjAzLTU3Ljg1MzEwNyUyMDczLjI4MDYwMy02My42Mzg0MTglMjAwLTUuNzg1MzExLTMuODU2ODc0LTMwLjg1NDk5MS02NS41NjY4NTUtNzEuMzUyMTY1LTQwLjQ5NzE3NS0yNS4wNjk2OC02NS41NjY4NTUtMzIuNzgzNDI3LTgwLjk5NDM1LTMyLjc4MzQyOHolMjIlMjBmaWxsJTNEJTIyJTIzRTc4RTAwJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNzUwLjE2MTk1OSUyMDkwNi4zNjUzNDhoLTQyNC4yNTYxMjFjLTIxLjIxMjgwNiUyMDAtMzguNTY4NzM4LTE3LjM1NTkzMi0zOC41Njg3MzgtMzguNTY4NzM4czE3LjM1NTkzMi0zOC41Njg3MzglMjAzOC41Njg3MzgtMzguNTY4NzM4aDQyNC4yNTYxMjFjMjEuMjEyODA2JTIwMCUyMDM4LjU2ODczOCUyMDE3LjM1NTkzMiUyMDM4LjU2ODczOCUyMDM4LjU2ODczOHMtMTcuMzU1OTMyJTIwMzguNTY4NzM4LTM4LjU2ODczOCUyMDM4LjU2ODczOHolMjIlMjBmaWxsJTNEJTIyJTIzMzg4Q0VCJTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIlxcblxcbumfs+S5kOaWh+S7tuWbvuaghz1cXFwiaHR0cHM6Ly9pY29uZm9udC50eXJhbnRnLmNvbS9hcGkvaWxsdXN0cmF0ZS5zdmc/c3ZnX3N0cmluZz0lM0NzdmclMjBjbGFzcyUzRCUyMmljb24lMjIlMjBzdHlsZSUzRCUyMndpZHRoJTNBJTIwMWVtJTNCaGVpZ2h0JTNBJTIwMWVtJTNCdmVydGljYWwtYWxpZ24lM0ElMjBtaWRkbGUlM0JmaWxsJTNBJTIwY3VycmVudENvbG9yJTNCb3ZlcmZsb3clM0ElMjBoaWRkZW4lM0IlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMDI0JTIwMTAyNCUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTUxNC45MjglMjAxMDQuNDMyYzE5My44OCUyMDAlMjAzNTIuNzA1JTIwMTQ2LjY0OCUyMDM1OS42NjglMjAzMzEuMTE3bDAuMjM4JTIwMTIuNjM1djI0Mi45NjhINzg5LjVWNDQ4LjE4NGMwLTE0Mi4yMDgtMTIyLjQ0Ni0yNTguNDItMjc0LjU3Mi0yNTguNDItMTQ3LjklMjAwLTI2Ny43NDclMjAxMDkuODQ2LTI3NC4yOTElMjAyNDYuNjMxbC0wLjI4MiUyMDExLjc4OXYyNDIuOTY4aC04NS4zMzNWNDQ4LjE4NGMwLTE5MC4zNjIlMjAxNjEuNjItMzQzLjc1MiUyMDM1OS45MDYtMzQzLjc1MnolMjIlMjBmaWxsJTNEJTIyJTIzMzMzMzMwJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNOTM1LjY2MiUyMDUyNy45NGMzMS40MTglMjAwJTIwNTYuODg4JTIwMjUuNDclMjA1Ni44ODglMjA1Ni44ODh2MjEyLjY0N2MwJTIwMzEuNDE5LTI1LjQ3JTIwNTYuODg5LTU2Ljg4OCUyMDU2Ljg4OWgtODkuMjMzYy0zMS40MiUyMDAtNTYuODktMjUuNDctNTYuODktNTYuODlWNTg0LjgyOWMwLTMxLjQxOSUyMDI1LjQ3LTU2Ljg4OSUyMDU2Ljg5LTU2Ljg4OWg4OS4yMzN6JTIwbS0yOC40NTUlMjA4NS4zMjJoLTMyLjM3djE1NS43NjJoMzIuMzdWNjEzLjI2MnolMjIlMjBmaWxsJTNEJTIyJTIzMzMzMzMwJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNMzg3LjgzOSUyMDU3NC40N2MxNS45MTItMTkuNjI0JTIwNDQuODQtMjAuOTI4JTIwNjIuNTA3LTQuMDkzbDQuMTY4JTIwNC41ODYlMjA2MC42MTUlMjA3Ny4wNCUyMDQ1LjkxNi00Ny41OTZhNDIuNjY4JTIwNDIuNjY4JTIwMCUyMDAlMjAxJTIwMjMuODQ3LTEyLjVsNi44NzMtMC41NThoMTE4LjMxMmMyMy41NjQlMjAwJTIwNDIuNjY2JTIwMTkuMTAzJTIwNDIuNjY2JTIwNDIuNjY3JTIwMCUyMDIxLjYtMTYuMDUlMjAzOS40NTItMzYuODc3JTIwNDIuMjc3bC01Ljc5JTIwMC4zOS0xMDAuMTctMC4wNDctNjcuMzAzJTIwNjkuODcyYy0xNi40NjYlMjAxNy4wODUtNDMuMjg4JTIwMTcuMjMtNTkuOTcyJTIwMS40NjVsLTQuMjgzLTQuNjk0LTU3Ljk0LTczLjU4My02OC43NCUyMDg0Ljg3MWMtMTMuNDkxJTIwMTYuNjQtMzYuOTI0JTIwMjAuNDcyLTU0LjgyNCUyMDkuODhsLTUuMTg5LTMuNjExYy0xNi42MzktMTMuNDkyLTIwLjQ3MS0zNi45MjQtOS44OC01NC44MjVsMy42MTItNS4xODhMMzg3LjgzOSUyMDU3NC40N3olMjIlMjBmaWxsJTNEJTIyJTIzRUY1MDJGJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTA0LjU5MyUyMDUyNy45NGMtMzEuNDE5JTIwMC01Ni44ODklMjAyNS40Ny01Ni44ODklMjA1Ni44ODh2MjEyLjY0N2MwJTIwMzEuNDE5JTIwMjUuNDclMjA1Ni44ODklMjA1Ni44ODklMjA1Ni44ODloNzguNTEzYzMxLjQyJTIwMCUyMDU2Ljg5LTI1LjQ3JTIwNTYuODktNTYuODlWNTg0LjgyOWMwLTMxLjQxOS0yNS40Ny01Ni44ODktNTYuODktNTYuODg5aC03OC41MTN6JTIwbTI4LjQ4MiUyMDg1LjMyMmgyMS42MTh2MTU1Ljc2MmgtMjEuNjE4VjYxMy4yNjJ6JTIyJTIwZmlsbCUzRCUyMiUyMzMzMzMzMCUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG5cXG7lm77niYfmlofku7blm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk04NTMuMzMzMzMzJTIwMTcwLjY2NjY2N0gxNzAuNjY2NjY3Yy00Ni45MzMzMzMlMjAwLTg1LjMzMzMzMyUyMDM4LjQtODUuMzMzMzM0JTIwODUuMzMzMzMzdjUxMmMwJTIwNDYuOTMzMzMzJTIwMzguNCUyMDg1LjMzMzMzMyUyMDg1LjMzMzMzNCUyMDg1LjMzMzMzM2g2ODIuNjY2NjY2YzQ2LjkzMzMzMyUyMDAlMjA4NS4zMzMzMzMtMzguNCUyMDg1LjMzMzMzNC04NS4zMzMzMzNWMjU2YzAtNDYuOTMzMzMzLTM4LjQtODUuMzMzMzMzLTg1LjMzMzMzNC04NS4zMzMzMzN6TTE3MC42NjY2NjclMjAyOTguNjY2NjY3YzAtMjMuNDY2NjY3JTIwMTkuMi00Mi42NjY2NjclMjA0Mi42NjY2NjYtNDIuNjY2NjY3aDU5Ny4zMzMzMzRjMjMuNDY2NjY3JTIwMCUyMDQyLjY2NjY2NyUyMDE5LjIlMjA0Mi42NjY2NjYlMjA0Mi42NjY2Njd2NDI2LjY2NjY2NmMwJTIwNi40LTIuMTMzMzMzJTIwMTAuNjY2NjY3LTIuMTMzMzMzJTIwMTQuOTMzMzM0bC0xNTMuNi0yNTMuODY2NjY3Yy02LjQtMTAuNjY2NjY3LTIzLjQ2NjY2Ny0xNC45MzMzMzMtMzItNC4yNjY2NjdMNTc2JTIwNTU4LjkzMzMzM2MtMTAuNjY2NjY3JTIwOC41MzMzMzMtMjUuNiUyMDYuNC0zNC4xMzMzMzMtNi40bC05Ni0xNzkuMmMtOC41MzMzMzMtMTQuOTMzMzMzLTI3LjczMzMzMy0xNC45MzMzMzMtMzguNC0yLjEzMzMzM2wtMjM0LjY2NjY2NyUyMDM2OS4wNjY2NjdjMC00LjI2NjY2Ny0yLjEzMzMzMy0xMC42NjY2NjctMi4xMzMzMzMtMTQuOTMzMzM0VjI5OC42NjY2Njd6JTIyJTIwZmlsbCUzRCUyMiUyMzI5N0FGRiUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTc0Ni42NjY2NjclMjAzNjIuNjY2NjY3bS02NCUyMDBhNjQlMjA2NCUyMDAlMjAxJTIwMCUyMDEyOCUyMDAlMjA2NCUyMDY0JTIwMCUyMDElMjAwLTEyOCUyMDBaJTIyJTIwZmlsbCUzRCUyMiUyMzI5N0FGRiUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG7lhbbku5bmlofku7blm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk05MzcuNiUyMDM1Ny43Yy0zOC41LTQyLjYtODguOC03Mi0xNDQuMi04NC40LTExLjctNTMuMS0zOS42LTEwMS40LTgwLjMtMTM4LjVDNjY0LjMlMjA5MC4zJTIwNjAxJTIwNjUuOSUyMDUzNSUyMDY1LjljLTY1LjglMjAwLTEyOC44JTIwMjQuMy0xNzcuNSUyMDY4LjQtMzkuNyUyMDM2LTY3LjQlMjA4Mi43LTc5LjglMjAxMzQuMS02MS43JTIwNy0xMTguOCUyMDM0LjUtMTYzLjMlMjA3OS01MS4yJTIwNTEuMi03OS44JTIwMTE5LTgwLjglMjAxOTEuMi0xJTIwNzQuMyUyMDI4JTIwMTQ2LjElMjA4MC41JTIwMTk4LjclMjA0MS4yJTIwNDEuMyUyMDkzLjIlMjA2OCUyMDE0OS42JTIwNzcuNCUyMDI0JTIwNCUyMDQ1LjktMTQuNCUyMDQ1LjktMzguOHYtMS40YzAtMTkuMy0xNC0zNS42LTMzLTM4LjgtOTIuNC0xNS43LTE2Mi45LTk2LjQtMTYyLjktMTkzLjIlMjAwLTEwOC4xJTIwODcuOS0xOTYlMjAxOTYtMTk2aDEuN2wzNi4zJTIwMC4zJTIwMy44LTM2LjFjMTAtOTQlMjA4OC45LTE2NC45JTIwMTgzLjYtMTY0LjklMjA5NS4zJTIwMCUyMDE3NC4zJTIwNzEuNCUyMDE4My43JTIwMTY2bDMuMiUyMDMyLjMlMjAzMi4yJTIwMy41Yzk5LjQlMjAxMC44JTIwMTc0LjQlMjA5NC42JTIwMTc0LjQlMjAxOTQuOCUyMDAlMjA5Ni44LTcwLjYlMjAxNzcuNC0xNjIuOSUyMDE5My4yLTE5LjElMjAzLjMtMzMlMjAyMC4xLTMzJTIwMzkuNSUyMDAlMjAyNC44JTIwMjIuMyUyMDQzLjUlMjA0Ni44JTIwMzkuNCUyMDU1LjktOS41JTIwMTA3LjQtMzYlMjAxNDguNC03Ni45JTIwNTIuMS01Mi4xJTIwODAuOC0xMjEuNCUyMDgwLjgtMTk1LjEtMC4xLTY4LjQtMjUuMy0xMzQuMS03MS4xLTE4NC44eiUyMiUyMGZpbGwlM0QlMjIlMjMyQzJDMkMlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk01NTcuMSUyMDc5NS4xaC03MmMtMi4yJTIwMC00LTEuOC00LTRWNTUzLjhjMC0yMiUyMDE4LTQwJTIwNDAtNDBzNDAlMjAxOCUyMDQwJTIwNDB2MjM3LjNjMCUyMDIuMi0xLjglMjA0LTQlMjA0eiUyMiUyMGZpbGwlM0QlMjIlMjMyQzJDMkMlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk00OTglMjA3MjkuMWMxMSUyMDE2LjUlMjAzNS4yJTIwMTYuNSUyMDQ2LjIlMjAwJTIwNS4yLTcuNyUyMDEzLjgtMTIuMyUyMDIzLjEtMTIuM2g2M2MyMi4yJTIwMCUyMDM1LjQlMjAyNC44JTIwMjMuMSUyMDQzLjJsLTk2LjYlMjAxNDQuNWMtOS41JTIwMTQuMy0yMi4yJTIwMjIuMS0zNS43JTIwMjIuMS0xMy41JTIwMC0yNi4yLTcuOS0zNS43LTIyLjFMMzg4LjglMjA3NjBjLTEyLjMtMTguNSUyMDAuOS00My4yJTIwMjMuMS00My4yaDYzYzkuMyUyMDAlMjAxNy45JTIwNC42JTIwMjMuMSUyMDEyLjN6JTIyJTIwZmlsbCUzRCUyMiUyMzVBQkU2NCUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG7pppbpobXnrqHnkIbotKblj7flm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMDA4LjUzNTEzNSUyMDcxMC42NzAzMzJsLTcwLjQ0NjM4OCUyMDExNi4zODY5MDRhMTEyLjA5OTk3NSUyMDExMi4wOTk5NzUlMjAwJTIwMCUyMDEtMTQwLjU3Mjg1NyUyMDQzLjgyOTA0MmwtNjkuNDIyNjQ1LTE3LjA4MzcyOWMtNS41MDI2MjQlMjAzLjE5OTItMTEuMTMzMjE3JTIwNi4zOTg0LTE2Ljc2MzgwOSUyMDkuMzQxNjY1bC0xOC4yOTk0MjUlMjA2Mi44OTYyNzZDNjg3LjMzNTQzNSUyMDk4MS41MTQ2MjElMjA2MzkuNDc1NCUyMDEwMjMuNzQ0MDY0JTIwNTgyLjY1NzYwNCUyMDEwMjMuNzQ0MDY0SDQ0MS43NjQ4MjhjLTU2LjgxNzc5NiUyMDAtMTA0LjY3NzgzMS00Mi4yOTM0MjctMTEwLjMwODQyMy05Ny43MDM1NzRsLTE4LjI5OTQyNS02Mi44OTYyNzZhNDIyLjE2NjQ1OCUyMDQyMi4xNjY0NTglMjAwJTIwMCUyMDEtMTYuODI3NzkzLTkuMzQxNjY1bC02OS42MTQ1OTclMjAxNy4wODM3MjlhMTEyLjE2Mzk1OSUyMDExMi4xNjM5NTklMjAwJTIwMCUyMDEtMTQwLjUwODg3My00My44OTMwMjZMMTUuNjMxMzYxJTIwNzEwLjU0MjM2NGExMDcuNDkzMTI3JTIwMTA3LjQ5MzEyNyUyMDAlMjAwJTIwMSUyMDMyLjQzOTg5LTE0NC43MzE4MTdMOTYuMjUxMjA2JTIwNTE4LjkxMDI3MmE0MTAuNjQ5MzM4JTIwNDEwLjY0OTMzOCUyMDAlMjAwJTIwMSUyMDAtMTQuMjA0NDQ4bC00OC4xNzk5NTUtNDYuODM2MjkxYTEwNy4zNjUxNTklMjAxMDcuMzY1MTU5JTIwMCUyMDAlMjAxLTMyLjM3NTkwNi0xNDQuNzMxODE3bDcwLjE5MDQ1Mi0xMTYuNDUwODg4YTExMi4wOTk5NzUlMjAxMTIuMDk5OTc1JTIwMCUyMDAlMjAxJTIwMTQwLjU3Mjg1Ny00My44OTMwMjZsNjkuNTUwNjEyJTIwMTcuMDgzNzI5YzUuNTY2NjA4LTMuMTk5MiUyMDExLjEzMzIxNy02LjM5ODQlMjAxNi44Mjc3OTQtOS4zNDE2NjVsMTguMjk5NDI1LTYyLjg5NjI3NkMzMzYuODMxMDYxJTIwNDIuMjI5NDQzJTIwMzg0LjY5MTA5NiUyMDAlMjA0NDEuNTA4ODkyJTIwMEg1ODIuNTI5NjM2YzU2LjgxNzc5NiUyMDAlMjAxMDQuNjc3ODMxJTIwNDIuMjkzNDI3JTIwMTEwLjM3MjQwNyUyMDk3LjYzOTU5bDE4LjIzNTQ0MSUyMDYyLjcwNDMyNGM1Ljc1ODU2JTIwMy4wMDcyNDglMjAxMS4zMjUxNjklMjA2LjE0MjQ2NCUyMDE2LjgyNzc5MyUyMDkuMzQxNjY1bDY5LjY3ODU4MS0xNy4wODM3MjlhMTEyLjE2Mzk1OSUyMDExMi4xNjM5NTklMjAwJTIwMCUyMDElMjAxNDAuNTA4ODczJTIwNDMuODkzMDI2bDcwLjQ0NjM4OCUyMDExNi41MTQ4NzJhMTA3LjQ5MzEyNyUyMDEwNy40OTMxMjclMjAwJTIwMCUyMDEtMzIuMzc1OTA2JTIwMTQ0LjczMTgxN2wtNDguMTc5OTU1JTIwNDYuNzcyMzA3YTQxNC42MTYzNDYlMjA0MTQuNjE2MzQ2JTIwMCUyMDAlMjAxJTIwMCUyMDE0LjIwNDQ0OGw0OC4yNDM5MzklMjA0Ni44MzYyOTFjNDcuMDkyMjI3JTIwMzEuOTI4MDE4JTIwNjIuMTkyNDUyJTIwOTQuOTUyMjYyJTIwMzIuMjQ3OTM4JTIwMTQ1LjExNTcyMXolMjBtLTIxMy4wNjY3MzMtMTQyLjIzNjQ0bDMuMzkxMTUyLTMxLjAzMjI0MmEyNDYuMjEwNDQ3JTIwMjQ2LjIxMDQ0NyUyMDAlMjAwJTIwMCUyMDAtNTEuNjk5MDc2bC0zLjI2MzE4NC0zMC45MDQyNzQlMjA5My45OTI1MDItOTEuMzA1MTczLTUzLjU1NDYxMi04OC41NTM4NjItMTMxLjYxNTA5NiUyMDMyLjMxMTkyMi0yMy41NDYxMTMtMTYuMDU5OTg1YTI5NC4xMzQ0NjYlMjAyOTQuMTM0NDY2JTIwMCUyMDAlMjAwLTQ4LjYyNzg0NC0yNi44MDkyOTdsLTI3LjUxMzEyMS0xMS45MDEwMjVMNTY4LjQ1MzE1NiUyMDEyNy45NjgwMDhINDU1LjY0OTM1Nkw0MTkuMzcwNDI2JTIwMjUyLjczNjgxNmwtMjcuNzA1MDc0JTIwMTEuOTY1MDA5Yy0xNi42MzU4NDElMjA3LjE2NjIwOC0zMi45NTE3NjIlMjAxNi4xODc5NTMtNDguNDk5ODc1JTIwMjYuNzQ1MzEzbC0yMy42MTAwOTclMjAxNS45OTYwMDEtMTMxLjQ4NzEyOC0zMi4yNDc5MzgtNTMuMzYyNjYlMjA4OC40ODk4NzglMjA5NC4wNTY0ODYlMjA5MS40MzMxNDEtMy4yNjMxODQlMjAzMC45NjgyNThhMjQ3Ljg3NDAzMSUyMDI0Ny44NzQwMzElMjAwJTIwMCUyMDAlMjAwJTIwNTEuNjk5MDc2bDMuMTk5MiUyMDMwLjkwNDI3NC05My45Mjg1MTglMjA5MS4zNjkxNTclMjA1My41NTQ2MTIlMjA4OC40ODk4NzglMjAxMzEuNTUxMTEyLTMyLjMxMTkyMiUyMDIzLjYxMDA5NyUyMDE2LjA1OTk4NWMxNS4yOTIxNzclMjAxMC40MjkzOTMlMjAzMS41NDQxMTQlMjAxOS40NTExMzclMjA0OC41NjM4NTklMjAyNi44MDkyOTdsMjcuNTc3MTA2JTIwMTEuOTY1MDA5TDQ1NS45MDUyOTIlMjA4OTUuNzc2MDU2aDExMi42MTE4NDhsMzYuMzQyOTE0LTEyNC43Njg4MDglMjAyNy42NDEwOS0xMS45NjUwMDljMTYuNjk5ODI1LTcuMTY2MjA4JTIwMzIuOTUxNzYyLTE2LjE4Nzk1MyUyMDQ4LjU2Mzg1OS0yNi43NDUzMTNsMjMuNTQ2MTEzLTE1Ljk5NjAwMSUyMDEzMS40MjMxNDQlMjAzMi4yNDc5MzglMjA1My42ODI1OC04OC43NDU4MTQtOTQuMTg0NDU0LTkxLjM2OTE1N3pNNTEyLjE0NzIzMiUyMDYxNS44NDYwMzhjNTcuMzI5NjY4JTIwMCUyMDEwMy44NDYwMzgtNDYuNTE2MzcxJTIwMTAzLjk3NDAwNi0xMDMuOTc0MDA2JTIwMC01Ny4zMjk2NjgtNDYuNjQ0MzM5LTEwMy45NzQwMDYtMTAzLjk3NDAwNi0xMDMuOTc0MDA3UzQwOC4xNzMyMjUlMjA0NTQuNTQyMzY0JTIwNDA4LjE3MzIyNSUyMDUxMS44NzIwMzIlMjA0NTQuODE3NTY0JTIwNjE1Ljg0NjAzOCUyMDUxMi4xNDcyMzIlMjA2MTUuODQ2MDM4eiUyMG0wJTIwMTI3Ljk2ODAwOGMtMTI3Ljk2ODAwOCUyMDAtMjMxLjk0MjAxNC0xMDMuOTEwMDIyLTIzMS45NDIwMTUtMjMxLjk0MjAxNCUyMDAtMTI3Ljk2ODAwOCUyMDEwMy45MTAwMjItMjMxLjk0MjAxNCUyMDIzMS45NDIwMTUtMjMxLjk0MjAxNSUyMDEyNy45NjgwMDglMjAwJTIwMjMxLjk0MjAxNCUyMDEwMy45MTAwMjIlMjAyMzEuOTQyMDE0JTIwMjMyLjEzMzk2N0EyMzIuMTMzOTY3JTIwMjMyLjEzMzk2NyUyMDAlMjAwJTIwMSUyMDUxMi4xNDcyMzIlMjA3NDMuODE0MDQ2eiUyMiUyMGZpbGwlM0QlMjIlMjMwMDgyRkYlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxu6aaW6aG15a+75om+6LWE5rqQ5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMzUxLjE4MDglMjA1OS4yODk2QTQzNS4yJTIwNDM1LjIlMjAwJTIwMCUyMDElMjA4MDUuMzc2JTIwNzE1LjI2NCUyMDQ2MC44JTIwNDYwLjglMjAwJTIwMCUyMDElMjAzNTEuMTgwOCUyMDU5LjM0MDh6JTIyJTIwZmlsbCUzRCUyMiUyMzIwQzk5NyUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTc1NC4zODA4JTIwNzIyLjIyNzJhMzU4LjQlMjAzNTguNCUyMDAlMjAxJTIwMC0yNjcuODI3MiUyMDEyMC4yMTc2JTIwNTEuMiUyMDUxLjIlMjAwJTIwMCUyMDElMjAwJTIwMTAyLjQlMjA0NjAuOCUyMDQ2MC44JTIwMCUyMDElMjAxJTIwMzY1LjE1ODQtMTc5LjcxMmwxMTguODg2NCUyMDEyMS4yNDE2YzIzLjc1NjglMjAyNC4yMTc2JTIwMjMuNTUyJTIwNjMuMDI3Mi0wLjQwOTYlMjA4Ny4wNGwtMC40MDk2JTIwMC40MDk2YTYxLjE4NCUyMDYxLjE4NCUyMDAlMjAwJTIwMS04Ni45ODg4LTAuNDYwOGwtMTQ4LjAxOTItMTUwLjkzNzZhNjEuNzk4NCUyMDYxLjc5ODQlMjAwJTIwMCUyMDElMjAwLjQwOTYtODYuOTg4OGwwLjQwOTYtMC40MDk2YzUuNjMyLTUuNTgwOCUyMDExLjk4MDgtOS44MzA0JTIwMTguNzkwNC0xMi44eiUyMG0tNDY3Ljk2OC0zNjQuNTk1Mmg0MDkuNmE1MS4yJTIwNTEuMiUyMDAlMjAxJTIwMSUyMDAlMjAxMDIuNGgtNDA5LjZhNTEuMiUyMDUxLjIlMjAwJTIwMSUyMDElMjAwLTEwMi40eiUyMG0wJTIwMjA0LjhoMjU2YTUxLjIlMjA1MS4yJTIwMCUyMDAlMjAxJTIwMCUyMDEwMi40aC0yNTZhNTEuMiUyMDUxLjIlMjAwJTIwMSUyMDElMjAwLTEwMi40eiUyMiUyMGZpbGwlM0QlMjIlMjMyQzZERDIlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxuXFxu6aaW6aG15oiR55qE5YiG5Lqr5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNOTAyLjQlMjAyOTEuMkw2OTIuMiUyMDEyOC43Yy00NC0zNC0xMDcuOS0yLjYtMTA3LjklMjA1M3Y0NWMtMTg4LjklMjAxLjMtMzQxLjklMjAxNTkuOC0zNDEuOSUyMDM1NiUyMDAlMjA0Mi43JTIwNy4xJTIwODAuNyUyMDE5JTIwMTE4LjdDMzA4LjglMjA1NjMuNyUyMDQzNC43JTIwNDY0JTIwNTg0LjIlMjA0NjR2NDIuN2MwJTIwNTUuNiUyMDYzLjklMjA4NyUyMDEwNy45JTIwNTNsMjEwLjMtMTYyLjVjMzQuNy0yNi44JTIwMzQuNy03OS4yJTIwMC0xMDZ6JTIyJTIwZmlsbCUzRCUyMiUyMzI4NjdDRSUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTc2OC4zJTIwOTAxLjlIMjU3LjdjLTkzLjElMjAwLTE2OC41LTc1LjUtMTY4LjUtMTY4LjVWMzUzLjZjMC05My4xJTIwNzUuNS0xNjguNSUyMDE2OC41LTE2OC41aDQ5LjZjMjYuNiUyMDAlMjA0OC4xJTIwMjEuNSUyMDQ4LjElMjA0OC4xcy0yMS41JTIwNDguMS00OC4xJTIwNDguMWgtNDkuNmMtNDAlMjAwLTcyLjQlMjAzMi40LTcyLjQlMjA3Mi40djM3OS44YzAlMjA0MCUyMDMyLjQlMjA3Mi40JTIwNzIuNCUyMDcyLjRoNTEwLjVjNDAlMjAwJTIwNzIuNC0zMi40JTIwNzIuNC03Mi40di0xMzJjMC0yNi42JTIwMjEuNS00OC4xJTIwNDguMS00OC4xczQ4LjElMjAyMS41JTIwNDguMSUyMDQ4LjF2MTMyYzAlMjA5My03NS41JTIwMTY4LjQtMTY4LjUlMjAxNjguNHolMjIlMjBmaWxsJTNEJTIyJTIzQkREMkVGJTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIlxcblxcblxcbummlumhteaIkeeahOWkh+S7veWbvuaghz1cXFwiaHR0cHM6Ly9pY29uZm9udC50eXJhbnRnLmNvbS9hcGkvaWxsdXN0cmF0ZS5zdmc/c3ZnX3N0cmluZz0lM0NzdmclMjBjbGFzcyUzRCUyMmljb24lMjIlMjBzdHlsZSUzRCUyMndpZHRoJTNBJTIwMWVtJTNCaGVpZ2h0JTNBJTIwMWVtJTNCdmVydGljYWwtYWxpZ24lM0ElMjBtaWRkbGUlM0JmaWxsJTNBJTIwY3VycmVudENvbG9yJTNCb3ZlcmZsb3clM0ElMjBoaWRkZW4lM0IlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMDI0JTIwMTAyNCUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTg3My40NzIlMjA4NjcuMzI4SDE1MC41MjhsLTQwLjk2LTQwLjk2VjE5Ny42MzJsNDAuOTYtNDAuOTZoMTc4LjE3NmwzOC45MTIlMjAyOC42NzIlMjAzNC44MTYlMjAxMDguNTQ0aDQ3MS4wNGw0MC45NiUyMDQwLjk2djQ5Mi41NDRsLTQwLjk2JTIwMzkuOTM2eiUyMG0tNjgxLjk4NC04MS45Mmg2NDIuMDQ4VjM3NC43ODRoLTQ2MC44bC0zOC45MTItMjguNjcyLTM0LjgxNi0xMDguNTQ0SDE5MS40ODh2NTQ3Ljg0eiUyMiUyMGZpbGwlM0QlMjIlMjM0MzdERkYlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk04MzcuNjMyJTIwMjcyLjM4NGgtNjEuNDR2LTQwLjk2aC0zNTguNHYtNjEuNDRoMzg5LjEybDMwLjcyJTIwMzAuNzJ6JTIyJTIwZmlsbCUzRCUyMiUyMzYzRjdERSUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG5cXG5cXG5cXG7pgInlrprlm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk02NzEuMjMyJTIwNTI5LjQwOHYyMTUuMDRIMTQ1LjQwOFYyMDMuMjY0aDUyNS44MjR2OTQuNzJsOTQuMjA4LTc4LjMzNnYtMTExLjEwNEg1MS4yVjgzOC42NTZoNzE0LjI0VjQ1MC41NnolMjIlMjBmaWxsJTNEJTIyJTIzMDQwMDAwJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNDAwLjM4NCUyMDY3Ny4zNzZMMjc4LjUyOCUyMDQyOC4wMzJjLTguMTkyLTE2LjM4NC0xLjAyNC0zNS44NCUyMDE0Ljg0OC00NC4wMzJsNDcuNjE2LTIzLjU1MmMxNi4zODQtOC4xOTIlMjAzNS44NC0xLjAyNCUyMDQ0LjAzMiUyMDE0Ljg0OGw3Mi4xOTIlMjAxNDcuNDU2TDkwNC43MDQlMjAxMjhjMTMuMzEyLTEyLjI4OCUyMDM0LjMwNC0xMC43NTIlMjA0Ni41OTIlMjAyLjU2bDM1LjMyOCUyMDM5LjkzNmMxMi4yODglMjAxMy44MjQlMjAxMC43NTIlMjAzNC4zMDQtMi41NiUyMDQ2LjU5MmwtNTMyLjQ4JTIwNDcwLjUyOGMtMTUuODcyJTIwMTQuMzM2LTQxLjQ3MiUyMDkuMjE2LTUxLjItMTAuMjR6JTIyJTIwZmlsbCUzRCUyMiUyMzA0MDAwMCUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG7pgInlrprlm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk01MTIlMjAwLjM0NjkwMWMtMjgyLjU3ODg0NCUyMDAtNTExLjY1MzA5OSUyMDIyOS4wNzYzMDItNTExLjY1MzA5OSUyMDUxMS42NTMwOTklMjAwJTIwMjgyLjU3ODg0NCUyMDIyOS4wNzQyNTYlMjA1MTEuNjUzMDk5JTIwNTExLjY1MzA5OSUyMDUxMS42NTMwOTklMjAyODIuNTc2Nzk3JTIwMCUyMDUxMS42NTMwOTktMjI5LjA3NDI1NiUyMDUxMS42NTMwOTktNTExLjY1MzA5OUMxMDIzLjY1MzA5OSUyMDIyOS40MjIxOCUyMDc5NC41NzY3OTclMjAwLjM0NjkwMSUyMDUxMiUyMDAuMzQ2OTAxek03OTIuNTYwODg0JTIwMzY3LjI5OTM4NyUyMDQ0OC44NTc5MTQlMjA3MTEuMDAyMzU2Yy03LjUwNjk3NCUyMDcuNTA2OTc0LTE3LjQxMTU1NSUyMDExLjIwNTIwMy0yNy4zMDY5MjYlMjAxMS4xNTkxNTQtOS44OTQzNDglMjAwLjA0NTAyNS0xOS44MDA5NzUtMy42NTIxOC0yNy4zMDc5NDktMTEuMTU5MTU0TDIzMS40MzcwNyUyMDU0OC4xOTUzNjRjLTE0LjkyMzg5OC0xNC45MjM4OTgtMTQuOTIzODk4LTM5LjM0NTElMjAwLTU0LjI2Nzk3NCUyMDE0LjkyMzg5OC0xNC45MjM4OTglMjAzOS4zNDUxLTE0LjkyMzg5OCUyMDU0LjI2ODk5OCUyMDBsMTM1Ljg0Mzg5OCUyMDEzNS44NDM4OTglMjAzMTYuNzQxOTIxLTMxNi43NDE5MjFjMTQuOTIzODk4LTE0LjkyMzg5OCUyMDM5LjM0NTEtMTQuOTIzODk4JTIwNTQuMjY4OTk4JTIwMFM4MDcuNDg1ODA1JTIwMzUyLjM3NTQ4OSUyMDc5Mi41NjA4ODQlMjAzNjcuMjk5Mzg3eiUyMiUyMGZpbGwlM0QlMjIlMjNkODFlMDYlMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxuXFxuXFxuXFxuXFxuXFxu5rWP6KeI6YeP5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMzE4LjUzNzE0MyUyMDEwMjAuNTYyMjg2YzQ2LjM3MjU3MSUyMDE2LjE2NDU3MSUyMDYxLjg3ODg1Ny0yOS42MjI4NTclMjA0MS4yNTI1NzEtNDMuMTU0Mjg2LTYxLjk1Mi00NS43ODc0MjktOTIuODkxNDI5LTEyMy45MDQtNjkuNjMyLTE5Ni43NTQyODYlMjAyMy4xODYyODYtNzAuMDcwODU3JTIwNzQuNzUyLTEwNS4xMDYyODYlMjA4NS4wNjUxNDMtMjAyLjA5MzcxNCUyMDAtMTAuODI1MTQzJTIwMTguMDY2Mjg2LTE2LjE2NDU3MSUyMDI1LjgxOTQyOS04LjA0NTcxNCUyMDE4LjA2NjI4NiUyMDE4Ljc5NzcxNCUyMDM2LjEzMjU3MSUyMDQ4LjQyMDU3MSUyMDQxLjI1MjU3MSUyMDg2LjE2MjI4NSUyMDIuNjMzMTQzJTIwMTMuNTMxNDI5JTIwMjAuNjI2Mjg2JTIwMTYuMTY0NTcxJTIwMjUuODE5NDI5JTIwMi43MDYyODYlMjAzMy40OTk0MjktNjcuMzY0NTcxJTIwMjMuMTg2Mjg2LTE0Mi44NDglMjA3Ljc1MzE0My0xOTQuMDQ4LTIuNTYtMTAuNzUyJTIwMTAuMjQtMjEuNTc3MTQzJTIwMjAuNjI2Mjg1LTEzLjQ1ODI4NiUyMDE4OC4yNjk3MTQlMjAxMTMuMTUyJTIwMzMyLjglMjAzMzQuMjYyODU3JTIwMTQxLjg5NzE0MyUyMDUyMi44OTgyODYtMjMuMjU5NDI5JTIwMTguODcwODU3JTIwMCUyMDUzLjkwNjI4NiUyMDMzLjQ5OTQyOSUyMDQ1Ljc4NzQyOWgyLjU2YzQ3Ny4yNTcxNDMtMjc0Ljk0NCUyMDIxNi43MjIyODYtNjcxLjE1ODg1NyUyMDk4LjAxMTQyOC04MDAuNTQ4NTcyLTcuNjgtMTAuNzUyLTI1Ljc0NjI4Ni0yLjYzMzE0My0yMy4xODYyODUlMjAxMC44MjUxNDMlMjA1LjEyJTIwNDAuNDQ4JTIwMi41NiUyMDgzLjUyOTE0My0xMi44NzMxNDMlMjAxMTUuODU4Mjg2LTUuMTIlMjAxMC44MjUxNDMtMjMuMjU5NDI5JTIwOC4xMTg4NTctMjUuODE5NDI5LTIuNjMzMTQzQzY0My41MTA4NTclMjAxMTQuODM0Mjg2JTIwNTA5LjQ0JTIwMjguNjcyJTIwNDYwLjQzNDI4NiUyMDEuNzU1NDI5Yy03LjgyNjI4Ni01LjQxMjU3MS0yMC42OTk0MjklMjAyLjYzMzE0My0yMC42OTk0MjklMjAxMy40NTgyODUlMjA3Ljc1MzE0MyUyMDE0NS41NTQyODYtNzkuOTQ1MTQzJTIwMjkzLjgxNDg1Ny0xNzUuMzk2NTcxJTIwNDIwLjQ5ODI4Ni03Ljc1MzE0MyUyMDEwLjc1Mi0yMy4yNTk0MjklMjA1LjMzOTQyOS0yNS44MTk0MjktOC4xMTg4NTdhMzM4LjEzOTQyOSUyMDMzOC4xMzk0MjklMjAwJTIwMCUyMDAtMTguMDY2Mjg2LTkxLjY0OGMtNS4xMi0xMy40NTgyODYtMjMuMTg2Mjg2LTEwLjc1Mi0yNS43NDYyODUlMjAwQzE3NC4wOCUyMDQzMy4wMDU3MTQlMjAxMDEuODE0ODU3JTIwNTE2LjYwOCUyMDgxLjE4ODU3MSUyMDYxOS4wMDhjLTMwLjkzOTQyOSUyMDE2MS42NDU3MTQlMjAyMy4xODYyODYlMjAyNzcuNTc3MTQzJTIwMjM3LjM0ODU3MiUyMDQwMS41NTQyODZ6JTIyJTIwZmlsbCUzRCUyMiUyM0ZGNDAxQSUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG7lm57lpI3ph4/lm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDEuMjM5MjU3ODEyNWVtJTNCaGVpZ2h0JTNBJTIwMWVtJTNCdmVydGljYWwtYWxpZ24lM0ElMjBtaWRkbGUlM0JmaWxsJTNBJTIwY3VycmVudENvbG9yJTNCb3ZlcmZsb3clM0ElMjBoaWRkZW4lM0IlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMjY5JTIwMTAyNCUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTExMjQuNzk1MTExJTIwMTAyMy43OTY0NjJIMjMxLjY3MDA4NkEyMzYuNzE0NzY4JTIwMjM2LjcxNDc2OCUyMDAlMjAwJTIwMSUyMDAuMDQzNzY5JTIwNzgyLjgwNzM5NFYyNDEuMTkyNjA2QTIzNi43MTQ3NjglMjAyMzYuNzE0NzY4JTIwMCUyMDAlMjAxJTIwMjMxLjY3MDA4NiUyMDBoODA2LjQxNzgxYTIzNi43MTQ3NjglMjAyMzYuNzE0NzY4JTIwMCUyMDAlMjAxJTIwMjMxLjUyNDU0OCUyMDI0MS4xOTI2MDZ2NDgzLjgwOTk3OGE1My41MzA1MTElMjA1My41MzA1MTElMjAwJTIwMSUyMDEtMTA3LjA2MTAyMiUyMDBWMjQxLjE5MjYwNmExMjkuMDQzMTMzJTIwMTI5LjA0MzEzMyUyMDAlMjAwJTIwMC0xMjQuNDYzNTI2LTEzMy44MjYyNzdIMjMxLjY3MDA4NkExMjkuMDQzMTMzJTIwMTI5LjA0MzEzMyUyMDAlMjAwJTIwMCUyMDEwNy4xMDQ3OTElMjAyNDEuMTkyNjA2djU0MS45MjAwOTVBMTI5LjA0MzEzMyUyMDEyOS4wNDMxMzMlMjAwJTIwMCUyMDAlMjAyMzEuNTY4MzE3JTIwOTE2LjkzODk3OGg4OTMuMTI1MDI1YTUzLjUzMDUxMSUyMDUzLjUzMDUxMSUyMDAlMjAwJTIwMSUyMDAlMjAxMDcuMDYxMDIyeiUyMiUyMGZpbGwlM0QlMjIlMjNGRjc1MDAlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk0zODEuOTgyOTQ2JTIwNTExLjg5ODIzMW0tNjQuNTIxNTY2JTIwMGE2NC41MjE1NjYlMjA2NC41MjE1NjYlMjAwJTIwMSUyMDAlMjAxMjkuMDQzMTMzJTIwMCUyMDY0LjUyMTU2NiUyMDY0LjUyMTU2NiUyMDAlMjAxJTIwMC0xMjkuMDQzMTMzJTIwMFolMjIlMjBmaWxsJTNEJTIyJTIzNTc0MUUzJTIyJTIwb3BhY2l0eSUzRCUyMi43JTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNjMxLjkyNzY4OSUyMDUxMS44OTgyMzFtLTY0LjUyMTU2NiUyMDBhNjQuNTIxNTY2JTIwNjQuNTIxNTY2JTIwMCUyMDElMjAwJTIwMTI5LjA0MzEzMiUyMDAlMjA2NC41MjE1NjYlMjA2NC41MjE1NjYlMjAwJTIwMSUyMDAtMTI5LjA0MzEzMiUyMDBaJTIyJTIwZmlsbCUzRCUyMiUyMzU3NDFFMyUyMiUyMG9wYWNpdHklM0QlMjIuNyUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTg4MS45NzQyMDElMjA1MTEuODk4MjMxbS02NC41MjE1NjclMjAwYTY0LjUyMTU2NiUyMDY0LjUyMTU2NiUyMDAlMjAxJTIwMCUyMDEyOS4wNDMxMzMlMjAwJTIwNjQuNTIxNTY2JTIwNjQuNTIxNTY2JTIwMCUyMDElMjAwLTEyOS4wNDMxMzMlMjAwWiUyMiUyMGZpbGwlM0QlMjIlMjM1NzQxRTMlMjIlMjBvcGFjaXR5JTNEJTIyLjclMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxu5pS26JeP6YeP5Zu+5qCHPVxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxLjE2MTEzMjgxMjVlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTE4OSUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk02MzMuMTEwMTIzJTIwOTg3LjcxMDg3N2wtNzYuMzA0MzAxLTc2LjMxNzYwOSUyMDQ2Ny43MTMxNjQtNDY3Ljc1MzA4NmM3Ni42OTAyMTQtNzYuNzAzNTIyJTIwNzYuNjkwMjE0LTIwMS40OTk3NzklMjAwLTI3OC4xODk5OTRzLTIwMS40NTk4NTctNzYuNjc2OTA3LTI3OC4xODk5OTMlMjAwbC0xMTMuMjE4ODclMjAxMTMuMTc4OTQ4TDU1Ni43OTI1MTUlMjAyMDIuMzExNTI3bDExMy4yMDU1NjItMTEzLjIwNTU2MmMxMTguNzY4MDMxLTExOC44MjEyNjElMjAzMTIuMDU3MTgtMTE4Ljc5NDY0NiUyMDQzMC44MjUyMTElMjAwczExOC43ODEzMzklMjAzMTIuMDU3MTglMjAwJTIwNDMwLjgyNTIxMXolMjIlMjBmaWxsJTNEJTIyJTIzRkY3NjQyJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNTkyLjg2ODcyJTIwMTAyNGwtMzYuMTU2MDQ5LTM2LjM4MjI3NC00NjcuNjIwMDEzLTQ2Ny42MzMzMjFjLTExOC43ODEzMzktMTE4Ljc2ODAzMS0xMTguNzgxMzM5LTMxMi4wNTcxOCUyMDAtNDMwLjgyNTIxMXMzMTIuMDcwNDg3LTExOC43OTQ2NDYlMjA0MzAuODI1MjExJTIwMGwyMTkuNDY0NjkxJTIwMjE5LjQ1MTM4NC03Ni4zMTc2MDklMjA3Ni4zMTc2MDktMjE5LjQ2NDY5MS0yMTkuNDExNDYyYy03Ni43MTY4MjktNzYuNjkwMjE0LTIwMS40ODY0NzItNzYuNjkwMjE0LTI3OC4xODk5OTQlMjAwcy03Ni42OTAyMTQlMjAyMDEuNDk5Nzc5JTIwMCUyMDI3OC4xODk5OTRsNTA0LjAxNTU5NSUyMDUwNC4yMTUyMDR6JTIyJTIwZmlsbCUzRCUyMiUyM0ZGQUEwNiUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG7lm77niYfph4/lm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGgxMDI0djEwMjRIMFYweiUyMiUyMGZpbGwlM0QlMjIlMjMyMDI0MjUlMjIlMjBvcGFjaXR5JTNEJTIyLjAxJTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNOTU1LjczMzMzMyUyMDIzOC45MzMzMzNhMTcwLjY2NjY2NyUyMDE3MC42NjY2NjclMjAwJTIwMSUyMDAtMzQxLjMzMzMzMyUyMDAlMjAxNzAuNjY2NjY3JTIwMTcwLjY2NjY2NyUyMDAlMjAwJTIwMCUyMDM0MS4zMzMzMzMlMjAweiUyMG0tNDc3LjM1NDY2NiUyMDEwMy43MzEyYy0yNi4yMTQ0LTQ1Ljg3NTItOTIuMzMwNjY3LTQ1Ljg3NTItMTE4LjU0NTA2NyUyMDBMNjcuODU3MDY3JTIwODUzLjYwNjRDNDEuODQ3NDY3JTIwODk5LjA3MiUyMDc0Ljc1MiUyMDk1NS43MzMzMzMlMjAxMjcuMTQ2NjY3JTIwOTU1LjczMzMzM2g1ODMuOTE4OTMzYzUyLjQyODglMjAwJTIwODUuMjY1MDY3LTU2LjYyNzIlMjA1OS4yNTU0NjctMTAyLjEyNjkzM2wtMjkxLjk0MjQtNTEwLjk3NnolMjIlMjBmaWxsJTNEJTIyJTIzRkY3NzQ0JTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNjkxLjY3Nzg2NyUyMDU4MS41OTc4NjdjMjYuMTgwMjY3LTQ1Ljg3NTIlMjA5Mi4zMzA2NjctNDUuODc1MiUyMDExOC41NDUwNjYlMjAwbDE1NS40MDkwNjclMjAyNzIuMDA4NTMzYzI2LjAwOTYlMjA0NS40OTk3MzMtNi44MjY2NjclMjAxMDIuMTI2OTMzLTU5LjI1NTQ2NyUyMDEwMi4xMjY5MzNoLTMxMC44ODY0Yy01Mi4zOTQ2NjclMjAwLTg1LjI2NTA2Ny01Ni42MjcyLTU5LjI1NTQ2Ni0xMDIuMTI2OTMzbDE1NS40MDkwNjYtMjcyLjAwODUzM3olMjIlMjBmaWxsJTNEJTIyJTIzRkZBQTQ0JTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIlxcbumTvuaOpemHj+Wbvuaghz1cXFwiaHR0cHM6Ly9pY29uZm9udC50eXJhbnRnLmNvbS9hcGkvaWxsdXN0cmF0ZS5zdmc/c3ZnX3N0cmluZz0lM0NzdmclMjBjbGFzcyUzRCUyMmljb24lMjIlMjBzdHlsZSUzRCUyMndpZHRoJTNBJTIwMWVtJTNCaGVpZ2h0JTNBJTIwMWVtJTNCdmVydGljYWwtYWxpZ24lM0ElMjBtaWRkbGUlM0JmaWxsJTNBJTIwY3VycmVudENvbG9yJTNCb3ZlcmZsb3clM0ElMjBoaWRkZW4lM0IlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMDI0JTIwMTAyNCUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTU3My40NCUyMDY4Ni4wOEw0MzIuMTI4JTIwNTgyLjY1Nmw0OC4xMjgtNjYuNTYlMjAxMDguNTQ0JTIwNzguODQ4JTIwMjM2LjU0NC0zMjQuNjA4LTE0NC4zODQtMTA1LjQ3Mi05NC4yMDglMjAxMzAuMDQ4JTIwMzIuNzY4JTIwMjMuNTUyLTQ4LjEyOCUyMDY2LjU2LTY2LjU2LTQ4LjEyOC04LjE5Mi01Ny4zNDRMNjM4Ljk3NiUyMDgzLjk2OGw1Ny4zNDQtOS4yMTYlMjAyMDkuOTIlMjAxNTIuNTc2JTIwOS4yMTYlMjA1Ny4zNDQtMjg0LjY3MiUyMDM5Mi4xOTJ6JTIyJTIwZmlsbCUzRCUyMiUyMzQzN0RGRiUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTMyNy42OCUyMDk0OS4yNDhMMTE3Ljc2JTIwNzk2LjY3MmwtOS4yMTYtNTcuMzQ0JTIwMjg0LjY3Mi0zOTIuMTkyTDQ1MC41NiUyMDMzNy45MmwxNDEuMzEyJTIwMTAzLjQyNC00OC4xMjglMjA2Ni41Ni0xMDguNTQ0LTc4Ljg0OC0yMzYuNTQ0JTIwMzI0LjYwOCUyMDE0NC4zODQlMjAxMDUuNDcyJTIwOTQuMjA4LTEzMC4wNDgtMzIuNzY4LTIzLjU1MiUyMDQ4LjEyOC02Ni41NiUyMDY2LjU2JTIwNDguMTI4JTIwOC4xOTIlMjA1Ny4zNDQtMTQyLjMzNiUyMDE5NS41ODR6JTIyJTIwZmlsbCUzRCUyMiUyMzYzRjdERSUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG5cXG7lrpjmlrnotYTmupDpppbpobXlj5HluJblm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk04NzkuNDclMjA1MDguMzUzYy0yMy4xMjMlMjAwLTQxLjg5MyUyMDE4LjkxOS00MS44OTMlMjA0Mi4yNzh2MzA1LjU0M2gtNjgxLjUwOHYtNjg4LjM0OWgzMjEuNjMxYzIzLjE0NSUyMDAlMjA0MS45MTUtMTguOTM5JTIwNDEuOTE1LTQyLjMwMiUyMDAtMjMuMzgtMTguNzctNDIuMzIzLTQxLjkxNS00Mi4zMjNoLTM2My40ODNjLTIzLjEyMyUyMDAtNDEuODkzJTIwMTguOTM5LTQxLjg5MyUyMDQyLjMyM3Y3NzIuOTc0YzAlMjAyMy4zOCUyMDE4Ljc3JTIwNDIuMzIzJTIwNDEuODkzJTIwNDIuMzIzaDc2NS4yNWMyMy4xMjMlMjAwJTIwNDEuODcyLTE4LjkzOSUyMDQxLjg3Mi00Mi4zMjN2LTM0Ny44NjdjMC0yMy4zNTktMTguNzUtNDIuMjc4LTQxLjg3Mi00Mi4yNzhNOTQxLjUwMyUyMDEyNC40OTZjLTE1LjEyNC0xNy42OTYtNDEuNTcyLTE5LjY3My01OS4wOTctNC4zOThsLTUwNy4wMDYlMjA0NDEuNzk4Yy0xNy41MDMlMjAxNS4yNzQtMTkuNDU3JTIwNDEuOTM2LTQuMzUzJTIwNTkuNjElMjA4LjI3OSUyMDkuNzE2JTIwMTkuOTY5JTIwMTQuNzE0JTIwMzEuNzQ3JTIwMTQuNzE0JTIwOS42NzUlMjAwJTIwMTkuNDM2LTMuMzklMjAyNy4zNDgtMTAuMjk3bDUwNy4wMDYtNDQxLjc3NWMxNy41MDMtMTUuMjc0JTIwMTkuNDc2LTQxLjk4JTIwNC4zNTMtNTkuNjUzeiUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG7lrpjmlrnotYTmupDpppbpobXmlLbol4/lm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk03NzQuOCUyMDEwMi4ybC0xOC42JTIwMC44Yy0yNS42JTIwMS4yLTQzLjMlMjAwLjYtNjIlMjAwLTE5LjUtMC42LTM5LjctMS4zLTY4LjYlMjAwbC0xNC41JTIwMC43LTk4LjglMjA4NC44TDQwOS45JTIwMTA0bC0xNC4xLTAuNmMtMjAuMi0wLjgtNDMuNy0wLjQtNjYuNCUyMDAtMjEuNiUyMDAuNC00My45JTIwMC43LTYxLjYlMjAwbC0xOC42LTAuOEw5Ny44JTIwMjU2LjR2MzA0LjRsMzA0LjUlMjAyNjguNiUyMDU5LjUtNTkuNS0yODAtMjQ3VjI5MC44bDEwMS40LTEwM2MxNS4zJTIwMC4xJTIwMzEuNi0wLjElMjA0Ny41LTAuNCUyMDE2LjMtMC4zJTIwMzIuOS0wLjYlMjA0Ny44LTAuNGwxMzUlMjAxMTEuMSUyMDEzMC4yLTExMS43YzE4LjMtMC40JTIwMzIuNyUyMDAlMjA0Ny44JTIwMC41JTIwMTUlMjAwLjUlMjAzMC40JTIwMSUyMDQ5LjglMjAwLjZMODQ0LjIlMjAyOTF2MjMyLjdMNTYzLjclMjA3ODYuOGwtOTglMjA5OCUyMDU0LjUlMjA1OCUyMDQwOC0zODIuOFYyNTYuM0w3NzQuOCUyMDEwMi4yeiUyMiUyMCUyRiUzRSUzQyUyRnN2ZyUzRVxcXCJcXG7lrpjmlrnotYTmupDpppbpobXmkJzntKLlm77moIc9XFxcImh0dHBzOi8vaWNvbmZvbnQudHlyYW50Zy5jb20vYXBpL2lsbHVzdHJhdGUuc3ZnP3N2Z19zdHJpbmc9JTNDc3ZnJTIwY2xhc3MlM0QlMjJpY29uJTIyJTIwc3R5bGUlM0QlMjJ3aWR0aCUzQSUyMDFlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTAyNCUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk01Mi4wMTc3MjQlMjAxNTAuMjQ3OTU2JTIwOTY5LjkzNDY0JTIwMTUwLjI0Nzk1NmMxNi44MjQxNzclMjAwJTIwMzAuNTg5NjkyLTEzLjc2NTUxNSUyMDMwLjU4OTY5Mi0zMC41ODk2OTJsMCUyMDBjMC0xNi44MjQxNzctMTMuNzY1NTE1LTMwLjU4OTY5Mi0zMC41ODk2OTItMzAuNTg5NjkyTDUyLjAxNzcyNCUyMDg5LjA2ODU3MmMtMTYuODI0MTc3JTIwMC0zMC41ODk2OTIlMjAxMy43NjU1MTUtMzAuNTg5NjkyJTIwMzAuNTg5NjkybDAlMjAwQzIxLjQyODAzMiUyMDEzNi40ODI0NDElMjAzNS4xOTM1NDclMjAxNTAuMjQ3OTU2JTIwNTIuMDE3NzI0JTIwMTUwLjI0Nzk1NnolMjIlMjBmaWxsJTNEJTIyJTIzMjYyNTM1JTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNTIuMDE3NzI0JTIwMzY0LjQyMjg3M2wxODMuNTgzMTc5JTIwMGMxNi44MjQxNzclMjAwJTIwMzAuNTg5NjkyLTEzLjc2NTUxNSUyMDMwLjU4OTY5Mi0zMC41ODk2OTJsMCUyMDBjMC0xNi44MjQxNzctMTMuNzY1NTE1LTMwLjU4OTY5Mi0zMC41ODk2OTItMzAuNTg5NjkyTDUyLjAxNzcyNCUyMDMwMy4yNDM0ODljLTE2LjgyNDE3NyUyMDAtMzAuNTg5NjkyJTIwMTMuNzY1NTE1LTMwLjU4OTY5MiUyMDMwLjU4OTY5MmwwJTIwMEMyMS40MjgwMzIlMjAzNTAuNjU3MzU4JTIwMzUuMTkzNTQ3JTIwMzY0LjQyMjg3MyUyMDUyLjAxNzcyNCUyMDM2NC40MjI4NzN6JTIyJTIwZmlsbCUzRCUyMiUyMzI2MjUzNSUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTUyLjAxNzcyNCUyMDU3OC41OTE2NTFsMTIyLjQwMjc3MSUyMDBjMTYuODI0MTc3JTIwMCUyMDMwLjU4OTY5Mi0xMy43NjU1MTUlMjAzMC41ODk2OTItMzAuNTg5NjkybDAlMjAwYzAtMTYuODI0MTc3LTEzLjc2NTUxNS0zMC41ODk2OTItMzAuNTg5NjkyLTMwLjU4OTY5Mkw1Mi4wMTc3MjQlMjA1MTcuNDEyMjY2Yy0xNi44MjQxNzclMjAwLTMwLjU4OTY5MiUyMDEzLjc2NTUxNS0zMC41ODk2OTIlMjAzMC41ODk2OTJsMCUyMDBDMjEuNDI4MDMyJTIwNTY0LjgyNzE1OSUyMDM1LjE5MzU0NyUyMDU3OC41OTE2NTElMjA1Mi4wMTc3MjQlMjA1NzguNTkxNjUxeiUyMiUyMGZpbGwlM0QlMjIlMjMyNjI1MzUlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk01Mi4wMTc3MjQlMjA3NjIuMTc4OTIzbDE4My41ODMxNzklMjAwYzE2LjgyNDE3NyUyMDAlMjAzMC41ODk2OTItMTMuNzY1NTE1JTIwMzAuNTg5NjkyLTMwLjU4OTY5MmwwJTIwMGMwLTE2LjgyNDE3Ny0xMy43NjU1MTUtMzAuNTg5NjkyLTMwLjU4OTY5Mi0zMC41ODk2OTJMNTIuMDE3NzI0JTIwNzAwLjk5OTUzOGMtMTYuODI0MTc3JTIwMC0zMC41ODk2OTIlMjAxMy43NjU1MTUtMzAuNTg5NjkyJTIwMzAuNTg5NjkybDAlMjAwQzIxLjQyODAzMiUyMDc0OC40MTQ0MzElMjAzNS4xOTM1NDclMjA3NjIuMTc4OTIzJTIwNTIuMDE3NzI0JTIwNzYyLjE3ODkyM3olMjIlMjBmaWxsJTNEJTIyJTIzMjYyNTM1JTIyJTIwJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNDQ5Ljc3NDc5NyUyMDg4NC41ODI3MTclMjA1Mi4wMTc3MjQlMjA4ODQuNTgyNzE3Yy0xNi44MjQxNzclMjAwLTMwLjU4OTY5MiUyMDEzLjc2NTUxNS0zMC41ODk2OTIlMjAzMC41ODk2OTJsMCUyMDBjMCUyMDE2LjgyNDE3NyUyMDEzLjc2NTUxNSUyMDMwLjU4OTY5MiUyMDMwLjU4OTY5MiUyMDMwLjU4OTY5MmwzOTcuNzU3MDczJTIwMGMxNi44MjQxNzclMjAwJTIwMzAuNTg5NjkyLTEzLjc2NTUxNSUyMDMwLjU4OTY5Mi0zMC41ODk2OTJsMCUyMDBDNDgwLjM2NTUxMiUyMDg5OC4zNDgyMzIlMjA0NjYuNTk5OTk3JTIwODg0LjU4MjcxNyUyMDQ0OS43NzQ3OTclMjA4ODQuNTgyNzE3eiUyMiUyMGZpbGwlM0QlMjIlMjMyNjI1MzUlMjIlMjAlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMDAwLjM0MzIwNyUyMDg4NC43MjA4NjNsMC4xODExMjUtMC4xODExMjVMODI5LjU5MzMxMiUyMDcwNS4xMjQ0ODZjNDUuOTMxMDk5LTQ5LjUwMTQxNCUyMDc0LjIwNTA0OS0xMTQuOTg4OTE4JTIwNzQuMjA1MDQ5LTE4Ny4xNTI0NzElMjAwLTE1NC4xMDc4NjctMTI4LjA1NzU2MS0yNzkuMDU4NjctMjg2LjA2MDEzMS0yNzkuMDU4NjctMTU3LjkwNTM1NiUyMDAtMjg1Ljk2MjkxNyUyMDEyNC45OTk5MjItMjg1Ljk2MjkxNyUyMDI3OS4wNTg2NyUyMDAlMjAxNTQuMjAwOTg4JTIwMTI4LjA4MTA5NyUyMDI3Ni40NDEwNTMlMjAyODUuOTYyOTE3JTIwMjc5LjE1MjgxNCUyMDYxLjc0MjIwMyUyMDEuMDYwMTQ1JTIwMTAxLjgyMjAzNy05LjUxMzY3OCUyMDEzOC4wMjU1ODctMzQuOTkyOTc5bDE4My41ODIxNTUlMjAxODMuNTgyMTU1JTIwMC4wNTMyMTItMC4wNTMyMTJjNy44MzQ0MzIlMjA4LjA3Mzg4NiUyMDE4Ljc5NDA0MiUyMDEzLjA5ODMxOSUyMDMwLjkzMjUlMjAxMy4wOTgzMTklMjAyMy44MDgyNDIlMjAwJTIwNDMuMTA3Nzk3LTE5LjI5OTU1NSUyMDQzLjEwNzc5Ny00My4xMDc3OTdDMTAxMy40Mzk0OCUyMDkwMy41MTI4NTglMjAxMDA4LjQxNjA3JTIwODkyLjU1NDI3MiUyMDEwMDAuMzQzMjA3JTIwODg0LjcyMDg2M3pNNjE4LjA2NDY2NCUyMDczMS41ODcxODRjLTEyNi43MTYwMDclMjAwLTIyOS40NjYxODItOTUuODk1MDQ3LTIyOS40NjYxODItMjE0LjE3Mzg5NHMxMDIuNzUwMTc1LTIxNC4xNjk4MDElMjAyMjkuNDY2MTgyLTIxNC4xNjk4MDFjMTI2LjcxNDk4MyUyMDAlMjAyMjkuNDcwMjc1JTIwOTUuODg5OTMxJTIwMjI5LjQ3MDI3NSUyMDIxNC4xNjk4MDFTNzQ0Ljc3ODYyNCUyMDczMS41ODcxODQlMjA2MTguMDY0NjY0JTIwNzMxLjU4NzE4NHolMjIlMjBmaWxsJTNEJTIyJTIzMjYyNTM1JTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIlxcbuWumOaWuei1hOa6kOmmlumhteadv+Wdl+Wbvuaghz1cXFwiaHR0cHM6Ly9pY29uZm9udC50eXJhbnRnLmNvbS9hcGkvaWxsdXN0cmF0ZS5zdmc/c3ZnX3N0cmluZz0lM0NzdmclMjBjbGFzcyUzRCUyMmljb24lMjIlMjBzdHlsZSUzRCUyMndpZHRoJTNBJTIwMWVtJTNCaGVpZ2h0JTNBJTIwMWVtJTNCdmVydGljYWwtYWxpZ24lM0ElMjBtaWRkbGUlM0JmaWxsJTNBJTIwY3VycmVudENvbG9yJTNCb3ZlcmZsb3clM0ElMjBoaWRkZW4lM0IlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMDI0JTIwMTAyNCUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTM4MS40NjklMjA3MC42MmMtMC4xMzclMjAwLTAuMTE3JTIwMzEwLjg0OS0wLjExNyUyMDMxMC44NDklMjAwLTAuMTM3LTMxMC44NDktMC4xMTctMzEwLjg0OS0wLjExNyUyMDAuMTM3JTIwMCUyMDAuMTE4LTMxMC44NDklMjAwLjExOC0zMTAuODQ5JTIwMCUyMDAuMTM3JTIwMzEwLjg0OCUyMDAuMTE4JTIwMzEwLjg0OCUyMDAuMTE4ek0wJTIwMzgxLjQ3YzAlMjAzOC44MjElMjAzMS41OTMlMjA3MC41MDMlMjA3MC41MDMlMjA3MC41MDNIMzgxLjQ3YzM4LjgyMSUyMDAlMjA3MC41MDMtMzEuNTkyJTIwNzAuNTAzLTcwLjUwM1Y3MC41MDNDNDUxLjk3MiUyMDMxLjY4MyUyMDQyMC4zOCUyMDAlMjAzODEuNDclMjAwSDcwLjUwM0MzMS42ODMlMjAwJTIwMCUyMDMxLjU5MyUyMDAlMjA3MC41MDNWMzgxLjQ3ek05NTMuNDk3JTIwNzAuNjIxYy0wLjEzNyUyMDAtMC4xMTglMjAzMTAuODQ4LTAuMTE4JTIwMzEwLjg0OCUyMDAtMC4xMzctMzEwLjg0OC0wLjExNy0zMTAuODQ4LTAuMTE3JTIwMC4xMzclMjAwJTIwMC4xMTctMzEwLjg0OSUyMDAuMTE3LTMxMC44NDklMjAwJTIwMC4xMzclMjAzMTAuODQ5JTIwMC4xMTglMjAzMTAuODQ5JTIwMC4xMTh6JTIwbS0zODEuNDclMjAzMTAuODQ4YzAlMjAzOC44MjElMjAzMS41OTMlMjA3MC41MDMlMjA3MC41MDQlMjA3MC41MDNoMzEwLjk2NmMzOC44MiUyMDAlMjA3MC41MDMtMzEuNTkyJTIwNzAuNTAzLTcwLjUwM1Y3MC41MDNDMTAyNCUyMDMxLjY4MyUyMDk5Mi40MDclMjAwJTIwOTUzLjQ5NyUyMDBINjQyLjUzYy0zOC44MjElMjAwLTcwLjUwMyUyMDMxLjU5My03MC41MDMlMjA3MC41MDNWMzgxLjQ3ek0zODEuNDclMjA2NDIuNjQ5Yy0wLjEzNyUyMDAtMC4xMTclMjAzMTAuODQ4LTAuMTE3JTIwMzEwLjg0OCUyMDAtMC4xMzctMzEwLjg0OS0wLjExOC0zMTAuODQ5LTAuMTE4JTIwMC4xMzclMjAwJTIwMC4xMTgtMzEwLjg0OCUyMDAuMTE4LTMxMC44NDglMjAwJTIwMC4xMzclMjAzMTAuODQ4JTIwMC4xMTclMjAzMTAuODQ4JTIwMC4xMTd6TTAlMjA5NTMuNDk2QzAlMjA5OTIuMzE3JTIwMzEuNTkzJTIwMTAyNCUyMDcwLjUwMyUyMDEwMjRIMzgxLjQ3YzM4LjgyMSUyMDAlMjA3MC41MDMtMzEuNTkzJTIwNzAuNTAzLTcwLjUwM1Y2NDIuNTNjMC0zOC44MjEtMzEuNTkyLTcwLjUwMy03MC41MDMtNzAuNTAzSDcwLjUwM0MzMS42ODMlMjA1NzIuMDI4JTIwMCUyMDYwMy42MiUyMDAlMjA2NDIuNTN2MzEwLjk2NnolMjBtOTUzLjQ5Ny0zMTAuODQ5Yy0wLjEzNyUyMDAtMC4xMTglMjAzMTAuODQ5LTAuMTE4JTIwMzEwLjg0OSUyMDAtMC4xMzctMzEwLjg0OC0wLjExOC0zMTAuODQ4LTAuMTE4JTIwMC4xMzclMjAwJTIwMC4xMTctMzEwLjg0OCUyMDAuMTE3LTMxMC44NDglMjAwJTIwMC4xMzclMjAzMTAuODQ5JTIwMC4xMTclMjAzMTAuODQ5JTIwMC4xMTd6JTIwbS0zODEuNDclMjAzMTAuODQ5YzAlMjAzOC44MiUyMDMxLjU5MyUyMDcwLjUwMyUyMDcwLjUwNCUyMDcwLjUwM2gzMTAuOTY2YzM4LjgyJTIwMCUyMDcwLjUwMy0zMS41OTMlMjA3MC41MDMtNzAuNTAzVjY0Mi41M2MwLTM4LjgyMS0zMS41OTMtNzAuNTAzLTcwLjUwMy03MC41MDNINjQyLjUzYy0zOC44MjElMjAwLTcwLjUwMyUyMDMxLjU5Mi03MC41MDMlMjA3MC41MDN2MzEwLjk2NnolMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiXFxuXFxuXFxuXFxuXFxuXFxuXFxuaWYoIWZpbGVFeGlzdCgnaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wbvuaghy/mtY/op4jph4/lm77moIcucG5nJykpe1xcblxcbnNhdmVJbWFnZSjmtY/op4jph4/lm77moIcsJ2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lm77moIcv5rWP6KeI6YeP5Zu+5qCHLnBuZycpXFxuXFxufVxcbmlmKCFmaWxlRXhpc3QoJ2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lm77moIcv5Zue5aSN6YeP5Zu+5qCHLnBuZycpKXtcXG5cXG5zYXZlSW1hZ2Uo5Zue5aSN6YeP5Zu+5qCHLCdoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5Zu+5qCHL+WbnuWkjemHj+Wbvuaghy5wbmcnKVxcblxcbn1cXG5pZighZmlsZUV4aXN0KCdoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5Zu+5qCHL+aUtuiXj+mHj+Wbvuaghy5wbmcnKSl7XFxuXFxuc2F2ZUltYWdlKOaUtuiXj+mHj+WbvuaghywnaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wbvuaghy/mlLbol4/ph4/lm77moIcucG5nJylcXG5cXG59XFxuaWYoIWZpbGVFeGlzdCgnaGlrZXI6Ly9maWxlcy9JUEZT6LWE5rqQL+Wbvuaghy/lm77niYfph4/lm77moIcucG5nJykpe1xcblxcbnNhdmVJbWFnZSjlm77niYfph4/lm77moIcsJ2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lm77moIcv5Zu+54mH6YeP5Zu+5qCHLnBuZycpXFxuXFxufVxcbmlmKCFmaWxlRXhpc3QoJ2hpa2VyOi8vZmlsZXMvSVBGU+i1hOa6kC/lm77moIcv6ZO+5o6l6YeP5Zu+5qCHLnBuZycpKXtcXG5cXG5zYXZlSW1hZ2Uo6ZO+5o6l6YeP5Zu+5qCHLCdoaWtlcjovL2ZpbGVzL0lQRlPotYTmupAv5Zu+5qCHL+mTvuaOpemHj+Wbvuaghy5wbmcnKVxcblxcbn1cXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuW+queOr+iOt+WPluaWh+S7tuWkuUNJRFwiLFwicGF0aFwiOlwi5b6q546v6I635Y+W5paH5Lu25aS5Q0lEXCIsXCJydWxlXCI6XCIvL2V2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5b6q546v5aSH5Lu9JykpLnJ1bGUpXFxuXFxuZm9yICh2YXIgaSBpbiBzdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpKSB7XFxuXFxuXFxuXFxuXFxuXFxu5paH5Lu25aS55ZCNPXN0b3JhZ2UwLmdldE15VmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIilbaV0uZmlsZU5hbWVcXG7mlofku7blpLlpZD1zdG9yYWdlMC5nZXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIpW2ldLmlkXFxuc2hvd0xvYWRpbmcoJ+ato+WcqOWkh+S7vTonK+aWh+S7tui3r+W+hClcXG7mlofku7bot6/lvoQ95paH5Lu26Lev5b6EK+i3r+W+hOmXtOmalCvmlofku7blpLnlkI1cXG5cXG5cXG7or7fmsYLlj5jph49hID0gXFxcIi9jbG91ZGZpbGUvdjEvZm9sZGVyc1xcXCJcXG4gICAgICAgICAgICAgICAg6K+35rGC5Y+Y6YePYiA9IFxcXCIvY2xvdWRmaWxlL3YxL2ZpbGVzXFxcIlxcbiAgICAgICAgICAgICAgICDouqvkvZMgPSBge1xcXCJmaWxlTmFtZVxcXCI6XFxcIlxcXCIsXFxcInNvcnRGbGFnXFxcIjpcXFwibmFtZVxcXCIsXFxcInNvcnRUeXBlXFxcIjpcXFwiYXNjXFxcIixcXFwicGFyZW50SWRcXFwiOlxcXCJgK+aWh+S7tuWkuWlkK2BcXFwifWBcXG5cXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK0lQRlPlr4bpkqVcXG59XFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICDlsI/pvpnkupHor7fmsYJhID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb21cXFwiICsg6K+35rGC5Y+Y6YePYVxcbiAgICAgICAgICAgICAgICDnrKzkuIDmrKHlk43lupQgPSBwb3N0KOWwj+m+meS6keivt+axgmEsIHtcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgICAgICDlsI/pvpnkupHor7fmsYJiID0gXFxcImh0dHBzOi8vcHJvZHVjdGFwaS5zdGFyaXZlcnBhbi5jb21cXFwiICsg6K+35rGC5Y+Y6YePYlxcbiAgICAgICAgICAgICAgICDnrKzkuozmrKHlk43lupQgPSBwb3N0KOWwj+m+meS6keivt+axgmIsIHtcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IOWktOmDqCxcXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IOi6q+S9k1xcbiAgICAgICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgICAgICAvL+WIl+ihqGHmmK/mlofku7blpLnliJfooahcXG4gICAgICAgICAgICAgICAg5YiX6KGoYSA9IEpTT04ucGFyc2Uo56ys5LiA5qyh5ZON5bqUKS5kYXRhLmRhdGFcXG4gICAgICAgICAgICAgICAgLy/liJfooahh5piv5paH5Lu25YiX6KGoXFxuICAgICAgICAgICAgICAgIOWIl+ihqGIgPSBKU09OLnBhcnNlKOesrOS6jOasoeWTjeW6lCkuZGF0YS5kYXRhXFxuXFxubGV0IOaWh+S7tuaVsOe7hD1bXVxcblxcbiAgICBmb3IgKHZhciBpIGluIOWIl+ihqGIpIHtcXG4gICAgICAgIOaWh+S7tuWQjT3liJfooahiW2ldLmZpbGVOYW1lXFxuICAgICAgICDmlofku7bmoLzlvI895YiX6KGoYltpXS5maWxlVHlwZVxcbiAgICAgICAg5paH5Lu2Q0lEPeWIl+ihqGJbaV0uZmlsZUNpZFxcbiAgICAgICAg5paH5Lu25aSn5bCPPeWIl+ihqGJbaV0uZmlsZVNpemVcXG4gICAgICAgIGpzb27mlbDmja49e1xcXCLmlofku7blkI1cXFwiOuaWh+S7tuWQjSxcXFwi5paH5Lu2Q0lEXFxcIjrmlofku7ZDSUQsXFxcIuaWh+S7tuagvOW8j1xcXCI65paH5Lu25qC85byPLFxcXCLmlofku7blpKflsI9cXFwiOuaWh+S7tuWkp+Wwj31cXG4gICAgICAgIOaWh+S7tuaVsOe7hFtpXT1qc29u5pWw5o2uXFxuICAgICAgICBcXG4gICAgfVxcbiAgICBsZXQg5paH5Lu25aS55pWw57uEPVtdXFxuICAgIGZvciAodmFyIGkgaW4g5YiX6KGoYSkge1xcbiAgICAgICAg5paH5Lu25aS55pWw57uEW2ldPeWIl+ihqGFbaV0uZmlsZU5hbWVcXG4gICAgfVxcbiAgICBcXG5wdXRNeVZhcijmlofku7bot6/lvoQrXFxcIuaWh+S7tuWkueWIl+ihqFxcXCIs5YiX6KGoYSlcXG5cXG7mlofku7blpLnliJfooag95YiX6KGoYVxcblxcbuaWh+S7tuWIl+ihqD3liJfooahiXFxuXFxuXFxuXFxuXFxuXFxuXFxuZGF0YeaVsOaNrj1ge1xcXCLml7bpl7RcXFwiOlxcXCJgK25ldyBEYXRlKCkuZ2V0VGltZSgpK2BcXFwiLFxcXCLot6/lvoRcXFwiOlxcXCJgK+aWh+S7tui3r+W+hCtgXFxcIixcXFwi5paH5Lu25aS5XFxcIjpgK0pTT04uc3RyaW5naWZ5KOaWh+S7tuWkueaVsOe7hCkrYCxcXFwi5paH5Lu2XFxcIjpgK0pTT04uc3RyaW5naWZ5KOaWh+S7tuaVsOe7hCkrYH1gXFxuXFxuXFxu5pW05L2T5pWw5o2uLnB1c2goSlNPTi5wYXJzZShkYXRh5pWw5o2uKSlcXG5cXG5cXG5cXG4gIFxcblxcblxcbmlmKOWIl+ihqGEubGVuZ3RoPDEpe1xcblxcbmNsZWFyVmFyKOaWh+S7tui3r+W+hCtcXFwi5paH5Lu25aS55YiX6KGoXFxcIilcXG7ot6/lvoTliIflibI95paH5Lu26Lev5b6ELnNwbGl0KOi3r+W+hOmXtOmalClcXG5cXG5cXG7ot6/lvoTliIflibIuc3BsaWNlKOi3r+W+hOWIh+WJsi5sZW5ndGgtMSwxKVxcblxcbuaWh+S7tui3r+W+hD3ot6/lvoTliIflibIuam9pbijot6/lvoTpl7TpmpQpXFxuXFxuXFxuXFxuXFxuY29udGludWU7XFxufWVsc2V7XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lvqrnjq/ojrflj5bmlofku7blpLlDSUQnKSkucnVsZSlcXG5cXG7ot6/lvoTliIflibI95paH5Lu26Lev5b6ELnNwbGl0KOi3r+W+hOmXtOmalClcXG7ot6/lvoTliIflibIuc3BsaWNlKOi3r+W+hOWIh+WJsi5sZW5ndGgtMSwxKVxcblxcbuaWh+S7tui3r+W+hD3ot6/lvoTliIflibIuam9pbijot6/lvoTpl7TpmpQpXFxuXFxuXFxufVxcbn1cXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuino+aekOWTiOW4jOWAvFwiLFwicGF0aFwiOlwi6Kej5p6Q5ZOI5biM5YC8XCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbuaVsOaNrj1KU09OLnBhcnNlKGdldFBhcmFtKCfmlbDmja4nLCAn5pWw5o2uJykpXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi4oCY4oCY5LiA6ZSu6Kej5p6Q4oCZ4oCZXFxcIixcXG51cmw6JChcXFwiXFxcIiwgXFxcIuaWsOW7uuS4quaWh+S7tuWkuVxcXCIpLmlucHV0KCjmlbDmja4pID0+IHtcXG5cXG4vKlxcblxcbuWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOaWh+S7tkNJRCzmlofku7blkI0s5paH5Lu25qC85byPLOaWh+S7tuWkp+WwjykgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG4gICAgICAgIOaWh+S7tuWkueWQjeensC51bnNoaWZ0KFxcXCLliqDlhaXmraTlpIRcXFwiKVxcbuaWh+S7tuWkueWIl+ihqGlkPVxcXCIwXFxcIlxcblxcblxcblxcbmlkPWB7XFxcIuaWh+S7tkNJRFxcXCI6XFxcImAr5paH5Lu2Q0lEK2BcXFwiLFxcXCLmlofku7blkI1cXFwiOlxcXCJgK+aWh+S7tuWQjStgXFxcIixcXFwi5paH5Lu25qC85byPXFxcIjpcXFwiYCvmlofku7bmoLzlvI8rYFxcXCIsXFxcIuaWh+S7tuWkp+Wwj1xcXCI6XFxcImAr5paH5Lu25aSn5bCPK2BcXFwifWBcXG5cXG51c2VyaWQ9XFxcIuaXoChDSUQpXFxcIlxcbueJueauimlkPVxcXCJcXFwiXFxu5biW5a2QaWQ9XFxcIlxcXCJcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+mHjeWkjeivt+axguaWh+S7tuWkuScpKS5ydWxlKVxcblxcblxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcbn0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOaWh+S7tkNJRCzmlofku7blkI0s5paH5Lu25qC85byPLOaWh+S7tuWkp+WwjylcXG5cXG5cXG5cXG4qL1xcblxcbnNob3dMb2FkaW5nKCfmraPlnKjop6PmnpAt5paH5Lu26LaK5aSa6LaK5oWiJylcXG5cXG5cXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+WHveaVsCcpKS5ydWxlKVxcblxcbuWTiOW4jOWAvOaVsOe7hD1KU09OLnN0cmluZ2lmeSjmlbDmja4pLm1hdGNoKC9bYS1mMC05XXs0MH0vaWcpXFxuXFxu5ZOI5biM5YC85pWw57uE5YiG57uE5YC8PU1hdGguY2VpbCjlk4jluIzlgLzmlbDnu4QubGVuZ3RoLzUwKVxcblxcbuWTiOW4jOWAvOaVsOe7hOWPmOaWh+acrD3lk4jluIzlgLzmlbDnu4Quam9pbignXFxcIixcXFwiJykudG9Mb3dlckNhc2UoKVxcblxcblxcbuaVtOS9k+aVsOaNrj1bXVxcbuaVtOS9k+aVsOaNruWPmOmHjz0wXFxuXFxubG9nKOWTiOW4jOWAvOaVsOe7hOWIhue7hOWAvClcXG5cXG5mb3IoaT0wO2k85ZOI5biM5YC85pWw57uE5YiG57uE5YC8O2krKyl7XFxuXFxuXFxubG9nKFxcXCLlvqrnjq/mrKHmlbBcXFwiK2kpXFxu6K+35rGC6ZO+5o6lPVxcXCJodHRwOi8vdXBsb2FkYXBpMi5zdGFyaXZlcnBhbi5jb206MTgwOTAvdjIvZmlsZS9yZXN1bHRzXFxcIlxcblxcbuWwj+m+meS6keebmOWvhumSpT1zdG9yYWdlMC5nZXRJdGVtKCdjdXJJdGVtJykudXNlclxcblxcbuWktOmDqD17XFxuXFxcIkF1dGhvcml6YXRpb25cXFwiOlxcXCJCZWFyZXIgXFxcIivlsI/pvpnkupHnm5jlr4bpkqVcXG59XFxuXFxu6Lqr5L2TPWB7XFxcImFjY2Vzc1Rva2VuXFxcIjpcXFwiYCvlsI/pvpnkupHnm5jlr4bpkqUrYFxcXCIsXFxcImZpbGVIYXNoc1xcXCI6W1xcXCJgK+WTiOW4jOWAvOaVsOe7hC5zbGljZShpKjUwLChpKzEpKjUwLTE+5ZOI5biM5YC85pWw57uELmxlbmd0aD/lk4jluIzlgLzmlbDnu4QubGVuZ3RoOihpKzEpKjUwLTEpLmpvaW4oJ1xcXCIsXFxcIicpLnRvTG93ZXJDYXNlKCkrYFxcXCJdfWBcXG5cXG7lk43lupTmlbDmja49cG9zdCjor7fmsYLpk77mjqUse2hlYWRlcnM6IOWktOmDqCxib2R5Oui6q+S9k30sIHt0aW1lb3V0OjUwMDAwMH0pXFxuXFxu5ZON5bqU5pWw5o2uPUpTT04ucGFyc2Uo5ZON5bqU5pWw5o2uKS5kYXRhXFxuXFxuXFxuZm9yICh2YXIgaiBpbiDlk43lupTmlbDmja4pIHtcXG7mlofku7ZDSUQ95ZON5bqU5pWw5o2uW2pdLmZpbGVDaWRcXG7mlofku7blkI095ZON5bqU5pWw5o2uW2pdLmZpbGVOYW1lXFxu5paH5Lu25aSn5bCPPeWTjeW6lOaVsOaNrltqXS5maWxlU2l6ZVxcbmlmKOaWh+S7tkNJRC5sZW5ndGg8MSkge2NvbnRpbnVlO1xcbn1lbHNle1xcblxcbmlmKOaJvuinhumikeato+WImS50ZXN0KOaWh+S7tuWQjSkpe1xcbuaWh+S7tuagvOW8jz1cXFwiM1xcXCJcXG59ZWxzZSBpZijmib7pn7PpopHmraPliJkudGVzdCjmlofku7blkI0pKXtcXG7mlofku7bmoLzlvI89XFxcIjJcXFwiXFxufWVsc2UgaWYo5om+5Zu+54mH5q2j5YiZLnRlc3Qo5paH5Lu25ZCNKSl7XFxu5paH5Lu25qC85byPPVxcXCIxXFxcIlxcbn1lbHNle1xcbuaWh+S7tuagvOW8jz1cXFwiNVxcXCJcXG59XFxuXFxuXFxuXFxuXFxuaWQ9e1xcXCLmlofku7ZDSURcXFwiOuaWh+S7tkNJRCxcXFwi5paH5Lu25ZCNXFxcIjrmlofku7blkI0sXFxcIuaWh+S7tuagvOW8j1xcXCI65paH5Lu25qC85byPLFxcXCLmlofku7blpKflsI9cXFwiOuaWh+S7tuWkp+Wwj31cXG5cXG7mlbTkvZPmlbDmja5b5pW05L2T5pWw5o2u5Y+Y6YePXT1pZFxcbuaVtOS9k+aVsOaNruWPmOmHjysrXFxuXFxufVxcblxcbn1cXG5cXG59XFxuXFxuaWYoaW5wdXQpe1xcblxcbuaVtOS9k+aVsOaNrj17XFxcIuaXtumXtFxcXCI6bmV3IERhdGUoKS5nZXRUaW1lKCksXFxcIuexu+Wei1xcXCI6XFxcIuWTiOW4jOWAvOino+aekFxcXCIsXFxcImRhdGFcXFwiOiBbe1xcXCLot6/lvoRcXFwiOiBcXFwiMFxcXCIsXFxcIuaWh+S7tuWkuVxcXCI6IFtpbnB1dF0sXFxcIuaWh+S7tlxcXCI6W119LHtcXFwi6Lev5b6EXFxcIjogXFxcIjDiuJ1cXFwiK2lucHV0LFxcXCLmlofku7blpLlcXFwiOiBbXSxcXFwi5paH5Lu2XFxcIjrmlbTkvZPmlbDmja59XX1cXG5cXG5cXG59ZWxzZXtcXG5cXG7mlbTkvZPmlbDmja49e1xcXCLlpIfku73ml7bpl7RcXFwiOm5ldyBEYXRlKCkuZ2V0VGltZSgpLFxcXCLnsbvlnotcXFwiOlxcXCLlk4jluIzlgLzop6PmnpBcXFwiLFxcXCJkYXRhXFxcIjogW3tcXFwi5aSH5Lu95pe26Ze0XFxcIjpuZXcgRGF0ZSgpLmdldFRpbWUoKSxcXFwi6Lev5b6EXFxcIjogXFxcIjBcXFwiLFxcXCLmlofku7blpLlcXFwiOiBbXSxcXFwi5paH5Lu2XFxcIjrmlbTkvZPmlbDmja59XX1cXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxu5pWw5o2uPeaVtOS9k+aVsOaNri5kYXRhXFxu5paH5Lu26Lev5b6EPeaVsOaNrlswXS7ot6/lvoRcXG7mlofku7blpLnlkI09XFxcIjBcXFwiXFxubG9nKFxcXCLliY3mlofku7bot6/lvoRcXFwiK+aWh+S7tui3r+W+hClcXG5sb2coXFxcIuWJjeaWh+S7tuWkueWQjVxcXCIr5paH5Lu25aS55ZCNKVxcblxcbmhpZGVMb2FkaW5nKClcXG5cXG5yZXR1cm4gXFxcImhpa2VyOi8vcGFnZS/lpIfku73or6bmg4U/5aSH5Lu95pWw5o2uPVxcXCIrSlNPTi5zdHJpbmdpZnko5pWw5o2uKStcXFwiJuaWh+S7tui3r+W+hD1cXFwiK+aWh+S7tui3r+W+hCtcXFwiJuaWh+S7tuWkueWQjT1cXFwiK+aWh+S7tuWkueWQjStcXFwiJnBhZ2VUaXRsZT3lk4jluIzlgLzop6PmnpBcXFwiXFxuXFxucmV0dXJuICd0b2FzdDovL+e7k+adnydcXG5cXG5cXG5cXG5cXG59LOaVsOaNriksXFxuY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiXFxufSk7XFxuXFxuXFxuXFxuXFxuZC5wdXNoKHtcXG50aXRsZTpcXFwi4oCY4oCY6L2s5a2Y5LqR55uY4oCZ4oCZXFxcIixcXG51cmw6JChcXFwiXFxcIiwgXFxcIuaWsOW7uuS4quaWh+S7tuWkuVxcXCIpLmlucHV0KCjmlbDmja4pID0+IHtcXG5cXG5pZighaW5wdXQpIHJldHVybiAndG9hc3Q6Ly/kuI3og73kuLrnqbonXFxuXFxuc2hvd0xvYWRpbmcoJ+ato+WcqOino+aekC3mlofku7botorlpJrotormhaInKVxcblxcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv5Ye95pWwJykpLnJ1bGUpXFxuXFxu5ZOI5biM5YC85pWw57uEPUpTT04uc3RyaW5naWZ5KOaVsOaNrikubWF0Y2goL1thLWYwLTldezQwfS9pZylcXG5cXG7lk4jluIzlgLzmlbDnu4TliIbnu4TlgLw9TWF0aC5jZWlsKOWTiOW4jOWAvOaVsOe7hC5sZW5ndGgvNTApXFxuXFxu5ZOI5biM5YC85pWw57uE5Y+Y5paH5pysPeWTiOW4jOWAvOaVsOe7hC5qb2luKCdcXFwiLFxcXCInKS50b0xvd2VyQ2FzZSgpXFxuXFxuXFxu5pW05L2T5pWw5o2uPVtdXFxu5pW05L2T5pWw5o2u5Y+Y6YePPTBcXG5cXG5sb2co5ZOI5biM5YC85pWw57uE5YiG57uE5YC8KVxcblxcbmZvcihpPTA7aTzlk4jluIzlgLzmlbDnu4TliIbnu4TlgLw7aSsrKXtcXG5cXG5cXG5sb2coXFxcIuW+queOr+asoeaVsFxcXCIraSlcXG7or7fmsYLpk77mjqU9XFxcImh0dHA6Ly91cGxvYWRhcGkyLnN0YXJpdmVycGFuLmNvbToxODA5MC92Mi9maWxlL3Jlc3VsdHNcXFwiXFxuXFxu5bCP6b6Z5LqR55uY5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+m+meS6keebmOWvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiYWNjZXNzVG9rZW5cXFwiOlxcXCJgK+Wwj+m+meS6keebmOWvhumSpStgXFxcIixcXFwiZmlsZUhhc2hzXFxcIjpbXFxcImAr5ZOI5biM5YC85pWw57uELnNsaWNlKGkqNTAsKGkrMSkqNTAtMT7lk4jluIzlgLzmlbDnu4QubGVuZ3RoP+WTiOW4jOWAvOaVsOe7hC5sZW5ndGg6KGkrMSkqNTAtMSkuam9pbignXFxcIixcXFwiJykudG9Mb3dlckNhc2UoKStgXFxcIl19YFxcblxcbuWTjeW6lOaVsOaNrj1wb3N0KOivt+axgumTvuaOpSx7aGVhZGVyczog5aS06YOoLGJvZHk66Lqr5L2TfSwge3RpbWVvdXQ6NTAwMDAwfSlcXG5cXG7lk43lupTmlbDmja49SlNPTi5wYXJzZSjlk43lupTmlbDmja4pLmRhdGFcXG5cXG5cXG5mb3IgKHZhciBqIGluIOWTjeW6lOaVsOaNrikge1xcbuaWh+S7tkNJRD3lk43lupTmlbDmja5bal0uZmlsZUNpZFxcbuaWh+S7tuWQjT3lk43lupTmlbDmja5bal0uZmlsZU5hbWVcXG7mlofku7blpKflsI895ZON5bqU5pWw5o2uW2pdLmZpbGVTaXplXFxuaWYo5paH5Lu2Q0lELmxlbmd0aDwxKSB7Y29udGludWU7XFxufWVsc2V7XFxuXFxuaWYo5om+6KeG6aKR5q2j5YiZLnRlc3Qo5paH5Lu25ZCNKSl7XFxu5paH5Lu25qC85byPPVxcXCIzXFxcIlxcbn1lbHNlIGlmKOaJvumfs+mikeato+WImS50ZXN0KOaWh+S7tuWQjSkpe1xcbuaWh+S7tuagvOW8jz1cXFwiMlxcXCJcXG59ZWxzZSBpZijmib7lm77niYfmraPliJkudGVzdCjmlofku7blkI0pKXtcXG7mlofku7bmoLzlvI89XFxcIjFcXFwiXFxufWVsc2V7XFxu5paH5Lu25qC85byPPVxcXCI1XFxcIlxcbn1cXG5cXG5cXG5cXG5cXG5pZD17XFxcIuaWh+S7tkNJRFxcXCI65paH5Lu2Q0lELFxcXCLmlofku7blkI1cXFwiOuaWh+S7tuWQjSxcXFwi5paH5Lu25qC85byPXFxcIjrmlofku7bmoLzlvI8sXFxcIuaWh+S7tuWkp+Wwj1xcXCI65paH5Lu25aSn5bCPfVxcblxcbuaVtOS9k+aVsOaNrlvmlbTkvZPmlbDmja7lj5jph49dPWlkXFxu5pW05L2T5pWw5o2u5Y+Y6YePKytcXG5cXG59XFxuXFxufVxcblxcbn1cXG5cXG5cXG7mlbDmja49e1xcXCLmlofku7blpLnlkI1cXFwiOmlucHV0LFxcXCJkYXRhXFxcIjrmlbTkvZPmlbDmja59XFxuXFxuXFxu5bCP6b6Z5LqR55uY5aSH5Lu9PeaVsOaNrlxcbiAgICAgICAgICAgIFxcbiAgICAgICAgICAgIOWwj+S6kem+meS6keebmOWvhumSpSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ+Wwj+S6kem+meS6keebmOWvhumSpS5qc29uJywgMCkgfHwgJ1tdJyk7XFxuXFxuXFxuICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooag9W11cXG4gICAgICAgIGZvciAodmFyIGkgaW4g5bCP5LqR6b6Z5LqR55uY5a+G6ZKlKSB7XFxuICAgICAgICAgICDlsI/kupHpvpnkupHnm5jotKblj7fliJfooahbaV09aSvlsI/kupHpvpnkupHnm5jlr4bpkqVbaV0ubmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICBcXG4gICAgICAgIHJldHVybiAkKOWwj+S6kem+meS6keebmOi0puWPt+WIl+ihqCwgMiwgJ+WwhuaWh+S7tua3u+WKoOiHs+WTquS4quWwj+m+meS6keebmO+8nycpLnNlbGVjdCgo5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOWwj+m+meS6keebmOWkh+S7vSkgPT4ge1xcbiAgICAgICDlsI/kupHpvpnkupHnm5jlr4bpkqU95bCP5LqR6b6Z5LqR55uY5a+G6ZKlW2lucHV0Lm1hdGNoKC9cXFxcZC8pWzBdXS51c2VyXFxu6K+35rGC5paH5Lu25aS56ZO+5o6lPVxcXCJodHRwczovL3Byb2R1Y3RhcGkuc3Rhcml2ZXJwYW4uY29tL2Ntc3Byb3ZpZGVyL3YxLjIvY2xvdWQvZm9sZGVyTGlzdFxcXCJcXG7lpLTpg6g9e1xcblxcXCJSZWZlcmVyXFxcIjpcXFwiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vXFxcIixcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+S6kem+meS6keebmOWvhumSpVxcbn1cXG7ouqvkvZM9YHtcXFwicGFyZW50SWRcXFwiOlxcXCIwXFxcIn1gXFxu56ys5LiA5qyh5ZON5bqUPXBvc3Qo6K+35rGC5paH5Lu25aS56ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuaWh+S7tuWkueWIl+ihqD1KU09OLnBhcnNlKOesrOS4gOasoeWTjeW6lCkuZGF0YVxcbuaWh+S7tuWkueWQjeensD1bXVxcbiAgICAgICAgZm9yICh2YXIgaSBpbiDmlofku7blpLnliJfooagpIHtcXG4gICAgICAgICAgIOaWh+S7tuWkueWQjeensFtpXT1pK+aWh+S7tuWkueWIl+ihqFtpXS5maWxlTmFtZSAgICAgICBcXG4gICAgICAgICB9XFxuICAgICAgICDmlofku7blpLnlkI3np7Bb5paH5Lu25aS55ZCN56ewLmxlbmd0aF09XFxcIuWKoOWFpeatpOWkhFxcXCJcXG7mlofku7blpLnliJfooahpZD1cXFwiMFxcXCJcXG5cXG7mlofku7blpLnlkI3np7AudW5zaGlmdChcXFwi5Yqg5YWl5q2k5aSEXFxcIilcXG5cXG5pZD1cXFwiXFxcIlxcbnVzZXJpZD1cXFwi5pegKENJRClcXFwiXFxu54m55q6KaWQ9XFxcIlxcXCJcXG7luJblrZBpZD1cXFwiXFxcIlxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2Uv6YeN5aSN6K+35rGC5paH5Lu25aS5JykpLnJ1bGUpXFxuXFxuLy9sb2co6YeN5aSN6K+35rGC5paH5Lu25aS5KVxcbiAgICAgICAgcmV0dXJuIOmHjeWkjeivt+axguaWh+S7tuWkuVxcblxcblxcbn0s5bCP5LqR6b6Z5LqR55uY5a+G6ZKlLOWwj+m+meS6keebmOWkh+S7vSlcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG59LOaVsOaNriksXFxuY29sX3R5cGU6IFxcXCJ0ZXh0XzJcXFwiXFxufSk7XFxuXFxuXFxuXFxuXFxuaWYo5pWw5o2uLmluY2x1ZGVzKFxcXCIxMTU6Ly9cXFwiKT09ZmFsc2UpIOaVsOaNruWIl+ihqD3mlbDmja4ubWF0Y2goL1thLWYwLTldezQwfS9pZylcXG5lbHNlIOaVsOaNruWIl+ihqD3mlbDmja4uc3BsaXQoXFxcIlxcXFxuXFxcIilcXG5cXG5cXG5cXG5cXG5mb3IgKHZhciBpIGluIOaVsOaNruWIl+ihqCkge1xcblxcbuWtkOaVsOaNrj3mlbDmja7liJfooahbaV1cXG5pZijlrZDmlbDmja4ubGVuZ3RoPjApXFxuZC5wdXNoKHtcXG50aXRsZTrlrZDmlbDmja4sXFxudXJsOiQoJycpLmxhenlSdWxlKCjlrZDmlbDmja4pID0+IHtcXG5cXG7lk4jluIzlgLzmlbDnu4Q95a2Q5pWw5o2uLm1hdGNoKC9bYS1mMC05XXs0MH0vaWcpLmpvaW4oJ1xcXCIsXFxcIicpLnRvTG93ZXJDYXNlKClcXG5cXG7or7fmsYLpk77mjqU9XFxcImh0dHA6Ly91cGxvYWRhcGkyLnN0YXJpdmVycGFuLmNvbToxODA5MC92Mi9maWxlL3Jlc3VsdHNcXFwiXFxuXFxu5bCP6b6Z5LqR55uY5a+G6ZKlPXN0b3JhZ2UwLmdldEl0ZW0oJ2N1ckl0ZW0nKS51c2VyXFxuXFxu5aS06YOoPXtcXG5cXFwiQXV0aG9yaXphdGlvblxcXCI6XFxcIkJlYXJlciBcXFwiK+Wwj+m+meS6keebmOWvhumSpVxcbn1cXG5cXG7ouqvkvZM9YHtcXFwiYWNjZXNzVG9rZW5cXFwiOlxcXCJgK+Wwj+m+meS6keebmOWvhumSpStgXFxcIixcXFwiZmlsZUhhc2hzXFxcIjpbXFxcImAr5ZOI5biM5YC85pWw57uEK2BcXFwiXX1gXFxuXFxu5ZON5bqU5pWw5o2uPXBvc3Qo6K+35rGC6ZO+5o6lLHtoZWFkZXJzOiDlpLTpg6gsYm9keTrouqvkvZN9KVxcblxcbuWTjeW6lOaVsOaNrj1KU09OLnBhcnNlKOWTjeW6lOaVsOaNrikuZGF0YVxcblxcbmZvciAodmFyIGkgaW4g5ZON5bqU5pWw5o2uKSB7XFxu5paH5Lu2Q0lEPeWTjeW6lOaVsOaNrltpXS5maWxlQ2lkXFxu5paH5Lu25ZCNPeWTjeW6lOaVsOaNrltpXS5maWxlTmFtZVxcbuaWh+S7tuWkp+Wwjz3lk43lupTmlbDmja5baV0uZmlsZVNpemVcXG7mlofku7bnsbvlnos95ZON5bqU5pWw5o2uW2ldLnVwbG9hZFN0YXRlXFxuaWYo5paH5Lu2Q0lELmxlbmd0aDwxKSBjb250aW51ZTtcXG5lbHNlIGJyZWFrO1xcblxcbn1cXG5cXG5pZijmlofku7ZDSUQubGVuZ3RoPDEpIHJldHVybiBcXFwidG9hc3Q6Ly/or6Xmlofku7bmsqHkurrkuIrkvKBcXFwiXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS/lh73mlbAnKSkucnVsZSlcXG5cXG5cXG5yZXR1cm4g5paH5Lu2Q0lEK1xcXCImJlxcXCIr5paH5Lu25ZCNK0NJROmTvuaOpeino+aekFxcblxcblxcblxcblxcbn0s5a2Q5pWw5o2uKSxcXG5jb2xfdHlwZTogXFxcInRleHRfMVxcXCJcXG59KTtcXG5cXG5cXG59XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifV0iLCJpY29uIjoiaHR0cHM6Ly93eC5zdGFyaXZlcnBhbi5jb20vd2ViL3N0YXRpYy9sb2dvLjViMWM0YzRhLnBuZyIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment