xiaomianao666

插件名:global_海角社区脚本

Sep 28th, 2023
12,382
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:网页插件¥js_url¥global_海角社区脚本@base64://Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICDmtbfop5LnpL7ljLrohJrmnKwKLy8gQG5hbWVzcGFjZSAgICBoYWlqaWFvLXNjcmlwdAovLyBAdmVyc2lvbiAgICAgIDAuMC4yNAovLyBAYXV0aG9yICAgICAgIG1lbW9wYWMKLy8gQGRlc2NyaXB0aW9uICDmtbfop5LnpL7ljLrop4bpopHop6PmnpAKLy8gQGxpY2Vuc2UgICAgICBNSVQKLy8gQGljb24gICAgICAgICBodHRwczovL3BvbWYyLmxhaW4ubGEvZi9lcmVqeHRmby5pY28KLy8gQG1hdGNoICAgICAgICAqOi8vKi5oYWlqaWFvLmNvbS8qCi8vIEBtYXRjaCAgICAgICAgKjovLyovcG9zdC9kZXRhaWxzKgovLyBAcmVxdWlyZSAgICAgIGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vanF1ZXJ5QDMuNi40Ci8vIEByZXF1aXJlICAgICAgaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9kcGxheWVyQDEuMjcuMQovLyBAcmVxdWlyZSAgICAgIGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vaGxzLmpzQDEuMy41Ci8vIEBncmFudCAgICAgICAgR01fc2V0Q2xpcGJvYXJkCi8vIEBncmFudCAgICAgICAgR01feG1saHR0cFJlcXVlc3QKLy8gPT0vVXNlclNjcmlwdD09CgooZT0+e2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTt0LmRhdGFzZXQuc291cmNlPSJ2aXRlLXBsdWdpbi1tb25rZXkiLHQudGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZCh0KX0pKCIgLmNyYWNrX2NvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt0b3A6ODBweDtyaWdodDoyMHB4fS5jcmFja190aXRsZXtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo3MDA7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCAjMDAwO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2t9LmNyYWNrX3BsYXllcntwb3NpdGlvbjpmaXhlZDt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0uY3JhY2tfcGxheWVyIC5pZnJhbWVCb3h7d2lkdGg6NzB2dzttYXJnaW46YXV0b30gIik7CgooZnVuY3Rpb24gKERQbGF5ZXIsIGhsc19qcywgJCkgewogICd1c2Ugc3RyaWN0JzsKCiAgdmFyIF9HTV9zZXRDbGlwYm9hcmQgPSAvKiBAX19QVVJFX18gKi8gKCgpID0+IHR5cGVvZiBHTV9zZXRDbGlwYm9hcmQgIT0gInVuZGVmaW5lZCIgPyBHTV9zZXRDbGlwYm9hcmQgOiB2b2lkIDApKCk7CiAgdmFyIF9HTV94bWxodHRwUmVxdWVzdCA9IC8qIEBfX1BVUkVfXyAqLyAoKCkgPT4gdHlwZW9mIEdNX3htbGh0dHBSZXF1ZXN0ICE9ICJ1bmRlZmluZWQiID8gR01feG1saHR0cFJlcXVlc3QgOiB2b2lkIDApKCk7CiAgZnVuY3Rpb24gVygpIHsKICAgIHZhciBlID0gIkFCQ0QqRUZHSElKS0xNTk9QUVJTVFVWV1gjWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejEyMzQ1Njc4OTAiLCB0ID0gKHRoaXMuZW5jb2RlID0gZnVuY3Rpb24oaTIpIHsKICAgICAgdmFyIGEsIG4sIG8sIHIsIHMsIGMsIGwgPSAiIiwgdSA9IDA7CiAgICAgIGZvciAoaTIgPSB0KGkyKTsgdSA8IGkyLmxlbmd0aDsgKQogICAgICAgIG8gPSAoYSA9IGkyLmNoYXJDb2RlQXQodSsrKSkgPj4gMiwgciA9ICgzICYgYSkgPDwgNCB8IChhID0gaTIuY2hhckNvZGVBdCh1KyspKSA+PiA0LCBzID0gKDE1ICYgYSkgPDwgMiB8IChuID0gaTIuY2hhckNvZGVBdCh1KyspKSA+PiA2LCBjID0gNjMgJiBuLCBpc05hTihhKSA/IHMgPSBjID0gNjQgOiBpc05hTihuKSAmJiAoYyA9IDY0KSwgbCA9IGwgKyBlLmNoYXJBdChvKSArIGUuY2hhckF0KHIpICsgZS5jaGFyQXQocykgKyBlLmNoYXJBdChjKTsKICAgICAgcmV0dXJuIGw7CiAgICB9LCB0aGlzLmRlY29kZSA9IGZ1bmN0aW9uKHQyKSB7CiAgICAgIHZhciBhLCBuLCBvLCByLCBzLCBjLCBsID0gIiIsIHUgPSAwOwogICAgICBmb3IgKHQyID0gdDIucmVwbGFjZSgvW15BLVphLXowLTlcKlwjXS9nLCAiIik7IHUgPCB0Mi5sZW5ndGg7ICkKICAgICAgICBvID0gZS5pbmRleE9mKHQyLmNoYXJBdCh1KyspKSwgYSA9ICgxNSAmIChyID0gZS5pbmRleE9mKHQyLmNoYXJBdCh1KyspKSkpIDw8IDQgfCAocyA9IGUuaW5kZXhPZih0Mi5jaGFyQXQodSsrKSkpID4+IDIsIG4gPSAoMyAmIHMpIDw8IDYgfCAoYyA9IGUuaW5kZXhPZih0Mi5jaGFyQXQodSsrKSkpLCBsICs9IFN0cmluZy5mcm9tQ2hhckNvZGUobyA8PCAyIHwgciA+PiA0KSwgNjQgIT0gcyAmJiAobCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKSwgNjQgIT0gYyAmJiAobCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKG4pKTsKICAgICAgcmV0dXJuIGkobCk7CiAgICB9LCBmdW5jdGlvbihlMikgewogICAgICBlMiA9IGUyLnJlcGxhY2UoL1xyXG4vZywgIlxuIik7CiAgICAgIGZvciAodmFyIHQyID0gIiIsIGkyID0gMDsgaTIgPCBlMi5sZW5ndGg7IGkyKyspIHsKICAgICAgICB2YXIgYSA9IGUyLmNoYXJDb2RlQXQoaTIpOwogICAgICAgIGEgPCAxMjggPyB0MiArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGEpIDogdDIgPSAxMjcgPCBhICYmIGEgPCAyMDQ4ID8gKHQyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYSA+PiA2IHwgMTkyKSkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDYzICYgYSB8IDEyOCkgOiAodDIgPSAodDIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShhID4+IDEyIHwgMjI0KSkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGEgPj4gNiAmIDYzIHwgMTI4KSkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDYzICYgYSB8IDEyOCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHQyOwogICAgfSksIGkgPSBmdW5jdGlvbihlMikgewogICAgICBmb3IgKHZhciB0MiwgaTIsIGEgPSAiIiwgbiA9IDAsIG8gPSAwOyBuIDwgZTIubGVuZ3RoOyApCiAgICAgICAgKHQyID0gZTIuY2hhckNvZGVBdChuKSkgPCAxMjggPyAoYSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHQyKSwgbisrKSA6IDE5MSA8IHQyICYmIHQyIDwgMjI0ID8gKG8gPSBlMi5jaGFyQ29kZUF0KG4gKyAxKSwgYSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSAmIHQyKSA8PCA2IHwgNjMgJiBvKSwgbiArPSAyKSA6IChvID0gZTIuY2hhckNvZGVBdChuICsgMSksIGkyID0gZTIuY2hhckNvZGVBdChuICsgMiksIGEgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoMTUgJiB0MikgPDwgMTIgfCAoNjMgJiBvKSA8PCA2IHwgNjMgJiBpMiksIG4gKz0gMyk7CiAgICAgIHJldHVybiBhOwogICAgfTsKICB9CiAgY29uc3Qgc3JjID0gImh0dHBzOi8vaGl0cy5kd3lsLmNvbS9tZW1vcGFjL2hhaWppYW8tc2NyaXB0LnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSI7CiAgY29uc3QgaXNNb2JpbGUgPSAoKSA9PiB7CiAgICByZXR1cm4gL2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhIG1pbmkvaS50ZXN0KAogICAgICBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkKICAgICk7CiAgfTsKICBmdW5jdGlvbiBpc1ZhbGlkSHR0cFVybChzdHIpIHsKICAgIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKAogICAgICAiXihodHRwcz86XFwvXFwvKT8oKChbYS16XFxkXShbYS16XFxkLV0qW2EtelxcZF0pKilcXC4pK1thLXpdezIsfXwoKFxcZHsxLDN9XFwuKXszfVxcZHsxLDN9KSkoXFw6XFxkKyk/KFxcL1stYS16XFxkJV8ufitdKikqKFxcP1s7JmEtelxcZCVfLn4rPS1dKik/KFxcI1stYS16XFxkX10qKT8kIiwKICAgICAgLy8gZnJhZ21lbnQgbG9jYXRvcgogICAgICAiaSIKICAgICk7CiAgICByZXR1cm4gcGF0dGVybi50ZXN0KHN0cik7CiAgfQogIGZ1bmN0aW9uIG1haW4odXJsKSB7CiAgICB0cnkgewogICAgICBsZXQgaW5pdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIGNyYWNrQnRuID0gJCgnPGRpdiBjbGFzcz0iY3JhY2tfdGl0bGUiIGlkPSJjcmFja19hbmFsIj7op6PmnpA8L2Rpdj4nKTsKICAgICAgICBqdW1wTGluazEgPSAkKAogICAgICAgICAgJzxhIGNsYXNzPSJjcmFja190aXRsZSIgdGFyZ2V0PSJfYmxhbmsiIGlkPSJjcmFja19qdW1wIj7ot7Povazmkq3mlL4xPC9hPicKICAgICAgICApLmhpZGUoKTsKICAgICAgICBqdW1wTGluazIgPSAkKAogICAgICAgICAgJzxhIGNsYXNzPSJjcmFja190aXRsZSIgdGFyZ2V0PSJfYmxhbmsiIGlkPSJjcmFja19qdW1wIj7ot7Povazmkq3mlL4yPC9hPicKICAgICAgICApLmhpZGUoKTsKICAgICAgICBkb3dubG9hZExpbmsgPSAkKAogICAgICAgICAgJzxhIGNsYXNzPSJjcmFja190aXRsZSIgdGFyZ2V0PSJfYmxhbmsiIGlkPSJjcmFja19qdW1wIj7kuIvovb3op4bpopE8L2E+JwogICAgICAgICkuaGlkZSgpOwogICAgICAgIGNvcHlCdG4gPSAkKAogICAgICAgICAgJzxkaXYgY2xhc3M9ImNyYWNrX3RpdGxlIiBpZD0iY3JhY2tfY29weSI+PGltZyBzcmM9IiIgd2lkdGg9Ijk0Ii8+PC9kaXY+JwogICAgICAgICkuaGlkZSgpOwogICAgICAgIGNvbnRhaW5lciA9ICQoYDxkaXYgY2xhc3M9ImNyYWNrX2NvbnRhaW5lciIgaWQ9ImNyYWNrX2NvbnRhaW5lciI+PC9kaXY+YCkuYXBwZW5kKGNyYWNrQnRuKS5hcHBlbmQoanVtcExpbmsxKS5hcHBlbmQoanVtcExpbmsyKS5hcHBlbmQoZG93bmxvYWRMaW5rKS5hcHBlbmQoY29weUJ0bik7CiAgICAgICAgY3JhY2tCdG4ub25lKCJjbGljayIsIGNyYWNrKTsKICAgICAgICAkKCJib2R5IikuYXBwZW5kKGNvbnRhaW5lcik7CiAgICAgIH0sIGNyYWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAgY3JhY2tCdG4uaHRtbCgi6Kej5p6Q5oiQ5YqfIik7CiAgICAgICAgY29uc3QgZW5jb2RlVXJsMiA9IGBodHRwczovL20zdThwbGF5LmNvbS8/cGxheT0ke2VuY29kZVVSSUNvbXBvbmVudCgKICAgICAgICB1cmwKICAgICAgKX1gOwogICAgICAgIGNvbnN0IGRvd25sb2FkVXJsID0gYGh0dHBzOi8vdG9vbHMudGhhdHdpbmQuY29tL3Rvb2wvbTN1OGRvd25sb2FkZXIjbTN1OD0ke2VuY29kZVVSSUNvbXBvbmVudCgKICAgICAgICB1cmwKICAgICAgKX0mcmVmZXJlcj0ke3dpbmRvdy5sb2NhdGlvbi5ocmVmfSZmaWxlbmFtZT0keyQoCiAgICAgICAgIiNkZXRhaWxzLXBhZ2UgPiBkaXYuaGVhZGVyID4gaDIgPiBzcGFuIgogICAgICApLnRleHQoKX1gOwogICAgICAgIGNvbnN0IGVuY29kZVVybDEgPSBgaHR0cHM6Ly9tLmF1b2sucnVuL3BsYXllci8jJHt1cmx9YDsKICAgICAgICBjb25zdCBzZWxsQ29udGFpbmVyMiA9IGdldFNlbGxlckNvbnRhaW5lcigpOwogICAgICAgIGp1bXBMaW5rMS5hdHRyKCJocmVmIiwgZW5jb2RlVXJsMSk7CiAgICAgICAganVtcExpbmsyLmF0dHIoImhyZWYiLCBlbmNvZGVVcmwyKTsKICAgICAgICBkb3dubG9hZExpbmsuYXR0cigiaHJlZiIsIGRvd25sb2FkVXJsKTsKICAgICAgICBpZiAoc2VsbENvbnRhaW5lcjIpIHsKICAgICAgICAgIGlmIChpc01vYmlsZSgpKSB7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCB2aWRlbyA9ICQoIjxkaXY+PC9kaXY+Iik7CiAgICAgICAgICAgIG5ldyBEUGxheWVyKHsKICAgICAgICAgICAgICBjb250YWluZXI6IHZpZGVvWzBdLAogICAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSwKICAgICAgICAgICAgICB0aGVtZTogIiNGQURGQTMiLAogICAgICAgICAgICAgIGxvb3A6IHRydWUsCiAgICAgICAgICAgICAgbGFuZzogInpoIiwKICAgICAgICAgICAgICBzY3JlZW5zaG90OiB0cnVlLAogICAgICAgICAgICAgIGhvdGtleTogdHJ1ZSwKICAgICAgICAgICAgICBwcmVsb2FkOiAiYXV0byIsCiAgICAgICAgICAgICAgdmlkZW86IHsKICAgICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgICAgIHR5cGU6ICJobHMiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgJChzZWxsQ29udGFpbmVyMikuYXBwZW5kKHZpZGVvKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29weUJ0bi5vbigiY2xpY2siLCAoKSA9PiB7CiAgICAgICAgICBfR01fc2V0Q2xpcGJvYXJkKHVybCwgInRleHQvcGxhaW4iKTsKICAgICAgICB9KTsKICAgICAgICBqdW1wTGluazEuc2hvdygpOwogICAgICAgIGp1bXBMaW5rMi5zaG93KCk7CiAgICAgICAgZG93bmxvYWRMaW5rLnNob3coKTsKICAgICAgICBjb3B5QnRuLnNob3coKS5maW5kKCJpbWciKS5hdHRyKCJzcmMiLCBzcmMpOwogICAgICAgIHJldHVybjsKICAgICAgfSwgdHJhY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICBpbml0KCk7CiAgICAgICAgY3JhY2soKTsKICAgICAgfTsKICAgICAgbGV0IGNyYWNrQnRuOwogICAgICBsZXQganVtcExpbmsxOwogICAgICBsZXQganVtcExpbmsyOwogICAgICBsZXQgZG93bmxvYWRMaW5rOwogICAgICBsZXQgY29weUJ0bjsKICAgICAgbGV0IGNvbnRhaW5lcjsKICAgICAgY29uc3Qgc2VsbENvbnRhaW5lciA9IGdldFNlbGxlckNvbnRhaW5lcigpOwogICAgICBpZiAoc2VsbENvbnRhaW5lcikgewogICAgICAgIHRyYWNrKCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIHRyYWNrKCk7CiAgICAgIH0sIDJlMyk7CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgfQogIH0KICBmdW5jdGlvbiBnZXRDb2RlRnJvbVN0cmluZyhzdHJJbnB1dCkgewogICAgY29uc3Qgc3RyID0gU3RyaW5nKHN0cklucHV0KTsKICAgIGNvbnN0IGRhdGFBcnIgPSBzdHIuc3BsaXQoIlxuIikuZmlsdGVyKChzdHIyKSA9PiAhc3RyMi5pbmNsdWRlcygiIyIpKTsKICAgIGNvbnN0IGZpcnN0ID0gZGF0YUFyci5zaGlmdCgpOwogICAgY29uc3QgaXNVcmwgPSBpc1ZhbGlkSHR0cFVybChmaXJzdCk7CiAgICBsZXQgY3VycmVudENvZGUgPSAiIjsKICAgIGlmIChpc1VybCkgewogICAgICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IGZpcnN0Lmxhc3RJbmRleE9mKCIvIik7CiAgICAgIGNvbnN0IGxhc3REb3RJbmRleCA9IGZpcnN0Lmxhc3RJbmRleE9mKCIuIik7CiAgICAgIGN1cnJlbnRDb2RlID0gZmlyc3Quc3Vic3RyaW5nKGxhc3RTbGFzaEluZGV4ICsgMSwgbGFzdERvdEluZGV4KTsKICAgIH0gZWxzZSB7CiAgICAgIGN1cnJlbnRDb2RlID0gZmlyc3Quc3BsaXQoIi4iKVswXTsKICAgIH0KICAgIGNvbnN0IGNvZGUgPSBjdXJyZW50Q29kZS5zdWJzdHJpbmcoMCwgY3VycmVudENvZGUubGVuZ3RoIC0gMSk7CiAgICByZXR1cm4gY29kZTsKICB9CiAgZnVuY3Rpb24gZm9ybWF0VXJsKHVybCwgY29kZSkgewogICAgY29uc3QgbGFzdFNsYXNoSW5kZXggPSB1cmwubGFzdEluZGV4T2YoIi8iKTsKICAgIGNvbnN0IGxhc3REb3RJbmRleCA9IHVybC5sYXN0SW5kZXhPZigiLiIpOwogICAgY29uc3QgdG1wQ29kZSA9IHVybC5zdWJzdHJpbmcobGFzdFNsYXNoSW5kZXggKyAxLCBsYXN0RG90SW5kZXgpOwogICAgY29uc3QgbmV3VXJsID0gdXJsLnJlcGxhY2UodG1wQ29kZSwgY29kZSk7CiAgICByZXR1cm4gbmV3VXJsOwogIH0KICBmdW5jdGlvbiBjcmFja1VybCh1cmwpIHsKICAgIF9HTV94bWxodHRwUmVxdWVzdCh7CiAgICAgIG1ldGhvZDogIkdFVCIsCiAgICAgIHVybCwKICAgICAgb25sb2FkOiBmdW5jdGlvbih7IHJlc3BvbnNlIH0pIHsKICAgICAgICBjb25zdCBjb2RlID0gZ2V0Q29kZUZyb21TdHJpbmcocmVzcG9uc2UpOwogICAgICAgIGlmIChjb2RlKSB7CiAgICAgICAgICBjb25zdCBuZXdVcmwgPSBmb3JtYXRVcmwodXJsLCBjb2RlKTsKICAgICAgICAgIG1haW4obmV3VXJsKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0KICBmdW5jdGlvbiBtYWluQ3JhY2tBdWRpbyhhdWRpb3MpIHsKICAgIGNvbnN0IHNlbGxDb250YWluZXIgPSBnZXRTZWxsZXJDb250YWluZXIoKTsKICAgIGlmICghc2VsbENvbnRhaW5lcikgewogICAgICByZXR1cm47CiAgICB9CiAgICBhdWRpb3MuZm9yRWFjaCgoYXVkaW8pID0+IHsKICAgICAgY29uc3QgJGF1ZGlvID0gJCgKICAgICAgICBgPGF1ZGlvIHNyYz0iJHthdWRpby5yZW1vdGVVcmx9IiBjb250cm9scz0iY29udHJvbHMiPjwvYXVkaW8+YAogICAgICApOwogICAgICAkKHNlbGxDb250YWluZXIpLmFwcGVuZCgkYXVkaW8pOwogICAgfSk7CiAgICBpZiAoJCgiI2NyYWNrX2NvbnRhaW5lciIpLmxlbmd0aCA9PT0gMCkgewogICAgICBjb25zdCBjb3B5QnRuID0gJCgKICAgICAgICBgPGRpdiBjbGFzcz0iY3JhY2tfdGl0bGUiIGlkPSJjcmFja19jb3B5Ij48aW1nIHNyYz0iJHtzcmN9IiB3aWR0aD0iOTQiLz48L2Rpdj5gCiAgICAgICk7CiAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICQoCiAgICAgICAgYDxkaXYgY2xhc3M9ImNyYWNrX2NvbnRhaW5lciIgaWQ9ImNyYWNrX2NvbnRhaW5lciI+PC9kaXY+YAogICAgICApLmFwcGVuZChjb3B5QnRuKTsKICAgICAgJCgiYm9keSIpLmFwcGVuZChjb250YWluZXIpOwogICAgfQogIH0KICBmdW5jdGlvbiBtYWluQ3JhY2tJbWFnZShpbWFnZXMpIHsKICAgIGNvbnN0IG5vdFJlbmRlckltYWdlcyA9IGltYWdlcy5maWx0ZXIoKGltYWdlKSA9PiB7CiAgICAgIHJldHVybiAkKGBpbWdbZGF0YS1pZD0iJHtpbWFnZS5pZH0iXWApLmxlbmd0aCA9PT0gMDsKICAgIH0pOwogICAgbm90UmVuZGVySW1hZ2VzLmZvckVhY2goKGltYWdlKSA9PiB7CiAgICAgIGNvbnN0IHVybCA9IGltYWdlLnJlbW90ZVVybDsKICAgICAgaWYgKCF1cmwpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgX0dNX3htbGh0dHBSZXF1ZXN0KHsKICAgICAgICBtZXRob2Q6ICJHRVQiLAogICAgICAgIHVybCwKICAgICAgICBvbmxvYWQ6IGZ1bmN0aW9uKHsgcmVzcG9uc2UgfSkgewogICAgICAgICAgbGV0IGltZ1NyYyA9IG5ldyBXKCkuZGVjb2RlKHJlc3BvbnNlKTsKICAgICAgICAgIGltZ1NyYyA9IGltZ1NyYy5yZXBsYWNlKC9cMC4qJC9nLCAiIik7CiAgICAgICAgICBjb25zdCBpbWcgPSAkKAogICAgICAgICAgICBgPGltZyBzcmM9IiR7aW1nU3JjfSIgZGF0YS1pZD0iJHtpbWFnZS5pZH0iICB0aXRsZT0i54K55Ye75p+l55yL5aSn5Zu+Ij5gCiAgICAgICAgICApOwogICAgICAgICAgaW1nLm9uKCJlcnJvciIsICgpID0+IHsKICAgICAgICAgICAgaW1nLnJlbW92ZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgICBjb25zdCBzZWxsQ29udGFpbmVyID0gZ2V0U2VsbGVyQ29udGFpbmVyKCk7CiAgICAgICAgICBpZiAoIXNlbGxDb250YWluZXIpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgJChzZWxsQ29udGFpbmVyKS5hcHBlbmQoaW1nKTsKICAgICAgICAgIGlmICgkKCIjY3JhY2tfY29udGFpbmVyIikubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgIGNvbnN0IGNvcHlCdG4gPSAkKAogICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJjcmFja190aXRsZSIgaWQ9ImNyYWNrX2NvcHkiPjxpbWcgc3JjPSIke3NyY30iIHdpZHRoPSI5NCIvPjwvZGl2PmAKICAgICAgICAgICAgKTsKICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gJCgKICAgICAgICAgICAgICBgPGRpdiBjbGFzcz0iY3JhY2tfY29udGFpbmVyIiBpZD0iY3JhY2tfY29udGFpbmVyIj48L2Rpdj5gCiAgICAgICAgICAgICkuYXBwZW5kKGNvcHlCdG4pOwogICAgICAgICAgICAkKCJib2R5IikuYXBwZW5kKGNvbnRhaW5lcik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwogIH0KICBsZXQgaW5qZWN0RW50cnlVcmwgPSAiIjsKICBmdW5jdGlvbiBnZXRTZWxsZXJDb250YWluZXIoKSB7CiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic3Bhbi5zZWxsLWJ0biIpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdi5wYWdlY29udGFpbmVyIikgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2LnB1YmxpY0NvbnRhaW5lciIpOwogICAgcmV0dXJuIGVsZW1lbnQ7CiAgfQogICgoKSA9PiB7CiAgICBsZXQgb2xkVXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CiAgICBjb25zdCBtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4gewogICAgICBjb25zdCBuZXdVcmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKICAgICAgY29uc3QgaXNIYWlKaWFvUGlkID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoIj9waWQ9Iik7CiAgICAgIGNvbnN0IHNlbGxDb250YWluZXIgPSBnZXRTZWxsZXJDb250YWluZXIoKTsKICAgICAgaWYgKCFzZWxsQ29udGFpbmVyKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChvbGRVcmwgIT09IG5ld1VybCkgewogICAgICAgIG9sZFVybCA9IG5ld1VybDsKICAgICAgICBpZiAoaXNIYWlKaWFvUGlkKSB7CiAgICAgICAgICBpZiAoaW5qZWN0RW50cnlVcmwgIT09IHdpbmRvdy5sb2NhdGlvbi5ocmVmKSB7CiAgICAgICAgICAgIGluamVjdEVudHJ5KCk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IGhpZGUkRWxlbWVudCA9ICQoIiNjcmFja19jb250YWluZXIiKTsKICAgICAgICAgIGlmIChoaWRlJEVsZW1lbnQubGVuZ3RoID4gMCkgewogICAgICAgICAgICBoaWRlJEVsZW1lbnQucmVtb3ZlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGlmIChpc0hhaUppYW9QaWQgJiYgaW5qZWN0RW50cnlVcmwgIT09IHdpbmRvdy5sb2NhdGlvbi5ocmVmKSB7CiAgICAgICAgICBpbmplY3RFbnRyeSgpOwogICAgICAgIH0KICAgICAgfQogICAgfSk7CiAgICBjb25zdCByZW1vdmVBcnJMaXN0ID0gWwogICAgICAiLnBhZ2Vjb250YWluZXIgLmNvbnRhaW5lcnMiLAogICAgICAiLnZpcGJ0biIsCiAgICAgICJzcGFuW2RhdGEtc2VsbF0iLAogICAgICAiLnByZXZpZXctdGl0bGUiCiAgICBdOwogICAgY29uc29sZS5sb2coIjEiLCAxKTsKICAgIGZ1bmN0aW9uIGluamVjdEVudHJ5KCkgewogICAgICBjb25zdCBzZWxsQ29udGFpbmVyID0gZ2V0U2VsbGVyQ29udGFpbmVyKCk7CiAgICAgIGlmIChzZWxsQ29udGFpbmVyKSB7CiAgICAgICAgbGV0IFtwaWRdID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5tYXRjaCgvXGQrLykgfHwgW107CiAgICAgICAgaWYgKCFwaWQpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgZm9ybWF0VXJsMiA9IGAke2xvY2F0aW9uLm9yaWdpbn0vYXBpL3RvcGljLyR7cGlkfWA7CiAgICAgICAgaW5qZWN0RW50cnlVcmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKICAgICAgICByZW1vdmVBcnJMaXN0LmZvckVhY2goKGl0ZW0pID0+ICQoaXRlbSkucmVtb3ZlKCkpOwogICAgICAgIF9HTV94bWxodHRwUmVxdWVzdCh7CiAgICAgICAgICBtZXRob2Q6ICJHRVQiLAogICAgICAgICAgdXJsOiBmb3JtYXRVcmwyLAogICAgICAgICAgb25sb2FkOiBmdW5jdGlvbih7IHJlc3BvbnNlIH0pIHsKICAgICAgICAgICAgY29uc3QgZm9ybWF0RGF0YSA9IEpTT04ucGFyc2UocmVzcG9uc2UpOwogICAgICAgICAgICBpZiAoZm9ybWF0RGF0YSA9PSBudWxsID8gdm9pZCAwIDogZm9ybWF0RGF0YS5kYXRhKSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGNvbnN0IGlzU3RyaW5nRGF0YSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmb3JtYXREYXRhLmRhdGEpID09PSAiW29iamVjdCBTdHJpbmddIjsKICAgICAgICAgICAgICAgIGxldCBkYXRhID0gZm9ybWF0RGF0YS5kYXRhOwogICAgICAgICAgICAgICAgaWYgKGlzU3RyaW5nRGF0YSkgewogICAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShhdG9iKGF0b2IoYXRvYihmb3JtYXREYXRhLmRhdGEpKSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3QgYXR0YWNobWVudHMgPSBkYXRhLmF0dGFjaG1lbnRzOwogICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VzID0gW107CiAgICAgICAgICAgICAgICBjb25zdCB2aWRlb3MgPSBbXTsKICAgICAgICAgICAgICAgIGNvbnN0IGF1ZGlvcyA9IFtdOwogICAgICAgICAgICAgICAgYXR0YWNobWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4gewogICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5jYXRlZ29yeSA9PT0gImltYWdlcyIpIHsKICAgICAgICAgICAgICAgICAgICBpbWFnZXMucHVzaChlbGVtZW50KTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmNhdGVnb3J5ID09PSAidmlkZW8iKSB7CiAgICAgICAgICAgICAgICAgICAgdmlkZW9zLnB1c2goZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5jYXRlZ29yeSA9PT0gImF1ZGlvIikgewogICAgICAgICAgICAgICAgICAgIGF1ZGlvcy5wdXNoKGVsZW1lbnQpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGlmICgodmlkZW9zID09IG51bGwgPyB2b2lkIDAgOiB2aWRlb3MubGVuZ3RoKSA+IDApIHsKICAgICAgICAgICAgICAgICAgY29uc3QgdXNlZnVsRGF0YSA9IHZpZGVvc1swXTsKICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gdXNlZnVsRGF0YSA9PSBudWxsID8gdm9pZCAwIDogdXNlZnVsRGF0YS5yZW1vdGVVcmw7CiAgICAgICAgICAgICAgICAgIGlmICh1cmwpIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1JlYWxNM3U4ID0gdXJsLmluY2x1ZGVzKCIubTN1OCIpOwogICAgICAgICAgICAgICAgICAgIGlmIChpc1JlYWxNM3U4KSB7CiAgICAgICAgICAgICAgICAgICAgICBjcmFja1VybCh1cmwpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gbmV3IFcoKTsKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlY29kZVVybCA9IHcuZGVjb2RlKHVybCk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVjb2RlVXJsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNyYWNrVXJsKGRlY29kZVVybCk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoKGltYWdlcyA9PSBudWxsID8gdm9pZCAwIDogaW1hZ2VzLmxlbmd0aCkgPiAwKSB7CiAgICAgICAgICAgICAgICAgIG1haW5DcmFja0ltYWdlKGltYWdlcyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoKGF1ZGlvcyA9PSBudWxsID8gdm9pZCAwIDogYXVkaW9zLmxlbmd0aCkgPiAwKSB7CiAgICAgICAgICAgICAgICAgIG1haW5DcmFja0F1ZGlvKGF1ZGlvcyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCLmtbfop5Lop6PmnpDlpLHotKXkuoY6ICIsIGVycm9yKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfQogICAgaWYgKCFpc01vYmlsZSgpKSB7CiAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIG11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpOwogICAgICB9LCAxMjAgKiAxZTMpOwogICAgfQogICAgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsKICAgICAgYXR0cmlidXRlczogdHJ1ZSwKICAgICAgY2hpbGRMaXN0OiB0cnVlCiAgICB9KTsKICB9KSgpOwoKfSkoRFBsYXllciwgSGxzLCBqUXVlcnkpOwo=
Add Comment
Please, Sign In to add comment