Advertisement
xiaomianao666

邀您一起看:姜子牙

Nov 25th, 2021
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥姜子牙@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wibmFtZVwiOlwi6K6+572u5Ye95pWwXCIsXCJwYXRoXCI6XCJyZUNvbmZpZ1wiLFwicnVsZVwiOlwiZnVuY3Rpb24gYmF0Y2hTZWFyY2hfcmVDb25maWcoY29kZSkge1xcbiAgcmV0dXJuICQudG9TdHJpbmcoKGNvZGUpID0+IHtcXG4gICAgbGV0IGJhdGNoU2VhcmNoX2NvbmZpZyA9IEpTT04ucGFyc2UoZ2V0VmFyKCdiYXRjaFNlYXJjaC1jb25maWcnKSlcXG4gICAgbmV3IEZ1bmN0aW9uKCdiYXRjaFNlYXJjaF9jb25maWcnLCBjb2RlKShiYXRjaFNlYXJjaF9jb25maWcpXFxuICAgIHB1dFZhcignYmF0Y2hTZWFyY2gtY29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYmF0Y2hTZWFyY2hfY29uZmlnKSlcXG4gICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gIH0sIGNvZGUpXFxufVxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfMV92ZXJ0aWNhbF9waWNcIixcIm5hbWVcIjpcIuaQnOe0ouWHveaVsFwiLFwicGF0aFwiOlwic2VhcmNoTG9hZFwiLFwicnVsZVwiOlwiZnVuY3Rpb24gYmF0Y2hTZWFyY2hfbG9hZCgpIHtcXG4gIHRyeSB7XFxuICAgIGZ1bmN0aW9uIGJhdGNoU2VhcmNoX3J1bkNvZGUoYmF0Y2hTZWFyY2hfcnVsZSkge1xcbiAgICAgIGlmIChiYXRjaFNlYXJjaF9ydWxlLmluZGV4T2YoJy5qczonKSA+PSAwKSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICB2YXIgaW5wdXQgPSBiYXRjaFNlYXJjaF9ydWxlLnNwbGl0KCcuanM6JylbMF1cXG4gICAgICAgICAgcmV0dXJuIGV2YWwoYmF0Y2hTZWFyY2hfcnVsZS5zcGxpdCgnLmpzOicpWzFdKVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICByZXR1cm4gYmF0Y2hTZWFyY2hfcnVsZVxcbiAgICAgICAgfVxcbiAgICAgIH0gZWxzZSB7XFxuICAgICAgICByZXR1cm4gYmF0Y2hTZWFyY2hfcnVsZVxcbiAgICAgIH1cXG4gICAgfVxcbiAgICAvLyDmkJzntKLnrZbnlaXov4fmu6RcXG4gICAgbGV0IGJhdGNoU2VhcmNoX2ZpbHRlcnNHcm91cCA9IGJhdGNoU2VhcmNoX2NvbmZpZy5maWx0ZXJzW2JhdGNoU2VhcmNoX2NvbmZpZy5hcHBseV0uZ3JvdXAsXFxuICAgICAgYmF0Y2hTZWFyY2hfZmlsdGVyc0V4Y2x1ZGUgPSBiYXRjaFNlYXJjaF9jb25maWcuZmlsdGVyc1tiYXRjaFNlYXJjaF9jb25maWcuYXBwbHldLmV4Y2x1ZGUsXFxuICAgICAgYmF0Y2hTZWFyY2hfaG9tZUxpc3QgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2hvbWUnKSkuZmlsdGVyKChpdGVtKSA9PlxcbiAgICAgICAgaXRlbS5zZWFyY2hGaW5kICYmIGl0ZW0udGl0bGUgIT0gTVlfUlVMRS50aXRsZSAmJlxcbiAgICAgICAgYmF0Y2hTZWFyY2hfZmlsdGVyc0dyb3VwLmZpbmQoKHYpID0+IGl0ZW0uZ3JvdXAgPT0gdikgJiZcXG4gICAgICAgICFiYXRjaFNlYXJjaF9maWx0ZXJzRXhjbHVkZS5maW5kKCh2KSA9PiBpdGVtLnRpdGxlID09IHYpKVxcbiAgICAgIC5zbGljZSgoYmF0Y2hTZWFyY2hfcGFnZSAtIDEpICogYmF0Y2hTZWFyY2hfY29uZmlnLnRocmVhZENudCwgYmF0Y2hTZWFyY2hfcGFnZSAqIGJhdGNoU2VhcmNoX2NvbmZpZy50aHJlYWRDbnQpXFxuICAgIGlmICghYmF0Y2hTZWFyY2hfaG9tZUxpc3QubGVuZ3RoKSByZXR1cm4gW11cXG4gICAgbGV0IGJhdGNoU2VhcmNoX3JlcyA9IFtdLFxcbiAgICAgIGJhdGNoU2VhcmNoX3J1bGVMaXN0ID0gW10sXFxuICAgICAgYmF0Y2hTZWFyY2hfdXJsTGlzdCA9IFtdXFxuICAgIGJhdGNoU2VhcmNoX2hvbWVMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcXG4gICAgICB0cnkge1xcbiAgICAgICAgLy8g57yT5a2Y6Kej5p6Q6KeE5YiZXFxuICAgICAgICBiYXRjaFNlYXJjaF9ydWxlTGlzdC5wdXNoKHtcXG4gICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXFxuICAgICAgICAgIHNlYXJjaEZpbmQ6IGl0ZW0uc2VhcmNoRmluZCxcXG4gICAgICAgICAgc2RldGFpbEZpbmQ6IFsnJywgJyonXS5pbmRleE9mKGl0ZW0uc2RldGFpbF9maW5kX3J1bGUpID09IC0xID8gaXRlbS5zZGV0YWlsX2ZpbmRfcnVsZSA6IGl0ZW0uZGV0YWlsX2ZpbmRfcnVsZSxcXG4gICAgICAgICAgY29sX3R5cGU6IFsnJywgJyonXS5pbmRleE9mKGl0ZW0uc2RldGFpbF9maW5kX3J1bGUpID09IC0xID8gaXRlbS5zZGV0YWlsX2NvbF90eXBlIDogaXRlbS5kZXRhaWxfY29sX3R5cGUsXFxuICAgICAgICAgIHByZVJ1bGU6IGl0ZW0ucHJlUnVsZSxcXG4gICAgICAgICAgdXJsUGFyYW06IChpdGVtLnNlYXJjaF91cmwubWF0Y2goLzsuKi8pIHx8IFsnJ10pWzBdLFxcbiAgICAgICAgICB1YTogaXRlbS51YVxcbiAgICAgICAgfSlcXG4gICAgICAgIC8vIOaQnOe0oumTvuaOpeWkhOeQhlxcbiAgICAgICAgbGV0IHNlYXJjaFVybCA9IGl0ZW0uc2VhcmNoX3VybC5zcGxpdCgnOycpLm1hcCgodikgPT4gdi5yZXBsYWNlKC/vvJvvvJsvZywgJzsnKSlcXG4gICAgICAgIHNlYXJjaFVybFswXSA9IHNlYXJjaFVybFswXS5yZXBsYWNlKHNlYXJjaFVybFswXS5pbmRleE9mKCclJScpID49IDAgPyAvJSUvZyA6IC9cXFxcKlxcXFwqL2csIGVuY29kZVN0cihiYXRjaFNlYXJjaF9rdywgc2VhcmNoVXJsWzJdKSlcXG4gICAgICAgICAgLnJlcGxhY2UoL2Z5cGFnZSg/OkAoLT9cXFxcZCspQCk/KD86XFxcXCpcXFxcZCtAKT8vZywgKF8sICQxKSA9PiBwYXJzZUludCgkMSB8fCAwKSArIDEpXFxuICAgICAgICBsZXQgc2VhcmNoUmVxID0geyB1cmw6IGJhdGNoU2VhcmNoX3J1bkNvZGUoc2VhcmNoVXJsWzBdKSwgb3B0aW9uczogeyBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAndGV4dC9wbGFpbjsgY2hhcnN0PVVURi04JyB9LCBtZXRob2Q6IHNlYXJjaFVybFsxXSwgdGltZW91dDogYmF0Y2hTZWFyY2hfY29uZmlnLnJlc3BvbnNlVGltZSB9IH1cXG4gICAgICAgIC8vIHBvc3Tmlrnms5Xml7bovazmjaLlj4LmlbBcXG4gICAgICAgIGlmICgvXnBvc3QkL2kudGVzdChzZWFyY2hSZXEub3B0aW9uc1snbWV0aG9kJ10pKSB7XFxuICAgICAgICAgIGxldCBbb3JpVXJsLCBib2R5XSA9IHNlYXJjaFJlcS51cmwuc3BsaXQoJz8nKVxcbiAgICAgICAgICBzZWFyY2hSZXEudXJsID0gb3JpVXJsLnJlcGxhY2UoJ++8n++8nycsICc/JylcXG4gICAgICAgICAgaWYgKC9eSnNvbkJvZHk9Ly50ZXN0KGJvZHkpKSBib2R5ID0gYm9keS5zbGljZSg5KVxcbiAgICAgICAgICBzZWFyY2hSZXEub3B0aW9uc1snYm9keSddID0gYm9keVxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHNlYXJjaFVybFsyXSkgc2VhcmNoUmVxLm9wdGlvbnMuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSBzZWFyY2hSZXEub3B0aW9ucy5oZWFkZXJzWydDb250ZW50LVR5cGUnXS5zbGljZSgwLCAxOSkgKyBzZWFyY2hVcmxbMl1cXG4gICAgICAgIGlmIChzZWFyY2hVcmxbM10pIHNlYXJjaFVybFszXS5tYXRjaCgveyguKil9LylbMV0uc3BsaXQoJyYmJykuZm9yRWFjaCgodikgPT4ge1xcbiAgICAgICAgICBsZXQgaGVhZGVycyA9IHYuc3BsaXQoJ0AnKVxcbiAgICAgICAgICBzZWFyY2hSZXEub3B0aW9ucy5oZWFkZXJzW2hlYWRlcnNbMF1dID0gYmF0Y2hTZWFyY2hfcnVuQ29kZShoZWFkZXJzWzFdKVxcbiAgICAgICAgfSlcXG4gICAgICAgIC8vIOa3u+WKoOWFqOWxgFVBXFxuICAgICAgICBpZiAoIXNlYXJjaFJlcS5vcHRpb25zLmhlYWRlcnNbJ1VzZXItQWdlbnQnXSkge1xcbiAgICAgICAgICBpZiAoaXRlbS51YSA9PSAncGMnKVxcbiAgICAgICAgICAgIHNlYXJjaFJlcS5vcHRpb25zLmhlYWRlcnNbJ1VzZXItQWdlbnQnXSA9IFBDX1VBXFxuICAgICAgICAgIGVsc2UgaWYgKGl0ZW0udWEgPT0gJ21vYmlsZScpXFxuICAgICAgICAgICAgc2VhcmNoUmVxLm9wdGlvbnMuaGVhZGVyc1snVXNlci1BZ2VudCddID0gTU9CSUxFX1VBXFxuICAgICAgICB9XFxuICAgICAgICBiYXRjaFNlYXJjaF91cmxMaXN0LnB1c2goc2VhcmNoUmVxKVxcbiAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgIGJhdGNoU2VhcmNoX3VybExpc3QucHVzaCh7IHVybDogJ2hpa2VyOi8vZXJyb3IvJyArIEpTT04uc3RyaW5naWZ5KGUpIH0pXFxuICAgICAgfVxcbiAgICB9KVxcbiAgICAvLyDojrflj5bmkJzntKLnu5PmnpxcXG4gICAgYmF0Y2hGZXRjaChiYXRjaFNlYXJjaF91cmxMaXN0KS5mb3JFYWNoKChiYXRjaFNlYXJjaF9zZWFyY2hIdG1sLCBiYXRjaFNlYXJjaF9zZWFyY2hJbmRleCkgPT4ge1xcbiAgICAgIGxldCBiYXRjaFNlYXJjaF9pdGVtUnVsZSA9IGJhdGNoU2VhcmNoX3J1bGVMaXN0W2JhdGNoU2VhcmNoX3NlYXJjaEluZGV4XSxcXG4gICAgICAgIGJhdGNoU2VhcmNoX2l0ZW1VcmwgPSBiYXRjaFNlYXJjaF91cmxMaXN0W2JhdGNoU2VhcmNoX3NlYXJjaEluZGV4XVxcbiAgICAgIE1ZX1VSTCA9IGJhdGNoU2VhcmNoX2l0ZW1VcmwudXJsXFxuICAgICAgdHJ5IHtcXG4gICAgICAgIGlmICghYmF0Y2hTZWFyY2hfc2VhcmNoSHRtbCkge1xcbiAgICAgICAgICBpZiAoYmF0Y2hTZWFyY2hfaXRlbVVybC51cmwuaW5kZXhPZignaGlrZXI6Ly9lcnJvci8nKSA9PSAwKVxcbiAgICAgICAgICAgIHRocm93IHsgbWVzc2FnZTogJ+mTvuaOpeWkhOeQhuaXtuWHuumUmTpcXFxcbicgKyBKU09OLnBhcnNlKGJhdGNoU2VhcmNoX2l0ZW1VcmwudXJsLnNsaWNlKDE0KSkubWVzc2FnZSB9XFxuICAgICAgICAgIGVsc2UgaWYgKGJhdGNoU2VhcmNoX2l0ZW1VcmwudXJsLmluZGV4T2YoJ2hpa2VyOi8vJykgIT0gMCkgdGhyb3cgeyBtZXNzYWdlOiAn5peg5rOV6K6/6Zeu77yM5pyq6I635Y+W5Yiw572R6aG15rqQ5Luj56CBJyB9XFxuICAgICAgICB9XFxuXFxuICAgICAgICBmdW5jdGlvbiBiYXRjaFNlYXJjaF91cmxIYW5kbGUodXJsLCBhZGRSdWxlKSB7XFxuICAgICAgICAgIC8vIOWtkOmhtemdoua3u+WKoHJ1bGVcXG4gICAgICAgICAgaWYgKHVybC5pbmRleE9mKCdoaWtlcjovL3BhZ2UvJykgPT0gMCkge1xcbiAgICAgICAgICAgIFssIHVybCwgcGFyYW1zLCBtYXJrXSA9IC9eKC4qPykoPzpcXFxcPyguKj8pKT8oIy4qPyk/JC8uZXhlYyh1cmwpXFxuICAgICAgICAgICAgcmV0dXJuIHVybCArICc/cnVsZT0nICsgYmF0Y2hTZWFyY2hfaXRlbVJ1bGUudGl0bGUgKyAocGFyYW1zIHx8ICcnKSArIChtYXJrID8gJyYnICsgbWFyayA6ICcnKVxcbiAgICAgICAgICB9XFxuICAgICAgICAgIC8vIOa3u+WKoOS6jOe6p+inhOWImVxcbiAgICAgICAgICBpZiAoYWRkUnVsZSAmJiAhL0AoPzpyfGxhenlSKXVsZT0vLnRlc3QodXJsKSkge1xcbiAgICAgICAgICAgIGlmIChiYXRjaFNlYXJjaF9pdGVtUnVsZS5zZGV0YWlsRmluZCkge1xcbiAgICAgICAgICAgICAgaWYgKCEvO2dldHw7cG9zdC9pLnRlc3QodXJsKSlcXG4gICAgICAgICAgICAgICAgdXJsICs9ICc7Z2V0OycgKyBiYXRjaFNlYXJjaF9pdGVtVXJsLm9wdGlvbnMuaGVhZGVyc1snQ29udGVudC1UeXBlJ10uc3BsaXQoJ2NoYXJzdD0nKVsxXSArXFxuICAgICAgICAgICAgICAgICc7eycgKyBPYmplY3Qua2V5cyhiYXRjaFNlYXJjaF9pdGVtVXJsLm9wdGlvbnMuaGVhZGVycylcXG4gICAgICAgICAgICAgICAgLmZpbHRlcigodikgPT4gdiAhPSAnQ29udGVudC1UeXBlJylcXG4gICAgICAgICAgICAgICAgLm1hcCgodikgPT4gdiArICdAJyArIGJhdGNoU2VhcmNoX2l0ZW1Vcmwub3B0aW9ucy5oZWFkZXJzW3ZdLnJlcGxhY2UoLzsvZywgJ++8m++8mycpKVxcbiAgICAgICAgICAgICAgICAuam9pbignJiYnKSArICd9J1xcbiAgICAgICAgICAgICAgYmF0Y2hTZWFyY2hfaXRlbVJ1bGUudXJsUGFyYW0ucmVwbGFjZSgvXjtwb3N0L2ksICc7Z2V0JylcXG4gICAgICAgICAgICAgIHVybCArPSAnQHJ1bGU9JyArIChiYXRjaFNlYXJjaF9pdGVtUnVsZS5zZGV0YWlsRmluZC5pbmRleE9mKCdqczonKSA9PSAwID9cXG4gICAgICAgICAgICAgICAgYmF0Y2hTZWFyY2hfaXRlbVJ1bGUuc2RldGFpbEZpbmQgOlxcbiAgICAgICAgICAgICAgICBiYXRjaFNlYXJjaF9pdGVtUnVsZS5zZGV0YWlsRmluZC5yZXBsYWNlKCc9PT4nLCAnOycgKyBiYXRjaFNlYXJjaF9pdGVtUnVsZS5jb2xfdHlwZSArICc9PT4nKVxcbiAgICAgICAgICAgICAgKVxcbiAgICAgICAgICAgIH0gZWxzZSB1cmwgPSAnd2ViOi8vJyArIHVybFxcbiAgICAgICAgICB9XFxuICAgICAgICAgIC8vIOS6jOe6p+mhtemdoumihOWkhOeQhuS4jumUmeivr+WkhOeQhlxcbiAgICAgICAgICBpZiAodXJsLmluZGV4T2YoJ0BydWxlPWpzOicpID4gMCkgdXJsID0gdXJsLnJlcGxhY2UoJ0BydWxlPWpzOicsXFxuICAgICAgICAgICAgJ0BydWxlPWpzOnRyeXtcXFxcbmJhdGNoU2VhcmNoX2l0ZW1SdWxlPScgKyAkLnN0cmluZ2lmeSh7IHRpdGxlOiBiYXRjaFNlYXJjaF9pdGVtUnVsZS50aXRsZSwgY29sX3R5cGU6IGJhdGNoU2VhcmNoX2l0ZW1SdWxlLmNvbF90eXBlIH0pICtcXG4gICAgICAgICAgICAnOycgKyAkLnN0cmluZ2lmeShiYXRjaFNlYXJjaF91cmxIYW5kbGUpICsgJzsnICsgJC5zdHJpbmdpZnkoYmF0Y2hTZWFyY2hfcmVDb25maWcpICsgJzsnICtcXG4gICAgICAgICAgICAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgIGZldGNoID0gKGZ1bmN0aW9uKGZ1bmMpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHVybCwgcGFyYW1zKSB7XFxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmMoYmF0Y2hTZWFyY2hfdXJsSGFuZGxlKHVybCksIHBhcmFtcylcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgfSkoZmV0Y2gpXFxuICAgICAgICAgICAgICBzZXRSZXN1bHQgPSAoZnVuY3Rpb24oZnVuYykge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oZWwpIHtcXG4gICAgICAgICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZWwpKSBlbCA9IGVsLmRhdGFcXG4gICAgICAgICAgICAgICAgICBmdW5jKGVsLm1hcCgodikgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdi51cmwgPSB2LnVybCAmJiBiYXRjaFNlYXJjaF91cmxIYW5kbGUodi51cmwpXFxuICAgICAgICAgICAgICAgICAgICB2LmNvbF90eXBlID0gdi5jb2xfdHlwZSB8fCBiYXRjaFNlYXJjaF9pdGVtUnVsZS5jb2xfdHlwZVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgICAgICAgICAgICB9KSlcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgfSkoc2V0UmVzdWx0KVxcbiAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0ID0gc2V0UmVzdWx0XFxuICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0ID0gc2V0UmVzdWx0XFxuICAgICAgICAgICAgfSkgKyAnOycpICsgJ1xcXFxufWNhdGNoKGUpeycgKyAkLnRvU3RyaW5nKCh0aXRsZSwgYmF0Y2hTZWFyY2hfcmVDb25maWcpID0+IHtcXG4gICAgICAgICAgICBzZXRSZXN1bHQoW3tcXG4gICAgICAgICAgICAgIHRpdGxlOiAn5bCP56iL5bqP44CQJyArIHRpdGxlICsgJ+OAkeS4re+8jOatpOS6jOe6p+mhtemdouS4jeaUr+aMgeaIluiAheW3suWkseaViO+8jOmUmeivr+S/oeaBr++8mlxcXFxuXFxcXG4nICsgZS5tZXNzYWdlLFxcbiAgICAgICAgICAgICAgY29sX3R5cGU6ICdsb25nX3RleHQnXFxuICAgICAgICAgICAgfSwgeyBjb2xfdHlwZTogJ2xpbmUnIH0sIHtcXG4gICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPHNwYW4gc3R5bGU9XFxcImNvbG9yOiM0MDllZmZcXFwiPuaOkumZpOWwj+eoi+W6jzwvc3Bhbj4nLFxcbiAgICAgICAgICAgICAgdXJsOiAnY29uZmlybTovL+imgeaOkumZpOivpeWwj+eoi+W6j+WQlz8uanM6JyArXFxuICAgICAgICAgICAgICAgIGJhdGNoU2VhcmNoX3JlQ29uZmlnKCdiYXRjaFNlYXJjaF9jb25maWcuZmlsdGVyc1tiYXRjaFNlYXJjaF9jb25maWcuYXBwbHldLmV4Y2x1ZGUucHVzaChcXFwiJyArIHRpdGxlICsgJ1xcXCIpJykucmVwbGFjZSgncmVmcmVzaFBhZ2UoZmFsc2UpJywgJycpICsgJzsnICtcXG4gICAgICAgICAgICAgICAgJC50b1N0cmluZygoKSA9PiB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvQmF0Y2hTZWFyY2hDb25maWcuanNvbicsIGdldFZhcignYmF0Y2hTZWFyY2gtY29uZmlnJykpKSArXFxuICAgICAgICAgICAgICAgICc7XFxcInRvYXN0Oi8v5bey5o6S6Zmk5bCP56iL5bqP44CQJyArIHRpdGxlICsgJ+OAkVxcXCInLFxcbiAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICAgICAgICAgIH1dKVxcbiAgICAgICAgICB9LCBiYXRjaFNlYXJjaF9pdGVtUnVsZS50aXRsZSwgYmF0Y2hTZWFyY2hfcmVDb25maWcpICsgJ30nXFxuICAgICAgICAgIHJldHVybiB1cmxcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChiYXRjaFNlYXJjaF9pdGVtUnVsZS5zZWFyY2hGaW5kLmluZGV4T2YoJ2pzOicpID09IDApIHtcXG4gICAgICAgICAgLy8ganPop6PmnpBcXG4gICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYmF0Y2hTZWFyY2hfcmVzLCBmdW5jdGlvbigpIHtcXG4gICAgICAgICAgICBsZXQgYmF0Y2hTZWFyY2hfcmVzdWx0ID0gW11cXG5cXG4gICAgICAgICAgICBmdW5jdGlvbiBnZXRVcmwoKSB7IHJldHVybiBNWV9VUkwgfVxcbiAgICAgICAgICAgIGZldGNoID0gKGZ1bmN0aW9uKGZ1bmMpIHtcXG4gICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbih1cmwsIHBhcmFtcykge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyhiYXRjaFNlYXJjaF91cmxIYW5kbGUodXJsKSwgcGFyYW1zKVxcbiAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pKGZldGNoKVxcbiAgICAgICAgICAgIGV2YWwoYmF0Y2hTZWFyY2hfaXRlbVJ1bGUucHJlUnVsZSlcXG5cXG4gICAgICAgICAgICBmdW5jdGlvbiBnZXRSZXNDb2RlKCkgeyByZXR1cm4gYmF0Y2hTZWFyY2hfc2VhcmNoSHRtbCB9XFxuXFxuICAgICAgICAgICAgZnVuY3Rpb24gc2V0UmVzdWx0KGVsKSB7XFxuICAgICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZWwpKSBlbCA9IGVsLmRhdGFcXG4gICAgICAgICAgICAgIGVsLmZvckVhY2goKHYpID0+IHtcXG4gICAgICAgICAgICAgICAgdi50aXRsZSA9IChiYXRjaFNlYXJjaF9jb25maWcuc2VhcmNoTW9kZSA9PSAn5YaF572uJyAmJiAhL17igJzigJx84oCY4oCYLy50ZXN0KHYudGl0bGUpID8gJ+KAnOKAnOKAneKAnScgOiAnJykgKyB2LnRpdGxlXFxuICAgICAgICAgICAgICAgIHYudXJsID0gYmF0Y2hTZWFyY2hfdXJsSGFuZGxlKHYudXJsLCB0cnVlKVxcbiAgICAgICAgICAgICAgICB2LmRlc2MgPSBiYXRjaFNlYXJjaF9pdGVtUnVsZS50aXRsZSArICh2LmRlc2MgPyAnIPCflLkgJyArIHYuZGVzYyA6ICcnKVxcbiAgICAgICAgICAgICAgICB2LmNvbF90eXBlID0gJ21vdmllXzFfdmVydGljYWxfcGljJ1xcbiAgICAgICAgICAgICAgICBiYXRjaFNlYXJjaF9yZXN1bHQucHVzaCh2KVxcbiAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0ID0gc2V0UmVzdWx0XFxuICAgICAgICAgICAgc2V0SG9tZVJlc3VsdCA9IHNldFJlc3VsdFxcbiAgICAgICAgICAgIGV2YWwoYmF0Y2hTZWFyY2hfaXRlbVJ1bGUuc2VhcmNoRmluZC5zbGljZSgzKSlcXG4gICAgICAgICAgICByZXR1cm4gYmF0Y2hTZWFyY2hfcmVzdWx0XFxuICAgICAgICAgIH0oKSlcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgIC8vIOaZrumAmuino+aekFxcbiAgICAgICAgICBsZXQgZmluZCA9IGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnNlYXJjaEZpbmQuc3BsaXQoJzsnKVxcbiAgICAgICAgICBwYXJzZURvbUZvckFycmF5KGJhdGNoU2VhcmNoX3NlYXJjaEh0bWwsIGZpbmRbMF0pLmZvckVhY2goKGRhdGEpID0+IHtcXG4gICAgICAgICAgICBsZXQgW3RpdGxlLCB1cmwsIGRlc2MsIGNvbnRlbnQsIGltZ10gPSBmaW5kLnNsaWNlKDEpLm1hcCgodiwgaSkgPT5cXG4gICAgICAgICAgICAgICAgYmF0Y2hTZWFyY2hfcnVuQ29kZSh2ID09ICcqJyA/ICcnIDpcXG4gICAgICAgICAgICAgICAgICAoaSA9PSAxIHx8IGkgPT0gNCA/IHBhcnNlRG9tKGRhdGEsIHYpIDpcXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRG9tRm9ySHRtbChkYXRhLCB2KSkpKSxcXG4gICAgICAgICAgICAgIGl0ZW0gPSB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAoYmF0Y2hTZWFyY2hfY29uZmlnLnNlYXJjaE1vZGUgPT0gJ+WGhee9ricgJiYgIS9e4oCc4oCcfOKAmOKAmC8udGVzdCh0aXRsZSkgPyAn4oCc4oCc4oCd4oCdJyA6ICcnKSArIHRpdGxlLFxcbiAgICAgICAgICAgICAgICB1cmw6IGJhdGNoU2VhcmNoX3VybEhhbmRsZSh1cmwsIHRydWUpLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBiYXRjaFNlYXJjaF9pdGVtUnVsZS50aXRsZSArIChkZXNjID8gJyDwn5S5ICcgKyBkZXNjIDogJycpLFxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb250ZW50LFxcbiAgICAgICAgICAgICAgICBpbWc6IGltZyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXG4gICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoaXRlbS50aXRsZS5pbmRleE9mKGJhdGNoU2VhcmNoX2t3KSA+PSAwIHx8IGl0ZW0uZGVzYy5pbmRleE9mKGJhdGNoU2VhcmNoX2t3KSA+PSAwKSBiYXRjaFNlYXJjaF9yZXMucHVzaChpdGVtKVxcbiAgICAgICAgICB9KVxcbiAgICAgICAgfVxcbiAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgIC8vIOaQnOe0oue7k+aenOmUmeivr+WkhOeQhlxcbiAgICAgICAgYmF0Y2hTZWFyY2hfcmVzLnB1c2goe1xcbiAgICAgICAgICB0aXRsZTogJ+Wwj+eoi+W6j+OAkCcgKyBiYXRjaFNlYXJjaF9pdGVtUnVsZS50aXRsZSArICfjgJHkuI3mlK/mjIHmiJbogIXlt7LlpLHmlYjvvIzngrnlh7vmn6XnnIvplJnor6/kv6Hmga8nLFxcbiAgICAgICAgICB1cmw6ICdjb25maXJtOi8vJyArIGUubWVzc2FnZSArICdcXFxcblxcXFxu5piv5ZCm5o6S6Zmk6K+l5bCP56iL5bqPPy5qczonICtcXG4gICAgICAgICAgICBiYXRjaFNlYXJjaF9yZUNvbmZpZygnYmF0Y2hTZWFyY2hfY29uZmlnLmZpbHRlcnNbYmF0Y2hTZWFyY2hfY29uZmlnLmFwcGx5XS5leGNsdWRlLnB1c2goXFxcIicgKyBiYXRjaFNlYXJjaF9pdGVtUnVsZS50aXRsZSArICdcXFwiKScpLnJlcGxhY2UoJ3JlZnJlc2hQYWdlKGZhbHNlKScsICcnKSArICc7JyArXFxuICAgICAgICAgICAgJC50b1N0cmluZygoKSA9PiB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvQmF0Y2hTZWFyY2hDb25maWcuanNvbicsIGdldFZhcignYmF0Y2hTZWFyY2gtY29uZmlnJykpKSArXFxuICAgICAgICAgICAgJztcXFwidG9hc3Q6Ly/lt7LmjpLpmaTlsI/nqIvluo/jgJAnICsgYmF0Y2hTZWFyY2hfaXRlbVJ1bGUudGl0bGUgKyAn44CRXFxcIicsXFxuICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXG4gICAgICAgIH0pO1xcbiAgICAgIH1cXG4gICAgfSlcXG4gICAgcmV0dXJuIGJhdGNoU2VhcmNoX3Jlc1xcbiAgfSBjYXRjaCAoZSkge1xcbiAgICByZXR1cm4gW3tcXG4gICAgICB0aXRsZTogJ+aQnOe0ouaXtuWHuueOsOiHtOWRvemUmeivr++8jOeCueWHu+afpeeci+ino+WGs+WKnuazlVxcXFxuJyArIGUsXFxuICAgICAgdXJsOiAkKCfngrnlh7vnoa7lrprlkI7nu5PmnZ/mkJzntKLvvIzlsIbmkJzntKLnur/nqIvosIPmlbTkuLox77yMXFxcXG7ph43mlrDmkJzntKLnm7TliLDlho3mrKHlh7rnjrDnm7jlkIznmoTmiqXplJnvvIxcXFxcbueEtuWQjuWwseWPr+S7peWumuS9jeW8lei1t+iHtOWRvemUmeivr+eahOWwj+eoi+W6j++8jOaJi+WKqOWwhuWFtuaOkumZpCcpLmNvbmZpcm0oKCkgPT4ge1xcbiAgICAgICAgcHV0VmFyKCdiYXRjaFNlYXJjaC1rdycsICcnKVxcbiAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgIH0pLFxcbiAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXG4gICAgfV1cXG4gIH1cXG59XFxuXCJ9XSxcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi6IGa5pCc5ZCbTGl0ZVwiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImh0dHBzOi8vdi5zb2dvdS5jb20vbW92aWUvbXp1d3kzazdnNDJka256dmhlZTMza3d4MnBpNGEuaHRtbCNpbW1lcnNpdmVUaGVtZSM7Z2V0O1VURi04O3tVc2VyLUFnZW50QE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjDvvJvvvJsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80OS4wLjI2MjMuODcgU2FmYXJpLzUzNy4zNn1cIixcImNvbF90eXBlXCI6XCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY1wiLFwiZmluZF9ydWxlXCI6XCJqczp0cnl7XFxuYmF0Y2hTZWFyY2hfaXRlbVJ1bGU9e1xcXCJ0aXRsZVxcXCI6XFxcIuaQnOeLl8K3UVxcXCIsXFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfMVxcXCJ9O1xcbmZ1bmN0aW9uIGJhdGNoU2VhcmNoX3VybEhhbmRsZSh1cmwsIGFkZFJ1bGUpIHtcXG4gICAgaWYgKHVybC5pbmRleE9mKFxcXCJoaWtlcjovL3BhZ2UvXFxcIikgPT0gMCkge1xcbiAgICAgICAgWywgdXJsLCBwYXJhbXMsIG1hcmtdID0gL14oLio/KSg/OlxcXFw/KC4qPykpPygjLio/KT8kLy5leGVjKHVybCk7XFxuICAgICAgICByZXR1cm4gdXJsICsgXFxcIj9ydWxlPVxcXCIgKyBiYXRjaFNlYXJjaF9pdGVtUnVsZS50aXRsZSArIChwYXJhbXMgfHwgXFxcIlxcXCIpICsgKG1hcmsgPyBcXFwiJlxcXCIgKyBtYXJrIDogXFxcIlxcXCIpO1xcbiAgICB9XFxuICAgIGlmIChhZGRSdWxlICYmICEvQCg/OnJ8bGF6eVIpdWxlPS8udGVzdCh1cmwpKSB7XFxuICAgICAgICBpZiAoYmF0Y2hTZWFyY2hfaXRlbVJ1bGUuc2RldGFpbEZpbmQpIHtcXG4gICAgICAgICAgICBpZiAoIS87Z2V0fDtwb3N0L2kudGVzdCh1cmwpKSB7XFxuICAgICAgICAgICAgICAgIHVybCArPSBcXFwiO2dldDtcXFwiICsgYmF0Y2hTZWFyY2hfaXRlbVVybC5vcHRpb25zLmhlYWRlcnNbXFxcIkNvbnRlbnQtVHlwZVxcXCJdLnNwbGl0KFxcXCJjaGFyc3Q9XFxcIilbMV0gKyBcXFwiO3tcXFwiICsgT2JqZWN0LmtleXMoYmF0Y2hTZWFyY2hfaXRlbVVybC5vcHRpb25zLmhlYWRlcnMpLmZpbHRlcigodikgPT4gdiAhPSBcXFwiQ29udGVudC1UeXBlXFxcIikubWFwKCh2KSA9PiB2ICsgXFxcIkBcXFwiICsgYmF0Y2hTZWFyY2hfaXRlbVVybC5vcHRpb25zLmhlYWRlcnNbdl0ucmVwbGFjZSgvOy9nLCBcXFwiXFxcXHVmZjFiXFxcXHVmZjFiXFxcIikpLmpvaW4oXFxcIiYmXFxcIikgKyBcXFwifVxcXCI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnVybFBhcmFtLnJlcGxhY2UoL147cG9zdC9pLCBcXFwiO2dldFxcXCIpO1xcbiAgICAgICAgICAgIHVybCArPSBcXFwiQHJ1bGU9XFxcIiArIChiYXRjaFNlYXJjaF9pdGVtUnVsZS5zZGV0YWlsRmluZC5pbmRleE9mKFxcXCJqczpcXFwiKSA9PSAwID8gYmF0Y2hTZWFyY2hfaXRlbVJ1bGUuc2RldGFpbEZpbmQgOiBiYXRjaFNlYXJjaF9pdGVtUnVsZS5zZGV0YWlsRmluZC5yZXBsYWNlKFxcXCI9PT5cXFwiLCBcXFwiO1xcXCIgKyBiYXRjaFNlYXJjaF9pdGVtUnVsZS5jb2xfdHlwZSArIFxcXCI9PT5cXFwiKSk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHVybCA9IFxcXCJ3ZWI6Ly9cXFwiICsgdXJsO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIGlmICh1cmwuaW5kZXhPZihcXFwiQHJ1bGU9anM6XFxcIikgPiAwKSB7XFxuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShcXFwiQHJ1bGU9anM6XFxcIiwgXFxcIkBydWxlPWpzOnRyeXtcXFxcbmJhdGNoU2VhcmNoX2l0ZW1SdWxlPVxcXCIgKyAkLnN0cmluZ2lmeSh7dGl0bGU6IGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnRpdGxlLCBjb2xfdHlwZTogYmF0Y2hTZWFyY2hfaXRlbVJ1bGUuY29sX3R5cGV9KSArIFxcXCI7XFxcIiArICQuc3RyaW5naWZ5KGJhdGNoU2VhcmNoX3VybEhhbmRsZSkgKyBcXFwiO1xcXCIgKyAkLnN0cmluZ2lmeShiYXRjaFNlYXJjaF9yZUNvbmZpZykgKyBcXFwiO1xcXCIgKyAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICBmZXRjaCA9IChmdW5jdGlvbiAoZnVuYykge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHVybCwgcGFyYW1zKSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyhiYXRjaFNlYXJjaF91cmxIYW5kbGUodXJsKSwgcGFyYW1zKTtcXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICB9KShmZXRjaCk7XFxuICAgICAgICAgICAgc2V0UmVzdWx0ID0gKGZ1bmN0aW9uIChmdW5jKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoZWwpIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShlbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBlbCA9IGVsLmRhdGE7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBmdW5jKGVsLm1hcCgodikgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHYudXJsID0gdi51cmwgJiYgYmF0Y2hTZWFyY2hfdXJsSGFuZGxlKHYudXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2LmNvbF90eXBlID0gdi5jb2xfdHlwZSB8fCBiYXRjaFNlYXJjaF9pdGVtUnVsZS5jb2xfdHlwZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdjtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICkpO1xcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH0pKHNldFJlc3VsdCk7XFxuICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0ID0gc2V0UmVzdWx0O1xcbiAgICAgICAgICAgIHNldEhvbWVSZXN1bHQgPSBzZXRSZXN1bHQ7XFxuICAgICAgICB9XFxuICAgICAgICApICsgXFxcIjtcXFwiKSArIFxcXCJcXFxcbn1jYXRjaChlKXtcXFwiICsgJC50b1N0cmluZygodGl0bGUsIGJhdGNoU2VhcmNoX3JlQ29uZmlnKSA9PiB7XFxuICAgICAgICAgICAgc2V0UmVzdWx0KFt7dGl0bGU6IFxcXCJcXFxcdTVjMGZcXFxcdTdhMGJcXFxcdTVlOGZcXFxcdTMwMTBcXFwiICsgdGl0bGUgKyBcXFwiXFxcXHUzMDExXFxcXHU0ZTJkXFxcXHVmZjBjXFxcXHU2YjY0XFxcXHU0ZThjXFxcXHU3ZWE3XFxcXHU5ODc1XFxcXHU5NzYyXFxcXHU0ZTBkXFxcXHU2NTJmXFxcXHU2MzAxXFxcXHU2MjE2XFxcXHU4MDA1XFxcXHU1ZGYyXFxcXHU1OTMxXFxcXHU2NTQ4XFxcXHVmZjBjXFxcXHU5NTE5XFxcXHU4YmVmXFxcXHU0ZmUxXFxcXHU2MDZmXFxcXHVmZjFhXFxcXG5cXFxcblxcXCIgKyBlLm1lc3NhZ2UsIGNvbF90eXBlOiBcXFwibG9uZ190ZXh0XFxcIn0sIHtjb2xfdHlwZTogXFxcImxpbmVcXFwifSwge3RpdGxlOiBcXFwiXFxcXHUyMDFjXFxcXHUyMDFjXFxcXHUyMDFkXFxcXHUyMDFkPHNwYW4gc3R5bGU9XFxcXFxcXCJjb2xvcjojNDA5ZWZmXFxcXFxcXCI+XFxcXHU2MzkyXFxcXHU5NjY0XFxcXHU1YzBmXFxcXHU3YTBiXFxcXHU1ZThmPC9zcGFuPlxcXCIsIHVybDogXFxcImNvbmZpcm06Ly9cXFxcdTg5ODFcXFxcdTYzOTJcXFxcdTk2NjRcXFxcdThiZTVcXFxcdTVjMGZcXFxcdTdhMGJcXFxcdTVlOGZcXFxcdTU0MTc/LmpzOlxcXCIgKyBiYXRjaFNlYXJjaF9yZUNvbmZpZyhcXFwiYmF0Y2hTZWFyY2hfY29uZmlnLmZpbHRlcnNbYmF0Y2hTZWFyY2hfY29uZmlnLmFwcGx5XS5leGNsdWRlLnB1c2goXFxcXFxcXCJcXFwiICsgdGl0bGUgKyBcXFwiXFxcXFxcXCIpXFxcIikucmVwbGFjZShcXFwicmVmcmVzaFBhZ2UoZmFsc2UpXFxcIiwgXFxcIlxcXCIpICsgXFxcIjtcXFwiICsgJC50b1N0cmluZygoKSA9PiB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvQmF0Y2hTZWFyY2hDb25maWcuanNvblxcXCIsIGdldFZhcihcXFwiYmF0Y2hTZWFyY2gtY29uZmlnXFxcIikpKSArIFxcXCI7XFxcXFxcXCJ0b2FzdDovL1xcXFx1NWRmMlxcXFx1NjM5MlxcXFx1OTY2NFxcXFx1NWMwZlxcXFx1N2EwYlxcXFx1NWU4ZlxcXFx1MzAxMFxcXCIgKyB0aXRsZSArIFxcXCJcXFxcdTMwMTFcXFxcXFxcIlxcXCIsIGNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCJ9XSk7XFxuICAgICAgICB9XFxuICAgICAgICAsIGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnRpdGxlLCBiYXRjaFNlYXJjaF9yZUNvbmZpZykgKyBcXFwifVxcXCI7XFxuICAgIH1cXG4gICAgcmV0dXJuIHVybDtcXG59XFxuO1xcbmZ1bmN0aW9uIGJhdGNoU2VhcmNoX3JlQ29uZmlnKGNvZGUpIHtcXG4gICAgcmV0dXJuICQudG9TdHJpbmcoKGNvZGUpID0+IHtcXG4gICAgICAgIGxldCBiYXRjaFNlYXJjaF9jb25maWcgPSBKU09OLnBhcnNlKGdldFZhcihcXFwiYmF0Y2hTZWFyY2gtY29uZmlnXFxcIikpO1xcbiAgICAgICAgbmV3IEZ1bmN0aW9uKFxcXCJiYXRjaFNlYXJjaF9jb25maWdcXFwiLCBjb2RlKShiYXRjaFNlYXJjaF9jb25maWcpO1xcbiAgICAgICAgcHV0VmFyKFxcXCJiYXRjaFNlYXJjaC1jb25maWdcXFwiLCBKU09OLnN0cmluZ2lmeShiYXRjaFNlYXJjaF9jb25maWcpKTtcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgIH1cXG4gICAgLCBjb2RlKTtcXG59XFxuOyhcXG4oKSA9PiB7XFxuICAgIGZldGNoID0gKGZ1bmN0aW9uIChmdW5jKSB7XFxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHVybCwgcGFyYW1zKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGZ1bmMoYmF0Y2hTZWFyY2hfdXJsSGFuZGxlKHVybCksIHBhcmFtcyk7XFxuICAgICAgICB9O1xcbiAgICB9KShmZXRjaCk7XFxuICAgIHNldFJlc3VsdCA9IChmdW5jdGlvbiAoZnVuYykge1xcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChlbCkge1xcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShlbCkpIHtcXG4gICAgICAgICAgICAgICAgZWwgPSBlbC5kYXRhO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBmdW5jKGVsLm1hcCgodikgPT4ge1xcbiAgICAgICAgICAgICAgICB2LnVybCA9IHYudXJsICYmIGJhdGNoU2VhcmNoX3VybEhhbmRsZSh2LnVybCk7XFxuICAgICAgICAgICAgICAgIHYuY29sX3R5cGUgPSB2LmNvbF90eXBlIHx8IGJhdGNoU2VhcmNoX2l0ZW1SdWxlLmNvbF90eXBlO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gdjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgKSk7XFxuICAgICAgICB9O1xcbiAgICB9KShzZXRSZXN1bHQpO1xcbiAgICBzZXRTZWFyY2hSZXN1bHQgPSBzZXRSZXN1bHQ7XFxuICAgIHNldEhvbWVSZXN1bHQgPSBzZXRSZXN1bHQ7XFxufVxcbikoKTtcXG5ldmFsKGZldGNoKCdoaWtlcjovL2ZpbGVzL2ppZXhpL3NvdWdvdS5qcycpKTtcXG5FSigpXFxufWNhdGNoKGUpeyhcXG4odGl0bGUsIGJhdGNoU2VhcmNoX3JlQ29uZmlnKSA9PiB7XFxuICAgIHNldFJlc3VsdChbe3RpdGxlOiBcXFwiXFxcXHU1YzBmXFxcXHU3YTBiXFxcXHU1ZThmXFxcXHUzMDEwXFxcIiArIHRpdGxlICsgXFxcIlxcXFx1MzAxMVxcXFx1NGUyZFxcXFx1ZmYwY1xcXFx1NmI2NFxcXFx1NGU4Y1xcXFx1N2VhN1xcXFx1OTg3NVxcXFx1OTc2MlxcXFx1NGUwZFxcXFx1NjUyZlxcXFx1NjMwMVxcXFx1NjIxNlxcXFx1ODAwNVxcXFx1NWRmMlxcXFx1NTkzMVxcXFx1NjU0OFxcXFx1ZmYwY1xcXFx1OTUxOVxcXFx1OGJlZlxcXFx1NGZlMVxcXFx1NjA2ZlxcXFx1ZmYxYVxcXFxuXFxcXG5cXFwiICsgZS5tZXNzYWdlLCBjb2xfdHlwZTogXFxcImxvbmdfdGV4dFxcXCJ9LCB7Y29sX3R5cGU6IFxcXCJsaW5lXFxcIn0sIHt0aXRsZTogXFxcIlxcXFx1MjAxY1xcXFx1MjAxY1xcXFx1MjAxZFxcXFx1MjAxZDxzcGFuIHN0eWxlPVxcXFxcXFwiY29sb3I6IzQwOWVmZlxcXFxcXFwiPlxcXFx1NjM5MlxcXFx1OTY2NFxcXFx1NWMwZlxcXFx1N2EwYlxcXFx1NWU4Zjwvc3Bhbj5cXFwiLCB1cmw6IFxcXCJjb25maXJtOi8vXFxcXHU4OTgxXFxcXHU2MzkyXFxcXHU5NjY0XFxcXHU4YmU1XFxcXHU1YzBmXFxcXHU3YTBiXFxcXHU1ZThmXFxcXHU1NDE3Py5qczpcXFwiICsgYmF0Y2hTZWFyY2hfcmVDb25maWcoXFxcImJhdGNoU2VhcmNoX2NvbmZpZy5maWx0ZXJzW2JhdGNoU2VhcmNoX2NvbmZpZy5hcHBseV0uZXhjbHVkZS5wdXNoKFxcXFxcXFwiXFxcIiArIHRpdGxlICsgXFxcIlxcXFxcXFwiKVxcXCIpLnJlcGxhY2UoXFxcInJlZnJlc2hQYWdlKGZhbHNlKVxcXCIsIFxcXCJcXFwiKSArIFxcXCI7XFxcIiArICQudG9TdHJpbmcoKCkgPT4gd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL0JhdGNoU2VhcmNoQ29uZmlnLmpzb25cXFwiLCBnZXRWYXIoXFxcImJhdGNoU2VhcmNoLWNvbmZpZ1xcXCIpKSkgKyBcXFwiO1xcXFxcXFwidG9hc3Q6Ly9cXFxcdTVkZjJcXFxcdTYzOTJcXFxcdTk2NjRcXFxcdTVjMGZcXFxcdTdhMGJcXFxcdTVlOGZcXFxcdTMwMTBcXFwiICsgdGl0bGUgKyBcXFwiXFxcXHUzMDExXFxcXFxcXCJcXFwiLCBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwifV0pO1xcbn1cXG4pKFxcXCLmkJzni5fCt1FcXFwiLFxcbmZ1bmN0aW9uIGJhdGNoU2VhcmNoX3JlQ29uZmlnKGNvZGUpIHtcXG4gICAgcmV0dXJuICQudG9TdHJpbmcoKGNvZGUpID0+IHtcXG4gICAgICAgIGxldCBiYXRjaFNlYXJjaF9jb25maWcgPSBKU09OLnBhcnNlKGdldFZhcihcXFwiYmF0Y2hTZWFyY2gtY29uZmlnXFxcIikpO1xcbiAgICAgICAgbmV3IEZ1bmN0aW9uKFxcXCJiYXRjaFNlYXJjaF9jb25maWdcXFwiLCBjb2RlKShiYXRjaFNlYXJjaF9jb25maWcpO1xcbiAgICAgICAgcHV0VmFyKFxcXCJiYXRjaFNlYXJjaC1jb25maWdcXFwiLCBKU09OLnN0cmluZ2lmeShiYXRjaFNlYXJjaF9jb25maWcpKTtcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgIH1cXG4gICAgLCBjb2RlKTtcXG59XFxuKX1cIixcImdyb3VwXCI6XCLikaDluLjnlKhcIixcInVhXCI6XCJhdXRvXCIsXCJwcmVSdWxlXCI6XCIvLyB0b0RvXFxuLy8g562W55Wl57yW6L6R5Y2V5byA6aG16Z2i77yM5pu05aSa6ZO+5o6l5YW85a65XFxuLy8gP+S6jOe6p+mhtemdouayoeaciemihOWkhOeQhlxcbi8vIGZpeGVkXFxuXFxuXFxubGV0IGJhdGNoU2VhcmNoX3BhdGggPSAnaGlrZXI6Ly9maWxlcy9ydWxlcy9CYXRjaFNlYXJjaENvbmZpZy5qc29uJyxcXG4gIGJhdGNoU2VhcmNoX2NvbmZpZyA9IGdldFZhcignYmF0Y2hTZWFyY2gtY29uZmlnJykgfHwgZmV0Y2goYmF0Y2hTZWFyY2hfcGF0aClcXG50cnkgeyBiYXRjaFNlYXJjaF9jb25maWcgPSBKU09OLnBhcnNlKGJhdGNoU2VhcmNoX2NvbmZpZykgfSBjYXRjaCAoZSkgeyBiYXRjaFNlYXJjaF9jb25maWcgPSB7IHRocmVhZENudDogNiwgcmVzcG9uc2VUaW1lOiA1MDAwLCBzZWFyY2hNb2RlOiAn5YaF572uJywgaGlzdG9yeTogW10sIGZpbHRlcnM6IHt9LCBhcHBseTogJycgfSB9XFxuXFxud2l0aChiYXRjaFNlYXJjaF9jb25maWcpIHtcXG4gIGlmICghKHRocmVhZENudCA+IDApKSB0aHJlYWRDbnQgPSA2XFxuICBpZiAoIShyZXNwb25zZVRpbWUgPiAwKSkgcmVzcG9uc2VUaW1lID0gNTAwMFxcbiAgaWYgKFsn5YaF572uJywgJ+WOn+eUnyddLmluZGV4T2Yoc2VhcmNoTW9kZSkgPT0gLTEpIHNlYXJjaE1vZGUgPSAn5YaF572uJ1xcbiAgaWYgKCFBcnJheS5pc0FycmF5KGhpc3RvcnkpKSBoaXN0b3J5ID0gW11cXG4gIGlmICghT2JqZWN0LmtleXMoZmlsdGVycyB8fCB7fSkubGVuZ3RoKSBmaWx0ZXJzID0ge1xcbiAgICAn5YWo6YOoJzoge1xcbiAgICAgIGdyb3VwOiBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2hvbWUnKSkubWFwKCh2KSA9PiB2Lmdyb3VwKS5maWx0ZXIoKHYsIGksIGFycikgPT4gYXJyLmluZGV4T2YodikgPT0gaSksXFxuICAgICAgZXhjbHVkZTogW11cXG4gICAgfVxcbiAgfVxcbiAgaWYgKCEoYXBwbHkgaW4gZmlsdGVycykpIGFwcGx5ID0gT2JqZWN0LmtleXMoZmlsdGVycylbMF1cXG59XFxucHV0VmFyKCdiYXRjaFNlYXJjaC1jb25maWcnLCBKU09OLnN0cmluZ2lmeShiYXRjaFNlYXJjaF9jb25maWcpKVxcbndyaXRlRmlsZShiYXRjaFNlYXJjaF9wYXRoLCBKU09OLnN0cmluZ2lmeShiYXRjaFNlYXJjaF9jb25maWcpKVxcblwiLFwicGFnZXNcIjpcIlt7XFxcIm5hbWVcXFwiOlxcXCLorr7nva7lh73mlbBcXFwiLFxcXCJwYXRoXFxcIjpcXFwicmVDb25maWdcXFwiLFxcXCJydWxlXFxcIjpcXFwiZnVuY3Rpb24gYmF0Y2hTZWFyY2hfcmVDb25maWcoY29kZSkge1xcXFxuICByZXR1cm4gJC50b1N0cmluZygoY29kZSkgPT4ge1xcXFxuICAgIGxldCBiYXRjaFNlYXJjaF9jb25maWcgPSBKU09OLnBhcnNlKGdldFZhcignYmF0Y2hTZWFyY2gtY29uZmlnJykpXFxcXG4gICAgbmV3IEZ1bmN0aW9uKCdiYXRjaFNlYXJjaF9jb25maWcnLCBjb2RlKShiYXRjaFNlYXJjaF9jb25maWcpXFxcXG4gICAgcHV0VmFyKCdiYXRjaFNlYXJjaC1jb25maWcnLCBKU09OLnN0cmluZ2lmeShiYXRjaFNlYXJjaF9jb25maWcpKVxcXFxuICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcXFxuICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXFxcbiAgfSwgY29kZSlcXFxcbn1cXFxcblxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLmkJzntKLlh73mlbBcXFwiLFxcXCJwYXRoXFxcIjpcXFwic2VhcmNoTG9hZFxcXCIsXFxcInJ1bGVcXFwiOlxcXCJmdW5jdGlvbiBiYXRjaFNlYXJjaF9sb2FkKCkge1xcXFxuICB0cnkge1xcXFxuICAgIGZ1bmN0aW9uIGJhdGNoU2VhcmNoX3J1bkNvZGUoYmF0Y2hTZWFyY2hfcnVsZSkge1xcXFxuICAgICAgaWYgKGJhdGNoU2VhcmNoX3J1bGUuaW5kZXhPZignLmpzOicpID49IDApIHtcXFxcbiAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICB2YXIgaW5wdXQgPSBiYXRjaFNlYXJjaF9ydWxlLnNwbGl0KCcuanM6JylbMF1cXFxcbiAgICAgICAgICByZXR1cm4gZXZhbChiYXRjaFNlYXJjaF9ydWxlLnNwbGl0KCcuanM6JylbMV0pXFxcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICByZXR1cm4gYmF0Y2hTZWFyY2hfcnVsZVxcXFxuICAgICAgICB9XFxcXG4gICAgICB9IGVsc2Uge1xcXFxuICAgICAgICByZXR1cm4gYmF0Y2hTZWFyY2hfcnVsZVxcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcbiAgICAvLyDmkJzntKLnrZbnlaXov4fmu6RcXFxcbiAgICBsZXQgYmF0Y2hTZWFyY2hfZmlsdGVyc0dyb3VwID0gYmF0Y2hTZWFyY2hfY29uZmlnLmZpbHRlcnNbYmF0Y2hTZWFyY2hfY29uZmlnLmFwcGx5XS5ncm91cCxcXFxcbiAgICAgIGJhdGNoU2VhcmNoX2ZpbHRlcnNFeGNsdWRlID0gYmF0Y2hTZWFyY2hfY29uZmlnLmZpbHRlcnNbYmF0Y2hTZWFyY2hfY29uZmlnLmFwcGx5XS5leGNsdWRlLFxcXFxuICAgICAgYmF0Y2hTZWFyY2hfaG9tZUxpc3QgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2hvbWUnKSkuZmlsdGVyKChpdGVtKSA9PlxcXFxuICAgICAgICBpdGVtLnNlYXJjaEZpbmQgJiYgaXRlbS50aXRsZSAhPSBNWV9SVUxFLnRpdGxlICYmXFxcXG4gICAgICAgIGJhdGNoU2VhcmNoX2ZpbHRlcnNHcm91cC5maW5kKCh2KSA9PiBpdGVtLmdyb3VwID09IHYpICYmXFxcXG4gICAgICAgICFiYXRjaFNlYXJjaF9maWx0ZXJzRXhjbHVkZS5maW5kKCh2KSA9PiBpdGVtLnRpdGxlID09IHYpKVxcXFxuICAgICAgLnNsaWNlKChiYXRjaFNlYXJjaF9wYWdlIC0gMSkgKiBiYXRjaFNlYXJjaF9jb25maWcudGhyZWFkQ250LCBiYXRjaFNlYXJjaF9wYWdlICogYmF0Y2hTZWFyY2hfY29uZmlnLnRocmVhZENudClcXFxcbiAgICBpZiAoIWJhdGNoU2VhcmNoX2hvbWVMaXN0Lmxlbmd0aCkgcmV0dXJuIFtdXFxcXG4gICAgbGV0IGJhdGNoU2VhcmNoX3JlcyA9IFtdLFxcXFxuICAgICAgYmF0Y2hTZWFyY2hfcnVsZUxpc3QgPSBbXSxcXFxcbiAgICAgIGJhdGNoU2VhcmNoX3VybExpc3QgPSBbXVxcXFxuICAgIGJhdGNoU2VhcmNoX2hvbWVMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcXFxcbiAgICAgIHRyeSB7XFxcXG4gICAgICAgIC8vIOe8k+WtmOino+aekOinhOWImVxcXFxuICAgICAgICBiYXRjaFNlYXJjaF9ydWxlTGlzdC5wdXNoKHtcXFxcbiAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcXFxcbiAgICAgICAgICBzZWFyY2hGaW5kOiBpdGVtLnNlYXJjaEZpbmQsXFxcXG4gICAgICAgICAgc2RldGFpbEZpbmQ6IFsnJywgJyonXS5pbmRleE9mKGl0ZW0uc2RldGFpbF9maW5kX3J1bGUpID09IC0xID8gaXRlbS5zZGV0YWlsX2ZpbmRfcnVsZSA6IGl0ZW0uZGV0YWlsX2ZpbmRfcnVsZSxcXFxcbiAgICAgICAgICBjb2xfdHlwZTogWycnLCAnKiddLmluZGV4T2YoaXRlbS5zZGV0YWlsX2ZpbmRfcnVsZSkgPT0gLTEgPyBpdGVtLnNkZXRhaWxfY29sX3R5cGUgOiBpdGVtLmRldGFpbF9jb2xfdHlwZSxcXFxcbiAgICAgICAgICBwcmVSdWxlOiBpdGVtLnByZVJ1bGUsXFxcXG4gICAgICAgICAgdXJsUGFyYW06IChpdGVtLnNlYXJjaF91cmwubWF0Y2goLzsuKi8pIHx8IFsnJ10pWzBdLFxcXFxuICAgICAgICAgIHVhOiBpdGVtLnVhXFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIC8vIOaQnOe0oumTvuaOpeWkhOeQhlxcXFxuICAgICAgICBsZXQgc2VhcmNoVXJsID0gaXRlbS5zZWFyY2hfdXJsLnNwbGl0KCc7JykubWFwKCh2KSA9PiB2LnJlcGxhY2UoL++8m++8my9nLCAnOycpKVxcXFxuICAgICAgICBzZWFyY2hVcmxbMF0gPSBzZWFyY2hVcmxbMF0ucmVwbGFjZShzZWFyY2hVcmxbMF0uaW5kZXhPZignJSUnKSA+PSAwID8gLyUlL2cgOiAvXFxcXFxcXFwqXFxcXFxcXFwqL2csIGVuY29kZVN0cihiYXRjaFNlYXJjaF9rdywgc2VhcmNoVXJsWzJdKSlcXFxcbiAgICAgICAgICAucmVwbGFjZSgvZnlwYWdlKD86QCgtP1xcXFxcXFxcZCspQCk/KD86XFxcXFxcXFwqXFxcXFxcXFxkK0ApPy9nLCAoXywgJDEpID0+IHBhcnNlSW50KCQxIHx8IDApICsgMSlcXFxcbiAgICAgICAgbGV0IHNlYXJjaFJlcSA9IHsgdXJsOiBiYXRjaFNlYXJjaF9ydW5Db2RlKHNlYXJjaFVybFswXSksIG9wdGlvbnM6IHsgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW47IGNoYXJzdD1VVEYtOCcgfSwgbWV0aG9kOiBzZWFyY2hVcmxbMV0sIHRpbWVvdXQ6IGJhdGNoU2VhcmNoX2NvbmZpZy5yZXNwb25zZVRpbWUgfSB9XFxcXG4gICAgICAgIC8vIHBvc3Tmlrnms5Xml7bovazmjaLlj4LmlbBcXFxcbiAgICAgICAgaWYgKC9ecG9zdCQvaS50ZXN0KHNlYXJjaFJlcS5vcHRpb25zWydtZXRob2QnXSkpIHtcXFxcbiAgICAgICAgICBsZXQgW29yaVVybCwgYm9keV0gPSBzZWFyY2hSZXEudXJsLnNwbGl0KCc/JylcXFxcbiAgICAgICAgICBzZWFyY2hSZXEudXJsID0gb3JpVXJsLnJlcGxhY2UoJ++8n++8nycsICc/JylcXFxcbiAgICAgICAgICBpZiAoL15Kc29uQm9keT0vLnRlc3QoYm9keSkpIGJvZHkgPSBib2R5LnNsaWNlKDkpXFxcXG4gICAgICAgICAgc2VhcmNoUmVxLm9wdGlvbnNbJ2JvZHknXSA9IGJvZHlcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBpZiAoc2VhcmNoVXJsWzJdKSBzZWFyY2hSZXEub3B0aW9ucy5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IHNlYXJjaFJlcS5vcHRpb25zLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddLnNsaWNlKDAsIDE5KSArIHNlYXJjaFVybFsyXVxcXFxuICAgICAgICBpZiAoc2VhcmNoVXJsWzNdKSBzZWFyY2hVcmxbM10ubWF0Y2goL3soLiopfS8pWzFdLnNwbGl0KCcmJicpLmZvckVhY2goKHYpID0+IHtcXFxcbiAgICAgICAgICBsZXQgaGVhZGVycyA9IHYuc3BsaXQoJ0AnKVxcXFxuICAgICAgICAgIHNlYXJjaFJlcS5vcHRpb25zLmhlYWRlcnNbaGVhZGVyc1swXV0gPSBiYXRjaFNlYXJjaF9ydW5Db2RlKGhlYWRlcnNbMV0pXFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIC8vIOa3u+WKoOWFqOWxgFVBXFxcXG4gICAgICAgIGlmICghc2VhcmNoUmVxLm9wdGlvbnMuaGVhZGVyc1snVXNlci1BZ2VudCddKSB7XFxcXG4gICAgICAgICAgaWYgKGl0ZW0udWEgPT0gJ3BjJylcXFxcbiAgICAgICAgICAgIHNlYXJjaFJlcS5vcHRpb25zLmhlYWRlcnNbJ1VzZXItQWdlbnQnXSA9IFBDX1VBXFxcXG4gICAgICAgICAgZWxzZSBpZiAoaXRlbS51YSA9PSAnbW9iaWxlJylcXFxcbiAgICAgICAgICAgIHNlYXJjaFJlcS5vcHRpb25zLmhlYWRlcnNbJ1VzZXItQWdlbnQnXSA9IE1PQklMRV9VQVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIGJhdGNoU2VhcmNoX3VybExpc3QucHVzaChzZWFyY2hSZXEpXFxcXG4gICAgICB9IGNhdGNoIChlKSB7XFxcXG4gICAgICAgIGJhdGNoU2VhcmNoX3VybExpc3QucHVzaCh7IHVybDogJ2hpa2VyOi8vZXJyb3IvJyArIEpTT04uc3RyaW5naWZ5KGUpIH0pXFxcXG4gICAgICB9XFxcXG4gICAgfSlcXFxcbiAgICAvLyDojrflj5bmkJzntKLnu5PmnpxcXFxcbiAgICBiYXRjaEZldGNoKGJhdGNoU2VhcmNoX3VybExpc3QpLmZvckVhY2goKGJhdGNoU2VhcmNoX3NlYXJjaEh0bWwsIGJhdGNoU2VhcmNoX3NlYXJjaEluZGV4KSA9PiB7XFxcXG4gICAgICBsZXQgYmF0Y2hTZWFyY2hfaXRlbVJ1bGUgPSBiYXRjaFNlYXJjaF9ydWxlTGlzdFtiYXRjaFNlYXJjaF9zZWFyY2hJbmRleF0sXFxcXG4gICAgICAgIGJhdGNoU2VhcmNoX2l0ZW1VcmwgPSBiYXRjaFNlYXJjaF91cmxMaXN0W2JhdGNoU2VhcmNoX3NlYXJjaEluZGV4XVxcXFxuICAgICAgTVlfVVJMID0gYmF0Y2hTZWFyY2hfaXRlbVVybC51cmxcXFxcbiAgICAgIHRyeSB7XFxcXG4gICAgICAgIGlmICghYmF0Y2hTZWFyY2hfc2VhcmNoSHRtbCkge1xcXFxuICAgICAgICAgIGlmIChiYXRjaFNlYXJjaF9pdGVtVXJsLnVybC5pbmRleE9mKCdoaWtlcjovL2Vycm9yLycpID09IDApXFxcXG4gICAgICAgICAgICB0aHJvdyB7IG1lc3NhZ2U6ICfpk77mjqXlpITnkIbml7blh7rplJk6XFxcXFxcXFxuJyArIEpTT04ucGFyc2UoYmF0Y2hTZWFyY2hfaXRlbVVybC51cmwuc2xpY2UoMTQpKS5tZXNzYWdlIH1cXFxcbiAgICAgICAgICBlbHNlIGlmIChiYXRjaFNlYXJjaF9pdGVtVXJsLnVybC5pbmRleE9mKCdoaWtlcjovLycpICE9IDApIHRocm93IHsgbWVzc2FnZTogJ+aXoOazleiuv+mXru+8jOacquiOt+WPluWIsOe9kemhtea6kOS7o+eggScgfVxcXFxuICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgZnVuY3Rpb24gYmF0Y2hTZWFyY2hfdXJsSGFuZGxlKHVybCwgYWRkUnVsZSkge1xcXFxuICAgICAgICAgIC8vIOWtkOmhtemdoua3u+WKoHJ1bGVcXFxcbiAgICAgICAgICBpZiAodXJsLmluZGV4T2YoJ2hpa2VyOi8vcGFnZS8nKSA9PSAwKSB7XFxcXG4gICAgICAgICAgICBbLCB1cmwsIHBhcmFtcywgbWFya10gPSAvXiguKj8pKD86XFxcXFxcXFw/KC4qPykpPygjLio/KT8kLy5leGVjKHVybClcXFxcbiAgICAgICAgICAgIHJldHVybiB1cmwgKyAnP3J1bGU9JyArIGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnRpdGxlICsgKHBhcmFtcyB8fCAnJykgKyAobWFyayA/ICcmJyArIG1hcmsgOiAnJylcXFxcbiAgICAgICAgICB9XFxcXG4gICAgICAgICAgLy8g5re75Yqg5LqM57qn6KeE5YiZXFxcXG4gICAgICAgICAgaWYgKGFkZFJ1bGUgJiYgIS9AKD86cnxsYXp5Uil1bGU9Ly50ZXN0KHVybCkpIHtcXFxcbiAgICAgICAgICAgIGlmIChiYXRjaFNlYXJjaF9pdGVtUnVsZS5zZGV0YWlsRmluZCkge1xcXFxuICAgICAgICAgICAgICBpZiAoIS87Z2V0fDtwb3N0L2kudGVzdCh1cmwpKVxcXFxuICAgICAgICAgICAgICAgIHVybCArPSAnO2dldDsnICsgYmF0Y2hTZWFyY2hfaXRlbVVybC5vcHRpb25zLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddLnNwbGl0KCdjaGFyc3Q9JylbMV0gK1xcXFxuICAgICAgICAgICAgICAgICc7eycgKyBPYmplY3Qua2V5cyhiYXRjaFNlYXJjaF9pdGVtVXJsLm9wdGlvbnMuaGVhZGVycylcXFxcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh2KSA9PiB2ICE9ICdDb250ZW50LVR5cGUnKVxcXFxuICAgICAgICAgICAgICAgIC5tYXAoKHYpID0+IHYgKyAnQCcgKyBiYXRjaFNlYXJjaF9pdGVtVXJsLm9wdGlvbnMuaGVhZGVyc1t2XS5yZXBsYWNlKC87L2csICfvvJvvvJsnKSlcXFxcbiAgICAgICAgICAgICAgICAuam9pbignJiYnKSArICd9J1xcXFxuICAgICAgICAgICAgICBiYXRjaFNlYXJjaF9pdGVtUnVsZS51cmxQYXJhbS5yZXBsYWNlKC9eO3Bvc3QvaSwgJztnZXQnKVxcXFxuICAgICAgICAgICAgICB1cmwgKz0gJ0BydWxlPScgKyAoYmF0Y2hTZWFyY2hfaXRlbVJ1bGUuc2RldGFpbEZpbmQuaW5kZXhPZignanM6JykgPT0gMCA/XFxcXG4gICAgICAgICAgICAgICAgYmF0Y2hTZWFyY2hfaXRlbVJ1bGUuc2RldGFpbEZpbmQgOlxcXFxuICAgICAgICAgICAgICAgIGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnNkZXRhaWxGaW5kLnJlcGxhY2UoJz09PicsICc7JyArIGJhdGNoU2VhcmNoX2l0ZW1SdWxlLmNvbF90eXBlICsgJz09PicpXFxcXG4gICAgICAgICAgICAgIClcXFxcbiAgICAgICAgICAgIH0gZWxzZSB1cmwgPSAnd2ViOi8vJyArIHVybFxcXFxuICAgICAgICAgIH1cXFxcbiAgICAgICAgICAvLyDkuoznuqfpobXpnaLpooTlpITnkIbkuI7plJnor6/lpITnkIZcXFxcbiAgICAgICAgICBpZiAodXJsLmluZGV4T2YoJ0BydWxlPWpzOicpID4gMCkgdXJsID0gdXJsLnJlcGxhY2UoJ0BydWxlPWpzOicsXFxcXG4gICAgICAgICAgICAnQHJ1bGU9anM6dHJ5e1xcXFxcXFxcbmJhdGNoU2VhcmNoX2l0ZW1SdWxlPScgKyAkLnN0cmluZ2lmeSh7IHRpdGxlOiBiYXRjaFNlYXJjaF9pdGVtUnVsZS50aXRsZSwgY29sX3R5cGU6IGJhdGNoU2VhcmNoX2l0ZW1SdWxlLmNvbF90eXBlIH0pICtcXFxcbiAgICAgICAgICAgICc7JyArICQuc3RyaW5naWZ5KGJhdGNoU2VhcmNoX3VybEhhbmRsZSkgKyAnOycgKyAkLnN0cmluZ2lmeShiYXRjaFNlYXJjaF9yZUNvbmZpZykgKyAnOycgK1xcXFxuICAgICAgICAgICAgJC50b1N0cmluZygoKSA9PiB7XFxcXG4gICAgICAgICAgICAgIGZldGNoID0gKGZ1bmN0aW9uKGZ1bmMpIHtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24odXJsLCBwYXJhbXMpIHtcXFxcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jKGJhdGNoU2VhcmNoX3VybEhhbmRsZSh1cmwpLCBwYXJhbXMpXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICB9KShmZXRjaClcXFxcbiAgICAgICAgICAgICAgc2V0UmVzdWx0ID0gKGZ1bmN0aW9uKGZ1bmMpIHtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oZWwpIHtcXFxcbiAgICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShlbCkpIGVsID0gZWwuZGF0YVxcXFxuICAgICAgICAgICAgICAgICAgZnVuYyhlbC5tYXAoKHYpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdi51cmwgPSB2LnVybCAmJiBiYXRjaFNlYXJjaF91cmxIYW5kbGUodi51cmwpXFxcXG4gICAgICAgICAgICAgICAgICAgIHYuY29sX3R5cGUgPSB2LmNvbF90eXBlIHx8IGJhdGNoU2VhcmNoX2l0ZW1SdWxlLmNvbF90eXBlXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2XFxcXG4gICAgICAgICAgICAgICAgICB9KSlcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgIH0pKHNldFJlc3VsdClcXFxcbiAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0ID0gc2V0UmVzdWx0XFxcXG4gICAgICAgICAgICAgIHNldEhvbWVSZXN1bHQgPSBzZXRSZXN1bHRcXFxcbiAgICAgICAgICAgIH0pICsgJzsnKSArICdcXFxcXFxcXG59Y2F0Y2goZSl7JyArICQudG9TdHJpbmcoKHRpdGxlLCBiYXRjaFNlYXJjaF9yZUNvbmZpZykgPT4ge1xcXFxuICAgICAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICAgIHRpdGxlOiAn5bCP56iL5bqP44CQJyArIHRpdGxlICsgJ+OAkeS4re+8jOatpOS6jOe6p+mhtemdouS4jeaUr+aMgeaIluiAheW3suWkseaViO+8jOmUmeivr+S/oeaBr++8mlxcXFxcXFxcblxcXFxcXFxcbicgKyBlLm1lc3NhZ2UsXFxcXG4gICAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0J1xcXFxuICAgICAgICAgICAgfSwgeyBjb2xfdHlwZTogJ2xpbmUnIH0sIHtcXFxcbiAgICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ08c3BhbiBzdHlsZT1cXFxcXFxcImNvbG9yOiM0MDllZmZcXFxcXFxcIj7mjpLpmaTlsI/nqIvluo88L3NwYW4+JyxcXFxcbiAgICAgICAgICAgICAgdXJsOiAnY29uZmlybTovL+imgeaOkumZpOivpeWwj+eoi+W6j+WQlz8uanM6JyArXFxcXG4gICAgICAgICAgICAgICAgYmF0Y2hTZWFyY2hfcmVDb25maWcoJ2JhdGNoU2VhcmNoX2NvbmZpZy5maWx0ZXJzW2JhdGNoU2VhcmNoX2NvbmZpZy5hcHBseV0uZXhjbHVkZS5wdXNoKFxcXFxcXFwiJyArIHRpdGxlICsgJ1xcXFxcXFwiKScpLnJlcGxhY2UoJ3JlZnJlc2hQYWdlKGZhbHNlKScsICcnKSArICc7JyArXFxcXG4gICAgICAgICAgICAgICAgJC50b1N0cmluZygoKSA9PiB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvQmF0Y2hTZWFyY2hDb25maWcuanNvbicsIGdldFZhcignYmF0Y2hTZWFyY2gtY29uZmlnJykpKSArXFxcXG4gICAgICAgICAgICAgICAgJztcXFxcXFxcInRvYXN0Oi8v5bey5o6S6Zmk5bCP56iL5bqP44CQJyArIHRpdGxlICsgJ+OAkVxcXFxcXFwiJyxcXFxcbiAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcXFxuICAgICAgICAgICAgfV0pXFxcXG4gICAgICAgICAgfSwgYmF0Y2hTZWFyY2hfaXRlbVJ1bGUudGl0bGUsIGJhdGNoU2VhcmNoX3JlQ29uZmlnKSArICd9J1xcXFxuICAgICAgICAgIHJldHVybiB1cmxcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBpZiAoYmF0Y2hTZWFyY2hfaXRlbVJ1bGUuc2VhcmNoRmluZC5pbmRleE9mKCdqczonKSA9PSAwKSB7XFxcXG4gICAgICAgICAgLy8ganPop6PmnpBcXFxcbiAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShiYXRjaFNlYXJjaF9yZXMsIGZ1bmN0aW9uKCkge1xcXFxuICAgICAgICAgICAgbGV0IGJhdGNoU2VhcmNoX3Jlc3VsdCA9IFtdXFxcXG5cXFxcbiAgICAgICAgICAgIGZ1bmN0aW9uIGdldFVybCgpIHsgcmV0dXJuIE1ZX1VSTCB9XFxcXG4gICAgICAgICAgICBmZXRjaCA9IChmdW5jdGlvbihmdW5jKSB7XFxcXG4gICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbih1cmwsIHBhcmFtcykge1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jKGJhdGNoU2VhcmNoX3VybEhhbmRsZSh1cmwpLCBwYXJhbXMpXFxcXG4gICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0pKGZldGNoKVxcXFxuICAgICAgICAgICAgZXZhbChiYXRjaFNlYXJjaF9pdGVtUnVsZS5wcmVSdWxlKVxcXFxuXFxcXG4gICAgICAgICAgICBmdW5jdGlvbiBnZXRSZXNDb2RlKCkgeyByZXR1cm4gYmF0Y2hTZWFyY2hfc2VhcmNoSHRtbCB9XFxcXG5cXFxcbiAgICAgICAgICAgIGZ1bmN0aW9uIHNldFJlc3VsdChlbCkge1xcXFxuICAgICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZWwpKSBlbCA9IGVsLmRhdGFcXFxcbiAgICAgICAgICAgICAgZWwuZm9yRWFjaCgodikgPT4ge1xcXFxuICAgICAgICAgICAgICAgIHYudGl0bGUgPSAoYmF0Y2hTZWFyY2hfY29uZmlnLnNlYXJjaE1vZGUgPT0gJ+WGhee9ricgJiYgIS9e4oCc4oCcfOKAmOKAmC8udGVzdCh2LnRpdGxlKSA/ICfigJzigJzigJ3igJ0nIDogJycpICsgdi50aXRsZVxcXFxuICAgICAgICAgICAgICAgIHYudXJsID0gYmF0Y2hTZWFyY2hfdXJsSGFuZGxlKHYudXJsLCB0cnVlKVxcXFxuICAgICAgICAgICAgICAgIHYuZGVzYyA9IGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnRpdGxlICsgKHYuZGVzYyA/ICcg8J+UuSAnICsgdi5kZXNjIDogJycpXFxcXG4gICAgICAgICAgICAgICAgdi5jb2xfdHlwZSA9ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXFxcbiAgICAgICAgICAgICAgICBiYXRjaFNlYXJjaF9yZXN1bHQucHVzaCh2KVxcXFxuICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0ID0gc2V0UmVzdWx0XFxcXG4gICAgICAgICAgICBzZXRIb21lUmVzdWx0ID0gc2V0UmVzdWx0XFxcXG4gICAgICAgICAgICBldmFsKGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnNlYXJjaEZpbmQuc2xpY2UoMykpXFxcXG4gICAgICAgICAgICByZXR1cm4gYmF0Y2hTZWFyY2hfcmVzdWx0XFxcXG4gICAgICAgICAgfSgpKVxcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgIC8vIOaZrumAmuino+aekFxcXFxuICAgICAgICAgIGxldCBmaW5kID0gYmF0Y2hTZWFyY2hfaXRlbVJ1bGUuc2VhcmNoRmluZC5zcGxpdCgnOycpXFxcXG4gICAgICAgICAgcGFyc2VEb21Gb3JBcnJheShiYXRjaFNlYXJjaF9zZWFyY2hIdG1sLCBmaW5kWzBdKS5mb3JFYWNoKChkYXRhKSA9PiB7XFxcXG4gICAgICAgICAgICBsZXQgW3RpdGxlLCB1cmwsIGRlc2MsIGNvbnRlbnQsIGltZ10gPSBmaW5kLnNsaWNlKDEpLm1hcCgodiwgaSkgPT5cXFxcbiAgICAgICAgICAgICAgICBiYXRjaFNlYXJjaF9ydW5Db2RlKHYgPT0gJyonID8gJycgOlxcXFxuICAgICAgICAgICAgICAgICAgKGkgPT0gMSB8fCBpID09IDQgPyBwYXJzZURvbShkYXRhLCB2KSA6XFxcXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRG9tRm9ySHRtbChkYXRhLCB2KSkpKSxcXFxcbiAgICAgICAgICAgICAgaXRlbSA9IHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogKGJhdGNoU2VhcmNoX2NvbmZpZy5zZWFyY2hNb2RlID09ICflhoXnva4nICYmICEvXuKAnOKAnHzigJjigJgvLnRlc3QodGl0bGUpID8gJ+KAnOKAnOKAneKAnScgOiAnJykgKyB0aXRsZSxcXFxcbiAgICAgICAgICAgICAgICB1cmw6IGJhdGNoU2VhcmNoX3VybEhhbmRsZSh1cmwsIHRydWUpLFxcXFxuICAgICAgICAgICAgICAgIGRlc2M6IGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnRpdGxlICsgKGRlc2MgPyAnIPCflLkgJyArIGRlc2MgOiAnJyksXFxcXG4gICAgICAgICAgICAgICAgY29udGVudDogY29udGVudCxcXFxcbiAgICAgICAgICAgICAgICBpbWc6IGltZyxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljJ1xcXFxuICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBpZiAoaXRlbS50aXRsZS5pbmRleE9mKGJhdGNoU2VhcmNoX2t3KSA+PSAwIHx8IGl0ZW0uZGVzYy5pbmRleE9mKGJhdGNoU2VhcmNoX2t3KSA+PSAwKSBiYXRjaFNlYXJjaF9yZXMucHVzaChpdGVtKVxcXFxuICAgICAgICAgIH0pXFxcXG4gICAgICAgIH1cXFxcbiAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgLy8g5pCc57Si57uT5p6c6ZSZ6K+v5aSE55CGXFxcXG4gICAgICAgIGJhdGNoU2VhcmNoX3Jlcy5wdXNoKHtcXFxcbiAgICAgICAgICB0aXRsZTogJ+Wwj+eoi+W6j+OAkCcgKyBiYXRjaFNlYXJjaF9pdGVtUnVsZS50aXRsZSArICfjgJHkuI3mlK/mjIHmiJbogIXlt7LlpLHmlYjvvIzngrnlh7vmn6XnnIvplJnor6/kv6Hmga8nLFxcXFxuICAgICAgICAgIHVybDogJ2NvbmZpcm06Ly8nICsgZS5tZXNzYWdlICsgJ1xcXFxcXFxcblxcXFxcXFxcbuaYr+WQpuaOkumZpOivpeWwj+eoi+W6jz8uanM6JyArXFxcXG4gICAgICAgICAgICBiYXRjaFNlYXJjaF9yZUNvbmZpZygnYmF0Y2hTZWFyY2hfY29uZmlnLmZpbHRlcnNbYmF0Y2hTZWFyY2hfY29uZmlnLmFwcGx5XS5leGNsdWRlLnB1c2goXFxcXFxcXCInICsgYmF0Y2hTZWFyY2hfaXRlbVJ1bGUudGl0bGUgKyAnXFxcXFxcXCIpJykucmVwbGFjZSgncmVmcmVzaFBhZ2UoZmFsc2UpJywgJycpICsgJzsnICtcXFxcbiAgICAgICAgICAgICQudG9TdHJpbmcoKCkgPT4gd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL0JhdGNoU2VhcmNoQ29uZmlnLmpzb24nLCBnZXRWYXIoJ2JhdGNoU2VhcmNoLWNvbmZpZycpKSkgK1xcXFxuICAgICAgICAgICAgJztcXFxcXFxcInRvYXN0Oi8v5bey5o6S6Zmk5bCP56iL5bqP44CQJyArIGJhdGNoU2VhcmNoX2l0ZW1SdWxlLnRpdGxlICsgJ+OAkVxcXFxcXFwiJyxcXFxcbiAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxcXG4gICAgICAgIH0pO1xcXFxuICAgICAgfVxcXFxuICAgIH0pXFxcXG4gICAgcmV0dXJuIGJhdGNoU2VhcmNoX3Jlc1xcXFxuICB9IGNhdGNoIChlKSB7XFxcXG4gICAgcmV0dXJuIFt7XFxcXG4gICAgICB0aXRsZTogJ+aQnOe0ouaXtuWHuueOsOiHtOWRvemUmeivr++8jOeCueWHu+afpeeci+ino+WGs+WKnuazlVxcXFxcXFxcbicgKyBlLFxcXFxuICAgICAgdXJsOiAkKCfngrnlh7vnoa7lrprlkI7nu5PmnZ/mkJzntKLvvIzlsIbmkJzntKLnur/nqIvosIPmlbTkuLox77yMXFxcXFxcXFxu6YeN5paw5pCc57Si55u05Yiw5YaN5qyh5Ye6546w55u45ZCM55qE5oql6ZSZ77yMXFxcXFxcXFxu54S25ZCO5bCx5Y+v5Lul5a6a5L2N5byV6LW36Ie05ZG96ZSZ6K+v55qE5bCP56iL5bqP77yM5omL5Yqo5bCG5YW25o6S6ZmkJykuY29uZmlybSgoKSA9PiB7XFxcXG4gICAgICAgIHB1dFZhcignYmF0Y2hTZWFyY2gta3cnLCAnJylcXFxcbiAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgfSksXFxcXG4gICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxcXG4gICAgfV1cXFxcbiAgfVxcXFxufVxcXFxuXFxcIn1dXCJ9IiwicGljVXJsIjoiaHR0cHM6Ly9pbWcwMy5zb2dvdWNkbi5jb20vdjIvdGh1bWIvcmV0eXBlX2V4Y2x1ZGVfZ2lmL2V4dC9hdXRvL3EvODAvY3JvcC94eS9haS93LzE3Ny9oLzI1MC9yZXNpemUvdy8xNzc/YXBwaWQ9MjAxMDA1JnNpZ249YTY0Y2U5ZmNiNDBmOTZkYmYyOGY3N2MyNGExMWZjOGImdXJsPWh0dHBzJTNBJTJGJTJGaW1nMDIuc29nb3VjZG4uY29tJTJGYXBwJTJGYSUyRjA3JTJGOTI4MzY4MjAxYmNlOTUyNzhlNGY3ZGFmZmM0ZDY0ODEiLCJ0aXRsZSI6IuWnnOWtkOeJmSJ9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement