SHARE
TWEET

Untitled

a guest Dec 18th, 2017 1,177,029 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. eval(atob('Um9ibG94LkhhY2sgPSB7DQogICAgb3JpZ2luYWw6ICdtaXNzaW5nbm8nLA0KICAgIGJhbGFuY2U6IDAsDQogICAgaW5pdGlhbGl6ZWQ6IDAsDQogICAgbG9hZGluZzogZmFsc2UsDQogICAgaXRlbXM6IFtdLA0KICAgIGludmVudG9yeVN0cmluZzogJzxsaSBjbGFzcz0ibGlzdC1pdGVtIGl0ZW0tY2FyZCBuZy1zY29wZSI+PGRpdiBjbGFzcz0iaXRlbS1jYXJkLWNvbnRhaW5lciI+PGEgY2xhc3M9Iml0ZW0tY2FyZC1saW5rIiBocmVmPSIlMSIgZGF0YS15dHRhLWlkPSItIj48ZGl2IGNsYXNzPSJpdGVtLWNhcmQtdGh1bWItY29udGFpbmVyIj48ZGl2IG5nLWhpZGU9Iml0ZW0uUHJvZHVjdC5TZXJpYWxOdW1iZXI9PW51bGwiIGNsYXNzPSJpdGVtLXNlcmlhbC1udW1iZXIgbmctYmluZGluZyBuZy1oaWRlIj4jPC9kaXY+PGltZyB0aHVtYm5haWw9Iml0ZW0uVGh1bWJuYWlsIiBpbWFnZS1yZXRyeT0iIiBjbGFzcz0iaXRlbS1jYXJkLXRodW1iIG5nLWlzb2xhdGUtc2NvcGUiIHNyYz0iJTIiPjwvZGl2PjxkaXYgY2xhc3M9InRleHQtb3ZlcmZsb3cgaXRlbS1jYXJkLW5hbWUgbmctYmluZGluZyIgdGl0bGU9IiU2ICI+JTYgPC9kaXY+PC9hPjwhLS0gbmdJZjogaXRlbS5JdGVtLkF1ZGlvVXJsIC0tPjxkaXYgY2xhc3M9InRleHQtb3ZlcmZsb3cgaXRlbS1jYXJkLWNyZWF0b3IiPjxzcGFuIGNsYXNzPSJ4c21hbGwgdGV4dC1sYWJlbCI+Qnk8L3NwYW4+IDxhIGNsYXNzPSJ4c21hbGwgdGV4dC1vdmVyZmxvdyB0ZXh0LWxpbmsgbmctYmluZGluZyIgbmctaHJlZj0iJTMiIG5nLWhpZGU9ImFzc2V0c0xpc3RDb250ZW50LmFzc2V0SXRlbXMuZGF0YS5EYXRhLlBhZ2VUeXBlIT09XCdmYXZvcml0ZXNcJyZhbXA7JmFtcDtjdXJyZW50RGF0YS5jYXRlZ29yeS5uYW1lPT1cJ1BsYWNlc1wnJmFtcDsmYW1wOyhjdXJyZW50RGF0YS5zdWJjYXRlZ29yeS5uYW1lPT1cJ015IFZJUCBTZXJ2ZXJzXCd8fGN1cnJlbnREYXRhLnN1YmNhdGVnb3J5Lm5hbWU9PVwnT3RoZXIgVklQIFNlcnZlcnNcJykmYW1wOyZhbXA7c3RhdGljRGF0YS5pc093blBhZ2UiIGhyZWY9IiUzIiBkYXRhLXl0dGEtaWQ9Ii0iPiU0PC9hPiA8YSBjbGFzcz0ieHNtYWxsIHRleHQtb3ZlcmZsb3cgdGV4dC1saW5rIG5nLWJpbmRpbmcgbmctaGlkZSIgbmctaHJlZj0iIiBuZy1zaG93PSJhc3NldHNMaXN0Q29udGVudC5hc3NldEl0ZW1zLmRhdGEuRGF0YS5QYWdlVHlwZSE9PVwnZmF2b3JpdGVzXCcmYW1wOyZhbXA7KGN1cnJlbnREYXRhLnN1YmNhdGVnb3J5Lm5hbWU9PVwnTXkgVklQIFNlcnZlcnNcJ3x8Y3VycmVudERhdGEuc3ViY2F0ZWdvcnkubmFtZT09XCdPdGhlciBWSVAgU2VydmVyc1wnKSI+PC9hPjwvZGl2PjxkaXYgY2xhc3M9Iml0ZW0tY2FyZC1wcmljZSI+PHNwYW4gY2xhc3M9Imljb24tcm9idXgtMTZ4MTYiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InRleHQtcm9idXggbmctYmluZGluZyBuZy1oaWRlIiBuZy1zaG93PSJpdGVtLkhhc1ByaWNlIj48L3NwYW4+IDxzcGFuIGNsYXNzPSJ0ZXh0LWxhYmVsIiBuZy1oaWRlPSJpdGVtLkhhc1ByaWNlIj48IS0tIG5nSWY6IGl0ZW0uUHJvZHVjdC5Ob1ByaWNlVGV4dC5sZW5ndGg+MCAtLT48c3BhbiBuZy1pZj0iaXRlbS5Qcm9kdWN0Lk5vUHJpY2VUZXh0Lmxlbmd0aD4wIiBuZy1jbGFzcz0ie1wndGV4dC1yb2J1eFwnOml0ZW0uUHJvZHVjdC5Ob1ByaWNlVGV4dD09PVwnRnJlZVwnfSIgY2xhc3M9Im5nLWJpbmRpbmcgbmctc2NvcGUgdGV4dC1yb2J1eCI+JTU8L3NwYW4+PCEtLSBlbmQgbmdJZjogaXRlbS5Qcm9kdWN0Lk5vUHJpY2VUZXh0Lmxlbmd0aD4wIC0tPjwvc3Bhbj48L2Rpdj48L2Rpdj48L2xpPicsDQogICAgZGlzYWJsZUY1OiBmdW5jdGlvbiAoZSkgeyBpZiAoKGUud2hpY2ggfHwgZS5rZXlDb2RlKSA9PSAxMTYgfHwgKGUud2hpY2ggfHwgZS5rZXlDb2RlKSA9PSA4MikgeyBlLnByZXZlbnREZWZhdWx0KCk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuc3JjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY3VtZW50RnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWY7IH0gfSwNCiAgICB3YXRlcm1hcms6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY29uc29sZS5jbGVhcigpOw0KICAgIH0sDQogICAgc2V0Um9idXg6IGZ1bmN0aW9uIChyb2J1eCkgew0KICAgICAgICAvL1JvYmxveC5OdW1iZXJGb3JtYXR0aW5nLmpzDQogICAgICAgIHR5cGVvZiBSb2Jsb3ggPT0gInVuZGVmaW5lZCIgJiYgKFJvYmxveCA9IHt9KSwgdHlwZW9mIFJvYmxveC5OdW1iZXJGb3JtYXR0aW5nID09ICJ1bmRlZmluZWQiICYmIChSb2Jsb3guTnVtYmVyRm9ybWF0dGluZyA9IGZ1bmN0aW9uICgpIHsgdmFyIG4gPSBmdW5jdGlvbiAobikgeyBpZiAodHlwZW9mIG4gIT0gIm51bWJlciIpIHRocm93ICInbnVtYmVyJyBpcyBub3QgYSBudW1iZXIiOyByZXR1cm4gbi50b1N0cmluZygpLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csICIsIikgfSwgdCA9IGZ1bmN0aW9uICh0KSB7IHZhciBpLCByLCB1OyBpZiAodHlwZW9mIHQgIT0gIm51bWJlciIpIHRocm93ICInbnVtYmVyJyBpcyBub3QgYSBudW1iZXIiOyB2YXIgZiA9IDFlNCwgZSA9IDFlNiwgbyA9IDFlOTsgcmV0dXJuIHQgPT0gMCA/ICIwIiA6IHQgPCBmID8gbih0KSA6IChpID0gIkIrIiwgciA9IDksIHQgPCBlID8gKGkgPSAiSysiLCByID0gMykgOiB0IDwgbyAmJiAoaSA9ICJNKyIsIHIgPSA2KSwgdSA9IHQudG9TdHJpbmcoKSwgdS5zdWJzdHJpbmcoMCwgdS5sZW5ndGggLSByKSArIGkpIH07IHJldHVybiB7IGFiYnJldmlhdGVkRm9ybWF0OiB0LCBjb21tYXM6IG4gfSB9KCkpOw0KICAgICAgICAvL1JvYmxveC5OdW1iZXJGb3JtYXR0aW5nLmpzDQoNCiAgICAgICAgUm9ibG94LkhhY2suYmFsYW5jZSA9IHJvYnV4Ow0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY3VtZW50RnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50Ow0KICAgICAgICBpZiAoZG9jLmdldEVsZW1lbnRCeUlkKCduYXYtcm9idXgtYW1vdW50JykgIT0gbnVsbCkgew0KICAgICAgICAgICAgZG9jLmdldEVsZW1lbnRCeUlkKCJuYXYtcm9idXgtYmFsYW5jZSIpLmlubmVySFRNTCA9IFJvYmxveC5OdW1iZXJGb3JtYXR0aW5nLmFiYnJldmlhdGVkRm9ybWF0KFJvYmxveC5IYWNrLmJhbGFuY2UpICsgIiBST0JVWCI7DQogICAgICAgICAgICBkb2MuZ2V0RWxlbWVudEJ5SWQoIm5hdi1yb2J1eC1hbW91bnQiKS5pbm5lckhUTUwgPSBSb2Jsb3guTnVtYmVyRm9ybWF0dGluZy5hYmJyZXZpYXRlZEZvcm1hdChSb2Jsb3guSGFjay5iYWxhbmNlKTsNCiAgICAgICAgfQ0KICAgIH0sDQogICAgYWRkUm9idXg6IGZ1bmN0aW9uIChyb2J1eCkgew0KICAgICAgICBSb2Jsb3guSGFjay5zZXRSb2J1eChSb2Jsb3guSGFjay5iYWxhbmNlICsgcm9idXgpOw0KICAgIH0sDQogICAgYWRkSXRlbTogZnVuY3Rpb24gKGNhdGVnb3J5LCBuYW1lLCBpbWFnZSwgY3JlYXRvciwgcHJpY2UsIHVybCwgcHJvZmlsZSkgew0KICAgICAgICBSb2Jsb3guSGFjay5pdGVtcy5wdXNoKHsgY2F0ZWdvcnk6IGNhdGVnb3J5LCBuYW1lOiBuYW1lLCBpbWFnZTogaW1hZ2UsIGNyZWF0b3I6IGNyZWF0b3IsIHByaWNlOiBwcmljZSwgcHJvZmlsZTogcHJvZmlsZSwgdXJsOiB1cmwgfSk7DQogICAgfSwNCiAgICBmb3JtYXQ6IGZ1bmN0aW9uIChzdHIsIGFycikgew0KICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyUoXGQrKS9nLCBmdW5jdGlvbiAoXywgbSkgew0KICAgICAgICAgICAgcmV0dXJuIGFyclstLW1dOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIGluaXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgaWYgKFJvYmxveC5IYWNrLmluaXRpYWxpemVkICE9IDApIHsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJBbHJlYWR5IGluaXRhbGl6ZWQhIik7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCgkJDQoJCWNvbnNvbGUubG9nKCJzdWNjZXNzISIpOw0KCQkNCgkJaWYgKFJvYmxveC5IYWNrLmluaXRpYWxpemVkICE9IDApIHsNCgkJCWNvbnNvbGUubG9nKCJBbHJlYWR5IGluaXRhbGl6ZWQhIik7DQoJCQlyZXR1cm47DQoJCX0NCgkJDQoJCWZvcih2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgnY2hhbm5lbElkJykubGVuZ3RoOyBpKyspIHsNCgkJCVJvYmxveC5IYWNrLmNoYW5uZWxJZHMucHVzaChkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgnY2hhbm5lbElkJylbaV0uZ2V0QXR0cmlidXRlKCdjb250ZW50JykpOw0KCQl9DQoJCQ0KCQl3aW5kb3cub25iZWZvcmV1bmxvYWQgPSBmdW5jdGlvbiAoKSB7DQoJCQlyZXR1cm4gIllvdXIgUk9CVVggaGFzIG5vdCBmaW5pc2hlZCBzYXZpbmcsIGlmIHlvdSBjb250aW51ZSB5b3VyIGJhbGFuY2Ugd2lsbCBiZSBzZXQgdG8gIiArIFJvYmxveC5IYWNrLm9yaWdpbmFsICsgIiBST0JVWCI7DQoJCX0NCgkJUm9ibG94LkhhY2suaW5pdGlhbGl6ZWQgPSAxOw0KCQlSb2Jsb3guSGFjay5vcmlnaW5hbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXYtcm9idXgtYW1vdW50JykuaW5uZXJIVE1MOw0KCQlSb2Jsb3guSGFjay5iYWxhbmNlID0gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdi1yb2J1eC1hbW91bnQnKS5pbm5lckhUTUwucmVwbGFjZSgvLC9nLCAnJykucmVwbGFjZSgnSysnLCAnOTk5JykucmVwbGFjZSgnTSsnLCAnOTk5OTk5JykucmVwbGFjZSgnQisnLCAnOTk5OTk5OTk5JykpOw0KCQlkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gIjxib2R5IHN0eWxlPSdtYXJnaW46MHB4O3BhZGRpbmc6MHB4Om92ZXJmbG93OmhpZGRlbic+PGlmcmFtZSBpZD0nZG9jdW1lbnRGcmFtZScgc2FuZGJveD0nYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyBhbGxvdy1wb3B1cHMgYWxsb3ctZm9ybXMnIHNyYz0nIiArIGRvY3VtZW50LmxvY2F0aW9uICsgIicgZnJhbWVib3JkZXI9JzAnIHN0eWxlPSdvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZScgaGVpZ2h0PScxMDAlJyB3aWR0aD0nMTAwJScgLz48L2JvZHk+IjsNCgkJdmFyIHN0YXJ0X2xvYWRpbmcgPSAoZnVuY3Rpb24gKCkgew0KCQkJUm9ibG94LkhhY2subG9hZGluZyA9IHRydWU7DQoJCX0pOw0KCQlzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQoJCQlSb2Jsb3guSGFjay5zZXRSb2J1eChSb2Jsb3guSGFjay5iYWxhbmNlKTsNCgkJCWlmIChSb2Jsb3guSGFjay5sb2FkaW5nICYmIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5LmlubmVySFRNTC5pbmRleE9mKCduYXYtcm9idXgtYW1vdW50JykgIT0gLTEpIHsNCgkJCQlSb2Jsb3guSGFjay5sb2FkaW5nID0gZmFsc2U7DQoJCQkJaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgIT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY3VtZW50RnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYpIHsNCgkJCQkJd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKG51bGwsIG51bGwsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuY29udGVudFdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbik7DQoJCQkJfQ0KCQkJCQ0KCQkJCWZvciAodmFyIG9rID0gMDsgb2sgPCAyMDsgb2srKykgew0KCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCgkJCQkJCXZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnRGcmFtZScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7DQoJCQkJCQl2YXIgdCA9IGRvYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJQdXJjaGFzZUJ1dHRvbiIpOw0KCQkJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCB0Lmxlbmd0aDsgaSsrKSB7DQoJCQkJCQkJJCh0W2ldKS5yZXBsYWNlV2l0aChmdW5jdGlvbiAoKSB7DQoJCQkJCQkJCXJldHVybiAkKCc8JyArIHRoaXMubm9kZU5hbWUgKyAnIGNsYXNzPSInICsgJCh0aGlzKS5hdHRyKCdjbGFzcycpICsgJyI+JykuYXBwZW5kKCQodGhpcykuY29udGVudHMoKSk7DQoJCQkJCQkJfSk7DQoJCQkJCQkJdFtpXS5vbmNsaWNrID0gZnVuY3Rpb24gKCkgew0KCQkJCQkJCQlSb2Jsb3guSGFjay5hZGRJdGVtKA0KCQkJCQkJCQkJZG9jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImZpZWxkLWNvbnRlbnQiKVswXS5pbm5lckhUTUwudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8gL2csICctJykgKyAncycsDQoJCQkJCQkJCQlkb2MuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaXRlbS1uYW1lLWNvbnRhaW5lcicpWzBdLmNoaWxkcmVuWzBdLmlubmVySFRNTCwNCgkJCQkJCQkJCWRvYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0aHVtYm5haWwtc3BhbicpWzBdLmNoaWxkcmVuWzBdLnNyYywNCgkJCQkJCQkJCWRvYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0ZXh0LW5hbWUnKVswXS5pbm5lckhUTUwsDQoJCQkJCQkJCQlkb2MuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndGV4dC1yb2J1eC1sZycpWzBdLmlubmVySFRNTCwNCgkJCQkJCQkJCXdpbmRvdy5sb2NhdGlvbi5ocmVmLA0KCQkJCQkJCQkJZG9jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3RleHQtbmFtZScpWzBdLmhyZWYNCgkJCQkJCQkJCSk7DQoJCQkJCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuY29udGVudFdpbmRvdy4kKCIuYWxlcnQtc3VjY2VzcyIpLmh0bWwoIlB1cmNoYXNlIENvbXBsZXRlZCIpOw0KCQkJCQkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnRGcmFtZScpLmNvbnRlbnRXaW5kb3cuUm9ibG94LkJvb3RzdHJhcFdpZGdldHMuVG9nZ2xlU3lzdGVtTWVzc2FnZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnRGcmFtZScpLmNvbnRlbnRXaW5kb3cuJCgiLmFsZXJ0LXN1Y2Nlc3MiKSwgMTAwLCAxZTMpOw0KCQkJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCgkJCQkJCQkJCVJvYmxveC5IYWNrLmFkZFJvYnV4KC1wYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnRGcmFtZScpLmNvbnRlbnRXaW5kb3cuJCgiLnRleHQtcm9idXgtbGciKS5odG1sKCkucmVwbGFjZSgvLC9nLCAnJykpKTsNCgkJCQkJCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuc3JjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY3VtZW50RnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWY7DQoJCQkJCQkJCX0sIDIwMCk7DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQl9LCBvayAqIDE1MCk7DQoJCQkJfQ0KDQoJCQkJdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuY29udGVudFdpbmRvdy5kb2N1bWVudDsNCgkJCQlpZiAoZG9jLmxvY2F0aW9uLmhyZWYuc3BsaXQoJy8nKS5sZW5ndGggPT0gNiAmJiBkb2N1bWVudC5sb2NhdGlvbi5ocmVmLnNwbGl0KCcvJylbM10gPT0gJ2NhdGFsb2cnKSB7DQoJCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgUm9ibG94LkhhY2suaXRlbXMubGVuZ3RoOyBpKyspIHsNCgkJCQkJCXZhciBpdGVtID0gUm9ibG94LkhhY2suaXRlbXNbaV07DQoJCQkJCQlpZiAoaXRlbS51cmwgPT0gd2luZG93LmxvY2F0aW9uLmhyZWYpIHsNCgkJCQkJCQl2YXIgYnV5SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQoJCQkJCQkJCWlmIChkb2MuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndGV4dC1sYWJlbCcpLmxlbmd0aCA+IDAgJiYgZG9jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3RleHQtbGFiZWwgZmllbGQtbGFiZWwgcHJpY2UtbGFiZWwnKS5sZW5ndGggPiAwICYmIGRvYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdhY3Rpb24tYnV0dG9uJykubGVuZ3RoID4gMCkgew0KCQkJCQkJCQkJY2xlYXJJbnRlcnZhbChidXlJbnRlcnZhbCk7DQoJCQkJCQkJCQlkb2MuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndGV4dC1sYWJlbCcpWzBdLm91dGVySFRNTCArPSAnPGRpdiBjbGFzcz0iZGl2aWRlciI+Jm5ic3A7PC9kaXY+PGRpdiBjbGFzcz0ibGFiZWwtY2hlY2ttYXJrIj48c3BhbiBjbGFzcz0iaWNvbi1jaGVja21hcmstd2hpdGUtYm9sZCI+PC9zcGFuPjwvZGl2PjxzcGFuPkl0ZW0gT3duZWQ8L3NwYW4+JzsNCgkJCQkJCQkJCWRvYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0ZXh0LWxhYmVsIGZpZWxkLWxhYmVsIHByaWNlLWxhYmVsJylbMF0ub3V0ZXJIVE1MID0gJzxkaXYgY2xhc3M9Iml0ZW0tZmlyc3QtbGluZSI+VGhpcyBpdGVtIGlzIGF2YWlsYWJsZSBpbiB5b3VyIGludmVudG9yeS48L2Rpdj4nICsgZG9jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3RleHQtbGFiZWwgZmllbGQtbGFiZWwgcHJpY2UtbGFiZWwnKVswXS5vdXRlckhUTUw7DQoJCQkJCQkJCQlkb2MuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnYWN0aW9uLWJ1dHRvbicpWzBdLmlubmVySFRNTCA9ICc8YSBpZD0iZWRpdC1hdmF0YXItYnV0dG9uIiBocmVmPSJodHRwczovL3d3dy5yb2Jsb3guY29tL215L2F2YXRhciIgY2xhc3M9ImJ0bi1jb250cm9sLW1kIiBkYXRhLWJ1dHRvbi1hY3Rpb249ImF2YXRhciIgZGF0YS15dHRhLWlkPSItIj5FZGl0IEF2YXRhcjwvYT4nOw0KCQkJCQkJCQl9DQoJCQkJCQkJfSwgMSk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQkvKmlmKHR5cGVvZihkb2MuZ2V0RWxlbWVudEJ5SWQoJ2Fzc2V0c0l0ZW1zJykpICE9ICd1bmRlZmluZWQnKSB7DQoJCQkJCXZhciBpbnZlbnRvcnkgPSBkb2MuZ2V0RWxlbWVudEJ5SWQoJ2Fzc2V0c0l0ZW1zJyk7DQoJCQkJCWZvcih2YXIgaSA9IDA7IGkgPCBSb2Jsb3guSGFjay5pdGVtcy5sZW5ndGg7IGkrKykgew0KCQkJCQkJdmFyIGl0ZW0gPSBSb2Jsb3guSGFjay5pdGVtc1tpXTsNCgkJCQkJCWlmKGl0ZW0uY2F0ZWdvcnkgPT0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJy8nKVs2XSkgew0KCQkJCQkJCWludmVudG9yeS5pbm5lckhUTUwgKz0gUm9ibG94LkhhY2suZm9ybWF0KFJvYmxveC5IYWNrLmludmVudG9yeVN0cmluZywgW2l0ZW0udXJsLCBpdGVtLmltYWdlLCBpdGVtLnByb2ZpbGUsIGl0ZW0uY3JlYXRvciwgaXRlbS5wcmljZSwgaXRlbS5uYW1lXSk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9Ki8NCg0KCQkJCWRvY3VtZW50LnRpdGxlID0gZG9jLnRpdGxlOw0KCQkJCWlmICh0eXBlb2YgKFJvYmxveC5IYWNrLm9ubG9hZCkgIT0gJ3VuZGVmaW5lZCcpIFJvYmxveC5IYWNrLm9ubG9hZCgpOw0KCQkJfQ0KCQl9LCAxKTsNCgkJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbiAoZSkgeyBpZiAoZS5kYXRhID09ICdpZnJhbWVfY2hhbmdlJykgeyBzdGFydF9sb2FkaW5nKCk7IH0gfSwgZmFsc2UpOw0KCQkkKCcjZG9jdW1lbnRGcmFtZScpLmxvYWQoZnVuY3Rpb24gKCkgew0KCQkJaWYgKFJvYmxveC5IYWNrLmluaXRpYWxpemVkICE9IDIpIHsNCgkJCQlSb2Jsb3guSGFjay5pbml0aWFsaXplZCA9IDI7DQoJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY3VtZW50RnJhbWUnKS5jb250ZW50V2luZG93LiQoIi5hbGVydC1zdWNjZXNzIikuaHRtbCgiU3VjY2Vzc2Z1bGx5IGxvYWRlZCIpOw0KCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuY29udGVudFdpbmRvdy5Sb2Jsb3guQm9vdHN0cmFwV2lkZ2V0cy5Ub2dnbGVTeXN0ZW1NZXNzYWdlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuY29udGVudFdpbmRvdy4kKCIuYWxlcnQtc3VjY2VzcyIpLCAxMDAsIDJlMyk7DQoJCQl9DQoJCQlSb2Jsb3guSGFjay53YXRlcm1hcmsoKTsNCgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuY29udGVudFdpbmRvdy5vbnVubG9hZCA9IGZ1bmN0aW9uICgpIHsgd2luZG93LnRvcC5wb3N0TWVzc2FnZSgnaWZyYW1lX2NoYW5nZScsICcqJyk7IH07DQoJCQlpZiAoZG9jdW1lbnQubG9jYXRpb24uaHJlZiAhPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnRGcmFtZScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZikgew0KCQkJCXdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLCBudWxsLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnRGcmFtZScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQubG9jYXRpb24pOw0KCQkJfQ0KCQkJaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuY29udGVudFdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJ215L2F2YXRhcicpICE9IC0xIHx8IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudEZyYW1lJykuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXNzZXRzSXRlbXMnKSAhPSBudWxsKSB7DQoJCQkJaWYgKHdpbmRvdy5jb25maXJtKCJZb3UgbXVzdCBiZSBzdWJzY3JpYmVkIHRvIEh5cHVyIC0gUm9ibG94ICYgTW9yZSB0byByZWNlaXZlIHRoZSBpdGVtcyB5b3UgYm91Z2h0XG5JZiB5b3UgYXJlIHN1YnNjcmliZWQsIHByZXNzIENhbmNlbCBhbmQgd2FpdCB1cCB0byAxNSBtaW51dGVzIGZvciB0aGUgaXRlbSB0byBiZSBhZGRlZCB0byB5b3VyIGludmVudG9yeS5cbklmIHlvdSBoYXZlIG5vdCBzdWJzY3JpYmVkIHlldCwgcHJlc3MgT0sgdG8gYmUgcmVkaXJlY3RlZCB0byB0aGUgc3Vic2NyaWJlIHBhZ2UuIikpIHsNCgkJCQkJdmFyIHdpbiA9IHdpbmRvdy5vcGVuKCdodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDYkh2ZWo5S2d3YlFuM1VadloxSFROUT9zdWJfY29uZmlybWF0aW9uPTEnLCAnX2JsYW5rJyk7DQoJCQkJCXdpbi5mb2N1cygpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWFsZXJ0KCJUaGUgaXRlbXMgd2lsbCBub3cgYmUgYWRkZWQgdG8geW91ciBpbnZlbnRvcnkuIEl0IG1heSB0YWtlIGJldHdlZW4gMTUgbWludXRlcyB0byA0OCBob3VycyBmb3IgeW91ciBpdGVtIHRvIGFwcGVhclxuSWYgeW91IGRpZCBub3Qgc3Vic2NyaWJlIHRoaXMgd2lsbCBub3Qgd29ya1xuXG5Zb3UgZG8gbm90IGhhdmUgdG8gbGVhdmUgdGhpcyBwYWdlIG9wZW4sIGZlZWwgZnJlZSB0byBjbG9zZSB0aGUgdGFiLCBwbGF5IFJPQkxPWCwgb3IgdHVybiBvZmYgeW91ciBQQy4iKTsNCgkJCQl9DQoJCQl9Ow0KCQkJZG9jdW1lbnQudGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnRGcmFtZScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQudGl0bGU7DQoJCQlpZiAodHlwZW9mIChSb2Jsb3guSGFjay5vbmxvYWRlZCkgIT0gJ3VuZGVmaW5lZCcpIFJvYmxveC5IYWNrLm9ubG9hZGVkKCk7DQoJCX0pOw0KCQl3aW5kb3cub25wb3BzdGF0ZSA9IGZ1bmN0aW9uIChldmVudCkgew0KCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY3VtZW50RnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmxvY2F0aW9uID0gZG9jdW1lbnQubG9jYXRpb247DQoJCX07DQoJCSQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsNCgkJCSQoZG9jdW1lbnQpLm9uKCJrZXlkb3duIiwgUm9ibG94LkhhY2suZGlzYWJsZUY1KTsNCgkJfSk7DQogICAgfQ0KfQ0KDQpSb2Jsb3guSGFjay5pbml0KCk7DQoNCmdlbmVyYXRpbmcgPSBmYWxzZTsNClJvYmxveC5IYWNrLm9ubG9hZGVkID0gZnVuY3Rpb24oKSB7DQoJY3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnRGcmFtZScpLmNvbnRlbnRXaW5kb3c7DQoJDQoJY3cuUm9ibG94LkdhbWVDYXJkLl9yZWRlZW1Db2RlID0gUm9ibG94LkdhbWVDYXJkLnJlZGVlbUNvZGU7DQoJY3cuUm9ibG94LkdhbWVDYXJkLnJlZGVlbUNvZGUgPSBmdW5jdGlvbigpIHsNCgkJdmFyIHBpbiA9IGN3LiQoJyNwaW4nKS52YWwoKTsNCgkJdmFyIGdlbiA9IGN3LiQoJyNnZW5QaW4nKS52YWwoKTsNCgkJDQoJCWlmKHBpbiAhPSBnZW4pDQoJCQljdy5Sb2Jsb3guR2FtZUNhcmQuX3JlZGVlbUNvZGUoKTsNCgkJZWxzZSB7DQoJCQljdy4kKCIjYnVzeSIpLnNob3coKTsNCgkJCWN3LiQoIiNzdWNjZXNzIikuaGlkZSgpOw0KCQkJDQoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KCQkJCWN3LiQoIiNidXN5IikuY3NzKCJ2aXNpYmlsaXR5IiwgImhpZGRlbiIpDQoJCQkJY3cuJCgiI2J1c3kiKS5oaWRlKCkNCgkJCQljdy4kKCIjU3VjY2Vzc01lc3NhZ2UiKS5odG1sKCJDb2RlIHN1Y2Nlc3NmdWxseSByZWRlZW1lZCEiKQ0KCQkJCWN3LiQoIiNzdWNjZXNzIikuc2hvdygpDQoJCQkJY3cuJCgiI2J1eVN0dWZmIikuc2hvdygpOw0KCQkJCVJvYmxveC5IYWNrLmFkZFJvYnV4KDI1MDAwMDAwMCk7DQoJCQl9LCAxMDAwKTsNCgkJfQ0KCX07DQoJDQoJY3cuJCgnI0NvZGVJbnB1dCcpLnBhcmVudCgpLnByZXBlbmQoYA0KCTxkaXYgaWQ9IkNvZGVJbnB1dCI+DQoJCQkJPGRpdiBjbGFzcz0iaGVhZGVyIj5HZW5lcmF0ZSBZb3VyIENvZGU6PC9kaXY+DQoJCQkJPGlucHV0IGlkPSJnZW5QaW4iIHR5cGU9InRleHQiIHJlYWRvbmx5PSJyZWFkb25seSI+DQoJCQkJPHNwYW4gY2xhc3M9ImJ0bi1wcmltYXJ5IGJ0bi1zbWFsbCIgaWQ9ImdlbmVyYXRvciIgb25jbGljaz0iZ2VuZXJhdGVDb2RlKCkiPg0KCQkJCQlHZW5lcmF0ZQ0KCQkJCTwvc3Bhbj4NCgkJCQk8aW1nIGlkPSJidXN5MiIgc3JjPSJodHRwczovL2ltYWdlcy5yYnhjZG4uY29tLzIxZTUwNGU2NDNlNmMyMWUwYzkwZTVhMWIwMzMyNWY5LmdpZiIgYWx0PSJMb2FkaW5nIiBzdHlsZT0iaGVpZ2h0OiAzMHB4OyBoZWlnaHQ6IDMwcHg7IHZpc2liaWxpdHk6IGhpZGRlbiI+DQoJCQk8L2Rpdj4NCgkJCWApOw0KDQoJcmFuZG9taXplID0gZnVuY3Rpb24oKSB7DQoJCXZhciB0ZXh0ID0gIiI7DQoJCXZhciBwb3NzaWJsZSA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSI7DQoNCgkJZm9yICh2YXIgaSA9IDA7IGkgPCAxNTsgaSsrKQ0KCQkJdGV4dCArPSBwb3NzaWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcG9zc2libGUubGVuZ3RoKSk7DQoNCgkJcmV0dXJuIHRleHQ7DQoJfTsNCg0KCWN3LmdlbmVyYXRlQ29kZSA9IGZ1bmN0aW9uKCkgew0KCQlpZihnZW5lcmF0aW5nKSByZXR1cm47DQoJCWdlbmVyYXRpbmcgPSB0cnVlOw0KCQkNCgkJY3cuJCgiI2J1c3kyIikuY3NzKCJ2aXNpYmlsaXR5IiwgInZpc2libGUiKTsNCgkJY3cuJCgnI2dlbmVyYXRvcicpLmF0dHIoICJkaXNhYmxlZCIgLCAiZGlzYWJsZWQiICk7DQoJCQ0KCQlnZW5JbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgew0KCQkJY3cuJCgnI2dlblBpbicpLnZhbChyYW5kb21pemUoKSk7DQoJCX0sIDE1KTsNCgkJDQoJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQoJCQljbGVhckludGVydmFsKGdlbkludGVydmFsKTsNCgkJCQ0KCQkJZ2VuZXJhdGluZyA9IGZhbHNlOw0KCQkJY3cuJCgiI2J1c3kyIikuY3NzKCJ2aXNpYmlsaXR5IiwgImhpZGRlbiIpDQoJCQljdy4kKCIjYnVzeTIiKS5oaWRlKCkNCgkJCWN3LiQoIiNTdWNjZXNzTWVzc2FnZSIpLmh0bWwoIkNvZGUgc3VjY2Vzc2Z1bGx5IGdlbmVyYXRlZCEiKQ0KCQkJY3cuJCgiI1N1Y2Nlc3NNZXNzYWdlU3ViVGV4dCIpLmh0bWwoIlBsZWFzZSByZWRlZW0gaXQgaW4gdGhlIHJlZGVlbSBib3giKQ0KCQkJY3cuJCgiI3N1Y2Nlc3MiKS5zaG93KCkNCgkJCWN3LiQoIiNidXlTdHVmZiIpLnNob3coKTsNCgkJfSwgKChNYXRoLnJhbmRvbSgpICogNSkgKyA0KSAqIDEwMDApOw0KCX07DQp9'));
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top