Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥追剧吧-动漫-老虎和兔子第二季@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJqczpcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9jaGFwdGVyJywge30pKS5ydWxlKTtcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaOpeWPo+aVsOaNrjIwMjIvNC8xXCIsXCJwYXRoXCI6XCJSZXNDb2RlXCIsXCJydWxlXCI6XCJ7XFxuICAgIFxcXCJkYXRhXFxcIjogW3tcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5LyY6LSoXFxcIixcXG4gICAgICAgICAgICBcXFwibGlzdFxcXCI6IFt7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiMzAw55yL5LiW55WMXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly8zMDB5cy54eXovYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi8zMDDnnIvkuJbnlYwucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiNEvlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMWFwaS40a2R5dHYuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vNEvlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiQ0pU5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuY2p0NTIxLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0NKVOW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCJEQ+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9jaGFvcmVuYmIuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vREPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiSEflvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vaGd5eC52aXAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9IR+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCJ0dmlwXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwcC50dmlwLmNjL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vdHZpcC5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLniLHnnIvnvo7liadcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3d3dy51dW1qdy5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHnnIvnvo7liacucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi54ix6YW35b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuemhhbmxhbmdidS5jb20vcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix6YW35b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueZveWrluW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly96Z2p4ZHRnLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m95auW5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWIneW/g+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vd3d3LjE4bXYuY2x1Yi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WIneW/g+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLni6zmkq3npL5cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMzV5cy5jYy9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eLrOaSreekvi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlj67lvZPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3R2LjA1NzN3bC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lj67lvZPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5q615Y+L5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzEyMS4yMDQuMjQ5LjEzNTo0NDMzL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+auteWPi+W9seinhjMucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5q615Y+L5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9zaGFuZ2ppaHVva2UuY29tL2FwaS5waHAvdHYudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q615Y+L5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumjnuaNt+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vd3d3LmZqNjA4MC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po57mjbflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi57KJ6LGh6KeG55WMXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzQyLjE1Ny4xMjkuMTU6MzQ0NDQvbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nsonosaHop4bnlYwucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6JmO54yr6KeG6aKRXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3Z2Lmh1bWFvd2ViLmNvbS9tb2dhaV9hcGkucGhwL2djdHZhcGkudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JmO54yr6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumjk+mjjuW9semZolxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly95aWRheXkudG9wL2xlaGFpbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po5Ppo47lvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi55yL55yL5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2trLmNjYm9rZS50b3AvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL55yL5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIue7v+eureW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly93d3cuNjl0eS5jYy9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e7v+eureW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpm7bliLvlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3lzLmxpbmcwMC5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbtuWIu+W9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnkIXnkIrlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vZmd5dXUudG9wL2xlaGFpbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nkIXnkIrlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Jyc6JyC5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwcC5mOHRwLmNvbS9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+icnOicguW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpurvnk5zop4bpopFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vYWxpeXVuLms4YWEuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6bq755Oc6KeG6aKRMS5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnvo7liafomatcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL21laWp1Y2hvbmcuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v576O5Ymn6JmrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWliOmdnui/t1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vYXBwLm5ldGZsaXhtaS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpYjpnZ7ov7flvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5Y2X5bqc5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2lhcHAubmZ1eHMuY2x1Yi9kbm1iLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ljZflupzlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5pqW5YWJ5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9hcHAuYmwyMTAuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pqW5YWJ5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumdkuinhumikVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly8xNTAuMTU4LjEzMy4zNjo5OTA0L3Fpbmdkb3VqaWVrb3UucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mdkuinhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlpKnor5rlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdGNzcHZpcC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeivmuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlpKnlpKnlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2FwcC5kYWlzaHVzYy5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Zuq5Lq65b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly96eS5xZDIzNC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbquS6uuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnm4rovr7lvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vbHVvYnUueXNzNjA4MC5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nm4rovr7lvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5b2x6KeG5aSn5YWoXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9hcHAub2ttZWRjb3MuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6KeG5aSn5YWoLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuW9seinhui+vuS6ulxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly93d3cueXNkci52aXAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pgJrnlKjlm77moIcucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5LyY6KeG5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwcC55c3lzLmFzaWEvbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kvJjop4blvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5b2x6ZiF6ZiBXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzIyMS4yMzYuMTguMTI6NjY1L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6ZiF6ZiBLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIui/veWJp+WQp1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly96aHVpanU4LnZpcC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+i/veWJp+WQp+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBdXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmma7pgJpcXFwiLFxcbiAgICAgICAgICAgIFxcXCJsaXN0XFxcIjogW3tcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCJKRE9ET1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vYXBweXMuamRvZG8ueHl6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSkRPRE/lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiVTXlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2FwcHgudXkwNy5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9VNeW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpmL/ph4zlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vYWxpeXMuY246OTAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pmL/ph4zlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Im+54m55b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuYWl0ZWUuY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/oib7nibnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi54ix5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuaHpsZmYuY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi55m+5reY5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3lzLjU4ZzguY29tL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m+5reY5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuavlOmCu+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly8waHp5LmNuOjk5OTAvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mr5TpgrvlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5aSn5aiB55S15b2xXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3ZpcC5kYXZkeS5jb20vcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSn5aiB55S15b2xLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuixhua4o+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9kb3V6aGF5c3MuY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/osYbmuKPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5a+S5p6r6KeG6aKRXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly92aXAuc2hlbnl1bndsLmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5a+S5p6r6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIum7hOays+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9pLmxlZHU4LmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6buE5rKz5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuaZl+WFiOajrlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vaGFudHYudG9wL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pmX5YWI5qOu5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueti+aWl+S6kVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vdHYuamluZGNsb3VkLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eti+aWl+S6keW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLogZrlkIjop4bpopFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2FwcC5qaHlzdHYuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6IGa5ZCI6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuapmOWtkOW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9qei5qdXppZHkudmlwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5qmY5a2Q5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueci+WJp+WQp1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9hcHAuaXNoZW41MjAuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL5Ymn5ZCnLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueci+eci+WJp1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vd3d3Lmthbmthbmp1LmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL55yL5YmnLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueci+eci+inhumikVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly84ODguY2Nib2tlLnRvcC9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nnIvnnIvop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5Ya36KeGVFZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2xlbi50di9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WGt+inhlRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuS5kOS6keW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vd3d3LmxleXVuLnR2L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LmQ5LqR5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWFjei0ueW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly8xMTEuMjI5LjEyMC4xODA6ODgvbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhY3otLnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi576O5Ymn6IyDXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3R0em16Lm5ldC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e+juWJp+iMgy5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLku7vmgKfnnItcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3JlbnhpbmdrYW4ubmV0L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Lu75oCn55yLLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumaj+mjjuW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9hcHAucnVjaHUuY2xvdWQvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pmo/po47lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5LiJ5pel5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuM3JpLm5ldC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S4ieaXpeW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmt5jliafnpL5cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2FwcC5zaHVoYWk5OS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mt5jliafnpL4ucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5aSp5aSp6KeG6aKRXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwcC5xaWFuanUuY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5YWU5a2Q56qdXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2NqLmh1aW1hb2ppYS5jb206MTIzNDUvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhZTlrZDnqp0ucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5oiR54ix6Lef5YmnXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuZ2VubW92LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aIkeeIsei3n+WJpy5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLonJfniZvliqjmvKtcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vd29uaXVkbS53b25pdS5jeW91OjIwMDAwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JyX54mb5Yqo5ryrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueGiueMq+WKqOa8q1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9kb25nbWFuLms4YWEuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54aK54yr5Yqo5ryrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueGiueMq+inhumikVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9hbmVnaC5jb20vbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nhornjKvop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5bCP6bif5Yqo5ryrXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3h5ZG0uYmFpY2FpLmJ1enovbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/puJ/liqjmvKsucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5bCP6Jy76JyTXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzNrZXR2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wwj+icu+ick+inhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmmJ/nkIPop4bpopFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMTE5LjI5LjEyMS40ODo4MDg4L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pif55CD6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuaciOWEv+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8veXVlNTIueHl6L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YCa55So5Zu+5qCHLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuW9seinhuWkp+WFqFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8veGMueGl4aTJ5eS54eXovbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lvbHop4blpKflhahIRC5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmuJTmuJTlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vbHVvYm8ueXVnZW55ZS5zaXRlL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5riU5riU5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuafmuWtkOinhumikVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly95ei4yNnlzLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p+a5a2Q6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIui/veWJp+eMq1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90di5rbXR2Yi5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ov73liafnjKsxLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIF1cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWkp+eGilxcXCIsXFxuICAgICAgICAgICAgXFxcImxpc3RcXFwiOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWkp+eGilxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vZHh5czIyMzMuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSn54aKLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIua1geaYn1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9ma3hzMjIzMy5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mtYHmmJ8ucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5YWo6IO9XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9xbnlzNTU2Ni5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhajog70ucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5omL5oyHXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9zenlzNTY3OC5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/miYvmjIcucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5b+D54ixXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly94YXlzNjY3Ny5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lv4PniLEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Zuq5qKoXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly96c2IyMjMzLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbquaiqC5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmnajmoYNcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3l0eXMzNDU2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+adqOahgy5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBdXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnpZ7pqaxcXFwiLFxcbiAgICAgICAgICAgIFxcXCJsaXN0XFxcIjogW3tcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCIy5Y+35biBXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3Bob2ViZS5jZi9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzLlj7fluIHlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCJDVuW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly93d3cuY2NjdnZ2LnRvcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0NW5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiSEflvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vYXBpLmhneXgudmlwL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSEflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLniLHopb/opb9UVlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90djIuYWl4aXhpLnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIseilv+ilv1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5Y+u5b2TVFZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdHYuaHlkZHlzLnRvcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WPruW9k1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5aSn5biI5YWEXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2RzeHR2LnR2LmNpL2FwaS5waHAvZHN4L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKfluIjlhYTlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpnZ7lh6HlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vY21zLmZlaWZhbjEyLnh5ei9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mdnuWHoeW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumjnuaJrFRWXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2RpYW5jai56aGVuZnkuY24vYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po57miaxUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWYv+iNvOmUi1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90di5oZnlzOC52aXAvYXBpLnBocC9TbnR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lmL/ojbzplIsucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpu5HpvpnlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdmlwLmppLWRpbmctaGUuc2l0ZS9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+m7kem+meW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuaegeWTgeW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9qcHNiLnloenkueHl6L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p6B5ZOB5b2x6KeGVFYucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmnoHlk4HlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMjkzeC55aHp5Lnh5ei9tdi9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aegeWTgeW9semZolRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6I2U5p6d5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwaS56anlzLnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iNlOaeneW9seinhlRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Jyc5p6cVFZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdnYubWlndW90di5uZXQvbS9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+icnOaenFRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi57Gz5p2l5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzQyLjUxLjM3LjE2MToyMzQ2L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Gz5p2l5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi54yr5ZKqVFZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMTA2LjEyLjExMy45MDo2NTY1L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54yr5ZKqVFYucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnsbPlpYdUVlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly93d3cuczZlcDMudG9wL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Gz5aWHVFYucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlsbHmpYLlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vZHk2LmRjZDEuY24vYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsbHmpYLlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlpKnnqbpUVlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90di50a3lzLnR2L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp56m6VFYucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLomb7nmq7op4bpopFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdHYuY210OC54eXovYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/omb7nmq7op4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlsI/nhornjKtUVlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90djIuaGV0YW95cy52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/nhornjKtUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuW9seinhumYgVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly8yMTYuOTguMTAuODUvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lvbHop4bpmIEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBdXFxuICAgICAgICB9XFxuICAgIF1cXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmkJzntKJcIixcInBhdGhcIjpcInNlYXJcIixcInJ1bGVcIjpcInZhciByZXMgPSB7fTtcXG52YXIgaXRlbXMgPSBbXTtcXG4vL+iuvue9ruaQnOe0oue6v+eoi1xcbnZhciBzc21vZGUgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLnNzbW9kZTtcXG52YXIga2V5ID0gTVlfVVJMLnNwbGl0KCckJCQnKVsxXTtcXG4vL3NldEVycm9yKGxlKTtcXG5pZiAoc3Ntb2RlID09ICcwJykge1xcbiAgICBzZXRQYWdlVGl0bGUoa2V5ICsgJyDnmoTmkJzntKLnu5PmnpwnKVxcbn07XFxudHJ5IHtcXG4gICAgdmFyIGFwcGZpbGUgPSBmZXRjaENhY2hlKCdodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQVBQLmpzb24nLCAyNCk7XFxufSBjYXRjaCAoZSkge1xcbiAgICBhcHBmaWxlID0gJyc7XFxufVxcbmlmICgvZW1vcnkvLnRlc3QoYXBwZmlsZSkpIHtcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGFwcGZpbGUpO1xcbn0gZWxzZSB7XFxuICAgIGxvZygn5b2T5YmN5Yqg6L2955qE5piv5YaF572u5pWw5o2uJyk7XFxuICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvUmVzQ29kZScsIHt9KSkucnVsZSk7XFxufTtcXG52YXIgZGxpc3QgPSBodG1sLmRhdGE7XFxuXFxuZnVuY3Rpb24gcmFuZG9tU29ydDMoYXJyKSB7XFxuICAgIC8qXFxuICAgICAgICBhcnIuc29ydChmdW5jdGlvbihhLCBiKSB7XFxuICAgICAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgLSAwLjU7XFxuICAgICAgICB9KTtcXG4gICAgKi9cXG4gICAgcmV0dXJuIGFycjtcXG59XFxuXFxuLy/miZPkubHpobrluo9cXG52YXIgcmFuZG9tID0gdHJ1ZTtcXG5pZiAoc3Ntb2RlID09ICcxJyB8fCBNWV9UWVBFID09ICdob21lJykge1xcbiAgICBmb3IgKHZhciBsID0gMDsgbCA8IGRsaXN0Lmxlbmd0aDsgbCsrKSB7XFxuICAgICAgICB2YXIgbGlzdCA9IGRsaXN0W2xdLmxpc3Q7XFxuICAgICAgICB2YXIgdHl0aXQgPSBkbGlzdFtsXS50aXRsZTtcXG4gICAgICAgIGlmIChyYW5kb20pIHtcXG4gICAgICAgICAgICBsZXQgayA9IGdldFZhcihNWV9SVUxFLnRpdGxlICsgXFxcIi1cXFwiICsgdHl0aXQsIFxcXCJcXFwiKTtcXG4gICAgICAgICAgICBpZiAoayA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICBsaXN0ID0gcmFuZG9tU29ydDMobGlzdClcXG4gICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudGl0bGUgKyBcXFwiLVxcXCIgKyB0eXRpdCwgSlNPTi5zdHJpbmdpZnkobGlzdCkpXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgbGlzdCA9IEpTT04ucGFyc2UoaylcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuXFxuXFxuICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogTVlfVFlQRSA9PSBcXFwiaG9tZVxcXCIgPyBcXFwi54K55Ye75p+l55yLIFxcXCIgKyB0eXRpdCArIFxcXCIg5YiG57G7IOKAnOKAnFxcXCIgKyBrZXkgKyBcXFwi4oCd4oCdIOeahOiBmuaQnOe7k+aenFxcXCIgOiBcXFwi54K55Ye75p+l55yLIFxcXCIgKyB0eXRpdCArIFxcXCIg5YiG57G7IFxcXCIgKyBrZXkgKyBcXFwiIOeahOiBmuaQnOe7k+aenFxcXCIsXFxuICAgICAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5JCQkJyArIGtleSArICckJCRmeXBhZ2UkJCQnKS5ydWxlKChsaXN0LCB0eXRpdCkgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcbiAgICAgICAgICAgICAgICB2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxuICAgICAgICAgICAgICAgIHZhciBtb250aCA9IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/IFxcXCIwXFxcIiArIChub3dEYXRlLmdldE1vbnRoKCkgKyAxKSA6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDE7XFxuICAgICAgICAgICAgICAgIHZhciBkYXkgPSBub3dEYXRlLmdldERhdGUoKSA8IDEwID8gXFxcIjBcXFwiICsgbm93RGF0ZS5nZXREYXRlKCkgOiBub3dEYXRlLmdldERhdGUoKTtcXG4gICAgICAgICAgICAgICAgdmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcbiAgICAgICAgICAgICAgICAvL+WPluaQnOe0oue6v+eoi+iuvue9rlxcbiAgICAgICAgICAgICAgICB2YXIgc3N4YyA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicsIHt9KSkuc3Njb3VudDtcXG4gICAgICAgICAgICAgICAgLy/orr7nva7otoXml7bml7bpl7TvvIzotorlsI/otorlv6vvvIzljZXkvY3mr6vnp5JcXG4gICAgICAgICAgICAgICAgdmFyIHRpbWVvdSA9IGdldEl0ZW0oJ2FwcHRpbW91dCcsICczMDAwJyk7XFxuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBNWV9VUkwuc3BsaXQoJyQkJCcpWzFdO1xcbiAgICAgICAgICAgICAgICB2YXIgbnVtID0gTVlfVVJMLnNwbGl0KCckJCQnKVsyXTtcXG4gICAgICAgICAgICAgICAgdmFyIGxlID0gcGFyc2VJbnQobnVtICogc3N4Yyk7XFxuICAgICAgICAgICAgICAgIHZhciBEYXRhID0gW107XFxuICAgICAgICAgICAgICAgIHZhciBUaXQgPSBbXTtcXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IGxlIC0gc3N4YzsgaiA8IGxlOyBqKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChqIDwgbGlzdC5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGluayA9IGxpc3Rbal0udXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXRpdCA9IGxpc3Rbal0ubXVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1RWL2kudGVzdChsaXRpdCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC8xOWp4fDI5M3lzfHpoYWlrYW55c3xqaVxcXFwtZGluZ1xcXFwtaGV8cGhvZWJlfHl1bmJvXFxcXC5ieGlufGxhbnJlbnRrfGhldGFveXN8cHh1bnwxMzlcXFxcLjE1NXxma2tkeXwwNTYxNTh8YWl4aXhpfHJ1b3hpbmV3fGZlaWZhbjEyM3xzaXFpdHYvLnRlc3QobGluaykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmem09JyArIGtleSArICcmcGFnZT0xJztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmd2Q9JyArIGtleSArICcmcGFnZT0xJztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvZGlqaWF4aWEvLnRlc3QobGluaykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSAnaHR0cDovL3d3dy5kaWppYXhpYS5jb20vYXBpLnBocC9hcHAvJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhtdXJsID0gbGluayArICdzZWFyY2g/cGc9MSZ0ZXh0PScgKyBrZXkgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGluay5pbmRleE9mKCd4Z2FwcC5waHAvdjEvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnc2VhcmNoP3BnPTEmdGV4dD0nICsga2V5O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdChsaW5rKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnL2xpc3Q/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9JyArIGtleTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhtdXJsID0gbGluayArICc/cGFnZT0xJmxpbWl0PTEwJndkPScgKyBrZXk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9EYXRhLnB1c2goe3VybDogaG11cmwsb3B0aW9uczoge2hlYWRlcnM6IHtcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcIn0sdGltZW91dDogdGltZW91fX0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogaG11cmwsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IGxpbmsuaW5kZXhPZihcXFwibW9nYWlfYXBpXFxcIikgIT0gLTEgPyBcXFwiRGFydC8yLjE0IChkYXJ0OmlvKVxcXCIgOiBcXFwib2todHRwLzQuMS4wXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IHRpbWVvdVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgVGl0LnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXQ6IGxpc3Rbal0udGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IGxpbmssXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cG5tOiBsaXRpdFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgfSAvL2lmXFxuICAgICAgICAgICAgICAgIH0gLy9mb3IgalxcblxcbiAgICAgICAgICAgICAgICAvLy0tLeS7o+eggeWIhueVjOe6vy0tLS0gXFxuICAgICAgICAgICAgICAgIGlmIChEYXRhICE9ICcnKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgYmh0bWwgPSBiYXRjaEZldGNoKERhdGEpO1xcbiAgICAgICAgICAgICAgICAgICAgLy93cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcEVycm9yLmpzb25cXFwiLEpTT04uc3RyaW5naWZ5KGJodG1sKSk7XFxuXFxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGJodG1sLmxlbmd0aDsgaysrKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBiaHRtbFtrXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhodG1sKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sID0gaHRtbC5zdWJzdHJpbmcoMCwgMikgPT0gJ1xcXFxyXFxcXG4nID8gaHRtbC5yZXBsYWNlKCdcXFxcclxcXFxuJywgJycpIDogaHRtbDtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvYnR3YWYvLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGZldGNoKERhdGFba10udXJsICsgJyZidHdhZicgKyBodG1sLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwge30pO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbCA9PSBcXFwiXFxcIiB8fCBodG1sID09IG51bGwgfHwgaHRtbC5zdWJzdHJpbmcoMCwgNSkgPT0gJ2Vycm9yJyB8fCAhaHRtbC5zdGFydHNXaXRoKCd7JykpIHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogVGl0W2tdLnRpdCArICcgJyArICfmnKrmkJzntKLliLDvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBEYXRhW2tdLnVybCArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5sZW5ndGggPCA4MCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBUaXRba10udGl0ICsgJyAnICsgJ+i/lOWbnuaVsOaNruS4jeWujOaVtO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IERhdGFba10udXJsICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGh0bWwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhodG1sKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHR5cGV0ID0gVGl0W2tdLnR5cG5tO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGRvbWluID0gVGl0W2tdLmxpbms7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChodG1sLmxpc3QpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gaHRtbC5saXN0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS5saXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YS5saXN0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3QgPSBodG1sLmRhdGE7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCA8IDEpIHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBUaXRba10udGl0ICsgJyAnICsgJ+WIl+ihqOWwj+S6jjHvvIzml6Dms5XlsZXnpLrvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogRGF0YVtrXS51cmwgKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9UVi9pLnRlc3QodHlwZXQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udGl0bGU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnBpYztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IGxpc3RbaV0ubmV4dGxpbms7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnN0YXRlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZG9taW4uaW5kZXhPZignYXBpLnBocC9hcHAvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS52b2RfcGljO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9mYW50dWFuLy50ZXN0KHRkb21pbikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAndmlkZW9fZGV0YWlsP2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgY29uPWxpc3RbaV0udHlwZS50eXBlX2RlcztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZG9taW4uaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAndmlkZW9fZGV0YWlsP2lkPScgKyBsaXN0W2ldLnZvZF9pZDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgY29uPWxpc3RbaV0udHlwZS50eXBlX2RlcztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS52b2RfcGljO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdCh0ZG9taW4pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICcvZGV0YWlsSUQ/dm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICcvZGV0YWlsP2tleT0nICsgZGF0ZVN0ciArICcmdm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgY29uPWxpc3RbaV0udHlwZS50eXBlX2RlcztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS5zdGF0ZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyh2aWQpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogTVlfVFlQRSA9PSBcXFwiaG9tZVxcXCIgPyB0aXRsZS5yZXBsYWNlKGtleSwgJ+KAnOKAnCcgKyBrZXkgKyAn4oCd4oCdJykgKyAnXFxcXG4nICsgcmVtIDogdGl0bGUgKyByZW0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHBpYyArICdAUmVmZXJlcj0nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQodGRvbWluLmluZGV4T2YoXFxcIm1vZ2FpX2FwaVxcXCIpICE9IC0xID8gdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nIDogdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRAb2todHRwLzQuMS4wfScpLnJ1bGUoKHR5cGV0KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSBbXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBteXVybCA9IE1ZX1VSTC5tYXRjaCgvKFtcXFxcU10qPzpcXFxcL1xcXFwvW1xcXFxTXSo/KVxcXFwvLylbMV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1RWL2kudGVzdCh0eXBldCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBtb3ZsaXN0Jywge30pKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhID0gaXRlbXM7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHR5cGV0KSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb250ZW50OiByZW0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IHR5dGl0ICsgJyA9PiAnICsgVGl0W2tdLnRpdCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gLy9mb3IgaVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IC8vaWYgbGlzdC5sZW5ndGhcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IC8vZm9yIGsgYmh0bWwubGVuZ3RoXFxuICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXG4gICAgICAgICAgICAgICAgc2V0SG9tZVJlc3VsdChyZXMpO1xcbiAgICAgICAgICAgIH0sIGxpc3QsIHR5dGl0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgIH0pO1xcblxcbiAgICB9IC8vZm9yIGlcXG59OyAvL2VuZCBtb2RlIDFcXG5cXG5pZiAoc3Ntb2RlID09ICcwJyB8fCBNWV9UWVBFID09ICdob21lJykge1xcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRsaXN0Lmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICB2YXIgbGlzdCA9IGRsaXN0W2ldLmxpc3Q7XFxuICAgICAgICB2YXIgdHl0aXQgPSBkbGlzdFtpXS50aXRsZTtcXG4gICAgICAgIGlmIChyYW5kb20pIHtcXG4gICAgICAgICAgICBsZXQgayA9IGdldFZhcihNWV9SVUxFLnRpdGxlICsgXFxcIi1cXFwiICsgdHl0aXQsIFxcXCJcXFwiKTtcXG4gICAgICAgICAgICBpZiAoayA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICBsaXN0ID0gcmFuZG9tU29ydDMobGlzdClcXG4gICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudGl0bGUgKyBcXFwiLVxcXCIgKyB0eXRpdCwgSlNPTi5zdHJpbmdpZnkobGlzdCkpXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgbGlzdCA9IEpTT04ucGFyc2UoaylcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogTVlfVFlQRSA9PSBcXFwiaG9tZVxcXCIgPyBcXFwiIOmAieaLqeS4gOS4qiBcXFwiICsgZGxpc3RbaV0udGl0bGUgKyBcXFwiIOmhueebruafpeeciyDigJzigJxcXFwiICsga2V5ICsgXFxcIuKAneKAnSDnmoTmkJzntKLnu5PmnpxcXFwiIDogXFxcIiDpgInmi6nkuIDkuKogXFxcIiArIGRsaXN0W2ldLnRpdGxlICsgXFxcIiDpobnnm67mn6XnnIsgXFxcIiArIGtleSArIFxcXCIg55qE5pCc57Si57uT5p6cXFxcIixcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgIH0pO1xcblxcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XFxuICAgICAgICAgICAgdmFyIGxpbmsgPSBsaXN0W2pdLnVybDtcXG4gICAgICAgICAgICB2YXIgbGl0aXQgPSBsaXN0W2pdLm11cmw7XFxuICAgICAgICAgICAgaWYgKC9UVi9pLnRlc3QobGl0aXQpKSB7XFxuICAgICAgICAgICAgICAgIGlmICgvMTlqeHwyOTN5c3x6aGFpa2FueXN8amlcXFxcLWRpbmdcXFxcLWhlfHBob2ViZXx5dW5ib1xcXFwuYnhpbnxsYW5yZW50a3xoZXRhb3lzfHB4dW58MTM5XFxcXC4xNTV8ZmtrZHl8MDU2MTU4fGFpeGl4aXxydW94aW5ld3xmZWlmYW4xMjN8c2lxaXR2Ly50ZXN0KGxpbmspKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJz9hYz1saXN0JnptPScgKyBrZXkgKyAnJnBhZ2U9ZnlwYWdlJztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmd2Q9JyArIGtleSArICcmcGFnZT1meXBhZ2UnO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgaWYgKC9kaWppYXhpYS8udGVzdChsaW5rKSkge1xcbiAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC8nXFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgIGlmIChsaW5rLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJ3NlYXJjaD9wZz1meXBhZ2UmdGV4dD0nICsga2V5ICsgJyZ0b2tlbj0nO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmsuaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJ3NlYXJjaD9wZz1meXBhZ2UmdGV4dD0nICsga2V5O1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdChsaW5rKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnL2xpc3Q/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9JyArIGtleTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhtdXJsID0gbGluayArICc/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9JyArIGtleTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGxpc3Rbal0udGl0bGUsXFxuICAgICAgICAgICAgICAgIGltZzogbGlzdFtqXS5pbWcsXFxuICAgICAgICAgICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSN4IycgKyBobXVybCArICcjeCMnICsgbGluayArICcjeCMnICsgbGl0aXQgKyAnI3gjJyArIGtleSArICcjeCMnKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL3NlYXJlcmonKTtcXG4gICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl9yb3VuZF9zbWFsbF80J1xcbiAgICAgICAgICAgICAgICAvL2NvbF90eXBlOiAndGV4dF8zJ1xcbiAgICAgICAgICAgICAgICAvL2xpbms6bGluayxcXG4gICAgICAgICAgICAgICAgLy90eXBlOiBpXFxuICAgICAgICAgICAgfSk7XFxuXFxuICAgICAgICB9IC8vZm9yIGpcXG5cXG5cXG4gICAgfSAvL2ZvciBpXFxuXFxufSAvL2VuZCBtb2RlIDBcXG5cXG5cXG5yZXMuZGF0YSA9IGl0ZW1zO1xcbnNldEhvbWVSZXN1bHQocmVzKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIkFQUOWIhuexu+WIl+ihqFwiLFwicGF0aFwiOlwiYXBwbGlzdGRhdGFcIixcInJ1bGVcIjpcImlmIChodG1sLmxpc3QpIHtcXG4gICAgdmFyIGxpc3QgPSBodG1sLmxpc3Q7XFxufSBlbHNlIGlmIChodG1sLmRhdGEgJiYgaHRtbC5kYXRhLmxpc3QpIHtcXG4gICAgdmFyIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXG59IGVsc2Uge1xcbiAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YTtcXG59XFxuLy9sb2cobGlzdCk7XFxuZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxuICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxuICAgIHZhciBpbWcgPSBsaXN0W2ldLnZvZF9waWM7XFxuICAgIHZhciB1cmwgPSBsaXN0W2ldLnZvZF9pZDtcXG4gICAgdmFyIGRlc2MgPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcbiAgICB2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxuICAgIHZhciBtb250aCA9IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/IFxcXCIwXFxcIiArIChub3dEYXRlLmdldE1vbnRoKCkgKyAxKSA6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDE7XFxuICAgIHZhciBkYXkgPSBub3dEYXRlLmdldERhdGUoKSA8IDEwID8gXFxcIjBcXFwiICsgbm93RGF0ZS5nZXREYXRlKCkgOiBub3dEYXRlLmdldERhdGUoKTtcXG4gICAgdmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcbiAgICBpZiAoaHRtbC5saXN0KSB7XFxuICAgICAgICB2YXIgbGluayA9IG11cmwgKyAndmlkZW9fZGV0YWlsP2lkPScgKyB1cmwgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcbiAgICAgICAgaWYgKG11cmwuc2VhcmNoKC9tb2dhaV9hcGkvKSAhPSAtMSkge1xcbiAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICcvZGV0YWlsP2tleT0nICsgZGF0ZVN0ciArICcmdm9kX2lkPScgKyB1cmwgKyAnJnJlbF9saW1pdD0xMDtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbD9rZXk9JyArIGRhdGVTdHIgKyAnJnZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QG9raHR0cC80LjEuMH0nO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXG4gICAgfTtcXG4gICAgaWYgKC9mYW50dWFuLy50ZXN0KG11cmwpKSB7XFxuICAgICAgICB2YXIgbGluayA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHVybCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgIH0gZWxzZSBpZiAoL2lvcGVueXVuLy50ZXN0KG11cmwpKSB7XFxuICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXG4gICAgfSBlbHNlIGlmICgvZGlqaWF4aWEvLnRlc3QobXVybCkpIHtcXG4gICAgICAgIHZhciBsaW5rID0gJ2h0dHA6Ly93d3cuZGlqaWF4aWEuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsO1xcbiAgICB9XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgcGljX3VybDogaW1nICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICB1cmw6ICQobGluaykucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgdmFyIHJlcyA9IHt9O1xcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJycsXFxuICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXG4gICAgICAgICAgICAgICAgdXJsOiAnJyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd4NV93ZWJ2aWV3X3NpbmdsZSdcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICByZWZyZXNoWDVXZWJWaWV3KCcnKTtcXG4gICAgICAgICAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXG4gICAgICAgICAgICB2YXIgbXl1cmwgPSBNWV9VUkwubWF0Y2goLyhbXFxcXFNdKj86XFxcXC9cXFxcL1tcXFxcU10qPylcXFxcLy8pWzFdO1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcG1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXG4gICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxuICAgICAgICB9KSxcXG4gICAgICAgIGRlc2M6IGRlc2MsXFxuICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZSdcXG4gICAgfSk7XFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiVFbliJfooajop6PmnpBcIixcInBhdGhcIjpcInR2bGlzdGRhdGFcIixcInJ1bGVcIjpcInZhciBsaXN0ID0gaHRtbC5kYXRhO1xcbmZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcbiAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcbiAgICB2YXIgaW1nID0gbGlzdFtpXS5waWM7XFxuICAgIHZhciB1cmwgPSBsaXN0W2ldLm5leHRsaW5rO1xcbiAgICB2YXIgZGVzYyA9IGxpc3RbaV0uc3RhdGU7XFxuICAgIHVybCA9IHVybC5zdGFydHNXaXRoKCdodHRwJykgPyB1cmwgOiBtdXJsICsgJz9hYz1kZXRhaWwmaWRzPScgKyB1cmw7XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgcGljX3VybDogaW1nICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICB1cmw6ICQodXJsKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgdmFyIGl0ZW1zID0gW107XFxuICAgICAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGdldFJlc0NvZGUoKSk7XFxuICAgICAgICAgICAgdmFyIG15dXJsID0gTVlfVVJMLm1hdGNoKC8oW1xcXFxTXSo/OlxcXFwvXFxcXC9bXFxcXFNdKj8pXFxcXC8vKVsxXTtcXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcbiAgICAgICAgICAgICAgICBkZXNjOiAnMjU1JiZmbG9hdCcsXFxuICAgICAgICAgICAgICAgIHVybDogJycsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgcmVmcmVzaFg1V2ViVmlldygnJyk7XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXG4gICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxuICAgICAgICB9KSxcXG4gICAgICAgIGRlc2M6IGRlc2MsXFxuICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZSdcXG4gICAgfSk7XFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiQVBQ566A5LuL5LiO6YCJ6ZuGXCIsXCJwYXRoXCI6XCJhcHBtb3ZsaXN0XCIsXCJydWxlXCI6XCJpZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgdmFyIGNvbnRzID0gaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxuICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxuICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgdmFyIHRhYnMgPSBodG1sLmRhdGEudm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxuICAgIH1cXG59IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcbiAgICB2YXIgY29udHMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcjtcXG4gICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxuICAgICAgICB2YXIgdGFicyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfcGxheV9mcm9tLnNwbGl0KCckJCQnKTtcXG4gICAgfVxcbn0gZWxzZSB7XFxuICAgIHZhciBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV9saXN0O1xcbiAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXG4gICAgICAgIHZhciB0YWJzID0gaHRtbC5kYXRhLnZvZF9wbGF5X2Zyb20uc3BsaXQoJyQkJCcpO1xcbiAgICB9XFxufVxcblxcbi8vbG9nKGh0bWwpO1xcblxcbnZhciB0aHVtYiA9IGh0bWwuZGF0YS52b2RfaW5mbyA/IGh0bWwuZGF0YS52b2RfaW5mby52b2RfcGljIDogaHRtbC5kYXRhLnZvZF9waWM7XFxudmFyIGRlcyA9IGh0bWwuZGF0YS52b2RfaW5mbyA/IGh0bWwuZGF0YS52b2RfaW5mby52b2RfY29udGVudCA6IGh0bWwuZGF0YS52b2RfY29udGVudDtcXG5pdGVtcy5wdXNoKHtcXG4gICAgdGl0bGU6ICfliafmg4XnroDku4vvvJonLFxcbiAgICBkZXNjOiBkZXMsXFxuICAgIHBpY191cmw6IHRodW1iLFxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGRlcykgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IGRlcyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG4gICAgICAgIH1dKTtcXG4gICAgfSwgZGVzKSxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXG59KTtcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9kbnBsdWdpbicsIHt9KSkucnVsZSk7XFxuXFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCc4oCc5o6S5bqP4oCd4oCdJyxcXG4gICAgdXJsOiBcXFwiaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0TXlWYXIoJ2FwcG1hcHBzb3J0JywnMScpPT0nMSc/JzAnOicxJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdcXFwiLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSk7XFxudmFyIHRpdGxlID0gTVlfVVJMO1xcbmZvciAodmFyIGsgPSAwOyBrIDwgY29udHMubGVuZ3RoOyBrKyspIHtcXG4gICAgLy9zZXRFcnJvcihsaXN0Lmxlbmd0aCk7XFxuICAgIGlmIChodG1sLmRhdGEudm9kX3VybF93aXRoX3BsYXllcikge1xcbiAgICAgICAgdmFyIHB0YWIgPSBjb250c1trXS5jb2RlID8gY29udHNba10uY29kZSA6IHRhYnNba107XFxuICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF9pbmZvICYmIGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICB2YXIgcHRhYiA9IGNvbnRzW2tdLmNvZGUgPyBjb250c1trXS5jb2RlIDogdGFic1trXTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBwdGFiID0gY29udHNba10uZnJvbSA/IGNvbnRzW2tdLmZyb20gOiB0YWJzW2tdO1xcbiAgICB9XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IChnZXRNeVZhcih0aXRsZSwgJzAnKSA9PSBrID8gJ/CfkYnwn4+7JyA6ICcnKSArIHB0YWIsXFxuICAgICAgICB1cmw6IGBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRNeVZhcignYCArIHRpdGxlICsgXFxcIicsICdcXFwiICsgayArIGAnKTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdgLFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICB9KTtcXG5cXG59XFxuXFxuXFxuXFxudmFyIGppZWsgPSAnJztcXG4vL2ZvciAodmFyIGkgPSAwOyBpIDwgY29udHMubGVuZ3RoOyBpKyspIHtcXG5pZiAoZ2V0TXlWYXIoJ2FwcG1hcHBzb3J0JywgJzEnKSA9PSAnMScpIHtcXG4gICAgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmxzKSB7XFxuICAgICAgICB2YXIgbGlzdCA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmxzO1xcbiAgICB9IGVsc2UgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmwpIHtcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybC5zcGxpdChcXFwiI1xcXCIpO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIGxpc3QgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uc3BsaXQoXFxcIiNcXFwiKTtcXG4gICAgfTtcXG59IGVsc2Uge1xcbiAgICBpZiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybHMpIHtcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybHMucmV2ZXJzZSgpO1xcbiAgICB9IGVsc2UgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmwpIHtcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybC5zcGxpdChcXFwiI1xcXCIpLnJldmVyc2UoKTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnNwbGl0KFxcXCIjXFxcIikucmV2ZXJzZSgpO1xcbiAgICB9XFxufTtcXG4vL3NldEVycm9yKGxpc3QubGVuZ3RoKTtcXG5pZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgdmFyIHB0YWIgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uY29kZSA/IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5jb2RlIDogdGFic1tnZXRNeVZhcih0aXRsZSwgJzAnKV07XFxufSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgdmFyIHB0YWIgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uY29kZSA/IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5jb2RlIDogdGFic1tnZXRNeVZhcih0aXRsZSwgJzAnKV07XFxufSBlbHNlIHtcXG4gICAgdmFyIHB0YWIgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uZnJvbSA/IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5mcm9tIDogdGFic1tnZXRNeVZhcih0aXRsZSwgJzAnKV07XFxufVxcbi8qXFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHB0YWIgKyAnIPCflJcnICsgW2kgKyAxXSArICcvJyArIFtjb250cy5sZW5ndGhdICsgXFxcIuKAnOKAnOKGk+KGkeKAneKAnVxcXCIsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0VmFyKCdhcHBtYXBwc29ydCcsJzEnKT09JzEnPycwJzonMScpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnXFxcIixcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgfSk7Ki9cXG5cXG5mb3IgKHZhciBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXG4gICAgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmxzKSB7XFxuICAgICAgICB2YXIgdmxpbmsgPSBsaXN0W2pdLnVybC5yZXBsYWNlKC8jNDU2Iy9nLCAnaHR0cCcpLnJlcGxhY2UoLyMxMjMjL2csICcuJykucmVwbGFjZSgvIzc4OSMvZywgJzonKTtcXG4gICAgICAgIHZhciB0aXRsZSA9IGxpc3Rbal0ubmFtZTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciB2bGluayA9IGxpc3Rbal0uc3BsaXQoXFxcIiRcXFwiKVsxXTtcXG4gICAgICAgIHZhciB0aXRsZSA9IGxpc3Rbal0uc3BsaXQoXFxcIiRcXFwiKVswXTtcXG4gICAgfVxcbiAgICB0cnkge1xcbiAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICAgICAgdmFyIGppZWsgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGFyc2VfYXBpO1xcbiAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgICAgICAgICB2YXIgamllayA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wYXJzZV9hcGk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UyICYmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UyKS5pbmRleE9mKFxcXCI9XFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgdmFyIGppZWsgPSAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMikubWF0Y2goLy4qP3VybD18Lio/dj18Lio/dmlkPS8pWzBdLnJlcGxhY2UoXFxcIi4uXFxcIiwgXFxcIi5cXFwiKS5yZXBsYWNlKCdqc29uYnMnLCAnJyk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UgJiYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSkuaW5kZXhPZihcXFwiPVxcXCIpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgIHZhciBqaWVrID0gKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSkubWF0Y2goLy4qP3VybD18Lio/dj18Lio/dmlkPS8pWzBdLnJlcGxhY2UoXFxcIi4uXFxcIiwgXFxcIi5cXFwiKTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICB2YXIgamllayA9IFxcXCJcXFwiO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvL3NldEVycm9yKGppZWspOyAgICAgICAgICAgICAgICBcXG4gICAgICAgIH1cXG4gICAgfSBjYXRjaCAoZSkge31cXG4gICAgLy9qaWVr5ou85o6lXFxuICAgIGlmIChqaWVrICE9ICcnICYmIGppZWsgIT0gbnVsbCkge1xcbiAgICAgICAgaWYgKGppZWsuc3Vic3RyaW5nKDAsIDQpID09ICdodHRwJykge1xcbiAgICAgICAgICAgIGppZWsgPSBqaWVrO1xcbiAgICAgICAgfSBlbHNlIGlmIChqaWVrLnN1YnN0cmluZygwLCAyKSA9PSAnXFxcXC9cXFxcLycpIHtcXG4gICAgICAgICAgICBqaWVrID0gJ2h0dHBzOicgKyBqaWVrO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgamllayA9IFxcXCJcXFwiO1xcbiAgICB9XFxuICAgIC8v5a+55aSx5pWI5o6l5Y+j6L+b6KGM5pu/5o2iXFxuICAgIGlmICgvY29rZW12Ly50ZXN0KG15dXJsKSAmJiAvY29rZXFpZXx4aW58OTBtbS8udGVzdChwdGFiKSkge1xcbiAgICAgICAgamllayA9ICdodHRwczovL3BsYXllci45MG1tLm1lL3BsYXkucGhwP3VybD0nO1xcbiAgICB9IGVsc2UgaWYgKC9qc29uXFxcXC5tM3U4XFxcXC50dnx3d3dcXFxcLngtblxcXFwuY2MvLnRlc3QoamllaykpIHtcXG4gICAgICAgIGppZWsgPSAnaHR0cHM6Ly9qeC5tM3U4LnR2L2ppZXhpLz91cmw9JztcXG4gICAgfSBlbHNlIGlmICgvY2p0NTIxLy50ZXN0KG15dXJsKSkge1xcbiAgICAgICAgamllayA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZTtcXG4gICAgfSBlbHNlIGlmIChqaWVrLmluZGV4T2YoJ2pwZy5ob3UubHUvam0vemEvaW5kZXgucGhwJykgIT0gLTEpIHtcXG4gICAgICAgIGppZWsgPSAnaHR0cDovL3ZpcC5tZW5neC52aXAvaG9tZS9hcGk/dHlwZT15cyZ1aWQ9MzI0OTY5NiZrZXk9YWVmcXJ0dXd4eUVGSEtOT1FZJnVybD0nO1xcbiAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ3JlbnJlbm1pJyAmJiBqaWVrLnNlYXJjaCgvamhkeXcvKSAhPSAtMSkge1xcbiAgICAgICAgamllayA9ICdodHRwOi8vd3d3LjEwODBrYW4uY2MvamlleGkvcnJtaS5waHA/dXJsPSc7XFxuICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnZnFmaWxtJyAmJiBqaWVrLnNlYXJjaCgvamhkeXcvKSAhPSAtMSkge1xcbiAgICAgICAgamllayA9ICdodHRwOi8vd3d3LjEwODBrYW4uY2MvamlleGkvZnEucGhwP3VybD0nO1xcbiAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ3Jyc3AnICYmIGppZWsuc2VhcmNoKC9qaGR5dy8pICE9IC0xKSB7XFxuICAgICAgICBqaWVrID0gJ2h0dHA6Ly93d3cuMTA4MGthbi5jYy9qaWV4aS9yci5waHA/dXJsPSc7XFxuICAgIH0gZWxzZSBpZiAoL21pYW9wYXJ0eS8udGVzdChwdGFiKSAmJiBteXVybC5zZWFyY2goL2Z1bjRrLykgIT0gLTEpIHtcXG4gICAgICAgIGppZWsgPSAnaHR0cHM6Ly93d3cuZnVuNGsuY29tL2FwbGF5ZXIvP3VybD0nO1xcbiAgICB9IGVsc2UgaWYgKC9qaHl1blxcXFwucGhwLy50ZXN0KGppZWspKSB7XFxuICAgICAgICBqaWVrID0gamllay5yZXBsYWNlKCdodHRwOi8vc3ZpcC5qaHl1bi5qeC5jbjoxMjM0L2poeXVuLnBocD91cmw9JywgJ2h0dHBzOi8vYXBpLmpoZHl3LnZpcC8/dXJsPScpO1xcbiAgICB9O1xcbiAgICAvL+aJk+WNsOaOpeWPo1xcbiAgICB0cnkge1xcbiAgICAgICAgaWYgKGogPT0gJzAnKSB7XFxuICAgICAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICAgICAgICAgIGxvZygnXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcbicgKyAn6Kej5p6Q5o6l5Y+j77yaXFxcXG4nICsgamllayk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgICAgICAgICAgICAgbG9nKCdcXFxcbue6v+i3r++8micgKyBwdGFiICsgJ1xcXFxu6KeG6aKR77yaJyArIHZsaW5rICsgJ1xcXFxuJyArICfop6PmnpDmjqXlj6PvvJpcXFxcbicgKyBqaWVrKTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBpZiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMiAmJiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMikuaW5kZXhPZihcXFwiPVxcXCIpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICBsb2coJ1xcXFxu57q/6Lev77yaJyArIHB0YWIgKyAnXFxcXG7op4bpopHvvJonICsgdmxpbmsgKyAnXFxcXG4nICsgJ+ino+aekOaOpeWPo++8mlxcXFxuJyArIGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZTIucmVwbGFjZSgvXFxcXC5cXFxcLi9nLCBcXFwiLlxcXCIpLnJlcGxhY2UoL1xcXFwsL2csIFxcXCJcXFxcblxcXFxuXFxcIikpO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSAmJiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlKS5pbmRleE9mKFxcXCI9XFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxvZygnXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcbicgKyAn6Kej5p6Q5o6l5Y+j77yaXFxcXG4nICsgY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlLnJlcGxhY2UoL1xcXFwuXFxcXC4vZywgXFxcIi5cXFwiKS5yZXBsYWNlKC9cXFxcLC9nLCBcXFwiXFxcXG5cXFxcblxcXCIpKTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGxvZygnXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcbicgKyAn6Kej5p6Q5o6l5Y+j77yaXFxcXG4nICsgamllayk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgLy9zZXRFcnJvcihqaWVrKTsgICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9IGNhdGNoIChlKSB7fVxcbiAgICAvL+WjsOaYjumTvuaOpVxcbiAgICB2YXIgbGluayA9IGppZWsgKyB2bGluaztcXG4gICAgLypcXG4gICAgaWYgKC9cXFxcLm0zdTh8XFxcXC5tcDR8b2JqXFxcXC90b3MvLnRlc3QodmxpbmspICYmIC9odHRwLy50ZXN0KHZsaW5rKSkge1xcbiAgICAgICAgbGluayA9IHZsaW5rO1xcbiAgICB9XFxuICAgICovXFxuICAgIC8vbG9nKGxpbmspO1xcbiAgICB0aXRsZSA9IHRpdGxlLm1hdGNoKC8o56ysfFxcXFxkfC0pKijpm4Z86K+dfOacnykvZykgPyB0aXRsZS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpIDogdGl0bGU7XFxuICAgIGlmIChsaXN0Lmxlbmd0aCA8PSA0KSB7XFxuICAgICAgICB2YXIgY2x0ID0gJ3RleHRfMic7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB2YXIgY2x0ID0gaXNOYU4odGl0bGUpID8gJ2ZsZXhfYnV0dG9uJyA6ICd0ZXh0XzUnXFxuICAgIH07XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5JykubGF6eVJ1bGUoKHB0YWIsIGxpbmssIG15dXJsLCB2bGluaykgPT4ge1xcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBvcGVudXJsKHJlc3VybCkge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VybC5tYXRjaCgveW91a3V8bWd0dnxpeGlndWF8cXEuY29tfHFpeWl8bWlndXxiaWxpYmlsaXxzb2h1fHBwdHZ8bGV8MTkwNS5jb20vKSAmJiByZXN1cmwuc2VhcmNoKC9odG1sfGJpbGliaWxpfGl4aWd1YS8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9odG1s572R6aG16LCD55So5pat5o+S6Kej5p6QXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVuRG4gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLmVuRG47XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuRG4gPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn6LCD55So5pat5o+S6Kej5p6QaHRtbCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXCJ2YXIgY29uZmlnID1cXFwiICsgZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKHJlc3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcLm0zdTh8XFxcXC5tcDR8b2JqXFxcXC90b3N8bmV0ZWFzZVxcXFwuY29tLy50ZXN0KHJlc3VybCkgJiYgL2h0dHAvLnRlc3QocmVzdXJsKSAmJiAhL1xcXFwuaHRtbC8udGVzdChyZXN1cmwpICYmICEvXFxcXD1odHRwLy50ZXN0KHJlc3VybCkgJiYgcHRhYiAhPSAnZHVvZHVvenknKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC93a2ZpbGUvLnRlc3QocmVzdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdXJsICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99J1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAvXFxcXD0vLnRlc3QocmVzdXJsKSA/IHJlc3VybC5zcGxpdCgnPScpWzFdIDogcmVzdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v6LCD55So5pat5o+S6YCa55So5Ye95pWw6Kej5p6QXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVuRG4gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLmVuRG47XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuRG4gPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn6LCD55So5pat5o+S6YCa55So5Ye95pWw6Kej5p6QXFxcXG4nICsgcHRhYiArICco6YCa55So5Ye95pWwKScpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXCJ2YXIgY29uZmlnID1cXFwiICsgZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHB0YWIgKyAnKOmAmueUqOWHveaVsCknO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGFyc2VTW25hbWVdKHJlc3VybCwgbXl1cmwpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnZHVvZHVvenknKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoZ2V0Q3J5cHRvSlMoKSk7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIERlKHdvcmQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UobWQ1KCdyWGpXdlhsNicpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZSgnTlhiSG9XSmJwc0VPaW44YicpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ3J5cHRvSlMuQUVTLmRlY3J5cHQod29yZCwgYSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2OiB0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIGRkenkgPSAnYWRIdVJvMGRjdUhvTTE2M0wxeTQnICsgYmFzZTY0RW5jb2RlKHNyY3VybCkuc2xpY2UoMTApO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2h0dHBzOi8vYm8uZGQ1MjAuY2MveHBsYXkvYXBpLnBocCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRkd3kgPSBmZXRjaCgnaHR0cHM6Ly9qaHBjLm1hbmR1aHUuY29tL2R1b2R1by9hcGkucGhwJywge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogTU9CSUxFX1VBXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogJ3VybD0nICsgcmVzdXJsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKGRkd3kpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGUoSlNPTi5wYXJzZShkZHd5KS51cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL21pYW9wYXJ0eS8udGVzdChwdGFiKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L21hc3Rlci94NXJ1bGUuanMnLCAyNCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoJ2h0dHBzOi8vd3d3LmZ1bjRrLmNvbS9hcGxheWVyLz91cmw9JyArIHJlc3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgIHZhciBzcmN1cmwgPSBsaW5rO1xcbiAgICAgICAgICAgICAgICAvL2xvZyhzcmN1cmwpO1xcbiAgICAgICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggeW8gOWni1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgLy/lpITnkIbmjIflrprop4bpopHkuI7nur/ot69cXG4gICAgICAgICAgICAgICAgICAgIGlmICgvXFxcXC5tM3U4fFxcXFwubXA0fG9ialxcXFwvdG9zfG5ldGVhc2VcXFxcLmNvbS8udGVzdChzcmN1cmwpICYmIC9odHRwLy50ZXN0KHNyY3VybCkgJiYgIS9cXFxcLmh0bWwvLnRlc3Qoc3JjdXJsKSAmJiAhL1xcXFw9aHR0cC8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC93a2ZpbGUvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3JjdXJsICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99J1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAvXFxcXD0vLnRlc3Qoc3JjdXJsKSA/IHNyY3VybC5zcGxpdCgnPScpWzFdIDogc3JjdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNyY3VybC5pbmRleE9mKFxcXCIvc2hhcmUvXFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGluayA9IHNyY3VybC5zcGxpdChcXFwiL3NoYXJlXFxcIilbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmYyA9IGZldGNoKHNyY3VybCwge30pLnJlcGxhY2UoXFxcInZhciBwdXJsXFxcIiwgXFxcInZhciBtYWluXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYy5pbmRleE9mKFxcXCJtYWluXFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXQgPSBmYy5tYXRjaCgvdmFyIG1haW4uKj87LylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKG1hdCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheSA9IChtYWluLmluZGV4T2YoXFxcImh0dHBcXFwiKSAhPSAtMSA/IG1haW4gOiBsaW5rICsgbWFpbik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbiA9IGZjLm1hdGNoKC91cmw6Lio/W1xcXFwnXFxcXFxcXCJdKC4qPylbXFxcXCdcXFxcXFxcIl0vKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ID0gKG1haW4uaW5kZXhPZihcXFwiaHR0cFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGxheTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneDVXZWJWaWV3Oi8vJyArIChzcmN1cmwpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvOTgzdmlwLy50ZXN0KHNyY3VybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoSGVhZGVyczogdHJ1ZVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgveFxcXFwtblxcXFwuY2N8bmhkejY2Ni8udGVzdChzcmN1cmwpICYmIC9cXFxcLmh0bWx8YmlsaWJpbGkvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHZsaW5rKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIC8v5aSE55CG5oyH5a6a6KeG6aKR5ZKM57q/6Lev57uT5p2fXFxuICAgICAgICAgICAgICAgICAgICAvLy0tLS3liIblibLnur8tLS0tLy9cXG4gICAgICAgICAgICAgICAgICAgIHZhciBzY29kZSA9IEpTT04ucGFyc2UoZmV0Y2goc3JjdXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhTdGF0dXNDb2RlOiB0cnVlXFxuICAgICAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgICAgICAvL2xvZyhzY29kZSk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAyJyB8fCBzY29kZS5zdGF0dXNDb2RlID09ICczMDEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/miZPlvIDop6PmnpDmnIkzMDLph43lrprlkJHnmoTpk77mjqVcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVkdXJsID0gc2NvZGUuaGVhZGVycy5sb2NhdGlvblswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcPWh0dHAvLnRlc3QocmVkdXJsKSAmJiAvaHRtbHxiaWxpYmlsaXxrZXlcXFxcPS8udGVzdChyZWR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZldGNoKHJlZHVybCwge30pKS51cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXD1odHRwLy50ZXN0KHJlZHVybCkgJiYgL1xcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdi8udGVzdChyZWR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1cmwuc3Vic3RyaW5nKHJlZHVybC5pbmRleE9mKCc9aHR0cCcpICsgMSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvaHR0cC8udGVzdChyZWR1cmwpICYmIC9rZXlcXFxcPXx1aWRcXFxcPS8udGVzdChyZWR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZldGNoKHJlZHVybCwge30pKS51cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgaHRtbCA9IHJlcXVlc3Qoc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IHNjb2RlLmJvZHk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC80MDQgTm90IEZvdW5kfOWkh+ahiOWQjuWPr+e7p+e7reiuv+mXri8udGVzdChodG1sKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybCh2bGluayk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXDxib2R5Ly50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn5bCd6K+V6Z2eSlNPTuaOpeWPo+e9kemhteino+aekCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L21hc3Rlci94NXJ1bGUuanMnLCAyNCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoc3JjdXJsLCBzcmN1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3JldHVybiBvcGVudXJsKHNyY3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9qc29u6Kej5p6Q55qE5Y+W6ZO+5o6lXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gaHRtbC5tYXRjaCgvW1xcXFwnXFxcXFxcXCJddXJsW1xcXFwnXFxcXFxcXCJdOi4qP1tcXFxcJ1xcXFxcXFwiXSguKj8pW1xcXFwnXFxcXFxcXCJdLylbMV0ucmVwbGFjZSgvXFxcXFxcXFwvZywgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhwdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9odHRwLy50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHRhYiA9PSAnYmlsaWJpbGknKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS8mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnbWd0dicpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvb2piay8udGVzdChwdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJzt7UmVmZXJlckBodHRwczovL2Jhay5vamJranguY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v6Z2eaHR0cOW8gOWktOeahOaJk+W8gOWOn+mTvuaOpSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHZsaW5rKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAvL+aKpemUmeWIpOaWreWkhOeQhlxcbiAgICAgICAgICAgICAgICAgICAgbG9nKCfmiafooYzmiqXplJnot7PovazlpITnkIYnKTtcXG4gICAgICAgICAgICAgICAgICAgIC8qaWYgKHNyY3VybC5zdWJzdHJpbmcoMCwgMikgPT0gJ1xcXFwvXFxcXC8nKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoJ2h0dHBzOicgKyBzcmN1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXD1odHRwLy50ZXN0KHNyY3VybCkgJiYgL1xcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXR1cm4gc3JjdXJsLnNwbGl0KCc9JylbMV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuaW5kZXhPZignPWh0dHAnKSArIDEpKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ki9cXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHZsaW5rKVxcbiAgICAgICAgICAgICAgICAgICAgLy9yZXR1cm4gJ3g1V2ViVmlldzovLycrc3JjdXJsXFxuICAgICAgICAgICAgICAgICAgICAvL31cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggee7k+adn1xcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgcHRhYixcXG4gICAgICAgICAgICBsaW5rLFxcbiAgICAgICAgICAgIG15dXJsLFxcbiAgICAgICAgICAgIHZsaW5rKSxcXG4gICAgICAgIGNvbF90eXBlOiBjbHRcXG4gICAgfSk7XFxufVxcbi8vfVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiVFbnroDku4vkuI7pgInpm4ZcIixcInBhdGhcIjpcInR2bW92bGlzdFwiLFwicnVsZVwiOlwidmFyIHRhYnMgPSBPYmplY3Qua2V5cyhodG1sLnZpZGVvbGlzdCk7XFxudmFyIHRodW1iID0gaHRtbC5pbWdfdXJsO1xcbml0ZW1zLnB1c2goe1xcbiAgICB0aXRsZTogJ+WJp+aDheeugOS7i++8micsXFxuICAgIGRlc2M6IGh0bWwuaW50cm8sXFxuICAgIHBpY191cmw6IHRodW1iLFxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGRlcykgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IGRlcyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG4gICAgICAgIH1dKTtcXG4gICAgfSwgaHRtbC5pbnRybyksXFxuICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWMnXFxufSk7XFxuZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvZG5wbHVnaW4nLCB7fSkpLnJ1bGUpO1xcblxcbml0ZW1zLnB1c2goe1xcbiAgICB0aXRsZTogJ+KAnOKAnOaOkuW6j+KAneKAnScsXFxuICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnB1dE15VmFyKCdhcHBtdHZzb3J0JywgZ2V0TXlWYXIoJ2FwcG10dnNvcnQnLCcxJyk9PScxJz8nMCc6JzEnKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJ1xcXCIsXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG59KTtcXG52YXIgZ3ZhID0gTVlfVVJMO1xcbmZvciAodmFyIGsgPSAwOyBrIDwgdGFicy5sZW5ndGg7IGsrKykge1xcbiAgICB2YXIgcHRhYiA9IHRhYnNba107XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IChnZXRNeVZhcihndmEsICcwJykgPT0gayA/ICfwn5GJ8J+PuycgOiAnJykgKyBwdGFiLFxcbiAgICAgICAgdXJsOiBgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ2AgKyBndmEgKyBcXFwiJywgJ1xcXCIgKyBrICsgYCcpO3JlZnJlc2hQYWdlKCk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJ2AsXFxuICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgIH0pO1xcblxcbn1cXG5cXG4vL2ZvciAodmFyIGkgPSAwOyBpIDwgdGFicy5sZW5ndGg7IGkrKykge1xcbmlmIChnZXRNeVZhcignYXBwbXR2c29ydCcsICcxJykgPT0gJzEnKSB7XFxuICAgIHZhciBsaXN0ID0gaHRtbC52aWRlb2xpc3RbdGFic1tnZXRNeVZhcihndmEsICcwJyldXTtcXG59IGVsc2Uge1xcbiAgICB2YXIgbGlzdCA9IGh0bWwudmlkZW9saXN0W3RhYnNbZ2V0TXlWYXIoZ3ZhLCAnMCcpXV0ucmV2ZXJzZSgpO1xcbn07XFxuXFxuZm9yICh2YXIgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XFxuICAgIHZhciBzcmN1cmwgPSBsaXN0W2pdLnVybDtcXG4gICAgaWYgKC8yOTNqeDEvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgc3JjdXJsID0gc3JjdXJsLnJlcGxhY2UoJzI5M2p4MScsICdqeCcpO1xcbiAgICB9IGVsc2UgaWYgKC84ZDhxfGRpbGlrdHZ8aGFva2FuanUxfGN6dHZ8Zml0XFxcXDo4fHBwemh1Ly50ZXN0KG15dXJsKSkge1xcbiAgICAgICAgc3JjdXJsID0gc3JjdXJsICsgJyZhcHA9MTAwMDAmYWNjb3VudD0yNzI3NzUwMjgmcGFzc3dvcmQ9cXEyNzI3NzUwMjgnO1xcbiAgICB9XFxuICAgIHZhciB0aXRsZSA9IGxpc3Rbal0udGl0bGU7XFxuICAgIHRpdGxlID0gdGl0bGUubWF0Y2goLyjnrKx8XFxcXGR8LSkqKOmbhnzor5185pyfKS9nKSA/IHRpdGxlLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJykgOiB0aXRsZTtcXG4gICAgaWYgKGxpc3QubGVuZ3RoIDw9IDQpIHtcXG4gICAgICAgIHZhciBjbHQgPSAndGV4dF8yJztcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBjbHQgPSBpc05hTih0aXRsZSkgPyAnZmxleF9idXR0b24nIDogJ3RleHRfNSdcXG4gICAgfTtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHknKS5sYXp5UnVsZSgocHRhYiwgc3JjdXJsLCBteXVybCkgPT4ge1xcbiAgICAgICAgICAgIGZ1bmN0aW9uIG9wZW51cmwocmVzdXJsKSB7XFxuICAgICAgICAgICAgICAgIGlmIChyZXN1cmwubWF0Y2goL3lvdWt1fG1ndHZ8aXhpZ3VhfHFxLmNvbXxxaXlpfG1pZ3V8YmlsaWJpbGl8c29odXxwcHR2fGxlfDE5MDUuY29tLykgJiYgcmVzdXJsLnNlYXJjaCgvaHRtbHxiaWxpYmlsaS8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgZW5EbiA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicsIHt9KSkuZW5EbjtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbkRuID09ICcxJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn6LCD55So5pat5o+S6Kej5p6QJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChcXFwidmFyIGNvbmZpZyA9XFxcIiArIGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvblxcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBheXRtUGFyc2UocmVzdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcbiAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1cmxcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgLy9sb2coc3JjdXJsKTtcXG4gICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggeW8gOWni1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGlmICgvXFxcXC5tM3U4fFxcXFwubXA0fG9ialxcXFwvdG9zLy50ZXN0KHNyY3VybCkgJiYgL2h0dHAvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC9cXFxcPS8udGVzdChzcmN1cmwpID8gc3JjdXJsLnNwbGl0KCc9JylbMV0gOiBzcmN1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNyY3VybC5pbmRleE9mKFxcXCIvc2hhcmUvXFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBzcmN1cmwuc3BsaXQoXFxcIi9zaGFyZVxcXCIpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmYyA9IGZldGNoKHNyY3VybCwge30pLnJlcGxhY2UoXFxcInZhciBwdXJsXFxcIiwgXFxcInZhciBtYWluXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZjLmluZGV4T2YoXFxcIm1haW5cXFwiKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWF0ID0gZmMubWF0Y2goL3ZhciBtYWluLio/Oy8pWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKG1hdCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ID0gKG1haW4uaW5kZXhPZihcXFwiaHR0cFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbiA9IGZjLm1hdGNoKC91cmw6Lio/W1xcXFwnXFxcXFxcXCJdKC4qPylbXFxcXCdcXFxcXFxcIl0vKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXkgPSAobWFpbi5pbmRleE9mKFxcXCJodHRwXFxcIikgIT0gLTEgPyBtYWluIDogbGluayArIG1haW4pXFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGxheTtcXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3g1V2ViVmlldzovLycgKyAoc3JjdXJsKVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2FsaXp5Jykge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBmZXRjaCgnaHR0cHM6Ly9mb3ViaW4uY29tL2ppZXhpLnBocD91cmw9JyArIHNyY3VybCwge30pLm1hdGNoKC9cXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiKC4qPylcXFxcXFxcIi8pWzFdO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmw7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoLzE5anhcXFxcLnZpcHxuZnlpbmdzaGkvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBKU09OLnBhcnNlKGZldGNoKHNyY3VybC5yZXBsYWNlKCdodHRwOi8vJywgJ2h0dHBzOi8vJyksIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogTU9CSUxFX1VBXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEhlYWRlcnM6IHRydWVcXG4gICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKC90aXRhbi5tZ3R2Ly50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29ialxcXFwvdG9zLy50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybFxcbiAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAvKmVsc2UgaWYgKC96aGFpa2FueXMvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwgKyAnJmFwcD0xMDAwMyZhY2NvdW50PTI3Mjc3NTAyOCZwYXNzd29yZD1xcTI3Mjc3NTAyOCcsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoSGVhZGVyczogdHJ1ZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvdGl0YW4ubWd0di8udGVzdChwdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29ialxcXFwvdG9zLy50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ki9cXG5cXG4gICAgICAgICAgICAgICAgLy8tLS0t5YiG5Ymy57q/LS0tLS8vXFxuICAgICAgICAgICAgICAgIHZhciBzY29kZSA9IEpTT04ucGFyc2UoZmV0Y2goc3JjdXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxuICAgICAgICAgICAgICAgICAgICB3aXRoU3RhdHVzQ29kZTogdHJ1ZVxcbiAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgIC8vbG9nKHNjb2RlKTtcXG4gICAgICAgICAgICAgICAgaWYgKHNjb2RlLnN0YXR1c0NvZGUgPT0gJzMwMicgfHwgc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAxJykge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBzY29kZS5oZWFkZXJzLmxvY2F0aW9uWzBdLnJlcGxhY2UoL1xcXFxcXFxcL2csICcnKTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGh0bWwgPSByZXF1ZXN0KHNyY3VybCk7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IHNjb2RlLmJvZHk7XFxuICAgICAgICAgICAgICAgICAgICAvL2xvZyhodG1sKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvNDA0IE5vdCBGb3VuZHzlpIfmoYjlkI7lj6/nu6fnu63orr/pl64vLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXFxcXCJ1cmxcXFxcXFxcIlxcXFw6XFxcXFxcXCJodHRwLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBodG1sLm1hdGNoKC9cXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiKC4qPylcXFxcXFxcIi8pWzFdLnJlcGxhY2UoL1xcXFxcXFxcL2csICcnKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5zdGFydHNXaXRoKCd7JykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHVybCA9IHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgcHVybCA9IHNyY3VybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9jb2RlLmFsaXl1bi5jb20vbHprMjM1NTkvUHVibGljUnVsZS9yYXcvbWFzdGVyL3g1cnVsZS5qcycsIDI0KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geDVydWxlKHNyY3VybCwgc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3JldHVybiAneDVXZWJWaWV3Oi8vJysoc3JjdXJsKSBcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgLy9sb2cocHVybCk7XFxuICAgICAgICAgICAgICAgIGlmICgvdGl0YW4ubWd0di8udGVzdChwdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvb2JqXFxcXC90b3MvLnRlc3QocHVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsXFxuICAgICAgICAgICAgICAgIH07XFxuXFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICBpZiAoc3JjdXJsLnN1YnN0cmluZygwLCAyKSA9PSAnXFxcXC9cXFxcLycpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKCdodHRwczonICsgc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXD1odHRwLy50ZXN0KHNyY3VybCkgJiYgL1xcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAvL3JldHVybiBzcmN1cmwuc3BsaXQoJz0nKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKSk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHnu5PmnZ9cXG4gICAgICAgIH0sIHB0YWIsIHNyY3VybCwgbXl1cmwpLFxcbiAgICAgICAgY29sX3R5cGU6IGNsdFxcbiAgICB9KTtcXG59XFxuLy99XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLliJfooajmqKHlvI/mkJzntKLkuoznuqdcIixcInBhdGhcIjpcInNlYXJlcmpcIixcInJ1bGVcIjpcInZhciByZXMgPSB7fTtcXG52YXIgaXRlbXMgPSBbXTtcXG52YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxudmFyIG1vbnRoID0gbm93RGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gXFxcIjBcXFwiICsgKG5vd0RhdGUuZ2V0TW9udGgoKSArIDEpIDogbm93RGF0ZS5nZXRNb250aCgpICsgMTtcXG52YXIgZGF5ID0gbm93RGF0ZS5nZXREYXRlKCkgPCAxMCA/IFxcXCIwXFxcIiArIG5vd0RhdGUuZ2V0RGF0ZSgpIDogbm93RGF0ZS5nZXREYXRlKCk7XFxudmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcbnZhciBzcGwgPSBnZXRSZXNDb2RlKCkuc3BsaXQoJyN4IycpO1xcbnZhciB0eXBldCA9IHNwbFszXTtcXG52YXIgdGRvbWluID0gc3BsWzJdO1xcbnZhciBrZXkgPSBzcGxbNF07XFxuXFxuaWYgKC92aXBtdi8udGVzdCh0ZG9taW4pKSB7XFxuICAgIHZhciBiaHRtbCA9IHJlcXVlc3Qoc3BsWzFdKTtcXG59IGVsc2Uge1xcbiAgICB2YXIgYmh0bWwgPSBmZXRjaChzcGxbMV0sIHtcXG4gICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IHRkb21pbi5pbmRleE9mKFxcXCJtb2dhaV9hcGlcXFwiKSAhPSAtMSA/IFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcIiA6IFxcXCJva2h0dHAvNC4xLjBcXFwiXFxuICAgICAgICB9XFxuICAgIH0pO1xcbn1cXG50cnkge1xcbiAgICBiaHRtbCA9IGJodG1sLnN0YXJ0c1dpdGgoJ1xcXFxyXFxcXG4nKSA/IGJodG1sLnJlcGxhY2UoJ1xcXFxyXFxcXG4nLCAnJykgOiBiaHRtbDtcXG59IGNhdGNoIChlKSB7fVxcbmlmICgvYnR3YWYvLnRlc3QoYmh0bWwpKSB7XFxuICAgIC8qXFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6J+acieWuneWhlOmqjOivge+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHNwbFsxXSArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAqL1xcblxcbiAgICBiaHRtbCA9IGZldGNoKHNwbFsxXSArICcmYnR3YWYnICsgYmh0bWwubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcIi8pWzFdLCB7fSk7XFxuXFxufVxcblxcbmlmIChiaHRtbCA9PSBcXFwiXFxcIiB8fCBiaHRtbCA9PSBudWxsIHx8IGJodG1sLnN1YnN0cmluZygwLCA1KSA9PSAnZXJyb3InIHx8ICFiaHRtbC5zdGFydHNXaXRoKCd7JykpIHtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+acquaQnOe0ouWIsOebuOWFs+i1hOa6kO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxuICAgICAgICB1cmw6IHNwbFsxXSArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgIH0pO1xcbn0gZWxzZSBpZiAoYmh0bWwubGVuZ3RoIDwgODApIHtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+i/lOWbnuaVsOaNruS4jeWujOaVtO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxuICAgICAgICB1cmw6IHNwbFsxXSArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgIH0pO1xcbn0gZWxzZSB7XFxuICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShiaHRtbCk7XFxuICAgIC8vbG9nKHNwbFsxXSk7XFxuICAgIGlmIChodG1sLmxpc3QpIHtcXG4gICAgICAgIHZhciBsaXN0ID0gaHRtbC5saXN0O1xcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS5saXN0KSB7XFxuICAgICAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YS5saXN0O1xcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSkge1xcbiAgICAgICAgdmFyIGxpc3QgPSBodG1sLmRhdGE7XFxuICAgIH1cXG5cXG4gICAgaWYgKGxpc3QubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6ICfmnKrmkJzntKLliLDvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcbiAgICAgICAgICAgIHVybDogc3BsWzFdICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgICAgICB9KTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcblxcbiAgICAgICAgICAgIGlmICgvVFYvLnRlc3QodHlwZXQpKSB7XFxuICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udGl0bGU7XFxuICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnBpYztcXG4gICAgICAgICAgICAgICAgLy92YXIgdmlkPXRkb21pbisnL2RldGFpbD92b2RfaWQ9JytsaXN0W2ldLm5leHRsaW5rKycmcmVsX2xpbWl0PTEwJztcXG4gICAgICAgICAgICAgICAgdmFyIHZpZCA9IGxpc3RbaV0ubmV4dGxpbms7XFxuICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnN0YXRlO1xcbiAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS5zdGF0ZTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBpZiAodGRvbWluLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvZmFudHVhbi8udGVzdCh0ZG9taW4pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS52b2RfcmVtYXJrcztcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGRvbWluLmluZGV4T2YoJ3hnYXBwLnBocC92MS8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gbGlzdFtpXS52b2RfbmFtZTtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnZvZF9waWM7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQ7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS52b2RfcmVtYXJrcztcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QodGRvbWluKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAnL2RldGFpbD9rZXk9JyArIGRhdGVTdHIgKyAnJnZvZF9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS52b2RfcmVtYXJrcztcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZS5yZXBsYWNlKGtleSwgJ+KAnOKAnCcgKyBrZXkgKyAn4oCd4oCdJyksXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IHBpYyArICdAUmVmZXJlcj0nLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQodGRvbWluLmluZGV4T2YoXFxcIm1vZ2FpX2FwaVxcXCIpICE9IC0xID8gdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nIDogdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRAb2todHRwLzQuMS4wfScpLnJ1bGUoKHR5cGV0KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSBbXTtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hYNVdlYlZpZXcoJycpO1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIG15dXJsID0gTVlfVVJMLm1hdGNoKC8oW1xcXFxTXSo/OlxcXFwvXFxcXC9bXFxcXFNdKj8pXFxcXC8vKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvVFYvLnRlc3QodHlwZXQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvdHZtb3ZsaXN0Jywge30pKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICByZXMuZGF0YSA9IGl0ZW1zO1xcbiAgICAgICAgICAgICAgICAgICAgc2V0SG9tZVJlc3VsdChyZXMpO1xcbiAgICAgICAgICAgICAgICB9LCB0eXBldCksXFxuICAgICAgICAgICAgICAgIC8vY29udGVudDpyZW0sXFxuICAgICAgICAgICAgICAgIGRlc2M6IHJlbSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0gLy9mb3IgaVxcbiAgICB9IC8vZWxzZSBsaXN0Lmxlbmd0aFxcbn1cXG5cXG5yZXMuZGF0YSA9IGl0ZW1zO1xcbnNldEhvbWVSZXN1bHQocmVzKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIkFQUOmmlumhteWIl+ihqFwiLFwicGF0aFwiOlwiYXBwaW5kZXhkYXRhXCIsXCJydWxlXCI6XCJpZiAoaHRtbC5saXN0KSB7XFxuICAgIHZhciBsaXN0ID0gaHRtbC5saXN0O1xcbn0gZWxzZSBpZiAoaHRtbC5kYXRhICYmIGh0bWwuZGF0YS5saXN0KSB7XFxuICAgIHZhciBsaXN0ID0gaHRtbC5kYXRhLmxpc3Q7XFxufSBlbHNlIHtcXG4gICAgdmFyIGxpc3QgPSBodG1sLmRhdGE7XFxufVxcblxcbmZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcbiAgICBpZiAobGlzdFtpXS52b2RfbGlzdCkge1xcbiAgICAgICAgdmFyIGxpc3RzID0gbGlzdFtpXS52b2RfbGlzdDtcXG4gICAgICAgIHZhciB0eXBlbmFtZSA9IGxpc3RbaV0udm9kX3R5cGVfbmFtZTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBsaXN0cyA9IGxpc3RbaV0udmxpc3Q7XFxuICAgICAgICB2YXIgdHlwZW5hbWUgPSBsaXN0W2ldLnR5cGVfbmFtZVxcbiAgICB9XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHR5cGVuYW1lLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuXFxuICAgIH0pO1xcblxcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxpc3RzLmxlbmd0aDsgaisrKSB7XFxuICAgICAgICB2YXIgdGl0bGUgPSBsaXN0c1tqXS52b2RfbmFtZTtcXG4gICAgICAgIHZhciBpbWcgPSBsaXN0c1tqXS52b2RfcGljO1xcbiAgICAgICAgdmFyIHVybCA9IGxpc3RzW2pdLnZvZF9pZDtcXG4gICAgICAgIHZhciBkZXNjID0gbGlzdHNbal0udm9kX3JlbWFya3M7XFxuICAgICAgICB2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxuICAgICAgICB2YXIgbW9udGggPSBub3dEYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyBcXFwiMFxcXCIgKyAobm93RGF0ZS5nZXRNb250aCgpICsgMSkgOiBub3dEYXRlLmdldE1vbnRoKCkgKyAxO1xcbiAgICAgICAgdmFyIGRheSA9IG5vd0RhdGUuZ2V0RGF0ZSgpIDwgMTAgPyBcXFwiMFxcXCIgKyBub3dEYXRlLmdldERhdGUoKSA6IG5vd0RhdGUuZ2V0RGF0ZSgpO1xcbiAgICAgICAgdmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcbiAgICAgICAgaWYgKGh0bWwubGlzdCkge1xcbiAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHVybCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcbiAgICAgICAgICAgIGlmIChtdXJsLnNlYXJjaCgvbW9nYWlfYXBpLykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJy9kZXRhaWw/a2V5PScgKyBkYXRlU3RyICsgJyZ2b2RfaWQ9JyArIHVybCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJy9kZXRhaWw/a2V5PScgKyBkYXRlU3RyICsgJyZ2b2RfaWQ9JyArIHVybCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBva2h0dHAvNC4xLjB9JztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHVybCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgICAgICB9O1xcbiAgICAgICAgaWYgKC9mYW50dWFuLy50ZXN0KG11cmwpKSB7XFxuICAgICAgICAgICAgdmFyIGxpbmsgPSAnaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vYXBpLnBocC9hcHAvdmlkZW9fZGV0YWlsP2lkPScgKyB1cmwgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcbiAgICAgICAgfSBlbHNlIGlmICgvaW9wZW55dW4vLnRlc3QobXVybCkpIHtcXG4gICAgICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXG4gICAgICAgIH0gZWxzZSBpZiAoL2RpamlheGlhLy50ZXN0KG11cmwpKSB7XFxuICAgICAgICAgICAgdmFyIGxpbmsgPSAnaHR0cDovL3d3dy5kaWppYXhpYS5jb20vYXBpLnBocC9hcHAvdmlkZW9fZGV0YWlsP2lkPScgKyB1cmw7XFxuICAgICAgICB9XFxuICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICAgICAgcGljX3VybDogaW1nICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgdXJsOiAkKGxpbmspLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJycsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3g1X3dlYnZpZXdfc2luZ2xlJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFg1V2ViVmlldygnJyk7XFxuICAgICAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgICAgICAgICB2YXIgbXl1cmwgPSBNWV9VUkwubWF0Y2goLyhbXFxcXFNdKj86XFxcXC9cXFxcL1tcXFxcU10qPylcXFxcLy8pWzFdO1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICAgICAgICAgIHJlcy5kYXRhID0gaXRlbXM7XFxuICAgICAgICAgICAgICAgIHNldEhvbWVSZXN1bHQocmVzKTtcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBkZXNjOiBkZXNjLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfM19tYXJxdWVlJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpppbmrKHlr7zlhaXnrYnlvoVcIixcInBhdGhcIjpcIndhaXRcIixcInJ1bGVcIjpcImZ1bmN0aW9uIGNhblVzZSgpIHtcXG4gICAgLypcXG4gICAgLy/lpoLmnpzmm7TmlrDkuobop4TliJnkuZ/opoHpmZDmtYHvvIzlj6/ku6Xkv67mlLlrZXlcXG4gICAgbGV0IGtleSA9IFxcXCJsb2NrNFxcXCJcXG4gICAgLy/nrYnlvoXliIbpkp/mlbBcXG4gICAgbGV0IHdhaXRNaW4gPSAxMFxcbiAgICBcXG4gICAgbGV0IG1pbiA9IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMDAgKiA2MCAqIHdhaXRNaW4pXFxuICAgIGxldCB1bmxvY2sgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIG1pbjtcXG4gICAgbGV0IHRpbWUgPSBnZXRJdGVtKGtleSwgXFxcIlxcXCIpO1xcbiAgICBpZiAodGltZSA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgc2V0SXRlbShrZXksIFxcXCJcXFwiICsgdW5sb2NrKVxcbiAgICAgICAgbGV0IHN0ID0gbmV3IERhdGUodW5sb2NrKS50b0xvY2FsZVN0cmluZygpLnJlcGxhY2UoLzpcXFxcZHsxLDJ9JC8sICcgJyk7XFxuICAgICAgICBsZXQgbXNnID0gXFxcIui/meaYr+aCqOesrOS4gOasoeS9v+eUqOivpeeJiOacrOinhOWIme+8jOS4uumBv+WFjeesrOS4gOasoeWvvOWFpeS9v+eUqOS6uuaVsOa/gOWinu+8jOinhOWImeWwhuWcqFxcXCIgKyBzdCArIFxcXCLop6PplIHkvb/nlKjjgII8YnI+PGJyPuWlveinhOWImeS4jeaAleaZmu+8jOivt+iAkOW/g+etieW+he+8geivpeaPkOekuuS7heWcqOesrOS4gOasoeWvvOWFpe+8iOabtOaWsO+8ieaXtuWHuueOsO+8jOWQjue7reS9v+eUqOi/h+eoi+S4reS4jeS8muWHuueOsO+8gVxcXCJcXG4gICAgICAgIHNldFJlc3VsdChbe1xcbiAgICAgICAgICAgIHRpdGxlOiBtc2csXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJyaWNoX3RleHRcXFwiXFxuICAgICAgICB9XSlcXG4gICAgICAgIHJldHVybiBmYWxzZVxcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHRpbWUpIDwgbmV3IERhdGUoKS5nZXRUaW1lKCkpIHtcXG4gICAgICAgIHJldHVybiB0cnVlXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBsZXQgc3QgPSBuZXcgRGF0ZShwYXJzZUludCh0aW1lKSkudG9Mb2NhbGVTdHJpbmcoKS5yZXBsYWNlKC86XFxcXGR7MSwyfSQvLCAnICcpO1xcbiAgICAgICAgbGV0IG1zZyA9IFxcXCLkuLrpgb/lhY3kvb/nlKjkurrmlbDmv4Dlop7vvIzop4TliJnlsIblnKhcXFwiICsgc3QgKyBcXFwi6Kej6ZSB5L2/55So44CCPGJyPjxicj7lpb3op4TliJnkuI3mgJXmmZrvvIzor7fogJDlv4PnrYnlvoXvvIHor6Xmj5DnpLrku4XlnKjnrKzkuIDmrKHlr7zlhaXvvIjmm7TmlrDvvInml7blh7rnjrDvvIzlkI7nu63kvb/nlKjov4fnqIvkuK3kuI3kvJrlh7rnjrDvvIFcXFwiXFxuICAgICAgICBzZXRSZXN1bHQoW3tcXG4gICAgICAgICAgICB0aXRsZTogbXNnLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIlxcbiAgICAgICAgfV0pXFxuICAgICAgICByZXR1cm4gZmFsc2VcXG4gICAgfSovXFxuICAgIHJldHVybiB0cnVlXFxufVxcbiQuZXhwb3J0cyA9IGNhblVzZSgpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pat5b+15o+S5Lu26LCD55SoXCIsXCJwYXRoXCI6XCJkbnBsdWdpblwiLFwicnVsZVwiOlwidmFyIGRuZW4gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLmVuRG47XFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiAn5pat5o+S77yaJyArIChkbmVuID09ICcxJyA/ICfigJzigJzinIXigJ3igJ0nIDogJ+KdjicpLFxcbiAgICB1cmw6ICQoJycpLmxhenlSdWxlKChkbmVuKSA9PiB7XFxuICAgICAgICBpZiAoZG5lbiA9PSAnMScpIHtcXG4gICAgICAgICAgICB2YXIgZmlsZVVybCA9IGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFwiLCB7fSkucmVwbGFjZSgnXFxcXFxcXCJlbkRuXFxcXFxcXCI6XFxcXFxcXCIxXFxcXFxcXCInLCAnXFxcXFxcXCJlbkRuXFxcXFxcXCI6XFxcXFxcXCIwXFxcXFxcXCInKTtcXG4gICAgICAgICAgICB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvblxcXCIsIGZpbGVVcmwpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey56aB55So5pat5o+S6LCD55So77yBJztcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwge30pLnJlcGxhY2UoJ1xcXFxcXFwiZW5EblxcXFxcXFwiOlxcXFxcXFwiMFxcXFxcXFwiJywgJ1xcXFxcXFwiZW5EblxcXFxcXFwiOlxcXFxcXFwiMVxcXFxcXFwiJyk7XFxuICAgICAgICAgICAgLy9sb2coZmlsZVVybCk7XFxuICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFwiLCBmaWxlVXJsKTtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suW8gOWQr+aWreaPkuiwg+eUqO+8gSdcXG4gICAgICAgIH1cXG4gICAgfSwgZG5lbiksXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcbn0pO1xcbmlmIChkbmVuID09ICcxJykge1xcbiAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn57q/6Lev6YWN572uJyxcXG4gICAgICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5I0BydWxlPWpzOnRoaXMuZD1bXTtyZXF1aXJlKCdodHRwczovL2dpdGVhLmNvbS9BSTk1Ny9IaWtlci9yYXcvbS92L1JvdXRlLmpzJyk7Um91dGUuc2V0UGFyc2UoKTtzZXRSZXN1bHQoZCk7XFxcIixcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcbiAgICB9KTtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+ino+aekOeuoeeQhicsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSNAcnVsZT1qczp0aGlzLmQ9W107cmVxdWlyZSgnaHR0cHM6Ly9naXRlYS5jb20vQUk5NTcvSGlrZXIvcmF3L20vdi9qeEl0ZW0uanMnKTtqeEl0ZW0uanhMaXN0KCk7c2V0UmVzdWx0KGQpXFxcIixcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcbiAgICB9KTtcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLorr7nva7pobXku6PnoIFcIixcInBhdGhcIjpcInNldHRpbmdcIixcInJ1bGVcIjpcInZhciBkID0gW107XFxudmFyIHNldGpzb24gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpO1xcbnZhciBzc21kID0gc2V0anNvbi5zc21vZGU7XFxudmFyIHNzeGMgPSBzZXRqc29uLnNzY291bnQ7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfmkJzntKLorr7nva4nLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICflvZPliY3vvJonICsgJygnICsgKHNzbWQgPT0gMSA/ICfogZrlkIjnu5PmnpwnIDogJ+W8leaTjuWIl+ihqCcpICsgJyknLFxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHknKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICB2YXIgbWQgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLnNzbW9kZTtcXG5cXG4gICAgICAgIGlmIChtZCA9PSAxKSB7XFxuICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwge30pLnJlcGxhY2UoJ1xcXFxcXFwic3Ntb2RlXFxcXFxcXCI6XFxcXFxcXCIxXFxcXFxcXCInLCAnXFxcXFxcXCJzc21vZGVcXFxcXFxcIjpcXFxcXFxcIjBcXFxcXFxcIicpO1xcbiAgICAgICAgICAgIHdyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwgZmlsZVVybCk7XFxuICAgICAgICAgICAgYmFjayh0cnVlKTtcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5YiH5o2i5Li65pCc57Si5byV5pOO5YiX6KGo5Y2V6YCJ5qih5byP5oiQ5Yqf77yBJztcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwge30pLnJlcGxhY2UoJ1xcXFxcXFwic3Ntb2RlXFxcXFxcXCI6XFxcXFxcXCIwXFxcXFxcXCInLCAnXFxcXFxcXCJzc21vZGVcXFxcXFxcIjpcXFxcXFxcIjFcXFxcXFxcIicpO1xcbiAgICAgICAgICAgIC8vbG9nKGZpbGVVcmwpO1xcbiAgICAgICAgICAgIHdyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwgZmlsZVVybCk7XFxuICAgICAgICAgICAgYmFjayh0cnVlKTtcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5YiH5o2i5Li66IGa5ZCI5pCc57Si5qih5byP5oiQ5Yqf77yBJ1xcbiAgICAgICAgfVxcbiAgICB9KSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzInXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+aQnOe0oui2heaXtignICsgJycgKyBnZXRJdGVtKCdhcHB0aW1vdXQnLCAnJykrJyknLFxcbiAgICB1cmw6IFxcXCJpbnB1dDovL1xcXCIgKyAnMzAwMCcgKyBcXFwiLy8vL+ivt+iuvue9rui2heaXtuaXtumXtO+8jDEwMDDkuLrkuIDnp5LjgIIuanM6dmFyIG51bSA9IHBhcnNlSW50KGlucHV0KS50b1N0cmluZygpO2lmIChudW0gPT0gJ05hTid8fG51bTwxMDAwKSB7J3RvYXN0Oi8v6L6T5YWl55qE5YC85aW95YOP5LiN5q2j56Gu44CCJzt9IGVsc2Uge3NldEl0ZW0oJ2FwcHRpbW91dCcsIG51bSk7cmVmcmVzaFBhZ2UoKTsndG9hc3Q6Ly/orr7nva7miJDlip/jgIInfVxcXCIsXFxuICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbn0pO1xcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn5pCc57Si57q/56iLJyArICcoJyArIHNzeGMgKyAnKScsXFxuICAgIHVybDogXFxcImlucHV0Oi8vXFxcIiArIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgIHZhbHVlOiBcXFwiNVxcXCIsXFxuICAgICAgICBoaW50OiBcXFwi6K+36L6T5YWl5LiA5Liq5pW05pWw5pWw5a2X77yM5o6o6I2Q5pyA5aSn5LiN6KaB6LaF6L+HMTXjgIJcXFwiLFxcbiAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgIHZhciBudW0gPSBwYXJzZUludChpbnB1dCkudG9TdHJpbmcoKTtcXG4gICAgICAgICAgICBpZiAobnVtID09ICdOYU4nIHx8IG51bSA8IDEpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+i+k+WFpeeahOWAvOWlveWDj+S4jeato+ehruOAgic7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwge30pLnJlcGxhY2UoL1xcXFxcXFwic3Njb3VudFxcXFxcXFwiOlxcXFxcXFwiW1xcXFxkXSpcXFxcXFxcIi8sICdcXFxcXFxcInNzY291bnRcXFxcXFxcIjpcXFxcXFxcIicgKyBudW0gKyAnXFxcXFxcXCInKTtcXG4gICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFwiLCBmaWxlVXJsKTtcXG4gICAgICAgICAgICAgICAgYmFjayh0cnVlKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+S/neWtmOiuvue9ruaQnOe0oue6v+eoi+WujOaIkO+8gSdcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KSxcXG4gICAgfSksXFxuICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbn0pO1xcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn5pu05paw55u45YWzJyxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn5qOA5rWL5pu05pawJyxcXG4gICAgdXJsOiAkKCcnKS5sYXp5UnVsZSgobG9jdmVyKSA9PiB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIHZhciByZW1mID0gZmV0Y2hDYWNoZSgnaHR0cHM6Ly9jb2RlYmVyZy5vcmcvbHprMjM1NTkvY2xvdWRydWxlL3Jhdy9icmFuY2gvbWFzdGVyL2FwcG1vdmllLnR4dCcsIDI0KTtcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICByZW1mID0gJyc7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoL++/pWJhc2U2NC8udGVzdChyZW1mKSkge1xcbiAgICAgICAgICAgIHZhciByZW12ID0gSlNPTi5wYXJzZShiYXNlNjREZWNvZGUocmVtZi5zcGxpdCgnQCcpWzJdKSkudmVyc2lvbjtcXG4gICAgICAgIH0gZWxzZSBpZiAoL++/pWhvbWVfcnVsZe+/pS8udGVzdChyZW1mKSkge1xcbiAgICAgICAgICAgIHZhciByZW12ID0gSlNPTi5wYXJzZShyZW1mLnNwbGl0KCfvv6Vob21lX3J1bGXvv6UnKVsxXSkudmVyc2lvbjtcXG4gICAgICAgIH07XFxuICAgICAgICBpZiAoL++/pWhvbWVfcnVsZS8udGVzdChyZW1mKSkge1xcbiAgICAgICAgICAgIGxvZygn6L+c56iL54mI5pys77yaJyArIHJlbXYpO1xcbiAgICAgICAgICAgIGxvZygn5pys5Zyw54mI5pys77yaJyArIGxvY3Zlcik7XFxuICAgICAgICAgICAgaWYgKGxvY3ZlciAhPSByZW12KSB7XFxuICAgICAgICAgICAgICAgIHB1dFZhcignYXBwbnZlcicsIHJlbWYpO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5pyJ5paw54mI5pys77yM54K55a+85YWl5pu05paw5Y+v5pu05paw6KeE5YiZ44CCJztcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5pqC5peg5paw54mI5pys77yMMjTlsI/ml7blhoXmo4DmtYvml6DmlYjjgIInXFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ajgOa1i+abtOaWsOWksei0pe+8jOWPr+iDveS6keerr+aKvemjjuS6huOAgidcXG4gICAgICAgIH1cXG4gICAgfSwgbG9jdmVyKSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzInXFxufSk7XFxuaWYgKGdldFZhcignYXBwbnZlcicpKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+WvvOWFpeabtOaWsCcsXFxuICAgICAgICB1cmw6ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFyKCdhcHBudmVyJyk7XFxuICAgICAgICB9KSxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbiAgICB9KTtcXG59XFxuc2V0UmVzdWx0KGQpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmnIDmlrDnq6DoioJcIixcInBhdGhcIjpcImNoYXB0ZXJcIixcInJ1bGVcIjpcInZhciBjaHAgPSBbXTtcXG50cnkge1xcbiAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXG4gICAgaWYgKGh0bWwudmlkZW9saXN0KSB7XFxuICAgICAgICB2YXIgY29udHMgPSBPYmplY3Qua2V5cyhodG1sLnZpZGVvbGlzdCk7XFxuICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgICAgIHZhciBjb250cyA9IGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyO1xcbiAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcbiAgICAgICAgdmFyIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxuICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB2YXIgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfbGlzdDtcXG4gICAgICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXG4gICAgICAgIH1cXG4gICAgfVxcblxcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRzLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICBpZiAoaHRtbC52aWRlb2xpc3QpIHtcXG4gICAgICAgICAgICB2YXIgbGlzdCA9IGh0bWwudmlkZW9saXN0W2NvbnRzW2ldXTtcXG4gICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJscykge1xcbiAgICAgICAgICAgIHZhciBsaXN0ID0gY29udHNbaV0udXJscztcXG4gICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJsKSB7XFxuICAgICAgICAgICAgdmFyIGxpc3QgPSBjb250c1tpXS51cmwuc3BsaXQoXFxcIiNcXFwiKTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdmFyIGxpc3QgPSBjb250c1tpXS5zcGxpdChcXFwiI1xcXCIpO1xcbiAgICAgICAgfVxcbiAgICAgICAgY2hwLnB1c2gobGlzdC5sZW5ndGgpO1xcbiAgICB9XFxufSBjYXRjaCAoZSkge31cXG4vL2xvZyhNYXRoLm1heC5hcHBseShNYXRoLGNocCkpO1xcbnNldFJlc3VsdCgn5pu05paw6IezOicgKyAoTWF0aC5tYXguYXBwbHkoTWF0aCwgY2hwKSkpO1wifV0sXCJzYXZlZFwiOmZhbHNlLFwidGl0bGVcIjpcIkFQUOW9seinhihQKVwiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImh0dHA6Ly96aHVpanU4LnZpcC9hcGkucGhwL3YxLnZvZC9kZXRhaWw/a2V5PTA0MTAmdm9kX2lkPTMyODE4NSZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QG9raHR0cC80LjEuMH1cIixcImNvbF90eXBlXCI6XCJtb3ZpZV8xXCIsXCJmaW5kX3J1bGVcIjpcImpzOihcXG4oKSA9PiB7XFxuICAgIHZhciByZXMgPSB7fTtcXG4gICAgdmFyIGl0ZW1zID0gW107XFxuICAgIGl0ZW1zLnB1c2goe3RpdGxlOiBcXFwiXFxcIiwgZGVzYzogXFxcIjI1NSYmZmxvYXRcXFwiLCB1cmw6IFxcXCJcXFwiLCBjb2xfdHlwZTogXFxcIng1X3dlYnZpZXdfc2luZ2xlXFxcIn0pO1xcbiAgICByZWZyZXNoWDVXZWJWaWV3KFxcXCJcXFwiKTtcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGdldFJlc0NvZGUoKSk7XFxuICAgIHZhciBteXVybCA9IE1ZX1VSTC5tYXRjaCgvKFtcXFxcU10qPzpcXFxcL1xcXFwvW1xcXFxTXSo/KVxcXFwvLylbMV07XFxuICAgIHRyeSB7XFxuICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9hcHBtb3ZsaXN0XFxcIiwge30pKS5ydWxlKTtcXG4gICAgfVxcbiAgICBjYXRjaCAoZSkge1xcbiAgICB9XFxuICAgIHJlcy5kYXRhID0gaXRlbXM7XFxuICAgIHNldEhvbWVSZXN1bHQocmVzKTtcXG59XFxuKSgpXCIsXCJncm91cFwiOlwi4pGg6L275ZCI6ZuGXCIsXCJ1YVwiOlwibW9iaWxlXCIsXCJwcmVSdWxlXCI6XCJpZiAoIWZpbGVFeGlzdCgnaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uJykpIHtcXG4gICAgbGV0IHNldCA9IGB7XFxcInNzbW9kZVxcXCI6XFxcIjBcXFwiLFxcXCJzc2NvdW50XFxcIjpcXFwiNVxcXCIsXFxcImVuRG5cXFwiOlxcXCIwXFxcIn1gO1xcbiAgICB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvblxcXCIsIHNldCk7XFxufVxcbnZhciBydWxlc2V0ID0gZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicsIHt9KTtcXG5pZiAoIUpTT04ucGFyc2UocnVsZXNldCkuZW5Ebikge1xcbiAgICBsZXQgc2V0ID0gcnVsZXNldC5yZXBsYWNlKCdcXFxcXFxcIlxcXFx9JywgJ1xcXFxcXFwiXFxcXCxcXFxcXFxcImVuRG5cXFxcXFxcIlxcXFw6XFxcXFxcXCIwXFxcXFxcXCJcXFxcfScpO1xcbiAgICB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvblxcXCIsIHNldCk7XFxufVwiLFwicGFnZXNcIjpcIlt7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLmjqXlj6PmlbDmja4yMDIyLzQvMVxcXCIsXFxcInBhdGhcXFwiOlxcXCJSZXNDb2RlXFxcIixcXFwicnVsZVxcXCI6XFxcIntcXFxcbiAgICBcXFxcXFxcImRhdGFcXFxcXFxcIjogW3tcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLkvJjotKhcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibGlzdFxcXFxcXFwiOiBbe1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwiMzAw55yL5LiW55WMXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly8zMDB5cy54eXovYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi8zMDDnnIvkuJbnlYwucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIjRL5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzFhcGkuNGtkeXR2LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzRL5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCJDSlTlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3d3dy5janQ1MjEuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vQ0pU5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCJEQ+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9jaGFvcmVuYmIuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vREPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIkhH5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2hneXgudmlwL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSEflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcInR2aXBcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vYXBwLnR2aXAuY2MvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi90dmlwLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLniLHnnIvnvo7liadcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3d3dy51dW1qdy5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHnnIvnvo7liacucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueIsemFt+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vd3d3LnpoYW5sYW5nYnUuY29tL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIsemFt+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi55m95auW5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3pnanhkdGcuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nmb3lq5blvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWIneW/g+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vd3d3LjE4bXYuY2x1Yi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WIneW/g+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi54us5pKt56S+XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzM1eXMuY2MvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ni6zmkq3npL4ucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWPruW9k+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vdHYuMDU3M3dsLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WPruW9k+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5q615Y+L5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzEyMS4yMDQuMjQ5LjEzNTo0NDMzL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+auteWPi+W9seinhjMucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuauteWPi+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vc2hhbmdqaWh1b2tlLmNvbS9hcGkucGhwL3R2LnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+auteWPi+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6aOe5o235b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly93d3cuZmo2MDgwLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mjnuaNt+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi57KJ6LGh6KeG55WMXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzQyLjE1Ny4xMjkuMTU6MzQ0NDQvbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nsonosaHop4bnlYwucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuiZjueMq+inhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly92di5odW1hb3dlYi5jb20vbW9nYWlfYXBpLnBocC9nY3R2YXBpLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iZjueMq+inhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6aOT6aOO5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3lpZGF5eS50b3AvbGVoYWlsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mjk+mjjuW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi55yL55yL5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2trLmNjYm9rZS50b3AvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL55yL5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnu7/nrq3lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vd3d3LjY5dHkuY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nu7/nrq3lvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIumbtuWIu+W9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8veXMubGluZzAwLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Zu25Yi75b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnkIXnkIrlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vZmd5dXUudG9wL2xlaGFpbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nkIXnkIrlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuicnOicguW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9hcHAuZjh0cC5jb20vbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/onJzonILlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIum6u+eTnOinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9hbGl5dW4uazhhYS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/purvnk5zop4bpopExLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnvo7liafomatcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL21laWp1Y2hvbmcuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v576O5Ymn6JmrLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlpYjpnZ7ov7dcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2FwcC5uZXRmbGl4bWkuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aWI6Z2e6L+35b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLljZflupzlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vaWFwcC5uZnV4cy5jbHViL2RubWIucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WNl+W6nOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5pqW5YWJ5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9hcHAuYmwyMTAuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pqW5YWJ5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLpnZLop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vMTUwLjE1OC4xMzMuMzY6OTkwNC9xaW5nZG91amlla291LnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pnZLop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWkqeivmuW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly90Y3NwdmlwLmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp6K+a5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlpKnlpKnlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2FwcC5kYWlzaHVzYy5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIumbquS6uuW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8venkucWQyMzQuY24vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pm6rkurrlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuebiui+vuW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9sdW9idS55c3M2MDgwLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+ebiui+vuW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5b2x6KeG5aSn5YWoXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9hcHAub2ttZWRjb3MuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6KeG5aSn5YWoLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlvbHop4bovr7kurpcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vd3d3LnlzZHIudmlwL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YCa55So5Zu+5qCHLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLkvJjop4blvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vYXBwLnlzeXMuYXNpYS9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S8mOinhuW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5b2x6ZiF6ZiBXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzIyMS4yMzYuMTguMTI6NjY1L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6ZiF6ZiBLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLov73liaflkKdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vemh1aWp1OC52aXAvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ov73liaflkKflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBdXFxcXG4gICAgICAgIH0sXFxcXG4gICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmma7pgJpcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibGlzdFxcXFxcXFwiOiBbe1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwiSkRPRE9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2FwcHlzLmpkb2RvLnh5ei9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0pET0RP5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCJVNeW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vYXBweC51eTA3LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL1U15b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLpmL/ph4zlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vYWxpeXMuY246OTAvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pmL/ph4zlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuiJvueJueW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vd3d3LmFpdGVlLmNjL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Im+54m55b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLniLHlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3d3dy5oemxmZi5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIseW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi55m+5reY5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3lzLjU4ZzguY29tL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m+5reY5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmr5TpgrvlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vMGh6eS5jbjo5OTkwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q+U6YK75b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlpKflqIHnlLXlvbFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdmlwLmRhdmR5LmNvbS9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKflqIHnlLXlvbEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuixhua4o+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9kb3V6aGF5c3MuY2MvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/osYbmuKPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWvkuaeq+inhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vdmlwLnNoZW55dW53bC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wvkuaeq+inhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6buE5rKz5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2kubGVkdTguY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pu4TmsrPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuaZl+WFiOajrlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaGFudHYudG9wL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pmX5YWI5qOu5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnrYvmlpfkupFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3R2LmppbmRjbG91ZC5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nrYvmlpfkupHlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuiBmuWQiOinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vYXBwLmpoeXN0di5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ogZrlkIjop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuapmOWtkOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9qei5qdXppZHkudmlwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5qmY5a2Q5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnnIvliaflkKdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vYXBwLmlzaGVuNTIwLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eci+WJp+WQpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi55yL55yL5YmnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly93d3cua2Fua2FuanUuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nnIvnnIvliacucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueci+eci+inhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly84ODguY2Nib2tlLnRvcC9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nnIvnnIvop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWGt+inhlRWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9sZW4udHYvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhrfop4ZUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5LmQ5LqR5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly93d3cubGV5dW4udHYvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuZDkupHlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWFjei0ueW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly8xMTEuMjI5LjEyMC4xODA6ODgvbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhY3otLnlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIue+juWJp+iMg1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly90dHptei5uZXQvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nvo7liafojIMucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuS7u+aAp+eci1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vcmVueGluZ2thbi5uZXQvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ku7vmgKfnnIsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIumaj+mjjuW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9hcHAucnVjaHUuY2xvdWQvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pmo/po47lvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuS4ieaXpeW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vd3d3LjNyaS5uZXQvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuInml6XlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIua3mOWJp+ekvlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vYXBwLnNodWhhaTk5LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+a3mOWJp+ekvi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5aSp5aSp6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2FwcC5xaWFuanUuY2MvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWFlOWtkOeqnVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9jai5odWltYW9qaWEuY29tOjEyMzQ1L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5YWU5a2Q56qdLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmiJHniLHot5/liadcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3d3dy5nZW5tb3YuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oiR54ix6Lef5YmnLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLonJfniZvliqjmvKtcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vd29uaXVkbS53b25pdS5jeW91OjIwMDAwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JyX54mb5Yqo5ryrLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnhornjKvliqjmvKtcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vZG9uZ21hbi5rOGFhLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eGiueMq+WKqOa8qy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi54aK54yr6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2FuZWdoLmNvbS9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eGiueMq+inhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5bCP6bif5Yqo5ryrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3h5ZG0uYmFpY2FpLmJ1enovbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/puJ/liqjmvKsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWwj+icu+ick1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly8za2V0di5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/onLvonJPop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuaYn+eQg+inhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly8xMTkuMjkuMTIxLjQ4OjgwODgvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mmJ/nkIPop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuaciOWEv+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8veXVlNTIueHl6L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YCa55So5Zu+5qCHLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlvbHop4blpKflhahcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3hjLnhpeGkyeXkueHl6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6KeG5aSn5YWoSEQucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIua4lOa4lOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9sdW9iby55dWdlbnllLnNpdGUvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/muJTmuJTlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuafmuWtkOinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly95ei4yNnlzLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p+a5a2Q6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLov73liafnjKtcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdHYua210dmIuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6L+95Ymn54yrMS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIF1cXFxcbiAgICAgICAgfSxcXFxcbiAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWkp+eGilxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJsaXN0XFxcXFxcXCI6IFt7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlpKfnhopcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2R4eXMyMjMzLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wkp+eGii5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5rWB5pifXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2ZreHMyMjMzLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+a1geaYny5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5YWo6IO9XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9xbnlzNTU2Ni5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhajog70ucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuaJi+aMh1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vc3p5czU2NzguY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5omL5oyHLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlv4PniLFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3hheXM2Njc3LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W/g+eIsS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6Zuq5qKoXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly96c2IyMjMzLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbquaiqC5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5p2o5qGDXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly95dHlzMzQ1Ni5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnajmoYMucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBdXFxcXG4gICAgICAgIH0sXFxcXG4gICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnpZ7pqaxcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibGlzdFxcXFxcXFwiOiBbe1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwiMuWPt+W4gVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9waG9lYmUuY2YvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi8y5Y+35biB5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIkNW5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3d3dy5jY2N2dnYudG9wL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vQ1blvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwiSEflvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vYXBpLmhneXgudmlwL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSEflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi54ix6KW/6KW/VFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdHYyLmFpeGl4aS52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHopb/opb9UVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlj67lvZNUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly90di5oeWRkeXMudG9wL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Y+u5b2TVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5aSn5biI5YWEXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2RzeHR2LnR2LmNpL2FwaS5waHAvZHN4L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKfluIjlhYTlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6Z2e5Yeh5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2Ntcy5mZWlmYW4xMi54eXovYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pnZ7lh6HlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6aOe5omsVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vZGlhbmNqLnpoZW5meS5jbi9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mjnuaJrFRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWYv+iNvOmUi1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly90di5oZnlzOC52aXAvYXBpLnBocC9TbnR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lmL/ojbzplIsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6buR6b6Z5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3ZpcC5qaS1kaW5nLWhlLnNpdGUvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pu5HpvpnlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5p6B5ZOB5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2pwc2IueWh6eS54eXovYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnoHlk4HlvbHop4ZUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmnoHlk4HlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vMjkzeC55aHp5Lnh5ei9tdi9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aegeWTgeW9semZolRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuiNlOaeneW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9hcGkuemp5cy52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ojZTmnp3lvbHop4ZUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLonJzmnpxUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly92di5taWd1b3R2Lm5ldC9tL2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Jyc5p6cVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi57Gz5p2l5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzQyLjUxLjM3LjE2MToyMzQ2L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Gz5p2l5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueMq+WSqlRWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzEwNi4xMi4xMTMuOTA6NjU2NS9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eMq+WSqlRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuexs+Wlh1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3d3dy5zNmVwMy50b3AvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nsbPlpYdUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlsbHmpYLlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vZHk2LmRjZDEuY24vYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsbHmpYLlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5aSp56m6VFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdHYudGt5cy50di9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeepulRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuiZvuearuinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly90di5jbXQ4Lnh5ei9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iZvuearuinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlsI/nhornjKtUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly90djIuaGV0YW95cy52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/nhornjKtUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlvbHop4bpmIFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vMjE2Ljk4LjEwLjg1L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6KeG6ZiBLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBdXFxcXG4gICAgICAgIH1cXFxcbiAgICBdXFxcXG59XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5pCc57SiXFxcIixcXFwicGF0aFxcXCI6XFxcInNlYXJcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIHJlcyA9IHt9O1xcXFxudmFyIGl0ZW1zID0gW107XFxcXG4vL+iuvue9ruaQnOe0oue6v+eoi1xcXFxudmFyIHNzbW9kZSA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicsIHt9KSkuc3Ntb2RlO1xcXFxudmFyIGtleSA9IE1ZX1VSTC5zcGxpdCgnJCQkJylbMV07XFxcXG4vL3NldEVycm9yKGxlKTtcXFxcbmlmIChzc21vZGUgPT0gJzAnKSB7XFxcXG4gICAgc2V0UGFnZVRpdGxlKGtleSArICcg55qE5pCc57Si57uT5p6cJylcXFxcbn07XFxcXG50cnkge1xcXFxuICAgIHZhciBhcHBmaWxlID0gZmV0Y2hDYWNoZSgnaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FQUC5qc29uJywgMjQpO1xcXFxufSBjYXRjaCAoZSkge1xcXFxuICAgIGFwcGZpbGUgPSAnJztcXFxcbn1cXFxcbmlmICgvZW1vcnkvLnRlc3QoYXBwZmlsZSkpIHtcXFxcbiAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoYXBwZmlsZSk7XFxcXG59IGVsc2Uge1xcXFxuICAgIGxvZygn5b2T5YmN5Yqg6L2955qE5piv5YaF572u5pWw5o2uJyk7XFxcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9SZXNDb2RlJywge30pKS5ydWxlKTtcXFxcbn07XFxcXG52YXIgZGxpc3QgPSBodG1sLmRhdGE7XFxcXG5cXFxcbmZ1bmN0aW9uIHJhbmRvbVNvcnQzKGFycikge1xcXFxuICAgIC8qXFxcXG4gICAgICAgIGFyci5zb3J0KGZ1bmN0aW9uKGEsIGIpIHtcXFxcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJhbmRvbSgpIC0gMC41O1xcXFxuICAgICAgICB9KTtcXFxcbiAgICAqL1xcXFxuICAgIHJldHVybiBhcnI7XFxcXG59XFxcXG5cXFxcbi8v5omT5Lmx6aG65bqPXFxcXG52YXIgcmFuZG9tID0gdHJ1ZTtcXFxcbmlmIChzc21vZGUgPT0gJzEnIHx8IE1ZX1RZUEUgPT0gJ2hvbWUnKSB7XFxcXG4gICAgZm9yICh2YXIgbCA9IDA7IGwgPCBkbGlzdC5sZW5ndGg7IGwrKykge1xcXFxuICAgICAgICB2YXIgbGlzdCA9IGRsaXN0W2xdLmxpc3Q7XFxcXG4gICAgICAgIHZhciB0eXRpdCA9IGRsaXN0W2xdLnRpdGxlO1xcXFxuICAgICAgICBpZiAocmFuZG9tKSB7XFxcXG4gICAgICAgICAgICBsZXQgayA9IGdldFZhcihNWV9SVUxFLnRpdGxlICsgXFxcXFxcXCItXFxcXFxcXCIgKyB0eXRpdCwgXFxcXFxcXCJcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICBpZiAoayA9PSBcXFxcXFxcIlxcXFxcXFwiKSB7XFxcXG4gICAgICAgICAgICAgICAgbGlzdCA9IHJhbmRvbVNvcnQzKGxpc3QpXFxcXG4gICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudGl0bGUgKyBcXFxcXFxcIi1cXFxcXFxcIiArIHR5dGl0LCBKU09OLnN0cmluZ2lmeShsaXN0KSlcXFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgbGlzdCA9IEpTT04ucGFyc2UoaylcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfVxcXFxuXFxcXG5cXFxcbiAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogTVlfVFlQRSA9PSBcXFxcXFxcImhvbWVcXFxcXFxcIiA/IFxcXFxcXFwi54K55Ye75p+l55yLIFxcXFxcXFwiICsgdHl0aXQgKyBcXFxcXFxcIiDliIbnsbsg4oCc4oCcXFxcXFxcXCIgKyBrZXkgKyBcXFxcXFxcIuKAneKAnSDnmoTogZrmkJznu5PmnpxcXFxcXFxcIiA6IFxcXFxcXFwi54K55Ye75p+l55yLIFxcXFxcXFwiICsgdHl0aXQgKyBcXFxcXFxcIiDliIbnsbsgXFxcXFxcXCIgKyBrZXkgKyBcXFxcXFxcIiDnmoTogZrmkJznu5PmnpxcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSQkJCcgKyBrZXkgKyAnJCQkZnlwYWdlJCQkJykucnVsZSgobGlzdCwgdHl0aXQpID0+IHtcXFxcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxcXG4gICAgICAgICAgICAgICAgdmFyIGl0ZW1zID0gW107XFxcXG4gICAgICAgICAgICAgICAgdmFyIG5vd0RhdGUgPSBuZXcgRGF0ZSgpO1xcXFxuICAgICAgICAgICAgICAgIHZhciBtb250aCA9IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/IFxcXFxcXFwiMFxcXFxcXFwiICsgKG5vd0RhdGUuZ2V0TW9udGgoKSArIDEpIDogbm93RGF0ZS5nZXRNb250aCgpICsgMTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgZGF5ID0gbm93RGF0ZS5nZXREYXRlKCkgPCAxMCA/IFxcXFxcXFwiMFxcXFxcXFwiICsgbm93RGF0ZS5nZXREYXRlKCkgOiBub3dEYXRlLmdldERhdGUoKTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgZGF0ZVN0ciA9IG1vbnRoICsgJycgKyBkYXk7XFxcXG4gICAgICAgICAgICAgICAgLy/lj5bmkJzntKLnur/nqIvorr7nva5cXFxcbiAgICAgICAgICAgICAgICB2YXIgc3N4YyA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicsIHt9KSkuc3Njb3VudDtcXFxcbiAgICAgICAgICAgICAgICAvL+iuvue9rui2heaXtuaXtumXtO+8jOi2iuWwj+i2iuW/q++8jOWNleS9jeavq+enklxcXFxuICAgICAgICAgICAgICAgIHZhciB0aW1lb3UgPSBnZXRJdGVtKCdhcHB0aW1vdXQnLCAnMzAwMCcpO1xcXFxuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBNWV9VUkwuc3BsaXQoJyQkJCcpWzFdO1xcXFxuICAgICAgICAgICAgICAgIHZhciBudW0gPSBNWV9VUkwuc3BsaXQoJyQkJCcpWzJdO1xcXFxuICAgICAgICAgICAgICAgIHZhciBsZSA9IHBhcnNlSW50KG51bSAqIHNzeGMpO1xcXFxuICAgICAgICAgICAgICAgIHZhciBEYXRhID0gW107XFxcXG4gICAgICAgICAgICAgICAgdmFyIFRpdCA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSBsZSAtIHNzeGM7IGogPCBsZTsgaisrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmIChqIDwgbGlzdC5sZW5ndGgpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gbGlzdFtqXS51cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGl0aXQgPSBsaXN0W2pdLm11cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1RWL2kudGVzdChsaXRpdCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLzE5anh8MjkzeXN8emhhaWthbnlzfGppXFxcXFxcXFwtZGluZ1xcXFxcXFxcLWhlfHBob2ViZXx5dW5ib1xcXFxcXFxcLmJ4aW58bGFucmVudGt8aGV0YW95c3xweHVufDEzOVxcXFxcXFxcLjE1NXxma2tkeXwwNTYxNTh8YWl4aXhpfHJ1b3hpbmV3fGZlaWZhbjEyM3xzaXFpdHYvLnRlc3QobGluaykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhtdXJsID0gbGluayArICc/YWM9bGlzdCZ6bT0nICsga2V5ICsgJyZwYWdlPTEnO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmd2Q9JyArIGtleSArICcmcGFnZT0xJztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvZGlqaWF4aWEvLnRlc3QobGluaykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC8nXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJ3NlYXJjaD9wZz0xJnRleHQ9JyArIGtleSArICcmdG9rZW49JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmsuaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnc2VhcmNoP3BnPTEmdGV4dD0nICsga2V5O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QobGluaykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnL2xpc3Q/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9JyArIGtleTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP3BhZ2U9MSZsaW1pdD0xMCZ3ZD0nICsga2V5O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9EYXRhLnB1c2goe3VybDogaG11cmwsb3B0aW9uczoge2hlYWRlcnM6IHtcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogXFxcXFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcXFxcXCJ9LHRpbWVvdXQ6IHRpbWVvdX19KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBobXVybCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBsaW5rLmluZGV4T2YoXFxcXFxcXCJtb2dhaV9hcGlcXFxcXFxcIikgIT0gLTEgPyBcXFxcXFxcIkRhcnQvMi4xNCAoZGFydDppbylcXFxcXFxcIiA6IFxcXFxcXFwib2todHRwLzQuMS4wXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dDogdGltZW91XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBUaXQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0OiBsaXN0W2pdLnRpdGxlLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IGxpbmssXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwbm06IGxpdGl0XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSAvL2lmXFxcXG4gICAgICAgICAgICAgICAgfSAvL2ZvciBqXFxcXG5cXFxcbiAgICAgICAgICAgICAgICAvLy0tLeS7o+eggeWIhueVjOe6vy0tLS0gXFxcXG4gICAgICAgICAgICAgICAgaWYgKERhdGEgIT0gJycpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJodG1sID0gYmF0Y2hGZXRjaChEYXRhKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgLy93cml0ZUZpbGUoXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBFcnJvci5qc29uXFxcXFxcXCIsSlNPTi5zdHJpbmdpZnkoYmh0bWwpKTtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGJodG1sLmxlbmd0aDsgaysrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IGJodG1sW2tdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coaHRtbCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgPSBodG1sLnN1YnN0cmluZygwLCAyKSA9PSAnXFxcXFxcXFxyXFxcXFxcXFxuJyA/IGh0bWwucmVwbGFjZSgnXFxcXFxcXFxyXFxcXFxcXFxuJywgJycpIDogaHRtbDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2J0d2FmLy50ZXN0KGh0bWwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGZldGNoKERhdGFba10udXJsICsgJyZidHdhZicgKyBodG1sLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLCB7fSk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChodG1sID09IFxcXFxcXFwiXFxcXFxcXCIgfHwgaHRtbCA9PSBudWxsIHx8IGh0bWwuc3Vic3RyaW5nKDAsIDUpID09ICdlcnJvcicgfHwgIWh0bWwuc3RhcnRzV2l0aCgneycpKSB7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFRpdFtrXS50aXQgKyAnICcgKyAn5pyq5pCc57Si5Yiw77yM54K55Ye76K6/6Zeu5Y6f572R6aG1JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBEYXRhW2tdLnVybCArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmxlbmd0aCA8IDgwKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBUaXRba10udGl0ICsgJyAnICsgJ+i/lOWbnuaVsOaNruS4jeWujOaVtO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogRGF0YVtrXS51cmwgKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShodG1sKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhodG1sKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHlwZXQgPSBUaXRba10udHlwbm07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRkb21pbiA9IFRpdFtrXS5saW5rO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChodG1sLmxpc3QpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3QgPSBodG1sLmxpc3Q7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEubGlzdCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YS5saXN0O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gaHRtbC5kYXRhO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gW107XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCA8IDEpIHtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBUaXRba10udGl0ICsgJyAnICsgJ+WIl+ihqOWwj+S6jjHvvIzml6Dms5XlsZXnpLrvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBEYXRhW2tdLnVybCArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1RWL2kudGVzdCh0eXBldCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnBpYztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gbGlzdFtpXS5uZXh0bGluaztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS5zdGF0ZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGRvbWluLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnZvZF9waWM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvZmFudHVhbi8udGVzdCh0ZG9taW4pKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbSA9IGxpc3RbaV0udm9kX3JlbWFya3M7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZG9taW4uaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnZvZF9waWM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAndmlkZW9fZGV0YWlsP2lkPScgKyBsaXN0W2ldLnZvZF9pZDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbSA9IGxpc3RbaV0udm9kX3JlbWFya3M7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gbGlzdFtpXS52b2RfbmFtZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdCh0ZG9taW4pKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJy9kZXRhaWxJRD92b2RfaWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICcvZGV0YWlsP2tleT0nICsgZGF0ZVN0ciArICcmdm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS52b2RfcmVtYXJrcztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgY29uPWxpc3RbaV0udHlwZS50eXBlX2RlcztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnN0YXRlO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2codmlkKTtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IE1ZX1RZUEUgPT0gXFxcXFxcXCJob21lXFxcXFxcXCIgPyB0aXRsZS5yZXBsYWNlKGtleSwgJ+KAnOKAnCcgKyBrZXkgKyAn4oCd4oCdJykgKyAnXFxcXFxcXFxuJyArIHJlbSA6IHRpdGxlICsgcmVtLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHBpYyArICdAUmVmZXJlcj0nLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCh0ZG9taW4uaW5kZXhPZihcXFxcXFxcIm1vZ2FpX2FwaVxcXFxcXFwiKSAhPSAtMSA/IHZpZCArICc7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JyA6IHZpZCArICc7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QG9raHR0cC80LjEuMH0nKS5ydWxlKCh0eXBldCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJycsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiAnMjU1JiZmbG9hdCcsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd4NV93ZWJ2aWV3X3NpbmdsZSdcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBteXVybCA9IE1ZX1VSTC5tYXRjaCgvKFtcXFxcXFxcXFNdKj86XFxcXFxcXFwvXFxcXFxcXFwvW1xcXFxcXFxcU10qPylcXFxcXFxcXC8vKVsxXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9UVi9pLnRlc3QodHlwZXQpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YSA9IGl0ZW1zO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdHlwZXQpLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29udGVudDogcmVtLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IHR5dGl0ICsgJyA9PiAnICsgVGl0W2tdLnRpdCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljJ1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gLy9mb3IgaVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gLy9pZiBsaXN0Lmxlbmd0aFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICB9IC8vZm9yIGsgYmh0bWwubGVuZ3RoXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXFxcbiAgICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxcXG4gICAgICAgICAgICB9LCBsaXN0LCB0eXRpdCksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXFxcbiAgICAgICAgfSk7XFxcXG5cXFxcbiAgICB9IC8vZm9yIGlcXFxcbn07IC8vZW5kIG1vZGUgMVxcXFxuXFxcXG5pZiAoc3Ntb2RlID09ICcwJyB8fCBNWV9UWVBFID09ICdob21lJykge1xcXFxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGxpc3QubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgdmFyIGxpc3QgPSBkbGlzdFtpXS5saXN0O1xcXFxuICAgICAgICB2YXIgdHl0aXQgPSBkbGlzdFtpXS50aXRsZTtcXFxcbiAgICAgICAgaWYgKHJhbmRvbSkge1xcXFxuICAgICAgICAgICAgbGV0IGsgPSBnZXRWYXIoTVlfUlVMRS50aXRsZSArIFxcXFxcXFwiLVxcXFxcXFwiICsgdHl0aXQsIFxcXFxcXFwiXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgaWYgKGsgPT0gXFxcXFxcXCJcXFxcXFxcIikge1xcXFxuICAgICAgICAgICAgICAgIGxpc3QgPSByYW5kb21Tb3J0MyhsaXN0KVxcXFxuICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnRpdGxlICsgXFxcXFxcXCItXFxcXFxcXCIgKyB0eXRpdCwgSlNPTi5zdHJpbmdpZnkobGlzdCkpXFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIGxpc3QgPSBKU09OLnBhcnNlKGspXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH1cXFxcblxcXFxuICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiBNWV9UWVBFID09IFxcXFxcXFwiaG9tZVxcXFxcXFwiID8gXFxcXFxcXCIg6YCJ5oup5LiA5LiqIFxcXFxcXFwiICsgZGxpc3RbaV0udGl0bGUgKyBcXFxcXFxcIiDpobnnm67mn6XnnIsg4oCc4oCcXFxcXFxcXCIgKyBrZXkgKyBcXFxcXFxcIuKAneKAnSDnmoTmkJzntKLnu5PmnpxcXFxcXFxcIiA6IFxcXFxcXFwiIOmAieaLqeS4gOS4qiBcXFxcXFxcIiArIGRsaXN0W2ldLnRpdGxlICsgXFxcXFxcXCIg6aG555uu5p+l55yLIFxcXFxcXFwiICsga2V5ICsgXFxcXFxcXCIg55qE5pCc57Si57uT5p6cXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXFxcbiAgICAgICAgfSk7XFxcXG5cXFxcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XFxcXG4gICAgICAgICAgICB2YXIgbGluayA9IGxpc3Rbal0udXJsO1xcXFxuICAgICAgICAgICAgdmFyIGxpdGl0ID0gbGlzdFtqXS5tdXJsO1xcXFxuICAgICAgICAgICAgaWYgKC9UVi9pLnRlc3QobGl0aXQpKSB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKC8xOWp4fDI5M3lzfHpoYWlrYW55c3xqaVxcXFxcXFxcLWRpbmdcXFxcXFxcXC1oZXxwaG9lYmV8eXVuYm9cXFxcXFxcXC5ieGlufGxhbnJlbnRrfGhldGFveXN8cHh1bnwxMzlcXFxcXFxcXC4xNTV8ZmtrZHl8MDU2MTU4fGFpeGl4aXxydW94aW5ld3xmZWlmYW4xMjN8c2lxaXR2Ly50ZXN0KGxpbmspKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmem09JyArIGtleSArICcmcGFnZT1meXBhZ2UnO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmd2Q9JyArIGtleSArICcmcGFnZT1meXBhZ2UnO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKC9kaWppYXhpYS8udGVzdChsaW5rKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaW5rID0gJ2h0dHA6Ly93d3cuZGlqaWF4aWEuY29tL2FwaS5waHAvYXBwLydcXFxcbiAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgIGlmIChsaW5rLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnc2VhcmNoP3BnPWZ5cGFnZSZ0ZXh0PScgKyBrZXkgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsaW5rLmluZGV4T2YoJ3hnYXBwLnBocC92MS8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJ3NlYXJjaD9wZz1meXBhZ2UmdGV4dD0nICsga2V5O1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QobGluaykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnL2xpc3Q/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9JyArIGtleTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP3BhZ2U9ZnlwYWdlJmxpbWl0PTEwJndkPScgKyBrZXk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogbGlzdFtqXS50aXRsZSxcXFxcbiAgICAgICAgICAgICAgICBpbWc6IGxpc3Rbal0uaW1nLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSN4IycgKyBobXVybCArICcjeCMnICsgbGluayArICcjeCMnICsgbGl0aXQgKyAnI3gjJyArIGtleSArICcjeCMnKS5ydWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2Uvc2VhcmVyaicpO1xcXFxuICAgICAgICAgICAgICAgIH0pLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl9yb3VuZF9zbWFsbF80J1xcXFxuICAgICAgICAgICAgICAgIC8vY29sX3R5cGU6ICd0ZXh0XzMnXFxcXG4gICAgICAgICAgICAgICAgLy9saW5rOmxpbmssXFxcXG4gICAgICAgICAgICAgICAgLy90eXBlOiBpXFxcXG4gICAgICAgICAgICB9KTtcXFxcblxcXFxuICAgICAgICB9IC8vZm9yIGpcXFxcblxcXFxuXFxcXG4gICAgfSAvL2ZvciBpXFxcXG5cXFxcbn0gLy9lbmQgbW9kZSAwXFxcXG5cXFxcblxcXFxucmVzLmRhdGEgPSBpdGVtcztcXFxcbnNldEhvbWVSZXN1bHQocmVzKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCJBUFDliIbnsbvliJfooahcXFwiLFxcXCJwYXRoXFxcIjpcXFwiYXBwbGlzdGRhdGFcXFwiLFxcXCJydWxlXFxcIjpcXFwiaWYgKGh0bWwubGlzdCkge1xcXFxuICAgIHZhciBsaXN0ID0gaHRtbC5saXN0O1xcXFxufSBlbHNlIGlmIChodG1sLmRhdGEgJiYgaHRtbC5kYXRhLmxpc3QpIHtcXFxcbiAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YS5saXN0O1xcXFxufSBlbHNlIHtcXFxcbiAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YTtcXFxcbn1cXFxcbi8vbG9nKGxpc3QpO1xcXFxuZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxcXG4gICAgdmFyIHRpdGxlID0gbGlzdFtpXS52b2RfbmFtZTtcXFxcbiAgICB2YXIgaW1nID0gbGlzdFtpXS52b2RfcGljO1xcXFxuICAgIHZhciB1cmwgPSBsaXN0W2ldLnZvZF9pZDtcXFxcbiAgICB2YXIgZGVzYyA9IGxpc3RbaV0udm9kX3JlbWFya3M7XFxcXG4gICAgdmFyIG5vd0RhdGUgPSBuZXcgRGF0ZSgpO1xcXFxuICAgIHZhciBtb250aCA9IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/IFxcXFxcXFwiMFxcXFxcXFwiICsgKG5vd0RhdGUuZ2V0TW9udGgoKSArIDEpIDogbm93RGF0ZS5nZXRNb250aCgpICsgMTtcXFxcbiAgICB2YXIgZGF5ID0gbm93RGF0ZS5nZXREYXRlKCkgPCAxMCA/IFxcXFxcXFwiMFxcXFxcXFwiICsgbm93RGF0ZS5nZXREYXRlKCkgOiBub3dEYXRlLmdldERhdGUoKTtcXFxcbiAgICB2YXIgZGF0ZVN0ciA9IG1vbnRoICsgJycgKyBkYXk7XFxcXG4gICAgaWYgKGh0bWwubGlzdCkge1xcXFxuICAgICAgICB2YXIgbGluayA9IG11cmwgKyAndmlkZW9fZGV0YWlsP2lkPScgKyB1cmwgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcXFxuICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhICYmIGh0bWwuZGF0YS5saXN0KSB7XFxcXG4gICAgICAgIGlmIChtdXJsLnNlYXJjaCgvbW9nYWlfYXBpLykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICcvZGV0YWlsP2tleT0nICsgZGF0ZVN0ciArICcmdm9kX2lkPScgKyB1cmwgKyAnJnJlbF9saW1pdD0xMDtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJy9kZXRhaWw/a2V5PScgKyBkYXRlU3RyICsgJyZ2b2RfaWQ9JyArIHVybCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBva2h0dHAvNC4xLjB9JztcXFxcbiAgICAgICAgfVxcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHZhciBsaW5rID0gbXVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHVybCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxcXG4gICAgfTtcXFxcbiAgICBpZiAoL2ZhbnR1YW4vLnRlc3QobXVybCkpIHtcXFxcbiAgICAgICAgdmFyIGxpbmsgPSAnaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vYXBpLnBocC9hcHAvdmlkZW9fZGV0YWlsP2lkPScgKyB1cmwgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcXFxuICAgIH0gZWxzZSBpZiAoL2lvcGVueXVuLy50ZXN0KG11cmwpKSB7XFxcXG4gICAgICAgIHZhciBsaW5rID0gbXVybCArICcvZGV0YWlsSUQ/dm9kX2lkPScgKyB1cmwgKyAnJnJlbF9saW1pdD0xMDtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcXFxuICAgIH0gZWxzZSBpZiAoL2RpamlheGlhLy50ZXN0KG11cmwpKSB7XFxcXG4gICAgICAgIHZhciBsaW5rID0gJ2h0dHA6Ly93d3cuZGlqaWF4aWEuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsO1xcXFxuICAgIH1cXFxcbiAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcXFxuICAgICAgICBwaWNfdXJsOiBpbWcgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICAgICAgdXJsOiAkKGxpbmspLnJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgdmFyIHJlcyA9IHt9O1xcXFxuICAgICAgICAgICAgdmFyIGl0ZW1zID0gW107XFxcXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogJycsXFxcXG4gICAgICAgICAgICAgICAgZGVzYzogJzI1NSYmZmxvYXQnLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJycsXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd4NV93ZWJ2aWV3X3NpbmdsZSdcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgcmVmcmVzaFg1V2ViVmlldygnJyk7XFxcXG4gICAgICAgICAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXFxcbiAgICAgICAgICAgIHZhciBteXVybCA9IE1ZX1VSTC5tYXRjaCgvKFtcXFxcXFxcXFNdKj86XFxcXFxcXFwvXFxcXFxcXFwvW1xcXFxcXFxcU10qPylcXFxcXFxcXC8vKVsxXTtcXFxcbiAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcXFxuICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXFxcbiAgICAgICAgICAgIHNldEhvbWVSZXN1bHQocmVzKTtcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIGRlc2M6IGRlc2MsXFxcXG4gICAgICAgIGNvbF90eXBlOiAnbW92aWVfM19tYXJxdWVlJ1xcXFxuICAgIH0pO1xcXFxufVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIlRW5YiX6KGo6Kej5p6QXFxcIixcXFwicGF0aFxcXCI6XFxcInR2bGlzdGRhdGFcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIGxpc3QgPSBodG1sLmRhdGE7XFxcXG5mb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXFxcbiAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcXFxuICAgIHZhciBpbWcgPSBsaXN0W2ldLnBpYztcXFxcbiAgICB2YXIgdXJsID0gbGlzdFtpXS5uZXh0bGluaztcXFxcbiAgICB2YXIgZGVzYyA9IGxpc3RbaV0uc3RhdGU7XFxcXG4gICAgdXJsID0gdXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IHVybCA6IG11cmwgKyAnP2FjPWRldGFpbCZpZHM9JyArIHVybDtcXFxcbiAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcXFxuICAgICAgICBwaWNfdXJsOiBpbWcgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICAgICAgdXJsOiAkKHVybCkucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICB2YXIgcmVzID0ge307XFxcXG4gICAgICAgICAgICB2YXIgaXRlbXMgPSBbXTtcXFxcbiAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShnZXRSZXNDb2RlKCkpO1xcXFxuICAgICAgICAgICAgdmFyIG15dXJsID0gTVlfVVJMLm1hdGNoKC8oW1xcXFxcXFxcU10qPzpcXFxcXFxcXC9cXFxcXFxcXC9bXFxcXFxcXFxTXSo/KVxcXFxcXFxcLy8pWzFdO1xcXFxuICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcXFxuICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICcnLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hYNVdlYlZpZXcoJycpO1xcXFxuICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bW92bGlzdCcsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcXFxuICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXFxcbiAgICAgICAgICAgIHNldEhvbWVSZXN1bHQocmVzKTtcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIGRlc2M6IGRlc2MsXFxcXG4gICAgICAgIGNvbF90eXBlOiAnbW92aWVfM19tYXJxdWVlJ1xcXFxuICAgIH0pO1xcXFxufVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIkFQUOeugOS7i+S4jumAiembhlxcXCIsXFxcInBhdGhcXFwiOlxcXCJhcHBtb3ZsaXN0XFxcIixcXFwicnVsZVxcXCI6XFxcImlmIChodG1sLmRhdGEudm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgIHZhciBjb250cyA9IGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyO1xcXFxuICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxcXG4gICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxcXG4gICAgICAgIHZhciB0YWJzID0gaHRtbC5kYXRhLnZvZF9wbGF5X2Zyb20uc3BsaXQoJyQkJCcpO1xcXFxuICAgIH1cXFxcbn0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF9pbmZvICYmIGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgdmFyIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxcXG4gICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXFxcbiAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgdmFyIHRhYnMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxcXG4gICAgfVxcXFxufSBlbHNlIHtcXFxcbiAgICB2YXIgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfbGlzdDtcXFxcbiAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcXFxuICAgICAgICB2YXIgdGFicyA9IGh0bWwuZGF0YS52b2RfcGxheV9mcm9tLnNwbGl0KCckJCQnKTtcXFxcbiAgICB9XFxcXG59XFxcXG5cXFxcbi8vbG9nKGh0bWwpO1xcXFxuXFxcXG52YXIgdGh1bWIgPSBodG1sLmRhdGEudm9kX2luZm8gPyBodG1sLmRhdGEudm9kX2luZm8udm9kX3BpYyA6IGh0bWwuZGF0YS52b2RfcGljO1xcXFxudmFyIGRlcyA9IGh0bWwuZGF0YS52b2RfaW5mbyA/IGh0bWwuZGF0YS52b2RfaW5mby52b2RfY29udGVudCA6IGh0bWwuZGF0YS52b2RfY29udGVudDtcXFxcbml0ZW1zLnB1c2goe1xcXFxuICAgIHRpdGxlOiAn5Ymn5oOF566A5LuL77yaJyxcXFxcbiAgICBkZXNjOiBkZXMsXFxcXG4gICAgcGljX3VybDogdGh1bWIsXFxcXG4gICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSMnKS5ydWxlKChkZXMpID0+IHtcXFxcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICB0aXRsZTogZGVzLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdsb25nX3RleHQnXFxcXG4gICAgICAgIH1dKTtcXFxcbiAgICB9LCBkZXMpLFxcXFxuICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWMnXFxcXG59KTtcXFxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2RucGx1Z2luJywge30pKS5ydWxlKTtcXFxcblxcXFxuaXRlbXMucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfigJzigJzmjpLluo/igJ3igJ0nLFxcXFxuICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRNeVZhcignYXBwbWFwcHNvcnQnLCBnZXRNeVZhcignYXBwbWFwcHNvcnQnLCcxJyk9PScxJz8nMCc6JzEnKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJ1xcXFxcXFwiLFxcXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXFxcbn0pO1xcXFxudmFyIHRpdGxlID0gTVlfVVJMO1xcXFxuZm9yICh2YXIgayA9IDA7IGsgPCBjb250cy5sZW5ndGg7IGsrKykge1xcXFxuICAgIC8vc2V0RXJyb3IobGlzdC5sZW5ndGgpO1xcXFxuICAgIGlmIChodG1sLmRhdGEudm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgICAgICB2YXIgcHRhYiA9IGNvbnRzW2tdLmNvZGUgPyBjb250c1trXS5jb2RlIDogdGFic1trXTtcXFxcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgICAgICB2YXIgcHRhYiA9IGNvbnRzW2tdLmNvZGUgPyBjb250c1trXS5jb2RlIDogdGFic1trXTtcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICB2YXIgcHRhYiA9IGNvbnRzW2tdLmZyb20gPyBjb250c1trXS5mcm9tIDogdGFic1trXTtcXFxcbiAgICB9XFxcXG4gICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAoZ2V0TXlWYXIodGl0bGUsICcwJykgPT0gayA/ICfwn5GJ8J+PuycgOiAnJykgKyBwdGFiLFxcXFxuICAgICAgICB1cmw6IGBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRNeVZhcignYCArIHRpdGxlICsgXFxcXFxcXCInLCAnXFxcXFxcXCIgKyBrICsgYCcpO3JlZnJlc2hQYWdlKCk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJ2AsXFxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXFxcbiAgICB9KTtcXFxcblxcXFxufVxcXFxuXFxcXG5cXFxcblxcXFxudmFyIGppZWsgPSAnJztcXFxcbi8vZm9yICh2YXIgaSA9IDA7IGkgPCBjb250cy5sZW5ndGg7IGkrKykge1xcXFxuaWYgKGdldE15VmFyKCdhcHBtYXBwc29ydCcsICcxJykgPT0gJzEnKSB7XFxcXG4gICAgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmxzKSB7XFxcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybHM7XFxcXG4gICAgfSBlbHNlIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0udXJsKSB7XFxcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybC5zcGxpdChcXFxcXFxcIiNcXFxcXFxcIik7XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgdmFyIGxpc3QgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uc3BsaXQoXFxcXFxcXCIjXFxcXFxcXCIpO1xcXFxuICAgIH07XFxcXG59IGVsc2Uge1xcXFxuICAgIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0udXJscykge1xcXFxuICAgICAgICB2YXIgbGlzdCA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmxzLnJldmVyc2UoKTtcXFxcbiAgICB9IGVsc2UgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmwpIHtcXFxcbiAgICAgICAgdmFyIGxpc3QgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0udXJsLnNwbGl0KFxcXFxcXFwiI1xcXFxcXFwiKS5yZXZlcnNlKCk7XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgdmFyIGxpc3QgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uc3BsaXQoXFxcXFxcXCIjXFxcXFxcXCIpLnJldmVyc2UoKTtcXFxcbiAgICB9XFxcXG59O1xcXFxuLy9zZXRFcnJvcihsaXN0Lmxlbmd0aCk7XFxcXG5pZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXFxcbiAgICB2YXIgcHRhYiA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5jb2RlID8gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLmNvZGUgOiB0YWJzW2dldE15VmFyKHRpdGxlLCAnMCcpXTtcXFxcbn0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF9pbmZvICYmIGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgdmFyIHB0YWIgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uY29kZSA/IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5jb2RlIDogdGFic1tnZXRNeVZhcih0aXRsZSwgJzAnKV07XFxcXG59IGVsc2Uge1xcXFxuICAgIHZhciBwdGFiID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLmZyb20gPyBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uZnJvbSA6IHRhYnNbZ2V0TXlWYXIodGl0bGUsICcwJyldO1xcXFxufVxcXFxuLypcXFxcbiAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHB0YWIgKyAnIPCflJcnICsgW2kgKyAxXSArICcvJyArIFtjb250cy5sZW5ndGhdICsgXFxcXFxcXCLigJzigJzihpPihpHigJ3igJ1cXFxcXFxcIixcXFxcbiAgICAgICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnB1dFZhcignYXBwbWFwcHNvcnQnLCBnZXRWYXIoJ2FwcG1hcHBzb3J0JywnMScpPT0nMSc/JzAnOicxJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdcXFxcXFxcIixcXFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxuICAgIH0pOyovXFxcXG5cXFxcbmZvciAodmFyIGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xcXFxuICAgIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0udXJscykge1xcXFxuICAgICAgICB2YXIgdmxpbmsgPSBsaXN0W2pdLnVybC5yZXBsYWNlKC8jNDU2Iy9nLCAnaHR0cCcpLnJlcGxhY2UoLyMxMjMjL2csICcuJykucmVwbGFjZSgvIzc4OSMvZywgJzonKTtcXFxcbiAgICAgICAgdmFyIHRpdGxlID0gbGlzdFtqXS5uYW1lO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHZhciB2bGluayA9IGxpc3Rbal0uc3BsaXQoXFxcXFxcXCIkXFxcXFxcXCIpWzFdO1xcXFxuICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2pdLnNwbGl0KFxcXFxcXFwiJFxcXFxcXFwiKVswXTtcXFxcbiAgICB9XFxcXG4gICAgdHJ5IHtcXFxcbiAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgICAgICB2YXIgamllayA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wYXJzZV9hcGk7XFxcXG4gICAgICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF9pbmZvICYmIGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgICAgICB2YXIgamllayA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wYXJzZV9hcGk7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICBpZiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMiAmJiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMikuaW5kZXhPZihcXFxcXFxcIj1cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICB2YXIgamllayA9IChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UyKS5tYXRjaCgvLio/dXJsPXwuKj92PXwuKj92aWQ9LylbMF0ucmVwbGFjZShcXFxcXFxcIi4uXFxcXFxcXCIsIFxcXFxcXFwiLlxcXFxcXFwiKS5yZXBsYWNlKCdqc29uYnMnLCAnJyk7XFxcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSAmJiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlKS5pbmRleE9mKFxcXFxcXFwiPVxcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgIHZhciBqaWVrID0gKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSkubWF0Y2goLy4qP3VybD18Lio/dj18Lio/dmlkPS8pWzBdLnJlcGxhY2UoXFxcXFxcXCIuLlxcXFxcXFwiLCBcXFxcXFxcIi5cXFxcXFxcIik7XFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIHZhciBqaWVrID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIC8vc2V0RXJyb3Ioamllayk7ICAgICAgICAgICAgICAgIFxcXFxuICAgICAgICB9XFxcXG4gICAgfSBjYXRjaCAoZSkge31cXFxcbiAgICAvL2ppZWvmi7zmjqVcXFxcbiAgICBpZiAoamllayAhPSAnJyAmJiBqaWVrICE9IG51bGwpIHtcXFxcbiAgICAgICAgaWYgKGppZWsuc3Vic3RyaW5nKDAsIDQpID09ICdodHRwJykge1xcXFxuICAgICAgICAgICAgamllayA9IGppZWs7XFxcXG4gICAgICAgIH0gZWxzZSBpZiAoamllay5zdWJzdHJpbmcoMCwgMikgPT0gJ1xcXFxcXFxcL1xcXFxcXFxcLycpIHtcXFxcbiAgICAgICAgICAgIGppZWsgPSAnaHR0cHM6JyArIGppZWs7XFxcXG4gICAgICAgIH1cXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICBqaWVrID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICB9XFxcXG4gICAgLy/lr7nlpLHmlYjmjqXlj6Pov5vooYzmm7/mjaJcXFxcbiAgICBpZiAoL2Nva2Vtdi8udGVzdChteXVybCkgJiYgL2Nva2VxaWV8eGlufDkwbW0vLnRlc3QocHRhYikpIHtcXFxcbiAgICAgICAgamllayA9ICdodHRwczovL3BsYXllci45MG1tLm1lL3BsYXkucGhwP3VybD0nO1xcXFxuICAgIH0gZWxzZSBpZiAoL2pzb25cXFxcXFxcXC5tM3U4XFxcXFxcXFwudHZ8d3d3XFxcXFxcXFwueC1uXFxcXFxcXFwuY2MvLnRlc3QoamllaykpIHtcXFxcbiAgICAgICAgamllayA9ICdodHRwczovL2p4Lm0zdTgudHYvamlleGkvP3VybD0nO1xcXFxuICAgIH0gZWxzZSBpZiAoL2NqdDUyMS8udGVzdChteXVybCkpIHtcXFxcbiAgICAgICAgamllayA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZTtcXFxcbiAgICB9IGVsc2UgaWYgKGppZWsuaW5kZXhPZignanBnLmhvdS5sdS9qbS96YS9pbmRleC5waHAnKSAhPSAtMSkge1xcXFxuICAgICAgICBqaWVrID0gJ2h0dHA6Ly92aXAubWVuZ3gudmlwL2hvbWUvYXBpP3R5cGU9eXMmdWlkPTMyNDk2OTYma2V5PWFlZnFydHV3eHlFRkhLTk9RWSZ1cmw9JztcXFxcbiAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ3JlbnJlbm1pJyAmJiBqaWVrLnNlYXJjaCgvamhkeXcvKSAhPSAtMSkge1xcXFxuICAgICAgICBqaWVrID0gJ2h0dHA6Ly93d3cuMTA4MGthbi5jYy9qaWV4aS9ycm1pLnBocD91cmw9JztcXFxcbiAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2ZxZmlsbScgJiYgamllay5zZWFyY2goL2poZHl3LykgIT0gLTEpIHtcXFxcbiAgICAgICAgamllayA9ICdodHRwOi8vd3d3LjEwODBrYW4uY2MvamlleGkvZnEucGhwP3VybD0nO1xcXFxuICAgIH0gZWxzZSBpZiAocHRhYiA9PSAncnJzcCcgJiYgamllay5zZWFyY2goL2poZHl3LykgIT0gLTEpIHtcXFxcbiAgICAgICAgamllayA9ICdodHRwOi8vd3d3LjEwODBrYW4uY2MvamlleGkvcnIucGhwP3VybD0nO1xcXFxuICAgIH0gZWxzZSBpZiAoL21pYW9wYXJ0eS8udGVzdChwdGFiKSAmJiBteXVybC5zZWFyY2goL2Z1bjRrLykgIT0gLTEpIHtcXFxcbiAgICAgICAgamllayA9ICdodHRwczovL3d3dy5mdW40ay5jb20vYXBsYXllci8/dXJsPSc7XFxcXG4gICAgfSBlbHNlIGlmICgvamh5dW5cXFxcXFxcXC5waHAvLnRlc3QoamllaykpIHtcXFxcbiAgICAgICAgamllayA9IGppZWsucmVwbGFjZSgnaHR0cDovL3N2aXAuamh5dW4uanguY246MTIzNC9qaHl1bi5waHA/dXJsPScsICdodHRwczovL2FwaS5qaGR5dy52aXAvP3VybD0nKTtcXFxcbiAgICB9O1xcXFxuICAgIC8v5omT5Y2w5o6l5Y+jXFxcXG4gICAgdHJ5IHtcXFxcbiAgICAgICAgaWYgKGogPT0gJzAnKSB7XFxcXG4gICAgICAgICAgICBpZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXFxcbiAgICAgICAgICAgICAgICBsb2coJ1xcXFxcXFxcbue6v+i3r++8micgKyBwdGFiICsgJ1xcXFxcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcXFxcXG4nICsgJ+ino+aekOaOpeWPo++8mlxcXFxcXFxcbicgKyBqaWVrKTtcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF9pbmZvICYmIGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgICAgICAgICAgbG9nKCdcXFxcXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcXFxcXG7op4bpopHvvJonICsgdmxpbmsgKyAnXFxcXFxcXFxuJyArICfop6PmnpDmjqXlj6PvvJpcXFxcXFxcXG4nICsgamllayk7XFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UyICYmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UyKS5pbmRleE9mKFxcXFxcXFwiPVxcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsb2coJ1xcXFxcXFxcbue6v+i3r++8micgKyBwdGFiICsgJ1xcXFxcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcXFxcXG4nICsgJ+ino+aekOaOpeWPo++8mlxcXFxcXFxcbicgKyBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UyLnJlcGxhY2UoL1xcXFxcXFxcLlxcXFxcXFxcLi9nLCBcXFxcXFxcIi5cXFxcXFxcIikucmVwbGFjZSgvXFxcXFxcXFwsL2csIFxcXFxcXFwiXFxcXFxcXFxuXFxcXFxcXFxuXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSAmJiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlKS5pbmRleE9mKFxcXFxcXFwiPVxcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsb2coJ1xcXFxcXFxcbue6v+i3r++8micgKyBwdGFiICsgJ1xcXFxcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcXFxcXG4nICsgJ+ino+aekOaOpeWPo++8mlxcXFxcXFxcbicgKyBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UucmVwbGFjZSgvXFxcXFxcXFwuXFxcXFxcXFwuL2csIFxcXFxcXFwiLlxcXFxcXFwiKS5yZXBsYWNlKC9cXFxcXFxcXCwvZywgXFxcXFxcXCJcXFxcXFxcXG5cXFxcXFxcXG5cXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxvZygnXFxcXFxcXFxu57q/6Lev77yaJyArIHB0YWIgKyAnXFxcXFxcXFxu6KeG6aKR77yaJyArIHZsaW5rICsgJ1xcXFxcXFxcbicgKyAn6Kej5p6Q5o6l5Y+j77yaXFxcXFxcXFxuJyArIGppZWspO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAvL3NldEVycm9yKGppZWspOyAgICAgICAgICAgICAgICBcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfVxcXFxuICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgLy/lo7DmmI7pk77mjqVcXFxcbiAgICB2YXIgbGluayA9IGppZWsgKyB2bGluaztcXFxcbiAgICAvKlxcXFxuICAgIGlmICgvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8b2JqXFxcXFxcXFwvdG9zLy50ZXN0KHZsaW5rKSAmJiAvaHR0cC8udGVzdCh2bGluaykpIHtcXFxcbiAgICAgICAgbGluayA9IHZsaW5rO1xcXFxuICAgIH1cXFxcbiAgICAqL1xcXFxuICAgIC8vbG9nKGxpbmspO1xcXFxuICAgIHRpdGxlID0gdGl0bGUubWF0Y2goLyjnrKx8XFxcXFxcXFxkfC0pKijpm4Z86K+dfOacnykvZykgPyB0aXRsZS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpIDogdGl0bGU7XFxcXG4gICAgaWYgKGxpc3QubGVuZ3RoIDw9IDQpIHtcXFxcbiAgICAgICAgdmFyIGNsdCA9ICd0ZXh0XzInO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHZhciBjbHQgPSBpc05hTih0aXRsZSkgPyAnZmxleF9idXR0b24nIDogJ3RleHRfNSdcXFxcbiAgICB9O1xcXFxuICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogdGl0bGUsXFxcXG4gICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eScpLmxhenlSdWxlKChwdGFiLCBsaW5rLCBteXVybCwgdmxpbmspID0+IHtcXFxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBvcGVudXJsKHJlc3VybCkge1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdXJsLm1hdGNoKC95b3VrdXxtZ3R2fGl4aWd1YXxxcS5jb218cWl5aXxtaWd1fGJpbGliaWxpfHNvaHV8cHB0dnxsZXwxOTA1LmNvbS8pICYmIHJlc3VybC5zZWFyY2goL2h0bWx8YmlsaWJpbGl8aXhpZ3VhLykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vaHRtbOe9kemhteiwg+eUqOaWreaPkuino+aekFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVuRG4gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLmVuRG47XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5EbiA9PSAnMScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+iwg+eUqOaWreaPkuino+aekGh0bWwnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXFxcXFwidmFyIGNvbmZpZyA9XFxcXFxcXCIgKyBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBheXRtUGFyc2UocmVzdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8b2JqXFxcXFxcXFwvdG9zfG5ldGVhc2VcXFxcXFxcXC5jb20vLnRlc3QocmVzdXJsKSAmJiAvaHR0cC8udGVzdChyZXN1cmwpICYmICEvXFxcXFxcXFwuaHRtbC8udGVzdChyZXN1cmwpICYmICEvXFxcXFxcXFw9aHR0cC8udGVzdChyZXN1cmwpICYmIHB0YWIgIT0gJ2R1b2R1b3p5Jykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC93a2ZpbGUvLnRlc3QocmVzdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL30nXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAvXFxcXFxcXFw9Ly50ZXN0KHJlc3VybCkgPyByZXN1cmwuc3BsaXQoJz0nKVsxXSA6IHJlc3VybCArICcjaXNWaWRlbz10cnVlIyc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL+iwg+eUqOaWreaPkumAmueUqOWHveaVsOino+aekFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVuRG4gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLmVuRG47XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5EbiA9PSAnMScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+iwg+eUqOaWreaPkumAmueUqOWHveaVsOino+aekFxcXFxcXFxcbicgKyBwdGFiICsgJyjpgJrnlKjlh73mlbApJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChcXFxcXFxcInZhciBjb25maWcgPVxcXFxcXFwiICsgZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvblxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChmZXRjaChjb25maWcuY2opKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHB0YWIgKyAnKOmAmueUqOWHveaVsCknO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQYXJzZVNbbmFtZV0ocmVzdXJsLCBteXVybCk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnZHVvZHVvenknKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChnZXRDcnlwdG9KUygpKTtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIERlKHdvcmQpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShtZDUoJ3JYald2WGw2JykpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoJ05YYkhvV0picHNFT2luOGInKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ3J5cHRvSlMuQUVTLmRlY3J5cHQod29yZCwgYSwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXY6IHQsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBDcnlwdG9KUy5tb2RlLkNCQyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIGRkenkgPSAnYWRIdVJvMGRjdUhvTTE2M0wxeTQnICsgYmFzZTY0RW5jb2RlKHNyY3VybCkuc2xpY2UoMTApO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vaHR0cHM6Ly9iby5kZDUyMC5jYy94cGxheS9hcGkucGhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZHd5ID0gZmV0Y2goJ2h0dHBzOi8vamhwYy5tYW5kdWh1LmNvbS9kdW9kdW8vYXBpLnBocCcsIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IE1PQklMRV9VQVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiAndXJsPScgKyByZXN1cmwsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coZGR3eSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERlKEpTT04ucGFyc2UoZGR3eSkudXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL21pYW9wYXJ0eS8udGVzdChwdGFiKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9jb2RlLmFsaXl1bi5jb20vbHprMjM1NTkvUHVibGljUnVsZS9yYXcvbWFzdGVyL3g1cnVsZS5qcycsIDI0KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geDVydWxlKCdodHRwczovL3d3dy5mdW40ay5jb20vYXBsYXllci8/dXJsPScgKyByZXN1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdXJsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgc3JjdXJsID0gbGluaztcXFxcbiAgICAgICAgICAgICAgICAvL2xvZyhzcmN1cmwpO1xcXFxuICAgICAgICAgICAgICAgIC8v5Yqo5oCB6Kej5p6Q5Luj56CB5byA5aeLXFxcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgLy/lpITnkIbmjIflrprop4bpopHkuI7nur/ot69cXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcXFxcXC5tM3U4fFxcXFxcXFxcLm1wNHxvYmpcXFxcXFxcXC90b3N8bmV0ZWFzZVxcXFxcXFxcLmNvbS8udGVzdChzcmN1cmwpICYmIC9odHRwLy50ZXN0KHNyY3VybCkgJiYgIS9cXFxcXFxcXC5odG1sLy50ZXN0KHNyY3VybCkgJiYgIS9cXFxcXFxcXD1odHRwLy50ZXN0KHNyY3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvd2tmaWxlLy50ZXN0KHNyY3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3JjdXJsICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99J1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gL1xcXFxcXFxcPS8udGVzdChzcmN1cmwpID8gc3JjdXJsLnNwbGl0KCc9JylbMV0gOiBzcmN1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNyY3VybC5pbmRleE9mKFxcXFxcXFwiL3NoYXJlL1xcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGluayA9IHNyY3VybC5zcGxpdChcXFxcXFxcIi9zaGFyZVxcXFxcXFwiKVswXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmMgPSBmZXRjaChzcmN1cmwsIHt9KS5yZXBsYWNlKFxcXFxcXFwidmFyIHB1cmxcXFxcXFxcIiwgXFxcXFxcXCJ2YXIgbWFpblxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmMuaW5kZXhPZihcXFxcXFxcIm1haW5cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1hdCA9IGZjLm1hdGNoKC92YXIgbWFpbi4qPzsvKVswXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChtYXQpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheSA9IChtYWluLmluZGV4T2YoXFxcXFxcXCJodHRwXFxcXFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbiA9IGZjLm1hdGNoKC91cmw6Lio/W1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdKC4qPylbXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl0vKVsxXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXkgPSAobWFpbi5pbmRleE9mKFxcXFxcXFwiaHR0cFxcXFxcXFwiKSAhPSAtMSA/IG1haW4gOiBsaW5rICsgbWFpbilcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwbGF5O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneDVXZWJWaWV3Oi8vJyArIChzcmN1cmwpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvOTgzdmlwLy50ZXN0KHNyY3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZldGNoKHNyY3VybCwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IE1PQklMRV9VQVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhIZWFkZXJzOiB0cnVlXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSkuaGVhZGVycy5sb2NhdGlvblswXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgveFxcXFxcXFxcLW5cXFxcXFxcXC5jY3xuaGR6NjY2Ly50ZXN0KHNyY3VybCkgJiYgL1xcXFxcXFxcLmh0bWx8YmlsaWJpbGkvLnRlc3Qoc3JjdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwodmxpbmspO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIC8v5aSE55CG5oyH5a6a6KeG6aKR5ZKM57q/6Lev57uT5p2fXFxcXG4gICAgICAgICAgICAgICAgICAgIC8vLS0tLeWIhuWJsue6vy0tLS0vL1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgc2NvZGUgPSBKU09OLnBhcnNlKGZldGNoKHNyY3VybCwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBcXFxcXFxcIkRhcnQvMi4xNCAoZGFydDppbylcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhTdGF0dXNDb2RlOiB0cnVlXFxcXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgLy9sb2coc2NvZGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAyJyB8fCBzY29kZS5zdGF0dXNDb2RlID09ICczMDEnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL+aJk+W8gOino+aekOaciTMwMumHjeWumuWQkeeahOmTvuaOpVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlZHVybCA9IHNjb2RlLmhlYWRlcnMubG9jYXRpb25bMF0ucmVwbGFjZSgvXFxcXFxcXFxcXFxcXFxcXC9nLCAnJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1xcXFxcXFxcPWh0dHAvLnRlc3QocmVkdXJsKSAmJiAvaHRtbHxiaWxpYmlsaXxrZXlcXFxcXFxcXD0vLnRlc3QocmVkdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZldGNoKHJlZHVybCwge30pKS51cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcXFxcXD1odHRwLy50ZXN0KHJlZHVybCkgJiYgL1xcXFxcXFxcLm0zdTh8XFxcXFxcXFwubXA0fFxcXFxcXFxcLmZsdi8udGVzdChyZWR1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVybC5zdWJzdHJpbmcocmVkdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL2h0dHAvLnRlc3QocmVkdXJsKSAmJiAva2V5XFxcXFxcXFw9fHVpZFxcXFxcXFxcPS8udGVzdChyZWR1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZmV0Y2gocmVkdXJsLCB7fSkpLnVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVybFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgaHRtbCA9IHJlcXVlc3Qoc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gc2NvZGUuYm9keTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvNDA0IE5vdCBGb3VuZHzlpIfmoYjlkI7lj6/nu6fnu63orr/pl64vLnRlc3QoaHRtbCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybCh2bGluayk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcXFxcXDxib2R5Ly50ZXN0KGh0bWwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCflsJ3or5XpnZ5KU09O5o6l5Y+j572R6aG16Kej5p6QJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZUNhY2hlKCdodHRwczovL2NvZGUuYWxpeXVuLmNvbS9semsyMzU1OS9QdWJsaWNSdWxlL3Jhdy9tYXN0ZXIveDVydWxlLmpzJywgMjQpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoc3JjdXJsLCBzcmN1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vcmV0dXJuIG9wZW51cmwoc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9qc29u6Kej5p6Q55qE5Y+W6ZO+5o6lXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBodG1sLm1hdGNoKC9bXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl11cmxbXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl06Lio/W1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdKC4qPylbXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl0vKVsxXS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFxcL2csICcnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhwdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2h0dHAvLnRlc3QocHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHB0YWIgPT0gJ2JpbGliaWxpJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS8mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdtZ3R2Jykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvb2piay8udGVzdChwdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vYmFrLm9qYmtqeC5jb20vfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v6Z2eaHR0cOW8gOWktOeahOaJk+W8gOWOn+mTvuaOpSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwodmxpbmspXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAvL+aKpemUmeWIpOaWreWkhOeQhlxcXFxuICAgICAgICAgICAgICAgICAgICBsb2coJ+aJp+ihjOaKpemUmei3s+i9rOWkhOeQhicpO1xcXFxuICAgICAgICAgICAgICAgICAgICAvKmlmIChzcmN1cmwuc3Vic3RyaW5nKDAsIDIpID09ICdcXFxcXFxcXC9cXFxcXFxcXC8nKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybCgnaHR0cHM6JyArIHNyY3VybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFxcXFxcPWh0dHAvLnRlc3Qoc3JjdXJsKSAmJiAvXFxcXFxcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3JldHVybiBzcmN1cmwuc3BsaXQoJz0nKVsxXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ki9cXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwodmxpbmspXFxcXG4gICAgICAgICAgICAgICAgICAgIC8vcmV0dXJuICd4NVdlYlZpZXc6Ly8nK3NyY3VybFxcXFxuICAgICAgICAgICAgICAgICAgICAvL31cXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHnu5PmnZ9cXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICBwdGFiLFxcXFxuICAgICAgICAgICAgbGluayxcXFxcbiAgICAgICAgICAgIG15dXJsLFxcXFxuICAgICAgICAgICAgdmxpbmspLFxcXFxuICAgICAgICBjb2xfdHlwZTogY2x0XFxcXG4gICAgfSk7XFxcXG59XFxcXG4vL31cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCJUVueugOS7i+S4jumAiembhlxcXCIsXFxcInBhdGhcXFwiOlxcXCJ0dm1vdmxpc3RcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIHRhYnMgPSBPYmplY3Qua2V5cyhodG1sLnZpZGVvbGlzdCk7XFxcXG52YXIgdGh1bWIgPSBodG1sLmltZ191cmw7XFxcXG5pdGVtcy5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+WJp+aDheeugOS7i++8micsXFxcXG4gICAgZGVzYzogaHRtbC5pbnRybyxcXFxcbiAgICBwaWNfdXJsOiB0aHVtYixcXFxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGRlcykgPT4ge1xcXFxuICAgICAgICBzZXRSZXN1bHQoW3tcXFxcbiAgICAgICAgICAgIHRpdGxlOiBkZXMsXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXFxcbiAgICAgICAgfV0pO1xcXFxuICAgIH0sIGh0bWwuaW50cm8pLFxcXFxuICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWMnXFxcXG59KTtcXFxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2RucGx1Z2luJywge30pKS5ydWxlKTtcXFxcblxcXFxuaXRlbXMucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfigJzigJzmjpLluo/igJ3igJ0nLFxcXFxuICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRNeVZhcignYXBwbXR2c29ydCcsIGdldE15VmFyKCdhcHBtdHZzb3J0JywnMScpPT0nMSc/JzAnOicxJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdcXFxcXFxcIixcXFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG59KTtcXFxcbnZhciBndmEgPSBNWV9VUkw7XFxcXG5mb3IgKHZhciBrID0gMDsgayA8IHRhYnMubGVuZ3RoOyBrKyspIHtcXFxcbiAgICB2YXIgcHRhYiA9IHRhYnNba107XFxcXG4gICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAoZ2V0TXlWYXIoZ3ZhLCAnMCcpID09IGsgPyAn8J+RifCfj7snIDogJycpICsgcHRhYixcXFxcbiAgICAgICAgdXJsOiBgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ2AgKyBndmEgKyBcXFxcXFxcIicsICdcXFxcXFxcIiArIGsgKyBgJyk7cmVmcmVzaFBhZ2UoKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnYCxcXFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxuICAgIH0pO1xcXFxuXFxcXG59XFxcXG5cXFxcbi8vZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgaSsrKSB7XFxcXG5pZiAoZ2V0TXlWYXIoJ2FwcG10dnNvcnQnLCAnMScpID09ICcxJykge1xcXFxuICAgIHZhciBsaXN0ID0gaHRtbC52aWRlb2xpc3RbdGFic1tnZXRNeVZhcihndmEsICcwJyldXTtcXFxcbn0gZWxzZSB7XFxcXG4gICAgdmFyIGxpc3QgPSBodG1sLnZpZGVvbGlzdFt0YWJzW2dldE15VmFyKGd2YSwgJzAnKV1dLnJldmVyc2UoKTtcXFxcbn07XFxcXG5cXFxcbmZvciAodmFyIGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xcXFxuICAgIHZhciBzcmN1cmwgPSBsaXN0W2pdLnVybDtcXFxcbiAgICBpZiAoLzI5M2p4MS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgIHNyY3VybCA9IHNyY3VybC5yZXBsYWNlKCcyOTNqeDEnLCAnangnKTtcXFxcbiAgICB9IGVsc2UgaWYgKC84ZDhxfGRpbGlrdHZ8aGFva2FuanUxfGN6dHZ8Zml0XFxcXFxcXFw6OHxwcHpodS8udGVzdChteXVybCkpIHtcXFxcbiAgICAgICAgc3JjdXJsID0gc3JjdXJsICsgJyZhcHA9MTAwMDAmYWNjb3VudD0yNzI3NzUwMjgmcGFzc3dvcmQ9cXEyNzI3NzUwMjgnO1xcXFxuICAgIH1cXFxcbiAgICB2YXIgdGl0bGUgPSBsaXN0W2pdLnRpdGxlO1xcXFxuICAgIHRpdGxlID0gdGl0bGUubWF0Y2goLyjnrKx8XFxcXFxcXFxkfC0pKijpm4Z86K+dfOacnykvZykgPyB0aXRsZS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpIDogdGl0bGU7XFxcXG4gICAgaWYgKGxpc3QubGVuZ3RoIDw9IDQpIHtcXFxcbiAgICAgICAgdmFyIGNsdCA9ICd0ZXh0XzInO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHZhciBjbHQgPSBpc05hTih0aXRsZSkgPyAnZmxleF9idXR0b24nIDogJ3RleHRfNSdcXFxcbiAgICB9O1xcXFxuICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogdGl0bGUsXFxcXG4gICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eScpLmxhenlSdWxlKChwdGFiLCBzcmN1cmwsIG15dXJsKSA9PiB7XFxcXG4gICAgICAgICAgICBmdW5jdGlvbiBvcGVudXJsKHJlc3VybCkge1xcXFxuICAgICAgICAgICAgICAgIGlmIChyZXN1cmwubWF0Y2goL3lvdWt1fG1ndHZ8aXhpZ3VhfHFxLmNvbXxxaXlpfG1pZ3V8YmlsaWJpbGl8c29odXxwcHR2fGxlfDE5MDUuY29tLykgJiYgcmVzdXJsLnNlYXJjaCgvaHRtbHxiaWxpYmlsaS8pICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBlbkRuID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uJywge30pKS5lbkRuO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoZW5EbiA9PSAnMScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn6LCD55So5pat5o+S6Kej5p6QJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXFxcXFwidmFyIGNvbmZpZyA9XFxcXFxcXCIgKyBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoZmV0Y2goY29uZmlnLmNqKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKHJlc3VybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdXJsXFxcXG4gICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAvL2xvZyhzcmN1cmwpO1xcXFxuICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHlvIDlp4tcXFxcbiAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKC9cXFxcXFxcXC5tM3U4fFxcXFxcXFxcLm1wNHxvYmpcXFxcXFxcXC90b3MvLnRlc3Qoc3JjdXJsKSAmJiAvaHR0cC8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAvXFxcXFxcXFw9Ly50ZXN0KHNyY3VybCkgPyBzcmN1cmwuc3BsaXQoJz0nKVsxXSA6IHNyY3VybCArICcjaXNWaWRlbz10cnVlIyc7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzcmN1cmwuaW5kZXhPZihcXFxcXFxcIi9zaGFyZS9cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gc3JjdXJsLnNwbGl0KFxcXFxcXFwiL3NoYXJlXFxcXFxcXCIpWzBdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZjID0gZmV0Y2goc3JjdXJsLCB7fSkucmVwbGFjZShcXFxcXFxcInZhciBwdXJsXFxcXFxcXCIsIFxcXFxcXFwidmFyIG1haW5cXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmMuaW5kZXhPZihcXFxcXFxcIm1haW5cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWF0ID0gZmMubWF0Y2goL3ZhciBtYWluLio/Oy8pWzBdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwobWF0KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheSA9IChtYWluLmluZGV4T2YoXFxcXFxcXCJodHRwXFxcXFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1haW4gPSBmYy5tYXRjaCgvdXJsOi4qP1tcXFxcXFxcXCdcXFxcXFxcXFxcXFxcXFwiXSguKj8pW1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdLylbMV07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXkgPSAobWFpbi5pbmRleE9mKFxcXFxcXFwiaHR0cFxcXFxcXFwiKSAhPSAtMSA/IG1haW4gOiBsaW5rICsgbWFpbilcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGxheTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd4NVdlYlZpZXc6Ly8nICsgKHNyY3VybClcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnYWxpenknKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gZmV0Y2goJ2h0dHBzOi8vZm91YmluLmNvbS9qaWV4aS5waHA/dXJsPScgKyBzcmN1cmwsIHt9KS5tYXRjaCgvXFxcXFxcXFxcXFxcXFxcInVybFxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdO1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybDtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC8xOWp4XFxcXFxcXFwudmlwfG5meWluZ3NoaS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwucmVwbGFjZSgnaHR0cDovLycsICdodHRwczovLycpLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IE1PQklMRV9VQVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhIZWFkZXJzOiB0cnVlXFxcXG4gICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoL3RpdGFuLm1ndHYvLnRlc3QocHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJyArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29ialxcXFxcXFxcL3Rvcy8udGVzdChwdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmxcXFxcbiAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgLyplbHNlIGlmICgvemhhaWthbnlzLy50ZXN0KHNyY3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwgKyAnJmFwcD0xMDAwMyZhY2NvdW50PTI3Mjc3NTAyOCZwYXNzd29yZD1xcTI3Mjc3NTAyOCcsIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBNT0JJTEVfVUFcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoSGVhZGVyczogdHJ1ZVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLmhlYWRlcnMubG9jYXRpb25bMF07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL3RpdGFuLm1ndHYvLnRlc3QocHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvb2JqXFxcXFxcXFwvdG9zLy50ZXN0KHB1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSovXFxcXG5cXFxcbiAgICAgICAgICAgICAgICAvLy0tLS3liIblibLnur8tLS0tLy9cXFxcbiAgICAgICAgICAgICAgICB2YXIgc2NvZGUgPSBKU09OLnBhcnNlKGZldGNoKHNyY3VybCwge1xcXFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogTU9CSUxFX1VBXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgd2l0aFN0YXR1c0NvZGU6IHRydWVcXFxcbiAgICAgICAgICAgICAgICB9KSk7XFxcXG4gICAgICAgICAgICAgICAgLy9sb2coc2NvZGUpO1xcXFxuICAgICAgICAgICAgICAgIGlmIChzY29kZS5zdGF0dXNDb2RlID09ICczMDInIHx8IHNjb2RlLnN0YXR1c0NvZGUgPT0gJzMwMScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBzY29kZS5oZWFkZXJzLmxvY2F0aW9uWzBdLnJlcGxhY2UoL1xcXFxcXFxcXFxcXFxcXFwvZywgJycpO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGh0bWwgPSByZXF1ZXN0KHNyY3VybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gc2NvZGUuYm9keTtcXFxcbiAgICAgICAgICAgICAgICAgICAgLy9sb2coaHRtbCk7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvNDA0IE5vdCBGb3VuZHzlpIfmoYjlkI7lj6/nu6fnu63orr/pl64vLnRlc3QoaHRtbCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFxcXFxcXFxcXFxcXCJ1cmxcXFxcXFxcXFxcXFxcXFwiXFxcXFxcXFw6XFxcXFxcXFxcXFxcXFxcImh0dHAvLnRlc3QoaHRtbCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gaHRtbC5tYXRjaCgvXFxcXFxcXFxcXFxcXFxcInVybFxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLnJlcGxhY2UoL1xcXFxcXFxcXFxcXFxcXFwvZywgJycpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuc3RhcnRzV2l0aCgneycpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHVybCA9IHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIHB1cmwgPSBzcmN1cmxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9jb2RlLmFsaXl1bi5jb20vbHprMjM1NTkvUHVibGljUnVsZS9yYXcvbWFzdGVyL3g1cnVsZS5qcycsIDI0KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoc3JjdXJsLCBzcmN1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXR1cm4gJ3g1V2ViVmlldzovLycrKHNyY3VybCkgXFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgIC8vbG9nKHB1cmwpO1xcXFxuICAgICAgICAgICAgICAgIGlmICgvdGl0YW4ubWd0di8udGVzdChwdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29ialxcXFxcXFxcL3Rvcy8udGVzdChwdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIyc7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmxcXFxcbiAgICAgICAgICAgICAgICB9O1xcXFxuXFxcXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKHNyY3VybC5zdWJzdHJpbmcoMCwgMikgPT0gJ1xcXFxcXFxcL1xcXFxcXFxcLycpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoJ2h0dHBzOicgKyBzcmN1cmwpO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFxcXFxcPWh0dHAvLnRlc3Qoc3JjdXJsKSAmJiAvXFxcXFxcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vcmV0dXJuIHNyY3VybC5zcGxpdCgnPScpWzFdO1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybClcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggee7k+adn1xcXFxuICAgICAgICB9LCBwdGFiLCBzcmN1cmwsIG15dXJsKSxcXFxcbiAgICAgICAgY29sX3R5cGU6IGNsdFxcXFxuICAgIH0pO1xcXFxufVxcXFxuLy99XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5YiX6KGo5qih5byP5pCc57Si5LqM57qnXFxcIixcXFwicGF0aFxcXCI6XFxcInNlYXJlcmpcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIHJlcyA9IHt9O1xcXFxudmFyIGl0ZW1zID0gW107XFxcXG52YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxcXG52YXIgbW9udGggPSBub3dEYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyBcXFxcXFxcIjBcXFxcXFxcIiArIChub3dEYXRlLmdldE1vbnRoKCkgKyAxKSA6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDE7XFxcXG52YXIgZGF5ID0gbm93RGF0ZS5nZXREYXRlKCkgPCAxMCA/IFxcXFxcXFwiMFxcXFxcXFwiICsgbm93RGF0ZS5nZXREYXRlKCkgOiBub3dEYXRlLmdldERhdGUoKTtcXFxcbnZhciBkYXRlU3RyID0gbW9udGggKyAnJyArIGRheTtcXFxcbnZhciBzcGwgPSBnZXRSZXNDb2RlKCkuc3BsaXQoJyN4IycpO1xcXFxudmFyIHR5cGV0ID0gc3BsWzNdO1xcXFxudmFyIHRkb21pbiA9IHNwbFsyXTtcXFxcbnZhciBrZXkgPSBzcGxbNF07XFxcXG5cXFxcbmlmICgvdmlwbXYvLnRlc3QodGRvbWluKSkge1xcXFxuICAgIHZhciBiaHRtbCA9IHJlcXVlc3Qoc3BsWzFdKTtcXFxcbn0gZWxzZSB7XFxcXG4gICAgdmFyIGJodG1sID0gZmV0Y2goc3BsWzFdLCB7XFxcXG4gICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiB0ZG9taW4uaW5kZXhPZihcXFxcXFxcIm1vZ2FpX2FwaVxcXFxcXFwiKSAhPSAtMSA/IFxcXFxcXFwiRGFydC8yLjE0IChkYXJ0OmlvKVxcXFxcXFwiIDogXFxcXFxcXCJva2h0dHAvNC4xLjBcXFxcXFxcIlxcXFxuICAgICAgICB9XFxcXG4gICAgfSk7XFxcXG59XFxcXG50cnkge1xcXFxuICAgIGJodG1sID0gYmh0bWwuc3RhcnRzV2l0aCgnXFxcXFxcXFxyXFxcXFxcXFxuJykgPyBiaHRtbC5yZXBsYWNlKCdcXFxcXFxcXHJcXFxcXFxcXG4nLCAnJykgOiBiaHRtbDtcXFxcbn0gY2F0Y2ggKGUpIHt9XFxcXG5pZiAoL2J0d2FmLy50ZXN0KGJodG1sKSkge1xcXFxuICAgIC8qXFxcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOifmnInlrp3loZTpqozor4HvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHNwbFsxXSArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXFxcbiAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICAqL1xcXFxuXFxcXG4gICAgYmh0bWwgPSBmZXRjaChzcGxbMV0gKyAnJmJ0d2FmJyArIGJodG1sLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLCB7fSk7XFxcXG5cXFxcbn1cXFxcblxcXFxuaWYgKGJodG1sID09IFxcXFxcXFwiXFxcXFxcXCIgfHwgYmh0bWwgPT0gbnVsbCB8fCBiaHRtbC5zdWJzdHJpbmcoMCwgNSkgPT0gJ2Vycm9yJyB8fCAhYmh0bWwuc3RhcnRzV2l0aCgneycpKSB7XFxcXG4gICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAn5pyq5pCc57Si5Yiw55u45YWz6LWE5rqQ77yM54K55Ye76K6/6Zeu5Y6f572R6aG1JyxcXFxcbiAgICAgICAgdXJsOiBzcGxbMV0gKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgfSk7XFxcXG59IGVsc2UgaWYgKGJodG1sLmxlbmd0aCA8IDgwKSB7XFxcXG4gICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAn6L+U5Zue5pWw5o2u5LiN5a6M5pW077yM54K55Ye76K6/6Zeu5Y6f572R6aG1JyxcXFxcbiAgICAgICAgdXJsOiBzcGxbMV0gKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgfSk7XFxcXG59IGVsc2Uge1xcXFxuICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShiaHRtbCk7XFxcXG4gICAgLy9sb2coc3BsWzFdKTtcXFxcbiAgICBpZiAoaHRtbC5saXN0KSB7XFxcXG4gICAgICAgIHZhciBsaXN0ID0gaHRtbC5saXN0O1xcXFxuICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLmxpc3QpIHtcXFxcbiAgICAgICAgdmFyIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXFxcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSkge1xcXFxuICAgICAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YTtcXFxcbiAgICB9XFxcXG5cXFxcbiAgICBpZiAobGlzdC5sZW5ndGggPCAxKSB7XFxcXG4gICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6ICfmnKrmkJzntKLliLDvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcXFxuICAgICAgICAgICAgdXJsOiBzcGxbMV0gKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxuICAgICAgICB9KTtcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXFxcblxcXFxuICAgICAgICAgICAgaWYgKC9UVi8udGVzdCh0eXBldCkpIHtcXFxcbiAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcXFxuICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnBpYztcXFxcbiAgICAgICAgICAgICAgICAvL3ZhciB2aWQ9dGRvbWluKycvZGV0YWlsP3ZvZF9pZD0nK2xpc3RbaV0ubmV4dGxpbmsrJyZyZWxfbGltaXQ9MTAnO1xcXFxuICAgICAgICAgICAgICAgIHZhciB2aWQgPSBsaXN0W2ldLm5leHRsaW5rO1xcXFxuICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnN0YXRlO1xcXFxuICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnN0YXRlO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICBpZiAodGRvbWluLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnZvZF9waWM7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvZmFudHVhbi8udGVzdCh0ZG9taW4pKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlbSA9IGxpc3RbaV0udm9kX3JlbWFya3M7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZG9taW4uaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnZvZF9waWM7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAndmlkZW9fZGV0YWlsP2lkPScgKyBsaXN0W2ldLnZvZF9pZDtcXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlbSA9IGxpc3RbaV0udm9kX3JlbWFya3M7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gbGlzdFtpXS52b2RfbmFtZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdCh0ZG9taW4pKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJy9kZXRhaWxJRD92b2RfaWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICcvZGV0YWlsP2tleT0nICsgZGF0ZVN0ciArICcmdm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS52b2RfcmVtYXJrcztcXFxcbiAgICAgICAgICAgICAgICAgICAgLy92YXIgY29uPWxpc3RbaV0udHlwZS50eXBlX2RlcztcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZS5yZXBsYWNlKGtleSwgJ+KAnOKAnCcgKyBrZXkgKyAn4oCd4oCdJyksXFxcXG4gICAgICAgICAgICAgICAgcGljX3VybDogcGljICsgJ0BSZWZlcmVyPScsXFxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKHRkb21pbi5pbmRleE9mKFxcXFxcXFwibW9nYWlfYXBpXFxcXFxcXCIpICE9IC0xID8gdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nIDogdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRAb2todHRwLzQuMS4wfScpLnJ1bGUoKHR5cGV0KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXMgPSB7fTtcXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1zID0gW107XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShnZXRSZXNDb2RlKCkpO1xcXFxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJycsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3g1X3dlYnZpZXdfc2luZ2xlJ1xcXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFg1V2ViVmlldygnJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBteXVybCA9IE1ZX1VSTC5tYXRjaCgvKFtcXFxcXFxcXFNdKj86XFxcXFxcXFwvXFxcXFxcXFwvW1xcXFxcXFxcU10qPylcXFxcXFxcXC8vKVsxXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9UVi8udGVzdCh0eXBldCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bW92bGlzdCcsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBtb3ZsaXN0Jywge30pKS5ydWxlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICByZXMuZGF0YSA9IGl0ZW1zO1xcXFxuICAgICAgICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxcXG4gICAgICAgICAgICAgICAgfSwgdHlwZXQpLFxcXFxuICAgICAgICAgICAgICAgIC8vY29udGVudDpyZW0sXFxcXG4gICAgICAgICAgICAgICAgZGVzYzogcmVtLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWMnXFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgfSAvL2ZvciBpXFxcXG4gICAgfSAvL2Vsc2UgbGlzdC5sZW5ndGhcXFxcbn1cXFxcblxcXFxucmVzLmRhdGEgPSBpdGVtcztcXFxcbnNldEhvbWVSZXN1bHQocmVzKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCJBUFDpppbpobXliJfooahcXFwiLFxcXCJwYXRoXFxcIjpcXFwiYXBwaW5kZXhkYXRhXFxcIixcXFwicnVsZVxcXCI6XFxcImlmIChodG1sLmxpc3QpIHtcXFxcbiAgICB2YXIgbGlzdCA9IGh0bWwubGlzdDtcXFxcbn0gZWxzZSBpZiAoaHRtbC5kYXRhICYmIGh0bWwuZGF0YS5saXN0KSB7XFxcXG4gICAgdmFyIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXFxcbn0gZWxzZSB7XFxcXG4gICAgdmFyIGxpc3QgPSBodG1sLmRhdGE7XFxcXG59XFxcXG5cXFxcbmZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcXFxuICAgIGlmIChsaXN0W2ldLnZvZF9saXN0KSB7XFxcXG4gICAgICAgIHZhciBsaXN0cyA9IGxpc3RbaV0udm9kX2xpc3Q7XFxcXG4gICAgICAgIHZhciB0eXBlbmFtZSA9IGxpc3RbaV0udm9kX3R5cGVfbmFtZTtcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICB2YXIgbGlzdHMgPSBsaXN0W2ldLnZsaXN0O1xcXFxuICAgICAgICB2YXIgdHlwZW5hbWUgPSBsaXN0W2ldLnR5cGVfbmFtZVxcXFxuICAgIH1cXFxcbiAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHR5cGVuYW1lLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXFxcblxcXFxuICAgIH0pO1xcXFxuXFxcXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaXN0cy5sZW5ndGg7IGorKykge1xcXFxuICAgICAgICB2YXIgdGl0bGUgPSBsaXN0c1tqXS52b2RfbmFtZTtcXFxcbiAgICAgICAgdmFyIGltZyA9IGxpc3RzW2pdLnZvZF9waWM7XFxcXG4gICAgICAgIHZhciB1cmwgPSBsaXN0c1tqXS52b2RfaWQ7XFxcXG4gICAgICAgIHZhciBkZXNjID0gbGlzdHNbal0udm9kX3JlbWFya3M7XFxcXG4gICAgICAgIHZhciBub3dEYXRlID0gbmV3IERhdGUoKTtcXFxcbiAgICAgICAgdmFyIG1vbnRoID0gbm93RGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gXFxcXFxcXCIwXFxcXFxcXCIgKyAobm93RGF0ZS5nZXRNb250aCgpICsgMSkgOiBub3dEYXRlLmdldE1vbnRoKCkgKyAxO1xcXFxuICAgICAgICB2YXIgZGF5ID0gbm93RGF0ZS5nZXREYXRlKCkgPCAxMCA/IFxcXFxcXFwiMFxcXFxcXFwiICsgbm93RGF0ZS5nZXREYXRlKCkgOiBub3dEYXRlLmdldERhdGUoKTtcXFxcbiAgICAgICAgdmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcXFxuICAgICAgICBpZiAoaHRtbC5saXN0KSB7XFxcXG4gICAgICAgICAgICB2YXIgbGluayA9IG11cmwgKyAndmlkZW9fZGV0YWlsP2lkPScgKyB1cmwgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcXFxuICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcXFxuICAgICAgICAgICAgaWYgKG11cmwuc2VhcmNoKC9tb2dhaV9hcGkvKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICcvZGV0YWlsP2tleT0nICsgZGF0ZVN0ciArICcmdm9kX2lkPScgKyB1cmwgKyAnJnJlbF9saW1pdD0xMDtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbD9rZXk9JyArIGRhdGVTdHIgKyAnJnZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QG9raHR0cC80LjEuMH0nO1xcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXFxcbiAgICAgICAgfTtcXFxcbiAgICAgICAgaWYgKC9mYW50dWFuLy50ZXN0KG11cmwpKSB7XFxcXG4gICAgICAgICAgICB2YXIgbGluayA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHVybCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxcXG4gICAgICAgIH0gZWxzZSBpZiAoL2lvcGVueXVuLy50ZXN0KG11cmwpKSB7XFxcXG4gICAgICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXFxcbiAgICAgICAgfSBlbHNlIGlmICgvZGlqaWF4aWEvLnRlc3QobXVybCkpIHtcXFxcbiAgICAgICAgICAgIHZhciBsaW5rID0gJ2h0dHA6Ly93d3cuZGlqaWF4aWEuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsO1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxcXFxuICAgICAgICAgICAgcGljX3VybDogaW1nICsgJ0BSZWZlcmVyPScsXFxcXG4gICAgICAgICAgICB1cmw6ICQobGluaykucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgdmFyIHJlcyA9IHt9O1xcXFxuICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJycsXFxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAnJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd4NV93ZWJ2aWV3X3NpbmdsZSdcXFxcbiAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoWDVXZWJWaWV3KCcnKTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgbXl1cmwgPSBNWV9VUkwubWF0Y2goLyhbXFxcXFxcXFxTXSo/OlxcXFxcXFxcL1xcXFxcXFxcL1tcXFxcXFxcXFNdKj8pXFxcXFxcXFwvLylbMV07XFxcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cXFxcbiAgICAgICAgICAgICAgICByZXMuZGF0YSA9IGl0ZW1zO1xcXFxuICAgICAgICAgICAgICAgIHNldEhvbWVSZXN1bHQocmVzKTtcXFxcbiAgICAgICAgICAgIH0pLFxcXFxuICAgICAgICAgICAgZGVzYzogZGVzYyxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfM19tYXJxdWVlJ1xcXFxuICAgICAgICB9KTtcXFxcbiAgICB9XFxcXG59XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6aaW5qyh5a+85YWl562J5b6FXFxcIixcXFwicGF0aFxcXCI6XFxcIndhaXRcXFwiLFxcXCJydWxlXFxcIjpcXFwiZnVuY3Rpb24gY2FuVXNlKCkge1xcXFxuICAgIC8qXFxcXG4gICAgLy/lpoLmnpzmm7TmlrDkuobop4TliJnkuZ/opoHpmZDmtYHvvIzlj6/ku6Xkv67mlLlrZXlcXFxcbiAgICBsZXQga2V5ID0gXFxcXFxcXCJsb2NrNFxcXFxcXFwiXFxcXG4gICAgLy/nrYnlvoXliIbpkp/mlbBcXFxcbiAgICBsZXQgd2FpdE1pbiA9IDEwXFxcXG4gICAgXFxcXG4gICAgbGV0IG1pbiA9IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMDAgKiA2MCAqIHdhaXRNaW4pXFxcXG4gICAgbGV0IHVubG9jayA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgbWluO1xcXFxuICAgIGxldCB0aW1lID0gZ2V0SXRlbShrZXksIFxcXFxcXFwiXFxcXFxcXCIpO1xcXFxuICAgIGlmICh0aW1lID09IFxcXFxcXFwiXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgc2V0SXRlbShrZXksIFxcXFxcXFwiXFxcXFxcXCIgKyB1bmxvY2spXFxcXG4gICAgICAgIGxldCBzdCA9IG5ldyBEYXRlKHVubG9jaykudG9Mb2NhbGVTdHJpbmcoKS5yZXBsYWNlKC86XFxcXFxcXFxkezEsMn0kLywgJyAnKTtcXFxcbiAgICAgICAgbGV0IG1zZyA9IFxcXFxcXFwi6L+Z5piv5oKo56ys5LiA5qyh5L2/55So6K+l54mI5pys6KeE5YiZ77yM5Li66YG/5YWN56ys5LiA5qyh5a+85YWl5L2/55So5Lq65pWw5r+A5aKe77yM6KeE5YiZ5bCG5ZyoXFxcXFxcXCIgKyBzdCArIFxcXFxcXFwi6Kej6ZSB5L2/55So44CCPGJyPjxicj7lpb3op4TliJnkuI3mgJXmmZrvvIzor7fogJDlv4PnrYnlvoXvvIHor6Xmj5DnpLrku4XlnKjnrKzkuIDmrKHlr7zlhaXvvIjmm7TmlrDvvInml7blh7rnjrDvvIzlkI7nu63kvb/nlKjov4fnqIvkuK3kuI3kvJrlh7rnjrDvvIFcXFxcXFxcIlxcXFxuICAgICAgICBzZXRSZXN1bHQoW3tcXFxcbiAgICAgICAgICAgIHRpdGxlOiBtc2csXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJyaWNoX3RleHRcXFxcXFxcIlxcXFxuICAgICAgICB9XSlcXFxcbiAgICAgICAgcmV0dXJuIGZhbHNlXFxcXG4gICAgfSBlbHNlIGlmIChwYXJzZUludCh0aW1lKSA8IG5ldyBEYXRlKCkuZ2V0VGltZSgpKSB7XFxcXG4gICAgICAgIHJldHVybiB0cnVlXFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgbGV0IHN0ID0gbmV3IERhdGUocGFyc2VJbnQodGltZSkpLnRvTG9jYWxlU3RyaW5nKCkucmVwbGFjZSgvOlxcXFxcXFxcZHsxLDJ9JC8sICcgJyk7XFxcXG4gICAgICAgIGxldCBtc2cgPSBcXFxcXFxcIuS4uumBv+WFjeS9v+eUqOS6uuaVsOa/gOWinu+8jOinhOWImeWwhuWcqFxcXFxcXFwiICsgc3QgKyBcXFxcXFxcIuino+mUgeS9v+eUqOOAgjxicj48YnI+5aW96KeE5YiZ5LiN5oCV5pma77yM6K+36ICQ5b+D562J5b6F77yB6K+l5o+Q56S65LuF5Zyo56ys5LiA5qyh5a+85YWl77yI5pu05paw77yJ5pe25Ye6546w77yM5ZCO57ut5L2/55So6L+H56iL5Lit5LiN5Lya5Ye6546w77yBXFxcXFxcXCJcXFxcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICB0aXRsZTogbXNnLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwicmljaF90ZXh0XFxcXFxcXCJcXFxcbiAgICAgICAgfV0pXFxcXG4gICAgICAgIHJldHVybiBmYWxzZVxcXFxuICAgIH0qL1xcXFxuICAgIHJldHVybiB0cnVlXFxcXG59XFxcXG4kLmV4cG9ydHMgPSBjYW5Vc2UoKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLmlq3lv7Xmj5Lku7bosIPnlKhcXFwiLFxcXCJwYXRoXFxcIjpcXFwiZG5wbHVnaW5cXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIGRuZW4gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLmVuRG47XFxcXG5pdGVtcy5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+aWreaPku+8micgKyAoZG5lbiA9PSAnMScgPyAn4oCc4oCc4pyF4oCd4oCdJyA6ICfinY4nKSxcXFxcbiAgICB1cmw6ICQoJycpLmxhenlSdWxlKChkbmVuKSA9PiB7XFxcXG4gICAgICAgIGlmIChkbmVuID09ICcxJykge1xcXFxuICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvblxcXFxcXFwiLCB7fSkucmVwbGFjZSgnXFxcXFxcXFxcXFxcXFxcImVuRG5cXFxcXFxcXFxcXFxcXFwiOlxcXFxcXFxcXFxcXFxcXCIxXFxcXFxcXFxcXFxcXFxcIicsICdcXFxcXFxcXFxcXFxcXFwiZW5EblxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIjBcXFxcXFxcXFxcXFxcXFwiJyk7XFxcXG4gICAgICAgICAgICB3cml0ZUZpbGUoXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFxcXFxcIiwgZmlsZVVybCk7XFxcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey56aB55So5pat5o+S6LCD55So77yBJztcXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIHZhciBmaWxlVXJsID0gZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFxcXFxcIiwge30pLnJlcGxhY2UoJ1xcXFxcXFxcXFxcXFxcXCJlbkRuXFxcXFxcXFxcXFxcXFxcIjpcXFxcXFxcXFxcXFxcXFwiMFxcXFxcXFxcXFxcXFxcXCInLCAnXFxcXFxcXFxcXFxcXFxcImVuRG5cXFxcXFxcXFxcXFxcXFwiOlxcXFxcXFxcXFxcXFxcXCIxXFxcXFxcXFxcXFxcXFxcIicpO1xcXFxuICAgICAgICAgICAgLy9sb2coZmlsZVVybCk7XFxcXG4gICAgICAgICAgICB3cml0ZUZpbGUoXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFxcXFxcIiwgZmlsZVVybCk7XFxcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5byA5ZCv5pat5o+S6LCD55So77yBJ1xcXFxuICAgICAgICB9XFxcXG4gICAgfSwgZG5lbiksXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzMnXFxcXG59KTtcXFxcbmlmIChkbmVuID09ICcxJykge1xcXFxuICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogJ+e6v+i3r+mFjee9ricsXFxcXG4gICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSNAcnVsZT1qczp0aGlzLmQ9W107cmVxdWlyZSgnaHR0cHM6Ly9naXRlYS5jb20vQUk5NTcvSGlrZXIvcmF3L20vdi9Sb3V0ZS5qcycpO1JvdXRlLnNldFBhcnNlKCk7c2V0UmVzdWx0KGQpO1xcXFxcXFwiLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfMydcXFxcbiAgICB9KTtcXFxcbiAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6ICfop6PmnpDnrqHnkIYnLFxcXFxuICAgICAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSNub1JlY29yZEhpc3RvcnkjQHJ1bGU9anM6dGhpcy5kPVtdO3JlcXVpcmUoJ2h0dHBzOi8vZ2l0ZWEuY29tL0FJOTU3L0hpa2VyL3Jhdy9tL3YvanhJdGVtLmpzJyk7anhJdGVtLmp4TGlzdCgpO3NldFJlc3VsdChkKVxcXFxcXFwiLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfMydcXFxcbiAgICB9KTtcXFxcbn1cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLorr7nva7pobXku6PnoIFcXFwiLFxcXCJwYXRoXFxcIjpcXFwic2V0dGluZ1xcXCIsXFxcInJ1bGVcXFwiOlxcXCJ2YXIgZCA9IFtdO1xcXFxudmFyIHNldGpzb24gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpO1xcXFxudmFyIHNzbWQgPSBzZXRqc29uLnNzbW9kZTtcXFxcbnZhciBzc3hjID0gc2V0anNvbi5zc2NvdW50O1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+aQnOe0ouiuvue9ricsXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcXFxufSk7XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiAn5b2T5YmN77yaJyArICcoJyArIChzc21kID09IDEgPyAn6IGa5ZCI57uT5p6cJyA6ICflvJXmk47liJfooagnKSArICcpJyxcXFxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHknKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgICAgIHZhciBtZCA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicsIHt9KSkuc3Ntb2RlO1xcXFxuXFxcXG4gICAgICAgIGlmIChtZCA9PSAxKSB7XFxcXG4gICAgICAgICAgICB2YXIgZmlsZVVybCA9IGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcXFxcXCIsIHt9KS5yZXBsYWNlKCdcXFxcXFxcXFxcXFxcXFwic3Ntb2RlXFxcXFxcXFxcXFxcXFxcIjpcXFxcXFxcXFxcXFxcXFwiMVxcXFxcXFxcXFxcXFxcXCInLCAnXFxcXFxcXFxcXFxcXFxcInNzbW9kZVxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIjBcXFxcXFxcXFxcXFxcXFwiJyk7XFxcXG4gICAgICAgICAgICB3cml0ZUZpbGUoXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFxcXFxcIiwgZmlsZVVybCk7XFxcXG4gICAgICAgICAgICBiYWNrKHRydWUpO1xcXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WIh+aNouS4uuaQnOe0ouW8leaTjuWIl+ihqOWNlemAieaooeW8j+aIkOWKn++8gSc7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICB2YXIgZmlsZVVybCA9IGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcXFxcXCIsIHt9KS5yZXBsYWNlKCdcXFxcXFxcXFxcXFxcXFwic3Ntb2RlXFxcXFxcXFxcXFxcXFxcIjpcXFxcXFxcXFxcXFxcXFwiMFxcXFxcXFxcXFxcXFxcXCInLCAnXFxcXFxcXFxcXFxcXFxcInNzbW9kZVxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIjFcXFxcXFxcXFxcXFxcXFwiJyk7XFxcXG4gICAgICAgICAgICAvL2xvZyhmaWxlVXJsKTtcXFxcbiAgICAgICAgICAgIHdyaXRlRmlsZShcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvblxcXFxcXFwiLCBmaWxlVXJsKTtcXFxcbiAgICAgICAgICAgIGJhY2sodHJ1ZSk7XFxcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5YiH5o2i5Li66IGa5ZCI5pCc57Si5qih5byP5oiQ5Yqf77yBJ1xcXFxuICAgICAgICB9XFxcXG4gICAgfSksXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzInXFxcXG59KVxcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+aQnOe0oui2heaXtignICsgJycgKyBnZXRJdGVtKCdhcHB0aW1vdXQnLCAnJykrJyknLFxcXFxuICAgIHVybDogXFxcXFxcXCJpbnB1dDovL1xcXFxcXFwiICsgJzMwMDAnICsgXFxcXFxcXCIvLy8v6K+36K6+572u6LaF5pe25pe26Ze077yMMTAwMOS4uuS4gOenkuOAgi5qczp2YXIgbnVtID0gcGFyc2VJbnQoaW5wdXQpLnRvU3RyaW5nKCk7aWYgKG51bSA9PSAnTmFOJ3x8bnVtPDEwMDApIHsndG9hc3Q6Ly/ovpPlhaXnmoTlgLzlpb3lg4/kuI3mraPnoa7jgIInO30gZWxzZSB7c2V0SXRlbSgnYXBwdGltb3V0JywgbnVtKTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+iuvue9ruaIkOWKn+OAgid9XFxcXFxcXCIsXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzInXFxcXG59KTtcXFxcblxcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+aQnOe0oue6v+eoiycgKyAnKCcgKyBzc3hjICsgJyknLFxcXFxuICAgIHVybDogXFxcXFxcXCJpbnB1dDovL1xcXFxcXFwiICsgSlNPTi5zdHJpbmdpZnkoe1xcXFxuICAgICAgICB2YWx1ZTogXFxcXFxcXCI1XFxcXFxcXCIsXFxcXG4gICAgICAgIGhpbnQ6IFxcXFxcXFwi6K+36L6T5YWl5LiA5Liq5pW05pWw5pWw5a2X77yM5o6o6I2Q5pyA5aSn5LiN6KaB6LaF6L+HMTXjgIJcXFxcXFxcIixcXFxcbiAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcXFxuICAgICAgICAgICAgdmFyIG51bSA9IHBhcnNlSW50KGlucHV0KS50b1N0cmluZygpO1xcXFxuICAgICAgICAgICAgaWYgKG51bSA9PSAnTmFOJyB8fCBudW0gPCAxKSB7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+i+k+WFpeeahOWAvOWlveWDj+S4jeato+ehruOAgic7XFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIHZhciBmaWxlVXJsID0gZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFxcXFxcIiwge30pLnJlcGxhY2UoL1xcXFxcXFxcXFxcXFxcXCJzc2NvdW50XFxcXFxcXFxcXFxcXFxcIjpcXFxcXFxcXFxcXFxcXFwiW1xcXFxcXFxcZF0qXFxcXFxcXFxcXFxcXFxcIi8sICdcXFxcXFxcXFxcXFxcXFwic3Njb3VudFxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIicgKyBudW0gKyAnXFxcXFxcXFxcXFxcXFxcIicpO1xcXFxuICAgICAgICAgICAgICAgIHdyaXRlRmlsZShcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvblxcXFxcXFwiLCBmaWxlVXJsKTtcXFxcbiAgICAgICAgICAgICAgICBiYWNrKHRydWUpO1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv53lrZjorr7nva7mkJzntKLnur/nqIvlrozmiJDvvIEnXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pLFxcXFxuICAgIH0pLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcXFxufSk7XFxcXG5cXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfmm7TmlrDnm7jlhbMnLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXFxcbn0pO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+ajgOa1i+abtOaWsCcsXFxcXG4gICAgdXJsOiAkKCcnKS5sYXp5UnVsZSgobG9jdmVyKSA9PiB7XFxcXG4gICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICB2YXIgcmVtZiA9IGZldGNoQ2FjaGUoJ2h0dHBzOi8vY29kZWJlcmcub3JnL2x6azIzNTU5L2Nsb3VkcnVsZS9yYXcvYnJhbmNoL21hc3Rlci9hcHBtb3ZpZS50eHQnLCAyNCk7XFxcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgIHJlbWYgPSAnJztcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBpZiAoL++/pWJhc2U2NC8udGVzdChyZW1mKSkge1xcXFxuICAgICAgICAgICAgdmFyIHJlbXYgPSBKU09OLnBhcnNlKGJhc2U2NERlY29kZShyZW1mLnNwbGl0KCdAJylbMl0pKS52ZXJzaW9uO1xcXFxuICAgICAgICB9IGVsc2UgaWYgKC/vv6Vob21lX3J1bGXvv6UvLnRlc3QocmVtZikpIHtcXFxcbiAgICAgICAgICAgIHZhciByZW12ID0gSlNPTi5wYXJzZShyZW1mLnNwbGl0KCfvv6Vob21lX3J1bGXvv6UnKVsxXSkudmVyc2lvbjtcXFxcbiAgICAgICAgfTtcXFxcbiAgICAgICAgaWYgKC/vv6Vob21lX3J1bGUvLnRlc3QocmVtZikpIHtcXFxcbiAgICAgICAgICAgIGxvZygn6L+c56iL54mI5pys77yaJyArIHJlbXYpO1xcXFxuICAgICAgICAgICAgbG9nKCfmnKzlnLDniYjmnKzvvJonICsgbG9jdmVyKTtcXFxcbiAgICAgICAgICAgIGlmIChsb2N2ZXIgIT0gcmVtdikge1xcXFxuICAgICAgICAgICAgICAgIHB1dFZhcignYXBwbnZlcicsIHJlbWYpO1xcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+acieaWsOeJiOacrO+8jOeCueWvvOWFpeabtOaWsOWPr+abtOaWsOinhOWImeOAgic7XFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mmoLml6DmlrDniYjmnKzvvIwyNOWwj+aXtuWGheajgOa1i+aXoOaViOOAgidcXFxcbiAgICAgICAgICAgIH07XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5qOA5rWL5pu05paw5aSx6LSl77yM5Y+v6IO95LqR56uv5oq96aOO5LqG44CCJ1xcXFxuICAgICAgICB9XFxcXG4gICAgfSwgbG9jdmVyKSxcXFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMidcXFxcbn0pO1xcXFxuaWYgKGdldFZhcignYXBwbnZlcicpKSB7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6ICflr7zlhaXmm7TmlrAnLFxcXFxuICAgICAgICB1cmw6ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgIHJldHVybiBnZXRWYXIoJ2FwcG52ZXInKTtcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcXFxuICAgIH0pO1xcXFxufVxcXFxuc2V0UmVzdWx0KGQpXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5pyA5paw56ug6IqCXFxcIixcXFwicGF0aFxcXCI6XFxcImNoYXB0ZXJcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIGNocCA9IFtdO1xcXFxudHJ5IHtcXFxcbiAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXFxcbiAgICBpZiAoaHRtbC52aWRlb2xpc3QpIHtcXFxcbiAgICAgICAgdmFyIGNvbnRzID0gT2JqZWN0LmtleXMoaHRtbC52aWRlb2xpc3QpO1xcXFxuICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXFxcbiAgICAgICAgdmFyIGNvbnRzID0gaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxcXG4gICAgICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxcXG4gICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcXFxuICAgICAgICB9XFxcXG4gICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXFxcbiAgICAgICAgdmFyIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxcXG4gICAgICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxcXG4gICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcXFxuICAgICAgICB9XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgdmFyIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9wbGF5X2xpc3Q7XFxcXG4gICAgICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxcXG4gICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcXFxuICAgICAgICB9XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb250cy5sZW5ndGg7IGkrKykge1xcXFxuICAgICAgICBpZiAoaHRtbC52aWRlb2xpc3QpIHtcXFxcbiAgICAgICAgICAgIHZhciBsaXN0ID0gaHRtbC52aWRlb2xpc3RbY29udHNbaV1dO1xcXFxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRzW2ldLnVybHMpIHtcXFxcbiAgICAgICAgICAgIHZhciBsaXN0ID0gY29udHNbaV0udXJscztcXFxcbiAgICAgICAgfSBlbHNlIGlmIChjb250c1tpXS51cmwpIHtcXFxcbiAgICAgICAgICAgIHZhciBsaXN0ID0gY29udHNbaV0udXJsLnNwbGl0KFxcXFxcXFwiI1xcXFxcXFwiKTtcXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIHZhciBsaXN0ID0gY29udHNbaV0uc3BsaXQoXFxcXFxcXCIjXFxcXFxcXCIpO1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIGNocC5wdXNoKGxpc3QubGVuZ3RoKTtcXFxcbiAgICB9XFxcXG59IGNhdGNoIChlKSB7fVxcXFxuLy9sb2coTWF0aC5tYXguYXBwbHkoTWF0aCxjaHApKTtcXFxcbnNldFJlc3VsdCgn5pu05paw6IezOicgKyAoTWF0aC5tYXguYXBwbHkoTWF0aCwgY2hwKSkpO1xcXCJ9XVwifSIsInBpY1VybCI6Imh0dHBzOi8vcGljLnd1amluaW1nLmNvbS91cGxvYWQvdm9kLzIwMjIwNDA5LTEvN2FjMzAxMjVjYTkxY2NkN2Q4ZDhhYjQ0NTA4OGY0ZjkuanBnQFJlZmVyZXI9IiwidGl0bGUiOiLov73liaflkKct5Yqo5ryrLeiAgeiZjuWSjOWFlOWtkOesrOS6jOWtoyJ9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement