Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥编辑解析代码@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJqczpcXG5mdW5jdGlvbiBnZXREb3ViYW5SZXModXJsKSB7XFxuICAgIGlmICh1cmwuaW5kZXhPZignYXBpa2V5JykgPT09IC0xKSB7XFxuICAgICAgICB1cmwgKz0gKHVybC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnKSArIFxcXCJhcGlrZXk9MGRhZDU1MWVjMGY4NGVkMDI5MDdmZjVjNDJlOGVjNzBcXFwiXFxuICAgIH1cXG4gICAgbGV0IHMgPSBmZXRjaCh1cmwsIHtcXG4gICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJSZXh4YXItQ29yZS8wLjEuMyBhcGktY2xpZW50LzEgY29tLmRvdWJhbi5mcm9kby83LjkuMC5iZXRhMigyMTUpIEFuZHJvaWQvMjUgcHJvZHVjdC9UQVMtQUwwMCB2ZW5kb3IvSFVBV0VJIG1vZGVsL1RBUy1BTDAwICByb20vYW5kcm9pZCAgbmV0d29yay93aWZpICBwbGF0Zm9ybS9tb2JpbGUgY29tLmRvdWJhbi5mcm9kby83LjkuMC5iZXRhMigyMTUpIFJleHhhci8xLjIuMTUxICBwbGF0Zm9ybS9tb2JpbGUgMS4yLjE1MVxcXCJcXG4gICAgICAgIH0sXFxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcXG4gICAgICAgIGJvZHk6ICdob3N0PWZyb2RvLmRvdWJhbi5jb20nXFxuICAgIH0pO1xcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzKTtcXG59XFxubGV0IHR5cGUgPSBnZXRQYXJhbSgndHlwZScsICcnKSxcXG4gICAgaWQgPSBnZXRQYXJhbSgnaWQnLCAnJyksXFxuICAgIHRpdGxlID0gZ2V0UGFyYW0oJ3RpdGxlJywgJycpO1xcbmxldCByZXMgPSBnZXREb3ViYW5SZXMoXFxcImh0dHBzOi8vZnJvZG8uZG91YmFuLmNvbS9hcGkvdjIvXFxcIiArIHR5cGUgKyBcXFwiL1xcXCIgKyBpZCk7XFxubGV0IHVwZGF0ZSA9IFxcXCJcXFwiO1xcbmlmICh0aXRsZSA9PSAnJykge1xcbiAgICBsZXQgbGVuZ3RoID0gcmVzLnZlbmRvcnMubGVuZ3RoO1xcbiAgICB1cGRhdGUgKz0gbGVuZ3RoID4gMCA/ICflhbEnICsgbGVuZ3RoICsgJ+S4queJh+a6kCcgOiAn5pqC5peg54mH5rqQJztcXG4gICAgaWYgKGxlbmd0aCA+IDApIHtcXG4gICAgICAgIGxldCBlID0gcmVzLnZlbmRvcnNbMF07XFxuICAgICAgICB1cGRhdGUgKz0gZS5lcGlzb2Rlc19pbmZvID8gXFxcInxcXFwiICsgZS5lcGlzb2Rlc19pbmZvIDogXFxcIlxcXCI7XFxuICAgIH1cXG59IGVsc2Uge1xcbiAgICBmb3IgKGxldCBlIG9mIHJlcy52ZW5kb3JzKSB7XFxuICAgICAgICBpZiAoZS50aXRsZSA9PSB0aXRsZSkge1xcbiAgICAgICAgICAgIHVwZGF0ZSArPSBlLmVwaXNvZGVzX2luZm8gPyBlLmVwaXNvZGVzX2luZm8gOiBcXFwiXFxcIjtcXG4gICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH1cXG4gICAgfVxcbn1cXG5zZXRSZXN1bHQodXBkYXRlKTtcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIumFjee9rue8lui+keeVjOmdolwiLFwicGF0aFwiOlwic2V0dGluZy1lZGl0b3JcIixcInJ1bGVcIjpcImpzOlxcbmV2YWwocmVxdWVzdChnZXRWYXIoJ3FkYl9maWxlJykpKVxcbmxldCBkID0gW107XFxubGV0IGNvbmZpZ1R5cGUgPSBnZXRWYXIoXFxcImlucHV0X2NvbmZpZ190eXBlXFxcIilcXG5pZiAoY29uZmlnVHlwZSA9PT0gJ+ino+aekOaPkuS7tumFjee9ricpIHtcXG4gICAgc2V0UGFnZVRpdGxlKFxcXCLnvJbovpHop6PmnpDku6PnoIFcXFwiKVxcbiAgICBhbmFseXNpc01vZGVFZGl0UGFnZShkKVxcbn0gZWxzZSBpZiAoY29uZmlnVHlwZSA9PT0gJ+W9seeJh+ivpuaDhemhtemdoumFjee9ricpIHtcXG4gICAgc2V0UGFnZVRpdGxlKFxcXCLnvJbovpHlvbHniYfor6bmg4XpobXpnaLku6PnoIFcXFwiKVxcbiAgICBkZXRhaWxWaWV3TW9kZUVkaXRQYWdlKGQpXFxufSBlbHNlIHtcXG4gICAgc2V0RXJyb3IoJ+mUmeivr+eahOmFjee9ricpO1xcbn1cXG5zZXRSZXN1bHQoZClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuino+mZpOiiq+WwgWlwXCIsXCJwYXRoXCI6XCJyZWxlYXNlSVBcIixcInJ1bGVcIjpcImpzOlxcbmxldCBpZCA9IGdldFBhcmFtKCdpZCcpO1xcbmxldCBkID0gW107XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfmgqjlt7LooqvlsIHnpoFJUOWcsOWdgOaIluinpuWPkeS6huS6uuacuumqjOivge+8jOivt+aMieeFp+S7peS4i+atpemqpOWkhOeQhijlpoLkuI3lpITnkIbmgqjlsIblnKjkuIDmrrXml7bpl7TlhoXml6Dms5XmraPluLjojrflj5bliafpm4bliJfooagpJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAnMS7ngrnlh7vmraTlpITlr7zlhaXoh6rliqjojrflj5ZDb29raWXmj5Lku7YnLFxcbiAgICB1cmw6ICQoKVxcbiAgICAgICAgLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICBsZXQgZ2V0RG91YmFuQ29va2llID0gXFxcIihmdW5jdGlvbigpe2lmKHdpbmRvd1snbG9jYXRpb24nXVsnaG9zdCddPT0nd3d3LmRvdWJhbi5jb20nKXtmeV9icmlkZ2VfYXBwWyd3cml0ZUZpbGUnXSgnaGlrZXI6Ly9maWxlcy9jYWNoZS9kb3ViYW5jb29raWUudHh0JyxmeV9icmlkZ2VfYXBwWydnZXRDb29raWUnXSgnaHR0cHM6Ly93d3cuZG91YmFuLmNvbS8nKSk7fWlmKHdpbmRvd1snbG9jYXRpb24nXVsnaG9zdCddPT0nbS5kb3ViYW4uY29tJyl7ZnlfYnJpZGdlX2FwcFsnd3JpdGVGaWxlJ10oJ2hpa2VyOi8vZmlsZXMvY2FjaGUvZG91YmFuY29va2llLnR4dCcsZnlfYnJpZGdlX2FwcFsnZ2V0Q29va2llJ10oJ2h0dHBzOi8vbS5kb3ViYW4uY29tLycpKTt9fSgpKTtcXFwiXFxuICAgICAgICAgICAgaWYgKCFmaWxlRXhpc3QoJ2hpa2VyOi8vZmlsZXMvY2FjaGUvZ2xvYmFsX2dldERvdWJhbkNvb2tpZS5qcycpKSB7XFxuICAgICAgICAgICAgICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9jYWNoZS9nbG9iYWxfZ2V0RG91YmFuQ29va2llLmpzJywgZ2V0RG91YmFuQ29va2llKTtcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIHJldHVybiAncnVsZTovLycgKyBiYXNlNjRFbmNvZGUoJ+a1t+mYlOinhueVjO+8jOe9kemhteaPkuS7tu+/pWpzX3VybO+/pWdsb2JhbF9nZXREb3ViYW5Db29raWVAaGlrZXI6Ly9maWxlcy9jYWNoZS9nbG9iYWxfZ2V0RG91YmFuQ29va2llLmpzJyk7XFxuICAgICAgICB9KSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICcyLueCueWHu+atpOWkhOi/m+WFpee9kemhtei/m+ihjOeZu+W9leaIluS6uuacuumqjOivge+8jOWujOaIkOWQjui/lOWbnuatpOmhtemdoicsXFxuICAgIHVybDogJ2h0dHBzOi8vbW92aWUuZG91YmFuLmNvbS9zdWJqZWN0LycgKyBpZCArICcvJyxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICczLuWujOaIkOeZu+W9leaIluS6uuacuumqjOivgeWQjui/lOWbnuW9seeJh+ivpuaDhemhtemdoumHjeaWsOi/m+WFpScsXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG59KTtcXG5zZXRSZXN1bHQoZClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaKouaVkemhtemdolwiLFwicGF0aFwiOlwidXJnZW5jeU1vZGVcIixcInJ1bGVcIjpcImpzOlxcbmxldCBkID0gW107XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICflvojmmI7mmL4s5Ye65LqG5LiA5Lqb5bCP6Zeu6aKYLOW7uuiurumHjeeUnycsXFxuICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXG59KVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn54K55oiR5pu05paw5L6d6LWWJyxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHknKVxcbiAgICAgICAgLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICBsZXQgZmlsZSA9IFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2pva2VyL3FkYi5qc1xcXCI7XFxuICAgICAgICAgICAgbGV0IGdpdGZpbGUgPSAnaHR0cDovL2hpa2VyLm5va2lhLnByZXNzL2hpa2VydWxlL3J1bGVsaXN0Lmpzb24/aWQ9MTU2NCc7XFxuICAgICAgICAgICAgbGV0IHRleHQgPSBmZXRjaChnaXRmaWxlKTtcXG4gICAgICAgICAgICB3cml0ZUZpbGUoZmlsZSwgdGV4dCk7XFxuICAgICAgICAgICAgLy9iYWNrKHRydWUpO1xcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kvp3otZbmlofku7bmm7TmlrDmiJDlip8nXFxuICAgICAgICB9KVxcbn0pXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfngrnmiJHmgaLlpI3pu5jorqTorr7nva4nLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgIHVybDogJChcXFwi56Gu5a6a6KaB5oGi5aSN77yfXFxcIilcXG4gICAgICAgIC5jb25maXJtKCgpID0+IHtcXG4gICAgICAgICAgICBsZXQgZGVmYXVsdENvbmZpZ3MgPSB7XFxuICAgICAgICAgICAgICAgIHF1aWNrU2VhcmNoQ29uZmlnczoge1xcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IFtdXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIGRldGFpbHNWaWV3Q29uZmlnczoge1xcbiAgICAgICAgICAgICAgICAgICAgdXNlOiBcXFwi6buY6K6kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCLpu5jorqRcXFwiOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnOiBcXFwiZXZhbChmZXRjaChnZXRWYXIoJ3FkYl9maWxlJykpKTtkZXRhaWxzVmlldyh0eXBlLCBpZCk7XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBhbmFseXNpc0NvbmZpZ3M6IHtcXG4gICAgICAgICAgICAgICAgICAgIHVzZTogXFxcIuS4jeino+aekFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwi5LiN6Kej5p6QXFxcIjoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dDtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ivpeaPkuS7tuaXoOiuvue9rumhtemdolxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICBcXFwi5pat5o+SXFxcIjoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb25mID0gZmV0Y2goJ2hpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBqc1VybCA9ICdodHRwczovL2NvZGUuYWxpeXVuLmNvbS9BSTk1Ny9IaWtlci9yYXcvbWFzdGVyL3YvQ2xvdWRQYXJzZS1WMl9Ebi5qcyc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25mICYmIGZldGNoKEpTT04ucGFyc2UoY29uZilcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2opKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc1VybCA9IEpTT04ucGFyc2UoY29uZilcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2o7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChmZXRjaChqc1VybCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKGlucHV0KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbmYgPSBmZXRjaCgnaGlrZXI6Ly9maWxlcy9jYWNoZS9NeVBhcnNlU2V0Lmpzb24nKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGpzVXJsID0gJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL0FJOTU3L0hpa2VyL3Jhdy9tYXN0ZXIvdi9DbG91ZFBhcnNlLVYyX0RuLmpzJztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmYgJiYgZmV0Y2goSlNPTi5wYXJzZShjb25mKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jaikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzVXJsID0gSlNPTi5wYXJzZShjb25mKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jajtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGpzVXJsKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXRVcmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB3cml0ZUZpbGUoZ2V0VmFyKCdxZGJfY29uZmlnJyksIEpTT04uc3RyaW5naWZ5KGRlZmF1bHRDb25maWdzKSk7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5bey5oGi5aSN6buY6K6k6K6+572uXFxcIjtcXG4gICAgICAgIH0pXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+iLpemHjeeUn+S4jei1t+S9nOeUqCzngrnmiJHlpI3liLbplJnor6/kv6Hmga/mj5DkuqTnu5nlvIDlj5HogIUnLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgIHVybDogJ2NvcHk6Ly8nICsgZS5tZXNzYWdlXFxufSlcXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpobrkvazkuJPnlKjor6bmg4XpobVcIixcInBhdGhcIjpcIlNkZXRhaWxcIixcInJ1bGVcIjpcImpzOlxcbnB1dFZhcigncWRiX2ZpbGUnLCAnaGlrZXI6Ly9maWxlcy9ydWxlcy9qb2tlci9xZGIuanMnKTtcXG5ldmFsKGZldGNoKGdldFZhcihcXFwicWRiX2ZpbGVcXFwiKSkpO1xcbnByZSgpO1xcbmxldCB0eXBlID0gZ2V0UGFyYW0oJ3R5cGUnLCAnJyksXFxuICAgIGlkID0gZ2V0UGFyYW0oJ2lkJywgJycpO1xcbmRldGFpbHNWaWV3KHR5cGUsIGlkKTtcIn1dLFwic2F2ZWRcIjpmYWxzZSxcInRpdGxlXCI6XCLpnZLosYZcIixcInZlcnNpb25cIjowLFwidXJsXCI6XCJoaWtlcjovL2VtcHR5O2dldDtVVEYtODt7VXNlci1BZ2VudEBNb3ppbGxhLzUuMCAoTGludXjvvJvvvJsgQW5kcm9pZCAxMe+8m++8myBNaSAxMCBQcm8pIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS84OC4wLjQzMjQuMTUyIE1vYmlsZSBTYWZhcmkvNTM3LjM2fVwiLFwiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcImZpbmRfcnVsZVwiOlwianM6KFxcbihjb25maWcsIGNvbmZpZ0tleSkgPT4ge1xcbiAgICBldmFsKHJlcXVlc3QoZ2V0VmFyKFxcXCJxZGJfZmlsZVxcXCIpKSk7XFxuICAgIGxldCBkID0gW107XFxuICAgIHNldFBhZ2VUaXRsZShcXFwiXFxcXHU3ZjE2XFxcXHU4ZjkxXFxcXHU4OWUzXFxcXHU2NzkwXFxcXHU0ZWUzXFxcXHU3ODAxXFxcIik7XFxuICAgIHB1dFZhcihcXFwiaW5wdXRfbmFtZVxcXCIsIGNvbmZpZ0tleSk7XFxuICAgIHB1dFZhcihcXFwiaW5wdXRfY29kZVxcXCIsIGNvbmZpZy5hbmFseXNpc0NvbmZpZ3NbY29uZmlnS2V5XS5jb25maWcpO1xcbiAgICBwdXRWYXIoXFxcImlucHV0X2V4dHJhXFxcIiwgY29uZmlnLmFuYWx5c2lzQ29uZmlnc1tjb25maWdLZXldLmV4dHJhKTtcXG4gICAgcHV0VmFyKFxcXCJpbnB1dF9zZXR0aW5nX2NvZGVcXFwiLCBjb25maWcuYW5hbHlzaXNDb25maWdzW2NvbmZpZ0tleV0uc2V0dGluZyk7XFxuICAgIGFuYWx5c2lzTW9kZUVkaXRQYWdlKGQpO1xcbiAgICBzZXRSZXN1bHQoZCk7XFxufVxcbikoe1xcXCJxdWlja1NlYXJjaENvbmZpZ3NcXFwiOntcXFwib3JkZXJcXFwiOltcXFwi6buR6buRXFxcIixcXFwi6aaZ5oOFXFxcIixcXFwiQVBQXFxcIixcXFwi6LWE5rqQ572R6YeH6ZuGLmR6XFxcIixcXFwiYXBw5b2x6KeGLmR6XFxcIl0sXFxcIum7kem7kVxcXCI6e1xcXCJuYW1lXFxcIjpcXFwi6buR6buR5b2x6KeG8J+MmlxcXCIsXFxcInBpY1xcXCI6XFxcImh0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9tb3ZpZS8xNTcuc3ZnXFxcIn0sXFxcIummmeaDhVxcXCI6e1xcXCJuYW1lXFxcIjpcXFwi6aaZ5oOF5b2x6KeGXFxcIixcXFwicGljXFxcIjpcXFwiaHR0cHM6Ly96My5heDF4LmNvbS8yMDIxLzEwLzE4LzVVcGxUSi5wbmdcXFwifSxcXFwiQVBQXFxcIjp7XFxcIm5hbWVcXFwiOlxcXCJBUFDlvbHop4YoUClcXFwiLFxcXCJwaWNcXFwiOlxcXCJodHRwczovL3ozLmF4MXguY29tLzIwMjEvMTAvMTgvNVVwUXc0LnBuZ1xcXCJ9LFxcXCJhcHDlvbHop4YuZHpcXFwiOntcXFwibmFtZVxcXCI6XFxcImFwcOW9seinhi5kelxcXCIsXFxcInBpY1xcXCI6XFxcImh0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9tb3ZpZS8xMC5zdmdcXFwifSxcXFwi6LWE5rqQ572R6YeH6ZuGLmR6XFxcIjp7XFxcIm5hbWVcXFwiOlxcXCLotYTmupDnvZHph4fpm4YuZHpcXFwiLFxcXCJwaWNcXFwiOlxcXCJodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8vbW92aWUvMTQuc3ZnXFxcIn19LFxcXCJkZXRhaWxzVmlld0NvbmZpZ3NcXFwiOntcXFwidXNlXFxcIjpcXFwi6buY6K6kXFxcIixcXFwi6buY6K6kXFxcIjp7XFxcImNvbmZpZ1xcXCI6XFxcImV2YWwoZmV0Y2goZ2V0VmFyKCdxZGJfZmlsZScpKSk7ZGV0YWlsc1ZpZXcodHlwZSwgaWQpO1xcXCJ9LFxcXCLlhYnlvbFcXFwiOntcXFwiY29uZmlnXFxcIjpcXFwie1xcXFxuICAgIHVybDogJ2hpa2VyOi8vcGFnZS9kZXRhaWxzI2ltbWVyc2l2ZVRoZW1lIz9ydWxlPeWFieW9seWJp+WcuicsXFxcXG4gICAgZXh0cmE6IHtcXFxcbiAgICAgICAgbGluazogJ2h0dHBzOi8vbW92aWUuZG91YmFuLmNvbS9zdWJqZWN0LycrIGlkICsgJy8nLFxcXFxuICAgICAgICB0aXRsZTogdGl0bGVcXFxcbiAgICB9XFxcXG59XFxcIixcXFwic2V0dGluZ1xcXCI6XFxcIlxcXCJ9LFxcXCLosYblqIMgZXZhbCDniYhcXFwiOntcXFwiY29uZmlnXFxcIjpcXFwiXFxcIixcXFwic2V0dGluZ1xcXCI6XFxcInJldHVybiAkKFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSNub0hpc3RvcnkjXFxcXFxcXCIpLnJ1bGUoKCk9PntcXFxcbmxldCBwcmVSdWxlID0gSlNPTi5wYXJzZShyZXF1ZXN0KFxcXFxcXFwiaGlrZXI6Ly9wYWdlL3ByZS1ydWxlP3J1bGU96LGG5aiDUlxcXFxcXFwiKSkucnVsZTtcXFxcbmV2YWwocHJlUnVsZSlcXFxcbmxldCBqc0ZpbGUgPSBnZXRWYXIoXFxcXFxcXCJkYl9qc19maWxlXFxcXFxcXCIpO1xcXFxuanNGaWxlID0ganNGaWxlID09PSAnJyA/IFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9qcy9ydC1kb3ViYW4uanNcXFxcXFxcIiA6IGpzRmlsZTtcXFxcbmxldCBqcyA9IGZldGNoKGpzRmlsZSx7fSk7XFxcXG5pZihqcyA9PT0gJycpIGpzID0gZmV0Y2goJ2h0dHBzOi8vZ2l0ZWUuY29tL3JlYm9ybjAvSGlrZXJSdWxlcy9yYXcvbWFzdGVyL3BsdWdpbnMvcnQtZG91d2EubWluLmpzJyx7fSk7XFxcXG4vLyBsb2coanMpXFxcXG5ldmFsKGpzKTtcXFxcbmRvdWJhbi5zZXR0aW5nc1ZpZXcoKTtcXFxcbn0pXFxcIn19LFxcXCJhbmFseXNpc0NvbmZpZ3NcXFwiOntcXFwidXNlXFxcIjpcXFwi5pat5o+S6a2U5pS5XFxcIixcXFwi5LiN6Kej5p6QXFxcIjp7XFxcImNvbmZpZ1xcXCI6XFxcIihcXFxcbigpID0+IHtcXFxcbiAgICByZXR1cm4gaW5wdXQ7XFxcXG59XFxcXG4pKClcXFwiLFxcXCJzZXR0aW5nXFxcIjpcXFwiKFxcXFxuKCkgPT4ge1xcXFxuICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8vXFxcXFxcXFx1OGJlNVxcXFxcXFxcdTYzZDJcXFxcXFxcXHU0ZWY2XFxcXFxcXFx1NjVlMFxcXFxcXFxcdThiYmVcXFxcXFxcXHU3ZjZlXFxcXFxcXFx1OTg3NVxcXFxcXFxcdTk3NjJcXFxcXFxcIjtcXFxcbn1cXFxcbikoKVxcXCJ9LFxcXCLmlq3mj5JcXFwiOntcXFwiY29uZmlnXFxcIjpcXFwiKFxcXFxuKCkgPT4ge1xcXFxuICAgIGxldCBmaWxlID0gXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0R1YW5OaWFuL015UGFyc2UuanNvblxcXFxcXFwiO1xcXFxuICAgIGxldCBvbGRmaWxlID0gXFxcXFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvblxcXFxcXFwiO1xcXFxuICAgIGlmIChmaWxlRXhpc3QoZmlsZSkpIHtcXFxcbiAgICAgICAgZXZhbChcXFxcXFxcImpzb249XFxcXFxcXCIgKyBmZXRjaChmaWxlKSk7XFxcXG4gICAgICAgIGxldCBqc1VybCA9IGpzb24uc2V0dGluZ3MuY2o7XFxcXG4gICAgICAgIGV2YWwoZmV0Y2goanNVcmwpKTtcXFxcbiAgICAgICAgcmV0dXJuIGF5dG1QYXJzZShpbnB1dCk7XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgaWYgKGZpbGVFeGlzdChvbGRmaWxlKSkge1xcXFxuICAgICAgICAgICAgbGV0IGpzVXJsID0gSlNPTi5wYXJzZShmZXRjaChvbGRmaWxlKSkuY2o7XFxcXG4gICAgICAgICAgICBldmFsKGZldGNoKGpzVXJsKSk7XFxcXG4gICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKGlucHV0KTtcXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8vXFxcXFxcXFx1NmNhMVxcXFxcXFxcdTYyN2VcXFxcXFxcXHU1MjMwXFxcXFxcXFx1NjVhZFxcXFxcXFxcdTYzZDJcXFxcXFxcXHU5MTRkXFxcXFxcXFx1N2Y2ZVxcXFxcXFxcdTY1ODdcXFxcXFxcXHU0ZWY2XFxcXFxcXCI7XFxcXG4gICAgICAgIH1cXFxcbiAgICB9XFxcXG59XFxcXG4pKClcXFwiLFxcXCJzZXR0aW5nXFxcIjpcXFwiKFxcXFxuKCkgPT4ge1xcXFxuICAgIGxldCBmaWxlID0gXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL0R1YW5OaWFuL015UGFyc2UuanNvblxcXFxcXFwiO1xcXFxuICAgIGxldCBvbGRmaWxlID0gXFxcXFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvblxcXFxcXFwiO1xcXFxuICAgIGlmIChmaWxlRXhpc3QoZmlsZSkpIHtcXFxcbiAgICAgICAgZXZhbChcXFxcXFxcImpzb249XFxcXFxcXCIgKyBmZXRjaChmaWxlKSk7XFxcXG4gICAgICAgIGxldCBqc1VybCA9IGpzb24uc2V0dGluZ3MuY2o7XFxcXG4gICAgICAgIGV2YWwoZmV0Y2goanNVcmwpKTtcXFxcbiAgICAgICAgcmV0dXJuIHNldFVybDtcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICBpZiAoZmlsZUV4aXN0KG9sZGZpbGUpKSB7XFxcXG4gICAgICAgICAgICBsZXQganNVcmwgPSBKU09OLnBhcnNlKGZldGNoKG9sZGZpbGUpKS5jajtcXFxcbiAgICAgICAgICAgIGV2YWwoZmV0Y2goanNVcmwpKTtcXFxcbiAgICAgICAgICAgIHJldHVybiBzZXRVcmw7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL3BhZ2UvUm91dGU/cnVsZT1NeUZpZWxkXFxcXFxcXFx1MWQzMFxcXFxcXFxcdTIwN2YmdHlwZT1cXFxcXFxcXHU4YmJlXFxcXFxcXFx1N2Y2ZVxcXFxcXFwiO1xcXFxuICAgICAgICB9XFxcXG4gICAgfVxcXFxufVxcXFxuKSgpXFxcIn0sXFxcIlBsdWdpbuG0sOKBv1xcXCI6e1xcXCJjb25maWdcXFwiOlxcXCIoXFxcXG4oKSA9PiB7XFxcXG4gICAgcmVxdWlyZSgnaHR0cHM6Ly9naXRlYS5jb20vQUk5NTcvSGlrZXIvcmF3L20vdi9Sb3V0ZS5qcycpXFxcXG4gICAgcmV0dXJuIGF5dG1QYXJzZShpbnB1dCk7XFxcXG59XFxcXG4pKClcXFwiLFxcXCJleHRyYVxcXCI6XFxcIlxcXCIsXFxcInNldHRpbmdcXFwiOlxcXCIoXFxcXG4oKSA9PiB7XFxcXG4gICAgcmVxdWlyZSgnaHR0cHM6Ly9naXRlYS5jb20vQUk5NTcvSGlrZXIvcmF3L20vdi9Sb3V0ZS5qcycpO1xcXFxucmV0dXJuIHNldHVwUGFnZXMoJ+iuvue9ricpO1xcXFxufVxcXFxuKSgpXFxcIn0sXFxcIkpY6Kej5p6QXFxcIjp7XFxcImNvbmZpZ1xcXCI6XFxcIi8vIGhpZGVMb2FkaW5nKClcXFxcbnNob3dMb2FkaW5nKFxcXFxcXFwi5bey5byA5ZCv5by65Yqb5ZeF5o6i77yM6K+356iN5YCZXFxcXFxcXCIpXFxcXG5sZXQgcGxheVVybCA9IGZldGNoKCdoaWtlcjovL2ZpbGVzL2p4X2NhY2hlLnR4dCcpK2lucHV0O1xcXFxucmV0dXJuIHBsYXlVcmxcXFwiLFxcXCJleHRyYVxcXCI6XFxcIlxcXCIsXFxcInNldHRpbmdcXFwiOlxcXCJyZXR1cm4gJ2hpa2VyOi8vZW1wdHkjbm9IaXN0b3J5IycrYEBydWxlPWpzOnZhciBkID0gW107ZC5wdXNoKHtkZXNjOiAnMjAwJyx1cmw6ICdmaWxlOi8vL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9qaWV4aS9qaWV4aS5odG1sJyxjb2xfdHlwZTogJ3g1X3dlYnZpZXdfc2luZ2xlJ30pO3ZhciB0aXRsZXMgPSBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvamlleGkvamlleGkudHh0XFxcXFxcXCIsIHt9KS5zcGxpdCgvXFxcXFxcXFxcXFxcXFxcXG4vKTtmb3IodmFyIGkgPSAwOyBpIDwgdGl0bGVzLmxlbmd0aDsgaSsrKXt2YXIgdCA9IHRpdGxlc1tpXS5zcGxpdChcXFxcXFxcIiYmXFxcXFxcXCIpO2QucHVzaCh7dGl0bGU6ZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL2p4X2NhY2hlLnR4dFxcXFxcXFwiLHt9KSA9PSB0WzFdID8gdFswXSArIFxcXFxcXFwi4oCY4oCY77yI5b2T5YmN77yJ4oCZ4oCZXFxcXFxcXCIgOiB0WzBdLGRlc2M6dFsxXSx1cmw6dFsxXSArICdAbGF6eVJ1bGU9LmpzOndyaXRlRmlsZShcXFxcXFxcImhpa2VyOi8vZmlsZXMvanhfY2FjaGUudHh0XFxcXFxcXCIsaW5wdXQpO3JlZnJlc2hQYWdlKCk7XFxcXFxcXCJ0b2FzdDovL+S/ruaUueaIkOWKn1xcXFxcXFwiJyxjb2xfdHlwZTogJ3RleHRfMSd9KTt9c2V0UmVzdWx0KGQpYDtcXFxcblxcXCJ9LFxcXCLmlq3mj5LprZTmlLlcXFwiOntcXFwiY29uZmlnXFxcIjpcXFwiKCgpPT57XFxcXG4gICAgZXZhbChcXFxcXFxcInZhciBjb25maWcgPVxcXFxcXFwiICsgZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvblxcXFxcXFwiKSk7XFxcXHJcXFxcbiAgICAgICAgICAgICAgZXZhbChmZXRjaChjb25maWcuY2opKTtcXFxcclxcXFxuICAgICAgICAgICAgICAgIHJldHVybiBheXRtUGFyc2UoaW5wdXQpO1xcXFxufSkoKVxcXCIsXFxcImV4dHJhXFxcIjpcXFwiXFxcIixcXFwic2V0dGluZ1xcXCI6XFxcIigoKT0+eyBcXFxcbnJldHVybiBcXFxcXFxcImhpa2VyOi8vcGFnZS9Sb3V0ZT9ydWxlPU15RmllbGThtLDigb8mdHlwZT3orr7nva4jbm9IaXN0b3J5I1xcXFxcXFwiXFxcXG59KSgpXFxcIn0sXFxcIng1UnVsZStKWFxcXCI6e1xcXCJjb25maWdcXFwiOlxcXCIvLyBoaWRlTG9hZGluZygpXFxcXG5zaG93TG9hZGluZyhcXFxcXFxcIuW3suW8gOWQr+W8uuWKm+WXheaOou+8jOivt+eojeWAmVxcXFxcXFwiKVxcXFxubGV0IHBsYXlVcmwgPSBmZXRjaCgnaGlrZXI6Ly9maWxlcy9qeF9jYWNoZS50eHQnKStpbnB1dFxcXFxuXFxcXG5sZXQgcmVzdWx0PSQocGxheVVybCkueDVMYXp5KCgpID0+IHtcXFxcbiAgICB2YXIgdXJscyA9IF9nZXRVcmxzKClcXFxcbiAgICBmb3IgKHZhciBpIGluIHVybHMpIHtcXFxcbiAgICAgICAgaWYgKHVybHNbaV0ubWF0Y2goL1xcXFxcXFxcLm1wM3xcXFxcXFxcXC5tcDR8XFxcXFxcXFwubTN1OC8pKSB7XFxcXG4gICAgICAgICAgICBmeV9icmlkZ2VfYXBwLmxvZyh1cmxzW2ldKVxcXFxuICAgICAgICAgICAgcmV0dXJuIHVybHNbaV1cXFxcbiAgICAgICAgfVxcXFxuICAgIH1cXFxcbn0pO1xcXFxucmV0dXJuIHJlc3VsdFxcXCIsXFxcImV4dHJhXFxcIjpcXFwiXFxcIixcXFwic2V0dGluZ1xcXCI6XFxcInJldHVybiAnaGlrZXI6Ly9lbXB0eSNub0hpc3RvcnkjJytgQHJ1bGU9anM6dmFyIGQgPSBbXTtkLnB1c2goe2Rlc2M6ICcyMDAnLHVybDogJ2ZpbGU6Ly8vc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL2ppZXhpL2ppZXhpLmh0bWwnLGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnfSk7dmFyIHRpdGxlcyA9IGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9qaWV4aS9qaWV4aS50eHRcXFxcXFxcIiwge30pLnNwbGl0KC9cXFxcXFxcXFxcXFxcXFxcbi8pO2Zvcih2YXIgaSA9IDA7IGkgPCB0aXRsZXMubGVuZ3RoOyBpKyspe3ZhciB0ID0gdGl0bGVzW2ldLnNwbGl0KFxcXFxcXFwiJiZcXFxcXFxcIik7ZC5wdXNoKHt0aXRsZTpmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvanhfY2FjaGUudHh0XFxcXFxcXCIse30pID09IHRbMV0gPyB0WzBdICsgXFxcXFxcXCLigJjigJjvvIjlvZPliY3vvInigJnigJlcXFxcXFxcIiA6IHRbMF0sZGVzYzp0WzFdLHVybDp0WzFdICsgJ0BsYXp5UnVsZT0uanM6d3JpdGVGaWxlKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9qeF9jYWNoZS50eHRcXFxcXFxcIixpbnB1dCk7cmVmcmVzaFBhZ2UoKTtcXFxcXFxcInRvYXN0Oi8v5L+u5pS55oiQ5YqfXFxcXFxcXCInLGNvbF90eXBlOiAndGV4dF8xJ30pO31zZXRSZXN1bHQoZClgO1xcXFxuXFxcIn0sXFxcIng1UnVsZStKWCjlopnmlLkpXFxcIjp7XFxcImNvbmZpZ1xcXCI6XFxcIi8vIGhpZGVMb2FkaW5nKClcXFxcbnNob3dMb2FkaW5nKFxcXFxcXFwi5bey5byA5ZCv5by65Yqb5ZeF5o6i77yM6K+356iN5YCZXFxcXFxcXCIpXFxcXG5sZXQgcGxheVVybCA9IGZldGNoKCdoaWtlcjovL2ZpbGVzL2p4X2NhY2hlLnR4dCcpK2lucHV0XFxcXG5cXFxcbmxldCByZXN1bHQ9JChwbGF5VXJsKS54NUxhenkoKCkgPT4ge1xcXFxuICAgIHZhciB1cmxzID0gX2dldFVybHMoKVxcXFxuICAgIGZvciAodmFyIGkgaW4gdXJscykge1xcXFxuICAgICAgICBpZiAodXJsc1tpXS5pbmRleE9mKFxcXFxcXFwibTN1OGRqa3NpZWpcXFxcXFxcIik9PS0xJiZ1cmxzW2ldLmluZGV4T2YoXFxcXFxcXCJwbGF5bTN1OFxcXFxcXFwiKT09LTEmJnVybHNbaV0uaW5kZXhPZihcXFxcXFxcIm0zdTguY3NzXFxcXFxcXCIpPT0tMSYmdXJsc1tpXS5pbmRleE9mKFxcXFxcXFwibWluLmNzc1xcXFxcXFwiKT09LTEmJnVybHNbaV0ubWF0Y2goL1xcXFxcXFxcLm1wM3xcXFxcXFxcXC5tcDR8XFxcXFxcXFwubTN1OC8pKSB7XFxcXG4gICAgICAgICAgICBmeV9icmlkZ2VfYXBwLmxvZyh1cmxzW2ldKVxcXFxuICAgICAgICAgICAgcmV0dXJuIHVybHNbaV1cXFxcbiAgICAgICAgfVxcXFxuICAgIH1cXFxcbn0pO1xcXFxucmV0dXJuIHJlc3VsdFxcXCIsXFxcImV4dHJhXFxcIjpcXFwiXFxcIixcXFwic2V0dGluZ1xcXCI6XFxcInJldHVybiAkKCdoaWtlcjovL2VtcHR5I25vSGlzdG9yeSMnKS5ydWxlKCgpID0+IHtcXFxcbiAgICB2YXIgZCA9IFtdO1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIGRlc2M6ICcyMjAnLFxcXFxuICAgICAgICB1cmw6ICdmaWxlOi8vL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9qaWV4aS9qaWV4aS5odG1sJyxcXFxcbiAgICAgICAgY29sX3R5cGU6ICd4NV93ZWJ2aWV3X3NpbmdsZSdcXFxcbiAgICB9KTtcXFxcblxcXFxuICAgIHZhciB0aXRsZXMgPSBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvamlleGkvamlleGkudHh0XFxcXFxcXCIsIHt9KS5zcGxpdCgnXFxcXFxcXFxuJyk7XFxcXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aXRsZXMubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgdmFyIHQgPSB0aXRsZXNbaV0uc3BsaXQoXFxcXFxcXCImJlxcXFxcXFwiKTtcXFxcbiAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvanhfY2FjaGUudHh0XFxcXFxcXCIpID09IHRbMV0gPyBcXFxcXFxcIuKAnOKAnFxcXFxcXFwiICsgdFswXSArIFxcXFxcXFwi4oCd4oCdXFxcXFxcXCIgOiB0WzBdLFxcXFxuICAgICAgICAgICAgZGVzYzogdFsxXSxcXFxcbiAgICAgICAgICAgIHVybDogJCh0WzFdKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9qeF9jYWNoZS50eHRcXFxcXFxcIikgPT0gaW5wdXQpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly/lvZPliY3op6PmnpDlj6PvvJpcXFxcXFxcIiArIGlucHV0XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9qeF9jYWNoZS50eHRcXFxcXFxcIiwgaW5wdXQpO1xcXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJ0b2FzdDovL+S/ruaUueaIkOWKn1xcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfNCdcXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfVxcXFxuICAgIHNldFJlc3VsdChkKVxcXFxufSlcXFwifSxcXFwi5pat5o+S4piF6a2U5pS5XFxcIjp7XFxcImNvbmZpZ1xcXCI6XFxcIigoKT0+e1xcXFxuICAgIGV2YWwoXFxcXFxcXCJ2YXIgY29uZmlnID1cXFxcXFxcIiArIGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9jYWNoZS9NeVBhcnNlU2V0Lmpzb25cXFxcXFxcIikpO1xcXFxyXFxcXG4gICAgICAgICAgICAgIGV2YWwoZmV0Y2goY29uZmlnLmNqKSk7XFxcXHJcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKGlucHV0KTtcXFxcbn0pKClcXFwiLFxcXCJleHRyYVxcXCI6XFxcIntcXFxcbmJsb2NrUnVsZXM6IFsnYmFpZHUuKi5wbmcnLCAnLmpwZycsJy5tcDMnLCcubXA0JywnLm0zdTgnLCcuZmx2JywnLmF2aScsJy4zZ3AnLCcubXBlZycsJy53bXYnLCcubW92JywnLnJtdmInLCcuZ2lmJywnLmpwZycsJy5qcGVnJywnLnBuZycsJy5pY28nLCcuc3ZnJ11cXFxcbn1cXFwiLFxcXCJzZXR0aW5nXFxcIjpcXFwiKCgpPT57IFxcXFxucmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9wYWdlL1JvdXRlP3J1bGU9TXlGaWVsZOG0sOKBvyZ0eXBlPeiuvue9riNub0hpc3RvcnkjXFxcXFxcXCJcXFxcbn0pKClcXFwifX0sXFxcImNob29zZUNvbG9yXFxcIjp7fSxcXFwic3RhckNvbG9yXFxcIjpcXFwiI2ZmYWMyZFxcXCJ9LFxcXCLmlq3mj5LprZTmlLlcXFwiKVwiLFwiZ3JvdXBcIjpcIuKRoOa1i+ivlVwiLFwidWFcIjpcIm1vYmlsZVwiLFwicHJlUnVsZVwiOlwibGV0IGZpbGUgPSBcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9qb2tlci9xZGIuanNcXFwiO1xcbmxldCBnaXRmaWxlID0gJ2h0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTE1NjQnO1xcbmlmICghZmV0Y2goZmlsZSkpIHtcXG4gICAgd3JpdGVGaWxlKGZpbGUsIGZldGNoKGdpdGZpbGUpKTtcXG59XFxucHV0VmFyKHtcXG4gICAga2V5OiBcXFwicWRiX2ZpbGVcXFwiLFxcbiAgICB2YWx1ZTogZmlsZVxcbn0pO1xcbnRyeSB7XFxuICAgIGV2YWwoZmV0Y2goZmlsZSkpO1xcbiAgICBwcmUoKTtcXG59IGNhdGNoIChlKSB7XFxuICAgIGxldCBydWxlID0gSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvdXJnZW5jeU1vZGVcXFwiKSkucnVsZTtcXG4gICAgZXZhbChydWxlKVxcbn1cIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6YWN572u57yW6L6R55WM6Z2iXFxcIixcXFwicGF0aFxcXCI6XFxcInNldHRpbmctZWRpdG9yXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxuZXZhbChyZXF1ZXN0KGdldFZhcigncWRiX2ZpbGUnKSkpXFxcXG5sZXQgZCA9IFtdO1xcXFxubGV0IGNvbmZpZ1R5cGUgPSBnZXRWYXIoXFxcXFxcXCJpbnB1dF9jb25maWdfdHlwZVxcXFxcXFwiKVxcXFxuaWYgKGNvbmZpZ1R5cGUgPT09ICfop6PmnpDmj5Lku7bphY3nva4nKSB7XFxcXG4gICAgc2V0UGFnZVRpdGxlKFxcXFxcXFwi57yW6L6R6Kej5p6Q5Luj56CBXFxcXFxcXCIpXFxcXG4gICAgYW5hbHlzaXNNb2RlRWRpdFBhZ2UoZClcXFxcbn0gZWxzZSBpZiAoY29uZmlnVHlwZSA9PT0gJ+W9seeJh+ivpuaDhemhtemdoumFjee9ricpIHtcXFxcbiAgICBzZXRQYWdlVGl0bGUoXFxcXFxcXCLnvJbovpHlvbHniYfor6bmg4XpobXpnaLku6PnoIFcXFxcXFxcIilcXFxcbiAgICBkZXRhaWxWaWV3TW9kZUVkaXRQYWdlKGQpXFxcXG59IGVsc2Uge1xcXFxuICAgIHNldEVycm9yKCfplJnor6/nmoTphY3nva4nKTtcXFxcbn1cXFxcbnNldFJlc3VsdChkKVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuino+mZpOiiq+WwgWlwXFxcIixcXFwicGF0aFxcXCI6XFxcInJlbGVhc2VJUFxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmxldCBpZCA9IGdldFBhcmFtKCdpZCcpO1xcXFxubGV0IGQgPSBbXTtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfmgqjlt7LooqvlsIHnpoFJUOWcsOWdgOaIluinpuWPkeS6huS6uuacuumqjOivge+8jOivt+aMieeFp+S7peS4i+atpemqpOWkhOeQhijlpoLkuI3lpITnkIbmgqjlsIblnKjkuIDmrrXml7bpl7TlhoXml6Dms5XmraPluLjojrflj5bliafpm4bliJfooagpJyxcXFxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMSdcXFxcbn0pO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJzEu54K55Ye75q2k5aSE5a+85YWl6Ieq5Yqo6I635Y+WQ29va2ll5o+S5Lu2JyxcXFxcbiAgICB1cmw6ICQoKVxcXFxuICAgICAgICAubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgbGV0IGdldERvdWJhbkNvb2tpZSA9IFxcXFxcXFwiKGZ1bmN0aW9uKCl7aWYod2luZG93Wydsb2NhdGlvbiddWydob3N0J109PSd3d3cuZG91YmFuLmNvbScpe2Z5X2JyaWRnZV9hcHBbJ3dyaXRlRmlsZSddKCdoaWtlcjovL2ZpbGVzL2NhY2hlL2RvdWJhbmNvb2tpZS50eHQnLGZ5X2JyaWRnZV9hcHBbJ2dldENvb2tpZSddKCdodHRwczovL3d3dy5kb3ViYW4uY29tLycpKTt9aWYod2luZG93Wydsb2NhdGlvbiddWydob3N0J109PSdtLmRvdWJhbi5jb20nKXtmeV9icmlkZ2VfYXBwWyd3cml0ZUZpbGUnXSgnaGlrZXI6Ly9maWxlcy9jYWNoZS9kb3ViYW5jb29raWUudHh0JyxmeV9icmlkZ2VfYXBwWydnZXRDb29raWUnXSgnaHR0cHM6Ly9tLmRvdWJhbi5jb20vJykpO319KCkpO1xcXFxcXFwiXFxcXG4gICAgICAgICAgICBpZiAoIWZpbGVFeGlzdCgnaGlrZXI6Ly9maWxlcy9jYWNoZS9nbG9iYWxfZ2V0RG91YmFuQ29va2llLmpzJykpIHtcXFxcbiAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvY2FjaGUvZ2xvYmFsX2dldERvdWJhbkNvb2tpZS5qcycsIGdldERvdWJhbkNvb2tpZSk7XFxcXG4gICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgcmV0dXJuICdydWxlOi8vJyArIGJhc2U2NEVuY29kZSgn5rW36ZiU6KeG55WM77yM572R6aG15o+S5Lu277+lanNfdXJs77+lZ2xvYmFsX2dldERvdWJhbkNvb2tpZUBoaWtlcjovL2ZpbGVzL2NhY2hlL2dsb2JhbF9nZXREb3ViYW5Db29raWUuanMnKTtcXFxcbiAgICAgICAgfSksXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG59KTtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICcyLueCueWHu+atpOWkhOi/m+WFpee9kemhtei/m+ihjOeZu+W9leaIluS6uuacuumqjOivge+8jOWujOaIkOWQjui/lOWbnuatpOmhtemdoicsXFxcXG4gICAgdXJsOiAnaHR0cHM6Ly9tb3ZpZS5kb3ViYW4uY29tL3N1YmplY3QvJyArIGlkICsgJy8nLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxufSk7XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiAnMy7lrozmiJDnmbvlvZXmiJbkurrmnLrpqozor4HlkI7ov5Tlm57lvbHniYfor6bmg4XpobXpnaLph43mlrDov5vlhaUnLFxcXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxufSk7XFxcXG5zZXRSZXN1bHQoZClcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLmiqLmlZHpobXpnaJcXFwiLFxcXCJwYXRoXFxcIjpcXFwidXJnZW5jeU1vZGVcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5sZXQgZCA9IFtdO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+W+iOaYjuaYvizlh7rkuobkuIDkupvlsI/pl67popgs5bu66K6u6YeN55SfJyxcXFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxcXG59KVxcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+eCueaIkeabtOaWsOS+nei1licsXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcXFxuICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eScpXFxcXG4gICAgICAgIC5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICBsZXQgZmlsZSA9IFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9qb2tlci9xZGIuanNcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgIGxldCBnaXRmaWxlID0gJ2h0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTE1NjQnO1xcXFxuICAgICAgICAgICAgbGV0IHRleHQgPSBmZXRjaChnaXRmaWxlKTtcXFxcbiAgICAgICAgICAgIHdyaXRlRmlsZShmaWxlLCB0ZXh0KTtcXFxcbiAgICAgICAgICAgIC8vYmFjayh0cnVlKTtcXFxcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kvp3otZbmlofku7bmm7TmlrDmiJDlip8nXFxcXG4gICAgICAgIH0pXFxcXG59KVxcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+eCueaIkeaBouWkjem7mOiupOiuvue9ricsXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcXFxuICAgIHVybDogJChcXFxcXFxcIuehruWumuimgeaBouWkje+8n1xcXFxcXFwiKVxcXFxuICAgICAgICAuY29uZmlybSgoKSA9PiB7XFxcXG4gICAgICAgICAgICBsZXQgZGVmYXVsdENvbmZpZ3MgPSB7XFxcXG4gICAgICAgICAgICAgICAgcXVpY2tTZWFyY2hDb25maWdzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiBbXVxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgZGV0YWlsc1ZpZXdDb25maWdzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHVzZTogXFxcXFxcXCLpu5jorqRcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCLpu5jorqRcXFxcXFxcIjoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnOiBcXFxcXFxcImV2YWwoZmV0Y2goZ2V0VmFyKCdxZGJfZmlsZScpKSk7ZGV0YWlsc1ZpZXcodHlwZSwgaWQpO1xcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIGFuYWx5c2lzQ29uZmlnczoge1xcXFxuICAgICAgICAgICAgICAgICAgICB1c2U6IFxcXFxcXFwi5LiN6Kej5p6QXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwi5LiN6Kej5p6QXFxcXFxcXCI6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogJC50b1N0cmluZygoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlucHV0O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nOiAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJ0b2FzdDovL+ivpeaPkuS7tuaXoOiuvue9rumhtemdolxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCLmlq3mj5JcXFxcXFxcIjoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnOiAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29uZiA9IGZldGNoKCdoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvbicpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBqc1VybCA9ICdodHRwczovL2NvZGUuYWxpeXVuLmNvbS9BSTk1Ny9IaWtlci9yYXcvbWFzdGVyL3YvQ2xvdWRQYXJzZS1WMl9Ebi5qcyc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmYgJiYgZmV0Y2goSlNPTi5wYXJzZShjb25mKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNqKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc1VybCA9IEpTT04ucGFyc2UoY29uZilcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jajtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChmZXRjaChqc1VybCkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBheXRtUGFyc2UoaW5wdXQpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nOiAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29uZiA9IGZldGNoKCdoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvbicpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBqc1VybCA9ICdodHRwczovL2NvZGUuYWxpeXVuLmNvbS9BSTk1Ny9IaWtlci9yYXcvbWFzdGVyL3YvQ2xvdWRQYXJzZS1WMl9Ebi5qcyc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmYgJiYgZmV0Y2goSlNPTi5wYXJzZShjb25mKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNqKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc1VybCA9IEpTT04ucGFyc2UoY29uZilcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jajtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChmZXRjaChqc1VybCkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXRVcmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgd3JpdGVGaWxlKGdldFZhcigncWRiX2NvbmZpZycpLCBKU09OLnN0cmluZ2lmeShkZWZhdWx0Q29uZmlncykpO1xcXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXFxcbiAgICAgICAgICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8v5bey5oGi5aSN6buY6K6k6K6+572uXFxcXFxcXCI7XFxcXG4gICAgICAgIH0pXFxcXG59KVxcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+iLpemHjeeUn+S4jei1t+S9nOeUqCzngrnmiJHlpI3liLbplJnor6/kv6Hmga/mj5DkuqTnu5nlvIDlj5HogIUnLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXFxcbiAgICB1cmw6ICdjb3B5Oi8vJyArIGUubWVzc2FnZVxcXFxufSlcXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLpobrkvazkuJPnlKjor6bmg4XpobVcXFwiLFxcXCJwYXRoXFxcIjpcXFwiU2RldGFpbFxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbnB1dFZhcigncWRiX2ZpbGUnLCAnaGlrZXI6Ly9maWxlcy9ydWxlcy9qb2tlci9xZGIuanMnKTtcXFxcbmV2YWwoZmV0Y2goZ2V0VmFyKFxcXFxcXFwicWRiX2ZpbGVcXFxcXFxcIikpKTtcXFxcbnByZSgpO1xcXFxubGV0IHR5cGUgPSBnZXRQYXJhbSgndHlwZScsICcnKSxcXFxcbiAgICBpZCA9IGdldFBhcmFtKCdpZCcsICcnKTtcXFxcbmRldGFpbHNWaWV3KHR5cGUsIGlkKTtcXFwifV1cIn0iLCJ0aXRsZSI6Iue8lui+keino+aekOS7o+eggSJ9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement